aboutsummaryrefslogtreecommitdiff
path: root/nptl/pthread_create.c
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2021-04-21 19:49:51 +0200
committerFlorian Weimer <fweimer@redhat.com>2021-04-21 19:49:51 +0200
commit442e8a40da9dfa24aeebf4f1a163f0a58b12cf7e (patch)
tree4f425bffad25e4232f2ad8b22bc0835a1d5d7a69 /nptl/pthread_create.c
parent90d7e7e5bd3b0683a27c658388b6515ce950c78e (diff)
downloadglibc-442e8a40da9dfa24aeebf4f1a163f0a58b12cf7e.zip
glibc-442e8a40da9dfa24aeebf4f1a163f0a58b12cf7e.tar.gz
glibc-442e8a40da9dfa24aeebf4f1a163f0a58b12cf7e.tar.bz2
nptl: Move part of TCB initialization from libpthread to __tls_init_tp
This initalization should only happen once for the main thread's TCB. At present, auditors can achieve this by not linking against libpthread. If libpthread becomes part of libc, doing this initialization in libc would happen for every audit namespace, or too late (if it happens from the main libc only). That's why moving this code into ld.so seems the right thing to do, right after the TCB initialization. For !__ASSUME_SET_ROBUST_LIST ports, this also moves the symbol __set_robust_list_avail into ld.so, as __nptl_set_robust_list_avail. It also turned into a proper boolean flag. Inline the __pthread_initialize_pids function because it seems no longer useful as a separate function. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Diffstat (limited to 'nptl/pthread_create.c')
-rw-r--r--nptl/pthread_create.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/nptl/pthread_create.c b/nptl/pthread_create.c
index 7fc8c7a..d89a83b 100644
--- a/nptl/pthread_create.c
+++ b/nptl/pthread_create.c
@@ -297,7 +297,7 @@ START_THREAD_DEFN
__ctype_init ();
#ifndef __ASSUME_SET_ROBUST_LIST
- if (__set_robust_list_avail >= 0)
+ if (__nptl_set_robust_list_avail)
#endif
{
/* This call should never fail because the initial call in init.c
@@ -447,7 +447,7 @@ START_THREAD_DEFN
/* We let the kernel do the notification if it is able to do so.
If we have to do it here there for sure are no PI mutexes involved
since the kernel support for them is even more recent. */
- if (__set_robust_list_avail < 0
+ if (!__nptl_set_robust_list_avail
&& __builtin_expect (robust != (void *) &pd->robust_head, 0))
{
do