public inbox for glibc-cvs@sourceware.org
help / color / mirror / Atom feed
* [glibc/fw/libpthread-20210318b] nptl: Move pthread_getspecific, __pthread_getspecific into libc
@ 2021-03-18 22:08 Florian Weimer
  0 siblings, 0 replies; only message in thread
From: Florian Weimer @ 2021-03-18 22:08 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a1fd7d4e00f71be952d8fd2792df02cfb67131ef

commit a1fd7d4e00f71be952d8fd2792df02cfb67131ef
Author: Florian Weimer <fweimer@redhat.com>
Date:   Tue Mar 16 18:05:39 2021 +0100

    nptl: Move pthread_getspecific, __pthread_getspecific into libc
    
    The symbols have been moved using scripts/move-symbol-to-libc.py.

Diff:
---
 nptl/Makefile                                      |  2 +-
 nptl/Versions                                      |  6 ++++--
 nptl/nptl-init.c                                   |  1 -
 nptl/pthreadP.h                                    |  2 +-
 nptl/pthread_getspecific.c                         | 22 ++++++++++++++++++----
 sysdeps/nptl/libc-lockP.h                          |  2 --
 sysdeps/nptl/pthread-functions.h                   |  1 -
 sysdeps/unix/sysv/linux/aarch64/libc.abilist       |  4 ++++
 sysdeps/unix/sysv/linux/aarch64/libpthread.abilist |  2 --
 sysdeps/unix/sysv/linux/alpha/libc.abilist         |  4 ++++
 sysdeps/unix/sysv/linux/alpha/libpthread.abilist   |  2 --
 sysdeps/unix/sysv/linux/arc/libc.abilist           |  4 ++++
 sysdeps/unix/sysv/linux/arc/libpthread.abilist     |  2 --
 sysdeps/unix/sysv/linux/arm/be/libc.abilist        |  4 ++++
 sysdeps/unix/sysv/linux/arm/be/libpthread.abilist  |  2 --
 sysdeps/unix/sysv/linux/arm/le/libc.abilist        |  4 ++++
 sysdeps/unix/sysv/linux/arm/le/libpthread.abilist  |  2 --
 sysdeps/unix/sysv/linux/csky/libc.abilist          |  4 ++++
 sysdeps/unix/sysv/linux/csky/libpthread.abilist    |  2 --
 sysdeps/unix/sysv/linux/hppa/libc.abilist          |  4 ++++
 sysdeps/unix/sysv/linux/hppa/libpthread.abilist    |  2 --
 sysdeps/unix/sysv/linux/i386/libc.abilist          |  4 ++++
 sysdeps/unix/sysv/linux/i386/libpthread.abilist    |  2 --
 sysdeps/unix/sysv/linux/ia64/libc.abilist          |  4 ++++
 sysdeps/unix/sysv/linux/ia64/libpthread.abilist    |  2 --
 sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist |  4 ++++
 .../sysv/linux/m68k/coldfire/libpthread.abilist    |  2 --
 sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist   |  4 ++++
 .../unix/sysv/linux/m68k/m680x0/libpthread.abilist |  2 --
 sysdeps/unix/sysv/linux/microblaze/be/libc.abilist |  4 ++++
 .../sysv/linux/microblaze/be/libpthread.abilist    |  2 --
 sysdeps/unix/sysv/linux/microblaze/le/libc.abilist |  4 ++++
 .../sysv/linux/microblaze/le/libpthread.abilist    |  2 --
 .../unix/sysv/linux/mips/mips32/fpu/libc.abilist   |  4 ++++
 .../unix/sysv/linux/mips/mips32/libpthread.abilist |  2 --
 .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist |  4 ++++
 .../unix/sysv/linux/mips/mips64/libpthread.abilist |  2 --
 .../unix/sysv/linux/mips/mips64/n32/libc.abilist   |  4 ++++
 .../unix/sysv/linux/mips/mips64/n64/libc.abilist   |  4 ++++
 sysdeps/unix/sysv/linux/nios2/libc.abilist         |  4 ++++
 sysdeps/unix/sysv/linux/nios2/libpthread.abilist   |  2 --
 .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist  |  4 ++++
 .../linux/powerpc/powerpc32/libpthread.abilist     |  2 --
 .../linux/powerpc/powerpc32/nofpu/libc.abilist     |  4 ++++
 .../sysv/linux/powerpc/powerpc64/be/libc.abilist   |  4 ++++
 .../linux/powerpc/powerpc64/be/libpthread.abilist  |  2 --
 .../sysv/linux/powerpc/powerpc64/le/libc.abilist   |  4 ++++
 .../linux/powerpc/powerpc64/le/libpthread.abilist  |  2 --
 sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist    |  4 ++++
 .../unix/sysv/linux/riscv/rv32/libpthread.abilist  |  2 --
 sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist    |  4 ++++
 .../unix/sysv/linux/riscv/rv64/libpthread.abilist  |  2 --
 sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist  |  4 ++++
 .../sysv/linux/s390/s390-32/libpthread.abilist     |  2 --
 sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist  |  4 ++++
 .../sysv/linux/s390/s390-64/libpthread.abilist     |  2 --
 sysdeps/unix/sysv/linux/sh/be/libc.abilist         |  4 ++++
 sysdeps/unix/sysv/linux/sh/be/libpthread.abilist   |  2 --
 sysdeps/unix/sysv/linux/sh/le/libc.abilist         |  4 ++++
 sysdeps/unix/sysv/linux/sh/le/libpthread.abilist   |  2 --
 sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist |  4 ++++
 .../sysv/linux/sparc/sparc32/libpthread.abilist    |  2 --
 sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist |  4 ++++
 .../sysv/linux/sparc/sparc64/libpthread.abilist    |  2 --
 sysdeps/unix/sysv/linux/x86_64/64/libc.abilist     |  4 ++++
 .../unix/sysv/linux/x86_64/64/libpthread.abilist   |  2 --
 sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist    |  4 ++++
 .../unix/sysv/linux/x86_64/x32/libpthread.abilist  |  2 --
 68 files changed, 152 insertions(+), 70 deletions(-)

diff --git a/nptl/Makefile b/nptl/Makefile
index 59f7fd256f..d4ab2e7e4d 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -78,6 +78,7 @@ routines = \
   pthread_getaffinity \
   pthread_getattr_np \
   pthread_getschedparam \
+  pthread_getspecific \
   pthread_key_create \
   pthread_keys \
   pthread_mutex_consistent \
@@ -154,7 +155,6 @@ libpthread-routines = \
   pthread_getconcurrency \
   pthread_getcpuclockid \
   pthread_getname \
-  pthread_getspecific \
   pthread_join \
   pthread_join_common \
   pthread_key_delete \
diff --git a/nptl/Versions b/nptl/Versions
index 7cfca1706c..8b100b95ce 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -1,5 +1,6 @@
 libc {
   GLIBC_2.0 {
+    __pthread_getspecific;
     __pthread_key_create;
     __pthread_once;
     _pthread_cleanup_pop;
@@ -29,6 +30,7 @@ libc {
     pthread_equal;
     pthread_exit;
     pthread_getschedparam;
+    pthread_getspecific;
     pthread_key_create;
     pthread_mutex_destroy;
     pthread_mutex_init;
@@ -88,8 +90,10 @@ libc {
   }
   GLIBC_2.34 {
     __pthread_cleanup_routine;
+    __pthread_getspecific;
     __pthread_key_create;
     __pthread_once;
+    pthread_getspecific;
     pthread_key_create;
     pthread_mutex_consistent;
     pthread_once;
@@ -143,7 +147,6 @@ libpthread {
     __lseek;
     __open;
     __pthread_atfork;
-    __pthread_getspecific;
     __pthread_mutex_destroy;
     __pthread_mutex_init;
     __pthread_mutex_lock;
@@ -169,7 +172,6 @@ libpthread {
     pthread_cond_wait;
     pthread_create;
     pthread_detach;
-    pthread_getspecific;
     pthread_join;
     pthread_key_delete;
     pthread_kill;
diff --git a/nptl/nptl-init.c b/nptl/nptl-init.c
index b1a8b1a95b..5be58fc966 100644
--- a/nptl/nptl-init.c
+++ b/nptl/nptl-init.c
@@ -70,7 +70,6 @@ static const struct pthread_functions pthread_functions =
     .ptr___pthread_rwlock_rdlock = __pthread_rwlock_rdlock,
     .ptr___pthread_rwlock_wrlock = __pthread_rwlock_wrlock,
     .ptr___pthread_rwlock_unlock = __pthread_rwlock_unlock,
-    .ptr___pthread_getspecific = __pthread_getspecific,
     .ptr___pthread_setspecific = __pthread_setspecific,
     .ptr__nptl_setxid = __nptl_setxid,
   };
diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
index 38aeed1dfc..1d69a0f617 100644
--- a/nptl/pthreadP.h
+++ b/nptl/pthreadP.h
@@ -518,6 +518,7 @@ 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);
 extern void *__pthread_getspecific (pthread_key_t key);
+libc_hidden_proto (__pthread_getspecific)
 extern int __pthread_setspecific (pthread_key_t key, const void *value);
 extern int __pthread_once (pthread_once_t *once_control,
 			   void (*init_routine) (void));
@@ -553,7 +554,6 @@ hidden_proto (__pthread_mutex_unlock)
 hidden_proto (__pthread_rwlock_rdlock)
 hidden_proto (__pthread_rwlock_wrlock)
 hidden_proto (__pthread_rwlock_unlock)
-hidden_proto (__pthread_getspecific)
 hidden_proto (__pthread_setspecific)
 hidden_proto (__pthread_testcancel)
 hidden_proto (__pthread_mutexattr_init)
diff --git a/nptl/pthread_getspecific.c b/nptl/pthread_getspecific.c
index d38847e1c2..320ff2aa35 100644
--- a/nptl/pthread_getspecific.c
+++ b/nptl/pthread_getspecific.c
@@ -18,10 +18,10 @@
 
 #include <stdlib.h>
 #include "pthreadP.h"
-
+#include <shlib-compat.h>
 
 void *
-__pthread_getspecific (pthread_key_t key)
+__pthread_getspecific_1 (pthread_key_t key)
 {
   struct pthread_key_data *data;
 
@@ -63,5 +63,19 @@ __pthread_getspecific (pthread_key_t key)
 
   return result;
 }
-weak_alias (__pthread_getspecific, pthread_getspecific)
-hidden_def (__pthread_getspecific)
+versioned_symbol (libc, __pthread_getspecific_1, __pthread_getspecific,
+		  GLIBC_2_34);
+libc_hidden_ver (__pthread_getspecific_1, __pthread_getspecific)
+
+/* Several aliases for setting different symbol versions.  */
+strong_alias (__pthread_getspecific_1, __pthread_getspecific_2)
+strong_alias (__pthread_getspecific_1, __pthread_getspecific_3)
+strong_alias (__pthread_getspecific_1, __pthread_getspecific_4)
+
+versioned_symbol (libc, __pthread_getspecific_2, pthread_getspecific,
+		  GLIBC_2_34);
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_34)
+compat_symbol (libc, __pthread_getspecific_3,
+	       __pthread_getspecific, GLIBC_2_0);
+compat_symbol (libc, __pthread_getspecific_4, pthread_getspecific, GLIBC_2_0);
+#endif
diff --git a/sysdeps/nptl/libc-lockP.h b/sysdeps/nptl/libc-lockP.h
index 64c7a99bbf..bf92a035f8 100644
--- a/sysdeps/nptl/libc-lockP.h
+++ b/sysdeps/nptl/libc-lockP.h
@@ -339,7 +339,6 @@ weak_extern (__pthread_rwlock_wrlock)
 weak_extern (__pthread_rwlock_trywrlock)
 weak_extern (__pthread_rwlock_unlock)
 weak_extern (__pthread_setspecific)
-weak_extern (__pthread_getspecific)
 weak_extern (__pthread_initialize)
 weak_extern (__pthread_atfork)
 # else
@@ -358,7 +357,6 @@ weak_extern (__pthread_atfork)
 #  pragma weak __pthread_rwlock_trywrlock
 #  pragma weak __pthread_rwlock_unlock
 #  pragma weak __pthread_setspecific
-#  pragma weak __pthread_getspecific
 #  pragma weak __pthread_initialize
 #  pragma weak __pthread_atfork
 # endif
diff --git a/sysdeps/nptl/pthread-functions.h b/sysdeps/nptl/pthread-functions.h
index 69ba1d8278..4b4816b873 100644
--- a/sysdeps/nptl/pthread-functions.h
+++ b/sysdeps/nptl/pthread-functions.h
@@ -49,7 +49,6 @@ struct pthread_functions
   int (*ptr___pthread_rwlock_rdlock) (pthread_rwlock_t *);
   int (*ptr___pthread_rwlock_wrlock) (pthread_rwlock_t *);
   int (*ptr___pthread_rwlock_unlock) (pthread_rwlock_t *);
-  void *(*ptr___pthread_getspecific) (pthread_key_t);
   int (*ptr___pthread_setspecific) (pthread_key_t, const void *);
   int (*ptr__nptl_setxid) (struct xid_command *);
 };
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index edd8ff4e1a..ae0e7a313e 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -339,6 +339,7 @@ GLIBC_2.17 __profile_frequency F
 GLIBC_2.17 __progname D 0x8
 GLIBC_2.17 __progname_full D 0x8
 GLIBC_2.17 __pthread_cleanup_routine F
+GLIBC_2.17 __pthread_getspecific F
 GLIBC_2.17 __pthread_key_create F
 GLIBC_2.17 __pthread_once F
 GLIBC_2.17 __pthread_unwind_next F
@@ -1450,6 +1451,7 @@ GLIBC_2.17 pthread_exit F
 GLIBC_2.17 pthread_getaffinity_np F
 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_mutex_consistent F
 GLIBC_2.17 pthread_mutex_consistent_np F
@@ -2185,9 +2187,11 @@ GLIBC_2.33 stat F
 GLIBC_2.33 stat64 F
 GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
 GLIBC_2.34 __pthread_once 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_mutex_consistent F
 GLIBC_2.34 pthread_once F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
index ac707e297d..11250984c6 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
@@ -10,7 +10,6 @@ GLIBC_2.17 __lseek F
 GLIBC_2.17 __open F
 GLIBC_2.17 __open64 F
 GLIBC_2.17 __pread64 F
-GLIBC_2.17 __pthread_getspecific F
 GLIBC_2.17 __pthread_mutex_destroy F
 GLIBC_2.17 __pthread_mutex_init F
 GLIBC_2.17 __pthread_mutex_lock F
@@ -74,7 +73,6 @@ GLIBC_2.17 pthread_detach F
 GLIBC_2.17 pthread_getconcurrency F
 GLIBC_2.17 pthread_getcpuclockid F
 GLIBC_2.17 pthread_getname_np F
-GLIBC_2.17 pthread_getspecific F
 GLIBC_2.17 pthread_join F
 GLIBC_2.17 pthread_key_delete F
 GLIBC_2.17 pthread_kill F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index ad921167a2..d27a8d9ad4 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -188,6 +188,7 @@ GLIBC_2.0 __printf_fp F
 GLIBC_2.0 __profile_frequency F
 GLIBC_2.0 __progname D 0x8
 GLIBC_2.0 __progname_full D 0x8
+GLIBC_2.0 __pthread_getspecific F
 GLIBC_2.0 __pthread_key_create F
 GLIBC_2.0 __pthread_once F
 GLIBC_2.0 __rcmd_errstr D 0x8
@@ -889,6 +890,7 @@ GLIBC_2.0 pthread_condattr_init F
 GLIBC_2.0 pthread_equal F
 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_mutex_destroy F
 GLIBC_2.0 pthread_mutex_init F
@@ -2266,9 +2268,11 @@ GLIBC_2.33 stat F
 GLIBC_2.33 stat64 F
 GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
 GLIBC_2.34 __pthread_once 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_mutex_consistent F
 GLIBC_2.34 pthread_once F
diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
index cb20e20a73..45bbfa0447 100644
--- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
@@ -5,7 +5,6 @@ GLIBC_2.0 __errno_location F
 GLIBC_2.0 __h_errno_location F
 GLIBC_2.0 __lseek F
 GLIBC_2.0 __open F
-GLIBC_2.0 __pthread_getspecific F
 GLIBC_2.0 __pthread_mutex_destroy F
 GLIBC_2.0 __pthread_mutex_init F
 GLIBC_2.0 __pthread_mutex_lock F
@@ -30,7 +29,6 @@ GLIBC_2.0 pthread_cond_timedwait F
 GLIBC_2.0 pthread_cond_wait F
 GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
-GLIBC_2.0 pthread_getspecific F
 GLIBC_2.0 pthread_join F
 GLIBC_2.0 pthread_key_delete F
 GLIBC_2.0 pthread_kill F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 2bdf0fffdb..f740f0d40a 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -328,6 +328,7 @@ GLIBC_2.32 __profile_frequency F
 GLIBC_2.32 __progname D 0x4
 GLIBC_2.32 __progname_full D 0x4
 GLIBC_2.32 __pthread_cleanup_routine F
+GLIBC_2.32 __pthread_getspecific F
 GLIBC_2.32 __pthread_key_create F
 GLIBC_2.32 __pthread_once F
 GLIBC_2.32 __pthread_unwind_next F
@@ -1377,6 +1378,7 @@ GLIBC_2.32 pthread_exit F
 GLIBC_2.32 pthread_getaffinity_np F
 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_mutex_consistent F
 GLIBC_2.32 pthread_mutex_consistent_np F
@@ -1945,9 +1947,11 @@ GLIBC_2.33 stat F
 GLIBC_2.33 stat64 F
 GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
 GLIBC_2.34 __pthread_once 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_mutex_consistent F
 GLIBC_2.34 pthread_once F
diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
index 74b570923c..afb1496d65 100644
--- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
@@ -10,7 +10,6 @@ GLIBC_2.32 __lseek F
 GLIBC_2.32 __open F
 GLIBC_2.32 __open64 F
 GLIBC_2.32 __pread64 F
-GLIBC_2.32 __pthread_getspecific F
 GLIBC_2.32 __pthread_mutex_destroy F
 GLIBC_2.32 __pthread_mutex_init F
 GLIBC_2.32 __pthread_mutex_lock F
@@ -90,7 +89,6 @@ GLIBC_2.32 pthread_getattr_default_np F
 GLIBC_2.32 pthread_getconcurrency F
 GLIBC_2.32 pthread_getcpuclockid F
 GLIBC_2.32 pthread_getname_np F
-GLIBC_2.32 pthread_getspecific F
 GLIBC_2.32 pthread_join F
 GLIBC_2.32 pthread_key_delete F
 GLIBC_2.32 pthread_kill F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 451c02d687..60baeff299 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -158,9 +158,11 @@ GLIBC_2.33 stat F
 GLIBC_2.33 stat64 F
 GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
 GLIBC_2.34 __pthread_once 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_mutex_consistent F
 GLIBC_2.34 pthread_once F
@@ -492,6 +494,7 @@ GLIBC_2.4 __profile_frequency F
 GLIBC_2.4 __progname D 0x4
 GLIBC_2.4 __progname_full D 0x4
 GLIBC_2.4 __pthread_cleanup_routine F
+GLIBC_2.4 __pthread_getspecific F
 GLIBC_2.4 __pthread_key_create F
 GLIBC_2.4 __pthread_once F
 GLIBC_2.4 __pthread_unwind_next F
@@ -1551,6 +1554,7 @@ GLIBC_2.4 pthread_exit F
 GLIBC_2.4 pthread_getaffinity_np F
 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_mutex_consistent_np F
 GLIBC_2.4 pthread_mutex_destroy F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
index e713336495..c5a50e9e06 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
@@ -44,7 +44,6 @@ GLIBC_2.4 __lseek F
 GLIBC_2.4 __open F
 GLIBC_2.4 __open64 F
 GLIBC_2.4 __pread64 F
-GLIBC_2.4 __pthread_getspecific F
 GLIBC_2.4 __pthread_mutex_destroy F
 GLIBC_2.4 __pthread_mutex_init F
 GLIBC_2.4 __pthread_mutex_lock F
@@ -107,7 +106,6 @@ GLIBC_2.4 pthread_create F
 GLIBC_2.4 pthread_detach F
 GLIBC_2.4 pthread_getconcurrency F
 GLIBC_2.4 pthread_getcpuclockid F
-GLIBC_2.4 pthread_getspecific F
 GLIBC_2.4 pthread_join F
 GLIBC_2.4 pthread_key_delete F
 GLIBC_2.4 pthread_kill F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 873d6c3f22..3525e76e3c 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -155,9 +155,11 @@ GLIBC_2.33 stat F
 GLIBC_2.33 stat64 F
 GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
 GLIBC_2.34 __pthread_once 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_mutex_consistent F
 GLIBC_2.34 pthread_once F
@@ -489,6 +491,7 @@ GLIBC_2.4 __profile_frequency F
 GLIBC_2.4 __progname D 0x4
 GLIBC_2.4 __progname_full D 0x4
 GLIBC_2.4 __pthread_cleanup_routine F
+GLIBC_2.4 __pthread_getspecific F
 GLIBC_2.4 __pthread_key_create F
 GLIBC_2.4 __pthread_once F
 GLIBC_2.4 __pthread_unwind_next F
@@ -1548,6 +1551,7 @@ GLIBC_2.4 pthread_exit F
 GLIBC_2.4 pthread_getaffinity_np F
 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_mutex_consistent_np F
 GLIBC_2.4 pthread_mutex_destroy F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
index e713336495..c5a50e9e06 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
@@ -44,7 +44,6 @@ GLIBC_2.4 __lseek F
 GLIBC_2.4 __open F
 GLIBC_2.4 __open64 F
 GLIBC_2.4 __pread64 F
-GLIBC_2.4 __pthread_getspecific F
 GLIBC_2.4 __pthread_mutex_destroy F
 GLIBC_2.4 __pthread_mutex_init F
 GLIBC_2.4 __pthread_mutex_lock F
@@ -107,7 +106,6 @@ GLIBC_2.4 pthread_create F
 GLIBC_2.4 pthread_detach F
 GLIBC_2.4 pthread_getconcurrency F
 GLIBC_2.4 pthread_getcpuclockid F
-GLIBC_2.4 pthread_getspecific F
 GLIBC_2.4 pthread_join F
 GLIBC_2.4 pthread_key_delete F
 GLIBC_2.4 pthread_kill F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index d9149b68cc..ec6b7f2755 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -332,6 +332,7 @@ GLIBC_2.29 __profile_frequency F
 GLIBC_2.29 __progname D 0x4
 GLIBC_2.29 __progname_full D 0x4
 GLIBC_2.29 __pthread_cleanup_routine F
+GLIBC_2.29 __pthread_getspecific F
 GLIBC_2.29 __pthread_key_create F
 GLIBC_2.29 __pthread_once F
 GLIBC_2.29 __pthread_unwind_next F
@@ -1438,6 +1439,7 @@ GLIBC_2.29 pthread_exit F
 GLIBC_2.29 pthread_getaffinity_np F
 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_mutex_consistent F
 GLIBC_2.29 pthread_mutex_consistent_np F
@@ -2129,9 +2131,11 @@ GLIBC_2.33 stat F
 GLIBC_2.33 stat64 F
 GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
 GLIBC_2.34 __pthread_once 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_mutex_consistent F
 GLIBC_2.34 pthread_once F
diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
index 2ce039a7dc..6515db30db 100644
--- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
@@ -10,7 +10,6 @@ GLIBC_2.29 __lseek F
 GLIBC_2.29 __open F
 GLIBC_2.29 __open64 F
 GLIBC_2.29 __pread64 F
-GLIBC_2.29 __pthread_getspecific F
 GLIBC_2.29 __pthread_mutex_destroy F
 GLIBC_2.29 __pthread_mutex_init F
 GLIBC_2.29 __pthread_mutex_lock F
@@ -88,7 +87,6 @@ GLIBC_2.29 pthread_getattr_default_np F
 GLIBC_2.29 pthread_getconcurrency F
 GLIBC_2.29 pthread_getcpuclockid F
 GLIBC_2.29 pthread_getname_np F
-GLIBC_2.29 pthread_getspecific F
 GLIBC_2.29 pthread_join F
 GLIBC_2.29 pthread_key_delete F
 GLIBC_2.29 pthread_kill F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 938fa14288..0ef57987cd 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -356,6 +356,7 @@ GLIBC_2.2 __printf_fp F
 GLIBC_2.2 __profile_frequency F
 GLIBC_2.2 __progname D 0x4
 GLIBC_2.2 __progname_full D 0x4
+GLIBC_2.2 __pthread_getspecific F
 GLIBC_2.2 __pthread_key_create F
 GLIBC_2.2 __pthread_once F
 GLIBC_2.2 __pwrite64 F
@@ -1273,6 +1274,7 @@ GLIBC_2.2 pthread_condattr_init F
 GLIBC_2.2 pthread_equal F
 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_mutex_destroy F
 GLIBC_2.2 pthread_mutex_init F
@@ -2087,9 +2089,11 @@ GLIBC_2.33 stat F
 GLIBC_2.33 stat64 F
 GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
 GLIBC_2.34 __pthread_once 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_mutex_consistent F
 GLIBC_2.34 pthread_once F
diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
index 5b61aadb8d..f2d8407241 100644
--- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
@@ -17,7 +17,6 @@ GLIBC_2.2 __lseek F
 GLIBC_2.2 __open F
 GLIBC_2.2 __open64 F
 GLIBC_2.2 __pread64 F
-GLIBC_2.2 __pthread_getspecific F
 GLIBC_2.2 __pthread_mutex_destroy F
 GLIBC_2.2 __pthread_mutex_init F
 GLIBC_2.2 __pthread_mutex_lock F
@@ -73,7 +72,6 @@ GLIBC_2.2 pthread_create F
 GLIBC_2.2 pthread_detach F
 GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
-GLIBC_2.2 pthread_getspecific F
 GLIBC_2.2 pthread_join F
 GLIBC_2.2 pthread_key_delete F
 GLIBC_2.2 pthread_kill F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 425d1df5a3..fa7a28a5e3 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -185,6 +185,7 @@ GLIBC_2.0 __printf_fp F
 GLIBC_2.0 __profile_frequency F
 GLIBC_2.0 __progname D 0x4
 GLIBC_2.0 __progname_full D 0x4
+GLIBC_2.0 __pthread_getspecific F
 GLIBC_2.0 __pthread_key_create F
 GLIBC_2.0 __pthread_once F
 GLIBC_2.0 __rcmd_errstr D 0x4
@@ -866,6 +867,7 @@ GLIBC_2.0 pthread_condattr_init F
 GLIBC_2.0 pthread_equal F
 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_mutex_destroy F
 GLIBC_2.0 pthread_mutex_init F
@@ -2254,9 +2256,11 @@ GLIBC_2.33 stat F
 GLIBC_2.33 stat64 F
 GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
 GLIBC_2.34 __pthread_once 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_mutex_consistent F
 GLIBC_2.34 pthread_once F
diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
index bc65d671c9..13dbcc599e 100644
--- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
@@ -5,7 +5,6 @@ GLIBC_2.0 __errno_location F
 GLIBC_2.0 __h_errno_location F
 GLIBC_2.0 __lseek F
 GLIBC_2.0 __open F
-GLIBC_2.0 __pthread_getspecific F
 GLIBC_2.0 __pthread_mutex_destroy F
 GLIBC_2.0 __pthread_mutex_init F
 GLIBC_2.0 __pthread_mutex_lock F
@@ -30,7 +29,6 @@ GLIBC_2.0 pthread_cond_timedwait F
 GLIBC_2.0 pthread_cond_wait F
 GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
-GLIBC_2.0 pthread_getspecific F
 GLIBC_2.0 pthread_join F
 GLIBC_2.0 pthread_key_delete F
 GLIBC_2.0 pthread_kill F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index c34b5a157d..078315ddda 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -360,6 +360,7 @@ GLIBC_2.2 __printf_fp F
 GLIBC_2.2 __profile_frequency F
 GLIBC_2.2 __progname D 0x8
 GLIBC_2.2 __progname_full D 0x8
+GLIBC_2.2 __pthread_getspecific F
 GLIBC_2.2 __pthread_key_create F
 GLIBC_2.2 __pthread_once F
 GLIBC_2.2 __pwrite64 F
@@ -1294,6 +1295,7 @@ GLIBC_2.2 pthread_condattr_init F
 GLIBC_2.2 pthread_equal F
 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_mutex_destroy F
 GLIBC_2.2 pthread_mutex_init F
@@ -2119,9 +2121,11 @@ GLIBC_2.33 stat F
 GLIBC_2.33 stat64 F
 GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
 GLIBC_2.34 __pthread_once 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_mutex_consistent F
 GLIBC_2.34 pthread_once F
diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
index 3337a5ec6a..a121c5848c 100644
--- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
@@ -17,7 +17,6 @@ GLIBC_2.2 __lseek F
 GLIBC_2.2 __open F
 GLIBC_2.2 __open64 F
 GLIBC_2.2 __pread64 F
-GLIBC_2.2 __pthread_getspecific F
 GLIBC_2.2 __pthread_mutex_destroy F
 GLIBC_2.2 __pthread_mutex_init F
 GLIBC_2.2 __pthread_mutex_lock F
@@ -73,7 +72,6 @@ GLIBC_2.2 pthread_create F
 GLIBC_2.2 pthread_detach F
 GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
-GLIBC_2.2 pthread_getspecific F
 GLIBC_2.2 pthread_join F
 GLIBC_2.2 pthread_key_delete F
 GLIBC_2.2 pthread_kill F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 56d55caed9..e297ce158e 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -159,9 +159,11 @@ GLIBC_2.33 stat F
 GLIBC_2.33 stat64 F
 GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
 GLIBC_2.34 __pthread_once 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_mutex_consistent F
 GLIBC_2.34 pthread_once F
@@ -478,6 +480,7 @@ GLIBC_2.4 __profile_frequency F
 GLIBC_2.4 __progname D 0x4
 GLIBC_2.4 __progname_full D 0x4
 GLIBC_2.4 __pthread_cleanup_routine F
+GLIBC_2.4 __pthread_getspecific F
 GLIBC_2.4 __pthread_key_create F
 GLIBC_2.4 __pthread_once F
 GLIBC_2.4 __pthread_unwind_next F
@@ -1531,6 +1534,7 @@ GLIBC_2.4 pthread_exit F
 GLIBC_2.4 pthread_getaffinity_np F
 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_mutex_consistent_np F
 GLIBC_2.4 pthread_mutex_destroy F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
index e713336495..c5a50e9e06 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
@@ -44,7 +44,6 @@ GLIBC_2.4 __lseek F
 GLIBC_2.4 __open F
 GLIBC_2.4 __open64 F
 GLIBC_2.4 __pread64 F
-GLIBC_2.4 __pthread_getspecific F
 GLIBC_2.4 __pthread_mutex_destroy F
 GLIBC_2.4 __pthread_mutex_init F
 GLIBC_2.4 __pthread_mutex_lock F
@@ -107,7 +106,6 @@ GLIBC_2.4 pthread_create F
 GLIBC_2.4 pthread_detach F
 GLIBC_2.4 pthread_getconcurrency F
 GLIBC_2.4 pthread_getcpuclockid F
-GLIBC_2.4 pthread_getspecific F
 GLIBC_2.4 pthread_join F
 GLIBC_2.4 pthread_key_delete F
 GLIBC_2.4 pthread_kill F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index a3b3bf4f74..10c54ce3ab 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -185,6 +185,7 @@ GLIBC_2.0 __printf_fp F
 GLIBC_2.0 __profile_frequency F
 GLIBC_2.0 __progname D 0x4
 GLIBC_2.0 __progname_full D 0x4
+GLIBC_2.0 __pthread_getspecific F
 GLIBC_2.0 __pthread_key_create F
 GLIBC_2.0 __pthread_once F
 GLIBC_2.0 __rcmd_errstr D 0x4
@@ -865,6 +866,7 @@ GLIBC_2.0 pthread_condattr_init F
 GLIBC_2.0 pthread_equal F
 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_mutex_destroy F
 GLIBC_2.0 pthread_mutex_init F
@@ -2199,9 +2201,11 @@ GLIBC_2.33 stat F
 GLIBC_2.33 stat64 F
 GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
 GLIBC_2.34 __pthread_once 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_mutex_consistent F
 GLIBC_2.34 pthread_once F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
index bc65d671c9..13dbcc599e 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
@@ -5,7 +5,6 @@ GLIBC_2.0 __errno_location F
 GLIBC_2.0 __h_errno_location F
 GLIBC_2.0 __lseek F
 GLIBC_2.0 __open F
-GLIBC_2.0 __pthread_getspecific F
 GLIBC_2.0 __pthread_mutex_destroy F
 GLIBC_2.0 __pthread_mutex_init F
 GLIBC_2.0 __pthread_mutex_lock F
@@ -30,7 +29,6 @@ GLIBC_2.0 pthread_cond_timedwait F
 GLIBC_2.0 pthread_cond_wait F
 GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
-GLIBC_2.0 pthread_getspecific F
 GLIBC_2.0 pthread_join F
 GLIBC_2.0 pthread_key_delete F
 GLIBC_2.0 pthread_kill F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 75213c08d4..e6d033a29b 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -340,6 +340,7 @@ GLIBC_2.18 __profile_frequency F
 GLIBC_2.18 __progname D 0x4
 GLIBC_2.18 __progname_full D 0x4
 GLIBC_2.18 __pthread_cleanup_routine F
+GLIBC_2.18 __pthread_getspecific F
 GLIBC_2.18 __pthread_key_create F
 GLIBC_2.18 __pthread_once F
 GLIBC_2.18 __pthread_unwind_next F
@@ -1453,6 +1454,7 @@ GLIBC_2.18 pthread_exit F
 GLIBC_2.18 pthread_getaffinity_np F
 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_mutex_consistent F
 GLIBC_2.18 pthread_mutex_consistent_np F
@@ -2180,9 +2182,11 @@ GLIBC_2.33 stat F
 GLIBC_2.33 stat64 F
 GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
 GLIBC_2.34 __pthread_once 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_mutex_consistent F
 GLIBC_2.34 pthread_once F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
index 991000fc8f..1c400dd4d7 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
@@ -10,7 +10,6 @@ GLIBC_2.18 __lseek F
 GLIBC_2.18 __open F
 GLIBC_2.18 __open64 F
 GLIBC_2.18 __pread64 F
-GLIBC_2.18 __pthread_getspecific F
 GLIBC_2.18 __pthread_mutex_destroy F
 GLIBC_2.18 __pthread_mutex_init F
 GLIBC_2.18 __pthread_mutex_lock F
@@ -75,7 +74,6 @@ GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_getconcurrency F
 GLIBC_2.18 pthread_getcpuclockid F
 GLIBC_2.18 pthread_getname_np F
-GLIBC_2.18 pthread_getspecific F
 GLIBC_2.18 pthread_join F
 GLIBC_2.18 pthread_key_delete F
 GLIBC_2.18 pthread_kill F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 014d53f893..448c257562 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -340,6 +340,7 @@ GLIBC_2.18 __profile_frequency F
 GLIBC_2.18 __progname D 0x4
 GLIBC_2.18 __progname_full D 0x4
 GLIBC_2.18 __pthread_cleanup_routine F
+GLIBC_2.18 __pthread_getspecific F
 GLIBC_2.18 __pthread_key_create F
 GLIBC_2.18 __pthread_once F
 GLIBC_2.18 __pthread_unwind_next F
@@ -1453,6 +1454,7 @@ GLIBC_2.18 pthread_exit F
 GLIBC_2.18 pthread_getaffinity_np F
 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_mutex_consistent F
 GLIBC_2.18 pthread_mutex_consistent_np F
@@ -2177,9 +2179,11 @@ GLIBC_2.33 stat F
 GLIBC_2.33 stat64 F
 GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
 GLIBC_2.34 __pthread_once 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_mutex_consistent F
 GLIBC_2.34 pthread_once F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
index 991000fc8f..1c400dd4d7 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
@@ -10,7 +10,6 @@ GLIBC_2.18 __lseek F
 GLIBC_2.18 __open F
 GLIBC_2.18 __open64 F
 GLIBC_2.18 __pread64 F
-GLIBC_2.18 __pthread_getspecific F
 GLIBC_2.18 __pthread_mutex_destroy F
 GLIBC_2.18 __pthread_mutex_init F
 GLIBC_2.18 __pthread_mutex_lock F
@@ -75,7 +74,6 @@ GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_getconcurrency F
 GLIBC_2.18 pthread_getcpuclockid F
 GLIBC_2.18 pthread_getname_np F
-GLIBC_2.18 pthread_getspecific F
 GLIBC_2.18 pthread_join F
 GLIBC_2.18 pthread_key_delete F
 GLIBC_2.18 pthread_kill F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 46c7716ee6..8f5df09289 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -183,6 +183,7 @@ GLIBC_2.0 __printf_fp F
 GLIBC_2.0 __profile_frequency F
 GLIBC_2.0 __progname D 0x4
 GLIBC_2.0 __progname_full D 0x4
+GLIBC_2.0 __pthread_getspecific F
 GLIBC_2.0 __pthread_key_create F
 GLIBC_2.0 __pthread_once F
 GLIBC_2.0 __rcmd_errstr D 0x4
@@ -862,6 +863,7 @@ GLIBC_2.0 pthread_condattr_init F
 GLIBC_2.0 pthread_equal F
 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_mutex_destroy F
 GLIBC_2.0 pthread_mutex_init F
@@ -2170,9 +2172,11 @@ GLIBC_2.33 stat F
 GLIBC_2.33 stat64 F
 GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
 GLIBC_2.34 __pthread_once 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_mutex_consistent F
 GLIBC_2.34 pthread_once F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
index 30911a5514..40afc6e574 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
@@ -5,7 +5,6 @@ GLIBC_2.0 __errno_location F
 GLIBC_2.0 __h_errno_location F
 GLIBC_2.0 __lseek F
 GLIBC_2.0 __open F
-GLIBC_2.0 __pthread_getspecific F
 GLIBC_2.0 __pthread_mutex_destroy F
 GLIBC_2.0 __pthread_mutex_init F
 GLIBC_2.0 __pthread_mutex_lock F
@@ -30,7 +29,6 @@ GLIBC_2.0 pthread_cond_timedwait F
 GLIBC_2.0 pthread_cond_wait F
 GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
-GLIBC_2.0 pthread_getspecific F
 GLIBC_2.0 pthread_join F
 GLIBC_2.0 pthread_key_delete F
 GLIBC_2.0 pthread_kill F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 5666362839..4d39526a30 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -183,6 +183,7 @@ GLIBC_2.0 __printf_fp F
 GLIBC_2.0 __profile_frequency F
 GLIBC_2.0 __progname D 0x4
 GLIBC_2.0 __progname_full D 0x4
+GLIBC_2.0 __pthread_getspecific F
 GLIBC_2.0 __pthread_key_create F
 GLIBC_2.0 __pthread_once F
 GLIBC_2.0 __rcmd_errstr D 0x4
@@ -862,6 +863,7 @@ GLIBC_2.0 pthread_condattr_init F
 GLIBC_2.0 pthread_equal F
 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_mutex_destroy F
 GLIBC_2.0 pthread_mutex_init F
@@ -2168,9 +2170,11 @@ GLIBC_2.33 stat F
 GLIBC_2.33 stat64 F
 GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
 GLIBC_2.34 __pthread_once 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_mutex_consistent F
 GLIBC_2.34 pthread_once F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
index 30911a5514..40afc6e574 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
@@ -5,7 +5,6 @@ GLIBC_2.0 __errno_location F
 GLIBC_2.0 __h_errno_location F
 GLIBC_2.0 __lseek F
 GLIBC_2.0 __open F
-GLIBC_2.0 __pthread_getspecific F
 GLIBC_2.0 __pthread_mutex_destroy F
 GLIBC_2.0 __pthread_mutex_init F
 GLIBC_2.0 __pthread_mutex_lock F
@@ -30,7 +29,6 @@ GLIBC_2.0 pthread_cond_timedwait F
 GLIBC_2.0 pthread_cond_wait F
 GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
-GLIBC_2.0 pthread_getspecific F
 GLIBC_2.0 pthread_join F
 GLIBC_2.0 pthread_key_delete F
 GLIBC_2.0 pthread_kill F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 97866f80c7..3cfb9e62db 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -183,6 +183,7 @@ GLIBC_2.0 __printf_fp F
 GLIBC_2.0 __profile_frequency F
 GLIBC_2.0 __progname D 0x4
 GLIBC_2.0 __progname_full D 0x4
+GLIBC_2.0 __pthread_getspecific F
 GLIBC_2.0 __pthread_key_create F
 GLIBC_2.0 __pthread_once F
 GLIBC_2.0 __rcmd_errstr D 0x4
@@ -862,6 +863,7 @@ GLIBC_2.0 pthread_condattr_init F
 GLIBC_2.0 pthread_equal F
 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_mutex_destroy F
 GLIBC_2.0 pthread_mutex_init F
@@ -2176,9 +2178,11 @@ GLIBC_2.33 stat F
 GLIBC_2.33 stat64 F
 GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
 GLIBC_2.34 __pthread_once 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_mutex_consistent F
 GLIBC_2.34 pthread_once F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 3d9321f9e0..9b5cc5db4c 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -183,6 +183,7 @@ GLIBC_2.0 __printf_fp F
 GLIBC_2.0 __profile_frequency F
 GLIBC_2.0 __progname D 0x8
 GLIBC_2.0 __progname_full D 0x8
+GLIBC_2.0 __pthread_getspecific F
 GLIBC_2.0 __pthread_key_create F
 GLIBC_2.0 __pthread_once F
 GLIBC_2.0 __rcmd_errstr D 0x8
@@ -860,6 +861,7 @@ GLIBC_2.0 pthread_condattr_init F
 GLIBC_2.0 pthread_equal F
 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_mutex_destroy F
 GLIBC_2.0 pthread_mutex_init F
@@ -2170,9 +2172,11 @@ GLIBC_2.33 stat F
 GLIBC_2.33 stat64 F
 GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
 GLIBC_2.34 __pthread_once 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_mutex_consistent F
 GLIBC_2.34 pthread_once F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 3a0c0c5d8a..1335395b2f 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -377,6 +377,7 @@ GLIBC_2.21 __profile_frequency F
 GLIBC_2.21 __progname D 0x4
 GLIBC_2.21 __progname_full D 0x4
 GLIBC_2.21 __pthread_cleanup_routine F
+GLIBC_2.21 __pthread_getspecific F
 GLIBC_2.21 __pthread_key_create F
 GLIBC_2.21 __pthread_once F
 GLIBC_2.21 __pthread_unwind_next F
@@ -1495,6 +1496,7 @@ GLIBC_2.21 pthread_exit F
 GLIBC_2.21 pthread_getaffinity_np F
 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_mutex_consistent F
 GLIBC_2.21 pthread_mutex_consistent_np F
@@ -2218,9 +2220,11 @@ GLIBC_2.33 stat F
 GLIBC_2.33 stat64 F
 GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
 GLIBC_2.34 __pthread_once 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_mutex_consistent F
 GLIBC_2.34 pthread_once F
diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
index fb9d6849bb..593752ee81 100644
--- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
@@ -10,7 +10,6 @@ GLIBC_2.21 __lseek F
 GLIBC_2.21 __open F
 GLIBC_2.21 __open64 F
 GLIBC_2.21 __pread64 F
-GLIBC_2.21 __pthread_getspecific F
 GLIBC_2.21 __pthread_mutex_destroy F
 GLIBC_2.21 __pthread_mutex_init F
 GLIBC_2.21 __pthread_mutex_lock F
@@ -75,7 +74,6 @@ GLIBC_2.21 pthread_getattr_default_np F
 GLIBC_2.21 pthread_getconcurrency F
 GLIBC_2.21 pthread_getcpuclockid F
 GLIBC_2.21 pthread_getname_np F
-GLIBC_2.21 pthread_getspecific F
 GLIBC_2.21 pthread_join F
 GLIBC_2.21 pthread_key_delete F
 GLIBC_2.21 pthread_kill F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index c01a200e83..eb5f9814e8 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -194,6 +194,7 @@ GLIBC_2.0 __printf_fp F
 GLIBC_2.0 __profile_frequency F
 GLIBC_2.0 __progname D 0x4
 GLIBC_2.0 __progname_full D 0x4
+GLIBC_2.0 __pthread_getspecific F
 GLIBC_2.0 __pthread_key_create F
 GLIBC_2.0 __pthread_once F
 GLIBC_2.0 __rcmd_errstr D 0x4
@@ -873,6 +874,7 @@ GLIBC_2.0 pthread_condattr_init F
 GLIBC_2.0 pthread_equal F
 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_mutex_destroy F
 GLIBC_2.0 pthread_mutex_init F
@@ -2226,9 +2228,11 @@ GLIBC_2.33 stat F
 GLIBC_2.33 stat64 F
 GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
 GLIBC_2.34 __pthread_once 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_mutex_consistent F
 GLIBC_2.34 pthread_once F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
index dfd617563b..d962bf830c 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
@@ -5,7 +5,6 @@ GLIBC_2.0 __errno_location F
 GLIBC_2.0 __h_errno_location F
 GLIBC_2.0 __lseek F
 GLIBC_2.0 __open F
-GLIBC_2.0 __pthread_getspecific F
 GLIBC_2.0 __pthread_mutex_destroy F
 GLIBC_2.0 __pthread_mutex_init F
 GLIBC_2.0 __pthread_mutex_lock F
@@ -30,7 +29,6 @@ GLIBC_2.0 pthread_cond_timedwait F
 GLIBC_2.0 pthread_cond_wait F
 GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
-GLIBC_2.0 pthread_getspecific F
 GLIBC_2.0 pthread_join F
 GLIBC_2.0 pthread_key_delete F
 GLIBC_2.0 pthread_kill F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 3eced88f9f..b0372c3178 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -194,6 +194,7 @@ GLIBC_2.0 __printf_fp F
 GLIBC_2.0 __profile_frequency F
 GLIBC_2.0 __progname D 0x4
 GLIBC_2.0 __progname_full D 0x4
+GLIBC_2.0 __pthread_getspecific F
 GLIBC_2.0 __pthread_key_create F
 GLIBC_2.0 __pthread_once F
 GLIBC_2.0 __rcmd_errstr D 0x4
@@ -873,6 +874,7 @@ GLIBC_2.0 pthread_condattr_init F
 GLIBC_2.0 pthread_equal F
 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_mutex_destroy F
 GLIBC_2.0 pthread_mutex_init F
@@ -2259,9 +2261,11 @@ GLIBC_2.33 stat F
 GLIBC_2.33 stat64 F
 GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
 GLIBC_2.34 __pthread_once 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_mutex_consistent F
 GLIBC_2.34 pthread_once F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 35b689a767..aa4aadbbb4 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -409,6 +409,7 @@ GLIBC_2.3 __printf_fp F
 GLIBC_2.3 __profile_frequency F
 GLIBC_2.3 __progname D 0x8
 GLIBC_2.3 __progname_full D 0x8
+GLIBC_2.3 __pthread_getspecific F
 GLIBC_2.3 __pthread_key_create F
 GLIBC_2.3 __pthread_once F
 GLIBC_2.3 __pwrite64 F
@@ -1380,6 +1381,7 @@ GLIBC_2.3 pthread_equal F
 GLIBC_2.3 pthread_exit F
 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_mutex_destroy F
 GLIBC_2.3 pthread_mutex_init F
@@ -2089,9 +2091,11 @@ GLIBC_2.33 stat F
 GLIBC_2.33 stat64 F
 GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
 GLIBC_2.34 __pthread_once 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_mutex_consistent F
 GLIBC_2.34 pthread_once F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
index 238ca22ae1..d1a61340b3 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
@@ -38,7 +38,6 @@ GLIBC_2.3 __lseek F
 GLIBC_2.3 __open F
 GLIBC_2.3 __open64 F
 GLIBC_2.3 __pread64 F
-GLIBC_2.3 __pthread_getspecific F
 GLIBC_2.3 __pthread_mutex_destroy F
 GLIBC_2.3 __pthread_mutex_init F
 GLIBC_2.3 __pthread_mutex_lock F
@@ -93,7 +92,6 @@ GLIBC_2.3 pthread_create F
 GLIBC_2.3 pthread_detach F
 GLIBC_2.3 pthread_getconcurrency F
 GLIBC_2.3 pthread_getcpuclockid F
-GLIBC_2.3 pthread_getspecific F
 GLIBC_2.3 pthread_join F
 GLIBC_2.3 pthread_key_delete F
 GLIBC_2.3 pthread_kill F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index d54a37f8ad..045912572c 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -425,6 +425,7 @@ GLIBC_2.17 __profile_frequency F
 GLIBC_2.17 __progname D 0x8
 GLIBC_2.17 __progname_full D 0x8
 GLIBC_2.17 __pthread_cleanup_routine F
+GLIBC_2.17 __pthread_getspecific F
 GLIBC_2.17 __pthread_key_create F
 GLIBC_2.17 __pthread_once F
 GLIBC_2.17 __pthread_unwind_next F
@@ -1539,6 +1540,7 @@ GLIBC_2.17 pthread_exit F
 GLIBC_2.17 pthread_getaffinity_np F
 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_mutex_consistent F
 GLIBC_2.17 pthread_mutex_consistent_np F
@@ -2380,9 +2382,11 @@ GLIBC_2.33 stat F
 GLIBC_2.33 stat64 F
 GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
 GLIBC_2.34 __pthread_once 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_mutex_consistent F
 GLIBC_2.34 pthread_once F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
index ac707e297d..11250984c6 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
@@ -10,7 +10,6 @@ GLIBC_2.17 __lseek F
 GLIBC_2.17 __open F
 GLIBC_2.17 __open64 F
 GLIBC_2.17 __pread64 F
-GLIBC_2.17 __pthread_getspecific F
 GLIBC_2.17 __pthread_mutex_destroy F
 GLIBC_2.17 __pthread_mutex_init F
 GLIBC_2.17 __pthread_mutex_lock F
@@ -74,7 +73,6 @@ GLIBC_2.17 pthread_detach F
 GLIBC_2.17 pthread_getconcurrency F
 GLIBC_2.17 pthread_getcpuclockid F
 GLIBC_2.17 pthread_getname_np F
-GLIBC_2.17 pthread_getspecific F
 GLIBC_2.17 pthread_join F
 GLIBC_2.17 pthread_key_delete F
 GLIBC_2.17 pthread_kill F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index e82a4a7a90..5ef9b35b6d 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -325,6 +325,7 @@ GLIBC_2.33 __profile_frequency F
 GLIBC_2.33 __progname D 0x4
 GLIBC_2.33 __progname_full D 0x4
 GLIBC_2.33 __pthread_cleanup_routine F
+GLIBC_2.33 __pthread_getspecific F
 GLIBC_2.33 __pthread_key_create F
 GLIBC_2.33 __pthread_once F
 GLIBC_2.33 __pthread_unwind_next F
@@ -1379,6 +1380,7 @@ GLIBC_2.33 pthread_exit F
 GLIBC_2.33 pthread_getaffinity_np F
 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_mutex_consistent F
 GLIBC_2.33 pthread_mutex_consistent_np F
@@ -1947,9 +1949,11 @@ GLIBC_2.33 writev F
 GLIBC_2.33 wscanf F
 GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
 GLIBC_2.34 __pthread_once 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_mutex_consistent F
 GLIBC_2.34 pthread_once F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
index 840af4f0b1..bc5321448d 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
@@ -10,7 +10,6 @@ GLIBC_2.33 __lseek F
 GLIBC_2.33 __open F
 GLIBC_2.33 __open64 F
 GLIBC_2.33 __pread64 F
-GLIBC_2.33 __pthread_getspecific F
 GLIBC_2.33 __pthread_mutex_destroy F
 GLIBC_2.33 __pthread_mutex_init F
 GLIBC_2.33 __pthread_mutex_lock F
@@ -90,7 +89,6 @@ GLIBC_2.33 pthread_getattr_default_np F
 GLIBC_2.33 pthread_getconcurrency F
 GLIBC_2.33 pthread_getcpuclockid F
 GLIBC_2.33 pthread_getname_np F
-GLIBC_2.33 pthread_getspecific F
 GLIBC_2.33 pthread_join F
 GLIBC_2.33 pthread_key_delete F
 GLIBC_2.33 pthread_kill F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 0c81f1a72c..7f7385d87c 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -336,6 +336,7 @@ GLIBC_2.27 __profile_frequency F
 GLIBC_2.27 __progname D 0x8
 GLIBC_2.27 __progname_full D 0x8
 GLIBC_2.27 __pthread_cleanup_routine F
+GLIBC_2.27 __pthread_getspecific F
 GLIBC_2.27 __pthread_key_create F
 GLIBC_2.27 __pthread_once F
 GLIBC_2.27 __pthread_unwind_next F
@@ -1441,6 +1442,7 @@ GLIBC_2.27 pthread_exit F
 GLIBC_2.27 pthread_getaffinity_np F
 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_mutex_consistent F
 GLIBC_2.27 pthread_mutex_consistent_np F
@@ -2147,9 +2149,11 @@ GLIBC_2.33 stat F
 GLIBC_2.33 stat64 F
 GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
 GLIBC_2.34 __pthread_once 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_mutex_consistent F
 GLIBC_2.34 pthread_once F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
index fd4349bc9e..5f1191a4fd 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
@@ -10,7 +10,6 @@ GLIBC_2.27 __lseek F
 GLIBC_2.27 __open F
 GLIBC_2.27 __open64 F
 GLIBC_2.27 __pread64 F
-GLIBC_2.27 __pthread_getspecific F
 GLIBC_2.27 __pthread_mutex_destroy F
 GLIBC_2.27 __pthread_mutex_init F
 GLIBC_2.27 __pthread_mutex_lock F
@@ -75,7 +74,6 @@ GLIBC_2.27 pthread_getattr_default_np F
 GLIBC_2.27 pthread_getconcurrency F
 GLIBC_2.27 pthread_getcpuclockid F
 GLIBC_2.27 pthread_getname_np F
-GLIBC_2.27 pthread_getspecific F
 GLIBC_2.27 pthread_join F
 GLIBC_2.27 pthread_key_delete F
 GLIBC_2.27 pthread_kill F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index ca08d2f3f5..c062cbcde7 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -185,6 +185,7 @@ GLIBC_2.0 __printf_fp F
 GLIBC_2.0 __profile_frequency F
 GLIBC_2.0 __progname D 0x4
 GLIBC_2.0 __progname_full D 0x4
+GLIBC_2.0 __pthread_getspecific F
 GLIBC_2.0 __pthread_key_create F
 GLIBC_2.0 __pthread_once F
 GLIBC_2.0 __rcmd_errstr D 0x4
@@ -864,6 +865,7 @@ GLIBC_2.0 pthread_condattr_init F
 GLIBC_2.0 pthread_equal F
 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_mutex_destroy F
 GLIBC_2.0 pthread_mutex_init F
@@ -2224,9 +2226,11 @@ GLIBC_2.33 stat F
 GLIBC_2.33 stat64 F
 GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
 GLIBC_2.34 __pthread_once 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_mutex_consistent F
 GLIBC_2.34 pthread_once F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
index 1d0a859b57..331d040e6e 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
@@ -5,7 +5,6 @@ GLIBC_2.0 __errno_location F
 GLIBC_2.0 __h_errno_location F
 GLIBC_2.0 __lseek F
 GLIBC_2.0 __open F
-GLIBC_2.0 __pthread_getspecific F
 GLIBC_2.0 __pthread_mutex_destroy F
 GLIBC_2.0 __pthread_mutex_init F
 GLIBC_2.0 __pthread_mutex_lock F
@@ -30,7 +29,6 @@ GLIBC_2.0 pthread_cond_timedwait F
 GLIBC_2.0 pthread_cond_wait F
 GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
-GLIBC_2.0 pthread_getspecific F
 GLIBC_2.0 pthread_join F
 GLIBC_2.0 pthread_key_delete F
 GLIBC_2.0 pthread_kill F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 061e0c6ffa..cfc797c7fb 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -370,6 +370,7 @@ GLIBC_2.2 __printf_fp F
 GLIBC_2.2 __profile_frequency F
 GLIBC_2.2 __progname D 0x8
 GLIBC_2.2 __progname_full D 0x8
+GLIBC_2.2 __pthread_getspecific F
 GLIBC_2.2 __pthread_key_create F
 GLIBC_2.2 __pthread_once F
 GLIBC_2.2 __pwrite64 F
@@ -1291,6 +1292,7 @@ GLIBC_2.2 pthread_condattr_init F
 GLIBC_2.2 pthread_equal F
 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_mutex_destroy F
 GLIBC_2.2 pthread_mutex_init F
@@ -2125,9 +2127,11 @@ GLIBC_2.33 stat F
 GLIBC_2.33 stat64 F
 GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
 GLIBC_2.34 __pthread_once 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_mutex_consistent F
 GLIBC_2.34 pthread_once F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
index 1be8b53dfa..ad6228d8f7 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
@@ -18,7 +18,6 @@ GLIBC_2.2 __lseek F
 GLIBC_2.2 __open F
 GLIBC_2.2 __open64 F
 GLIBC_2.2 __pread64 F
-GLIBC_2.2 __pthread_getspecific F
 GLIBC_2.2 __pthread_mutex_destroy F
 GLIBC_2.2 __pthread_mutex_init F
 GLIBC_2.2 __pthread_mutex_lock F
@@ -74,7 +73,6 @@ GLIBC_2.2 pthread_create F
 GLIBC_2.2 pthread_detach F
 GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
-GLIBC_2.2 pthread_getspecific F
 GLIBC_2.2 pthread_join F
 GLIBC_2.2 pthread_key_delete F
 GLIBC_2.2 pthread_kill F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index d102c24997..08db66df29 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -359,6 +359,7 @@ GLIBC_2.2 __printf_fp F
 GLIBC_2.2 __profile_frequency F
 GLIBC_2.2 __progname D 0x4
 GLIBC_2.2 __progname_full D 0x4
+GLIBC_2.2 __pthread_getspecific F
 GLIBC_2.2 __pthread_key_create F
 GLIBC_2.2 __pthread_once F
 GLIBC_2.2 __pwrite64 F
@@ -1277,6 +1278,7 @@ GLIBC_2.2 pthread_condattr_init F
 GLIBC_2.2 pthread_equal F
 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_mutex_destroy F
 GLIBC_2.2 pthread_mutex_init F
@@ -2094,9 +2096,11 @@ GLIBC_2.33 stat F
 GLIBC_2.33 stat64 F
 GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
 GLIBC_2.34 __pthread_once 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_mutex_consistent F
 GLIBC_2.34 pthread_once F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
index 5b61aadb8d..f2d8407241 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
@@ -17,7 +17,6 @@ GLIBC_2.2 __lseek F
 GLIBC_2.2 __open F
 GLIBC_2.2 __open64 F
 GLIBC_2.2 __pread64 F
-GLIBC_2.2 __pthread_getspecific F
 GLIBC_2.2 __pthread_mutex_destroy F
 GLIBC_2.2 __pthread_mutex_init F
 GLIBC_2.2 __pthread_mutex_lock F
@@ -73,7 +72,6 @@ GLIBC_2.2 pthread_create F
 GLIBC_2.2 pthread_detach F
 GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
-GLIBC_2.2 pthread_getspecific F
 GLIBC_2.2 pthread_join F
 GLIBC_2.2 pthread_key_delete F
 GLIBC_2.2 pthread_kill F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 3ed1b31c84..10b8352efb 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -359,6 +359,7 @@ GLIBC_2.2 __printf_fp F
 GLIBC_2.2 __profile_frequency F
 GLIBC_2.2 __progname D 0x4
 GLIBC_2.2 __progname_full D 0x4
+GLIBC_2.2 __pthread_getspecific F
 GLIBC_2.2 __pthread_key_create F
 GLIBC_2.2 __pthread_once F
 GLIBC_2.2 __pwrite64 F
@@ -1277,6 +1278,7 @@ GLIBC_2.2 pthread_condattr_init F
 GLIBC_2.2 pthread_equal F
 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_mutex_destroy F
 GLIBC_2.2 pthread_mutex_init F
@@ -2091,9 +2093,11 @@ GLIBC_2.33 stat F
 GLIBC_2.33 stat64 F
 GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
 GLIBC_2.34 __pthread_once 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_mutex_consistent F
 GLIBC_2.34 pthread_once F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
index 5b61aadb8d..f2d8407241 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
@@ -17,7 +17,6 @@ GLIBC_2.2 __lseek F
 GLIBC_2.2 __open F
 GLIBC_2.2 __open64 F
 GLIBC_2.2 __pread64 F
-GLIBC_2.2 __pthread_getspecific F
 GLIBC_2.2 __pthread_mutex_destroy F
 GLIBC_2.2 __pthread_mutex_init F
 GLIBC_2.2 __pthread_mutex_lock F
@@ -73,7 +72,6 @@ GLIBC_2.2 pthread_create F
 GLIBC_2.2 pthread_detach F
 GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
-GLIBC_2.2 pthread_getspecific F
 GLIBC_2.2 pthread_join F
 GLIBC_2.2 pthread_key_delete F
 GLIBC_2.2 pthread_kill F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 78f69c96ab..dce478788e 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -189,6 +189,7 @@ GLIBC_2.0 __printf_fp F
 GLIBC_2.0 __profile_frequency F
 GLIBC_2.0 __progname D 0x4
 GLIBC_2.0 __progname_full D 0x4
+GLIBC_2.0 __pthread_getspecific F
 GLIBC_2.0 __pthread_key_create F
 GLIBC_2.0 __pthread_once F
 GLIBC_2.0 __rcmd_errstr D 0x4
@@ -867,6 +868,7 @@ GLIBC_2.0 pthread_condattr_init F
 GLIBC_2.0 pthread_equal F
 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_mutex_destroy F
 GLIBC_2.0 pthread_mutex_init F
@@ -2215,9 +2217,11 @@ GLIBC_2.33 stat F
 GLIBC_2.33 stat64 F
 GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
 GLIBC_2.34 __pthread_once 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_mutex_consistent F
 GLIBC_2.34 pthread_once F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
index cb20e20a73..45bbfa0447 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
@@ -5,7 +5,6 @@ GLIBC_2.0 __errno_location F
 GLIBC_2.0 __h_errno_location F
 GLIBC_2.0 __lseek F
 GLIBC_2.0 __open F
-GLIBC_2.0 __pthread_getspecific F
 GLIBC_2.0 __pthread_mutex_destroy F
 GLIBC_2.0 __pthread_mutex_init F
 GLIBC_2.0 __pthread_mutex_lock F
@@ -30,7 +29,6 @@ GLIBC_2.0 pthread_cond_timedwait F
 GLIBC_2.0 pthread_cond_wait F
 GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
-GLIBC_2.0 pthread_getspecific F
 GLIBC_2.0 pthread_join F
 GLIBC_2.0 pthread_key_delete F
 GLIBC_2.0 pthread_kill F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 49d6360768..1dc6c45074 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -397,6 +397,7 @@ GLIBC_2.2 __printf_fp F
 GLIBC_2.2 __profile_frequency F
 GLIBC_2.2 __progname D 0x8
 GLIBC_2.2 __progname_full D 0x8
+GLIBC_2.2 __pthread_getspecific F
 GLIBC_2.2 __pthread_key_create F
 GLIBC_2.2 __pthread_once F
 GLIBC_2.2 __pwrite64 F
@@ -1320,6 +1321,7 @@ GLIBC_2.2 pthread_condattr_init F
 GLIBC_2.2 pthread_equal F
 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_mutex_destroy F
 GLIBC_2.2 pthread_mutex_init F
@@ -2142,9 +2144,11 @@ GLIBC_2.33 stat F
 GLIBC_2.33 stat64 F
 GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
 GLIBC_2.34 __pthread_once 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_mutex_consistent F
 GLIBC_2.34 pthread_once F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
index 3337a5ec6a..a121c5848c 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
@@ -17,7 +17,6 @@ GLIBC_2.2 __lseek F
 GLIBC_2.2 __open F
 GLIBC_2.2 __open64 F
 GLIBC_2.2 __pread64 F
-GLIBC_2.2 __pthread_getspecific F
 GLIBC_2.2 __pthread_mutex_destroy F
 GLIBC_2.2 __pthread_mutex_init F
 GLIBC_2.2 __pthread_mutex_lock F
@@ -73,7 +72,6 @@ GLIBC_2.2 pthread_create F
 GLIBC_2.2 pthread_detach F
 GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
-GLIBC_2.2 pthread_getspecific F
 GLIBC_2.2 pthread_join F
 GLIBC_2.2 pthread_key_delete F
 GLIBC_2.2 pthread_kill F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index c795ffb505..e74d5c43c6 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -358,6 +358,7 @@ GLIBC_2.2.5 __printf_fp F
 GLIBC_2.2.5 __profile_frequency F
 GLIBC_2.2.5 __progname D 0x8
 GLIBC_2.2.5 __progname_full D 0x8
+GLIBC_2.2.5 __pthread_getspecific F
 GLIBC_2.2.5 __pthread_key_create F
 GLIBC_2.2.5 __pthread_once F
 GLIBC_2.2.5 __pwrite64 F
@@ -1288,6 +1289,7 @@ GLIBC_2.2.5 pthread_equal F
 GLIBC_2.2.5 pthread_exit F
 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_mutex_destroy F
 GLIBC_2.2.5 pthread_mutex_init F
@@ -2101,9 +2103,11 @@ GLIBC_2.33 stat F
 GLIBC_2.33 stat64 F
 GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
 GLIBC_2.34 __pthread_once 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_mutex_consistent F
 GLIBC_2.34 pthread_once F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
index 359115c0a2..05c5d4c6bb 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
@@ -17,7 +17,6 @@ GLIBC_2.2.5 __lseek F
 GLIBC_2.2.5 __open F
 GLIBC_2.2.5 __open64 F
 GLIBC_2.2.5 __pread64 F
-GLIBC_2.2.5 __pthread_getspecific 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
@@ -73,7 +72,6 @@ GLIBC_2.2.5 pthread_create F
 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_getspecific F
 GLIBC_2.2.5 pthread_join F
 GLIBC_2.2.5 pthread_key_delete F
 GLIBC_2.2.5 pthread_kill F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 74ccdc4905..007dd401d3 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -340,6 +340,7 @@ GLIBC_2.16 __profile_frequency F
 GLIBC_2.16 __progname D 0x4
 GLIBC_2.16 __progname_full D 0x4
 GLIBC_2.16 __pthread_cleanup_routine F
+GLIBC_2.16 __pthread_getspecific F
 GLIBC_2.16 __pthread_key_create F
 GLIBC_2.16 __pthread_once F
 GLIBC_2.16 __pthread_unwind_next F
@@ -1458,6 +1459,7 @@ GLIBC_2.16 pthread_exit F
 GLIBC_2.16 pthread_getaffinity_np F
 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_mutex_consistent F
 GLIBC_2.16 pthread_mutex_consistent_np F
@@ -2199,9 +2201,11 @@ GLIBC_2.33 stat F
 GLIBC_2.33 stat64 F
 GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
 GLIBC_2.34 __pthread_once 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_mutex_consistent F
 GLIBC_2.34 pthread_once F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
index 7a9fcaaca8..2818030b19 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
@@ -10,7 +10,6 @@ GLIBC_2.16 __lseek F
 GLIBC_2.16 __open F
 GLIBC_2.16 __open64 F
 GLIBC_2.16 __pread64 F
-GLIBC_2.16 __pthread_getspecific F
 GLIBC_2.16 __pthread_mutex_destroy F
 GLIBC_2.16 __pthread_mutex_init F
 GLIBC_2.16 __pthread_mutex_lock F
@@ -74,7 +73,6 @@ GLIBC_2.16 pthread_detach F
 GLIBC_2.16 pthread_getconcurrency F
 GLIBC_2.16 pthread_getcpuclockid F
 GLIBC_2.16 pthread_getname_np F
-GLIBC_2.16 pthread_getspecific F
 GLIBC_2.16 pthread_join F
 GLIBC_2.16 pthread_key_delete F
 GLIBC_2.16 pthread_kill F


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-03-18 22:08 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-18 22:08 [glibc/fw/libpthread-20210318b] nptl: Move pthread_getspecific, __pthread_getspecific into libc Florian Weimer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).