Skip to content

Commit

Permalink
* include/errno.h [RTLD_PRIVATE_ERRNO] (errno): Rename the real symbol
Browse files Browse the repository at this point in the history
	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
  • Loading branch information
Roland McGrath committed Oct 4, 2004
1 parent 96c82b3 commit 0c70edc
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 5 deletions.
26 changes: 25 additions & 1 deletion ChangeLog
Original file line number Diff line number Diff line change
@@ -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.
Expand Down Expand Up @@ -76,7 +100,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.

Expand Down
16 changes: 12 additions & 4 deletions sysdeps/generic/errno.c
Original file line number Diff line number Diff line change
Expand Up @@ -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

0 comments on commit 0c70edc

Please sign in to comment.