From adc12574e555ec7d6ba3969eed4f829705c235ab Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 31 Jul 2003 07:42:20 +0000 Subject: Update. 2003-07-30 Jakub Jelinek * elf/dl-reloc.c (_dl_allocate_static_tls): Don't return any value, call dl_signal_error directly. If already relocated, call GL(dl_init_static_tls) directly, otherwise queue it for later. (CHECK_STATIC_TLS): Undo 2003-07-24 change. * elf/rtld.c (dl_main): Initialize GL(dl_init_static_tls). * elf/dl-open.c (dl_open_worker): Call GL_dl_init_static_tls for all static TLS initializations delayed in _dl_allocate_static_tls. * elf/dl-support.c (_dl_init_static_tls): New variable. * include/link.h (struct link_map): Add l_need_tls_init. * sysdeps/generic/ldsodefs.h (_rtld_global): Add _dl_init_static_tls. (_dl_nothread_init_static_tls): New prototype. (_dl_allocate_static_tls): Adjust prototype. * elf/tls-macros.h (VAR_INT_DEF): Add alignment directive. elf_machine_rela_relative): Adjust. (CHECK_STATIC_TLS): _dl_allocate_static_tls can fail now. --- elf/rtld.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'elf/rtld.c') diff --git a/elf/rtld.c b/elf/rtld.c index c63405ac99..54e568804d 100644 --- a/elf/rtld.c +++ b/elf/rtld.c @@ -622,6 +622,10 @@ dl_main (const ElfW(Phdr) *phdr, GL(dl_error_catch_tsd) = &_dl_initial_error_catch_tsd; #endif +#ifdef USE_TLS + GL(dl_init_static_tls) = &_dl_nothread_init_static_tls; +#endif + /* Process the environment variable which control the behaviour. */ process_envvars (&mode); -- cgit v1.2.3