2000-05-13 Jakub Jelinek <jakub@redhat.com>

* elf/soinit.c (__libc_global_ctors): Move
	__pthread_initialize_minimal call out of HAVE_DWARF2_* defines.
	* resolv/resolv.h (__res_state): Added __attribute__((const)).
	(_res): If __RES_PTHREAD_INTERNAL is defined, declare it as
	variable, don't define it to __res_state call.

2000-05-13  Jakub Jelinek  <jakub@redhat.com>

	* internals.h (__RES_PTHREAD_INTERNAL): Define.
2000-05-13  Jakub Jelinek  <jakub@redhat.com>

	* internals.h (__RES_PTHREAD_INTERNAL): Define.
This commit is contained in:
Andreas Jaeger 2000-05-15 07:15:04 +00:00
parent 99356b9b90
commit f14273c5a2
4 changed files with 16 additions and 6 deletions

View File

@ -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);

View File

@ -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

View File

@ -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 */

View File

@ -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
*