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.
next prev parent 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).