diff options
author | Florian Weimer <fweimer@redhat.com> | 2021-05-03 08:12:11 +0200 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2021-05-03 08:14:01 +0200 |
commit | 575295fc8314b089e52f98de4aa16a9d7aeb9bf4 (patch) | |
tree | beee73fc51f4c1213cf54e9b137ef9d776eaab66 /nptl | |
parent | ad201afe5c348de265b92bae6688034102a4386b (diff) | |
download | glibc-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/Versions | 4 | ||||
-rw-r--r-- | nptl/pthread_once.c | 4 |
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) |