diff mbox series

[v3,26/37] nptl: Move pthread_setspecific, __pthread_setspecific into libc

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

Commit Message

Florian Weimer March 16, 2021, 5:30 p.m. UTC
The symbols have been moved using scripts/move-symbol-to-libc.py.
---
 nptl/Makefile                                 |  2 +-
 nptl/Versions                                 |  6 +++--
 nptl/nptl-init.c                              |  1 -
 nptl/pthreadP.h                               |  2 +-
 nptl/pthread_setspecific.c                    | 22 +++++++++++++++----
 sysdeps/nptl/libc-lockP.h                     |  2 --
 sysdeps/nptl/pthread-functions.h              |  1 -
 sysdeps/unix/sysv/linux/aarch64/libc.abilist  |  4 ++++
 .../sysv/linux/aarch64/libpthread.abilist     |  2 --
 sysdeps/unix/sysv/linux/alpha/libc.abilist    |  4 ++++
 .../unix/sysv/linux/alpha/libpthread.abilist  |  2 --
 sysdeps/unix/sysv/linux/arc/libc.abilist      |  4 ++++
 .../unix/sysv/linux/arc/libpthread.abilist    |  2 --
 sysdeps/unix/sysv/linux/arm/be/libc.abilist   |  4 ++++
 .../unix/sysv/linux/arm/be/libpthread.abilist |  2 --
 sysdeps/unix/sysv/linux/arm/le/libc.abilist   |  4 ++++
 .../unix/sysv/linux/arm/le/libpthread.abilist |  2 --
 sysdeps/unix/sysv/linux/csky/libc.abilist     |  4 ++++
 .../unix/sysv/linux/csky/libpthread.abilist   |  2 --
 sysdeps/unix/sysv/linux/hppa/libc.abilist     |  4 ++++
 .../unix/sysv/linux/hppa/libpthread.abilist   |  2 --
 sysdeps/unix/sysv/linux/i386/libc.abilist     |  4 ++++
 .../unix/sysv/linux/i386/libpthread.abilist   |  2 --
 sysdeps/unix/sysv/linux/ia64/libc.abilist     |  4 ++++
 .../unix/sysv/linux/ia64/libpthread.abilist   |  2 --
 .../sysv/linux/m68k/coldfire/libc.abilist     |  4 ++++
 .../linux/m68k/coldfire/libpthread.abilist    |  2 --
 .../unix/sysv/linux/m68k/m680x0/libc.abilist  |  4 ++++
 .../sysv/linux/m68k/m680x0/libpthread.abilist |  2 --
 .../sysv/linux/microblaze/be/libc.abilist     |  4 ++++
 .../linux/microblaze/be/libpthread.abilist    |  2 --
 .../sysv/linux/microblaze/le/libc.abilist     |  4 ++++
 .../linux/microblaze/le/libpthread.abilist    |  2 --
 .../sysv/linux/mips/mips32/fpu/libc.abilist   |  4 ++++
 .../sysv/linux/mips/mips32/libpthread.abilist |  2 --
 .../sysv/linux/mips/mips32/nofpu/libc.abilist |  4 ++++
 .../sysv/linux/mips/mips64/libpthread.abilist |  2 --
 .../sysv/linux/mips/mips64/n32/libc.abilist   |  4 ++++
 .../sysv/linux/mips/mips64/n64/libc.abilist   |  4 ++++
 sysdeps/unix/sysv/linux/nios2/libc.abilist    |  4 ++++
 .../unix/sysv/linux/nios2/libpthread.abilist  |  2 --
 .../linux/powerpc/powerpc32/fpu/libc.abilist  |  4 ++++
 .../powerpc/powerpc32/libpthread.abilist      |  2 --
 .../powerpc/powerpc32/nofpu/libc.abilist      |  4 ++++
 .../linux/powerpc/powerpc64/be/libc.abilist   |  4 ++++
 .../powerpc/powerpc64/be/libpthread.abilist   |  2 --
 .../linux/powerpc/powerpc64/le/libc.abilist   |  4 ++++
 .../powerpc/powerpc64/le/libpthread.abilist   |  2 --
 .../unix/sysv/linux/riscv/rv32/libc.abilist   |  4 ++++
 .../sysv/linux/riscv/rv32/libpthread.abilist  |  2 --
 .../unix/sysv/linux/riscv/rv64/libc.abilist   |  4 ++++
 .../sysv/linux/riscv/rv64/libpthread.abilist  |  2 --
 .../unix/sysv/linux/s390/s390-32/libc.abilist |  4 ++++
 .../linux/s390/s390-32/libpthread.abilist     |  2 --
 .../unix/sysv/linux/s390/s390-64/libc.abilist |  4 ++++
 .../linux/s390/s390-64/libpthread.abilist     |  2 --
 sysdeps/unix/sysv/linux/sh/be/libc.abilist    |  4 ++++
 .../unix/sysv/linux/sh/be/libpthread.abilist  |  2 --
 sysdeps/unix/sysv/linux/sh/le/libc.abilist    |  4 ++++
 .../unix/sysv/linux/sh/le/libpthread.abilist  |  2 --
 .../sysv/linux/sparc/sparc32/libc.abilist     |  4 ++++
 .../linux/sparc/sparc32/libpthread.abilist    |  2 --
 .../sysv/linux/sparc/sparc64/libc.abilist     |  4 ++++
 .../linux/sparc/sparc64/libpthread.abilist    |  2 --
 .../unix/sysv/linux/x86_64/64/libc.abilist    |  4 ++++
 .../sysv/linux/x86_64/64/libpthread.abilist   |  2 --
 .../unix/sysv/linux/x86_64/x32/libc.abilist   |  4 ++++
 .../sysv/linux/x86_64/x32/libpthread.abilist  |  2 --
 68 files changed, 152 insertions(+), 70 deletions(-)

Comments

Adhemerval Zanella March 24, 2021, 2:26 p.m. UTC | #1
On 16/03/2021 14:30, Florian Weimer via Libc-alpha wrote:
> The symbols have been moved using scripts/move-symbol-to-libc.py.

LGTM in general, some comments below.

> ---
>  nptl/Makefile                                 |  2 +-
>  nptl/Versions                                 |  6 +++--
>  nptl/nptl-init.c                              |  1 -
>  nptl/pthreadP.h                               |  2 +-
>  nptl/pthread_setspecific.c                    | 22 +++++++++++++++----
>  sysdeps/nptl/libc-lockP.h                     |  2 --
>  sysdeps/nptl/pthread-functions.h              |  1 -
>  sysdeps/unix/sysv/linux/aarch64/libc.abilist  |  4 ++++
>  .../sysv/linux/aarch64/libpthread.abilist     |  2 --
>  sysdeps/unix/sysv/linux/alpha/libc.abilist    |  4 ++++
>  .../unix/sysv/linux/alpha/libpthread.abilist  |  2 --
>  sysdeps/unix/sysv/linux/arc/libc.abilist      |  4 ++++
>  .../unix/sysv/linux/arc/libpthread.abilist    |  2 --
>  sysdeps/unix/sysv/linux/arm/be/libc.abilist   |  4 ++++
>  .../unix/sysv/linux/arm/be/libpthread.abilist |  2 --
>  sysdeps/unix/sysv/linux/arm/le/libc.abilist   |  4 ++++
>  .../unix/sysv/linux/arm/le/libpthread.abilist |  2 --
>  sysdeps/unix/sysv/linux/csky/libc.abilist     |  4 ++++
>  .../unix/sysv/linux/csky/libpthread.abilist   |  2 --
>  sysdeps/unix/sysv/linux/hppa/libc.abilist     |  4 ++++
>  .../unix/sysv/linux/hppa/libpthread.abilist   |  2 --
>  sysdeps/unix/sysv/linux/i386/libc.abilist     |  4 ++++
>  .../unix/sysv/linux/i386/libpthread.abilist   |  2 --
>  sysdeps/unix/sysv/linux/ia64/libc.abilist     |  4 ++++
>  .../unix/sysv/linux/ia64/libpthread.abilist   |  2 --
>  .../sysv/linux/m68k/coldfire/libc.abilist     |  4 ++++
>  .../linux/m68k/coldfire/libpthread.abilist    |  2 --
>  .../unix/sysv/linux/m68k/m680x0/libc.abilist  |  4 ++++
>  .../sysv/linux/m68k/m680x0/libpthread.abilist |  2 --
>  .../sysv/linux/microblaze/be/libc.abilist     |  4 ++++
>  .../linux/microblaze/be/libpthread.abilist    |  2 --
>  .../sysv/linux/microblaze/le/libc.abilist     |  4 ++++
>  .../linux/microblaze/le/libpthread.abilist    |  2 --
>  .../sysv/linux/mips/mips32/fpu/libc.abilist   |  4 ++++
>  .../sysv/linux/mips/mips32/libpthread.abilist |  2 --
>  .../sysv/linux/mips/mips32/nofpu/libc.abilist |  4 ++++
>  .../sysv/linux/mips/mips64/libpthread.abilist |  2 --
>  .../sysv/linux/mips/mips64/n32/libc.abilist   |  4 ++++
>  .../sysv/linux/mips/mips64/n64/libc.abilist   |  4 ++++
>  sysdeps/unix/sysv/linux/nios2/libc.abilist    |  4 ++++
>  .../unix/sysv/linux/nios2/libpthread.abilist  |  2 --
>  .../linux/powerpc/powerpc32/fpu/libc.abilist  |  4 ++++
>  .../powerpc/powerpc32/libpthread.abilist      |  2 --
>  .../powerpc/powerpc32/nofpu/libc.abilist      |  4 ++++
>  .../linux/powerpc/powerpc64/be/libc.abilist   |  4 ++++
>  .../powerpc/powerpc64/be/libpthread.abilist   |  2 --
>  .../linux/powerpc/powerpc64/le/libc.abilist   |  4 ++++
>  .../powerpc/powerpc64/le/libpthread.abilist   |  2 --
>  .../unix/sysv/linux/riscv/rv32/libc.abilist   |  4 ++++
>  .../sysv/linux/riscv/rv32/libpthread.abilist  |  2 --
>  .../unix/sysv/linux/riscv/rv64/libc.abilist   |  4 ++++
>  .../sysv/linux/riscv/rv64/libpthread.abilist  |  2 --
>  .../unix/sysv/linux/s390/s390-32/libc.abilist |  4 ++++
>  .../linux/s390/s390-32/libpthread.abilist     |  2 --
>  .../unix/sysv/linux/s390/s390-64/libc.abilist |  4 ++++
>  .../linux/s390/s390-64/libpthread.abilist     |  2 --
>  sysdeps/unix/sysv/linux/sh/be/libc.abilist    |  4 ++++
>  .../unix/sysv/linux/sh/be/libpthread.abilist  |  2 --
>  sysdeps/unix/sysv/linux/sh/le/libc.abilist    |  4 ++++
>  .../unix/sysv/linux/sh/le/libpthread.abilist  |  2 --
>  .../sysv/linux/sparc/sparc32/libc.abilist     |  4 ++++
>  .../linux/sparc/sparc32/libpthread.abilist    |  2 --
>  .../sysv/linux/sparc/sparc64/libc.abilist     |  4 ++++
>  .../linux/sparc/sparc64/libpthread.abilist    |  2 --
>  .../unix/sysv/linux/x86_64/64/libc.abilist    |  4 ++++
>  .../sysv/linux/x86_64/64/libpthread.abilist   |  2 --
>  .../unix/sysv/linux/x86_64/x32/libc.abilist   |  4 ++++
>  .../sysv/linux/x86_64/x32/libpthread.abilist  |  2 --
>  68 files changed, 152 insertions(+), 70 deletions(-)
> 
> diff --git a/nptl/Makefile b/nptl/Makefile
> index c66e4dccab..fa8bcf8c62 100644
> --- a/nptl/Makefile
> +++ b/nptl/Makefile
> @@ -87,6 +87,7 @@ routines = \
>    pthread_setcancelstate \
>    pthread_setcanceltype \
>    pthread_setschedparam \
> +  pthread_setspecific \
>    pthread_sigmask \
>    unwind \
>  
> @@ -208,7 +209,6 @@ libpthread-routines = \
>    pthread_setconcurrency \
>    pthread_setname \
>    pthread_setschedprio \
> -  pthread_setspecific \
>    pthread_sigqueue \
>    pthread_spin_destroy \
>    pthread_spin_init \

Ok.

> diff --git a/nptl/Versions b/nptl/Versions
> index 218d6bbbf8..58a37b8816 100644
> --- a/nptl/Versions
> +++ b/nptl/Versions
> @@ -3,6 +3,7 @@ libc {
>      __pthread_getspecific;
>      __pthread_key_create;
>      __pthread_once;
> +    __pthread_setspecific;
>      _pthread_cleanup_pop;
>      _pthread_cleanup_pop_restore;
>      _pthread_cleanup_push;
> @@ -41,6 +42,7 @@ libc {
>      pthread_setcancelstate;
>      pthread_setcanceltype;
>      pthread_setschedparam;
> +    pthread_setspecific;
>      pthread_sigmask;
>    }
>    GLIBC_2.1 {
> @@ -93,10 +95,12 @@ libc {
>      __pthread_getspecific;
>      __pthread_key_create;
>      __pthread_once;
> +    __pthread_setspecific;

Why do we need a __pthread_setspecific for 2.34? 

>      pthread_getspecific;
>      pthread_key_create;
>      pthread_mutex_consistent;
>      pthread_once;
> +    pthread_setspecific;
>    }
>    GLIBC_PRIVATE {
>      __futex_abstimed_wait64;
> @@ -158,7 +162,6 @@ libpthread {
>      __pthread_mutexattr_destroy;
>      __pthread_mutexattr_init;
>      __pthread_mutexattr_settype;
> -    __pthread_setspecific;
>      __read;
>      __send;
>      __sigaction;
> @@ -197,7 +200,6 @@ libpthread {
>      pthread_mutexattr_getkind_np;
>      pthread_mutexattr_init;
>      pthread_mutexattr_setkind_np;
> -    pthread_setspecific;
>      pthread_sigmask;
>      pthread_testcancel;
>      raise;

Ok.

> diff --git a/nptl/nptl-init.c b/nptl/nptl-init.c
> index 5be58fc966..cacbf045a7 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_setspecific = __pthread_setspecific,
>      .ptr__nptl_setxid = __nptl_setxid,
>    };
>  # define ptr_pthread_functions &pthread_functions

Ok.

> diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
> index 1d69a0f617..c9e845e4a2 100644
> --- a/nptl/pthreadP.h
> +++ b/nptl/pthreadP.h
> @@ -520,6 +520,7 @@ 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);
> +libc_hidden_proto (__pthread_setspecific)
>  extern int __pthread_once (pthread_once_t *once_control,
>  			   void (*init_routine) (void));
>  libc_hidden_proto (__pthread_once)

Ok.

> @@ -554,7 +555,6 @@ hidden_proto (__pthread_mutex_unlock)
>  hidden_proto (__pthread_rwlock_rdlock)
>  hidden_proto (__pthread_rwlock_wrlock)
>  hidden_proto (__pthread_rwlock_unlock)
> -hidden_proto (__pthread_setspecific)
>  hidden_proto (__pthread_testcancel)
>  hidden_proto (__pthread_mutexattr_init)
>  hidden_proto (__pthread_mutexattr_settype)

Ok.

> diff --git a/nptl/pthread_setspecific.c b/nptl/pthread_setspecific.c
> index a6e84cd001..892a4307e7 100644
> --- a/nptl/pthread_setspecific.c
> +++ b/nptl/pthread_setspecific.c
> @@ -19,10 +19,10 @@
>  #include <errno.h>
>  #include <stdlib.h>
>  #include "pthreadP.h"
> -
> +#include <shlib-compat.h>
>  
>  int
> -__pthread_setspecific (pthread_key_t key, const void *value)
> +__pthread_setspecific_1 (pthread_key_t key, const void *value)
>  {
>    struct pthread *self;
>    unsigned int idx1st;
> @@ -89,5 +89,19 @@ __pthread_setspecific (pthread_key_t key, const void *value)
>  
>    return 0;
>  }
> -weak_alias (__pthread_setspecific, pthread_setspecific)
> -hidden_def (__pthread_setspecific)
> +versioned_symbol (libc, __pthread_setspecific_1, __pthread_setspecific,
> +		  GLIBC_2_34);
> +libc_hidden_ver (__pthread_setspecific_1, __pthread_setspecific)
> +
> +/* Several aliases for setting different symbol versions.  */
> +strong_alias (__pthread_setspecific_1, __pthread_setspecific_2)
> +strong_alias (__pthread_setspecific_1, __pthread_setspecific_3)
> +strong_alias (__pthread_setspecific_1, __pthread_setspecific_4)
> +
> +versioned_symbol (libc, __pthread_setspecific_2, pthread_setspecific,
> +		  GLIBC_2_34);
> +#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_34)
> +compat_symbol (libc, __pthread_setspecific_3,
> +	       __pthread_setspecific, GLIBC_2_0);
> +compat_symbol (libc, __pthread_setspecific_4, pthread_setspecific, GLIBC_2_0);
> +#endif

I think you might want to revise it once compat_symbol has support
for multiple targets.

> diff --git a/sysdeps/nptl/libc-lockP.h b/sysdeps/nptl/libc-lockP.h
> index bf92a035f8..10a24568a9 100644
> --- a/sysdeps/nptl/libc-lockP.h
> +++ b/sysdeps/nptl/libc-lockP.h
> @@ -338,7 +338,6 @@ weak_extern (__pthread_rwlock_tryrdlock)
>  weak_extern (__pthread_rwlock_wrlock)
>  weak_extern (__pthread_rwlock_trywrlock)
>  weak_extern (__pthread_rwlock_unlock)
> -weak_extern (__pthread_setspecific)
>  weak_extern (__pthread_initialize)
>  weak_extern (__pthread_atfork)
>  # else
> @@ -356,7 +355,6 @@ weak_extern (__pthread_atfork)
>  #  pragma weak __pthread_rwlock_wrlock
>  #  pragma weak __pthread_rwlock_trywrlock
>  #  pragma weak __pthread_rwlock_unlock
> -#  pragma weak __pthread_setspecific
>  #  pragma weak __pthread_initialize
>  #  pragma weak __pthread_atfork
>  # endif
> diff --git a/sysdeps/nptl/pthread-functions.h b/sysdeps/nptl/pthread-functions.h
> index 4b4816b873..2d89013ff5 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 *);
> -  int (*ptr___pthread_setspecific) (pthread_key_t, const void *);
>    int (*ptr__nptl_setxid) (struct xid_command *);
>  };
>  

Ok.

> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index ae0e7a313e..2601be32bf 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -342,6 +342,7 @@ 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_setspecific F
>  GLIBC_2.17 __pthread_unwind_next F
>  GLIBC_2.17 __ptsname_r_chk F
>  GLIBC_2.17 __pwrite64 F
> @@ -1464,6 +1465,7 @@ GLIBC_2.17 pthread_self F
>  GLIBC_2.17 pthread_setcancelstate F
>  GLIBC_2.17 pthread_setcanceltype F
>  GLIBC_2.17 pthread_setschedparam F
> +GLIBC_2.17 pthread_setspecific F
>  GLIBC_2.17 pthread_sigmask F
>  GLIBC_2.17 ptrace F
>  GLIBC_2.17 ptsname F
> @@ -2190,8 +2192,10 @@ 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_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_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 667e00551a..778eb45ffc 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> @@ -30,7 +30,6 @@ GLIBC_2.17 __pthread_rwlock_tryrdlock F
>  GLIBC_2.17 __pthread_rwlock_trywrlock F
>  GLIBC_2.17 __pthread_rwlock_unlock F
>  GLIBC_2.17 __pthread_rwlock_wrlock F
> -GLIBC_2.17 __pthread_setspecific F
>  GLIBC_2.17 __pthread_unregister_cancel F
>  GLIBC_2.17 __pthread_unregister_cancel_restore F
>  GLIBC_2.17 __pwrite64 F
> @@ -132,7 +131,6 @@ GLIBC_2.17 pthread_setaffinity_np F
>  GLIBC_2.17 pthread_setconcurrency F
>  GLIBC_2.17 pthread_setname_np F
>  GLIBC_2.17 pthread_setschedprio F
> -GLIBC_2.17 pthread_setspecific F
>  GLIBC_2.17 pthread_sigqueue F
>  GLIBC_2.17 pthread_spin_destroy F
>  GLIBC_2.17 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index d27a8d9ad4..d334d0759d 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -191,6 +191,7 @@ 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 __pthread_setspecific F
>  GLIBC_2.0 __rcmd_errstr D 0x8
>  GLIBC_2.0 __read F
>  GLIBC_2.0 __realloc_hook D 0x8
> @@ -901,6 +902,7 @@ GLIBC_2.0 pthread_self F
>  GLIBC_2.0 pthread_setcancelstate F
>  GLIBC_2.0 pthread_setcanceltype F
>  GLIBC_2.0 pthread_setschedparam F
> +GLIBC_2.0 pthread_setspecific F
>  GLIBC_2.0 pthread_sigmask F
>  GLIBC_2.0 ptrace F
>  GLIBC_2.0 putc F
> @@ -2271,11 +2273,13 @@ 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_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_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> +GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.4 _IO_fprintf F
>  GLIBC_2.4 _IO_printf F
>  GLIBC_2.4 _IO_sprintf F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> index 66f17908e0..8ccbe19154 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> @@ -16,7 +16,6 @@ GLIBC_2.0 __pthread_mutex_unlock F
>  GLIBC_2.0 __pthread_mutexattr_destroy F
>  GLIBC_2.0 __pthread_mutexattr_init F
>  GLIBC_2.0 __pthread_mutexattr_settype F
> -GLIBC_2.0 __pthread_setspecific F
>  GLIBC_2.0 __read F
>  GLIBC_2.0 __send F
>  GLIBC_2.0 __sigaction F
> @@ -54,7 +53,6 @@ GLIBC_2.0 pthread_mutexattr_destroy F
>  GLIBC_2.0 pthread_mutexattr_getkind_np F
>  GLIBC_2.0 pthread_mutexattr_init F
>  GLIBC_2.0 pthread_mutexattr_setkind_np F
> -GLIBC_2.0 pthread_setspecific F
>  GLIBC_2.0 pthread_testcancel F
>  GLIBC_2.0 raise F
>  GLIBC_2.0 read F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index f740f0d40a..49034a2bdd 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -331,6 +331,7 @@ 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_setspecific F
>  GLIBC_2.32 __pthread_unwind_next F
>  GLIBC_2.32 __ptsname_r_chk F
>  GLIBC_2.32 __pwrite64 F
> @@ -1391,6 +1392,7 @@ GLIBC_2.32 pthread_self F
>  GLIBC_2.32 pthread_setcancelstate F
>  GLIBC_2.32 pthread_setcanceltype F
>  GLIBC_2.32 pthread_setschedparam F
> +GLIBC_2.32 pthread_setspecific F
>  GLIBC_2.32 pthread_sigmask F
>  GLIBC_2.32 ptrace F
>  GLIBC_2.32 ptsname F
> @@ -1950,8 +1952,10 @@ 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_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_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 977e964a47..fba129cfad 100644
> --- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> @@ -29,7 +29,6 @@ GLIBC_2.32 __pthread_rwlock_tryrdlock F
>  GLIBC_2.32 __pthread_rwlock_trywrlock F
>  GLIBC_2.32 __pthread_rwlock_unlock F
>  GLIBC_2.32 __pthread_rwlock_wrlock F
> -GLIBC_2.32 __pthread_setspecific F
>  GLIBC_2.32 __pthread_unregister_cancel F
>  GLIBC_2.32 __pthread_unregister_cancel_restore F
>  GLIBC_2.32 __pwrite64 F
> @@ -150,7 +149,6 @@ GLIBC_2.32 pthread_setattr_default_np F
>  GLIBC_2.32 pthread_setconcurrency F
>  GLIBC_2.32 pthread_setname_np F
>  GLIBC_2.32 pthread_setschedprio F
> -GLIBC_2.32 pthread_setspecific F
>  GLIBC_2.32 pthread_sigqueue F
>  GLIBC_2.32 pthread_spin_destroy F
>  GLIBC_2.32 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index 60baeff299..3727e33898 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -161,11 +161,13 @@ 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_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_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> +GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.4 _Exit F
>  GLIBC_2.4 _IO_2_1_stderr_ D 0xa0
>  GLIBC_2.4 _IO_2_1_stdin_ D 0xa0
> @@ -497,6 +499,7 @@ 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_setspecific F
>  GLIBC_2.4 __pthread_unwind_next F
>  GLIBC_2.4 __ptsname_r_chk F
>  GLIBC_2.4 __pwrite64 F
> @@ -1566,6 +1569,7 @@ GLIBC_2.4 pthread_self F
>  GLIBC_2.4 pthread_setcancelstate F
>  GLIBC_2.4 pthread_setcanceltype F
>  GLIBC_2.4 pthread_setschedparam F
> +GLIBC_2.4 pthread_setspecific F
>  GLIBC_2.4 pthread_sigmask F
>  GLIBC_2.4 ptrace F
>  GLIBC_2.4 ptsname F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> index d6612a1e9e..2cb1f0e2f5 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> @@ -64,7 +64,6 @@ GLIBC_2.4 __pthread_rwlock_tryrdlock F
>  GLIBC_2.4 __pthread_rwlock_trywrlock F
>  GLIBC_2.4 __pthread_rwlock_unlock F
>  GLIBC_2.4 __pthread_rwlock_wrlock F
> -GLIBC_2.4 __pthread_setspecific F
>  GLIBC_2.4 __pthread_unregister_cancel F
>  GLIBC_2.4 __pthread_unregister_cancel_restore F
>  GLIBC_2.4 __pwrite64 F
> @@ -162,7 +161,6 @@ GLIBC_2.4 pthread_rwlockattr_setpshared F
>  GLIBC_2.4 pthread_setaffinity_np F
>  GLIBC_2.4 pthread_setconcurrency F
>  GLIBC_2.4 pthread_setschedprio F
> -GLIBC_2.4 pthread_setspecific F
>  GLIBC_2.4 pthread_spin_destroy F
>  GLIBC_2.4 pthread_spin_init F
>  GLIBC_2.4 pthread_spin_lock F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index 3525e76e3c..a7bc3a9a8e 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -158,11 +158,13 @@ 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_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_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> +GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.4 _Exit F
>  GLIBC_2.4 _IO_2_1_stderr_ D 0xa0
>  GLIBC_2.4 _IO_2_1_stdin_ D 0xa0
> @@ -494,6 +496,7 @@ 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_setspecific F
>  GLIBC_2.4 __pthread_unwind_next F
>  GLIBC_2.4 __ptsname_r_chk F
>  GLIBC_2.4 __pwrite64 F
> @@ -1563,6 +1566,7 @@ GLIBC_2.4 pthread_self F
>  GLIBC_2.4 pthread_setcancelstate F
>  GLIBC_2.4 pthread_setcanceltype F
>  GLIBC_2.4 pthread_setschedparam F
> +GLIBC_2.4 pthread_setspecific F
>  GLIBC_2.4 pthread_sigmask F
>  GLIBC_2.4 ptrace F
>  GLIBC_2.4 ptsname F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> index d6612a1e9e..2cb1f0e2f5 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> @@ -64,7 +64,6 @@ GLIBC_2.4 __pthread_rwlock_tryrdlock F
>  GLIBC_2.4 __pthread_rwlock_trywrlock F
>  GLIBC_2.4 __pthread_rwlock_unlock F
>  GLIBC_2.4 __pthread_rwlock_wrlock F
> -GLIBC_2.4 __pthread_setspecific F
>  GLIBC_2.4 __pthread_unregister_cancel F
>  GLIBC_2.4 __pthread_unregister_cancel_restore F
>  GLIBC_2.4 __pwrite64 F
> @@ -162,7 +161,6 @@ GLIBC_2.4 pthread_rwlockattr_setpshared F
>  GLIBC_2.4 pthread_setaffinity_np F
>  GLIBC_2.4 pthread_setconcurrency F
>  GLIBC_2.4 pthread_setschedprio F
> -GLIBC_2.4 pthread_setspecific F
>  GLIBC_2.4 pthread_spin_destroy F
>  GLIBC_2.4 pthread_spin_init F
>  GLIBC_2.4 pthread_spin_lock F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index ec6b7f2755..61de7117bd 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -335,6 +335,7 @@ 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_setspecific F
>  GLIBC_2.29 __pthread_unwind_next F
>  GLIBC_2.29 __ptsname_r_chk F
>  GLIBC_2.29 __pwrite64 F
> @@ -1452,6 +1453,7 @@ GLIBC_2.29 pthread_self F
>  GLIBC_2.29 pthread_setcancelstate F
>  GLIBC_2.29 pthread_setcanceltype F
>  GLIBC_2.29 pthread_setschedparam F
> +GLIBC_2.29 pthread_setspecific F
>  GLIBC_2.29 pthread_sigmask F
>  GLIBC_2.29 ptrace F
>  GLIBC_2.29 ptsname F
> @@ -2134,8 +2136,10 @@ 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_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_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 78eb06a880..760740a4ed 100644
> --- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> @@ -29,7 +29,6 @@ GLIBC_2.29 __pthread_rwlock_tryrdlock F
>  GLIBC_2.29 __pthread_rwlock_trywrlock F
>  GLIBC_2.29 __pthread_rwlock_unlock F
>  GLIBC_2.29 __pthread_rwlock_wrlock F
> -GLIBC_2.29 __pthread_setspecific F
>  GLIBC_2.29 __pthread_unregister_cancel F
>  GLIBC_2.29 __pthread_unregister_cancel_restore F
>  GLIBC_2.29 __pwrite64 F
> @@ -145,7 +144,6 @@ GLIBC_2.29 pthread_setattr_default_np F
>  GLIBC_2.29 pthread_setconcurrency F
>  GLIBC_2.29 pthread_setname_np F
>  GLIBC_2.29 pthread_setschedprio F
> -GLIBC_2.29 pthread_setspecific F
>  GLIBC_2.29 pthread_sigqueue F
>  GLIBC_2.29 pthread_spin_destroy F
>  GLIBC_2.29 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index 0ef57987cd..c380a422ca 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -359,6 +359,7 @@ 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 __pthread_setspecific F
>  GLIBC_2.2 __pwrite64 F
>  GLIBC_2.2 __rawmemchr F
>  GLIBC_2.2 __rcmd_errstr D 0x4
> @@ -1285,6 +1286,7 @@ GLIBC_2.2 pthread_self F
>  GLIBC_2.2 pthread_setcancelstate F
>  GLIBC_2.2 pthread_setcanceltype F
>  GLIBC_2.2 pthread_setschedparam F
> +GLIBC_2.2 pthread_setspecific F
>  GLIBC_2.2 pthread_sigmask F
>  GLIBC_2.2 ptrace F
>  GLIBC_2.2 ptsname F
> @@ -2092,11 +2094,13 @@ 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_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_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> +GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.4 __confstr_chk F
>  GLIBC_2.4 __fgets_chk F
>  GLIBC_2.4 __fgets_unlocked_chk F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> index cc98751c47..c24d832b13 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> @@ -35,7 +35,6 @@ GLIBC_2.2 __pthread_rwlock_tryrdlock F
>  GLIBC_2.2 __pthread_rwlock_trywrlock F
>  GLIBC_2.2 __pthread_rwlock_unlock F
>  GLIBC_2.2 __pthread_rwlock_wrlock F
> -GLIBC_2.2 __pthread_setspecific F
>  GLIBC_2.2 __pwrite64 F
>  GLIBC_2.2 __read F
>  GLIBC_2.2 __res_state F
> @@ -118,7 +117,6 @@ GLIBC_2.2 pthread_rwlockattr_init F
>  GLIBC_2.2 pthread_rwlockattr_setkind_np F
>  GLIBC_2.2 pthread_rwlockattr_setpshared F
>  GLIBC_2.2 pthread_setconcurrency F
> -GLIBC_2.2 pthread_setspecific F
>  GLIBC_2.2 pthread_spin_destroy F
>  GLIBC_2.2 pthread_spin_init F
>  GLIBC_2.2 pthread_spin_lock F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index fa7a28a5e3..dd10b08625 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -188,6 +188,7 @@ 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 __pthread_setspecific F
>  GLIBC_2.0 __rcmd_errstr D 0x4
>  GLIBC_2.0 __read F
>  GLIBC_2.0 __realloc_hook D 0x4
> @@ -878,6 +879,7 @@ GLIBC_2.0 pthread_self F
>  GLIBC_2.0 pthread_setcancelstate F
>  GLIBC_2.0 pthread_setcanceltype F
>  GLIBC_2.0 pthread_setschedparam F
> +GLIBC_2.0 pthread_setspecific F
>  GLIBC_2.0 pthread_sigmask F
>  GLIBC_2.0 ptrace F
>  GLIBC_2.0 putc F
> @@ -2259,11 +2261,13 @@ 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_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_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> +GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.4 __confstr_chk F
>  GLIBC_2.4 __fgets_chk F
>  GLIBC_2.4 __fgets_unlocked_chk F
> diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> index 6c0211a134..6b644a2513 100644
> --- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> @@ -16,7 +16,6 @@ GLIBC_2.0 __pthread_mutex_unlock F
>  GLIBC_2.0 __pthread_mutexattr_destroy F
>  GLIBC_2.0 __pthread_mutexattr_init F
>  GLIBC_2.0 __pthread_mutexattr_settype F
> -GLIBC_2.0 __pthread_setspecific F
>  GLIBC_2.0 __read F
>  GLIBC_2.0 __send F
>  GLIBC_2.0 __sigaction F
> @@ -54,7 +53,6 @@ GLIBC_2.0 pthread_mutexattr_destroy F
>  GLIBC_2.0 pthread_mutexattr_getkind_np F
>  GLIBC_2.0 pthread_mutexattr_init F
>  GLIBC_2.0 pthread_mutexattr_setkind_np F
> -GLIBC_2.0 pthread_setspecific F
>  GLIBC_2.0 pthread_testcancel F
>  GLIBC_2.0 raise F
>  GLIBC_2.0 read F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index 078315ddda..fe64b5c1f0 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -363,6 +363,7 @@ 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 __pthread_setspecific F
>  GLIBC_2.2 __pwrite64 F
>  GLIBC_2.2 __rawmemchr F
>  GLIBC_2.2 __rcmd_errstr D 0x8
> @@ -1306,6 +1307,7 @@ GLIBC_2.2 pthread_self F
>  GLIBC_2.2 pthread_setcancelstate F
>  GLIBC_2.2 pthread_setcanceltype F
>  GLIBC_2.2 pthread_setschedparam F
> +GLIBC_2.2 pthread_setspecific F
>  GLIBC_2.2 pthread_sigmask F
>  GLIBC_2.2 ptrace F
>  GLIBC_2.2 ptsname F
> @@ -2124,11 +2126,13 @@ 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_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_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> +GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.4 __confstr_chk F
>  GLIBC_2.4 __fgets_chk F
>  GLIBC_2.4 __fgets_unlocked_chk F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> index f18ff271c2..1669fb860d 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> @@ -35,7 +35,6 @@ GLIBC_2.2 __pthread_rwlock_tryrdlock F
>  GLIBC_2.2 __pthread_rwlock_trywrlock F
>  GLIBC_2.2 __pthread_rwlock_unlock F
>  GLIBC_2.2 __pthread_rwlock_wrlock F
> -GLIBC_2.2 __pthread_setspecific F
>  GLIBC_2.2 __pwrite64 F
>  GLIBC_2.2 __read F
>  GLIBC_2.2 __res_state F
> @@ -118,7 +117,6 @@ GLIBC_2.2 pthread_rwlockattr_init F
>  GLIBC_2.2 pthread_rwlockattr_setkind_np F
>  GLIBC_2.2 pthread_rwlockattr_setpshared F
>  GLIBC_2.2 pthread_setconcurrency F
> -GLIBC_2.2 pthread_setspecific F
>  GLIBC_2.2 pthread_spin_destroy F
>  GLIBC_2.2 pthread_spin_init F
>  GLIBC_2.2 pthread_spin_lock F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index e297ce158e..1af30ff1b3 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -162,11 +162,13 @@ 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_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_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> +GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.4 _Exit F
>  GLIBC_2.4 _IO_2_1_stderr_ D 0x98
>  GLIBC_2.4 _IO_2_1_stdin_ D 0x98
> @@ -483,6 +485,7 @@ 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_setspecific F
>  GLIBC_2.4 __pthread_unwind_next F
>  GLIBC_2.4 __ptsname_r_chk F
>  GLIBC_2.4 __pwrite64 F
> @@ -1546,6 +1549,7 @@ GLIBC_2.4 pthread_self F
>  GLIBC_2.4 pthread_setcancelstate F
>  GLIBC_2.4 pthread_setcanceltype F
>  GLIBC_2.4 pthread_setschedparam F
> +GLIBC_2.4 pthread_setspecific F
>  GLIBC_2.4 pthread_sigmask F
>  GLIBC_2.4 ptrace F
>  GLIBC_2.4 ptsname F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> index d6612a1e9e..2cb1f0e2f5 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> @@ -64,7 +64,6 @@ GLIBC_2.4 __pthread_rwlock_tryrdlock F
>  GLIBC_2.4 __pthread_rwlock_trywrlock F
>  GLIBC_2.4 __pthread_rwlock_unlock F
>  GLIBC_2.4 __pthread_rwlock_wrlock F
> -GLIBC_2.4 __pthread_setspecific F
>  GLIBC_2.4 __pthread_unregister_cancel F
>  GLIBC_2.4 __pthread_unregister_cancel_restore F
>  GLIBC_2.4 __pwrite64 F
> @@ -162,7 +161,6 @@ GLIBC_2.4 pthread_rwlockattr_setpshared F
>  GLIBC_2.4 pthread_setaffinity_np F
>  GLIBC_2.4 pthread_setconcurrency F
>  GLIBC_2.4 pthread_setschedprio F
> -GLIBC_2.4 pthread_setspecific F
>  GLIBC_2.4 pthread_spin_destroy F
>  GLIBC_2.4 pthread_spin_init F
>  GLIBC_2.4 pthread_spin_lock F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index 10c54ce3ab..372bb9db63 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -188,6 +188,7 @@ 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 __pthread_setspecific F
>  GLIBC_2.0 __rcmd_errstr D 0x4
>  GLIBC_2.0 __read F
>  GLIBC_2.0 __realloc_hook D 0x4
> @@ -877,6 +878,7 @@ GLIBC_2.0 pthread_self F
>  GLIBC_2.0 pthread_setcancelstate F
>  GLIBC_2.0 pthread_setcanceltype F
>  GLIBC_2.0 pthread_setschedparam F
> +GLIBC_2.0 pthread_setspecific F
>  GLIBC_2.0 pthread_sigmask F
>  GLIBC_2.0 ptrace F
>  GLIBC_2.0 putc F
> @@ -2204,11 +2206,13 @@ 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_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_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> +GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.4 __confstr_chk F
>  GLIBC_2.4 __fgets_chk F
>  GLIBC_2.4 __fgets_unlocked_chk F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> index 6c0211a134..6b644a2513 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> @@ -16,7 +16,6 @@ GLIBC_2.0 __pthread_mutex_unlock F
>  GLIBC_2.0 __pthread_mutexattr_destroy F
>  GLIBC_2.0 __pthread_mutexattr_init F
>  GLIBC_2.0 __pthread_mutexattr_settype F
> -GLIBC_2.0 __pthread_setspecific F
>  GLIBC_2.0 __read F
>  GLIBC_2.0 __send F
>  GLIBC_2.0 __sigaction F
> @@ -54,7 +53,6 @@ GLIBC_2.0 pthread_mutexattr_destroy F
>  GLIBC_2.0 pthread_mutexattr_getkind_np F
>  GLIBC_2.0 pthread_mutexattr_init F
>  GLIBC_2.0 pthread_mutexattr_setkind_np F
> -GLIBC_2.0 pthread_setspecific F
>  GLIBC_2.0 pthread_testcancel F
>  GLIBC_2.0 raise F
>  GLIBC_2.0 read F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index e6d033a29b..7b1b02ff24 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -343,6 +343,7 @@ 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_setspecific F
>  GLIBC_2.18 __pthread_unwind_next F
>  GLIBC_2.18 __ptsname_r_chk F
>  GLIBC_2.18 __pwrite64 F
> @@ -1467,6 +1468,7 @@ GLIBC_2.18 pthread_self F
>  GLIBC_2.18 pthread_setcancelstate F
>  GLIBC_2.18 pthread_setcanceltype F
>  GLIBC_2.18 pthread_setschedparam F
> +GLIBC_2.18 pthread_setspecific F
>  GLIBC_2.18 pthread_sigmask F
>  GLIBC_2.18 ptrace F
>  GLIBC_2.18 ptsname F
> @@ -2185,8 +2187,10 @@ 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_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_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 4751a8e6c5..64e0587af6 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> @@ -30,7 +30,6 @@ GLIBC_2.18 __pthread_rwlock_tryrdlock F
>  GLIBC_2.18 __pthread_rwlock_trywrlock F
>  GLIBC_2.18 __pthread_rwlock_unlock F
>  GLIBC_2.18 __pthread_rwlock_wrlock F
> -GLIBC_2.18 __pthread_setspecific F
>  GLIBC_2.18 __pthread_unregister_cancel F
>  GLIBC_2.18 __pthread_unregister_cancel_restore F
>  GLIBC_2.18 __pwrite64 F
> @@ -134,7 +133,6 @@ GLIBC_2.18 pthread_setattr_default_np F
>  GLIBC_2.18 pthread_setconcurrency F
>  GLIBC_2.18 pthread_setname_np F
>  GLIBC_2.18 pthread_setschedprio F
> -GLIBC_2.18 pthread_setspecific F
>  GLIBC_2.18 pthread_sigqueue F
>  GLIBC_2.18 pthread_spin_destroy F
>  GLIBC_2.18 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index 448c257562..07ec814a0d 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -343,6 +343,7 @@ 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_setspecific F
>  GLIBC_2.18 __pthread_unwind_next F
>  GLIBC_2.18 __ptsname_r_chk F
>  GLIBC_2.18 __pwrite64 F
> @@ -1467,6 +1468,7 @@ GLIBC_2.18 pthread_self F
>  GLIBC_2.18 pthread_setcancelstate F
>  GLIBC_2.18 pthread_setcanceltype F
>  GLIBC_2.18 pthread_setschedparam F
> +GLIBC_2.18 pthread_setspecific F
>  GLIBC_2.18 pthread_sigmask F
>  GLIBC_2.18 ptrace F
>  GLIBC_2.18 ptsname F
> @@ -2182,8 +2184,10 @@ 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_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_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 4751a8e6c5..64e0587af6 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> @@ -30,7 +30,6 @@ GLIBC_2.18 __pthread_rwlock_tryrdlock F
>  GLIBC_2.18 __pthread_rwlock_trywrlock F
>  GLIBC_2.18 __pthread_rwlock_unlock F
>  GLIBC_2.18 __pthread_rwlock_wrlock F
> -GLIBC_2.18 __pthread_setspecific F
>  GLIBC_2.18 __pthread_unregister_cancel F
>  GLIBC_2.18 __pthread_unregister_cancel_restore F
>  GLIBC_2.18 __pwrite64 F
> @@ -134,7 +133,6 @@ GLIBC_2.18 pthread_setattr_default_np F
>  GLIBC_2.18 pthread_setconcurrency F
>  GLIBC_2.18 pthread_setname_np F
>  GLIBC_2.18 pthread_setschedprio F
> -GLIBC_2.18 pthread_setspecific F
>  GLIBC_2.18 pthread_sigqueue F
>  GLIBC_2.18 pthread_spin_destroy F
>  GLIBC_2.18 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index 8f5df09289..51253a4216 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -186,6 +186,7 @@ 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 __pthread_setspecific F
>  GLIBC_2.0 __rcmd_errstr D 0x4
>  GLIBC_2.0 __read F
>  GLIBC_2.0 __realloc_hook D 0x4
> @@ -874,6 +875,7 @@ GLIBC_2.0 pthread_self F
>  GLIBC_2.0 pthread_setcancelstate F
>  GLIBC_2.0 pthread_setcanceltype F
>  GLIBC_2.0 pthread_setschedparam F
> +GLIBC_2.0 pthread_setspecific F
>  GLIBC_2.0 pthread_sigmask F
>  GLIBC_2.0 ptrace F
>  GLIBC_2.0 putc F
> @@ -2175,11 +2177,13 @@ 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_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_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> +GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.4 __confstr_chk F
>  GLIBC_2.4 __fgets_chk F
>  GLIBC_2.4 __fgets_unlocked_chk F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> index ea9a850ba9..1118a25c82 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> @@ -16,7 +16,6 @@ GLIBC_2.0 __pthread_mutex_unlock F
>  GLIBC_2.0 __pthread_mutexattr_destroy F
>  GLIBC_2.0 __pthread_mutexattr_init F
>  GLIBC_2.0 __pthread_mutexattr_settype F
> -GLIBC_2.0 __pthread_setspecific F
>  GLIBC_2.0 __read F
>  GLIBC_2.0 __send F
>  GLIBC_2.0 __sigaction F
> @@ -54,7 +53,6 @@ GLIBC_2.0 pthread_mutexattr_destroy F
>  GLIBC_2.0 pthread_mutexattr_getkind_np F
>  GLIBC_2.0 pthread_mutexattr_init F
>  GLIBC_2.0 pthread_mutexattr_setkind_np F
> -GLIBC_2.0 pthread_setspecific F
>  GLIBC_2.0 pthread_testcancel F
>  GLIBC_2.0 raise F
>  GLIBC_2.0 read F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index 4d39526a30..2574b7627e 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -186,6 +186,7 @@ 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 __pthread_setspecific F
>  GLIBC_2.0 __rcmd_errstr D 0x4
>  GLIBC_2.0 __read F
>  GLIBC_2.0 __realloc_hook D 0x4
> @@ -874,6 +875,7 @@ GLIBC_2.0 pthread_self F
>  GLIBC_2.0 pthread_setcancelstate F
>  GLIBC_2.0 pthread_setcanceltype F
>  GLIBC_2.0 pthread_setschedparam F
> +GLIBC_2.0 pthread_setspecific F
>  GLIBC_2.0 pthread_sigmask F
>  GLIBC_2.0 ptrace F
>  GLIBC_2.0 putc F
> @@ -2173,11 +2175,13 @@ 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_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_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> +GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.4 __confstr_chk F
>  GLIBC_2.4 __fgets_chk F
>  GLIBC_2.4 __fgets_unlocked_chk F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> index ea9a850ba9..1118a25c82 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> @@ -16,7 +16,6 @@ GLIBC_2.0 __pthread_mutex_unlock F
>  GLIBC_2.0 __pthread_mutexattr_destroy F
>  GLIBC_2.0 __pthread_mutexattr_init F
>  GLIBC_2.0 __pthread_mutexattr_settype F
> -GLIBC_2.0 __pthread_setspecific F
>  GLIBC_2.0 __read F
>  GLIBC_2.0 __send F
>  GLIBC_2.0 __sigaction F
> @@ -54,7 +53,6 @@ GLIBC_2.0 pthread_mutexattr_destroy F
>  GLIBC_2.0 pthread_mutexattr_getkind_np F
>  GLIBC_2.0 pthread_mutexattr_init F
>  GLIBC_2.0 pthread_mutexattr_setkind_np F
> -GLIBC_2.0 pthread_setspecific F
>  GLIBC_2.0 pthread_testcancel F
>  GLIBC_2.0 raise F
>  GLIBC_2.0 read F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index 3cfb9e62db..0580b260e2 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -186,6 +186,7 @@ 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 __pthread_setspecific F
>  GLIBC_2.0 __rcmd_errstr D 0x4
>  GLIBC_2.0 __read F
>  GLIBC_2.0 __realloc_hook D 0x4
> @@ -874,6 +875,7 @@ GLIBC_2.0 pthread_self F
>  GLIBC_2.0 pthread_setcancelstate F
>  GLIBC_2.0 pthread_setcanceltype F
>  GLIBC_2.0 pthread_setschedparam F
> +GLIBC_2.0 pthread_setspecific F
>  GLIBC_2.0 pthread_sigmask F
>  GLIBC_2.0 ptrace F
>  GLIBC_2.0 putc F
> @@ -2181,11 +2183,13 @@ 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_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_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> +GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.4 __confstr_chk F
>  GLIBC_2.4 __fgets_chk F
>  GLIBC_2.4 __fgets_unlocked_chk F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index 9b5cc5db4c..40fe64ea6b 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -186,6 +186,7 @@ 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 __pthread_setspecific F
>  GLIBC_2.0 __rcmd_errstr D 0x8
>  GLIBC_2.0 __read F
>  GLIBC_2.0 __realloc_hook D 0x8
> @@ -872,6 +873,7 @@ GLIBC_2.0 pthread_self F
>  GLIBC_2.0 pthread_setcancelstate F
>  GLIBC_2.0 pthread_setcanceltype F
>  GLIBC_2.0 pthread_setschedparam F
> +GLIBC_2.0 pthread_setspecific F
>  GLIBC_2.0 pthread_sigmask F
>  GLIBC_2.0 ptrace F
>  GLIBC_2.0 putc F
> @@ -2175,11 +2177,13 @@ 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_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_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> +GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.4 __confstr_chk F
>  GLIBC_2.4 __fgets_chk F
>  GLIBC_2.4 __fgets_unlocked_chk F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index 1335395b2f..b9400803eb 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -380,6 +380,7 @@ 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_setspecific F
>  GLIBC_2.21 __pthread_unwind_next F
>  GLIBC_2.21 __ptsname_r_chk F
>  GLIBC_2.21 __pwrite64 F
> @@ -1509,6 +1510,7 @@ GLIBC_2.21 pthread_self F
>  GLIBC_2.21 pthread_setcancelstate F
>  GLIBC_2.21 pthread_setcanceltype F
>  GLIBC_2.21 pthread_setschedparam F
> +GLIBC_2.21 pthread_setspecific F
>  GLIBC_2.21 pthread_sigmask F
>  GLIBC_2.21 ptrace F
>  GLIBC_2.21 ptsname F
> @@ -2223,8 +2225,10 @@ 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_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_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 e6354e8a80..96d1cd0f49 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> @@ -30,7 +30,6 @@ GLIBC_2.21 __pthread_rwlock_tryrdlock F
>  GLIBC_2.21 __pthread_rwlock_trywrlock F
>  GLIBC_2.21 __pthread_rwlock_unlock F
>  GLIBC_2.21 __pthread_rwlock_wrlock F
> -GLIBC_2.21 __pthread_setspecific F
>  GLIBC_2.21 __pthread_unregister_cancel F
>  GLIBC_2.21 __pthread_unregister_cancel_restore F
>  GLIBC_2.21 __pwrite64 F
> @@ -134,7 +133,6 @@ GLIBC_2.21 pthread_setattr_default_np F
>  GLIBC_2.21 pthread_setconcurrency F
>  GLIBC_2.21 pthread_setname_np F
>  GLIBC_2.21 pthread_setschedprio F
> -GLIBC_2.21 pthread_setspecific F
>  GLIBC_2.21 pthread_sigqueue F
>  GLIBC_2.21 pthread_spin_destroy F
>  GLIBC_2.21 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index eb5f9814e8..9f27e4aa50 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -197,6 +197,7 @@ 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 __pthread_setspecific F
>  GLIBC_2.0 __rcmd_errstr D 0x4
>  GLIBC_2.0 __read F
>  GLIBC_2.0 __realloc_hook D 0x4
> @@ -885,6 +886,7 @@ GLIBC_2.0 pthread_self F
>  GLIBC_2.0 pthread_setcancelstate F
>  GLIBC_2.0 pthread_setcanceltype F
>  GLIBC_2.0 pthread_setschedparam F
> +GLIBC_2.0 pthread_setspecific F
>  GLIBC_2.0 pthread_sigmask F
>  GLIBC_2.0 ptrace F
>  GLIBC_2.0 putc F
> @@ -2231,11 +2233,13 @@ 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_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_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> +GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.4 _IO_fprintf F
>  GLIBC_2.4 _IO_printf F
>  GLIBC_2.4 _IO_sprintf F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> index a56ee2d7ca..a8111f4b92 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> @@ -16,7 +16,6 @@ GLIBC_2.0 __pthread_mutex_unlock F
>  GLIBC_2.0 __pthread_mutexattr_destroy F
>  GLIBC_2.0 __pthread_mutexattr_init F
>  GLIBC_2.0 __pthread_mutexattr_settype F
> -GLIBC_2.0 __pthread_setspecific F
>  GLIBC_2.0 __read F
>  GLIBC_2.0 __send F
>  GLIBC_2.0 __sigaction F
> @@ -54,7 +53,6 @@ GLIBC_2.0 pthread_mutexattr_destroy F
>  GLIBC_2.0 pthread_mutexattr_getkind_np F
>  GLIBC_2.0 pthread_mutexattr_init F
>  GLIBC_2.0 pthread_mutexattr_setkind_np F
> -GLIBC_2.0 pthread_setspecific F
>  GLIBC_2.0 pthread_testcancel F
>  GLIBC_2.0 raise F
>  GLIBC_2.0 read F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index b0372c3178..9c91e65fc1 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -197,6 +197,7 @@ 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 __pthread_setspecific F
>  GLIBC_2.0 __rcmd_errstr D 0x4
>  GLIBC_2.0 __read F
>  GLIBC_2.0 __realloc_hook D 0x4
> @@ -885,6 +886,7 @@ GLIBC_2.0 pthread_self F
>  GLIBC_2.0 pthread_setcancelstate F
>  GLIBC_2.0 pthread_setcanceltype F
>  GLIBC_2.0 pthread_setschedparam F
> +GLIBC_2.0 pthread_setspecific F
>  GLIBC_2.0 pthread_sigmask F
>  GLIBC_2.0 ptrace F
>  GLIBC_2.0 putc F
> @@ -2264,11 +2266,13 @@ 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_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_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> +GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.4 _IO_fprintf F
>  GLIBC_2.4 _IO_printf F
>  GLIBC_2.4 _IO_sprintf F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index aa4aadbbb4..0ef070e285 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -412,6 +412,7 @@ 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 __pthread_setspecific F
>  GLIBC_2.3 __pwrite64 F
>  GLIBC_2.3 __rawmemchr F
>  GLIBC_2.3 __rcmd_errstr D 0x8
> @@ -1392,6 +1393,7 @@ GLIBC_2.3 pthread_self F
>  GLIBC_2.3 pthread_setcancelstate F
>  GLIBC_2.3 pthread_setcanceltype F
>  GLIBC_2.3 pthread_setschedparam F
> +GLIBC_2.3 pthread_setspecific F
>  GLIBC_2.3 pthread_sigmask F
>  GLIBC_2.3 ptrace F
>  GLIBC_2.3 ptsname F
> @@ -2094,11 +2096,13 @@ 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_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_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> +GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.4 _IO_fprintf F
>  GLIBC_2.4 _IO_printf F
>  GLIBC_2.4 _IO_sprintf F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> index 6b2c9bba60..a0f5dffd25 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> @@ -56,7 +56,6 @@ GLIBC_2.3 __pthread_rwlock_tryrdlock F
>  GLIBC_2.3 __pthread_rwlock_trywrlock F
>  GLIBC_2.3 __pthread_rwlock_unlock F
>  GLIBC_2.3 __pthread_rwlock_wrlock F
> -GLIBC_2.3 __pthread_setspecific F
>  GLIBC_2.3 __pwrite64 F
>  GLIBC_2.3 __read F
>  GLIBC_2.3 __res_state F
> @@ -138,7 +137,6 @@ GLIBC_2.3 pthread_rwlockattr_init F
>  GLIBC_2.3 pthread_rwlockattr_setkind_np F
>  GLIBC_2.3 pthread_rwlockattr_setpshared F
>  GLIBC_2.3 pthread_setconcurrency F
> -GLIBC_2.3 pthread_setspecific F
>  GLIBC_2.3 pthread_spin_destroy F
>  GLIBC_2.3 pthread_spin_init F
>  GLIBC_2.3 pthread_spin_lock F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index 045912572c..4a6de68ece 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -428,6 +428,7 @@ 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_setspecific F
>  GLIBC_2.17 __pthread_unwind_next F
>  GLIBC_2.17 __ptsname_r_chk F
>  GLIBC_2.17 __pwrite64 F
> @@ -1553,6 +1554,7 @@ GLIBC_2.17 pthread_self F
>  GLIBC_2.17 pthread_setcancelstate F
>  GLIBC_2.17 pthread_setcanceltype F
>  GLIBC_2.17 pthread_setschedparam F
> +GLIBC_2.17 pthread_setspecific F
>  GLIBC_2.17 pthread_sigmask F
>  GLIBC_2.17 ptrace F
>  GLIBC_2.17 ptsname F
> @@ -2385,8 +2387,10 @@ 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_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_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 667e00551a..778eb45ffc 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> @@ -30,7 +30,6 @@ GLIBC_2.17 __pthread_rwlock_tryrdlock F
>  GLIBC_2.17 __pthread_rwlock_trywrlock F
>  GLIBC_2.17 __pthread_rwlock_unlock F
>  GLIBC_2.17 __pthread_rwlock_wrlock F
> -GLIBC_2.17 __pthread_setspecific F
>  GLIBC_2.17 __pthread_unregister_cancel F
>  GLIBC_2.17 __pthread_unregister_cancel_restore F
>  GLIBC_2.17 __pwrite64 F
> @@ -132,7 +131,6 @@ GLIBC_2.17 pthread_setaffinity_np F
>  GLIBC_2.17 pthread_setconcurrency F
>  GLIBC_2.17 pthread_setname_np F
>  GLIBC_2.17 pthread_setschedprio F
> -GLIBC_2.17 pthread_setspecific F
>  GLIBC_2.17 pthread_sigqueue F
>  GLIBC_2.17 pthread_spin_destroy F
>  GLIBC_2.17 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index 5ef9b35b6d..62f9d06cc6 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -328,6 +328,7 @@ 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_setspecific F
>  GLIBC_2.33 __pthread_unwind_next F
>  GLIBC_2.33 __ptsname_r_chk F
>  GLIBC_2.33 __pwrite64 F
> @@ -1393,6 +1394,7 @@ GLIBC_2.33 pthread_self F
>  GLIBC_2.33 pthread_setcancelstate F
>  GLIBC_2.33 pthread_setcanceltype F
>  GLIBC_2.33 pthread_setschedparam F
> +GLIBC_2.33 pthread_setspecific F
>  GLIBC_2.33 pthread_sigmask F
>  GLIBC_2.33 ptrace F
>  GLIBC_2.33 ptsname F
> @@ -1952,8 +1954,10 @@ 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_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_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 5665726bbb..dc38dee1ae 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> @@ -29,7 +29,6 @@ GLIBC_2.33 __pthread_rwlock_tryrdlock F
>  GLIBC_2.33 __pthread_rwlock_trywrlock F
>  GLIBC_2.33 __pthread_rwlock_unlock F
>  GLIBC_2.33 __pthread_rwlock_wrlock F
> -GLIBC_2.33 __pthread_setspecific F
>  GLIBC_2.33 __pthread_unregister_cancel F
>  GLIBC_2.33 __pthread_unregister_cancel_restore F
>  GLIBC_2.33 __pwrite64 F
> @@ -150,7 +149,6 @@ GLIBC_2.33 pthread_setattr_default_np F
>  GLIBC_2.33 pthread_setconcurrency F
>  GLIBC_2.33 pthread_setname_np F
>  GLIBC_2.33 pthread_setschedprio F
> -GLIBC_2.33 pthread_setspecific F
>  GLIBC_2.33 pthread_sigqueue F
>  GLIBC_2.33 pthread_spin_destroy F
>  GLIBC_2.33 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index 7f7385d87c..63976e8487 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -339,6 +339,7 @@ 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_setspecific F
>  GLIBC_2.27 __pthread_unwind_next F
>  GLIBC_2.27 __ptsname_r_chk F
>  GLIBC_2.27 __pwrite64 F
> @@ -1455,6 +1456,7 @@ GLIBC_2.27 pthread_self F
>  GLIBC_2.27 pthread_setcancelstate F
>  GLIBC_2.27 pthread_setcanceltype F
>  GLIBC_2.27 pthread_setschedparam F
> +GLIBC_2.27 pthread_setspecific F
>  GLIBC_2.27 pthread_sigmask F
>  GLIBC_2.27 ptrace F
>  GLIBC_2.27 ptsname F
> @@ -2152,8 +2154,10 @@ 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_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_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 5abf715b3b..a78a847c1a 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> @@ -30,7 +30,6 @@ GLIBC_2.27 __pthread_rwlock_tryrdlock F
>  GLIBC_2.27 __pthread_rwlock_trywrlock F
>  GLIBC_2.27 __pthread_rwlock_unlock F
>  GLIBC_2.27 __pthread_rwlock_wrlock F
> -GLIBC_2.27 __pthread_setspecific F
>  GLIBC_2.27 __pthread_unregister_cancel F
>  GLIBC_2.27 __pthread_unregister_cancel_restore F
>  GLIBC_2.27 __pwrite64 F
> @@ -134,7 +133,6 @@ GLIBC_2.27 pthread_setattr_default_np F
>  GLIBC_2.27 pthread_setconcurrency F
>  GLIBC_2.27 pthread_setname_np F
>  GLIBC_2.27 pthread_setschedprio F
> -GLIBC_2.27 pthread_setspecific F
>  GLIBC_2.27 pthread_sigqueue F
>  GLIBC_2.27 pthread_spin_destroy F
>  GLIBC_2.27 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index c062cbcde7..8b159936e4 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -188,6 +188,7 @@ 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 __pthread_setspecific F
>  GLIBC_2.0 __rcmd_errstr D 0x4
>  GLIBC_2.0 __read F
>  GLIBC_2.0 __realloc_hook D 0x4
> @@ -876,6 +877,7 @@ GLIBC_2.0 pthread_self F
>  GLIBC_2.0 pthread_setcancelstate F
>  GLIBC_2.0 pthread_setcanceltype F
>  GLIBC_2.0 pthread_setschedparam F
> +GLIBC_2.0 pthread_setspecific F
>  GLIBC_2.0 pthread_sigmask F
>  GLIBC_2.0 ptrace F
>  GLIBC_2.0 putc F
> @@ -2229,11 +2231,13 @@ 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_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_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> +GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.4 _IO_fprintf F
>  GLIBC_2.4 _IO_printf F
>  GLIBC_2.4 _IO_sprintf F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> index bfeb7b715f..5f9f4da233 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> @@ -16,7 +16,6 @@ GLIBC_2.0 __pthread_mutex_unlock F
>  GLIBC_2.0 __pthread_mutexattr_destroy F
>  GLIBC_2.0 __pthread_mutexattr_init F
>  GLIBC_2.0 __pthread_mutexattr_settype F
> -GLIBC_2.0 __pthread_setspecific F
>  GLIBC_2.0 __read F
>  GLIBC_2.0 __send F
>  GLIBC_2.0 __sigaction F
> @@ -54,7 +53,6 @@ GLIBC_2.0 pthread_mutexattr_destroy F
>  GLIBC_2.0 pthread_mutexattr_getkind_np F
>  GLIBC_2.0 pthread_mutexattr_init F
>  GLIBC_2.0 pthread_mutexattr_setkind_np F
> -GLIBC_2.0 pthread_setspecific F
>  GLIBC_2.0 pthread_testcancel F
>  GLIBC_2.0 raise F
>  GLIBC_2.0 read F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index cfc797c7fb..5bbf8fdbb4 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -373,6 +373,7 @@ 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 __pthread_setspecific F
>  GLIBC_2.2 __pwrite64 F
>  GLIBC_2.2 __rawmemchr F
>  GLIBC_2.2 __rcmd_errstr D 0x8
> @@ -1303,6 +1304,7 @@ GLIBC_2.2 pthread_self F
>  GLIBC_2.2 pthread_setcancelstate F
>  GLIBC_2.2 pthread_setcanceltype F
>  GLIBC_2.2 pthread_setschedparam F
> +GLIBC_2.2 pthread_setspecific F
>  GLIBC_2.2 pthread_sigmask F
>  GLIBC_2.2 ptrace F
>  GLIBC_2.2 ptsname F
> @@ -2130,11 +2132,13 @@ 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_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_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> +GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.4 _IO_fprintf F
>  GLIBC_2.4 _IO_printf F
>  GLIBC_2.4 _IO_sprintf F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> index 3de726cb37..ec27acf8c2 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> @@ -36,7 +36,6 @@ GLIBC_2.2 __pthread_rwlock_tryrdlock F
>  GLIBC_2.2 __pthread_rwlock_trywrlock F
>  GLIBC_2.2 __pthread_rwlock_unlock F
>  GLIBC_2.2 __pthread_rwlock_wrlock F
> -GLIBC_2.2 __pthread_setspecific F
>  GLIBC_2.2 __pwrite64 F
>  GLIBC_2.2 __read F
>  GLIBC_2.2 __res_state F
> @@ -119,7 +118,6 @@ GLIBC_2.2 pthread_rwlockattr_init F
>  GLIBC_2.2 pthread_rwlockattr_setkind_np F
>  GLIBC_2.2 pthread_rwlockattr_setpshared F
>  GLIBC_2.2 pthread_setconcurrency F
> -GLIBC_2.2 pthread_setspecific F
>  GLIBC_2.2 pthread_spin_destroy F
>  GLIBC_2.2 pthread_spin_init F
>  GLIBC_2.2 pthread_spin_lock F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index 08db66df29..10ea3c59b9 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -362,6 +362,7 @@ 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 __pthread_setspecific F
>  GLIBC_2.2 __pwrite64 F
>  GLIBC_2.2 __rawmemchr F
>  GLIBC_2.2 __rcmd_errstr D 0x4
> @@ -1289,6 +1290,7 @@ GLIBC_2.2 pthread_self F
>  GLIBC_2.2 pthread_setcancelstate F
>  GLIBC_2.2 pthread_setcanceltype F
>  GLIBC_2.2 pthread_setschedparam F
> +GLIBC_2.2 pthread_setspecific F
>  GLIBC_2.2 pthread_sigmask F
>  GLIBC_2.2 ptrace F
>  GLIBC_2.2 ptsname F
> @@ -2099,11 +2101,13 @@ 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_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_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> +GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.4 __confstr_chk F
>  GLIBC_2.4 __fgets_chk F
>  GLIBC_2.4 __fgets_unlocked_chk F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> index cc98751c47..c24d832b13 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> @@ -35,7 +35,6 @@ GLIBC_2.2 __pthread_rwlock_tryrdlock F
>  GLIBC_2.2 __pthread_rwlock_trywrlock F
>  GLIBC_2.2 __pthread_rwlock_unlock F
>  GLIBC_2.2 __pthread_rwlock_wrlock F
> -GLIBC_2.2 __pthread_setspecific F
>  GLIBC_2.2 __pwrite64 F
>  GLIBC_2.2 __read F
>  GLIBC_2.2 __res_state F
> @@ -118,7 +117,6 @@ GLIBC_2.2 pthread_rwlockattr_init F
>  GLIBC_2.2 pthread_rwlockattr_setkind_np F
>  GLIBC_2.2 pthread_rwlockattr_setpshared F
>  GLIBC_2.2 pthread_setconcurrency F
> -GLIBC_2.2 pthread_setspecific F
>  GLIBC_2.2 pthread_spin_destroy F
>  GLIBC_2.2 pthread_spin_init F
>  GLIBC_2.2 pthread_spin_lock F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index 10b8352efb..12d492b088 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -362,6 +362,7 @@ 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 __pthread_setspecific F
>  GLIBC_2.2 __pwrite64 F
>  GLIBC_2.2 __rawmemchr F
>  GLIBC_2.2 __rcmd_errstr D 0x4
> @@ -1289,6 +1290,7 @@ GLIBC_2.2 pthread_self F
>  GLIBC_2.2 pthread_setcancelstate F
>  GLIBC_2.2 pthread_setcanceltype F
>  GLIBC_2.2 pthread_setschedparam F
> +GLIBC_2.2 pthread_setspecific F
>  GLIBC_2.2 pthread_sigmask F
>  GLIBC_2.2 ptrace F
>  GLIBC_2.2 ptsname F
> @@ -2096,11 +2098,13 @@ 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_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_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> +GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.4 __confstr_chk F
>  GLIBC_2.4 __fgets_chk F
>  GLIBC_2.4 __fgets_unlocked_chk F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> index cc98751c47..c24d832b13 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> @@ -35,7 +35,6 @@ GLIBC_2.2 __pthread_rwlock_tryrdlock F
>  GLIBC_2.2 __pthread_rwlock_trywrlock F
>  GLIBC_2.2 __pthread_rwlock_unlock F
>  GLIBC_2.2 __pthread_rwlock_wrlock F
> -GLIBC_2.2 __pthread_setspecific F
>  GLIBC_2.2 __pwrite64 F
>  GLIBC_2.2 __read F
>  GLIBC_2.2 __res_state F
> @@ -118,7 +117,6 @@ GLIBC_2.2 pthread_rwlockattr_init F
>  GLIBC_2.2 pthread_rwlockattr_setkind_np F
>  GLIBC_2.2 pthread_rwlockattr_setpshared F
>  GLIBC_2.2 pthread_setconcurrency F
> -GLIBC_2.2 pthread_setspecific F
>  GLIBC_2.2 pthread_spin_destroy F
>  GLIBC_2.2 pthread_spin_init F
>  GLIBC_2.2 pthread_spin_lock F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index dce478788e..3bb06d6ce0 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -192,6 +192,7 @@ 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 __pthread_setspecific F
>  GLIBC_2.0 __rcmd_errstr D 0x4
>  GLIBC_2.0 __read F
>  GLIBC_2.0 __realloc_hook D 0x4
> @@ -879,6 +880,7 @@ GLIBC_2.0 pthread_self F
>  GLIBC_2.0 pthread_setcancelstate F
>  GLIBC_2.0 pthread_setcanceltype F
>  GLIBC_2.0 pthread_setschedparam F
> +GLIBC_2.0 pthread_setspecific F
>  GLIBC_2.0 pthread_sigmask F
>  GLIBC_2.0 ptrace F
>  GLIBC_2.0 putc F
> @@ -2220,11 +2222,13 @@ 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_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_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> +GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.4 _IO_fprintf F
>  GLIBC_2.4 _IO_printf F
>  GLIBC_2.4 _IO_sprintf F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> index 66f17908e0..8ccbe19154 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> @@ -16,7 +16,6 @@ GLIBC_2.0 __pthread_mutex_unlock F
>  GLIBC_2.0 __pthread_mutexattr_destroy F
>  GLIBC_2.0 __pthread_mutexattr_init F
>  GLIBC_2.0 __pthread_mutexattr_settype F
> -GLIBC_2.0 __pthread_setspecific F
>  GLIBC_2.0 __read F
>  GLIBC_2.0 __send F
>  GLIBC_2.0 __sigaction F
> @@ -54,7 +53,6 @@ GLIBC_2.0 pthread_mutexattr_destroy F
>  GLIBC_2.0 pthread_mutexattr_getkind_np F
>  GLIBC_2.0 pthread_mutexattr_init F
>  GLIBC_2.0 pthread_mutexattr_setkind_np F
> -GLIBC_2.0 pthread_setspecific F
>  GLIBC_2.0 pthread_testcancel F
>  GLIBC_2.0 raise F
>  GLIBC_2.0 read F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index 1dc6c45074..8a32fa3e95 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -400,6 +400,7 @@ 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 __pthread_setspecific F
>  GLIBC_2.2 __pwrite64 F
>  GLIBC_2.2 __rawmemchr F
>  GLIBC_2.2 __rcmd_errstr D 0x8
> @@ -1332,6 +1333,7 @@ GLIBC_2.2 pthread_self F
>  GLIBC_2.2 pthread_setcancelstate F
>  GLIBC_2.2 pthread_setcanceltype F
>  GLIBC_2.2 pthread_setschedparam F
> +GLIBC_2.2 pthread_setspecific F
>  GLIBC_2.2 pthread_sigmask F
>  GLIBC_2.2 ptrace F
>  GLIBC_2.2 ptsname F
> @@ -2147,11 +2149,13 @@ 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_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_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> +GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.4 __confstr_chk F
>  GLIBC_2.4 __fgets_chk F
>  GLIBC_2.4 __fgets_unlocked_chk F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> index f18ff271c2..1669fb860d 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> @@ -35,7 +35,6 @@ GLIBC_2.2 __pthread_rwlock_tryrdlock F
>  GLIBC_2.2 __pthread_rwlock_trywrlock F
>  GLIBC_2.2 __pthread_rwlock_unlock F
>  GLIBC_2.2 __pthread_rwlock_wrlock F
> -GLIBC_2.2 __pthread_setspecific F
>  GLIBC_2.2 __pwrite64 F
>  GLIBC_2.2 __read F
>  GLIBC_2.2 __res_state F
> @@ -118,7 +117,6 @@ GLIBC_2.2 pthread_rwlockattr_init F
>  GLIBC_2.2 pthread_rwlockattr_setkind_np F
>  GLIBC_2.2 pthread_rwlockattr_setpshared F
>  GLIBC_2.2 pthread_setconcurrency F
> -GLIBC_2.2 pthread_setspecific F
>  GLIBC_2.2 pthread_spin_destroy F
>  GLIBC_2.2 pthread_spin_init F
>  GLIBC_2.2 pthread_spin_lock F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index e74d5c43c6..e05acdd11a 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -361,6 +361,7 @@ 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 __pthread_setspecific F
>  GLIBC_2.2.5 __pwrite64 F
>  GLIBC_2.2.5 __rawmemchr F
>  GLIBC_2.2.5 __rcmd_errstr D 0x8
> @@ -1300,6 +1301,7 @@ GLIBC_2.2.5 pthread_self F
>  GLIBC_2.2.5 pthread_setcancelstate F
>  GLIBC_2.2.5 pthread_setcanceltype F
>  GLIBC_2.2.5 pthread_setschedparam F
> +GLIBC_2.2.5 pthread_setspecific F
>  GLIBC_2.2.5 pthread_sigmask F
>  GLIBC_2.2.5 ptrace F
>  GLIBC_2.2.5 ptsname F
> @@ -2106,11 +2108,13 @@ 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_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_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> +GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.4 __confstr_chk F
>  GLIBC_2.4 __fgets_chk F
>  GLIBC_2.4 __fgets_unlocked_chk F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> index 5ea8f8020b..f4d633ca96 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> @@ -35,7 +35,6 @@ GLIBC_2.2.5 __pthread_rwlock_tryrdlock F
>  GLIBC_2.2.5 __pthread_rwlock_trywrlock F
>  GLIBC_2.2.5 __pthread_rwlock_unlock F
>  GLIBC_2.2.5 __pthread_rwlock_wrlock F
> -GLIBC_2.2.5 __pthread_setspecific F
>  GLIBC_2.2.5 __pwrite64 F
>  GLIBC_2.2.5 __read F
>  GLIBC_2.2.5 __res_state F
> @@ -118,7 +117,6 @@ GLIBC_2.2.5 pthread_rwlockattr_init F
>  GLIBC_2.2.5 pthread_rwlockattr_setkind_np F
>  GLIBC_2.2.5 pthread_rwlockattr_setpshared F
>  GLIBC_2.2.5 pthread_setconcurrency F
> -GLIBC_2.2.5 pthread_setspecific F
>  GLIBC_2.2.5 pthread_spin_destroy F
>  GLIBC_2.2.5 pthread_spin_init F
>  GLIBC_2.2.5 pthread_spin_lock F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index 007dd401d3..8800e570a4 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -343,6 +343,7 @@ 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_setspecific F
>  GLIBC_2.16 __pthread_unwind_next F
>  GLIBC_2.16 __ptsname_r_chk F
>  GLIBC_2.16 __pwrite64 F
> @@ -1472,6 +1473,7 @@ GLIBC_2.16 pthread_self F
>  GLIBC_2.16 pthread_setcancelstate F
>  GLIBC_2.16 pthread_setcanceltype F
>  GLIBC_2.16 pthread_setschedparam F
> +GLIBC_2.16 pthread_setspecific F
>  GLIBC_2.16 pthread_sigmask F
>  GLIBC_2.16 ptrace F
>  GLIBC_2.16 ptsname F
> @@ -2204,8 +2206,10 @@ 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_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_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 6e3cb18549..b687932187 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> @@ -30,7 +30,6 @@ GLIBC_2.16 __pthread_rwlock_tryrdlock F
>  GLIBC_2.16 __pthread_rwlock_trywrlock F
>  GLIBC_2.16 __pthread_rwlock_unlock F
>  GLIBC_2.16 __pthread_rwlock_wrlock F
> -GLIBC_2.16 __pthread_setspecific F
>  GLIBC_2.16 __pthread_unregister_cancel F
>  GLIBC_2.16 __pthread_unregister_cancel_restore F
>  GLIBC_2.16 __pwrite64 F
> @@ -132,7 +131,6 @@ GLIBC_2.16 pthread_setaffinity_np F
>  GLIBC_2.16 pthread_setconcurrency F
>  GLIBC_2.16 pthread_setname_np F
>  GLIBC_2.16 pthread_setschedprio F
> -GLIBC_2.16 pthread_setspecific F
>  GLIBC_2.16 pthread_sigqueue F
>  GLIBC_2.16 pthread_spin_destroy F
>  GLIBC_2.16 pthread_spin_init F
> 

Ok.
diff mbox series

Patch

diff --git a/nptl/Makefile b/nptl/Makefile
index c66e4dccab..fa8bcf8c62 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -87,6 +87,7 @@  routines = \
   pthread_setcancelstate \
   pthread_setcanceltype \
   pthread_setschedparam \
+  pthread_setspecific \
   pthread_sigmask \
   unwind \
 
@@ -208,7 +209,6 @@  libpthread-routines = \
   pthread_setconcurrency \
   pthread_setname \
   pthread_setschedprio \
-  pthread_setspecific \
   pthread_sigqueue \
   pthread_spin_destroy \
   pthread_spin_init \
diff --git a/nptl/Versions b/nptl/Versions
index 218d6bbbf8..58a37b8816 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -3,6 +3,7 @@  libc {
     __pthread_getspecific;
     __pthread_key_create;
     __pthread_once;
+    __pthread_setspecific;
     _pthread_cleanup_pop;
     _pthread_cleanup_pop_restore;
     _pthread_cleanup_push;
@@ -41,6 +42,7 @@  libc {
     pthread_setcancelstate;
     pthread_setcanceltype;
     pthread_setschedparam;
+    pthread_setspecific;
     pthread_sigmask;
   }
   GLIBC_2.1 {
@@ -93,10 +95,12 @@  libc {
     __pthread_getspecific;
     __pthread_key_create;
     __pthread_once;
+    __pthread_setspecific;
     pthread_getspecific;
     pthread_key_create;
     pthread_mutex_consistent;
     pthread_once;
+    pthread_setspecific;
   }
   GLIBC_PRIVATE {
     __futex_abstimed_wait64;
@@ -158,7 +162,6 @@  libpthread {
     __pthread_mutexattr_destroy;
     __pthread_mutexattr_init;
     __pthread_mutexattr_settype;
-    __pthread_setspecific;
     __read;
     __send;
     __sigaction;
@@ -197,7 +200,6 @@  libpthread {
     pthread_mutexattr_getkind_np;
     pthread_mutexattr_init;
     pthread_mutexattr_setkind_np;
-    pthread_setspecific;
     pthread_sigmask;
     pthread_testcancel;
     raise;
diff --git a/nptl/nptl-init.c b/nptl/nptl-init.c
index 5be58fc966..cacbf045a7 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_setspecific = __pthread_setspecific,
     .ptr__nptl_setxid = __nptl_setxid,
   };
 # define ptr_pthread_functions &pthread_functions
diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
index 1d69a0f617..c9e845e4a2 100644
--- a/nptl/pthreadP.h
+++ b/nptl/pthreadP.h
@@ -520,6 +520,7 @@  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);
+libc_hidden_proto (__pthread_setspecific)
 extern int __pthread_once (pthread_once_t *once_control,
 			   void (*init_routine) (void));
 libc_hidden_proto (__pthread_once)
@@ -554,7 +555,6 @@  hidden_proto (__pthread_mutex_unlock)
 hidden_proto (__pthread_rwlock_rdlock)
 hidden_proto (__pthread_rwlock_wrlock)
 hidden_proto (__pthread_rwlock_unlock)
-hidden_proto (__pthread_setspecific)
 hidden_proto (__pthread_testcancel)
 hidden_proto (__pthread_mutexattr_init)
 hidden_proto (__pthread_mutexattr_settype)
diff --git a/nptl/pthread_setspecific.c b/nptl/pthread_setspecific.c
index a6e84cd001..892a4307e7 100644
--- a/nptl/pthread_setspecific.c
+++ b/nptl/pthread_setspecific.c
@@ -19,10 +19,10 @@ 
 #include <errno.h>
 #include <stdlib.h>
 #include "pthreadP.h"
-
+#include <shlib-compat.h>
 
 int
-__pthread_setspecific (pthread_key_t key, const void *value)
+__pthread_setspecific_1 (pthread_key_t key, const void *value)
 {
   struct pthread *self;
   unsigned int idx1st;
@@ -89,5 +89,19 @@  __pthread_setspecific (pthread_key_t key, const void *value)
 
   return 0;
 }
-weak_alias (__pthread_setspecific, pthread_setspecific)
-hidden_def (__pthread_setspecific)
+versioned_symbol (libc, __pthread_setspecific_1, __pthread_setspecific,
+		  GLIBC_2_34);
+libc_hidden_ver (__pthread_setspecific_1, __pthread_setspecific)
+
+/* Several aliases for setting different symbol versions.  */
+strong_alias (__pthread_setspecific_1, __pthread_setspecific_2)
+strong_alias (__pthread_setspecific_1, __pthread_setspecific_3)
+strong_alias (__pthread_setspecific_1, __pthread_setspecific_4)
+
+versioned_symbol (libc, __pthread_setspecific_2, pthread_setspecific,
+		  GLIBC_2_34);
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_34)
+compat_symbol (libc, __pthread_setspecific_3,
+	       __pthread_setspecific, GLIBC_2_0);
+compat_symbol (libc, __pthread_setspecific_4, pthread_setspecific, GLIBC_2_0);
+#endif
diff --git a/sysdeps/nptl/libc-lockP.h b/sysdeps/nptl/libc-lockP.h
index bf92a035f8..10a24568a9 100644
--- a/sysdeps/nptl/libc-lockP.h
+++ b/sysdeps/nptl/libc-lockP.h
@@ -338,7 +338,6 @@  weak_extern (__pthread_rwlock_tryrdlock)
 weak_extern (__pthread_rwlock_wrlock)
 weak_extern (__pthread_rwlock_trywrlock)
 weak_extern (__pthread_rwlock_unlock)
-weak_extern (__pthread_setspecific)
 weak_extern (__pthread_initialize)
 weak_extern (__pthread_atfork)
 # else
@@ -356,7 +355,6 @@  weak_extern (__pthread_atfork)
 #  pragma weak __pthread_rwlock_wrlock
 #  pragma weak __pthread_rwlock_trywrlock
 #  pragma weak __pthread_rwlock_unlock
-#  pragma weak __pthread_setspecific
 #  pragma weak __pthread_initialize
 #  pragma weak __pthread_atfork
 # endif
diff --git a/sysdeps/nptl/pthread-functions.h b/sysdeps/nptl/pthread-functions.h
index 4b4816b873..2d89013ff5 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 *);
-  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 ae0e7a313e..2601be32bf 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -342,6 +342,7 @@  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_setspecific F
 GLIBC_2.17 __pthread_unwind_next F
 GLIBC_2.17 __ptsname_r_chk F
 GLIBC_2.17 __pwrite64 F
@@ -1464,6 +1465,7 @@  GLIBC_2.17 pthread_self F
 GLIBC_2.17 pthread_setcancelstate F
 GLIBC_2.17 pthread_setcanceltype F
 GLIBC_2.17 pthread_setschedparam F
+GLIBC_2.17 pthread_setspecific F
 GLIBC_2.17 pthread_sigmask F
 GLIBC_2.17 ptrace F
 GLIBC_2.17 ptsname F
@@ -2190,8 +2192,10 @@  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_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_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 667e00551a..778eb45ffc 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
@@ -30,7 +30,6 @@  GLIBC_2.17 __pthread_rwlock_tryrdlock F
 GLIBC_2.17 __pthread_rwlock_trywrlock F
 GLIBC_2.17 __pthread_rwlock_unlock F
 GLIBC_2.17 __pthread_rwlock_wrlock F
-GLIBC_2.17 __pthread_setspecific F
 GLIBC_2.17 __pthread_unregister_cancel F
 GLIBC_2.17 __pthread_unregister_cancel_restore F
 GLIBC_2.17 __pwrite64 F
@@ -132,7 +131,6 @@  GLIBC_2.17 pthread_setaffinity_np F
 GLIBC_2.17 pthread_setconcurrency F
 GLIBC_2.17 pthread_setname_np F
 GLIBC_2.17 pthread_setschedprio F
-GLIBC_2.17 pthread_setspecific F
 GLIBC_2.17 pthread_sigqueue F
 GLIBC_2.17 pthread_spin_destroy F
 GLIBC_2.17 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index d27a8d9ad4..d334d0759d 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -191,6 +191,7 @@  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 __pthread_setspecific F
 GLIBC_2.0 __rcmd_errstr D 0x8
 GLIBC_2.0 __read F
 GLIBC_2.0 __realloc_hook D 0x8
@@ -901,6 +902,7 @@  GLIBC_2.0 pthread_self F
 GLIBC_2.0 pthread_setcancelstate F
 GLIBC_2.0 pthread_setcanceltype F
 GLIBC_2.0 pthread_setschedparam F
+GLIBC_2.0 pthread_setspecific F
 GLIBC_2.0 pthread_sigmask F
 GLIBC_2.0 ptrace F
 GLIBC_2.0 putc F
@@ -2271,11 +2273,13 @@  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_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_mutex_consistent F
 GLIBC_2.34 pthread_once F
+GLIBC_2.34 pthread_setspecific F
 GLIBC_2.4 _IO_fprintf F
 GLIBC_2.4 _IO_printf F
 GLIBC_2.4 _IO_sprintf F
diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
index 66f17908e0..8ccbe19154 100644
--- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
@@ -16,7 +16,6 @@  GLIBC_2.0 __pthread_mutex_unlock F
 GLIBC_2.0 __pthread_mutexattr_destroy F
 GLIBC_2.0 __pthread_mutexattr_init F
 GLIBC_2.0 __pthread_mutexattr_settype F
-GLIBC_2.0 __pthread_setspecific F
 GLIBC_2.0 __read F
 GLIBC_2.0 __send F
 GLIBC_2.0 __sigaction F
@@ -54,7 +53,6 @@  GLIBC_2.0 pthread_mutexattr_destroy F
 GLIBC_2.0 pthread_mutexattr_getkind_np F
 GLIBC_2.0 pthread_mutexattr_init F
 GLIBC_2.0 pthread_mutexattr_setkind_np F
-GLIBC_2.0 pthread_setspecific F
 GLIBC_2.0 pthread_testcancel F
 GLIBC_2.0 raise F
 GLIBC_2.0 read F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index f740f0d40a..49034a2bdd 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -331,6 +331,7 @@  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_setspecific F
 GLIBC_2.32 __pthread_unwind_next F
 GLIBC_2.32 __ptsname_r_chk F
 GLIBC_2.32 __pwrite64 F
@@ -1391,6 +1392,7 @@  GLIBC_2.32 pthread_self F
 GLIBC_2.32 pthread_setcancelstate F
 GLIBC_2.32 pthread_setcanceltype F
 GLIBC_2.32 pthread_setschedparam F
+GLIBC_2.32 pthread_setspecific F
 GLIBC_2.32 pthread_sigmask F
 GLIBC_2.32 ptrace F
 GLIBC_2.32 ptsname F
@@ -1950,8 +1952,10 @@  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_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_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 977e964a47..fba129cfad 100644
--- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
@@ -29,7 +29,6 @@  GLIBC_2.32 __pthread_rwlock_tryrdlock F
 GLIBC_2.32 __pthread_rwlock_trywrlock F
 GLIBC_2.32 __pthread_rwlock_unlock F
 GLIBC_2.32 __pthread_rwlock_wrlock F
-GLIBC_2.32 __pthread_setspecific F
 GLIBC_2.32 __pthread_unregister_cancel F
 GLIBC_2.32 __pthread_unregister_cancel_restore F
 GLIBC_2.32 __pwrite64 F
@@ -150,7 +149,6 @@  GLIBC_2.32 pthread_setattr_default_np F
 GLIBC_2.32 pthread_setconcurrency F
 GLIBC_2.32 pthread_setname_np F
 GLIBC_2.32 pthread_setschedprio F
-GLIBC_2.32 pthread_setspecific F
 GLIBC_2.32 pthread_sigqueue F
 GLIBC_2.32 pthread_spin_destroy F
 GLIBC_2.32 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 60baeff299..3727e33898 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -161,11 +161,13 @@  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_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_mutex_consistent F
 GLIBC_2.34 pthread_once F
+GLIBC_2.34 pthread_setspecific F
 GLIBC_2.4 _Exit F
 GLIBC_2.4 _IO_2_1_stderr_ D 0xa0
 GLIBC_2.4 _IO_2_1_stdin_ D 0xa0
@@ -497,6 +499,7 @@  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_setspecific F
 GLIBC_2.4 __pthread_unwind_next F
 GLIBC_2.4 __ptsname_r_chk F
 GLIBC_2.4 __pwrite64 F
@@ -1566,6 +1569,7 @@  GLIBC_2.4 pthread_self F
 GLIBC_2.4 pthread_setcancelstate F
 GLIBC_2.4 pthread_setcanceltype F
 GLIBC_2.4 pthread_setschedparam F
+GLIBC_2.4 pthread_setspecific F
 GLIBC_2.4 pthread_sigmask F
 GLIBC_2.4 ptrace F
 GLIBC_2.4 ptsname F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
index d6612a1e9e..2cb1f0e2f5 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
@@ -64,7 +64,6 @@  GLIBC_2.4 __pthread_rwlock_tryrdlock F
 GLIBC_2.4 __pthread_rwlock_trywrlock F
 GLIBC_2.4 __pthread_rwlock_unlock F
 GLIBC_2.4 __pthread_rwlock_wrlock F
-GLIBC_2.4 __pthread_setspecific F
 GLIBC_2.4 __pthread_unregister_cancel F
 GLIBC_2.4 __pthread_unregister_cancel_restore F
 GLIBC_2.4 __pwrite64 F
@@ -162,7 +161,6 @@  GLIBC_2.4 pthread_rwlockattr_setpshared F
 GLIBC_2.4 pthread_setaffinity_np F
 GLIBC_2.4 pthread_setconcurrency F
 GLIBC_2.4 pthread_setschedprio F
-GLIBC_2.4 pthread_setspecific F
 GLIBC_2.4 pthread_spin_destroy F
 GLIBC_2.4 pthread_spin_init F
 GLIBC_2.4 pthread_spin_lock F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 3525e76e3c..a7bc3a9a8e 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -158,11 +158,13 @@  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_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_mutex_consistent F
 GLIBC_2.34 pthread_once F
+GLIBC_2.34 pthread_setspecific F
 GLIBC_2.4 _Exit F
 GLIBC_2.4 _IO_2_1_stderr_ D 0xa0
 GLIBC_2.4 _IO_2_1_stdin_ D 0xa0
@@ -494,6 +496,7 @@  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_setspecific F
 GLIBC_2.4 __pthread_unwind_next F
 GLIBC_2.4 __ptsname_r_chk F
 GLIBC_2.4 __pwrite64 F
@@ -1563,6 +1566,7 @@  GLIBC_2.4 pthread_self F
 GLIBC_2.4 pthread_setcancelstate F
 GLIBC_2.4 pthread_setcanceltype F
 GLIBC_2.4 pthread_setschedparam F
+GLIBC_2.4 pthread_setspecific F
 GLIBC_2.4 pthread_sigmask F
 GLIBC_2.4 ptrace F
 GLIBC_2.4 ptsname F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
index d6612a1e9e..2cb1f0e2f5 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
@@ -64,7 +64,6 @@  GLIBC_2.4 __pthread_rwlock_tryrdlock F
 GLIBC_2.4 __pthread_rwlock_trywrlock F
 GLIBC_2.4 __pthread_rwlock_unlock F
 GLIBC_2.4 __pthread_rwlock_wrlock F
-GLIBC_2.4 __pthread_setspecific F
 GLIBC_2.4 __pthread_unregister_cancel F
 GLIBC_2.4 __pthread_unregister_cancel_restore F
 GLIBC_2.4 __pwrite64 F
@@ -162,7 +161,6 @@  GLIBC_2.4 pthread_rwlockattr_setpshared F
 GLIBC_2.4 pthread_setaffinity_np F
 GLIBC_2.4 pthread_setconcurrency F
 GLIBC_2.4 pthread_setschedprio F
-GLIBC_2.4 pthread_setspecific F
 GLIBC_2.4 pthread_spin_destroy F
 GLIBC_2.4 pthread_spin_init F
 GLIBC_2.4 pthread_spin_lock F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index ec6b7f2755..61de7117bd 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -335,6 +335,7 @@  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_setspecific F
 GLIBC_2.29 __pthread_unwind_next F
 GLIBC_2.29 __ptsname_r_chk F
 GLIBC_2.29 __pwrite64 F
@@ -1452,6 +1453,7 @@  GLIBC_2.29 pthread_self F
 GLIBC_2.29 pthread_setcancelstate F
 GLIBC_2.29 pthread_setcanceltype F
 GLIBC_2.29 pthread_setschedparam F
+GLIBC_2.29 pthread_setspecific F
 GLIBC_2.29 pthread_sigmask F
 GLIBC_2.29 ptrace F
 GLIBC_2.29 ptsname F
@@ -2134,8 +2136,10 @@  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_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_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 78eb06a880..760740a4ed 100644
--- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
@@ -29,7 +29,6 @@  GLIBC_2.29 __pthread_rwlock_tryrdlock F
 GLIBC_2.29 __pthread_rwlock_trywrlock F
 GLIBC_2.29 __pthread_rwlock_unlock F
 GLIBC_2.29 __pthread_rwlock_wrlock F
-GLIBC_2.29 __pthread_setspecific F
 GLIBC_2.29 __pthread_unregister_cancel F
 GLIBC_2.29 __pthread_unregister_cancel_restore F
 GLIBC_2.29 __pwrite64 F
@@ -145,7 +144,6 @@  GLIBC_2.29 pthread_setattr_default_np F
 GLIBC_2.29 pthread_setconcurrency F
 GLIBC_2.29 pthread_setname_np F
 GLIBC_2.29 pthread_setschedprio F
-GLIBC_2.29 pthread_setspecific F
 GLIBC_2.29 pthread_sigqueue F
 GLIBC_2.29 pthread_spin_destroy F
 GLIBC_2.29 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 0ef57987cd..c380a422ca 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -359,6 +359,7 @@  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 __pthread_setspecific F
 GLIBC_2.2 __pwrite64 F
 GLIBC_2.2 __rawmemchr F
 GLIBC_2.2 __rcmd_errstr D 0x4
@@ -1285,6 +1286,7 @@  GLIBC_2.2 pthread_self F
 GLIBC_2.2 pthread_setcancelstate F
 GLIBC_2.2 pthread_setcanceltype F
 GLIBC_2.2 pthread_setschedparam F
+GLIBC_2.2 pthread_setspecific F
 GLIBC_2.2 pthread_sigmask F
 GLIBC_2.2 ptrace F
 GLIBC_2.2 ptsname F
@@ -2092,11 +2094,13 @@  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_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_mutex_consistent F
 GLIBC_2.34 pthread_once F
+GLIBC_2.34 pthread_setspecific F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
index cc98751c47..c24d832b13 100644
--- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
@@ -35,7 +35,6 @@  GLIBC_2.2 __pthread_rwlock_tryrdlock F
 GLIBC_2.2 __pthread_rwlock_trywrlock F
 GLIBC_2.2 __pthread_rwlock_unlock F
 GLIBC_2.2 __pthread_rwlock_wrlock F
-GLIBC_2.2 __pthread_setspecific F
 GLIBC_2.2 __pwrite64 F
 GLIBC_2.2 __read F
 GLIBC_2.2 __res_state F
@@ -118,7 +117,6 @@  GLIBC_2.2 pthread_rwlockattr_init F
 GLIBC_2.2 pthread_rwlockattr_setkind_np F
 GLIBC_2.2 pthread_rwlockattr_setpshared F
 GLIBC_2.2 pthread_setconcurrency F
-GLIBC_2.2 pthread_setspecific F
 GLIBC_2.2 pthread_spin_destroy F
 GLIBC_2.2 pthread_spin_init F
 GLIBC_2.2 pthread_spin_lock F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index fa7a28a5e3..dd10b08625 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -188,6 +188,7 @@  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 __pthread_setspecific F
 GLIBC_2.0 __rcmd_errstr D 0x4
 GLIBC_2.0 __read F
 GLIBC_2.0 __realloc_hook D 0x4
@@ -878,6 +879,7 @@  GLIBC_2.0 pthread_self F
 GLIBC_2.0 pthread_setcancelstate F
 GLIBC_2.0 pthread_setcanceltype F
 GLIBC_2.0 pthread_setschedparam F
+GLIBC_2.0 pthread_setspecific F
 GLIBC_2.0 pthread_sigmask F
 GLIBC_2.0 ptrace F
 GLIBC_2.0 putc F
@@ -2259,11 +2261,13 @@  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_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_mutex_consistent F
 GLIBC_2.34 pthread_once F
+GLIBC_2.34 pthread_setspecific F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
index 6c0211a134..6b644a2513 100644
--- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
@@ -16,7 +16,6 @@  GLIBC_2.0 __pthread_mutex_unlock F
 GLIBC_2.0 __pthread_mutexattr_destroy F
 GLIBC_2.0 __pthread_mutexattr_init F
 GLIBC_2.0 __pthread_mutexattr_settype F
-GLIBC_2.0 __pthread_setspecific F
 GLIBC_2.0 __read F
 GLIBC_2.0 __send F
 GLIBC_2.0 __sigaction F
@@ -54,7 +53,6 @@  GLIBC_2.0 pthread_mutexattr_destroy F
 GLIBC_2.0 pthread_mutexattr_getkind_np F
 GLIBC_2.0 pthread_mutexattr_init F
 GLIBC_2.0 pthread_mutexattr_setkind_np F
-GLIBC_2.0 pthread_setspecific F
 GLIBC_2.0 pthread_testcancel F
 GLIBC_2.0 raise F
 GLIBC_2.0 read F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 078315ddda..fe64b5c1f0 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -363,6 +363,7 @@  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 __pthread_setspecific F
 GLIBC_2.2 __pwrite64 F
 GLIBC_2.2 __rawmemchr F
 GLIBC_2.2 __rcmd_errstr D 0x8
@@ -1306,6 +1307,7 @@  GLIBC_2.2 pthread_self F
 GLIBC_2.2 pthread_setcancelstate F
 GLIBC_2.2 pthread_setcanceltype F
 GLIBC_2.2 pthread_setschedparam F
+GLIBC_2.2 pthread_setspecific F
 GLIBC_2.2 pthread_sigmask F
 GLIBC_2.2 ptrace F
 GLIBC_2.2 ptsname F
@@ -2124,11 +2126,13 @@  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_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_mutex_consistent F
 GLIBC_2.34 pthread_once F
+GLIBC_2.34 pthread_setspecific F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
index f18ff271c2..1669fb860d 100644
--- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
@@ -35,7 +35,6 @@  GLIBC_2.2 __pthread_rwlock_tryrdlock F
 GLIBC_2.2 __pthread_rwlock_trywrlock F
 GLIBC_2.2 __pthread_rwlock_unlock F
 GLIBC_2.2 __pthread_rwlock_wrlock F
-GLIBC_2.2 __pthread_setspecific F
 GLIBC_2.2 __pwrite64 F
 GLIBC_2.2 __read F
 GLIBC_2.2 __res_state F
@@ -118,7 +117,6 @@  GLIBC_2.2 pthread_rwlockattr_init F
 GLIBC_2.2 pthread_rwlockattr_setkind_np F
 GLIBC_2.2 pthread_rwlockattr_setpshared F
 GLIBC_2.2 pthread_setconcurrency F
-GLIBC_2.2 pthread_setspecific F
 GLIBC_2.2 pthread_spin_destroy F
 GLIBC_2.2 pthread_spin_init F
 GLIBC_2.2 pthread_spin_lock F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index e297ce158e..1af30ff1b3 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -162,11 +162,13 @@  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_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_mutex_consistent F
 GLIBC_2.34 pthread_once F
+GLIBC_2.34 pthread_setspecific F
 GLIBC_2.4 _Exit F
 GLIBC_2.4 _IO_2_1_stderr_ D 0x98
 GLIBC_2.4 _IO_2_1_stdin_ D 0x98
@@ -483,6 +485,7 @@  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_setspecific F
 GLIBC_2.4 __pthread_unwind_next F
 GLIBC_2.4 __ptsname_r_chk F
 GLIBC_2.4 __pwrite64 F
@@ -1546,6 +1549,7 @@  GLIBC_2.4 pthread_self F
 GLIBC_2.4 pthread_setcancelstate F
 GLIBC_2.4 pthread_setcanceltype F
 GLIBC_2.4 pthread_setschedparam F
+GLIBC_2.4 pthread_setspecific F
 GLIBC_2.4 pthread_sigmask F
 GLIBC_2.4 ptrace F
 GLIBC_2.4 ptsname F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
index d6612a1e9e..2cb1f0e2f5 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
@@ -64,7 +64,6 @@  GLIBC_2.4 __pthread_rwlock_tryrdlock F
 GLIBC_2.4 __pthread_rwlock_trywrlock F
 GLIBC_2.4 __pthread_rwlock_unlock F
 GLIBC_2.4 __pthread_rwlock_wrlock F
-GLIBC_2.4 __pthread_setspecific F
 GLIBC_2.4 __pthread_unregister_cancel F
 GLIBC_2.4 __pthread_unregister_cancel_restore F
 GLIBC_2.4 __pwrite64 F
@@ -162,7 +161,6 @@  GLIBC_2.4 pthread_rwlockattr_setpshared F
 GLIBC_2.4 pthread_setaffinity_np F
 GLIBC_2.4 pthread_setconcurrency F
 GLIBC_2.4 pthread_setschedprio F
-GLIBC_2.4 pthread_setspecific F
 GLIBC_2.4 pthread_spin_destroy F
 GLIBC_2.4 pthread_spin_init F
 GLIBC_2.4 pthread_spin_lock F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 10c54ce3ab..372bb9db63 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -188,6 +188,7 @@  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 __pthread_setspecific F
 GLIBC_2.0 __rcmd_errstr D 0x4
 GLIBC_2.0 __read F
 GLIBC_2.0 __realloc_hook D 0x4
@@ -877,6 +878,7 @@  GLIBC_2.0 pthread_self F
 GLIBC_2.0 pthread_setcancelstate F
 GLIBC_2.0 pthread_setcanceltype F
 GLIBC_2.0 pthread_setschedparam F
+GLIBC_2.0 pthread_setspecific F
 GLIBC_2.0 pthread_sigmask F
 GLIBC_2.0 ptrace F
 GLIBC_2.0 putc F
@@ -2204,11 +2206,13 @@  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_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_mutex_consistent F
 GLIBC_2.34 pthread_once F
+GLIBC_2.34 pthread_setspecific F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
index 6c0211a134..6b644a2513 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
@@ -16,7 +16,6 @@  GLIBC_2.0 __pthread_mutex_unlock F
 GLIBC_2.0 __pthread_mutexattr_destroy F
 GLIBC_2.0 __pthread_mutexattr_init F
 GLIBC_2.0 __pthread_mutexattr_settype F
-GLIBC_2.0 __pthread_setspecific F
 GLIBC_2.0 __read F
 GLIBC_2.0 __send F
 GLIBC_2.0 __sigaction F
@@ -54,7 +53,6 @@  GLIBC_2.0 pthread_mutexattr_destroy F
 GLIBC_2.0 pthread_mutexattr_getkind_np F
 GLIBC_2.0 pthread_mutexattr_init F
 GLIBC_2.0 pthread_mutexattr_setkind_np F
-GLIBC_2.0 pthread_setspecific F
 GLIBC_2.0 pthread_testcancel F
 GLIBC_2.0 raise F
 GLIBC_2.0 read F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index e6d033a29b..7b1b02ff24 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -343,6 +343,7 @@  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_setspecific F
 GLIBC_2.18 __pthread_unwind_next F
 GLIBC_2.18 __ptsname_r_chk F
 GLIBC_2.18 __pwrite64 F
@@ -1467,6 +1468,7 @@  GLIBC_2.18 pthread_self F
 GLIBC_2.18 pthread_setcancelstate F
 GLIBC_2.18 pthread_setcanceltype F
 GLIBC_2.18 pthread_setschedparam F
+GLIBC_2.18 pthread_setspecific F
 GLIBC_2.18 pthread_sigmask F
 GLIBC_2.18 ptrace F
 GLIBC_2.18 ptsname F
@@ -2185,8 +2187,10 @@  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_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_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 4751a8e6c5..64e0587af6 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
@@ -30,7 +30,6 @@  GLIBC_2.18 __pthread_rwlock_tryrdlock F
 GLIBC_2.18 __pthread_rwlock_trywrlock F
 GLIBC_2.18 __pthread_rwlock_unlock F
 GLIBC_2.18 __pthread_rwlock_wrlock F
-GLIBC_2.18 __pthread_setspecific F
 GLIBC_2.18 __pthread_unregister_cancel F
 GLIBC_2.18 __pthread_unregister_cancel_restore F
 GLIBC_2.18 __pwrite64 F
@@ -134,7 +133,6 @@  GLIBC_2.18 pthread_setattr_default_np F
 GLIBC_2.18 pthread_setconcurrency F
 GLIBC_2.18 pthread_setname_np F
 GLIBC_2.18 pthread_setschedprio F
-GLIBC_2.18 pthread_setspecific F
 GLIBC_2.18 pthread_sigqueue F
 GLIBC_2.18 pthread_spin_destroy F
 GLIBC_2.18 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 448c257562..07ec814a0d 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -343,6 +343,7 @@  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_setspecific F
 GLIBC_2.18 __pthread_unwind_next F
 GLIBC_2.18 __ptsname_r_chk F
 GLIBC_2.18 __pwrite64 F
@@ -1467,6 +1468,7 @@  GLIBC_2.18 pthread_self F
 GLIBC_2.18 pthread_setcancelstate F
 GLIBC_2.18 pthread_setcanceltype F
 GLIBC_2.18 pthread_setschedparam F
+GLIBC_2.18 pthread_setspecific F
 GLIBC_2.18 pthread_sigmask F
 GLIBC_2.18 ptrace F
 GLIBC_2.18 ptsname F
@@ -2182,8 +2184,10 @@  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_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_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 4751a8e6c5..64e0587af6 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
@@ -30,7 +30,6 @@  GLIBC_2.18 __pthread_rwlock_tryrdlock F
 GLIBC_2.18 __pthread_rwlock_trywrlock F
 GLIBC_2.18 __pthread_rwlock_unlock F
 GLIBC_2.18 __pthread_rwlock_wrlock F
-GLIBC_2.18 __pthread_setspecific F
 GLIBC_2.18 __pthread_unregister_cancel F
 GLIBC_2.18 __pthread_unregister_cancel_restore F
 GLIBC_2.18 __pwrite64 F
@@ -134,7 +133,6 @@  GLIBC_2.18 pthread_setattr_default_np F
 GLIBC_2.18 pthread_setconcurrency F
 GLIBC_2.18 pthread_setname_np F
 GLIBC_2.18 pthread_setschedprio F
-GLIBC_2.18 pthread_setspecific F
 GLIBC_2.18 pthread_sigqueue F
 GLIBC_2.18 pthread_spin_destroy F
 GLIBC_2.18 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 8f5df09289..51253a4216 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -186,6 +186,7 @@  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 __pthread_setspecific F
 GLIBC_2.0 __rcmd_errstr D 0x4
 GLIBC_2.0 __read F
 GLIBC_2.0 __realloc_hook D 0x4
@@ -874,6 +875,7 @@  GLIBC_2.0 pthread_self F
 GLIBC_2.0 pthread_setcancelstate F
 GLIBC_2.0 pthread_setcanceltype F
 GLIBC_2.0 pthread_setschedparam F
+GLIBC_2.0 pthread_setspecific F
 GLIBC_2.0 pthread_sigmask F
 GLIBC_2.0 ptrace F
 GLIBC_2.0 putc F
@@ -2175,11 +2177,13 @@  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_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_mutex_consistent F
 GLIBC_2.34 pthread_once F
+GLIBC_2.34 pthread_setspecific F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
index ea9a850ba9..1118a25c82 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
@@ -16,7 +16,6 @@  GLIBC_2.0 __pthread_mutex_unlock F
 GLIBC_2.0 __pthread_mutexattr_destroy F
 GLIBC_2.0 __pthread_mutexattr_init F
 GLIBC_2.0 __pthread_mutexattr_settype F
-GLIBC_2.0 __pthread_setspecific F
 GLIBC_2.0 __read F
 GLIBC_2.0 __send F
 GLIBC_2.0 __sigaction F
@@ -54,7 +53,6 @@  GLIBC_2.0 pthread_mutexattr_destroy F
 GLIBC_2.0 pthread_mutexattr_getkind_np F
 GLIBC_2.0 pthread_mutexattr_init F
 GLIBC_2.0 pthread_mutexattr_setkind_np F
-GLIBC_2.0 pthread_setspecific F
 GLIBC_2.0 pthread_testcancel F
 GLIBC_2.0 raise F
 GLIBC_2.0 read F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 4d39526a30..2574b7627e 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -186,6 +186,7 @@  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 __pthread_setspecific F
 GLIBC_2.0 __rcmd_errstr D 0x4
 GLIBC_2.0 __read F
 GLIBC_2.0 __realloc_hook D 0x4
@@ -874,6 +875,7 @@  GLIBC_2.0 pthread_self F
 GLIBC_2.0 pthread_setcancelstate F
 GLIBC_2.0 pthread_setcanceltype F
 GLIBC_2.0 pthread_setschedparam F
+GLIBC_2.0 pthread_setspecific F
 GLIBC_2.0 pthread_sigmask F
 GLIBC_2.0 ptrace F
 GLIBC_2.0 putc F
@@ -2173,11 +2175,13 @@  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_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_mutex_consistent F
 GLIBC_2.34 pthread_once F
+GLIBC_2.34 pthread_setspecific F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
index ea9a850ba9..1118a25c82 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
@@ -16,7 +16,6 @@  GLIBC_2.0 __pthread_mutex_unlock F
 GLIBC_2.0 __pthread_mutexattr_destroy F
 GLIBC_2.0 __pthread_mutexattr_init F
 GLIBC_2.0 __pthread_mutexattr_settype F
-GLIBC_2.0 __pthread_setspecific F
 GLIBC_2.0 __read F
 GLIBC_2.0 __send F
 GLIBC_2.0 __sigaction F
@@ -54,7 +53,6 @@  GLIBC_2.0 pthread_mutexattr_destroy F
 GLIBC_2.0 pthread_mutexattr_getkind_np F
 GLIBC_2.0 pthread_mutexattr_init F
 GLIBC_2.0 pthread_mutexattr_setkind_np F
-GLIBC_2.0 pthread_setspecific F
 GLIBC_2.0 pthread_testcancel F
 GLIBC_2.0 raise F
 GLIBC_2.0 read F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 3cfb9e62db..0580b260e2 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -186,6 +186,7 @@  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 __pthread_setspecific F
 GLIBC_2.0 __rcmd_errstr D 0x4
 GLIBC_2.0 __read F
 GLIBC_2.0 __realloc_hook D 0x4
@@ -874,6 +875,7 @@  GLIBC_2.0 pthread_self F
 GLIBC_2.0 pthread_setcancelstate F
 GLIBC_2.0 pthread_setcanceltype F
 GLIBC_2.0 pthread_setschedparam F
+GLIBC_2.0 pthread_setspecific F
 GLIBC_2.0 pthread_sigmask F
 GLIBC_2.0 ptrace F
 GLIBC_2.0 putc F
@@ -2181,11 +2183,13 @@  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_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_mutex_consistent F
 GLIBC_2.34 pthread_once F
+GLIBC_2.34 pthread_setspecific F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 9b5cc5db4c..40fe64ea6b 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -186,6 +186,7 @@  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 __pthread_setspecific F
 GLIBC_2.0 __rcmd_errstr D 0x8
 GLIBC_2.0 __read F
 GLIBC_2.0 __realloc_hook D 0x8
@@ -872,6 +873,7 @@  GLIBC_2.0 pthread_self F
 GLIBC_2.0 pthread_setcancelstate F
 GLIBC_2.0 pthread_setcanceltype F
 GLIBC_2.0 pthread_setschedparam F
+GLIBC_2.0 pthread_setspecific F
 GLIBC_2.0 pthread_sigmask F
 GLIBC_2.0 ptrace F
 GLIBC_2.0 putc F
@@ -2175,11 +2177,13 @@  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_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_mutex_consistent F
 GLIBC_2.34 pthread_once F
+GLIBC_2.34 pthread_setspecific F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 1335395b2f..b9400803eb 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -380,6 +380,7 @@  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_setspecific F
 GLIBC_2.21 __pthread_unwind_next F
 GLIBC_2.21 __ptsname_r_chk F
 GLIBC_2.21 __pwrite64 F
@@ -1509,6 +1510,7 @@  GLIBC_2.21 pthread_self F
 GLIBC_2.21 pthread_setcancelstate F
 GLIBC_2.21 pthread_setcanceltype F
 GLIBC_2.21 pthread_setschedparam F
+GLIBC_2.21 pthread_setspecific F
 GLIBC_2.21 pthread_sigmask F
 GLIBC_2.21 ptrace F
 GLIBC_2.21 ptsname F
@@ -2223,8 +2225,10 @@  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_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_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 e6354e8a80..96d1cd0f49 100644
--- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
@@ -30,7 +30,6 @@  GLIBC_2.21 __pthread_rwlock_tryrdlock F
 GLIBC_2.21 __pthread_rwlock_trywrlock F
 GLIBC_2.21 __pthread_rwlock_unlock F
 GLIBC_2.21 __pthread_rwlock_wrlock F
-GLIBC_2.21 __pthread_setspecific F
 GLIBC_2.21 __pthread_unregister_cancel F
 GLIBC_2.21 __pthread_unregister_cancel_restore F
 GLIBC_2.21 __pwrite64 F
@@ -134,7 +133,6 @@  GLIBC_2.21 pthread_setattr_default_np F
 GLIBC_2.21 pthread_setconcurrency F
 GLIBC_2.21 pthread_setname_np F
 GLIBC_2.21 pthread_setschedprio F
-GLIBC_2.21 pthread_setspecific F
 GLIBC_2.21 pthread_sigqueue F
 GLIBC_2.21 pthread_spin_destroy F
 GLIBC_2.21 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index eb5f9814e8..9f27e4aa50 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -197,6 +197,7 @@  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 __pthread_setspecific F
 GLIBC_2.0 __rcmd_errstr D 0x4
 GLIBC_2.0 __read F
 GLIBC_2.0 __realloc_hook D 0x4
@@ -885,6 +886,7 @@  GLIBC_2.0 pthread_self F
 GLIBC_2.0 pthread_setcancelstate F
 GLIBC_2.0 pthread_setcanceltype F
 GLIBC_2.0 pthread_setschedparam F
+GLIBC_2.0 pthread_setspecific F
 GLIBC_2.0 pthread_sigmask F
 GLIBC_2.0 ptrace F
 GLIBC_2.0 putc F
@@ -2231,11 +2233,13 @@  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_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_mutex_consistent F
 GLIBC_2.34 pthread_once F
+GLIBC_2.34 pthread_setspecific F
 GLIBC_2.4 _IO_fprintf F
 GLIBC_2.4 _IO_printf F
 GLIBC_2.4 _IO_sprintf F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
index a56ee2d7ca..a8111f4b92 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
@@ -16,7 +16,6 @@  GLIBC_2.0 __pthread_mutex_unlock F
 GLIBC_2.0 __pthread_mutexattr_destroy F
 GLIBC_2.0 __pthread_mutexattr_init F
 GLIBC_2.0 __pthread_mutexattr_settype F
-GLIBC_2.0 __pthread_setspecific F
 GLIBC_2.0 __read F
 GLIBC_2.0 __send F
 GLIBC_2.0 __sigaction F
@@ -54,7 +53,6 @@  GLIBC_2.0 pthread_mutexattr_destroy F
 GLIBC_2.0 pthread_mutexattr_getkind_np F
 GLIBC_2.0 pthread_mutexattr_init F
 GLIBC_2.0 pthread_mutexattr_setkind_np F
-GLIBC_2.0 pthread_setspecific F
 GLIBC_2.0 pthread_testcancel F
 GLIBC_2.0 raise F
 GLIBC_2.0 read F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index b0372c3178..9c91e65fc1 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -197,6 +197,7 @@  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 __pthread_setspecific F
 GLIBC_2.0 __rcmd_errstr D 0x4
 GLIBC_2.0 __read F
 GLIBC_2.0 __realloc_hook D 0x4
@@ -885,6 +886,7 @@  GLIBC_2.0 pthread_self F
 GLIBC_2.0 pthread_setcancelstate F
 GLIBC_2.0 pthread_setcanceltype F
 GLIBC_2.0 pthread_setschedparam F
+GLIBC_2.0 pthread_setspecific F
 GLIBC_2.0 pthread_sigmask F
 GLIBC_2.0 ptrace F
 GLIBC_2.0 putc F
@@ -2264,11 +2266,13 @@  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_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_mutex_consistent F
 GLIBC_2.34 pthread_once F
+GLIBC_2.34 pthread_setspecific F
 GLIBC_2.4 _IO_fprintf F
 GLIBC_2.4 _IO_printf F
 GLIBC_2.4 _IO_sprintf F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index aa4aadbbb4..0ef070e285 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -412,6 +412,7 @@  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 __pthread_setspecific F
 GLIBC_2.3 __pwrite64 F
 GLIBC_2.3 __rawmemchr F
 GLIBC_2.3 __rcmd_errstr D 0x8
@@ -1392,6 +1393,7 @@  GLIBC_2.3 pthread_self F
 GLIBC_2.3 pthread_setcancelstate F
 GLIBC_2.3 pthread_setcanceltype F
 GLIBC_2.3 pthread_setschedparam F
+GLIBC_2.3 pthread_setspecific F
 GLIBC_2.3 pthread_sigmask F
 GLIBC_2.3 ptrace F
 GLIBC_2.3 ptsname F
@@ -2094,11 +2096,13 @@  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_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_mutex_consistent F
 GLIBC_2.34 pthread_once F
+GLIBC_2.34 pthread_setspecific F
 GLIBC_2.4 _IO_fprintf F
 GLIBC_2.4 _IO_printf F
 GLIBC_2.4 _IO_sprintf F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
index 6b2c9bba60..a0f5dffd25 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
@@ -56,7 +56,6 @@  GLIBC_2.3 __pthread_rwlock_tryrdlock F
 GLIBC_2.3 __pthread_rwlock_trywrlock F
 GLIBC_2.3 __pthread_rwlock_unlock F
 GLIBC_2.3 __pthread_rwlock_wrlock F
-GLIBC_2.3 __pthread_setspecific F
 GLIBC_2.3 __pwrite64 F
 GLIBC_2.3 __read F
 GLIBC_2.3 __res_state F
@@ -138,7 +137,6 @@  GLIBC_2.3 pthread_rwlockattr_init F
 GLIBC_2.3 pthread_rwlockattr_setkind_np F
 GLIBC_2.3 pthread_rwlockattr_setpshared F
 GLIBC_2.3 pthread_setconcurrency F
-GLIBC_2.3 pthread_setspecific F
 GLIBC_2.3 pthread_spin_destroy F
 GLIBC_2.3 pthread_spin_init F
 GLIBC_2.3 pthread_spin_lock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 045912572c..4a6de68ece 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -428,6 +428,7 @@  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_setspecific F
 GLIBC_2.17 __pthread_unwind_next F
 GLIBC_2.17 __ptsname_r_chk F
 GLIBC_2.17 __pwrite64 F
@@ -1553,6 +1554,7 @@  GLIBC_2.17 pthread_self F
 GLIBC_2.17 pthread_setcancelstate F
 GLIBC_2.17 pthread_setcanceltype F
 GLIBC_2.17 pthread_setschedparam F
+GLIBC_2.17 pthread_setspecific F
 GLIBC_2.17 pthread_sigmask F
 GLIBC_2.17 ptrace F
 GLIBC_2.17 ptsname F
@@ -2385,8 +2387,10 @@  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_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_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 667e00551a..778eb45ffc 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
@@ -30,7 +30,6 @@  GLIBC_2.17 __pthread_rwlock_tryrdlock F
 GLIBC_2.17 __pthread_rwlock_trywrlock F
 GLIBC_2.17 __pthread_rwlock_unlock F
 GLIBC_2.17 __pthread_rwlock_wrlock F
-GLIBC_2.17 __pthread_setspecific F
 GLIBC_2.17 __pthread_unregister_cancel F
 GLIBC_2.17 __pthread_unregister_cancel_restore F
 GLIBC_2.17 __pwrite64 F
@@ -132,7 +131,6 @@  GLIBC_2.17 pthread_setaffinity_np F
 GLIBC_2.17 pthread_setconcurrency F
 GLIBC_2.17 pthread_setname_np F
 GLIBC_2.17 pthread_setschedprio F
-GLIBC_2.17 pthread_setspecific F
 GLIBC_2.17 pthread_sigqueue F
 GLIBC_2.17 pthread_spin_destroy F
 GLIBC_2.17 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 5ef9b35b6d..62f9d06cc6 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -328,6 +328,7 @@  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_setspecific F
 GLIBC_2.33 __pthread_unwind_next F
 GLIBC_2.33 __ptsname_r_chk F
 GLIBC_2.33 __pwrite64 F
@@ -1393,6 +1394,7 @@  GLIBC_2.33 pthread_self F
 GLIBC_2.33 pthread_setcancelstate F
 GLIBC_2.33 pthread_setcanceltype F
 GLIBC_2.33 pthread_setschedparam F
+GLIBC_2.33 pthread_setspecific F
 GLIBC_2.33 pthread_sigmask F
 GLIBC_2.33 ptrace F
 GLIBC_2.33 ptsname F
@@ -1952,8 +1954,10 @@  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_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_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 5665726bbb..dc38dee1ae 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
@@ -29,7 +29,6 @@  GLIBC_2.33 __pthread_rwlock_tryrdlock F
 GLIBC_2.33 __pthread_rwlock_trywrlock F
 GLIBC_2.33 __pthread_rwlock_unlock F
 GLIBC_2.33 __pthread_rwlock_wrlock F
-GLIBC_2.33 __pthread_setspecific F
 GLIBC_2.33 __pthread_unregister_cancel F
 GLIBC_2.33 __pthread_unregister_cancel_restore F
 GLIBC_2.33 __pwrite64 F
@@ -150,7 +149,6 @@  GLIBC_2.33 pthread_setattr_default_np F
 GLIBC_2.33 pthread_setconcurrency F
 GLIBC_2.33 pthread_setname_np F
 GLIBC_2.33 pthread_setschedprio F
-GLIBC_2.33 pthread_setspecific F
 GLIBC_2.33 pthread_sigqueue F
 GLIBC_2.33 pthread_spin_destroy F
 GLIBC_2.33 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 7f7385d87c..63976e8487 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -339,6 +339,7 @@  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_setspecific F
 GLIBC_2.27 __pthread_unwind_next F
 GLIBC_2.27 __ptsname_r_chk F
 GLIBC_2.27 __pwrite64 F
@@ -1455,6 +1456,7 @@  GLIBC_2.27 pthread_self F
 GLIBC_2.27 pthread_setcancelstate F
 GLIBC_2.27 pthread_setcanceltype F
 GLIBC_2.27 pthread_setschedparam F
+GLIBC_2.27 pthread_setspecific F
 GLIBC_2.27 pthread_sigmask F
 GLIBC_2.27 ptrace F
 GLIBC_2.27 ptsname F
@@ -2152,8 +2154,10 @@  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_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_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 5abf715b3b..a78a847c1a 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
@@ -30,7 +30,6 @@  GLIBC_2.27 __pthread_rwlock_tryrdlock F
 GLIBC_2.27 __pthread_rwlock_trywrlock F
 GLIBC_2.27 __pthread_rwlock_unlock F
 GLIBC_2.27 __pthread_rwlock_wrlock F
-GLIBC_2.27 __pthread_setspecific F
 GLIBC_2.27 __pthread_unregister_cancel F
 GLIBC_2.27 __pthread_unregister_cancel_restore F
 GLIBC_2.27 __pwrite64 F
@@ -134,7 +133,6 @@  GLIBC_2.27 pthread_setattr_default_np F
 GLIBC_2.27 pthread_setconcurrency F
 GLIBC_2.27 pthread_setname_np F
 GLIBC_2.27 pthread_setschedprio F
-GLIBC_2.27 pthread_setspecific F
 GLIBC_2.27 pthread_sigqueue F
 GLIBC_2.27 pthread_spin_destroy F
 GLIBC_2.27 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index c062cbcde7..8b159936e4 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -188,6 +188,7 @@  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 __pthread_setspecific F
 GLIBC_2.0 __rcmd_errstr D 0x4
 GLIBC_2.0 __read F
 GLIBC_2.0 __realloc_hook D 0x4
@@ -876,6 +877,7 @@  GLIBC_2.0 pthread_self F
 GLIBC_2.0 pthread_setcancelstate F
 GLIBC_2.0 pthread_setcanceltype F
 GLIBC_2.0 pthread_setschedparam F
+GLIBC_2.0 pthread_setspecific F
 GLIBC_2.0 pthread_sigmask F
 GLIBC_2.0 ptrace F
 GLIBC_2.0 putc F
@@ -2229,11 +2231,13 @@  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_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_mutex_consistent F
 GLIBC_2.34 pthread_once F
+GLIBC_2.34 pthread_setspecific F
 GLIBC_2.4 _IO_fprintf F
 GLIBC_2.4 _IO_printf F
 GLIBC_2.4 _IO_sprintf F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
index bfeb7b715f..5f9f4da233 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
@@ -16,7 +16,6 @@  GLIBC_2.0 __pthread_mutex_unlock F
 GLIBC_2.0 __pthread_mutexattr_destroy F
 GLIBC_2.0 __pthread_mutexattr_init F
 GLIBC_2.0 __pthread_mutexattr_settype F
-GLIBC_2.0 __pthread_setspecific F
 GLIBC_2.0 __read F
 GLIBC_2.0 __send F
 GLIBC_2.0 __sigaction F
@@ -54,7 +53,6 @@  GLIBC_2.0 pthread_mutexattr_destroy F
 GLIBC_2.0 pthread_mutexattr_getkind_np F
 GLIBC_2.0 pthread_mutexattr_init F
 GLIBC_2.0 pthread_mutexattr_setkind_np F
-GLIBC_2.0 pthread_setspecific F
 GLIBC_2.0 pthread_testcancel F
 GLIBC_2.0 raise F
 GLIBC_2.0 read F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index cfc797c7fb..5bbf8fdbb4 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -373,6 +373,7 @@  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 __pthread_setspecific F
 GLIBC_2.2 __pwrite64 F
 GLIBC_2.2 __rawmemchr F
 GLIBC_2.2 __rcmd_errstr D 0x8
@@ -1303,6 +1304,7 @@  GLIBC_2.2 pthread_self F
 GLIBC_2.2 pthread_setcancelstate F
 GLIBC_2.2 pthread_setcanceltype F
 GLIBC_2.2 pthread_setschedparam F
+GLIBC_2.2 pthread_setspecific F
 GLIBC_2.2 pthread_sigmask F
 GLIBC_2.2 ptrace F
 GLIBC_2.2 ptsname F
@@ -2130,11 +2132,13 @@  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_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_mutex_consistent F
 GLIBC_2.34 pthread_once F
+GLIBC_2.34 pthread_setspecific F
 GLIBC_2.4 _IO_fprintf F
 GLIBC_2.4 _IO_printf F
 GLIBC_2.4 _IO_sprintf F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
index 3de726cb37..ec27acf8c2 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
@@ -36,7 +36,6 @@  GLIBC_2.2 __pthread_rwlock_tryrdlock F
 GLIBC_2.2 __pthread_rwlock_trywrlock F
 GLIBC_2.2 __pthread_rwlock_unlock F
 GLIBC_2.2 __pthread_rwlock_wrlock F
-GLIBC_2.2 __pthread_setspecific F
 GLIBC_2.2 __pwrite64 F
 GLIBC_2.2 __read F
 GLIBC_2.2 __res_state F
@@ -119,7 +118,6 @@  GLIBC_2.2 pthread_rwlockattr_init F
 GLIBC_2.2 pthread_rwlockattr_setkind_np F
 GLIBC_2.2 pthread_rwlockattr_setpshared F
 GLIBC_2.2 pthread_setconcurrency F
-GLIBC_2.2 pthread_setspecific F
 GLIBC_2.2 pthread_spin_destroy F
 GLIBC_2.2 pthread_spin_init F
 GLIBC_2.2 pthread_spin_lock F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 08db66df29..10ea3c59b9 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -362,6 +362,7 @@  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 __pthread_setspecific F
 GLIBC_2.2 __pwrite64 F
 GLIBC_2.2 __rawmemchr F
 GLIBC_2.2 __rcmd_errstr D 0x4
@@ -1289,6 +1290,7 @@  GLIBC_2.2 pthread_self F
 GLIBC_2.2 pthread_setcancelstate F
 GLIBC_2.2 pthread_setcanceltype F
 GLIBC_2.2 pthread_setschedparam F
+GLIBC_2.2 pthread_setspecific F
 GLIBC_2.2 pthread_sigmask F
 GLIBC_2.2 ptrace F
 GLIBC_2.2 ptsname F
@@ -2099,11 +2101,13 @@  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_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_mutex_consistent F
 GLIBC_2.34 pthread_once F
+GLIBC_2.34 pthread_setspecific F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
index cc98751c47..c24d832b13 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
@@ -35,7 +35,6 @@  GLIBC_2.2 __pthread_rwlock_tryrdlock F
 GLIBC_2.2 __pthread_rwlock_trywrlock F
 GLIBC_2.2 __pthread_rwlock_unlock F
 GLIBC_2.2 __pthread_rwlock_wrlock F
-GLIBC_2.2 __pthread_setspecific F
 GLIBC_2.2 __pwrite64 F
 GLIBC_2.2 __read F
 GLIBC_2.2 __res_state F
@@ -118,7 +117,6 @@  GLIBC_2.2 pthread_rwlockattr_init F
 GLIBC_2.2 pthread_rwlockattr_setkind_np F
 GLIBC_2.2 pthread_rwlockattr_setpshared F
 GLIBC_2.2 pthread_setconcurrency F
-GLIBC_2.2 pthread_setspecific F
 GLIBC_2.2 pthread_spin_destroy F
 GLIBC_2.2 pthread_spin_init F
 GLIBC_2.2 pthread_spin_lock F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 10b8352efb..12d492b088 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -362,6 +362,7 @@  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 __pthread_setspecific F
 GLIBC_2.2 __pwrite64 F
 GLIBC_2.2 __rawmemchr F
 GLIBC_2.2 __rcmd_errstr D 0x4
@@ -1289,6 +1290,7 @@  GLIBC_2.2 pthread_self F
 GLIBC_2.2 pthread_setcancelstate F
 GLIBC_2.2 pthread_setcanceltype F
 GLIBC_2.2 pthread_setschedparam F
+GLIBC_2.2 pthread_setspecific F
 GLIBC_2.2 pthread_sigmask F
 GLIBC_2.2 ptrace F
 GLIBC_2.2 ptsname F
@@ -2096,11 +2098,13 @@  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_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_mutex_consistent F
 GLIBC_2.34 pthread_once F
+GLIBC_2.34 pthread_setspecific F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
index cc98751c47..c24d832b13 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
@@ -35,7 +35,6 @@  GLIBC_2.2 __pthread_rwlock_tryrdlock F
 GLIBC_2.2 __pthread_rwlock_trywrlock F
 GLIBC_2.2 __pthread_rwlock_unlock F
 GLIBC_2.2 __pthread_rwlock_wrlock F
-GLIBC_2.2 __pthread_setspecific F
 GLIBC_2.2 __pwrite64 F
 GLIBC_2.2 __read F
 GLIBC_2.2 __res_state F
@@ -118,7 +117,6 @@  GLIBC_2.2 pthread_rwlockattr_init F
 GLIBC_2.2 pthread_rwlockattr_setkind_np F
 GLIBC_2.2 pthread_rwlockattr_setpshared F
 GLIBC_2.2 pthread_setconcurrency F
-GLIBC_2.2 pthread_setspecific F
 GLIBC_2.2 pthread_spin_destroy F
 GLIBC_2.2 pthread_spin_init F
 GLIBC_2.2 pthread_spin_lock F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index dce478788e..3bb06d6ce0 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -192,6 +192,7 @@  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 __pthread_setspecific F
 GLIBC_2.0 __rcmd_errstr D 0x4
 GLIBC_2.0 __read F
 GLIBC_2.0 __realloc_hook D 0x4
@@ -879,6 +880,7 @@  GLIBC_2.0 pthread_self F
 GLIBC_2.0 pthread_setcancelstate F
 GLIBC_2.0 pthread_setcanceltype F
 GLIBC_2.0 pthread_setschedparam F
+GLIBC_2.0 pthread_setspecific F
 GLIBC_2.0 pthread_sigmask F
 GLIBC_2.0 ptrace F
 GLIBC_2.0 putc F
@@ -2220,11 +2222,13 @@  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_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_mutex_consistent F
 GLIBC_2.34 pthread_once F
+GLIBC_2.34 pthread_setspecific F
 GLIBC_2.4 _IO_fprintf F
 GLIBC_2.4 _IO_printf F
 GLIBC_2.4 _IO_sprintf F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
index 66f17908e0..8ccbe19154 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
@@ -16,7 +16,6 @@  GLIBC_2.0 __pthread_mutex_unlock F
 GLIBC_2.0 __pthread_mutexattr_destroy F
 GLIBC_2.0 __pthread_mutexattr_init F
 GLIBC_2.0 __pthread_mutexattr_settype F
-GLIBC_2.0 __pthread_setspecific F
 GLIBC_2.0 __read F
 GLIBC_2.0 __send F
 GLIBC_2.0 __sigaction F
@@ -54,7 +53,6 @@  GLIBC_2.0 pthread_mutexattr_destroy F
 GLIBC_2.0 pthread_mutexattr_getkind_np F
 GLIBC_2.0 pthread_mutexattr_init F
 GLIBC_2.0 pthread_mutexattr_setkind_np F
-GLIBC_2.0 pthread_setspecific F
 GLIBC_2.0 pthread_testcancel F
 GLIBC_2.0 raise F
 GLIBC_2.0 read F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 1dc6c45074..8a32fa3e95 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -400,6 +400,7 @@  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 __pthread_setspecific F
 GLIBC_2.2 __pwrite64 F
 GLIBC_2.2 __rawmemchr F
 GLIBC_2.2 __rcmd_errstr D 0x8
@@ -1332,6 +1333,7 @@  GLIBC_2.2 pthread_self F
 GLIBC_2.2 pthread_setcancelstate F
 GLIBC_2.2 pthread_setcanceltype F
 GLIBC_2.2 pthread_setschedparam F
+GLIBC_2.2 pthread_setspecific F
 GLIBC_2.2 pthread_sigmask F
 GLIBC_2.2 ptrace F
 GLIBC_2.2 ptsname F
@@ -2147,11 +2149,13 @@  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_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_mutex_consistent F
 GLIBC_2.34 pthread_once F
+GLIBC_2.34 pthread_setspecific F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
index f18ff271c2..1669fb860d 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
@@ -35,7 +35,6 @@  GLIBC_2.2 __pthread_rwlock_tryrdlock F
 GLIBC_2.2 __pthread_rwlock_trywrlock F
 GLIBC_2.2 __pthread_rwlock_unlock F
 GLIBC_2.2 __pthread_rwlock_wrlock F
-GLIBC_2.2 __pthread_setspecific F
 GLIBC_2.2 __pwrite64 F
 GLIBC_2.2 __read F
 GLIBC_2.2 __res_state F
@@ -118,7 +117,6 @@  GLIBC_2.2 pthread_rwlockattr_init F
 GLIBC_2.2 pthread_rwlockattr_setkind_np F
 GLIBC_2.2 pthread_rwlockattr_setpshared F
 GLIBC_2.2 pthread_setconcurrency F
-GLIBC_2.2 pthread_setspecific F
 GLIBC_2.2 pthread_spin_destroy F
 GLIBC_2.2 pthread_spin_init F
 GLIBC_2.2 pthread_spin_lock F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index e74d5c43c6..e05acdd11a 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -361,6 +361,7 @@  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 __pthread_setspecific F
 GLIBC_2.2.5 __pwrite64 F
 GLIBC_2.2.5 __rawmemchr F
 GLIBC_2.2.5 __rcmd_errstr D 0x8
@@ -1300,6 +1301,7 @@  GLIBC_2.2.5 pthread_self F
 GLIBC_2.2.5 pthread_setcancelstate F
 GLIBC_2.2.5 pthread_setcanceltype F
 GLIBC_2.2.5 pthread_setschedparam F
+GLIBC_2.2.5 pthread_setspecific F
 GLIBC_2.2.5 pthread_sigmask F
 GLIBC_2.2.5 ptrace F
 GLIBC_2.2.5 ptsname F
@@ -2106,11 +2108,13 @@  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_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_mutex_consistent F
 GLIBC_2.34 pthread_once F
+GLIBC_2.34 pthread_setspecific F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
index 5ea8f8020b..f4d633ca96 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
@@ -35,7 +35,6 @@  GLIBC_2.2.5 __pthread_rwlock_tryrdlock F
 GLIBC_2.2.5 __pthread_rwlock_trywrlock F
 GLIBC_2.2.5 __pthread_rwlock_unlock F
 GLIBC_2.2.5 __pthread_rwlock_wrlock F
-GLIBC_2.2.5 __pthread_setspecific F
 GLIBC_2.2.5 __pwrite64 F
 GLIBC_2.2.5 __read F
 GLIBC_2.2.5 __res_state F
@@ -118,7 +117,6 @@  GLIBC_2.2.5 pthread_rwlockattr_init F
 GLIBC_2.2.5 pthread_rwlockattr_setkind_np F
 GLIBC_2.2.5 pthread_rwlockattr_setpshared F
 GLIBC_2.2.5 pthread_setconcurrency F
-GLIBC_2.2.5 pthread_setspecific F
 GLIBC_2.2.5 pthread_spin_destroy F
 GLIBC_2.2.5 pthread_spin_init F
 GLIBC_2.2.5 pthread_spin_lock F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 007dd401d3..8800e570a4 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -343,6 +343,7 @@  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_setspecific F
 GLIBC_2.16 __pthread_unwind_next F
 GLIBC_2.16 __ptsname_r_chk F
 GLIBC_2.16 __pwrite64 F
@@ -1472,6 +1473,7 @@  GLIBC_2.16 pthread_self F
 GLIBC_2.16 pthread_setcancelstate F
 GLIBC_2.16 pthread_setcanceltype F
 GLIBC_2.16 pthread_setschedparam F
+GLIBC_2.16 pthread_setspecific F
 GLIBC_2.16 pthread_sigmask F
 GLIBC_2.16 ptrace F
 GLIBC_2.16 ptsname F
@@ -2204,8 +2206,10 @@  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_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_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 6e3cb18549..b687932187 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
@@ -30,7 +30,6 @@  GLIBC_2.16 __pthread_rwlock_tryrdlock F
 GLIBC_2.16 __pthread_rwlock_trywrlock F
 GLIBC_2.16 __pthread_rwlock_unlock F
 GLIBC_2.16 __pthread_rwlock_wrlock F
-GLIBC_2.16 __pthread_setspecific F
 GLIBC_2.16 __pthread_unregister_cancel F
 GLIBC_2.16 __pthread_unregister_cancel_restore F
 GLIBC_2.16 __pwrite64 F
@@ -132,7 +131,6 @@  GLIBC_2.16 pthread_setaffinity_np F
 GLIBC_2.16 pthread_setconcurrency F
 GLIBC_2.16 pthread_setname_np F
 GLIBC_2.16 pthread_setschedprio F
-GLIBC_2.16 pthread_setspecific F
 GLIBC_2.16 pthread_sigqueue F
 GLIBC_2.16 pthread_spin_destroy F
 GLIBC_2.16 pthread_spin_init F