diff options
-rw-r--r-- | elf/soinit.c | 5 | ||||
-rw-r--r-- | linuxthreads/ChangeLog | 4 | ||||
-rw-r--r-- | linuxthreads/internals.h | 1 | ||||
-rw-r--r-- | resolv/resolv.h | 12 |
4 files changed, 16 insertions, 6 deletions
diff --git a/elf/soinit.c b/elf/soinit.c index 7db054e4d4..3cb5584f6c 100644 --- a/elf/soinit.c +++ b/elf/soinit.c @@ -49,13 +49,14 @@ __libc_global_ctors (void) { /* Call constructor functions. */ run_hooks (__CTOR_LIST__); -#ifdef HAVE_DWARF2_UNWIND_INFO -# ifdef HAVE_DWARF2_UNWIND_INFO_STATIC + /* Initialize the thread library at least a bit since the libgcc functions are using thread functions if these are available. */ if (__pthread_initialize_minimal) __pthread_initialize_minimal (); +#ifdef HAVE_DWARF2_UNWIND_INFO +# ifdef HAVE_DWARF2_UNWIND_INFO_STATIC { static struct object ob; __register_frame_info (__EH_FRAME_BEGIN__, &ob); diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog index 551fbce21b..f9fca506f1 100644 --- a/linuxthreads/ChangeLog +++ b/linuxthreads/ChangeLog @@ -1,3 +1,7 @@ +2000-05-13 Jakub Jelinek <jakub@redhat.com> + + * internals.h (__RES_PTHREAD_INTERNAL): Define. + 2000-05-06 Kaz Kylheku <kaz@ashi.footprints.net> * mutex.c (pthread_once): IN_PROGRESS state of pthread_once_t diff --git a/linuxthreads/internals.h b/linuxthreads/internals.h index 4d273f8917..e41e5d3a72 100644 --- a/linuxthreads/internals.h +++ b/linuxthreads/internals.h @@ -26,6 +26,7 @@ #include <sys/types.h> #include <bits/libc-tsd.h> /* for _LIBC_TSD_KEY_N */ +#define __RES_PTHREAD_INTERNAL #include <resolv.h> /* for per-thread resolver context */ diff --git a/resolv/resolv.h b/resolv/resolv.h index 6c710ecafc..426ac7a2ed 100644 --- a/resolv/resolv.h +++ b/resolv/resolv.h @@ -172,7 +172,7 @@ struct res_sym { #define RES_DFLRETRY 2 /* Default #/tries. */ struct __res_state { - int retrans; /* retransmission time interval */ + int retrans; /* retransmission time interval */ int retry; /* number of times to retransmit */ u_long options; /* option flags - see below. */ int nscount; /* number of name servers */ @@ -254,8 +254,12 @@ typedef struct __res_state *res_state; /* Things involving an internal (static) resolver context. */ #if defined _REENTRANT || defined _LIBC_REENTRANT -extern struct __res_state *__res_state(void); -#define _res (*__res_state()) +extern struct __res_state *__res_state(void) __attribute__ ((__const__)); +# if defined __RES_PTHREAD_INTERNAL +extern struct __res_state _res; +# else +# define _res (*__res_state()) +# endif #else extern struct __res_state _res; #endif @@ -288,7 +292,7 @@ __END_DECLS #if !defined(SHARED_LIBBIND) || defined(_LIBC) /* * If libbind is a shared object (well, DLL anyway) - * these externs break the linker when resolv.h is + * these externs break the linker when resolv.h is * included by a lib client (like named) * Make them go away if a client is including this * |