[3/3] nptl: Move pthread_cancel into libc

Message ID 1c9e0befaa92592c8f6488c1235ebbfe39d0a61c.1620730539.git.fweimer@redhat.com
State Committed
Delegated to: Adhemerval Zanella Netto
Headers
Series nptl: Move remaining cancellation functionality into libc |

Checks

Context Check Description
dj/TryBot-apply_patch success Patch applied to master at the time it was sent

Commit Message

Florian Weimer May 11, 2021, 10:56 a.m. UTC
  The symbol was moved using scripts/move-symbol-to-libc.py.
---
 nptl/Makefile                                               | 2 +-
 nptl/Versions                                               | 3 ++-
 nptl/pthreadP.h                                             | 1 -
 nptl/pthread_cancel.c                                       | 6 +++++-
 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 ++
 sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist    | 1 -
 sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist            | 2 ++
 sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist      | 1 -
 sysdeps/unix/sysv/linux/microblaze/be/libc.abilist          | 2 ++
 sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist    | 1 -
 sysdeps/unix/sysv/linux/microblaze/le/libc.abilist          | 2 ++
 sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist    | 1 -
 sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist        | 2 ++
 sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist      | 1 -
 sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist      | 2 ++
 sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist      | 1 -
 sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist        | 2 ++
 sysdeps/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 -
 sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist  | 2 ++
 .../unix/sysv/linux/powerpc/powerpc32/libpthread.abilist    | 1 -
 .../unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist    | 2 ++
 sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist   | 2 ++
 .../unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist | 1 -
 sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist   | 2 ++
 .../unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist | 1 -
 sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist             | 2 ++
 sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist       | 1 -
 sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist             | 2 ++
 sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist       | 1 -
 sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist           | 2 ++
 sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist     | 1 -
 sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist           | 2 ++
 sysdeps/unix/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 ++
 sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist    | 1 -
 sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist          | 2 ++
 sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist    | 1 -
 sysdeps/unix/sysv/linux/x86_64/64/libc.abilist              | 2 ++
 sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist        | 1 -
 sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist             | 2 ++
 sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist       | 1 -
 65 files changed, 72 insertions(+), 33 deletions(-)
  

Comments

Adhemerval Zanella Netto May 11, 2021, 5:32 p.m. UTC | #1
On 11/05/2021 07:56, Florian Weimer via Libc-alpha wrote:
> The symbol was moved using scripts/move-symbol-to-libc.py.

LGTM, just a small question below.

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

> ---
>  nptl/Makefile                                               | 2 +-
>  nptl/Versions                                               | 3 ++-
>  nptl/pthreadP.h                                             | 1 -
>  nptl/pthread_cancel.c                                       | 6 +++++-
>  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 ++
>  sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist    | 1 -
>  sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist            | 2 ++
>  sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist      | 1 -
>  sysdeps/unix/sysv/linux/microblaze/be/libc.abilist          | 2 ++
>  sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist    | 1 -
>  sysdeps/unix/sysv/linux/microblaze/le/libc.abilist          | 2 ++
>  sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist    | 1 -
>  sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist        | 2 ++
>  sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist      | 1 -
>  sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist      | 2 ++
>  sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist      | 1 -
>  sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist        | 2 ++
>  sysdeps/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 -
>  sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist  | 2 ++
>  .../unix/sysv/linux/powerpc/powerpc32/libpthread.abilist    | 1 -
>  .../unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist    | 2 ++
>  sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist   | 2 ++
>  .../unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist | 1 -
>  sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist   | 2 ++
>  .../unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist | 1 -
>  sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist             | 2 ++
>  sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist       | 1 -
>  sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist             | 2 ++
>  sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist       | 1 -
>  sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist           | 2 ++
>  sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist     | 1 -
>  sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist           | 2 ++
>  sysdeps/unix/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 ++
>  sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist    | 1 -
>  sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist          | 2 ++
>  sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist    | 1 -
>  sysdeps/unix/sysv/linux/x86_64/64/libc.abilist              | 2 ++
>  sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist        | 1 -
>  sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist             | 2 ++
>  sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist       | 1 -
>  65 files changed, 72 insertions(+), 33 deletions(-)
> 
> diff --git a/nptl/Makefile b/nptl/Makefile
> index 7e070e490b..94cdc76942 100644
> --- a/nptl/Makefile
> +++ b/nptl/Makefile
> @@ -85,6 +85,7 @@ routines = \
>    pthread_barrierattr_getpshared \
>    pthread_barrierattr_init \
>    pthread_barrierattr_setpshared \
> +  pthread_cancel \
>    pthread_cleanup_upto \
>    pthread_clockjoin \
>    pthread_cond_broadcast \
> @@ -201,7 +202,6 @@ libpthread-routines = \
>    pthread_attr_setstack \
>    pthread_attr_setstackaddr \
>    pthread_attr_setstacksize \
> -  pthread_cancel \
>    pthread_create \
>    pthread_getattr_default_np \
>    pthread_getconcurrency \
> diff --git a/nptl/Versions b/nptl/Versions
> index 0868a8cfb2..94e55bc785 100644
> --- a/nptl/Versions
> +++ b/nptl/Versions
> @@ -29,6 +29,7 @@ libc {
>      pthread_attr_setschedparam;
>      pthread_attr_setschedpolicy;
>      pthread_attr_setscope;
> +    pthread_cancel;
>      pthread_cond_broadcast;
>      pthread_cond_destroy;
>      pthread_cond_init;
> @@ -252,6 +253,7 @@ libc {
>      pthread_barrierattr_getpshared;
>      pthread_barrierattr_init;
>      pthread_barrierattr_setpshared;
> +    pthread_cancel;
>      pthread_clockjoin_np;
>      pthread_cond_clockwait;
>      pthread_condattr_getclock;
> @@ -387,7 +389,6 @@ libpthread {
>      flockfile;
>      ftrylockfile;
>      funlockfile;
> -    pthread_cancel;
>      pthread_create;
>      pthread_sigmask;
>    }

Ok.

> diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
> index 1692788528..5b844f331a 100644
> --- a/nptl/pthreadP.h
> +++ b/nptl/pthreadP.h
> @@ -521,7 +521,6 @@ extern pthread_t __pthread_self (void);
>  extern int __pthread_equal (pthread_t thread1, pthread_t thread2);
>  extern int __pthread_detach (pthread_t th);
>  libc_hidden_proto (__pthread_detach)
> -extern int __pthread_cancel (pthread_t th);
>  extern int __pthread_kill (pthread_t threadid, int signo);
>  extern void __pthread_exit (void *value) __attribute__ ((__noreturn__));
>  libc_hidden_proto (__pthread_exit)

I am kinda puzzled how the libc_hidden_proto work without the __pthread_cancel
prototype.

> diff --git a/nptl/pthread_cancel.c b/nptl/pthread_cancel.c
> index fd04bedf6c..e4ad602900 100644
> --- a/nptl/pthread_cancel.c
> +++ b/nptl/pthread_cancel.c
> @@ -100,6 +100,10 @@ __pthread_cancel (pthread_t th)
>  
>    return result;
>  }
> -weak_alias (__pthread_cancel, pthread_cancel)
> +versioned_symbol (libc, __pthread_cancel, pthread_cancel, GLIBC_2_34);
> +
> +#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_34)
> +compat_symbol (libpthread, __pthread_cancel, pthread_cancel, GLIBC_2_0);
> +#endif
>  
>  PTHREAD_STATIC_FN_REQUIRE (__pthread_create)

Ok.

> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index 79b373a45d..9ff2b6ac14 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -1466,6 +1466,7 @@ GLIBC_2.17 pthread_barrierattr_destroy F
>  GLIBC_2.17 pthread_barrierattr_getpshared F
>  GLIBC_2.17 pthread_barrierattr_init F
>  GLIBC_2.17 pthread_barrierattr_setpshared F
> +GLIBC_2.17 pthread_cancel F
>  GLIBC_2.17 pthread_cond_broadcast F
>  GLIBC_2.17 pthread_cond_destroy F
>  GLIBC_2.17 pthread_cond_init F
> @@ -2335,6 +2336,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
>  GLIBC_2.34 pthread_barrierattr_getpshared F
>  GLIBC_2.34 pthread_barrierattr_init F
>  GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_cancel F
>  GLIBC_2.34 pthread_clockjoin_np F
>  GLIBC_2.34 pthread_cond_clockwait F
>  GLIBC_2.34 pthread_condattr_getclock F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> index 72bbdf0f37..5e1bbfa024 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> @@ -8,7 +8,6 @@ GLIBC_2.17 pthread_attr_setguardsize F
>  GLIBC_2.17 pthread_attr_setstack F
>  GLIBC_2.17 pthread_attr_setstackaddr F
>  GLIBC_2.17 pthread_attr_setstacksize F
> -GLIBC_2.17 pthread_cancel F
>  GLIBC_2.17 pthread_create F
>  GLIBC_2.17 pthread_getconcurrency F
>  GLIBC_2.17 pthread_getcpuclockid F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index 8961d6799c..822ef11b8d 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -889,6 +889,7 @@ GLIBC_2.0 pthread_attr_setinheritsched F
>  GLIBC_2.0 pthread_attr_setschedparam F
>  GLIBC_2.0 pthread_attr_setschedpolicy F
>  GLIBC_2.0 pthread_attr_setscope F
> +GLIBC_2.0 pthread_cancel F
>  GLIBC_2.0 pthread_cond_broadcast F
>  GLIBC_2.0 pthread_cond_destroy F
>  GLIBC_2.0 pthread_cond_init F
> @@ -2422,6 +2423,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
>  GLIBC_2.34 pthread_barrierattr_getpshared F
>  GLIBC_2.34 pthread_barrierattr_init F
>  GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_cancel F
>  GLIBC_2.34 pthread_clockjoin_np F
>  GLIBC_2.34 pthread_cond_clockwait F
>  GLIBC_2.34 pthread_condattr_getclock F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> index 19e1375b54..2362e75022 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> @@ -1,5 +1,4 @@
>  GLIBC_2.0 __errno_location F
> -GLIBC_2.0 pthread_cancel F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.1 pthread_attr_getguardsize F
>  GLIBC_2.1 pthread_attr_getstackaddr F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index 47504af7fa..7e3ff64bf7 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -1405,6 +1405,7 @@ GLIBC_2.32 pthread_barrierattr_destroy F
>  GLIBC_2.32 pthread_barrierattr_getpshared F
>  GLIBC_2.32 pthread_barrierattr_init F
>  GLIBC_2.32 pthread_barrierattr_setpshared F
> +GLIBC_2.32 pthread_cancel F
>  GLIBC_2.32 pthread_clockjoin_np F
>  GLIBC_2.32 pthread_cond_broadcast F
>  GLIBC_2.32 pthread_cond_clockwait F
> @@ -2094,6 +2095,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
>  GLIBC_2.34 pthread_barrierattr_getpshared F
>  GLIBC_2.34 pthread_barrierattr_init F
>  GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_cancel F
>  GLIBC_2.34 pthread_clockjoin_np F
>  GLIBC_2.34 pthread_cond_clockwait F
>  GLIBC_2.34 pthread_condattr_getclock F
> diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> index d47f656bf3..8a01895ba5 100644
> --- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> @@ -8,7 +8,6 @@ GLIBC_2.32 pthread_attr_setguardsize F
>  GLIBC_2.32 pthread_attr_setstack F
>  GLIBC_2.32 pthread_attr_setstackaddr F
>  GLIBC_2.32 pthread_attr_setstacksize F
> -GLIBC_2.32 pthread_cancel F
>  GLIBC_2.32 pthread_create F
>  GLIBC_2.32 pthread_getattr_default_np F
>  GLIBC_2.32 pthread_getconcurrency F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index 1a4395ba35..ed75decfa1 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -216,6 +216,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
>  GLIBC_2.34 pthread_barrierattr_getpshared F
>  GLIBC_2.34 pthread_barrierattr_init F
>  GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_cancel F
>  GLIBC_2.34 pthread_clockjoin_np F
>  GLIBC_2.34 pthread_cond_clockwait F
>  GLIBC_2.34 pthread_condattr_getclock F
> @@ -1694,6 +1695,7 @@ GLIBC_2.4 pthread_barrierattr_destroy F
>  GLIBC_2.4 pthread_barrierattr_getpshared F
>  GLIBC_2.4 pthread_barrierattr_init F
>  GLIBC_2.4 pthread_barrierattr_setpshared F
> +GLIBC_2.4 pthread_cancel F
>  GLIBC_2.4 pthread_cond_broadcast F
>  GLIBC_2.4 pthread_cond_destroy F
>  GLIBC_2.4 pthread_cond_init F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> index dffabc237c..95ce36b829 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> @@ -16,7 +16,6 @@ GLIBC_2.4 pthread_attr_setguardsize F
>  GLIBC_2.4 pthread_attr_setstack F
>  GLIBC_2.4 pthread_attr_setstackaddr F
>  GLIBC_2.4 pthread_attr_setstacksize F
> -GLIBC_2.4 pthread_cancel F
>  GLIBC_2.4 pthread_create F
>  GLIBC_2.4 pthread_getconcurrency F
>  GLIBC_2.4 pthread_getcpuclockid F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index 2344dc0638..78ecc3a850 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -213,6 +213,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
>  GLIBC_2.34 pthread_barrierattr_getpshared F
>  GLIBC_2.34 pthread_barrierattr_init F
>  GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_cancel F
>  GLIBC_2.34 pthread_clockjoin_np F
>  GLIBC_2.34 pthread_cond_clockwait F
>  GLIBC_2.34 pthread_condattr_getclock F
> @@ -1691,6 +1692,7 @@ GLIBC_2.4 pthread_barrierattr_destroy F
>  GLIBC_2.4 pthread_barrierattr_getpshared F
>  GLIBC_2.4 pthread_barrierattr_init F
>  GLIBC_2.4 pthread_barrierattr_setpshared F
> +GLIBC_2.4 pthread_cancel F
>  GLIBC_2.4 pthread_cond_broadcast F
>  GLIBC_2.4 pthread_cond_destroy F
>  GLIBC_2.4 pthread_cond_init F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> index dffabc237c..95ce36b829 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> @@ -16,7 +16,6 @@ GLIBC_2.4 pthread_attr_setguardsize F
>  GLIBC_2.4 pthread_attr_setstack F
>  GLIBC_2.4 pthread_attr_setstackaddr F
>  GLIBC_2.4 pthread_attr_setstacksize F
> -GLIBC_2.4 pthread_cancel F
>  GLIBC_2.4 pthread_create F
>  GLIBC_2.4 pthread_getconcurrency F
>  GLIBC_2.4 pthread_getcpuclockid F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index b3aec7bdad..5367122efd 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -1466,6 +1466,7 @@ GLIBC_2.29 pthread_barrierattr_destroy F
>  GLIBC_2.29 pthread_barrierattr_getpshared F
>  GLIBC_2.29 pthread_barrierattr_init F
>  GLIBC_2.29 pthread_barrierattr_setpshared F
> +GLIBC_2.29 pthread_cancel F
>  GLIBC_2.29 pthread_cond_broadcast F
>  GLIBC_2.29 pthread_cond_destroy F
>  GLIBC_2.29 pthread_cond_init F
> @@ -2278,6 +2279,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
>  GLIBC_2.34 pthread_barrierattr_getpshared F
>  GLIBC_2.34 pthread_barrierattr_init F
>  GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_cancel F
>  GLIBC_2.34 pthread_clockjoin_np F
>  GLIBC_2.34 pthread_cond_clockwait F
>  GLIBC_2.34 pthread_condattr_getclock F
> diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> index 2b66c04b6c..92e778eb82 100644
> --- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> @@ -8,7 +8,6 @@ GLIBC_2.29 pthread_attr_setguardsize F
>  GLIBC_2.29 pthread_attr_setstack F
>  GLIBC_2.29 pthread_attr_setstackaddr F
>  GLIBC_2.29 pthread_attr_setstacksize F
> -GLIBC_2.29 pthread_cancel F
>  GLIBC_2.29 pthread_create F
>  GLIBC_2.29 pthread_getattr_default_np F
>  GLIBC_2.29 pthread_getconcurrency F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index 59afc75408..be7b9d8e23 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -1289,6 +1289,7 @@ GLIBC_2.2 pthread_barrier_wait F
>  GLIBC_2.2 pthread_barrierattr_destroy F
>  GLIBC_2.2 pthread_barrierattr_init F
>  GLIBC_2.2 pthread_barrierattr_setpshared F
> +GLIBC_2.2 pthread_cancel F
>  GLIBC_2.2 pthread_cond_broadcast F
>  GLIBC_2.2 pthread_cond_destroy F
>  GLIBC_2.2 pthread_cond_init F
> @@ -2229,6 +2230,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
>  GLIBC_2.34 pthread_barrierattr_getpshared F
>  GLIBC_2.34 pthread_barrierattr_init F
>  GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_cancel F
>  GLIBC_2.34 pthread_clockjoin_np F
>  GLIBC_2.34 pthread_cond_clockwait F
>  GLIBC_2.34 pthread_condattr_getclock F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> index 7ee08fbcc9..7336ba3193 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> @@ -11,7 +11,6 @@ GLIBC_2.2 pthread_attr_setguardsize F
>  GLIBC_2.2 pthread_attr_setstack F
>  GLIBC_2.2 pthread_attr_setstackaddr F
>  GLIBC_2.2 pthread_attr_setstacksize F
> -GLIBC_2.2 pthread_cancel F
>  GLIBC_2.2 pthread_create F
>  GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index eabfdee4bb..22da6982b9 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -866,6 +866,7 @@ GLIBC_2.0 pthread_attr_setinheritsched F
>  GLIBC_2.0 pthread_attr_setschedparam F
>  GLIBC_2.0 pthread_attr_setschedpolicy F
>  GLIBC_2.0 pthread_attr_setscope F
> +GLIBC_2.0 pthread_cancel F
>  GLIBC_2.0 pthread_cond_broadcast F
>  GLIBC_2.0 pthread_cond_destroy F
>  GLIBC_2.0 pthread_cond_init F
> @@ -2412,6 +2413,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
>  GLIBC_2.34 pthread_barrierattr_getpshared F
>  GLIBC_2.34 pthread_barrierattr_init F
>  GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_cancel F
>  GLIBC_2.34 pthread_clockjoin_np F
>  GLIBC_2.34 pthread_cond_clockwait F
>  GLIBC_2.34 pthread_condattr_getclock F
> diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> index f2c64dd9c8..c28b299beb 100644
> --- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> @@ -1,5 +1,4 @@
>  GLIBC_2.0 __errno_location F
> -GLIBC_2.0 pthread_cancel F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.1 pthread_attr_getguardsize F
>  GLIBC_2.1 pthread_attr_getstackaddr F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index 8307bd5568..d866b02ee9 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -1310,6 +1310,7 @@ GLIBC_2.2 pthread_barrier_wait F
>  GLIBC_2.2 pthread_barrierattr_destroy F
>  GLIBC_2.2 pthread_barrierattr_init F
>  GLIBC_2.2 pthread_barrierattr_setpshared F
> +GLIBC_2.2 pthread_cancel F
>  GLIBC_2.2 pthread_cond_broadcast F
>  GLIBC_2.2 pthread_cond_destroy F
>  GLIBC_2.2 pthread_cond_init F
> @@ -2263,6 +2264,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
>  GLIBC_2.34 pthread_barrierattr_getpshared F
>  GLIBC_2.34 pthread_barrierattr_init F
>  GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_cancel F
>  GLIBC_2.34 pthread_clockjoin_np F
>  GLIBC_2.34 pthread_cond_clockwait F
>  GLIBC_2.34 pthread_condattr_getclock F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> index f11429ad6b..6bdd14dfb9 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> @@ -11,7 +11,6 @@ GLIBC_2.2 pthread_attr_setguardsize F
>  GLIBC_2.2 pthread_attr_setstack F
>  GLIBC_2.2 pthread_attr_setstackaddr F
>  GLIBC_2.2 pthread_attr_setstacksize F
> -GLIBC_2.2 pthread_cancel F
>  GLIBC_2.2 pthread_create F
>  GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index faeb98053c..0edb178a90 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -217,6 +217,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
>  GLIBC_2.34 pthread_barrierattr_getpshared F
>  GLIBC_2.34 pthread_barrierattr_init F
>  GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_cancel F
>  GLIBC_2.34 pthread_clockjoin_np F
>  GLIBC_2.34 pthread_cond_clockwait F
>  GLIBC_2.34 pthread_condattr_getclock F
> @@ -1674,6 +1675,7 @@ GLIBC_2.4 pthread_barrierattr_destroy F
>  GLIBC_2.4 pthread_barrierattr_getpshared F
>  GLIBC_2.4 pthread_barrierattr_init F
>  GLIBC_2.4 pthread_barrierattr_setpshared F
> +GLIBC_2.4 pthread_cancel F
>  GLIBC_2.4 pthread_cond_broadcast F
>  GLIBC_2.4 pthread_cond_destroy F
>  GLIBC_2.4 pthread_cond_init F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> index dffabc237c..95ce36b829 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> @@ -16,7 +16,6 @@ GLIBC_2.4 pthread_attr_setguardsize F
>  GLIBC_2.4 pthread_attr_setstack F
>  GLIBC_2.4 pthread_attr_setstackaddr F
>  GLIBC_2.4 pthread_attr_setstacksize F
> -GLIBC_2.4 pthread_cancel F
>  GLIBC_2.4 pthread_create F
>  GLIBC_2.4 pthread_getconcurrency F
>  GLIBC_2.4 pthread_getcpuclockid F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index 987c85a011..e47b343e04 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -865,6 +865,7 @@ GLIBC_2.0 pthread_attr_setinheritsched F
>  GLIBC_2.0 pthread_attr_setschedparam F
>  GLIBC_2.0 pthread_attr_setschedpolicy F
>  GLIBC_2.0 pthread_attr_setscope F
> +GLIBC_2.0 pthread_cancel F
>  GLIBC_2.0 pthread_cond_broadcast F
>  GLIBC_2.0 pthread_cond_destroy F
>  GLIBC_2.0 pthread_cond_init F
> @@ -2355,6 +2356,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
>  GLIBC_2.34 pthread_barrierattr_getpshared F
>  GLIBC_2.34 pthread_barrierattr_init F
>  GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_cancel F
>  GLIBC_2.34 pthread_clockjoin_np F
>  GLIBC_2.34 pthread_cond_clockwait F
>  GLIBC_2.34 pthread_condattr_getclock F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> index f2c64dd9c8..c28b299beb 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> @@ -1,5 +1,4 @@
>  GLIBC_2.0 __errno_location F
> -GLIBC_2.0 pthread_cancel F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.1 pthread_attr_getguardsize F
>  GLIBC_2.1 pthread_attr_getstackaddr F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index 45f5b21895..dc74d613c9 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -1468,6 +1468,7 @@ GLIBC_2.18 pthread_barrierattr_destroy F
>  GLIBC_2.18 pthread_barrierattr_getpshared F
>  GLIBC_2.18 pthread_barrierattr_init F
>  GLIBC_2.18 pthread_barrierattr_setpshared F
> +GLIBC_2.18 pthread_cancel F
>  GLIBC_2.18 pthread_cond_broadcast F
>  GLIBC_2.18 pthread_cond_destroy F
>  GLIBC_2.18 pthread_cond_init F
> @@ -2329,6 +2330,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
>  GLIBC_2.34 pthread_barrierattr_getpshared F
>  GLIBC_2.34 pthread_barrierattr_init F
>  GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_cancel F
>  GLIBC_2.34 pthread_clockjoin_np F
>  GLIBC_2.34 pthread_cond_clockwait F
>  GLIBC_2.34 pthread_condattr_getclock F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> index 93b99ca4a7..07d34543b0 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> @@ -8,7 +8,6 @@ GLIBC_2.18 pthread_attr_setguardsize F
>  GLIBC_2.18 pthread_attr_setstack F
>  GLIBC_2.18 pthread_attr_setstackaddr F
>  GLIBC_2.18 pthread_attr_setstacksize F
> -GLIBC_2.18 pthread_cancel F
>  GLIBC_2.18 pthread_create F
>  GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.18 pthread_getconcurrency F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index ce10bfbf47..c58d10d5dd 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -1468,6 +1468,7 @@ GLIBC_2.18 pthread_barrierattr_destroy F
>  GLIBC_2.18 pthread_barrierattr_getpshared F
>  GLIBC_2.18 pthread_barrierattr_init F
>  GLIBC_2.18 pthread_barrierattr_setpshared F
> +GLIBC_2.18 pthread_cancel F
>  GLIBC_2.18 pthread_cond_broadcast F
>  GLIBC_2.18 pthread_cond_destroy F
>  GLIBC_2.18 pthread_cond_init F
> @@ -2326,6 +2327,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
>  GLIBC_2.34 pthread_barrierattr_getpshared F
>  GLIBC_2.34 pthread_barrierattr_init F
>  GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_cancel F
>  GLIBC_2.34 pthread_clockjoin_np F
>  GLIBC_2.34 pthread_cond_clockwait F
>  GLIBC_2.34 pthread_condattr_getclock F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> index 93b99ca4a7..07d34543b0 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> @@ -8,7 +8,6 @@ GLIBC_2.18 pthread_attr_setguardsize F
>  GLIBC_2.18 pthread_attr_setstack F
>  GLIBC_2.18 pthread_attr_setstackaddr F
>  GLIBC_2.18 pthread_attr_setstacksize F
> -GLIBC_2.18 pthread_cancel F
>  GLIBC_2.18 pthread_create F
>  GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.18 pthread_getconcurrency F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index c09f0f7634..17481fa785 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -862,6 +862,7 @@ GLIBC_2.0 pthread_attr_setinheritsched F
>  GLIBC_2.0 pthread_attr_setschedparam F
>  GLIBC_2.0 pthread_attr_setschedpolicy F
>  GLIBC_2.0 pthread_attr_setscope F
> +GLIBC_2.0 pthread_cancel F
>  GLIBC_2.0 pthread_cond_broadcast F
>  GLIBC_2.0 pthread_cond_destroy F
>  GLIBC_2.0 pthread_cond_init F
> @@ -2318,6 +2319,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
>  GLIBC_2.34 pthread_barrierattr_getpshared F
>  GLIBC_2.34 pthread_barrierattr_init F
>  GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_cancel F
>  GLIBC_2.34 pthread_clockjoin_np F
>  GLIBC_2.34 pthread_cond_clockwait F
>  GLIBC_2.34 pthread_condattr_getclock F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> index 156eae46c9..7784336090 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> @@ -1,5 +1,4 @@
>  GLIBC_2.0 __errno_location F
> -GLIBC_2.0 pthread_cancel F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 pthread_getname_np F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index bf2f7a8bb5..0fa35108a2 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -862,6 +862,7 @@ GLIBC_2.0 pthread_attr_setinheritsched F
>  GLIBC_2.0 pthread_attr_setschedparam F
>  GLIBC_2.0 pthread_attr_setschedpolicy F
>  GLIBC_2.0 pthread_attr_setscope F
> +GLIBC_2.0 pthread_cancel F
>  GLIBC_2.0 pthread_cond_broadcast F
>  GLIBC_2.0 pthread_cond_destroy F
>  GLIBC_2.0 pthread_cond_init F
> @@ -2316,6 +2317,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
>  GLIBC_2.34 pthread_barrierattr_getpshared F
>  GLIBC_2.34 pthread_barrierattr_init F
>  GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_cancel F
>  GLIBC_2.34 pthread_clockjoin_np F
>  GLIBC_2.34 pthread_cond_clockwait F
>  GLIBC_2.34 pthread_condattr_getclock F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> index 156eae46c9..7784336090 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> @@ -1,5 +1,4 @@
>  GLIBC_2.0 __errno_location F
> -GLIBC_2.0 pthread_cancel F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 pthread_getname_np F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index 7f37f64c2e..62d522bbbe 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -862,6 +862,7 @@ GLIBC_2.0 pthread_attr_setinheritsched F
>  GLIBC_2.0 pthread_attr_setschedparam F
>  GLIBC_2.0 pthread_attr_setschedpolicy F
>  GLIBC_2.0 pthread_attr_setscope F
> +GLIBC_2.0 pthread_cancel F
>  GLIBC_2.0 pthread_cond_broadcast F
>  GLIBC_2.0 pthread_cond_destroy F
>  GLIBC_2.0 pthread_cond_init F
> @@ -2324,6 +2325,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
>  GLIBC_2.34 pthread_barrierattr_getpshared F
>  GLIBC_2.34 pthread_barrierattr_init F
>  GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_cancel F
>  GLIBC_2.34 pthread_clockjoin_np F
>  GLIBC_2.34 pthread_cond_clockwait F
>  GLIBC_2.34 pthread_condattr_getclock F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index 1db4d23af4..7da2457db3 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -860,6 +860,7 @@ GLIBC_2.0 pthread_attr_setinheritsched F
>  GLIBC_2.0 pthread_attr_setschedparam F
>  GLIBC_2.0 pthread_attr_setschedpolicy F
>  GLIBC_2.0 pthread_attr_setscope F
> +GLIBC_2.0 pthread_cancel F
>  GLIBC_2.0 pthread_cond_broadcast F
>  GLIBC_2.0 pthread_cond_destroy F
>  GLIBC_2.0 pthread_cond_init F
> @@ -2318,6 +2319,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
>  GLIBC_2.34 pthread_barrierattr_getpshared F
>  GLIBC_2.34 pthread_barrierattr_init F
>  GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_cancel F
>  GLIBC_2.34 pthread_clockjoin_np F
>  GLIBC_2.34 pthread_cond_clockwait F
>  GLIBC_2.34 pthread_condattr_getclock F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index fc563e2b6e..d2c4e4f948 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -1511,6 +1511,7 @@ GLIBC_2.21 pthread_barrierattr_destroy F
>  GLIBC_2.21 pthread_barrierattr_getpshared F
>  GLIBC_2.21 pthread_barrierattr_init F
>  GLIBC_2.21 pthread_barrierattr_setpshared F
> +GLIBC_2.21 pthread_cancel F
>  GLIBC_2.21 pthread_cond_broadcast F
>  GLIBC_2.21 pthread_cond_destroy F
>  GLIBC_2.21 pthread_cond_init F
> @@ -2368,6 +2369,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
>  GLIBC_2.34 pthread_barrierattr_getpshared F
>  GLIBC_2.34 pthread_barrierattr_init F
>  GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_cancel F
>  GLIBC_2.34 pthread_clockjoin_np F
>  GLIBC_2.34 pthread_cond_clockwait F
>  GLIBC_2.34 pthread_condattr_getclock F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> index b7c7c83d68..b0df0a7b03 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> @@ -8,7 +8,6 @@ GLIBC_2.21 pthread_attr_setguardsize F
>  GLIBC_2.21 pthread_attr_setstack F
>  GLIBC_2.21 pthread_attr_setstackaddr F
>  GLIBC_2.21 pthread_attr_setstacksize F
> -GLIBC_2.21 pthread_cancel F
>  GLIBC_2.21 pthread_create F
>  GLIBC_2.21 pthread_getattr_default_np F
>  GLIBC_2.21 pthread_getconcurrency F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index 6e85b889b8..a7400470d9 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -873,6 +873,7 @@ GLIBC_2.0 pthread_attr_setinheritsched F
>  GLIBC_2.0 pthread_attr_setschedparam F
>  GLIBC_2.0 pthread_attr_setschedpolicy F
>  GLIBC_2.0 pthread_attr_setscope F
> +GLIBC_2.0 pthread_cancel F
>  GLIBC_2.0 pthread_cond_broadcast F
>  GLIBC_2.0 pthread_cond_destroy F
>  GLIBC_2.0 pthread_cond_init F
> @@ -2382,6 +2383,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
>  GLIBC_2.34 pthread_barrierattr_getpshared F
>  GLIBC_2.34 pthread_barrierattr_init F
>  GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_cancel F
>  GLIBC_2.34 pthread_clockjoin_np F
>  GLIBC_2.34 pthread_cond_clockwait F
>  GLIBC_2.34 pthread_condattr_getclock F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> index 17be75afae..2bd7686c6b 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> @@ -1,5 +1,4 @@
>  GLIBC_2.0 __errno_location F
> -GLIBC_2.0 pthread_cancel F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.1 pthread_attr_getguardsize F
>  GLIBC_2.1 pthread_attr_getstackaddr F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index e3e8390e0e..b0c189fcf0 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -873,6 +873,7 @@ GLIBC_2.0 pthread_attr_setinheritsched F
>  GLIBC_2.0 pthread_attr_setschedparam F
>  GLIBC_2.0 pthread_attr_setschedpolicy F
>  GLIBC_2.0 pthread_attr_setscope F
> +GLIBC_2.0 pthread_cancel F
>  GLIBC_2.0 pthread_cond_broadcast F
>  GLIBC_2.0 pthread_cond_destroy F
>  GLIBC_2.0 pthread_cond_init F
> @@ -2415,6 +2416,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
>  GLIBC_2.34 pthread_barrierattr_getpshared F
>  GLIBC_2.34 pthread_barrierattr_init F
>  GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_cancel F
>  GLIBC_2.34 pthread_clockjoin_np F
>  GLIBC_2.34 pthread_cond_clockwait F
>  GLIBC_2.34 pthread_condattr_getclock F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index 26a638edc8..3b90820891 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -1414,6 +1414,7 @@ GLIBC_2.3 pthread_barrier_wait F
>  GLIBC_2.3 pthread_barrierattr_destroy F
>  GLIBC_2.3 pthread_barrierattr_init F
>  GLIBC_2.3 pthread_barrierattr_setpshared F
> +GLIBC_2.3 pthread_cancel F
>  GLIBC_2.3 pthread_cond_broadcast F
>  GLIBC_2.3 pthread_cond_destroy F
>  GLIBC_2.3 pthread_cond_init F
> @@ -2230,6 +2231,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
>  GLIBC_2.34 pthread_barrierattr_getpshared F
>  GLIBC_2.34 pthread_barrierattr_init F
>  GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_cancel F
>  GLIBC_2.34 pthread_clockjoin_np F
>  GLIBC_2.34 pthread_cond_clockwait F
>  GLIBC_2.34 pthread_condattr_getclock F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> index 1549e29f64..30f76e8b84 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> @@ -12,7 +12,6 @@ GLIBC_2.3 pthread_attr_setguardsize F
>  GLIBC_2.3 pthread_attr_setstack F
>  GLIBC_2.3 pthread_attr_setstackaddr F
>  GLIBC_2.3 pthread_attr_setstacksize F
> -GLIBC_2.3 pthread_cancel F
>  GLIBC_2.3 pthread_create F
>  GLIBC_2.3 pthread_getconcurrency F
>  GLIBC_2.3 pthread_getcpuclockid F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index 09560c93d2..83e1299302 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -1554,6 +1554,7 @@ GLIBC_2.17 pthread_barrierattr_destroy F
>  GLIBC_2.17 pthread_barrierattr_getpshared F
>  GLIBC_2.17 pthread_barrierattr_init F
>  GLIBC_2.17 pthread_barrierattr_setpshared F
> +GLIBC_2.17 pthread_cancel F
>  GLIBC_2.17 pthread_cond_broadcast F
>  GLIBC_2.17 pthread_cond_destroy F
>  GLIBC_2.17 pthread_cond_init F
> @@ -2531,6 +2532,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
>  GLIBC_2.34 pthread_barrierattr_getpshared F
>  GLIBC_2.34 pthread_barrierattr_init F
>  GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_cancel F
>  GLIBC_2.34 pthread_clockjoin_np F
>  GLIBC_2.34 pthread_cond_clockwait F
>  GLIBC_2.34 pthread_condattr_getclock F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> index 72bbdf0f37..5e1bbfa024 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> @@ -8,7 +8,6 @@ GLIBC_2.17 pthread_attr_setguardsize F
>  GLIBC_2.17 pthread_attr_setstack F
>  GLIBC_2.17 pthread_attr_setstackaddr F
>  GLIBC_2.17 pthread_attr_setstacksize F
> -GLIBC_2.17 pthread_cancel F
>  GLIBC_2.17 pthread_create F
>  GLIBC_2.17 pthread_getconcurrency F
>  GLIBC_2.17 pthread_getcpuclockid F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index 3941ef0b70..ad50284075 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -1407,6 +1407,7 @@ GLIBC_2.33 pthread_barrierattr_destroy F
>  GLIBC_2.33 pthread_barrierattr_getpshared F
>  GLIBC_2.33 pthread_barrierattr_init F
>  GLIBC_2.33 pthread_barrierattr_setpshared F
> +GLIBC_2.33 pthread_cancel F
>  GLIBC_2.33 pthread_clockjoin_np F
>  GLIBC_2.33 pthread_cond_broadcast F
>  GLIBC_2.33 pthread_cond_clockwait F
> @@ -2096,6 +2097,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
>  GLIBC_2.34 pthread_barrierattr_getpshared F
>  GLIBC_2.34 pthread_barrierattr_init F
>  GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_cancel F
>  GLIBC_2.34 pthread_clockjoin_np F
>  GLIBC_2.34 pthread_cond_clockwait F
>  GLIBC_2.34 pthread_condattr_getclock F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> index 0efcff840e..fa86a05f56 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> @@ -8,7 +8,6 @@ GLIBC_2.33 pthread_attr_setguardsize F
>  GLIBC_2.33 pthread_attr_setstack F
>  GLIBC_2.33 pthread_attr_setstackaddr F
>  GLIBC_2.33 pthread_attr_setstacksize F
> -GLIBC_2.33 pthread_cancel F
>  GLIBC_2.33 pthread_create F
>  GLIBC_2.33 pthread_getattr_default_np F
>  GLIBC_2.33 pthread_getconcurrency F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index b0db186f7a..aa459ca768 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -1456,6 +1456,7 @@ GLIBC_2.27 pthread_barrierattr_destroy F
>  GLIBC_2.27 pthread_barrierattr_getpshared F
>  GLIBC_2.27 pthread_barrierattr_init F
>  GLIBC_2.27 pthread_barrierattr_setpshared F
> +GLIBC_2.27 pthread_cancel F
>  GLIBC_2.27 pthread_cond_broadcast F
>  GLIBC_2.27 pthread_cond_destroy F
>  GLIBC_2.27 pthread_cond_init F
> @@ -2296,6 +2297,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
>  GLIBC_2.34 pthread_barrierattr_getpshared F
>  GLIBC_2.34 pthread_barrierattr_init F
>  GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_cancel F
>  GLIBC_2.34 pthread_clockjoin_np F
>  GLIBC_2.34 pthread_cond_clockwait F
>  GLIBC_2.34 pthread_condattr_getclock F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> index cf21e1dd7f..3e66fa2b76 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> @@ -8,7 +8,6 @@ GLIBC_2.27 pthread_attr_setguardsize F
>  GLIBC_2.27 pthread_attr_setstack F
>  GLIBC_2.27 pthread_attr_setstackaddr F
>  GLIBC_2.27 pthread_attr_setstacksize F
> -GLIBC_2.27 pthread_cancel F
>  GLIBC_2.27 pthread_create F
>  GLIBC_2.27 pthread_getattr_default_np F
>  GLIBC_2.27 pthread_getconcurrency F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index 60bbe8bbf5..e973fda219 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -864,6 +864,7 @@ GLIBC_2.0 pthread_attr_setinheritsched F
>  GLIBC_2.0 pthread_attr_setschedparam F
>  GLIBC_2.0 pthread_attr_setschedpolicy F
>  GLIBC_2.0 pthread_attr_setscope F
> +GLIBC_2.0 pthread_cancel F
>  GLIBC_2.0 pthread_cond_broadcast F
>  GLIBC_2.0 pthread_cond_destroy F
>  GLIBC_2.0 pthread_cond_init F
> @@ -2380,6 +2381,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
>  GLIBC_2.34 pthread_barrierattr_getpshared F
>  GLIBC_2.34 pthread_barrierattr_init F
>  GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_cancel F
>  GLIBC_2.34 pthread_clockjoin_np F
>  GLIBC_2.34 pthread_cond_clockwait F
>  GLIBC_2.34 pthread_condattr_getclock F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> index 6daef10e8d..28f04f6a8d 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> @@ -1,5 +1,4 @@
>  GLIBC_2.0 __errno_location F
> -GLIBC_2.0 pthread_cancel F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.1 pthread_attr_getguardsize F
>  GLIBC_2.1 pthread_attr_getstackaddr F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index b7bff58264..6507112c09 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -1307,6 +1307,7 @@ GLIBC_2.2 pthread_barrier_wait F
>  GLIBC_2.2 pthread_barrierattr_destroy F
>  GLIBC_2.2 pthread_barrierattr_init F
>  GLIBC_2.2 pthread_barrierattr_setpshared F
> +GLIBC_2.2 pthread_cancel F
>  GLIBC_2.2 pthread_cond_broadcast F
>  GLIBC_2.2 pthread_cond_destroy F
>  GLIBC_2.2 pthread_cond_init F
> @@ -2267,6 +2268,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
>  GLIBC_2.34 pthread_barrierattr_getpshared F
>  GLIBC_2.34 pthread_barrierattr_init F
>  GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_cancel F
>  GLIBC_2.34 pthread_clockjoin_np F
>  GLIBC_2.34 pthread_cond_clockwait F
>  GLIBC_2.34 pthread_condattr_getclock F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> index e5998b3edc..1e78dd8265 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> @@ -12,7 +12,6 @@ GLIBC_2.2 pthread_attr_setguardsize F
>  GLIBC_2.2 pthread_attr_setstack F
>  GLIBC_2.2 pthread_attr_setstackaddr F
>  GLIBC_2.2 pthread_attr_setstacksize F
> -GLIBC_2.2 pthread_cancel F
>  GLIBC_2.2 pthread_create F
>  GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index 46fca5bdbf..6d4971b996 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -1293,6 +1293,7 @@ GLIBC_2.2 pthread_barrier_wait F
>  GLIBC_2.2 pthread_barrierattr_destroy F
>  GLIBC_2.2 pthread_barrierattr_init F
>  GLIBC_2.2 pthread_barrierattr_setpshared F
> +GLIBC_2.2 pthread_cancel F
>  GLIBC_2.2 pthread_cond_broadcast F
>  GLIBC_2.2 pthread_cond_destroy F
>  GLIBC_2.2 pthread_cond_init F
> @@ -2236,6 +2237,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
>  GLIBC_2.34 pthread_barrierattr_getpshared F
>  GLIBC_2.34 pthread_barrierattr_init F
>  GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_cancel F
>  GLIBC_2.34 pthread_clockjoin_np F
>  GLIBC_2.34 pthread_cond_clockwait F
>  GLIBC_2.34 pthread_condattr_getclock F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> index 7ee08fbcc9..7336ba3193 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> @@ -11,7 +11,6 @@ GLIBC_2.2 pthread_attr_setguardsize F
>  GLIBC_2.2 pthread_attr_setstack F
>  GLIBC_2.2 pthread_attr_setstackaddr F
>  GLIBC_2.2 pthread_attr_setstacksize F
> -GLIBC_2.2 pthread_cancel F
>  GLIBC_2.2 pthread_create F
>  GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index 0d885f202e..f1b6bd3824 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -1293,6 +1293,7 @@ GLIBC_2.2 pthread_barrier_wait F
>  GLIBC_2.2 pthread_barrierattr_destroy F
>  GLIBC_2.2 pthread_barrierattr_init F
>  GLIBC_2.2 pthread_barrierattr_setpshared F
> +GLIBC_2.2 pthread_cancel F
>  GLIBC_2.2 pthread_cond_broadcast F
>  GLIBC_2.2 pthread_cond_destroy F
>  GLIBC_2.2 pthread_cond_init F
> @@ -2233,6 +2234,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
>  GLIBC_2.34 pthread_barrierattr_getpshared F
>  GLIBC_2.34 pthread_barrierattr_init F
>  GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_cancel F
>  GLIBC_2.34 pthread_clockjoin_np F
>  GLIBC_2.34 pthread_cond_clockwait F
>  GLIBC_2.34 pthread_condattr_getclock F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> index 7ee08fbcc9..7336ba3193 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> @@ -11,7 +11,6 @@ GLIBC_2.2 pthread_attr_setguardsize F
>  GLIBC_2.2 pthread_attr_setstack F
>  GLIBC_2.2 pthread_attr_setstackaddr F
>  GLIBC_2.2 pthread_attr_setstacksize F
> -GLIBC_2.2 pthread_cancel F
>  GLIBC_2.2 pthread_create F
>  GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index c4571c476f..3240a8c655 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -867,6 +867,7 @@ GLIBC_2.0 pthread_attr_setinheritsched F
>  GLIBC_2.0 pthread_attr_setschedparam F
>  GLIBC_2.0 pthread_attr_setschedpolicy F
>  GLIBC_2.0 pthread_attr_setscope F
> +GLIBC_2.0 pthread_cancel F
>  GLIBC_2.0 pthread_cond_broadcast F
>  GLIBC_2.0 pthread_cond_destroy F
>  GLIBC_2.0 pthread_cond_init F
> @@ -2371,6 +2372,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
>  GLIBC_2.34 pthread_barrierattr_getpshared F
>  GLIBC_2.34 pthread_barrierattr_init F
>  GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_cancel F
>  GLIBC_2.34 pthread_clockjoin_np F
>  GLIBC_2.34 pthread_cond_clockwait F
>  GLIBC_2.34 pthread_condattr_getclock F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> index 19e1375b54..2362e75022 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> @@ -1,5 +1,4 @@
>  GLIBC_2.0 __errno_location F
> -GLIBC_2.0 pthread_cancel F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.1 pthread_attr_getguardsize F
>  GLIBC_2.1 pthread_attr_getstackaddr F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index cb18e01a23..9ae4258422 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -1336,6 +1336,7 @@ GLIBC_2.2 pthread_barrier_wait F
>  GLIBC_2.2 pthread_barrierattr_destroy F
>  GLIBC_2.2 pthread_barrierattr_init F
>  GLIBC_2.2 pthread_barrierattr_setpshared F
> +GLIBC_2.2 pthread_cancel F
>  GLIBC_2.2 pthread_cond_broadcast F
>  GLIBC_2.2 pthread_cond_destroy F
>  GLIBC_2.2 pthread_cond_init F
> @@ -2284,6 +2285,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
>  GLIBC_2.34 pthread_barrierattr_getpshared F
>  GLIBC_2.34 pthread_barrierattr_init F
>  GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_cancel F
>  GLIBC_2.34 pthread_clockjoin_np F
>  GLIBC_2.34 pthread_cond_clockwait F
>  GLIBC_2.34 pthread_condattr_getclock F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> index f11429ad6b..6bdd14dfb9 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> @@ -11,7 +11,6 @@ GLIBC_2.2 pthread_attr_setguardsize F
>  GLIBC_2.2 pthread_attr_setstack F
>  GLIBC_2.2 pthread_attr_setstackaddr F
>  GLIBC_2.2 pthread_attr_setstacksize F
> -GLIBC_2.2 pthread_cancel F
>  GLIBC_2.2 pthread_create F
>  GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index a5a2a8cb64..37d6c5808a 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -1303,6 +1303,7 @@ GLIBC_2.2.5 pthread_barrier_wait F
>  GLIBC_2.2.5 pthread_barrierattr_destroy F
>  GLIBC_2.2.5 pthread_barrierattr_init F
>  GLIBC_2.2.5 pthread_barrierattr_setpshared F
> +GLIBC_2.2.5 pthread_cancel F
>  GLIBC_2.2.5 pthread_cond_broadcast F
>  GLIBC_2.2.5 pthread_cond_destroy F
>  GLIBC_2.2.5 pthread_cond_init F
> @@ -2245,6 +2246,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
>  GLIBC_2.34 pthread_barrierattr_getpshared F
>  GLIBC_2.34 pthread_barrierattr_init F
>  GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_cancel F
>  GLIBC_2.34 pthread_clockjoin_np F
>  GLIBC_2.34 pthread_cond_clockwait F
>  GLIBC_2.34 pthread_condattr_getclock F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> index 6644d3cd23..8a26d7c2b2 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> @@ -11,7 +11,6 @@ GLIBC_2.2.5 pthread_attr_setguardsize F
>  GLIBC_2.2.5 pthread_attr_setstack F
>  GLIBC_2.2.5 pthread_attr_setstackaddr F
>  GLIBC_2.2.5 pthread_attr_setstacksize F
> -GLIBC_2.2.5 pthread_cancel F
>  GLIBC_2.2.5 pthread_create F
>  GLIBC_2.2.5 pthread_getconcurrency F
>  GLIBC_2.2.5 pthread_getcpuclockid F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index 93c17798fa..c8a2b437ad 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -1473,6 +1473,7 @@ GLIBC_2.16 pthread_barrierattr_destroy F
>  GLIBC_2.16 pthread_barrierattr_getpshared F
>  GLIBC_2.16 pthread_barrierattr_init F
>  GLIBC_2.16 pthread_barrierattr_setpshared F
> +GLIBC_2.16 pthread_cancel F
>  GLIBC_2.16 pthread_cond_broadcast F
>  GLIBC_2.16 pthread_cond_destroy F
>  GLIBC_2.16 pthread_cond_init F
> @@ -2350,6 +2351,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
>  GLIBC_2.34 pthread_barrierattr_getpshared F
>  GLIBC_2.34 pthread_barrierattr_init F
>  GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_cancel F
>  GLIBC_2.34 pthread_clockjoin_np F
>  GLIBC_2.34 pthread_cond_clockwait F
>  GLIBC_2.34 pthread_condattr_getclock F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> index c7144f2a0e..16622552e6 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> @@ -8,7 +8,6 @@ GLIBC_2.16 pthread_attr_setguardsize F
>  GLIBC_2.16 pthread_attr_setstack F
>  GLIBC_2.16 pthread_attr_setstackaddr F
>  GLIBC_2.16 pthread_attr_setstacksize F
> -GLIBC_2.16 pthread_cancel F
>  GLIBC_2.16 pthread_create F
>  GLIBC_2.16 pthread_getconcurrency F
>  GLIBC_2.16 pthread_getcpuclockid F
> 

Ok.
  
Florian Weimer May 11, 2021, 5:37 p.m. UTC | #2
* Adhemerval Zanella:

>> diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
>> index 1692788528..5b844f331a 100644
>> --- a/nptl/pthreadP.h
>> +++ b/nptl/pthreadP.h
>> @@ -521,7 +521,6 @@ extern pthread_t __pthread_self (void);
>>  extern int __pthread_equal (pthread_t thread1, pthread_t thread2);
>>  extern int __pthread_detach (pthread_t th);
>>  libc_hidden_proto (__pthread_detach)
>> -extern int __pthread_cancel (pthread_t th);
>>  extern int __pthread_kill (pthread_t threadid, int signo);
>>  extern void __pthread_exit (void *value) __attribute__ ((__noreturn__));
>>  libc_hidden_proto (__pthread_exit)
>
> I am kinda puzzled how the libc_hidden_proto work without the __pthread_cancel
> prototype.

Sorry, I don't understand the question?  Did I leave libc_hidden_def
somewhere by mistake?

Thanks,
Florian
  
Adhemerval Zanella Netto May 11, 2021, 6:13 p.m. UTC | #3
On 11/05/2021 14:37, Florian Weimer wrote:
> * Adhemerval Zanella:
> 
>>> diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
>>> index 1692788528..5b844f331a 100644
>>> --- a/nptl/pthreadP.h
>>> +++ b/nptl/pthreadP.h
>>> @@ -521,7 +521,6 @@ extern pthread_t __pthread_self (void);
>>>  extern int __pthread_equal (pthread_t thread1, pthread_t thread2);
>>>  extern int __pthread_detach (pthread_t th);
>>>  libc_hidden_proto (__pthread_detach)
>>> -extern int __pthread_cancel (pthread_t th);
>>>  extern int __pthread_kill (pthread_t threadid, int signo);
>>>  extern void __pthread_exit (void *value) __attribute__ ((__noreturn__));
>>>  libc_hidden_proto (__pthread_exit)
>>
>> I am kinda puzzled how the libc_hidden_proto work without the __pthread_cancel
>> prototype.
> 
> Sorry, I don't understand the question?  Did I leave libc_hidden_def
> somewhere by mistake?

No, it is from where libc_hidden_proto gets __pthread_cancel
definition to use on its internal __typeof.
  
Florian Weimer May 11, 2021, 6:18 p.m. UTC | #4
* Adhemerval Zanella:

> On 11/05/2021 14:37, Florian Weimer wrote:
>> * Adhemerval Zanella:
>> 
>>>> diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
>>>> index 1692788528..5b844f331a 100644
>>>> --- a/nptl/pthreadP.h
>>>> +++ b/nptl/pthreadP.h
>>>> @@ -521,7 +521,6 @@ extern pthread_t __pthread_self (void);
>>>>  extern int __pthread_equal (pthread_t thread1, pthread_t thread2);
>>>>  extern int __pthread_detach (pthread_t th);
>>>>  libc_hidden_proto (__pthread_detach)
>>>> -extern int __pthread_cancel (pthread_t th);
>>>>  extern int __pthread_kill (pthread_t threadid, int signo);
>>>>  extern void __pthread_exit (void *value) __attribute__ ((__noreturn__));
>>>>  libc_hidden_proto (__pthread_exit)
>>>
>>> I am kinda puzzled how the libc_hidden_proto work without the __pthread_cancel
>>> prototype.
>> 
>> Sorry, I don't understand the question?  Did I leave libc_hidden_def
>> somewhere by mistake?
>
> No, it is from where libc_hidden_proto gets __pthread_cancel
> definition to use on its internal __typeof.

There's no libc_hidden_proto (__pthread_cancel) before or after this
patch.  Sorry for being terse, I really don't get what you are after.

Florian
  
Adhemerval Zanella Netto May 11, 2021, 6:36 p.m. UTC | #5
On 11/05/2021 15:18, Florian Weimer wrote:
> * Adhemerval Zanella:
> 
>> On 11/05/2021 14:37, Florian Weimer wrote:
>>> * Adhemerval Zanella:
>>>
>>>>> diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
>>>>> index 1692788528..5b844f331a 100644
>>>>> --- a/nptl/pthreadP.h
>>>>> +++ b/nptl/pthreadP.h
>>>>> @@ -521,7 +521,6 @@ extern pthread_t __pthread_self (void);
>>>>>  extern int __pthread_equal (pthread_t thread1, pthread_t thread2);
>>>>>  extern int __pthread_detach (pthread_t th);
>>>>>  libc_hidden_proto (__pthread_detach)
>>>>> -extern int __pthread_cancel (pthread_t th);
>>>>>  extern int __pthread_kill (pthread_t threadid, int signo);
>>>>>  extern void __pthread_exit (void *value) __attribute__ ((__noreturn__));
>>>>>  libc_hidden_proto (__pthread_exit)
>>>>
>>>> I am kinda puzzled how the libc_hidden_proto work without the __pthread_cancel
>>>> prototype.
>>>
>>> Sorry, I don't understand the question?  Did I leave libc_hidden_def
>>> somewhere by mistake?
>>
>> No, it is from where libc_hidden_proto gets __pthread_cancel
>> definition to use on its internal __typeof.
> 
> There's no libc_hidden_proto (__pthread_cancel) before or after this
> patch.  Sorry for being terse, I really don't get what you are after.

Nevermind, it was a confusion from my part.  The patch look good.
  

Patch

diff --git a/nptl/Makefile b/nptl/Makefile
index 7e070e490b..94cdc76942 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -85,6 +85,7 @@  routines = \
   pthread_barrierattr_getpshared \
   pthread_barrierattr_init \
   pthread_barrierattr_setpshared \
+  pthread_cancel \
   pthread_cleanup_upto \
   pthread_clockjoin \
   pthread_cond_broadcast \
@@ -201,7 +202,6 @@  libpthread-routines = \
   pthread_attr_setstack \
   pthread_attr_setstackaddr \
   pthread_attr_setstacksize \
-  pthread_cancel \
   pthread_create \
   pthread_getattr_default_np \
   pthread_getconcurrency \
diff --git a/nptl/Versions b/nptl/Versions
index 0868a8cfb2..94e55bc785 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -29,6 +29,7 @@  libc {
     pthread_attr_setschedparam;
     pthread_attr_setschedpolicy;
     pthread_attr_setscope;
+    pthread_cancel;
     pthread_cond_broadcast;
     pthread_cond_destroy;
     pthread_cond_init;
@@ -252,6 +253,7 @@  libc {
     pthread_barrierattr_getpshared;
     pthread_barrierattr_init;
     pthread_barrierattr_setpshared;
+    pthread_cancel;
     pthread_clockjoin_np;
     pthread_cond_clockwait;
     pthread_condattr_getclock;
@@ -387,7 +389,6 @@  libpthread {
     flockfile;
     ftrylockfile;
     funlockfile;
-    pthread_cancel;
     pthread_create;
     pthread_sigmask;
   }
diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
index 1692788528..5b844f331a 100644
--- a/nptl/pthreadP.h
+++ b/nptl/pthreadP.h
@@ -521,7 +521,6 @@  extern pthread_t __pthread_self (void);
 extern int __pthread_equal (pthread_t thread1, pthread_t thread2);
 extern int __pthread_detach (pthread_t th);
 libc_hidden_proto (__pthread_detach)
-extern int __pthread_cancel (pthread_t th);
 extern int __pthread_kill (pthread_t threadid, int signo);
 extern void __pthread_exit (void *value) __attribute__ ((__noreturn__));
 libc_hidden_proto (__pthread_exit)
diff --git a/nptl/pthread_cancel.c b/nptl/pthread_cancel.c
index fd04bedf6c..e4ad602900 100644
--- a/nptl/pthread_cancel.c
+++ b/nptl/pthread_cancel.c
@@ -100,6 +100,10 @@  __pthread_cancel (pthread_t th)
 
   return result;
 }
-weak_alias (__pthread_cancel, pthread_cancel)
+versioned_symbol (libc, __pthread_cancel, pthread_cancel, GLIBC_2_34);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_34)
+compat_symbol (libpthread, __pthread_cancel, pthread_cancel, GLIBC_2_0);
+#endif
 
 PTHREAD_STATIC_FN_REQUIRE (__pthread_create)
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 79b373a45d..9ff2b6ac14 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -1466,6 +1466,7 @@  GLIBC_2.17 pthread_barrierattr_destroy F
 GLIBC_2.17 pthread_barrierattr_getpshared F
 GLIBC_2.17 pthread_barrierattr_init F
 GLIBC_2.17 pthread_barrierattr_setpshared F
+GLIBC_2.17 pthread_cancel F
 GLIBC_2.17 pthread_cond_broadcast F
 GLIBC_2.17 pthread_cond_destroy F
 GLIBC_2.17 pthread_cond_init F
@@ -2335,6 +2336,7 @@  GLIBC_2.34 pthread_barrierattr_destroy F
 GLIBC_2.34 pthread_barrierattr_getpshared F
 GLIBC_2.34 pthread_barrierattr_init F
 GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_cancel F
 GLIBC_2.34 pthread_clockjoin_np F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
index 72bbdf0f37..5e1bbfa024 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
@@ -8,7 +8,6 @@  GLIBC_2.17 pthread_attr_setguardsize F
 GLIBC_2.17 pthread_attr_setstack F
 GLIBC_2.17 pthread_attr_setstackaddr F
 GLIBC_2.17 pthread_attr_setstacksize F
-GLIBC_2.17 pthread_cancel F
 GLIBC_2.17 pthread_create F
 GLIBC_2.17 pthread_getconcurrency F
 GLIBC_2.17 pthread_getcpuclockid F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 8961d6799c..822ef11b8d 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -889,6 +889,7 @@  GLIBC_2.0 pthread_attr_setinheritsched F
 GLIBC_2.0 pthread_attr_setschedparam F
 GLIBC_2.0 pthread_attr_setschedpolicy F
 GLIBC_2.0 pthread_attr_setscope F
+GLIBC_2.0 pthread_cancel F
 GLIBC_2.0 pthread_cond_broadcast F
 GLIBC_2.0 pthread_cond_destroy F
 GLIBC_2.0 pthread_cond_init F
@@ -2422,6 +2423,7 @@  GLIBC_2.34 pthread_barrierattr_destroy F
 GLIBC_2.34 pthread_barrierattr_getpshared F
 GLIBC_2.34 pthread_barrierattr_init F
 GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_cancel F
 GLIBC_2.34 pthread_clockjoin_np F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
index 19e1375b54..2362e75022 100644
--- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
@@ -1,5 +1,4 @@ 
 GLIBC_2.0 __errno_location F
-GLIBC_2.0 pthread_cancel F
 GLIBC_2.0 pthread_create F
 GLIBC_2.1 pthread_attr_getguardsize F
 GLIBC_2.1 pthread_attr_getstackaddr F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 47504af7fa..7e3ff64bf7 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1405,6 +1405,7 @@  GLIBC_2.32 pthread_barrierattr_destroy F
 GLIBC_2.32 pthread_barrierattr_getpshared F
 GLIBC_2.32 pthread_barrierattr_init F
 GLIBC_2.32 pthread_barrierattr_setpshared F
+GLIBC_2.32 pthread_cancel F
 GLIBC_2.32 pthread_clockjoin_np F
 GLIBC_2.32 pthread_cond_broadcast F
 GLIBC_2.32 pthread_cond_clockwait F
@@ -2094,6 +2095,7 @@  GLIBC_2.34 pthread_barrierattr_destroy F
 GLIBC_2.34 pthread_barrierattr_getpshared F
 GLIBC_2.34 pthread_barrierattr_init F
 GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_cancel F
 GLIBC_2.34 pthread_clockjoin_np F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
index d47f656bf3..8a01895ba5 100644
--- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
@@ -8,7 +8,6 @@  GLIBC_2.32 pthread_attr_setguardsize F
 GLIBC_2.32 pthread_attr_setstack F
 GLIBC_2.32 pthread_attr_setstackaddr F
 GLIBC_2.32 pthread_attr_setstacksize F
-GLIBC_2.32 pthread_cancel F
 GLIBC_2.32 pthread_create F
 GLIBC_2.32 pthread_getattr_default_np F
 GLIBC_2.32 pthread_getconcurrency F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 1a4395ba35..ed75decfa1 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -216,6 +216,7 @@  GLIBC_2.34 pthread_barrierattr_destroy F
 GLIBC_2.34 pthread_barrierattr_getpshared F
 GLIBC_2.34 pthread_barrierattr_init F
 GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_cancel F
 GLIBC_2.34 pthread_clockjoin_np F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
@@ -1694,6 +1695,7 @@  GLIBC_2.4 pthread_barrierattr_destroy F
 GLIBC_2.4 pthread_barrierattr_getpshared F
 GLIBC_2.4 pthread_barrierattr_init F
 GLIBC_2.4 pthread_barrierattr_setpshared F
+GLIBC_2.4 pthread_cancel F
 GLIBC_2.4 pthread_cond_broadcast F
 GLIBC_2.4 pthread_cond_destroy F
 GLIBC_2.4 pthread_cond_init F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
index dffabc237c..95ce36b829 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
@@ -16,7 +16,6 @@  GLIBC_2.4 pthread_attr_setguardsize F
 GLIBC_2.4 pthread_attr_setstack F
 GLIBC_2.4 pthread_attr_setstackaddr F
 GLIBC_2.4 pthread_attr_setstacksize F
-GLIBC_2.4 pthread_cancel F
 GLIBC_2.4 pthread_create F
 GLIBC_2.4 pthread_getconcurrency F
 GLIBC_2.4 pthread_getcpuclockid F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 2344dc0638..78ecc3a850 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -213,6 +213,7 @@  GLIBC_2.34 pthread_barrierattr_destroy F
 GLIBC_2.34 pthread_barrierattr_getpshared F
 GLIBC_2.34 pthread_barrierattr_init F
 GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_cancel F
 GLIBC_2.34 pthread_clockjoin_np F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
@@ -1691,6 +1692,7 @@  GLIBC_2.4 pthread_barrierattr_destroy F
 GLIBC_2.4 pthread_barrierattr_getpshared F
 GLIBC_2.4 pthread_barrierattr_init F
 GLIBC_2.4 pthread_barrierattr_setpshared F
+GLIBC_2.4 pthread_cancel F
 GLIBC_2.4 pthread_cond_broadcast F
 GLIBC_2.4 pthread_cond_destroy F
 GLIBC_2.4 pthread_cond_init F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
index dffabc237c..95ce36b829 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
@@ -16,7 +16,6 @@  GLIBC_2.4 pthread_attr_setguardsize F
 GLIBC_2.4 pthread_attr_setstack F
 GLIBC_2.4 pthread_attr_setstackaddr F
 GLIBC_2.4 pthread_attr_setstacksize F
-GLIBC_2.4 pthread_cancel F
 GLIBC_2.4 pthread_create F
 GLIBC_2.4 pthread_getconcurrency F
 GLIBC_2.4 pthread_getcpuclockid F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index b3aec7bdad..5367122efd 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -1466,6 +1466,7 @@  GLIBC_2.29 pthread_barrierattr_destroy F
 GLIBC_2.29 pthread_barrierattr_getpshared F
 GLIBC_2.29 pthread_barrierattr_init F
 GLIBC_2.29 pthread_barrierattr_setpshared F
+GLIBC_2.29 pthread_cancel F
 GLIBC_2.29 pthread_cond_broadcast F
 GLIBC_2.29 pthread_cond_destroy F
 GLIBC_2.29 pthread_cond_init F
@@ -2278,6 +2279,7 @@  GLIBC_2.34 pthread_barrierattr_destroy F
 GLIBC_2.34 pthread_barrierattr_getpshared F
 GLIBC_2.34 pthread_barrierattr_init F
 GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_cancel F
 GLIBC_2.34 pthread_clockjoin_np F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
index 2b66c04b6c..92e778eb82 100644
--- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
@@ -8,7 +8,6 @@  GLIBC_2.29 pthread_attr_setguardsize F
 GLIBC_2.29 pthread_attr_setstack F
 GLIBC_2.29 pthread_attr_setstackaddr F
 GLIBC_2.29 pthread_attr_setstacksize F
-GLIBC_2.29 pthread_cancel F
 GLIBC_2.29 pthread_create F
 GLIBC_2.29 pthread_getattr_default_np F
 GLIBC_2.29 pthread_getconcurrency F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 59afc75408..be7b9d8e23 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -1289,6 +1289,7 @@  GLIBC_2.2 pthread_barrier_wait F
 GLIBC_2.2 pthread_barrierattr_destroy F
 GLIBC_2.2 pthread_barrierattr_init F
 GLIBC_2.2 pthread_barrierattr_setpshared F
+GLIBC_2.2 pthread_cancel F
 GLIBC_2.2 pthread_cond_broadcast F
 GLIBC_2.2 pthread_cond_destroy F
 GLIBC_2.2 pthread_cond_init F
@@ -2229,6 +2230,7 @@  GLIBC_2.34 pthread_barrierattr_destroy F
 GLIBC_2.34 pthread_barrierattr_getpshared F
 GLIBC_2.34 pthread_barrierattr_init F
 GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_cancel F
 GLIBC_2.34 pthread_clockjoin_np F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
index 7ee08fbcc9..7336ba3193 100644
--- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
@@ -11,7 +11,6 @@  GLIBC_2.2 pthread_attr_setguardsize F
 GLIBC_2.2 pthread_attr_setstack F
 GLIBC_2.2 pthread_attr_setstackaddr F
 GLIBC_2.2 pthread_attr_setstacksize F
-GLIBC_2.2 pthread_cancel F
 GLIBC_2.2 pthread_create F
 GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index eabfdee4bb..22da6982b9 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -866,6 +866,7 @@  GLIBC_2.0 pthread_attr_setinheritsched F
 GLIBC_2.0 pthread_attr_setschedparam F
 GLIBC_2.0 pthread_attr_setschedpolicy F
 GLIBC_2.0 pthread_attr_setscope F
+GLIBC_2.0 pthread_cancel F
 GLIBC_2.0 pthread_cond_broadcast F
 GLIBC_2.0 pthread_cond_destroy F
 GLIBC_2.0 pthread_cond_init F
@@ -2412,6 +2413,7 @@  GLIBC_2.34 pthread_barrierattr_destroy F
 GLIBC_2.34 pthread_barrierattr_getpshared F
 GLIBC_2.34 pthread_barrierattr_init F
 GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_cancel F
 GLIBC_2.34 pthread_clockjoin_np F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
index f2c64dd9c8..c28b299beb 100644
--- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
@@ -1,5 +1,4 @@ 
 GLIBC_2.0 __errno_location F
-GLIBC_2.0 pthread_cancel F
 GLIBC_2.0 pthread_create F
 GLIBC_2.1 pthread_attr_getguardsize F
 GLIBC_2.1 pthread_attr_getstackaddr F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 8307bd5568..d866b02ee9 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -1310,6 +1310,7 @@  GLIBC_2.2 pthread_barrier_wait F
 GLIBC_2.2 pthread_barrierattr_destroy F
 GLIBC_2.2 pthread_barrierattr_init F
 GLIBC_2.2 pthread_barrierattr_setpshared F
+GLIBC_2.2 pthread_cancel F
 GLIBC_2.2 pthread_cond_broadcast F
 GLIBC_2.2 pthread_cond_destroy F
 GLIBC_2.2 pthread_cond_init F
@@ -2263,6 +2264,7 @@  GLIBC_2.34 pthread_barrierattr_destroy F
 GLIBC_2.34 pthread_barrierattr_getpshared F
 GLIBC_2.34 pthread_barrierattr_init F
 GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_cancel F
 GLIBC_2.34 pthread_clockjoin_np F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
index f11429ad6b..6bdd14dfb9 100644
--- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
@@ -11,7 +11,6 @@  GLIBC_2.2 pthread_attr_setguardsize F
 GLIBC_2.2 pthread_attr_setstack F
 GLIBC_2.2 pthread_attr_setstackaddr F
 GLIBC_2.2 pthread_attr_setstacksize F
-GLIBC_2.2 pthread_cancel F
 GLIBC_2.2 pthread_create F
 GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index faeb98053c..0edb178a90 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -217,6 +217,7 @@  GLIBC_2.34 pthread_barrierattr_destroy F
 GLIBC_2.34 pthread_barrierattr_getpshared F
 GLIBC_2.34 pthread_barrierattr_init F
 GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_cancel F
 GLIBC_2.34 pthread_clockjoin_np F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
@@ -1674,6 +1675,7 @@  GLIBC_2.4 pthread_barrierattr_destroy F
 GLIBC_2.4 pthread_barrierattr_getpshared F
 GLIBC_2.4 pthread_barrierattr_init F
 GLIBC_2.4 pthread_barrierattr_setpshared F
+GLIBC_2.4 pthread_cancel F
 GLIBC_2.4 pthread_cond_broadcast F
 GLIBC_2.4 pthread_cond_destroy F
 GLIBC_2.4 pthread_cond_init F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
index dffabc237c..95ce36b829 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
@@ -16,7 +16,6 @@  GLIBC_2.4 pthread_attr_setguardsize F
 GLIBC_2.4 pthread_attr_setstack F
 GLIBC_2.4 pthread_attr_setstackaddr F
 GLIBC_2.4 pthread_attr_setstacksize F
-GLIBC_2.4 pthread_cancel F
 GLIBC_2.4 pthread_create F
 GLIBC_2.4 pthread_getconcurrency F
 GLIBC_2.4 pthread_getcpuclockid F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 987c85a011..e47b343e04 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -865,6 +865,7 @@  GLIBC_2.0 pthread_attr_setinheritsched F
 GLIBC_2.0 pthread_attr_setschedparam F
 GLIBC_2.0 pthread_attr_setschedpolicy F
 GLIBC_2.0 pthread_attr_setscope F
+GLIBC_2.0 pthread_cancel F
 GLIBC_2.0 pthread_cond_broadcast F
 GLIBC_2.0 pthread_cond_destroy F
 GLIBC_2.0 pthread_cond_init F
@@ -2355,6 +2356,7 @@  GLIBC_2.34 pthread_barrierattr_destroy F
 GLIBC_2.34 pthread_barrierattr_getpshared F
 GLIBC_2.34 pthread_barrierattr_init F
 GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_cancel F
 GLIBC_2.34 pthread_clockjoin_np F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
index f2c64dd9c8..c28b299beb 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
@@ -1,5 +1,4 @@ 
 GLIBC_2.0 __errno_location F
-GLIBC_2.0 pthread_cancel F
 GLIBC_2.0 pthread_create F
 GLIBC_2.1 pthread_attr_getguardsize F
 GLIBC_2.1 pthread_attr_getstackaddr F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 45f5b21895..dc74d613c9 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -1468,6 +1468,7 @@  GLIBC_2.18 pthread_barrierattr_destroy F
 GLIBC_2.18 pthread_barrierattr_getpshared F
 GLIBC_2.18 pthread_barrierattr_init F
 GLIBC_2.18 pthread_barrierattr_setpshared F
+GLIBC_2.18 pthread_cancel F
 GLIBC_2.18 pthread_cond_broadcast F
 GLIBC_2.18 pthread_cond_destroy F
 GLIBC_2.18 pthread_cond_init F
@@ -2329,6 +2330,7 @@  GLIBC_2.34 pthread_barrierattr_destroy F
 GLIBC_2.34 pthread_barrierattr_getpshared F
 GLIBC_2.34 pthread_barrierattr_init F
 GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_cancel F
 GLIBC_2.34 pthread_clockjoin_np F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
index 93b99ca4a7..07d34543b0 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
@@ -8,7 +8,6 @@  GLIBC_2.18 pthread_attr_setguardsize F
 GLIBC_2.18 pthread_attr_setstack F
 GLIBC_2.18 pthread_attr_setstackaddr F
 GLIBC_2.18 pthread_attr_setstacksize F
-GLIBC_2.18 pthread_cancel F
 GLIBC_2.18 pthread_create F
 GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_getconcurrency F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index ce10bfbf47..c58d10d5dd 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -1468,6 +1468,7 @@  GLIBC_2.18 pthread_barrierattr_destroy F
 GLIBC_2.18 pthread_barrierattr_getpshared F
 GLIBC_2.18 pthread_barrierattr_init F
 GLIBC_2.18 pthread_barrierattr_setpshared F
+GLIBC_2.18 pthread_cancel F
 GLIBC_2.18 pthread_cond_broadcast F
 GLIBC_2.18 pthread_cond_destroy F
 GLIBC_2.18 pthread_cond_init F
@@ -2326,6 +2327,7 @@  GLIBC_2.34 pthread_barrierattr_destroy F
 GLIBC_2.34 pthread_barrierattr_getpshared F
 GLIBC_2.34 pthread_barrierattr_init F
 GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_cancel F
 GLIBC_2.34 pthread_clockjoin_np F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
index 93b99ca4a7..07d34543b0 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
@@ -8,7 +8,6 @@  GLIBC_2.18 pthread_attr_setguardsize F
 GLIBC_2.18 pthread_attr_setstack F
 GLIBC_2.18 pthread_attr_setstackaddr F
 GLIBC_2.18 pthread_attr_setstacksize F
-GLIBC_2.18 pthread_cancel F
 GLIBC_2.18 pthread_create F
 GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_getconcurrency F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index c09f0f7634..17481fa785 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -862,6 +862,7 @@  GLIBC_2.0 pthread_attr_setinheritsched F
 GLIBC_2.0 pthread_attr_setschedparam F
 GLIBC_2.0 pthread_attr_setschedpolicy F
 GLIBC_2.0 pthread_attr_setscope F
+GLIBC_2.0 pthread_cancel F
 GLIBC_2.0 pthread_cond_broadcast F
 GLIBC_2.0 pthread_cond_destroy F
 GLIBC_2.0 pthread_cond_init F
@@ -2318,6 +2319,7 @@  GLIBC_2.34 pthread_barrierattr_destroy F
 GLIBC_2.34 pthread_barrierattr_getpshared F
 GLIBC_2.34 pthread_barrierattr_init F
 GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_cancel F
 GLIBC_2.34 pthread_clockjoin_np F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
index 156eae46c9..7784336090 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
@@ -1,5 +1,4 @@ 
 GLIBC_2.0 __errno_location F
-GLIBC_2.0 pthread_cancel F
 GLIBC_2.0 pthread_create F
 GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 pthread_getname_np F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index bf2f7a8bb5..0fa35108a2 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -862,6 +862,7 @@  GLIBC_2.0 pthread_attr_setinheritsched F
 GLIBC_2.0 pthread_attr_setschedparam F
 GLIBC_2.0 pthread_attr_setschedpolicy F
 GLIBC_2.0 pthread_attr_setscope F
+GLIBC_2.0 pthread_cancel F
 GLIBC_2.0 pthread_cond_broadcast F
 GLIBC_2.0 pthread_cond_destroy F
 GLIBC_2.0 pthread_cond_init F
@@ -2316,6 +2317,7 @@  GLIBC_2.34 pthread_barrierattr_destroy F
 GLIBC_2.34 pthread_barrierattr_getpshared F
 GLIBC_2.34 pthread_barrierattr_init F
 GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_cancel F
 GLIBC_2.34 pthread_clockjoin_np F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
index 156eae46c9..7784336090 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
@@ -1,5 +1,4 @@ 
 GLIBC_2.0 __errno_location F
-GLIBC_2.0 pthread_cancel F
 GLIBC_2.0 pthread_create F
 GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 pthread_getname_np F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 7f37f64c2e..62d522bbbe 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -862,6 +862,7 @@  GLIBC_2.0 pthread_attr_setinheritsched F
 GLIBC_2.0 pthread_attr_setschedparam F
 GLIBC_2.0 pthread_attr_setschedpolicy F
 GLIBC_2.0 pthread_attr_setscope F
+GLIBC_2.0 pthread_cancel F
 GLIBC_2.0 pthread_cond_broadcast F
 GLIBC_2.0 pthread_cond_destroy F
 GLIBC_2.0 pthread_cond_init F
@@ -2324,6 +2325,7 @@  GLIBC_2.34 pthread_barrierattr_destroy F
 GLIBC_2.34 pthread_barrierattr_getpshared F
 GLIBC_2.34 pthread_barrierattr_init F
 GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_cancel F
 GLIBC_2.34 pthread_clockjoin_np F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 1db4d23af4..7da2457db3 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -860,6 +860,7 @@  GLIBC_2.0 pthread_attr_setinheritsched F
 GLIBC_2.0 pthread_attr_setschedparam F
 GLIBC_2.0 pthread_attr_setschedpolicy F
 GLIBC_2.0 pthread_attr_setscope F
+GLIBC_2.0 pthread_cancel F
 GLIBC_2.0 pthread_cond_broadcast F
 GLIBC_2.0 pthread_cond_destroy F
 GLIBC_2.0 pthread_cond_init F
@@ -2318,6 +2319,7 @@  GLIBC_2.34 pthread_barrierattr_destroy F
 GLIBC_2.34 pthread_barrierattr_getpshared F
 GLIBC_2.34 pthread_barrierattr_init F
 GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_cancel F
 GLIBC_2.34 pthread_clockjoin_np F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index fc563e2b6e..d2c4e4f948 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -1511,6 +1511,7 @@  GLIBC_2.21 pthread_barrierattr_destroy F
 GLIBC_2.21 pthread_barrierattr_getpshared F
 GLIBC_2.21 pthread_barrierattr_init F
 GLIBC_2.21 pthread_barrierattr_setpshared F
+GLIBC_2.21 pthread_cancel F
 GLIBC_2.21 pthread_cond_broadcast F
 GLIBC_2.21 pthread_cond_destroy F
 GLIBC_2.21 pthread_cond_init F
@@ -2368,6 +2369,7 @@  GLIBC_2.34 pthread_barrierattr_destroy F
 GLIBC_2.34 pthread_barrierattr_getpshared F
 GLIBC_2.34 pthread_barrierattr_init F
 GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_cancel F
 GLIBC_2.34 pthread_clockjoin_np F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
index b7c7c83d68..b0df0a7b03 100644
--- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
@@ -8,7 +8,6 @@  GLIBC_2.21 pthread_attr_setguardsize F
 GLIBC_2.21 pthread_attr_setstack F
 GLIBC_2.21 pthread_attr_setstackaddr F
 GLIBC_2.21 pthread_attr_setstacksize F
-GLIBC_2.21 pthread_cancel F
 GLIBC_2.21 pthread_create F
 GLIBC_2.21 pthread_getattr_default_np F
 GLIBC_2.21 pthread_getconcurrency F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 6e85b889b8..a7400470d9 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -873,6 +873,7 @@  GLIBC_2.0 pthread_attr_setinheritsched F
 GLIBC_2.0 pthread_attr_setschedparam F
 GLIBC_2.0 pthread_attr_setschedpolicy F
 GLIBC_2.0 pthread_attr_setscope F
+GLIBC_2.0 pthread_cancel F
 GLIBC_2.0 pthread_cond_broadcast F
 GLIBC_2.0 pthread_cond_destroy F
 GLIBC_2.0 pthread_cond_init F
@@ -2382,6 +2383,7 @@  GLIBC_2.34 pthread_barrierattr_destroy F
 GLIBC_2.34 pthread_barrierattr_getpshared F
 GLIBC_2.34 pthread_barrierattr_init F
 GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_cancel F
 GLIBC_2.34 pthread_clockjoin_np F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
index 17be75afae..2bd7686c6b 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
@@ -1,5 +1,4 @@ 
 GLIBC_2.0 __errno_location F
-GLIBC_2.0 pthread_cancel F
 GLIBC_2.0 pthread_create F
 GLIBC_2.1 pthread_attr_getguardsize F
 GLIBC_2.1 pthread_attr_getstackaddr F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index e3e8390e0e..b0c189fcf0 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -873,6 +873,7 @@  GLIBC_2.0 pthread_attr_setinheritsched F
 GLIBC_2.0 pthread_attr_setschedparam F
 GLIBC_2.0 pthread_attr_setschedpolicy F
 GLIBC_2.0 pthread_attr_setscope F
+GLIBC_2.0 pthread_cancel F
 GLIBC_2.0 pthread_cond_broadcast F
 GLIBC_2.0 pthread_cond_destroy F
 GLIBC_2.0 pthread_cond_init F
@@ -2415,6 +2416,7 @@  GLIBC_2.34 pthread_barrierattr_destroy F
 GLIBC_2.34 pthread_barrierattr_getpshared F
 GLIBC_2.34 pthread_barrierattr_init F
 GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_cancel F
 GLIBC_2.34 pthread_clockjoin_np F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 26a638edc8..3b90820891 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -1414,6 +1414,7 @@  GLIBC_2.3 pthread_barrier_wait F
 GLIBC_2.3 pthread_barrierattr_destroy F
 GLIBC_2.3 pthread_barrierattr_init F
 GLIBC_2.3 pthread_barrierattr_setpshared F
+GLIBC_2.3 pthread_cancel F
 GLIBC_2.3 pthread_cond_broadcast F
 GLIBC_2.3 pthread_cond_destroy F
 GLIBC_2.3 pthread_cond_init F
@@ -2230,6 +2231,7 @@  GLIBC_2.34 pthread_barrierattr_destroy F
 GLIBC_2.34 pthread_barrierattr_getpshared F
 GLIBC_2.34 pthread_barrierattr_init F
 GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_cancel F
 GLIBC_2.34 pthread_clockjoin_np F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
index 1549e29f64..30f76e8b84 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
@@ -12,7 +12,6 @@  GLIBC_2.3 pthread_attr_setguardsize F
 GLIBC_2.3 pthread_attr_setstack F
 GLIBC_2.3 pthread_attr_setstackaddr F
 GLIBC_2.3 pthread_attr_setstacksize F
-GLIBC_2.3 pthread_cancel F
 GLIBC_2.3 pthread_create F
 GLIBC_2.3 pthread_getconcurrency F
 GLIBC_2.3 pthread_getcpuclockid F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 09560c93d2..83e1299302 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -1554,6 +1554,7 @@  GLIBC_2.17 pthread_barrierattr_destroy F
 GLIBC_2.17 pthread_barrierattr_getpshared F
 GLIBC_2.17 pthread_barrierattr_init F
 GLIBC_2.17 pthread_barrierattr_setpshared F
+GLIBC_2.17 pthread_cancel F
 GLIBC_2.17 pthread_cond_broadcast F
 GLIBC_2.17 pthread_cond_destroy F
 GLIBC_2.17 pthread_cond_init F
@@ -2531,6 +2532,7 @@  GLIBC_2.34 pthread_barrierattr_destroy F
 GLIBC_2.34 pthread_barrierattr_getpshared F
 GLIBC_2.34 pthread_barrierattr_init F
 GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_cancel F
 GLIBC_2.34 pthread_clockjoin_np F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
index 72bbdf0f37..5e1bbfa024 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
@@ -8,7 +8,6 @@  GLIBC_2.17 pthread_attr_setguardsize F
 GLIBC_2.17 pthread_attr_setstack F
 GLIBC_2.17 pthread_attr_setstackaddr F
 GLIBC_2.17 pthread_attr_setstacksize F
-GLIBC_2.17 pthread_cancel F
 GLIBC_2.17 pthread_create F
 GLIBC_2.17 pthread_getconcurrency F
 GLIBC_2.17 pthread_getcpuclockid F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 3941ef0b70..ad50284075 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1407,6 +1407,7 @@  GLIBC_2.33 pthread_barrierattr_destroy F
 GLIBC_2.33 pthread_barrierattr_getpshared F
 GLIBC_2.33 pthread_barrierattr_init F
 GLIBC_2.33 pthread_barrierattr_setpshared F
+GLIBC_2.33 pthread_cancel F
 GLIBC_2.33 pthread_clockjoin_np F
 GLIBC_2.33 pthread_cond_broadcast F
 GLIBC_2.33 pthread_cond_clockwait F
@@ -2096,6 +2097,7 @@  GLIBC_2.34 pthread_barrierattr_destroy F
 GLIBC_2.34 pthread_barrierattr_getpshared F
 GLIBC_2.34 pthread_barrierattr_init F
 GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_cancel F
 GLIBC_2.34 pthread_clockjoin_np F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
index 0efcff840e..fa86a05f56 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
@@ -8,7 +8,6 @@  GLIBC_2.33 pthread_attr_setguardsize F
 GLIBC_2.33 pthread_attr_setstack F
 GLIBC_2.33 pthread_attr_setstackaddr F
 GLIBC_2.33 pthread_attr_setstacksize F
-GLIBC_2.33 pthread_cancel F
 GLIBC_2.33 pthread_create F
 GLIBC_2.33 pthread_getattr_default_np F
 GLIBC_2.33 pthread_getconcurrency F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index b0db186f7a..aa459ca768 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -1456,6 +1456,7 @@  GLIBC_2.27 pthread_barrierattr_destroy F
 GLIBC_2.27 pthread_barrierattr_getpshared F
 GLIBC_2.27 pthread_barrierattr_init F
 GLIBC_2.27 pthread_barrierattr_setpshared F
+GLIBC_2.27 pthread_cancel F
 GLIBC_2.27 pthread_cond_broadcast F
 GLIBC_2.27 pthread_cond_destroy F
 GLIBC_2.27 pthread_cond_init F
@@ -2296,6 +2297,7 @@  GLIBC_2.34 pthread_barrierattr_destroy F
 GLIBC_2.34 pthread_barrierattr_getpshared F
 GLIBC_2.34 pthread_barrierattr_init F
 GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_cancel F
 GLIBC_2.34 pthread_clockjoin_np F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
index cf21e1dd7f..3e66fa2b76 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
@@ -8,7 +8,6 @@  GLIBC_2.27 pthread_attr_setguardsize F
 GLIBC_2.27 pthread_attr_setstack F
 GLIBC_2.27 pthread_attr_setstackaddr F
 GLIBC_2.27 pthread_attr_setstacksize F
-GLIBC_2.27 pthread_cancel F
 GLIBC_2.27 pthread_create F
 GLIBC_2.27 pthread_getattr_default_np F
 GLIBC_2.27 pthread_getconcurrency F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 60bbe8bbf5..e973fda219 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -864,6 +864,7 @@  GLIBC_2.0 pthread_attr_setinheritsched F
 GLIBC_2.0 pthread_attr_setschedparam F
 GLIBC_2.0 pthread_attr_setschedpolicy F
 GLIBC_2.0 pthread_attr_setscope F
+GLIBC_2.0 pthread_cancel F
 GLIBC_2.0 pthread_cond_broadcast F
 GLIBC_2.0 pthread_cond_destroy F
 GLIBC_2.0 pthread_cond_init F
@@ -2380,6 +2381,7 @@  GLIBC_2.34 pthread_barrierattr_destroy F
 GLIBC_2.34 pthread_barrierattr_getpshared F
 GLIBC_2.34 pthread_barrierattr_init F
 GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_cancel F
 GLIBC_2.34 pthread_clockjoin_np F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
index 6daef10e8d..28f04f6a8d 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
@@ -1,5 +1,4 @@ 
 GLIBC_2.0 __errno_location F
-GLIBC_2.0 pthread_cancel F
 GLIBC_2.0 pthread_create F
 GLIBC_2.1 pthread_attr_getguardsize F
 GLIBC_2.1 pthread_attr_getstackaddr F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index b7bff58264..6507112c09 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -1307,6 +1307,7 @@  GLIBC_2.2 pthread_barrier_wait F
 GLIBC_2.2 pthread_barrierattr_destroy F
 GLIBC_2.2 pthread_barrierattr_init F
 GLIBC_2.2 pthread_barrierattr_setpshared F
+GLIBC_2.2 pthread_cancel F
 GLIBC_2.2 pthread_cond_broadcast F
 GLIBC_2.2 pthread_cond_destroy F
 GLIBC_2.2 pthread_cond_init F
@@ -2267,6 +2268,7 @@  GLIBC_2.34 pthread_barrierattr_destroy F
 GLIBC_2.34 pthread_barrierattr_getpshared F
 GLIBC_2.34 pthread_barrierattr_init F
 GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_cancel F
 GLIBC_2.34 pthread_clockjoin_np F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
index e5998b3edc..1e78dd8265 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
@@ -12,7 +12,6 @@  GLIBC_2.2 pthread_attr_setguardsize F
 GLIBC_2.2 pthread_attr_setstack F
 GLIBC_2.2 pthread_attr_setstackaddr F
 GLIBC_2.2 pthread_attr_setstacksize F
-GLIBC_2.2 pthread_cancel F
 GLIBC_2.2 pthread_create F
 GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 46fca5bdbf..6d4971b996 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -1293,6 +1293,7 @@  GLIBC_2.2 pthread_barrier_wait F
 GLIBC_2.2 pthread_barrierattr_destroy F
 GLIBC_2.2 pthread_barrierattr_init F
 GLIBC_2.2 pthread_barrierattr_setpshared F
+GLIBC_2.2 pthread_cancel F
 GLIBC_2.2 pthread_cond_broadcast F
 GLIBC_2.2 pthread_cond_destroy F
 GLIBC_2.2 pthread_cond_init F
@@ -2236,6 +2237,7 @@  GLIBC_2.34 pthread_barrierattr_destroy F
 GLIBC_2.34 pthread_barrierattr_getpshared F
 GLIBC_2.34 pthread_barrierattr_init F
 GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_cancel F
 GLIBC_2.34 pthread_clockjoin_np F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
index 7ee08fbcc9..7336ba3193 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
@@ -11,7 +11,6 @@  GLIBC_2.2 pthread_attr_setguardsize F
 GLIBC_2.2 pthread_attr_setstack F
 GLIBC_2.2 pthread_attr_setstackaddr F
 GLIBC_2.2 pthread_attr_setstacksize F
-GLIBC_2.2 pthread_cancel F
 GLIBC_2.2 pthread_create F
 GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 0d885f202e..f1b6bd3824 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -1293,6 +1293,7 @@  GLIBC_2.2 pthread_barrier_wait F
 GLIBC_2.2 pthread_barrierattr_destroy F
 GLIBC_2.2 pthread_barrierattr_init F
 GLIBC_2.2 pthread_barrierattr_setpshared F
+GLIBC_2.2 pthread_cancel F
 GLIBC_2.2 pthread_cond_broadcast F
 GLIBC_2.2 pthread_cond_destroy F
 GLIBC_2.2 pthread_cond_init F
@@ -2233,6 +2234,7 @@  GLIBC_2.34 pthread_barrierattr_destroy F
 GLIBC_2.34 pthread_barrierattr_getpshared F
 GLIBC_2.34 pthread_barrierattr_init F
 GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_cancel F
 GLIBC_2.34 pthread_clockjoin_np F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
index 7ee08fbcc9..7336ba3193 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
@@ -11,7 +11,6 @@  GLIBC_2.2 pthread_attr_setguardsize F
 GLIBC_2.2 pthread_attr_setstack F
 GLIBC_2.2 pthread_attr_setstackaddr F
 GLIBC_2.2 pthread_attr_setstacksize F
-GLIBC_2.2 pthread_cancel F
 GLIBC_2.2 pthread_create F
 GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index c4571c476f..3240a8c655 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -867,6 +867,7 @@  GLIBC_2.0 pthread_attr_setinheritsched F
 GLIBC_2.0 pthread_attr_setschedparam F
 GLIBC_2.0 pthread_attr_setschedpolicy F
 GLIBC_2.0 pthread_attr_setscope F
+GLIBC_2.0 pthread_cancel F
 GLIBC_2.0 pthread_cond_broadcast F
 GLIBC_2.0 pthread_cond_destroy F
 GLIBC_2.0 pthread_cond_init F
@@ -2371,6 +2372,7 @@  GLIBC_2.34 pthread_barrierattr_destroy F
 GLIBC_2.34 pthread_barrierattr_getpshared F
 GLIBC_2.34 pthread_barrierattr_init F
 GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_cancel F
 GLIBC_2.34 pthread_clockjoin_np F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
index 19e1375b54..2362e75022 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
@@ -1,5 +1,4 @@ 
 GLIBC_2.0 __errno_location F
-GLIBC_2.0 pthread_cancel F
 GLIBC_2.0 pthread_create F
 GLIBC_2.1 pthread_attr_getguardsize F
 GLIBC_2.1 pthread_attr_getstackaddr F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index cb18e01a23..9ae4258422 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -1336,6 +1336,7 @@  GLIBC_2.2 pthread_barrier_wait F
 GLIBC_2.2 pthread_barrierattr_destroy F
 GLIBC_2.2 pthread_barrierattr_init F
 GLIBC_2.2 pthread_barrierattr_setpshared F
+GLIBC_2.2 pthread_cancel F
 GLIBC_2.2 pthread_cond_broadcast F
 GLIBC_2.2 pthread_cond_destroy F
 GLIBC_2.2 pthread_cond_init F
@@ -2284,6 +2285,7 @@  GLIBC_2.34 pthread_barrierattr_destroy F
 GLIBC_2.34 pthread_barrierattr_getpshared F
 GLIBC_2.34 pthread_barrierattr_init F
 GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_cancel F
 GLIBC_2.34 pthread_clockjoin_np F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
index f11429ad6b..6bdd14dfb9 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
@@ -11,7 +11,6 @@  GLIBC_2.2 pthread_attr_setguardsize F
 GLIBC_2.2 pthread_attr_setstack F
 GLIBC_2.2 pthread_attr_setstackaddr F
 GLIBC_2.2 pthread_attr_setstacksize F
-GLIBC_2.2 pthread_cancel F
 GLIBC_2.2 pthread_create F
 GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index a5a2a8cb64..37d6c5808a 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -1303,6 +1303,7 @@  GLIBC_2.2.5 pthread_barrier_wait F
 GLIBC_2.2.5 pthread_barrierattr_destroy F
 GLIBC_2.2.5 pthread_barrierattr_init F
 GLIBC_2.2.5 pthread_barrierattr_setpshared F
+GLIBC_2.2.5 pthread_cancel F
 GLIBC_2.2.5 pthread_cond_broadcast F
 GLIBC_2.2.5 pthread_cond_destroy F
 GLIBC_2.2.5 pthread_cond_init F
@@ -2245,6 +2246,7 @@  GLIBC_2.34 pthread_barrierattr_destroy F
 GLIBC_2.34 pthread_barrierattr_getpshared F
 GLIBC_2.34 pthread_barrierattr_init F
 GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_cancel F
 GLIBC_2.34 pthread_clockjoin_np F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
index 6644d3cd23..8a26d7c2b2 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
@@ -11,7 +11,6 @@  GLIBC_2.2.5 pthread_attr_setguardsize F
 GLIBC_2.2.5 pthread_attr_setstack F
 GLIBC_2.2.5 pthread_attr_setstackaddr F
 GLIBC_2.2.5 pthread_attr_setstacksize F
-GLIBC_2.2.5 pthread_cancel F
 GLIBC_2.2.5 pthread_create F
 GLIBC_2.2.5 pthread_getconcurrency F
 GLIBC_2.2.5 pthread_getcpuclockid F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 93c17798fa..c8a2b437ad 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -1473,6 +1473,7 @@  GLIBC_2.16 pthread_barrierattr_destroy F
 GLIBC_2.16 pthread_barrierattr_getpshared F
 GLIBC_2.16 pthread_barrierattr_init F
 GLIBC_2.16 pthread_barrierattr_setpshared F
+GLIBC_2.16 pthread_cancel F
 GLIBC_2.16 pthread_cond_broadcast F
 GLIBC_2.16 pthread_cond_destroy F
 GLIBC_2.16 pthread_cond_init F
@@ -2350,6 +2351,7 @@  GLIBC_2.34 pthread_barrierattr_destroy F
 GLIBC_2.34 pthread_barrierattr_getpshared F
 GLIBC_2.34 pthread_barrierattr_init F
 GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_cancel F
 GLIBC_2.34 pthread_clockjoin_np F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
index c7144f2a0e..16622552e6 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
@@ -8,7 +8,6 @@  GLIBC_2.16 pthread_attr_setguardsize F
 GLIBC_2.16 pthread_attr_setstack F
 GLIBC_2.16 pthread_attr_setstackaddr F
 GLIBC_2.16 pthread_attr_setstacksize F
-GLIBC_2.16 pthread_cancel F
 GLIBC_2.16 pthread_create F
 GLIBC_2.16 pthread_getconcurrency F
 GLIBC_2.16 pthread_getcpuclockid F