From 7cbf1c8416b04c65dc3d253061d8a674ee3c616e Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Wed, 5 May 2021 06:20:31 +0200 Subject: elf, nptl: Initialize static TLS directly in ld.so The stack list is available in ld.so since commit 1daccf403b1bd86370eb94edca794dc106d02039 ("nptl: Move stack list variables into _rtld_global"), so it's possible to walk the stack list directly in ld.so and perform the initialization there. This eliminates an unprotected function pointer from _rtld_global and reduces the libpthread initialization code. --- elf/dl-support.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'elf/dl-support.c') diff --git a/elf/dl-support.c b/elf/dl-support.c index 7fc2ee78e2..f966a2e7cd 100644 --- a/elf/dl-support.c +++ b/elf/dl-support.c @@ -138,8 +138,6 @@ void *_dl_random; #include #include -void (*_dl_init_static_tls) (struct link_map *) = &_dl_nothread_init_static_tls; - size_t _dl_pagesize = EXEC_PAGESIZE; size_t _dl_minsigstacksize = CONSTANT_MINSIGSTKSZ; @@ -197,6 +195,7 @@ list_t _dl_stack_user; int _dl_stack_cache_lock; #else int _dl_thread_gscope_count; +void (*_dl_init_static_tls) (struct link_map *) = &_dl_nothread_init_static_tls; #endif struct dl_scope_free_list *_dl_scope_free_list; -- cgit 1.4.1