mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-30 22:43:12 +03:00
elf: Introduce __tls_pre_init_tp
This is an early variant of __tls_init_tp, primarily for initializing thread-related elements of _rtld_global/GL. Some existing initialization code not needed for NPTL is moved into the generic version of this function. Tested-by: Carlos O'Donell <carlos@redhat.com> Reviewed-by: Carlos O'Donell <carlos@redhat.com>
This commit is contained in:
@ -18,6 +18,35 @@
|
||||
|
||||
#include <ldsodefs.h>
|
||||
|
||||
#if defined SHARED && defined _LIBC_REENTRANT \
|
||||
&& defined __rtld_lock_default_lock_recursive
|
||||
static void
|
||||
rtld_lock_default_lock_recursive (void *lock)
|
||||
{
|
||||
__rtld_lock_default_lock_recursive (lock);
|
||||
}
|
||||
|
||||
static void
|
||||
rtld_lock_default_unlock_recursive (void *lock)
|
||||
{
|
||||
__rtld_lock_default_unlock_recursive (lock);
|
||||
}
|
||||
#endif
|
||||
|
||||
void
|
||||
__tls_pre_init_tp (void)
|
||||
{
|
||||
#if !THREAD_GSCOPE_IN_TCB
|
||||
GL(dl_init_static_tls) = &_dl_nothread_init_static_tls;
|
||||
#endif
|
||||
|
||||
#if defined SHARED && defined _LIBC_REENTRANT \
|
||||
&& defined __rtld_lock_default_lock_recursive
|
||||
GL(dl_rtld_lock_recursive) = rtld_lock_default_lock_recursive;
|
||||
GL(dl_rtld_unlock_recursive) = rtld_lock_default_unlock_recursive;
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
__tls_init_tp (void)
|
||||
{
|
||||
|
Reference in New Issue
Block a user