mirror of
https://sourceware.org/git/glibc.git
synced 2025-08-01 10:06:57 +03:00
Update.
2003-07-22 Jakub Jelinek <jakub@redhat.com> * include/resolv.h (__resp): Declare. Define to __libc_resp if in libc.so. (_res): If USE___THREAD, define to (*__resp). * resolv/res_libc.c (_res): Normal .bss variable with compat_symbol even if USE___THREAD. (__resp): New __thread variable. (__libc_resp): New alias. * resolv/Versions (libc): Export _res@GLIBC_2.0 even if USE_TLS && HAVE___THREAD. Export __resp@@GLIBC_PRIVATE. * sysdeps/generic/res-state.c (__res_state): Return __resp if USE___THREAD.
This commit is contained in:
@ -68,27 +68,26 @@ res_init(void) {
|
||||
/* This needs to be after the use of _res in res_init, above. */
|
||||
#undef _res
|
||||
|
||||
#include <tls.h>
|
||||
|
||||
#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 plain `struct __res_state _res;' 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")));
|
||||
|
||||
#include <tls.h>
|
||||
|
||||
#if USE___THREAD
|
||||
#undef __resp
|
||||
__thread struct __res_state *__resp = &_res;
|
||||
extern __thread struct __res_state *__libc_resp
|
||||
__attribute__ ((alias ("__resp"))) attribute_hidden;
|
||||
#endif
|
||||
|
||||
/* We declare this with compat_symbol so that it's not
|
||||
visible at link time. Programs must use the accessor functions. */
|
||||
# if defined HAVE_ELF && defined SHARED && defined DO_VERSIONING
|
||||
# include <shlib-compat.h>
|
||||
#if defined HAVE_ELF && defined SHARED && defined DO_VERSIONING
|
||||
# include <shlib-compat.h>
|
||||
compat_symbol (libc, _res, _res, GLIBC_2_0);
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#include <shlib-compat.h>
|
||||
|
Reference in New Issue
Block a user