mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-29 11:41:21 +03:00
2002-11-14 Roland McGrath <roland@redhat.com>
* 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.
This commit is contained in:
@ -21,10 +21,6 @@ libc {
|
|||||||
%if USE_TLS && HAVE___THREAD
|
%if USE_TLS && HAVE___THREAD
|
||||||
# This version is for the TLS symbol, GLIBC_2.0 is the old object symbol.
|
# This version is for the TLS symbol, GLIBC_2.0 is the old object symbol.
|
||||||
errno;
|
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
|
%endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -34,9 +34,6 @@ extern __thread int __libc_h_errno __attribute__ ((alias ("h_errno")))
|
|||||||
int h_errno = 0;
|
int h_errno = 0;
|
||||||
weak_alias (h_errno, _h_errno)
|
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
|
/* We declare these with compat_symbol so that they are not
|
||||||
visible at link time. Programs must use the accessor functions. */
|
visible at link time. Programs must use the accessor functions. */
|
||||||
# if defined HAVE_ELF && defined SHARED && defined DO_VERSIONING
|
# if defined HAVE_ELF && defined SHARED && defined DO_VERSIONING
|
||||||
|
@ -35,10 +35,6 @@ libc {
|
|||||||
%if USE_TLS && HAVE___THREAD
|
%if USE_TLS && HAVE___THREAD
|
||||||
# This version is for the TLS symbol, GLIBC_2.0 is the old object symbol.
|
# This version is for the TLS symbol, GLIBC_2.0 is the old object symbol.
|
||||||
h_errno; _res;
|
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
|
%endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -24,22 +24,15 @@
|
|||||||
|
|
||||||
#include <tls.h>
|
#include <tls.h>
|
||||||
|
|
||||||
#if USE_TLS && HAVE___THREAD
|
#if USE___THREAD
|
||||||
/* With __thread support, this per-thread variable is used in all cases. */
|
/* With __thread support, this per-thread variable is used in all cases. */
|
||||||
__thread struct __res_state _res;
|
__thread struct __res_state _res;
|
||||||
extern __thread struct __res_state __libc_res __attribute__ ((alias ("_res")))
|
extern __thread struct __res_state __libc_res __attribute__ ((alias ("_res")))
|
||||||
attribute_hidden;
|
attribute_hidden;
|
||||||
# define _res __libc_res
|
# define _res __libc_res
|
||||||
#else
|
#else
|
||||||
/* The resolver state for use by single-threaded programs.
|
/* The resolver state for use by single-threaded programs. */
|
||||||
|
struct __res_state _res;
|
||||||
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)
|
|
||||||
|
|
||||||
/* We declare this with compat_symbol so that it's not
|
/* We declare this with compat_symbol so that it's not
|
||||||
visible at link time. Programs must use the accessor functions. */
|
visible at link time. Programs must use the accessor functions. */
|
||||||
@ -52,7 +45,9 @@ compat_symbol (libc, _res, _res, GLIBC_2_0);
|
|||||||
/* This function is used to access the resolver state in
|
/* This function is used to access the resolver state in
|
||||||
single-threaded programs. */
|
single-threaded programs. */
|
||||||
struct __res_state *
|
struct __res_state *
|
||||||
|
#if ! USE___THREAD
|
||||||
weak_const_function
|
weak_const_function
|
||||||
|
#endif
|
||||||
__res_state (void)
|
__res_state (void)
|
||||||
{
|
{
|
||||||
return &_res;
|
return &_res;
|
||||||
|
@ -32,9 +32,6 @@ extern __thread int __libc_errno __attribute__ ((alias ("errno")))
|
|||||||
int errno __attribute__ ((section (".bss")));
|
int errno __attribute__ ((section (".bss")));
|
||||||
strong_alias (errno, _errno)
|
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
|
/* We declare these with compat_symbol so that they are not
|
||||||
visible at link time. Programs must use the accessor functions. */
|
visible at link time. Programs must use the accessor functions. */
|
||||||
# if defined HAVE_ELF && defined SHARED && defined DO_VERSIONING
|
# if defined HAVE_ELF && defined SHARED && defined DO_VERSIONING
|
||||||
|
Reference in New Issue
Block a user