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

Message-ID: <20250815181500.107433-10-gfle...@disroot.org>
---
 htl/Makefile                                | 4 ++--
 htl/Versions                                | 4 ++--
 htl/pt-cancel.c                             | 9 ++++++++-
 sysdeps/mach/hurd/i386/libc.abilist         | 2 ++
 sysdeps/mach/hurd/i386/libpthread.abilist   | 1 -
 sysdeps/mach/hurd/x86_64/libc.abilist       | 2 ++
 sysdeps/mach/hurd/x86_64/libpthread.abilist | 1 -
 7 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/htl/Makefile b/htl/Makefile
index 88f65c419a..3ec68aa842 100644
--- a/htl/Makefile
+++ b/htl/Makefile
@@ -33,12 +33,10 @@ libpthread-routines := \
   pt-join \
   pt-spin-inlines \
   pt-testcancel \
-  pt-cancel \
   pt-mutex-transfer-np \
   pt-hurd-cond-wait \
   pt-hurd-cond-timedwait \
   pt-startup \
-  pt-docancel \
   pt-sysdep \
   pt-setup \
   pt-spin \
@@ -130,6 +128,7 @@ routines := \
   pt-barrierattr-setpshared \
   pt-block \
   pt-block-intr \
+  pt-cancel \
   pt-cleanup \
   pt-cond \
   pt-cond-brdcast \
@@ -146,6 +145,7 @@ routines := \
   pt-condattr-setpshared \
   pt-dealloc \
   pt-destroy-specific \
+  pt-docancel \
   pt-getconcurrency \
   pt-getcpuclockid \
   pt-getschedparam \
diff --git a/htl/Versions b/htl/Versions
index e5ff9186aa..078aa8b33a 100644
--- a/htl/Versions
+++ b/htl/Versions
@@ -37,6 +37,7 @@ libc {
     pthread_barrierattr_getpshared;
     pthread_barrierattr_init;
     pthread_barrierattr_setpshared;
+    pthread_cancel;
     pthread_cond_broadcast;
     pthread_cond_destroy;
     pthread_cond_init;
@@ -192,6 +193,7 @@ libc {
   }
 
   GLIBC_2.43 {
+    pthread_cancel;
     pthread_getconcurrency;
     pthread_getcpuclockid;
     pthread_setconcurrency;
@@ -283,8 +285,6 @@ libpthread {
 
     pthread_atfork;
 
-    pthread_cancel;
-
     pthread_create; pthread_detach; pthread_exit;
 
     pthread_getattr_np;
diff --git a/htl/pt-cancel.c b/htl/pt-cancel.c
index b4f3a8b7e4..0005284fa8 100644
--- a/htl/pt-cancel.c
+++ b/htl/pt-cancel.c
@@ -19,9 +19,11 @@
 #include <pthread.h>
 
 #include <pt-internal.h>
+#include <shlib-compat.h>
+#include <ldsodefs.h>
 
 int
-pthread_cancel (pthread_t t)
+__pthread_cancel (pthread_t t)
 {
   int err = 0;
   struct __pthread *p;
@@ -60,3 +62,8 @@ pthread_cancel (pthread_t t)
 
   return err;
 }
+versioned_symbol (libc, __pthread_cancel, pthread_cancel, GLIBC_2_43);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_43)
+compat_symbol (libpthread, __pthread_cancel, pthread_cancel, GLIBC_2_12);
+#endif
diff --git a/sysdeps/mach/hurd/i386/libc.abilist 
b/sysdeps/mach/hurd/i386/libc.abilist
index 20cff5f143..1128ca2496 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -58,6 +58,7 @@ GLIBC_2.12 pthread_barrierattr_destroy F
 GLIBC_2.12 pthread_barrierattr_getpshared F
 GLIBC_2.12 pthread_barrierattr_init F
 GLIBC_2.12 pthread_barrierattr_setpshared F
+GLIBC_2.12 pthread_cancel F
 GLIBC_2.12 pthread_cond_broadcast F
 GLIBC_2.12 pthread_cond_destroy F
 GLIBC_2.12 pthread_cond_init F
@@ -2638,6 +2639,7 @@ GLIBC_2.42 uabs F
 GLIBC_2.42 uimaxabs F
 GLIBC_2.42 ulabs F
 GLIBC_2.42 ullabs F
+GLIBC_2.43 pthread_cancel F
 GLIBC_2.43 pthread_getconcurrency F
 GLIBC_2.43 pthread_getcpuclockid F
 GLIBC_2.43 pthread_setconcurrency F
diff --git a/sysdeps/mach/hurd/i386/libpthread.abilist 
b/sysdeps/mach/hurd/i386/libpthread.abilist
index b3afc039e5..3c7c8d9398 100644
--- a/sysdeps/mach/hurd/i386/libpthread.abilist
+++ b/sysdeps/mach/hurd/i386/libpthread.abilist
@@ -20,7 +20,6 @@ GLIBC_2.12 flockfile F
 GLIBC_2.12 ftrylockfile F
 GLIBC_2.12 funlockfile F
 GLIBC_2.12 pthread_atfork F
-GLIBC_2.12 pthread_cancel F
 GLIBC_2.12 pthread_create F
 GLIBC_2.12 pthread_detach F
 GLIBC_2.12 pthread_exit F
diff --git a/sysdeps/mach/hurd/x86_64/libc.abilist 
b/sysdeps/mach/hurd/x86_64/libc.abilist
index 88d180fcf2..8b5d0c8871 100644
--- a/sysdeps/mach/hurd/x86_64/libc.abilist
+++ b/sysdeps/mach/hurd/x86_64/libc.abilist
@@ -1539,6 +1539,7 @@ GLIBC_2.38 pthread_barrierattr_destroy F
 GLIBC_2.38 pthread_barrierattr_getpshared F
 GLIBC_2.38 pthread_barrierattr_init F
 GLIBC_2.38 pthread_barrierattr_setpshared F
+GLIBC_2.38 pthread_cancel F
 GLIBC_2.38 pthread_cond_broadcast F
 GLIBC_2.38 pthread_cond_clockwait F
 GLIBC_2.38 pthread_cond_destroy F
@@ -2320,6 +2321,7 @@ GLIBC_2.42 uabs F
 GLIBC_2.42 uimaxabs F
 GLIBC_2.42 ulabs F
 GLIBC_2.42 ullabs F
+GLIBC_2.43 pthread_cancel F
 GLIBC_2.43 pthread_getconcurrency F
 GLIBC_2.43 pthread_getcpuclockid F
 GLIBC_2.43 pthread_setconcurrency F
diff --git a/sysdeps/mach/hurd/x86_64/libpthread.abilist 
b/sysdeps/mach/hurd/x86_64/libpthread.abilist
index e76c359b1d..f8d7ee6bfd 100644
--- a/sysdeps/mach/hurd/x86_64/libpthread.abilist
+++ b/sysdeps/mach/hurd/x86_64/libpthread.abilist
@@ -37,7 +37,6 @@ 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 pthread_cancel F
 GLIBC_2.38 pthread_clockjoin_np F
 GLIBC_2.38 pthread_create F
 GLIBC_2.38 pthread_detach F
-- 
2.47.2


Reply via email to