From d6163dfd3831cf48b69f430f37b4c099059a9db5 Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Mon, 10 May 2021 10:31:41 +0200 Subject: elf, nptl: Resolve recursive lock implementation early If libpthread is included in libc, it is not necessary to delay initialization of the lock/unlock function pointers until libpthread is loaded. This eliminates two unprotected function pointers from _rtld_global and removes some initialization code from libpthread. Tested-by: Carlos O'Donell Reviewed-by: Carlos O'Donell --- nptl/nptl-init.c | 9 --------- 1 file changed, 9 deletions(-) (limited to 'nptl/nptl-init.c') diff --git a/nptl/nptl-init.c b/nptl/nptl-init.c index fcab5a0..2724770 100644 --- a/nptl/nptl-init.c +++ b/nptl/nptl-init.c @@ -179,15 +179,6 @@ __pthread_initialize_minimal_internal (void) lll_unlock (__default_pthread_attr_lock, LLL_PRIVATE); #ifdef SHARED - /* Make __rtld_lock_{,un}lock_recursive use pthread_mutex_{,un}lock, - keep the lock count from the ld.so implementation. */ - GL(dl_rtld_lock_recursive) = (void *) __pthread_mutex_lock; - GL(dl_rtld_unlock_recursive) = (void *) __pthread_mutex_unlock; - unsigned int rtld_lock_count = GL(dl_load_lock).mutex.__data.__count; - GL(dl_load_lock).mutex.__data.__count = 0; - while (rtld_lock_count-- > 0) - __pthread_mutex_lock (&GL(dl_load_lock).mutex); - GL(dl_make_stack_executable_hook) = &__make_stacks_executable; #endif -- cgit v1.1