public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
From: Adhemerval Zanella <adhemerval.zanella@linaro.org>
To: Florian Weimer <fweimer@redhat.com>, libc-alpha@sourceware.org
Subject: Re: [PATCH v3 25/37] nptl: Move pthread_getspecific, __pthread_getspecific into libc
Date: Wed, 24 Mar 2021 11:12:18 -0300	[thread overview]
Message-ID: <6418c3a1-3ead-8a0d-8312-2bc16b399d98@linaro.org> (raw)
In-Reply-To: <731956b0cd5783de2b09d1754bee65456791e4ea.1615914632.git.fweimer@redhat.com>



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_getspecific.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 4255953fad..c66e4dccab 100644
> --- a/nptl/Makefile
> +++ b/nptl/Makefile
> @@ -78,6 +78,7 @@ routines = \
>    pthread_getaffinity \
>    pthread_getattr_np \
>    pthread_getschedparam \
> +  pthread_getspecific \
>    pthread_key_create \
>    pthread_keys \
>    pthread_mutex_consistent \
> @@ -158,7 +159,6 @@ libpthread-routines = \
>    pthread_getconcurrency \
>    pthread_getcpuclockid \
>    pthread_getname \
> -  pthread_getspecific \
>    pthread_join \
>    pthread_join_common \
>    pthread_key_delete \

Ok.

> diff --git a/nptl/Versions b/nptl/Versions
> index d44958f5b6..218d6bbbf8 100644
> --- a/nptl/Versions
> +++ b/nptl/Versions
> @@ -1,5 +1,6 @@
>  libc {
>    GLIBC_2.0 {
> +    __pthread_getspecific;
>      __pthread_key_create;
>      __pthread_once;
>      _pthread_cleanup_pop;
> @@ -29,6 +30,7 @@ libc {
>      pthread_equal;
>      pthread_exit;
>      pthread_getschedparam;
> +    pthread_getspecific;
>      pthread_key_create;
>      pthread_mutex_destroy;
>      pthread_mutex_init;
> @@ -88,8 +90,10 @@ libc {
>    }
>    GLIBC_2.34 {
>      __pthread_cleanup_routine;
> +    __pthread_getspecific;

Why do we need a __pthread_getspecific for 2.34?

>      __pthread_key_create;
>      __pthread_once;
> +    pthread_getspecific;
>      pthread_key_create;
>      pthread_mutex_consistent;
>      pthread_once;
> @@ -146,7 +150,6 @@ libpthread {
>      __lseek;
>      __open;
>      __pthread_atfork;
> -    __pthread_getspecific;
>      __pthread_mutex_destroy;
>      __pthread_mutex_init;
>      __pthread_mutex_lock;
> @@ -181,7 +184,6 @@ libpthread {
>      pthread_cond_wait;
>      pthread_create;
>      pthread_detach;
> -    pthread_getspecific;
>      pthread_join;
>      pthread_key_delete;
>      pthread_kill;
> diff --git a/nptl/nptl-init.c b/nptl/nptl-init.c
> index b1a8b1a95b..5be58fc966 100644
> --- a/nptl/nptl-init.c
> +++ b/nptl/nptl-init.c
> @@ -70,7 +70,6 @@ static const struct pthread_functions pthread_functions =
>      .ptr___pthread_rwlock_rdlock = __pthread_rwlock_rdlock,
>      .ptr___pthread_rwlock_wrlock = __pthread_rwlock_wrlock,
>      .ptr___pthread_rwlock_unlock = __pthread_rwlock_unlock,
> -    .ptr___pthread_getspecific = __pthread_getspecific,
>      .ptr___pthread_setspecific = __pthread_setspecific,
>      .ptr__nptl_setxid = __nptl_setxid,
>    };

Ok.

> diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
> index 38aeed1dfc..1d69a0f617 100644
> --- a/nptl/pthreadP.h
> +++ b/nptl/pthreadP.h
> @@ -518,6 +518,7 @@ extern int __pthread_condattr_init (pthread_condattr_t *attr);
>  extern int __pthread_key_create (pthread_key_t *key, void (*destr) (void *));
>  extern int __pthread_key_delete (pthread_key_t key);
>  extern void *__pthread_getspecific (pthread_key_t key);
> +libc_hidden_proto (__pthread_getspecific)
>  extern int __pthread_setspecific (pthread_key_t key, const void *value);
>  extern int __pthread_once (pthread_once_t *once_control,
>  			   void (*init_routine) (void));
> @@ -553,7 +554,6 @@ hidden_proto (__pthread_mutex_unlock)
>  hidden_proto (__pthread_rwlock_rdlock)
>  hidden_proto (__pthread_rwlock_wrlock)
>  hidden_proto (__pthread_rwlock_unlock)
> -hidden_proto (__pthread_getspecific)
>  hidden_proto (__pthread_setspecific)
>  hidden_proto (__pthread_testcancel)
>  hidden_proto (__pthread_mutexattr_init)

Ok.

> diff --git a/nptl/pthread_getspecific.c b/nptl/pthread_getspecific.c
> index d38847e1c2..320ff2aa35 100644
> --- a/nptl/pthread_getspecific.c
> +++ b/nptl/pthread_getspecific.c
> @@ -18,10 +18,10 @@
>  
>  #include <stdlib.h>
>  #include "pthreadP.h"
> -
> +#include <shlib-compat.h>
>  
>  void *
> -__pthread_getspecific (pthread_key_t key)
> +__pthread_getspecific_1 (pthread_key_t key)
>  {
>    struct pthread_key_data *data;
>  
> @@ -63,5 +63,19 @@ __pthread_getspecific (pthread_key_t key)
>  
>    return result;
>  }
> -weak_alias (__pthread_getspecific, pthread_getspecific)
> -hidden_def (__pthread_getspecific)
> +versioned_symbol (libc, __pthread_getspecific_1, __pthread_getspecific,
> +		  GLIBC_2_34);
> +libc_hidden_ver (__pthread_getspecific_1, __pthread_getspecific)
> +
> +/* Several aliases for setting different symbol versions.  */
> +strong_alias (__pthread_getspecific_1, __pthread_getspecific_2)
> +strong_alias (__pthread_getspecific_1, __pthread_getspecific_3)
> +strong_alias (__pthread_getspecific_1, __pthread_getspecific_4)
> +
> +versioned_symbol (libc, __pthread_getspecific_2, pthread_getspecific,
> +		  GLIBC_2_34);
> +#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_34)
> +compat_symbol (libc, __pthread_getspecific_3,
> +	       __pthread_getspecific, GLIBC_2_0);
> +compat_symbol (libc, __pthread_getspecific_4, pthread_getspecific, GLIBC_2_0);
> +#endif

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 64c7a99bbf..bf92a035f8 100644
> --- a/sysdeps/nptl/libc-lockP.h
> +++ b/sysdeps/nptl/libc-lockP.h
> @@ -339,7 +339,6 @@ weak_extern (__pthread_rwlock_wrlock)
>  weak_extern (__pthread_rwlock_trywrlock)
>  weak_extern (__pthread_rwlock_unlock)
>  weak_extern (__pthread_setspecific)
> -weak_extern (__pthread_getspecific)
>  weak_extern (__pthread_initialize)
>  weak_extern (__pthread_atfork)
>  # else
> @@ -358,7 +357,6 @@ weak_extern (__pthread_atfork)
>  #  pragma weak __pthread_rwlock_trywrlock
>  #  pragma weak __pthread_rwlock_unlock
>  #  pragma weak __pthread_setspecific
> -#  pragma weak __pthread_getspecific
>  #  pragma weak __pthread_initialize
>  #  pragma weak __pthread_atfork
>  # endif

Ok.

> diff --git a/sysdeps/nptl/pthread-functions.h b/sysdeps/nptl/pthread-functions.h
> index 69ba1d8278..4b4816b873 100644
> --- a/sysdeps/nptl/pthread-functions.h
> +++ b/sysdeps/nptl/pthread-functions.h
> @@ -49,7 +49,6 @@ struct pthread_functions
>    int (*ptr___pthread_rwlock_rdlock) (pthread_rwlock_t *);
>    int (*ptr___pthread_rwlock_wrlock) (pthread_rwlock_t *);
>    int (*ptr___pthread_rwlock_unlock) (pthread_rwlock_t *);
> -  void *(*ptr___pthread_getspecific) (pthread_key_t);
>    int (*ptr___pthread_setspecific) (pthread_key_t, const void *);
>    int (*ptr__nptl_setxid) (struct xid_command *);
>  };

Ok.

> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index edd8ff4e1a..ae0e7a313e 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -339,6 +339,7 @@ GLIBC_2.17 __profile_frequency F
>  GLIBC_2.17 __progname D 0x8
>  GLIBC_2.17 __progname_full D 0x8
>  GLIBC_2.17 __pthread_cleanup_routine F
> +GLIBC_2.17 __pthread_getspecific F
>  GLIBC_2.17 __pthread_key_create F
>  GLIBC_2.17 __pthread_once F
>  GLIBC_2.17 __pthread_unwind_next F
> @@ -1450,6 +1451,7 @@ GLIBC_2.17 pthread_exit F
>  GLIBC_2.17 pthread_getaffinity_np F
>  GLIBC_2.17 pthread_getattr_np F
>  GLIBC_2.17 pthread_getschedparam F
> +GLIBC_2.17 pthread_getspecific F
>  GLIBC_2.17 pthread_key_create F
>  GLIBC_2.17 pthread_mutex_consistent F
>  GLIBC_2.17 pthread_mutex_consistent_np F
> @@ -2185,9 +2187,11 @@ GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
>  GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
> +GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_unwind_next F
> +GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> index 620915eca6..667e00551a 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> @@ -13,7 +13,6 @@ GLIBC_2.17 __lseek F
>  GLIBC_2.17 __open F
>  GLIBC_2.17 __open64 F
>  GLIBC_2.17 __pread64 F
> -GLIBC_2.17 __pthread_getspecific F
>  GLIBC_2.17 __pthread_mutex_destroy F
>  GLIBC_2.17 __pthread_mutex_init F
>  GLIBC_2.17 __pthread_mutex_lock F
> @@ -86,7 +85,6 @@ GLIBC_2.17 pthread_detach F
>  GLIBC_2.17 pthread_getconcurrency F
>  GLIBC_2.17 pthread_getcpuclockid F
>  GLIBC_2.17 pthread_getname_np F
> -GLIBC_2.17 pthread_getspecific F
>  GLIBC_2.17 pthread_join F
>  GLIBC_2.17 pthread_key_delete F
>  GLIBC_2.17 pthread_kill F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index ad921167a2..d27a8d9ad4 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -188,6 +188,7 @@ GLIBC_2.0 __printf_fp F
>  GLIBC_2.0 __profile_frequency F
>  GLIBC_2.0 __progname D 0x8
>  GLIBC_2.0 __progname_full D 0x8
> +GLIBC_2.0 __pthread_getspecific F
>  GLIBC_2.0 __pthread_key_create F
>  GLIBC_2.0 __pthread_once F
>  GLIBC_2.0 __rcmd_errstr D 0x8
> @@ -889,6 +890,7 @@ GLIBC_2.0 pthread_condattr_init F
>  GLIBC_2.0 pthread_equal F
>  GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
> +GLIBC_2.0 pthread_getspecific F
>  GLIBC_2.0 pthread_key_create F
>  GLIBC_2.0 pthread_mutex_destroy F
>  GLIBC_2.0 pthread_mutex_init F
> @@ -2266,9 +2268,11 @@ GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
>  GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
> +GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_unwind_next F
> +GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> index 85a6f26e5d..66f17908e0 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> @@ -8,7 +8,6 @@ GLIBC_2.0 __fcntl F
>  GLIBC_2.0 __h_errno_location F
>  GLIBC_2.0 __lseek F
>  GLIBC_2.0 __open F
> -GLIBC_2.0 __pthread_getspecific F
>  GLIBC_2.0 __pthread_mutex_destroy F
>  GLIBC_2.0 __pthread_mutex_init F
>  GLIBC_2.0 __pthread_mutex_lock F
> @@ -42,7 +41,6 @@ GLIBC_2.0 pthread_cond_timedwait F
>  GLIBC_2.0 pthread_cond_wait F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.0 pthread_detach F
> -GLIBC_2.0 pthread_getspecific F
>  GLIBC_2.0 pthread_join F
>  GLIBC_2.0 pthread_key_delete F
>  GLIBC_2.0 pthread_kill F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index 2bdf0fffdb..f740f0d40a 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -328,6 +328,7 @@ GLIBC_2.32 __profile_frequency F
>  GLIBC_2.32 __progname D 0x4
>  GLIBC_2.32 __progname_full D 0x4
>  GLIBC_2.32 __pthread_cleanup_routine F
> +GLIBC_2.32 __pthread_getspecific F
>  GLIBC_2.32 __pthread_key_create F
>  GLIBC_2.32 __pthread_once F
>  GLIBC_2.32 __pthread_unwind_next F
> @@ -1377,6 +1378,7 @@ GLIBC_2.32 pthread_exit F
>  GLIBC_2.32 pthread_getaffinity_np F
>  GLIBC_2.32 pthread_getattr_np F
>  GLIBC_2.32 pthread_getschedparam F
> +GLIBC_2.32 pthread_getspecific F
>  GLIBC_2.32 pthread_key_create F
>  GLIBC_2.32 pthread_mutex_consistent F
>  GLIBC_2.32 pthread_mutex_consistent_np F
> @@ -1945,9 +1947,11 @@ GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
>  GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
> +GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_unwind_next F
> +GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> index d79ba9adbf..977e964a47 100644
> --- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> @@ -12,7 +12,6 @@ GLIBC_2.32 __lseek F
>  GLIBC_2.32 __open F
>  GLIBC_2.32 __open64 F
>  GLIBC_2.32 __pread64 F
> -GLIBC_2.32 __pthread_getspecific F
>  GLIBC_2.32 __pthread_mutex_destroy F
>  GLIBC_2.32 __pthread_mutex_init F
>  GLIBC_2.32 __pthread_mutex_lock F
> @@ -100,7 +99,6 @@ GLIBC_2.32 pthread_getattr_default_np F
>  GLIBC_2.32 pthread_getconcurrency F
>  GLIBC_2.32 pthread_getcpuclockid F
>  GLIBC_2.32 pthread_getname_np F
> -GLIBC_2.32 pthread_getspecific F
>  GLIBC_2.32 pthread_join F
>  GLIBC_2.32 pthread_key_delete F
>  GLIBC_2.32 pthread_kill F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index 451c02d687..60baeff299 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -158,9 +158,11 @@ GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
>  GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
> +GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_unwind_next F
> +GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> @@ -492,6 +494,7 @@ GLIBC_2.4 __profile_frequency F
>  GLIBC_2.4 __progname D 0x4
>  GLIBC_2.4 __progname_full D 0x4
>  GLIBC_2.4 __pthread_cleanup_routine F
> +GLIBC_2.4 __pthread_getspecific F
>  GLIBC_2.4 __pthread_key_create F
>  GLIBC_2.4 __pthread_once F
>  GLIBC_2.4 __pthread_unwind_next F
> @@ -1551,6 +1554,7 @@ GLIBC_2.4 pthread_exit F
>  GLIBC_2.4 pthread_getaffinity_np F
>  GLIBC_2.4 pthread_getattr_np F
>  GLIBC_2.4 pthread_getschedparam F
> +GLIBC_2.4 pthread_getspecific F
>  GLIBC_2.4 pthread_key_create F
>  GLIBC_2.4 pthread_mutex_consistent_np F
>  GLIBC_2.4 pthread_mutex_destroy F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> index d00e0e9258..d6612a1e9e 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> @@ -47,7 +47,6 @@ GLIBC_2.4 __lseek F
>  GLIBC_2.4 __open F
>  GLIBC_2.4 __open64 F
>  GLIBC_2.4 __pread64 F
> -GLIBC_2.4 __pthread_getspecific F
>  GLIBC_2.4 __pthread_mutex_destroy F
>  GLIBC_2.4 __pthread_mutex_init F
>  GLIBC_2.4 __pthread_mutex_lock F
> @@ -119,7 +118,6 @@ GLIBC_2.4 pthread_create F
>  GLIBC_2.4 pthread_detach F
>  GLIBC_2.4 pthread_getconcurrency F
>  GLIBC_2.4 pthread_getcpuclockid F
> -GLIBC_2.4 pthread_getspecific F
>  GLIBC_2.4 pthread_join F
>  GLIBC_2.4 pthread_key_delete F
>  GLIBC_2.4 pthread_kill F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index 873d6c3f22..3525e76e3c 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -155,9 +155,11 @@ GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
>  GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
> +GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_unwind_next F
> +GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> @@ -489,6 +491,7 @@ GLIBC_2.4 __profile_frequency F
>  GLIBC_2.4 __progname D 0x4
>  GLIBC_2.4 __progname_full D 0x4
>  GLIBC_2.4 __pthread_cleanup_routine F
> +GLIBC_2.4 __pthread_getspecific F
>  GLIBC_2.4 __pthread_key_create F
>  GLIBC_2.4 __pthread_once F
>  GLIBC_2.4 __pthread_unwind_next F
> @@ -1548,6 +1551,7 @@ GLIBC_2.4 pthread_exit F
>  GLIBC_2.4 pthread_getaffinity_np F
>  GLIBC_2.4 pthread_getattr_np F
>  GLIBC_2.4 pthread_getschedparam F
> +GLIBC_2.4 pthread_getspecific F
>  GLIBC_2.4 pthread_key_create F
>  GLIBC_2.4 pthread_mutex_consistent_np F
>  GLIBC_2.4 pthread_mutex_destroy F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> index d00e0e9258..d6612a1e9e 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> @@ -47,7 +47,6 @@ GLIBC_2.4 __lseek F
>  GLIBC_2.4 __open F
>  GLIBC_2.4 __open64 F
>  GLIBC_2.4 __pread64 F
> -GLIBC_2.4 __pthread_getspecific F
>  GLIBC_2.4 __pthread_mutex_destroy F
>  GLIBC_2.4 __pthread_mutex_init F
>  GLIBC_2.4 __pthread_mutex_lock F
> @@ -119,7 +118,6 @@ GLIBC_2.4 pthread_create F
>  GLIBC_2.4 pthread_detach F
>  GLIBC_2.4 pthread_getconcurrency F
>  GLIBC_2.4 pthread_getcpuclockid F
> -GLIBC_2.4 pthread_getspecific F
>  GLIBC_2.4 pthread_join F
>  GLIBC_2.4 pthread_key_delete F
>  GLIBC_2.4 pthread_kill F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index d9149b68cc..ec6b7f2755 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -332,6 +332,7 @@ GLIBC_2.29 __profile_frequency F
>  GLIBC_2.29 __progname D 0x4
>  GLIBC_2.29 __progname_full D 0x4
>  GLIBC_2.29 __pthread_cleanup_routine F
> +GLIBC_2.29 __pthread_getspecific F
>  GLIBC_2.29 __pthread_key_create F
>  GLIBC_2.29 __pthread_once F
>  GLIBC_2.29 __pthread_unwind_next F
> @@ -1438,6 +1439,7 @@ GLIBC_2.29 pthread_exit F
>  GLIBC_2.29 pthread_getaffinity_np F
>  GLIBC_2.29 pthread_getattr_np F
>  GLIBC_2.29 pthread_getschedparam F
> +GLIBC_2.29 pthread_getspecific F
>  GLIBC_2.29 pthread_key_create F
>  GLIBC_2.29 pthread_mutex_consistent F
>  GLIBC_2.29 pthread_mutex_consistent_np F
> @@ -2129,9 +2131,11 @@ GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
>  GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
> +GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_unwind_next F
> +GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> index e3721d98e6..78eb06a880 100644
> --- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> @@ -12,7 +12,6 @@ GLIBC_2.29 __lseek F
>  GLIBC_2.29 __open F
>  GLIBC_2.29 __open64 F
>  GLIBC_2.29 __pread64 F
> -GLIBC_2.29 __pthread_getspecific F
>  GLIBC_2.29 __pthread_mutex_destroy F
>  GLIBC_2.29 __pthread_mutex_init F
>  GLIBC_2.29 __pthread_mutex_lock F
> @@ -98,7 +97,6 @@ GLIBC_2.29 pthread_getattr_default_np F
>  GLIBC_2.29 pthread_getconcurrency F
>  GLIBC_2.29 pthread_getcpuclockid F
>  GLIBC_2.29 pthread_getname_np F
> -GLIBC_2.29 pthread_getspecific F
>  GLIBC_2.29 pthread_join F
>  GLIBC_2.29 pthread_key_delete F
>  GLIBC_2.29 pthread_kill F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index 938fa14288..0ef57987cd 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -356,6 +356,7 @@ GLIBC_2.2 __printf_fp F
>  GLIBC_2.2 __profile_frequency F
>  GLIBC_2.2 __progname D 0x4
>  GLIBC_2.2 __progname_full D 0x4
> +GLIBC_2.2 __pthread_getspecific F
>  GLIBC_2.2 __pthread_key_create F
>  GLIBC_2.2 __pthread_once F
>  GLIBC_2.2 __pwrite64 F
> @@ -1273,6 +1274,7 @@ GLIBC_2.2 pthread_condattr_init F
>  GLIBC_2.2 pthread_equal F
>  GLIBC_2.2 pthread_exit F
>  GLIBC_2.2 pthread_getschedparam F
> +GLIBC_2.2 pthread_getspecific F
>  GLIBC_2.2 pthread_key_create F
>  GLIBC_2.2 pthread_mutex_destroy F
>  GLIBC_2.2 pthread_mutex_init F
> @@ -2087,9 +2089,11 @@ GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
>  GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
> +GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_unwind_next F
> +GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> index bf871d121b..cc98751c47 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> @@ -20,7 +20,6 @@ GLIBC_2.2 __lseek F
>  GLIBC_2.2 __open F
>  GLIBC_2.2 __open64 F
>  GLIBC_2.2 __pread64 F
> -GLIBC_2.2 __pthread_getspecific F
>  GLIBC_2.2 __pthread_mutex_destroy F
>  GLIBC_2.2 __pthread_mutex_init F
>  GLIBC_2.2 __pthread_mutex_lock F
> @@ -85,7 +84,6 @@ GLIBC_2.2 pthread_create F
>  GLIBC_2.2 pthread_detach F
>  GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
> -GLIBC_2.2 pthread_getspecific F
>  GLIBC_2.2 pthread_join F
>  GLIBC_2.2 pthread_key_delete F
>  GLIBC_2.2 pthread_kill F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index 425d1df5a3..fa7a28a5e3 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -185,6 +185,7 @@ GLIBC_2.0 __printf_fp F
>  GLIBC_2.0 __profile_frequency F
>  GLIBC_2.0 __progname D 0x4
>  GLIBC_2.0 __progname_full D 0x4
> +GLIBC_2.0 __pthread_getspecific F
>  GLIBC_2.0 __pthread_key_create F
>  GLIBC_2.0 __pthread_once F
>  GLIBC_2.0 __rcmd_errstr D 0x4
> @@ -866,6 +867,7 @@ GLIBC_2.0 pthread_condattr_init F
>  GLIBC_2.0 pthread_equal F
>  GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
> +GLIBC_2.0 pthread_getspecific F
>  GLIBC_2.0 pthread_key_create F
>  GLIBC_2.0 pthread_mutex_destroy F
>  GLIBC_2.0 pthread_mutex_init F
> @@ -2254,9 +2256,11 @@ GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
>  GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
> +GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_unwind_next F
> +GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> index b186b3039b..6c0211a134 100644
> --- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> @@ -8,7 +8,6 @@ GLIBC_2.0 __fcntl F
>  GLIBC_2.0 __h_errno_location F
>  GLIBC_2.0 __lseek F
>  GLIBC_2.0 __open F
> -GLIBC_2.0 __pthread_getspecific F
>  GLIBC_2.0 __pthread_mutex_destroy F
>  GLIBC_2.0 __pthread_mutex_init F
>  GLIBC_2.0 __pthread_mutex_lock F
> @@ -42,7 +41,6 @@ GLIBC_2.0 pthread_cond_timedwait F
>  GLIBC_2.0 pthread_cond_wait F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.0 pthread_detach F
> -GLIBC_2.0 pthread_getspecific F
>  GLIBC_2.0 pthread_join F
>  GLIBC_2.0 pthread_key_delete F
>  GLIBC_2.0 pthread_kill F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index c34b5a157d..078315ddda 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -360,6 +360,7 @@ GLIBC_2.2 __printf_fp F
>  GLIBC_2.2 __profile_frequency F
>  GLIBC_2.2 __progname D 0x8
>  GLIBC_2.2 __progname_full D 0x8
> +GLIBC_2.2 __pthread_getspecific F
>  GLIBC_2.2 __pthread_key_create F
>  GLIBC_2.2 __pthread_once F
>  GLIBC_2.2 __pwrite64 F
> @@ -1294,6 +1295,7 @@ GLIBC_2.2 pthread_condattr_init F
>  GLIBC_2.2 pthread_equal F
>  GLIBC_2.2 pthread_exit F
>  GLIBC_2.2 pthread_getschedparam F
> +GLIBC_2.2 pthread_getspecific F
>  GLIBC_2.2 pthread_key_create F
>  GLIBC_2.2 pthread_mutex_destroy F
>  GLIBC_2.2 pthread_mutex_init F
> @@ -2119,9 +2121,11 @@ GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
>  GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
> +GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_unwind_next F
> +GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> index b49b6ef57a..f18ff271c2 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> @@ -20,7 +20,6 @@ GLIBC_2.2 __lseek F
>  GLIBC_2.2 __open F
>  GLIBC_2.2 __open64 F
>  GLIBC_2.2 __pread64 F
> -GLIBC_2.2 __pthread_getspecific F
>  GLIBC_2.2 __pthread_mutex_destroy F
>  GLIBC_2.2 __pthread_mutex_init F
>  GLIBC_2.2 __pthread_mutex_lock F
> @@ -85,7 +84,6 @@ GLIBC_2.2 pthread_create F
>  GLIBC_2.2 pthread_detach F
>  GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
> -GLIBC_2.2 pthread_getspecific F
>  GLIBC_2.2 pthread_join F
>  GLIBC_2.2 pthread_key_delete F
>  GLIBC_2.2 pthread_kill F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index 56d55caed9..e297ce158e 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -159,9 +159,11 @@ GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
>  GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
> +GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_unwind_next F
> +GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> @@ -478,6 +480,7 @@ GLIBC_2.4 __profile_frequency F
>  GLIBC_2.4 __progname D 0x4
>  GLIBC_2.4 __progname_full D 0x4
>  GLIBC_2.4 __pthread_cleanup_routine F
> +GLIBC_2.4 __pthread_getspecific F
>  GLIBC_2.4 __pthread_key_create F
>  GLIBC_2.4 __pthread_once F
>  GLIBC_2.4 __pthread_unwind_next F
> @@ -1531,6 +1534,7 @@ GLIBC_2.4 pthread_exit F
>  GLIBC_2.4 pthread_getaffinity_np F
>  GLIBC_2.4 pthread_getattr_np F
>  GLIBC_2.4 pthread_getschedparam F
> +GLIBC_2.4 pthread_getspecific F
>  GLIBC_2.4 pthread_key_create F
>  GLIBC_2.4 pthread_mutex_consistent_np F
>  GLIBC_2.4 pthread_mutex_destroy F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> index d00e0e9258..d6612a1e9e 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> @@ -47,7 +47,6 @@ GLIBC_2.4 __lseek F
>  GLIBC_2.4 __open F
>  GLIBC_2.4 __open64 F
>  GLIBC_2.4 __pread64 F
> -GLIBC_2.4 __pthread_getspecific F
>  GLIBC_2.4 __pthread_mutex_destroy F
>  GLIBC_2.4 __pthread_mutex_init F
>  GLIBC_2.4 __pthread_mutex_lock F
> @@ -119,7 +118,6 @@ GLIBC_2.4 pthread_create F
>  GLIBC_2.4 pthread_detach F
>  GLIBC_2.4 pthread_getconcurrency F
>  GLIBC_2.4 pthread_getcpuclockid F
> -GLIBC_2.4 pthread_getspecific F
>  GLIBC_2.4 pthread_join F
>  GLIBC_2.4 pthread_key_delete F
>  GLIBC_2.4 pthread_kill F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index a3b3bf4f74..10c54ce3ab 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -185,6 +185,7 @@ GLIBC_2.0 __printf_fp F
>  GLIBC_2.0 __profile_frequency F
>  GLIBC_2.0 __progname D 0x4
>  GLIBC_2.0 __progname_full D 0x4
> +GLIBC_2.0 __pthread_getspecific F
>  GLIBC_2.0 __pthread_key_create F
>  GLIBC_2.0 __pthread_once F
>  GLIBC_2.0 __rcmd_errstr D 0x4
> @@ -865,6 +866,7 @@ GLIBC_2.0 pthread_condattr_init F
>  GLIBC_2.0 pthread_equal F
>  GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
> +GLIBC_2.0 pthread_getspecific F
>  GLIBC_2.0 pthread_key_create F
>  GLIBC_2.0 pthread_mutex_destroy F
>  GLIBC_2.0 pthread_mutex_init F
> @@ -2199,9 +2201,11 @@ GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
>  GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
> +GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_unwind_next F
> +GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> index b186b3039b..6c0211a134 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> @@ -8,7 +8,6 @@ GLIBC_2.0 __fcntl F
>  GLIBC_2.0 __h_errno_location F
>  GLIBC_2.0 __lseek F
>  GLIBC_2.0 __open F
> -GLIBC_2.0 __pthread_getspecific F
>  GLIBC_2.0 __pthread_mutex_destroy F
>  GLIBC_2.0 __pthread_mutex_init F
>  GLIBC_2.0 __pthread_mutex_lock F
> @@ -42,7 +41,6 @@ GLIBC_2.0 pthread_cond_timedwait F
>  GLIBC_2.0 pthread_cond_wait F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.0 pthread_detach F
> -GLIBC_2.0 pthread_getspecific F
>  GLIBC_2.0 pthread_join F
>  GLIBC_2.0 pthread_key_delete F
>  GLIBC_2.0 pthread_kill F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index 75213c08d4..e6d033a29b 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -340,6 +340,7 @@ GLIBC_2.18 __profile_frequency F
>  GLIBC_2.18 __progname D 0x4
>  GLIBC_2.18 __progname_full D 0x4
>  GLIBC_2.18 __pthread_cleanup_routine F
> +GLIBC_2.18 __pthread_getspecific F
>  GLIBC_2.18 __pthread_key_create F
>  GLIBC_2.18 __pthread_once F
>  GLIBC_2.18 __pthread_unwind_next F
> @@ -1453,6 +1454,7 @@ GLIBC_2.18 pthread_exit F
>  GLIBC_2.18 pthread_getaffinity_np F
>  GLIBC_2.18 pthread_getattr_np F
>  GLIBC_2.18 pthread_getschedparam F
> +GLIBC_2.18 pthread_getspecific F
>  GLIBC_2.18 pthread_key_create F
>  GLIBC_2.18 pthread_mutex_consistent F
>  GLIBC_2.18 pthread_mutex_consistent_np F
> @@ -2180,9 +2182,11 @@ GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
>  GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
> +GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_unwind_next F
> +GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> index ca115fe783..4751a8e6c5 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> @@ -13,7 +13,6 @@ GLIBC_2.18 __lseek F
>  GLIBC_2.18 __open F
>  GLIBC_2.18 __open64 F
>  GLIBC_2.18 __pread64 F
> -GLIBC_2.18 __pthread_getspecific F
>  GLIBC_2.18 __pthread_mutex_destroy F
>  GLIBC_2.18 __pthread_mutex_init F
>  GLIBC_2.18 __pthread_mutex_lock F
> @@ -87,7 +86,6 @@ GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.18 pthread_getconcurrency F
>  GLIBC_2.18 pthread_getcpuclockid F
>  GLIBC_2.18 pthread_getname_np F
> -GLIBC_2.18 pthread_getspecific F
>  GLIBC_2.18 pthread_join F
>  GLIBC_2.18 pthread_key_delete F
>  GLIBC_2.18 pthread_kill F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index 014d53f893..448c257562 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -340,6 +340,7 @@ GLIBC_2.18 __profile_frequency F
>  GLIBC_2.18 __progname D 0x4
>  GLIBC_2.18 __progname_full D 0x4
>  GLIBC_2.18 __pthread_cleanup_routine F
> +GLIBC_2.18 __pthread_getspecific F
>  GLIBC_2.18 __pthread_key_create F
>  GLIBC_2.18 __pthread_once F
>  GLIBC_2.18 __pthread_unwind_next F
> @@ -1453,6 +1454,7 @@ GLIBC_2.18 pthread_exit F
>  GLIBC_2.18 pthread_getaffinity_np F
>  GLIBC_2.18 pthread_getattr_np F
>  GLIBC_2.18 pthread_getschedparam F
> +GLIBC_2.18 pthread_getspecific F
>  GLIBC_2.18 pthread_key_create F
>  GLIBC_2.18 pthread_mutex_consistent F
>  GLIBC_2.18 pthread_mutex_consistent_np F
> @@ -2177,9 +2179,11 @@ GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
>  GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
> +GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_unwind_next F
> +GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> index ca115fe783..4751a8e6c5 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> @@ -13,7 +13,6 @@ GLIBC_2.18 __lseek F
>  GLIBC_2.18 __open F
>  GLIBC_2.18 __open64 F
>  GLIBC_2.18 __pread64 F
> -GLIBC_2.18 __pthread_getspecific F
>  GLIBC_2.18 __pthread_mutex_destroy F
>  GLIBC_2.18 __pthread_mutex_init F
>  GLIBC_2.18 __pthread_mutex_lock F
> @@ -87,7 +86,6 @@ GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.18 pthread_getconcurrency F
>  GLIBC_2.18 pthread_getcpuclockid F
>  GLIBC_2.18 pthread_getname_np F
> -GLIBC_2.18 pthread_getspecific F
>  GLIBC_2.18 pthread_join F
>  GLIBC_2.18 pthread_key_delete F
>  GLIBC_2.18 pthread_kill F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index 46c7716ee6..8f5df09289 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -183,6 +183,7 @@ GLIBC_2.0 __printf_fp F
>  GLIBC_2.0 __profile_frequency F
>  GLIBC_2.0 __progname D 0x4
>  GLIBC_2.0 __progname_full D 0x4
> +GLIBC_2.0 __pthread_getspecific F
>  GLIBC_2.0 __pthread_key_create F
>  GLIBC_2.0 __pthread_once F
>  GLIBC_2.0 __rcmd_errstr D 0x4
> @@ -862,6 +863,7 @@ GLIBC_2.0 pthread_condattr_init F
>  GLIBC_2.0 pthread_equal F
>  GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
> +GLIBC_2.0 pthread_getspecific F
>  GLIBC_2.0 pthread_key_create F
>  GLIBC_2.0 pthread_mutex_destroy F
>  GLIBC_2.0 pthread_mutex_init F
> @@ -2170,9 +2172,11 @@ GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
>  GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
> +GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_unwind_next F
> +GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> index 2b830751c8..ea9a850ba9 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> @@ -8,7 +8,6 @@ GLIBC_2.0 __fcntl F
>  GLIBC_2.0 __h_errno_location F
>  GLIBC_2.0 __lseek F
>  GLIBC_2.0 __open F
> -GLIBC_2.0 __pthread_getspecific F
>  GLIBC_2.0 __pthread_mutex_destroy F
>  GLIBC_2.0 __pthread_mutex_init F
>  GLIBC_2.0 __pthread_mutex_lock F
> @@ -42,7 +41,6 @@ GLIBC_2.0 pthread_cond_timedwait F
>  GLIBC_2.0 pthread_cond_wait F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.0 pthread_detach F
> -GLIBC_2.0 pthread_getspecific F
>  GLIBC_2.0 pthread_join F
>  GLIBC_2.0 pthread_key_delete F
>  GLIBC_2.0 pthread_kill F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index 5666362839..4d39526a30 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -183,6 +183,7 @@ GLIBC_2.0 __printf_fp F
>  GLIBC_2.0 __profile_frequency F
>  GLIBC_2.0 __progname D 0x4
>  GLIBC_2.0 __progname_full D 0x4
> +GLIBC_2.0 __pthread_getspecific F
>  GLIBC_2.0 __pthread_key_create F
>  GLIBC_2.0 __pthread_once F
>  GLIBC_2.0 __rcmd_errstr D 0x4
> @@ -862,6 +863,7 @@ GLIBC_2.0 pthread_condattr_init F
>  GLIBC_2.0 pthread_equal F
>  GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
> +GLIBC_2.0 pthread_getspecific F
>  GLIBC_2.0 pthread_key_create F
>  GLIBC_2.0 pthread_mutex_destroy F
>  GLIBC_2.0 pthread_mutex_init F
> @@ -2168,9 +2170,11 @@ GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
>  GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
> +GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_unwind_next F
> +GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> index 2b830751c8..ea9a850ba9 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> @@ -8,7 +8,6 @@ GLIBC_2.0 __fcntl F
>  GLIBC_2.0 __h_errno_location F
>  GLIBC_2.0 __lseek F
>  GLIBC_2.0 __open F
> -GLIBC_2.0 __pthread_getspecific F
>  GLIBC_2.0 __pthread_mutex_destroy F
>  GLIBC_2.0 __pthread_mutex_init F
>  GLIBC_2.0 __pthread_mutex_lock F
> @@ -42,7 +41,6 @@ GLIBC_2.0 pthread_cond_timedwait F
>  GLIBC_2.0 pthread_cond_wait F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.0 pthread_detach F
> -GLIBC_2.0 pthread_getspecific F
>  GLIBC_2.0 pthread_join F
>  GLIBC_2.0 pthread_key_delete F
>  GLIBC_2.0 pthread_kill F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index 97866f80c7..3cfb9e62db 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -183,6 +183,7 @@ GLIBC_2.0 __printf_fp F
>  GLIBC_2.0 __profile_frequency F
>  GLIBC_2.0 __progname D 0x4
>  GLIBC_2.0 __progname_full D 0x4
> +GLIBC_2.0 __pthread_getspecific F
>  GLIBC_2.0 __pthread_key_create F
>  GLIBC_2.0 __pthread_once F
>  GLIBC_2.0 __rcmd_errstr D 0x4
> @@ -862,6 +863,7 @@ GLIBC_2.0 pthread_condattr_init F
>  GLIBC_2.0 pthread_equal F
>  GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
> +GLIBC_2.0 pthread_getspecific F
>  GLIBC_2.0 pthread_key_create F
>  GLIBC_2.0 pthread_mutex_destroy F
>  GLIBC_2.0 pthread_mutex_init F
> @@ -2176,9 +2178,11 @@ GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
>  GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
> +GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_unwind_next F
> +GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index 3d9321f9e0..9b5cc5db4c 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -183,6 +183,7 @@ GLIBC_2.0 __printf_fp F
>  GLIBC_2.0 __profile_frequency F
>  GLIBC_2.0 __progname D 0x8
>  GLIBC_2.0 __progname_full D 0x8
> +GLIBC_2.0 __pthread_getspecific F
>  GLIBC_2.0 __pthread_key_create F
>  GLIBC_2.0 __pthread_once F
>  GLIBC_2.0 __rcmd_errstr D 0x8
> @@ -860,6 +861,7 @@ GLIBC_2.0 pthread_condattr_init F
>  GLIBC_2.0 pthread_equal F
>  GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
> +GLIBC_2.0 pthread_getspecific F
>  GLIBC_2.0 pthread_key_create F
>  GLIBC_2.0 pthread_mutex_destroy F
>  GLIBC_2.0 pthread_mutex_init F
> @@ -2170,9 +2172,11 @@ GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
>  GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
> +GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_unwind_next F
> +GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index 3a0c0c5d8a..1335395b2f 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -377,6 +377,7 @@ GLIBC_2.21 __profile_frequency F
>  GLIBC_2.21 __progname D 0x4
>  GLIBC_2.21 __progname_full D 0x4
>  GLIBC_2.21 __pthread_cleanup_routine F
> +GLIBC_2.21 __pthread_getspecific F
>  GLIBC_2.21 __pthread_key_create F
>  GLIBC_2.21 __pthread_once F
>  GLIBC_2.21 __pthread_unwind_next F
> @@ -1495,6 +1496,7 @@ GLIBC_2.21 pthread_exit F
>  GLIBC_2.21 pthread_getaffinity_np F
>  GLIBC_2.21 pthread_getattr_np F
>  GLIBC_2.21 pthread_getschedparam F
> +GLIBC_2.21 pthread_getspecific F
>  GLIBC_2.21 pthread_key_create F
>  GLIBC_2.21 pthread_mutex_consistent F
>  GLIBC_2.21 pthread_mutex_consistent_np F
> @@ -2218,9 +2220,11 @@ GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
>  GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
> +GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_unwind_next F
> +GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> index 06500b1865..e6354e8a80 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> @@ -13,7 +13,6 @@ GLIBC_2.21 __lseek F
>  GLIBC_2.21 __open F
>  GLIBC_2.21 __open64 F
>  GLIBC_2.21 __pread64 F
> -GLIBC_2.21 __pthread_getspecific F
>  GLIBC_2.21 __pthread_mutex_destroy F
>  GLIBC_2.21 __pthread_mutex_init F
>  GLIBC_2.21 __pthread_mutex_lock F
> @@ -87,7 +86,6 @@ GLIBC_2.21 pthread_getattr_default_np F
>  GLIBC_2.21 pthread_getconcurrency F
>  GLIBC_2.21 pthread_getcpuclockid F
>  GLIBC_2.21 pthread_getname_np F
> -GLIBC_2.21 pthread_getspecific F
>  GLIBC_2.21 pthread_join F
>  GLIBC_2.21 pthread_key_delete F
>  GLIBC_2.21 pthread_kill F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index c01a200e83..eb5f9814e8 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -194,6 +194,7 @@ GLIBC_2.0 __printf_fp F
>  GLIBC_2.0 __profile_frequency F
>  GLIBC_2.0 __progname D 0x4
>  GLIBC_2.0 __progname_full D 0x4
> +GLIBC_2.0 __pthread_getspecific F
>  GLIBC_2.0 __pthread_key_create F
>  GLIBC_2.0 __pthread_once F
>  GLIBC_2.0 __rcmd_errstr D 0x4
> @@ -873,6 +874,7 @@ GLIBC_2.0 pthread_condattr_init F
>  GLIBC_2.0 pthread_equal F
>  GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
> +GLIBC_2.0 pthread_getspecific F
>  GLIBC_2.0 pthread_key_create F
>  GLIBC_2.0 pthread_mutex_destroy F
>  GLIBC_2.0 pthread_mutex_init F
> @@ -2226,9 +2228,11 @@ GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
>  GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
> +GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_unwind_next F
> +GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> index d36522b751..a56ee2d7ca 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> @@ -8,7 +8,6 @@ GLIBC_2.0 __fcntl F
>  GLIBC_2.0 __h_errno_location F
>  GLIBC_2.0 __lseek F
>  GLIBC_2.0 __open F
> -GLIBC_2.0 __pthread_getspecific F
>  GLIBC_2.0 __pthread_mutex_destroy F
>  GLIBC_2.0 __pthread_mutex_init F
>  GLIBC_2.0 __pthread_mutex_lock F
> @@ -42,7 +41,6 @@ GLIBC_2.0 pthread_cond_timedwait F
>  GLIBC_2.0 pthread_cond_wait F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.0 pthread_detach F
> -GLIBC_2.0 pthread_getspecific F
>  GLIBC_2.0 pthread_join F
>  GLIBC_2.0 pthread_key_delete F
>  GLIBC_2.0 pthread_kill F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index 3eced88f9f..b0372c3178 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -194,6 +194,7 @@ GLIBC_2.0 __printf_fp F
>  GLIBC_2.0 __profile_frequency F
>  GLIBC_2.0 __progname D 0x4
>  GLIBC_2.0 __progname_full D 0x4
> +GLIBC_2.0 __pthread_getspecific F
>  GLIBC_2.0 __pthread_key_create F
>  GLIBC_2.0 __pthread_once F
>  GLIBC_2.0 __rcmd_errstr D 0x4
> @@ -873,6 +874,7 @@ GLIBC_2.0 pthread_condattr_init F
>  GLIBC_2.0 pthread_equal F
>  GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
> +GLIBC_2.0 pthread_getspecific F
>  GLIBC_2.0 pthread_key_create F
>  GLIBC_2.0 pthread_mutex_destroy F
>  GLIBC_2.0 pthread_mutex_init F
> @@ -2259,9 +2261,11 @@ GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
>  GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
> +GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_unwind_next F
> +GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index 35b689a767..aa4aadbbb4 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -409,6 +409,7 @@ GLIBC_2.3 __printf_fp F
>  GLIBC_2.3 __profile_frequency F
>  GLIBC_2.3 __progname D 0x8
>  GLIBC_2.3 __progname_full D 0x8
> +GLIBC_2.3 __pthread_getspecific F
>  GLIBC_2.3 __pthread_key_create F
>  GLIBC_2.3 __pthread_once F
>  GLIBC_2.3 __pwrite64 F
> @@ -1380,6 +1381,7 @@ GLIBC_2.3 pthread_equal F
>  GLIBC_2.3 pthread_exit F
>  GLIBC_2.3 pthread_getattr_np F
>  GLIBC_2.3 pthread_getschedparam F
> +GLIBC_2.3 pthread_getspecific F
>  GLIBC_2.3 pthread_key_create F
>  GLIBC_2.3 pthread_mutex_destroy F
>  GLIBC_2.3 pthread_mutex_init F
> @@ -2089,9 +2091,11 @@ GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
>  GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
> +GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_unwind_next F
> +GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> index 2d24956efe..6b2c9bba60 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> @@ -41,7 +41,6 @@ GLIBC_2.3 __lseek F
>  GLIBC_2.3 __open F
>  GLIBC_2.3 __open64 F
>  GLIBC_2.3 __pread64 F
> -GLIBC_2.3 __pthread_getspecific F
>  GLIBC_2.3 __pthread_mutex_destroy F
>  GLIBC_2.3 __pthread_mutex_init F
>  GLIBC_2.3 __pthread_mutex_lock F
> @@ -105,7 +104,6 @@ GLIBC_2.3 pthread_create F
>  GLIBC_2.3 pthread_detach F
>  GLIBC_2.3 pthread_getconcurrency F
>  GLIBC_2.3 pthread_getcpuclockid F
> -GLIBC_2.3 pthread_getspecific F
>  GLIBC_2.3 pthread_join F
>  GLIBC_2.3 pthread_key_delete F
>  GLIBC_2.3 pthread_kill F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index d54a37f8ad..045912572c 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -425,6 +425,7 @@ GLIBC_2.17 __profile_frequency F
>  GLIBC_2.17 __progname D 0x8
>  GLIBC_2.17 __progname_full D 0x8
>  GLIBC_2.17 __pthread_cleanup_routine F
> +GLIBC_2.17 __pthread_getspecific F
>  GLIBC_2.17 __pthread_key_create F
>  GLIBC_2.17 __pthread_once F
>  GLIBC_2.17 __pthread_unwind_next F
> @@ -1539,6 +1540,7 @@ GLIBC_2.17 pthread_exit F
>  GLIBC_2.17 pthread_getaffinity_np F
>  GLIBC_2.17 pthread_getattr_np F
>  GLIBC_2.17 pthread_getschedparam F
> +GLIBC_2.17 pthread_getspecific F
>  GLIBC_2.17 pthread_key_create F
>  GLIBC_2.17 pthread_mutex_consistent F
>  GLIBC_2.17 pthread_mutex_consistent_np F
> @@ -2380,9 +2382,11 @@ GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
>  GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
> +GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_unwind_next F
> +GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> index 620915eca6..667e00551a 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> @@ -13,7 +13,6 @@ GLIBC_2.17 __lseek F
>  GLIBC_2.17 __open F
>  GLIBC_2.17 __open64 F
>  GLIBC_2.17 __pread64 F
> -GLIBC_2.17 __pthread_getspecific F
>  GLIBC_2.17 __pthread_mutex_destroy F
>  GLIBC_2.17 __pthread_mutex_init F
>  GLIBC_2.17 __pthread_mutex_lock F
> @@ -86,7 +85,6 @@ GLIBC_2.17 pthread_detach F
>  GLIBC_2.17 pthread_getconcurrency F
>  GLIBC_2.17 pthread_getcpuclockid F
>  GLIBC_2.17 pthread_getname_np F
> -GLIBC_2.17 pthread_getspecific F
>  GLIBC_2.17 pthread_join F
>  GLIBC_2.17 pthread_key_delete F
>  GLIBC_2.17 pthread_kill F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index e82a4a7a90..5ef9b35b6d 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -325,6 +325,7 @@ GLIBC_2.33 __profile_frequency F
>  GLIBC_2.33 __progname D 0x4
>  GLIBC_2.33 __progname_full D 0x4
>  GLIBC_2.33 __pthread_cleanup_routine F
> +GLIBC_2.33 __pthread_getspecific F
>  GLIBC_2.33 __pthread_key_create F
>  GLIBC_2.33 __pthread_once F
>  GLIBC_2.33 __pthread_unwind_next F
> @@ -1379,6 +1380,7 @@ GLIBC_2.33 pthread_exit F
>  GLIBC_2.33 pthread_getaffinity_np F
>  GLIBC_2.33 pthread_getattr_np F
>  GLIBC_2.33 pthread_getschedparam F
> +GLIBC_2.33 pthread_getspecific F
>  GLIBC_2.33 pthread_key_create F
>  GLIBC_2.33 pthread_mutex_consistent F
>  GLIBC_2.33 pthread_mutex_consistent_np F
> @@ -1947,9 +1949,11 @@ GLIBC_2.33 writev F
>  GLIBC_2.33 wscanf F
>  GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
> +GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_unwind_next F
> +GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> index c2dd7f8dee..5665726bbb 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> @@ -12,7 +12,6 @@ GLIBC_2.33 __lseek F
>  GLIBC_2.33 __open F
>  GLIBC_2.33 __open64 F
>  GLIBC_2.33 __pread64 F
> -GLIBC_2.33 __pthread_getspecific F
>  GLIBC_2.33 __pthread_mutex_destroy F
>  GLIBC_2.33 __pthread_mutex_init F
>  GLIBC_2.33 __pthread_mutex_lock F
> @@ -100,7 +99,6 @@ GLIBC_2.33 pthread_getattr_default_np F
>  GLIBC_2.33 pthread_getconcurrency F
>  GLIBC_2.33 pthread_getcpuclockid F
>  GLIBC_2.33 pthread_getname_np F
> -GLIBC_2.33 pthread_getspecific F
>  GLIBC_2.33 pthread_join F
>  GLIBC_2.33 pthread_key_delete F
>  GLIBC_2.33 pthread_kill F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index 0c81f1a72c..7f7385d87c 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -336,6 +336,7 @@ GLIBC_2.27 __profile_frequency F
>  GLIBC_2.27 __progname D 0x8
>  GLIBC_2.27 __progname_full D 0x8
>  GLIBC_2.27 __pthread_cleanup_routine F
> +GLIBC_2.27 __pthread_getspecific F
>  GLIBC_2.27 __pthread_key_create F
>  GLIBC_2.27 __pthread_once F
>  GLIBC_2.27 __pthread_unwind_next F
> @@ -1441,6 +1442,7 @@ GLIBC_2.27 pthread_exit F
>  GLIBC_2.27 pthread_getaffinity_np F
>  GLIBC_2.27 pthread_getattr_np F
>  GLIBC_2.27 pthread_getschedparam F
> +GLIBC_2.27 pthread_getspecific F
>  GLIBC_2.27 pthread_key_create F
>  GLIBC_2.27 pthread_mutex_consistent F
>  GLIBC_2.27 pthread_mutex_consistent_np F
> @@ -2147,9 +2149,11 @@ GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
>  GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
> +GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_unwind_next F
> +GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> index d53306f3cb..5abf715b3b 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> @@ -13,7 +13,6 @@ GLIBC_2.27 __lseek F
>  GLIBC_2.27 __open F
>  GLIBC_2.27 __open64 F
>  GLIBC_2.27 __pread64 F
> -GLIBC_2.27 __pthread_getspecific F
>  GLIBC_2.27 __pthread_mutex_destroy F
>  GLIBC_2.27 __pthread_mutex_init F
>  GLIBC_2.27 __pthread_mutex_lock F
> @@ -87,7 +86,6 @@ GLIBC_2.27 pthread_getattr_default_np F
>  GLIBC_2.27 pthread_getconcurrency F
>  GLIBC_2.27 pthread_getcpuclockid F
>  GLIBC_2.27 pthread_getname_np F
> -GLIBC_2.27 pthread_getspecific F
>  GLIBC_2.27 pthread_join F
>  GLIBC_2.27 pthread_key_delete F
>  GLIBC_2.27 pthread_kill F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index ca08d2f3f5..c062cbcde7 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -185,6 +185,7 @@ GLIBC_2.0 __printf_fp F
>  GLIBC_2.0 __profile_frequency F
>  GLIBC_2.0 __progname D 0x4
>  GLIBC_2.0 __progname_full D 0x4
> +GLIBC_2.0 __pthread_getspecific F
>  GLIBC_2.0 __pthread_key_create F
>  GLIBC_2.0 __pthread_once F
>  GLIBC_2.0 __rcmd_errstr D 0x4
> @@ -864,6 +865,7 @@ GLIBC_2.0 pthread_condattr_init F
>  GLIBC_2.0 pthread_equal F
>  GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
> +GLIBC_2.0 pthread_getspecific F
>  GLIBC_2.0 pthread_key_create F
>  GLIBC_2.0 pthread_mutex_destroy F
>  GLIBC_2.0 pthread_mutex_init F
> @@ -2224,9 +2226,11 @@ GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
>  GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
> +GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_unwind_next F
> +GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> index accbf2be59..bfeb7b715f 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> @@ -8,7 +8,6 @@ GLIBC_2.0 __fcntl F
>  GLIBC_2.0 __h_errno_location F
>  GLIBC_2.0 __lseek F
>  GLIBC_2.0 __open F
> -GLIBC_2.0 __pthread_getspecific F
>  GLIBC_2.0 __pthread_mutex_destroy F
>  GLIBC_2.0 __pthread_mutex_init F
>  GLIBC_2.0 __pthread_mutex_lock F
> @@ -42,7 +41,6 @@ GLIBC_2.0 pthread_cond_timedwait F
>  GLIBC_2.0 pthread_cond_wait F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.0 pthread_detach F
> -GLIBC_2.0 pthread_getspecific F
>  GLIBC_2.0 pthread_join F
>  GLIBC_2.0 pthread_key_delete F
>  GLIBC_2.0 pthread_kill F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index 061e0c6ffa..cfc797c7fb 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -370,6 +370,7 @@ GLIBC_2.2 __printf_fp F
>  GLIBC_2.2 __profile_frequency F
>  GLIBC_2.2 __progname D 0x8
>  GLIBC_2.2 __progname_full D 0x8
> +GLIBC_2.2 __pthread_getspecific F
>  GLIBC_2.2 __pthread_key_create F
>  GLIBC_2.2 __pthread_once F
>  GLIBC_2.2 __pwrite64 F
> @@ -1291,6 +1292,7 @@ GLIBC_2.2 pthread_condattr_init F
>  GLIBC_2.2 pthread_equal F
>  GLIBC_2.2 pthread_exit F
>  GLIBC_2.2 pthread_getschedparam F
> +GLIBC_2.2 pthread_getspecific F
>  GLIBC_2.2 pthread_key_create F
>  GLIBC_2.2 pthread_mutex_destroy F
>  GLIBC_2.2 pthread_mutex_init F
> @@ -2125,9 +2127,11 @@ GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
>  GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
> +GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_unwind_next F
> +GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> index 9d6d87494a..3de726cb37 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> @@ -21,7 +21,6 @@ GLIBC_2.2 __lseek F
>  GLIBC_2.2 __open F
>  GLIBC_2.2 __open64 F
>  GLIBC_2.2 __pread64 F
> -GLIBC_2.2 __pthread_getspecific F
>  GLIBC_2.2 __pthread_mutex_destroy F
>  GLIBC_2.2 __pthread_mutex_init F
>  GLIBC_2.2 __pthread_mutex_lock F
> @@ -86,7 +85,6 @@ GLIBC_2.2 pthread_create F
>  GLIBC_2.2 pthread_detach F
>  GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
> -GLIBC_2.2 pthread_getspecific F
>  GLIBC_2.2 pthread_join F
>  GLIBC_2.2 pthread_key_delete F
>  GLIBC_2.2 pthread_kill F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index d102c24997..08db66df29 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -359,6 +359,7 @@ GLIBC_2.2 __printf_fp F
>  GLIBC_2.2 __profile_frequency F
>  GLIBC_2.2 __progname D 0x4
>  GLIBC_2.2 __progname_full D 0x4
> +GLIBC_2.2 __pthread_getspecific F
>  GLIBC_2.2 __pthread_key_create F
>  GLIBC_2.2 __pthread_once F
>  GLIBC_2.2 __pwrite64 F
> @@ -1277,6 +1278,7 @@ GLIBC_2.2 pthread_condattr_init F
>  GLIBC_2.2 pthread_equal F
>  GLIBC_2.2 pthread_exit F
>  GLIBC_2.2 pthread_getschedparam F
> +GLIBC_2.2 pthread_getspecific F
>  GLIBC_2.2 pthread_key_create F
>  GLIBC_2.2 pthread_mutex_destroy F
>  GLIBC_2.2 pthread_mutex_init F
> @@ -2094,9 +2096,11 @@ GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
>  GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
> +GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_unwind_next F
> +GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> index bf871d121b..cc98751c47 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> @@ -20,7 +20,6 @@ GLIBC_2.2 __lseek F
>  GLIBC_2.2 __open F
>  GLIBC_2.2 __open64 F
>  GLIBC_2.2 __pread64 F
> -GLIBC_2.2 __pthread_getspecific F
>  GLIBC_2.2 __pthread_mutex_destroy F
>  GLIBC_2.2 __pthread_mutex_init F
>  GLIBC_2.2 __pthread_mutex_lock F
> @@ -85,7 +84,6 @@ GLIBC_2.2 pthread_create F
>  GLIBC_2.2 pthread_detach F
>  GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
> -GLIBC_2.2 pthread_getspecific F
>  GLIBC_2.2 pthread_join F
>  GLIBC_2.2 pthread_key_delete F
>  GLIBC_2.2 pthread_kill F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index 3ed1b31c84..10b8352efb 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -359,6 +359,7 @@ GLIBC_2.2 __printf_fp F
>  GLIBC_2.2 __profile_frequency F
>  GLIBC_2.2 __progname D 0x4
>  GLIBC_2.2 __progname_full D 0x4
> +GLIBC_2.2 __pthread_getspecific F
>  GLIBC_2.2 __pthread_key_create F
>  GLIBC_2.2 __pthread_once F
>  GLIBC_2.2 __pwrite64 F
> @@ -1277,6 +1278,7 @@ GLIBC_2.2 pthread_condattr_init F
>  GLIBC_2.2 pthread_equal F
>  GLIBC_2.2 pthread_exit F
>  GLIBC_2.2 pthread_getschedparam F
> +GLIBC_2.2 pthread_getspecific F
>  GLIBC_2.2 pthread_key_create F
>  GLIBC_2.2 pthread_mutex_destroy F
>  GLIBC_2.2 pthread_mutex_init F
> @@ -2091,9 +2093,11 @@ GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
>  GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
> +GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_unwind_next F
> +GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> index bf871d121b..cc98751c47 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> @@ -20,7 +20,6 @@ GLIBC_2.2 __lseek F
>  GLIBC_2.2 __open F
>  GLIBC_2.2 __open64 F
>  GLIBC_2.2 __pread64 F
> -GLIBC_2.2 __pthread_getspecific F
>  GLIBC_2.2 __pthread_mutex_destroy F
>  GLIBC_2.2 __pthread_mutex_init F
>  GLIBC_2.2 __pthread_mutex_lock F
> @@ -85,7 +84,6 @@ GLIBC_2.2 pthread_create F
>  GLIBC_2.2 pthread_detach F
>  GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
> -GLIBC_2.2 pthread_getspecific F
>  GLIBC_2.2 pthread_join F
>  GLIBC_2.2 pthread_key_delete F
>  GLIBC_2.2 pthread_kill F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index 78f69c96ab..dce478788e 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -189,6 +189,7 @@ GLIBC_2.0 __printf_fp F
>  GLIBC_2.0 __profile_frequency F
>  GLIBC_2.0 __progname D 0x4
>  GLIBC_2.0 __progname_full D 0x4
> +GLIBC_2.0 __pthread_getspecific F
>  GLIBC_2.0 __pthread_key_create F
>  GLIBC_2.0 __pthread_once F
>  GLIBC_2.0 __rcmd_errstr D 0x4
> @@ -867,6 +868,7 @@ GLIBC_2.0 pthread_condattr_init F
>  GLIBC_2.0 pthread_equal F
>  GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
> +GLIBC_2.0 pthread_getspecific F
>  GLIBC_2.0 pthread_key_create F
>  GLIBC_2.0 pthread_mutex_destroy F
>  GLIBC_2.0 pthread_mutex_init F
> @@ -2215,9 +2217,11 @@ GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
>  GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
> +GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_unwind_next F
> +GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> index 85a6f26e5d..66f17908e0 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> @@ -8,7 +8,6 @@ GLIBC_2.0 __fcntl F
>  GLIBC_2.0 __h_errno_location F
>  GLIBC_2.0 __lseek F
>  GLIBC_2.0 __open F
> -GLIBC_2.0 __pthread_getspecific F
>  GLIBC_2.0 __pthread_mutex_destroy F
>  GLIBC_2.0 __pthread_mutex_init F
>  GLIBC_2.0 __pthread_mutex_lock F
> @@ -42,7 +41,6 @@ GLIBC_2.0 pthread_cond_timedwait F
>  GLIBC_2.0 pthread_cond_wait F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.0 pthread_detach F
> -GLIBC_2.0 pthread_getspecific F
>  GLIBC_2.0 pthread_join F
>  GLIBC_2.0 pthread_key_delete F
>  GLIBC_2.0 pthread_kill F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index 49d6360768..1dc6c45074 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -397,6 +397,7 @@ GLIBC_2.2 __printf_fp F
>  GLIBC_2.2 __profile_frequency F
>  GLIBC_2.2 __progname D 0x8
>  GLIBC_2.2 __progname_full D 0x8
> +GLIBC_2.2 __pthread_getspecific F
>  GLIBC_2.2 __pthread_key_create F
>  GLIBC_2.2 __pthread_once F
>  GLIBC_2.2 __pwrite64 F
> @@ -1320,6 +1321,7 @@ GLIBC_2.2 pthread_condattr_init F
>  GLIBC_2.2 pthread_equal F
>  GLIBC_2.2 pthread_exit F
>  GLIBC_2.2 pthread_getschedparam F
> +GLIBC_2.2 pthread_getspecific F
>  GLIBC_2.2 pthread_key_create F
>  GLIBC_2.2 pthread_mutex_destroy F
>  GLIBC_2.2 pthread_mutex_init F
> @@ -2142,9 +2144,11 @@ GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
>  GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
> +GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_unwind_next F
> +GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> index b49b6ef57a..f18ff271c2 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> @@ -20,7 +20,6 @@ GLIBC_2.2 __lseek F
>  GLIBC_2.2 __open F
>  GLIBC_2.2 __open64 F
>  GLIBC_2.2 __pread64 F
> -GLIBC_2.2 __pthread_getspecific F
>  GLIBC_2.2 __pthread_mutex_destroy F
>  GLIBC_2.2 __pthread_mutex_init F
>  GLIBC_2.2 __pthread_mutex_lock F
> @@ -85,7 +84,6 @@ GLIBC_2.2 pthread_create F
>  GLIBC_2.2 pthread_detach F
>  GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
> -GLIBC_2.2 pthread_getspecific F
>  GLIBC_2.2 pthread_join F
>  GLIBC_2.2 pthread_key_delete F
>  GLIBC_2.2 pthread_kill F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index c795ffb505..e74d5c43c6 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -358,6 +358,7 @@ GLIBC_2.2.5 __printf_fp F
>  GLIBC_2.2.5 __profile_frequency F
>  GLIBC_2.2.5 __progname D 0x8
>  GLIBC_2.2.5 __progname_full D 0x8
> +GLIBC_2.2.5 __pthread_getspecific F
>  GLIBC_2.2.5 __pthread_key_create F
>  GLIBC_2.2.5 __pthread_once F
>  GLIBC_2.2.5 __pwrite64 F
> @@ -1288,6 +1289,7 @@ GLIBC_2.2.5 pthread_equal F
>  GLIBC_2.2.5 pthread_exit F
>  GLIBC_2.2.5 pthread_getattr_np F
>  GLIBC_2.2.5 pthread_getschedparam F
> +GLIBC_2.2.5 pthread_getspecific F
>  GLIBC_2.2.5 pthread_key_create F
>  GLIBC_2.2.5 pthread_mutex_destroy F
>  GLIBC_2.2.5 pthread_mutex_init F
> @@ -2101,9 +2103,11 @@ GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
>  GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
> +GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_unwind_next F
> +GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> index 0408564253..5ea8f8020b 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> @@ -20,7 +20,6 @@ GLIBC_2.2.5 __lseek F
>  GLIBC_2.2.5 __open F
>  GLIBC_2.2.5 __open64 F
>  GLIBC_2.2.5 __pread64 F
> -GLIBC_2.2.5 __pthread_getspecific F
>  GLIBC_2.2.5 __pthread_mutex_destroy F
>  GLIBC_2.2.5 __pthread_mutex_init F
>  GLIBC_2.2.5 __pthread_mutex_lock F
> @@ -85,7 +84,6 @@ GLIBC_2.2.5 pthread_create F
>  GLIBC_2.2.5 pthread_detach F
>  GLIBC_2.2.5 pthread_getconcurrency F
>  GLIBC_2.2.5 pthread_getcpuclockid F
> -GLIBC_2.2.5 pthread_getspecific F
>  GLIBC_2.2.5 pthread_join F
>  GLIBC_2.2.5 pthread_key_delete F
>  GLIBC_2.2.5 pthread_kill F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index 74ccdc4905..007dd401d3 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -340,6 +340,7 @@ GLIBC_2.16 __profile_frequency F
>  GLIBC_2.16 __progname D 0x4
>  GLIBC_2.16 __progname_full D 0x4
>  GLIBC_2.16 __pthread_cleanup_routine F
> +GLIBC_2.16 __pthread_getspecific F
>  GLIBC_2.16 __pthread_key_create F
>  GLIBC_2.16 __pthread_once F
>  GLIBC_2.16 __pthread_unwind_next F
> @@ -1458,6 +1459,7 @@ GLIBC_2.16 pthread_exit F
>  GLIBC_2.16 pthread_getaffinity_np F
>  GLIBC_2.16 pthread_getattr_np F
>  GLIBC_2.16 pthread_getschedparam F
> +GLIBC_2.16 pthread_getspecific F
>  GLIBC_2.16 pthread_key_create F
>  GLIBC_2.16 pthread_mutex_consistent F
>  GLIBC_2.16 pthread_mutex_consistent_np F
> @@ -2199,9 +2201,11 @@ GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
>  GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
> +GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_unwind_next F
> +GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_mutex_consistent F
>  GLIBC_2.34 pthread_once F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> index 79ab1b8cef..6e3cb18549 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> @@ -13,7 +13,6 @@ GLIBC_2.16 __lseek F
>  GLIBC_2.16 __open F
>  GLIBC_2.16 __open64 F
>  GLIBC_2.16 __pread64 F
> -GLIBC_2.16 __pthread_getspecific F
>  GLIBC_2.16 __pthread_mutex_destroy F
>  GLIBC_2.16 __pthread_mutex_init F
>  GLIBC_2.16 __pthread_mutex_lock F
> @@ -86,7 +85,6 @@ GLIBC_2.16 pthread_detach F
>  GLIBC_2.16 pthread_getconcurrency F
>  GLIBC_2.16 pthread_getcpuclockid F
>  GLIBC_2.16 pthread_getname_np F
> -GLIBC_2.16 pthread_getspecific F
>  GLIBC_2.16 pthread_join F
>  GLIBC_2.16 pthread_key_delete F
>  GLIBC_2.16 pthread_kill F
> 

Ok.

  reply	other threads:[~2021-03-24 14:12 UTC|newest]

Thread overview: 99+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-16 17:27 [PATCH v3 00/37] libpthread removal: NPTL forwarders are gone Florian Weimer
2021-03-16 17:27 ` [PATCH v3 01/37] nptl: Move pthread_mutex_consistent into libc Florian Weimer
2021-03-17 11:36   ` Adhemerval Zanella
2021-03-16 17:27 ` [PATCH v3 02/37] nptl: Move __pthread_cleanup_routine " Florian Weimer
2021-03-16 17:27 ` [PATCH v3 03/37] nptl: Move legacy unwinding implementation " Florian Weimer
2021-03-16 17:27 ` [PATCH v3 04/37] nptl: Move legacy cancelation handling into libc as compat symbols Florian Weimer
2021-03-16 17:27 ` [PATCH v3 05/37] nptl: Remove longjmp, siglongjmp from libpthread Florian Weimer
2021-03-17 11:38   ` Adhemerval Zanella
2021-03-16 17:28 ` [PATCH v3 06/37] x86: Restore compile-time check for shadow stack pointer in longjmp Florian Weimer
2021-03-16 17:28 ` [PATCH v3 07/37] nptl: Move __pthread_cleanup_upto into libc Florian Weimer
2021-03-16 17:28 ` [PATCH v3 08/37] nptl: Move pthread_once and __pthread_once " Florian Weimer
2021-03-17 13:30   ` Adhemerval Zanella
2021-03-17 13:37     ` Adhemerval Zanella
2021-03-17 14:45       ` Florian Weimer
2021-03-17 16:39         ` Adhemerval Zanella
2021-03-17 16:56           ` Florian Weimer
2021-03-17 17:22             ` Adhemerval Zanella
2021-03-17 17:43               ` Florian Weimer
2021-03-17 19:09                 ` Adhemerval Zanella
2021-03-16 17:29 ` [PATCH v3 09/37] nptl: Move __pthread_unwind_next " Florian Weimer
2021-03-17 19:42   ` Adhemerval Zanella
2021-03-17 19:54     ` Florian Weimer
2021-03-17 20:16       ` Adhemerval Zanella
2021-03-17 20:33         ` Florian Weimer
2021-03-17 20:44           ` Adhemerval Zanella
2021-03-16 17:29 ` [PATCH v3 10/37] csu: Move calling main out of __libc_start_main_impl Florian Weimer
2021-03-17 20:45   ` Adhemerval Zanella
2021-03-16 17:29 ` [PATCH v3 11/37] nptl: Move internal __nptl_nthreads variable into libc Florian Weimer
2021-03-18 12:42   ` Adhemerval Zanella
2021-03-16 17:29 ` [PATCH v3 12/37] nptl_db: Introduce DB_MAIN_ARRAY_VARIABLE Florian Weimer
2021-03-18 12:43   ` Adhemerval Zanella
2021-03-16 17:29 ` [PATCH v3 13/37] nptl: Move __pthread_keys global variable into libc Florian Weimer
2021-03-18 12:44   ` Adhemerval Zanella
2021-03-16 17:29 ` [PATCH v3 14/37] nptl: Move __nptl_deallocate_tsd " Florian Weimer
2021-03-18 12:46   ` Adhemerval Zanella
2021-03-18 17:16     ` Florian Weimer
2021-03-18 17:54       ` Adhemerval Zanella
2021-03-16 17:29 ` [PATCH v3 15/37] nptl: Move pthread_exit " Florian Weimer
2021-03-18 12:49   ` Adhemerval Zanella
2021-03-16 17:29 ` [PATCH v3 16/37] nptl: Move pthread_setcancelstate " Florian Weimer
2021-03-18 12:52   ` Adhemerval Zanella
2021-03-16 17:29 ` [PATCH v3 17/37] nptl: Move pthread_setcanceltype " Florian Weimer
2021-03-18 12:53   ` Adhemerval Zanella
2021-03-16 17:29 ` [PATCH v3 18/37] nptl: Invoke the set_robust_list system call directly in fork Florian Weimer
2021-03-18 12:54   ` Adhemerval Zanella
2021-03-16 17:30 ` [PATCH v3 19/37] dlfcn: Failures after dlmopen should not terminate process [BZ #24772] Florian Weimer
2021-03-19 19:56   ` Adhemerval Zanella
2021-03-27 16:57     ` Florian Weimer
2021-03-16 17:30 ` [PATCH v3 20/37] dlfcn: dlerror needs to call free from the base namespace [BZ #24773] Florian Weimer
2021-03-23 14:47   ` Adhemerval Zanella
2021-03-16 17:30 ` [PATCH v3 21/37] Remove pthread_key_create-related internals from libc-lock.h Florian Weimer
2021-03-23 16:39   ` Adhemerval Zanella
2021-03-16 17:30 ` [PATCH v3 22/37] elf: Introduce __tls_init_tp for second-phase TCB initialization Florian Weimer
2021-03-23 18:25   ` Adhemerval Zanella
2021-03-16 17:30 ` [PATCH v3 23/37] nptl: Move part of TCB initialization from libpthread to __tls_init_tp Florian Weimer
2021-03-24 13:56   ` Adhemerval Zanella
2021-03-27 17:19     ` Florian Weimer
2021-03-16 17:30 ` [PATCH v3 24/37] nptl: Move pthread_key_create, __pthread_key_create into libc Florian Weimer
2021-03-24 14:09   ` Adhemerval Zanella
2021-03-24 14:32     ` Florian Weimer
2021-03-24 14:42       ` Adhemerval Zanella
2021-03-24 15:08         ` Florian Weimer
2021-03-24 15:46           ` Adhemerval Zanella
2021-03-16 17:30 ` [PATCH v3 25/37] nptl: Move pthread_getspecific, __pthread_getspecific " Florian Weimer
2021-03-24 14:12   ` Adhemerval Zanella [this message]
2021-03-24 14:38     ` Florian Weimer
2021-03-24 14:43       ` Adhemerval Zanella
2021-03-16 17:30 ` [PATCH v3 26/37] nptl: Move pthread_setspecific, __pthread_setspecific " Florian Weimer
2021-03-24 14:26   ` Adhemerval Zanella
2021-03-16 17:30 ` [PATCH v3 27/37] nptl: Move pthread_key_delete " Florian Weimer
2021-03-24 14:45   ` Adhemerval Zanella
2021-03-16 17:31 ` [PATCH v3 28/37] nptl: Move rwlock functions with forwarders " Florian Weimer
2021-03-25 19:52   ` Adhemerval Zanella
2021-03-27 21:41     ` Florian Weimer
2021-03-16 17:31 ` [PATCH v3 29/37] nptl: Move the internal thread priority protection symbols " Florian Weimer
2021-03-25 20:21   ` Adhemerval Zanella
2021-03-16 17:31 ` [PATCH v3 30/37] pthread: Introduce __pthread_early_init Florian Weimer
2021-03-25 20:22   ` Adhemerval Zanella
2021-03-16 17:31 ` [PATCH v3 31/37] nptl: Move internal symbol __mutex_aconf into libc Florian Weimer
2021-03-25 20:24   ` Adhemerval Zanella
2021-03-16 17:31 ` [PATCH v3 32/37] nptl: pthread_mutex_lock, pthread_mutex_unock single-threaded optimization Florian Weimer
2021-03-26 18:00   ` Adhemerval Zanella
2021-03-16 17:31 ` [PATCH v3 33/37] x86: Remove low-level lock optimization Florian Weimer
2021-03-25 20:30   ` Adhemerval Zanella
2021-03-16 17:31 ` [PATCH v3 34/37] nptl: Move core mutex functions into libc Florian Weimer
2021-03-25 20:46   ` Adhemerval Zanella
2021-03-16 17:31 ` [PATCH v3 35/37] nptl: Move core condition variable " Florian Weimer
2021-03-26 17:14   ` Adhemerval Zanella
2021-03-16 17:31 ` [PATCH v3 36/37] nptl: Move setxid broadcast implementation " Florian Weimer
2021-03-26 18:15   ` Adhemerval Zanella
2021-04-06 18:41     ` Florian Weimer
2021-04-06 18:54       ` Adhemerval Zanella
2021-04-06 19:23         ` Florian Weimer
2021-04-06 19:40           ` Adhemerval Zanella
2021-03-16 17:31 ` [PATCH v3 37/37] nptl: Remove remnants of the libc/libpthread forwarder interface Florian Weimer
2021-03-26 18:19   ` Adhemerval Zanella
2021-03-18 22:06 ` [PATCH v3 00/37] libpthread removal: NPTL forwarders are gone Florian Weimer
2021-03-26 18:25 ` Adhemerval Zanella
2021-03-31 10:18   ` Florian Weimer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6418c3a1-3ead-8a0d-8312-2bc16b399d98@linaro.org \
    --to=adhemerval.zanella@linaro.org \
    --cc=fweimer@redhat.com \
    --cc=libc-alpha@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).