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
