From 4aeb650e63ca7d7cdb62ce081ba7ddd9b6dfb683 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Mon, 30 Dec 2002 00:10:07 +0000 Subject: [PATCH] * resolv/res_libc.c: Move _res defn magic after res_init defn so _res macro is in effect for that code. --- ChangeLog | 3 +++ resolv/res_libc.c | 44 ++++++++++++++++++++++---------------------- 2 files changed, 25 insertions(+), 22 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8cf0aef..a128a80 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2002-12-29 Roland McGrath + * resolv/res_libc.c: Move _res defn magic after res_init defn + so _res macro is in effect for that code. + * Makerules ($(common-objpfx)%.h $(common-objpfx)%.h.d): Fix sed pattern for prepending $(..) so it doesn't affect $(foo). diff --git a/resolv/res_libc.c b/resolv/res_libc.c index 4f67a31..67a3467 100644 --- a/resolv/res_libc.c +++ b/resolv/res_libc.c @@ -20,28 +20,6 @@ #include #include -#undef _res - -#include - -#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. */ -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. */ -# if defined HAVE_ELF && defined SHARED && defined DO_VERSIONING -# include -compat_symbol (libc, _res, _res, GLIBC_2_0); -# endif -#endif - /* The following bit is copied from res_data.c (where it is #ifdef'ed out) since res_init() should go into libc.so but the rest of that @@ -87,6 +65,28 @@ res_init(void) { return (__res_vinit(&_res, 1)); } +/* This needs to be after the use of _res in res_init, above. */ +#undef _res + +#include + +#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. */ +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. */ +# if defined HAVE_ELF && defined SHARED && defined DO_VERSIONING +# include +compat_symbol (libc, _res, _res, GLIBC_2_0); +# endif +#endif #include -- 2.7.4