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 <samuel.thibault@ens-lyon.org>
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
pt-key-delete \
pt-getspecific \
pt-setspecific \
- pt-once \
pt-alloc \
pt-create \
pt-getattr \
pt-mutexattr-setrobust \
pt-mutexattr-settype \
pt-nthreads \
+ pt-once \
pt-pthread_self \
pt-self pt-equal \
pt-setschedparam \
pthread_mutexattr_setprotocol;
pthread_mutexattr_setpshared;
pthread_mutexattr_settype;
+ pthread_once;
pthread_sigmask;
}
pthread_mutexattr_setpshared;
pthread_mutexattr_setrobust; pthread_mutexattr_setrobust_np;
pthread_mutexattr_settype;
+ pthread_once;
pthread_sigmask;
}
__pthread_mutexattr_destroy;
__pthread_mutexattr_init;
__pthread_mutexattr_settype;
+ __pthread_once;
__pthread_sigstate;
__pthread_sigstate_destroy;
__pthread_sigmask;
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;
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),
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)
# 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
#include <atomic.h>
#include <pt-internal.h>
+#include <shlib-compat.h>
static void
clear_once_control (void *arg)
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
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
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
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
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
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
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