From: gfleury <gfle...@disroot.org>

Message-ID: <20250817104023.91919-7-gfle...@disroot.org>
---
 htl/Makefile                                |  8 ++++----
 htl/Versions                                | 13 ++++++++++---
 hurd/hurdlock.c                             |  1 +
 hurd/hurdlock.h                             |  1 +
 sysdeps/htl/include/semaphore.h             | 11 +++++++++++
 sysdeps/htl/sem-timedwait.c                 | 14 ++++++++++++--
 sysdeps/htl/sem-trywait.c                   |  7 ++++++-
 sysdeps/htl/sem-wait.c                      |  6 +++++-
 sysdeps/mach/hurd/i386/libc.abilist         |  8 ++++++++
 sysdeps/mach/hurd/i386/libpthread.abilist   |  4 ----
 sysdeps/mach/hurd/x86_64/libc.abilist       |  8 ++++++++
 sysdeps/mach/hurd/x86_64/libpthread.abilist |  4 ----
 12 files changed, 66 insertions(+), 19 deletions(-)

diff --git a/htl/Makefile b/htl/Makefile
index b995d1a4b3..56b29e6bfd 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 ff1d5b9348..c22b1b07f3 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 c771662e84..1cb6981ac2 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 0cfccc562c..532a07d5f4 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 5e5d3c18e9..b91b9b7077 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 4931dde5ce..8f2b4d3f8b 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 38846bf9a3..0d1e9cd5a8 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 97c873dc8d..c2fc7a93f1 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 661bbf9532..8eabddcec6 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 07dd75378e..483d792727 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 6fa0e6f01a..de42acab3d 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 38cf0d2595..4c9ba3b7d5 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
-- 
2.47.2


Reply via email to