diff mbox series

[v3,27/37] nptl: Move pthread_key_delete into libc.

Message ID 213b9f1d5300956f7dae7f29c3de212b8537d4b7.1615914632.git.fweimer@redhat.com
State Superseded
Delegated to: Adhemerval Zanella Netto
Headers show
Series libpthread removal: NPTL forwarders are gone | expand

Commit Message

Florian Weimer March 16, 2021, 5:30 p.m. UTC
The symbol was moved using scripts/move-symbol-to-libc.py.

tss_delete (still in libpthread) uses the __pthread_key_create
alias, so that is now exported under GLIBC_PRIVATE.
---
 nptl/Makefile                                   |  2 +-
 nptl/Versions                                   |  4 +++-
 nptl/pthreadP.h                                 |  1 +
 nptl/pthread_key_delete.c                       | 17 ++++++++++++++---
 sysdeps/unix/sysv/linux/aarch64/libc.abilist    |  2 ++
 .../unix/sysv/linux/aarch64/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/alpha/libc.abilist      |  2 ++
 .../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 ++
 .../unix/sysv/linux/arm/be/libpthread.abilist   |  1 -
 sysdeps/unix/sysv/linux/arm/le/libc.abilist     |  2 ++
 .../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 -
 .../unix/sysv/linux/m68k/coldfire/libc.abilist  |  2 ++
 .../sysv/linux/m68k/coldfire/libpthread.abilist |  1 -
 .../unix/sysv/linux/m68k/m680x0/libc.abilist    |  2 ++
 .../sysv/linux/m68k/m680x0/libpthread.abilist   |  1 -
 .../unix/sysv/linux/microblaze/be/libc.abilist  |  2 ++
 .../sysv/linux/microblaze/be/libpthread.abilist |  1 -
 .../unix/sysv/linux/microblaze/le/libc.abilist  |  2 ++
 .../sysv/linux/microblaze/le/libpthread.abilist |  1 -
 .../sysv/linux/mips/mips32/fpu/libc.abilist     |  2 ++
 .../sysv/linux/mips/mips32/libpthread.abilist   |  1 -
 .../sysv/linux/mips/mips32/nofpu/libc.abilist   |  2 ++
 .../sysv/linux/mips/mips64/libpthread.abilist   |  1 -
 .../sysv/linux/mips/mips64/n32/libc.abilist     |  2 ++
 .../sysv/linux/mips/mips64/n64/libc.abilist     |  2 ++
 sysdeps/unix/sysv/linux/nios2/libc.abilist      |  2 ++
 .../unix/sysv/linux/nios2/libpthread.abilist    |  1 -
 .../linux/powerpc/powerpc32/fpu/libc.abilist    |  2 ++
 .../linux/powerpc/powerpc32/libpthread.abilist  |  1 -
 .../linux/powerpc/powerpc32/nofpu/libc.abilist  |  2 ++
 .../linux/powerpc/powerpc64/be/libc.abilist     |  2 ++
 .../powerpc/powerpc64/be/libpthread.abilist     |  1 -
 .../linux/powerpc/powerpc64/le/libc.abilist     |  2 ++
 .../powerpc/powerpc64/le/libpthread.abilist     |  1 -
 sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist |  2 ++
 .../sysv/linux/riscv/rv32/libpthread.abilist    |  1 -
 sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist |  2 ++
 .../sysv/linux/riscv/rv64/libpthread.abilist    |  1 -
 .../unix/sysv/linux/s390/s390-32/libc.abilist   |  2 ++
 .../sysv/linux/s390/s390-32/libpthread.abilist  |  1 -
 .../unix/sysv/linux/s390/s390-64/libc.abilist   |  2 ++
 .../sysv/linux/s390/s390-64/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/sh/be/libc.abilist      |  2 ++
 .../unix/sysv/linux/sh/be/libpthread.abilist    |  1 -
 sysdeps/unix/sysv/linux/sh/le/libc.abilist      |  2 ++
 .../unix/sysv/linux/sh/le/libpthread.abilist    |  1 -
 .../unix/sysv/linux/sparc/sparc32/libc.abilist  |  2 ++
 .../sysv/linux/sparc/sparc32/libpthread.abilist |  1 -
 .../unix/sysv/linux/sparc/sparc64/libc.abilist  |  2 ++
 .../sysv/linux/sparc/sparc64/libpthread.abilist |  1 -
 sysdeps/unix/sysv/linux/x86_64/64/libc.abilist  |  2 ++
 .../sysv/linux/x86_64/64/libpthread.abilist     |  1 -
 sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist |  2 ++
 .../sysv/linux/x86_64/x32/libpthread.abilist    |  1 -
 65 files changed, 83 insertions(+), 34 deletions(-)

Comments

Adhemerval Zanella March 24, 2021, 2:45 p.m. UTC | #1
On 16/03/2021 14:30, Florian Weimer via Libc-alpha wrote:
> The symbol was moved using scripts/move-symbol-to-libc.py.
> 
> tss_delete (still in libpthread) uses the __pthread_key_create
> alias, so that is now exported under GLIBC_PRIVATE.

LGTM, thanks.

> ---
>  nptl/Makefile                                   |  2 +-
>  nptl/Versions                                   |  4 +++-
>  nptl/pthreadP.h                                 |  1 +
>  nptl/pthread_key_delete.c                       | 17 ++++++++++++++---
>  sysdeps/unix/sysv/linux/aarch64/libc.abilist    |  2 ++
>  .../unix/sysv/linux/aarch64/libpthread.abilist  |  1 -
>  sysdeps/unix/sysv/linux/alpha/libc.abilist      |  2 ++
>  .../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 ++
>  .../unix/sysv/linux/arm/be/libpthread.abilist   |  1 -
>  sysdeps/unix/sysv/linux/arm/le/libc.abilist     |  2 ++
>  .../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 -
>  .../unix/sysv/linux/m68k/coldfire/libc.abilist  |  2 ++
>  .../sysv/linux/m68k/coldfire/libpthread.abilist |  1 -
>  .../unix/sysv/linux/m68k/m680x0/libc.abilist    |  2 ++
>  .../sysv/linux/m68k/m680x0/libpthread.abilist   |  1 -
>  .../unix/sysv/linux/microblaze/be/libc.abilist  |  2 ++
>  .../sysv/linux/microblaze/be/libpthread.abilist |  1 -
>  .../unix/sysv/linux/microblaze/le/libc.abilist  |  2 ++
>  .../sysv/linux/microblaze/le/libpthread.abilist |  1 -
>  .../sysv/linux/mips/mips32/fpu/libc.abilist     |  2 ++
>  .../sysv/linux/mips/mips32/libpthread.abilist   |  1 -
>  .../sysv/linux/mips/mips32/nofpu/libc.abilist   |  2 ++
>  .../sysv/linux/mips/mips64/libpthread.abilist   |  1 -
>  .../sysv/linux/mips/mips64/n32/libc.abilist     |  2 ++
>  .../sysv/linux/mips/mips64/n64/libc.abilist     |  2 ++
>  sysdeps/unix/sysv/linux/nios2/libc.abilist      |  2 ++
>  .../unix/sysv/linux/nios2/libpthread.abilist    |  1 -
>  .../linux/powerpc/powerpc32/fpu/libc.abilist    |  2 ++
>  .../linux/powerpc/powerpc32/libpthread.abilist  |  1 -
>  .../linux/powerpc/powerpc32/nofpu/libc.abilist  |  2 ++
>  .../linux/powerpc/powerpc64/be/libc.abilist     |  2 ++
>  .../powerpc/powerpc64/be/libpthread.abilist     |  1 -
>  .../linux/powerpc/powerpc64/le/libc.abilist     |  2 ++
>  .../powerpc/powerpc64/le/libpthread.abilist     |  1 -
>  sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist |  2 ++
>  .../sysv/linux/riscv/rv32/libpthread.abilist    |  1 -
>  sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist |  2 ++
>  .../sysv/linux/riscv/rv64/libpthread.abilist    |  1 -
>  .../unix/sysv/linux/s390/s390-32/libc.abilist   |  2 ++
>  .../sysv/linux/s390/s390-32/libpthread.abilist  |  1 -
>  .../unix/sysv/linux/s390/s390-64/libc.abilist   |  2 ++
>  .../sysv/linux/s390/s390-64/libpthread.abilist  |  1 -
>  sysdeps/unix/sysv/linux/sh/be/libc.abilist      |  2 ++
>  .../unix/sysv/linux/sh/be/libpthread.abilist    |  1 -
>  sysdeps/unix/sysv/linux/sh/le/libc.abilist      |  2 ++
>  .../unix/sysv/linux/sh/le/libpthread.abilist    |  1 -
>  .../unix/sysv/linux/sparc/sparc32/libc.abilist  |  2 ++
>  .../sysv/linux/sparc/sparc32/libpthread.abilist |  1 -
>  .../unix/sysv/linux/sparc/sparc64/libc.abilist  |  2 ++
>  .../sysv/linux/sparc/sparc64/libpthread.abilist |  1 -
>  sysdeps/unix/sysv/linux/x86_64/64/libc.abilist  |  2 ++
>  .../sysv/linux/x86_64/64/libpthread.abilist     |  1 -
>  sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist |  2 ++
>  .../sysv/linux/x86_64/x32/libpthread.abilist    |  1 -
>  65 files changed, 83 insertions(+), 34 deletions(-)
> 
> diff --git a/nptl/Makefile b/nptl/Makefile
> index fa8bcf8c62..5d4276d9f9 100644
> --- a/nptl/Makefile
> +++ b/nptl/Makefile
> @@ -80,6 +80,7 @@ routines = \
>    pthread_getschedparam \
>    pthread_getspecific \
>    pthread_key_create \
> +  pthread_key_delete \
>    pthread_keys \
>    pthread_mutex_consistent \
>    pthread_once \
> @@ -162,7 +163,6 @@ libpthread-routines = \
>    pthread_getname \
>    pthread_join \
>    pthread_join_common \
> -  pthread_key_delete \
>    pthread_kill \
>    pthread_kill_other_threads \
>    pthread_mutex_cond_lock \

Ok.

> diff --git a/nptl/Versions b/nptl/Versions
> index 58a37b8816..e93c27b083 100644
> --- a/nptl/Versions
> +++ b/nptl/Versions
> @@ -33,6 +33,7 @@ libc {
>      pthread_getschedparam;
>      pthread_getspecific;
>      pthread_key_create;
> +    pthread_key_delete;
>      pthread_mutex_destroy;
>      pthread_mutex_init;
>      pthread_mutex_lock;
> @@ -98,6 +99,7 @@ libc {
>      __pthread_setspecific;
>      pthread_getspecific;
>      pthread_key_create;
> +    pthread_key_delete;
>      pthread_mutex_consistent;
>      pthread_once;
>      pthread_setspecific;
> @@ -134,6 +136,7 @@ libc {
>      __pthread_exit;
>      __pthread_force_elision;
>      __pthread_getattr_default_np;
> +    __pthread_key_delete;
>      __pthread_keys;
>      __pthread_setcancelstate;
>      __pthread_unwind;
> @@ -188,7 +191,6 @@ libpthread {
>      pthread_create;
>      pthread_detach;
>      pthread_join;
> -    pthread_key_delete;
>      pthread_kill;
>      pthread_kill_other_threads_np;
>      pthread_mutex_destroy;

Ok.

> diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
> index c9e845e4a2..515c58039b 100644
> --- a/nptl/pthreadP.h
> +++ b/nptl/pthreadP.h
> @@ -517,6 +517,7 @@ extern int __pthread_condattr_destroy (pthread_condattr_t *attr);
>  extern int __pthread_condattr_init (pthread_condattr_t *attr);
>  extern int __pthread_key_create (pthread_key_t *key, void (*destr) (void *));
>  extern int __pthread_key_delete (pthread_key_t key);
> +libc_hidden_proto (__pthread_key_delete)
>  extern void *__pthread_getspecific (pthread_key_t key);
>  libc_hidden_proto (__pthread_getspecific)
>  extern int __pthread_setspecific (pthread_key_t key, const void *value);

Ok.

> diff --git a/nptl/pthread_key_delete.c b/nptl/pthread_key_delete.c
> index b9018306b1..081821cc02 100644
> --- a/nptl/pthread_key_delete.c
> +++ b/nptl/pthread_key_delete.c
> @@ -19,10 +19,10 @@
>  #include <errno.h>
>  #include "pthreadP.h"
>  #include <atomic.h>
> -
> +#include <shlib-compat.h>
>  
>  int
> -__pthread_key_delete (pthread_key_t key)
> +__pthread_key_delete_1 (pthread_key_t key)
>  {
>    int result = EINVAL;
>  
> @@ -39,4 +39,15 @@ __pthread_key_delete (pthread_key_t key)
>  
>    return result;
>  }
> -weak_alias (__pthread_key_delete, pthread_key_delete)
> +versioned_symbol (libc, __pthread_key_delete_1, pthread_key_delete,
> +		  GLIBC_2_34);
> +libc_hidden_ver (__pthread_key_delete_1, __pthread_key_delete)
> +
> +strong_alias (__pthread_key_delete_1, __pthread_key_delete_2)
> +versioned_symbol (libc, __pthread_key_delete_2, __pthread_key_delete,
> +		  GLIBC_PRIVATE);
> +
> +#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_34)
> +strong_alias (__pthread_key_delete_1, __pthread_key_delete_3)
> +compat_symbol (libc, __pthread_key_delete_3, pthread_key_delete, GLIBC_2_0);
> +#endif
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index 2601be32bf..991efa0044 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -1454,6 +1454,7 @@ GLIBC_2.17 pthread_getattr_np F
>  GLIBC_2.17 pthread_getschedparam F
>  GLIBC_2.17 pthread_getspecific F
>  GLIBC_2.17 pthread_key_create F
> +GLIBC_2.17 pthread_key_delete F
>  GLIBC_2.17 pthread_mutex_consistent F
>  GLIBC_2.17 pthread_mutex_consistent_np F
>  GLIBC_2.17 pthread_mutex_destroy F
> @@ -2196,6 +2197,7 @@ GLIBC_2.34 __pthread_setspecific F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
> +GLIBC_2.34 pthread_key_delete F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> index 778eb45ffc..50ab959905 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> @@ -85,7 +85,6 @@ GLIBC_2.17 pthread_getconcurrency F
>  GLIBC_2.17 pthread_getcpuclockid F
>  GLIBC_2.17 pthread_getname_np F
>  GLIBC_2.17 pthread_join F
> -GLIBC_2.17 pthread_key_delete F
>  GLIBC_2.17 pthread_kill F
>  GLIBC_2.17 pthread_kill_other_threads_np F
>  GLIBC_2.17 pthread_mutex_destroy F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index d334d0759d..a1229e4a1a 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -893,6 +893,7 @@ GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
>  GLIBC_2.0 pthread_getspecific F
>  GLIBC_2.0 pthread_key_create F
> +GLIBC_2.0 pthread_key_delete F
>  GLIBC_2.0 pthread_mutex_destroy F
>  GLIBC_2.0 pthread_mutex_init F
>  GLIBC_2.0 pthread_mutex_lock F
> @@ -2277,6 +2278,7 @@ GLIBC_2.34 __pthread_setspecific F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
> +GLIBC_2.34 pthread_key_delete F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> index 8ccbe19154..9d78d94466 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> @@ -41,7 +41,6 @@ GLIBC_2.0 pthread_cond_wait F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.0 pthread_detach F
>  GLIBC_2.0 pthread_join F
> -GLIBC_2.0 pthread_key_delete F
>  GLIBC_2.0 pthread_kill F
>  GLIBC_2.0 pthread_kill_other_threads_np F
>  GLIBC_2.0 pthread_mutex_destroy F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index 49034a2bdd..ceee863b25 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -1381,6 +1381,7 @@ GLIBC_2.32 pthread_getattr_np F
>  GLIBC_2.32 pthread_getschedparam F
>  GLIBC_2.32 pthread_getspecific F
>  GLIBC_2.32 pthread_key_create F
> +GLIBC_2.32 pthread_key_delete F
>  GLIBC_2.32 pthread_mutex_consistent F
>  GLIBC_2.32 pthread_mutex_consistent_np F
>  GLIBC_2.32 pthread_mutex_destroy F
> @@ -1956,6 +1957,7 @@ GLIBC_2.34 __pthread_setspecific F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
> +GLIBC_2.34 pthread_key_delete F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> index fba129cfad..6fed825b25 100644
> --- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> @@ -99,7 +99,6 @@ GLIBC_2.32 pthread_getconcurrency F
>  GLIBC_2.32 pthread_getcpuclockid F
>  GLIBC_2.32 pthread_getname_np F
>  GLIBC_2.32 pthread_join F
> -GLIBC_2.32 pthread_key_delete F
>  GLIBC_2.32 pthread_kill F
>  GLIBC_2.32 pthread_kill_other_threads_np F
>  GLIBC_2.32 pthread_mutex_clocklock F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index 3727e33898..31e2de3cc2 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -165,6 +165,7 @@ GLIBC_2.34 __pthread_setspecific F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
> +GLIBC_2.34 pthread_key_delete F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_setspecific F
> @@ -1559,6 +1560,7 @@ GLIBC_2.4 pthread_getattr_np F
>  GLIBC_2.4 pthread_getschedparam F
>  GLIBC_2.4 pthread_getspecific F
>  GLIBC_2.4 pthread_key_create F
> +GLIBC_2.4 pthread_key_delete F
>  GLIBC_2.4 pthread_mutex_consistent_np F
>  GLIBC_2.4 pthread_mutex_destroy F
>  GLIBC_2.4 pthread_mutex_init F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> index 2cb1f0e2f5..5d3859b245 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> @@ -118,7 +118,6 @@ GLIBC_2.4 pthread_detach F
>  GLIBC_2.4 pthread_getconcurrency F
>  GLIBC_2.4 pthread_getcpuclockid F
>  GLIBC_2.4 pthread_join F
> -GLIBC_2.4 pthread_key_delete F
>  GLIBC_2.4 pthread_kill F
>  GLIBC_2.4 pthread_kill_other_threads_np F
>  GLIBC_2.4 pthread_mutex_destroy F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index a7bc3a9a8e..c6f9e3dbc3 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -162,6 +162,7 @@ GLIBC_2.34 __pthread_setspecific F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
> +GLIBC_2.34 pthread_key_delete F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_setspecific F
> @@ -1556,6 +1557,7 @@ GLIBC_2.4 pthread_getattr_np F
>  GLIBC_2.4 pthread_getschedparam F
>  GLIBC_2.4 pthread_getspecific F
>  GLIBC_2.4 pthread_key_create F
> +GLIBC_2.4 pthread_key_delete F
>  GLIBC_2.4 pthread_mutex_consistent_np F
>  GLIBC_2.4 pthread_mutex_destroy F
>  GLIBC_2.4 pthread_mutex_init F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> index 2cb1f0e2f5..5d3859b245 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> @@ -118,7 +118,6 @@ GLIBC_2.4 pthread_detach F
>  GLIBC_2.4 pthread_getconcurrency F
>  GLIBC_2.4 pthread_getcpuclockid F
>  GLIBC_2.4 pthread_join F
> -GLIBC_2.4 pthread_key_delete F
>  GLIBC_2.4 pthread_kill F
>  GLIBC_2.4 pthread_kill_other_threads_np F
>  GLIBC_2.4 pthread_mutex_destroy F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index 61de7117bd..ec7f3bde74 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -1442,6 +1442,7 @@ GLIBC_2.29 pthread_getattr_np F
>  GLIBC_2.29 pthread_getschedparam F
>  GLIBC_2.29 pthread_getspecific F
>  GLIBC_2.29 pthread_key_create F
> +GLIBC_2.29 pthread_key_delete F
>  GLIBC_2.29 pthread_mutex_consistent F
>  GLIBC_2.29 pthread_mutex_consistent_np F
>  GLIBC_2.29 pthread_mutex_destroy F
> @@ -2140,6 +2141,7 @@ GLIBC_2.34 __pthread_setspecific F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
> +GLIBC_2.34 pthread_key_delete F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> index 760740a4ed..cf7869867c 100644
> --- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> @@ -97,7 +97,6 @@ GLIBC_2.29 pthread_getconcurrency F
>  GLIBC_2.29 pthread_getcpuclockid F
>  GLIBC_2.29 pthread_getname_np F
>  GLIBC_2.29 pthread_join F
> -GLIBC_2.29 pthread_key_delete F
>  GLIBC_2.29 pthread_kill F
>  GLIBC_2.29 pthread_kill_other_threads_np F
>  GLIBC_2.29 pthread_mutex_destroy F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index c380a422ca..ebced5d8c3 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -1277,6 +1277,7 @@ GLIBC_2.2 pthread_exit F
>  GLIBC_2.2 pthread_getschedparam F
>  GLIBC_2.2 pthread_getspecific F
>  GLIBC_2.2 pthread_key_create F
> +GLIBC_2.2 pthread_key_delete F
>  GLIBC_2.2 pthread_mutex_destroy F
>  GLIBC_2.2 pthread_mutex_init F
>  GLIBC_2.2 pthread_mutex_lock F
> @@ -2098,6 +2099,7 @@ GLIBC_2.34 __pthread_setspecific F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
> +GLIBC_2.34 pthread_key_delete F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> index c24d832b13..d0e8564302 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> @@ -84,7 +84,6 @@ GLIBC_2.2 pthread_detach F
>  GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_join F
> -GLIBC_2.2 pthread_key_delete F
>  GLIBC_2.2 pthread_kill F
>  GLIBC_2.2 pthread_kill_other_threads_np F
>  GLIBC_2.2 pthread_mutex_destroy F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index dd10b08625..d15479dabd 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -870,6 +870,7 @@ GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
>  GLIBC_2.0 pthread_getspecific F
>  GLIBC_2.0 pthread_key_create F
> +GLIBC_2.0 pthread_key_delete F
>  GLIBC_2.0 pthread_mutex_destroy F
>  GLIBC_2.0 pthread_mutex_init F
>  GLIBC_2.0 pthread_mutex_lock F
> @@ -2265,6 +2266,7 @@ GLIBC_2.34 __pthread_setspecific F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
> +GLIBC_2.34 pthread_key_delete F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> index 6b644a2513..99e53d0c49 100644
> --- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> @@ -41,7 +41,6 @@ GLIBC_2.0 pthread_cond_wait F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.0 pthread_detach F
>  GLIBC_2.0 pthread_join F
> -GLIBC_2.0 pthread_key_delete F
>  GLIBC_2.0 pthread_kill F
>  GLIBC_2.0 pthread_kill_other_threads_np F
>  GLIBC_2.0 pthread_mutex_destroy F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index fe64b5c1f0..62c8c7d461 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -1298,6 +1298,7 @@ GLIBC_2.2 pthread_exit F
>  GLIBC_2.2 pthread_getschedparam F
>  GLIBC_2.2 pthread_getspecific F
>  GLIBC_2.2 pthread_key_create F
> +GLIBC_2.2 pthread_key_delete F
>  GLIBC_2.2 pthread_mutex_destroy F
>  GLIBC_2.2 pthread_mutex_init F
>  GLIBC_2.2 pthread_mutex_lock F
> @@ -2130,6 +2131,7 @@ GLIBC_2.34 __pthread_setspecific F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
> +GLIBC_2.34 pthread_key_delete F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> index 1669fb860d..ff37f3905e 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> @@ -84,7 +84,6 @@ GLIBC_2.2 pthread_detach F
>  GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_join F
> -GLIBC_2.2 pthread_key_delete F
>  GLIBC_2.2 pthread_kill F
>  GLIBC_2.2 pthread_kill_other_threads_np F
>  GLIBC_2.2 pthread_mutex_destroy F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index 1af30ff1b3..83e8a6824f 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -166,6 +166,7 @@ GLIBC_2.34 __pthread_setspecific F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
> +GLIBC_2.34 pthread_key_delete F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_setspecific F
> @@ -1539,6 +1540,7 @@ GLIBC_2.4 pthread_getattr_np F
>  GLIBC_2.4 pthread_getschedparam F
>  GLIBC_2.4 pthread_getspecific F
>  GLIBC_2.4 pthread_key_create F
> +GLIBC_2.4 pthread_key_delete F
>  GLIBC_2.4 pthread_mutex_consistent_np F
>  GLIBC_2.4 pthread_mutex_destroy F
>  GLIBC_2.4 pthread_mutex_init F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> index 2cb1f0e2f5..5d3859b245 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> @@ -118,7 +118,6 @@ GLIBC_2.4 pthread_detach F
>  GLIBC_2.4 pthread_getconcurrency F
>  GLIBC_2.4 pthread_getcpuclockid F
>  GLIBC_2.4 pthread_join F
> -GLIBC_2.4 pthread_key_delete F
>  GLIBC_2.4 pthread_kill F
>  GLIBC_2.4 pthread_kill_other_threads_np F
>  GLIBC_2.4 pthread_mutex_destroy F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index 372bb9db63..5a81c61de7 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -869,6 +869,7 @@ GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
>  GLIBC_2.0 pthread_getspecific F
>  GLIBC_2.0 pthread_key_create F
> +GLIBC_2.0 pthread_key_delete F
>  GLIBC_2.0 pthread_mutex_destroy F
>  GLIBC_2.0 pthread_mutex_init F
>  GLIBC_2.0 pthread_mutex_lock F
> @@ -2210,6 +2211,7 @@ GLIBC_2.34 __pthread_setspecific F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
> +GLIBC_2.34 pthread_key_delete F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> index 6b644a2513..99e53d0c49 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> @@ -41,7 +41,6 @@ GLIBC_2.0 pthread_cond_wait F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.0 pthread_detach F
>  GLIBC_2.0 pthread_join F
> -GLIBC_2.0 pthread_key_delete F
>  GLIBC_2.0 pthread_kill F
>  GLIBC_2.0 pthread_kill_other_threads_np F
>  GLIBC_2.0 pthread_mutex_destroy F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index 7b1b02ff24..39c806db53 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -1457,6 +1457,7 @@ GLIBC_2.18 pthread_getattr_np F
>  GLIBC_2.18 pthread_getschedparam F
>  GLIBC_2.18 pthread_getspecific F
>  GLIBC_2.18 pthread_key_create F
> +GLIBC_2.18 pthread_key_delete F
>  GLIBC_2.18 pthread_mutex_consistent F
>  GLIBC_2.18 pthread_mutex_consistent_np F
>  GLIBC_2.18 pthread_mutex_destroy F
> @@ -2191,6 +2192,7 @@ GLIBC_2.34 __pthread_setspecific F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
> +GLIBC_2.34 pthread_key_delete F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> index 64e0587af6..8b3785414d 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> @@ -86,7 +86,6 @@ GLIBC_2.18 pthread_getconcurrency F
>  GLIBC_2.18 pthread_getcpuclockid F
>  GLIBC_2.18 pthread_getname_np F
>  GLIBC_2.18 pthread_join F
> -GLIBC_2.18 pthread_key_delete F
>  GLIBC_2.18 pthread_kill F
>  GLIBC_2.18 pthread_kill_other_threads_np F
>  GLIBC_2.18 pthread_mutex_destroy F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index 07ec814a0d..ce2823207c 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -1457,6 +1457,7 @@ GLIBC_2.18 pthread_getattr_np F
>  GLIBC_2.18 pthread_getschedparam F
>  GLIBC_2.18 pthread_getspecific F
>  GLIBC_2.18 pthread_key_create F
> +GLIBC_2.18 pthread_key_delete F
>  GLIBC_2.18 pthread_mutex_consistent F
>  GLIBC_2.18 pthread_mutex_consistent_np F
>  GLIBC_2.18 pthread_mutex_destroy F
> @@ -2188,6 +2189,7 @@ GLIBC_2.34 __pthread_setspecific F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
> +GLIBC_2.34 pthread_key_delete F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> index 64e0587af6..8b3785414d 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> @@ -86,7 +86,6 @@ GLIBC_2.18 pthread_getconcurrency F
>  GLIBC_2.18 pthread_getcpuclockid F
>  GLIBC_2.18 pthread_getname_np F
>  GLIBC_2.18 pthread_join F
> -GLIBC_2.18 pthread_key_delete F
>  GLIBC_2.18 pthread_kill F
>  GLIBC_2.18 pthread_kill_other_threads_np F
>  GLIBC_2.18 pthread_mutex_destroy F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index 51253a4216..5e8abfa6ae 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -866,6 +866,7 @@ GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
>  GLIBC_2.0 pthread_getspecific F
>  GLIBC_2.0 pthread_key_create F
> +GLIBC_2.0 pthread_key_delete F
>  GLIBC_2.0 pthread_mutex_destroy F
>  GLIBC_2.0 pthread_mutex_init F
>  GLIBC_2.0 pthread_mutex_lock F
> @@ -2181,6 +2182,7 @@ GLIBC_2.34 __pthread_setspecific F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
> +GLIBC_2.34 pthread_key_delete F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> index 1118a25c82..cd0d6d7419 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> @@ -41,7 +41,6 @@ GLIBC_2.0 pthread_cond_wait F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.0 pthread_detach F
>  GLIBC_2.0 pthread_join F
> -GLIBC_2.0 pthread_key_delete F
>  GLIBC_2.0 pthread_kill F
>  GLIBC_2.0 pthread_kill_other_threads_np F
>  GLIBC_2.0 pthread_mutex_destroy F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index 2574b7627e..93002ae842 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -866,6 +866,7 @@ GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
>  GLIBC_2.0 pthread_getspecific F
>  GLIBC_2.0 pthread_key_create F
> +GLIBC_2.0 pthread_key_delete F
>  GLIBC_2.0 pthread_mutex_destroy F
>  GLIBC_2.0 pthread_mutex_init F
>  GLIBC_2.0 pthread_mutex_lock F
> @@ -2179,6 +2180,7 @@ GLIBC_2.34 __pthread_setspecific F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
> +GLIBC_2.34 pthread_key_delete F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> index 1118a25c82..cd0d6d7419 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> @@ -41,7 +41,6 @@ GLIBC_2.0 pthread_cond_wait F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.0 pthread_detach F
>  GLIBC_2.0 pthread_join F
> -GLIBC_2.0 pthread_key_delete F
>  GLIBC_2.0 pthread_kill F
>  GLIBC_2.0 pthread_kill_other_threads_np F
>  GLIBC_2.0 pthread_mutex_destroy F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index 0580b260e2..245a840e12 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -866,6 +866,7 @@ GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
>  GLIBC_2.0 pthread_getspecific F
>  GLIBC_2.0 pthread_key_create F
> +GLIBC_2.0 pthread_key_delete F
>  GLIBC_2.0 pthread_mutex_destroy F
>  GLIBC_2.0 pthread_mutex_init F
>  GLIBC_2.0 pthread_mutex_lock F
> @@ -2187,6 +2188,7 @@ GLIBC_2.34 __pthread_setspecific F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
> +GLIBC_2.34 pthread_key_delete F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index 40fe64ea6b..24b2dddb51 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -864,6 +864,7 @@ GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
>  GLIBC_2.0 pthread_getspecific F
>  GLIBC_2.0 pthread_key_create F
> +GLIBC_2.0 pthread_key_delete F
>  GLIBC_2.0 pthread_mutex_destroy F
>  GLIBC_2.0 pthread_mutex_init F
>  GLIBC_2.0 pthread_mutex_lock F
> @@ -2181,6 +2182,7 @@ GLIBC_2.34 __pthread_setspecific F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
> +GLIBC_2.34 pthread_key_delete F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index b9400803eb..7d4b4dd278 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -1499,6 +1499,7 @@ GLIBC_2.21 pthread_getattr_np F
>  GLIBC_2.21 pthread_getschedparam F
>  GLIBC_2.21 pthread_getspecific F
>  GLIBC_2.21 pthread_key_create F
> +GLIBC_2.21 pthread_key_delete F
>  GLIBC_2.21 pthread_mutex_consistent F
>  GLIBC_2.21 pthread_mutex_consistent_np F
>  GLIBC_2.21 pthread_mutex_destroy F
> @@ -2229,6 +2230,7 @@ GLIBC_2.34 __pthread_setspecific F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
> +GLIBC_2.34 pthread_key_delete F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> index 96d1cd0f49..0250c9756d 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> @@ -86,7 +86,6 @@ GLIBC_2.21 pthread_getconcurrency F
>  GLIBC_2.21 pthread_getcpuclockid F
>  GLIBC_2.21 pthread_getname_np F
>  GLIBC_2.21 pthread_join F
> -GLIBC_2.21 pthread_key_delete F
>  GLIBC_2.21 pthread_kill F
>  GLIBC_2.21 pthread_kill_other_threads_np F
>  GLIBC_2.21 pthread_mutex_destroy F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index 9f27e4aa50..65ea41b2db 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -877,6 +877,7 @@ GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
>  GLIBC_2.0 pthread_getspecific F
>  GLIBC_2.0 pthread_key_create F
> +GLIBC_2.0 pthread_key_delete F
>  GLIBC_2.0 pthread_mutex_destroy F
>  GLIBC_2.0 pthread_mutex_init F
>  GLIBC_2.0 pthread_mutex_lock F
> @@ -2237,6 +2238,7 @@ GLIBC_2.34 __pthread_setspecific F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
> +GLIBC_2.34 pthread_key_delete F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> index a8111f4b92..e0eb362a7a 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> @@ -41,7 +41,6 @@ GLIBC_2.0 pthread_cond_wait F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.0 pthread_detach F
>  GLIBC_2.0 pthread_join F
> -GLIBC_2.0 pthread_key_delete F
>  GLIBC_2.0 pthread_kill F
>  GLIBC_2.0 pthread_kill_other_threads_np F
>  GLIBC_2.0 pthread_mutex_destroy F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index 9c91e65fc1..9d413de126 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -877,6 +877,7 @@ GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
>  GLIBC_2.0 pthread_getspecific F
>  GLIBC_2.0 pthread_key_create F
> +GLIBC_2.0 pthread_key_delete F
>  GLIBC_2.0 pthread_mutex_destroy F
>  GLIBC_2.0 pthread_mutex_init F
>  GLIBC_2.0 pthread_mutex_lock F
> @@ -2270,6 +2271,7 @@ GLIBC_2.34 __pthread_setspecific F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
> +GLIBC_2.34 pthread_key_delete F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index 0ef070e285..16c24bfc69 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -1384,6 +1384,7 @@ GLIBC_2.3 pthread_getattr_np F
>  GLIBC_2.3 pthread_getschedparam F
>  GLIBC_2.3 pthread_getspecific F
>  GLIBC_2.3 pthread_key_create F
> +GLIBC_2.3 pthread_key_delete F
>  GLIBC_2.3 pthread_mutex_destroy F
>  GLIBC_2.3 pthread_mutex_init F
>  GLIBC_2.3 pthread_mutex_lock F
> @@ -2100,6 +2101,7 @@ GLIBC_2.34 __pthread_setspecific F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
> +GLIBC_2.34 pthread_key_delete F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> index a0f5dffd25..1099d88afe 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> @@ -104,7 +104,6 @@ GLIBC_2.3 pthread_detach F
>  GLIBC_2.3 pthread_getconcurrency F
>  GLIBC_2.3 pthread_getcpuclockid F
>  GLIBC_2.3 pthread_join F
> -GLIBC_2.3 pthread_key_delete F
>  GLIBC_2.3 pthread_kill F
>  GLIBC_2.3 pthread_kill_other_threads_np F
>  GLIBC_2.3 pthread_mutex_destroy F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index 4a6de68ece..d97c594edd 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -1543,6 +1543,7 @@ GLIBC_2.17 pthread_getattr_np F
>  GLIBC_2.17 pthread_getschedparam F
>  GLIBC_2.17 pthread_getspecific F
>  GLIBC_2.17 pthread_key_create F
> +GLIBC_2.17 pthread_key_delete F
>  GLIBC_2.17 pthread_mutex_consistent F
>  GLIBC_2.17 pthread_mutex_consistent_np F
>  GLIBC_2.17 pthread_mutex_destroy F
> @@ -2391,6 +2392,7 @@ GLIBC_2.34 __pthread_setspecific F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
> +GLIBC_2.34 pthread_key_delete F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> index 778eb45ffc..50ab959905 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> @@ -85,7 +85,6 @@ GLIBC_2.17 pthread_getconcurrency F
>  GLIBC_2.17 pthread_getcpuclockid F
>  GLIBC_2.17 pthread_getname_np F
>  GLIBC_2.17 pthread_join F
> -GLIBC_2.17 pthread_key_delete F
>  GLIBC_2.17 pthread_kill F
>  GLIBC_2.17 pthread_kill_other_threads_np F
>  GLIBC_2.17 pthread_mutex_destroy F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index 62f9d06cc6..44b0121343 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -1383,6 +1383,7 @@ GLIBC_2.33 pthread_getattr_np F
>  GLIBC_2.33 pthread_getschedparam F
>  GLIBC_2.33 pthread_getspecific F
>  GLIBC_2.33 pthread_key_create F
> +GLIBC_2.33 pthread_key_delete F
>  GLIBC_2.33 pthread_mutex_consistent F
>  GLIBC_2.33 pthread_mutex_consistent_np F
>  GLIBC_2.33 pthread_mutex_destroy F
> @@ -1958,6 +1959,7 @@ GLIBC_2.34 __pthread_setspecific F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
> +GLIBC_2.34 pthread_key_delete F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> index dc38dee1ae..6c6fdd0cbf 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> @@ -99,7 +99,6 @@ GLIBC_2.33 pthread_getconcurrency F
>  GLIBC_2.33 pthread_getcpuclockid F
>  GLIBC_2.33 pthread_getname_np F
>  GLIBC_2.33 pthread_join F
> -GLIBC_2.33 pthread_key_delete F
>  GLIBC_2.33 pthread_kill F
>  GLIBC_2.33 pthread_kill_other_threads_np F
>  GLIBC_2.33 pthread_mutex_clocklock F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index 63976e8487..22a34442f0 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -1445,6 +1445,7 @@ GLIBC_2.27 pthread_getattr_np F
>  GLIBC_2.27 pthread_getschedparam F
>  GLIBC_2.27 pthread_getspecific F
>  GLIBC_2.27 pthread_key_create F
> +GLIBC_2.27 pthread_key_delete F
>  GLIBC_2.27 pthread_mutex_consistent F
>  GLIBC_2.27 pthread_mutex_consistent_np F
>  GLIBC_2.27 pthread_mutex_destroy F
> @@ -2158,6 +2159,7 @@ GLIBC_2.34 __pthread_setspecific F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
> +GLIBC_2.34 pthread_key_delete F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> index a78a847c1a..359545faee 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> @@ -86,7 +86,6 @@ GLIBC_2.27 pthread_getconcurrency F
>  GLIBC_2.27 pthread_getcpuclockid F
>  GLIBC_2.27 pthread_getname_np F
>  GLIBC_2.27 pthread_join F
> -GLIBC_2.27 pthread_key_delete F
>  GLIBC_2.27 pthread_kill F
>  GLIBC_2.27 pthread_kill_other_threads_np F
>  GLIBC_2.27 pthread_mutex_destroy F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index 8b159936e4..21f49b1fa0 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -868,6 +868,7 @@ GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
>  GLIBC_2.0 pthread_getspecific F
>  GLIBC_2.0 pthread_key_create F
> +GLIBC_2.0 pthread_key_delete F
>  GLIBC_2.0 pthread_mutex_destroy F
>  GLIBC_2.0 pthread_mutex_init F
>  GLIBC_2.0 pthread_mutex_lock F
> @@ -2235,6 +2236,7 @@ GLIBC_2.34 __pthread_setspecific F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
> +GLIBC_2.34 pthread_key_delete F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> index 5f9f4da233..5eb6187d98 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> @@ -41,7 +41,6 @@ GLIBC_2.0 pthread_cond_wait F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.0 pthread_detach F
>  GLIBC_2.0 pthread_join F
> -GLIBC_2.0 pthread_key_delete F
>  GLIBC_2.0 pthread_kill F
>  GLIBC_2.0 pthread_kill_other_threads_np F
>  GLIBC_2.0 pthread_mutex_destroy F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index 5bbf8fdbb4..114591d6f5 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -1295,6 +1295,7 @@ GLIBC_2.2 pthread_exit F
>  GLIBC_2.2 pthread_getschedparam F
>  GLIBC_2.2 pthread_getspecific F
>  GLIBC_2.2 pthread_key_create F
> +GLIBC_2.2 pthread_key_delete F
>  GLIBC_2.2 pthread_mutex_destroy F
>  GLIBC_2.2 pthread_mutex_init F
>  GLIBC_2.2 pthread_mutex_lock F
> @@ -2136,6 +2137,7 @@ GLIBC_2.34 __pthread_setspecific F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
> +GLIBC_2.34 pthread_key_delete F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> index ec27acf8c2..8f60a6b633 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> @@ -85,7 +85,6 @@ GLIBC_2.2 pthread_detach F
>  GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_join F
> -GLIBC_2.2 pthread_key_delete F
>  GLIBC_2.2 pthread_kill F
>  GLIBC_2.2 pthread_kill_other_threads_np F
>  GLIBC_2.2 pthread_mutex_destroy F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index 10ea3c59b9..ad487f0c9f 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -1281,6 +1281,7 @@ GLIBC_2.2 pthread_exit F
>  GLIBC_2.2 pthread_getschedparam F
>  GLIBC_2.2 pthread_getspecific F
>  GLIBC_2.2 pthread_key_create F
> +GLIBC_2.2 pthread_key_delete F
>  GLIBC_2.2 pthread_mutex_destroy F
>  GLIBC_2.2 pthread_mutex_init F
>  GLIBC_2.2 pthread_mutex_lock F
> @@ -2105,6 +2106,7 @@ GLIBC_2.34 __pthread_setspecific F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
> +GLIBC_2.34 pthread_key_delete F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> index c24d832b13..d0e8564302 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> @@ -84,7 +84,6 @@ GLIBC_2.2 pthread_detach F
>  GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_join F
> -GLIBC_2.2 pthread_key_delete F
>  GLIBC_2.2 pthread_kill F
>  GLIBC_2.2 pthread_kill_other_threads_np F
>  GLIBC_2.2 pthread_mutex_destroy F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index 12d492b088..7f6886ff02 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -1281,6 +1281,7 @@ GLIBC_2.2 pthread_exit F
>  GLIBC_2.2 pthread_getschedparam F
>  GLIBC_2.2 pthread_getspecific F
>  GLIBC_2.2 pthread_key_create F
> +GLIBC_2.2 pthread_key_delete F
>  GLIBC_2.2 pthread_mutex_destroy F
>  GLIBC_2.2 pthread_mutex_init F
>  GLIBC_2.2 pthread_mutex_lock F
> @@ -2102,6 +2103,7 @@ GLIBC_2.34 __pthread_setspecific F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
> +GLIBC_2.34 pthread_key_delete F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> index c24d832b13..d0e8564302 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> @@ -84,7 +84,6 @@ GLIBC_2.2 pthread_detach F
>  GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_join F
> -GLIBC_2.2 pthread_key_delete F
>  GLIBC_2.2 pthread_kill F
>  GLIBC_2.2 pthread_kill_other_threads_np F
>  GLIBC_2.2 pthread_mutex_destroy F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index 3bb06d6ce0..4ae6d45923 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -871,6 +871,7 @@ GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
>  GLIBC_2.0 pthread_getspecific F
>  GLIBC_2.0 pthread_key_create F
> +GLIBC_2.0 pthread_key_delete F
>  GLIBC_2.0 pthread_mutex_destroy F
>  GLIBC_2.0 pthread_mutex_init F
>  GLIBC_2.0 pthread_mutex_lock F
> @@ -2226,6 +2227,7 @@ GLIBC_2.34 __pthread_setspecific F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
> +GLIBC_2.34 pthread_key_delete F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> index 8ccbe19154..9d78d94466 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> @@ -41,7 +41,6 @@ GLIBC_2.0 pthread_cond_wait F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.0 pthread_detach F
>  GLIBC_2.0 pthread_join F
> -GLIBC_2.0 pthread_key_delete F
>  GLIBC_2.0 pthread_kill F
>  GLIBC_2.0 pthread_kill_other_threads_np F
>  GLIBC_2.0 pthread_mutex_destroy F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index 8a32fa3e95..44d0f68cb2 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -1324,6 +1324,7 @@ GLIBC_2.2 pthread_exit F
>  GLIBC_2.2 pthread_getschedparam F
>  GLIBC_2.2 pthread_getspecific F
>  GLIBC_2.2 pthread_key_create F
> +GLIBC_2.2 pthread_key_delete F
>  GLIBC_2.2 pthread_mutex_destroy F
>  GLIBC_2.2 pthread_mutex_init F
>  GLIBC_2.2 pthread_mutex_lock F
> @@ -2153,6 +2154,7 @@ GLIBC_2.34 __pthread_setspecific F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
> +GLIBC_2.34 pthread_key_delete F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> index 1669fb860d..ff37f3905e 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> @@ -84,7 +84,6 @@ GLIBC_2.2 pthread_detach F
>  GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_join F
> -GLIBC_2.2 pthread_key_delete F
>  GLIBC_2.2 pthread_kill F
>  GLIBC_2.2 pthread_kill_other_threads_np F
>  GLIBC_2.2 pthread_mutex_destroy F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index e05acdd11a..d96699a20d 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -1292,6 +1292,7 @@ GLIBC_2.2.5 pthread_getattr_np F
>  GLIBC_2.2.5 pthread_getschedparam F
>  GLIBC_2.2.5 pthread_getspecific F
>  GLIBC_2.2.5 pthread_key_create F
> +GLIBC_2.2.5 pthread_key_delete F
>  GLIBC_2.2.5 pthread_mutex_destroy F
>  GLIBC_2.2.5 pthread_mutex_init F
>  GLIBC_2.2.5 pthread_mutex_lock F
> @@ -2112,6 +2113,7 @@ GLIBC_2.34 __pthread_setspecific F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
> +GLIBC_2.34 pthread_key_delete F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> index f4d633ca96..511240921e 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> @@ -84,7 +84,6 @@ GLIBC_2.2.5 pthread_detach F
>  GLIBC_2.2.5 pthread_getconcurrency F
>  GLIBC_2.2.5 pthread_getcpuclockid F
>  GLIBC_2.2.5 pthread_join F
> -GLIBC_2.2.5 pthread_key_delete F
>  GLIBC_2.2.5 pthread_kill F
>  GLIBC_2.2.5 pthread_kill_other_threads_np F
>  GLIBC_2.2.5 pthread_mutex_destroy F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index 8800e570a4..33bbaff90c 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -1462,6 +1462,7 @@ GLIBC_2.16 pthread_getattr_np F
>  GLIBC_2.16 pthread_getschedparam F
>  GLIBC_2.16 pthread_getspecific F
>  GLIBC_2.16 pthread_key_create F
> +GLIBC_2.16 pthread_key_delete F
>  GLIBC_2.16 pthread_mutex_consistent F
>  GLIBC_2.16 pthread_mutex_consistent_np F
>  GLIBC_2.16 pthread_mutex_destroy F
> @@ -2210,6 +2211,7 @@ GLIBC_2.34 __pthread_setspecific F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
> +GLIBC_2.34 pthread_key_delete F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> index b687932187..a481ef56ab 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> @@ -85,7 +85,6 @@ GLIBC_2.16 pthread_getconcurrency F
>  GLIBC_2.16 pthread_getcpuclockid F
>  GLIBC_2.16 pthread_getname_np F
>  GLIBC_2.16 pthread_join F
> -GLIBC_2.16 pthread_key_delete F
>  GLIBC_2.16 pthread_kill F
>  GLIBC_2.16 pthread_kill_other_threads_np F
>  GLIBC_2.16 pthread_mutex_destroy F
>
diff mbox series

Patch

diff --git a/nptl/Makefile b/nptl/Makefile
index fa8bcf8c62..5d4276d9f9 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -80,6 +80,7 @@  routines = \
   pthread_getschedparam \
   pthread_getspecific \
   pthread_key_create \
+  pthread_key_delete \
   pthread_keys \
   pthread_mutex_consistent \
   pthread_once \
@@ -162,7 +163,6 @@  libpthread-routines = \
   pthread_getname \
   pthread_join \
   pthread_join_common \
-  pthread_key_delete \
   pthread_kill \
   pthread_kill_other_threads \
   pthread_mutex_cond_lock \
diff --git a/nptl/Versions b/nptl/Versions
index 58a37b8816..e93c27b083 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -33,6 +33,7 @@  libc {
     pthread_getschedparam;
     pthread_getspecific;
     pthread_key_create;
+    pthread_key_delete;
     pthread_mutex_destroy;
     pthread_mutex_init;
     pthread_mutex_lock;
@@ -98,6 +99,7 @@  libc {
     __pthread_setspecific;
     pthread_getspecific;
     pthread_key_create;
+    pthread_key_delete;
     pthread_mutex_consistent;
     pthread_once;
     pthread_setspecific;
@@ -134,6 +136,7 @@  libc {
     __pthread_exit;
     __pthread_force_elision;
     __pthread_getattr_default_np;
+    __pthread_key_delete;
     __pthread_keys;
     __pthread_setcancelstate;
     __pthread_unwind;
@@ -188,7 +191,6 @@  libpthread {
     pthread_create;
     pthread_detach;
     pthread_join;
-    pthread_key_delete;
     pthread_kill;
     pthread_kill_other_threads_np;
     pthread_mutex_destroy;
diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
index c9e845e4a2..515c58039b 100644
--- a/nptl/pthreadP.h
+++ b/nptl/pthreadP.h
@@ -517,6 +517,7 @@  extern int __pthread_condattr_destroy (pthread_condattr_t *attr);
 extern int __pthread_condattr_init (pthread_condattr_t *attr);
 extern int __pthread_key_create (pthread_key_t *key, void (*destr) (void *));
 extern int __pthread_key_delete (pthread_key_t key);
+libc_hidden_proto (__pthread_key_delete)
 extern void *__pthread_getspecific (pthread_key_t key);
 libc_hidden_proto (__pthread_getspecific)
 extern int __pthread_setspecific (pthread_key_t key, const void *value);
diff --git a/nptl/pthread_key_delete.c b/nptl/pthread_key_delete.c
index b9018306b1..081821cc02 100644
--- a/nptl/pthread_key_delete.c
+++ b/nptl/pthread_key_delete.c
@@ -19,10 +19,10 @@ 
 #include <errno.h>
 #include "pthreadP.h"
 #include <atomic.h>
-
+#include <shlib-compat.h>
 
 int
-__pthread_key_delete (pthread_key_t key)
+__pthread_key_delete_1 (pthread_key_t key)
 {
   int result = EINVAL;
 
@@ -39,4 +39,15 @@  __pthread_key_delete (pthread_key_t key)
 
   return result;
 }
-weak_alias (__pthread_key_delete, pthread_key_delete)
+versioned_symbol (libc, __pthread_key_delete_1, pthread_key_delete,
+		  GLIBC_2_34);
+libc_hidden_ver (__pthread_key_delete_1, __pthread_key_delete)
+
+strong_alias (__pthread_key_delete_1, __pthread_key_delete_2)
+versioned_symbol (libc, __pthread_key_delete_2, __pthread_key_delete,
+		  GLIBC_PRIVATE);
+
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_34)
+strong_alias (__pthread_key_delete_1, __pthread_key_delete_3)
+compat_symbol (libc, __pthread_key_delete_3, pthread_key_delete, GLIBC_2_0);
+#endif
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 2601be32bf..991efa0044 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -1454,6 +1454,7 @@  GLIBC_2.17 pthread_getattr_np F
 GLIBC_2.17 pthread_getschedparam F
 GLIBC_2.17 pthread_getspecific F
 GLIBC_2.17 pthread_key_create F
+GLIBC_2.17 pthread_key_delete F
 GLIBC_2.17 pthread_mutex_consistent F
 GLIBC_2.17 pthread_mutex_consistent_np F
 GLIBC_2.17 pthread_mutex_destroy F
@@ -2196,6 +2197,7 @@  GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
+GLIBC_2.34 pthread_key_delete F
 GLIBC_2.34 pthread_mutex_consistent F
 GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
index 778eb45ffc..50ab959905 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
@@ -85,7 +85,6 @@  GLIBC_2.17 pthread_getconcurrency F
 GLIBC_2.17 pthread_getcpuclockid F
 GLIBC_2.17 pthread_getname_np F
 GLIBC_2.17 pthread_join F
-GLIBC_2.17 pthread_key_delete F
 GLIBC_2.17 pthread_kill F
 GLIBC_2.17 pthread_kill_other_threads_np F
 GLIBC_2.17 pthread_mutex_destroy F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index d334d0759d..a1229e4a1a 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -893,6 +893,7 @@  GLIBC_2.0 pthread_exit F
 GLIBC_2.0 pthread_getschedparam F
 GLIBC_2.0 pthread_getspecific F
 GLIBC_2.0 pthread_key_create F
+GLIBC_2.0 pthread_key_delete F
 GLIBC_2.0 pthread_mutex_destroy F
 GLIBC_2.0 pthread_mutex_init F
 GLIBC_2.0 pthread_mutex_lock F
@@ -2277,6 +2278,7 @@  GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
+GLIBC_2.34 pthread_key_delete F
 GLIBC_2.34 pthread_mutex_consistent F
 GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
index 8ccbe19154..9d78d94466 100644
--- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
@@ -41,7 +41,6 @@  GLIBC_2.0 pthread_cond_wait F
 GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join F
-GLIBC_2.0 pthread_key_delete F
 GLIBC_2.0 pthread_kill F
 GLIBC_2.0 pthread_kill_other_threads_np F
 GLIBC_2.0 pthread_mutex_destroy F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 49034a2bdd..ceee863b25 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1381,6 +1381,7 @@  GLIBC_2.32 pthread_getattr_np F
 GLIBC_2.32 pthread_getschedparam F
 GLIBC_2.32 pthread_getspecific F
 GLIBC_2.32 pthread_key_create F
+GLIBC_2.32 pthread_key_delete F
 GLIBC_2.32 pthread_mutex_consistent F
 GLIBC_2.32 pthread_mutex_consistent_np F
 GLIBC_2.32 pthread_mutex_destroy F
@@ -1956,6 +1957,7 @@  GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
+GLIBC_2.34 pthread_key_delete F
 GLIBC_2.34 pthread_mutex_consistent F
 GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
index fba129cfad..6fed825b25 100644
--- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
@@ -99,7 +99,6 @@  GLIBC_2.32 pthread_getconcurrency F
 GLIBC_2.32 pthread_getcpuclockid F
 GLIBC_2.32 pthread_getname_np F
 GLIBC_2.32 pthread_join F
-GLIBC_2.32 pthread_key_delete F
 GLIBC_2.32 pthread_kill F
 GLIBC_2.32 pthread_kill_other_threads_np F
 GLIBC_2.32 pthread_mutex_clocklock F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 3727e33898..31e2de3cc2 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -165,6 +165,7 @@  GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
+GLIBC_2.34 pthread_key_delete F
 GLIBC_2.34 pthread_mutex_consistent F
 GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_setspecific F
@@ -1559,6 +1560,7 @@  GLIBC_2.4 pthread_getattr_np F
 GLIBC_2.4 pthread_getschedparam F
 GLIBC_2.4 pthread_getspecific F
 GLIBC_2.4 pthread_key_create F
+GLIBC_2.4 pthread_key_delete F
 GLIBC_2.4 pthread_mutex_consistent_np F
 GLIBC_2.4 pthread_mutex_destroy F
 GLIBC_2.4 pthread_mutex_init F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
index 2cb1f0e2f5..5d3859b245 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
@@ -118,7 +118,6 @@  GLIBC_2.4 pthread_detach F
 GLIBC_2.4 pthread_getconcurrency F
 GLIBC_2.4 pthread_getcpuclockid F
 GLIBC_2.4 pthread_join F
-GLIBC_2.4 pthread_key_delete F
 GLIBC_2.4 pthread_kill F
 GLIBC_2.4 pthread_kill_other_threads_np F
 GLIBC_2.4 pthread_mutex_destroy F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index a7bc3a9a8e..c6f9e3dbc3 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -162,6 +162,7 @@  GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
+GLIBC_2.34 pthread_key_delete F
 GLIBC_2.34 pthread_mutex_consistent F
 GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_setspecific F
@@ -1556,6 +1557,7 @@  GLIBC_2.4 pthread_getattr_np F
 GLIBC_2.4 pthread_getschedparam F
 GLIBC_2.4 pthread_getspecific F
 GLIBC_2.4 pthread_key_create F
+GLIBC_2.4 pthread_key_delete F
 GLIBC_2.4 pthread_mutex_consistent_np F
 GLIBC_2.4 pthread_mutex_destroy F
 GLIBC_2.4 pthread_mutex_init F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
index 2cb1f0e2f5..5d3859b245 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
@@ -118,7 +118,6 @@  GLIBC_2.4 pthread_detach F
 GLIBC_2.4 pthread_getconcurrency F
 GLIBC_2.4 pthread_getcpuclockid F
 GLIBC_2.4 pthread_join F
-GLIBC_2.4 pthread_key_delete F
 GLIBC_2.4 pthread_kill F
 GLIBC_2.4 pthread_kill_other_threads_np F
 GLIBC_2.4 pthread_mutex_destroy F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 61de7117bd..ec7f3bde74 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -1442,6 +1442,7 @@  GLIBC_2.29 pthread_getattr_np F
 GLIBC_2.29 pthread_getschedparam F
 GLIBC_2.29 pthread_getspecific F
 GLIBC_2.29 pthread_key_create F
+GLIBC_2.29 pthread_key_delete F
 GLIBC_2.29 pthread_mutex_consistent F
 GLIBC_2.29 pthread_mutex_consistent_np F
 GLIBC_2.29 pthread_mutex_destroy F
@@ -2140,6 +2141,7 @@  GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
+GLIBC_2.34 pthread_key_delete F
 GLIBC_2.34 pthread_mutex_consistent F
 GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
index 760740a4ed..cf7869867c 100644
--- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
@@ -97,7 +97,6 @@  GLIBC_2.29 pthread_getconcurrency F
 GLIBC_2.29 pthread_getcpuclockid F
 GLIBC_2.29 pthread_getname_np F
 GLIBC_2.29 pthread_join F
-GLIBC_2.29 pthread_key_delete F
 GLIBC_2.29 pthread_kill F
 GLIBC_2.29 pthread_kill_other_threads_np F
 GLIBC_2.29 pthread_mutex_destroy F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index c380a422ca..ebced5d8c3 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -1277,6 +1277,7 @@  GLIBC_2.2 pthread_exit F
 GLIBC_2.2 pthread_getschedparam F
 GLIBC_2.2 pthread_getspecific F
 GLIBC_2.2 pthread_key_create F
+GLIBC_2.2 pthread_key_delete F
 GLIBC_2.2 pthread_mutex_destroy F
 GLIBC_2.2 pthread_mutex_init F
 GLIBC_2.2 pthread_mutex_lock F
@@ -2098,6 +2099,7 @@  GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
+GLIBC_2.34 pthread_key_delete F
 GLIBC_2.34 pthread_mutex_consistent F
 GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
index c24d832b13..d0e8564302 100644
--- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
@@ -84,7 +84,6 @@  GLIBC_2.2 pthread_detach F
 GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join F
-GLIBC_2.2 pthread_key_delete F
 GLIBC_2.2 pthread_kill F
 GLIBC_2.2 pthread_kill_other_threads_np F
 GLIBC_2.2 pthread_mutex_destroy F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index dd10b08625..d15479dabd 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -870,6 +870,7 @@  GLIBC_2.0 pthread_exit F
 GLIBC_2.0 pthread_getschedparam F
 GLIBC_2.0 pthread_getspecific F
 GLIBC_2.0 pthread_key_create F
+GLIBC_2.0 pthread_key_delete F
 GLIBC_2.0 pthread_mutex_destroy F
 GLIBC_2.0 pthread_mutex_init F
 GLIBC_2.0 pthread_mutex_lock F
@@ -2265,6 +2266,7 @@  GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
+GLIBC_2.34 pthread_key_delete F
 GLIBC_2.34 pthread_mutex_consistent F
 GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
index 6b644a2513..99e53d0c49 100644
--- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
@@ -41,7 +41,6 @@  GLIBC_2.0 pthread_cond_wait F
 GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join F
-GLIBC_2.0 pthread_key_delete F
 GLIBC_2.0 pthread_kill F
 GLIBC_2.0 pthread_kill_other_threads_np F
 GLIBC_2.0 pthread_mutex_destroy F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index fe64b5c1f0..62c8c7d461 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -1298,6 +1298,7 @@  GLIBC_2.2 pthread_exit F
 GLIBC_2.2 pthread_getschedparam F
 GLIBC_2.2 pthread_getspecific F
 GLIBC_2.2 pthread_key_create F
+GLIBC_2.2 pthread_key_delete F
 GLIBC_2.2 pthread_mutex_destroy F
 GLIBC_2.2 pthread_mutex_init F
 GLIBC_2.2 pthread_mutex_lock F
@@ -2130,6 +2131,7 @@  GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
+GLIBC_2.34 pthread_key_delete F
 GLIBC_2.34 pthread_mutex_consistent F
 GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
index 1669fb860d..ff37f3905e 100644
--- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
@@ -84,7 +84,6 @@  GLIBC_2.2 pthread_detach F
 GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join F
-GLIBC_2.2 pthread_key_delete F
 GLIBC_2.2 pthread_kill F
 GLIBC_2.2 pthread_kill_other_threads_np F
 GLIBC_2.2 pthread_mutex_destroy F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 1af30ff1b3..83e8a6824f 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -166,6 +166,7 @@  GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
+GLIBC_2.34 pthread_key_delete F
 GLIBC_2.34 pthread_mutex_consistent F
 GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_setspecific F
@@ -1539,6 +1540,7 @@  GLIBC_2.4 pthread_getattr_np F
 GLIBC_2.4 pthread_getschedparam F
 GLIBC_2.4 pthread_getspecific F
 GLIBC_2.4 pthread_key_create F
+GLIBC_2.4 pthread_key_delete F
 GLIBC_2.4 pthread_mutex_consistent_np F
 GLIBC_2.4 pthread_mutex_destroy F
 GLIBC_2.4 pthread_mutex_init F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
index 2cb1f0e2f5..5d3859b245 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
@@ -118,7 +118,6 @@  GLIBC_2.4 pthread_detach F
 GLIBC_2.4 pthread_getconcurrency F
 GLIBC_2.4 pthread_getcpuclockid F
 GLIBC_2.4 pthread_join F
-GLIBC_2.4 pthread_key_delete F
 GLIBC_2.4 pthread_kill F
 GLIBC_2.4 pthread_kill_other_threads_np F
 GLIBC_2.4 pthread_mutex_destroy F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 372bb9db63..5a81c61de7 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -869,6 +869,7 @@  GLIBC_2.0 pthread_exit F
 GLIBC_2.0 pthread_getschedparam F
 GLIBC_2.0 pthread_getspecific F
 GLIBC_2.0 pthread_key_create F
+GLIBC_2.0 pthread_key_delete F
 GLIBC_2.0 pthread_mutex_destroy F
 GLIBC_2.0 pthread_mutex_init F
 GLIBC_2.0 pthread_mutex_lock F
@@ -2210,6 +2211,7 @@  GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
+GLIBC_2.34 pthread_key_delete F
 GLIBC_2.34 pthread_mutex_consistent F
 GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
index 6b644a2513..99e53d0c49 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
@@ -41,7 +41,6 @@  GLIBC_2.0 pthread_cond_wait F
 GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join F
-GLIBC_2.0 pthread_key_delete F
 GLIBC_2.0 pthread_kill F
 GLIBC_2.0 pthread_kill_other_threads_np F
 GLIBC_2.0 pthread_mutex_destroy F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 7b1b02ff24..39c806db53 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -1457,6 +1457,7 @@  GLIBC_2.18 pthread_getattr_np F
 GLIBC_2.18 pthread_getschedparam F
 GLIBC_2.18 pthread_getspecific F
 GLIBC_2.18 pthread_key_create F
+GLIBC_2.18 pthread_key_delete F
 GLIBC_2.18 pthread_mutex_consistent F
 GLIBC_2.18 pthread_mutex_consistent_np F
 GLIBC_2.18 pthread_mutex_destroy F
@@ -2191,6 +2192,7 @@  GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
+GLIBC_2.34 pthread_key_delete F
 GLIBC_2.34 pthread_mutex_consistent F
 GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
index 64e0587af6..8b3785414d 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
@@ -86,7 +86,6 @@  GLIBC_2.18 pthread_getconcurrency F
 GLIBC_2.18 pthread_getcpuclockid F
 GLIBC_2.18 pthread_getname_np F
 GLIBC_2.18 pthread_join F
-GLIBC_2.18 pthread_key_delete F
 GLIBC_2.18 pthread_kill F
 GLIBC_2.18 pthread_kill_other_threads_np F
 GLIBC_2.18 pthread_mutex_destroy F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 07ec814a0d..ce2823207c 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -1457,6 +1457,7 @@  GLIBC_2.18 pthread_getattr_np F
 GLIBC_2.18 pthread_getschedparam F
 GLIBC_2.18 pthread_getspecific F
 GLIBC_2.18 pthread_key_create F
+GLIBC_2.18 pthread_key_delete F
 GLIBC_2.18 pthread_mutex_consistent F
 GLIBC_2.18 pthread_mutex_consistent_np F
 GLIBC_2.18 pthread_mutex_destroy F
@@ -2188,6 +2189,7 @@  GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
+GLIBC_2.34 pthread_key_delete F
 GLIBC_2.34 pthread_mutex_consistent F
 GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
index 64e0587af6..8b3785414d 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
@@ -86,7 +86,6 @@  GLIBC_2.18 pthread_getconcurrency F
 GLIBC_2.18 pthread_getcpuclockid F
 GLIBC_2.18 pthread_getname_np F
 GLIBC_2.18 pthread_join F
-GLIBC_2.18 pthread_key_delete F
 GLIBC_2.18 pthread_kill F
 GLIBC_2.18 pthread_kill_other_threads_np F
 GLIBC_2.18 pthread_mutex_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 51253a4216..5e8abfa6ae 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -866,6 +866,7 @@  GLIBC_2.0 pthread_exit F
 GLIBC_2.0 pthread_getschedparam F
 GLIBC_2.0 pthread_getspecific F
 GLIBC_2.0 pthread_key_create F
+GLIBC_2.0 pthread_key_delete F
 GLIBC_2.0 pthread_mutex_destroy F
 GLIBC_2.0 pthread_mutex_init F
 GLIBC_2.0 pthread_mutex_lock F
@@ -2181,6 +2182,7 @@  GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
+GLIBC_2.34 pthread_key_delete F
 GLIBC_2.34 pthread_mutex_consistent F
 GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
index 1118a25c82..cd0d6d7419 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
@@ -41,7 +41,6 @@  GLIBC_2.0 pthread_cond_wait F
 GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join F
-GLIBC_2.0 pthread_key_delete F
 GLIBC_2.0 pthread_kill F
 GLIBC_2.0 pthread_kill_other_threads_np F
 GLIBC_2.0 pthread_mutex_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 2574b7627e..93002ae842 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -866,6 +866,7 @@  GLIBC_2.0 pthread_exit F
 GLIBC_2.0 pthread_getschedparam F
 GLIBC_2.0 pthread_getspecific F
 GLIBC_2.0 pthread_key_create F
+GLIBC_2.0 pthread_key_delete F
 GLIBC_2.0 pthread_mutex_destroy F
 GLIBC_2.0 pthread_mutex_init F
 GLIBC_2.0 pthread_mutex_lock F
@@ -2179,6 +2180,7 @@  GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
+GLIBC_2.34 pthread_key_delete F
 GLIBC_2.34 pthread_mutex_consistent F
 GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
index 1118a25c82..cd0d6d7419 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
@@ -41,7 +41,6 @@  GLIBC_2.0 pthread_cond_wait F
 GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join F
-GLIBC_2.0 pthread_key_delete F
 GLIBC_2.0 pthread_kill F
 GLIBC_2.0 pthread_kill_other_threads_np F
 GLIBC_2.0 pthread_mutex_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 0580b260e2..245a840e12 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -866,6 +866,7 @@  GLIBC_2.0 pthread_exit F
 GLIBC_2.0 pthread_getschedparam F
 GLIBC_2.0 pthread_getspecific F
 GLIBC_2.0 pthread_key_create F
+GLIBC_2.0 pthread_key_delete F
 GLIBC_2.0 pthread_mutex_destroy F
 GLIBC_2.0 pthread_mutex_init F
 GLIBC_2.0 pthread_mutex_lock F
@@ -2187,6 +2188,7 @@  GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
+GLIBC_2.34 pthread_key_delete F
 GLIBC_2.34 pthread_mutex_consistent F
 GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 40fe64ea6b..24b2dddb51 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -864,6 +864,7 @@  GLIBC_2.0 pthread_exit F
 GLIBC_2.0 pthread_getschedparam F
 GLIBC_2.0 pthread_getspecific F
 GLIBC_2.0 pthread_key_create F
+GLIBC_2.0 pthread_key_delete F
 GLIBC_2.0 pthread_mutex_destroy F
 GLIBC_2.0 pthread_mutex_init F
 GLIBC_2.0 pthread_mutex_lock F
@@ -2181,6 +2182,7 @@  GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
+GLIBC_2.34 pthread_key_delete F
 GLIBC_2.34 pthread_mutex_consistent F
 GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index b9400803eb..7d4b4dd278 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -1499,6 +1499,7 @@  GLIBC_2.21 pthread_getattr_np F
 GLIBC_2.21 pthread_getschedparam F
 GLIBC_2.21 pthread_getspecific F
 GLIBC_2.21 pthread_key_create F
+GLIBC_2.21 pthread_key_delete F
 GLIBC_2.21 pthread_mutex_consistent F
 GLIBC_2.21 pthread_mutex_consistent_np F
 GLIBC_2.21 pthread_mutex_destroy F
@@ -2229,6 +2230,7 @@  GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
+GLIBC_2.34 pthread_key_delete F
 GLIBC_2.34 pthread_mutex_consistent F
 GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
index 96d1cd0f49..0250c9756d 100644
--- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
@@ -86,7 +86,6 @@  GLIBC_2.21 pthread_getconcurrency F
 GLIBC_2.21 pthread_getcpuclockid F
 GLIBC_2.21 pthread_getname_np F
 GLIBC_2.21 pthread_join F
-GLIBC_2.21 pthread_key_delete F
 GLIBC_2.21 pthread_kill F
 GLIBC_2.21 pthread_kill_other_threads_np F
 GLIBC_2.21 pthread_mutex_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 9f27e4aa50..65ea41b2db 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -877,6 +877,7 @@  GLIBC_2.0 pthread_exit F
 GLIBC_2.0 pthread_getschedparam F
 GLIBC_2.0 pthread_getspecific F
 GLIBC_2.0 pthread_key_create F
+GLIBC_2.0 pthread_key_delete F
 GLIBC_2.0 pthread_mutex_destroy F
 GLIBC_2.0 pthread_mutex_init F
 GLIBC_2.0 pthread_mutex_lock F
@@ -2237,6 +2238,7 @@  GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
+GLIBC_2.34 pthread_key_delete F
 GLIBC_2.34 pthread_mutex_consistent F
 GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
index a8111f4b92..e0eb362a7a 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
@@ -41,7 +41,6 @@  GLIBC_2.0 pthread_cond_wait F
 GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join F
-GLIBC_2.0 pthread_key_delete F
 GLIBC_2.0 pthread_kill F
 GLIBC_2.0 pthread_kill_other_threads_np F
 GLIBC_2.0 pthread_mutex_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 9c91e65fc1..9d413de126 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -877,6 +877,7 @@  GLIBC_2.0 pthread_exit F
 GLIBC_2.0 pthread_getschedparam F
 GLIBC_2.0 pthread_getspecific F
 GLIBC_2.0 pthread_key_create F
+GLIBC_2.0 pthread_key_delete F
 GLIBC_2.0 pthread_mutex_destroy F
 GLIBC_2.0 pthread_mutex_init F
 GLIBC_2.0 pthread_mutex_lock F
@@ -2270,6 +2271,7 @@  GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
+GLIBC_2.34 pthread_key_delete F
 GLIBC_2.34 pthread_mutex_consistent F
 GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 0ef070e285..16c24bfc69 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -1384,6 +1384,7 @@  GLIBC_2.3 pthread_getattr_np F
 GLIBC_2.3 pthread_getschedparam F
 GLIBC_2.3 pthread_getspecific F
 GLIBC_2.3 pthread_key_create F
+GLIBC_2.3 pthread_key_delete F
 GLIBC_2.3 pthread_mutex_destroy F
 GLIBC_2.3 pthread_mutex_init F
 GLIBC_2.3 pthread_mutex_lock F
@@ -2100,6 +2101,7 @@  GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
+GLIBC_2.34 pthread_key_delete F
 GLIBC_2.34 pthread_mutex_consistent F
 GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
index a0f5dffd25..1099d88afe 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
@@ -104,7 +104,6 @@  GLIBC_2.3 pthread_detach F
 GLIBC_2.3 pthread_getconcurrency F
 GLIBC_2.3 pthread_getcpuclockid F
 GLIBC_2.3 pthread_join F
-GLIBC_2.3 pthread_key_delete F
 GLIBC_2.3 pthread_kill F
 GLIBC_2.3 pthread_kill_other_threads_np F
 GLIBC_2.3 pthread_mutex_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 4a6de68ece..d97c594edd 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -1543,6 +1543,7 @@  GLIBC_2.17 pthread_getattr_np F
 GLIBC_2.17 pthread_getschedparam F
 GLIBC_2.17 pthread_getspecific F
 GLIBC_2.17 pthread_key_create F
+GLIBC_2.17 pthread_key_delete F
 GLIBC_2.17 pthread_mutex_consistent F
 GLIBC_2.17 pthread_mutex_consistent_np F
 GLIBC_2.17 pthread_mutex_destroy F
@@ -2391,6 +2392,7 @@  GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
+GLIBC_2.34 pthread_key_delete F
 GLIBC_2.34 pthread_mutex_consistent F
 GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
index 778eb45ffc..50ab959905 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
@@ -85,7 +85,6 @@  GLIBC_2.17 pthread_getconcurrency F
 GLIBC_2.17 pthread_getcpuclockid F
 GLIBC_2.17 pthread_getname_np F
 GLIBC_2.17 pthread_join F
-GLIBC_2.17 pthread_key_delete F
 GLIBC_2.17 pthread_kill F
 GLIBC_2.17 pthread_kill_other_threads_np F
 GLIBC_2.17 pthread_mutex_destroy F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 62f9d06cc6..44b0121343 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1383,6 +1383,7 @@  GLIBC_2.33 pthread_getattr_np F
 GLIBC_2.33 pthread_getschedparam F
 GLIBC_2.33 pthread_getspecific F
 GLIBC_2.33 pthread_key_create F
+GLIBC_2.33 pthread_key_delete F
 GLIBC_2.33 pthread_mutex_consistent F
 GLIBC_2.33 pthread_mutex_consistent_np F
 GLIBC_2.33 pthread_mutex_destroy F
@@ -1958,6 +1959,7 @@  GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
+GLIBC_2.34 pthread_key_delete F
 GLIBC_2.34 pthread_mutex_consistent F
 GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
index dc38dee1ae..6c6fdd0cbf 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
@@ -99,7 +99,6 @@  GLIBC_2.33 pthread_getconcurrency F
 GLIBC_2.33 pthread_getcpuclockid F
 GLIBC_2.33 pthread_getname_np F
 GLIBC_2.33 pthread_join F
-GLIBC_2.33 pthread_key_delete F
 GLIBC_2.33 pthread_kill F
 GLIBC_2.33 pthread_kill_other_threads_np F
 GLIBC_2.33 pthread_mutex_clocklock F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 63976e8487..22a34442f0 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -1445,6 +1445,7 @@  GLIBC_2.27 pthread_getattr_np F
 GLIBC_2.27 pthread_getschedparam F
 GLIBC_2.27 pthread_getspecific F
 GLIBC_2.27 pthread_key_create F
+GLIBC_2.27 pthread_key_delete F
 GLIBC_2.27 pthread_mutex_consistent F
 GLIBC_2.27 pthread_mutex_consistent_np F
 GLIBC_2.27 pthread_mutex_destroy F
@@ -2158,6 +2159,7 @@  GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
+GLIBC_2.34 pthread_key_delete F
 GLIBC_2.34 pthread_mutex_consistent F
 GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
index a78a847c1a..359545faee 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
@@ -86,7 +86,6 @@  GLIBC_2.27 pthread_getconcurrency F
 GLIBC_2.27 pthread_getcpuclockid F
 GLIBC_2.27 pthread_getname_np F
 GLIBC_2.27 pthread_join F
-GLIBC_2.27 pthread_key_delete F
 GLIBC_2.27 pthread_kill F
 GLIBC_2.27 pthread_kill_other_threads_np F
 GLIBC_2.27 pthread_mutex_destroy F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 8b159936e4..21f49b1fa0 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -868,6 +868,7 @@  GLIBC_2.0 pthread_exit F
 GLIBC_2.0 pthread_getschedparam F
 GLIBC_2.0 pthread_getspecific F
 GLIBC_2.0 pthread_key_create F
+GLIBC_2.0 pthread_key_delete F
 GLIBC_2.0 pthread_mutex_destroy F
 GLIBC_2.0 pthread_mutex_init F
 GLIBC_2.0 pthread_mutex_lock F
@@ -2235,6 +2236,7 @@  GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
+GLIBC_2.34 pthread_key_delete F
 GLIBC_2.34 pthread_mutex_consistent F
 GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
index 5f9f4da233..5eb6187d98 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
@@ -41,7 +41,6 @@  GLIBC_2.0 pthread_cond_wait F
 GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join F
-GLIBC_2.0 pthread_key_delete F
 GLIBC_2.0 pthread_kill F
 GLIBC_2.0 pthread_kill_other_threads_np F
 GLIBC_2.0 pthread_mutex_destroy F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 5bbf8fdbb4..114591d6f5 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -1295,6 +1295,7 @@  GLIBC_2.2 pthread_exit F
 GLIBC_2.2 pthread_getschedparam F
 GLIBC_2.2 pthread_getspecific F
 GLIBC_2.2 pthread_key_create F
+GLIBC_2.2 pthread_key_delete F
 GLIBC_2.2 pthread_mutex_destroy F
 GLIBC_2.2 pthread_mutex_init F
 GLIBC_2.2 pthread_mutex_lock F
@@ -2136,6 +2137,7 @@  GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
+GLIBC_2.34 pthread_key_delete F
 GLIBC_2.34 pthread_mutex_consistent F
 GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
index ec27acf8c2..8f60a6b633 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
@@ -85,7 +85,6 @@  GLIBC_2.2 pthread_detach F
 GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join F
-GLIBC_2.2 pthread_key_delete F
 GLIBC_2.2 pthread_kill F
 GLIBC_2.2 pthread_kill_other_threads_np F
 GLIBC_2.2 pthread_mutex_destroy F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 10ea3c59b9..ad487f0c9f 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -1281,6 +1281,7 @@  GLIBC_2.2 pthread_exit F
 GLIBC_2.2 pthread_getschedparam F
 GLIBC_2.2 pthread_getspecific F
 GLIBC_2.2 pthread_key_create F
+GLIBC_2.2 pthread_key_delete F
 GLIBC_2.2 pthread_mutex_destroy F
 GLIBC_2.2 pthread_mutex_init F
 GLIBC_2.2 pthread_mutex_lock F
@@ -2105,6 +2106,7 @@  GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
+GLIBC_2.34 pthread_key_delete F
 GLIBC_2.34 pthread_mutex_consistent F
 GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
index c24d832b13..d0e8564302 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
@@ -84,7 +84,6 @@  GLIBC_2.2 pthread_detach F
 GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join F
-GLIBC_2.2 pthread_key_delete F
 GLIBC_2.2 pthread_kill F
 GLIBC_2.2 pthread_kill_other_threads_np F
 GLIBC_2.2 pthread_mutex_destroy F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 12d492b088..7f6886ff02 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -1281,6 +1281,7 @@  GLIBC_2.2 pthread_exit F
 GLIBC_2.2 pthread_getschedparam F
 GLIBC_2.2 pthread_getspecific F
 GLIBC_2.2 pthread_key_create F
+GLIBC_2.2 pthread_key_delete F
 GLIBC_2.2 pthread_mutex_destroy F
 GLIBC_2.2 pthread_mutex_init F
 GLIBC_2.2 pthread_mutex_lock F
@@ -2102,6 +2103,7 @@  GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
+GLIBC_2.34 pthread_key_delete F
 GLIBC_2.34 pthread_mutex_consistent F
 GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
index c24d832b13..d0e8564302 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
@@ -84,7 +84,6 @@  GLIBC_2.2 pthread_detach F
 GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join F
-GLIBC_2.2 pthread_key_delete F
 GLIBC_2.2 pthread_kill F
 GLIBC_2.2 pthread_kill_other_threads_np F
 GLIBC_2.2 pthread_mutex_destroy F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 3bb06d6ce0..4ae6d45923 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -871,6 +871,7 @@  GLIBC_2.0 pthread_exit F
 GLIBC_2.0 pthread_getschedparam F
 GLIBC_2.0 pthread_getspecific F
 GLIBC_2.0 pthread_key_create F
+GLIBC_2.0 pthread_key_delete F
 GLIBC_2.0 pthread_mutex_destroy F
 GLIBC_2.0 pthread_mutex_init F
 GLIBC_2.0 pthread_mutex_lock F
@@ -2226,6 +2227,7 @@  GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
+GLIBC_2.34 pthread_key_delete F
 GLIBC_2.34 pthread_mutex_consistent F
 GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
index 8ccbe19154..9d78d94466 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
@@ -41,7 +41,6 @@  GLIBC_2.0 pthread_cond_wait F
 GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join F
-GLIBC_2.0 pthread_key_delete F
 GLIBC_2.0 pthread_kill F
 GLIBC_2.0 pthread_kill_other_threads_np F
 GLIBC_2.0 pthread_mutex_destroy F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 8a32fa3e95..44d0f68cb2 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -1324,6 +1324,7 @@  GLIBC_2.2 pthread_exit F
 GLIBC_2.2 pthread_getschedparam F
 GLIBC_2.2 pthread_getspecific F
 GLIBC_2.2 pthread_key_create F
+GLIBC_2.2 pthread_key_delete F
 GLIBC_2.2 pthread_mutex_destroy F
 GLIBC_2.2 pthread_mutex_init F
 GLIBC_2.2 pthread_mutex_lock F
@@ -2153,6 +2154,7 @@  GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
+GLIBC_2.34 pthread_key_delete F
 GLIBC_2.34 pthread_mutex_consistent F
 GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
index 1669fb860d..ff37f3905e 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
@@ -84,7 +84,6 @@  GLIBC_2.2 pthread_detach F
 GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join F
-GLIBC_2.2 pthread_key_delete F
 GLIBC_2.2 pthread_kill F
 GLIBC_2.2 pthread_kill_other_threads_np F
 GLIBC_2.2 pthread_mutex_destroy F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index e05acdd11a..d96699a20d 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -1292,6 +1292,7 @@  GLIBC_2.2.5 pthread_getattr_np F
 GLIBC_2.2.5 pthread_getschedparam F
 GLIBC_2.2.5 pthread_getspecific F
 GLIBC_2.2.5 pthread_key_create F
+GLIBC_2.2.5 pthread_key_delete F
 GLIBC_2.2.5 pthread_mutex_destroy F
 GLIBC_2.2.5 pthread_mutex_init F
 GLIBC_2.2.5 pthread_mutex_lock F
@@ -2112,6 +2113,7 @@  GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
+GLIBC_2.34 pthread_key_delete F
 GLIBC_2.34 pthread_mutex_consistent F
 GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
index f4d633ca96..511240921e 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
@@ -84,7 +84,6 @@  GLIBC_2.2.5 pthread_detach F
 GLIBC_2.2.5 pthread_getconcurrency F
 GLIBC_2.2.5 pthread_getcpuclockid F
 GLIBC_2.2.5 pthread_join F
-GLIBC_2.2.5 pthread_key_delete F
 GLIBC_2.2.5 pthread_kill F
 GLIBC_2.2.5 pthread_kill_other_threads_np F
 GLIBC_2.2.5 pthread_mutex_destroy F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 8800e570a4..33bbaff90c 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -1462,6 +1462,7 @@  GLIBC_2.16 pthread_getattr_np F
 GLIBC_2.16 pthread_getschedparam F
 GLIBC_2.16 pthread_getspecific F
 GLIBC_2.16 pthread_key_create F
+GLIBC_2.16 pthread_key_delete F
 GLIBC_2.16 pthread_mutex_consistent F
 GLIBC_2.16 pthread_mutex_consistent_np F
 GLIBC_2.16 pthread_mutex_destroy F
@@ -2210,6 +2211,7 @@  GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
+GLIBC_2.34 pthread_key_delete F
 GLIBC_2.34 pthread_mutex_consistent F
 GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
index b687932187..a481ef56ab 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
@@ -85,7 +85,6 @@  GLIBC_2.16 pthread_getconcurrency F
 GLIBC_2.16 pthread_getcpuclockid F
 GLIBC_2.16 pthread_getname_np F
 GLIBC_2.16 pthread_join F
-GLIBC_2.16 pthread_key_delete F
 GLIBC_2.16 pthread_kill F
 GLIBC_2.16 pthread_kill_other_threads_np F
 GLIBC_2.16 pthread_mutex_destroy F