From bf2cc5fb028fecf8d6b1adffd952f7402f685923 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Sun, 24 Nov 2002 23:56:47 +0000 Subject: * sysdeps/posix/readv.c: Include , use __set_errno macro. * sysdeps/posix/writev.c: Likewise. From Momchil Velikov . * elf/dl-error.c [! _LIBC_REENTRANT]: Use a static variable instead of calling *GL(dl_error_catch_tsd) for a thread-local location. * elf/rtld.c (startup_error_tsd): Conditionalize on [_LIBC_REENTRANT]. (dl_main): Same for GL(dl_error_catch_tsd) initialization. * elf/dl-tsd.c: Conditionalize contents on [_LIBC_REENTRANT]. * libio/iofflush.c: Add libc_hidden_def. * libio/iofwrite.c: Likewise. * sysdeps/generic/sigtimedwait.c: Likewise. * sysdeps/generic/sigwaitinfo.c: Likewise. * sysdeps/posix/sigwait.c: Likewise. Reported by Momchil Velikov . * inet/inet_lnaof.c (inet_lnaof): Change return type to in_addr_t to match declaration. * inet/inet_netof.c (inet_netof): Likewise. * inet/inet_mkadr.c (inet_makeaddr): Likewise for argument types. Reported by Momchil Velikov . --- elf/dl-error.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'elf/dl-error.c') diff --git a/elf/dl-error.c b/elf/dl-error.c index e8f2f3e208..df91088843 100644 --- a/elf/dl-error.c +++ b/elf/dl-error.c @@ -57,6 +57,12 @@ INTVARDEF(_dl_out_of_memory) global variable. */ static receiver_fct receiver; +#ifdef _LIBC_REENTRANT +# define CATCH_HOOK (*(struct catch **) (*GL(dl_error_catch_tsd)) ()) +#else +static struct catch *catch_hook; +# define CATCH_HOOK catch_hook +#endif void internal_function @@ -68,7 +74,7 @@ _dl_signal_error (int errcode, const char *objname, const char *occation, if (! errstring) errstring = N_("DYNAMIC LINKER BUG!!!"); - lcatch = *((*GL(dl_error_catch_tsd)) ()); + lcatch = CATCH_HOOK; if (objname == NULL) objname = ""; if (lcatch != NULL) @@ -147,7 +153,7 @@ _dl_catch_error (const char **objname, const char **errstring, inefficient. So we initialize `c' by hand. */ c.errstring = NULL; - void **catchp = (*GL(dl_error_catch_tsd)) (); + struct catch **const catchp = &CATCH_HOOK; old = *catchp; errcode = setjmp (c.env); if (__builtin_expect (errcode, 0) == 0) @@ -173,7 +179,7 @@ void internal_function _dl_receive_error (receiver_fct fct, void (*operate) (void *), void *args) { - void **catchp = (*GL(dl_error_catch_tsd)) (); + struct catch **const catchp = &CATCH_HOOK; struct catch *old_catch; receiver_fct old_receiver; -- cgit v1.2.3