From: Ulrich Drepper Date: Thu, 27 Feb 2003 04:12:53 +0000 (+0000) Subject: Update. X-Git-Tag: cvs/glibc-2_3_2~18 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b1531183c5796e3be5aa193e294970ec3fac7d30;p=thirdparty%2Fglibc.git Update. 2003-02-26 Ulrich Drepper * init.c (__pthread_initialize_minimal_internal): Set GL(dl_error_catch_tsd) to __libc_dl_error_tsd. * Versions (libc:GLIBC_PRIVATE): Export __libc_dl_error_tsd. --- diff --git a/nptl/ChangeLog b/nptl/ChangeLog index d8ccec38a24..b18f4837260 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,9 @@ +2003-02-26 Ulrich Drepper + + * init.c (__pthread_initialize_minimal_internal): Set + GL(dl_error_catch_tsd) to __libc_dl_error_tsd. + * Versions (libc:GLIBC_PRIVATE): Export __libc_dl_error_tsd. + 2003-02-24 Ulrich Drepper * sem_open.c (sem_open): Fix handling of O_CREAT without O_EXCL. diff --git a/nptl/init.c b/nptl/init.c index ddc6f3d9394..cc496a240f0 100644 --- a/nptl/init.c +++ b/nptl/init.c @@ -160,6 +160,10 @@ sigcancel_handler (int sig __attribute ((unused))) } +/* When using __thread for this, we do it in libc so as not + to give libpthread its own TLS segment just for this. */ +extern void **__libc_dl_error_tsd (void) __attribute__ ((const)); + void __pthread_initialize_minimal_internal (void) @@ -231,6 +235,12 @@ __pthread_initialize_minimal_internal (void) __static_tls_align = STACK_ALIGN; __static_tls_size = roundup (__static_tls_size, __static_tls_align); +#ifdef SHARED + /* Transfer the old value from the dynamic linker's internal location. */ + *__libc_dl_error_tsd () = *(*GL(dl_error_catch_tsd)) (); + GL(dl_error_catch_tsd) = &__libc_dl_error_tsd; +#endif + /* Register the fork generation counter with the libc. */ __libc_pthread_init (&__fork_generation, __reclaim_stacks, ptr_pthread_functions);