From: GNU Libc Maintainers Date: Wed, 18 Jun 2025 04:49:31 +0000 (+0200) Subject: local-pthread_once X-Git-Tag: archive/raspbian/2.41-9+rpi1^2~47 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=505bc25a96aa169e5d8f8df011b7f7591590d7f8;p=glibc.git local-pthread_once Note: compared to upstream, this was changed to exposing pthread_once as version 2.41. When 2.42 gets integrated, we'll want to keep the 2.41 symbol until we rebuild packages against the 2.42 symbol. commit ccdb68e829a31e4cda8339ea0d2dc3e51fb81ba5 Author: Samuel Thibault Date: Sun Mar 2 15:16:45 2025 +0100 htl: move pthread_once into libc Gbp-Pq: Topic hurd-i386 Gbp-Pq: Name local-pthread_once.diff --- diff --git a/htl/Makefile b/htl/Makefile index 551d4c01d..db411e679 100644 --- a/htl/Makefile +++ b/htl/Makefile @@ -39,7 +39,6 @@ libpthread-routines := \ pt-key-delete \ pt-getspecific \ pt-setspecific \ - pt-once \ pt-alloc \ pt-create \ pt-getattr \ @@ -202,6 +201,7 @@ routines := \ pt-mutexattr-setrobust \ pt-mutexattr-settype \ pt-nthreads \ + pt-once \ pt-pthread_self \ pt-self pt-equal \ pt-setschedparam \ diff --git a/htl/Versions b/htl/Versions index f1393ebe3..e574e3def 100644 --- a/htl/Versions +++ b/htl/Versions @@ -48,6 +48,7 @@ libc { pthread_mutexattr_setprotocol; pthread_mutexattr_setpshared; pthread_mutexattr_settype; + pthread_once; pthread_sigmask; } @@ -106,6 +107,7 @@ libc { pthread_mutexattr_setpshared; pthread_mutexattr_setrobust; pthread_mutexattr_setrobust_np; pthread_mutexattr_settype; + pthread_once; pthread_sigmask; } @@ -140,6 +142,7 @@ libc { __pthread_mutexattr_destroy; __pthread_mutexattr_init; __pthread_mutexattr_settype; + __pthread_once; __pthread_sigstate; __pthread_sigstate_destroy; __pthread_sigmask; @@ -200,8 +203,6 @@ libpthread { pthread_mutex_timedlock; pthread_mutex_transfer_np; pthread_mutex_trylock; pthread_mutex_unlock; - pthread_once; - pthread_rwlock_destroy; pthread_rwlock_init; pthread_rwlock_rdlock; pthread_rwlock_timedrdlock; pthread_rwlock_timedwrlock; pthread_rwlock_tryrdlock; pthread_rwlock_trywrlock; diff --git a/sysdeps/htl/libc-lockP.h b/sysdeps/htl/libc-lockP.h index a3a53e883..f909ca0fe 100644 --- a/sysdeps/htl/libc-lockP.h +++ b/sysdeps/htl/libc-lockP.h @@ -111,6 +111,7 @@ extern int __pthread_rwlock_unlock (pthread_rwlock_t *__rwlock); extern int __pthread_once (pthread_once_t *__once_control, void (*__init_routine) (void)); +libc_hidden_proto (__pthread_once); extern int __pthread_atfork (void (*__prepare) (void), void (*__parent) (void), @@ -136,7 +137,6 @@ weak_extern (__pthread_rwlock_unlock) weak_extern (__pthread_key_create) weak_extern (__pthread_setspecific) weak_extern (__pthread_getspecific) -weak_extern (__pthread_once) weak_extern (__pthread_initialize) weak_extern (__pthread_atfork) weak_extern (__pthread_setcancelstate) @@ -156,7 +156,6 @@ weak_extern (__pthread_setcancelstate) # pragma weak __pthread_key_create # pragma weak __pthread_setspecific # pragma weak __pthread_getspecific -# pragma weak __pthread_once # pragma weak __pthread_initialize # pragma weak __pthread_atfork # pragma weak __pthread_setcancelstate diff --git a/sysdeps/htl/pt-once.c b/sysdeps/htl/pt-once.c index 68fb2e112..019dccbfa 100644 --- a/sysdeps/htl/pt-once.c +++ b/sysdeps/htl/pt-once.c @@ -20,6 +20,7 @@ #include #include +#include static void clear_once_control (void *arg) @@ -53,4 +54,9 @@ __pthread_once (pthread_once_t *once_control, void (*init_routine) (void)) return 0; } -weak_alias (__pthread_once, pthread_once); +libc_hidden_def (__pthread_once) +versioned_symbol (libc, __pthread_once, pthread_once, GLIBC_2_41); + +#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_41) +compat_symbol (libpthread, __pthread_once, pthread_once, GLIBC_2_12); +#endif diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist index 40f35ee04..1c283f6e6 100644 --- a/sysdeps/mach/hurd/i386/libc.abilist +++ b/sysdeps/mach/hurd/i386/libc.abilist @@ -73,6 +73,7 @@ GLIBC_2.12 pthread_mutexattr_setprioceiling F GLIBC_2.12 pthread_mutexattr_setprotocol F GLIBC_2.12 pthread_mutexattr_setpshared F GLIBC_2.12 pthread_mutexattr_settype F +GLIBC_2.12 pthread_once F GLIBC_2.12 pthread_self F GLIBC_2.12 pthread_setschedparam F GLIBC_2.12 pthread_sigmask F @@ -2547,6 +2548,7 @@ GLIBC_2.41 pthread_mutexattr_setpshared F GLIBC_2.41 pthread_mutexattr_setrobust F GLIBC_2.41 pthread_mutexattr_setrobust_np F GLIBC_2.41 pthread_mutexattr_settype F +GLIBC_2.41 pthread_once F GLIBC_2.41 pthread_sigmask F GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F diff --git a/sysdeps/mach/hurd/i386/libpthread.abilist b/sysdeps/mach/hurd/i386/libpthread.abilist index b925871a0..1d0e6ed9a 100644 --- a/sysdeps/mach/hurd/i386/libpthread.abilist +++ b/sysdeps/mach/hurd/i386/libpthread.abilist @@ -50,7 +50,6 @@ GLIBC_2.12 pthread_mutex_timedlock F GLIBC_2.12 pthread_mutex_transfer_np F GLIBC_2.12 pthread_mutex_trylock F GLIBC_2.12 pthread_mutex_unlock F -GLIBC_2.12 pthread_once F GLIBC_2.12 pthread_rwlock_destroy F GLIBC_2.12 pthread_rwlock_init F GLIBC_2.12 pthread_rwlock_rdlock F diff --git a/sysdeps/mach/hurd/x86_64/libc.abilist b/sysdeps/mach/hurd/x86_64/libc.abilist index aaf55cbaf..e18708e23 100644 --- a/sysdeps/mach/hurd/x86_64/libc.abilist +++ b/sysdeps/mach/hurd/x86_64/libc.abilist @@ -1565,6 +1565,7 @@ GLIBC_2.38 pthread_mutexattr_setpshared F GLIBC_2.38 pthread_mutexattr_setrobust F GLIBC_2.38 pthread_mutexattr_setrobust_np F GLIBC_2.38 pthread_mutexattr_settype F +GLIBC_2.38 pthread_once F GLIBC_2.38 pthread_self F GLIBC_2.38 pthread_setcancelstate F GLIBC_2.38 pthread_setcanceltype F @@ -2236,6 +2237,7 @@ GLIBC_2.41 pthread_mutexattr_setpshared F GLIBC_2.41 pthread_mutexattr_setrobust F GLIBC_2.41 pthread_mutexattr_setrobust_np F GLIBC_2.41 pthread_mutexattr_settype F +GLIBC_2.41 pthread_once F GLIBC_2.41 pthread_sigmask F HURD_CTHREADS_0.3 __cthread_getspecific F HURD_CTHREADS_0.3 __cthread_keycreate F diff --git a/sysdeps/mach/hurd/x86_64/libpthread.abilist b/sysdeps/mach/hurd/x86_64/libpthread.abilist index 608901fb0..fc075d5d9 100644 --- a/sysdeps/mach/hurd/x86_64/libpthread.abilist +++ b/sysdeps/mach/hurd/x86_64/libpthread.abilist @@ -73,7 +73,6 @@ GLIBC_2.38 pthread_mutex_timedlock F GLIBC_2.38 pthread_mutex_transfer_np F GLIBC_2.38 pthread_mutex_trylock F GLIBC_2.38 pthread_mutex_unlock F -GLIBC_2.38 pthread_once F GLIBC_2.38 pthread_rwlock_clockrdlock F GLIBC_2.38 pthread_rwlock_clockwrlock F GLIBC_2.38 pthread_rwlock_destroy F