diff options
author | Ulrich Drepper <drepper@redhat.com> | 2003-02-27 04:12:53 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2003-02-27 04:12:53 +0000 |
commit | b1531183c5796e3be5aa193e294970ec3fac7d30 (patch) | |
tree | 7c0b0d3f4b0320fa759e786ee189a231abae64b6 /nptl/init.c | |
parent | d4a763f9225a0e89bd7815e9d3766ce9507566fb (diff) | |
download | glibc-b1531183c5796e3be5aa193e294970ec3fac7d30.tar glibc-b1531183c5796e3be5aa193e294970ec3fac7d30.tar.gz glibc-b1531183c5796e3be5aa193e294970ec3fac7d30.tar.bz2 glibc-b1531183c5796e3be5aa193e294970ec3fac7d30.zip |
Update.
2003-02-26 Ulrich Drepper <drepper@redhat.com>
* 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.
Diffstat (limited to 'nptl/init.c')
-rw-r--r-- | nptl/init.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/nptl/init.c b/nptl/init.c index ddc6f3d939..cc496a240f 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); |