[01/11] nptl: Move pthread_testcancel into libc

Message ID a7d9a4890b924449702c6d22f7b254399add7de9.1620049437.git.fweimer@redhat.com
State Committed
Commit 0197c1bc604e1d6357cfa07a75ab73bababa7f0f
Delegated to: Adhemerval Zanella Netto
Headers
Series nptl: Move semaphore functions into libc |

Commit Message

Florian Weimer May 3, 2021, 1:51 p.m. UTC
  The symbol was moved using scripts/move-symbol-to-libc.py.

A temporary __pthread_testcancel@@GLIBC_PRIVATE export is created
because it is needed by the semaphore implementation.
---
 nptl/Makefile                                      |  2 +-
 nptl/Versions                                      |  4 +++-
 nptl/pthreadP.h                                    |  2 +-
 nptl/pthread_testcancel.c                          | 14 ++++++++++----
 sysdeps/unix/sysv/linux/aarch64/libc.abilist       |  2 ++
 sysdeps/unix/sysv/linux/aarch64/libpthread.abilist |  1 -
 sysdeps/unix/sysv/linux/alpha/libc.abilist         |  2 ++
 sysdeps/unix/sysv/linux/alpha/libpthread.abilist   |  1 -
 sysdeps/unix/sysv/linux/arc/libc.abilist           |  2 ++
 sysdeps/unix/sysv/linux/arc/libpthread.abilist     |  1 -
 sysdeps/unix/sysv/linux/arm/be/libc.abilist        |  2 ++
 sysdeps/unix/sysv/linux/arm/be/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/arm/le/libc.abilist        |  2 ++
 sysdeps/unix/sysv/linux/arm/le/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/csky/libc.abilist          |  2 ++
 sysdeps/unix/sysv/linux/csky/libpthread.abilist    |  1 -
 sysdeps/unix/sysv/linux/hppa/libc.abilist          |  2 ++
 sysdeps/unix/sysv/linux/hppa/libpthread.abilist    |  1 -
 sysdeps/unix/sysv/linux/i386/libc.abilist          |  2 ++
 sysdeps/unix/sysv/linux/i386/libpthread.abilist    |  1 -
 sysdeps/unix/sysv/linux/ia64/libc.abilist          |  2 ++
 sysdeps/unix/sysv/linux/ia64/libpthread.abilist    |  1 -
 sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist |  2 ++
 .../sysv/linux/m68k/coldfire/libpthread.abilist    |  1 -
 sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist   |  2 ++
 .../unix/sysv/linux/m68k/m680x0/libpthread.abilist |  1 -
 sysdeps/unix/sysv/linux/microblaze/be/libc.abilist |  2 ++
 .../sysv/linux/microblaze/be/libpthread.abilist    |  1 -
 sysdeps/unix/sysv/linux/microblaze/le/libc.abilist |  2 ++
 .../sysv/linux/microblaze/le/libpthread.abilist    |  1 -
 .../unix/sysv/linux/mips/mips32/fpu/libc.abilist   |  2 ++
 .../unix/sysv/linux/mips/mips32/libpthread.abilist |  1 -
 .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist |  2 ++
 .../unix/sysv/linux/mips/mips64/libpthread.abilist |  1 -
 .../unix/sysv/linux/mips/mips64/n32/libc.abilist   |  2 ++
 .../unix/sysv/linux/mips/mips64/n64/libc.abilist   |  2 ++
 sysdeps/unix/sysv/linux/nios2/libc.abilist         |  2 ++
 sysdeps/unix/sysv/linux/nios2/libpthread.abilist   |  1 -
 .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist  |  2 ++
 .../linux/powerpc/powerpc32/libpthread.abilist     |  1 -
 .../linux/powerpc/powerpc32/nofpu/libc.abilist     |  2 ++
 .../sysv/linux/powerpc/powerpc64/be/libc.abilist   |  2 ++
 .../linux/powerpc/powerpc64/be/libpthread.abilist  |  1 -
 .../sysv/linux/powerpc/powerpc64/le/libc.abilist   |  2 ++
 .../linux/powerpc/powerpc64/le/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist    |  2 ++
 .../unix/sysv/linux/riscv/rv32/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist    |  2 ++
 .../unix/sysv/linux/riscv/rv64/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist  |  2 ++
 .../sysv/linux/s390/s390-32/libpthread.abilist     |  1 -
 sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist  |  2 ++
 .../sysv/linux/s390/s390-64/libpthread.abilist     |  1 -
 sysdeps/unix/sysv/linux/sh/be/libc.abilist         |  2 ++
 sysdeps/unix/sysv/linux/sh/be/libpthread.abilist   |  1 -
 sysdeps/unix/sysv/linux/sh/le/libc.abilist         |  2 ++
 sysdeps/unix/sysv/linux/sh/le/libpthread.abilist   |  1 -
 sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist |  2 ++
 .../sysv/linux/sparc/sparc32/libpthread.abilist    |  1 -
 sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist |  2 ++
 .../sysv/linux/sparc/sparc64/libpthread.abilist    |  1 -
 sysdeps/unix/sysv/linux/x86_64/64/libc.abilist     |  2 ++
 .../unix/sysv/linux/x86_64/64/libpthread.abilist   |  1 -
 sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist    |  2 ++
 .../unix/sysv/linux/x86_64/x32/libpthread.abilist  |  1 -
 65 files changed, 79 insertions(+), 36 deletions(-)
  

Comments

Adhemerval Zanella Netto May 5, 2021, 2:16 p.m. UTC | #1
On 03/05/2021 10:51, Florian Weimer via Libc-alpha wrote:
> The symbol was moved using scripts/move-symbol-to-libc.py.
> 
> A temporary __pthread_testcancel@@GLIBC_PRIVATE export is created
> because it is needed by the semaphore implementation.

LGTM, thanks.

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

> ---
>  nptl/Makefile                                      |  2 +-
>  nptl/Versions                                      |  4 +++-
>  nptl/pthreadP.h                                    |  2 +-
>  nptl/pthread_testcancel.c                          | 14 ++++++++++----
>  sysdeps/unix/sysv/linux/aarch64/libc.abilist       |  2 ++
>  sysdeps/unix/sysv/linux/aarch64/libpthread.abilist |  1 -
>  sysdeps/unix/sysv/linux/alpha/libc.abilist         |  2 ++
>  sysdeps/unix/sysv/linux/alpha/libpthread.abilist   |  1 -
>  sysdeps/unix/sysv/linux/arc/libc.abilist           |  2 ++
>  sysdeps/unix/sysv/linux/arc/libpthread.abilist     |  1 -
>  sysdeps/unix/sysv/linux/arm/be/libc.abilist        |  2 ++
>  sysdeps/unix/sysv/linux/arm/be/libpthread.abilist  |  1 -
>  sysdeps/unix/sysv/linux/arm/le/libc.abilist        |  2 ++
>  sysdeps/unix/sysv/linux/arm/le/libpthread.abilist  |  1 -
>  sysdeps/unix/sysv/linux/csky/libc.abilist          |  2 ++
>  sysdeps/unix/sysv/linux/csky/libpthread.abilist    |  1 -
>  sysdeps/unix/sysv/linux/hppa/libc.abilist          |  2 ++
>  sysdeps/unix/sysv/linux/hppa/libpthread.abilist    |  1 -
>  sysdeps/unix/sysv/linux/i386/libc.abilist          |  2 ++
>  sysdeps/unix/sysv/linux/i386/libpthread.abilist    |  1 -
>  sysdeps/unix/sysv/linux/ia64/libc.abilist          |  2 ++
>  sysdeps/unix/sysv/linux/ia64/libpthread.abilist    |  1 -
>  sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist |  2 ++
>  .../sysv/linux/m68k/coldfire/libpthread.abilist    |  1 -
>  sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist   |  2 ++
>  .../unix/sysv/linux/m68k/m680x0/libpthread.abilist |  1 -
>  sysdeps/unix/sysv/linux/microblaze/be/libc.abilist |  2 ++
>  .../sysv/linux/microblaze/be/libpthread.abilist    |  1 -
>  sysdeps/unix/sysv/linux/microblaze/le/libc.abilist |  2 ++
>  .../sysv/linux/microblaze/le/libpthread.abilist    |  1 -
>  .../unix/sysv/linux/mips/mips32/fpu/libc.abilist   |  2 ++
>  .../unix/sysv/linux/mips/mips32/libpthread.abilist |  1 -
>  .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist |  2 ++
>  .../unix/sysv/linux/mips/mips64/libpthread.abilist |  1 -
>  .../unix/sysv/linux/mips/mips64/n32/libc.abilist   |  2 ++
>  .../unix/sysv/linux/mips/mips64/n64/libc.abilist   |  2 ++
>  sysdeps/unix/sysv/linux/nios2/libc.abilist         |  2 ++
>  sysdeps/unix/sysv/linux/nios2/libpthread.abilist   |  1 -
>  .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist  |  2 ++
>  .../linux/powerpc/powerpc32/libpthread.abilist     |  1 -
>  .../linux/powerpc/powerpc32/nofpu/libc.abilist     |  2 ++
>  .../sysv/linux/powerpc/powerpc64/be/libc.abilist   |  2 ++
>  .../linux/powerpc/powerpc64/be/libpthread.abilist  |  1 -
>  .../sysv/linux/powerpc/powerpc64/le/libc.abilist   |  2 ++
>  .../linux/powerpc/powerpc64/le/libpthread.abilist  |  1 -
>  sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist    |  2 ++
>  .../unix/sysv/linux/riscv/rv32/libpthread.abilist  |  1 -
>  sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist    |  2 ++
>  .../unix/sysv/linux/riscv/rv64/libpthread.abilist  |  1 -
>  sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist  |  2 ++
>  .../sysv/linux/s390/s390-32/libpthread.abilist     |  1 -
>  sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist  |  2 ++
>  .../sysv/linux/s390/s390-64/libpthread.abilist     |  1 -
>  sysdeps/unix/sysv/linux/sh/be/libc.abilist         |  2 ++
>  sysdeps/unix/sysv/linux/sh/be/libpthread.abilist   |  1 -
>  sysdeps/unix/sysv/linux/sh/le/libc.abilist         |  2 ++
>  sysdeps/unix/sysv/linux/sh/le/libpthread.abilist   |  1 -
>  sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist |  2 ++
>  .../sysv/linux/sparc/sparc32/libpthread.abilist    |  1 -
>  sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist |  2 ++
>  .../sysv/linux/sparc/sparc64/libpthread.abilist    |  1 -
>  sysdeps/unix/sysv/linux/x86_64/64/libc.abilist     |  2 ++
>  .../unix/sysv/linux/x86_64/64/libpthread.abilist   |  1 -
>  sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist    |  2 ++
>  .../unix/sysv/linux/x86_64/x32/libpthread.abilist  |  1 -
>  65 files changed, 79 insertions(+), 36 deletions(-)
> 
> 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..ce09c73727 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;
> @@ -284,6 +286,7 @@ libc {
>      __pthread_keys;
>      __pthread_mutex_unlock_usercnt;
>      __pthread_setcancelstate;
> +    __pthread_testcancel;
>      __pthread_tpp_change_priority;
>      __pthread_unwind;
>      __sched_fifo_max_prio;
> @@ -307,7 +310,6 @@ libpthread {
>      pthread_detach;
>      pthread_join;
>      pthread_sigmask;
> -    pthread_testcancel;
>      sem_destroy;
>      sem_getvalue;
>      sem_init;
> diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
> index 00d2cfe764..ee77928fc7 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..a9e941ddb7 100644
> --- a/nptl/pthread_testcancel.c
> +++ b/nptl/pthread_testcancel.c
> @@ -18,12 +18,18 @@
>  
>  #include <stdlib.h>
>  #include "pthreadP.h"
> -
> +#include <shlib-compat.h>
>  
>  void
> -__pthread_testcancel (void)
> +___pthread_testcancel (void)
>  {
>    CANCELLATION_P (THREAD_SELF);
>  }
> -strong_alias (__pthread_testcancel, pthread_testcancel)
> -hidden_def (__pthread_testcancel)
> +versioned_symbol (libc, ___pthread_testcancel, pthread_testcancel, GLIBC_2_34);
> +versioned_symbol (libc, ___pthread_testcancel, __pthread_testcancel,
> +                  GLIBC_PRIVATE);
> +libc_hidden_ver (___pthread_testcancel, __pthread_testcancel)
> +
> +#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_34)
> +compat_symbol (libc, ___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 aad440cc6a..5dfea47ebf 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
> @@ -2343,6 +2344,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 e0deca069c..318eea546a 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
> @@ -2424,6 +2425,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 ac0f574207..18b5c97cc8 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
> @@ -2102,6 +2103,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 c77241c227..7de0e34b14 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -250,6 +250,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
> @@ -1718,6 +1719,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 9e02ac94d8..3e79ca85f0 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -247,6 +247,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
> @@ -1715,6 +1716,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 a209787385..9eaeda5d49 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
> @@ -2286,6 +2287,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 cbbf211ee5..59165723ed 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
> @@ -2237,6 +2238,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 24cb2d684d..05c26afb65 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
> @@ -2414,6 +2415,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 7513d48cae..2aeb8e0be5 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
> @@ -2271,6 +2272,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 013dcbb16d..571c501b95 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/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
> @@ -1698,6 +1699,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 0748c21b38..0404cf1749 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
> @@ -2357,6 +2358,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 4f0cf3bd56..7be131d0fc 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
> @@ -2337,6 +2338,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 726bae9a75..31c157bb4a 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
> @@ -2334,6 +2335,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 12f4c46f75..0f6e9cbf01 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
> @@ -2320,6 +2321,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 640f5e8c7b..9fc089707f 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
> @@ -2318,6 +2319,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 92c0be4e90..edb5b754bf 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
> @@ -2326,6 +2327,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 90a0e497f6..a80f4d6138 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
> @@ -2320,6 +2321,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 caeb686742..ce16d91d60 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
> @@ -2376,6 +2377,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 6bb6f8f092..c8478bd5d4 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
> @@ -2384,6 +2385,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 29dad1780c..05e79162d1 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
> @@ -2417,6 +2418,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 c410a6cc6a..8ca7a93538 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
> @@ -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/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 7a2bf05cb0..7c69ef778e 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
> @@ -2539,6 +2540,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 fa4803dae3..a1158f7747 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
> @@ -2104,6 +2105,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 91cbd00879..0914e4b443 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
> @@ -2304,6 +2305,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 78bc38dc23..9333d220ed 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
> @@ -2382,6 +2383,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 8fbd2129b4..1c3b757684 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
> @@ -2275,6 +2276,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 2199062106..66be9c89c9 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
> @@ -2244,6 +2245,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 10d5e2d2c9..fb0fed082f 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
> @@ -2241,6 +2242,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 55df20cf28..37c3cf105f 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
> @@ -2373,6 +2374,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 f9520b474d..80f79eb731 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
> @@ -2292,6 +2293,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 9a4a3c16fa..a743156f26 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
> @@ -2253,6 +2254,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 21385c23d1..828c2f922b 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
> @@ -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/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
>
  

Patch

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..ce09c73727 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;
@@ -284,6 +286,7 @@  libc {
     __pthread_keys;
     __pthread_mutex_unlock_usercnt;
     __pthread_setcancelstate;
+    __pthread_testcancel;
     __pthread_tpp_change_priority;
     __pthread_unwind;
     __sched_fifo_max_prio;
@@ -307,7 +310,6 @@  libpthread {
     pthread_detach;
     pthread_join;
     pthread_sigmask;
-    pthread_testcancel;
     sem_destroy;
     sem_getvalue;
     sem_init;
diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
index 00d2cfe764..ee77928fc7 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..a9e941ddb7 100644
--- a/nptl/pthread_testcancel.c
+++ b/nptl/pthread_testcancel.c
@@ -18,12 +18,18 @@ 
 
 #include <stdlib.h>
 #include "pthreadP.h"
-
+#include <shlib-compat.h>
 
 void
-__pthread_testcancel (void)
+___pthread_testcancel (void)
 {
   CANCELLATION_P (THREAD_SELF);
 }
-strong_alias (__pthread_testcancel, pthread_testcancel)
-hidden_def (__pthread_testcancel)
+versioned_symbol (libc, ___pthread_testcancel, pthread_testcancel, GLIBC_2_34);
+versioned_symbol (libc, ___pthread_testcancel, __pthread_testcancel,
+                  GLIBC_PRIVATE);
+libc_hidden_ver (___pthread_testcancel, __pthread_testcancel)
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_34)
+compat_symbol (libc, ___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 aad440cc6a..5dfea47ebf 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
@@ -2343,6 +2344,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 e0deca069c..318eea546a 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
@@ -2424,6 +2425,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 ac0f574207..18b5c97cc8 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
@@ -2102,6 +2103,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 c77241c227..7de0e34b14 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -250,6 +250,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
@@ -1718,6 +1719,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 9e02ac94d8..3e79ca85f0 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -247,6 +247,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
@@ -1715,6 +1716,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 a209787385..9eaeda5d49 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
@@ -2286,6 +2287,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 cbbf211ee5..59165723ed 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
@@ -2237,6 +2238,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 24cb2d684d..05c26afb65 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
@@ -2414,6 +2415,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 7513d48cae..2aeb8e0be5 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
@@ -2271,6 +2272,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 013dcbb16d..571c501b95 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/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
@@ -1698,6 +1699,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 0748c21b38..0404cf1749 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
@@ -2357,6 +2358,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 4f0cf3bd56..7be131d0fc 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
@@ -2337,6 +2338,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 726bae9a75..31c157bb4a 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
@@ -2334,6 +2335,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 12f4c46f75..0f6e9cbf01 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
@@ -2320,6 +2321,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 640f5e8c7b..9fc089707f 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
@@ -2318,6 +2319,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 92c0be4e90..edb5b754bf 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
@@ -2326,6 +2327,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 90a0e497f6..a80f4d6138 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
@@ -2320,6 +2321,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 caeb686742..ce16d91d60 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
@@ -2376,6 +2377,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 6bb6f8f092..c8478bd5d4 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
@@ -2384,6 +2385,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 29dad1780c..05e79162d1 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
@@ -2417,6 +2418,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 c410a6cc6a..8ca7a93538 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
@@ -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/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 7a2bf05cb0..7c69ef778e 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
@@ -2539,6 +2540,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 fa4803dae3..a1158f7747 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
@@ -2104,6 +2105,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 91cbd00879..0914e4b443 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
@@ -2304,6 +2305,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 78bc38dc23..9333d220ed 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
@@ -2382,6 +2383,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 8fbd2129b4..1c3b757684 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
@@ -2275,6 +2276,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 2199062106..66be9c89c9 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
@@ -2244,6 +2245,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 10d5e2d2c9..fb0fed082f 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
@@ -2241,6 +2242,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 55df20cf28..37c3cf105f 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
@@ -2373,6 +2374,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 f9520b474d..80f79eb731 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
@@ -2292,6 +2293,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 9a4a3c16fa..a743156f26 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
@@ -2253,6 +2254,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 21385c23d1..828c2f922b 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
@@ -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/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