* include/errno.h [RTLD_PRIVATE_ERRNO] (errno): Rename the real symbol
authorRoland McGrath <roland@gnu.org>
Mon, 4 Oct 2004 20:59:53 +0000 (20:59 +0000)
committerRoland McGrath <roland@gnu.org>
Mon, 4 Oct 2004 20:59:53 +0000 (20:59 +0000)
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'.

are handled by one thread which then hands off the descriptors for the

ChangeLog
sysdeps/generic/errno.c

index 6255358..cd2e0ca 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,27 @@
+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.
        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.
 
index 10dbabe..03d661b 100644 (file)
 #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