about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--elf/soinit.c5
-rw-r--r--linuxthreads/ChangeLog4
-rw-r--r--linuxthreads/internals.h1
-rw-r--r--resolv/resolv.h12
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
  *