diff mbox series

[7/8] nptl: Move pthread_detach, thrd_detach into libc

Message ID f3092c9adabc6086b1db18aebc2baf5e23fb880a.1620650045.git.fweimer@redhat.com
State New
Headers show
Series nptl: Move pthread_detach and pthread_join into libc | expand

Commit Message

Florian Weimer May 10, 2021, 12:38 p.m. UTC
The symbols were moved using scripts/move-symbol-to-libc.py.
---
 nptl/Makefile                                      |  2 +-
 nptl/Versions                                      |  6 ++++--
 nptl/pthreadP.h                                    |  1 +
 nptl/pthread_detach.c                              | 14 +++++++++++---
 sysdeps/pthread/Makefile                           |  3 ++-
 sysdeps/pthread/thrd_detach.c                      | 11 ++++++++++-
 sysdeps/unix/sysv/linux/aarch64/libc.abilist       |  4 ++++
 sysdeps/unix/sysv/linux/aarch64/libpthread.abilist |  2 --
 sysdeps/unix/sysv/linux/alpha/libc.abilist         |  4 ++++
 sysdeps/unix/sysv/linux/alpha/libpthread.abilist   |  2 --
 sysdeps/unix/sysv/linux/arc/libc.abilist           |  4 ++++
 sysdeps/unix/sysv/linux/arc/libpthread.abilist     |  2 --
 sysdeps/unix/sysv/linux/arm/be/libc.abilist        |  4 ++++
 sysdeps/unix/sysv/linux/arm/be/libpthread.abilist  |  2 --
 sysdeps/unix/sysv/linux/arm/le/libc.abilist        |  4 ++++
 sysdeps/unix/sysv/linux/arm/le/libpthread.abilist  |  2 --
 sysdeps/unix/sysv/linux/csky/libc.abilist          |  4 ++++
 sysdeps/unix/sysv/linux/csky/libpthread.abilist    |  2 --
 sysdeps/unix/sysv/linux/hppa/libc.abilist          |  4 ++++
 sysdeps/unix/sysv/linux/hppa/libpthread.abilist    |  2 --
 sysdeps/unix/sysv/linux/i386/libc.abilist          |  4 ++++
 sysdeps/unix/sysv/linux/i386/libpthread.abilist    |  2 --
 sysdeps/unix/sysv/linux/ia64/libc.abilist          |  4 ++++
 sysdeps/unix/sysv/linux/ia64/libpthread.abilist    |  2 --
 sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist |  4 ++++
 .../sysv/linux/m68k/coldfire/libpthread.abilist    |  2 --
 sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist   |  4 ++++
 .../unix/sysv/linux/m68k/m680x0/libpthread.abilist |  2 --
 sysdeps/unix/sysv/linux/microblaze/be/libc.abilist |  4 ++++
 .../sysv/linux/microblaze/be/libpthread.abilist    |  2 --
 sysdeps/unix/sysv/linux/microblaze/le/libc.abilist |  4 ++++
 .../sysv/linux/microblaze/le/libpthread.abilist    |  2 --
 .../unix/sysv/linux/mips/mips32/fpu/libc.abilist   |  4 ++++
 .../unix/sysv/linux/mips/mips32/libpthread.abilist |  2 --
 .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist |  4 ++++
 .../unix/sysv/linux/mips/mips64/libpthread.abilist |  2 --
 .../unix/sysv/linux/mips/mips64/n32/libc.abilist   |  4 ++++
 .../unix/sysv/linux/mips/mips64/n64/libc.abilist   |  4 ++++
 sysdeps/unix/sysv/linux/nios2/libc.abilist         |  4 ++++
 sysdeps/unix/sysv/linux/nios2/libpthread.abilist   |  2 --
 .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist  |  4 ++++
 .../linux/powerpc/powerpc32/libpthread.abilist     |  2 --
 .../linux/powerpc/powerpc32/nofpu/libc.abilist     |  4 ++++
 .../sysv/linux/powerpc/powerpc64/be/libc.abilist   |  4 ++++
 .../linux/powerpc/powerpc64/be/libpthread.abilist  |  2 --
 .../sysv/linux/powerpc/powerpc64/le/libc.abilist   |  4 ++++
 .../linux/powerpc/powerpc64/le/libpthread.abilist  |  2 --
 sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist    |  4 ++++
 .../unix/sysv/linux/riscv/rv32/libpthread.abilist  |  2 --
 sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist    |  4 ++++
 .../unix/sysv/linux/riscv/rv64/libpthread.abilist  |  2 --
 sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist  |  4 ++++
 .../sysv/linux/s390/s390-32/libpthread.abilist     |  2 --
 sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist  |  4 ++++
 .../sysv/linux/s390/s390-64/libpthread.abilist     |  2 --
 sysdeps/unix/sysv/linux/sh/be/libc.abilist         |  4 ++++
 sysdeps/unix/sysv/linux/sh/be/libpthread.abilist   |  2 --
 sysdeps/unix/sysv/linux/sh/le/libc.abilist         |  4 ++++
 sysdeps/unix/sysv/linux/sh/le/libpthread.abilist   |  2 --
 sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist |  4 ++++
 .../sysv/linux/sparc/sparc32/libpthread.abilist    |  2 --
 sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist |  4 ++++
 .../sysv/linux/sparc/sparc64/libpthread.abilist    |  2 --
 sysdeps/unix/sysv/linux/x86_64/64/libc.abilist     |  4 ++++
 .../unix/sysv/linux/x86_64/64/libpthread.abilist   |  2 --
 sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist    |  4 ++++
 .../unix/sysv/linux/x86_64/x32/libpthread.abilist  |  2 --
 67 files changed, 157 insertions(+), 66 deletions(-)

Comments

Adhemerval Zanella Netto May 10, 2021, 4:56 p.m. UTC | #1
On 10/05/2021 09:38, Florian Weimer via Libc-alpha wrote:
> The symbols were moved using scripts/move-symbol-to-libc.py.

LGTM.

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

> ---
>  nptl/Makefile                                      |  2 +-
>  nptl/Versions                                      |  6 ++++--
>  nptl/pthreadP.h                                    |  1 +
>  nptl/pthread_detach.c                              | 14 +++++++++++---
>  sysdeps/pthread/Makefile                           |  3 ++-
>  sysdeps/pthread/thrd_detach.c                      | 11 ++++++++++-
>  sysdeps/unix/sysv/linux/aarch64/libc.abilist       |  4 ++++
>  sysdeps/unix/sysv/linux/aarch64/libpthread.abilist |  2 --
>  sysdeps/unix/sysv/linux/alpha/libc.abilist         |  4 ++++
>  sysdeps/unix/sysv/linux/alpha/libpthread.abilist   |  2 --
>  sysdeps/unix/sysv/linux/arc/libc.abilist           |  4 ++++
>  sysdeps/unix/sysv/linux/arc/libpthread.abilist     |  2 --
>  sysdeps/unix/sysv/linux/arm/be/libc.abilist        |  4 ++++
>  sysdeps/unix/sysv/linux/arm/be/libpthread.abilist  |  2 --
>  sysdeps/unix/sysv/linux/arm/le/libc.abilist        |  4 ++++
>  sysdeps/unix/sysv/linux/arm/le/libpthread.abilist  |  2 --
>  sysdeps/unix/sysv/linux/csky/libc.abilist          |  4 ++++
>  sysdeps/unix/sysv/linux/csky/libpthread.abilist    |  2 --
>  sysdeps/unix/sysv/linux/hppa/libc.abilist          |  4 ++++
>  sysdeps/unix/sysv/linux/hppa/libpthread.abilist    |  2 --
>  sysdeps/unix/sysv/linux/i386/libc.abilist          |  4 ++++
>  sysdeps/unix/sysv/linux/i386/libpthread.abilist    |  2 --
>  sysdeps/unix/sysv/linux/ia64/libc.abilist          |  4 ++++
>  sysdeps/unix/sysv/linux/ia64/libpthread.abilist    |  2 --
>  sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist |  4 ++++
>  .../sysv/linux/m68k/coldfire/libpthread.abilist    |  2 --
>  sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist   |  4 ++++
>  .../unix/sysv/linux/m68k/m680x0/libpthread.abilist |  2 --
>  sysdeps/unix/sysv/linux/microblaze/be/libc.abilist |  4 ++++
>  .../sysv/linux/microblaze/be/libpthread.abilist    |  2 --
>  sysdeps/unix/sysv/linux/microblaze/le/libc.abilist |  4 ++++
>  .../sysv/linux/microblaze/le/libpthread.abilist    |  2 --
>  .../unix/sysv/linux/mips/mips32/fpu/libc.abilist   |  4 ++++
>  .../unix/sysv/linux/mips/mips32/libpthread.abilist |  2 --
>  .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist |  4 ++++
>  .../unix/sysv/linux/mips/mips64/libpthread.abilist |  2 --
>  .../unix/sysv/linux/mips/mips64/n32/libc.abilist   |  4 ++++
>  .../unix/sysv/linux/mips/mips64/n64/libc.abilist   |  4 ++++
>  sysdeps/unix/sysv/linux/nios2/libc.abilist         |  4 ++++
>  sysdeps/unix/sysv/linux/nios2/libpthread.abilist   |  2 --
>  .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist  |  4 ++++
>  .../linux/powerpc/powerpc32/libpthread.abilist     |  2 --
>  .../linux/powerpc/powerpc32/nofpu/libc.abilist     |  4 ++++
>  .../sysv/linux/powerpc/powerpc64/be/libc.abilist   |  4 ++++
>  .../linux/powerpc/powerpc64/be/libpthread.abilist  |  2 --
>  .../sysv/linux/powerpc/powerpc64/le/libc.abilist   |  4 ++++
>  .../linux/powerpc/powerpc64/le/libpthread.abilist  |  2 --
>  sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist    |  4 ++++
>  .../unix/sysv/linux/riscv/rv32/libpthread.abilist  |  2 --
>  sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist    |  4 ++++
>  .../unix/sysv/linux/riscv/rv64/libpthread.abilist  |  2 --
>  sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist  |  4 ++++
>  .../sysv/linux/s390/s390-32/libpthread.abilist     |  2 --
>  sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist  |  4 ++++
>  .../sysv/linux/s390/s390-64/libpthread.abilist     |  2 --
>  sysdeps/unix/sysv/linux/sh/be/libc.abilist         |  4 ++++
>  sysdeps/unix/sysv/linux/sh/be/libpthread.abilist   |  2 --
>  sysdeps/unix/sysv/linux/sh/le/libc.abilist         |  4 ++++
>  sysdeps/unix/sysv/linux/sh/le/libpthread.abilist   |  2 --
>  sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist |  4 ++++
>  .../sysv/linux/sparc/sparc32/libpthread.abilist    |  2 --
>  sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist |  4 ++++
>  .../sysv/linux/sparc/sparc64/libpthread.abilist    |  2 --
>  sysdeps/unix/sysv/linux/x86_64/64/libc.abilist     |  4 ++++
>  .../unix/sysv/linux/x86_64/64/libpthread.abilist   |  2 --
>  sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist    |  4 ++++
>  .../unix/sysv/linux/x86_64/x32/libpthread.abilist  |  2 --
>  67 files changed, 157 insertions(+), 66 deletions(-)
> 
> diff --git a/nptl/Makefile b/nptl/Makefile
> index 82dc6f466d..3ef4cb966b 100644
> --- a/nptl/Makefile
> +++ b/nptl/Makefile
> @@ -95,6 +95,7 @@ routines = \
>    pthread_condattr_init \
>    pthread_condattr_setclock \
>    pthread_condattr_setpshared \
> +  pthread_detach \
>    pthread_equal \
>    pthread_exit \
>    pthread_getaffinity \
> @@ -201,7 +202,6 @@ libpthread-routines = \
>    pthread_cancel \
>    pthread_clockjoin \
>    pthread_create \
> -  pthread_detach \
>    pthread_getattr_default_np \
>    pthread_getconcurrency \
>    pthread_getcpuclockid \

Ok.

> diff --git a/nptl/Versions b/nptl/Versions
> index da610a4803..46ae34a1a2 100644
> --- a/nptl/Versions
> +++ b/nptl/Versions
> @@ -37,6 +37,7 @@ libc {
>      pthread_cond_wait;
>      pthread_condattr_destroy;
>      pthread_condattr_init;
> +    pthread_detach;
>      pthread_equal;
>      pthread_exit;
>      pthread_getschedparam;
> @@ -186,6 +187,7 @@ libc {
>      mtx_trylock;
>      mtx_unlock;
>      thrd_current;
> +    thrd_detach;
>      thrd_equal;
>      thrd_exit;
>      thrd_sleep;
> @@ -240,6 +242,7 @@ libc {
>      pthread_condattr_getpshared;
>      pthread_condattr_setclock;
>      pthread_condattr_setpshared;
> +    pthread_detach;
>      pthread_getspecific;
>      pthread_key_create;
>      pthread_key_delete;
> @@ -295,6 +298,7 @@ libc {
>      sem_trywait;
>      sem_unlink;
>      sem_wait;
> +    thrd_detach;
>      thrd_exit;
>      tss_create;
>      tss_delete;
> @@ -365,7 +369,6 @@ libpthread {
>      funlockfile;
>      pthread_cancel;
>      pthread_create;
> -    pthread_detach;
>      pthread_join;
>      pthread_sigmask;
>    }
> @@ -449,7 +452,6 @@ libpthread {
>    # C11 thread symbols.
>    GLIBC_2.28 {
>      thrd_create;
> -    thrd_detach;
>      thrd_join;
>    }
>  

Ok.

> diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
> index d580f71a38..34d133b187 100644
> --- a/nptl/pthreadP.h
> +++ b/nptl/pthreadP.h
> @@ -529,6 +529,7 @@ extern int __pthread_atfork (void (*prepare) (void), void (*parent) (void),
>  extern pthread_t __pthread_self (void);
>  extern int __pthread_equal (pthread_t thread1, pthread_t thread2);
>  extern int __pthread_detach (pthread_t th);
> +libc_hidden_proto (__pthread_detach)
>  extern int __pthread_cancel (pthread_t th);
>  extern int __pthread_kill (pthread_t threadid, int signo);
>  extern void __pthread_exit (void *value) __attribute__ ((__noreturn__));

Ok.

> diff --git a/nptl/pthread_detach.c b/nptl/pthread_detach.c
> index 410255bbe1..ac50db9b0e 100644
> --- a/nptl/pthread_detach.c
> +++ b/nptl/pthread_detach.c
> @@ -19,10 +19,10 @@
>  #include <errno.h>
>  #include "pthreadP.h"
>  #include <atomic.h>
> -
> +#include <shlib-compat.h>
>  
>  int
> -__pthread_detach (pthread_t th)
> +___pthread_detach (pthread_t th)
>  {
>    struct pthread *pd = (struct pthread *) th;
>  
> @@ -53,4 +53,12 @@ __pthread_detach (pthread_t th)
>  
>    return result;
>  }
> -weak_alias (__pthread_detach, pthread_detach)
> +versioned_symbol (libc, ___pthread_detach, pthread_detach, GLIBC_2_34);
> +libc_hidden_ver (___pthread_detach, __pthread_detach)
> +#ifndef SHARED
> +strong_alias (___pthread_detach, __pthread_detach)
> +#endif
> +
> +#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_34)
> +compat_symbol (libc, ___pthread_detach, pthread_detach, GLIBC_2_0);
> +#endif

Ok.

> diff --git a/sysdeps/pthread/Makefile b/sysdeps/pthread/Makefile
> index 54bb11bab9..ec8e3af577 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_join
> +libpthread-routines += thrd_create thrd_join
>  
>  $(libpthread-routines-var) += \
>    call_once \
> @@ -47,6 +47,7 @@ $(libpthread-routines-var) += \
>    mtx_timedlock \
>    mtx_trylock \
>    mtx_unlock \
> +  thrd_detach \
>    thrd_exit \
>    tss_create \
>    tss_delete \

Ok.

> diff --git a/sysdeps/pthread/thrd_detach.c b/sysdeps/pthread/thrd_detach.c
> index cbc63f57a2..29ac011d5b 100644
> --- a/sysdeps/pthread/thrd_detach.c
> +++ b/sysdeps/pthread/thrd_detach.c
> @@ -17,12 +17,21 @@
>     <https://www.gnu.org/licenses/>.  */
>  
>  #include "thrd_priv.h"
> +#include <shlib-compat.h>
>  
>  int
> -thrd_detach (thrd_t thr)
> +__thrd_detach (thrd_t thr)
>  {
>    int err_code;
>  
>    err_code = __pthread_detach (thr);
>    return thrd_err_map (err_code);
>  }
> +#if PTHREAD_IN_LIBC
> +versioned_symbol (libc, __thrd_detach, thrd_detach, GLIBC_2_34);
> +# if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_28, GLIBC_2_34)
> +compat_symbol (libc, __thrd_detach, thrd_detach, GLIBC_2_28);
> +# endif
> +#else /* !PTHREAD_IN_LIBC */
> +strong_alias (__thrd_detach, thrd_detach)
> +#endif

Ok.

> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index caee529c98..b5b0b44697 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -1474,6 +1474,7 @@ GLIBC_2.17 pthread_condattr_getpshared F
>  GLIBC_2.17 pthread_condattr_init F
>  GLIBC_2.17 pthread_condattr_setclock F
>  GLIBC_2.17 pthread_condattr_setpshared F
> +GLIBC_2.17 pthread_detach F
>  GLIBC_2.17 pthread_equal F
>  GLIBC_2.17 pthread_exit F
>  GLIBC_2.17 pthread_getaffinity_np F
> @@ -2251,6 +2252,7 @@ GLIBC_2.28 mtx_unlock F
>  GLIBC_2.28 renameat2 F
>  GLIBC_2.28 statx F
>  GLIBC_2.28 thrd_current F
> +GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
> @@ -2325,6 +2327,7 @@ GLIBC_2.34 pthread_condattr_getclock F
>  GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
> +GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_key_delete F
> @@ -2384,6 +2387,7 @@ GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 sem_trywait F
>  GLIBC_2.34 sem_unlink F
>  GLIBC_2.34 sem_wait F
> +GLIBC_2.34 thrd_detach F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> index f09c6d434a..71627a5cc8 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> @@ -20,7 +20,6 @@ GLIBC_2.17 pthread_attr_setstackaddr F
>  GLIBC_2.17 pthread_attr_setstacksize F
>  GLIBC_2.17 pthread_cancel F
>  GLIBC_2.17 pthread_create F
> -GLIBC_2.17 pthread_detach F
>  GLIBC_2.17 pthread_getconcurrency F
>  GLIBC_2.17 pthread_getcpuclockid F
>  GLIBC_2.17 pthread_getname_np F
> @@ -34,7 +33,6 @@ GLIBC_2.17 pthread_timedjoin_np F
>  GLIBC_2.17 pthread_tryjoin_np F
>  GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.28 thrd_create F
> -GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_join F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 pthread_clockjoin_np F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index 7a9a6608f4..20d4855e90 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -897,6 +897,7 @@ GLIBC_2.0 pthread_cond_timedwait F
>  GLIBC_2.0 pthread_cond_wait F
>  GLIBC_2.0 pthread_condattr_destroy F
>  GLIBC_2.0 pthread_condattr_init F
> +GLIBC_2.0 pthread_detach F
>  GLIBC_2.0 pthread_equal F
>  GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
> @@ -2149,6 +2150,7 @@ GLIBC_2.28 mtx_unlock F
>  GLIBC_2.28 renameat2 F
>  GLIBC_2.28 statx F
>  GLIBC_2.28 thrd_current F
> +GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
> @@ -2412,6 +2414,7 @@ GLIBC_2.34 pthread_condattr_getclock F
>  GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
> +GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_key_delete F
> @@ -2471,6 +2474,7 @@ GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 sem_trywait F
>  GLIBC_2.34 sem_unlink F
>  GLIBC_2.34 sem_wait F
> +GLIBC_2.34 thrd_detach F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> index 9b2e09a2e4..b4ea31102a 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> @@ -7,7 +7,6 @@ GLIBC_2.0 ftrylockfile F
>  GLIBC_2.0 funlockfile F
>  GLIBC_2.0 pthread_cancel F
>  GLIBC_2.0 pthread_create F
> -GLIBC_2.0 pthread_detach F
>  GLIBC_2.0 pthread_join F
>  GLIBC_2.1 pthread_attr_getguardsize F
>  GLIBC_2.1 pthread_attr_getstackaddr F
> @@ -30,7 +29,6 @@ GLIBC_2.2 pthread_getcpuclockid F
>  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_join F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
>  GLIBC_2.3.3 __pthread_register_cancel F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index 6fef10b0ad..19eb517f28 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -1414,6 +1414,7 @@ GLIBC_2.32 pthread_condattr_getpshared F
>  GLIBC_2.32 pthread_condattr_init F
>  GLIBC_2.32 pthread_condattr_setclock F
>  GLIBC_2.32 pthread_condattr_setpshared F
> +GLIBC_2.32 pthread_detach F
>  GLIBC_2.32 pthread_equal F
>  GLIBC_2.32 pthread_exit F
>  GLIBC_2.32 pthread_getaffinity_np F
> @@ -1862,6 +1863,7 @@ GLIBC_2.32 textdomain F
>  GLIBC_2.32 tfind F
>  GLIBC_2.32 tgkill F
>  GLIBC_2.32 thrd_current F
> +GLIBC_2.32 thrd_detach F
>  GLIBC_2.32 thrd_equal F
>  GLIBC_2.32 thrd_exit F
>  GLIBC_2.32 thrd_sleep F
> @@ -2084,6 +2086,7 @@ GLIBC_2.34 pthread_condattr_getclock F
>  GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
> +GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_key_delete F
> @@ -2143,6 +2146,7 @@ GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 sem_trywait F
>  GLIBC_2.34 sem_unlink F
>  GLIBC_2.34 sem_wait F
> +GLIBC_2.34 thrd_detach F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> index 8a4bea9aa9..8ac0cde1ee 100644
> --- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> @@ -21,7 +21,6 @@ GLIBC_2.32 pthread_attr_setstacksize F
>  GLIBC_2.32 pthread_cancel F
>  GLIBC_2.32 pthread_clockjoin_np F
>  GLIBC_2.32 pthread_create F
> -GLIBC_2.32 pthread_detach F
>  GLIBC_2.32 pthread_getattr_default_np F
>  GLIBC_2.32 pthread_getconcurrency F
>  GLIBC_2.32 pthread_getcpuclockid F
> @@ -35,5 +34,4 @@ GLIBC_2.32 pthread_sigqueue F
>  GLIBC_2.32 pthread_timedjoin_np F
>  GLIBC_2.32 pthread_tryjoin_np F
>  GLIBC_2.32 thrd_create F
> -GLIBC_2.32 thrd_detach F
>  GLIBC_2.32 thrd_join F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index f97aeeb047..9ba6a30214 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 mtx_unlock F
>  GLIBC_2.28 renameat2 F
>  GLIBC_2.28 statx F
>  GLIBC_2.28 thrd_current F
> +GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
> @@ -214,6 +215,7 @@ GLIBC_2.34 pthread_condattr_getclock F
>  GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
> +GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_key_delete F
> @@ -273,6 +275,7 @@ GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 sem_trywait F
>  GLIBC_2.34 sem_unlink F
>  GLIBC_2.34 sem_wait F
> +GLIBC_2.34 thrd_detach F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> @@ -1688,6 +1691,7 @@ GLIBC_2.4 pthread_condattr_getpshared F
>  GLIBC_2.4 pthread_condattr_init F
>  GLIBC_2.4 pthread_condattr_setclock F
>  GLIBC_2.4 pthread_condattr_setpshared F
> +GLIBC_2.4 pthread_detach F
>  GLIBC_2.4 pthread_equal F
>  GLIBC_2.4 pthread_exit F
>  GLIBC_2.4 pthread_getaffinity_np F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> index 117d44ad5f..b74a43658d 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> @@ -3,7 +3,6 @@ GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.28 thrd_create F
> -GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_join F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 pthread_clockjoin_np F
> @@ -30,7 +29,6 @@ GLIBC_2.4 pthread_attr_setstackaddr F
>  GLIBC_2.4 pthread_attr_setstacksize F
>  GLIBC_2.4 pthread_cancel F
>  GLIBC_2.4 pthread_create F
> -GLIBC_2.4 pthread_detach F
>  GLIBC_2.4 pthread_getconcurrency F
>  GLIBC_2.4 pthread_getcpuclockid F
>  GLIBC_2.4 pthread_join F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index 70f5f81faf..9a79a6622e 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 mtx_unlock F
>  GLIBC_2.28 renameat2 F
>  GLIBC_2.28 statx F
>  GLIBC_2.28 thrd_current F
> +GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
> @@ -211,6 +212,7 @@ GLIBC_2.34 pthread_condattr_getclock F
>  GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
> +GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_key_delete F
> @@ -270,6 +272,7 @@ GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 sem_trywait F
>  GLIBC_2.34 sem_unlink F
>  GLIBC_2.34 sem_wait F
> +GLIBC_2.34 thrd_detach F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> @@ -1685,6 +1688,7 @@ GLIBC_2.4 pthread_condattr_getpshared F
>  GLIBC_2.4 pthread_condattr_init F
>  GLIBC_2.4 pthread_condattr_setclock F
>  GLIBC_2.4 pthread_condattr_setpshared F
> +GLIBC_2.4 pthread_detach F
>  GLIBC_2.4 pthread_equal F
>  GLIBC_2.4 pthread_exit F
>  GLIBC_2.4 pthread_getaffinity_np F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> index 117d44ad5f..b74a43658d 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> @@ -3,7 +3,6 @@ GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.28 thrd_create F
> -GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_join F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 pthread_clockjoin_np F
> @@ -30,7 +29,6 @@ GLIBC_2.4 pthread_attr_setstackaddr F
>  GLIBC_2.4 pthread_attr_setstacksize F
>  GLIBC_2.4 pthread_cancel F
>  GLIBC_2.4 pthread_create F
> -GLIBC_2.4 pthread_detach F
>  GLIBC_2.4 pthread_getconcurrency F
>  GLIBC_2.4 pthread_getcpuclockid F
>  GLIBC_2.4 pthread_join F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index bd80fd1afd..b21ff2de89 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -1474,6 +1474,7 @@ GLIBC_2.29 pthread_condattr_getpshared F
>  GLIBC_2.29 pthread_condattr_init F
>  GLIBC_2.29 pthread_condattr_setclock F
>  GLIBC_2.29 pthread_condattr_setpshared F
> +GLIBC_2.29 pthread_detach F
>  GLIBC_2.29 pthread_equal F
>  GLIBC_2.29 pthread_exit F
>  GLIBC_2.29 pthread_getaffinity_np F
> @@ -1953,6 +1954,7 @@ GLIBC_2.29 tempnam F
>  GLIBC_2.29 textdomain F
>  GLIBC_2.29 tfind F
>  GLIBC_2.29 thrd_current F
> +GLIBC_2.29 thrd_detach F
>  GLIBC_2.29 thrd_equal F
>  GLIBC_2.29 thrd_exit F
>  GLIBC_2.29 thrd_sleep F
> @@ -2268,6 +2270,7 @@ GLIBC_2.34 pthread_condattr_getclock F
>  GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
> +GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_key_delete F
> @@ -2327,6 +2330,7 @@ GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 sem_trywait F
>  GLIBC_2.34 sem_unlink F
>  GLIBC_2.34 sem_wait F
> +GLIBC_2.34 thrd_detach F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> index 8ad8fc7c7f..665cc7bc38 100644
> --- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> @@ -20,7 +20,6 @@ GLIBC_2.29 pthread_attr_setstackaddr F
>  GLIBC_2.29 pthread_attr_setstacksize F
>  GLIBC_2.29 pthread_cancel F
>  GLIBC_2.29 pthread_create F
> -GLIBC_2.29 pthread_detach F
>  GLIBC_2.29 pthread_getattr_default_np F
>  GLIBC_2.29 pthread_getconcurrency F
>  GLIBC_2.29 pthread_getcpuclockid F
> @@ -34,7 +33,6 @@ GLIBC_2.29 pthread_sigqueue F
>  GLIBC_2.29 pthread_timedjoin_np F
>  GLIBC_2.29 pthread_tryjoin_np F
>  GLIBC_2.29 thrd_create F
> -GLIBC_2.29 thrd_detach F
>  GLIBC_2.29 thrd_join F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 pthread_clockjoin_np F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index fb40c0292c..3e893dfcaa 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -1299,6 +1299,7 @@ GLIBC_2.2 pthread_condattr_destroy F
>  GLIBC_2.2 pthread_condattr_getpshared F
>  GLIBC_2.2 pthread_condattr_init F
>  GLIBC_2.2 pthread_condattr_setpshared F
> +GLIBC_2.2 pthread_detach F
>  GLIBC_2.2 pthread_equal F
>  GLIBC_2.2 pthread_exit F
>  GLIBC_2.2 pthread_getschedparam F
> @@ -1982,6 +1983,7 @@ GLIBC_2.28 mtx_unlock F
>  GLIBC_2.28 renameat2 F
>  GLIBC_2.28 statx F
>  GLIBC_2.28 thrd_current F
> +GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
> @@ -2219,6 +2221,7 @@ GLIBC_2.34 pthread_condattr_getclock F
>  GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
> +GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_key_delete F
> @@ -2278,6 +2281,7 @@ GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 sem_trywait F
>  GLIBC_2.34 sem_unlink F
>  GLIBC_2.34 sem_wait F
> +GLIBC_2.34 thrd_detach F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> index 7e7fdfb8cd..cc1ca55754 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> @@ -19,7 +19,6 @@ GLIBC_2.2 pthread_attr_setstackaddr F
>  GLIBC_2.2 pthread_attr_setstacksize F
>  GLIBC_2.2 pthread_cancel F
>  GLIBC_2.2 pthread_create F
> -GLIBC_2.2 pthread_detach F
>  GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_join F
> @@ -27,7 +26,6 @@ GLIBC_2.2 pthread_setconcurrency F
>  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_join F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
>  GLIBC_2.3.3 __pthread_register_cancel F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index dd243f7808..f0af406ec5 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -874,6 +874,7 @@ GLIBC_2.0 pthread_cond_timedwait F
>  GLIBC_2.0 pthread_cond_wait F
>  GLIBC_2.0 pthread_condattr_destroy F
>  GLIBC_2.0 pthread_condattr_init F
> +GLIBC_2.0 pthread_detach F
>  GLIBC_2.0 pthread_equal F
>  GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
> @@ -2162,6 +2163,7 @@ GLIBC_2.28 mtx_unlock F
>  GLIBC_2.28 renameat2 F
>  GLIBC_2.28 statx F
>  GLIBC_2.28 thrd_current F
> +GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
> @@ -2402,6 +2404,7 @@ GLIBC_2.34 pthread_condattr_getclock F
>  GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
> +GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_key_delete F
> @@ -2461,6 +2464,7 @@ GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 sem_trywait F
>  GLIBC_2.34 sem_unlink F
>  GLIBC_2.34 sem_wait F
> +GLIBC_2.34 thrd_detach F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> index 1f5547e80c..0854a21e65 100644
> --- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> @@ -7,7 +7,6 @@ GLIBC_2.0 ftrylockfile F
>  GLIBC_2.0 funlockfile F
>  GLIBC_2.0 pthread_cancel F
>  GLIBC_2.0 pthread_create F
> -GLIBC_2.0 pthread_detach F
>  GLIBC_2.0 pthread_join F
>  GLIBC_2.1 pthread_attr_getguardsize F
>  GLIBC_2.1 pthread_attr_getstackaddr F
> @@ -30,7 +29,6 @@ GLIBC_2.2 pthread_getcpuclockid F
>  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_join F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
>  GLIBC_2.3.3 __pthread_register_cancel F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index b805382c4b..83985b06e0 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -1320,6 +1320,7 @@ GLIBC_2.2 pthread_condattr_destroy F
>  GLIBC_2.2 pthread_condattr_getpshared F
>  GLIBC_2.2 pthread_condattr_init F
>  GLIBC_2.2 pthread_condattr_setpshared F
> +GLIBC_2.2 pthread_detach F
>  GLIBC_2.2 pthread_equal F
>  GLIBC_2.2 pthread_exit F
>  GLIBC_2.2 pthread_getschedparam F
> @@ -2017,6 +2018,7 @@ GLIBC_2.28 mtx_unlock F
>  GLIBC_2.28 renameat2 F
>  GLIBC_2.28 statx F
>  GLIBC_2.28 thrd_current F
> +GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
> @@ -2253,6 +2255,7 @@ GLIBC_2.34 pthread_condattr_getclock F
>  GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
> +GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_key_delete F
> @@ -2312,6 +2315,7 @@ GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 sem_trywait F
>  GLIBC_2.34 sem_unlink F
>  GLIBC_2.34 sem_wait F
> +GLIBC_2.34 thrd_detach F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> index 3460d95267..c377a13e65 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> @@ -19,7 +19,6 @@ GLIBC_2.2 pthread_attr_setstackaddr F
>  GLIBC_2.2 pthread_attr_setstacksize F
>  GLIBC_2.2 pthread_cancel F
>  GLIBC_2.2 pthread_create F
> -GLIBC_2.2 pthread_detach F
>  GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_join F
> @@ -27,7 +26,6 @@ GLIBC_2.2 pthread_setconcurrency F
>  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_join F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
>  GLIBC_2.3.3 __pthread_register_cancel F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index 21332b7b39..7d38f2fe55 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 mtx_unlock F
>  GLIBC_2.28 renameat2 F
>  GLIBC_2.28 statx F
>  GLIBC_2.28 thrd_current F
> +GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
> @@ -215,6 +216,7 @@ GLIBC_2.34 pthread_condattr_getclock F
>  GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
> +GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_key_delete F
> @@ -274,6 +276,7 @@ GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 sem_trywait F
>  GLIBC_2.34 sem_unlink F
>  GLIBC_2.34 sem_wait F
> +GLIBC_2.34 thrd_detach F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> @@ -1668,6 +1671,7 @@ GLIBC_2.4 pthread_condattr_getpshared F
>  GLIBC_2.4 pthread_condattr_init F
>  GLIBC_2.4 pthread_condattr_setclock F
>  GLIBC_2.4 pthread_condattr_setpshared F
> +GLIBC_2.4 pthread_detach F
>  GLIBC_2.4 pthread_equal F
>  GLIBC_2.4 pthread_exit F
>  GLIBC_2.4 pthread_getaffinity_np F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> index 117d44ad5f..b74a43658d 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> @@ -3,7 +3,6 @@ GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.28 thrd_create F
> -GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_join F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 pthread_clockjoin_np F
> @@ -30,7 +29,6 @@ GLIBC_2.4 pthread_attr_setstackaddr F
>  GLIBC_2.4 pthread_attr_setstacksize F
>  GLIBC_2.4 pthread_cancel F
>  GLIBC_2.4 pthread_create F
> -GLIBC_2.4 pthread_detach F
>  GLIBC_2.4 pthread_getconcurrency F
>  GLIBC_2.4 pthread_getcpuclockid F
>  GLIBC_2.4 pthread_join F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index 5159aee942..99ad04d858 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -873,6 +873,7 @@ GLIBC_2.0 pthread_cond_timedwait F
>  GLIBC_2.0 pthread_cond_wait F
>  GLIBC_2.0 pthread_condattr_destroy F
>  GLIBC_2.0 pthread_condattr_init F
> +GLIBC_2.0 pthread_detach F
>  GLIBC_2.0 pthread_equal F
>  GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
> @@ -2105,6 +2106,7 @@ GLIBC_2.28 mtx_unlock F
>  GLIBC_2.28 renameat2 F
>  GLIBC_2.28 statx F
>  GLIBC_2.28 thrd_current F
> +GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
> @@ -2345,6 +2347,7 @@ GLIBC_2.34 pthread_condattr_getclock F
>  GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
> +GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_key_delete F
> @@ -2404,6 +2407,7 @@ GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 sem_trywait F
>  GLIBC_2.34 sem_unlink F
>  GLIBC_2.34 sem_wait F
> +GLIBC_2.34 thrd_detach F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> index 1f5547e80c..0854a21e65 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> @@ -7,7 +7,6 @@ GLIBC_2.0 ftrylockfile F
>  GLIBC_2.0 funlockfile F
>  GLIBC_2.0 pthread_cancel F
>  GLIBC_2.0 pthread_create F
> -GLIBC_2.0 pthread_detach F
>  GLIBC_2.0 pthread_join F
>  GLIBC_2.1 pthread_attr_getguardsize F
>  GLIBC_2.1 pthread_attr_getstackaddr F
> @@ -30,7 +29,6 @@ GLIBC_2.2 pthread_getcpuclockid F
>  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_join F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
>  GLIBC_2.3.3 __pthread_register_cancel F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index 4609ade92c..5eebad0468 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -1476,6 +1476,7 @@ GLIBC_2.18 pthread_condattr_getpshared F
>  GLIBC_2.18 pthread_condattr_init F
>  GLIBC_2.18 pthread_condattr_setclock F
>  GLIBC_2.18 pthread_condattr_setpshared F
> +GLIBC_2.18 pthread_detach F
>  GLIBC_2.18 pthread_equal F
>  GLIBC_2.18 pthread_exit F
>  GLIBC_2.18 pthread_getaffinity_np F
> @@ -2242,6 +2243,7 @@ GLIBC_2.28 mtx_unlock F
>  GLIBC_2.28 renameat2 F
>  GLIBC_2.28 statx F
>  GLIBC_2.28 thrd_current F
> +GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
> @@ -2319,6 +2321,7 @@ GLIBC_2.34 pthread_condattr_getclock F
>  GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
> +GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_key_delete F
> @@ -2378,6 +2381,7 @@ GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 sem_trywait F
>  GLIBC_2.34 sem_unlink F
>  GLIBC_2.34 sem_wait F
> +GLIBC_2.34 thrd_detach F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> index c87d939959..f50eb41a1a 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> @@ -20,7 +20,6 @@ GLIBC_2.18 pthread_attr_setstackaddr F
>  GLIBC_2.18 pthread_attr_setstacksize F
>  GLIBC_2.18 pthread_cancel F
>  GLIBC_2.18 pthread_create F
> -GLIBC_2.18 pthread_detach F
>  GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.18 pthread_getconcurrency F
>  GLIBC_2.18 pthread_getcpuclockid F
> @@ -34,7 +33,6 @@ GLIBC_2.18 pthread_sigqueue F
>  GLIBC_2.18 pthread_timedjoin_np F
>  GLIBC_2.18 pthread_tryjoin_np F
>  GLIBC_2.28 thrd_create F
> -GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_join F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 pthread_clockjoin_np F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index 41db7ed508..9c54e2d42c 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -1476,6 +1476,7 @@ GLIBC_2.18 pthread_condattr_getpshared F
>  GLIBC_2.18 pthread_condattr_init F
>  GLIBC_2.18 pthread_condattr_setclock F
>  GLIBC_2.18 pthread_condattr_setpshared F
> +GLIBC_2.18 pthread_detach F
>  GLIBC_2.18 pthread_equal F
>  GLIBC_2.18 pthread_exit F
>  GLIBC_2.18 pthread_getaffinity_np F
> @@ -2242,6 +2243,7 @@ GLIBC_2.28 mtx_unlock F
>  GLIBC_2.28 renameat2 F
>  GLIBC_2.28 statx F
>  GLIBC_2.28 thrd_current F
> +GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
> @@ -2316,6 +2318,7 @@ GLIBC_2.34 pthread_condattr_getclock F
>  GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
> +GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_key_delete F
> @@ -2375,6 +2378,7 @@ GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 sem_trywait F
>  GLIBC_2.34 sem_unlink F
>  GLIBC_2.34 sem_wait F
> +GLIBC_2.34 thrd_detach F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> index c87d939959..f50eb41a1a 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> @@ -20,7 +20,6 @@ GLIBC_2.18 pthread_attr_setstackaddr F
>  GLIBC_2.18 pthread_attr_setstacksize F
>  GLIBC_2.18 pthread_cancel F
>  GLIBC_2.18 pthread_create F
> -GLIBC_2.18 pthread_detach F
>  GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.18 pthread_getconcurrency F
>  GLIBC_2.18 pthread_getcpuclockid F
> @@ -34,7 +33,6 @@ GLIBC_2.18 pthread_sigqueue F
>  GLIBC_2.18 pthread_timedjoin_np F
>  GLIBC_2.18 pthread_tryjoin_np F
>  GLIBC_2.28 thrd_create F
> -GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_join F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 pthread_clockjoin_np F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index 77d3b72f2b..34e77850a1 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -870,6 +870,7 @@ GLIBC_2.0 pthread_cond_timedwait F
>  GLIBC_2.0 pthread_cond_wait F
>  GLIBC_2.0 pthread_condattr_destroy F
>  GLIBC_2.0 pthread_condattr_init F
> +GLIBC_2.0 pthread_detach F
>  GLIBC_2.0 pthread_equal F
>  GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
> @@ -2075,6 +2076,7 @@ GLIBC_2.28 mtx_unlock F
>  GLIBC_2.28 renameat2 F
>  GLIBC_2.28 statx F
>  GLIBC_2.28 thrd_current F
> +GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
> @@ -2308,6 +2310,7 @@ GLIBC_2.34 pthread_condattr_getclock F
>  GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
> +GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_key_delete F
> @@ -2367,6 +2370,7 @@ GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 sem_trywait F
>  GLIBC_2.34 sem_unlink F
>  GLIBC_2.34 sem_wait F
> +GLIBC_2.34 thrd_detach F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> index fa52921d78..a1ba1503a5 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> @@ -7,7 +7,6 @@ GLIBC_2.0 ftrylockfile F
>  GLIBC_2.0 funlockfile F
>  GLIBC_2.0 pthread_cancel F
>  GLIBC_2.0 pthread_create F
> -GLIBC_2.0 pthread_detach F
>  GLIBC_2.0 pthread_join F
>  GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 pthread_getname_np F
> @@ -28,7 +27,6 @@ GLIBC_2.2 pthread_setconcurrency F
>  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_join F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
>  GLIBC_2.3.3 __pthread_register_cancel F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index bfc6ca8d87..d01dc8462b 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -870,6 +870,7 @@ GLIBC_2.0 pthread_cond_timedwait F
>  GLIBC_2.0 pthread_cond_wait F
>  GLIBC_2.0 pthread_condattr_destroy F
>  GLIBC_2.0 pthread_condattr_init F
> +GLIBC_2.0 pthread_detach F
>  GLIBC_2.0 pthread_equal F
>  GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
> @@ -2073,6 +2074,7 @@ GLIBC_2.28 mtx_unlock F
>  GLIBC_2.28 renameat2 F
>  GLIBC_2.28 statx F
>  GLIBC_2.28 thrd_current F
> +GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
> @@ -2306,6 +2308,7 @@ GLIBC_2.34 pthread_condattr_getclock F
>  GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
> +GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_key_delete F
> @@ -2365,6 +2368,7 @@ GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 sem_trywait F
>  GLIBC_2.34 sem_unlink F
>  GLIBC_2.34 sem_wait F
> +GLIBC_2.34 thrd_detach F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> index fa52921d78..a1ba1503a5 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> @@ -7,7 +7,6 @@ GLIBC_2.0 ftrylockfile F
>  GLIBC_2.0 funlockfile F
>  GLIBC_2.0 pthread_cancel F
>  GLIBC_2.0 pthread_create F
> -GLIBC_2.0 pthread_detach F
>  GLIBC_2.0 pthread_join F
>  GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 pthread_getname_np F
> @@ -28,7 +27,6 @@ GLIBC_2.2 pthread_setconcurrency F
>  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_join F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
>  GLIBC_2.3.3 __pthread_register_cancel F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index cdade4e56a..a906bb949a 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -870,6 +870,7 @@ GLIBC_2.0 pthread_cond_timedwait F
>  GLIBC_2.0 pthread_cond_wait F
>  GLIBC_2.0 pthread_condattr_destroy F
>  GLIBC_2.0 pthread_condattr_init F
> +GLIBC_2.0 pthread_detach F
>  GLIBC_2.0 pthread_equal F
>  GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
> @@ -2081,6 +2082,7 @@ GLIBC_2.28 mtx_unlock F
>  GLIBC_2.28 renameat2 F
>  GLIBC_2.28 statx F
>  GLIBC_2.28 thrd_current F
> +GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
> @@ -2314,6 +2316,7 @@ GLIBC_2.34 pthread_condattr_getclock F
>  GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
> +GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_key_delete F
> @@ -2373,6 +2376,7 @@ GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 sem_trywait F
>  GLIBC_2.34 sem_unlink F
>  GLIBC_2.34 sem_wait F
> +GLIBC_2.34 thrd_detach F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index 62184c7a10..89dd91a0a4 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -868,6 +868,7 @@ GLIBC_2.0 pthread_cond_timedwait F
>  GLIBC_2.0 pthread_cond_wait F
>  GLIBC_2.0 pthread_condattr_destroy F
>  GLIBC_2.0 pthread_condattr_init F
> +GLIBC_2.0 pthread_detach F
>  GLIBC_2.0 pthread_equal F
>  GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
> @@ -2076,6 +2077,7 @@ GLIBC_2.28 mtx_unlock F
>  GLIBC_2.28 renameat2 F
>  GLIBC_2.28 statx F
>  GLIBC_2.28 thrd_current F
> +GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
> @@ -2308,6 +2310,7 @@ GLIBC_2.34 pthread_condattr_getclock F
>  GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
> +GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_key_delete F
> @@ -2367,6 +2370,7 @@ GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 sem_trywait F
>  GLIBC_2.34 sem_unlink F
>  GLIBC_2.34 sem_wait F
> +GLIBC_2.34 thrd_detach F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index bc230f7020..8b2b19d09b 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -1519,6 +1519,7 @@ GLIBC_2.21 pthread_condattr_getpshared F
>  GLIBC_2.21 pthread_condattr_init F
>  GLIBC_2.21 pthread_condattr_setclock F
>  GLIBC_2.21 pthread_condattr_setpshared F
> +GLIBC_2.21 pthread_detach F
>  GLIBC_2.21 pthread_equal F
>  GLIBC_2.21 pthread_exit F
>  GLIBC_2.21 pthread_getaffinity_np F
> @@ -2284,6 +2285,7 @@ GLIBC_2.28 mtx_unlock F
>  GLIBC_2.28 renameat2 F
>  GLIBC_2.28 statx F
>  GLIBC_2.28 thrd_current F
> +GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
> @@ -2358,6 +2360,7 @@ GLIBC_2.34 pthread_condattr_getclock F
>  GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
> +GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_key_delete F
> @@ -2417,6 +2420,7 @@ GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 sem_trywait F
>  GLIBC_2.34 sem_unlink F
>  GLIBC_2.34 sem_wait F
> +GLIBC_2.34 thrd_detach F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> index 502268cbd5..27fb415228 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> @@ -20,7 +20,6 @@ GLIBC_2.21 pthread_attr_setstackaddr F
>  GLIBC_2.21 pthread_attr_setstacksize F
>  GLIBC_2.21 pthread_cancel F
>  GLIBC_2.21 pthread_create F
> -GLIBC_2.21 pthread_detach F
>  GLIBC_2.21 pthread_getattr_default_np F
>  GLIBC_2.21 pthread_getconcurrency F
>  GLIBC_2.21 pthread_getcpuclockid F
> @@ -34,7 +33,6 @@ GLIBC_2.21 pthread_sigqueue F
>  GLIBC_2.21 pthread_timedjoin_np F
>  GLIBC_2.21 pthread_tryjoin_np F
>  GLIBC_2.28 thrd_create F
> -GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_join F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 pthread_clockjoin_np F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index 0e384dd37e..84aab42aaa 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -881,6 +881,7 @@ GLIBC_2.0 pthread_cond_timedwait F
>  GLIBC_2.0 pthread_cond_wait F
>  GLIBC_2.0 pthread_condattr_destroy F
>  GLIBC_2.0 pthread_condattr_init F
> +GLIBC_2.0 pthread_detach F
>  GLIBC_2.0 pthread_equal F
>  GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
> @@ -2109,6 +2110,7 @@ GLIBC_2.28 mtx_unlock F
>  GLIBC_2.28 renameat2 F
>  GLIBC_2.28 statx F
>  GLIBC_2.28 thrd_current F
> +GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
> @@ -2372,6 +2374,7 @@ GLIBC_2.34 pthread_condattr_getclock F
>  GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
> +GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_key_delete F
> @@ -2431,6 +2434,7 @@ GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 sem_trywait F
>  GLIBC_2.34 sem_unlink F
>  GLIBC_2.34 sem_wait F
> +GLIBC_2.34 thrd_detach F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> index c2ac178742..831b66ee72 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> @@ -7,7 +7,6 @@ GLIBC_2.0 ftrylockfile F
>  GLIBC_2.0 funlockfile F
>  GLIBC_2.0 pthread_cancel F
>  GLIBC_2.0 pthread_create F
> -GLIBC_2.0 pthread_detach F
>  GLIBC_2.0 pthread_join F
>  GLIBC_2.1 pthread_attr_getguardsize F
>  GLIBC_2.1 pthread_attr_getstackaddr F
> @@ -30,7 +29,6 @@ GLIBC_2.2 pthread_getcpuclockid F
>  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_join F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
>  GLIBC_2.3.3 __pthread_register_cancel F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index dac4a03938..00201c5544 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -881,6 +881,7 @@ GLIBC_2.0 pthread_cond_timedwait F
>  GLIBC_2.0 pthread_cond_wait F
>  GLIBC_2.0 pthread_condattr_destroy F
>  GLIBC_2.0 pthread_condattr_init F
> +GLIBC_2.0 pthread_detach F
>  GLIBC_2.0 pthread_equal F
>  GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
> @@ -2113,6 +2114,7 @@ GLIBC_2.28 mtx_unlock F
>  GLIBC_2.28 renameat2 F
>  GLIBC_2.28 statx F
>  GLIBC_2.28 thrd_current F
> +GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
> @@ -2405,6 +2407,7 @@ GLIBC_2.34 pthread_condattr_getclock F
>  GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
> +GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_key_delete F
> @@ -2464,6 +2467,7 @@ GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 sem_trywait F
>  GLIBC_2.34 sem_unlink F
>  GLIBC_2.34 sem_wait F
> +GLIBC_2.34 thrd_detach F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index 6a8958d5a8..8725f4a851 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 mtx_unlock F
>  GLIBC_2.28 renameat2 F
>  GLIBC_2.28 statx F
>  GLIBC_2.28 thrd_current F
> +GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
> @@ -1422,6 +1423,7 @@ GLIBC_2.3 pthread_condattr_destroy F
>  GLIBC_2.3 pthread_condattr_getpshared F
>  GLIBC_2.3 pthread_condattr_init F
>  GLIBC_2.3 pthread_condattr_setpshared F
> +GLIBC_2.3 pthread_detach F
>  GLIBC_2.3 pthread_equal F
>  GLIBC_2.3 pthread_exit F
>  GLIBC_2.3 pthread_getattr_np F
> @@ -2220,6 +2222,7 @@ GLIBC_2.34 pthread_condattr_getclock F
>  GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
> +GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_key_delete F
> @@ -2279,6 +2282,7 @@ GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 sem_trywait F
>  GLIBC_2.34 sem_unlink F
>  GLIBC_2.34 sem_wait F
> +GLIBC_2.34 thrd_detach F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> index 89b4083cf4..91a5618412 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> @@ -3,7 +3,6 @@ GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.28 thrd_create F
> -GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_join F
>  GLIBC_2.3 _IO_flockfile F
>  GLIBC_2.3 _IO_ftrylockfile F
> @@ -22,7 +21,6 @@ GLIBC_2.3 pthread_attr_setstackaddr F
>  GLIBC_2.3 pthread_attr_setstacksize F
>  GLIBC_2.3 pthread_cancel F
>  GLIBC_2.3 pthread_create F
> -GLIBC_2.3 pthread_detach F
>  GLIBC_2.3 pthread_getconcurrency F
>  GLIBC_2.3 pthread_getcpuclockid F
>  GLIBC_2.3 pthread_join F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index 16f4d90871..89ab60dc38 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -1562,6 +1562,7 @@ GLIBC_2.17 pthread_condattr_getpshared F
>  GLIBC_2.17 pthread_condattr_init F
>  GLIBC_2.17 pthread_condattr_setclock F
>  GLIBC_2.17 pthread_condattr_setpshared F
> +GLIBC_2.17 pthread_detach F
>  GLIBC_2.17 pthread_equal F
>  GLIBC_2.17 pthread_exit F
>  GLIBC_2.17 pthread_getaffinity_np F
> @@ -2341,6 +2342,7 @@ GLIBC_2.28 mtx_unlock F
>  GLIBC_2.28 renameat2 F
>  GLIBC_2.28 statx F
>  GLIBC_2.28 thrd_current F
> +GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
> @@ -2521,6 +2523,7 @@ GLIBC_2.34 pthread_condattr_getclock F
>  GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
> +GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_key_delete F
> @@ -2580,6 +2583,7 @@ GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 sem_trywait F
>  GLIBC_2.34 sem_unlink F
>  GLIBC_2.34 sem_wait F
> +GLIBC_2.34 thrd_detach F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> index f09c6d434a..71627a5cc8 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> @@ -20,7 +20,6 @@ GLIBC_2.17 pthread_attr_setstackaddr F
>  GLIBC_2.17 pthread_attr_setstacksize F
>  GLIBC_2.17 pthread_cancel F
>  GLIBC_2.17 pthread_create F
> -GLIBC_2.17 pthread_detach F
>  GLIBC_2.17 pthread_getconcurrency F
>  GLIBC_2.17 pthread_getcpuclockid F
>  GLIBC_2.17 pthread_getname_np F
> @@ -34,7 +33,6 @@ GLIBC_2.17 pthread_timedjoin_np F
>  GLIBC_2.17 pthread_tryjoin_np F
>  GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.28 thrd_create F
> -GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_join F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 pthread_clockjoin_np F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index 876ed3d11f..e201491852 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -1416,6 +1416,7 @@ GLIBC_2.33 pthread_condattr_getpshared F
>  GLIBC_2.33 pthread_condattr_init F
>  GLIBC_2.33 pthread_condattr_setclock F
>  GLIBC_2.33 pthread_condattr_setpshared F
> +GLIBC_2.33 pthread_detach F
>  GLIBC_2.33 pthread_equal F
>  GLIBC_2.33 pthread_exit F
>  GLIBC_2.33 pthread_getaffinity_np F
> @@ -1872,6 +1873,7 @@ GLIBC_2.33 textdomain F
>  GLIBC_2.33 tfind F
>  GLIBC_2.33 tgkill F
>  GLIBC_2.33 thrd_current F
> +GLIBC_2.33 thrd_detach F
>  GLIBC_2.33 thrd_equal F
>  GLIBC_2.33 thrd_exit F
>  GLIBC_2.33 thrd_sleep F
> @@ -2086,6 +2088,7 @@ GLIBC_2.34 pthread_condattr_getclock F
>  GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
> +GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_key_delete F
> @@ -2145,6 +2148,7 @@ GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 sem_trywait F
>  GLIBC_2.34 sem_unlink F
>  GLIBC_2.34 sem_wait F
> +GLIBC_2.34 thrd_detach F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> index d6f50be603..0ad1f57b44 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> @@ -21,7 +21,6 @@ GLIBC_2.33 pthread_attr_setstacksize F
>  GLIBC_2.33 pthread_cancel F
>  GLIBC_2.33 pthread_clockjoin_np F
>  GLIBC_2.33 pthread_create F
> -GLIBC_2.33 pthread_detach F
>  GLIBC_2.33 pthread_getattr_default_np F
>  GLIBC_2.33 pthread_getconcurrency F
>  GLIBC_2.33 pthread_getcpuclockid F
> @@ -35,5 +34,4 @@ GLIBC_2.33 pthread_sigqueue F
>  GLIBC_2.33 pthread_timedjoin_np F
>  GLIBC_2.33 pthread_tryjoin_np F
>  GLIBC_2.33 thrd_create F
> -GLIBC_2.33 thrd_detach F
>  GLIBC_2.33 thrd_join F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index ec2dbc5f6c..8f5d8490a7 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -1464,6 +1464,7 @@ GLIBC_2.27 pthread_condattr_getpshared F
>  GLIBC_2.27 pthread_condattr_init F
>  GLIBC_2.27 pthread_condattr_setclock F
>  GLIBC_2.27 pthread_condattr_setpshared F
> +GLIBC_2.27 pthread_detach F
>  GLIBC_2.27 pthread_equal F
>  GLIBC_2.27 pthread_exit F
>  GLIBC_2.27 pthread_getaffinity_np F
> @@ -2212,6 +2213,7 @@ GLIBC_2.28 mtx_unlock F
>  GLIBC_2.28 renameat2 F
>  GLIBC_2.28 statx F
>  GLIBC_2.28 thrd_current F
> +GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
> @@ -2286,6 +2288,7 @@ GLIBC_2.34 pthread_condattr_getclock F
>  GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
> +GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_key_delete F
> @@ -2345,6 +2348,7 @@ GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 sem_trywait F
>  GLIBC_2.34 sem_unlink F
>  GLIBC_2.34 sem_wait F
> +GLIBC_2.34 thrd_detach F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> index 240dfc6c9a..74b4bdce74 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> @@ -20,7 +20,6 @@ GLIBC_2.27 pthread_attr_setstackaddr F
>  GLIBC_2.27 pthread_attr_setstacksize F
>  GLIBC_2.27 pthread_cancel F
>  GLIBC_2.27 pthread_create F
> -GLIBC_2.27 pthread_detach F
>  GLIBC_2.27 pthread_getattr_default_np F
>  GLIBC_2.27 pthread_getconcurrency F
>  GLIBC_2.27 pthread_getcpuclockid F
> @@ -34,7 +33,6 @@ GLIBC_2.27 pthread_sigqueue F
>  GLIBC_2.27 pthread_timedjoin_np F
>  GLIBC_2.27 pthread_tryjoin_np F
>  GLIBC_2.28 thrd_create F
> -GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_join F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 pthread_clockjoin_np F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index d1bc174497..686a10ee24 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -872,6 +872,7 @@ GLIBC_2.0 pthread_cond_timedwait F
>  GLIBC_2.0 pthread_cond_wait F
>  GLIBC_2.0 pthread_condattr_destroy F
>  GLIBC_2.0 pthread_condattr_init F
> +GLIBC_2.0 pthread_detach F
>  GLIBC_2.0 pthread_equal F
>  GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
> @@ -2118,6 +2119,7 @@ GLIBC_2.28 mtx_unlock F
>  GLIBC_2.28 renameat2 F
>  GLIBC_2.28 statx F
>  GLIBC_2.28 thrd_current F
> +GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
> @@ -2370,6 +2372,7 @@ GLIBC_2.34 pthread_condattr_getclock F
>  GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
> +GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_key_delete F
> @@ -2429,6 +2432,7 @@ GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 sem_trywait F
>  GLIBC_2.34 sem_unlink F
>  GLIBC_2.34 sem_wait F
> +GLIBC_2.34 thrd_detach F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> index 20ee83baca..87db062308 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> @@ -7,7 +7,6 @@ GLIBC_2.0 ftrylockfile F
>  GLIBC_2.0 funlockfile F
>  GLIBC_2.0 pthread_cancel F
>  GLIBC_2.0 pthread_create F
> -GLIBC_2.0 pthread_detach F
>  GLIBC_2.0 pthread_join F
>  GLIBC_2.1 pthread_attr_getguardsize F
>  GLIBC_2.1 pthread_attr_getstackaddr F
> @@ -31,7 +30,6 @@ GLIBC_2.2 pthread_getcpuclockid F
>  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_join F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
>  GLIBC_2.3.3 __pthread_register_cancel F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index 3771dc652a..8ff9d69dca 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -1317,6 +1317,7 @@ GLIBC_2.2 pthread_condattr_destroy F
>  GLIBC_2.2 pthread_condattr_getpshared F
>  GLIBC_2.2 pthread_condattr_init F
>  GLIBC_2.2 pthread_condattr_setpshared F
> +GLIBC_2.2 pthread_detach F
>  GLIBC_2.2 pthread_equal F
>  GLIBC_2.2 pthread_exit F
>  GLIBC_2.2 pthread_getschedparam F
> @@ -2009,6 +2010,7 @@ GLIBC_2.28 mtx_unlock F
>  GLIBC_2.28 renameat2 F
>  GLIBC_2.28 statx F
>  GLIBC_2.28 thrd_current F
> +GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
> @@ -2257,6 +2259,7 @@ GLIBC_2.34 pthread_condattr_getclock F
>  GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
> +GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_key_delete F
> @@ -2316,6 +2319,7 @@ GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 sem_trywait F
>  GLIBC_2.34 sem_unlink F
>  GLIBC_2.34 sem_wait F
> +GLIBC_2.34 thrd_detach F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> index 35f0b89d66..3bf0bc9538 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> @@ -20,7 +20,6 @@ GLIBC_2.2 pthread_attr_setstackaddr F
>  GLIBC_2.2 pthread_attr_setstacksize F
>  GLIBC_2.2 pthread_cancel F
>  GLIBC_2.2 pthread_create F
> -GLIBC_2.2 pthread_detach F
>  GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_join F
> @@ -28,7 +27,6 @@ GLIBC_2.2 pthread_setconcurrency F
>  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_join F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
>  GLIBC_2.3.3 __pthread_register_cancel F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index 6355ca1061..9ecce30901 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -1303,6 +1303,7 @@ GLIBC_2.2 pthread_condattr_destroy F
>  GLIBC_2.2 pthread_condattr_getpshared F
>  GLIBC_2.2 pthread_condattr_init F
>  GLIBC_2.2 pthread_condattr_setpshared F
> +GLIBC_2.2 pthread_detach F
>  GLIBC_2.2 pthread_equal F
>  GLIBC_2.2 pthread_exit F
>  GLIBC_2.2 pthread_getschedparam F
> @@ -1986,6 +1987,7 @@ GLIBC_2.28 mtx_unlock F
>  GLIBC_2.28 renameat2 F
>  GLIBC_2.28 statx F
>  GLIBC_2.28 thrd_current F
> +GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
> @@ -2226,6 +2228,7 @@ GLIBC_2.34 pthread_condattr_getclock F
>  GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
> +GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_key_delete F
> @@ -2285,6 +2288,7 @@ GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 sem_trywait F
>  GLIBC_2.34 sem_unlink F
>  GLIBC_2.34 sem_wait F
> +GLIBC_2.34 thrd_detach F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> index 7e7fdfb8cd..cc1ca55754 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> @@ -19,7 +19,6 @@ GLIBC_2.2 pthread_attr_setstackaddr F
>  GLIBC_2.2 pthread_attr_setstacksize F
>  GLIBC_2.2 pthread_cancel F
>  GLIBC_2.2 pthread_create F
> -GLIBC_2.2 pthread_detach F
>  GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_join F
> @@ -27,7 +26,6 @@ GLIBC_2.2 pthread_setconcurrency F
>  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_join F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
>  GLIBC_2.3.3 __pthread_register_cancel F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index a1e3c3a93b..a6faf4e2d6 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -1303,6 +1303,7 @@ GLIBC_2.2 pthread_condattr_destroy F
>  GLIBC_2.2 pthread_condattr_getpshared F
>  GLIBC_2.2 pthread_condattr_init F
>  GLIBC_2.2 pthread_condattr_setpshared F
> +GLIBC_2.2 pthread_detach F
>  GLIBC_2.2 pthread_equal F
>  GLIBC_2.2 pthread_exit F
>  GLIBC_2.2 pthread_getschedparam F
> @@ -1986,6 +1987,7 @@ GLIBC_2.28 mtx_unlock F
>  GLIBC_2.28 renameat2 F
>  GLIBC_2.28 statx F
>  GLIBC_2.28 thrd_current F
> +GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
> @@ -2223,6 +2225,7 @@ GLIBC_2.34 pthread_condattr_getclock F
>  GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
> +GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_key_delete F
> @@ -2282,6 +2285,7 @@ GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 sem_trywait F
>  GLIBC_2.34 sem_unlink F
>  GLIBC_2.34 sem_wait F
> +GLIBC_2.34 thrd_detach F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> index 7e7fdfb8cd..cc1ca55754 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> @@ -19,7 +19,6 @@ GLIBC_2.2 pthread_attr_setstackaddr F
>  GLIBC_2.2 pthread_attr_setstacksize F
>  GLIBC_2.2 pthread_cancel F
>  GLIBC_2.2 pthread_create F
> -GLIBC_2.2 pthread_detach F
>  GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_join F
> @@ -27,7 +26,6 @@ GLIBC_2.2 pthread_setconcurrency F
>  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_join F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
>  GLIBC_2.3.3 __pthread_register_cancel F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index 17026a997b..4d08e96ffa 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -875,6 +875,7 @@ GLIBC_2.0 pthread_cond_timedwait F
>  GLIBC_2.0 pthread_cond_wait F
>  GLIBC_2.0 pthread_condattr_destroy F
>  GLIBC_2.0 pthread_condattr_init F
> +GLIBC_2.0 pthread_detach F
>  GLIBC_2.0 pthread_equal F
>  GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
> @@ -2112,6 +2113,7 @@ GLIBC_2.28 mtx_unlock F
>  GLIBC_2.28 renameat2 F
>  GLIBC_2.28 statx F
>  GLIBC_2.28 thrd_current F
> +GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
> @@ -2361,6 +2363,7 @@ GLIBC_2.34 pthread_condattr_getclock F
>  GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
> +GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_key_delete F
> @@ -2420,6 +2423,7 @@ GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 sem_trywait F
>  GLIBC_2.34 sem_unlink F
>  GLIBC_2.34 sem_wait F
> +GLIBC_2.34 thrd_detach F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> index 9b2e09a2e4..b4ea31102a 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> @@ -7,7 +7,6 @@ GLIBC_2.0 ftrylockfile F
>  GLIBC_2.0 funlockfile F
>  GLIBC_2.0 pthread_cancel F
>  GLIBC_2.0 pthread_create F
> -GLIBC_2.0 pthread_detach F
>  GLIBC_2.0 pthread_join F
>  GLIBC_2.1 pthread_attr_getguardsize F
>  GLIBC_2.1 pthread_attr_getstackaddr F
> @@ -30,7 +29,6 @@ GLIBC_2.2 pthread_getcpuclockid F
>  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_join F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
>  GLIBC_2.3.3 __pthread_register_cancel F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index 9dc72e0556..bc9ddd71a6 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -1346,6 +1346,7 @@ GLIBC_2.2 pthread_condattr_destroy F
>  GLIBC_2.2 pthread_condattr_getpshared F
>  GLIBC_2.2 pthread_condattr_init F
>  GLIBC_2.2 pthread_condattr_setpshared F
> +GLIBC_2.2 pthread_detach F
>  GLIBC_2.2 pthread_equal F
>  GLIBC_2.2 pthread_exit F
>  GLIBC_2.2 pthread_getschedparam F
> @@ -2039,6 +2040,7 @@ GLIBC_2.28 mtx_unlock F
>  GLIBC_2.28 renameat2 F
>  GLIBC_2.28 statx F
>  GLIBC_2.28 thrd_current F
> +GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
> @@ -2274,6 +2276,7 @@ GLIBC_2.34 pthread_condattr_getclock F
>  GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
> +GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_key_delete F
> @@ -2333,6 +2336,7 @@ GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 sem_trywait F
>  GLIBC_2.34 sem_unlink F
>  GLIBC_2.34 sem_wait F
> +GLIBC_2.34 thrd_detach F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> index 3460d95267..c377a13e65 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> @@ -19,7 +19,6 @@ GLIBC_2.2 pthread_attr_setstackaddr F
>  GLIBC_2.2 pthread_attr_setstacksize F
>  GLIBC_2.2 pthread_cancel F
>  GLIBC_2.2 pthread_create F
> -GLIBC_2.2 pthread_detach F
>  GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_join F
> @@ -27,7 +26,6 @@ GLIBC_2.2 pthread_setconcurrency F
>  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_join F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
>  GLIBC_2.3.3 __pthread_register_cancel F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index 586aec23cb..a893315017 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -1313,6 +1313,7 @@ GLIBC_2.2.5 pthread_condattr_destroy F
>  GLIBC_2.2.5 pthread_condattr_getpshared F
>  GLIBC_2.2.5 pthread_condattr_init F
>  GLIBC_2.2.5 pthread_condattr_setpshared F
> +GLIBC_2.2.5 pthread_detach F
>  GLIBC_2.2.5 pthread_equal F
>  GLIBC_2.2.5 pthread_exit F
>  GLIBC_2.2.5 pthread_getattr_np F
> @@ -1998,6 +1999,7 @@ GLIBC_2.28 mtx_unlock F
>  GLIBC_2.28 renameat2 F
>  GLIBC_2.28 statx F
>  GLIBC_2.28 thrd_current F
> +GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
> @@ -2235,6 +2237,7 @@ GLIBC_2.34 pthread_condattr_getclock F
>  GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
> +GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_key_delete F
> @@ -2294,6 +2297,7 @@ GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 sem_trywait F
>  GLIBC_2.34 sem_unlink F
>  GLIBC_2.34 sem_wait F
> +GLIBC_2.34 thrd_detach F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> index fd77f8a602..dac904b6e9 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> @@ -19,14 +19,12 @@ GLIBC_2.2.5 pthread_attr_setstackaddr F
>  GLIBC_2.2.5 pthread_attr_setstacksize F
>  GLIBC_2.2.5 pthread_cancel F
>  GLIBC_2.2.5 pthread_create F
> -GLIBC_2.2.5 pthread_detach F
>  GLIBC_2.2.5 pthread_getconcurrency F
>  GLIBC_2.2.5 pthread_getcpuclockid F
>  GLIBC_2.2.5 pthread_join F
>  GLIBC_2.2.5 pthread_setconcurrency 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_join F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
>  GLIBC_2.3.3 __pthread_register_cancel F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index 1529b87004..fa9319c610 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -1481,6 +1481,7 @@ GLIBC_2.16 pthread_condattr_getpshared F
>  GLIBC_2.16 pthread_condattr_init F
>  GLIBC_2.16 pthread_condattr_setclock F
>  GLIBC_2.16 pthread_condattr_setpshared F
> +GLIBC_2.16 pthread_detach F
>  GLIBC_2.16 pthread_equal F
>  GLIBC_2.16 pthread_exit F
>  GLIBC_2.16 pthread_getaffinity_np F
> @@ -2264,6 +2265,7 @@ GLIBC_2.28 mtx_unlock F
>  GLIBC_2.28 renameat2 F
>  GLIBC_2.28 statx F
>  GLIBC_2.28 thrd_current F
> +GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_equal F
>  GLIBC_2.28 thrd_exit F
>  GLIBC_2.28 thrd_sleep F
> @@ -2340,6 +2342,7 @@ GLIBC_2.34 pthread_condattr_getclock F
>  GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
> +GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_key_create F
>  GLIBC_2.34 pthread_key_delete F
> @@ -2399,6 +2402,7 @@ GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 sem_trywait F
>  GLIBC_2.34 sem_unlink F
>  GLIBC_2.34 sem_wait F
> +GLIBC_2.34 thrd_detach F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> index ab2ec9227a..b8bbe71c59 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> @@ -20,7 +20,6 @@ GLIBC_2.16 pthread_attr_setstackaddr F
>  GLIBC_2.16 pthread_attr_setstacksize F
>  GLIBC_2.16 pthread_cancel F
>  GLIBC_2.16 pthread_create F
> -GLIBC_2.16 pthread_detach F
>  GLIBC_2.16 pthread_getconcurrency F
>  GLIBC_2.16 pthread_getcpuclockid F
>  GLIBC_2.16 pthread_getname_np F
> @@ -34,7 +33,6 @@ GLIBC_2.16 pthread_timedjoin_np F
>  GLIBC_2.16 pthread_tryjoin_np F
>  GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.28 thrd_create F
> -GLIBC_2.28 thrd_detach F
>  GLIBC_2.28 thrd_join F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 pthread_clockjoin_np F
> 

Ok.
diff mbox series

Patch

diff --git a/nptl/Makefile b/nptl/Makefile
index 82dc6f466d..3ef4cb966b 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -95,6 +95,7 @@  routines = \
   pthread_condattr_init \
   pthread_condattr_setclock \
   pthread_condattr_setpshared \
+  pthread_detach \
   pthread_equal \
   pthread_exit \
   pthread_getaffinity \
@@ -201,7 +202,6 @@  libpthread-routines = \
   pthread_cancel \
   pthread_clockjoin \
   pthread_create \
-  pthread_detach \
   pthread_getattr_default_np \
   pthread_getconcurrency \
   pthread_getcpuclockid \
diff --git a/nptl/Versions b/nptl/Versions
index da610a4803..46ae34a1a2 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -37,6 +37,7 @@  libc {
     pthread_cond_wait;
     pthread_condattr_destroy;
     pthread_condattr_init;
+    pthread_detach;
     pthread_equal;
     pthread_exit;
     pthread_getschedparam;
@@ -186,6 +187,7 @@  libc {
     mtx_trylock;
     mtx_unlock;
     thrd_current;
+    thrd_detach;
     thrd_equal;
     thrd_exit;
     thrd_sleep;
@@ -240,6 +242,7 @@  libc {
     pthread_condattr_getpshared;
     pthread_condattr_setclock;
     pthread_condattr_setpshared;
+    pthread_detach;
     pthread_getspecific;
     pthread_key_create;
     pthread_key_delete;
@@ -295,6 +298,7 @@  libc {
     sem_trywait;
     sem_unlink;
     sem_wait;
+    thrd_detach;
     thrd_exit;
     tss_create;
     tss_delete;
@@ -365,7 +369,6 @@  libpthread {
     funlockfile;
     pthread_cancel;
     pthread_create;
-    pthread_detach;
     pthread_join;
     pthread_sigmask;
   }
@@ -449,7 +452,6 @@  libpthread {
   # C11 thread symbols.
   GLIBC_2.28 {
     thrd_create;
-    thrd_detach;
     thrd_join;
   }
 
diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
index d580f71a38..34d133b187 100644
--- a/nptl/pthreadP.h
+++ b/nptl/pthreadP.h
@@ -529,6 +529,7 @@  extern int __pthread_atfork (void (*prepare) (void), void (*parent) (void),
 extern pthread_t __pthread_self (void);
 extern int __pthread_equal (pthread_t thread1, pthread_t thread2);
 extern int __pthread_detach (pthread_t th);
+libc_hidden_proto (__pthread_detach)
 extern int __pthread_cancel (pthread_t th);
 extern int __pthread_kill (pthread_t threadid, int signo);
 extern void __pthread_exit (void *value) __attribute__ ((__noreturn__));
diff --git a/nptl/pthread_detach.c b/nptl/pthread_detach.c
index 410255bbe1..ac50db9b0e 100644
--- a/nptl/pthread_detach.c
+++ b/nptl/pthread_detach.c
@@ -19,10 +19,10 @@ 
 #include <errno.h>
 #include "pthreadP.h"
 #include <atomic.h>
-
+#include <shlib-compat.h>
 
 int
-__pthread_detach (pthread_t th)
+___pthread_detach (pthread_t th)
 {
   struct pthread *pd = (struct pthread *) th;
 
@@ -53,4 +53,12 @@  __pthread_detach (pthread_t th)
 
   return result;
 }
-weak_alias (__pthread_detach, pthread_detach)
+versioned_symbol (libc, ___pthread_detach, pthread_detach, GLIBC_2_34);
+libc_hidden_ver (___pthread_detach, __pthread_detach)
+#ifndef SHARED
+strong_alias (___pthread_detach, __pthread_detach)
+#endif
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_34)
+compat_symbol (libc, ___pthread_detach, pthread_detach, GLIBC_2_0);
+#endif
diff --git a/sysdeps/pthread/Makefile b/sysdeps/pthread/Makefile
index 54bb11bab9..ec8e3af577 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_join
+libpthread-routines += thrd_create thrd_join
 
 $(libpthread-routines-var) += \
   call_once \
@@ -47,6 +47,7 @@  $(libpthread-routines-var) += \
   mtx_timedlock \
   mtx_trylock \
   mtx_unlock \
+  thrd_detach \
   thrd_exit \
   tss_create \
   tss_delete \
diff --git a/sysdeps/pthread/thrd_detach.c b/sysdeps/pthread/thrd_detach.c
index cbc63f57a2..29ac011d5b 100644
--- a/sysdeps/pthread/thrd_detach.c
+++ b/sysdeps/pthread/thrd_detach.c
@@ -17,12 +17,21 @@ 
    <https://www.gnu.org/licenses/>.  */
 
 #include "thrd_priv.h"
+#include <shlib-compat.h>
 
 int
-thrd_detach (thrd_t thr)
+__thrd_detach (thrd_t thr)
 {
   int err_code;
 
   err_code = __pthread_detach (thr);
   return thrd_err_map (err_code);
 }
+#if PTHREAD_IN_LIBC
+versioned_symbol (libc, __thrd_detach, thrd_detach, GLIBC_2_34);
+# if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_28, GLIBC_2_34)
+compat_symbol (libc, __thrd_detach, thrd_detach, GLIBC_2_28);
+# endif
+#else /* !PTHREAD_IN_LIBC */
+strong_alias (__thrd_detach, thrd_detach)
+#endif
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index caee529c98..b5b0b44697 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -1474,6 +1474,7 @@  GLIBC_2.17 pthread_condattr_getpshared F
 GLIBC_2.17 pthread_condattr_init F
 GLIBC_2.17 pthread_condattr_setclock F
 GLIBC_2.17 pthread_condattr_setpshared F
+GLIBC_2.17 pthread_detach F
 GLIBC_2.17 pthread_equal F
 GLIBC_2.17 pthread_exit F
 GLIBC_2.17 pthread_getaffinity_np F
@@ -2251,6 +2252,7 @@  GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
@@ -2325,6 +2327,7 @@  GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
+GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
 GLIBC_2.34 pthread_key_delete F
@@ -2384,6 +2387,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
index f09c6d434a..71627a5cc8 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
@@ -20,7 +20,6 @@  GLIBC_2.17 pthread_attr_setstackaddr F
 GLIBC_2.17 pthread_attr_setstacksize F
 GLIBC_2.17 pthread_cancel F
 GLIBC_2.17 pthread_create F
-GLIBC_2.17 pthread_detach F
 GLIBC_2.17 pthread_getconcurrency F
 GLIBC_2.17 pthread_getcpuclockid F
 GLIBC_2.17 pthread_getname_np F
@@ -34,7 +33,6 @@  GLIBC_2.17 pthread_timedjoin_np F
 GLIBC_2.17 pthread_tryjoin_np F
 GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.28 thrd_create F
-GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_join F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 pthread_clockjoin_np F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 7a9a6608f4..20d4855e90 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -897,6 +897,7 @@  GLIBC_2.0 pthread_cond_timedwait F
 GLIBC_2.0 pthread_cond_wait F
 GLIBC_2.0 pthread_condattr_destroy F
 GLIBC_2.0 pthread_condattr_init F
+GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_equal F
 GLIBC_2.0 pthread_exit F
 GLIBC_2.0 pthread_getschedparam F
@@ -2149,6 +2150,7 @@  GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
@@ -2412,6 +2414,7 @@  GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
+GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
 GLIBC_2.34 pthread_key_delete F
@@ -2471,6 +2474,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
index 9b2e09a2e4..b4ea31102a 100644
--- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
@@ -7,7 +7,6 @@  GLIBC_2.0 ftrylockfile F
 GLIBC_2.0 funlockfile F
 GLIBC_2.0 pthread_cancel F
 GLIBC_2.0 pthread_create F
-GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join F
 GLIBC_2.1 pthread_attr_getguardsize F
 GLIBC_2.1 pthread_attr_getstackaddr F
@@ -30,7 +29,6 @@  GLIBC_2.2 pthread_getcpuclockid F
 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_join F
 GLIBC_2.3.2 __libpthread_version_placeholder F
 GLIBC_2.3.3 __pthread_register_cancel F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 6fef10b0ad..19eb517f28 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1414,6 +1414,7 @@  GLIBC_2.32 pthread_condattr_getpshared F
 GLIBC_2.32 pthread_condattr_init F
 GLIBC_2.32 pthread_condattr_setclock F
 GLIBC_2.32 pthread_condattr_setpshared F
+GLIBC_2.32 pthread_detach F
 GLIBC_2.32 pthread_equal F
 GLIBC_2.32 pthread_exit F
 GLIBC_2.32 pthread_getaffinity_np F
@@ -1862,6 +1863,7 @@  GLIBC_2.32 textdomain F
 GLIBC_2.32 tfind F
 GLIBC_2.32 tgkill F
 GLIBC_2.32 thrd_current F
+GLIBC_2.32 thrd_detach F
 GLIBC_2.32 thrd_equal F
 GLIBC_2.32 thrd_exit F
 GLIBC_2.32 thrd_sleep F
@@ -2084,6 +2086,7 @@  GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
+GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
 GLIBC_2.34 pthread_key_delete F
@@ -2143,6 +2146,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
index 8a4bea9aa9..8ac0cde1ee 100644
--- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
@@ -21,7 +21,6 @@  GLIBC_2.32 pthread_attr_setstacksize F
 GLIBC_2.32 pthread_cancel F
 GLIBC_2.32 pthread_clockjoin_np F
 GLIBC_2.32 pthread_create F
-GLIBC_2.32 pthread_detach F
 GLIBC_2.32 pthread_getattr_default_np F
 GLIBC_2.32 pthread_getconcurrency F
 GLIBC_2.32 pthread_getcpuclockid F
@@ -35,5 +34,4 @@  GLIBC_2.32 pthread_sigqueue F
 GLIBC_2.32 pthread_timedjoin_np F
 GLIBC_2.32 pthread_tryjoin_np F
 GLIBC_2.32 thrd_create F
-GLIBC_2.32 thrd_detach F
 GLIBC_2.32 thrd_join F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index f97aeeb047..9ba6a30214 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 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
@@ -214,6 +215,7 @@  GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
+GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
 GLIBC_2.34 pthread_key_delete F
@@ -273,6 +275,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
@@ -1688,6 +1691,7 @@  GLIBC_2.4 pthread_condattr_getpshared F
 GLIBC_2.4 pthread_condattr_init F
 GLIBC_2.4 pthread_condattr_setclock F
 GLIBC_2.4 pthread_condattr_setpshared F
+GLIBC_2.4 pthread_detach F
 GLIBC_2.4 pthread_equal F
 GLIBC_2.4 pthread_exit F
 GLIBC_2.4 pthread_getaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
index 117d44ad5f..b74a43658d 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
@@ -3,7 +3,6 @@  GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
 GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.28 thrd_create F
-GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_join F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 pthread_clockjoin_np F
@@ -30,7 +29,6 @@  GLIBC_2.4 pthread_attr_setstackaddr F
 GLIBC_2.4 pthread_attr_setstacksize F
 GLIBC_2.4 pthread_cancel F
 GLIBC_2.4 pthread_create F
-GLIBC_2.4 pthread_detach F
 GLIBC_2.4 pthread_getconcurrency F
 GLIBC_2.4 pthread_getcpuclockid F
 GLIBC_2.4 pthread_join F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 70f5f81faf..9a79a6622e 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 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
@@ -211,6 +212,7 @@  GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
+GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
 GLIBC_2.34 pthread_key_delete F
@@ -270,6 +272,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
@@ -1685,6 +1688,7 @@  GLIBC_2.4 pthread_condattr_getpshared F
 GLIBC_2.4 pthread_condattr_init F
 GLIBC_2.4 pthread_condattr_setclock F
 GLIBC_2.4 pthread_condattr_setpshared F
+GLIBC_2.4 pthread_detach F
 GLIBC_2.4 pthread_equal F
 GLIBC_2.4 pthread_exit F
 GLIBC_2.4 pthread_getaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
index 117d44ad5f..b74a43658d 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
@@ -3,7 +3,6 @@  GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
 GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.28 thrd_create F
-GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_join F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 pthread_clockjoin_np F
@@ -30,7 +29,6 @@  GLIBC_2.4 pthread_attr_setstackaddr F
 GLIBC_2.4 pthread_attr_setstacksize F
 GLIBC_2.4 pthread_cancel F
 GLIBC_2.4 pthread_create F
-GLIBC_2.4 pthread_detach F
 GLIBC_2.4 pthread_getconcurrency F
 GLIBC_2.4 pthread_getcpuclockid F
 GLIBC_2.4 pthread_join F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index bd80fd1afd..b21ff2de89 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -1474,6 +1474,7 @@  GLIBC_2.29 pthread_condattr_getpshared F
 GLIBC_2.29 pthread_condattr_init F
 GLIBC_2.29 pthread_condattr_setclock F
 GLIBC_2.29 pthread_condattr_setpshared F
+GLIBC_2.29 pthread_detach F
 GLIBC_2.29 pthread_equal F
 GLIBC_2.29 pthread_exit F
 GLIBC_2.29 pthread_getaffinity_np F
@@ -1953,6 +1954,7 @@  GLIBC_2.29 tempnam F
 GLIBC_2.29 textdomain F
 GLIBC_2.29 tfind F
 GLIBC_2.29 thrd_current F
+GLIBC_2.29 thrd_detach F
 GLIBC_2.29 thrd_equal F
 GLIBC_2.29 thrd_exit F
 GLIBC_2.29 thrd_sleep F
@@ -2268,6 +2270,7 @@  GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
+GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
 GLIBC_2.34 pthread_key_delete F
@@ -2327,6 +2330,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
index 8ad8fc7c7f..665cc7bc38 100644
--- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
@@ -20,7 +20,6 @@  GLIBC_2.29 pthread_attr_setstackaddr F
 GLIBC_2.29 pthread_attr_setstacksize F
 GLIBC_2.29 pthread_cancel F
 GLIBC_2.29 pthread_create F
-GLIBC_2.29 pthread_detach F
 GLIBC_2.29 pthread_getattr_default_np F
 GLIBC_2.29 pthread_getconcurrency F
 GLIBC_2.29 pthread_getcpuclockid F
@@ -34,7 +33,6 @@  GLIBC_2.29 pthread_sigqueue F
 GLIBC_2.29 pthread_timedjoin_np F
 GLIBC_2.29 pthread_tryjoin_np F
 GLIBC_2.29 thrd_create F
-GLIBC_2.29 thrd_detach F
 GLIBC_2.29 thrd_join F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 pthread_clockjoin_np F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index fb40c0292c..3e893dfcaa 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -1299,6 +1299,7 @@  GLIBC_2.2 pthread_condattr_destroy F
 GLIBC_2.2 pthread_condattr_getpshared F
 GLIBC_2.2 pthread_condattr_init F
 GLIBC_2.2 pthread_condattr_setpshared F
+GLIBC_2.2 pthread_detach F
 GLIBC_2.2 pthread_equal F
 GLIBC_2.2 pthread_exit F
 GLIBC_2.2 pthread_getschedparam F
@@ -1982,6 +1983,7 @@  GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
@@ -2219,6 +2221,7 @@  GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
+GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
 GLIBC_2.34 pthread_key_delete F
@@ -2278,6 +2281,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
index 7e7fdfb8cd..cc1ca55754 100644
--- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
@@ -19,7 +19,6 @@  GLIBC_2.2 pthread_attr_setstackaddr F
 GLIBC_2.2 pthread_attr_setstacksize F
 GLIBC_2.2 pthread_cancel F
 GLIBC_2.2 pthread_create F
-GLIBC_2.2 pthread_detach F
 GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join F
@@ -27,7 +26,6 @@  GLIBC_2.2 pthread_setconcurrency F
 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_join F
 GLIBC_2.3.2 __libpthread_version_placeholder F
 GLIBC_2.3.3 __pthread_register_cancel F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index dd243f7808..f0af406ec5 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -874,6 +874,7 @@  GLIBC_2.0 pthread_cond_timedwait F
 GLIBC_2.0 pthread_cond_wait F
 GLIBC_2.0 pthread_condattr_destroy F
 GLIBC_2.0 pthread_condattr_init F
+GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_equal F
 GLIBC_2.0 pthread_exit F
 GLIBC_2.0 pthread_getschedparam F
@@ -2162,6 +2163,7 @@  GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
@@ -2402,6 +2404,7 @@  GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
+GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
 GLIBC_2.34 pthread_key_delete F
@@ -2461,6 +2464,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
index 1f5547e80c..0854a21e65 100644
--- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
@@ -7,7 +7,6 @@  GLIBC_2.0 ftrylockfile F
 GLIBC_2.0 funlockfile F
 GLIBC_2.0 pthread_cancel F
 GLIBC_2.0 pthread_create F
-GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join F
 GLIBC_2.1 pthread_attr_getguardsize F
 GLIBC_2.1 pthread_attr_getstackaddr F
@@ -30,7 +29,6 @@  GLIBC_2.2 pthread_getcpuclockid F
 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_join F
 GLIBC_2.3.2 __libpthread_version_placeholder F
 GLIBC_2.3.3 __pthread_register_cancel F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index b805382c4b..83985b06e0 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -1320,6 +1320,7 @@  GLIBC_2.2 pthread_condattr_destroy F
 GLIBC_2.2 pthread_condattr_getpshared F
 GLIBC_2.2 pthread_condattr_init F
 GLIBC_2.2 pthread_condattr_setpshared F
+GLIBC_2.2 pthread_detach F
 GLIBC_2.2 pthread_equal F
 GLIBC_2.2 pthread_exit F
 GLIBC_2.2 pthread_getschedparam F
@@ -2017,6 +2018,7 @@  GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
@@ -2253,6 +2255,7 @@  GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
+GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
 GLIBC_2.34 pthread_key_delete F
@@ -2312,6 +2315,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
index 3460d95267..c377a13e65 100644
--- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
@@ -19,7 +19,6 @@  GLIBC_2.2 pthread_attr_setstackaddr F
 GLIBC_2.2 pthread_attr_setstacksize F
 GLIBC_2.2 pthread_cancel F
 GLIBC_2.2 pthread_create F
-GLIBC_2.2 pthread_detach F
 GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join F
@@ -27,7 +26,6 @@  GLIBC_2.2 pthread_setconcurrency F
 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_join F
 GLIBC_2.3.2 __libpthread_version_placeholder F
 GLIBC_2.3.3 __pthread_register_cancel F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 21332b7b39..7d38f2fe55 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 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
@@ -215,6 +216,7 @@  GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
+GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
 GLIBC_2.34 pthread_key_delete F
@@ -274,6 +276,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
@@ -1668,6 +1671,7 @@  GLIBC_2.4 pthread_condattr_getpshared F
 GLIBC_2.4 pthread_condattr_init F
 GLIBC_2.4 pthread_condattr_setclock F
 GLIBC_2.4 pthread_condattr_setpshared F
+GLIBC_2.4 pthread_detach F
 GLIBC_2.4 pthread_equal F
 GLIBC_2.4 pthread_exit F
 GLIBC_2.4 pthread_getaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
index 117d44ad5f..b74a43658d 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
@@ -3,7 +3,6 @@  GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
 GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.28 thrd_create F
-GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_join F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 pthread_clockjoin_np F
@@ -30,7 +29,6 @@  GLIBC_2.4 pthread_attr_setstackaddr F
 GLIBC_2.4 pthread_attr_setstacksize F
 GLIBC_2.4 pthread_cancel F
 GLIBC_2.4 pthread_create F
-GLIBC_2.4 pthread_detach F
 GLIBC_2.4 pthread_getconcurrency F
 GLIBC_2.4 pthread_getcpuclockid F
 GLIBC_2.4 pthread_join F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 5159aee942..99ad04d858 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -873,6 +873,7 @@  GLIBC_2.0 pthread_cond_timedwait F
 GLIBC_2.0 pthread_cond_wait F
 GLIBC_2.0 pthread_condattr_destroy F
 GLIBC_2.0 pthread_condattr_init F
+GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_equal F
 GLIBC_2.0 pthread_exit F
 GLIBC_2.0 pthread_getschedparam F
@@ -2105,6 +2106,7 @@  GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
@@ -2345,6 +2347,7 @@  GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
+GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
 GLIBC_2.34 pthread_key_delete F
@@ -2404,6 +2407,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
index 1f5547e80c..0854a21e65 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
@@ -7,7 +7,6 @@  GLIBC_2.0 ftrylockfile F
 GLIBC_2.0 funlockfile F
 GLIBC_2.0 pthread_cancel F
 GLIBC_2.0 pthread_create F
-GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join F
 GLIBC_2.1 pthread_attr_getguardsize F
 GLIBC_2.1 pthread_attr_getstackaddr F
@@ -30,7 +29,6 @@  GLIBC_2.2 pthread_getcpuclockid F
 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_join F
 GLIBC_2.3.2 __libpthread_version_placeholder F
 GLIBC_2.3.3 __pthread_register_cancel F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 4609ade92c..5eebad0468 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -1476,6 +1476,7 @@  GLIBC_2.18 pthread_condattr_getpshared F
 GLIBC_2.18 pthread_condattr_init F
 GLIBC_2.18 pthread_condattr_setclock F
 GLIBC_2.18 pthread_condattr_setpshared F
+GLIBC_2.18 pthread_detach F
 GLIBC_2.18 pthread_equal F
 GLIBC_2.18 pthread_exit F
 GLIBC_2.18 pthread_getaffinity_np F
@@ -2242,6 +2243,7 @@  GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
@@ -2319,6 +2321,7 @@  GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
+GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
 GLIBC_2.34 pthread_key_delete F
@@ -2378,6 +2381,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
index c87d939959..f50eb41a1a 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
@@ -20,7 +20,6 @@  GLIBC_2.18 pthread_attr_setstackaddr F
 GLIBC_2.18 pthread_attr_setstacksize F
 GLIBC_2.18 pthread_cancel F
 GLIBC_2.18 pthread_create F
-GLIBC_2.18 pthread_detach F
 GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_getconcurrency F
 GLIBC_2.18 pthread_getcpuclockid F
@@ -34,7 +33,6 @@  GLIBC_2.18 pthread_sigqueue F
 GLIBC_2.18 pthread_timedjoin_np F
 GLIBC_2.18 pthread_tryjoin_np F
 GLIBC_2.28 thrd_create F
-GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_join F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 pthread_clockjoin_np F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 41db7ed508..9c54e2d42c 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -1476,6 +1476,7 @@  GLIBC_2.18 pthread_condattr_getpshared F
 GLIBC_2.18 pthread_condattr_init F
 GLIBC_2.18 pthread_condattr_setclock F
 GLIBC_2.18 pthread_condattr_setpshared F
+GLIBC_2.18 pthread_detach F
 GLIBC_2.18 pthread_equal F
 GLIBC_2.18 pthread_exit F
 GLIBC_2.18 pthread_getaffinity_np F
@@ -2242,6 +2243,7 @@  GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
@@ -2316,6 +2318,7 @@  GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
+GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
 GLIBC_2.34 pthread_key_delete F
@@ -2375,6 +2378,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
index c87d939959..f50eb41a1a 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
@@ -20,7 +20,6 @@  GLIBC_2.18 pthread_attr_setstackaddr F
 GLIBC_2.18 pthread_attr_setstacksize F
 GLIBC_2.18 pthread_cancel F
 GLIBC_2.18 pthread_create F
-GLIBC_2.18 pthread_detach F
 GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_getconcurrency F
 GLIBC_2.18 pthread_getcpuclockid F
@@ -34,7 +33,6 @@  GLIBC_2.18 pthread_sigqueue F
 GLIBC_2.18 pthread_timedjoin_np F
 GLIBC_2.18 pthread_tryjoin_np F
 GLIBC_2.28 thrd_create F
-GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_join F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 pthread_clockjoin_np F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 77d3b72f2b..34e77850a1 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -870,6 +870,7 @@  GLIBC_2.0 pthread_cond_timedwait F
 GLIBC_2.0 pthread_cond_wait F
 GLIBC_2.0 pthread_condattr_destroy F
 GLIBC_2.0 pthread_condattr_init F
+GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_equal F
 GLIBC_2.0 pthread_exit F
 GLIBC_2.0 pthread_getschedparam F
@@ -2075,6 +2076,7 @@  GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
@@ -2308,6 +2310,7 @@  GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
+GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
 GLIBC_2.34 pthread_key_delete F
@@ -2367,6 +2370,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
index fa52921d78..a1ba1503a5 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
@@ -7,7 +7,6 @@  GLIBC_2.0 ftrylockfile F
 GLIBC_2.0 funlockfile F
 GLIBC_2.0 pthread_cancel F
 GLIBC_2.0 pthread_create F
-GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join F
 GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 pthread_getname_np F
@@ -28,7 +27,6 @@  GLIBC_2.2 pthread_setconcurrency F
 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_join F
 GLIBC_2.3.2 __libpthread_version_placeholder F
 GLIBC_2.3.3 __pthread_register_cancel F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index bfc6ca8d87..d01dc8462b 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -870,6 +870,7 @@  GLIBC_2.0 pthread_cond_timedwait F
 GLIBC_2.0 pthread_cond_wait F
 GLIBC_2.0 pthread_condattr_destroy F
 GLIBC_2.0 pthread_condattr_init F
+GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_equal F
 GLIBC_2.0 pthread_exit F
 GLIBC_2.0 pthread_getschedparam F
@@ -2073,6 +2074,7 @@  GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
@@ -2306,6 +2308,7 @@  GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
+GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
 GLIBC_2.34 pthread_key_delete F
@@ -2365,6 +2368,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
index fa52921d78..a1ba1503a5 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
@@ -7,7 +7,6 @@  GLIBC_2.0 ftrylockfile F
 GLIBC_2.0 funlockfile F
 GLIBC_2.0 pthread_cancel F
 GLIBC_2.0 pthread_create F
-GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join F
 GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 pthread_getname_np F
@@ -28,7 +27,6 @@  GLIBC_2.2 pthread_setconcurrency F
 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_join F
 GLIBC_2.3.2 __libpthread_version_placeholder F
 GLIBC_2.3.3 __pthread_register_cancel F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index cdade4e56a..a906bb949a 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -870,6 +870,7 @@  GLIBC_2.0 pthread_cond_timedwait F
 GLIBC_2.0 pthread_cond_wait F
 GLIBC_2.0 pthread_condattr_destroy F
 GLIBC_2.0 pthread_condattr_init F
+GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_equal F
 GLIBC_2.0 pthread_exit F
 GLIBC_2.0 pthread_getschedparam F
@@ -2081,6 +2082,7 @@  GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
@@ -2314,6 +2316,7 @@  GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
+GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
 GLIBC_2.34 pthread_key_delete F
@@ -2373,6 +2376,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 62184c7a10..89dd91a0a4 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -868,6 +868,7 @@  GLIBC_2.0 pthread_cond_timedwait F
 GLIBC_2.0 pthread_cond_wait F
 GLIBC_2.0 pthread_condattr_destroy F
 GLIBC_2.0 pthread_condattr_init F
+GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_equal F
 GLIBC_2.0 pthread_exit F
 GLIBC_2.0 pthread_getschedparam F
@@ -2076,6 +2077,7 @@  GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
@@ -2308,6 +2310,7 @@  GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
+GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
 GLIBC_2.34 pthread_key_delete F
@@ -2367,6 +2370,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index bc230f7020..8b2b19d09b 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -1519,6 +1519,7 @@  GLIBC_2.21 pthread_condattr_getpshared F
 GLIBC_2.21 pthread_condattr_init F
 GLIBC_2.21 pthread_condattr_setclock F
 GLIBC_2.21 pthread_condattr_setpshared F
+GLIBC_2.21 pthread_detach F
 GLIBC_2.21 pthread_equal F
 GLIBC_2.21 pthread_exit F
 GLIBC_2.21 pthread_getaffinity_np F
@@ -2284,6 +2285,7 @@  GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
@@ -2358,6 +2360,7 @@  GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
+GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
 GLIBC_2.34 pthread_key_delete F
@@ -2417,6 +2420,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
index 502268cbd5..27fb415228 100644
--- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
@@ -20,7 +20,6 @@  GLIBC_2.21 pthread_attr_setstackaddr F
 GLIBC_2.21 pthread_attr_setstacksize F
 GLIBC_2.21 pthread_cancel F
 GLIBC_2.21 pthread_create F
-GLIBC_2.21 pthread_detach F
 GLIBC_2.21 pthread_getattr_default_np F
 GLIBC_2.21 pthread_getconcurrency F
 GLIBC_2.21 pthread_getcpuclockid F
@@ -34,7 +33,6 @@  GLIBC_2.21 pthread_sigqueue F
 GLIBC_2.21 pthread_timedjoin_np F
 GLIBC_2.21 pthread_tryjoin_np F
 GLIBC_2.28 thrd_create F
-GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_join F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 pthread_clockjoin_np F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 0e384dd37e..84aab42aaa 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -881,6 +881,7 @@  GLIBC_2.0 pthread_cond_timedwait F
 GLIBC_2.0 pthread_cond_wait F
 GLIBC_2.0 pthread_condattr_destroy F
 GLIBC_2.0 pthread_condattr_init F
+GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_equal F
 GLIBC_2.0 pthread_exit F
 GLIBC_2.0 pthread_getschedparam F
@@ -2109,6 +2110,7 @@  GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
@@ -2372,6 +2374,7 @@  GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
+GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
 GLIBC_2.34 pthread_key_delete F
@@ -2431,6 +2434,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
index c2ac178742..831b66ee72 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
@@ -7,7 +7,6 @@  GLIBC_2.0 ftrylockfile F
 GLIBC_2.0 funlockfile F
 GLIBC_2.0 pthread_cancel F
 GLIBC_2.0 pthread_create F
-GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join F
 GLIBC_2.1 pthread_attr_getguardsize F
 GLIBC_2.1 pthread_attr_getstackaddr F
@@ -30,7 +29,6 @@  GLIBC_2.2 pthread_getcpuclockid F
 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_join F
 GLIBC_2.3.2 __libpthread_version_placeholder F
 GLIBC_2.3.3 __pthread_register_cancel F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index dac4a03938..00201c5544 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -881,6 +881,7 @@  GLIBC_2.0 pthread_cond_timedwait F
 GLIBC_2.0 pthread_cond_wait F
 GLIBC_2.0 pthread_condattr_destroy F
 GLIBC_2.0 pthread_condattr_init F
+GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_equal F
 GLIBC_2.0 pthread_exit F
 GLIBC_2.0 pthread_getschedparam F
@@ -2113,6 +2114,7 @@  GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
@@ -2405,6 +2407,7 @@  GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
+GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
 GLIBC_2.34 pthread_key_delete F
@@ -2464,6 +2467,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 6a8958d5a8..8725f4a851 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 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
@@ -1422,6 +1423,7 @@  GLIBC_2.3 pthread_condattr_destroy F
 GLIBC_2.3 pthread_condattr_getpshared F
 GLIBC_2.3 pthread_condattr_init F
 GLIBC_2.3 pthread_condattr_setpshared F
+GLIBC_2.3 pthread_detach F
 GLIBC_2.3 pthread_equal F
 GLIBC_2.3 pthread_exit F
 GLIBC_2.3 pthread_getattr_np F
@@ -2220,6 +2222,7 @@  GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
+GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
 GLIBC_2.34 pthread_key_delete F
@@ -2279,6 +2282,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
index 89b4083cf4..91a5618412 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
@@ -3,7 +3,6 @@  GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
 GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.28 thrd_create F
-GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_join F
 GLIBC_2.3 _IO_flockfile F
 GLIBC_2.3 _IO_ftrylockfile F
@@ -22,7 +21,6 @@  GLIBC_2.3 pthread_attr_setstackaddr F
 GLIBC_2.3 pthread_attr_setstacksize F
 GLIBC_2.3 pthread_cancel F
 GLIBC_2.3 pthread_create F
-GLIBC_2.3 pthread_detach F
 GLIBC_2.3 pthread_getconcurrency F
 GLIBC_2.3 pthread_getcpuclockid F
 GLIBC_2.3 pthread_join F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 16f4d90871..89ab60dc38 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -1562,6 +1562,7 @@  GLIBC_2.17 pthread_condattr_getpshared F
 GLIBC_2.17 pthread_condattr_init F
 GLIBC_2.17 pthread_condattr_setclock F
 GLIBC_2.17 pthread_condattr_setpshared F
+GLIBC_2.17 pthread_detach F
 GLIBC_2.17 pthread_equal F
 GLIBC_2.17 pthread_exit F
 GLIBC_2.17 pthread_getaffinity_np F
@@ -2341,6 +2342,7 @@  GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
@@ -2521,6 +2523,7 @@  GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
+GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
 GLIBC_2.34 pthread_key_delete F
@@ -2580,6 +2583,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
index f09c6d434a..71627a5cc8 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
@@ -20,7 +20,6 @@  GLIBC_2.17 pthread_attr_setstackaddr F
 GLIBC_2.17 pthread_attr_setstacksize F
 GLIBC_2.17 pthread_cancel F
 GLIBC_2.17 pthread_create F
-GLIBC_2.17 pthread_detach F
 GLIBC_2.17 pthread_getconcurrency F
 GLIBC_2.17 pthread_getcpuclockid F
 GLIBC_2.17 pthread_getname_np F
@@ -34,7 +33,6 @@  GLIBC_2.17 pthread_timedjoin_np F
 GLIBC_2.17 pthread_tryjoin_np F
 GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.28 thrd_create F
-GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_join F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 pthread_clockjoin_np F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 876ed3d11f..e201491852 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1416,6 +1416,7 @@  GLIBC_2.33 pthread_condattr_getpshared F
 GLIBC_2.33 pthread_condattr_init F
 GLIBC_2.33 pthread_condattr_setclock F
 GLIBC_2.33 pthread_condattr_setpshared F
+GLIBC_2.33 pthread_detach F
 GLIBC_2.33 pthread_equal F
 GLIBC_2.33 pthread_exit F
 GLIBC_2.33 pthread_getaffinity_np F
@@ -1872,6 +1873,7 @@  GLIBC_2.33 textdomain F
 GLIBC_2.33 tfind F
 GLIBC_2.33 tgkill F
 GLIBC_2.33 thrd_current F
+GLIBC_2.33 thrd_detach F
 GLIBC_2.33 thrd_equal F
 GLIBC_2.33 thrd_exit F
 GLIBC_2.33 thrd_sleep F
@@ -2086,6 +2088,7 @@  GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
+GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
 GLIBC_2.34 pthread_key_delete F
@@ -2145,6 +2148,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
index d6f50be603..0ad1f57b44 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
@@ -21,7 +21,6 @@  GLIBC_2.33 pthread_attr_setstacksize F
 GLIBC_2.33 pthread_cancel F
 GLIBC_2.33 pthread_clockjoin_np F
 GLIBC_2.33 pthread_create F
-GLIBC_2.33 pthread_detach F
 GLIBC_2.33 pthread_getattr_default_np F
 GLIBC_2.33 pthread_getconcurrency F
 GLIBC_2.33 pthread_getcpuclockid F
@@ -35,5 +34,4 @@  GLIBC_2.33 pthread_sigqueue F
 GLIBC_2.33 pthread_timedjoin_np F
 GLIBC_2.33 pthread_tryjoin_np F
 GLIBC_2.33 thrd_create F
-GLIBC_2.33 thrd_detach F
 GLIBC_2.33 thrd_join F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index ec2dbc5f6c..8f5d8490a7 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -1464,6 +1464,7 @@  GLIBC_2.27 pthread_condattr_getpshared F
 GLIBC_2.27 pthread_condattr_init F
 GLIBC_2.27 pthread_condattr_setclock F
 GLIBC_2.27 pthread_condattr_setpshared F
+GLIBC_2.27 pthread_detach F
 GLIBC_2.27 pthread_equal F
 GLIBC_2.27 pthread_exit F
 GLIBC_2.27 pthread_getaffinity_np F
@@ -2212,6 +2213,7 @@  GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
@@ -2286,6 +2288,7 @@  GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
+GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
 GLIBC_2.34 pthread_key_delete F
@@ -2345,6 +2348,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
index 240dfc6c9a..74b4bdce74 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
@@ -20,7 +20,6 @@  GLIBC_2.27 pthread_attr_setstackaddr F
 GLIBC_2.27 pthread_attr_setstacksize F
 GLIBC_2.27 pthread_cancel F
 GLIBC_2.27 pthread_create F
-GLIBC_2.27 pthread_detach F
 GLIBC_2.27 pthread_getattr_default_np F
 GLIBC_2.27 pthread_getconcurrency F
 GLIBC_2.27 pthread_getcpuclockid F
@@ -34,7 +33,6 @@  GLIBC_2.27 pthread_sigqueue F
 GLIBC_2.27 pthread_timedjoin_np F
 GLIBC_2.27 pthread_tryjoin_np F
 GLIBC_2.28 thrd_create F
-GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_join F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 pthread_clockjoin_np F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index d1bc174497..686a10ee24 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -872,6 +872,7 @@  GLIBC_2.0 pthread_cond_timedwait F
 GLIBC_2.0 pthread_cond_wait F
 GLIBC_2.0 pthread_condattr_destroy F
 GLIBC_2.0 pthread_condattr_init F
+GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_equal F
 GLIBC_2.0 pthread_exit F
 GLIBC_2.0 pthread_getschedparam F
@@ -2118,6 +2119,7 @@  GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
@@ -2370,6 +2372,7 @@  GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
+GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
 GLIBC_2.34 pthread_key_delete F
@@ -2429,6 +2432,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
index 20ee83baca..87db062308 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
@@ -7,7 +7,6 @@  GLIBC_2.0 ftrylockfile F
 GLIBC_2.0 funlockfile F
 GLIBC_2.0 pthread_cancel F
 GLIBC_2.0 pthread_create F
-GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join F
 GLIBC_2.1 pthread_attr_getguardsize F
 GLIBC_2.1 pthread_attr_getstackaddr F
@@ -31,7 +30,6 @@  GLIBC_2.2 pthread_getcpuclockid F
 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_join F
 GLIBC_2.3.2 __libpthread_version_placeholder F
 GLIBC_2.3.3 __pthread_register_cancel F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 3771dc652a..8ff9d69dca 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -1317,6 +1317,7 @@  GLIBC_2.2 pthread_condattr_destroy F
 GLIBC_2.2 pthread_condattr_getpshared F
 GLIBC_2.2 pthread_condattr_init F
 GLIBC_2.2 pthread_condattr_setpshared F
+GLIBC_2.2 pthread_detach F
 GLIBC_2.2 pthread_equal F
 GLIBC_2.2 pthread_exit F
 GLIBC_2.2 pthread_getschedparam F
@@ -2009,6 +2010,7 @@  GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
@@ -2257,6 +2259,7 @@  GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
+GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
 GLIBC_2.34 pthread_key_delete F
@@ -2316,6 +2319,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
index 35f0b89d66..3bf0bc9538 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
@@ -20,7 +20,6 @@  GLIBC_2.2 pthread_attr_setstackaddr F
 GLIBC_2.2 pthread_attr_setstacksize F
 GLIBC_2.2 pthread_cancel F
 GLIBC_2.2 pthread_create F
-GLIBC_2.2 pthread_detach F
 GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join F
@@ -28,7 +27,6 @@  GLIBC_2.2 pthread_setconcurrency F
 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_join F
 GLIBC_2.3.2 __libpthread_version_placeholder F
 GLIBC_2.3.3 __pthread_register_cancel F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 6355ca1061..9ecce30901 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -1303,6 +1303,7 @@  GLIBC_2.2 pthread_condattr_destroy F
 GLIBC_2.2 pthread_condattr_getpshared F
 GLIBC_2.2 pthread_condattr_init F
 GLIBC_2.2 pthread_condattr_setpshared F
+GLIBC_2.2 pthread_detach F
 GLIBC_2.2 pthread_equal F
 GLIBC_2.2 pthread_exit F
 GLIBC_2.2 pthread_getschedparam F
@@ -1986,6 +1987,7 @@  GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
@@ -2226,6 +2228,7 @@  GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
+GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
 GLIBC_2.34 pthread_key_delete F
@@ -2285,6 +2288,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
index 7e7fdfb8cd..cc1ca55754 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
@@ -19,7 +19,6 @@  GLIBC_2.2 pthread_attr_setstackaddr F
 GLIBC_2.2 pthread_attr_setstacksize F
 GLIBC_2.2 pthread_cancel F
 GLIBC_2.2 pthread_create F
-GLIBC_2.2 pthread_detach F
 GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join F
@@ -27,7 +26,6 @@  GLIBC_2.2 pthread_setconcurrency F
 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_join F
 GLIBC_2.3.2 __libpthread_version_placeholder F
 GLIBC_2.3.3 __pthread_register_cancel F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index a1e3c3a93b..a6faf4e2d6 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -1303,6 +1303,7 @@  GLIBC_2.2 pthread_condattr_destroy F
 GLIBC_2.2 pthread_condattr_getpshared F
 GLIBC_2.2 pthread_condattr_init F
 GLIBC_2.2 pthread_condattr_setpshared F
+GLIBC_2.2 pthread_detach F
 GLIBC_2.2 pthread_equal F
 GLIBC_2.2 pthread_exit F
 GLIBC_2.2 pthread_getschedparam F
@@ -1986,6 +1987,7 @@  GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
@@ -2223,6 +2225,7 @@  GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
+GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
 GLIBC_2.34 pthread_key_delete F
@@ -2282,6 +2285,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
index 7e7fdfb8cd..cc1ca55754 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
@@ -19,7 +19,6 @@  GLIBC_2.2 pthread_attr_setstackaddr F
 GLIBC_2.2 pthread_attr_setstacksize F
 GLIBC_2.2 pthread_cancel F
 GLIBC_2.2 pthread_create F
-GLIBC_2.2 pthread_detach F
 GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join F
@@ -27,7 +26,6 @@  GLIBC_2.2 pthread_setconcurrency F
 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_join F
 GLIBC_2.3.2 __libpthread_version_placeholder F
 GLIBC_2.3.3 __pthread_register_cancel F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 17026a997b..4d08e96ffa 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -875,6 +875,7 @@  GLIBC_2.0 pthread_cond_timedwait F
 GLIBC_2.0 pthread_cond_wait F
 GLIBC_2.0 pthread_condattr_destroy F
 GLIBC_2.0 pthread_condattr_init F
+GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_equal F
 GLIBC_2.0 pthread_exit F
 GLIBC_2.0 pthread_getschedparam F
@@ -2112,6 +2113,7 @@  GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
@@ -2361,6 +2363,7 @@  GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
+GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
 GLIBC_2.34 pthread_key_delete F
@@ -2420,6 +2423,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
index 9b2e09a2e4..b4ea31102a 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
@@ -7,7 +7,6 @@  GLIBC_2.0 ftrylockfile F
 GLIBC_2.0 funlockfile F
 GLIBC_2.0 pthread_cancel F
 GLIBC_2.0 pthread_create F
-GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join F
 GLIBC_2.1 pthread_attr_getguardsize F
 GLIBC_2.1 pthread_attr_getstackaddr F
@@ -30,7 +29,6 @@  GLIBC_2.2 pthread_getcpuclockid F
 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_join F
 GLIBC_2.3.2 __libpthread_version_placeholder F
 GLIBC_2.3.3 __pthread_register_cancel F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 9dc72e0556..bc9ddd71a6 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -1346,6 +1346,7 @@  GLIBC_2.2 pthread_condattr_destroy F
 GLIBC_2.2 pthread_condattr_getpshared F
 GLIBC_2.2 pthread_condattr_init F
 GLIBC_2.2 pthread_condattr_setpshared F
+GLIBC_2.2 pthread_detach F
 GLIBC_2.2 pthread_equal F
 GLIBC_2.2 pthread_exit F
 GLIBC_2.2 pthread_getschedparam F
@@ -2039,6 +2040,7 @@  GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
@@ -2274,6 +2276,7 @@  GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
+GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
 GLIBC_2.34 pthread_key_delete F
@@ -2333,6 +2336,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
index 3460d95267..c377a13e65 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
@@ -19,7 +19,6 @@  GLIBC_2.2 pthread_attr_setstackaddr F
 GLIBC_2.2 pthread_attr_setstacksize F
 GLIBC_2.2 pthread_cancel F
 GLIBC_2.2 pthread_create F
-GLIBC_2.2 pthread_detach F
 GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join F
@@ -27,7 +26,6 @@  GLIBC_2.2 pthread_setconcurrency F
 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_join F
 GLIBC_2.3.2 __libpthread_version_placeholder F
 GLIBC_2.3.3 __pthread_register_cancel F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 586aec23cb..a893315017 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -1313,6 +1313,7 @@  GLIBC_2.2.5 pthread_condattr_destroy F
 GLIBC_2.2.5 pthread_condattr_getpshared F
 GLIBC_2.2.5 pthread_condattr_init F
 GLIBC_2.2.5 pthread_condattr_setpshared F
+GLIBC_2.2.5 pthread_detach F
 GLIBC_2.2.5 pthread_equal F
 GLIBC_2.2.5 pthread_exit F
 GLIBC_2.2.5 pthread_getattr_np F
@@ -1998,6 +1999,7 @@  GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
@@ -2235,6 +2237,7 @@  GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
+GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
 GLIBC_2.34 pthread_key_delete F
@@ -2294,6 +2297,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
index fd77f8a602..dac904b6e9 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
@@ -19,14 +19,12 @@  GLIBC_2.2.5 pthread_attr_setstackaddr F
 GLIBC_2.2.5 pthread_attr_setstacksize F
 GLIBC_2.2.5 pthread_cancel F
 GLIBC_2.2.5 pthread_create F
-GLIBC_2.2.5 pthread_detach F
 GLIBC_2.2.5 pthread_getconcurrency F
 GLIBC_2.2.5 pthread_getcpuclockid F
 GLIBC_2.2.5 pthread_join F
 GLIBC_2.2.5 pthread_setconcurrency 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_join F
 GLIBC_2.3.2 __libpthread_version_placeholder F
 GLIBC_2.3.3 __pthread_register_cancel F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 1529b87004..fa9319c610 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -1481,6 +1481,7 @@  GLIBC_2.16 pthread_condattr_getpshared F
 GLIBC_2.16 pthread_condattr_init F
 GLIBC_2.16 pthread_condattr_setclock F
 GLIBC_2.16 pthread_condattr_setpshared F
+GLIBC_2.16 pthread_detach F
 GLIBC_2.16 pthread_equal F
 GLIBC_2.16 pthread_exit F
 GLIBC_2.16 pthread_getaffinity_np F
@@ -2264,6 +2265,7 @@  GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_equal F
 GLIBC_2.28 thrd_exit F
 GLIBC_2.28 thrd_sleep F
@@ -2340,6 +2342,7 @@  GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
+GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_key_create F
 GLIBC_2.34 pthread_key_delete F
@@ -2399,6 +2402,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
index ab2ec9227a..b8bbe71c59 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
@@ -20,7 +20,6 @@  GLIBC_2.16 pthread_attr_setstackaddr F
 GLIBC_2.16 pthread_attr_setstacksize F
 GLIBC_2.16 pthread_cancel F
 GLIBC_2.16 pthread_create F
-GLIBC_2.16 pthread_detach F
 GLIBC_2.16 pthread_getconcurrency F
 GLIBC_2.16 pthread_getcpuclockid F
 GLIBC_2.16 pthread_getname_np F
@@ -34,7 +33,6 @@  GLIBC_2.16 pthread_timedjoin_np F
 GLIBC_2.16 pthread_tryjoin_np F
 GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.28 thrd_create F
-GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_join F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 pthread_clockjoin_np F