1 /* Completion of TCB initialization after TLS_INIT_TP. Generic version. 2 Copyright (C) 2021-2022 Free Software Foundation, Inc. 3 This file is part of the GNU C Library. 4 5 The GNU C Library is free software; you can redistribute it and/or 6 modify it under the terms of the GNU Lesser General Public 7 License as published by the Free Software Foundation; either 8 version 2.1 of the License, or (at your option) any later version. 9 10 The GNU C Library is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 Lesser General Public License for more details. 14 15 You should have received a copy of the GNU Lesser General Public 16 License along with the GNU C Library; if not, see 17 <https://www.gnu.org/licenses/>. */ 18 19 #include <ldsodefs.h> 20 21 #if defined SHARED && defined _LIBC_REENTRANT \ 22 && defined __rtld_lock_default_lock_recursive 23 static void rtld_lock_default_lock_recursive(void * lock)24rtld_lock_default_lock_recursive (void *lock) 25 { 26 __rtld_lock_default_lock_recursive (lock); 27 } 28 29 static void rtld_lock_default_unlock_recursive(void * lock)30rtld_lock_default_unlock_recursive (void *lock) 31 { 32 __rtld_lock_default_unlock_recursive (lock); 33 } 34 #endif 35 36 void __tls_pre_init_tp(void)37__tls_pre_init_tp (void) 38 { 39 #if !PTHREAD_IN_LIBC 40 GL(dl_init_static_tls) = &_dl_nothread_init_static_tls; 41 #endif 42 43 #if defined SHARED && defined _LIBC_REENTRANT \ 44 && defined __rtld_lock_default_lock_recursive 45 GL(dl_rtld_lock_recursive) = rtld_lock_default_lock_recursive; 46 GL(dl_rtld_unlock_recursive) = rtld_lock_default_unlock_recursive; 47 #endif 48 } 49 50 void __tls_init_tp(void)51__tls_init_tp (void) 52 { 53 } 54