about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2004-10-05 08:25:34 +0000
committerJakub Jelinek <jakub@redhat.com>2004-10-05 08:25:34 +0000
commitfd63f7c6ce353ccfdbba58a37e8ef5465fcedfe4 (patch)
treed68e6563180c849e8c5a37b646903b82c4302c1e
parent85148842d401edf64f9edee7e5819a947c289ed2 (diff)
downloadglibc-fd63f7c6ce353ccfdbba58a37e8ef5465fcedfe4.tar.gz
glibc-fd63f7c6ce353ccfdbba58a37e8ef5465fcedfe4.tar.xz
glibc-fd63f7c6ce353ccfdbba58a37e8ef5465fcedfe4.zip
Updated to fedora-glibc-20041005T0745
-rw-r--r--ChangeLog76
-rw-r--r--fedora/branch.mk4
-rw-r--r--fedora/glibc.spec.in14
-rw-r--r--include/errno.h4
-rw-r--r--linuxthreads/ChangeLog12
-rw-r--r--linuxthreads/sysdeps/unix/sysv/linux/bits/posix_opt.h6
-rw-r--r--linuxthreads/sysdeps/unix/sysv/linux/i386/bits/posix_opt.h10
-rw-r--r--linuxthreads/sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h10
-rw-r--r--linuxthreads/sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h6
-rw-r--r--localedata/ChangeLog5
-rw-r--r--localedata/locales/gu_IN41
-rw-r--r--malloc/mtrace.pl15
-rw-r--r--nptl/ChangeLog22
-rw-r--r--nptl/sysdeps/pthread/posix-timer.h6
-rw-r--r--nptl/sysdeps/pthread/timer_create.c8
-rw-r--r--nptl/sysdeps/pthread/timer_routines.c12
-rw-r--r--nptl/sysdeps/unix/sysv/linux/i386/bits/posix_opt.h4
-rw-r--r--nptl/sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h4
-rw-r--r--nptl/tst-barrier2.c9
-rw-r--r--nptl/tst-clock1.c6
-rw-r--r--nptl/tst-clock2.c4
-rw-r--r--nptl/tst-cond11.c8
-rw-r--r--nptl/tst-cond4.c10
-rw-r--r--nptl/tst-cond6.c8
-rw-r--r--nptl/tst-flock2.c10
-rw-r--r--nptl/tst-mutex4.c10
-rw-r--r--nptl/tst-mutex9.c10
-rw-r--r--nptl/tst-rwlock12.c10
-rw-r--r--nptl/tst-rwlock4.c10
-rw-r--r--nptl/tst-signal1.c10
-rw-r--r--nptl/tst-spin2.c9
-rw-r--r--nscd/Makefile9
-rw-r--r--nscd/connections.c37
-rw-r--r--nscd/gai.c25
-rw-r--r--nscd/nscd.c13
-rw-r--r--sysdeps/generic/errno.c16
-rw-r--r--sysdeps/i386/bits/atomic.h24
-rw-r--r--sysdeps/unix/alpha/sysdep.h2
-rw-r--r--sysdeps/unix/i386/sysdep.S4
-rw-r--r--sysdeps/unix/sysv/linux/Makefile1
-rw-r--r--sysdeps/unix/sysv/linux/i386/sysconf.c42
-rw-r--r--sysdeps/unix/sysv/linux/i386/sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/ia64/Dist1
-rw-r--r--sysdeps/unix/sysv/linux/ia64/clock_getcpuclockid.c28
-rw-r--r--sysdeps/unix/sysv/linux/ia64/has_cpuclock.c52
-rw-r--r--sysdeps/unix/sysv/linux/ia64/sysconf.c45
-rw-r--r--sysdeps/unix/sysv/linux/ia64/sysdep.S2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/sh/sysdep.h6
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/sysdep.h2
-rw-r--r--sysdeps/unix/x86_64/sysdep.S2
56 files changed, 469 insertions, 231 deletions
diff --git a/ChangeLog b/ChangeLog
index fcce2d4263..8f3248f773 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,77 @@
+2004-10-05  Jakub Jelinek  <jakub@redhat.com>
+
+	* sysdeps/unix/sysv/linux/i386/sysconf.c: Include hp-timing.h.
+	(__sysconf): Return -1 for _SC_CPUTIME or _SC_THREAD_CPUTIME if
+	!HP_TIMING_AVAIL.
+
+	* nscd/connections.c: Include dlfcn.h and gnu/lib-names.h.
+	(start_threads): If _POSIX_CLOCK_SELECTION is -1 but
+	_POSIX_THREADS > 0, dlopen LIBPTHREAD_SO and look for
+	pthread_condattr_setclock in it.
+
+	* nscd/Makefile (relro-LDFLAGS): Add -Wl,-z,now if have-z-relro.
+	($(objpfx)nscd): Add $(relro-LDFLAGS).
+
+2004-10-04  Ulrich Drepper  <drepper@redhat.com>
+
+	* nscd/gai.c: Define __no_netlink_support if NEED_NETLINK is
+	defined and __ASSUME_NETLINK_SUPPORT is zero.
+	* sysdeps/unix/sysv/linux/Makefile (CFLAGS-gai.c): Add
+	-DNEED_NETLINK.
+
+	* malloc/mtrace.pl: Avoid calling location unless it is needed for
+	output.  Patch by Edward Bishop <binutils@gmail.com>.
+
+	* nscd/Makefile (CFLAGS-gai.c): Add -fpie.
+
+2004-10-04  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* sysdeps/unix/sysv/linux/ia64/clock_getcpuclockid.c
+	(clock_getcpuclockid): Add missing retval.
+
+	* sysdeps/unix/sysv/linux/ia64/sysconf.c (linux_sysconf): Fix a typo.
+
+2004-10-04  Roland McGrath  <roland@redhat.com>
+
+	* include/errno.h [RTLD_PRIVATE_ERRNO] (errno): Rename the real symbol
+	to rtld_errno.
+	* sysdeps/generic/errno.c [RTLD_PRIVATE_ERRNO] (rtld_errno): Define it,
+	and don't define any other errno names.
+	* sysdeps/unix/alpha/sysdep.h [RTLD_PRIVATE_ERRNO]: Use rtld_errno in
+	place of errno.
+	* sysdeps/unix/i386/sysdep.S: Likewise.
+	* sysdeps/unix/sysv/linux/i386/sysdep.h: Likewise.
+	* sysdeps/unix/sysv/linux/ia64/sysdep.S: Likewise.
+	* sysdeps/unix/sysv/linux/m68k/sysdep.h: Likewise.
+	* sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S: Likewise.
+	* sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h: Likewise.
+	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S: Likewise.
+	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h: Likewise.
+	* sysdeps/unix/sysv/linux/sh/sysdep.h: Likewise.
+	* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/sysdep.h: Likewise.
+	* sysdeps/unix/x86_64/sysdep.S: Likewise.
+
+	* sysdeps/generic/errno.c [! USE___THREAD] (errno): Use `nocommon'
+	attribute instead of `section'.
+
 2004-10-04  Ulrich Drepper  <drepper@redhat.com>
 
+	* sysdeps/unix/sysv/linux/ia64/sysconf.c: New file.
+	* sysdeps/unix/sysv/linux/ia64/Dist: Add has_cpuclock.c.
+	* sysdeps/unix/sysv/linux/ia64/clock_getcpuclockid.c: Move actual
+	testing code to...
+	* sysdeps/unix/sysv/linux/ia64/has_cpuclock.c: ...here.  New file.
+	* sysdeps/unix/sysv/linux/i386/sysconf.c: Add dynamic check for
+	_SC_CPUTIME and _SC_THREAD_CPUTIME.
+
+	* nscd/connections.c (start_threads): Use sysconf in case
+	_POSIX_CLOCK_SELECTION or _POSIX_MONOTONIC_CLOCK is not greater zero.
+
+	* nscd/Makefile (nscd-modules): Add gai.
+	* nscd/gai.c: New file.
+	* nscd/nscd.c: Remove getaddrinfo stub definition.
+
 	* assert/assert.h: Give up on using __builtin_expect.
 
 	* elf/rtld.c (dl_main): Only skip => output in ldd mode if both
@@ -17,7 +89,7 @@
 2004-10-03  Juerg Billeter  <j@bitron.ch>
 
 	* nscd/nscd_initgroups.c (__nscd_getgrouplist): Return -1 if nscd
-	can't be used.
+	can't be used.  [BZ #424]
 
 2004-10-03  Ulrich Drepper  <drepper@redhat.com>
 
@@ -61,7 +133,7 @@
 	don't replace old content.
 
 	* nscd/connections.c: Rewrite handling of incoming connections.  All
-	are handled by one thread which then hands of the descriptors for the
+	are handled by one thread which then hands off the descriptors for the
 	real work to the worker threads.
 	* nscd/Makefile: Link nscd with librt.
 
diff --git a/fedora/branch.mk b/fedora/branch.mk
index 5e0abb6fc6..c73b100249 100644
--- a/fedora/branch.mk
+++ b/fedora/branch.mk
@@ -1,5 +1,5 @@
 # This file is updated automatically by Makefile.
 glibc-branch := fedora
 glibc-base := HEAD
-fedora-sync-date := 2004-10-04 07:47 UTC
-fedora-sync-tag := fedora-glibc-20041004T0747
+fedora-sync-date := 2004-10-05 07:45 UTC
+fedora-sync-tag := fedora-glibc-20041005T0745
diff --git a/fedora/glibc.spec.in b/fedora/glibc.spec.in
index 090a7e4375..351dc9c9ff 100644
--- a/fedora/glibc.spec.in
+++ b/fedora/glibc.spec.in
@@ -1,4 +1,4 @@
-%define glibcrelease 64
+%define glibcrelease 65
 %define auxarches i586 i686 athlon sparcv9 alphaev6
 %define prelinkarches noarch
 %define nptlarches i386 i686 athlon x86_64 ia64 s390 s390x sparcv9 ppc ppc64
@@ -1239,6 +1239,18 @@ rm -f *.filelist*
 %endif
 
 %changelog
+* Tue Oct  5 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-65
+- update from CVS
+  - define _POSIX_THREAD_PROCESS_SHARED and _POSIX_CLOCK_SELECTION
+    to -1 in LinuxThreads
+  - define _POSIX_CPUTIME and _POSIX_THREAD_CPUTIME to 0
+    on i?86/ia64 and make sure sysconf (_SC_{,THREAD_}CPUTIME)
+    returns correct value
+- if _POSIX_CLOCK_SELECTION == -1 in nscd, still try
+  sysconf (_SC_CLOCK_SELECTION) and if it returns true,
+  dlopen libpthread.so and dlsym pthread_condattr_setclock
+- build nscd with -z relro and -z now
+
 * Mon Oct  4 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-64
 - update from CVS
   - stop using __builtin_expect in assert and assert_perror
diff --git a/include/errno.h b/include/errno.h
index 1b0aabc690..13d17f9c0e 100644
--- a/include/errno.h
+++ b/include/errno.h
@@ -14,8 +14,8 @@
    so a single (hidden) global variable is all it needs.  */
 
 #  undef  errno
-#  define errno errno		/* For #ifndef errno tests.  */
-extern int errno attribute_hidden;
+#  define errno rtld_errno
+extern int rtld_errno attribute_hidden;
 
 # else
 
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog
index 2515af95f9..805cdd419d 100644
--- a/linuxthreads/ChangeLog
+++ b/linuxthreads/ChangeLog
@@ -1,3 +1,15 @@
+2004-10-04  Ulrich Drepper  <drepper@redhat.com>
+
+	* sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Set _POSIX_CPUTIME
+	and _POSIX_THREAD_CPUTIME to zero.
+	* sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
+
+	* sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
+	_POSIX_THREAD_PROCESS_SHARED and _POSIX_CLOCK_SELECTION as -1.
+	* sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
+	* sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise.
+
 2004-09-25  Roland McGrath  <roland@redhat.com>
 
 	[BZ #406]
diff --git a/linuxthreads/sysdeps/unix/sysv/linux/bits/posix_opt.h b/linuxthreads/sysdeps/unix/sysv/linux/bits/posix_opt.h
index 06fd0a29b2..1a0f4e0142 100644
--- a/linuxthreads/sysdeps/unix/sysv/linux/bits/posix_opt.h
+++ b/linuxthreads/sysdeps/unix/sysv/linux/bits/posix_opt.h
@@ -132,7 +132,13 @@
 /* POSIX message queues are available.  */
 #define	_POSIX_MESSAGE_PASSING	200112L
 
+/* Thread process-shared synchronization is not supported.  */
+#define _POSIX_THREAD_PROCESS_SHARED	-1
+
 /* The monotonic clock might be available.  */
 #define _POSIX_MONOTONIC_CLOCK	0
 
+/* The clock selection interfaces are not available.  */
+#define _POSIX_CLOCK_SELECTION	-1
+
 #endif /* posix_opt.h */
diff --git a/linuxthreads/sysdeps/unix/sysv/linux/i386/bits/posix_opt.h b/linuxthreads/sysdeps/unix/sysv/linux/i386/bits/posix_opt.h
index 18a840ed98..9c8e706d12 100644
--- a/linuxthreads/sysdeps/unix/sysv/linux/i386/bits/posix_opt.h
+++ b/linuxthreads/sysdeps/unix/sysv/linux/i386/bits/posix_opt.h
@@ -106,10 +106,10 @@
 #define _POSIX_SHARED_MEMORY_OBJECTS	200112L
 
 /* CPU-time clocks supported.  */
-#define _POSIX_CPUTIME	200112L
+#define _POSIX_CPUTIME	0
 
 /* We support the clock also in threads.  */
-#define _POSIX_THREAD_CPUTIME	200112L
+#define _POSIX_THREAD_CPUTIME	0
 
 /* GNU libc provides regular expression handling.  */
 #define _POSIX_REGEXP	1
@@ -138,7 +138,13 @@
 /* POSIX message queues are available.  */
 #define	_POSIX_MESSAGE_PASSING	200112L
 
+/* Thread process-shared synchronization is not supported.  */
+#define _POSIX_THREAD_PROCESS_SHARED	-1
+
 /* The monotonic clock might be available.  */
 #define _POSIX_MONOTONIC_CLOCK	0
 
+/* The clock selection interfaces are not available.  */
+#define _POSIX_CLOCK_SELECTION	-1
+
 #endif /* posix_opt.h */
diff --git a/linuxthreads/sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h b/linuxthreads/sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h
index 07780df9c1..0b18959f3a 100644
--- a/linuxthreads/sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h
+++ b/linuxthreads/sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h
@@ -106,10 +106,10 @@
 #define _POSIX_SHARED_MEMORY_OBJECTS	200112L
 
 /* CPU-time clocks supported.  */
-#define _POSIX_CPUTIME	200112L
+#define _POSIX_CPUTIME	0
 
 /* We support the clock also in threads.  */
-#define _POSIX_THREAD_CPUTIME	200112L
+#define _POSIX_THREAD_CPUTIME	0
 
 /* GNU libc provides regular expression handling.  */
 #define _POSIX_REGEXP	1
@@ -138,7 +138,13 @@
 /* POSIX message queues are available.  */
 #define	_POSIX_MESSAGE_PASSING	200112L
 
+/* Thread process-shared synchronization is not supported.  */
+#define _POSIX_THREAD_PROCESS_SHARED	-1
+
 /* The monotonic clock might be available.  */
 #define _POSIX_MONOTONIC_CLOCK	0
 
+/* The clock selection interfaces are not available.  */
+#define _POSIX_CLOCK_SELECTION	-1
+
 #endif /* posix_opt.h */
diff --git a/linuxthreads/sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h b/linuxthreads/sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h
index 3a5fc7a1e1..b45d121f64 100644
--- a/linuxthreads/sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h
+++ b/linuxthreads/sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h
@@ -138,7 +138,13 @@
 /* POSIX message queues are available.  */
 #define	_POSIX_MESSAGE_PASSING	200112L
 
+/* Thread process-shared synchronization is not supported.  */
+#define _POSIX_THREAD_PROCESS_SHARED	-1
+
 /* The monotonic clock might be available.  */
 #define _POSIX_MONOTONIC_CLOCK	0
 
+/* The clock selection interfaces are not available.  */
+#define _POSIX_CLOCK_SELECTION	-1
+
 #endif /* posix_opt.h */
diff --git a/localedata/ChangeLog b/localedata/ChangeLog
index 7014099b68..065136e8d7 100644
--- a/localedata/ChangeLog
+++ b/localedata/ChangeLog
@@ -1,3 +1,8 @@
+2004-10-04  Ulrich Drepper  <drepper@redhat.com>
+
+	* locales/gu_IN: Update various incorrect and missing information.
+	Patch by Ankit Patel <ankit@redhat.com>.
+
 2004-09-28  Ulrich Drepper  <drepper@redhat.com>
 
 	* locales/nb_NO: Make language field consistent in form with nn_NO.
diff --git a/localedata/locales/gu_IN b/localedata/locales/gu_IN
index 0e0dc65e57..aaca913f2c 100644
--- a/localedata/locales/gu_IN
+++ b/localedata/locales/gu_IN
@@ -1,11 +1,12 @@
 comment_char    %
 escape_char     /
-% Gurajati language locale for India.
-% Copied fron hi_IN one, G Karunakar <karunakar@freedomink.org>
+% Gurajati Language Locale For India.
+% Copied from hi_IN one, G Karunakar <karunakar@freedomink.org>
 % Gujarati stuff from Tapan Parikh <tap2k@yahoo.com>
+% Gujarati stuff Modified by Ankit Patel <ankit@redhat.com>
 
 LC_IDENTIFICATION
-title      "Gujarati language locale for India"
+title      "Gujarati Language Locale For India"
 source     "IndLinux.org"
 address    ""
 contact    ""
@@ -14,8 +15,8 @@ tel        ""
 fax        ""
 language   "Gujarati"
 territory  "India"
-revision   "0.1"
-date       "2003-01-10"
+revision   "0.2"
+date       "2004-14-09"
 %
 category  "gu_IN:2000";LC_IDENTIFICATION
 category  "gu_IN:2000";LC_CTYPE
@@ -53,7 +54,7 @@ currency_symbol       "<U0AB0><U0AC1>"
 mon_decimal_point     "<U002E>"
 mon_thousands_sep     "<U002C>"
 mon_grouping          3
-positive_sign         ""
+positive_sign         "<U002B>"
 negative_sign         "<U002D>"
 int_frac_digits       2
 frac_digits           2
@@ -79,7 +80,7 @@ LC_TIME
 % Abbreviated weekday names (%a)
 abday		"<U0AB0><U0AB5><U0ABF>";/
 		"<U0AB8><U0ACB><U0AAE>";/
-		"<U0AAE><U0AA8><U0ACD><U0A97><U0AB3>";/
+		"<U0AAE><U0A82><U0A97><U0AB3>";/
 		"<U0AAC><U0AC1><U0AA7>";/
 		"<U0A97><U0AC1><U0AB0><U0AC1>";/
 		"<U0AB6><U0AC1><U0A95><U0ACD><U0AB0>";/
@@ -89,7 +90,7 @@ abday		"<U0AB0><U0AB5><U0ABF>";/
 % Full weekday names (%A)
 day		"<U0AB0><U0AB5><U0ABF><U0AB5><U0ABE><U0AB0>";/
 		"<U0AB8><U0ACB><U0AAE><U0AB5><U0ABE><U0AB0>";/
-		"<U0AAE><U0AA8><U0ACD><U0A97><U0AB3><U0AB5><U0ABE><U0AB0>";/
+		"<U0AAE><U0A82><U0A97><U0AB3><U0AB5><U0ABE><U0AB0>";/
 		"<U0AAC><U0AC1><U0AA7><U0AB5><U0ABE><U0AB0>";/
 		"<U0A97><U0AC1><U0AB0><U0AC1><U0AB5><U0ABE><U0AB0>";/
 		"<U0AB6><U0AC1><U0A95><U0ACD><U0AB0><U0AB5><U0ABE><U0AB0>";/
@@ -104,7 +105,7 @@ abmon 		"<U0A9C><U0ABE><U0AA8>";/
 		"<U0A9C><U0AC1><U0AA8>";/
 		"<U0A9C><U0AC1><U0AB2>";/
 		"<U0A93><U0A97>";/
-		"<U0AB8><U0AC7><U0AAA><U0ACD><U0A9F>";/
+		"<U0AB8><U0AAA><U0ACD><U0A9F>";/
 		"<U0A93><U0A95><U0ACD><U0A9F>";/
 		"<U0AA8><U0ACB><U0AB5>";/
 		"<U0AA1><U0ABF><U0AB8>"
@@ -119,7 +120,7 @@ mon	"<U0A9C><U0ABE><U0AA8><U0ACD><U0AAF><U0AC1><U0A86><U0AB0><U0AC0>";/
 	"<U0A9C><U0AC1><U0AA8>";/
 	"<U0A9C><U0AC1><U0AB2><U0ABE><U0A87>";/
 	"<U0A93><U0A97><U0AB8><U0ACD><U0A9F>";/
-	"<U0AB8><U0AC7><U0AAA><U0ACD><U0A9F><U0AC7><U0AAE><U0ACD><U0AAC><U0AB0>";/
+	"<U0AB8><U0AAA><U0ACD><U0A9F><U0AC7><U0AAE><U0ACD><U0AAC><U0AB0>";/
 	"<U0A93><U0A95><U0ACD><U0A9F><U0ACB><U0AAC><U0AB0>";/
 	"<U0AA8><U0AB5><U0AC7><U0AAE><U0ACD><U0AAC><U0AB0>";/
 	"<U0AA1><U0ABF><U0AB8><U0AC7><U0AAE><U0ACD><U0AAC><U0AB0>"
@@ -127,9 +128,9 @@ mon	"<U0A9C><U0ABE><U0AA8><U0ACD><U0AAF><U0AC1><U0A86><U0AB0><U0AC0>";/
 %
 % Equivalent of AM PM
 am_pm		"<U0AB8><U0AB5><U0ABE><U0AB0><U0AC7>";/
-		"<U0AB8><U0ABE><U0AA8><U0ACD><U0A9C><U0AC7>"
+		"<U0AB8><U0ABE><U0A82><U0A9C><U0AC7>"
 
-% *** There arent any Devanagari characters below, so for time being
+% *** There aren't any Devanagari characters below, so for time being
 % *** maintain same for Gujarati also,  Karunakar
 
 %
@@ -158,10 +159,9 @@ date_fmt       "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
 <U0025><U005A><U0020><U0025><U0059>"
 END LC_TIME
 
-
 LC_MESSAGES
-yesexpr "<U005E><U005B><U0079><U0059><U005D><U002E><U002A>"
-noexpr  "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
+yesexpr "<U005E><U005B><U0079><U0059><U0AB9><U005D>"
+noexpr  "<U005E><U005B><U006E><U004E><U0AA8><U005D>"
 END LC_MESSAGES
 
 
@@ -176,12 +176,11 @@ LC_NAME
 %
 name_fmt    "<U0025><U0070><U0025><U0074><U0025><U0066><U0025><U0074>/
 <U0025><U0067>"
-% ***** We can have Gujarati eqv for below , Karunakar
-name_gen    ""
-name_mr     "<U004D><U0072><U002E>"
-name_mrs    "<U004D><U0072><U0073><U002E>"
-name_miss   "<U004D><U0069><U0073><U0073><U002E>"
-name_ms     "<U004D><U0073><U002E>"
+name_gen    "<U0A9C><U0ABE><U0AA4><U0ABF>"
+name_mr     "<U0AB6><U0ACD><U0AB0><U0AC0><U0AAE><U0ABE><U0AA8>"
+name_mrs    "<U0AB6><U0ACD><U0AB0><U0AC0><U0AAE><U0AA4><U0ABF>"
+name_miss   "<U0A95><U0AC1><U0AAE><U0ABE><U0AB0><U0AC0>"
+name_ms     "<U0AB8><U0AB6><U0ACD><U0AB0><U0AC0>"
 
 END LC_NAME
 
diff --git a/malloc/mtrace.pl b/malloc/mtrace.pl
index 2d12929432..1640fa652d 100644
--- a/malloc/mtrace.pl
+++ b/malloc/mtrace.pl
@@ -165,17 +165,18 @@ while (<DATA>) {
 	if ($cols[$n] eq "+") {
 	    if (defined $allocated{$allocaddr}) {
 		printf ("+ %#0@XXX@x Alloc %d duplicate: %s %s\n",
-			hex($allocaddr), $nr, $wherewas{$allocaddr}, $where);
+			hex($allocaddr), $nr, &location($addrwas{$allocaddr}),
+			$where);
 	    } else {
 		$allocated{$allocaddr}=$howmuch;
-		$wherewas{$allocaddr}=&location($where);
+		$addrwas{$allocaddr}=$where;
 	    }
 	    last SWITCH;
 	}
 	if ($cols[$n] eq "-") {
 	    if (defined $allocated{$allocaddr}) {
 		undef $allocated{$allocaddr};
-		undef $wherewas{$allocaddr};
+		undef $addrwas{$allocaddr};
 	    } else {
 		printf ("- %#0@XXX@x Free %d was never alloc'd %s\n",
 			hex($allocaddr), $nr, &location($where));
@@ -185,7 +186,7 @@ while (<DATA>) {
 	if ($cols[$n] eq "<") {
 	    if (defined $allocated{$allocaddr}) {
 		undef $allocated{$allocaddr};
-		undef $wherewas{$allocaddr};
+		undef $addrwas{$allocaddr};
 	    } else {
 		printf ("- %#0@XXX@x Realloc %d was never alloc'd %s\n",
 			hex($allocaddr), $nr, &location($where));
@@ -196,10 +197,10 @@ while (<DATA>) {
 	    if (defined $allocated{$allocaddr}) {
 		printf ("+ %#0@XXX@x Realloc %d duplicate: %#010x %s %s\n",
 			hex($allocaddr), $nr, $allocated{$allocaddr},
-			$wherewas{$allocaddr}, &location($where));
+			&location($addrwas{$allocaddr}), &location($where));
 	    } else {
 		$allocated{$allocaddr}=$howmuch;
-		$wherewas{$allocaddr}=&location($where);
+		$addrwas{$allocaddr}=$where;
 	    }
 	    last SWITCH;
 	}
@@ -227,7 +228,7 @@ if ($#addrs >= 0) {
 		$anything=1;
 	    }
 	    printf ("%#0@XXX@x %#8x  at %s\n", hex($addr), $allocated{$addr},
-		    $wherewas{$addr});
+		    &location($addrwas{$addr}));
 	}
     }
 }
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index 90c7d5fb21..d52bd5ccc2 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,25 @@
+2004-10-04  Ulrich Drepper  <drepper@redhat.com>
+
+	* sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Define _POSIX_CPUTIME
+	and _POSIX_THREAD_CPUTIME to zero.
+	* sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
+	* tst-barrier2.c: Fix testing for POSIX feature.
+	* tst-clock1.c: Likewise.
+	* tst-clock2.c: Likewise.
+	* tst-cond11.c: Likewise.
+	* tst-cond4.c: Likewise.
+	* tst-cond6.c: Likewise.
+	* tst-flock2.c: Likewise.
+	* tst-mutex4.c: Likewise.
+	* tst-mutex9.c: Likewise.
+	* tst-rwlock12.c: Likewise.
+	* tst-rwlock4.c: Likewise.
+	* tst-signal1.c: Likewise.
+	* tst-spin2.c: Likewise.
+	* sysdeps/pthread/posix-timer.h: Likewise.
+	* sysdeps/pthread/timer_create.c: Likewise.
+	* sysdeps/pthread/timer_routines.c: Likewise.
+
 2004-10-01  Ulrich Drepper  <drepper@redhat.com>
 
 	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
diff --git a/nptl/sysdeps/pthread/posix-timer.h b/nptl/sysdeps/pthread/posix-timer.h
index 948b1694c4..843e44711a 100644
--- a/nptl/sysdeps/pthread/posix-timer.h
+++ b/nptl/sysdeps/pthread/posix-timer.h
@@ -1,5 +1,5 @@
 /* Definitions for POSIX timer implementation on top of NPTL.
-   Copyright (C) 2000, 2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 2000, 2002, 2003, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Kaz Kylheku <kaz@ashi.footprints.net>.
 
@@ -92,10 +92,10 @@ extern int __timer_init_failed;
 /* A distinct thread is used for each clock type.  */
 
 extern struct thread_node __timer_signal_thread_rclk;
-#ifdef _POSIX_CPUTIME
+#if defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0
 extern struct thread_node __timer_signal_thread_pclk;
 #endif
-#ifdef _POSIX_THREAD_CPUTIME
+#if defined _POSIX_THREAD_CPUTIME && _POSIX_THREAD_CPUTIME >= 0
 extern struct thread_node __timer_signal_thread_tclk;
 #endif
 
diff --git a/nptl/sysdeps/pthread/timer_create.c b/nptl/sysdeps/pthread/timer_create.c
index b74fafda62..57dd39e81b 100644
--- a/nptl/sysdeps/pthread/timer_create.c
+++ b/nptl/sysdeps/pthread/timer_create.c
@@ -38,10 +38,10 @@ timer_create (clock_id, evp, timerid)
   struct thread_node *thread = NULL;
 
   if (0
-#ifdef _POSIX_CPUTIME
+#ifdef CLOCK_PROCESS_CPUTIME_ID
       || clock_id == CLOCK_PROCESS_CPUTIME_ID
 #endif
-#ifdef _POSIX_THREAD_CPUTIME
+#ifdef CLOCK_THREAD_CPUTIME_ID
       || clock_id == CLOCK_THREAD_CPUTIME_ID
 #endif
       )
@@ -100,12 +100,12 @@ timer_create (clock_id, evp, timerid)
 	default:
 	  thread = &__timer_signal_thread_rclk;
 	  break;
-#ifdef _POSIX_CPUTIME
+#ifdef CLOCK_PROCESS_CPUTIME_ID
 	case CLOCK_PROCESS_CPUTIME_ID:
 	  thread = &__timer_signal_thread_pclk;
 	  break;
 #endif
-#ifdef _POSIX_THREAD_CPUTIME
+#ifdef CLOCK_THREAD_CPUTIME_ID
 	case CLOCK_THREAD_CPUTIME_ID:
 	  thread = &__timer_signal_thread_tclk;
 	  break;
diff --git a/nptl/sysdeps/pthread/timer_routines.c b/nptl/sysdeps/pthread/timer_routines.c
index 3ee8fef17b..caa93433e3 100644
--- a/nptl/sysdeps/pthread/timer_routines.c
+++ b/nptl/sysdeps/pthread/timer_routines.c
@@ -53,10 +53,10 @@ int __timer_init_failed;
 
 /* Node for the thread used to deliver signals.  */
 struct thread_node __timer_signal_thread_rclk;
-#ifdef _POSIX_CPUTIME
+#if defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0
 struct thread_node __timer_signal_thread_pclk;
 #endif
-#ifdef _POSIX_THREAD_CPUTIME
+#if defined _POSIX_THREAD_CPUTIME && _POSIX_THREAD_CPUTIME >= 0
 struct thread_node __timer_signal_thread_tclk;
 #endif
 
@@ -191,10 +191,10 @@ init_module (void)
     list_append (&thread_free_list, &thread_array[i].links);
 
   thread_init (&__timer_signal_thread_rclk, 0, CLOCK_REALTIME);
-#ifdef _POSIX_CPUTIME
+#if defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0
   thread_init (&__timer_signal_thread_pclk, 0, CLOCK_PROCESS_CPUTIME_ID);
 #endif
-#ifdef _POSIX_THREAD_CPUTIME
+#if defined _POSIX_THREAD_CPUTIME && _POSIX_THREAD_CPUTIME >= 0
   thread_init (&__timer_signal_thread_tclk, 0, CLOCK_THREAD_CPUTIME_ID);
 #endif
 }
@@ -281,10 +281,10 @@ thread_cleanup (void *val)
 
       /* How did the signal thread get killed?  */
       assert (thread != &__timer_signal_thread_rclk);
-#ifdef _POSIX_CPUTIME
+#if defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0
       assert (thread != &__timer_signal_thread_pclk);
 #endif
-#ifdef _POSIX_THREAD_CPUTIME
+#if defined _POSIX_THREAD_CPUTIME && _POSIX_THREAD_CPUTIME >= 0
       assert (thread != &__timer_signal_thread_tclk);
 #endif
 
diff --git a/nptl/sysdeps/unix/sysv/linux/i386/bits/posix_opt.h b/nptl/sysdeps/unix/sysv/linux/i386/bits/posix_opt.h
index d8ece5efdc..6c138f3ae5 100644
--- a/nptl/sysdeps/unix/sysv/linux/i386/bits/posix_opt.h
+++ b/nptl/sysdeps/unix/sysv/linux/i386/bits/posix_opt.h
@@ -103,10 +103,10 @@
 #define _POSIX_SHARED_MEMORY_OBJECTS	200112L
 
 /* CPU-time clocks supported.  */
-#define _POSIX_CPUTIME 200112L
+#define _POSIX_CPUTIME 0
 
 /* We support the clock also in threads.  */
-#define _POSIX_THREAD_CPUTIME  200112L
+#define _POSIX_THREAD_CPUTIME  0
 
 /* GNU libc provides regular expression handling.  */
 #define _POSIX_REGEXP	1
diff --git a/nptl/sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h b/nptl/sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h
index 7563de8ad2..2b5a3e6db8 100644
--- a/nptl/sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h
+++ b/nptl/sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h
@@ -103,10 +103,10 @@
 #define _POSIX_SHARED_MEMORY_OBJECTS	200112L
 
 /* CPU-time clocks supported.  */
-#define _POSIX_CPUTIME 200112L
+#define _POSIX_CPUTIME 0
 
 /* We support the clock also in threads.  */
-#define _POSIX_THREAD_CPUTIME  200112L
+#define _POSIX_THREAD_CPUTIME  0
 
 /* GNU libc provides regular expression handling.  */
 #define _POSIX_REGEXP	1
diff --git a/nptl/tst-barrier2.c b/nptl/tst-barrier2.c
index b147ae1bfb..7f588694d6 100644
--- a/nptl/tst-barrier2.c
+++ b/nptl/tst-barrier2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -31,12 +31,6 @@
 static int
 do_test (void)
 {
-#if ! _POSIX_THREAD_PROCESS_SHARED
-
-  puts ("_POSIX_THREAD_PROCESS_SHARED not supported, test skipped");
-
-#else
-
   size_t ps = sysconf (_SC_PAGESIZE);
   char tmpfname[] = "/tmp/tst-barrier2.XXXXXX";
   char data[ps];
@@ -183,7 +177,6 @@ do_test (void)
 	      WEXITSTATUS (status) + serials, N);
       return 1;
     }
-#endif
 
   return 0;
 }
diff --git a/nptl/tst-clock1.c b/nptl/tst-clock1.c
index fbb5fa907e..cba197943a 100644
--- a/nptl/tst-clock1.c
+++ b/nptl/tst-clock1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2003, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
 
@@ -27,13 +27,13 @@
 int
 do_test (void)
 {
-#if _POSIX_THREAD_CPUTIME
+#ifdef _POSIX_THREAD_CPUTIME && _POSIX_THREAD_CPUTIME >= 0
   clockid_t cl;
   /* This is really only a linking-test here.  */
   int e = pthread_getcpuclockid (pthread_self (), &cl);
   if (e != 0)
     {
-# if _POSIX_THREAD_CPUTIME < 0
+# if _POSIX_THREAD_CPUTIME == 0
       if (sysconf (_SC_THREAD_CPUTIME) >= 0)
 # endif
 	{
diff --git a/nptl/tst-clock2.c b/nptl/tst-clock2.c
index 54f5041282..2ea2a529aa 100644
--- a/nptl/tst-clock2.c
+++ b/nptl/tst-clock2.c
@@ -25,7 +25,7 @@
 #include <unistd.h>
 
 
-#if _POSIX_THREAD_CPUTIME
+#ifdef _POSIX_THREAD_CPUTIME && _POSIX_THREAD_CPUTIME >= 0
 static pthread_barrier_t b2;
 static pthread_barrier_t bN;
 
@@ -55,7 +55,7 @@ tf (void *arg)
 int
 do_test (void)
 {
-#if _POSIX_THREAD_CPUTIME
+#if defined _POSIX_THREAD_CPUTIME && _POSIX_THREAD_CPUTIME >= 0
 # define N 10
 
   if (pthread_barrier_init (&b2, NULL, 2) != 0
diff --git a/nptl/tst-cond11.c b/nptl/tst-cond11.c
index 079dec5afc..90a3e15868 100644
--- a/nptl/tst-cond11.c
+++ b/nptl/tst-cond11.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2003, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
 
@@ -24,7 +24,7 @@
 #include <unistd.h>
 
 
-#if _POSIX_CLOCK_SELECTION
+#ifdef _POSIX_CLOCK_SELECTION && _POSIX_CLOCK_SELECTION >= 0
 static int
 run_test (clockid_t cl)
 {
@@ -156,7 +156,7 @@ run_test (clockid_t cl)
 static int
 do_test (void)
 {
-#if ! _POSIX_CLOCK_SELECTION
+#if !defined _POSIX_CLOCK_SELECTION || _POSIX_CLOCK_SELECTION == -1
 
   puts ("_POSIX_CLOCK_SELECTION not supported, test skipped");
   return 0;
@@ -165,7 +165,7 @@ do_test (void)
 
   int res = run_test (CLOCK_REALTIME);
 
-# if defined _POSIX_MONOTONIC_CLOCK
+# if defined _POSIX_MONOTONIC_CLOCK && _POSIX_MONOTONIC_CLOCK >= 0
 #  if _POSIX_MONOTONIC_CLOCK == 0
   int e = sysconf (_SC_MONOTONIC_CLOCK);
   if (e < 0)
diff --git a/nptl/tst-cond4.c b/nptl/tst-cond4.c
index 071528df0e..58c2bdaf07 100644
--- a/nptl/tst-cond4.c
+++ b/nptl/tst-cond4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -32,13 +32,6 @@ int *condition;
 static int
 do_test (void)
 {
-#if ! _POSIX_THREAD_PROCESS_SHARED
-
-  puts ("_POSIX_THREAD_PROCESS_SHARED not supported, test skipped");
-  return 0;
-
-#else
-
   size_t ps = sysconf (_SC_PAGESIZE);
   char tmpfname[] = "/tmp/tst-cond4.XXXXXX";
   char data[ps];
@@ -264,7 +257,6 @@ do_test (void)
     }
 
  return result;
-#endif
 }
 
 #define TEST_FUNCTION do_test ()
diff --git a/nptl/tst-cond6.c b/nptl/tst-cond6.c
index be429df96d..b5dcaa810d 100644
--- a/nptl/tst-cond6.c
+++ b/nptl/tst-cond6.c
@@ -34,13 +34,6 @@ int *condition;
 static int
 do_test (void)
 {
-#if ! _POSIX_THREAD_PROCESS_SHARED
-
-  puts ("_POSIX_THREAD_PROCESS_SHARED not supported, test skipped");
-  return 0;
-
-#else
-
   size_t ps = sysconf (_SC_PAGESIZE);
   char tmpfname[] = "/tmp/tst-cond6.XXXXXX";
   char data[ps];
@@ -234,7 +227,6 @@ do_test (void)
     }
 
  return result;
-#endif
 }
 
 #define TEST_FUNCTION do_test ()
diff --git a/nptl/tst-flock2.c b/nptl/tst-flock2.c
index fdbffbb272..8ef3206cc4 100644
--- a/nptl/tst-flock2.c
+++ b/nptl/tst-flock2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -59,13 +59,6 @@ tf (void *arg)
 static int
 do_test (void)
 {
-#if ! _POSIX_THREAD_PROCESS_SHARED
-
-  puts ("_POSIX_THREAD_PROCESS_SHARED not supported, test skipped");
-  return 0;
-
-#else
-
   char tmp[] = "/tmp/tst-flock2-XXXXXX";
 
   fd = mkstemp (tmp);
@@ -261,7 +254,6 @@ do_test (void)
     }
 
   return status;
-#endif
 }
 
 #define TEST_FUNCTION do_test ()
diff --git a/nptl/tst-mutex4.c b/nptl/tst-mutex4.c
index 9caed444c1..0ce7313caf 100644
--- a/nptl/tst-mutex4.c
+++ b/nptl/tst-mutex4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -31,13 +31,6 @@
 static int
 do_test (void)
 {
-#if ! _POSIX_THREAD_PROCESS_SHARED
-
-  puts ("_POSIX_THREAD_PROCESS_SHARED not supported, test skipped");
-  return 0;
-
-#else
-
   size_t ps = sysconf (_SC_PAGESIZE);
   char tmpfname[] = "/tmp/tst-mutex4.XXXXXX";
   char data[ps];
@@ -191,7 +184,6 @@ do_test (void)
     }
 
   return 0;
-#endif
 }
 
 #define TIMEOUT 4
diff --git a/nptl/tst-mutex9.c b/nptl/tst-mutex9.c
index 94e993c5cb..5ea2f0ac99 100644
--- a/nptl/tst-mutex9.c
+++ b/nptl/tst-mutex9.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2003, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
 
@@ -29,13 +29,6 @@
 static int
 do_test (void)
 {
-#if ! _POSIX_THREAD_PROCESS_SHARED
-
-  puts ("_POSIX_THREAD_PROCESS_SHARED not supported, test skipped");
-  return 0;
-
-#else
-
   size_t ps = sysconf (_SC_PAGESIZE);
   char tmpfname[] = "/tmp/tst-mutex9.XXXXXX";
   char data[ps];
@@ -186,7 +179,6 @@ do_test (void)
     }
 
   return 0;
-#endif
 }
 
 #define TIMEOUT 3
diff --git a/nptl/tst-rwlock12.c b/nptl/tst-rwlock12.c
index 159d469afc..91f25d3b1e 100644
--- a/nptl/tst-rwlock12.c
+++ b/nptl/tst-rwlock12.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -31,13 +31,6 @@
 static int
 do_test (void)
 {
-#if ! _POSIX_THREAD_PROCESS_SHARED
-
-  puts ("_POSIX_THREAD_PROCESS_SHARED not supported, test skipped");
-  return 0;
-
-#else
-
   size_t ps = sysconf (_SC_PAGESIZE);
   char tmpfname[] = "/tmp/tst-rwlock12.XXXXXX";
   char data[ps];
@@ -209,7 +202,6 @@ do_test (void)
     }
 
   return status;
-#endif
 }
 
 #define TEST_FUNCTION do_test ()
diff --git a/nptl/tst-rwlock4.c b/nptl/tst-rwlock4.c
index 1fb47f7cd3..8de0121b30 100644
--- a/nptl/tst-rwlock4.c
+++ b/nptl/tst-rwlock4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -31,13 +31,6 @@
 static int
 do_test (void)
 {
-#if ! _POSIX_THREAD_PROCESS_SHARED
-
-  puts ("_POSIX_THREAD_PROCESS_SHARED not supported, test skipped");
-  return 0;
-
-#else
-
   size_t ps = sysconf (_SC_PAGESIZE);
   char tmpfname[] = "/tmp/tst-rwlock4.XXXXXX";
   char data[ps];
@@ -191,7 +184,6 @@ do_test (void)
     }
 
   return 0;
-#endif
 }
 
 #define TEST_FUNCTION do_test ()
diff --git a/nptl/tst-signal1.c b/nptl/tst-signal1.c
index ad4b7870cf..3022f1846f 100644
--- a/nptl/tst-signal1.c
+++ b/nptl/tst-signal1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -94,13 +94,6 @@ receiver (void)
 static int
 do_test (void)
 {
-#if ! _POSIX_THREAD_PROCESS_SHARED
-
-  puts ("_POSIX_THREAD_PROCESS_SHARED not supported, test skipped");
-  return 0;
-
-#else
-
   char tmp[] = "/tmp/tst-signal1-XXXXXX";
 
   int fd = mkstemp (tmp);
@@ -190,7 +183,6 @@ do_test (void)
     }
 
   return 0;
-#endif
 }
 
 #define TEST_FUNCTION do_test ()
diff --git a/nptl/tst-spin2.c b/nptl/tst-spin2.c
index 95a9293316..5b1df6c4a8 100644
--- a/nptl/tst-spin2.c
+++ b/nptl/tst-spin2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -31,12 +31,6 @@
 static int
 do_test (void)
 {
-#if ! _POSIX_THREAD_PROCESS_SHARED
-
-  puts ("_POSIX_THREAD_PROCESS_SHARED not supported, test skipped");
-
-#else
-
   size_t ps = sysconf (_SC_PAGESIZE);
   char tmpfname[] = "/tmp/tst-spin2.XXXXXX";
   char data[ps];
@@ -157,7 +151,6 @@ do_test (void)
 
       puts ("parent done");
     }
-#endif
 
   return 0;
 }
diff --git a/nscd/Makefile b/nscd/Makefile
index b0ef3cd5f2..b197b3fc6b 100644
--- a/nscd/Makefile
+++ b/nscd/Makefile
@@ -32,7 +32,7 @@ vpath %.c ../locale/programs
 nscd-modules := nscd connections pwdcache getpwnam_r getpwuid_r grpcache \
 		getgrnam_r getgrgid_r hstcache gethstbyad_r gethstbynm2_r \
 		dbg_log nscd_conf nscd_stat cache mem nscd_setup_thread \
-		xmalloc xstrdup aicache initgrcache
+		xmalloc xstrdup aicache initgrcache gai
 
 ifeq ($(have-thread-library),yes)
 
@@ -96,11 +96,16 @@ CFLAGS-nscd_setup_thread.c += $(nscd-cflags)
 CFLAGS-aicache.c += $(nscd-cflags)
 CFLAGS-selinux.c += $(nscd-cflags)
 CFLAGS-initgrcache.c += $(nscd-cflags)
+CFLAGS-gai.c += $(nscd-cflags)
 
 ifeq (yesyes,$(have-fpie)$(build-shared))
+ifeq (yes,$(have-z-relro))
+relro-LDFLAGS += -Wl,-z,now
+endif
+
 $(objpfx)nscd: $(addprefix $(objpfx),$(nscd-modules:=.o))
 	$(LINK.o) -pie -Wl,-O1 \
-	  $(sysdep-LDFLAGS) $(config-LDFLAGS) \
+	  $(sysdep-LDFLAGS) $(config-LDFLAGS) $(relro-LDFLAGS) \
 	  $(extra-B-$(@F:lib%.so=%).so) -B$(csu-objpfx) \
 	  $(extra-B-$(@F:lib%.so=%).so) $(load-map-file) \
 	  $(LDFLAGS) $(LDFLAGS-$(@F)) \
diff --git a/nscd/connections.c b/nscd/connections.c
index 2bd3bec5b0..d9c11f5425 100644
--- a/nscd/connections.c
+++ b/nscd/connections.c
@@ -21,6 +21,7 @@
 #include <alloca.h>
 #include <assert.h>
 #include <atomic.h>
+#include <dlfcn.h>
 #include <error.h>
 #include <errno.h>
 #include <fcntl.h>
@@ -42,6 +43,7 @@
 #include <sys/socket.h>
 #include <sys/stat.h>
 #include <sys/un.h>
+#include <gnu/lib-names.h>
 
 #include "nscd.h"
 #include "dbg_log.h"
@@ -1455,12 +1457,39 @@ start_threads (void)
   pthread_condattr_t condattr;
   pthread_condattr_init (&condattr);
 
-#if _POSIX_CLOCK_SELECTION >= 0 && _POSIX_MONOTONIC_CLOCK >= 0
+#if defined _POSIX_MONOTONIC_CLOCK && _POSIX_MONOTONIC_CLOCK >= 0
   /* Determine whether the monotonous clock is available.  */
   struct timespec dummy;
-  if (clock_getres (CLOCK_MONOTONIC, &dummy) == 0
-      && pthread_condattr_setclock (&condattr, CLOCK_MONOTONIC) == 0)
-    timeout_clock = CLOCK_MONOTONIC;
+# if _POSIX_MONOTONIC_CLOCK == 0
+  if (sysconf (_SC_MONOTONIC_CLOCK) > 0)
+# endif
+    {
+# if defined _POSIX_CLOCK_SELECTION && _POSIX_CLOCK_SELECTION >= 0
+#  if _POSIX_CLOCK_SELECTION == 0
+      if (sysconf (_SC_CLOCK_SELECTION) > 0)
+#  endif
+        if (clock_getres (CLOCK_MONOTONIC, &dummy) == 0
+            && pthread_condattr_setclock (&condattr, CLOCK_MONOTONIC) == 0)
+          timeout_clock = CLOCK_MONOTONIC;
+# elif _POSIX_THREADS > 0
+      if (sysconf (_SC_CLOCK_SELECTION) > 0)
+        {
+          void *h = __libc_dlopen (LIBPTHREAD_SO);
+          int (*condattr_setclock) (pthread_condattr_t *, __clockid_t) = NULL;
+
+          if (h != NULL)
+            condattr_setclock = __libc_dlsym (h, "pthread_condattr_setclock");
+
+          if (condattr_setclock
+              && clock_getres (CLOCK_MONOTONIC, &dummy) == 0
+              && condattr_setclock (&condattr, CLOCK_MONOTONIC) == 0)
+            timeout_clock = CLOCK_MONOTONIC;
+
+          if (h != NULL)
+            __libc_dlclose (h);
+        }
+# endif
+    }
 #endif
 
   pthread_cond_init (&readylist_cond, &condattr);
diff --git a/nscd/gai.c b/nscd/gai.c
new file mode 100644
index 0000000000..722c7e415d
--- /dev/null
+++ b/nscd/gai.c
@@ -0,0 +1,25 @@
+/* This file uses the getaddrinfo code but it compiles it without NSCD
+   support.  We just need a few symbol renames.  */
+#define __getservbyname_r getservbyname_r
+#define __inet_aton inet_aton
+#define __getsockname getsockname
+#define __socket socket
+#define __recvmsg recvmsg
+#define __bind bind
+#define __sendto sendto
+#define __strchrnul strchrnul
+
+#include <getaddrinfo.c>
+
+/* Support code.  */
+#include <check_pf.c>
+#ifdef HAVE_LIBIDN
+# include <libidn/idn-stub.c>
+#endif
+
+/* Some variables normally defined in libc.  */
+service_user *__nss_hosts_database;
+
+#if defined NEED_NETLINK && __ASSUME_NETLINK_SUPPORT == 0
+int __no_netlink_support attribute_hidden;
+#endif
diff --git a/nscd/nscd.c b/nscd/nscd.c
index 15a7ea2530..5cca127f91 100644
--- a/nscd/nscd.c
+++ b/nscd/nscd.c
@@ -510,16 +510,3 @@ write_pid (const char *file)
 
   return 0;
 }
-
-
-/* This is an ugly hack which prevents getaddrinfo from being dragged
-   into nscd.  There currently is no special getaddrinfo version for
-   use in nscd.  In case it should be necessary such a version must be
-   created and this dummy version should be removed.  */
-extern void getaddrinfo (void) __attribute ((visibility ("hidden")));
-
-void
-getaddrinfo (void)
-{
-  abort ();
-}
diff --git a/sysdeps/generic/errno.c b/sysdeps/generic/errno.c
index 10dbabe762..03d661b717 100644
--- a/sysdeps/generic/errno.c
+++ b/sysdeps/generic/errno.c
@@ -22,24 +22,32 @@
 #include <dl-sysdep.h>
 #undef errno
 
-#if USE___THREAD
+#if RTLD_PRIVATE_ERRNO
+
+/* Code compiled for rtld refers only to this name.  */
+int rtld_errno attribute_hidden;
+
+#elif USE___THREAD
+
 __thread int errno;
 extern __thread int __libc_errno __attribute__ ((alias ("errno")))
   attribute_hidden;
+
 #else
+
 /* This differs from plain `int errno;' in that it doesn't create
    a common definition, but a plain symbol that resides in .bss,
    which can have an alias.  */
-int errno __attribute__ ((section (".bss")));
+int errno __attribute__ ((nocommon));
 strong_alias (errno, _errno)
 
 /* We declare these with compat_symbol so that they are not visible at
    link time.  Programs must use the accessor functions.  RTLD is special,
    since it's not exported from there at any time.  */
-# if defined HAVE_ELF && defined SHARED && defined DO_VERSIONING \
-     && !RTLD_PRIVATE_ERRNO
+# if defined HAVE_ELF && defined SHARED && defined DO_VERSIONING
 #  include <shlib-compat.h>
 compat_symbol (libc, errno, errno, GLIBC_2_0);
 compat_symbol (libc, _errno, _errno, GLIBC_2_0);
 # endif
+
 #endif
diff --git a/sysdeps/i386/bits/atomic.h b/sysdeps/i386/bits/atomic.h
index d8aa448d7d..27840f9fe3 100644
--- a/sysdeps/i386/bits/atomic.h
+++ b/sysdeps/i386/bits/atomic.h
@@ -95,17 +95,29 @@ init_has_cmpxchg (void)							      \
 # define __arch_compare_and_exchange_val_16_acq(mem, newval, oldval) \
   ({ __typeof (*mem) ret;						      \
      if (__builtin_expect (has_cmpxchg, 1))				      \
-     __asm __volatile (LOCK_PREFIX "cmpxchgw %w2, %1"			      \
-		       : "=a" (ret), "=m" (*mem)			      \
-		       : "r" (newval), "m" (*mem), "0" (oldval));	      \
+       __asm __volatile (LOCK_PREFIX "cmpxchgw %w2, %1"			      \
+			 : "=a" (ret), "=m" (*mem)			      \
+			 : "r" (newval), "m" (*mem), "0" (oldval));	      \
+     else								      \
+       {								      \
+	 ret = *mem;							      \
+	 if (ret == oldval)						      \
+	   *mem = (newval);						      \
+       }								      \
      ret; })
 
 # define __arch_compare_and_exchange_val_32_acq(mem, newval, oldval) \
   ({ __typeof (*mem) ret;						      \
      if (__builtin_expect (has_cmpxchg, 1))				      \
-     __asm __volatile (LOCK_PREFIX "cmpxchgl %2, %1"			      \
-		       : "=a" (ret), "=m" (*mem)			      \
-		       : "r" (newval), "m" (*mem), "0" (oldval));	      \
+       __asm __volatile (LOCK_PREFIX "cmpxchgl %2, %1"			      \
+			 : "=a" (ret), "=m" (*mem)			      \
+			 : "r" (newval), "m" (*mem), "0" (oldval));	      \
+     else								      \
+       {								      \
+	 ret = *mem;							      \
+	 if (ret == oldval)						      \
+	   *mem = (newval);						      \
+       }								      \
      ret; })
 
 /* XXX We do not really need 64-bit compare-and-exchange.  At least
diff --git a/sysdeps/unix/alpha/sysdep.h b/sysdeps/unix/alpha/sysdep.h
index 5259c09a91..f9f1dd6e41 100644
--- a/sysdeps/unix/alpha/sysdep.h
+++ b/sysdeps/unix/alpha/sysdep.h
@@ -82,7 +82,7 @@
 #if RTLD_PRIVATE_ERRNO
 # define SYSCALL_ERROR_LABEL	$syscall_error
 # define SYSCALL_ERROR_HANDLER			\
-	stl	v0, errno(gp)	!gprel;		\
+	stl	v0, rtld_errno(gp)	!gprel;	\
 	lda	v0, -1;				\
 	ret
 #elif defined(PIC)
diff --git a/sysdeps/unix/i386/sysdep.S b/sysdeps/unix/i386/sysdep.S
index dceb6815f4..6056cbeef2 100644
--- a/sysdeps/unix/i386/sysdep.S
+++ b/sysdeps/unix/i386/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 2000, 2002
+/* Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 2000, 2002, 2004
 	Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -68,7 +68,7 @@ notb:
 	popl %ebx
 	movl %eax, %gs:0(%ecx)
 # elif RTLD_PRIVATE_ERRNO
-	movl %eax, C_SYMBOL_NAME(errno@GOTOFF)(%ebx)
+	movl %eax, C_SYMBOL_NAME(rtld_errno@GOTOFF)(%ebx)
 
 	/* Pop %ebx value saved before jumping here.  */
 	popl %ebx
diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile
index fd089dd236..37be75e964 100644
--- a/sysdeps/unix/sysv/linux/Makefile
+++ b/sysdeps/unix/sysv/linux/Makefile
@@ -153,4 +153,5 @@ endif
 
 ifeq ($(subdir),nscd)
 CFLAGS-connections.c += -DHAVE_EPOLL
+CFLAGS-gai.c += -DNEED_NETLINK
 endif
diff --git a/sysdeps/unix/sysv/linux/i386/sysconf.c b/sysdeps/unix/sysv/linux/i386/sysconf.c
index cb4706de73..eae849b277 100644
--- a/sysdeps/unix/sysv/linux/i386/sysconf.c
+++ b/sysdeps/unix/sysv/linux/i386/sysconf.c
@@ -21,7 +21,7 @@
 #include <stdbool.h>
 #include <stdlib.h>
 #include <unistd.h>
-
+#include <hp-timing.h>
 
 static long int linux_sysconf (int name);
 
@@ -319,16 +319,9 @@ handle_amd (int name)
 }
 
 
-/* Get the value of the system variable NAME.  */
-long int
-__sysconf (int name)
+static int
+i386_i486_test (void)
 {
-  /* We only handle the cache information here (for now).  */
-  if (name < _SC_LEVEL1_ICACHE_SIZE || name > _SC_LEVEL4_CACHE_LINESIZE)
-    return linux_sysconf (name);
-
-  /* Recognize i386 and compatible.  These don't have any cache on
-     board.  */
   int eflags;
   int ac;
   asm volatile ("pushfl;\n\t"
@@ -343,6 +336,35 @@ __sysconf (int name)
 		"pushl %0;\n\t"
 		"popfl"
 		: "=r" (eflags), "=r" (ac));
+
+  return ac;
+}
+
+
+/* Get the value of the system variable NAME.  */
+long int
+__sysconf (int name)
+{
+  if (name == _SC_CPUTIME || name == _SC_THREAD_CPUTIME)
+    {
+#if HP_TIMING_AVAIL
+      // XXX We can add  here test for machines which cannot support a
+      // XXX usable TSC.
+      return 200112L;
+#else
+      return -1;
+#endif
+    }
+
+  /* All the remainder, except the cache information, is handled in
+     the generic code.  */
+  if (name < _SC_LEVEL1_ICACHE_SIZE || name > _SC_LEVEL4_CACHE_LINESIZE)
+    return linux_sysconf (name);
+
+  /* Recognize i386 and compatible.  These don't have any cache on
+     board.  */
+  int ac = i386_i486_test ();
+
   if (ac == 0)
     /* This is an i386.  */
     // XXX Is this true for all brands?
diff --git a/sysdeps/unix/sysv/linux/i386/sysdep.h b/sysdeps/unix/sysv/linux/i386/sysdep.h
index 8845e46157..37e7459a9c 100644
--- a/sysdeps/unix/sysv/linux/i386/sysdep.h
+++ b/sysdeps/unix/sysv/linux/i386/sysdep.h
@@ -136,7 +136,7 @@ __i686.get_pc_thunk.reg:						      \
   addl $_GLOBAL_OFFSET_TABLE_, %ecx;					      \
   xorl %edx, %edx;							      \
   subl %eax, %edx;							      \
-  movl %edx, errno@GOTOFF(%ecx);					      \
+  movl %edx, rtld_errno@GOTOFF(%ecx);					      \
   orl $-1, %eax;							      \
   jmp L(pseudo_end);
 
diff --git a/sysdeps/unix/sysv/linux/ia64/Dist b/sysdeps/unix/sysv/linux/ia64/Dist
index c9e81a3e8f..b4118bdead 100644
--- a/sysdeps/unix/sysv/linux/ia64/Dist
+++ b/sysdeps/unix/sysv/linux/ia64/Dist
@@ -2,6 +2,7 @@ clone.S
 clone2.S
 dl-brk.S
 dl-static.c
+has_cpuclock.c
 ioperm.c
 ldd-rewrite.sed
 __start_context.S
diff --git a/sysdeps/unix/sysv/linux/ia64/clock_getcpuclockid.c b/sysdeps/unix/sysv/linux/ia64/clock_getcpuclockid.c
index 68e5763a8c..d2c45a560a 100644
--- a/sysdeps/unix/sysv/linux/ia64/clock_getcpuclockid.c
+++ b/sysdeps/unix/sysv/linux/ia64/clock_getcpuclockid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000, 2001, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2000, 2001, 2003, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -24,6 +24,9 @@
 #include <fcntl.h>
 
 
+#include "has_cpuclock.c"
+
+
 int
 clock_getcpuclockid (pid_t pid, clockid_t *clock_id)
 {
@@ -31,30 +34,9 @@ clock_getcpuclockid (pid_t pid, clockid_t *clock_id)
   if (pid != 0 && pid != getpid ())
     return EPERM;
 
-  static int itc_usable;
   int retval = ENOENT;
 
-  if (__builtin_expect (itc_usable == 0, 0))
-    {
-      int newval = 1;
-      int fd = open ("/proc/sal/itc_drift", O_RDONLY);
-      if (__builtin_expect (fd != -1, 1))
-	{
-	  char buf[16];
-	  /* We expect the file to contain a single digit followed by
-	     a newline.  If the format changes we better not rely on
-	     the file content.  */
-	  if (read (fd, buf, sizeof buf) != 2 || buf[0] != '0'
-	      || buf[1] != '\n')
-	    newval = -1;
-
-	  close (fd);
-	}
-
-      itc_usable = newval;
-    }
-
-  if (itc_usable > 0)
+  if (has_cpuclock () > 0)
     {
       /* Store the number.  */
       *clock_id = CLOCK_PROCESS_CPUTIME_ID;
diff --git a/sysdeps/unix/sysv/linux/ia64/has_cpuclock.c b/sysdeps/unix/sysv/linux/ia64/has_cpuclock.c
new file mode 100644
index 0000000000..ee19161272
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/ia64/has_cpuclock.c
@@ -0,0 +1,52 @@
+/* Copyright (C) 2000, 2001, 2003, 2004 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+
+
+static int itc_usable;
+
+static int
+has_cpuclock (void)
+{
+  if (__builtin_expect (itc_usable == 0, 0))
+    {
+      int newval = 1;
+      int fd = open ("/proc/sal/itc_drift", O_RDONLY);
+      if (__builtin_expect (fd != -1, 1))
+	{
+	  char buf[16];
+	  /* We expect the file to contain a single digit followed by
+	     a newline.  If the format changes we better not rely on
+	     the file content.  */
+	  if (read (fd, buf, sizeof buf) != 2 || buf[0] != '0'
+	      || buf[1] != '\n')
+	    newval = -1;
+
+	  close (fd);
+	}
+
+      itc_usable = newval;
+    }
+
+  return itc_usable;
+}
diff --git a/sysdeps/unix/sysv/linux/ia64/sysconf.c b/sysdeps/unix/sysv/linux/ia64/sysconf.c
new file mode 100644
index 0000000000..4b5d1ce2cd
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/ia64/sysconf.c
@@ -0,0 +1,45 @@
+/* Get file-specific information about a file.  Linux version.
+   Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <assert.h>
+#include <stdbool.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+
+#include "has_cpuclock.c"
+
+static long int linux_sysconf (int name);
+
+
+/* Get the value of the system variable NAME.  */
+long int
+__sysconf (int name)
+{
+  if (name == _SC_CPUTIME || name == _SC_THREAD_CPUTIME)
+    return has_cpuclock () ? 200112L : -1;
+
+  /* Everything else is handled by the more general code.  */
+  return linux_sysconf (name);
+}
+
+/* Now the generic Linux version.  */
+#undef __sysconf
+#define __sysconf static linux_sysconf
+#include "../sysconf.c"
diff --git a/sysdeps/unix/sysv/linux/ia64/sysdep.S b/sysdeps/unix/sysv/linux/ia64/sysdep.S
index 3b4b600b42..3633dd4b78 100644
--- a/sysdeps/unix/sysv/linux/ia64/sysdep.S
+++ b/sysdeps/unix/sysv/linux/ia64/sysdep.S
@@ -30,7 +30,7 @@ ENTRY(__syscall_error)
 	 * be fine.  Otherwise, we would have to first load the global
 	 * pointer register from __gp.
 	 */
-	addl	r2=@gprel(errno),gp
+	addl	r2=@gprel(rtld_errno),gp
 	;;
 	st4	[r2]=r8
 	mov	r8=-1
diff --git a/sysdeps/unix/sysv/linux/m68k/sysdep.h b/sysdeps/unix/sysv/linux/m68k/sysdep.h
index 234ce32f4f..091dfc9c7d 100644
--- a/sysdeps/unix/sysv/linux/m68k/sysdep.h
+++ b/sysdeps/unix/sysv/linux/m68k/sysdep.h
@@ -98,7 +98,7 @@
 # if RTLD_PRIVATE_ERRNO
 #  define SYSCALL_ERROR_HANDLER						      \
 SYSCALL_ERROR_LABEL:							      \
-    lea (errno, %pc), %a0;					      	      \
+    lea (rtld_errno, %pc), %a0;					      	      \
     neg.l %d0;								      \
     move.l %d0, (%a0);							      \
     move.l &-1, %d0;							      \
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S b/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S
index 1aad4ab164..2a1dad0695 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S
@@ -82,7 +82,7 @@ ENTRY(__syscall_error)
 	st	%r2,0(%r1)
 	lhi	%r2,-1
 	br	%r14
-1:	.long	errno - 0b
+1:	.long	rtld_errno - 0b
 # elif USE___THREAD
 #  ifndef NOT_IN_libc
 #   define SYSCALL_ERROR_ERRNO __libc_errno
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h b/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h
index 55a2cd7443..ad3cde6a66 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h
@@ -97,7 +97,7 @@
     st    %r2,0(%r1);							      \
     lhi   %r2,-1;							      \
     br    %r14;								      \
-2:  .long errno-1b
+2:  .long rtld_errno-1b
 # elif defined _LIBC_REENTRANT
 #  if USE___THREAD
 #   ifndef NOT_IN_libc
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S b/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S
index 4299257afa..bb61e894f1 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S
@@ -74,7 +74,7 @@ ENTRY(__syscall_error)
 #endif
 #else
 # if RTLD_PRIVATE_ERRNO
-	larl	%r1,errno
+	larl	%r1,rtld_errno
 	lcr	%r2,%r2
 	st	%r2,0(%r1)
 	lghi	%r2,-1
@@ -100,7 +100,7 @@ ENTRY(__syscall_error)
 	lcr	%r2,%r2
 	st	%r2,0(%r1)
 	lghi	%r2,-1
-	br	%r14	
+	br	%r14
 # else
 	stmg	%r13,%r15,104(%r15)
 	cfi_offset (%r15,-40)
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h b/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h
index c7f3a03f26..45e701e7a4 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h
@@ -101,7 +101,7 @@
 # if RTLD_PRIVATE_ERRNO
 #  define SYSCALL_ERROR_LABEL 0f
 #  define SYSCALL_ERROR_HANDLER \
-0:  larl  %r1,errno;							      \
+0:  larl  %r1,rtld_errno;						      \
     lcr   %r2,%r2;							      \
     st    %r2,0(%r1);							      \
     lghi  %r2,-1;							      \
diff --git a/sysdeps/unix/sysv/linux/sh/sysdep.h b/sysdeps/unix/sysv/linux/sh/sysdep.h
index aeec279de0..d56ec454f9 100644
--- a/sysdeps/unix/sysv/linux/sh/sysdep.h
+++ b/sysdeps/unix/sysv/linux/sh/sysdep.h
@@ -1,5 +1,5 @@
-/* Copyright (C) 1992, 1993, 1995, 1996, 1997, 1998, 1999, 2000, 2002,
-   2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 1992,1993,1995,1996,1997,1998,1999,2000,2002,2003,2004
+	Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>, August 1995.
    Changed by Kaz Kojima, <kkojima@rr.iij4u.or.jp>.
@@ -109,7 +109,7 @@
 	 mov _IMM1,r0; \
 	.align 2; \
      0: .long _GLOBAL_OFFSET_TABLE_; \
-     1: .long errno@GOTOFF
+     1: .long rtld_errno@GOTOFF
 
 # elif defined _LIBC_REENTRANT
 
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h b/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h
index 67cb32645b..29c5158b9f 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h
@@ -83,7 +83,7 @@ SYSCALL_ERROR_HANDLER_ENTRY(__syscall_error_handler)			\
 	sethi	%hi(_GLOBAL_OFFSET_TABLE_-4), %l7;			\
 	call	__sparc_get_pic_l7;					\
 	 add	%l7, %lo(_GLOBAL_OFFSET_TABLE_+4), %l7;			\
-	ld	[%l7 + errno], %l0;					\
+	ld	[%l7 + rtld_errno], %l0;				\
 	st	%i0, [%l0];						\
 	jmpl	%i7+8, %g0;						\
 	 restore %g0, -1, %o0;						\
diff --git a/sysdeps/unix/sysv/linux/x86_64/sysdep.h b/sysdeps/unix/sysv/linux/x86_64/sysdep.h
index 56e4422a73..fd92d7ae16 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sysdep.h
+++ b/sysdeps/unix/sysv/linux/x86_64/sysdep.h
@@ -118,7 +118,7 @@
 #elif RTLD_PRIVATE_ERRNO
 # define SYSCALL_ERROR_HANDLER			\
 0:						\
-  leaq errno(%rip), %rcx;			\
+  leaq rtld_errno(%rip), %rcx;			\
   xorq %rdx, %rdx;				\
   subq %rax, %rdx;				\
   movl %edx, (%rcx);				\
diff --git a/sysdeps/unix/x86_64/sysdep.S b/sysdeps/unix/x86_64/sysdep.S
index d2c3d0916c..0d0d715052 100644
--- a/sysdeps/unix/x86_64/sysdep.S
+++ b/sysdeps/unix/x86_64/sysdep.S
@@ -67,7 +67,7 @@ notb:
 # endif
 #else
 # if RTLD_PRIVATE_ERRNO
-	leaq errno(%rip), %rcx
+	leaq rtld_errno(%rip), %rcx
 	movl %eax, (%rcx)
 # elif !defined _LIBC_REENTRANT
 	movq C_SYMBOL_NAME(errno)@GOTPCREL(%rip), %rcx