[16/19] nptl: Move tss_create into libc

Message ID f1c9f68f6060af4659050a991c66669039c35f9f.1619456219.git.fweimer@redhat.com
State Committed
Commit e4036b1ce9fa2f4086b050eb946f169c11efad08
Headers
Series nptl: Move most C11 symbols into libc |

Commit Message

Florian Weimer April 26, 2021, 5:11 p.m. UTC
  The symbol was moved using scripts/move-symbol-to-libc.py.

__pthread_key_create@@GLIBC_2.34 is no longer needed by glibc
itself with this change, but __pthread_key_create is used by
libstdc++, so it still has to be exported as a public symbol.
---
 nptl/Versions                                         |  3 ++-
 nptl/pthreadP.h                                       |  1 +
 sysdeps/pthread/Makefile                              |  3 ++-
 sysdeps/pthread/tss_create.c                          | 11 ++++++++++-
 sysdeps/unix/sysv/linux/aarch64/libc.abilist          |  2 ++
 sysdeps/unix/sysv/linux/aarch64/libpthread.abilist    |  1 -
 sysdeps/unix/sysv/linux/alpha/libc.abilist            |  2 ++
 sysdeps/unix/sysv/linux/alpha/libpthread.abilist      |  1 -
 sysdeps/unix/sysv/linux/arc/libc.abilist              |  2 ++
 sysdeps/unix/sysv/linux/arc/libpthread.abilist        |  1 -
 sysdeps/unix/sysv/linux/arm/be/libc.abilist           |  2 ++
 sysdeps/unix/sysv/linux/arm/be/libpthread.abilist     |  1 -
 sysdeps/unix/sysv/linux/arm/le/libc.abilist           |  2 ++
 sysdeps/unix/sysv/linux/arm/le/libpthread.abilist     |  1 -
 sysdeps/unix/sysv/linux/csky/libc.abilist             |  2 ++
 sysdeps/unix/sysv/linux/csky/libpthread.abilist       |  1 -
 sysdeps/unix/sysv/linux/hppa/libc.abilist             |  2 ++
 sysdeps/unix/sysv/linux/hppa/libpthread.abilist       |  1 -
 sysdeps/unix/sysv/linux/i386/libc.abilist             |  2 ++
 sysdeps/unix/sysv/linux/i386/libpthread.abilist       |  1 -
 sysdeps/unix/sysv/linux/ia64/libc.abilist             |  2 ++
 sysdeps/unix/sysv/linux/ia64/libpthread.abilist       |  1 -
 sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist    |  2 ++
 .../unix/sysv/linux/m68k/coldfire/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist      |  2 ++
 .../unix/sysv/linux/m68k/m680x0/libpthread.abilist    |  1 -
 sysdeps/unix/sysv/linux/microblaze/be/libc.abilist    |  2 ++
 .../unix/sysv/linux/microblaze/be/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/microblaze/le/libc.abilist    |  2 ++
 .../unix/sysv/linux/microblaze/le/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist  |  2 ++
 .../unix/sysv/linux/mips/mips32/libpthread.abilist    |  1 -
 .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist    |  2 ++
 .../unix/sysv/linux/mips/mips64/libpthread.abilist    |  1 -
 sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist  |  2 ++
 sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist  |  2 ++
 sysdeps/unix/sysv/linux/nios2/libc.abilist            |  2 ++
 sysdeps/unix/sysv/linux/nios2/libpthread.abilist      |  1 -
 .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist     |  2 ++
 .../sysv/linux/powerpc/powerpc32/libpthread.abilist   |  1 -
 .../sysv/linux/powerpc/powerpc32/nofpu/libc.abilist   |  2 ++
 .../unix/sysv/linux/powerpc/powerpc64/be/libc.abilist |  2 ++
 .../linux/powerpc/powerpc64/be/libpthread.abilist     |  1 -
 .../unix/sysv/linux/powerpc/powerpc64/le/libc.abilist |  2 ++
 .../linux/powerpc/powerpc64/le/libpthread.abilist     |  1 -
 sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist       |  2 ++
 sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist |  1 -
 sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist       |  2 ++
 sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist |  1 -
 sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist     |  2 ++
 .../unix/sysv/linux/s390/s390-32/libpthread.abilist   |  1 -
 sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist     |  2 ++
 .../unix/sysv/linux/s390/s390-64/libpthread.abilist   |  1 -
 sysdeps/unix/sysv/linux/sh/be/libc.abilist            |  2 ++
 sysdeps/unix/sysv/linux/sh/be/libpthread.abilist      |  1 -
 sysdeps/unix/sysv/linux/sh/le/libc.abilist            |  2 ++
 sysdeps/unix/sysv/linux/sh/le/libpthread.abilist      |  1 -
 sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist    |  2 ++
 .../unix/sysv/linux/sparc/sparc32/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist    |  2 ++
 .../unix/sysv/linux/sparc/sparc64/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/x86_64/64/libc.abilist        |  2 ++
 sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist       |  2 ++
 sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist |  1 -
 65 files changed, 79 insertions(+), 32 deletions(-)
  

Comments

Carlos O'Donell May 2, 2021, 8:47 p.m. UTC | #1
On 4/26/21 1:11 PM, Florian Weimer via Libc-alpha wrote:
> The symbol was moved using scripts/move-symbol-to-libc.py.

Tested and reviewed on x86_64 and i686.

LGTM.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
 
> __pthread_key_create@@GLIBC_2.34 is no longer needed by glibc
> itself with this change, but __pthread_key_create is used by
> libstdc++, so it still has to be exported as a public symbol.

OK.

> ---
>  nptl/Versions                                         |  3 ++-
>  nptl/pthreadP.h                                       |  1 +
>  sysdeps/pthread/Makefile                              |  3 ++-
>  sysdeps/pthread/tss_create.c                          | 11 ++++++++++-
>  sysdeps/unix/sysv/linux/aarch64/libc.abilist          |  2 ++
>  sysdeps/unix/sysv/linux/aarch64/libpthread.abilist    |  1 -
>  sysdeps/unix/sysv/linux/alpha/libc.abilist            |  2 ++
>  sysdeps/unix/sysv/linux/alpha/libpthread.abilist      |  1 -
>  sysdeps/unix/sysv/linux/arc/libc.abilist              |  2 ++
>  sysdeps/unix/sysv/linux/arc/libpthread.abilist        |  1 -
>  sysdeps/unix/sysv/linux/arm/be/libc.abilist           |  2 ++
>  sysdeps/unix/sysv/linux/arm/be/libpthread.abilist     |  1 -
>  sysdeps/unix/sysv/linux/arm/le/libc.abilist           |  2 ++
>  sysdeps/unix/sysv/linux/arm/le/libpthread.abilist     |  1 -
>  sysdeps/unix/sysv/linux/csky/libc.abilist             |  2 ++
>  sysdeps/unix/sysv/linux/csky/libpthread.abilist       |  1 -
>  sysdeps/unix/sysv/linux/hppa/libc.abilist             |  2 ++
>  sysdeps/unix/sysv/linux/hppa/libpthread.abilist       |  1 -
>  sysdeps/unix/sysv/linux/i386/libc.abilist             |  2 ++
>  sysdeps/unix/sysv/linux/i386/libpthread.abilist       |  1 -
>  sysdeps/unix/sysv/linux/ia64/libc.abilist             |  2 ++
>  sysdeps/unix/sysv/linux/ia64/libpthread.abilist       |  1 -
>  sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist    |  2 ++
>  .../unix/sysv/linux/m68k/coldfire/libpthread.abilist  |  1 -
>  sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist      |  2 ++
>  .../unix/sysv/linux/m68k/m680x0/libpthread.abilist    |  1 -
>  sysdeps/unix/sysv/linux/microblaze/be/libc.abilist    |  2 ++
>  .../unix/sysv/linux/microblaze/be/libpthread.abilist  |  1 -
>  sysdeps/unix/sysv/linux/microblaze/le/libc.abilist    |  2 ++
>  .../unix/sysv/linux/microblaze/le/libpthread.abilist  |  1 -
>  sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist  |  2 ++
>  .../unix/sysv/linux/mips/mips32/libpthread.abilist    |  1 -
>  .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist    |  2 ++
>  .../unix/sysv/linux/mips/mips64/libpthread.abilist    |  1 -
>  sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist  |  2 ++
>  sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist  |  2 ++
>  sysdeps/unix/sysv/linux/nios2/libc.abilist            |  2 ++
>  sysdeps/unix/sysv/linux/nios2/libpthread.abilist      |  1 -
>  .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist     |  2 ++
>  .../sysv/linux/powerpc/powerpc32/libpthread.abilist   |  1 -
>  .../sysv/linux/powerpc/powerpc32/nofpu/libc.abilist   |  2 ++
>  .../unix/sysv/linux/powerpc/powerpc64/be/libc.abilist |  2 ++
>  .../linux/powerpc/powerpc64/be/libpthread.abilist     |  1 -
>  .../unix/sysv/linux/powerpc/powerpc64/le/libc.abilist |  2 ++
>  .../linux/powerpc/powerpc64/le/libpthread.abilist     |  1 -
>  sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist       |  2 ++
>  sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist |  1 -
>  sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist       |  2 ++
>  sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist |  1 -
>  sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist     |  2 ++
>  .../unix/sysv/linux/s390/s390-32/libpthread.abilist   |  1 -
>  sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist     |  2 ++
>  .../unix/sysv/linux/s390/s390-64/libpthread.abilist   |  1 -
>  sysdeps/unix/sysv/linux/sh/be/libc.abilist            |  2 ++
>  sysdeps/unix/sysv/linux/sh/be/libpthread.abilist      |  1 -
>  sysdeps/unix/sysv/linux/sh/le/libc.abilist            |  2 ++
>  sysdeps/unix/sysv/linux/sh/le/libpthread.abilist      |  1 -
>  sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist    |  2 ++
>  .../unix/sysv/linux/sparc/sparc32/libpthread.abilist  |  1 -
>  sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist    |  2 ++
>  .../unix/sysv/linux/sparc/sparc64/libpthread.abilist  |  1 -
>  sysdeps/unix/sysv/linux/x86_64/64/libc.abilist        |  2 ++
>  sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist  |  1 -
>  sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist       |  2 ++
>  sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist |  1 -
>  65 files changed, 79 insertions(+), 32 deletions(-)
> 
> diff --git a/nptl/Versions b/nptl/Versions
> index 834fdbbd87..f267d4d1e7 100644
> --- a/nptl/Versions
> +++ b/nptl/Versions
> @@ -144,6 +144,7 @@ libc {
>      thrd_exit;
>      thrd_sleep;
>      thrd_yield;
> +    tss_create;
>    }
>    GLIBC_2.30 {
>      pthread_cond_clockwait;
> @@ -212,6 +213,7 @@ libc {
>      pthread_spin_trylock;
>      pthread_spin_unlock;
>      thrd_exit;
> +    tss_create;
>    }
>    GLIBC_PRIVATE {
>      __futex_abstimed_wait64;
> @@ -391,7 +393,6 @@ libpthread {
>      thrd_create;
>      thrd_detach;
>      thrd_join;
> -    tss_create;
>      tss_delete;
>      tss_get;
>      tss_set;
> diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
> index 3b070ee10d..d98bd11d6e 100644
> --- a/nptl/pthreadP.h
> +++ b/nptl/pthreadP.h
> @@ -547,6 +547,7 @@ libc_hidden_proto (__pthread_mutex_timedlock)
>  extern int __pthread_condattr_destroy (pthread_condattr_t *attr);
>  extern int __pthread_condattr_init (pthread_condattr_t *attr);
>  extern int __pthread_key_create (pthread_key_t *key, void (*destr) (void *));
> +libc_hidden_proto (__pthread_key_create)
>  extern int __pthread_key_delete (pthread_key_t key);
>  libc_hidden_proto (__pthread_key_delete)
>  extern void *__pthread_getspecific (pthread_key_t key);
> diff --git a/sysdeps/pthread/Makefile b/sysdeps/pthread/Makefile
> index 75a74be340..4b7e43078c 100644
> --- a/sysdeps/pthread/Makefile
> +++ b/sysdeps/pthread/Makefile
> @@ -32,7 +32,7 @@ headers += threads.h
>  routines += thrd_current thrd_equal thrd_sleep thrd_yield
>  
>  libpthread-routines += thrd_create thrd_detach thrd_join \
> -		       tss_create tss_delete tss_get tss_set
> +		       tss_delete tss_get tss_set
>  
>  $(libpthread-routines-var) += \
>    call_once \
> @@ -49,6 +49,7 @@ $(libpthread-routines-var) += \
>    mtx_trylock \
>    mtx_unlock \
>    thrd_exit \
> +  tss_create \
>  
>  tests += tst-cnd-basic tst-mtx-trylock tst-cnd-broadcast \
>  	 tst-cnd-timedwait tst-thrd-detach tst-mtx-basic tst-thrd-sleep \
> diff --git a/sysdeps/pthread/tss_create.c b/sysdeps/pthread/tss_create.c
> index a059f39ac8..197f643401 100644
> --- a/sysdeps/pthread/tss_create.c
> +++ b/sysdeps/pthread/tss_create.c
> @@ -16,10 +16,11 @@
>     License along with the GNU C Library; if not, see
>     <https://www.gnu.org/licenses/>.  */
>  
> +#include <shlib-compat.h>
>  #include "thrd_priv.h"
>  
>  int
> -tss_create (tss_t *tss_id, tss_dtor_t destructor)
> +__tss_create (tss_t *tss_id, tss_dtor_t destructor)
>  {
>    _Static_assert (sizeof (tss_t) == sizeof (pthread_key_t),
>  		  "sizeof (tss_t) != sizeof (pthread_key_t)");
> @@ -31,3 +32,11 @@ tss_create (tss_t *tss_id, tss_dtor_t destructor)
>    int err_code = __pthread_key_create (tss_id, destructor);
>    return thrd_err_map (err_code);
>  }
> +#if PTHREAD_IN_LIBC
> +versioned_symbol (libc, __tss_create, tss_create, GLIBC_2_34);
> +# if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_28, GLIBC_2_34)
> +compat_symbol (libpthread, __tss_create, tss_create, GLIBC_2_28);
> +# endif
> +#else /* !PTHREAD_IN_LIBC */
> +strong_alias (__tss_create, tss_create)
> +#endif
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index 9390752b11..22c83416d9 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -2219,6 +2219,7 @@ GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
>  GLIBC_2.28 thrd_yield F
> +GLIBC_2.28 tss_create F
>  GLIBC_2.29 getcpu F
>  GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
>  GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
> @@ -2309,3 +2310,4 @@ GLIBC_2.34 pthread_spin_lock F
>  GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 thrd_exit F
> +GLIBC_2.34 tss_create F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> index 2e044698b7..22d805d968 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> @@ -72,7 +72,6 @@ GLIBC_2.18 pthread_setattr_default_np F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_join F
> -GLIBC_2.28 tss_create F
>  GLIBC_2.28 tss_delete F
>  GLIBC_2.28 tss_get F
>  GLIBC_2.28 tss_set F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index 01830f4b8c..69246ca59d 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -2112,6 +2112,7 @@ GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
>  GLIBC_2.28 thrd_yield F
> +GLIBC_2.28 tss_create F
>  GLIBC_2.29 getcpu F
>  GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
>  GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
> @@ -2390,6 +2391,7 @@ GLIBC_2.34 pthread_spin_lock F
>  GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 thrd_exit F
> +GLIBC_2.34 tss_create F
>  GLIBC_2.4 _IO_fprintf F
>  GLIBC_2.4 _IO_printf F
>  GLIBC_2.4 _IO_sprintf F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> index 69716922ba..32f24fc73f 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> @@ -72,7 +72,6 @@ GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_join F
> -GLIBC_2.28 tss_create F
>  GLIBC_2.28 tss_delete F
>  GLIBC_2.28 tss_get F
>  GLIBC_2.28 tss_set F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index f647e9ceb9..3ccb9d8723 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -1855,6 +1855,7 @@ GLIBC_2.32 tr_break F
>  GLIBC_2.32 truncate F
>  GLIBC_2.32 truncate64 F
>  GLIBC_2.32 tsearch F
> +GLIBC_2.32 tss_create F
>  GLIBC_2.32 ttyname F
>  GLIBC_2.32 ttyname_r F
>  GLIBC_2.32 ttyslot F
> @@ -2068,3 +2069,4 @@ GLIBC_2.34 pthread_spin_lock F
>  GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 thrd_exit F
> +GLIBC_2.34 tss_create F
> diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> index ed881e9417..f4cabfdc5e 100644
> --- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> @@ -76,7 +76,6 @@ GLIBC_2.32 sem_wait F
>  GLIBC_2.32 thrd_create F
>  GLIBC_2.32 thrd_detach F
>  GLIBC_2.32 thrd_join F
> -GLIBC_2.32 tss_create F
>  GLIBC_2.32 tss_delete F
>  GLIBC_2.32 tss_get F
>  GLIBC_2.32 tss_set F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index b088edc561..11dd473a81 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -140,6 +140,7 @@ GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
>  GLIBC_2.28 thrd_yield F
> +GLIBC_2.28 tss_create F
>  GLIBC_2.29 getcpu F
>  GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
>  GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
> @@ -233,6 +234,7 @@ GLIBC_2.34 pthread_spin_lock F
>  GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 thrd_exit F
> +GLIBC_2.34 tss_create F
>  GLIBC_2.4 _Exit F
>  GLIBC_2.4 _IO_2_1_stderr_ D 0xa0
>  GLIBC_2.4 _IO_2_1_stdin_ D 0xa0
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> index 9579814f70..7a4971951c 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> @@ -6,7 +6,6 @@ GLIBC_2.18 pthread_setattr_default_np F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_join F
> -GLIBC_2.28 tss_create F
>  GLIBC_2.28 tss_delete F
>  GLIBC_2.28 tss_get F
>  GLIBC_2.28 tss_set F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index c9820ecb46..50231abb2a 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -140,6 +140,7 @@ GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
>  GLIBC_2.28 thrd_yield F
> +GLIBC_2.28 tss_create F
>  GLIBC_2.29 getcpu F
>  GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
>  GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
> @@ -230,6 +231,7 @@ GLIBC_2.34 pthread_spin_lock F
>  GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 thrd_exit F
> +GLIBC_2.34 tss_create F
>  GLIBC_2.4 _Exit F
>  GLIBC_2.4 _IO_2_1_stderr_ D 0xa0
>  GLIBC_2.4 _IO_2_1_stdin_ D 0xa0
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> index 9579814f70..7a4971951c 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> @@ -6,7 +6,6 @@ GLIBC_2.18 pthread_setattr_default_np F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_join F
> -GLIBC_2.28 tss_create F
>  GLIBC_2.28 tss_delete F
>  GLIBC_2.28 tss_get F
>  GLIBC_2.28 tss_set F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index 7a9c18250a..1aacd7ed75 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -1949,6 +1949,7 @@ GLIBC_2.29 tr_break F
>  GLIBC_2.29 truncate F
>  GLIBC_2.29 truncate64 F
>  GLIBC_2.29 tsearch F
> +GLIBC_2.29 tss_create F
>  GLIBC_2.29 ttyname F
>  GLIBC_2.29 ttyname_r F
>  GLIBC_2.29 ttyslot F
> @@ -2252,3 +2253,4 @@ GLIBC_2.34 pthread_spin_lock F
>  GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 thrd_exit F
> +GLIBC_2.34 tss_create F
> diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> index 57a14c0db4..df5edd755b 100644
> --- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> @@ -72,7 +72,6 @@ GLIBC_2.29 sem_wait F
>  GLIBC_2.29 thrd_create F
>  GLIBC_2.29 thrd_detach F
>  GLIBC_2.29 thrd_join F
> -GLIBC_2.29 tss_create F
>  GLIBC_2.29 tss_delete F
>  GLIBC_2.29 tss_get F
>  GLIBC_2.29 tss_set F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index a811fe0505..c4b9358061 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -1951,6 +1951,7 @@ GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
>  GLIBC_2.28 thrd_yield F
> +GLIBC_2.28 tss_create F
>  GLIBC_2.29 getcpu F
>  GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
>  GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
> @@ -2203,6 +2204,7 @@ GLIBC_2.34 pthread_spin_lock F
>  GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 thrd_exit F
> +GLIBC_2.34 tss_create F
>  GLIBC_2.4 __confstr_chk F
>  GLIBC_2.4 __fgets_chk F
>  GLIBC_2.4 __fgets_unlocked_chk F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> index 727b654b8e..9481575392 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> @@ -64,7 +64,6 @@ GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_join F
> -GLIBC_2.28 tss_create F
>  GLIBC_2.28 tss_delete F
>  GLIBC_2.28 tss_get F
>  GLIBC_2.28 tss_set F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index b2f8bae2c5..983256528e 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -2125,6 +2125,7 @@ GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
>  GLIBC_2.28 thrd_yield F
> +GLIBC_2.28 tss_create F
>  GLIBC_2.29 getcpu F
>  GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
>  GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
> @@ -2380,6 +2381,7 @@ GLIBC_2.34 pthread_spin_lock F
>  GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 thrd_exit F
> +GLIBC_2.34 tss_create F
>  GLIBC_2.4 __confstr_chk F
>  GLIBC_2.4 __fgets_chk F
>  GLIBC_2.4 __fgets_unlocked_chk F
> diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> index 0a9d46d9cc..668e2d74e8 100644
> --- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> @@ -72,7 +72,6 @@ GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_join F
> -GLIBC_2.28 tss_create F
>  GLIBC_2.28 tss_delete F
>  GLIBC_2.28 tss_get F
>  GLIBC_2.28 tss_set F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index b5c58de5f5..9c394a4962 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -1986,6 +1986,7 @@ GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
>  GLIBC_2.28 thrd_yield F
> +GLIBC_2.28 tss_create F
>  GLIBC_2.29 getcpu F
>  GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
>  GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
> @@ -2237,6 +2238,7 @@ GLIBC_2.34 pthread_spin_lock F
>  GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 thrd_exit F
> +GLIBC_2.34 tss_create F
>  GLIBC_2.4 __confstr_chk F
>  GLIBC_2.4 __fgets_chk F
>  GLIBC_2.4 __fgets_unlocked_chk F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> index 93c85d7a2c..d694d38c29 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> @@ -64,7 +64,6 @@ GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_join F
> -GLIBC_2.28 tss_create F
>  GLIBC_2.28 tss_delete F
>  GLIBC_2.28 tss_get F
>  GLIBC_2.28 tss_set F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index 23a3f12406..aaebf896c5 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -141,6 +141,7 @@ GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
>  GLIBC_2.28 thrd_yield F
> +GLIBC_2.28 tss_create F
>  GLIBC_2.29 getcpu F
>  GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
>  GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
> @@ -234,6 +235,7 @@ GLIBC_2.34 pthread_spin_lock F
>  GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 thrd_exit F
> +GLIBC_2.34 tss_create F
>  GLIBC_2.4 _Exit F
>  GLIBC_2.4 _IO_2_1_stderr_ D 0x98
>  GLIBC_2.4 _IO_2_1_stdin_ D 0x98
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> index 9579814f70..7a4971951c 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> @@ -6,7 +6,6 @@ GLIBC_2.18 pthread_setattr_default_np F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_join F
> -GLIBC_2.28 tss_create F
>  GLIBC_2.28 tss_delete F
>  GLIBC_2.28 tss_get F
>  GLIBC_2.28 tss_set F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index e729a07a9f..4dd68aba24 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -2068,6 +2068,7 @@ GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
>  GLIBC_2.28 thrd_yield F
> +GLIBC_2.28 tss_create F
>  GLIBC_2.29 getcpu F
>  GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
>  GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
> @@ -2323,6 +2324,7 @@ GLIBC_2.34 pthread_spin_lock F
>  GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 thrd_exit F
> +GLIBC_2.34 tss_create F
>  GLIBC_2.4 __confstr_chk F
>  GLIBC_2.4 __fgets_chk F
>  GLIBC_2.4 __fgets_unlocked_chk F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> index 0a9d46d9cc..668e2d74e8 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> @@ -72,7 +72,6 @@ GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_join F
> -GLIBC_2.28 tss_create F
>  GLIBC_2.28 tss_delete F
>  GLIBC_2.28 tss_get F
>  GLIBC_2.28 tss_set F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index 3dd1428f25..f260228737 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -2210,6 +2210,7 @@ GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
>  GLIBC_2.28 thrd_yield F
> +GLIBC_2.28 tss_create F
>  GLIBC_2.29 getcpu F
>  GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
>  GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
> @@ -2303,3 +2304,4 @@ GLIBC_2.34 pthread_spin_lock F
>  GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 thrd_exit F
> +GLIBC_2.34 tss_create F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> index dfeb3e6b9c..259dd6d483 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> @@ -72,7 +72,6 @@ GLIBC_2.18 sem_wait F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_join F
> -GLIBC_2.28 tss_create F
>  GLIBC_2.28 tss_delete F
>  GLIBC_2.28 tss_get F
>  GLIBC_2.28 tss_set F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index 800797f67c..35896e5572 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -2210,6 +2210,7 @@ GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
>  GLIBC_2.28 thrd_yield F
> +GLIBC_2.28 tss_create F
>  GLIBC_2.29 getcpu F
>  GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
>  GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
> @@ -2300,3 +2301,4 @@ GLIBC_2.34 pthread_spin_lock F
>  GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 thrd_exit F
> +GLIBC_2.34 tss_create F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> index dfeb3e6b9c..259dd6d483 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> @@ -72,7 +72,6 @@ GLIBC_2.18 sem_wait F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_join F
> -GLIBC_2.28 tss_create F
>  GLIBC_2.28 tss_delete F
>  GLIBC_2.28 tss_get F
>  GLIBC_2.28 tss_set F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index 4ada6e5338..3d6e68147a 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -2038,6 +2038,7 @@ GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
>  GLIBC_2.28 thrd_yield F
> +GLIBC_2.28 tss_create F
>  GLIBC_2.29 getcpu F
>  GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
>  GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
> @@ -2286,6 +2287,7 @@ GLIBC_2.34 pthread_spin_lock F
>  GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 thrd_exit F
> +GLIBC_2.34 tss_create F
>  GLIBC_2.4 __confstr_chk F
>  GLIBC_2.4 __fgets_chk F
>  GLIBC_2.4 __fgets_unlocked_chk F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> index 20c9082450..c7784f4c7e 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> @@ -71,7 +71,6 @@ GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_join F
> -GLIBC_2.28 tss_create F
>  GLIBC_2.28 tss_delete F
>  GLIBC_2.28 tss_get F
>  GLIBC_2.28 tss_set F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index f3a3f9db83..ac7cb3820f 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -2036,6 +2036,7 @@ GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
>  GLIBC_2.28 thrd_yield F
> +GLIBC_2.28 tss_create F
>  GLIBC_2.29 getcpu F
>  GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
>  GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
> @@ -2284,6 +2285,7 @@ GLIBC_2.34 pthread_spin_lock F
>  GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 thrd_exit F
> +GLIBC_2.34 tss_create F
>  GLIBC_2.4 __confstr_chk F
>  GLIBC_2.4 __fgets_chk F
>  GLIBC_2.4 __fgets_unlocked_chk F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> index 20c9082450..c7784f4c7e 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> @@ -71,7 +71,6 @@ GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_join F
> -GLIBC_2.28 tss_create F
>  GLIBC_2.28 tss_delete F
>  GLIBC_2.28 tss_get F
>  GLIBC_2.28 tss_set F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index 3790903af4..c5aa9d6052 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -2044,6 +2044,7 @@ GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
>  GLIBC_2.28 thrd_yield F
> +GLIBC_2.28 tss_create F
>  GLIBC_2.29 getcpu F
>  GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
>  GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
> @@ -2292,6 +2293,7 @@ GLIBC_2.34 pthread_spin_lock F
>  GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 thrd_exit F
> +GLIBC_2.34 tss_create F
>  GLIBC_2.4 __confstr_chk F
>  GLIBC_2.4 __fgets_chk F
>  GLIBC_2.4 __fgets_unlocked_chk F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index 38e5aba36f..8f3e00676a 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -2039,6 +2039,7 @@ GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
>  GLIBC_2.28 thrd_yield F
> +GLIBC_2.28 tss_create F
>  GLIBC_2.29 getcpu F
>  GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
>  GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
> @@ -2286,6 +2287,7 @@ GLIBC_2.34 pthread_spin_lock F
>  GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 thrd_exit F
> +GLIBC_2.34 tss_create F
>  GLIBC_2.4 __confstr_chk F
>  GLIBC_2.4 __fgets_chk F
>  GLIBC_2.4 __fgets_unlocked_chk F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index d37e1419e5..6f9f3674a1 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -2252,6 +2252,7 @@ GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
>  GLIBC_2.28 thrd_yield F
> +GLIBC_2.28 tss_create F
>  GLIBC_2.29 getcpu F
>  GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
>  GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
> @@ -2342,3 +2343,4 @@ GLIBC_2.34 pthread_spin_lock F
>  GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 thrd_exit F
> +GLIBC_2.34 tss_create F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> index 0e33b9f0fa..53fc617f30 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> @@ -72,7 +72,6 @@ GLIBC_2.21 sem_wait F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_join F
> -GLIBC_2.28 tss_create F
>  GLIBC_2.28 tss_delete F
>  GLIBC_2.28 tss_get F
>  GLIBC_2.28 tss_set F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index dbd492a3b1..14c2793499 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -2072,6 +2072,7 @@ GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
>  GLIBC_2.28 thrd_yield F
> +GLIBC_2.28 tss_create F
>  GLIBC_2.29 getcpu F
>  GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
>  GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
> @@ -2350,6 +2351,7 @@ GLIBC_2.34 pthread_spin_lock F
>  GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 thrd_exit F
> +GLIBC_2.34 tss_create F
>  GLIBC_2.4 _IO_fprintf F
>  GLIBC_2.4 _IO_printf F
>  GLIBC_2.4 _IO_sprintf F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> index 740ac67c90..fc7a3a1a2f 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> @@ -72,7 +72,6 @@ GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_join F
> -GLIBC_2.28 tss_create F
>  GLIBC_2.28 tss_delete F
>  GLIBC_2.28 tss_get F
>  GLIBC_2.28 tss_set F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index 0c82faa201..27833cbb2a 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -2076,6 +2076,7 @@ GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
>  GLIBC_2.28 thrd_yield F
> +GLIBC_2.28 tss_create F
>  GLIBC_2.29 getcpu F
>  GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
>  GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
> @@ -2383,6 +2384,7 @@ GLIBC_2.34 pthread_spin_lock F
>  GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 thrd_exit F
> +GLIBC_2.34 tss_create F
>  GLIBC_2.4 _IO_fprintf F
>  GLIBC_2.4 _IO_printf F
>  GLIBC_2.4 _IO_sprintf F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index f479c57024..f0de72f476 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -140,6 +140,7 @@ GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
>  GLIBC_2.28 thrd_yield F
> +GLIBC_2.28 tss_create F
>  GLIBC_2.29 getcpu F
>  GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
>  GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
> @@ -2204,6 +2205,7 @@ GLIBC_2.34 pthread_spin_lock F
>  GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 thrd_exit F
> +GLIBC_2.34 tss_create F
>  GLIBC_2.4 _IO_fprintf F
>  GLIBC_2.4 _IO_printf F
>  GLIBC_2.4 _IO_sprintf F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> index 2af5309ed9..e392ce41f1 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> @@ -6,7 +6,6 @@ GLIBC_2.18 pthread_setattr_default_np F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_join F
> -GLIBC_2.28 tss_create F
>  GLIBC_2.28 tss_delete F
>  GLIBC_2.28 tss_get F
>  GLIBC_2.28 tss_set F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index 892e46c976..6663a5bb53 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -2309,6 +2309,7 @@ GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
>  GLIBC_2.28 thrd_yield F
> +GLIBC_2.28 tss_create F
>  GLIBC_2.29 getcpu F
>  GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
>  GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
> @@ -2505,3 +2506,4 @@ GLIBC_2.34 pthread_spin_lock F
>  GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 thrd_exit F
> +GLIBC_2.34 tss_create F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> index 2e044698b7..22d805d968 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> @@ -72,7 +72,6 @@ GLIBC_2.18 pthread_setattr_default_np F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_join F
> -GLIBC_2.28 tss_create F
>  GLIBC_2.28 tss_delete F
>  GLIBC_2.28 tss_get F
>  GLIBC_2.28 tss_set F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index 459edaa125..706562670f 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -1865,6 +1865,7 @@ GLIBC_2.33 tr_break F
>  GLIBC_2.33 truncate F
>  GLIBC_2.33 truncate64 F
>  GLIBC_2.33 tsearch F
> +GLIBC_2.33 tss_create F
>  GLIBC_2.33 ttyname F
>  GLIBC_2.33 ttyname_r F
>  GLIBC_2.33 ttyslot F
> @@ -2070,3 +2071,4 @@ GLIBC_2.34 pthread_spin_lock F
>  GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 thrd_exit F
> +GLIBC_2.34 tss_create F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> index e688a30693..7dfb444833 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> @@ -76,7 +76,6 @@ GLIBC_2.33 sem_wait F
>  GLIBC_2.33 thrd_create F
>  GLIBC_2.33 thrd_detach F
>  GLIBC_2.33 thrd_join F
> -GLIBC_2.33 tss_create F
>  GLIBC_2.33 tss_delete F
>  GLIBC_2.33 tss_get F
>  GLIBC_2.33 tss_set F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index 17345bbd51..d6906016be 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -2180,6 +2180,7 @@ GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
>  GLIBC_2.28 thrd_yield F
> +GLIBC_2.28 tss_create F
>  GLIBC_2.29 getcpu F
>  GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
>  GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
> @@ -2270,3 +2271,4 @@ GLIBC_2.34 pthread_spin_lock F
>  GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 thrd_exit F
> +GLIBC_2.34 tss_create F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> index 23cec4e3dc..ed2e835de7 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> @@ -72,7 +72,6 @@ GLIBC_2.27 sem_wait F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_join F
> -GLIBC_2.28 tss_create F
>  GLIBC_2.28 tss_delete F
>  GLIBC_2.28 tss_get F
>  GLIBC_2.28 tss_set F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index 25d56b5c7d..e3fcaf1a95 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -2081,6 +2081,7 @@ GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
>  GLIBC_2.28 thrd_yield F
> +GLIBC_2.28 tss_create F
>  GLIBC_2.29 getcpu F
>  GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
>  GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
> @@ -2348,6 +2349,7 @@ GLIBC_2.34 pthread_spin_lock F
>  GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 thrd_exit F
> +GLIBC_2.34 tss_create F
>  GLIBC_2.4 _IO_fprintf F
>  GLIBC_2.4 _IO_printf F
>  GLIBC_2.4 _IO_sprintf F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> index 51d8afb571..c0ce5d844f 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> @@ -73,7 +73,6 @@ GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_join F
> -GLIBC_2.28 tss_create F
>  GLIBC_2.28 tss_delete F
>  GLIBC_2.28 tss_get F
>  GLIBC_2.28 tss_set F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index 950de9cf1e..0af71e5ef4 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -1978,6 +1978,7 @@ GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
>  GLIBC_2.28 thrd_yield F
> +GLIBC_2.28 tss_create F
>  GLIBC_2.29 __fentry__ F
>  GLIBC_2.29 getcpu F
>  GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
> @@ -2241,6 +2242,7 @@ GLIBC_2.34 pthread_spin_lock F
>  GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 thrd_exit F
> +GLIBC_2.34 tss_create F
>  GLIBC_2.4 _IO_fprintf F
>  GLIBC_2.4 _IO_printf F
>  GLIBC_2.4 _IO_sprintf F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> index 5a19f9d49a..17cece1b7b 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> @@ -65,7 +65,6 @@ GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_join F
> -GLIBC_2.28 tss_create F
>  GLIBC_2.28 tss_delete F
>  GLIBC_2.28 tss_get F
>  GLIBC_2.28 tss_set F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index a0b7a5cae7..2ee952555b 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -1955,6 +1955,7 @@ GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
>  GLIBC_2.28 thrd_yield F
> +GLIBC_2.28 tss_create F
>  GLIBC_2.29 getcpu F
>  GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
>  GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
> @@ -2210,6 +2211,7 @@ GLIBC_2.34 pthread_spin_lock F
>  GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 thrd_exit F
> +GLIBC_2.34 tss_create F
>  GLIBC_2.4 __confstr_chk F
>  GLIBC_2.4 __fgets_chk F
>  GLIBC_2.4 __fgets_unlocked_chk F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> index 727b654b8e..9481575392 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> @@ -64,7 +64,6 @@ GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_join F
> -GLIBC_2.28 tss_create F
>  GLIBC_2.28 tss_delete F
>  GLIBC_2.28 tss_get F
>  GLIBC_2.28 tss_set F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index 5eaa888765..d72c0c8266 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -1955,6 +1955,7 @@ GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
>  GLIBC_2.28 thrd_yield F
> +GLIBC_2.28 tss_create F
>  GLIBC_2.29 getcpu F
>  GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
>  GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
> @@ -2207,6 +2208,7 @@ GLIBC_2.34 pthread_spin_lock F
>  GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 thrd_exit F
> +GLIBC_2.34 tss_create F
>  GLIBC_2.4 __confstr_chk F
>  GLIBC_2.4 __fgets_chk F
>  GLIBC_2.4 __fgets_unlocked_chk F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> index 727b654b8e..9481575392 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> @@ -64,7 +64,6 @@ GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_join F
> -GLIBC_2.28 tss_create F
>  GLIBC_2.28 tss_delete F
>  GLIBC_2.28 tss_get F
>  GLIBC_2.28 tss_set F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index 37ace12a89..64825445f7 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -2075,6 +2075,7 @@ GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
>  GLIBC_2.28 thrd_yield F
> +GLIBC_2.28 tss_create F
>  GLIBC_2.29 getcpu F
>  GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
>  GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
> @@ -2339,6 +2340,7 @@ GLIBC_2.34 pthread_spin_lock F
>  GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 thrd_exit F
> +GLIBC_2.34 tss_create F
>  GLIBC_2.4 _IO_fprintf F
>  GLIBC_2.4 _IO_printf F
>  GLIBC_2.4 _IO_sprintf F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> index 69716922ba..32f24fc73f 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> @@ -72,7 +72,6 @@ GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_join F
> -GLIBC_2.28 tss_create F
>  GLIBC_2.28 tss_delete F
>  GLIBC_2.28 tss_get F
>  GLIBC_2.28 tss_set F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index e7ff31b657..2e7eea908e 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -2008,6 +2008,7 @@ GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
>  GLIBC_2.28 thrd_yield F
> +GLIBC_2.28 tss_create F
>  GLIBC_2.29 getcpu F
>  GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
>  GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
> @@ -2258,6 +2259,7 @@ GLIBC_2.34 pthread_spin_lock F
>  GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 thrd_exit F
> +GLIBC_2.34 tss_create F
>  GLIBC_2.4 __confstr_chk F
>  GLIBC_2.4 __fgets_chk F
>  GLIBC_2.4 __fgets_unlocked_chk F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> index 93c85d7a2c..d694d38c29 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> @@ -64,7 +64,6 @@ GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_join F
> -GLIBC_2.28 tss_create F
>  GLIBC_2.28 tss_delete F
>  GLIBC_2.28 tss_get F
>  GLIBC_2.28 tss_set F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index ab2445528e..fd940ed805 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -1967,6 +1967,7 @@ GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
>  GLIBC_2.28 thrd_yield F
> +GLIBC_2.28 tss_create F
>  GLIBC_2.29 getcpu F
>  GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
>  GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
> @@ -2219,6 +2220,7 @@ GLIBC_2.34 pthread_spin_lock F
>  GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 thrd_exit F
> +GLIBC_2.34 tss_create F
>  GLIBC_2.4 __confstr_chk F
>  GLIBC_2.4 __fgets_chk F
>  GLIBC_2.4 __fgets_unlocked_chk F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> index aaa813da94..59e6258f0c 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> @@ -63,7 +63,6 @@ GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_join F
> -GLIBC_2.28 tss_create F
>  GLIBC_2.28 tss_delete F
>  GLIBC_2.28 tss_get F
>  GLIBC_2.28 tss_set F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index 1c68c6ee85..90d4c176b5 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -2232,6 +2232,7 @@ GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
>  GLIBC_2.28 thrd_yield F
> +GLIBC_2.28 tss_create F
>  GLIBC_2.29 getcpu F
>  GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
>  GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
> @@ -2324,3 +2325,4 @@ GLIBC_2.34 pthread_spin_lock F
>  GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 thrd_exit F
> +GLIBC_2.34 tss_create F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> index 916b4ef95c..08208af7f3 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> @@ -72,7 +72,6 @@ GLIBC_2.18 pthread_setattr_default_np F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_join F
> -GLIBC_2.28 tss_create F
>  GLIBC_2.28 tss_delete F
>  GLIBC_2.28 tss_get F
>  GLIBC_2.28 tss_set F
>
  

Patch

diff --git a/nptl/Versions b/nptl/Versions
index 834fdbbd87..f267d4d1e7 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -144,6 +144,7 @@  libc {
     thrd_exit;
     thrd_sleep;
     thrd_yield;
+    tss_create;
   }
   GLIBC_2.30 {
     pthread_cond_clockwait;
@@ -212,6 +213,7 @@  libc {
     pthread_spin_trylock;
     pthread_spin_unlock;
     thrd_exit;
+    tss_create;
   }
   GLIBC_PRIVATE {
     __futex_abstimed_wait64;
@@ -391,7 +393,6 @@  libpthread {
     thrd_create;
     thrd_detach;
     thrd_join;
-    tss_create;
     tss_delete;
     tss_get;
     tss_set;
diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
index 3b070ee10d..d98bd11d6e 100644
--- a/nptl/pthreadP.h
+++ b/nptl/pthreadP.h
@@ -547,6 +547,7 @@  libc_hidden_proto (__pthread_mutex_timedlock)
 extern int __pthread_condattr_destroy (pthread_condattr_t *attr);
 extern int __pthread_condattr_init (pthread_condattr_t *attr);
 extern int __pthread_key_create (pthread_key_t *key, void (*destr) (void *));
+libc_hidden_proto (__pthread_key_create)
 extern int __pthread_key_delete (pthread_key_t key);
 libc_hidden_proto (__pthread_key_delete)
 extern void *__pthread_getspecific (pthread_key_t key);
diff --git a/sysdeps/pthread/Makefile b/sysdeps/pthread/Makefile
index 75a74be340..4b7e43078c 100644
--- a/sysdeps/pthread/Makefile
+++ b/sysdeps/pthread/Makefile
@@ -32,7 +32,7 @@  headers += threads.h
 routines += thrd_current thrd_equal thrd_sleep thrd_yield
 
 libpthread-routines += thrd_create thrd_detach thrd_join \
-		       tss_create tss_delete tss_get tss_set
+		       tss_delete tss_get tss_set
 
 $(libpthread-routines-var) += \
   call_once \
@@ -49,6 +49,7 @@  $(libpthread-routines-var) += \
   mtx_trylock \
   mtx_unlock \
   thrd_exit \
+  tss_create \
 
 tests += tst-cnd-basic tst-mtx-trylock tst-cnd-broadcast \
 	 tst-cnd-timedwait tst-thrd-detach tst-mtx-basic tst-thrd-sleep \
diff --git a/sysdeps/pthread/tss_create.c b/sysdeps/pthread/tss_create.c
index a059f39ac8..197f643401 100644
--- a/sysdeps/pthread/tss_create.c
+++ b/sysdeps/pthread/tss_create.c
@@ -16,10 +16,11 @@ 
    License along with the GNU C Library; if not, see
    <https://www.gnu.org/licenses/>.  */
 
+#include <shlib-compat.h>
 #include "thrd_priv.h"
 
 int
-tss_create (tss_t *tss_id, tss_dtor_t destructor)
+__tss_create (tss_t *tss_id, tss_dtor_t destructor)
 {
   _Static_assert (sizeof (tss_t) == sizeof (pthread_key_t),
 		  "sizeof (tss_t) != sizeof (pthread_key_t)");
@@ -31,3 +32,11 @@  tss_create (tss_t *tss_id, tss_dtor_t destructor)
   int err_code = __pthread_key_create (tss_id, destructor);
   return thrd_err_map (err_code);
 }
+#if PTHREAD_IN_LIBC
+versioned_symbol (libc, __tss_create, tss_create, GLIBC_2_34);
+# if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_28, GLIBC_2_34)
+compat_symbol (libpthread, __tss_create, tss_create, GLIBC_2_28);
+# endif
+#else /* !PTHREAD_IN_LIBC */
+strong_alias (__tss_create, tss_create)
+#endif
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 9390752b11..22c83416d9 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -2219,6 +2219,7 @@  GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
 GLIBC_2.28 thrd_yield F
+GLIBC_2.28 tss_create F
 GLIBC_2.29 getcpu F
 GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
 GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
@@ -2309,3 +2310,4 @@  GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 thrd_exit F
+GLIBC_2.34 tss_create F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
index 2e044698b7..22d805d968 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
@@ -72,7 +72,6 @@  GLIBC_2.18 pthread_setattr_default_np F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_join F
-GLIBC_2.28 tss_create F
 GLIBC_2.28 tss_delete F
 GLIBC_2.28 tss_get F
 GLIBC_2.28 tss_set F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 01830f4b8c..69246ca59d 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -2112,6 +2112,7 @@  GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
 GLIBC_2.28 thrd_yield F
+GLIBC_2.28 tss_create F
 GLIBC_2.29 getcpu F
 GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
 GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
@@ -2390,6 +2391,7 @@  GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 thrd_exit F
+GLIBC_2.34 tss_create F
 GLIBC_2.4 _IO_fprintf F
 GLIBC_2.4 _IO_printf F
 GLIBC_2.4 _IO_sprintf F
diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
index 69716922ba..32f24fc73f 100644
--- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
@@ -72,7 +72,6 @@  GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_join F
-GLIBC_2.28 tss_create F
 GLIBC_2.28 tss_delete F
 GLIBC_2.28 tss_get F
 GLIBC_2.28 tss_set F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index f647e9ceb9..3ccb9d8723 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1855,6 +1855,7 @@  GLIBC_2.32 tr_break F
 GLIBC_2.32 truncate F
 GLIBC_2.32 truncate64 F
 GLIBC_2.32 tsearch F
+GLIBC_2.32 tss_create F
 GLIBC_2.32 ttyname F
 GLIBC_2.32 ttyname_r F
 GLIBC_2.32 ttyslot F
@@ -2068,3 +2069,4 @@  GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 thrd_exit F
+GLIBC_2.34 tss_create F
diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
index ed881e9417..f4cabfdc5e 100644
--- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
@@ -76,7 +76,6 @@  GLIBC_2.32 sem_wait F
 GLIBC_2.32 thrd_create F
 GLIBC_2.32 thrd_detach F
 GLIBC_2.32 thrd_join F
-GLIBC_2.32 tss_create F
 GLIBC_2.32 tss_delete F
 GLIBC_2.32 tss_get F
 GLIBC_2.32 tss_set F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index b088edc561..11dd473a81 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -140,6 +140,7 @@  GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
 GLIBC_2.28 thrd_yield F
+GLIBC_2.28 tss_create F
 GLIBC_2.29 getcpu F
 GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
 GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
@@ -233,6 +234,7 @@  GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 thrd_exit F
+GLIBC_2.34 tss_create F
 GLIBC_2.4 _Exit F
 GLIBC_2.4 _IO_2_1_stderr_ D 0xa0
 GLIBC_2.4 _IO_2_1_stdin_ D 0xa0
diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
index 9579814f70..7a4971951c 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
@@ -6,7 +6,6 @@  GLIBC_2.18 pthread_setattr_default_np F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_join F
-GLIBC_2.28 tss_create F
 GLIBC_2.28 tss_delete F
 GLIBC_2.28 tss_get F
 GLIBC_2.28 tss_set F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index c9820ecb46..50231abb2a 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -140,6 +140,7 @@  GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
 GLIBC_2.28 thrd_yield F
+GLIBC_2.28 tss_create F
 GLIBC_2.29 getcpu F
 GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
 GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
@@ -230,6 +231,7 @@  GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 thrd_exit F
+GLIBC_2.34 tss_create F
 GLIBC_2.4 _Exit F
 GLIBC_2.4 _IO_2_1_stderr_ D 0xa0
 GLIBC_2.4 _IO_2_1_stdin_ D 0xa0
diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
index 9579814f70..7a4971951c 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
@@ -6,7 +6,6 @@  GLIBC_2.18 pthread_setattr_default_np F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_join F
-GLIBC_2.28 tss_create F
 GLIBC_2.28 tss_delete F
 GLIBC_2.28 tss_get F
 GLIBC_2.28 tss_set F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 7a9c18250a..1aacd7ed75 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -1949,6 +1949,7 @@  GLIBC_2.29 tr_break F
 GLIBC_2.29 truncate F
 GLIBC_2.29 truncate64 F
 GLIBC_2.29 tsearch F
+GLIBC_2.29 tss_create F
 GLIBC_2.29 ttyname F
 GLIBC_2.29 ttyname_r F
 GLIBC_2.29 ttyslot F
@@ -2252,3 +2253,4 @@  GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 thrd_exit F
+GLIBC_2.34 tss_create F
diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
index 57a14c0db4..df5edd755b 100644
--- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
@@ -72,7 +72,6 @@  GLIBC_2.29 sem_wait F
 GLIBC_2.29 thrd_create F
 GLIBC_2.29 thrd_detach F
 GLIBC_2.29 thrd_join F
-GLIBC_2.29 tss_create F
 GLIBC_2.29 tss_delete F
 GLIBC_2.29 tss_get F
 GLIBC_2.29 tss_set F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index a811fe0505..c4b9358061 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -1951,6 +1951,7 @@  GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
 GLIBC_2.28 thrd_yield F
+GLIBC_2.28 tss_create F
 GLIBC_2.29 getcpu F
 GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
 GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
@@ -2203,6 +2204,7 @@  GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 thrd_exit F
+GLIBC_2.34 tss_create F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
index 727b654b8e..9481575392 100644
--- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
@@ -64,7 +64,6 @@  GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_join F
-GLIBC_2.28 tss_create F
 GLIBC_2.28 tss_delete F
 GLIBC_2.28 tss_get F
 GLIBC_2.28 tss_set F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index b2f8bae2c5..983256528e 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -2125,6 +2125,7 @@  GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
 GLIBC_2.28 thrd_yield F
+GLIBC_2.28 tss_create F
 GLIBC_2.29 getcpu F
 GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
 GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
@@ -2380,6 +2381,7 @@  GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 thrd_exit F
+GLIBC_2.34 tss_create F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
index 0a9d46d9cc..668e2d74e8 100644
--- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
@@ -72,7 +72,6 @@  GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_join F
-GLIBC_2.28 tss_create F
 GLIBC_2.28 tss_delete F
 GLIBC_2.28 tss_get F
 GLIBC_2.28 tss_set F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index b5c58de5f5..9c394a4962 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -1986,6 +1986,7 @@  GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
 GLIBC_2.28 thrd_yield F
+GLIBC_2.28 tss_create F
 GLIBC_2.29 getcpu F
 GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
 GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
@@ -2237,6 +2238,7 @@  GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 thrd_exit F
+GLIBC_2.34 tss_create F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
index 93c85d7a2c..d694d38c29 100644
--- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
@@ -64,7 +64,6 @@  GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_join F
-GLIBC_2.28 tss_create F
 GLIBC_2.28 tss_delete F
 GLIBC_2.28 tss_get F
 GLIBC_2.28 tss_set F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 23a3f12406..aaebf896c5 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -141,6 +141,7 @@  GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
 GLIBC_2.28 thrd_yield F
+GLIBC_2.28 tss_create F
 GLIBC_2.29 getcpu F
 GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
 GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
@@ -234,6 +235,7 @@  GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 thrd_exit F
+GLIBC_2.34 tss_create F
 GLIBC_2.4 _Exit F
 GLIBC_2.4 _IO_2_1_stderr_ D 0x98
 GLIBC_2.4 _IO_2_1_stdin_ D 0x98
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
index 9579814f70..7a4971951c 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
@@ -6,7 +6,6 @@  GLIBC_2.18 pthread_setattr_default_np F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_join F
-GLIBC_2.28 tss_create F
 GLIBC_2.28 tss_delete F
 GLIBC_2.28 tss_get F
 GLIBC_2.28 tss_set F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index e729a07a9f..4dd68aba24 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2068,6 +2068,7 @@  GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
 GLIBC_2.28 thrd_yield F
+GLIBC_2.28 tss_create F
 GLIBC_2.29 getcpu F
 GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
 GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
@@ -2323,6 +2324,7 @@  GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 thrd_exit F
+GLIBC_2.34 tss_create F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
index 0a9d46d9cc..668e2d74e8 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
@@ -72,7 +72,6 @@  GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_join F
-GLIBC_2.28 tss_create F
 GLIBC_2.28 tss_delete F
 GLIBC_2.28 tss_get F
 GLIBC_2.28 tss_set F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 3dd1428f25..f260228737 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -2210,6 +2210,7 @@  GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
 GLIBC_2.28 thrd_yield F
+GLIBC_2.28 tss_create F
 GLIBC_2.29 getcpu F
 GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
 GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
@@ -2303,3 +2304,4 @@  GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 thrd_exit F
+GLIBC_2.34 tss_create F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
index dfeb3e6b9c..259dd6d483 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
@@ -72,7 +72,6 @@  GLIBC_2.18 sem_wait F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_join F
-GLIBC_2.28 tss_create F
 GLIBC_2.28 tss_delete F
 GLIBC_2.28 tss_get F
 GLIBC_2.28 tss_set F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 800797f67c..35896e5572 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -2210,6 +2210,7 @@  GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
 GLIBC_2.28 thrd_yield F
+GLIBC_2.28 tss_create F
 GLIBC_2.29 getcpu F
 GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
 GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
@@ -2300,3 +2301,4 @@  GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 thrd_exit F
+GLIBC_2.34 tss_create F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
index dfeb3e6b9c..259dd6d483 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
@@ -72,7 +72,6 @@  GLIBC_2.18 sem_wait F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_join F
-GLIBC_2.28 tss_create F
 GLIBC_2.28 tss_delete F
 GLIBC_2.28 tss_get F
 GLIBC_2.28 tss_set F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 4ada6e5338..3d6e68147a 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -2038,6 +2038,7 @@  GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
 GLIBC_2.28 thrd_yield F
+GLIBC_2.28 tss_create F
 GLIBC_2.29 getcpu F
 GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
 GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
@@ -2286,6 +2287,7 @@  GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 thrd_exit F
+GLIBC_2.34 tss_create F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
index 20c9082450..c7784f4c7e 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
@@ -71,7 +71,6 @@  GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_join F
-GLIBC_2.28 tss_create F
 GLIBC_2.28 tss_delete F
 GLIBC_2.28 tss_get F
 GLIBC_2.28 tss_set F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index f3a3f9db83..ac7cb3820f 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -2036,6 +2036,7 @@  GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
 GLIBC_2.28 thrd_yield F
+GLIBC_2.28 tss_create F
 GLIBC_2.29 getcpu F
 GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
 GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
@@ -2284,6 +2285,7 @@  GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 thrd_exit F
+GLIBC_2.34 tss_create F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
index 20c9082450..c7784f4c7e 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
@@ -71,7 +71,6 @@  GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_join F
-GLIBC_2.28 tss_create F
 GLIBC_2.28 tss_delete F
 GLIBC_2.28 tss_get F
 GLIBC_2.28 tss_set F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 3790903af4..c5aa9d6052 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -2044,6 +2044,7 @@  GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
 GLIBC_2.28 thrd_yield F
+GLIBC_2.28 tss_create F
 GLIBC_2.29 getcpu F
 GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
 GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
@@ -2292,6 +2293,7 @@  GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 thrd_exit F
+GLIBC_2.34 tss_create F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 38e5aba36f..8f3e00676a 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -2039,6 +2039,7 @@  GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
 GLIBC_2.28 thrd_yield F
+GLIBC_2.28 tss_create F
 GLIBC_2.29 getcpu F
 GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
 GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
@@ -2286,6 +2287,7 @@  GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 thrd_exit F
+GLIBC_2.34 tss_create F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index d37e1419e5..6f9f3674a1 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -2252,6 +2252,7 @@  GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
 GLIBC_2.28 thrd_yield F
+GLIBC_2.28 tss_create F
 GLIBC_2.29 getcpu F
 GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
 GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
@@ -2342,3 +2343,4 @@  GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 thrd_exit F
+GLIBC_2.34 tss_create F
diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
index 0e33b9f0fa..53fc617f30 100644
--- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
@@ -72,7 +72,6 @@  GLIBC_2.21 sem_wait F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_join F
-GLIBC_2.28 tss_create F
 GLIBC_2.28 tss_delete F
 GLIBC_2.28 tss_get F
 GLIBC_2.28 tss_set F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index dbd492a3b1..14c2793499 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -2072,6 +2072,7 @@  GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
 GLIBC_2.28 thrd_yield F
+GLIBC_2.28 tss_create F
 GLIBC_2.29 getcpu F
 GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
 GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
@@ -2350,6 +2351,7 @@  GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 thrd_exit F
+GLIBC_2.34 tss_create F
 GLIBC_2.4 _IO_fprintf F
 GLIBC_2.4 _IO_printf F
 GLIBC_2.4 _IO_sprintf F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
index 740ac67c90..fc7a3a1a2f 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
@@ -72,7 +72,6 @@  GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_join F
-GLIBC_2.28 tss_create F
 GLIBC_2.28 tss_delete F
 GLIBC_2.28 tss_get F
 GLIBC_2.28 tss_set F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 0c82faa201..27833cbb2a 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -2076,6 +2076,7 @@  GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
 GLIBC_2.28 thrd_yield F
+GLIBC_2.28 tss_create F
 GLIBC_2.29 getcpu F
 GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
 GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
@@ -2383,6 +2384,7 @@  GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 thrd_exit F
+GLIBC_2.34 tss_create F
 GLIBC_2.4 _IO_fprintf F
 GLIBC_2.4 _IO_printf F
 GLIBC_2.4 _IO_sprintf F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index f479c57024..f0de72f476 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -140,6 +140,7 @@  GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
 GLIBC_2.28 thrd_yield F
+GLIBC_2.28 tss_create F
 GLIBC_2.29 getcpu F
 GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
 GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
@@ -2204,6 +2205,7 @@  GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 thrd_exit F
+GLIBC_2.34 tss_create F
 GLIBC_2.4 _IO_fprintf F
 GLIBC_2.4 _IO_printf F
 GLIBC_2.4 _IO_sprintf F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
index 2af5309ed9..e392ce41f1 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
@@ -6,7 +6,6 @@  GLIBC_2.18 pthread_setattr_default_np F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_join F
-GLIBC_2.28 tss_create F
 GLIBC_2.28 tss_delete F
 GLIBC_2.28 tss_get F
 GLIBC_2.28 tss_set F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 892e46c976..6663a5bb53 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -2309,6 +2309,7 @@  GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
 GLIBC_2.28 thrd_yield F
+GLIBC_2.28 tss_create F
 GLIBC_2.29 getcpu F
 GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
 GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
@@ -2505,3 +2506,4 @@  GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 thrd_exit F
+GLIBC_2.34 tss_create F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
index 2e044698b7..22d805d968 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
@@ -72,7 +72,6 @@  GLIBC_2.18 pthread_setattr_default_np F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_join F
-GLIBC_2.28 tss_create F
 GLIBC_2.28 tss_delete F
 GLIBC_2.28 tss_get F
 GLIBC_2.28 tss_set F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 459edaa125..706562670f 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1865,6 +1865,7 @@  GLIBC_2.33 tr_break F
 GLIBC_2.33 truncate F
 GLIBC_2.33 truncate64 F
 GLIBC_2.33 tsearch F
+GLIBC_2.33 tss_create F
 GLIBC_2.33 ttyname F
 GLIBC_2.33 ttyname_r F
 GLIBC_2.33 ttyslot F
@@ -2070,3 +2071,4 @@  GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 thrd_exit F
+GLIBC_2.34 tss_create F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
index e688a30693..7dfb444833 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
@@ -76,7 +76,6 @@  GLIBC_2.33 sem_wait F
 GLIBC_2.33 thrd_create F
 GLIBC_2.33 thrd_detach F
 GLIBC_2.33 thrd_join F
-GLIBC_2.33 tss_create F
 GLIBC_2.33 tss_delete F
 GLIBC_2.33 tss_get F
 GLIBC_2.33 tss_set F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 17345bbd51..d6906016be 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -2180,6 +2180,7 @@  GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
 GLIBC_2.28 thrd_yield F
+GLIBC_2.28 tss_create F
 GLIBC_2.29 getcpu F
 GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
 GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
@@ -2270,3 +2271,4 @@  GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 thrd_exit F
+GLIBC_2.34 tss_create F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
index 23cec4e3dc..ed2e835de7 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
@@ -72,7 +72,6 @@  GLIBC_2.27 sem_wait F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_join F
-GLIBC_2.28 tss_create F
 GLIBC_2.28 tss_delete F
 GLIBC_2.28 tss_get F
 GLIBC_2.28 tss_set F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 25d56b5c7d..e3fcaf1a95 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -2081,6 +2081,7 @@  GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
 GLIBC_2.28 thrd_yield F
+GLIBC_2.28 tss_create F
 GLIBC_2.29 getcpu F
 GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
 GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
@@ -2348,6 +2349,7 @@  GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 thrd_exit F
+GLIBC_2.34 tss_create F
 GLIBC_2.4 _IO_fprintf F
 GLIBC_2.4 _IO_printf F
 GLIBC_2.4 _IO_sprintf F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
index 51d8afb571..c0ce5d844f 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
@@ -73,7 +73,6 @@  GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_join F
-GLIBC_2.28 tss_create F
 GLIBC_2.28 tss_delete F
 GLIBC_2.28 tss_get F
 GLIBC_2.28 tss_set F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 950de9cf1e..0af71e5ef4 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -1978,6 +1978,7 @@  GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
 GLIBC_2.28 thrd_yield F
+GLIBC_2.28 tss_create F
 GLIBC_2.29 __fentry__ F
 GLIBC_2.29 getcpu F
 GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
@@ -2241,6 +2242,7 @@  GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 thrd_exit F
+GLIBC_2.34 tss_create F
 GLIBC_2.4 _IO_fprintf F
 GLIBC_2.4 _IO_printf F
 GLIBC_2.4 _IO_sprintf F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
index 5a19f9d49a..17cece1b7b 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
@@ -65,7 +65,6 @@  GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_join F
-GLIBC_2.28 tss_create F
 GLIBC_2.28 tss_delete F
 GLIBC_2.28 tss_get F
 GLIBC_2.28 tss_set F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index a0b7a5cae7..2ee952555b 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -1955,6 +1955,7 @@  GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
 GLIBC_2.28 thrd_yield F
+GLIBC_2.28 tss_create F
 GLIBC_2.29 getcpu F
 GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
 GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
@@ -2210,6 +2211,7 @@  GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 thrd_exit F
+GLIBC_2.34 tss_create F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
index 727b654b8e..9481575392 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
@@ -64,7 +64,6 @@  GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_join F
-GLIBC_2.28 tss_create F
 GLIBC_2.28 tss_delete F
 GLIBC_2.28 tss_get F
 GLIBC_2.28 tss_set F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 5eaa888765..d72c0c8266 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -1955,6 +1955,7 @@  GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
 GLIBC_2.28 thrd_yield F
+GLIBC_2.28 tss_create F
 GLIBC_2.29 getcpu F
 GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
 GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
@@ -2207,6 +2208,7 @@  GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 thrd_exit F
+GLIBC_2.34 tss_create F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
index 727b654b8e..9481575392 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
@@ -64,7 +64,6 @@  GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_join F
-GLIBC_2.28 tss_create F
 GLIBC_2.28 tss_delete F
 GLIBC_2.28 tss_get F
 GLIBC_2.28 tss_set F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 37ace12a89..64825445f7 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -2075,6 +2075,7 @@  GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
 GLIBC_2.28 thrd_yield F
+GLIBC_2.28 tss_create F
 GLIBC_2.29 getcpu F
 GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
 GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
@@ -2339,6 +2340,7 @@  GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 thrd_exit F
+GLIBC_2.34 tss_create F
 GLIBC_2.4 _IO_fprintf F
 GLIBC_2.4 _IO_printf F
 GLIBC_2.4 _IO_sprintf F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
index 69716922ba..32f24fc73f 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
@@ -72,7 +72,6 @@  GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_join F
-GLIBC_2.28 tss_create F
 GLIBC_2.28 tss_delete F
 GLIBC_2.28 tss_get F
 GLIBC_2.28 tss_set F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index e7ff31b657..2e7eea908e 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -2008,6 +2008,7 @@  GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
 GLIBC_2.28 thrd_yield F
+GLIBC_2.28 tss_create F
 GLIBC_2.29 getcpu F
 GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
 GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
@@ -2258,6 +2259,7 @@  GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 thrd_exit F
+GLIBC_2.34 tss_create F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
index 93c85d7a2c..d694d38c29 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
@@ -64,7 +64,6 @@  GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_join F
-GLIBC_2.28 tss_create F
 GLIBC_2.28 tss_delete F
 GLIBC_2.28 tss_get F
 GLIBC_2.28 tss_set F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index ab2445528e..fd940ed805 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -1967,6 +1967,7 @@  GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
 GLIBC_2.28 thrd_yield F
+GLIBC_2.28 tss_create F
 GLIBC_2.29 getcpu F
 GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
 GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
@@ -2219,6 +2220,7 @@  GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 thrd_exit F
+GLIBC_2.34 tss_create F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
index aaa813da94..59e6258f0c 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
@@ -63,7 +63,6 @@  GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_join F
-GLIBC_2.28 tss_create F
 GLIBC_2.28 tss_delete F
 GLIBC_2.28 tss_get F
 GLIBC_2.28 tss_set F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 1c68c6ee85..90d4c176b5 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -2232,6 +2232,7 @@  GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
 GLIBC_2.28 thrd_yield F
+GLIBC_2.28 tss_create F
 GLIBC_2.29 getcpu F
 GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
 GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
@@ -2324,3 +2325,4 @@  GLIBC_2.34 pthread_spin_lock F
 GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 thrd_exit F
+GLIBC_2.34 tss_create F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
index 916b4ef95c..08208af7f3 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
@@ -72,7 +72,6 @@  GLIBC_2.18 pthread_setattr_default_np F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_join F
-GLIBC_2.28 tss_create F
 GLIBC_2.28 tss_delete F
 GLIBC_2.28 tss_get F
 GLIBC_2.28 tss_set F