aboutsummaryrefslogtreecommitdiff
path: root/nptl
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2021-05-03 08:12:11 +0200
committerFlorian Weimer <fweimer@redhat.com>2021-05-03 08:14:01 +0200
commit575295fc8314b089e52f98de4aa16a9d7aeb9bf4 (patch)
treebeee73fc51f4c1213cf54e9b137ef9d776eaab66 /nptl
parentad201afe5c348de265b92bae6688034102a4386b (diff)
downloadglibc-575295fc8314b089e52f98de4aa16a9d7aeb9bf4.tar
glibc-575295fc8314b089e52f98de4aa16a9d7aeb9bf4.tar.gz
glibc-575295fc8314b089e52f98de4aa16a9d7aeb9bf4.tar.bz2
glibc-575295fc8314b089e52f98de4aa16a9d7aeb9bf4.zip
nptl: Move call_once into libc
The symbol was moved using scripts/move-symbol-to-libc.py. This change also turns __pthread_once into a compatibility symbol because after the call_once move, an internal call to __pthread_once can be used. This an adjustment to __libc_once: Outside libc (e.g., in nscd), it has to call pthread_once. With __pthread_once as a compatibility symbol, it is no longer to add a new GLIBC_2.34 version after the move from libpthread, and this commit removes the new __pthread_once@@GLIBC_2.34 version. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
Diffstat (limited to 'nptl')
-rw-r--r--nptl/Versions4
-rw-r--r--nptl/pthread_once.c4
2 files changed, 5 insertions, 3 deletions
diff --git a/nptl/Versions b/nptl/Versions
index 03e159ee0f..1217a15bdf 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -126,6 +126,7 @@ libc {
}
# C11 thread symbols.
GLIBC_2.28 {
+ call_once;
thrd_current;
thrd_equal;
thrd_sleep;
@@ -153,8 +154,8 @@ libc {
__pthread_mutex_unlock;
__pthread_mutexattr_init;
__pthread_mutexattr_settype;
- __pthread_once;
__pthread_setspecific;
+ call_once;
pthread_cond_clockwait;
pthread_condattr_getclock;
pthread_condattr_getpshared;
@@ -373,7 +374,6 @@ libpthread {
# C11 thread symbols.
GLIBC_2.28 {
- call_once;
cnd_broadcast;
cnd_destroy;
cnd_init;
diff --git a/nptl/pthread_once.c b/nptl/pthread_once.c
index 323583c118..e8cf54cf96 100644
--- a/nptl/pthread_once.c
+++ b/nptl/pthread_once.c
@@ -143,8 +143,10 @@ ___pthread_once (pthread_once_t *once_control, void (*init_routine) (void))
else
return __pthread_once_slow (once_control, init_routine);
}
-versioned_symbol (libc, ___pthread_once, __pthread_once, GLIBC_2_34);
libc_hidden_ver (___pthread_once, __pthread_once)
+#ifndef SHARED
+strong_alias (___pthread_once, __pthread_once)
+#endif
versioned_symbol (libc, ___pthread_once, pthread_once, GLIBC_2_34);
#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_34)