* sysdeps/generic/errno.c (__libc_errno): Remove alias.
* inet/herrno.c (__libc_h_errno): Likewise.
* resolv/res_libc.c (__libc_res): Likewise.
[USE___THREAD]: Use this in place of [USE_TLS && HAVE___THREAD].
(__res_state) [! USE___THREAD]: Don't define as weak.
* csu/Versions: Revert last change.
* resolv/Versions: Revert last change.
%if USE_TLS && HAVE___THREAD
# This version is for the TLS symbol, GLIBC_2.0 is the old object symbol.
errno;
-%else
- # This internal alias is solely to give libpthread access
- # to the variable that is not directly user-visible at link time.
- __libc_errno;
%endif
}
}
int h_errno = 0;
weak_alias (h_errno, _h_errno)
-/* This alias is needed by libpthread. */
-strong_alias (h_errno, __libc_h_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
%if USE_TLS && HAVE___THREAD
# This version is for the TLS symbol, GLIBC_2.0 is the old object symbol.
h_errno; _res;
-%else
- # These internal aliases are solely to give libpthread access
- # to the variables that are not directly user-visible.
- __libc_h_errno; __libc_res;
%endif
}
}
#include <tls.h>
-#if USE_TLS && HAVE___THREAD
+#if USE___THREAD
/* With __thread support, this per-thread variable is used in all cases. */
__thread struct __res_state _res;
extern __thread struct __res_state __libc_res __attribute__ ((alias ("_res")))
attribute_hidden;
# define _res __libc_res
#else
-/* The resolver state for use by single-threaded programs.
-
- This differs from a plain uninitialized definition in that it doesn't
- create a common definition, but a plain symbol that resides in .bss,
- which can have an alias. */
-struct __res_state _res __attribute__ ((section (".bss")));
-
-/* This alias is needed by libpthread. */
-strong_alias (_res, __libc_res)
+/* The resolver state for use by single-threaded programs. */
+struct __res_state _res;
/* We declare this with compat_symbol so that it's not
visible at link time. Programs must use the accessor functions. */
/* This function is used to access the resolver state in
single-threaded programs. */
struct __res_state *
+#if ! USE___THREAD
weak_const_function
+#endif
__res_state (void)
{
return &_res;
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