about summary refs log tree commit diff
path: root/sysdeps
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2002-11-14 21:23:12 +0000
committerRoland McGrath <roland@gnu.org>2002-11-14 21:23:12 +0000
commitd8b8842b047cf1119609fa24b2ee59ddc69da7fb (patch)
treee8b8367c6b1d00c850fd44dfa2f9b12e8f6ed4d6 /sysdeps
parent6c0b2972dc2d92093a42d5f9bb6857fb65b1b078 (diff)
downloadglibc-d8b8842b047cf1119609fa24b2ee59ddc69da7fb.tar.gz
glibc-d8b8842b047cf1119609fa24b2ee59ddc69da7fb.tar.xz
glibc-d8b8842b047cf1119609fa24b2ee59ddc69da7fb.zip
* sysdeps/generic/errno.c [! USE___THREAD]
	[HAVE_ELF && SHARED && DO_VERSIONING] (errno, _errno): Declare these
	with compat_symbol so they are not link-time visible.
	[! USE___THREAD] (__libc_errno): New alias for errno.
	* csu/Versions [!(USE_TLS && HAVE___THREAD)] (libc: GLIBC_PRIVATE):
	Add __libc_errno here.
	* inet/herrno.c [USE___THREAD]: Use this conditional
	in place of [USE_TLS && HAVE___THREAD].
	[! USE___THREAD] [HAVE_ELF && SHARED && DO_VERSIONING]
	(h_errno, _h_errno): Declare these with compat_symbol so they are not
	link-time visible.
	[! USE___THREAD] (__libc_h_errno): New alias for h_errno.
	* resolv/res_libc.c [! USE___THREAD]
	[HAVE_ELF && SHARED && DO_VERSIONING] (_res): Likewise.
	(_res): Use __attribute__ ((section (".bss"))) so we can have an alias.
	(__libc_res): Define as alias for _res.
	* resolv/Versions [!(USE_TLS && HAVE___THREAD)] (libc: GLIBC_PRIVATE):
	Add __libc_h_errno and __libc_res here.

2002-11-14  Jakub Jelinek  <jakub@redhat.com>

	* csu/Versions (errno): Move STT_TLS symbol to GLIBC_PRIVATE for now.
	* resolv/Versions (h_errno, _res): Likewise.

2002-11-14  Roland McGrath  <roland@redhat.com>
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/generic/errno.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/sysdeps/generic/errno.c b/sysdeps/generic/errno.c
index e33c6b88ad..45c9639095 100644
--- a/sysdeps/generic/errno.c
+++ b/sysdeps/generic/errno.c
@@ -31,4 +31,15 @@ extern __thread int __libc_errno __attribute__ ((alias ("errno")))
    which can have an alias.  */
 int errno __attribute__ ((section (".bss")));
 strong_alias (errno, _errno)
+
+/* This alias is needed by libpthread.  */
+strong_alias (errno, __libc_errno)
+
+/* We declare these with compat_symbol so that they are not
+   visible at link time.  Programs must use the accessor functions.  */
+# 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