diff --git a/nptl/Makefile b/nptl/Makefile
index 38f2715c2c..884cb69bb4 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -148,6 +148,7 @@ routines = \
   pthread_spin_lock \
   pthread_spin_trylock \
   pthread_spin_unlock \
+  pthread_testcancel \
   pthread_yield \
   tpp \
   unwind \
@@ -199,7 +200,6 @@ libpthread-routines = \
   pthread_setname \
   pthread_setschedprio \
   pthread_sigqueue \
-  pthread_testcancel \
   pthread_timedjoin \
   pthread_tryjoin \
   sem_clockwait \
diff --git a/nptl/Versions b/nptl/Versions
index 0914630be3..b0c575e30f 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -61,6 +61,7 @@ libc {
     pthread_setschedparam;
     pthread_setspecific;
     pthread_sigmask;
+    pthread_testcancel;
   }
   GLIBC_2.1 {
     pthread_attr_init;
@@ -245,6 +246,7 @@ libc {
     pthread_spin_lock;
     pthread_spin_trylock;
     pthread_spin_unlock;
+    pthread_testcancel;
     thrd_exit;
     tss_create;
     tss_delete;
@@ -286,6 +288,7 @@ libc {
     __pthread_setcancelstate;
     __pthread_tpp_change_priority;
     __pthread_unwind;
+    __pthread_testcancel;
     __sched_fifo_max_prio;
     __sched_fifo_min_prio;
   }
@@ -307,7 +310,6 @@ libpthread {
     pthread_detach;
     pthread_join;
     pthread_sigmask;
-    pthread_testcancel;
     sem_destroy;
     sem_getvalue;
     sem_init;
@@ -439,4 +441,4 @@ ld {
   GLIBC_PRIVATE {
      __nptl_set_robust_list_avail;
   }
-}
\ No newline at end of file
+}
diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
index 3e5aba74ed..4116970b77 100644
--- a/nptl/pthreadP.h
+++ b/nptl/pthreadP.h
@@ -572,6 +572,7 @@ libc_hidden_proto (__pthread_setcanceltype)
 extern int __pthread_enable_asynccancel (void) attribute_hidden;
 extern void __pthread_disable_asynccancel (int oldtype) attribute_hidden;
 extern void __pthread_testcancel (void);
+libc_hidden_proto (__pthread_testcancel)
 extern int __pthread_clockjoin_ex (pthread_t, void **, clockid_t,
 				   const struct __timespec64 *, bool)
   attribute_hidden;
@@ -581,7 +582,6 @@ libc_hidden_proto (__pthread_sigmask);
 
 #if IS_IN (libpthread)
 hidden_proto (__pthread_rwlock_unlock)
-hidden_proto (__pthread_testcancel)
 #endif
 
 extern int __pthread_cond_broadcast_2_0 (pthread_cond_2_0_t *cond);
diff --git a/nptl/pthread_testcancel.c b/nptl/pthread_testcancel.c
index 8ed2370afa..b6964904bb 100644
--- a/nptl/pthread_testcancel.c
+++ b/nptl/pthread_testcancel.c
@@ -18,6 +18,7 @@
 
 #include <stdlib.h>
 #include "pthreadP.h"
+#include <shlib-compat.h>
 
 
 void
@@ -25,5 +26,10 @@ __pthread_testcancel (void)
 {
   CANCELLATION_P (THREAD_SELF);
 }
-strong_alias (__pthread_testcancel, pthread_testcancel)
-hidden_def (__pthread_testcancel)
+libc_hidden_def (__pthread_testcancel)
+
+versioned_symbol (libc, __pthread_testcancel, pthread_testcancel, GLIBC_2_34);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_34)
+compat_symbol (libpthread, __pthread_testcancel, pthread_testcancel, GLIBC_2_0);
+#endif
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 29094366e3..3c79f614cf 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -1530,6 +1530,7 @@ GLIBC_2.17 pthread_spin_init F
 GLIBC_2.17 pthread_spin_lock F
 GLIBC_2.17 pthread_spin_trylock F
 GLIBC_2.17 pthread_spin_unlock F
+GLIBC_2.17 pthread_testcancel F
 GLIBC_2.17 pthread_yield F
 GLIBC_2.17 ptrace F
 GLIBC_2.17 ptsname F
@@ -2344,6 +2345,7 @@ GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
+GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
index c1f11e12df..839f2ff64a 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
@@ -37,7 +37,6 @@ GLIBC_2.17 pthread_setconcurrency F
 GLIBC_2.17 pthread_setname_np F
 GLIBC_2.17 pthread_setschedprio F
 GLIBC_2.17 pthread_sigqueue F
-GLIBC_2.17 pthread_testcancel F
 GLIBC_2.17 pthread_timedjoin_np F
 GLIBC_2.17 pthread_tryjoin_np F
 GLIBC_2.17 sem_close F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 74998fc5b0..3ae8eb0327 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -921,6 +921,7 @@ GLIBC_2.0 pthread_setcanceltype F
 GLIBC_2.0 pthread_setschedparam F
 GLIBC_2.0 pthread_setspecific F
 GLIBC_2.0 pthread_sigmask F
+GLIBC_2.0 pthread_testcancel F
 GLIBC_2.0 ptrace F
 GLIBC_2.0 putc F
 GLIBC_2.0 putc_unlocked F
@@ -2425,6 +2426,7 @@ GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
+GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
index 5eae00fd6b..2633a1c816 100644
--- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
@@ -9,7 +9,6 @@ GLIBC_2.0 pthread_cancel F
 GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join F
-GLIBC_2.0 pthread_testcancel F
 GLIBC_2.0 sem_destroy F
 GLIBC_2.0 sem_getvalue F
 GLIBC_2.0 sem_init F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 8ce7184069..068e992c7d 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1473,6 +1473,7 @@ GLIBC_2.32 pthread_spin_init F
 GLIBC_2.32 pthread_spin_lock F
 GLIBC_2.32 pthread_spin_trylock F
 GLIBC_2.32 pthread_spin_unlock F
+GLIBC_2.32 pthread_testcancel F
 GLIBC_2.32 pthread_yield F
 GLIBC_2.32 ptrace F
 GLIBC_2.32 ptsname F
@@ -2103,6 +2104,7 @@ GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
+GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
index 8d12b93ff1..fbe2217064 100644
--- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
@@ -40,7 +40,6 @@ GLIBC_2.32 pthread_setconcurrency F
 GLIBC_2.32 pthread_setname_np F
 GLIBC_2.32 pthread_setschedprio F
 GLIBC_2.32 pthread_sigqueue F
-GLIBC_2.32 pthread_testcancel F
 GLIBC_2.32 pthread_timedjoin_np F
 GLIBC_2.32 pthread_tryjoin_np F
 GLIBC_2.32 sem_clockwait F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 3eb6816ffc..a1c40d02b7 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -251,6 +251,7 @@ GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
+GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
@@ -1719,6 +1720,7 @@ GLIBC_2.4 pthread_spin_init F
 GLIBC_2.4 pthread_spin_lock F
 GLIBC_2.4 pthread_spin_trylock F
 GLIBC_2.4 pthread_spin_unlock F
+GLIBC_2.4 pthread_testcancel F
 GLIBC_2.4 pthread_yield F
 GLIBC_2.4 ptrace F
 GLIBC_2.4 ptsname F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
index e7907d89b8..bd82a85136 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
@@ -45,7 +45,6 @@ GLIBC_2.4 pthread_join F
 GLIBC_2.4 pthread_setaffinity_np F
 GLIBC_2.4 pthread_setconcurrency F
 GLIBC_2.4 pthread_setschedprio F
-GLIBC_2.4 pthread_testcancel F
 GLIBC_2.4 pthread_timedjoin_np F
 GLIBC_2.4 pthread_tryjoin_np F
 GLIBC_2.4 sem_close F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index bd3a7c2830..11bc55d9e7 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -248,6 +248,7 @@ GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
+GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
@@ -1716,6 +1717,7 @@ GLIBC_2.4 pthread_spin_init F
 GLIBC_2.4 pthread_spin_lock F
 GLIBC_2.4 pthread_spin_trylock F
 GLIBC_2.4 pthread_spin_unlock F
+GLIBC_2.4 pthread_testcancel F
 GLIBC_2.4 pthread_yield F
 GLIBC_2.4 ptrace F
 GLIBC_2.4 ptsname F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
index e7907d89b8..bd82a85136 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
@@ -45,7 +45,6 @@ GLIBC_2.4 pthread_join F
 GLIBC_2.4 pthread_setaffinity_np F
 GLIBC_2.4 pthread_setconcurrency F
 GLIBC_2.4 pthread_setschedprio F
-GLIBC_2.4 pthread_testcancel F
 GLIBC_2.4 pthread_timedjoin_np F
 GLIBC_2.4 pthread_tryjoin_np F
 GLIBC_2.4 sem_close F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 14dade3ad5..60c9fae933 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -1530,6 +1530,7 @@ GLIBC_2.29 pthread_spin_init F
 GLIBC_2.29 pthread_spin_lock F
 GLIBC_2.29 pthread_spin_trylock F
 GLIBC_2.29 pthread_spin_unlock F
+GLIBC_2.29 pthread_testcancel F
 GLIBC_2.29 pthread_yield F
 GLIBC_2.29 ptrace F
 GLIBC_2.29 ptsname F
@@ -2287,6 +2288,7 @@ GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
+GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
index 4030a58e1a..c1e500ab59 100644
--- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
@@ -39,7 +39,6 @@ GLIBC_2.29 pthread_setconcurrency F
 GLIBC_2.29 pthread_setname_np F
 GLIBC_2.29 pthread_setschedprio F
 GLIBC_2.29 pthread_sigqueue F
-GLIBC_2.29 pthread_testcancel F
 GLIBC_2.29 pthread_timedjoin_np F
 GLIBC_2.29 pthread_tryjoin_np F
 GLIBC_2.29 sem_close F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 286ac0c44d..b4081bab82 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -1341,6 +1341,7 @@ GLIBC_2.2 pthread_spin_init F
 GLIBC_2.2 pthread_spin_lock F
 GLIBC_2.2 pthread_spin_trylock F
 GLIBC_2.2 pthread_spin_unlock F
+GLIBC_2.2 pthread_testcancel F
 GLIBC_2.2 pthread_yield F
 GLIBC_2.2 ptrace F
 GLIBC_2.2 ptsname F
@@ -2238,6 +2239,7 @@ GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
+GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
index af0359bd14..0d4dfb6328 100644
--- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
@@ -31,7 +31,6 @@ GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join F
 GLIBC_2.2 pthread_setconcurrency F
-GLIBC_2.2 pthread_testcancel F
 GLIBC_2.2 sem_close F
 GLIBC_2.2 sem_destroy F
 GLIBC_2.2 sem_getvalue F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index e33fe31138..a482370926 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -898,6 +898,7 @@ GLIBC_2.0 pthread_setcanceltype F
 GLIBC_2.0 pthread_setschedparam F
 GLIBC_2.0 pthread_setspecific F
 GLIBC_2.0 pthread_sigmask F
+GLIBC_2.0 pthread_testcancel F
 GLIBC_2.0 ptrace F
 GLIBC_2.0 putc F
 GLIBC_2.0 putc_unlocked F
@@ -2415,6 +2416,7 @@ GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
+GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
index 1fdd0c7758..7b43b9309b 100644
--- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
@@ -9,7 +9,6 @@ GLIBC_2.0 pthread_cancel F
 GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join F
-GLIBC_2.0 pthread_testcancel F
 GLIBC_2.0 sem_destroy F
 GLIBC_2.0 sem_getvalue F
 GLIBC_2.0 sem_init F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index eedd7293e2..8e9234969d 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -1362,6 +1362,7 @@ GLIBC_2.2 pthread_spin_init F
 GLIBC_2.2 pthread_spin_lock F
 GLIBC_2.2 pthread_spin_trylock F
 GLIBC_2.2 pthread_spin_unlock F
+GLIBC_2.2 pthread_testcancel F
 GLIBC_2.2 pthread_yield F
 GLIBC_2.2 ptrace F
 GLIBC_2.2 ptsname F
@@ -2272,6 +2273,7 @@ GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
+GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
index c6c1f7ac7b..cef26d71d6 100644
--- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
@@ -31,7 +31,6 @@ GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join F
 GLIBC_2.2 pthread_setconcurrency F
-GLIBC_2.2 pthread_testcancel F
 GLIBC_2.2 sem_close F
 GLIBC_2.2 sem_destroy F
 GLIBC_2.2 sem_getvalue F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 0cf1c052db..0ff3a75d5c 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -252,6 +252,7 @@ GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
+GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
@@ -1699,6 +1700,7 @@ GLIBC_2.4 pthread_spin_init F
 GLIBC_2.4 pthread_spin_lock F
 GLIBC_2.4 pthread_spin_trylock F
 GLIBC_2.4 pthread_spin_unlock F
+GLIBC_2.4 pthread_testcancel F
 GLIBC_2.4 pthread_yield F
 GLIBC_2.4 ptrace F
 GLIBC_2.4 ptsname F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
index e7907d89b8..bd82a85136 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
@@ -45,7 +45,6 @@ GLIBC_2.4 pthread_join F
 GLIBC_2.4 pthread_setaffinity_np F
 GLIBC_2.4 pthread_setconcurrency F
 GLIBC_2.4 pthread_setschedprio F
-GLIBC_2.4 pthread_testcancel F
 GLIBC_2.4 pthread_timedjoin_np F
 GLIBC_2.4 pthread_tryjoin_np F
 GLIBC_2.4 sem_close F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 9a457376e2..ab29bb553c 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -897,6 +897,7 @@ GLIBC_2.0 pthread_setcanceltype F
 GLIBC_2.0 pthread_setschedparam F
 GLIBC_2.0 pthread_setspecific F
 GLIBC_2.0 pthread_sigmask F
+GLIBC_2.0 pthread_testcancel F
 GLIBC_2.0 ptrace F
 GLIBC_2.0 putc F
 GLIBC_2.0 putc_unlocked F
@@ -2358,6 +2359,7 @@ GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
+GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
index 1fdd0c7758..7b43b9309b 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
@@ -9,7 +9,6 @@ GLIBC_2.0 pthread_cancel F
 GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join F
-GLIBC_2.0 pthread_testcancel F
 GLIBC_2.0 sem_destroy F
 GLIBC_2.0 sem_getvalue F
 GLIBC_2.0 sem_init F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 540e503a0b..baa46ca8c2 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -1532,6 +1532,7 @@ GLIBC_2.18 pthread_spin_init F
 GLIBC_2.18 pthread_spin_lock F
 GLIBC_2.18 pthread_spin_trylock F
 GLIBC_2.18 pthread_spin_unlock F
+GLIBC_2.18 pthread_testcancel F
 GLIBC_2.18 pthread_yield F
 GLIBC_2.18 ptrace F
 GLIBC_2.18 ptsname F
@@ -2338,6 +2339,7 @@ GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
+GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
index 785630fec3..6bfa410c44 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
@@ -39,7 +39,6 @@ GLIBC_2.18 pthread_setconcurrency F
 GLIBC_2.18 pthread_setname_np F
 GLIBC_2.18 pthread_setschedprio F
 GLIBC_2.18 pthread_sigqueue F
-GLIBC_2.18 pthread_testcancel F
 GLIBC_2.18 pthread_timedjoin_np F
 GLIBC_2.18 pthread_tryjoin_np F
 GLIBC_2.18 sem_close F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index f630215296..b5640c3a40 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -1532,6 +1532,7 @@ GLIBC_2.18 pthread_spin_init F
 GLIBC_2.18 pthread_spin_lock F
 GLIBC_2.18 pthread_spin_trylock F
 GLIBC_2.18 pthread_spin_unlock F
+GLIBC_2.18 pthread_testcancel F
 GLIBC_2.18 pthread_yield F
 GLIBC_2.18 ptrace F
 GLIBC_2.18 ptsname F
@@ -2335,6 +2336,7 @@ GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
+GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
index 785630fec3..6bfa410c44 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
@@ -39,7 +39,6 @@ GLIBC_2.18 pthread_setconcurrency F
 GLIBC_2.18 pthread_setname_np F
 GLIBC_2.18 pthread_setschedprio F
 GLIBC_2.18 pthread_sigqueue F
-GLIBC_2.18 pthread_testcancel F
 GLIBC_2.18 pthread_timedjoin_np F
 GLIBC_2.18 pthread_tryjoin_np F
 GLIBC_2.18 sem_close F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index f4f2d706c0..f5193f5a30 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -894,6 +894,7 @@ GLIBC_2.0 pthread_setcanceltype F
 GLIBC_2.0 pthread_setschedparam F
 GLIBC_2.0 pthread_setspecific F
 GLIBC_2.0 pthread_sigmask F
+GLIBC_2.0 pthread_testcancel F
 GLIBC_2.0 ptrace F
 GLIBC_2.0 putc F
 GLIBC_2.0 putc_unlocked F
@@ -2321,6 +2322,7 @@ GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
+GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
index 8df7179bd2..83434ae1b6 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
@@ -9,7 +9,6 @@ GLIBC_2.0 pthread_cancel F
 GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join F
-GLIBC_2.0 pthread_testcancel F
 GLIBC_2.0 sem_destroy F
 GLIBC_2.0 sem_getvalue F
 GLIBC_2.0 sem_init F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index ee5b775cd0..a6c6ae308a 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -894,6 +894,7 @@ GLIBC_2.0 pthread_setcanceltype F
 GLIBC_2.0 pthread_setschedparam F
 GLIBC_2.0 pthread_setspecific F
 GLIBC_2.0 pthread_sigmask F
+GLIBC_2.0 pthread_testcancel F
 GLIBC_2.0 ptrace F
 GLIBC_2.0 putc F
 GLIBC_2.0 putc_unlocked F
@@ -2319,6 +2320,7 @@ GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
+GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
index 8df7179bd2..83434ae1b6 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
@@ -9,7 +9,6 @@ GLIBC_2.0 pthread_cancel F
 GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join F
-GLIBC_2.0 pthread_testcancel F
 GLIBC_2.0 sem_destroy F
 GLIBC_2.0 sem_getvalue F
 GLIBC_2.0 sem_init F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 6d9798fb9a..cd24ac6fde 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -894,6 +894,7 @@ GLIBC_2.0 pthread_setcanceltype F
 GLIBC_2.0 pthread_setschedparam F
 GLIBC_2.0 pthread_setspecific F
 GLIBC_2.0 pthread_sigmask F
+GLIBC_2.0 pthread_testcancel F
 GLIBC_2.0 ptrace F
 GLIBC_2.0 putc F
 GLIBC_2.0 putc_unlocked F
@@ -2327,6 +2328,7 @@ GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
+GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index e6d6053906..9a71aa83dd 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -892,6 +892,7 @@ GLIBC_2.0 pthread_setcanceltype F
 GLIBC_2.0 pthread_setschedparam F
 GLIBC_2.0 pthread_setspecific F
 GLIBC_2.0 pthread_sigmask F
+GLIBC_2.0 pthread_testcancel F
 GLIBC_2.0 ptrace F
 GLIBC_2.0 putc F
 GLIBC_2.0 putc_unlocked F
@@ -2321,6 +2322,7 @@ GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
+GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 743d981081..c0225a9559 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -1575,6 +1575,7 @@ GLIBC_2.21 pthread_spin_init F
 GLIBC_2.21 pthread_spin_lock F
 GLIBC_2.21 pthread_spin_trylock F
 GLIBC_2.21 pthread_spin_unlock F
+GLIBC_2.21 pthread_testcancel F
 GLIBC_2.21 pthread_yield F
 GLIBC_2.21 ptrace F
 GLIBC_2.21 ptsname F
@@ -2377,6 +2378,7 @@ GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
+GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
index fb9c53ec2b..197827a386 100644
--- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
@@ -39,7 +39,6 @@ GLIBC_2.21 pthread_setconcurrency F
 GLIBC_2.21 pthread_setname_np F
 GLIBC_2.21 pthread_setschedprio F
 GLIBC_2.21 pthread_sigqueue F
-GLIBC_2.21 pthread_testcancel F
 GLIBC_2.21 pthread_timedjoin_np F
 GLIBC_2.21 pthread_tryjoin_np F
 GLIBC_2.21 sem_close F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index e173d5a95c..c3e72afb9e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -905,6 +905,7 @@ GLIBC_2.0 pthread_setcanceltype F
 GLIBC_2.0 pthread_setschedparam F
 GLIBC_2.0 pthread_setspecific F
 GLIBC_2.0 pthread_sigmask F
+GLIBC_2.0 pthread_testcancel F
 GLIBC_2.0 ptrace F
 GLIBC_2.0 putc F
 GLIBC_2.0 putc_unlocked F
@@ -2385,6 +2386,7 @@ GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
+GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
index c761c15e3a..79bc809cfa 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
@@ -9,7 +9,6 @@ GLIBC_2.0 pthread_cancel F
 GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join F
-GLIBC_2.0 pthread_testcancel F
 GLIBC_2.0 sem_destroy F
 GLIBC_2.0 sem_getvalue F
 GLIBC_2.0 sem_init F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index b5e32bef98..b49aacf9a0 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -905,6 +905,7 @@ GLIBC_2.0 pthread_setcanceltype F
 GLIBC_2.0 pthread_setschedparam F
 GLIBC_2.0 pthread_setspecific F
 GLIBC_2.0 pthread_sigmask F
+GLIBC_2.0 pthread_testcancel F
 GLIBC_2.0 ptrace F
 GLIBC_2.0 putc F
 GLIBC_2.0 putc_unlocked F
@@ -2418,6 +2419,7 @@ GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
+GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 20168d3df3..57029e940a 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -1465,6 +1465,7 @@ GLIBC_2.3 pthread_spin_init F
 GLIBC_2.3 pthread_spin_lock F
 GLIBC_2.3 pthread_spin_trylock F
 GLIBC_2.3 pthread_spin_unlock F
+GLIBC_2.3 pthread_testcancel F
 GLIBC_2.3 pthread_yield F
 GLIBC_2.3 ptrace F
 GLIBC_2.3 ptsname F
@@ -2239,6 +2240,7 @@ GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
+GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
index 037f0f2839..0c5ee381d2 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
@@ -34,7 +34,6 @@ GLIBC_2.3 pthread_getconcurrency F
 GLIBC_2.3 pthread_getcpuclockid F
 GLIBC_2.3 pthread_join F
 GLIBC_2.3 pthread_setconcurrency F
-GLIBC_2.3 pthread_testcancel F
 GLIBC_2.3 sem_close F
 GLIBC_2.3 sem_destroy F
 GLIBC_2.3 sem_getvalue F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 5f94b1ce64..65fcc483a6 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -1618,6 +1618,7 @@ GLIBC_2.17 pthread_spin_init F
 GLIBC_2.17 pthread_spin_lock F
 GLIBC_2.17 pthread_spin_trylock F
 GLIBC_2.17 pthread_spin_unlock F
+GLIBC_2.17 pthread_testcancel F
 GLIBC_2.17 pthread_yield F
 GLIBC_2.17 ptrace F
 GLIBC_2.17 ptsname F
@@ -2540,6 +2541,7 @@ GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
+GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
index c1f11e12df..839f2ff64a 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
@@ -37,7 +37,6 @@ GLIBC_2.17 pthread_setconcurrency F
 GLIBC_2.17 pthread_setname_np F
 GLIBC_2.17 pthread_setschedprio F
 GLIBC_2.17 pthread_sigqueue F
-GLIBC_2.17 pthread_testcancel F
 GLIBC_2.17 pthread_timedjoin_np F
 GLIBC_2.17 pthread_tryjoin_np F
 GLIBC_2.17 sem_close F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 3fe5e16e5d..faddb79441 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1475,6 +1475,7 @@ GLIBC_2.33 pthread_spin_init F
 GLIBC_2.33 pthread_spin_lock F
 GLIBC_2.33 pthread_spin_trylock F
 GLIBC_2.33 pthread_spin_unlock F
+GLIBC_2.33 pthread_testcancel F
 GLIBC_2.33 pthread_yield F
 GLIBC_2.33 ptrace F
 GLIBC_2.33 ptsname F
@@ -2105,6 +2106,7 @@ GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
+GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
index b06dfc1038..94fcac028c 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
@@ -40,7 +40,6 @@ GLIBC_2.33 pthread_setconcurrency F
 GLIBC_2.33 pthread_setname_np F
 GLIBC_2.33 pthread_setschedprio F
 GLIBC_2.33 pthread_sigqueue F
-GLIBC_2.33 pthread_testcancel F
 GLIBC_2.33 pthread_timedjoin_np F
 GLIBC_2.33 pthread_tryjoin_np F
 GLIBC_2.33 sem_clockwait F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index f9beb99367..0a3a366b43 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -1520,6 +1520,7 @@ GLIBC_2.27 pthread_spin_init F
 GLIBC_2.27 pthread_spin_lock F
 GLIBC_2.27 pthread_spin_trylock F
 GLIBC_2.27 pthread_spin_unlock F
+GLIBC_2.27 pthread_testcancel F
 GLIBC_2.27 pthread_yield F
 GLIBC_2.27 ptrace F
 GLIBC_2.27 ptsname F
@@ -2305,6 +2306,7 @@ GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
+GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
index 5a7d9561fd..fdab0f5ab4 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
@@ -39,7 +39,6 @@ GLIBC_2.27 pthread_setconcurrency F
 GLIBC_2.27 pthread_setname_np F
 GLIBC_2.27 pthread_setschedprio F
 GLIBC_2.27 pthread_sigqueue F
-GLIBC_2.27 pthread_testcancel F
 GLIBC_2.27 pthread_timedjoin_np F
 GLIBC_2.27 pthread_tryjoin_np F
 GLIBC_2.27 sem_close F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index bfa492a8c7..1a6f72ff1d 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -896,6 +896,7 @@ GLIBC_2.0 pthread_setcanceltype F
 GLIBC_2.0 pthread_setschedparam F
 GLIBC_2.0 pthread_setspecific F
 GLIBC_2.0 pthread_sigmask F
+GLIBC_2.0 pthread_testcancel F
 GLIBC_2.0 ptrace F
 GLIBC_2.0 putc F
 GLIBC_2.0 putc_unlocked F
@@ -2383,6 +2384,7 @@ GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
+GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
index ddcff610d2..911048092d 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
@@ -9,7 +9,6 @@ GLIBC_2.0 pthread_cancel F
 GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join F
-GLIBC_2.0 pthread_testcancel F
 GLIBC_2.0 sem_destroy F
 GLIBC_2.0 sem_getvalue F
 GLIBC_2.0 sem_init F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 27e9b47768..f21fde6bca 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -1359,6 +1359,7 @@ GLIBC_2.2 pthread_spin_init F
 GLIBC_2.2 pthread_spin_lock F
 GLIBC_2.2 pthread_spin_trylock F
 GLIBC_2.2 pthread_spin_unlock F
+GLIBC_2.2 pthread_testcancel F
 GLIBC_2.2 pthread_yield F
 GLIBC_2.2 ptrace F
 GLIBC_2.2 ptsname F
@@ -2276,6 +2277,7 @@ GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
+GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
index ffe9d5fed1..c5c78cb049 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
@@ -32,7 +32,6 @@ GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join F
 GLIBC_2.2 pthread_setconcurrency F
-GLIBC_2.2 pthread_testcancel F
 GLIBC_2.2 sem_close F
 GLIBC_2.2 sem_destroy F
 GLIBC_2.2 sem_getvalue F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index b5cd5109ad..15ee14939e 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -1345,6 +1345,7 @@ GLIBC_2.2 pthread_spin_init F
 GLIBC_2.2 pthread_spin_lock F
 GLIBC_2.2 pthread_spin_trylock F
 GLIBC_2.2 pthread_spin_unlock F
+GLIBC_2.2 pthread_testcancel F
 GLIBC_2.2 pthread_yield F
 GLIBC_2.2 ptrace F
 GLIBC_2.2 ptsname F
@@ -2245,6 +2246,7 @@ GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
+GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
index af0359bd14..0d4dfb6328 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
@@ -31,7 +31,6 @@ GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join F
 GLIBC_2.2 pthread_setconcurrency F
-GLIBC_2.2 pthread_testcancel F
 GLIBC_2.2 sem_close F
 GLIBC_2.2 sem_destroy F
 GLIBC_2.2 sem_getvalue F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 1b20c9fcb1..533822d194 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -1345,6 +1345,7 @@ GLIBC_2.2 pthread_spin_init F
 GLIBC_2.2 pthread_spin_lock F
 GLIBC_2.2 pthread_spin_trylock F
 GLIBC_2.2 pthread_spin_unlock F
+GLIBC_2.2 pthread_testcancel F
 GLIBC_2.2 pthread_yield F
 GLIBC_2.2 ptrace F
 GLIBC_2.2 ptsname F
@@ -2242,6 +2243,7 @@ GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
+GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
index af0359bd14..0d4dfb6328 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
@@ -31,7 +31,6 @@ GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join F
 GLIBC_2.2 pthread_setconcurrency F
-GLIBC_2.2 pthread_testcancel F
 GLIBC_2.2 sem_close F
 GLIBC_2.2 sem_destroy F
 GLIBC_2.2 sem_getvalue F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index c99298c588..0116558e17 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -899,6 +899,7 @@ GLIBC_2.0 pthread_setcanceltype F
 GLIBC_2.0 pthread_setschedparam F
 GLIBC_2.0 pthread_setspecific F
 GLIBC_2.0 pthread_sigmask F
+GLIBC_2.0 pthread_testcancel F
 GLIBC_2.0 ptrace F
 GLIBC_2.0 putc F
 GLIBC_2.0 putc_unlocked F
@@ -2374,6 +2375,7 @@ GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
+GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
index 5eae00fd6b..2633a1c816 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
@@ -9,7 +9,6 @@ GLIBC_2.0 pthread_cancel F
 GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join F
-GLIBC_2.0 pthread_testcancel F
 GLIBC_2.0 sem_destroy F
 GLIBC_2.0 sem_getvalue F
 GLIBC_2.0 sem_init F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 19c6041c49..5bf6712979 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -1388,6 +1388,7 @@ GLIBC_2.2 pthread_spin_init F
 GLIBC_2.2 pthread_spin_lock F
 GLIBC_2.2 pthread_spin_trylock F
 GLIBC_2.2 pthread_spin_unlock F
+GLIBC_2.2 pthread_testcancel F
 GLIBC_2.2 pthread_yield F
 GLIBC_2.2 ptrace F
 GLIBC_2.2 ptsname F
@@ -2293,6 +2294,7 @@ GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
+GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
index c6c1f7ac7b..cef26d71d6 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
@@ -31,7 +31,6 @@ GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join F
 GLIBC_2.2 pthread_setconcurrency F
-GLIBC_2.2 pthread_testcancel F
 GLIBC_2.2 sem_close F
 GLIBC_2.2 sem_destroy F
 GLIBC_2.2 sem_getvalue F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 9c5096c1d9..bceb606756 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -1356,6 +1356,7 @@ GLIBC_2.2.5 pthread_spin_init F
 GLIBC_2.2.5 pthread_spin_lock F
 GLIBC_2.2.5 pthread_spin_trylock F
 GLIBC_2.2.5 pthread_spin_unlock F
+GLIBC_2.2.5 pthread_testcancel F
 GLIBC_2.2.5 pthread_yield F
 GLIBC_2.2.5 ptrace F
 GLIBC_2.2.5 ptsname F
@@ -2254,6 +2255,7 @@ GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
+GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
index 540c8760ed..000cf018c7 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
@@ -31,7 +31,6 @@ GLIBC_2.2.5 pthread_getconcurrency F
 GLIBC_2.2.5 pthread_getcpuclockid F
 GLIBC_2.2.5 pthread_join F
 GLIBC_2.2.5 pthread_setconcurrency F
-GLIBC_2.2.5 pthread_testcancel F
 GLIBC_2.2.5 sem_close F
 GLIBC_2.2.5 sem_destroy F
 GLIBC_2.2.5 sem_getvalue F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 15bec846ec..ae2a8e54c7 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -1537,6 +1537,7 @@ GLIBC_2.16 pthread_spin_init F
 GLIBC_2.16 pthread_spin_lock F
 GLIBC_2.16 pthread_spin_trylock F
 GLIBC_2.16 pthread_spin_unlock F
+GLIBC_2.16 pthread_testcancel F
 GLIBC_2.16 pthread_yield F
 GLIBC_2.16 ptrace F
 GLIBC_2.16 ptsname F
@@ -2359,6 +2360,7 @@ GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
+GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
index 01f6915331..068065e40c 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
@@ -37,7 +37,6 @@ GLIBC_2.16 pthread_setconcurrency F
 GLIBC_2.16 pthread_setname_np F
 GLIBC_2.16 pthread_setschedprio F
 GLIBC_2.16 pthread_sigqueue F
-GLIBC_2.16 pthread_testcancel F
 GLIBC_2.16 pthread_timedjoin_np F
 GLIBC_2.16 pthread_tryjoin_np F
 GLIBC_2.16 sem_close F
