1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-29 11:41:21 +03:00

elf, nptl: Initialize static TLS directly in ld.so

The stack list is available in ld.so since commit
1daccf403b ("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.
This commit is contained in:
Florian Weimer
2021-05-05 06:20:31 +02:00
parent 2c71177309
commit 7cbf1c8416
9 changed files with 65 additions and 44 deletions

View File

@ -138,8 +138,6 @@ void *_dl_random;
#include <dl-procruntime.c>
#include <dl-procinfo.c>
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;