[15/19] nptl: Move thrd_exit into libc
Commit Message
The symbol was moved using scripts/move-symbol-to-libc.py.
The __pthread_exit@@GLIBC_PRIVATE symbol is no longer needed
after this change, so remove it.
---
nptl/Versions | 4 ++--
sysdeps/pthread/Makefile | 3 ++-
sysdeps/pthread/thrd_exit.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 -
64 files changed, 78 insertions(+), 33 deletions(-)
Comments
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>
> The __pthread_exit@@GLIBC_PRIVATE symbol is no longer needed
> after this change, so remove it.
OK.
> ---
> nptl/Versions | 4 ++--
> sysdeps/pthread/Makefile | 3 ++-
> sysdeps/pthread/thrd_exit.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 -
> 64 files changed, 78 insertions(+), 33 deletions(-)
>
> diff --git a/nptl/Versions b/nptl/Versions
> index 47704ba4d1..834fdbbd87 100644
> --- a/nptl/Versions
> +++ b/nptl/Versions
> @@ -141,6 +141,7 @@ libc {
> mtx_unlock;
> thrd_current;
> thrd_equal;
> + thrd_exit;
> thrd_sleep;
> thrd_yield;
> }
> @@ -210,6 +211,7 @@ libc {
> pthread_spin_lock;
> pthread_spin_trylock;
> pthread_spin_unlock;
> + thrd_exit;
> }
> GLIBC_PRIVATE {
> __futex_abstimed_wait64;
> @@ -239,7 +241,6 @@ libc {
> __pthread_cleanup_push;
> __pthread_cleanup_upto;
> __pthread_current_priority;
> - __pthread_exit;
> __pthread_force_elision;
> __pthread_getattr_default_np;
> __pthread_key_delete;
> @@ -389,7 +390,6 @@ libpthread {
> GLIBC_2.28 {
> thrd_create;
> thrd_detach;
> - thrd_exit;
> thrd_join;
> tss_create;
> tss_delete;
> diff --git a/sysdeps/pthread/Makefile b/sysdeps/pthread/Makefile
> index 6f204ccab2..75a74be340 100644
> --- a/sysdeps/pthread/Makefile
> +++ b/sysdeps/pthread/Makefile
> @@ -31,7 +31,7 @@ headers += threads.h
>
> routines += thrd_current thrd_equal thrd_sleep thrd_yield
>
> -libpthread-routines += thrd_create thrd_detach thrd_exit thrd_join \
> +libpthread-routines += thrd_create thrd_detach thrd_join \
> tss_create tss_delete tss_get tss_set
>
> $(libpthread-routines-var) += \
> @@ -48,6 +48,7 @@ $(libpthread-routines-var) += \
> mtx_timedlock \
> mtx_trylock \
> mtx_unlock \
> + thrd_exit \
>
> 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/thrd_exit.c b/sysdeps/pthread/thrd_exit.c
> index 7348e83dcc..1554af422c 100644
> --- a/sysdeps/pthread/thrd_exit.c
> +++ b/sysdeps/pthread/thrd_exit.c
> @@ -16,10 +16,19 @@
> License along with the GNU C Library; if not, see
> <https://www.gnu.org/licenses/>. */
>
> +#include <shlib-compat.h>
> #include "thrd_priv.h"
>
> _Noreturn void
> -thrd_exit (int res)
> +__thrd_exit (int res)
> {
> __pthread_exit ((void*)(uintptr_t) res);
> }
> +#if PTHREAD_IN_LIBC
> +versioned_symbol (libc, __thrd_exit, thrd_exit, GLIBC_2_34);
> +# if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_28, GLIBC_2_34)
> +compat_symbol (libpthread, __thrd_exit, thrd_exit, GLIBC_2_28);
> +# endif
> +#else /* !PTHREAD_IN_LIBC */
> +strong_alias (__thrd_exit, thrd_exit)
> +#endif
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index fddeb25a72..9390752b11 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -2216,6 +2216,7 @@ GLIBC_2.28 renameat2 F
> GLIBC_2.28 statx F
> GLIBC_2.28 thrd_current F
> 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.29 getcpu F
> @@ -2307,3 +2308,4 @@ GLIBC_2.34 pthread_spin_init F
> 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
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> index d18f1540f8..2e044698b7 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> @@ -71,7 +71,6 @@ GLIBC_2.18 pthread_getattr_default_np F
> GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.28 thrd_create F
> GLIBC_2.28 thrd_detach F
> -GLIBC_2.28 thrd_exit F
> GLIBC_2.28 thrd_join F
> GLIBC_2.28 tss_create F
> GLIBC_2.28 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index 38d2821356..01830f4b8c 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -2109,6 +2109,7 @@ GLIBC_2.28 renameat2 F
> GLIBC_2.28 statx F
> GLIBC_2.28 thrd_current F
> 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.29 getcpu F
> @@ -2388,6 +2389,7 @@ GLIBC_2.34 pthread_spin_init F
> 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.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 0357adc360..69716922ba 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> @@ -71,7 +71,6 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
> GLIBC_2.2.6 __libpthread_version_placeholder F
> GLIBC_2.28 thrd_create F
> GLIBC_2.28 thrd_detach F
> -GLIBC_2.28 thrd_exit F
> GLIBC_2.28 thrd_join F
> GLIBC_2.28 tss_create F
> GLIBC_2.28 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index 08d1092337..f647e9ceb9 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -1824,6 +1824,7 @@ GLIBC_2.32 tfind F
> GLIBC_2.32 tgkill F
> GLIBC_2.32 thrd_current F
> GLIBC_2.32 thrd_equal F
> +GLIBC_2.32 thrd_exit F
> GLIBC_2.32 thrd_sleep F
> GLIBC_2.32 thrd_yield F
> GLIBC_2.32 time F
> @@ -2066,3 +2067,4 @@ GLIBC_2.34 pthread_spin_init F
> 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
> diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> index f6d0d01f47..ed881e9417 100644
> --- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> @@ -75,7 +75,6 @@ GLIBC_2.32 sem_unlink F
> GLIBC_2.32 sem_wait F
> GLIBC_2.32 thrd_create F
> GLIBC_2.32 thrd_detach F
> -GLIBC_2.32 thrd_exit F
> GLIBC_2.32 thrd_join F
> GLIBC_2.32 tss_create F
> GLIBC_2.32 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index 011d0a2a72..b088edc561 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -137,6 +137,7 @@ GLIBC_2.28 renameat2 F
> GLIBC_2.28 statx F
> GLIBC_2.28 thrd_current F
> 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.29 getcpu F
> @@ -231,6 +232,7 @@ GLIBC_2.34 pthread_spin_init F
> 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.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 df380de883..9579814f70 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> @@ -5,7 +5,6 @@ GLIBC_2.18 pthread_getattr_default_np F
> GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.28 thrd_create F
> GLIBC_2.28 thrd_detach F
> -GLIBC_2.28 thrd_exit F
> GLIBC_2.28 thrd_join F
> GLIBC_2.28 tss_create F
> GLIBC_2.28 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index 77f88a1614..c9820ecb46 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -137,6 +137,7 @@ GLIBC_2.28 renameat2 F
> GLIBC_2.28 statx F
> GLIBC_2.28 thrd_current F
> 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.29 getcpu F
> @@ -228,6 +229,7 @@ GLIBC_2.34 pthread_spin_init F
> 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.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 df380de883..9579814f70 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> @@ -5,7 +5,6 @@ GLIBC_2.18 pthread_getattr_default_np F
> GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.28 thrd_create F
> GLIBC_2.28 thrd_detach F
> -GLIBC_2.28 thrd_exit F
> GLIBC_2.28 thrd_join F
> GLIBC_2.28 tss_create F
> GLIBC_2.28 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index 97dfaf2710..7a9c18250a 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -1918,6 +1918,7 @@ GLIBC_2.29 textdomain F
> GLIBC_2.29 tfind F
> GLIBC_2.29 thrd_current F
> GLIBC_2.29 thrd_equal F
> +GLIBC_2.29 thrd_exit F
> GLIBC_2.29 thrd_sleep F
> GLIBC_2.29 thrd_yield F
> GLIBC_2.29 time F
> @@ -2250,3 +2251,4 @@ GLIBC_2.34 pthread_spin_init F
> 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
> diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> index 8f2662e794..57a14c0db4 100644
> --- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> @@ -71,7 +71,6 @@ GLIBC_2.29 sem_unlink F
> GLIBC_2.29 sem_wait F
> GLIBC_2.29 thrd_create F
> GLIBC_2.29 thrd_detach F
> -GLIBC_2.29 thrd_exit F
> GLIBC_2.29 thrd_join F
> GLIBC_2.29 tss_create F
> GLIBC_2.29 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index 673de09c0c..a811fe0505 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -1948,6 +1948,7 @@ GLIBC_2.28 renameat2 F
> GLIBC_2.28 statx F
> GLIBC_2.28 thrd_current F
> 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.29 getcpu F
> @@ -2201,6 +2202,7 @@ GLIBC_2.34 pthread_spin_init F
> 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.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 666b409e05..727b654b8e 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> @@ -63,7 +63,6 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
> GLIBC_2.2.6 __libpthread_version_placeholder F
> GLIBC_2.28 thrd_create F
> GLIBC_2.28 thrd_detach F
> -GLIBC_2.28 thrd_exit F
> GLIBC_2.28 thrd_join F
> GLIBC_2.28 tss_create F
> GLIBC_2.28 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index ff914ff287..b2f8bae2c5 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -2122,6 +2122,7 @@ GLIBC_2.28 renameat2 F
> GLIBC_2.28 statx F
> GLIBC_2.28 thrd_current F
> 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.29 getcpu F
> @@ -2378,6 +2379,7 @@ GLIBC_2.34 pthread_spin_init F
> 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.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 c151fd4bce..0a9d46d9cc 100644
> --- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> @@ -71,7 +71,6 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
> GLIBC_2.2.6 __libpthread_version_placeholder F
> GLIBC_2.28 thrd_create F
> GLIBC_2.28 thrd_detach F
> -GLIBC_2.28 thrd_exit F
> GLIBC_2.28 thrd_join F
> GLIBC_2.28 tss_create F
> GLIBC_2.28 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index b429c9d290..b5c58de5f5 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -1983,6 +1983,7 @@ GLIBC_2.28 renameat2 F
> GLIBC_2.28 statx F
> GLIBC_2.28 thrd_current F
> 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.29 getcpu F
> @@ -2235,6 +2236,7 @@ GLIBC_2.34 pthread_spin_init F
> 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.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 7b38318523..93c85d7a2c 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> @@ -63,7 +63,6 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
> GLIBC_2.2.6 __libpthread_version_placeholder F
> GLIBC_2.28 thrd_create F
> GLIBC_2.28 thrd_detach F
> -GLIBC_2.28 thrd_exit F
> GLIBC_2.28 thrd_join F
> GLIBC_2.28 tss_create F
> GLIBC_2.28 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index 3232874576..23a3f12406 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -138,6 +138,7 @@ GLIBC_2.28 renameat2 F
> GLIBC_2.28 statx F
> GLIBC_2.28 thrd_current F
> 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.29 getcpu F
> @@ -232,6 +233,7 @@ GLIBC_2.34 pthread_spin_init F
> 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.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 df380de883..9579814f70 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> @@ -5,7 +5,6 @@ GLIBC_2.18 pthread_getattr_default_np F
> GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.28 thrd_create F
> GLIBC_2.28 thrd_detach F
> -GLIBC_2.28 thrd_exit F
> GLIBC_2.28 thrd_join F
> GLIBC_2.28 tss_create F
> GLIBC_2.28 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index a9b92d93cd..e729a07a9f 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -2065,6 +2065,7 @@ GLIBC_2.28 renameat2 F
> GLIBC_2.28 statx F
> GLIBC_2.28 thrd_current F
> 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.29 getcpu F
> @@ -2321,6 +2322,7 @@ GLIBC_2.34 pthread_spin_init F
> 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.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 c151fd4bce..0a9d46d9cc 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> @@ -71,7 +71,6 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
> GLIBC_2.2.6 __libpthread_version_placeholder F
> GLIBC_2.28 thrd_create F
> GLIBC_2.28 thrd_detach F
> -GLIBC_2.28 thrd_exit F
> GLIBC_2.28 thrd_join F
> GLIBC_2.28 tss_create F
> GLIBC_2.28 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index b022965fe0..3dd1428f25 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -2207,6 +2207,7 @@ GLIBC_2.28 renameat2 F
> GLIBC_2.28 statx F
> GLIBC_2.28 thrd_current F
> 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.29 getcpu F
> @@ -2301,3 +2302,4 @@ GLIBC_2.34 pthread_spin_init F
> 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
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> index 5ae61bbe9d..dfeb3e6b9c 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> @@ -71,7 +71,6 @@ GLIBC_2.18 sem_unlink F
> GLIBC_2.18 sem_wait F
> GLIBC_2.28 thrd_create F
> GLIBC_2.28 thrd_detach F
> -GLIBC_2.28 thrd_exit F
> GLIBC_2.28 thrd_join F
> GLIBC_2.28 tss_create F
> GLIBC_2.28 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index f3dbd4e6df..800797f67c 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -2207,6 +2207,7 @@ GLIBC_2.28 renameat2 F
> GLIBC_2.28 statx F
> GLIBC_2.28 thrd_current F
> 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.29 getcpu F
> @@ -2298,3 +2299,4 @@ GLIBC_2.34 pthread_spin_init F
> 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
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> index 5ae61bbe9d..dfeb3e6b9c 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> @@ -71,7 +71,6 @@ GLIBC_2.18 sem_unlink F
> GLIBC_2.18 sem_wait F
> GLIBC_2.28 thrd_create F
> GLIBC_2.28 thrd_detach F
> -GLIBC_2.28 thrd_exit F
> GLIBC_2.28 thrd_join F
> GLIBC_2.28 tss_create F
> GLIBC_2.28 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index 51cd0e8a86..4ada6e5338 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -2035,6 +2035,7 @@ GLIBC_2.28 renameat2 F
> GLIBC_2.28 statx F
> GLIBC_2.28 thrd_current F
> 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.29 getcpu F
> @@ -2284,6 +2285,7 @@ GLIBC_2.34 pthread_spin_init F
> 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.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 b9a81337d6..20c9082450 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> @@ -70,7 +70,6 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
> GLIBC_2.2.6 __libpthread_version_placeholder F
> GLIBC_2.28 thrd_create F
> GLIBC_2.28 thrd_detach F
> -GLIBC_2.28 thrd_exit F
> GLIBC_2.28 thrd_join F
> GLIBC_2.28 tss_create F
> GLIBC_2.28 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index 1211e370c8..f3a3f9db83 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -2033,6 +2033,7 @@ GLIBC_2.28 renameat2 F
> GLIBC_2.28 statx F
> GLIBC_2.28 thrd_current F
> 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.29 getcpu F
> @@ -2282,6 +2283,7 @@ GLIBC_2.34 pthread_spin_init F
> 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.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 b9a81337d6..20c9082450 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> @@ -70,7 +70,6 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
> GLIBC_2.2.6 __libpthread_version_placeholder F
> GLIBC_2.28 thrd_create F
> GLIBC_2.28 thrd_detach F
> -GLIBC_2.28 thrd_exit F
> GLIBC_2.28 thrd_join F
> GLIBC_2.28 tss_create F
> GLIBC_2.28 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index 293c679204..3790903af4 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -2041,6 +2041,7 @@ GLIBC_2.28 renameat2 F
> GLIBC_2.28 statx F
> GLIBC_2.28 thrd_current F
> 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.29 getcpu F
> @@ -2290,6 +2291,7 @@ GLIBC_2.34 pthread_spin_init F
> 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.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 aa912f46d2..38e5aba36f 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -2036,6 +2036,7 @@ GLIBC_2.28 renameat2 F
> GLIBC_2.28 statx F
> GLIBC_2.28 thrd_current F
> 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.29 getcpu F
> @@ -2284,6 +2285,7 @@ GLIBC_2.34 pthread_spin_init F
> 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.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 d5bb6cf400..d37e1419e5 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -2249,6 +2249,7 @@ GLIBC_2.28 renameat2 F
> GLIBC_2.28 statx F
> GLIBC_2.28 thrd_current F
> 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.29 getcpu F
> @@ -2340,3 +2341,4 @@ GLIBC_2.34 pthread_spin_init F
> 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
> diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> index 4e4b0c70fd..0e33b9f0fa 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> @@ -71,7 +71,6 @@ GLIBC_2.21 sem_unlink F
> GLIBC_2.21 sem_wait F
> GLIBC_2.28 thrd_create F
> GLIBC_2.28 thrd_detach F
> -GLIBC_2.28 thrd_exit F
> GLIBC_2.28 thrd_join F
> GLIBC_2.28 tss_create F
> GLIBC_2.28 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index 18e9526f46..dbd492a3b1 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -2069,6 +2069,7 @@ GLIBC_2.28 renameat2 F
> GLIBC_2.28 statx F
> GLIBC_2.28 thrd_current F
> 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.29 getcpu F
> @@ -2348,6 +2349,7 @@ GLIBC_2.34 pthread_spin_init F
> 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.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 175dfc459a..740ac67c90 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> @@ -71,7 +71,6 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
> GLIBC_2.2.6 __libpthread_version_placeholder F
> GLIBC_2.28 thrd_create F
> GLIBC_2.28 thrd_detach F
> -GLIBC_2.28 thrd_exit F
> GLIBC_2.28 thrd_join F
> GLIBC_2.28 tss_create F
> GLIBC_2.28 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index 5dd0a83d0b..0c82faa201 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -2073,6 +2073,7 @@ GLIBC_2.28 renameat2 F
> GLIBC_2.28 statx F
> GLIBC_2.28 thrd_current F
> 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.29 getcpu F
> @@ -2381,6 +2382,7 @@ GLIBC_2.34 pthread_spin_init F
> 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.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 9703ac0e2f..f479c57024 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -137,6 +137,7 @@ GLIBC_2.28 renameat2 F
> GLIBC_2.28 statx F
> GLIBC_2.28 thrd_current F
> 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.29 getcpu F
> @@ -2202,6 +2203,7 @@ GLIBC_2.34 pthread_spin_init F
> 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.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 e4e52afc9d..2af5309ed9 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> @@ -5,7 +5,6 @@ GLIBC_2.18 pthread_getattr_default_np F
> GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.28 thrd_create F
> GLIBC_2.28 thrd_detach F
> -GLIBC_2.28 thrd_exit F
> GLIBC_2.28 thrd_join F
> GLIBC_2.28 tss_create F
> GLIBC_2.28 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index b55ac71c1b..892e46c976 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -2306,6 +2306,7 @@ GLIBC_2.28 renameat2 F
> GLIBC_2.28 statx F
> GLIBC_2.28 thrd_current F
> 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.29 getcpu F
> @@ -2503,3 +2504,4 @@ GLIBC_2.34 pthread_spin_init F
> 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
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> index d18f1540f8..2e044698b7 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> @@ -71,7 +71,6 @@ GLIBC_2.18 pthread_getattr_default_np F
> GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.28 thrd_create F
> GLIBC_2.28 thrd_detach F
> -GLIBC_2.28 thrd_exit F
> GLIBC_2.28 thrd_join F
> GLIBC_2.28 tss_create F
> GLIBC_2.28 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index f5a3ab9bcd..459edaa125 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -1834,6 +1834,7 @@ GLIBC_2.33 tfind F
> GLIBC_2.33 tgkill F
> GLIBC_2.33 thrd_current F
> GLIBC_2.33 thrd_equal F
> +GLIBC_2.33 thrd_exit F
> GLIBC_2.33 thrd_sleep F
> GLIBC_2.33 thrd_yield F
> GLIBC_2.33 time F
> @@ -2068,3 +2069,4 @@ GLIBC_2.34 pthread_spin_init F
> 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
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> index 25a34d836d..e688a30693 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> @@ -75,7 +75,6 @@ GLIBC_2.33 sem_unlink F
> GLIBC_2.33 sem_wait F
> GLIBC_2.33 thrd_create F
> GLIBC_2.33 thrd_detach F
> -GLIBC_2.33 thrd_exit F
> GLIBC_2.33 thrd_join F
> GLIBC_2.33 tss_create F
> GLIBC_2.33 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index e1ab110de7..17345bbd51 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -2177,6 +2177,7 @@ GLIBC_2.28 renameat2 F
> GLIBC_2.28 statx F
> GLIBC_2.28 thrd_current F
> 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.29 getcpu F
> @@ -2268,3 +2269,4 @@ GLIBC_2.34 pthread_spin_init F
> 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
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> index 70408a1f6b..23cec4e3dc 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> @@ -71,7 +71,6 @@ GLIBC_2.27 sem_unlink F
> GLIBC_2.27 sem_wait F
> GLIBC_2.28 thrd_create F
> GLIBC_2.28 thrd_detach F
> -GLIBC_2.28 thrd_exit F
> GLIBC_2.28 thrd_join F
> GLIBC_2.28 tss_create F
> GLIBC_2.28 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index a20d113936..25d56b5c7d 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -2078,6 +2078,7 @@ GLIBC_2.28 renameat2 F
> GLIBC_2.28 statx F
> GLIBC_2.28 thrd_current F
> 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.29 getcpu F
> @@ -2346,6 +2347,7 @@ GLIBC_2.34 pthread_spin_init F
> 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.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 79db0fcdcb..51d8afb571 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> @@ -72,7 +72,6 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
> GLIBC_2.2.6 __libpthread_version_placeholder F
> GLIBC_2.28 thrd_create F
> GLIBC_2.28 thrd_detach F
> -GLIBC_2.28 thrd_exit F
> GLIBC_2.28 thrd_join F
> GLIBC_2.28 tss_create F
> GLIBC_2.28 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index 8993c14069..950de9cf1e 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -1975,6 +1975,7 @@ GLIBC_2.28 renameat2 F
> GLIBC_2.28 statx F
> GLIBC_2.28 thrd_current F
> 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.29 __fentry__ F
> @@ -2239,6 +2240,7 @@ GLIBC_2.34 pthread_spin_init F
> 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.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 18871ea360..5a19f9d49a 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> @@ -64,7 +64,6 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
> GLIBC_2.2.6 __libpthread_version_placeholder F
> GLIBC_2.28 thrd_create F
> GLIBC_2.28 thrd_detach F
> -GLIBC_2.28 thrd_exit F
> GLIBC_2.28 thrd_join F
> GLIBC_2.28 tss_create F
> GLIBC_2.28 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index 86fb418fe9..a0b7a5cae7 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -1952,6 +1952,7 @@ GLIBC_2.28 renameat2 F
> GLIBC_2.28 statx F
> GLIBC_2.28 thrd_current F
> 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.29 getcpu F
> @@ -2208,6 +2209,7 @@ GLIBC_2.34 pthread_spin_init F
> 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.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 666b409e05..727b654b8e 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> @@ -63,7 +63,6 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
> GLIBC_2.2.6 __libpthread_version_placeholder F
> GLIBC_2.28 thrd_create F
> GLIBC_2.28 thrd_detach F
> -GLIBC_2.28 thrd_exit F
> GLIBC_2.28 thrd_join F
> GLIBC_2.28 tss_create F
> GLIBC_2.28 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index e591103913..5eaa888765 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -1952,6 +1952,7 @@ GLIBC_2.28 renameat2 F
> GLIBC_2.28 statx F
> GLIBC_2.28 thrd_current F
> 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.29 getcpu F
> @@ -2205,6 +2206,7 @@ GLIBC_2.34 pthread_spin_init F
> 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.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 666b409e05..727b654b8e 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> @@ -63,7 +63,6 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
> GLIBC_2.2.6 __libpthread_version_placeholder F
> GLIBC_2.28 thrd_create F
> GLIBC_2.28 thrd_detach F
> -GLIBC_2.28 thrd_exit F
> GLIBC_2.28 thrd_join F
> GLIBC_2.28 tss_create F
> GLIBC_2.28 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index 62df52de0b..37ace12a89 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -2072,6 +2072,7 @@ GLIBC_2.28 renameat2 F
> GLIBC_2.28 statx F
> GLIBC_2.28 thrd_current F
> 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.29 getcpu F
> @@ -2337,6 +2338,7 @@ GLIBC_2.34 pthread_spin_init F
> 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.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 0357adc360..69716922ba 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> @@ -71,7 +71,6 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
> GLIBC_2.2.6 __libpthread_version_placeholder F
> GLIBC_2.28 thrd_create F
> GLIBC_2.28 thrd_detach F
> -GLIBC_2.28 thrd_exit F
> GLIBC_2.28 thrd_join F
> GLIBC_2.28 tss_create F
> GLIBC_2.28 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index 440a75d481..e7ff31b657 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -2005,6 +2005,7 @@ GLIBC_2.28 renameat2 F
> GLIBC_2.28 statx F
> GLIBC_2.28 thrd_current F
> 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.29 getcpu F
> @@ -2256,6 +2257,7 @@ GLIBC_2.34 pthread_spin_init F
> 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.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 7b38318523..93c85d7a2c 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> @@ -63,7 +63,6 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
> GLIBC_2.2.6 __libpthread_version_placeholder F
> GLIBC_2.28 thrd_create F
> GLIBC_2.28 thrd_detach F
> -GLIBC_2.28 thrd_exit F
> GLIBC_2.28 thrd_join F
> GLIBC_2.28 tss_create F
> GLIBC_2.28 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index 001bfbe8fd..ab2445528e 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -1964,6 +1964,7 @@ GLIBC_2.28 renameat2 F
> GLIBC_2.28 statx F
> GLIBC_2.28 thrd_current F
> 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.29 getcpu F
> @@ -2217,6 +2218,7 @@ GLIBC_2.34 pthread_spin_init F
> 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.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 2d147416d8..aaa813da94 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> @@ -62,7 +62,6 @@ GLIBC_2.2.5 sem_wait F
> GLIBC_2.2.6 __libpthread_version_placeholder F
> GLIBC_2.28 thrd_create F
> GLIBC_2.28 thrd_detach F
> -GLIBC_2.28 thrd_exit F
> GLIBC_2.28 thrd_join F
> GLIBC_2.28 tss_create F
> GLIBC_2.28 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index 46c26caced..1c68c6ee85 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -2229,6 +2229,7 @@ GLIBC_2.28 renameat2 F
> GLIBC_2.28 statx F
> GLIBC_2.28 thrd_current F
> 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.29 getcpu F
> @@ -2322,3 +2323,4 @@ GLIBC_2.34 pthread_spin_init F
> 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
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> index 3ab8e0dca9..916b4ef95c 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> @@ -71,7 +71,6 @@ GLIBC_2.18 pthread_getattr_default_np F
> GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.28 thrd_create F
> GLIBC_2.28 thrd_detach F
> -GLIBC_2.28 thrd_exit F
> GLIBC_2.28 thrd_join F
> GLIBC_2.28 tss_create F
> GLIBC_2.28 tss_delete F
>
@@ -141,6 +141,7 @@ libc {
mtx_unlock;
thrd_current;
thrd_equal;
+ thrd_exit;
thrd_sleep;
thrd_yield;
}
@@ -210,6 +211,7 @@ libc {
pthread_spin_lock;
pthread_spin_trylock;
pthread_spin_unlock;
+ thrd_exit;
}
GLIBC_PRIVATE {
__futex_abstimed_wait64;
@@ -239,7 +241,6 @@ libc {
__pthread_cleanup_push;
__pthread_cleanup_upto;
__pthread_current_priority;
- __pthread_exit;
__pthread_force_elision;
__pthread_getattr_default_np;
__pthread_key_delete;
@@ -389,7 +390,6 @@ libpthread {
GLIBC_2.28 {
thrd_create;
thrd_detach;
- thrd_exit;
thrd_join;
tss_create;
tss_delete;
@@ -31,7 +31,7 @@ headers += threads.h
routines += thrd_current thrd_equal thrd_sleep thrd_yield
-libpthread-routines += thrd_create thrd_detach thrd_exit thrd_join \
+libpthread-routines += thrd_create thrd_detach thrd_join \
tss_create tss_delete tss_get tss_set
$(libpthread-routines-var) += \
@@ -48,6 +48,7 @@ $(libpthread-routines-var) += \
mtx_timedlock \
mtx_trylock \
mtx_unlock \
+ thrd_exit \
tests += tst-cnd-basic tst-mtx-trylock tst-cnd-broadcast \
tst-cnd-timedwait tst-thrd-detach tst-mtx-basic tst-thrd-sleep \
@@ -16,10 +16,19 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
+#include <shlib-compat.h>
#include "thrd_priv.h"
_Noreturn void
-thrd_exit (int res)
+__thrd_exit (int res)
{
__pthread_exit ((void*)(uintptr_t) res);
}
+#if PTHREAD_IN_LIBC
+versioned_symbol (libc, __thrd_exit, thrd_exit, GLIBC_2_34);
+# if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_28, GLIBC_2_34)
+compat_symbol (libpthread, __thrd_exit, thrd_exit, GLIBC_2_28);
+# endif
+#else /* !PTHREAD_IN_LIBC */
+strong_alias (__thrd_exit, thrd_exit)
+#endif
@@ -2216,6 +2216,7 @@ GLIBC_2.28 renameat2 F
GLIBC_2.28 statx F
GLIBC_2.28 thrd_current F
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.29 getcpu F
@@ -2307,3 +2308,4 @@ GLIBC_2.34 pthread_spin_init F
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
@@ -71,7 +71,6 @@ GLIBC_2.18 pthread_getattr_default_np F
GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.28 thrd_create F
GLIBC_2.28 thrd_detach F
-GLIBC_2.28 thrd_exit F
GLIBC_2.28 thrd_join F
GLIBC_2.28 tss_create F
GLIBC_2.28 tss_delete F
@@ -2109,6 +2109,7 @@ GLIBC_2.28 renameat2 F
GLIBC_2.28 statx F
GLIBC_2.28 thrd_current F
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.29 getcpu F
@@ -2388,6 +2389,7 @@ GLIBC_2.34 pthread_spin_init F
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.4 _IO_fprintf F
GLIBC_2.4 _IO_printf F
GLIBC_2.4 _IO_sprintf F
@@ -71,7 +71,6 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.28 thrd_create F
GLIBC_2.28 thrd_detach F
-GLIBC_2.28 thrd_exit F
GLIBC_2.28 thrd_join F
GLIBC_2.28 tss_create F
GLIBC_2.28 tss_delete F
@@ -1824,6 +1824,7 @@ GLIBC_2.32 tfind F
GLIBC_2.32 tgkill F
GLIBC_2.32 thrd_current F
GLIBC_2.32 thrd_equal F
+GLIBC_2.32 thrd_exit F
GLIBC_2.32 thrd_sleep F
GLIBC_2.32 thrd_yield F
GLIBC_2.32 time F
@@ -2066,3 +2067,4 @@ GLIBC_2.34 pthread_spin_init F
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
@@ -75,7 +75,6 @@ GLIBC_2.32 sem_unlink F
GLIBC_2.32 sem_wait F
GLIBC_2.32 thrd_create F
GLIBC_2.32 thrd_detach F
-GLIBC_2.32 thrd_exit F
GLIBC_2.32 thrd_join F
GLIBC_2.32 tss_create F
GLIBC_2.32 tss_delete F
@@ -137,6 +137,7 @@ GLIBC_2.28 renameat2 F
GLIBC_2.28 statx F
GLIBC_2.28 thrd_current F
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.29 getcpu F
@@ -231,6 +232,7 @@ GLIBC_2.34 pthread_spin_init F
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.4 _Exit F
GLIBC_2.4 _IO_2_1_stderr_ D 0xa0
GLIBC_2.4 _IO_2_1_stdin_ D 0xa0
@@ -5,7 +5,6 @@ GLIBC_2.18 pthread_getattr_default_np F
GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.28 thrd_create F
GLIBC_2.28 thrd_detach F
-GLIBC_2.28 thrd_exit F
GLIBC_2.28 thrd_join F
GLIBC_2.28 tss_create F
GLIBC_2.28 tss_delete F
@@ -137,6 +137,7 @@ GLIBC_2.28 renameat2 F
GLIBC_2.28 statx F
GLIBC_2.28 thrd_current F
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.29 getcpu F
@@ -228,6 +229,7 @@ GLIBC_2.34 pthread_spin_init F
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.4 _Exit F
GLIBC_2.4 _IO_2_1_stderr_ D 0xa0
GLIBC_2.4 _IO_2_1_stdin_ D 0xa0
@@ -5,7 +5,6 @@ GLIBC_2.18 pthread_getattr_default_np F
GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.28 thrd_create F
GLIBC_2.28 thrd_detach F
-GLIBC_2.28 thrd_exit F
GLIBC_2.28 thrd_join F
GLIBC_2.28 tss_create F
GLIBC_2.28 tss_delete F
@@ -1918,6 +1918,7 @@ GLIBC_2.29 textdomain F
GLIBC_2.29 tfind F
GLIBC_2.29 thrd_current F
GLIBC_2.29 thrd_equal F
+GLIBC_2.29 thrd_exit F
GLIBC_2.29 thrd_sleep F
GLIBC_2.29 thrd_yield F
GLIBC_2.29 time F
@@ -2250,3 +2251,4 @@ GLIBC_2.34 pthread_spin_init F
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
@@ -71,7 +71,6 @@ GLIBC_2.29 sem_unlink F
GLIBC_2.29 sem_wait F
GLIBC_2.29 thrd_create F
GLIBC_2.29 thrd_detach F
-GLIBC_2.29 thrd_exit F
GLIBC_2.29 thrd_join F
GLIBC_2.29 tss_create F
GLIBC_2.29 tss_delete F
@@ -1948,6 +1948,7 @@ GLIBC_2.28 renameat2 F
GLIBC_2.28 statx F
GLIBC_2.28 thrd_current F
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.29 getcpu F
@@ -2201,6 +2202,7 @@ GLIBC_2.34 pthread_spin_init F
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.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
GLIBC_2.4 __fgets_unlocked_chk F
@@ -63,7 +63,6 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.28 thrd_create F
GLIBC_2.28 thrd_detach F
-GLIBC_2.28 thrd_exit F
GLIBC_2.28 thrd_join F
GLIBC_2.28 tss_create F
GLIBC_2.28 tss_delete F
@@ -2122,6 +2122,7 @@ GLIBC_2.28 renameat2 F
GLIBC_2.28 statx F
GLIBC_2.28 thrd_current F
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.29 getcpu F
@@ -2378,6 +2379,7 @@ GLIBC_2.34 pthread_spin_init F
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.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
GLIBC_2.4 __fgets_unlocked_chk F
@@ -71,7 +71,6 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.28 thrd_create F
GLIBC_2.28 thrd_detach F
-GLIBC_2.28 thrd_exit F
GLIBC_2.28 thrd_join F
GLIBC_2.28 tss_create F
GLIBC_2.28 tss_delete F
@@ -1983,6 +1983,7 @@ GLIBC_2.28 renameat2 F
GLIBC_2.28 statx F
GLIBC_2.28 thrd_current F
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.29 getcpu F
@@ -2235,6 +2236,7 @@ GLIBC_2.34 pthread_spin_init F
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.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
GLIBC_2.4 __fgets_unlocked_chk F
@@ -63,7 +63,6 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.28 thrd_create F
GLIBC_2.28 thrd_detach F
-GLIBC_2.28 thrd_exit F
GLIBC_2.28 thrd_join F
GLIBC_2.28 tss_create F
GLIBC_2.28 tss_delete F
@@ -138,6 +138,7 @@ GLIBC_2.28 renameat2 F
GLIBC_2.28 statx F
GLIBC_2.28 thrd_current F
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.29 getcpu F
@@ -232,6 +233,7 @@ GLIBC_2.34 pthread_spin_init F
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.4 _Exit F
GLIBC_2.4 _IO_2_1_stderr_ D 0x98
GLIBC_2.4 _IO_2_1_stdin_ D 0x98
@@ -5,7 +5,6 @@ GLIBC_2.18 pthread_getattr_default_np F
GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.28 thrd_create F
GLIBC_2.28 thrd_detach F
-GLIBC_2.28 thrd_exit F
GLIBC_2.28 thrd_join F
GLIBC_2.28 tss_create F
GLIBC_2.28 tss_delete F
@@ -2065,6 +2065,7 @@ GLIBC_2.28 renameat2 F
GLIBC_2.28 statx F
GLIBC_2.28 thrd_current F
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.29 getcpu F
@@ -2321,6 +2322,7 @@ GLIBC_2.34 pthread_spin_init F
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.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
GLIBC_2.4 __fgets_unlocked_chk F
@@ -71,7 +71,6 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.28 thrd_create F
GLIBC_2.28 thrd_detach F
-GLIBC_2.28 thrd_exit F
GLIBC_2.28 thrd_join F
GLIBC_2.28 tss_create F
GLIBC_2.28 tss_delete F
@@ -2207,6 +2207,7 @@ GLIBC_2.28 renameat2 F
GLIBC_2.28 statx F
GLIBC_2.28 thrd_current F
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.29 getcpu F
@@ -2301,3 +2302,4 @@ GLIBC_2.34 pthread_spin_init F
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
@@ -71,7 +71,6 @@ GLIBC_2.18 sem_unlink F
GLIBC_2.18 sem_wait F
GLIBC_2.28 thrd_create F
GLIBC_2.28 thrd_detach F
-GLIBC_2.28 thrd_exit F
GLIBC_2.28 thrd_join F
GLIBC_2.28 tss_create F
GLIBC_2.28 tss_delete F
@@ -2207,6 +2207,7 @@ GLIBC_2.28 renameat2 F
GLIBC_2.28 statx F
GLIBC_2.28 thrd_current F
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.29 getcpu F
@@ -2298,3 +2299,4 @@ GLIBC_2.34 pthread_spin_init F
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
@@ -71,7 +71,6 @@ GLIBC_2.18 sem_unlink F
GLIBC_2.18 sem_wait F
GLIBC_2.28 thrd_create F
GLIBC_2.28 thrd_detach F
-GLIBC_2.28 thrd_exit F
GLIBC_2.28 thrd_join F
GLIBC_2.28 tss_create F
GLIBC_2.28 tss_delete F
@@ -2035,6 +2035,7 @@ GLIBC_2.28 renameat2 F
GLIBC_2.28 statx F
GLIBC_2.28 thrd_current F
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.29 getcpu F
@@ -2284,6 +2285,7 @@ GLIBC_2.34 pthread_spin_init F
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.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
GLIBC_2.4 __fgets_unlocked_chk F
@@ -70,7 +70,6 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.28 thrd_create F
GLIBC_2.28 thrd_detach F
-GLIBC_2.28 thrd_exit F
GLIBC_2.28 thrd_join F
GLIBC_2.28 tss_create F
GLIBC_2.28 tss_delete F
@@ -2033,6 +2033,7 @@ GLIBC_2.28 renameat2 F
GLIBC_2.28 statx F
GLIBC_2.28 thrd_current F
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.29 getcpu F
@@ -2282,6 +2283,7 @@ GLIBC_2.34 pthread_spin_init F
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.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
GLIBC_2.4 __fgets_unlocked_chk F
@@ -70,7 +70,6 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.28 thrd_create F
GLIBC_2.28 thrd_detach F
-GLIBC_2.28 thrd_exit F
GLIBC_2.28 thrd_join F
GLIBC_2.28 tss_create F
GLIBC_2.28 tss_delete F
@@ -2041,6 +2041,7 @@ GLIBC_2.28 renameat2 F
GLIBC_2.28 statx F
GLIBC_2.28 thrd_current F
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.29 getcpu F
@@ -2290,6 +2291,7 @@ GLIBC_2.34 pthread_spin_init F
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.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
GLIBC_2.4 __fgets_unlocked_chk F
@@ -2036,6 +2036,7 @@ GLIBC_2.28 renameat2 F
GLIBC_2.28 statx F
GLIBC_2.28 thrd_current F
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.29 getcpu F
@@ -2284,6 +2285,7 @@ GLIBC_2.34 pthread_spin_init F
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.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
GLIBC_2.4 __fgets_unlocked_chk F
@@ -2249,6 +2249,7 @@ GLIBC_2.28 renameat2 F
GLIBC_2.28 statx F
GLIBC_2.28 thrd_current F
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.29 getcpu F
@@ -2340,3 +2341,4 @@ GLIBC_2.34 pthread_spin_init F
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
@@ -71,7 +71,6 @@ GLIBC_2.21 sem_unlink F
GLIBC_2.21 sem_wait F
GLIBC_2.28 thrd_create F
GLIBC_2.28 thrd_detach F
-GLIBC_2.28 thrd_exit F
GLIBC_2.28 thrd_join F
GLIBC_2.28 tss_create F
GLIBC_2.28 tss_delete F
@@ -2069,6 +2069,7 @@ GLIBC_2.28 renameat2 F
GLIBC_2.28 statx F
GLIBC_2.28 thrd_current F
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.29 getcpu F
@@ -2348,6 +2349,7 @@ GLIBC_2.34 pthread_spin_init F
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.4 _IO_fprintf F
GLIBC_2.4 _IO_printf F
GLIBC_2.4 _IO_sprintf F
@@ -71,7 +71,6 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.28 thrd_create F
GLIBC_2.28 thrd_detach F
-GLIBC_2.28 thrd_exit F
GLIBC_2.28 thrd_join F
GLIBC_2.28 tss_create F
GLIBC_2.28 tss_delete F
@@ -2073,6 +2073,7 @@ GLIBC_2.28 renameat2 F
GLIBC_2.28 statx F
GLIBC_2.28 thrd_current F
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.29 getcpu F
@@ -2381,6 +2382,7 @@ GLIBC_2.34 pthread_spin_init F
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.4 _IO_fprintf F
GLIBC_2.4 _IO_printf F
GLIBC_2.4 _IO_sprintf F
@@ -137,6 +137,7 @@ GLIBC_2.28 renameat2 F
GLIBC_2.28 statx F
GLIBC_2.28 thrd_current F
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.29 getcpu F
@@ -2202,6 +2203,7 @@ GLIBC_2.34 pthread_spin_init F
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.4 _IO_fprintf F
GLIBC_2.4 _IO_printf F
GLIBC_2.4 _IO_sprintf F
@@ -5,7 +5,6 @@ GLIBC_2.18 pthread_getattr_default_np F
GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.28 thrd_create F
GLIBC_2.28 thrd_detach F
-GLIBC_2.28 thrd_exit F
GLIBC_2.28 thrd_join F
GLIBC_2.28 tss_create F
GLIBC_2.28 tss_delete F
@@ -2306,6 +2306,7 @@ GLIBC_2.28 renameat2 F
GLIBC_2.28 statx F
GLIBC_2.28 thrd_current F
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.29 getcpu F
@@ -2503,3 +2504,4 @@ GLIBC_2.34 pthread_spin_init F
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
@@ -71,7 +71,6 @@ GLIBC_2.18 pthread_getattr_default_np F
GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.28 thrd_create F
GLIBC_2.28 thrd_detach F
-GLIBC_2.28 thrd_exit F
GLIBC_2.28 thrd_join F
GLIBC_2.28 tss_create F
GLIBC_2.28 tss_delete F
@@ -1834,6 +1834,7 @@ GLIBC_2.33 tfind F
GLIBC_2.33 tgkill F
GLIBC_2.33 thrd_current F
GLIBC_2.33 thrd_equal F
+GLIBC_2.33 thrd_exit F
GLIBC_2.33 thrd_sleep F
GLIBC_2.33 thrd_yield F
GLIBC_2.33 time F
@@ -2068,3 +2069,4 @@ GLIBC_2.34 pthread_spin_init F
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
@@ -75,7 +75,6 @@ GLIBC_2.33 sem_unlink F
GLIBC_2.33 sem_wait F
GLIBC_2.33 thrd_create F
GLIBC_2.33 thrd_detach F
-GLIBC_2.33 thrd_exit F
GLIBC_2.33 thrd_join F
GLIBC_2.33 tss_create F
GLIBC_2.33 tss_delete F
@@ -2177,6 +2177,7 @@ GLIBC_2.28 renameat2 F
GLIBC_2.28 statx F
GLIBC_2.28 thrd_current F
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.29 getcpu F
@@ -2268,3 +2269,4 @@ GLIBC_2.34 pthread_spin_init F
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
@@ -71,7 +71,6 @@ GLIBC_2.27 sem_unlink F
GLIBC_2.27 sem_wait F
GLIBC_2.28 thrd_create F
GLIBC_2.28 thrd_detach F
-GLIBC_2.28 thrd_exit F
GLIBC_2.28 thrd_join F
GLIBC_2.28 tss_create F
GLIBC_2.28 tss_delete F
@@ -2078,6 +2078,7 @@ GLIBC_2.28 renameat2 F
GLIBC_2.28 statx F
GLIBC_2.28 thrd_current F
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.29 getcpu F
@@ -2346,6 +2347,7 @@ GLIBC_2.34 pthread_spin_init F
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.4 _IO_fprintf F
GLIBC_2.4 _IO_printf F
GLIBC_2.4 _IO_sprintf F
@@ -72,7 +72,6 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.28 thrd_create F
GLIBC_2.28 thrd_detach F
-GLIBC_2.28 thrd_exit F
GLIBC_2.28 thrd_join F
GLIBC_2.28 tss_create F
GLIBC_2.28 tss_delete F
@@ -1975,6 +1975,7 @@ GLIBC_2.28 renameat2 F
GLIBC_2.28 statx F
GLIBC_2.28 thrd_current F
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.29 __fentry__ F
@@ -2239,6 +2240,7 @@ GLIBC_2.34 pthread_spin_init F
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.4 _IO_fprintf F
GLIBC_2.4 _IO_printf F
GLIBC_2.4 _IO_sprintf F
@@ -64,7 +64,6 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.28 thrd_create F
GLIBC_2.28 thrd_detach F
-GLIBC_2.28 thrd_exit F
GLIBC_2.28 thrd_join F
GLIBC_2.28 tss_create F
GLIBC_2.28 tss_delete F
@@ -1952,6 +1952,7 @@ GLIBC_2.28 renameat2 F
GLIBC_2.28 statx F
GLIBC_2.28 thrd_current F
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.29 getcpu F
@@ -2208,6 +2209,7 @@ GLIBC_2.34 pthread_spin_init F
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.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
GLIBC_2.4 __fgets_unlocked_chk F
@@ -63,7 +63,6 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.28 thrd_create F
GLIBC_2.28 thrd_detach F
-GLIBC_2.28 thrd_exit F
GLIBC_2.28 thrd_join F
GLIBC_2.28 tss_create F
GLIBC_2.28 tss_delete F
@@ -1952,6 +1952,7 @@ GLIBC_2.28 renameat2 F
GLIBC_2.28 statx F
GLIBC_2.28 thrd_current F
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.29 getcpu F
@@ -2205,6 +2206,7 @@ GLIBC_2.34 pthread_spin_init F
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.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
GLIBC_2.4 __fgets_unlocked_chk F
@@ -63,7 +63,6 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.28 thrd_create F
GLIBC_2.28 thrd_detach F
-GLIBC_2.28 thrd_exit F
GLIBC_2.28 thrd_join F
GLIBC_2.28 tss_create F
GLIBC_2.28 tss_delete F
@@ -2072,6 +2072,7 @@ GLIBC_2.28 renameat2 F
GLIBC_2.28 statx F
GLIBC_2.28 thrd_current F
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.29 getcpu F
@@ -2337,6 +2338,7 @@ GLIBC_2.34 pthread_spin_init F
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.4 _IO_fprintf F
GLIBC_2.4 _IO_printf F
GLIBC_2.4 _IO_sprintf F
@@ -71,7 +71,6 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.28 thrd_create F
GLIBC_2.28 thrd_detach F
-GLIBC_2.28 thrd_exit F
GLIBC_2.28 thrd_join F
GLIBC_2.28 tss_create F
GLIBC_2.28 tss_delete F
@@ -2005,6 +2005,7 @@ GLIBC_2.28 renameat2 F
GLIBC_2.28 statx F
GLIBC_2.28 thrd_current F
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.29 getcpu F
@@ -2256,6 +2257,7 @@ GLIBC_2.34 pthread_spin_init F
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.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
GLIBC_2.4 __fgets_unlocked_chk F
@@ -63,7 +63,6 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.28 thrd_create F
GLIBC_2.28 thrd_detach F
-GLIBC_2.28 thrd_exit F
GLIBC_2.28 thrd_join F
GLIBC_2.28 tss_create F
GLIBC_2.28 tss_delete F
@@ -1964,6 +1964,7 @@ GLIBC_2.28 renameat2 F
GLIBC_2.28 statx F
GLIBC_2.28 thrd_current F
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.29 getcpu F
@@ -2217,6 +2218,7 @@ GLIBC_2.34 pthread_spin_init F
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.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
GLIBC_2.4 __fgets_unlocked_chk F
@@ -62,7 +62,6 @@ GLIBC_2.2.5 sem_wait F
GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.28 thrd_create F
GLIBC_2.28 thrd_detach F
-GLIBC_2.28 thrd_exit F
GLIBC_2.28 thrd_join F
GLIBC_2.28 tss_create F
GLIBC_2.28 tss_delete F
@@ -2229,6 +2229,7 @@ GLIBC_2.28 renameat2 F
GLIBC_2.28 statx F
GLIBC_2.28 thrd_current F
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.29 getcpu F
@@ -2322,3 +2323,4 @@ GLIBC_2.34 pthread_spin_init F
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
@@ -71,7 +71,6 @@ GLIBC_2.18 pthread_getattr_default_np F
GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.28 thrd_create F
GLIBC_2.28 thrd_detach F
-GLIBC_2.28 thrd_exit F
GLIBC_2.28 thrd_join F
GLIBC_2.28 tss_create F
GLIBC_2.28 tss_delete F