diff options
Diffstat (limited to 'resolv')
-rw-r--r-- | resolv/Versions | 4 | ||||
-rw-r--r-- | resolv/res_libc.c | 15 |
2 files changed, 5 insertions, 14 deletions
diff --git a/resolv/Versions b/resolv/Versions index 238d579d8c..2449a41cea 100644 --- a/resolv/Versions +++ b/resolv/Versions @@ -35,10 +35,6 @@ libc { %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 } } diff --git a/resolv/res_libc.c b/resolv/res_libc.c index b1132b0ffd..7c4fd7a119 100644 --- a/resolv/res_libc.c +++ b/resolv/res_libc.c @@ -24,22 +24,15 @@ #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. */ @@ -52,7 +45,9 @@ compat_symbol (libc, _res, _res, GLIBC_2_0); /* 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; |