From: gfleury Date: Fri, 21 Nov 2025 19:13:36 +0000 (+0200) Subject: htl: move c11 symbols into libc. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=585eee3962d00490a95790035714d53c81cc38ba;p=thirdparty%2Fglibc.git htl: move c11 symbols into libc. thrd_{create,detach,exit,join}. mtx_{init,destroy,lock,trylock,unlock,timeelock}. cnd_{broadcast,destroy,init,signal,timewait,wait,destroy} tss_{create,delete,get,set}. call_once. Message-ID: <20251121191336.1224485-1-gfleury@disroot.org> --- diff --git a/htl/Versions b/htl/Versions index 2228f8fdd9..cac34e623b 100644 --- a/htl/Versions +++ b/htl/Versions @@ -149,6 +149,13 @@ libc { # C11 thread symbols. GLIBC_2.32 { thrd_current; thrd_equal; thrd_sleep; thrd_yield; + thrd_create; thrd_detach; thrd_exit; thrd_join; + + mtx_destroy; mtx_init; mtx_lock; mtx_timedlock; mtx_trylock; mtx_unlock; + cnd_broadcast; cnd_destroy; cnd_init; cnd_signal; cnd_timedwait; cnd_wait; + tss_create; tss_delete; tss_get; tss_set; + + call_once; pthread_cond_clockwait; pthread_clockjoin_np; @@ -232,6 +239,19 @@ libc { } GLIBC_2.43 { + call_once; + cnd_broadcast; + cnd_destroy; + cnd_init; + cnd_signal; + cnd_timedwait; + cnd_wait; + mtx_destroy; + mtx_init; + mtx_lock; + mtx_timedlock; + mtx_trylock; + mtx_unlock; pthread_cancel; pthread_clockjoin_np; pthread_create; @@ -268,6 +288,14 @@ libc { sem_trywait; sem_unlink; sem_wait; + thrd_create; + thrd_detach; + thrd_exit; + thrd_join; + tss_create; + tss_delete; + tss_get; + tss_set; } GLIBC_PRIVATE { @@ -351,12 +379,7 @@ libpthread { } GLIBC_2.32 { - # C11 thread symbols. - thrd_create; thrd_detach; thrd_exit; thrd_join; - mtx_init; mtx_lock; mtx_timedlock; mtx_trylock; mtx_unlock; mtx_destroy; - call_once; - cnd_broadcast; cnd_destroy; cnd_init; cnd_signal; cnd_timedwait; cnd_wait; - tss_create; tss_delete; tss_get; tss_set; + __libpthread_version_placeholder; } GLIBC_2.40 { diff --git a/sysdeps/htl/c11-thread.h b/sysdeps/htl/c11-thread.h new file mode 100644 index 0000000000..d6ba38bf85 --- /dev/null +++ b/sysdeps/htl/c11-thread.h @@ -0,0 +1,2 @@ +#define C11_THREADS_INTRODUCED GLIBC_2_32 +#define C11_THREADS_IN_LIBC GLIBC_2_43 diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist index dbbb399feb..08dcd85cd9 100644 --- a/sysdeps/mach/hurd/i386/libc.abilist +++ b/sysdeps/mach/hurd/i386/libc.abilist @@ -2334,8 +2334,21 @@ GLIBC_2.3.4 xdr_quad_t F GLIBC_2.3.4 xdr_u_quad_t F GLIBC_2.30 twalk_r F GLIBC_2.32 __libc_single_threaded D 0x1 +GLIBC_2.32 call_once F +GLIBC_2.32 cnd_broadcast F +GLIBC_2.32 cnd_destroy F +GLIBC_2.32 cnd_init F +GLIBC_2.32 cnd_signal F +GLIBC_2.32 cnd_timedwait F +GLIBC_2.32 cnd_wait F GLIBC_2.32 mach_print F GLIBC_2.32 mremap F +GLIBC_2.32 mtx_destroy F +GLIBC_2.32 mtx_init F +GLIBC_2.32 mtx_lock F +GLIBC_2.32 mtx_timedlock F +GLIBC_2.32 mtx_trylock F +GLIBC_2.32 mtx_unlock F GLIBC_2.32 pthread_clockjoin_np F GLIBC_2.32 pthread_cond_clockwait F GLIBC_2.32 pthread_mutex_clocklock F @@ -2354,10 +2367,18 @@ GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F GLIBC_2.32 strerrordesc_np F GLIBC_2.32 strerrorname_np F +GLIBC_2.32 thrd_create F GLIBC_2.32 thrd_current F +GLIBC_2.32 thrd_detach F GLIBC_2.32 thrd_equal F +GLIBC_2.32 thrd_exit F +GLIBC_2.32 thrd_join F GLIBC_2.32 thrd_sleep F GLIBC_2.32 thrd_yield F +GLIBC_2.32 tss_create F +GLIBC_2.32 tss_delete F +GLIBC_2.32 tss_get F +GLIBC_2.32 tss_set F GLIBC_2.33 __x86_get_cpuid_feature_leaf F GLIBC_2.33 fstat F GLIBC_2.33 fstat64 F @@ -2677,10 +2698,23 @@ GLIBC_2.42 uimaxabs F GLIBC_2.42 ulabs F GLIBC_2.42 ullabs F GLIBC_2.43 __memset_explicit_chk F +GLIBC_2.43 call_once F +GLIBC_2.43 cnd_broadcast F +GLIBC_2.43 cnd_destroy F +GLIBC_2.43 cnd_init F +GLIBC_2.43 cnd_signal F +GLIBC_2.43 cnd_timedwait F +GLIBC_2.43 cnd_wait F GLIBC_2.43 free_aligned_sized F GLIBC_2.43 free_sized F GLIBC_2.43 memalignment F GLIBC_2.43 memset_explicit F +GLIBC_2.43 mtx_destroy F +GLIBC_2.43 mtx_init F +GLIBC_2.43 mtx_lock F +GLIBC_2.43 mtx_timedlock F +GLIBC_2.43 mtx_trylock F +GLIBC_2.43 mtx_unlock F GLIBC_2.43 pthread_cancel F GLIBC_2.43 pthread_clockjoin_np F GLIBC_2.43 pthread_create F @@ -2717,6 +2751,14 @@ GLIBC_2.43 sem_timedwait F GLIBC_2.43 sem_trywait F GLIBC_2.43 sem_unlink F GLIBC_2.43 sem_wait F +GLIBC_2.43 thrd_create F +GLIBC_2.43 thrd_detach F +GLIBC_2.43 thrd_exit F +GLIBC_2.43 thrd_join F +GLIBC_2.43 tss_create F +GLIBC_2.43 tss_delete F +GLIBC_2.43 tss_get F +GLIBC_2.43 tss_set F GLIBC_2.43 umaxabs 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 ff9c273218..e69de29bb2 100644 --- a/sysdeps/mach/hurd/i386/libpthread.abilist +++ b/sysdeps/mach/hurd/i386/libpthread.abilist @@ -1,21 +0,0 @@ -GLIBC_2.32 call_once F -GLIBC_2.32 cnd_broadcast F -GLIBC_2.32 cnd_destroy F -GLIBC_2.32 cnd_init F -GLIBC_2.32 cnd_signal F -GLIBC_2.32 cnd_timedwait F -GLIBC_2.32 cnd_wait F -GLIBC_2.32 mtx_destroy F -GLIBC_2.32 mtx_init F -GLIBC_2.32 mtx_lock F -GLIBC_2.32 mtx_timedlock F -GLIBC_2.32 mtx_trylock F -GLIBC_2.32 mtx_unlock F -GLIBC_2.32 thrd_create F -GLIBC_2.32 thrd_detach F -GLIBC_2.32 thrd_exit F -GLIBC_2.32 thrd_join F -GLIBC_2.32 tss_create F -GLIBC_2.32 tss_delete F -GLIBC_2.32 tss_get F -GLIBC_2.32 tss_set F diff --git a/sysdeps/mach/hurd/x86_64/libc.abilist b/sysdeps/mach/hurd/x86_64/libc.abilist index 7f0e601b8e..c17d5399e4 100644 --- a/sysdeps/mach/hurd/x86_64/libc.abilist +++ b/sysdeps/mach/hurd/x86_64/libc.abilist @@ -688,6 +688,7 @@ GLIBC_2.38 bzero F GLIBC_2.38 c16rtomb F GLIBC_2.38 c32rtomb F GLIBC_2.38 c8rtomb F +GLIBC_2.38 call_once F GLIBC_2.38 calloc F GLIBC_2.38 canonicalize_file_name F GLIBC_2.38 catclose F @@ -718,6 +719,12 @@ GLIBC_2.38 close_range F GLIBC_2.38 closedir F GLIBC_2.38 closefrom F GLIBC_2.38 closelog F +GLIBC_2.38 cnd_broadcast F +GLIBC_2.38 cnd_destroy F +GLIBC_2.38 cnd_init F +GLIBC_2.38 cnd_signal F +GLIBC_2.38 cnd_timedwait F +GLIBC_2.38 cnd_wait F GLIBC_2.38 confstr F GLIBC_2.38 connect F GLIBC_2.38 copy_file_range F @@ -1413,6 +1420,12 @@ GLIBC_2.38 msgrcv F GLIBC_2.38 msgsnd F GLIBC_2.38 msync F GLIBC_2.38 mtrace F +GLIBC_2.38 mtx_destroy F +GLIBC_2.38 mtx_init F +GLIBC_2.38 mtx_lock F +GLIBC_2.38 mtx_timedlock F +GLIBC_2.38 mtx_trylock F +GLIBC_2.38 mtx_unlock F GLIBC_2.38 munlock F GLIBC_2.38 munlockall F GLIBC_2.38 munmap F @@ -2033,8 +2046,12 @@ GLIBC_2.38 telldir F GLIBC_2.38 tempnam F GLIBC_2.38 textdomain F GLIBC_2.38 tfind F +GLIBC_2.38 thrd_create F GLIBC_2.38 thrd_current F +GLIBC_2.38 thrd_detach F GLIBC_2.38 thrd_equal F +GLIBC_2.38 thrd_exit F +GLIBC_2.38 thrd_join F GLIBC_2.38 thrd_sleep F GLIBC_2.38 thrd_yield F GLIBC_2.38 thread_depress_abort F @@ -2064,6 +2081,10 @@ GLIBC_2.38 towupper_l F GLIBC_2.38 truncate F GLIBC_2.38 truncate64 F GLIBC_2.38 tsearch F +GLIBC_2.38 tss_create F +GLIBC_2.38 tss_delete F +GLIBC_2.38 tss_get F +GLIBC_2.38 tss_set F GLIBC_2.38 ttyname F GLIBC_2.38 ttyname_r F GLIBC_2.38 ttyslot F @@ -2354,10 +2375,23 @@ GLIBC_2.42 uimaxabs F GLIBC_2.42 ulabs F GLIBC_2.42 ullabs F GLIBC_2.43 __memset_explicit_chk F +GLIBC_2.43 call_once F +GLIBC_2.43 cnd_broadcast F +GLIBC_2.43 cnd_destroy F +GLIBC_2.43 cnd_init F +GLIBC_2.43 cnd_signal F +GLIBC_2.43 cnd_timedwait F +GLIBC_2.43 cnd_wait F GLIBC_2.43 free_aligned_sized F GLIBC_2.43 free_sized F GLIBC_2.43 memalignment F GLIBC_2.43 memset_explicit F +GLIBC_2.43 mtx_destroy F +GLIBC_2.43 mtx_init F +GLIBC_2.43 mtx_lock F +GLIBC_2.43 mtx_timedlock F +GLIBC_2.43 mtx_trylock F +GLIBC_2.43 mtx_unlock F GLIBC_2.43 pthread_cancel F GLIBC_2.43 pthread_clockjoin_np F GLIBC_2.43 pthread_create F @@ -2394,6 +2428,14 @@ GLIBC_2.43 sem_timedwait F GLIBC_2.43 sem_trywait F GLIBC_2.43 sem_unlink F GLIBC_2.43 sem_wait F +GLIBC_2.43 thrd_create F +GLIBC_2.43 thrd_detach F +GLIBC_2.43 thrd_exit F +GLIBC_2.43 thrd_join F +GLIBC_2.43 tss_create F +GLIBC_2.43 tss_delete F +GLIBC_2.43 tss_get F +GLIBC_2.43 tss_set F GLIBC_2.43 umaxabs F HURD_CTHREADS_0.3 __mutex_init F HURD_CTHREADS_0.3 __mutex_lock F diff --git a/sysdeps/mach/hurd/x86_64/libpthread.abilist b/sysdeps/mach/hurd/x86_64/libpthread.abilist index b4f2a96250..e69de29bb2 100644 --- a/sysdeps/mach/hurd/x86_64/libpthread.abilist +++ b/sysdeps/mach/hurd/x86_64/libpthread.abilist @@ -1,21 +0,0 @@ -GLIBC_2.38 call_once F -GLIBC_2.38 cnd_broadcast F -GLIBC_2.38 cnd_destroy F -GLIBC_2.38 cnd_init F -GLIBC_2.38 cnd_signal F -GLIBC_2.38 cnd_timedwait F -GLIBC_2.38 cnd_wait F -GLIBC_2.38 mtx_destroy F -GLIBC_2.38 mtx_init F -GLIBC_2.38 mtx_lock F -GLIBC_2.38 mtx_timedlock F -GLIBC_2.38 mtx_trylock F -GLIBC_2.38 mtx_unlock F -GLIBC_2.38 thrd_create F -GLIBC_2.38 thrd_detach F -GLIBC_2.38 thrd_exit F -GLIBC_2.38 thrd_join F -GLIBC_2.38 tss_create F -GLIBC_2.38 tss_delete F -GLIBC_2.38 tss_get F -GLIBC_2.38 tss_set F diff --git a/sysdeps/nptl/c11-thread.h b/sysdeps/nptl/c11-thread.h new file mode 100644 index 0000000000..05ea8dee48 --- /dev/null +++ b/sysdeps/nptl/c11-thread.h @@ -0,0 +1,2 @@ +#define C11_THREADS_INTRODUCED GLIBC_2_28 +#define C11_THREADS_IN_LIBC GLIBC_2_34 diff --git a/sysdeps/pthread/Makefile b/sysdeps/pthread/Makefile index 1da3a9f55f..c6ea59ee16 100644 --- a/sysdeps/pthread/Makefile +++ b/sysdeps/pthread/Makefile @@ -26,15 +26,6 @@ headers += \ # headers routines += \ - pthread_atfork \ - pthread_atfork_compat \ - thrd_current \ - thrd_equal \ - thrd_sleep \ - thrd_yield \ - # routines - -$(libpthread-routines-var) += \ call_once \ cnd_broadcast \ cnd_destroy \ @@ -48,15 +39,21 @@ $(libpthread-routines-var) += \ mtx_timedlock \ mtx_trylock \ mtx_unlock \ + pthread_atfork \ + pthread_atfork_compat \ thrd_create \ + thrd_current \ thrd_detach \ + thrd_equal \ thrd_exit \ thrd_join \ + thrd_sleep \ + thrd_yield \ tss_create \ tss_delete \ tss_get \ tss_set \ - # $(libpthread-routines-var) + # routines tests += \ tst-abstime \ diff --git a/sysdeps/pthread/call_once.c b/sysdeps/pthread/call_once.c index 9c0eb39717..4ed88c376e 100644 --- a/sysdeps/pthread/call_once.c +++ b/sysdeps/pthread/call_once.c @@ -20,6 +20,7 @@ #include #include "thrd_priv.h" +#include void __call_once (once_flag *flag, void (*func)(void)) @@ -30,11 +31,7 @@ __call_once (once_flag *flag, void (*func)(void)) "alignof (once_flag) != alignof (pthread_once_t)"); __pthread_once ((pthread_once_t *) flag, func); } -#if PTHREAD_IN_LIBC -versioned_symbol (libc, __call_once, call_once, GLIBC_2_34); -# if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_28, GLIBC_2_34) -compat_symbol (libpthread, __call_once, call_once, GLIBC_2_28); -# endif -#else /* !PTHREAD_IN_LIBC */ -strong_alias (__call_once, call_once) +versioned_symbol (libc, __call_once, call_once, C11_THREADS_IN_LIBC); +#if OTHER_SHLIB_COMPAT (libpthread, C11_THREADS_INTRODUCED, C11_THREADS_IN_LIBC) +compat_symbol (libpthread, __call_once, call_once, C11_THREADS_INTRODUCED); #endif diff --git a/sysdeps/pthread/cnd_broadcast.c b/sysdeps/pthread/cnd_broadcast.c index 4bef01a383..65b5c264bc 100644 --- a/sysdeps/pthread/cnd_broadcast.c +++ b/sysdeps/pthread/cnd_broadcast.c @@ -18,6 +18,7 @@ #include "thrd_priv.h" #include +#include int __cnd_broadcast (cnd_t *cond) @@ -25,11 +26,7 @@ __cnd_broadcast (cnd_t *cond) int err_code = __pthread_cond_broadcast ((pthread_cond_t*) cond); return thrd_err_map (err_code); } -#if PTHREAD_IN_LIBC -versioned_symbol (libc, __cnd_broadcast, cnd_broadcast, GLIBC_2_34); -# if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_28, GLIBC_2_34) -compat_symbol (libpthread, __cnd_broadcast, cnd_broadcast, GLIBC_2_28); -# endif -#else /* !PTHREAD_IN_LIBC */ -strong_alias (__cnd_broadcast, cnd_broadcast) +versioned_symbol (libc, __cnd_broadcast, cnd_broadcast, C11_THREADS_IN_LIBC); +#if OTHER_SHLIB_COMPAT (libpthread, C11_THREADS_INTRODUCED, C11_THREADS_IN_LIBC) +compat_symbol (libpthread, __cnd_broadcast, cnd_broadcast, C11_THREADS_INTRODUCED); #endif diff --git a/sysdeps/pthread/cnd_destroy.c b/sysdeps/pthread/cnd_destroy.c index ed5e433253..6e852a27fd 100644 --- a/sysdeps/pthread/cnd_destroy.c +++ b/sysdeps/pthread/cnd_destroy.c @@ -19,17 +19,14 @@ #include "thrd_priv.h" #include "pthreadP.h" #include +#include void __cnd_destroy (cnd_t *cond) { __pthread_cond_destroy ((pthread_cond_t *) cond); } -#if PTHREAD_IN_LIBC -versioned_symbol (libc, __cnd_destroy, cnd_destroy, GLIBC_2_34); -# if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_28, GLIBC_2_34) -compat_symbol (libpthread, __cnd_destroy, cnd_destroy, GLIBC_2_28); -# endif -#else /* !PTHREAD_IN_LIBC */ -strong_alias (__cnd_destroy, cnd_destroy) +versioned_symbol (libc, __cnd_destroy, cnd_destroy, C11_THREADS_IN_LIBC); +#if OTHER_SHLIB_COMPAT (libpthread, C11_THREADS_INTRODUCED, C11_THREADS_IN_LIBC) +compat_symbol (libpthread, __cnd_destroy, cnd_destroy, C11_THREADS_INTRODUCED); #endif diff --git a/sysdeps/pthread/cnd_init.c b/sysdeps/pthread/cnd_init.c index fce84deefb..2c0aec392e 100644 --- a/sysdeps/pthread/cnd_init.c +++ b/sysdeps/pthread/cnd_init.c @@ -20,6 +20,7 @@ #include #include "thrd_priv.h" +#include int __cnd_init (cnd_t *cond) @@ -32,11 +33,7 @@ __cnd_init (cnd_t *cond) int err_code = __pthread_cond_init ((pthread_cond_t *)cond, NULL); return thrd_err_map (err_code); } -#if PTHREAD_IN_LIBC -versioned_symbol (libc, __cnd_init, cnd_init, GLIBC_2_34); -# if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_28, GLIBC_2_34) -compat_symbol (libpthread, __cnd_init, cnd_init, GLIBC_2_28); -# endif -#else /* !PTHREAD_IN_LIBC */ -strong_alias (__cnd_init, cnd_init) +versioned_symbol (libc, __cnd_init, cnd_init, C11_THREADS_IN_LIBC); +#if OTHER_SHLIB_COMPAT (libpthread, C11_THREADS_INTRODUCED, C11_THREADS_IN_LIBC) +compat_symbol (libpthread, __cnd_init, cnd_init, C11_THREADS_INTRODUCED); #endif diff --git a/sysdeps/pthread/cnd_signal.c b/sysdeps/pthread/cnd_signal.c index 2737ae144b..2023b4cd41 100644 --- a/sysdeps/pthread/cnd_signal.c +++ b/sysdeps/pthread/cnd_signal.c @@ -18,6 +18,7 @@ #include "thrd_priv.h" #include +#include int __cnd_signal (cnd_t *cond) @@ -25,11 +26,8 @@ __cnd_signal (cnd_t *cond) int err_code = __pthread_cond_signal ((pthread_cond_t *) cond); return thrd_err_map (err_code); } -#if PTHREAD_IN_LIBC -versioned_symbol (libc, __cnd_signal, cnd_signal, GLIBC_2_34); -# if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_28, GLIBC_2_34) -compat_symbol (libpthread, __cnd_signal, cnd_signal, GLIBC_2_28); -# endif -#else /* !PTHREAD_IN_LIBC */ -strong_alias (__cnd_signal, cnd_signal) + +versioned_symbol (libc, __cnd_signal, cnd_signal, C11_THREADS_IN_LIBC); +#if OTHER_SHLIB_COMPAT (libpthread, C11_THREADS_INTRODUCED, C11_THREADS_IN_LIBC) +compat_symbol (libpthread, __cnd_signal, cnd_signal, C11_THREADS_INTRODUCED); #endif diff --git a/sysdeps/pthread/cnd_timedwait.c b/sysdeps/pthread/cnd_timedwait.c index f0529d8f7f..de49f6014e 100644 --- a/sysdeps/pthread/cnd_timedwait.c +++ b/sysdeps/pthread/cnd_timedwait.c @@ -16,10 +16,12 @@ License along with the GNU C Library; if not, see . */ +#include #include "thrd_priv.h" +#include int -cnd_timedwait (cnd_t *restrict cond, mtx_t *restrict mutex, +__cnd_timedwait (cnd_t *restrict cond, mtx_t *restrict mutex, const struct timespec* restrict time_point) { int err_code = __pthread_cond_timedwait ((pthread_cond_t *) cond, @@ -27,3 +29,7 @@ cnd_timedwait (cnd_t *restrict cond, mtx_t *restrict mutex, time_point); return thrd_err_map (err_code); } +versioned_symbol (libc, __cnd_timedwait, cnd_timedwait, C11_THREADS_IN_LIBC); +#if OTHER_SHLIB_COMPAT (libpthread, C11_THREADS_INTRODUCED, C11_THREADS_IN_LIBC) +compat_symbol (libpthread, __cnd_timedwait, cnd_timedwait, C11_THREADS_INTRODUCED); +#endif diff --git a/sysdeps/pthread/cnd_wait.c b/sysdeps/pthread/cnd_wait.c index 706466e055..b70b91af53 100644 --- a/sysdeps/pthread/cnd_wait.c +++ b/sysdeps/pthread/cnd_wait.c @@ -18,6 +18,7 @@ #include "thrd_priv.h" #include +#include int __cnd_wait (cnd_t *cond, mtx_t *mutex) @@ -26,11 +27,7 @@ __cnd_wait (cnd_t *cond, mtx_t *mutex) (pthread_mutex_t *) mutex); return thrd_err_map (err_code); } -#if PTHREAD_IN_LIBC -versioned_symbol (libc, __cnd_wait, cnd_wait, GLIBC_2_34); -# if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_28, GLIBC_2_34) -compat_symbol (libpthread, __cnd_wait, cnd_wait, GLIBC_2_28); -# endif -#else /* !PTHREAD_IN_LIBC */ -strong_alias (__cnd_wait, cnd_wait) +versioned_symbol (libc, __cnd_wait, cnd_wait, C11_THREADS_IN_LIBC); +#if OTHER_SHLIB_COMPAT (libpthread, C11_THREADS_INTRODUCED, C11_THREADS_IN_LIBC) +compat_symbol (libpthread, __cnd_wait, cnd_wait, C11_THREADS_INTRODUCED); #endif diff --git a/sysdeps/pthread/mtx_destroy.c b/sysdeps/pthread/mtx_destroy.c index f4686663cd..f3ded47ea3 100644 --- a/sysdeps/pthread/mtx_destroy.c +++ b/sysdeps/pthread/mtx_destroy.c @@ -19,17 +19,14 @@ #include "thrd_priv.h" #include "pthreadP.h" #include +#include void __mtx_destroy (mtx_t *mutex) { __pthread_mutex_destroy ((pthread_mutex_t *) mutex); } -#if PTHREAD_IN_LIBC -versioned_symbol (libc, __mtx_destroy, mtx_destroy, GLIBC_2_34); -# if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_28, GLIBC_2_34) -compat_symbol (libpthread, __mtx_destroy, mtx_destroy, GLIBC_2_28); -# endif -#else /* !PTHREAD_IN_LIBC */ -strong_alias (__mtx_destroy, mtx_destroy) +versioned_symbol (libc, __mtx_destroy, mtx_destroy, C11_THREADS_IN_LIBC); +#if OTHER_SHLIB_COMPAT (libpthread, C11_THREADS_INTRODUCED, C11_THREADS_IN_LIBC) +compat_symbol (libpthread, __mtx_destroy, mtx_destroy, C11_THREADS_INTRODUCED); #endif diff --git a/sysdeps/pthread/mtx_init.c b/sysdeps/pthread/mtx_init.c index a807eca4de..d48cd1524c 100644 --- a/sysdeps/pthread/mtx_init.c +++ b/sysdeps/pthread/mtx_init.c @@ -20,6 +20,7 @@ #include #include "thrd_priv.h" +#include int __mtx_init (mtx_t *mutex, int type) @@ -52,11 +53,7 @@ __mtx_init (mtx_t *mutex, int type) /* pthread_mutexattr_destroy implementation is a noop. */ return thrd_err_map (err_code); } -#if PTHREAD_IN_LIBC -versioned_symbol (libc, __mtx_init, mtx_init, GLIBC_2_34); -# if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_28, GLIBC_2_34) -compat_symbol (libpthread, __mtx_init, mtx_init, GLIBC_2_28); -# endif -#else /* !PTHREAD_IN_LIBC */ -strong_alias (__mtx_init, mtx_init) +versioned_symbol (libc, __mtx_init, mtx_init, C11_THREADS_IN_LIBC); +#if OTHER_SHLIB_COMPAT (libpthread, C11_THREADS_INTRODUCED, C11_THREADS_IN_LIBC) +compat_symbol (libpthread, __mtx_init, mtx_init, C11_THREADS_INTRODUCED); #endif diff --git a/sysdeps/pthread/mtx_lock.c b/sysdeps/pthread/mtx_lock.c index 7318d4249e..d37f11d39b 100644 --- a/sysdeps/pthread/mtx_lock.c +++ b/sysdeps/pthread/mtx_lock.c @@ -18,6 +18,7 @@ #include "thrd_priv.h" #include +#include int __mtx_lock (mtx_t *mutex) @@ -25,11 +26,7 @@ __mtx_lock (mtx_t *mutex) int err_code = __pthread_mutex_lock ((pthread_mutex_t *) mutex); return thrd_err_map (err_code); } -#if PTHREAD_IN_LIBC -versioned_symbol (libc, __mtx_lock, mtx_lock, GLIBC_2_34); -# if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_28, GLIBC_2_34) -compat_symbol (libpthread, __mtx_lock, mtx_lock, GLIBC_2_28); -# endif -#else /* !PTHREAD_IN_LIBC */ -strong_alias (__mtx_lock, mtx_lock) +versioned_symbol (libc, __mtx_lock, mtx_lock, C11_THREADS_IN_LIBC); +#if OTHER_SHLIB_COMPAT (libpthread, C11_THREADS_INTRODUCED, C11_THREADS_IN_LIBC) +compat_symbol (libpthread, __mtx_lock, mtx_lock, C11_THREADS_INTRODUCED); #endif diff --git a/sysdeps/pthread/mtx_timedlock.c b/sysdeps/pthread/mtx_timedlock.c index 8e7e0af725..bb1b12754c 100644 --- a/sysdeps/pthread/mtx_timedlock.c +++ b/sysdeps/pthread/mtx_timedlock.c @@ -16,13 +16,19 @@ License along with the GNU C Library; if not, see . */ +#include #include "thrd_priv.h" +#include int -mtx_timedlock (mtx_t *restrict mutex, +__mtx_timedlock (mtx_t *restrict mutex, const struct timespec *restrict time_point) { int err_code = __pthread_mutex_timedlock ((pthread_mutex_t *)mutex, time_point); return thrd_err_map (err_code); } +versioned_symbol (libc, __mtx_timedlock, mtx_timedlock, C11_THREADS_IN_LIBC); +#if OTHER_SHLIB_COMPAT (libpthread, C11_THREADS_INTRODUCED, C11_THREADS_IN_LIBC) +compat_symbol (libpthread, __mtx_timedlock, mtx_timedlock, C11_THREADS_INTRODUCED); +#endif diff --git a/sysdeps/pthread/mtx_trylock.c b/sysdeps/pthread/mtx_trylock.c index 57b3e6d27d..9ecaf5cc76 100644 --- a/sysdeps/pthread/mtx_trylock.c +++ b/sysdeps/pthread/mtx_trylock.c @@ -18,6 +18,7 @@ #include #include "thrd_priv.h" +#include int __mtx_trylock (mtx_t *mutex) @@ -25,11 +26,7 @@ __mtx_trylock (mtx_t *mutex) int err_code = __pthread_mutex_trylock ((pthread_mutex_t *) mutex); return thrd_err_map (err_code); } -#if PTHREAD_IN_LIBC -versioned_symbol (libc, __mtx_trylock, mtx_trylock, GLIBC_2_34); -# if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_28, GLIBC_2_34) -compat_symbol (libpthread, __mtx_trylock, mtx_trylock, GLIBC_2_28); -# endif -#else /* !PTHREAD_IN_LIBC */ -strong_alias (__mtx_trylock, mtx_trylock) +versioned_symbol (libc, __mtx_trylock, mtx_trylock, C11_THREADS_IN_LIBC); +#if OTHER_SHLIB_COMPAT (libpthread, C11_THREADS_INTRODUCED, C11_THREADS_IN_LIBC) +compat_symbol (libpthread, __mtx_trylock, mtx_trylock, C11_THREADS_INTRODUCED); #endif diff --git a/sysdeps/pthread/mtx_unlock.c b/sysdeps/pthread/mtx_unlock.c index 978a9ee1d4..523626f9a0 100644 --- a/sysdeps/pthread/mtx_unlock.c +++ b/sysdeps/pthread/mtx_unlock.c @@ -18,6 +18,7 @@ #include "thrd_priv.h" #include +#include int __mtx_unlock (mtx_t *mutex) @@ -25,11 +26,7 @@ __mtx_unlock (mtx_t *mutex) int err_code = __pthread_mutex_unlock ((pthread_mutex_t *) mutex); return thrd_err_map (err_code); } -#if PTHREAD_IN_LIBC -versioned_symbol (libc, __mtx_unlock, mtx_unlock, GLIBC_2_34); -# if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_28, GLIBC_2_34) -compat_symbol (libpthread, __mtx_unlock, mtx_unlock, GLIBC_2_28); -# endif -#else /* !PTHREAD_IN_LIBC */ -strong_alias (__mtx_unlock, mtx_unlock) +versioned_symbol (libc, __mtx_unlock, mtx_unlock, C11_THREADS_IN_LIBC); +#if OTHER_SHLIB_COMPAT (libpthread, C11_THREADS_INTRODUCED, C11_THREADS_IN_LIBC) +compat_symbol (libpthread, __mtx_unlock, mtx_unlock, C11_THREADS_INTRODUCED); #endif diff --git a/sysdeps/pthread/thrd_create.c b/sysdeps/pthread/thrd_create.c index 788eb62a31..9dceeeaa58 100644 --- a/sysdeps/pthread/thrd_create.c +++ b/sysdeps/pthread/thrd_create.c @@ -18,6 +18,7 @@ #include "thrd_priv.h" #include +#include int __thrd_create (thrd_t *thr, thrd_start_t func, void *arg) @@ -29,11 +30,7 @@ __thrd_create (thrd_t *thr, thrd_start_t func, void *arg) (void* (*) (void*))func, arg); return thrd_err_map (err_code); } -#if PTHREAD_IN_LIBC -versioned_symbol (libc, __thrd_create, thrd_create, GLIBC_2_34); -# if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_28, GLIBC_2_34) -compat_symbol (libc, __thrd_create, thrd_create, GLIBC_2_28); -# endif -#else /* !PTHREAD_IN_LIBC */ -strong_alias (__thrd_create, thrd_create) +versioned_symbol (libc, __thrd_create, thrd_create, C11_THREADS_IN_LIBC); +#if OTHER_SHLIB_COMPAT (libpthread, C11_THREADS_INTRODUCED, C11_THREADS_IN_LIBC) +compat_symbol (libpthread, __thrd_create, thrd_create, C11_THREADS_INTRODUCED); #endif diff --git a/sysdeps/pthread/thrd_detach.c b/sysdeps/pthread/thrd_detach.c index d1a0598207..3aa2a20cd2 100644 --- a/sysdeps/pthread/thrd_detach.c +++ b/sysdeps/pthread/thrd_detach.c @@ -18,6 +18,7 @@ #include "thrd_priv.h" #include +#include int __thrd_detach (thrd_t thr) @@ -27,11 +28,7 @@ __thrd_detach (thrd_t thr) err_code = __pthread_detach (thr); return thrd_err_map (err_code); } -#if PTHREAD_IN_LIBC -versioned_symbol (libc, __thrd_detach, thrd_detach, GLIBC_2_34); -# if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_28, GLIBC_2_34) -compat_symbol (libc, __thrd_detach, thrd_detach, GLIBC_2_28); -# endif -#else /* !PTHREAD_IN_LIBC */ -strong_alias (__thrd_detach, thrd_detach) +versioned_symbol (libc, __thrd_detach, thrd_detach, C11_THREADS_IN_LIBC); +#if OTHER_SHLIB_COMPAT (libpthread, C11_THREADS_INTRODUCED, C11_THREADS_IN_LIBC) +compat_symbol (libpthread, __thrd_detach, thrd_detach, C11_THREADS_INTRODUCED); #endif diff --git a/sysdeps/pthread/thrd_exit.c b/sysdeps/pthread/thrd_exit.c index 9207ac2cfc..67d4fcf882 100644 --- a/sysdeps/pthread/thrd_exit.c +++ b/sysdeps/pthread/thrd_exit.c @@ -18,17 +18,14 @@ #include #include "thrd_priv.h" +#include _Noreturn void __thrd_exit (int res) { __pthread_exit ((void*)(uintptr_t) res); } -#if PTHREAD_IN_LIBC -versioned_symbol (libc, __thrd_exit, thrd_exit, GLIBC_2_34); -# if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_28, GLIBC_2_34) -compat_symbol (libpthread, __thrd_exit, thrd_exit, GLIBC_2_28); -# endif -#else /* !PTHREAD_IN_LIBC */ -strong_alias (__thrd_exit, thrd_exit) +versioned_symbol (libc, __thrd_exit, thrd_exit, C11_THREADS_IN_LIBC); +#if OTHER_SHLIB_COMPAT (libpthread, C11_THREADS_INTRODUCED, C11_THREADS_IN_LIBC) +compat_symbol (libpthread, __thrd_exit, thrd_exit, C11_THREADS_INTRODUCED); #endif diff --git a/sysdeps/pthread/thrd_join.c b/sysdeps/pthread/thrd_join.c index ca9cf3b558..7e06eadb72 100644 --- a/sysdeps/pthread/thrd_join.c +++ b/sysdeps/pthread/thrd_join.c @@ -18,6 +18,7 @@ #include "thrd_priv.h" #include +#include int __thrd_join (thrd_t thr, int *res) @@ -29,11 +30,7 @@ __thrd_join (thrd_t thr, int *res) return thrd_err_map (err_code); } -#if PTHREAD_IN_LIBC -versioned_symbol (libc, __thrd_join, thrd_join, GLIBC_2_34); -# if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_28, GLIBC_2_34) -compat_symbol (libc, __thrd_join, thrd_join, GLIBC_2_28); -# endif -#else /* !PTHREAD_IN_LIBC */ -strong_alias (__thrd_join, thrd_join) +versioned_symbol (libc, __thrd_join, thrd_join, C11_THREADS_IN_LIBC); +#if OTHER_SHLIB_COMPAT (libpthread, C11_THREADS_INTRODUCED, C11_THREADS_IN_LIBC) +compat_symbol (libpthread, __thrd_join, thrd_join, C11_THREADS_INTRODUCED); #endif diff --git a/sysdeps/pthread/tss_create.c b/sysdeps/pthread/tss_create.c index b99e80d846..d778899766 100644 --- a/sysdeps/pthread/tss_create.c +++ b/sysdeps/pthread/tss_create.c @@ -18,6 +18,7 @@ #include #include "thrd_priv.h" +#include int __tss_create (tss_t *tss_id, tss_dtor_t destructor) @@ -32,11 +33,7 @@ __tss_create (tss_t *tss_id, tss_dtor_t destructor) int err_code = __pthread_key_create (tss_id, destructor); return thrd_err_map (err_code); } -#if PTHREAD_IN_LIBC -versioned_symbol (libc, __tss_create, tss_create, GLIBC_2_34); -# if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_28, GLIBC_2_34) -compat_symbol (libpthread, __tss_create, tss_create, GLIBC_2_28); -# endif -#else /* !PTHREAD_IN_LIBC */ -strong_alias (__tss_create, tss_create) +versioned_symbol (libc, __tss_create, tss_create, C11_THREADS_IN_LIBC); +#if OTHER_SHLIB_COMPAT (libpthread, C11_THREADS_INTRODUCED, C11_THREADS_IN_LIBC) +compat_symbol (libpthread, __tss_create, tss_create, C11_THREADS_INTRODUCED); #endif diff --git a/sysdeps/pthread/tss_delete.c b/sysdeps/pthread/tss_delete.c index 584f87889a..a7771dc6cc 100644 --- a/sysdeps/pthread/tss_delete.c +++ b/sysdeps/pthread/tss_delete.c @@ -18,17 +18,14 @@ #include #include "thrd_priv.h" +#include void __tss_delete (tss_t tss_id) { __pthread_key_delete (tss_id); } -#if PTHREAD_IN_LIBC -versioned_symbol (libc, __tss_delete, tss_delete, GLIBC_2_34); -# if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_28, GLIBC_2_34) -compat_symbol (libpthread, __tss_delete, tss_delete, GLIBC_2_28); -# endif -#else /* !PTHREAD_IN_LIBC */ -strong_alias (__tss_delete, tss_delete) +versioned_symbol (libc, __tss_delete, tss_delete, C11_THREADS_IN_LIBC); +#if OTHER_SHLIB_COMPAT (libpthread, C11_THREADS_INTRODUCED, C11_THREADS_IN_LIBC) +compat_symbol (libpthread, __tss_delete, tss_delete, C11_THREADS_INTRODUCED); #endif diff --git a/sysdeps/pthread/tss_get.c b/sysdeps/pthread/tss_get.c index bb31cb1640..4d992ddda6 100644 --- a/sysdeps/pthread/tss_get.c +++ b/sysdeps/pthread/tss_get.c @@ -18,17 +18,14 @@ #include #include "thrd_priv.h" +#include void * __tss_get (tss_t tss_id) { return __pthread_getspecific (tss_id); } -#if PTHREAD_IN_LIBC -versioned_symbol (libc, __tss_get, tss_get, GLIBC_2_34); -# if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_28, GLIBC_2_34) -compat_symbol (libpthread, __tss_get, tss_get, GLIBC_2_28); -# endif -#else /* !PTHREAD_IN_LIBC */ -strong_alias (__tss_get, tss_get) +versioned_symbol (libc, __tss_get, tss_get, C11_THREADS_IN_LIBC); +#if OTHER_SHLIB_COMPAT (libpthread, C11_THREADS_INTRODUCED, C11_THREADS_IN_LIBC) +compat_symbol (libpthread, __tss_get, tss_get, C11_THREADS_INTRODUCED); #endif diff --git a/sysdeps/pthread/tss_set.c b/sysdeps/pthread/tss_set.c index a751c37c2f..9d9c282bfe 100644 --- a/sysdeps/pthread/tss_set.c +++ b/sysdeps/pthread/tss_set.c @@ -18,6 +18,7 @@ #include #include "thrd_priv.h" +#include int __tss_set (tss_t tss_id, void *val) @@ -25,11 +26,7 @@ __tss_set (tss_t tss_id, void *val) int err_code = __pthread_setspecific (tss_id, val); return thrd_err_map (err_code); } -#if PTHREAD_IN_LIBC -versioned_symbol (libc, __tss_set, tss_set, GLIBC_2_34); -# if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_28, GLIBC_2_34) -compat_symbol (libpthread, __tss_set, tss_set, GLIBC_2_28); -# endif -#else /* !PTHREAD_IN_LIBC */ -strong_alias (__tss_set, tss_set) +versioned_symbol (libc, __tss_set, tss_set, C11_THREADS_IN_LIBC); +#if OTHER_SHLIB_COMPAT (libpthread, C11_THREADS_INTRODUCED, C11_THREADS_IN_LIBC) +compat_symbol (libpthread, __tss_set, tss_set, C11_THREADS_INTRODUCED); #endif