aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgfleury <gfleury@disroot.org>2025-08-17 12:40:21 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2025-08-18 01:06:38 +0200
commitf5a43420e24ebdaddde2afc3878da8b6f0c83362 (patch)
tree1125f3310bbd4241b580b4a5b1285d5bdb12552d
parent795f5f2a8b05a8d1636d95823246f11e9203eaa1 (diff)
downloadglibc-f5a43420e24ebdaddde2afc3878da8b6f0c83362.zip
glibc-f5a43420e24ebdaddde2afc3878da8b6f0c83362.tar.gz
glibc-f5a43420e24ebdaddde2afc3878da8b6f0c83362.tar.bz2
htl: move sem_{clockwait, timedwait, wait, trywait} into libc.
Message-ID: <20250817104023.91919-7-gfleury@disroot.org>
-rw-r--r--htl/Makefile8
-rw-r--r--htl/Versions13
-rw-r--r--hurd/hurdlock.c1
-rw-r--r--hurd/hurdlock.h1
-rw-r--r--sysdeps/htl/include/semaphore.h11
-rw-r--r--sysdeps/htl/sem-timedwait.c14
-rw-r--r--sysdeps/htl/sem-trywait.c7
-rw-r--r--sysdeps/htl/sem-wait.c6
-rw-r--r--sysdeps/mach/hurd/i386/libc.abilist8
-rw-r--r--sysdeps/mach/hurd/i386/libpthread.abilist4
-rw-r--r--sysdeps/mach/hurd/x86_64/libc.abilist8
-rw-r--r--sysdeps/mach/hurd/x86_64/libpthread.abilist4
12 files changed, 66 insertions, 19 deletions
diff --git a/htl/Makefile b/htl/Makefile
index b995d1a..56b29e6 100644
--- a/htl/Makefile
+++ b/htl/Makefile
@@ -34,11 +34,7 @@ libpthread-routines := \
pt-spin \
pt-getname-np \
pt-setname-np \
- sem-timedwait \
- sem-trywait \
sem_unlink \
- sem-wait \
- sem-waitfast \
cancellation \
cthreads-compat \
herrno \
@@ -208,6 +204,10 @@ routines := \
sem-getvalue \
sem-init \
sem-post \
+ sem-timedwait \
+ sem-trywait \
+ sem-wait \
+ sem-waitfast \
sem_close \
sem_open \
sem_routines \
diff --git a/htl/Versions b/htl/Versions
index ff1d5b9..c22b1b0 100644
--- a/htl/Versions
+++ b/htl/Versions
@@ -107,6 +107,9 @@ libc {
sem_init;
sem_open;
sem_post;
+ sem_timedwait;
+ sem_trywait;
+ sem_wait;
}
GLIBC_2.21 {
@@ -147,6 +150,8 @@ libc {
pthread_rwlock_clockrdlock; pthread_rwlock_clockwrlock;
pthread_timedjoin_np; pthread_tryjoin_np;
+
+ sem_clockwait;
}
GLIBC_2.41 {
@@ -225,12 +230,16 @@ libc {
pthread_timedjoin_np;
pthread_tryjoin_np;
pthread_yield;
+ sem_clockwait;
sem_close;
sem_destroy;
sem_getvalue;
sem_init;
sem_open;
sem_post;
+ sem_timedwait;
+ sem_trywait;
+ sem_wait;
}
GLIBC_PRIVATE {
@@ -323,7 +332,7 @@ libpthread {
pthread_create;
- sem_timedwait; sem_trywait; sem_unlink; sem_wait;
+ sem_unlink;
pthread_spin_destroy; pthread_spin_init; pthread_spin_lock;
pthread_spin_trylock; pthread_spin_unlock;
@@ -343,8 +352,6 @@ libpthread {
call_once;
cnd_broadcast; cnd_destroy; cnd_init; cnd_signal; cnd_timedwait; cnd_wait;
tss_create; tss_delete; tss_get; tss_set;
-
- sem_clockwait;
}
GLIBC_2.40 {
diff --git a/hurd/hurdlock.c b/hurd/hurdlock.c
index c771662..1cb6981 100644
--- a/hurd/hurdlock.c
+++ b/hurd/hurdlock.c
@@ -64,6 +64,7 @@ __lll_abstimed_wait_intr (void *ptr, int val,
int mlsec = compute_reltime (tsp, clk);
return mlsec < 0 ? KERN_TIMEDOUT : __lll_timed_wait_intr (ptr, val, mlsec, flags);
}
+libc_hidden_def (__lll_abstimed_wait_intr)
int
__lll_abstimed_xwait (void *ptr, int lo, int hi,
diff --git a/hurd/hurdlock.h b/hurd/hurdlock.h
index 0cfccc5..532a07d 100644
--- a/hurd/hurdlock.h
+++ b/hurd/hurdlock.h
@@ -58,6 +58,7 @@ extern int __lll_abstimed_wait (void *__ptr, int __val,
/* Interruptible version. */
extern int __lll_abstimed_wait_intr (void *__ptr, int __val,
const struct timespec *__tsp, int __flags, int __clk);
+libc_hidden_proto (__lll_abstimed_wait_intr)
/* Same as 'lll_xwait', but only block until TSP elapses,
using clock CLK. */
diff --git a/sysdeps/htl/include/semaphore.h b/sysdeps/htl/include/semaphore.h
index 5e5d3c1..b91b9b7 100644
--- a/sysdeps/htl/include/semaphore.h
+++ b/sysdeps/htl/include/semaphore.h
@@ -4,6 +4,17 @@
#ifndef _ISOMAC
extern __typeof (sem_post) __sem_post;
libc_hidden_proto (__sem_post)
+
+extern int __sem_clockwait (sem_t *__sem,
+ clockid_t clock,
+ const struct timespec *__abstime);
+libc_hidden_proto (__sem_clockwait)
+extern int __sem_timedwait (sem_t *__sem,
+ const struct timespec *__abstime);
+libc_hidden_proto (__sem_timedwait)
+
+extern int __sem_trywait (sem_t *__sem);
+libc_hidden_proto (__sem_trywait)
#endif
#endif
diff --git a/sysdeps/htl/sem-timedwait.c b/sysdeps/htl/sem-timedwait.c
index 4931dde..8f2b4d3 100644
--- a/sysdeps/htl/sem-timedwait.c
+++ b/sysdeps/htl/sem-timedwait.c
@@ -25,6 +25,7 @@
#include <sysdep-cancel.h>
#include <pt-internal.h>
+#include <shlib-compat.h>
#if !__HAVE_64B_ATOMICS
static void
@@ -196,7 +197,12 @@ __sem_clockwait (sem_t *sem, clockid_t clockid,
{
return __sem_timedwait_internal (sem, clockid, timeout);
}
-weak_alias (__sem_clockwait, sem_clockwait);
+
+libc_hidden_def (__sem_clockwait)
+versioned_symbol (libc, __sem_clockwait, sem_clockwait, GLIBC_2_43);
+# if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_32, GLIBC_2_43)
+compat_symbol (libpthread, __sem_clockwait, sem_clockwait, GLIBC_2_32);
+#endif
int
__sem_timedwait (sem_t *restrict sem, const struct timespec *restrict timeout)
@@ -204,4 +210,8 @@ __sem_timedwait (sem_t *restrict sem, const struct timespec *restrict timeout)
return __sem_timedwait_internal (sem, CLOCK_REALTIME, timeout);
}
-weak_alias (__sem_timedwait, sem_timedwait);
+libc_hidden_def (__sem_timedwait)
+versioned_symbol (libc, __sem_timedwait, sem_timedwait, GLIBC_2_43);
+# if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_43)
+compat_symbol (libpthread, __sem_timedwait, sem_timedwait, GLIBC_2_12);
+#endif
diff --git a/sysdeps/htl/sem-trywait.c b/sysdeps/htl/sem-trywait.c
index 38846bf..0d1e9cd 100644
--- a/sysdeps/htl/sem-trywait.c
+++ b/sysdeps/htl/sem-trywait.c
@@ -21,6 +21,7 @@
#include <hurd.h>
#include <pt-internal.h>
+#include <shlib-compat.h>
int
__sem_trywait (sem_t *sem)
@@ -33,4 +34,8 @@ __sem_trywait (sem_t *sem)
return __hurd_fail (EAGAIN);
}
-weak_alias (__sem_trywait, sem_trywait);
+libc_hidden_def (__sem_trywait)
+versioned_symbol (libc, __sem_trywait, sem_trywait, GLIBC_2_43);
+# if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_43)
+compat_symbol (libpthread, __sem_trywait, sem_trywait, GLIBC_2_12);
+#endif
diff --git a/sysdeps/htl/sem-wait.c b/sysdeps/htl/sem-wait.c
index 97c873d..c2fc7a9 100644
--- a/sysdeps/htl/sem-wait.c
+++ b/sysdeps/htl/sem-wait.c
@@ -18,6 +18,7 @@
#include <semaphore.h>
#include <pt-internal.h>
+#include <shlib-compat.h>
extern int __sem_timedwait_internal (sem_t *restrict sem,
clockid_t clockid,
@@ -29,4 +30,7 @@ __sem_wait (sem_t *sem)
return __sem_timedwait_internal (sem, CLOCK_REALTIME, 0);
}
-strong_alias (__sem_wait, sem_wait);
+versioned_symbol (libc, __sem_wait, sem_wait, GLIBC_2_43);
+# if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_43)
+compat_symbol (libpthread, __sem_wait, sem_wait, GLIBC_2_12);
+#endif
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index 661bbf9..8eabddc 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -134,6 +134,9 @@ GLIBC_2.12 sem_getvalue F
GLIBC_2.12 sem_init F
GLIBC_2.12 sem_open F
GLIBC_2.12 sem_post F
+GLIBC_2.12 sem_timedwait F
+GLIBC_2.12 sem_trywait F
+GLIBC_2.12 sem_wait F
GLIBC_2.13 __fentry__ F
GLIBC_2.14 syncfs F
GLIBC_2.15 __fdelt_chk F
@@ -2333,6 +2336,7 @@ GLIBC_2.32 pthread_rwlock_clockrdlock F
GLIBC_2.32 pthread_rwlock_clockwrlock F
GLIBC_2.32 pthread_timedjoin_np F
GLIBC_2.32 pthread_tryjoin_np F
+GLIBC_2.32 sem_clockwait F
GLIBC_2.32 sigabbrev_np F
GLIBC_2.32 sigdescr_np F
GLIBC_2.32 strerrordesc_np F
@@ -2672,12 +2676,16 @@ GLIBC_2.43 pthread_testcancel F
GLIBC_2.43 pthread_timedjoin_np F
GLIBC_2.43 pthread_tryjoin_np F
GLIBC_2.43 pthread_yield F
+GLIBC_2.43 sem_clockwait F
GLIBC_2.43 sem_close F
GLIBC_2.43 sem_destroy F
GLIBC_2.43 sem_getvalue F
GLIBC_2.43 sem_init F
GLIBC_2.43 sem_open F
GLIBC_2.43 sem_post F
+GLIBC_2.43 sem_timedwait F
+GLIBC_2.43 sem_trywait F
+GLIBC_2.43 sem_wait F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/mach/hurd/i386/libpthread.abilist b/sysdeps/mach/hurd/i386/libpthread.abilist
index 07dd753..483d792 100644
--- a/sysdeps/mach/hurd/i386/libpthread.abilist
+++ b/sysdeps/mach/hurd/i386/libpthread.abilist
@@ -24,10 +24,7 @@ GLIBC_2.12 pthread_spin_init F
GLIBC_2.12 pthread_spin_lock F
GLIBC_2.12 pthread_spin_trylock F
GLIBC_2.12 pthread_spin_unlock F
-GLIBC_2.12 sem_timedwait F
-GLIBC_2.12 sem_trywait F
GLIBC_2.12 sem_unlink F
-GLIBC_2.12 sem_wait F
GLIBC_2.2.6 _IO_flockfile F
GLIBC_2.2.6 _IO_ftrylockfile F
GLIBC_2.2.6 _IO_funlockfile F
@@ -48,7 +45,6 @@ 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 sem_clockwait F
GLIBC_2.32 thrd_create F
GLIBC_2.32 thrd_detach F
GLIBC_2.32 thrd_exit F
diff --git a/sysdeps/mach/hurd/x86_64/libc.abilist b/sysdeps/mach/hurd/x86_64/libc.abilist
index 6fa0e6f..de42aca 100644
--- a/sysdeps/mach/hurd/x86_64/libc.abilist
+++ b/sysdeps/mach/hurd/x86_64/libc.abilist
@@ -1759,12 +1759,16 @@ GLIBC_2.38 seed48 F
GLIBC_2.38 seed48_r F
GLIBC_2.38 seekdir F
GLIBC_2.38 select F
+GLIBC_2.38 sem_clockwait F
GLIBC_2.38 sem_close F
GLIBC_2.38 sem_destroy F
GLIBC_2.38 sem_getvalue F
GLIBC_2.38 sem_init F
GLIBC_2.38 sem_open F
GLIBC_2.38 sem_post F
+GLIBC_2.38 sem_timedwait F
+GLIBC_2.38 sem_trywait F
+GLIBC_2.38 sem_wait F
GLIBC_2.38 semctl F
GLIBC_2.38 semget F
GLIBC_2.38 semop F
@@ -2353,12 +2357,16 @@ GLIBC_2.43 pthread_testcancel F
GLIBC_2.43 pthread_timedjoin_np F
GLIBC_2.43 pthread_tryjoin_np F
GLIBC_2.43 pthread_yield F
+GLIBC_2.43 sem_clockwait F
GLIBC_2.43 sem_close F
GLIBC_2.43 sem_destroy F
GLIBC_2.43 sem_getvalue F
GLIBC_2.43 sem_init F
GLIBC_2.43 sem_open F
GLIBC_2.43 sem_post F
+GLIBC_2.43 sem_timedwait F
+GLIBC_2.43 sem_trywait F
+GLIBC_2.43 sem_wait F
HURD_CTHREADS_0.3 __cthread_getspecific F
HURD_CTHREADS_0.3 __cthread_keycreate F
HURD_CTHREADS_0.3 __cthread_setspecific F
diff --git a/sysdeps/mach/hurd/x86_64/libpthread.abilist b/sysdeps/mach/hurd/x86_64/libpthread.abilist
index 38cf0d2..4c9ba3b 100644
--- a/sysdeps/mach/hurd/x86_64/libpthread.abilist
+++ b/sysdeps/mach/hurd/x86_64/libpthread.abilist
@@ -43,11 +43,7 @@ GLIBC_2.38 pthread_spin_init F
GLIBC_2.38 pthread_spin_lock F
GLIBC_2.38 pthread_spin_trylock F
GLIBC_2.38 pthread_spin_unlock F
-GLIBC_2.38 sem_clockwait F
-GLIBC_2.38 sem_timedwait F
-GLIBC_2.38 sem_trywait F
GLIBC_2.38 sem_unlink F
-GLIBC_2.38 sem_wait F
GLIBC_2.38 thrd_create F
GLIBC_2.38 thrd_detach F
GLIBC_2.38 thrd_exit F