This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch, master, updated. glibc-2.11-188-g0cbcca8
- From: drepper at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 6 Feb 2010 10:39:11 -0000
- Subject: GNU C Library master sources branch, master, updated. glibc-2.11-188-g0cbcca8
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".
The branch, master has been updated
via 0cbcca89bad6656bfda8c60e143295e0f00054b6 (commit)
via 70b7d00fc782759f1257001202cc30cb29bae28f (commit)
via 03849910cd0493dde35315eb0baaaf8d5056d296 (commit)
via 70da4a1826f4e7841d954820601d311bbd43940a (commit)
from 1712734592ce76335572ed0b90db96652ed0f6f7 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=0cbcca89bad6656bfda8c60e143295e0f00054b6
commit 0cbcca89bad6656bfda8c60e143295e0f00054b6
Author: Ulrich Drepper <drepper@redhat.com>
Date: Sat Feb 6 02:38:53 2010 -0800
Whitespace and copyright year fixes.
diff --git a/sysdeps/ia64/memchr.S b/sysdeps/ia64/memchr.S
index 56d8056..355effe 100644
--- a/sysdeps/ia64/memchr.S
+++ b/sysdeps/ia64/memchr.S
@@ -1,6 +1,6 @@
/* Optimized version of the standard memchr() function.
This file is part of the GNU C Library.
- Copyright (C) 2000, 2001, 2003 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2001, 2003, 2010 Free Software Foundation, Inc.
Contributed by Dan Pop <Dan.Pop@cern.ch>.
The GNU C Library is free software; you can redistribute it and/or
@@ -21,9 +21,9 @@
/* Return: the address of the first occurence of chr in str or NULL
Inputs:
- in0: str
- in1: chr
- in2: byte count
+ in0: str
+ in1: chr
+ in2: byte count
This implementation assumes little endian mode. For big endian mode,
the instruction czx1.r should be replaced by czx1.l.
@@ -62,13 +62,13 @@ ENTRY(__memchr)
.rotr value[MEMLAT+1], addr[MEMLAT+3], aux[2], poschr[2]
.rotp p[MEMLAT+3]
.save ar.lc, saved_lc
- mov saved_lc = ar.lc // save the loop counter
+ mov saved_lc = ar.lc // save the loop counter
.save pr, saved_pr
mov saved_pr = pr // save the predicates
.body
- mov ret0 = str
+ mov ret0 = str
add last = str, in2 // last byte
- and tmp = 7, str // tmp = str % 8
+ and tmp = 7, str // tmp = str % 8
cmp.ne p7, p0 = r0, r0 // clear p7
extr.u chr = in1, 0, 8 // chr = (unsigned char) in1
mov len = in2
@@ -89,7 +89,7 @@ ENTRY(__memchr)
.str_aligned:
cmp.ne p6, p0 = r0, r0 // clear p6
shr.u loopcnt = len, 3 // loopcnt = len / 8
- and len = 7, len ;; // remaining len = len & 7
+ and len = 7, len ;; // remaining len = len & 7
adds loopcnt = -1, loopcnt
mov ar.ec = MEMLAT + 3
mux1 chrx8 = chr, @brcst ;; // get a word full of chr
@@ -120,7 +120,7 @@ ENTRY(__memchr)
mov ret0 = r0 ;; // return NULL
.foundit:
.pred.rel "mutex" p6, p7
-(p6) adds ret0 = -1, ret0 // if we got here from l1 or l3
+(p6) adds ret0 = -1, ret0 // if we got here from l1 or l3
(p7) add ret0 = addr[MEMLAT+2], poschr[1] // if we got here from l2
mov pr = saved_pr, -1
mov ar.lc = saved_lc
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c b/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c
index bf07f68..d5793b3 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008 Free Software Foundation, Inc.
+/* Copyright (C) 2008, 2010 Free Software Foundation, Inc.
Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
This file is part of the GNU C Library.
@@ -31,7 +31,7 @@
calls. */
#define ALLOCATE_UTMP32_OUT(OUT) \
static struct utmp32 *OUT = NULL; \
- \
+ \
if (OUT == NULL) \
{ \
OUT = malloc (sizeof (struct utmp32)); \
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c b/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c
index f566f50..790b464 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008 Free Software Foundation, Inc.
+/* Copyright (C) 2008, 2010 Free Software Foundation, Inc.
Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
This file is part of the GNU C Library.
@@ -34,7 +34,7 @@
calls. */
#define ALLOCATE_UTMPX32_OUT(OUT) \
static struct utmpx32 *OUT = NULL; \
- \
+ \
if (OUT == NULL) \
{ \
OUT = malloc (sizeof (struct utmpx32)); \
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.h b/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.h
index c61e1cd..dedc6c6 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.h
@@ -1,5 +1,5 @@
/* The `struct utmp' type, describing entries in the utmp file. GNU version.
- Copyright (C) 1993, 1996, 1997, 1998, 1999, 2002, 2008
+ Copyright (C) 1993, 1996, 1997, 1998, 1999, 2002, 2008, 2010
Free Software Foundation, Inc.
This file is part of the GNU C Library.
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=70b7d00fc782759f1257001202cc30cb29bae28f
commit 70b7d00fc782759f1257001202cc30cb29bae28f
Author: H.J. Lu <hongjiu.lu@intel.com>
Date: Sat Feb 6 02:13:56 2010 -0800
memchr overshoots on ia64
diff --git a/ChangeLog b/ChangeLog
index a5797ea..a68be80 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2010-02-05 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #11230]
+ * sysdeps/ia64/memchr.S: Don't read beyond the last byte
+ during recovery.
+
2010-01-26 Andreas Schwab <schwab@redhat.com>
* sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c: Use internal
diff --git a/sysdeps/ia64/memchr.S b/sysdeps/ia64/memchr.S
index cdd71ca..56d8056 100644
--- a/sysdeps/ia64/memchr.S
+++ b/sysdeps/ia64/memchr.S
@@ -47,7 +47,7 @@
#define saved_lc r16
#define chr r17
#define len r18
-#define pos0 r20
+#define last r20
#define val r21
#define tmp r24
#define chrx8 r25
@@ -67,6 +67,7 @@ ENTRY(__memchr)
mov saved_pr = pr // save the predicates
.body
mov ret0 = str
+ add last = str, in2 // last byte
and tmp = 7, str // tmp = str % 8
cmp.ne p7, p0 = r0, r0 // clear p7
extr.u chr = in1, 0, 8 // chr = (unsigned char) in1
@@ -143,7 +144,10 @@ ENTRY(__memchr)
ld8 tmp = [ret0];; // load the first unchecked 8byte
xor aux[1] = tmp, chrx8;;
czx1.r poschr[1] = aux[1];;
- cmp.ne p7, p0 = 8, poschr[1]
+ cmp.ne p7, p0 = 8, poschr[1];;
+(p7) add ret0 = addr[MEMLAT+2], poschr[1];;
+(p7) cmp.geu p6, p7 = ret0, last // don't go over the last byte
+(p6) br.cond.spnt .notfound;;
(p7) br.cond.spnt .foundit;;
adds ret0 = 8, ret0 // load the next unchecked 8byte
br.sptk .l4;;
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=03849910cd0493dde35315eb0baaaf8d5056d296
commit 03849910cd0493dde35315eb0baaaf8d5056d296
Author: Andreas Schwab <schwab@redhat.com>
Date: Sat Feb 6 02:03:10 2010 -0800
Avoid PLT calls in utmp compat wrappers on Linux/s390
diff --git a/ChangeLog b/ChangeLog
index 1216d06..a5797ea 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2010-01-26 Andreas Schwab <schwab@redhat.com>
+ * sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c: Use internal
+ interface.
+ * sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.h: Declare internal
+ utmpx interface.
+
* sysdeps/unix/sysv/linux/sparc/Versions: Add new errlist compat
entry for 2.12.
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c b/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c
index 32a5d71..bf07f68 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c
@@ -62,7 +62,7 @@
struct utmp32 *
getutid32 (const struct utmp32 *id)
{
- ACCESS_UTMP_ENTRY (getutid, id)
+ ACCESS_UTMP_ENTRY (__getutid, id)
}
symbol_version (getutid32, getutid, GLIBC_2.0);
@@ -71,7 +71,7 @@ symbol_version (getutid32, getutid, GLIBC_2.0);
struct utmp32 *
getutline32 (const struct utmp32 *line)
{
- ACCESS_UTMP_ENTRY (getutline, line)
+ ACCESS_UTMP_ENTRY (__getutline, line)
}
symbol_version (getutline32, getutline, GLIBC_2.0);
@@ -79,7 +79,7 @@ symbol_version (getutline32, getutline, GLIBC_2.0);
struct utmp32 *
pututline32 (const struct utmp32 *utmp_ptr)
{
- ACCESS_UTMP_ENTRY (pututline, utmp_ptr)
+ ACCESS_UTMP_ENTRY (__pututline, utmp_ptr)
}
symbol_version (pututline32, pututline, GLIBC_2.0);
@@ -90,7 +90,7 @@ getutent32 (void)
struct utmp *out64;
ALLOCATE_UTMP32_OUT (out32);
- out64 = getutent ();
+ out64 = __getutent ();
if (!out64)
return NULL;
@@ -108,7 +108,7 @@ getutent32_r (struct utmp32 *buffer, struct utmp32 **result)
struct utmp *out64p;
int ret;
- ret = getutent_r (&out64, &out64p);
+ ret = __getutent_r (&out64, &out64p);
if (ret == -1)
{
*result = NULL;
@@ -133,7 +133,7 @@ getutid32_r (const struct utmp32 *id, struct utmp32 *buffer,
utmp_convert32to64 (id, &in64);
- ret = getutid_r (&in64, &out64, &out64p);
+ ret = __getutid_r (&in64, &out64, &out64p);
if (ret == -1)
{
*result = NULL;
@@ -158,7 +158,7 @@ getutline32_r (const struct utmp32 *line,
utmp_convert32to64 (line, &in64);
- ret = getutline_r (&in64, &out64, &out64p);
+ ret = __getutline_r (&in64, &out64, &out64p);
if (ret == -1)
{
*result = NULL;
@@ -180,6 +180,6 @@ updwtmp32 (const char *wtmp_file, const struct utmp32 *utmp)
struct utmp in32;
utmp_convert32to64 (utmp, &in32);
- updwtmp (wtmp_file, &in32);
+ __updwtmp (wtmp_file, &in32);
}
symbol_version (updwtmp32, updwtmp, GLIBC_2.0);
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c b/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c
index 69a1384..f566f50 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c
@@ -68,7 +68,7 @@ getutxent32 (void)
struct utmpx *out64;
ALLOCATE_UTMPX32_OUT (out32);
- out64 = getutxent ();
+ out64 = __getutxent ();
if (!out64)
return NULL;
@@ -82,7 +82,7 @@ symbol_version (getutxent32, getutxent, GLIBC_2.1);
struct utmpx32 *
getutxid32 (const struct utmpx32 *id)
{
- ACCESS_UTMPX_ENTRY (getutxid, id);
+ ACCESS_UTMPX_ENTRY (__getutxid, id);
}
symbol_version (getutxid32, getutxid, GLIBC_2.1);
@@ -90,7 +90,7 @@ symbol_version (getutxid32, getutxid, GLIBC_2.1);
struct utmpx32 *
getutxline32 (const struct utmpx32 *line)
{
- ACCESS_UTMPX_ENTRY (getutxline, line);
+ ACCESS_UTMPX_ENTRY (__getutxline, line);
}
symbol_version (getutxline32, getutxline, GLIBC_2.1);
@@ -98,7 +98,7 @@ symbol_version (getutxline32, getutxline, GLIBC_2.1);
struct utmpx32 *
pututxline32 (const struct utmpx32 *utmpx)
{
- ACCESS_UTMPX_ENTRY (pututxline, utmpx);
+ ACCESS_UTMPX_ENTRY (__pututxline, utmpx);
}
symbol_version (pututxline32, pututxline, GLIBC_2.1);
@@ -109,7 +109,7 @@ updwtmpx32 (const char *wtmpx_file, const struct utmpx32 *utmpx)
struct utmpx in64;
utmpx_convert32to64 (utmpx, &in64);
- updwtmpx (wtmpx_file, &in64);
+ __updwtmpx (wtmpx_file, &in64);
}
symbol_version (updwtmpx32, updwtmpx, GLIBC_2.1);
@@ -121,7 +121,7 @@ getutmp32 (const struct utmpx32 *utmpx, struct utmp32 *utmp)
struct utmp out64;
utmpx_convert32to64 (utmpx, &in64);
- getutmp (&in64, &out64);
+ __getutmp (&in64, &out64);
utmp_convert64to32 (&out64, utmp);
}
symbol_version (getutmp32, getutmp, GLIBC_2.1.1);
@@ -134,7 +134,7 @@ getutmpx32 (const struct utmp32 *utmp, struct utmpx32 *utmpx)
struct utmpx out64;
utmp_convert32to64 (utmp, &in64);
- getutmpx (&in64, &out64);
+ __getutmpx (&in64, &out64);
utmpx_convert64to32 (&out64, utmpx);
}
symbol_version (getutmpx32, getutmpx, GLIBC_2.1.1);
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.h b/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.h
index 5f468ed..c61e1cd 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.h
@@ -49,4 +49,16 @@ struct utmpx32
char __unused[20]; /* Reserved for future use. */
};
+/* The internal interface needed by the compat wrapper functions. */
+extern struct utmpx *__getutxent (void);
+extern struct utmpx *__getutxid (__const struct utmpx *__id);
+extern struct utmpx *__getutxline (__const struct utmpx *__line);
+extern struct utmpx *__pututxline (__const struct utmpx *__utmpx);
+extern void __updwtmpx (__const char *__wtmpx_file,
+ __const struct utmpx *__utmpx);
+extern void __getutmp (__const struct utmpx *__utmpx,
+ struct utmp *__utmp);
+extern void __getutmpx (__const struct utmp *__utmp,
+ struct utmpx *__utmpx);
+
#endif /* utmpx32.h */
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=70da4a1826f4e7841d954820601d311bbd43940a
commit 70da4a1826f4e7841d954820601d311bbd43940a
Author: Andreas Schwab <schwab@redhat.com>
Date: Sat Feb 6 02:02:22 2010 -0800
Add new errlist compat entry for 2.12.
diff --git a/ChangeLog b/ChangeLog
index a700332..1216d06 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2010-01-26 Andreas Schwab <schwab@redhat.com>
+
+ * sysdeps/unix/sysv/linux/sparc/Versions: Add new errlist compat
+ entry for 2.12.
+
2010-02-03 Ulrich Drepper <drepper@redhat.com>
[BZ #11235]
diff --git a/sysdeps/unix/sysv/linux/sparc/Versions b/sysdeps/unix/sysv/linux/sparc/Versions
index be3d2b9..8fb638b 100644
--- a/sysdeps/unix/sysv/linux/sparc/Versions
+++ b/sysdeps/unix/sysv/linux/sparc/Versions
@@ -19,6 +19,10 @@ libc {
#errlist-compat 134
_sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
}
+ GLIBC_2.12 {
+ #errlist-compat 135
+ _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
+ }
}
librt {
GLIBC_2.3 {
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 17 +++++++++++++++
sysdeps/ia64/memchr.S | 26 +++++++++++++----------
sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c | 20 +++++++++---------
sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c | 18 ++++++++--------
sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.h | 14 ++++++++++++-
sysdeps/unix/sysv/linux/sparc/Versions | 4 +++
6 files changed, 68 insertions(+), 31 deletions(-)
hooks/post-receive
--
GNU C Library master sources