* [PATCH 0/8] nptl: Move pthread_detach and pthread_join into libc
@ 2021-05-10 12:37 Florian Weimer
2021-05-10 12:37 ` [PATCH 1/8] nptl: Remove unused nptl/pthread_sigqueue.c stub implementation Florian Weimer
` (7 more replies)
0 siblings, 8 replies; 20+ messages in thread
From: Florian Weimer @ 2021-05-10 12:37 UTC (permalink / raw)
To: libc-alpha
This needs a few cleanups first, and the series also moves the remaining
stack cache management into libc (reducing the size of
nptl/allocatestack.c as a side effect).
Tested on i686-linux-gnu and x86_64-linux-gnu, built with
build-many-glibcs.py. (I had to revert the 32-bit incompatible warning
patches.)
Florian Weimer (8):
nptl: Remove unused nptl/pthread_sigqueue.c stub implementation
nptl: Move pthread_sigqueue implementation into main nptl directory
nptl: Remove always-disabled debugging support
nptl: Move pthread_setattr_default_np into libc
nptl: Move stack cache management, __libpthread_freeres into libc
nptl: Move __free_tcb into libc
nptl: Move pthread_detach, thrd_detach into libc
nptl: Move thread join functions into libc
malloc/set-freeres.c | 15 +-
nptl/Makefile | 18 ++-
nptl/Versions | 36 +++--
nptl/allocatestack.c | 147 +-----------------
nptl/descr.h | 6 +
nptl/libpthread-compat.c | 5 +
nptl/nptl-stack.c | 130 ++++++++++++++++
nptl/nptl-stack.h | 50 ++++++
nptl/nptl_free_tcb.c | 46 ++++++
nptl/nptlfreeres.c | 3 +-
nptl/pthreadP.h | 40 ++---
nptl/pthread_clockjoin.c | 27 ++--
nptl/pthread_create.c | 78 +---------
nptl/pthread_detach.c | 16 +-
nptl/pthread_join.c | 13 +-
nptl/pthread_join_common.c | 2 +-
nptl/pthread_setattr_default_np.c | 10 +-
nptl/pthread_sigqueue.c | 41 ++++-
nptl/pthread_timedjoin.c | 22 ++-
nptl/pthread_tryjoin.c | 8 +-
sysdeps/pthread/Makefile | 4 +-
sysdeps/pthread/thrd_detach.c | 11 +-
sysdeps/pthread/thrd_join.c | 11 +-
sysdeps/unix/sysv/linux/aarch64/libc.abilist | 16 ++
.../sysv/linux/aarch64/libpthread.abilist | 9 +-
sysdeps/unix/sysv/linux/alpha/libc.abilist | 16 ++
.../unix/sysv/linux/alpha/libpthread.abilist | 9 +-
sysdeps/unix/sysv/linux/arc/libc.abilist | 16 ++
.../unix/sysv/linux/arc/libpthread.abilist | 8 -
sysdeps/unix/sysv/linux/arm/be/libc.abilist | 16 ++
.../unix/sysv/linux/arm/be/libpthread.abilist | 9 +-
sysdeps/unix/sysv/linux/arm/le/libc.abilist | 16 ++
.../unix/sysv/linux/arm/le/libpthread.abilist | 9 +-
sysdeps/unix/sysv/linux/csky/libc.abilist | 16 ++
.../unix/sysv/linux/csky/libpthread.abilist | 9 +-
sysdeps/unix/sysv/linux/hppa/libc.abilist | 16 ++
.../unix/sysv/linux/hppa/libpthread.abilist | 9 +-
sysdeps/unix/sysv/linux/i386/libc.abilist | 16 ++
.../unix/sysv/linux/i386/libpthread.abilist | 9 +-
sysdeps/unix/sysv/linux/ia64/libc.abilist | 16 ++
.../unix/sysv/linux/ia64/libpthread.abilist | 9 +-
.../sysv/linux/m68k/coldfire/libc.abilist | 16 ++
.../linux/m68k/coldfire/libpthread.abilist | 9 +-
.../unix/sysv/linux/m68k/m680x0/libc.abilist | 16 ++
.../sysv/linux/m68k/m680x0/libpthread.abilist | 9 +-
.../sysv/linux/microblaze/be/libc.abilist | 16 ++
.../linux/microblaze/be/libpthread.abilist | 9 +-
.../sysv/linux/microblaze/le/libc.abilist | 16 ++
.../linux/microblaze/le/libpthread.abilist | 9 +-
.../sysv/linux/mips/mips32/fpu/libc.abilist | 16 ++
.../sysv/linux/mips/mips32/libpthread.abilist | 9 +-
.../sysv/linux/mips/mips32/nofpu/libc.abilist | 16 ++
.../sysv/linux/mips/mips64/libpthread.abilist | 9 +-
.../sysv/linux/mips/mips64/n32/libc.abilist | 16 ++
.../sysv/linux/mips/mips64/n64/libc.abilist | 16 ++
sysdeps/unix/sysv/linux/nios2/libc.abilist | 16 ++
.../unix/sysv/linux/nios2/libpthread.abilist | 9 +-
.../linux/powerpc/powerpc32/fpu/libc.abilist | 16 ++
.../powerpc/powerpc32/libpthread.abilist | 9 +-
.../powerpc/powerpc32/nofpu/libc.abilist | 16 ++
.../linux/powerpc/powerpc64/be/libc.abilist | 16 ++
.../powerpc/powerpc64/be/libpthread.abilist | 9 +-
.../linux/powerpc/powerpc64/le/libc.abilist | 16 ++
.../powerpc/powerpc64/le/libpthread.abilist | 9 +-
sysdeps/unix/sysv/linux/pthread_sigqueue.c | 71 ---------
.../unix/sysv/linux/riscv/rv32/libc.abilist | 16 ++
.../sysv/linux/riscv/rv32/libpthread.abilist | 8 -
.../unix/sysv/linux/riscv/rv64/libc.abilist | 16 ++
.../sysv/linux/riscv/rv64/libpthread.abilist | 9 +-
.../unix/sysv/linux/s390/s390-32/libc.abilist | 16 ++
.../linux/s390/s390-32/libpthread.abilist | 9 +-
.../unix/sysv/linux/s390/s390-64/libc.abilist | 16 ++
.../linux/s390/s390-64/libpthread.abilist | 9 +-
sysdeps/unix/sysv/linux/sh/be/libc.abilist | 16 ++
.../unix/sysv/linux/sh/be/libpthread.abilist | 9 +-
sysdeps/unix/sysv/linux/sh/le/libc.abilist | 16 ++
.../unix/sysv/linux/sh/le/libpthread.abilist | 9 +-
.../sysv/linux/sparc/sparc32/libc.abilist | 16 ++
.../linux/sparc/sparc32/libpthread.abilist | 9 +-
.../sysv/linux/sparc/sparc64/libc.abilist | 16 ++
.../linux/sparc/sparc64/libpthread.abilist | 9 +-
.../unix/sysv/linux/x86_64/64/libc.abilist | 16 ++
.../sysv/linux/x86_64/64/libpthread.abilist | 9 +-
.../unix/sysv/linux/x86_64/x32/libc.abilist | 16 ++
.../sysv/linux/x86_64/x32/libpthread.abilist | 9 +-
85 files changed, 973 insertions(+), 608 deletions(-)
create mode 100644 nptl/nptl-stack.c
create mode 100644 nptl/nptl-stack.h
create mode 100644 nptl/nptl_free_tcb.c
delete mode 100644 sysdeps/unix/sysv/linux/pthread_sigqueue.c
--
2.31.1
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH 1/8] nptl: Remove unused nptl/pthread_sigqueue.c stub implementation
2021-05-10 12:37 [PATCH 0/8] nptl: Move pthread_detach and pthread_join into libc Florian Weimer
@ 2021-05-10 12:37 ` Florian Weimer
2021-05-10 13:21 ` Adhemerval Zanella
2021-05-10 12:37 ` [PATCH 2/8] nptl: Move pthread_sigqueue implementation into main nptl directory Florian Weimer
` (6 subsequent siblings)
7 siblings, 1 reply; 20+ messages in thread
From: Florian Weimer @ 2021-05-10 12:37 UTC (permalink / raw)
To: libc-alpha
---
nptl/pthread_sigqueue.c | 37 -------------------------------------
1 file changed, 37 deletions(-)
delete mode 100644 nptl/pthread_sigqueue.c
diff --git a/nptl/pthread_sigqueue.c b/nptl/pthread_sigqueue.c
deleted file mode 100644
index 7d60e2b98d..0000000000
--- a/nptl/pthread_sigqueue.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Queue a signal (with value) for a specific pthread. Stub version.
- Copyright (C) 2014-2021 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <signal.h>
-#include <pthreadP.h>
-
-
-int
-pthread_sigqueue (pthread_t threadid, int signo, const union sigval value)
-{
- struct pthread *pd = (struct pthread *) threadid;
-
- /* Make sure the descriptor is valid. */
- if (DEBUGGING_P && INVALID_TD_P (pd))
- /* Not a valid thread handle. */
- return ESRCH;
-
- return ENOSYS;
-}
-
-stub_warning (pthread_sigqueue)
--
2.31.1
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH 2/8] nptl: Move pthread_sigqueue implementation into main nptl directory
2021-05-10 12:37 [PATCH 0/8] nptl: Move pthread_detach and pthread_join into libc Florian Weimer
2021-05-10 12:37 ` [PATCH 1/8] nptl: Remove unused nptl/pthread_sigqueue.c stub implementation Florian Weimer
@ 2021-05-10 12:37 ` Florian Weimer
2021-05-10 13:25 ` Adhemerval Zanella
2021-05-10 12:37 ` [PATCH 3/8] nptl: Remove always-disabled debugging support Florian Weimer
` (5 subsequent siblings)
7 siblings, 1 reply; 20+ messages in thread
From: Florian Weimer @ 2021-05-10 12:37 UTC (permalink / raw)
To: libc-alpha
---
{sysdeps/unix/sysv/linux => nptl}/pthread_sigqueue.c | 0
1 file changed, 0 insertions(+), 0 deletions(-)
rename {sysdeps/unix/sysv/linux => nptl}/pthread_sigqueue.c (100%)
diff --git a/sysdeps/unix/sysv/linux/pthread_sigqueue.c b/nptl/pthread_sigqueue.c
similarity index 100%
rename from sysdeps/unix/sysv/linux/pthread_sigqueue.c
rename to nptl/pthread_sigqueue.c
--
2.31.1
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH 3/8] nptl: Remove always-disabled debugging support
2021-05-10 12:37 [PATCH 0/8] nptl: Move pthread_detach and pthread_join into libc Florian Weimer
2021-05-10 12:37 ` [PATCH 1/8] nptl: Remove unused nptl/pthread_sigqueue.c stub implementation Florian Weimer
2021-05-10 12:37 ` [PATCH 2/8] nptl: Move pthread_sigqueue implementation into main nptl directory Florian Weimer
@ 2021-05-10 12:37 ` Florian Weimer
2021-05-10 13:47 ` Adhemerval Zanella
2021-05-10 12:37 ` [PATCH 4/8] nptl: Move pthread_setattr_default_np into libc Florian Weimer
` (4 subsequent siblings)
7 siblings, 1 reply; 20+ messages in thread
From: Florian Weimer @ 2021-05-10 12:37 UTC (permalink / raw)
To: libc-alpha
This removes the DEBUGGING_P macro and the __pthread_debug variable.
The __find_in_stack_list function is now unused and deleted as well.
---
nptl/pthreadP.h | 26 +++++-----------------
nptl/pthread_create.c | 49 -----------------------------------------
nptl/pthread_sigqueue.c | 5 -----
3 files changed, 5 insertions(+), 75 deletions(-)
diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
index d9b97c814a..d9a6137bd3 100644
--- a/nptl/pthreadP.h
+++ b/nptl/pthreadP.h
@@ -243,23 +243,11 @@ libc_hidden_proto (__pthread_tpp_change_priority)
extern int __pthread_current_priority (void);
libc_hidden_proto (__pthread_current_priority)
-/* The library can run in debugging mode where it performs a lot more
- tests. */
-extern int __pthread_debug attribute_hidden;
-/** For now disable debugging support. */
-#if 0
-# define DEBUGGING_P __builtin_expect (__pthread_debug, 0)
-# define INVALID_TD_P(pd) (DEBUGGING_P && __find_in_stack_list (pd) == NULL)
-# define INVALID_NOT_TERMINATED_TD_P(pd) INVALID_TD_P (pd)
-#else
-# define DEBUGGING_P 0
-/* Simplified test. This will not catch all invalid descriptors but
- is better than nothing. And if the test triggers the thread
- descriptor is guaranteed to be invalid. */
-# define INVALID_TD_P(pd) __builtin_expect ((pd)->tid <= 0, 0)
-# define INVALID_NOT_TERMINATED_TD_P(pd) __builtin_expect ((pd)->tid < 0, 0)
-#endif
-
+/* This will not catch all invalid descriptors but is better than
+ nothing. And if the test triggers the thread descriptor is
+ guaranteed to be invalid. */
+#define INVALID_TD_P(pd) __builtin_expect ((pd)->tid <= 0, 0)
+#define INVALID_NOT_TERMINATED_TD_P(pd) __builtin_expect ((pd)->tid < 0, 0)
/* Cancellation test. */
#define CANCELLATION_P(self) \
@@ -322,10 +310,6 @@ __do_cancel (void)
/* Internal prototypes. */
-/* Thread list handling. */
-extern struct pthread *__find_in_stack_list (struct pthread *pd)
- attribute_hidden;
-
/* Deallocate a thread's stack after optionally making sure the thread
descriptor is still valid. */
extern void __free_tcb (struct pthread *pd) attribute_hidden;
diff --git a/nptl/pthread_create.c b/nptl/pthread_create.c
index 775287d0e4..d19456d48b 100644
--- a/nptl/pthread_create.c
+++ b/nptl/pthread_create.c
@@ -42,9 +42,6 @@
#include <stap-probe.h>
-/* Nozero if debugging mode is enabled. */
-int __pthread_debug;
-
/* Globally enabled events. */
static td_thr_events_t __nptl_threads_events __attribute_used__;
@@ -210,46 +207,6 @@ static int create_thread (struct pthread *pd, const struct pthread_attr *attr,
#include <createthread.c>
-
-struct pthread *
-__find_in_stack_list (struct pthread *pd)
-{
- list_t *entry;
- struct pthread *result = NULL;
-
- lll_lock (GL (dl_stack_cache_lock), LLL_PRIVATE);
-
- list_for_each (entry, &GL (dl_stack_used))
- {
- struct pthread *curp;
-
- curp = list_entry (entry, struct pthread, list);
- if (curp == pd)
- {
- result = curp;
- break;
- }
- }
-
- if (result == NULL)
- list_for_each (entry, &GL (dl_stack_user))
- {
- struct pthread *curp;
-
- curp = list_entry (entry, struct pthread, list);
- if (curp == pd)
- {
- result = curp;
- break;
- }
- }
-
- lll_unlock (GL (dl_stack_cache_lock), LLL_PRIVATE);
-
- return result;
-}
-
-
/* Deallocate a thread's stack after optionally making sure the thread
descriptor is still valid. */
void
@@ -259,12 +216,6 @@ __free_tcb (struct pthread *pd)
if (__builtin_expect (atomic_bit_test_set (&pd->cancelhandling,
TERMINATED_BIT) == 0, 1))
{
- /* Remove the descriptor from the list. */
- if (DEBUGGING_P && __find_in_stack_list (pd) == NULL)
- /* Something is really wrong. The descriptor for a still
- running thread is gone. */
- abort ();
-
/* Free TPP data. */
if (__glibc_unlikely (pd->tpp != NULL))
{
diff --git a/nptl/pthread_sigqueue.c b/nptl/pthread_sigqueue.c
index 64bacfe41b..3ffb595489 100644
--- a/nptl/pthread_sigqueue.c
+++ b/nptl/pthread_sigqueue.c
@@ -31,11 +31,6 @@ pthread_sigqueue (pthread_t threadid, int signo, const union sigval value)
#ifdef __NR_rt_tgsigqueueinfo
struct pthread *pd = (struct pthread *) threadid;
- /* Make sure the descriptor is valid. */
- if (DEBUGGING_P && INVALID_TD_P (pd))
- /* Not a valid thread handle. */
- return ESRCH;
-
/* Force load of pd->tid into local variable or register. Otherwise
if a thread exits between ESRCH test and tgkill, we might return
EINVAL, because pd->tid would be cleared by the kernel. */
--
2.31.1
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH 4/8] nptl: Move pthread_setattr_default_np into libc
2021-05-10 12:37 [PATCH 0/8] nptl: Move pthread_detach and pthread_join into libc Florian Weimer
` (2 preceding siblings ...)
2021-05-10 12:37 ` [PATCH 3/8] nptl: Remove always-disabled debugging support Florian Weimer
@ 2021-05-10 12:37 ` Florian Weimer
2021-05-10 16:28 ` Adhemerval Zanella
2021-05-10 12:37 ` [PATCH 5/8] nptl: Move stack cache management, __libpthread_freeres " Florian Weimer
` (3 subsequent siblings)
7 siblings, 1 reply; 20+ messages in thread
From: Florian Weimer @ 2021-05-10 12:37 UTC (permalink / raw)
To: libc-alpha
The symbol was moved using scripts/move-symbol-to-libc.py.
The export of __default_pthread_attr_freeres is temporary. There
is a minor regression in freeres coverage because in the dynamic case,
__default_pthread_attr_freeres is no longer called if libpthread is
not linked in.
---
nptl/Makefile | 2 +-
nptl/Versions | 8 ++++++--
nptl/pthreadP.h | 2 +-
nptl/pthread_setattr_default_np.c | 10 ++++++++--
sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/aarch64/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/alpha/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/alpha/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/arc/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/arc/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/arm/be/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/arm/be/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/arm/le/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/arm/le/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/csky/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/csky/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/hppa/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/hppa/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/i386/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/i386/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/ia64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/ia64/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist | 2 ++
.../unix/sysv/linux/m68k/coldfire/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/microblaze/be/libc.abilist | 2 ++
.../unix/sysv/linux/microblaze/be/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/microblaze/le/libc.abilist | 2 ++
.../unix/sysv/linux/microblaze/le/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/nios2/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/nios2/libpthread.abilist | 1 -
.../unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist | 2 ++
.../sysv/linux/powerpc/powerpc32/libpthread.abilist | 1 -
.../sysv/linux/powerpc/powerpc32/nofpu/libc.abilist | 2 ++
.../unix/sysv/linux/powerpc/powerpc64/be/libc.abilist | 2 ++
.../sysv/linux/powerpc/powerpc64/be/libpthread.abilist | 1 -
.../unix/sysv/linux/powerpc/powerpc64/le/libc.abilist | 2 ++
.../sysv/linux/powerpc/powerpc64/le/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist | 2 ++
.../unix/sysv/linux/s390/s390-32/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist | 2 ++
.../unix/sysv/linux/s390/s390-64/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/sh/be/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/sh/be/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/sh/le/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/sh/le/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist | 2 ++
.../unix/sysv/linux/sparc/sparc32/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist | 2 ++
.../unix/sysv/linux/sparc/sparc64/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist | 1 -
65 files changed, 80 insertions(+), 35 deletions(-)
diff --git a/nptl/Makefile b/nptl/Makefile
index f7723cb808..2a18eadf71 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -145,6 +145,7 @@ routines = \
pthread_rwlockattr_setkind_np \
pthread_rwlockattr_setpshared \
pthread_self \
+ pthread_setattr_default_np \
pthread_setcancelstate \
pthread_setcanceltype \
pthread_setschedparam \
@@ -206,7 +207,6 @@ libpthread-routines = \
pthread_join \
pthread_join_common \
pthread_setaffinity \
- pthread_setattr_default_np \
pthread_setconcurrency \
pthread_setname \
pthread_setschedprio \
diff --git a/nptl/Versions b/nptl/Versions
index 4c1c4ee0a7..de025e179c 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -167,6 +167,9 @@ libc {
pthread_mutexattr_getrobust;
pthread_mutexattr_setrobust;
}
+ GLIBC_2.18 {
+ pthread_setattr_default_np;
+ }
# C11 thread symbols.
GLIBC_2.28 {
call_once;
@@ -230,8 +233,8 @@ libc {
pthread_barrier_wait;
pthread_barrierattr_destroy;
pthread_barrierattr_getpshared;
- pthread_barrierattr_setpshared;
pthread_barrierattr_init;
+ pthread_barrierattr_setpshared;
pthread_cond_clockwait;
pthread_condattr_getclock;
pthread_condattr_getpshared;
@@ -273,6 +276,7 @@ libc {
pthread_rwlockattr_init;
pthread_rwlockattr_setkind_np;
pthread_rwlockattr_setpshared;
+ pthread_setattr_default_np;
pthread_setspecific;
pthread_spin_destroy;
pthread_spin_init;
@@ -299,6 +303,7 @@ libc {
}
GLIBC_PRIVATE {
__default_pthread_attr;
+ __default_pthread_attr_freeres;
__default_pthread_attr_lock;
__futex_abstimed_wait64;
__futex_abstimed_wait_cancelable64;
@@ -436,7 +441,6 @@ libpthread {
GLIBC_2.18 {
pthread_getattr_default_np;
- pthread_setattr_default_np;
}
# C11 thread symbols.
diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
index d9a6137bd3..8466332248 100644
--- a/nptl/pthreadP.h
+++ b/nptl/pthreadP.h
@@ -203,7 +203,7 @@ libc_hidden_proto (__default_pthread_attr)
extern int __default_pthread_attr_lock;
libc_hidden_proto (__default_pthread_attr_lock)
/* Called from __libc_freeres to deallocate the default attribute. */
-extern void __default_pthread_attr_freeres (void) attribute_hidden;
+extern void __default_pthread_attr_freeres (void);
/* Size and alignment of static TLS block. */
extern size_t __static_tls_size attribute_hidden;
diff --git a/nptl/pthread_setattr_default_np.c b/nptl/pthread_setattr_default_np.c
index fcf1873d2f..bfdb93bc6e 100644
--- a/nptl/pthread_setattr_default_np.c
+++ b/nptl/pthread_setattr_default_np.c
@@ -20,10 +20,10 @@
#include <stdlib.h>
#include <pthreadP.h>
#include <string.h>
-
+#include <shlib-compat.h>
int
-pthread_setattr_default_np (const pthread_attr_t *in)
+__pthread_setattr_default_np (const pthread_attr_t *in)
{
const struct pthread_attr *real_in;
int ret;
@@ -81,6 +81,12 @@ pthread_setattr_default_np (const pthread_attr_t *in)
lll_unlock (__default_pthread_attr_lock, LLL_PRIVATE);
return ret;
}
+versioned_symbol (libc, __pthread_setattr_default_np,
+ pthread_setattr_default_np, GLIBC_2_34);
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_18, GLIBC_2_34)
+compat_symbol (libc, __pthread_setattr_default_np,
+ pthread_setattr_default_np, GLIBC_2_18);
+#endif
/* This is placed in the same file as pthread_setattr_default_np
because only this function can trigger allocation of attribute
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 36d760212c..caee529c98 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -2179,6 +2179,7 @@ GLIBC_2.17 xprt_register F
GLIBC_2.17 xprt_unregister F
GLIBC_2.18 __cxa_thread_atexit_impl F
GLIBC_2.18 _mcount F
+GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.22 fmemopen F
GLIBC_2.23 fts64_children F
GLIBC_2.23 fts64_close F
@@ -2364,6 +2365,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
GLIBC_2.34 pthread_rwlockattr_init F
GLIBC_2.34 pthread_rwlockattr_setkind_np F
GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setattr_default_np F
GLIBC_2.34 pthread_setspecific F
GLIBC_2.34 pthread_spin_destroy F
GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
index b4f0fdd999..f09c6d434a 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
@@ -33,7 +33,6 @@ GLIBC_2.17 pthread_sigqueue F
GLIBC_2.17 pthread_timedjoin_np F
GLIBC_2.17 pthread_tryjoin_np F
GLIBC_2.18 pthread_getattr_default_np F
-GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.28 thrd_create F
GLIBC_2.28 thrd_detach F
GLIBC_2.28 thrd_join F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 8fc9b75676..7a9a6608f4 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -1854,6 +1854,7 @@ GLIBC_2.17 clock_nanosleep F
GLIBC_2.17 clock_settime F
GLIBC_2.17 secure_getenv F
GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.2 _IO_adjust_wcolumn F
GLIBC_2.2 _IO_fgetpos F
GLIBC_2.2 _IO_fgetpos64 F
@@ -2451,6 +2452,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
GLIBC_2.34 pthread_rwlockattr_init F
GLIBC_2.34 pthread_rwlockattr_setkind_np F
GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setattr_default_np F
GLIBC_2.34 pthread_setspecific F
GLIBC_2.34 pthread_spin_destroy F
GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
index c2017537e2..9b2e09a2e4 100644
--- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
@@ -24,7 +24,6 @@ GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 pthread_getname_np F
GLIBC_2.12 pthread_setname_np F
GLIBC_2.18 pthread_getattr_default_np F
-GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.2 pthread_attr_getstack F
GLIBC_2.2 pthread_attr_setstack F
GLIBC_2.2 pthread_getcpuclockid F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 8e84a695fd..6fef10b0ad 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1470,6 +1470,7 @@ GLIBC_2.32 pthread_rwlockattr_init F
GLIBC_2.32 pthread_rwlockattr_setkind_np F
GLIBC_2.32 pthread_rwlockattr_setpshared F
GLIBC_2.32 pthread_self F
+GLIBC_2.32 pthread_setattr_default_np F
GLIBC_2.32 pthread_setcancelstate F
GLIBC_2.32 pthread_setcanceltype F
GLIBC_2.32 pthread_setschedparam F
@@ -2123,6 +2124,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
GLIBC_2.34 pthread_rwlockattr_init F
GLIBC_2.34 pthread_rwlockattr_setkind_np F
GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setattr_default_np F
GLIBC_2.34 pthread_setspecific F
GLIBC_2.34 pthread_spin_destroy F
GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
index bc072be61f..8a4bea9aa9 100644
--- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
@@ -28,7 +28,6 @@ GLIBC_2.32 pthread_getcpuclockid F
GLIBC_2.32 pthread_getname_np F
GLIBC_2.32 pthread_join F
GLIBC_2.32 pthread_setaffinity_np F
-GLIBC_2.32 pthread_setattr_default_np F
GLIBC_2.32 pthread_setconcurrency F
GLIBC_2.32 pthread_setname_np F
GLIBC_2.32 pthread_setschedprio F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 424d683ffe..f97aeeb047 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -74,6 +74,7 @@ GLIBC_2.17 clock_nanosleep F
GLIBC_2.17 clock_settime F
GLIBC_2.17 secure_getenv F
GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.22 fmemopen F
GLIBC_2.23 fts64_children F
GLIBC_2.23 fts64_close F
@@ -253,6 +254,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
GLIBC_2.34 pthread_rwlockattr_init F
GLIBC_2.34 pthread_rwlockattr_setkind_np F
GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setattr_default_np F
GLIBC_2.34 pthread_setspecific F
GLIBC_2.34 pthread_spin_destroy F
GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
index 5b52c456fb..117d44ad5f 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
@@ -2,7 +2,6 @@ GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 pthread_getname_np F
GLIBC_2.12 pthread_setname_np F
GLIBC_2.18 pthread_getattr_default_np F
-GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.28 thrd_create F
GLIBC_2.28 thrd_detach F
GLIBC_2.28 thrd_join F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 15acd896df..70f5f81faf 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -74,6 +74,7 @@ GLIBC_2.17 clock_nanosleep F
GLIBC_2.17 clock_settime F
GLIBC_2.17 secure_getenv F
GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.22 fmemopen F
GLIBC_2.23 fts64_children F
GLIBC_2.23 fts64_close F
@@ -250,6 +251,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
GLIBC_2.34 pthread_rwlockattr_init F
GLIBC_2.34 pthread_rwlockattr_setkind_np F
GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setattr_default_np F
GLIBC_2.34 pthread_setspecific F
GLIBC_2.34 pthread_spin_destroy F
GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
index 5b52c456fb..117d44ad5f 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
@@ -2,7 +2,6 @@ GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 pthread_getname_np F
GLIBC_2.12 pthread_setname_np F
GLIBC_2.18 pthread_getattr_default_np F
-GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.28 thrd_create F
GLIBC_2.28 thrd_detach F
GLIBC_2.28 thrd_join F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 61c58b1e0f..bd80fd1afd 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -1527,6 +1527,7 @@ GLIBC_2.29 pthread_rwlockattr_init F
GLIBC_2.29 pthread_rwlockattr_setkind_np F
GLIBC_2.29 pthread_rwlockattr_setpshared F
GLIBC_2.29 pthread_self F
+GLIBC_2.29 pthread_setattr_default_np F
GLIBC_2.29 pthread_setcancelstate F
GLIBC_2.29 pthread_setcanceltype F
GLIBC_2.29 pthread_setschedparam F
@@ -2307,6 +2308,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
GLIBC_2.34 pthread_rwlockattr_init F
GLIBC_2.34 pthread_rwlockattr_setkind_np F
GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setattr_default_np F
GLIBC_2.34 pthread_setspecific F
GLIBC_2.34 pthread_spin_destroy F
GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
index d55f09a9fe..8ad8fc7c7f 100644
--- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
@@ -27,7 +27,6 @@ GLIBC_2.29 pthread_getcpuclockid F
GLIBC_2.29 pthread_getname_np F
GLIBC_2.29 pthread_join F
GLIBC_2.29 pthread_setaffinity_np F
-GLIBC_2.29 pthread_setattr_default_np F
GLIBC_2.29 pthread_setconcurrency F
GLIBC_2.29 pthread_setname_np F
GLIBC_2.29 pthread_setschedprio F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index e89b8b935f..fb40c0292c 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -77,6 +77,7 @@ GLIBC_2.17 secure_getenv F
GLIBC_2.17 sys_errlist D 0x410
GLIBC_2.17 sys_nerr D 0x4
GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.19 fanotify_mark F
GLIBC_2.2 _Exit F
GLIBC_2.2 _IO_2_1_stderr_ D 0xa0
@@ -2258,6 +2259,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
GLIBC_2.34 pthread_rwlockattr_init F
GLIBC_2.34 pthread_rwlockattr_setkind_np F
GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setattr_default_np F
GLIBC_2.34 pthread_setspecific F
GLIBC_2.34 pthread_spin_destroy F
GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
index 2c4a7041b6..7e7fdfb8cd 100644
--- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
@@ -2,7 +2,6 @@ GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 pthread_getname_np F
GLIBC_2.12 pthread_setname_np F
GLIBC_2.18 pthread_getattr_default_np F
-GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.2 _IO_flockfile F
GLIBC_2.2 _IO_ftrylockfile F
GLIBC_2.2 _IO_funlockfile F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 3c3c826952..dd243f7808 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -1856,6 +1856,7 @@ GLIBC_2.17 clock_nanosleep F
GLIBC_2.17 clock_settime F
GLIBC_2.17 secure_getenv F
GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.2 _IO_adjust_wcolumn F
GLIBC_2.2 _IO_fgetpos F
GLIBC_2.2 _IO_fgetpos64 F
@@ -2441,6 +2442,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
GLIBC_2.34 pthread_rwlockattr_init F
GLIBC_2.34 pthread_rwlockattr_setkind_np F
GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setattr_default_np F
GLIBC_2.34 pthread_setspecific F
GLIBC_2.34 pthread_spin_destroy F
GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
index 1cbc49b937..1f5547e80c 100644
--- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
@@ -24,7 +24,6 @@ GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 pthread_getname_np F
GLIBC_2.12 pthread_setname_np F
GLIBC_2.18 pthread_getattr_default_np F
-GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.2 pthread_attr_getstack F
GLIBC_2.2 pthread_attr_setstack F
GLIBC_2.2 pthread_getcpuclockid F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 94a0819e08..b805382c4b 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -74,6 +74,7 @@ GLIBC_2.17 clock_nanosleep F
GLIBC_2.17 clock_settime F
GLIBC_2.17 secure_getenv F
GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.2 _Exit F
GLIBC_2.2 _IO_2_1_stderr_ D 0xe0
GLIBC_2.2 _IO_2_1_stdin_ D 0xe0
@@ -2292,6 +2293,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
GLIBC_2.34 pthread_rwlockattr_init F
GLIBC_2.34 pthread_rwlockattr_setkind_np F
GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setattr_default_np F
GLIBC_2.34 pthread_setspecific F
GLIBC_2.34 pthread_spin_destroy F
GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
index 6b87a988d4..3460d95267 100644
--- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
@@ -2,7 +2,6 @@ GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 pthread_getname_np F
GLIBC_2.12 pthread_setname_np F
GLIBC_2.18 pthread_getattr_default_np F
-GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.2 _IO_flockfile F
GLIBC_2.2 _IO_ftrylockfile F
GLIBC_2.2 _IO_funlockfile F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 789189ea9d..21332b7b39 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -75,6 +75,7 @@ GLIBC_2.17 clock_nanosleep F
GLIBC_2.17 clock_settime F
GLIBC_2.17 secure_getenv F
GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.22 fmemopen F
GLIBC_2.23 fts64_children F
GLIBC_2.23 fts64_close F
@@ -254,6 +255,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
GLIBC_2.34 pthread_rwlockattr_init F
GLIBC_2.34 pthread_rwlockattr_setkind_np F
GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setattr_default_np F
GLIBC_2.34 pthread_setspecific F
GLIBC_2.34 pthread_spin_destroy F
GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
index 5b52c456fb..117d44ad5f 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
@@ -2,7 +2,6 @@ GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 pthread_getname_np F
GLIBC_2.12 pthread_setname_np F
GLIBC_2.18 pthread_getattr_default_np F
-GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.28 thrd_create F
GLIBC_2.28 thrd_detach F
GLIBC_2.28 thrd_join F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index ae2fd168e7..5159aee942 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -1812,6 +1812,7 @@ GLIBC_2.17 clock_nanosleep F
GLIBC_2.17 clock_settime F
GLIBC_2.17 secure_getenv F
GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.2 _IO_adjust_wcolumn F
GLIBC_2.2 _IO_fgetpos F
GLIBC_2.2 _IO_fgetpos64 F
@@ -2384,6 +2385,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
GLIBC_2.34 pthread_rwlockattr_init F
GLIBC_2.34 pthread_rwlockattr_setkind_np F
GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setattr_default_np F
GLIBC_2.34 pthread_setspecific F
GLIBC_2.34 pthread_spin_destroy F
GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
index 1cbc49b937..1f5547e80c 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
@@ -24,7 +24,6 @@ GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 pthread_getname_np F
GLIBC_2.12 pthread_setname_np F
GLIBC_2.18 pthread_getattr_default_np F
-GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.2 pthread_attr_getstack F
GLIBC_2.2 pthread_attr_setstack F
GLIBC_2.2 pthread_getcpuclockid F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 4a39e0d5d5..4609ade92c 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -1529,6 +1529,7 @@ GLIBC_2.18 pthread_rwlockattr_init F
GLIBC_2.18 pthread_rwlockattr_setkind_np F
GLIBC_2.18 pthread_rwlockattr_setpshared F
GLIBC_2.18 pthread_self F
+GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.18 pthread_setcancelstate F
GLIBC_2.18 pthread_setcanceltype F
GLIBC_2.18 pthread_setschedparam F
@@ -2358,6 +2359,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
GLIBC_2.34 pthread_rwlockattr_init F
GLIBC_2.34 pthread_rwlockattr_setkind_np F
GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setattr_default_np F
GLIBC_2.34 pthread_setspecific F
GLIBC_2.34 pthread_spin_destroy F
GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
index ee29730057..c87d939959 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
@@ -27,7 +27,6 @@ GLIBC_2.18 pthread_getcpuclockid F
GLIBC_2.18 pthread_getname_np F
GLIBC_2.18 pthread_join F
GLIBC_2.18 pthread_setaffinity_np F
-GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.18 pthread_setconcurrency F
GLIBC_2.18 pthread_setname_np F
GLIBC_2.18 pthread_setschedprio F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index f0d2c10414..41db7ed508 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -1529,6 +1529,7 @@ GLIBC_2.18 pthread_rwlockattr_init F
GLIBC_2.18 pthread_rwlockattr_setkind_np F
GLIBC_2.18 pthread_rwlockattr_setpshared F
GLIBC_2.18 pthread_self F
+GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.18 pthread_setcancelstate F
GLIBC_2.18 pthread_setcanceltype F
GLIBC_2.18 pthread_setschedparam F
@@ -2355,6 +2356,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
GLIBC_2.34 pthread_rwlockattr_init F
GLIBC_2.34 pthread_rwlockattr_setkind_np F
GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setattr_default_np F
GLIBC_2.34 pthread_setspecific F
GLIBC_2.34 pthread_spin_destroy F
GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
index ee29730057..c87d939959 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
@@ -27,7 +27,6 @@ GLIBC_2.18 pthread_getcpuclockid F
GLIBC_2.18 pthread_getname_np F
GLIBC_2.18 pthread_join F
GLIBC_2.18 pthread_setaffinity_np F
-GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.18 pthread_setconcurrency F
GLIBC_2.18 pthread_setname_np F
GLIBC_2.18 pthread_setschedprio F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index ece8508afc..77d3b72f2b 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -1421,6 +1421,7 @@ GLIBC_2.17 secure_getenv F
GLIBC_2.18 __cxa_thread_atexit_impl F
GLIBC_2.18 __mips_fpu_getcw F
GLIBC_2.18 __mips_fpu_setcw F
+GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.19 getrlimit64 F
GLIBC_2.19 setrlimit64 F
GLIBC_2.2 _Exit F
@@ -2347,6 +2348,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
GLIBC_2.34 pthread_rwlockattr_init F
GLIBC_2.34 pthread_rwlockattr_setkind_np F
GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setattr_default_np F
GLIBC_2.34 pthread_setspecific F
GLIBC_2.34 pthread_spin_destroy F
GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
index e523996633..fa52921d78 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
@@ -13,7 +13,6 @@ GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 pthread_getname_np F
GLIBC_2.12 pthread_setname_np F
GLIBC_2.18 pthread_getattr_default_np F
-GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.2 pthread_attr_getguardsize F
GLIBC_2.2 pthread_attr_getstack F
GLIBC_2.2 pthread_attr_getstackaddr F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 0bfd7786d3..bfc6ca8d87 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -1419,6 +1419,7 @@ GLIBC_2.17 clock_nanosleep F
GLIBC_2.17 clock_settime F
GLIBC_2.17 secure_getenv F
GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.19 getrlimit64 F
GLIBC_2.19 setrlimit64 F
GLIBC_2.2 _Exit F
@@ -2345,6 +2346,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
GLIBC_2.34 pthread_rwlockattr_init F
GLIBC_2.34 pthread_rwlockattr_setkind_np F
GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setattr_default_np F
GLIBC_2.34 pthread_setspecific F
GLIBC_2.34 pthread_spin_destroy F
GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
index e523996633..fa52921d78 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
@@ -13,7 +13,6 @@ GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 pthread_getname_np F
GLIBC_2.12 pthread_setname_np F
GLIBC_2.18 pthread_getattr_default_np F
-GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.2 pthread_attr_getguardsize F
GLIBC_2.2 pthread_attr_getstack F
GLIBC_2.2 pthread_attr_getstackaddr F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index ae1796b582..cdade4e56a 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -1419,6 +1419,7 @@ GLIBC_2.17 clock_nanosleep F
GLIBC_2.17 clock_settime F
GLIBC_2.17 secure_getenv F
GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.19 getrlimit64 F
GLIBC_2.19 setrlimit64 F
GLIBC_2.2 _Exit F
@@ -2353,6 +2354,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
GLIBC_2.34 pthread_rwlockattr_init F
GLIBC_2.34 pthread_rwlockattr_setkind_np F
GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setattr_default_np F
GLIBC_2.34 pthread_setspecific F
GLIBC_2.34 pthread_spin_destroy F
GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 4139762550..62184c7a10 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -1417,6 +1417,7 @@ GLIBC_2.17 clock_nanosleep F
GLIBC_2.17 clock_settime F
GLIBC_2.17 secure_getenv F
GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.2 _Exit F
GLIBC_2.2 _IO_2_1_stderr_ D 0xe0
GLIBC_2.2 _IO_2_1_stdin_ D 0xe0
@@ -2347,6 +2348,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
GLIBC_2.34 pthread_rwlockattr_init F
GLIBC_2.34 pthread_rwlockattr_setkind_np F
GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setattr_default_np F
GLIBC_2.34 pthread_setspecific F
GLIBC_2.34 pthread_spin_destroy F
GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index f442fdf645..bc230f7020 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -1572,6 +1572,7 @@ GLIBC_2.21 pthread_rwlockattr_init F
GLIBC_2.21 pthread_rwlockattr_setkind_np F
GLIBC_2.21 pthread_rwlockattr_setpshared F
GLIBC_2.21 pthread_self F
+GLIBC_2.21 pthread_setattr_default_np F
GLIBC_2.21 pthread_setcancelstate F
GLIBC_2.21 pthread_setcanceltype F
GLIBC_2.21 pthread_setschedparam F
@@ -2397,6 +2398,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
GLIBC_2.34 pthread_rwlockattr_init F
GLIBC_2.34 pthread_rwlockattr_setkind_np F
GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setattr_default_np F
GLIBC_2.34 pthread_setspecific F
GLIBC_2.34 pthread_spin_destroy F
GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
index 059b21f854..502268cbd5 100644
--- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
@@ -27,7 +27,6 @@ GLIBC_2.21 pthread_getcpuclockid F
GLIBC_2.21 pthread_getname_np F
GLIBC_2.21 pthread_join F
GLIBC_2.21 pthread_setaffinity_np F
-GLIBC_2.21 pthread_setattr_default_np F
GLIBC_2.21 pthread_setconcurrency F
GLIBC_2.21 pthread_setname_np F
GLIBC_2.21 pthread_setschedprio F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 0e3d3a3648..0e384dd37e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -1818,6 +1818,7 @@ GLIBC_2.17 clock_nanosleep F
GLIBC_2.17 clock_settime F
GLIBC_2.17 secure_getenv F
GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.2 _IO_adjust_wcolumn F
GLIBC_2.2 _IO_fgetpos F
GLIBC_2.2 _IO_fgetpos64 F
@@ -2411,6 +2412,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
GLIBC_2.34 pthread_rwlockattr_init F
GLIBC_2.34 pthread_rwlockattr_setkind_np F
GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setattr_default_np F
GLIBC_2.34 pthread_setspecific F
GLIBC_2.34 pthread_spin_destroy F
GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
index 84312f522b..c2ac178742 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
@@ -24,7 +24,6 @@ GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 pthread_getname_np F
GLIBC_2.12 pthread_setname_np F
GLIBC_2.18 pthread_getattr_default_np F
-GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.2 pthread_attr_getstack F
GLIBC_2.2 pthread_attr_setstack F
GLIBC_2.2 pthread_getcpuclockid F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index a14c3c9531..dac4a03938 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -1818,6 +1818,7 @@ GLIBC_2.17 clock_nanosleep F
GLIBC_2.17 clock_settime F
GLIBC_2.17 secure_getenv F
GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.19 __atomic_feclearexcept F
GLIBC_2.19 __atomic_feholdexcept F
GLIBC_2.19 __atomic_feupdateenv F
@@ -2444,6 +2445,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
GLIBC_2.34 pthread_rwlockattr_init F
GLIBC_2.34 pthread_rwlockattr_setkind_np F
GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setattr_default_np F
GLIBC_2.34 pthread_setspecific F
GLIBC_2.34 pthread_spin_destroy F
GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 513df99b4d..6a8958d5a8 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -75,6 +75,7 @@ GLIBC_2.17 clock_nanosleep F
GLIBC_2.17 clock_settime F
GLIBC_2.17 secure_getenv F
GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.22 fmemopen F
GLIBC_2.23 fts64_children F
GLIBC_2.23 fts64_close F
@@ -2259,6 +2260,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
GLIBC_2.34 pthread_rwlockattr_init F
GLIBC_2.34 pthread_rwlockattr_setkind_np F
GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setattr_default_np F
GLIBC_2.34 pthread_setspecific F
GLIBC_2.34 pthread_spin_destroy F
GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
index 2d5583ebe8..89b4083cf4 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
@@ -2,7 +2,6 @@ GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 pthread_getname_np F
GLIBC_2.12 pthread_setname_np F
GLIBC_2.18 pthread_getattr_default_np F
-GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.28 thrd_create F
GLIBC_2.28 thrd_detach F
GLIBC_2.28 thrd_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 e271e61128..16f4d90871 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -2266,6 +2266,7 @@ GLIBC_2.17 xencrypt F
GLIBC_2.17 xprt_register F
GLIBC_2.17 xprt_unregister F
GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.22 fmemopen F
GLIBC_2.23 fts64_children F
GLIBC_2.23 fts64_close F
@@ -2560,6 +2561,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
GLIBC_2.34 pthread_rwlockattr_init F
GLIBC_2.34 pthread_rwlockattr_setkind_np F
GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setattr_default_np F
GLIBC_2.34 pthread_setspecific F
GLIBC_2.34 pthread_spin_destroy F
GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
index b4f0fdd999..f09c6d434a 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
@@ -33,7 +33,6 @@ GLIBC_2.17 pthread_sigqueue F
GLIBC_2.17 pthread_timedjoin_np F
GLIBC_2.17 pthread_tryjoin_np F
GLIBC_2.18 pthread_getattr_default_np F
-GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.28 thrd_create F
GLIBC_2.28 thrd_detach F
GLIBC_2.28 thrd_join F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index c883de1279..876ed3d11f 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1472,6 +1472,7 @@ GLIBC_2.33 pthread_rwlockattr_init F
GLIBC_2.33 pthread_rwlockattr_setkind_np F
GLIBC_2.33 pthread_rwlockattr_setpshared F
GLIBC_2.33 pthread_self F
+GLIBC_2.33 pthread_setattr_default_np F
GLIBC_2.33 pthread_setcancelstate F
GLIBC_2.33 pthread_setcanceltype F
GLIBC_2.33 pthread_setschedparam F
@@ -2125,6 +2126,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
GLIBC_2.34 pthread_rwlockattr_init F
GLIBC_2.34 pthread_rwlockattr_setkind_np F
GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setattr_default_np F
GLIBC_2.34 pthread_setspecific F
GLIBC_2.34 pthread_spin_destroy F
GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
index cc35881f1a..d6f50be603 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
@@ -28,7 +28,6 @@ GLIBC_2.33 pthread_getcpuclockid F
GLIBC_2.33 pthread_getname_np F
GLIBC_2.33 pthread_join F
GLIBC_2.33 pthread_setaffinity_np F
-GLIBC_2.33 pthread_setattr_default_np F
GLIBC_2.33 pthread_setconcurrency F
GLIBC_2.33 pthread_setname_np F
GLIBC_2.33 pthread_setschedprio F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index a8202f95cd..ec2dbc5f6c 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -1517,6 +1517,7 @@ GLIBC_2.27 pthread_rwlockattr_init F
GLIBC_2.27 pthread_rwlockattr_setkind_np F
GLIBC_2.27 pthread_rwlockattr_setpshared F
GLIBC_2.27 pthread_self F
+GLIBC_2.27 pthread_setattr_default_np F
GLIBC_2.27 pthread_setcancelstate F
GLIBC_2.27 pthread_setcanceltype F
GLIBC_2.27 pthread_setschedparam F
@@ -2325,6 +2326,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
GLIBC_2.34 pthread_rwlockattr_init F
GLIBC_2.34 pthread_rwlockattr_setkind_np F
GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setattr_default_np F
GLIBC_2.34 pthread_setspecific F
GLIBC_2.34 pthread_spin_destroy F
GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
index 6946ced1b9..240dfc6c9a 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
@@ -27,7 +27,6 @@ GLIBC_2.27 pthread_getcpuclockid F
GLIBC_2.27 pthread_getname_np F
GLIBC_2.27 pthread_join F
GLIBC_2.27 pthread_setaffinity_np F
-GLIBC_2.27 pthread_setattr_default_np F
GLIBC_2.27 pthread_setconcurrency F
GLIBC_2.27 pthread_setname_np F
GLIBC_2.27 pthread_setschedprio F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index d63e9a2139..d1bc174497 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -1808,6 +1808,7 @@ GLIBC_2.17 clock_nanosleep F
GLIBC_2.17 clock_settime F
GLIBC_2.17 secure_getenv F
GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.19 __longjmp_chk F
GLIBC_2.19 __sigsetjmp F
GLIBC_2.19 _longjmp F
@@ -2409,6 +2410,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
GLIBC_2.34 pthread_rwlockattr_init F
GLIBC_2.34 pthread_rwlockattr_setkind_np F
GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setattr_default_np F
GLIBC_2.34 pthread_setspecific F
GLIBC_2.34 pthread_spin_destroy F
GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
index 0c6df4a437..20ee83baca 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
@@ -24,7 +24,6 @@ GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 pthread_getname_np F
GLIBC_2.12 pthread_setname_np F
GLIBC_2.18 pthread_getattr_default_np F
-GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.19 __libpthread_version_placeholder F
GLIBC_2.2 pthread_attr_getstack F
GLIBC_2.2 pthread_attr_setstack F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 55cd1e75ce..3771dc652a 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -78,6 +78,7 @@ GLIBC_2.17 clock_nanosleep F
GLIBC_2.17 clock_settime F
GLIBC_2.17 secure_getenv F
GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.19 __longjmp_chk F
GLIBC_2.19 __sigsetjmp F
GLIBC_2.19 _longjmp F
@@ -2296,6 +2297,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
GLIBC_2.34 pthread_rwlockattr_init F
GLIBC_2.34 pthread_rwlockattr_setkind_np F
GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setattr_default_np F
GLIBC_2.34 pthread_setspecific F
GLIBC_2.34 pthread_spin_destroy F
GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
index d287d8fe7a..35f0b89d66 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
@@ -2,7 +2,6 @@ GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 pthread_getname_np F
GLIBC_2.12 pthread_setname_np F
GLIBC_2.18 pthread_getattr_default_np F
-GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.19 __libpthread_version_placeholder F
GLIBC_2.2 _IO_flockfile F
GLIBC_2.2 _IO_ftrylockfile F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 39c4667cb0..6355ca1061 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -78,6 +78,7 @@ GLIBC_2.17 clock_nanosleep F
GLIBC_2.17 clock_settime F
GLIBC_2.17 secure_getenv F
GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.2 _Exit F
GLIBC_2.2 _IO_2_1_stderr_ D 0x98
GLIBC_2.2 _IO_2_1_stdin_ D 0x98
@@ -2265,6 +2266,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
GLIBC_2.34 pthread_rwlockattr_init F
GLIBC_2.34 pthread_rwlockattr_setkind_np F
GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setattr_default_np F
GLIBC_2.34 pthread_setspecific F
GLIBC_2.34 pthread_spin_destroy F
GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
index 2c4a7041b6..7e7fdfb8cd 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
@@ -2,7 +2,6 @@ GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 pthread_getname_np F
GLIBC_2.12 pthread_setname_np F
GLIBC_2.18 pthread_getattr_default_np F
-GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.2 _IO_flockfile F
GLIBC_2.2 _IO_ftrylockfile F
GLIBC_2.2 _IO_funlockfile F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index ae7e00cbc4..a1e3c3a93b 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -78,6 +78,7 @@ GLIBC_2.17 clock_nanosleep F
GLIBC_2.17 clock_settime F
GLIBC_2.17 secure_getenv F
GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.2 _Exit F
GLIBC_2.2 _IO_2_1_stderr_ D 0x98
GLIBC_2.2 _IO_2_1_stdin_ D 0x98
@@ -2262,6 +2263,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
GLIBC_2.34 pthread_rwlockattr_init F
GLIBC_2.34 pthread_rwlockattr_setkind_np F
GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setattr_default_np F
GLIBC_2.34 pthread_setspecific F
GLIBC_2.34 pthread_spin_destroy F
GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
index 2c4a7041b6..7e7fdfb8cd 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
@@ -2,7 +2,6 @@ GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 pthread_getname_np F
GLIBC_2.12 pthread_setname_np F
GLIBC_2.18 pthread_getattr_default_np F
-GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.2 _IO_flockfile F
GLIBC_2.2 _IO_ftrylockfile F
GLIBC_2.2 _IO_funlockfile F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 8556de3265..17026a997b 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -1814,6 +1814,7 @@ GLIBC_2.17 clock_nanosleep F
GLIBC_2.17 clock_settime F
GLIBC_2.17 secure_getenv F
GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.2 _IO_adjust_wcolumn F
GLIBC_2.2 _IO_fgetpos F
GLIBC_2.2 _IO_fgetpos64 F
@@ -2400,6 +2401,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
GLIBC_2.34 pthread_rwlockattr_init F
GLIBC_2.34 pthread_rwlockattr_setkind_np F
GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setattr_default_np F
GLIBC_2.34 pthread_setspecific F
GLIBC_2.34 pthread_spin_destroy F
GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
index c2017537e2..9b2e09a2e4 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
@@ -24,7 +24,6 @@ GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 pthread_getname_np F
GLIBC_2.12 pthread_setname_np F
GLIBC_2.18 pthread_getattr_default_np F
-GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.2 pthread_attr_getstack F
GLIBC_2.2 pthread_attr_setstack F
GLIBC_2.2 pthread_getcpuclockid F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index d2f08437d1..9dc72e0556 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -83,6 +83,7 @@ GLIBC_2.17 clock_nanosleep F
GLIBC_2.17 clock_settime F
GLIBC_2.17 secure_getenv F
GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.2 _Exit F
GLIBC_2.2 _IO_2_1_stderr_ D 0xe0
GLIBC_2.2 _IO_2_1_stdin_ D 0xe0
@@ -2313,6 +2314,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
GLIBC_2.34 pthread_rwlockattr_init F
GLIBC_2.34 pthread_rwlockattr_setkind_np F
GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setattr_default_np F
GLIBC_2.34 pthread_setspecific F
GLIBC_2.34 pthread_spin_destroy F
GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
index 6b87a988d4..3460d95267 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
@@ -2,7 +2,6 @@ GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 pthread_getname_np F
GLIBC_2.12 pthread_setname_np F
GLIBC_2.18 pthread_getattr_default_np F
-GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.2 _IO_flockfile F
GLIBC_2.2 _IO_ftrylockfile F
GLIBC_2.2 _IO_funlockfile F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index f752981203..586aec23cb 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -76,6 +76,7 @@ GLIBC_2.17 clock_nanosleep F
GLIBC_2.17 clock_settime F
GLIBC_2.17 secure_getenv F
GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.2.5 _Exit F
GLIBC_2.2.5 _IO_2_1_stderr_ D 0xe0
GLIBC_2.2.5 _IO_2_1_stdin_ D 0xe0
@@ -2274,6 +2275,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
GLIBC_2.34 pthread_rwlockattr_init F
GLIBC_2.34 pthread_rwlockattr_setkind_np F
GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setattr_default_np F
GLIBC_2.34 pthread_setspecific F
GLIBC_2.34 pthread_spin_destroy F
GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
index cea092874a..fd77f8a602 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
@@ -2,7 +2,6 @@ GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 pthread_getname_np F
GLIBC_2.12 pthread_setname_np F
GLIBC_2.18 pthread_getattr_default_np F
-GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.2.5 _IO_flockfile F
GLIBC_2.2.5 _IO_ftrylockfile F
GLIBC_2.2.5 _IO_funlockfile F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 55f133b0d5..1529b87004 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -2189,6 +2189,7 @@ GLIBC_2.17 clock_nanosleep F
GLIBC_2.17 clock_settime F
GLIBC_2.17 secure_getenv F
GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.22 fmemopen F
GLIBC_2.23 fts64_children F
GLIBC_2.23 fts64_close F
@@ -2379,6 +2380,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
GLIBC_2.34 pthread_rwlockattr_init F
GLIBC_2.34 pthread_rwlockattr_setkind_np F
GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setattr_default_np F
GLIBC_2.34 pthread_setspecific F
GLIBC_2.34 pthread_spin_destroy F
GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
index 394748f198..ab2ec9227a 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
@@ -33,7 +33,6 @@ GLIBC_2.16 pthread_sigqueue F
GLIBC_2.16 pthread_timedjoin_np F
GLIBC_2.16 pthread_tryjoin_np F
GLIBC_2.18 pthread_getattr_default_np F
-GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.28 thrd_create F
GLIBC_2.28 thrd_detach F
GLIBC_2.28 thrd_join F
--
2.31.1
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH 5/8] nptl: Move stack cache management, __libpthread_freeres into libc
2021-05-10 12:37 [PATCH 0/8] nptl: Move pthread_detach and pthread_join into libc Florian Weimer
` (3 preceding siblings ...)
2021-05-10 12:37 ` [PATCH 4/8] nptl: Move pthread_setattr_default_np into libc Florian Weimer
@ 2021-05-10 12:37 ` Florian Weimer
2021-05-10 16:45 ` Adhemerval Zanella
2021-05-10 12:38 ` [PATCH 6/8] nptl: Move __free_tcb " Florian Weimer
` (2 subsequent siblings)
7 siblings, 1 reply; 20+ messages in thread
From: Florian Weimer @ 2021-05-10 12:37 UTC (permalink / raw)
To: libc-alpha
This replaces the FREE_P macro with the __nptl_stack_in_use inline
function. stack_list_del is renamed to __nptl_stack_list_del,
stack_list_add to __nptl_stack_list_add, __deallocate_stack to
__nptl_deallocate_stack, free_stacks to __nptl_free_stacks.
It is convenient to move __libpthread_freeres into libc at the
same time. This removes the temporary __default_pthread_attr_freeres
export and restores full freeres coverage for __default_pthread_attr.
---
malloc/set-freeres.c | 15 +++--
nptl/Makefile | 3 +-
nptl/Versions | 5 +-
nptl/allocatestack.c | 147 ++----------------------------------------
nptl/descr.h | 6 ++
nptl/nptl-stack.c | 130 +++++++++++++++++++++++++++++++++++++
nptl/nptl-stack.h | 50 ++++++++++++++
nptl/nptlfreeres.c | 3 +-
nptl/pthreadP.h | 7 +-
nptl/pthread_create.c | 4 +-
10 files changed, 212 insertions(+), 158 deletions(-)
create mode 100644 nptl/nptl-stack.c
create mode 100644 nptl/nptl-stack.h
diff --git a/malloc/set-freeres.c b/malloc/set-freeres.c
index d404250151..5c19a2725c 100644
--- a/malloc/set-freeres.c
+++ b/malloc/set-freeres.c
@@ -29,7 +29,15 @@ DEFINE_HOOK (__libc_subfreeres, (void));
symbol_set_define (__libc_freeres_ptrs);
-extern __attribute__ ((weak)) void __libpthread_freeres (void);
+extern void __libpthread_freeres (void)
+#if PTHREAD_IN_LIBC && defined SHARED
+/* It is possible to call __libpthread_freeres directly in shared
+ builds with an integrated libpthread. */
+ attribute_hidden
+#else
+ __attribute__ ((weak))
+#endif
+ ;
void __libc_freeres_fn_section
__libc_freeres (void)
@@ -51,10 +59,7 @@ __libc_freeres (void)
/* We run the resource freeing after IO cleanup. */
RUN_HOOK (__libc_subfreeres, ());
- /* Call the libpthread list of cleanup functions
- (weak-ref-and-check). */
- if (&__libpthread_freeres != NULL)
- __libpthread_freeres ();
+ call_function_static_weak (__libpthread_freeres);
#ifdef SHARED
__libc_unwind_link_freeres ();
diff --git a/nptl/Makefile b/nptl/Makefile
index 2a18eadf71..3b83817163 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -44,9 +44,11 @@ routines = \
libc_multiple_threads \
libc_pthread_init \
lowlevellock \
+ nptl-stack \
nptl_deallocate_tsd \
nptl_nthreads \
nptl_setxid \
+ nptlfreeres \
old_pthread_atfork \
old_pthread_cond_broadcast \
old_pthread_cond_destroy \
@@ -185,7 +187,6 @@ libpthread-routines = \
funlockfile \
libpthread-compat \
nptl-init \
- nptlfreeres \
pt-interp \
pthread_attr_getaffinity \
pthread_attr_getguardsize \
diff --git a/nptl/Versions b/nptl/Versions
index de025e179c..93219d2657 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -303,7 +303,6 @@ libc {
}
GLIBC_PRIVATE {
__default_pthread_attr;
- __default_pthread_attr_freeres;
__default_pthread_attr_lock;
__futex_abstimed_wait64;
__futex_abstimed_wait_cancelable64;
@@ -320,9 +319,12 @@ libc {
__lll_trylock_elision;
__lll_unlock_elision;
__mutex_aconf;
+ __nptl_deallocate_stack;
__nptl_deallocate_tsd;
__nptl_nthreads;
__nptl_setxid_sighandler;
+ __nptl_stack_list_add;
+ __nptl_stack_list_del;
__pthread_attr_copy;
__pthread_attr_destroy;
__pthread_attr_init;
@@ -459,7 +461,6 @@ libpthread {
}
GLIBC_PRIVATE {
- __libpthread_freeres;
__pthread_clock_gettime;
__pthread_clock_settime;
__pthread_get_minstack;
diff --git a/nptl/allocatestack.c b/nptl/allocatestack.c
index 8672e89e75..c0a5c4d96d 100644
--- a/nptl/allocatestack.c
+++ b/nptl/allocatestack.c
@@ -31,7 +31,7 @@
#include <lowlevellock.h>
#include <futex-internal.h>
#include <kernel-features.h>
-
+#include <nptl-stack.h>
#ifndef NEED_SEPARATE_REGISTER_STACK
@@ -92,56 +92,6 @@
# define MAP_STACK 0
#endif
-/* This yields the pointer that TLS support code calls the thread pointer. */
-#if TLS_TCB_AT_TP
-# define TLS_TPADJ(pd) (pd)
-#elif TLS_DTV_AT_TP
-# define TLS_TPADJ(pd) ((struct pthread *)((char *) (pd) + TLS_PRE_TCB_SIZE))
-#endif
-
-/* Cache handling for not-yet free stacks. */
-
-/* Maximum size in kB of cache. */
-static size_t stack_cache_maxsize = 40 * 1024 * 1024; /* 40MiBi by default. */
-
-/* Check whether the stack is still used or not. */
-#define FREE_P(descr) ((descr)->tid <= 0)
-
-
-static void
-stack_list_del (list_t *elem)
-{
- GL (dl_in_flight_stack) = (uintptr_t) elem;
-
- atomic_write_barrier ();
-
- list_del (elem);
-
- atomic_write_barrier ();
-
- GL (dl_in_flight_stack) = 0;
-}
-
-
-static void
-stack_list_add (list_t *elem, list_t *list)
-{
- GL (dl_in_flight_stack) = (uintptr_t) elem | 1;
-
- atomic_write_barrier ();
-
- list_add (elem, list);
-
- atomic_write_barrier ();
-
- GL (dl_in_flight_stack) = 0;
-}
-
-
-/* We create a double linked list of all cache entries. Double linked
- because this allows removing entries from the end. */
-
-
/* Get a stack frame from the cache. We have to match by size since
some blocks might be too small or far too large. */
static struct pthread *
@@ -164,7 +114,7 @@ get_cached_stack (size_t *sizep, void **memp)
struct pthread *curr;
curr = list_entry (entry, struct pthread, list);
- if (FREE_P (curr) && curr->stackblock_size >= size)
+ if (__nptl_stack_in_use (curr) && curr->stackblock_size >= size)
{
if (curr->stackblock_size == size)
{
@@ -193,10 +143,10 @@ get_cached_stack (size_t *sizep, void **memp)
result->setxid_futex = -1;
/* Dequeue the entry. */
- stack_list_del (&result->list);
+ __nptl_stack_list_del (&result->list);
/* And add to the list of stacks in use. */
- stack_list_add (&result->list, &GL (dl_stack_used));
+ __nptl_stack_list_add (&result->list, &GL (dl_stack_used));
/* And decrease the cache size. */
GL (dl_stack_cache_actsize) -= result->stackblock_size;
@@ -229,68 +179,6 @@ get_cached_stack (size_t *sizep, void **memp)
return result;
}
-
-/* Free stacks until cache size is lower than LIMIT. */
-static void
-free_stacks (size_t limit)
-{
- /* We reduce the size of the cache. Remove the last entries until
- the size is below the limit. */
- list_t *entry;
- list_t *prev;
-
- /* Search from the end of the list. */
- list_for_each_prev_safe (entry, prev, &GL (dl_stack_cache))
- {
- struct pthread *curr;
-
- curr = list_entry (entry, struct pthread, list);
- if (FREE_P (curr))
- {
- /* Unlink the block. */
- stack_list_del (entry);
-
- /* Account for the freed memory. */
- GL (dl_stack_cache_actsize) -= curr->stackblock_size;
-
- /* Free the memory associated with the ELF TLS. */
- _dl_deallocate_tls (TLS_TPADJ (curr), false);
-
- /* Remove this block. This should never fail. If it does
- something is really wrong. */
- if (__munmap (curr->stackblock, curr->stackblock_size) != 0)
- abort ();
-
- /* Maybe we have freed enough. */
- if (GL (dl_stack_cache_actsize) <= limit)
- break;
- }
- }
-}
-
-/* Free all the stacks on cleanup. */
-void
-__nptl_stacks_freeres (void)
-{
- free_stacks (0);
-}
-
-/* Add a stack frame which is not used anymore to the stack. Must be
- called with the cache lock held. */
-static inline void
-__attribute ((always_inline))
-queue_stack (struct pthread *stack)
-{
- /* We unconditionally add the stack to the list. The memory may
- still be in use but it will not be reused until the kernel marks
- the stack as not used anymore. */
- stack_list_add (&stack->list, &GL (dl_stack_cache));
-
- GL (dl_stack_cache_actsize) += stack->stackblock_size;
- if (__glibc_unlikely (GL (dl_stack_cache_actsize) > stack_cache_maxsize))
- free_stacks (stack_cache_maxsize);
-}
-
/* Return the guard page position on allocated stack. */
static inline char *
__attribute ((always_inline))
@@ -588,7 +476,7 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp,
lll_lock (GL (dl_stack_cache_lock), LLL_PRIVATE);
/* And add to the list of stacks in use. */
- stack_list_add (&pd->list, &GL (dl_stack_used));
+ __nptl_stack_list_add (&pd->list, &GL (dl_stack_used));
lll_unlock (GL (dl_stack_cache_lock), LLL_PRIVATE);
@@ -630,7 +518,7 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp,
lll_lock (GL (dl_stack_cache_lock), LLL_PRIVATE);
/* Remove the thread from the list. */
- stack_list_del (&pd->list);
+ __nptl_stack_list_del (&pd->list);
lll_unlock (GL (dl_stack_cache_lock), LLL_PRIVATE);
@@ -731,26 +619,3 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp,
return 0;
}
-
-
-void
-__deallocate_stack (struct pthread *pd)
-{
- lll_lock (GL (dl_stack_cache_lock), LLL_PRIVATE);
-
- /* Remove the thread from the list of threads with user defined
- stacks. */
- stack_list_del (&pd->list);
-
- /* Not much to do. Just free the mmap()ed memory. Note that we do
- not reset the 'used' flag in the 'tid' field. This is done by
- the kernel. If no thread has been created yet this field is
- still zero. */
- if (__glibc_likely (! pd->user_stack))
- (void) queue_stack (pd);
- else
- /* Free the memory associated with the ELF TLS. */
- _dl_deallocate_tls (TLS_TPADJ (pd), false);
-
- lll_unlock (GL (dl_stack_cache_lock), LLL_PRIVATE);
-}
diff --git a/nptl/descr.h b/nptl/descr.h
index d423a53bbf..3de9535449 100644
--- a/nptl/descr.h
+++ b/nptl/descr.h
@@ -416,5 +416,11 @@ struct pthread
(sizeof (struct pthread) - offsetof (struct pthread, end_padding))
} __attribute ((aligned (TCB_ALIGNMENT)));
+/* This yields the pointer that TLS support code calls the thread pointer. */
+#if TLS_TCB_AT_TP
+# define TLS_TPADJ(pd) (pd)
+#elif TLS_DTV_AT_TP
+# define TLS_TPADJ(pd) ((struct pthread *)((char *) (pd) + TLS_PRE_TCB_SIZE))
+#endif
#endif /* descr.h */
diff --git a/nptl/nptl-stack.c b/nptl/nptl-stack.c
new file mode 100644
index 0000000000..5ead9db198
--- /dev/null
+++ b/nptl/nptl-stack.c
@@ -0,0 +1,130 @@
+/* Stack cache management for NPTL.
+ Copyright (C) 2002-2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <nptl-stack.h>
+#include <ldsodefs.h>
+
+/* Maximum size in kB of cache. */
+static size_t stack_cache_maxsize = 40 * 1024 * 1024; /* 40MiBi by default. */
+
+void
+__nptl_stack_list_del (list_t *elem)
+{
+ GL (dl_in_flight_stack) = (uintptr_t) elem;
+
+ atomic_write_barrier ();
+
+ list_del (elem);
+
+ atomic_write_barrier ();
+
+ GL (dl_in_flight_stack) = 0;
+}
+libc_hidden_def (__nptl_stack_list_del)
+
+void
+__nptl_stack_list_add (list_t *elem, list_t *list)
+{
+ GL (dl_in_flight_stack) = (uintptr_t) elem | 1;
+
+ atomic_write_barrier ();
+
+ list_add (elem, list);
+
+ atomic_write_barrier ();
+
+ GL (dl_in_flight_stack) = 0;
+}
+libc_hidden_def (__nptl_stack_list_add)
+
+void
+__nptl_free_stacks (size_t limit)
+{
+ /* We reduce the size of the cache. Remove the last entries until
+ the size is below the limit. */
+ list_t *entry;
+ list_t *prev;
+
+ /* Search from the end of the list. */
+ list_for_each_prev_safe (entry, prev, &GL (dl_stack_cache))
+ {
+ struct pthread *curr;
+
+ curr = list_entry (entry, struct pthread, list);
+ if (__nptl_stack_in_use (curr))
+ {
+ /* Unlink the block. */
+ __nptl_stack_list_del (entry);
+
+ /* Account for the freed memory. */
+ GL (dl_stack_cache_actsize) -= curr->stackblock_size;
+
+ /* Free the memory associated with the ELF TLS. */
+ _dl_deallocate_tls (TLS_TPADJ (curr), false);
+
+ /* Remove this block. This should never fail. If it does
+ something is really wrong. */
+ if (__munmap (curr->stackblock, curr->stackblock_size) != 0)
+ abort ();
+
+ /* Maybe we have freed enough. */
+ if (GL (dl_stack_cache_actsize) <= limit)
+ break;
+ }
+ }
+}
+
+/* Add a stack frame which is not used anymore to the stack. Must be
+ called with the cache lock held. */
+static inline void
+__attribute ((always_inline))
+queue_stack (struct pthread *stack)
+{
+ /* We unconditionally add the stack to the list. The memory may
+ still be in use but it will not be reused until the kernel marks
+ the stack as not used anymore. */
+ __nptl_stack_list_add (&stack->list, &GL (dl_stack_cache));
+
+ GL (dl_stack_cache_actsize) += stack->stackblock_size;
+ if (__glibc_unlikely (GL (dl_stack_cache_actsize) > stack_cache_maxsize))
+ __nptl_free_stacks (stack_cache_maxsize);
+}
+
+void
+__nptl_deallocate_stack (struct pthread *pd)
+{
+ lll_lock (GL (dl_stack_cache_lock), LLL_PRIVATE);
+
+ /* Remove the thread from the list of threads with user defined
+ stacks. */
+ __nptl_stack_list_del (&pd->list);
+
+ /* Not much to do. Just free the mmap()ed memory. Note that we do
+ not reset the 'used' flag in the 'tid' field. This is done by
+ the kernel. If no thread has been created yet this field is
+ still zero. */
+ if (__glibc_likely (! pd->user_stack))
+ (void) queue_stack (pd);
+ else
+ /* Free the memory associated with the ELF TLS. */
+ _dl_deallocate_tls (TLS_TPADJ (pd), false);
+
+ lll_unlock (GL (dl_stack_cache_lock), LLL_PRIVATE);
+}
+libc_hidden_def (__nptl_deallocate_stack)
diff --git a/nptl/nptl-stack.h b/nptl/nptl-stack.h
new file mode 100644
index 0000000000..8631b61816
--- /dev/null
+++ b/nptl/nptl-stack.h
@@ -0,0 +1,50 @@
+/* Stack cache management for NPTL.
+ Copyright (C) 2002-2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _NPTL_STACK_H
+#define _NPTL_STACK_H
+
+#include <descr.h>
+#include <list.h>
+#include <stdbool.h>
+
+/* Check whether the stack is still used or not. */
+static inline bool
+__nptl_stack_in_use (struct pthread *pd)
+{
+ return pd->tid <= 0;
+}
+
+/* Remove the stack ELEM from its list. */
+void __nptl_stack_list_del (list_t *elem);
+libc_hidden_proto (__nptl_stack_list_del)
+
+/* Add ELEM to a stack list. LIST can be either &GL (dl_stack_used)
+ or &GL (dl_stack_cache). */
+void __nptl_stack_list_add (list_t *elem, list_t *list);
+libc_hidden_proto (__nptl_stack_list_add)
+
+/* Free allocated stack. */
+extern void __nptl_deallocate_stack (struct pthread *pd);
+libc_hidden_proto (__nptl_deallocate_stack)
+
+/* Free stacks until cache size is lower than LIMIT. */
+void __nptl_free_stacks (size_t limit) attribute_hidden;
+
+#endif /* _NPTL_STACK_H */
diff --git a/nptl/nptlfreeres.c b/nptl/nptlfreeres.c
index 4833f04714..527b5ee103 100644
--- a/nptl/nptlfreeres.c
+++ b/nptl/nptlfreeres.c
@@ -19,6 +19,7 @@
#include <set-hooks.h>
#include <libc-symbols.h>
#include <pthreadP.h>
+#include <nptl-stack.h>
/* Free libpthread.so resources.
Note: Caller ensures we are called only once. */
@@ -26,5 +27,5 @@ void
__libpthread_freeres (void)
{
call_function_static_weak (__default_pthread_attr_freeres);
- call_function_static_weak (__nptl_stacks_freeres);
+ __nptl_free_stacks (0);
}
diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
index 8466332248..505d0f00ff 100644
--- a/nptl/pthreadP.h
+++ b/nptl/pthreadP.h
@@ -203,7 +203,7 @@ libc_hidden_proto (__default_pthread_attr)
extern int __default_pthread_attr_lock;
libc_hidden_proto (__default_pthread_attr_lock)
/* Called from __libc_freeres to deallocate the default attribute. */
-extern void __default_pthread_attr_freeres (void);
+extern void __default_pthread_attr_freeres (void) attribute_hidden;
/* Size and alignment of static TLS block. */
extern size_t __static_tls_size attribute_hidden;
@@ -314,9 +314,6 @@ __do_cancel (void)
descriptor is still valid. */
extern void __free_tcb (struct pthread *pd) attribute_hidden;
-/* Free allocated stack. */
-extern void __deallocate_stack (struct pthread *pd) attribute_hidden;
-
/* Change the permissions of a thread stack. Called from
_dl_make_stacks_executable and pthread_create. */
int
@@ -679,8 +676,6 @@ void __nptl_setxid_sighandler (int sig, siginfo_t *si, void *ctx);
libc_hidden_proto (__nptl_setxid_sighandler)
extern int __nptl_setxid (struct xid_command *cmdp) attribute_hidden;
-extern void __nptl_stacks_freeres (void) attribute_hidden;
-
extern void __wait_lookup_done (void) attribute_hidden;
/* Allocates the extension space for ATTR. Returns an error code on
diff --git a/nptl/pthread_create.c b/nptl/pthread_create.c
index d19456d48b..fcaf440bb5 100644
--- a/nptl/pthread_create.c
+++ b/nptl/pthread_create.c
@@ -228,7 +228,7 @@ __free_tcb (struct pthread *pd)
/* Queue the stack memory block for reuse and exit the process. The
kernel will signal via writing to the address returned by
QUEUE-STACK when the stack is available. */
- __deallocate_stack (pd);
+ __nptl_deallocate_stack (pd);
}
}
@@ -711,7 +711,7 @@ __pthread_create_2_1 (pthread_t *newthread, const pthread_attr_t *attr,
futex_wake (&pd->setxid_futex, 1, FUTEX_PRIVATE);
/* Free the resources. */
- __deallocate_stack (pd);
+ __nptl_deallocate_stack (pd);
}
/* We have to translate error codes. */
--
2.31.1
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH 6/8] nptl: Move __free_tcb into libc
2021-05-10 12:37 [PATCH 0/8] nptl: Move pthread_detach and pthread_join into libc Florian Weimer
` (4 preceding siblings ...)
2021-05-10 12:37 ` [PATCH 5/8] nptl: Move stack cache management, __libpthread_freeres " Florian Weimer
@ 2021-05-10 12:38 ` Florian Weimer
2021-05-10 16:49 ` Adhemerval Zanella
2021-05-10 12:38 ` [PATCH 7/8] nptl: Move pthread_detach, thrd_detach " Florian Weimer
2021-05-10 12:42 ` [PATCH 8/8] nptl: Move thread join functions " Florian Weimer
7 siblings, 1 reply; 20+ messages in thread
From: Florian Weimer @ 2021-05-10 12:38 UTC (permalink / raw)
To: libc-alpha
Under the name __nptl_free_tcb.
---
nptl/Makefile | 1 +
nptl/Versions | 1 +
nptl/nptl_free_tcb.c | 46 ++++++++++++++++++++++++++++++++++++++
nptl/pthreadP.h | 3 ++-
nptl/pthread_create.c | 27 +---------------------
nptl/pthread_detach.c | 2 +-
nptl/pthread_join_common.c | 2 +-
7 files changed, 53 insertions(+), 29 deletions(-)
create mode 100644 nptl/nptl_free_tcb.c
diff --git a/nptl/Makefile b/nptl/Makefile
index 3b83817163..82dc6f466d 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -46,6 +46,7 @@ routines = \
lowlevellock \
nptl-stack \
nptl_deallocate_tsd \
+ nptl_free_tcb \
nptl_nthreads \
nptl_setxid \
nptlfreeres \
diff --git a/nptl/Versions b/nptl/Versions
index 93219d2657..da610a4803 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -321,6 +321,7 @@ libc {
__mutex_aconf;
__nptl_deallocate_stack;
__nptl_deallocate_tsd;
+ __nptl_free_tcb;
__nptl_nthreads;
__nptl_setxid_sighandler;
__nptl_stack_list_add;
diff --git a/nptl/nptl_free_tcb.c b/nptl/nptl_free_tcb.c
new file mode 100644
index 0000000000..65c4d3bfa7
--- /dev/null
+++ b/nptl/nptl_free_tcb.c
@@ -0,0 +1,46 @@
+/* TCB deallocation for NPTL.
+ Copyright (C) 2002-2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <nptl-stack.h>
+#include <pthreadP.h>
+#include <stdlib.h>
+
+void
+__nptl_free_tcb (struct pthread *pd)
+{
+ /* The thread is exiting now. */
+ if (__builtin_expect (atomic_bit_test_set (&pd->cancelhandling,
+ TERMINATED_BIT) == 0, 1))
+ {
+ /* Free TPP data. */
+ if (__glibc_unlikely (pd->tpp != NULL))
+ {
+ struct priority_protection_data *tpp = pd->tpp;
+
+ pd->tpp = NULL;
+ free (tpp);
+ }
+
+ /* Queue the stack memory block for reuse and exit the process. The
+ kernel will signal via writing to the address returned by
+ QUEUE-STACK when the stack is available. */
+ __nptl_deallocate_stack (pd);
+ }
+}
+libc_hidden_def (__nptl_free_tcb)
diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
index 505d0f00ff..d580f71a38 100644
--- a/nptl/pthreadP.h
+++ b/nptl/pthreadP.h
@@ -312,7 +312,8 @@ __do_cancel (void)
/* Deallocate a thread's stack after optionally making sure the thread
descriptor is still valid. */
-extern void __free_tcb (struct pthread *pd) attribute_hidden;
+extern void __nptl_free_tcb (struct pthread *pd);
+libc_hidden_proto (__nptl_free_tcb)
/* Change the permissions of a thread stack. Called from
_dl_make_stacks_executable and pthread_create. */
diff --git a/nptl/pthread_create.c b/nptl/pthread_create.c
index fcaf440bb5..770656453d 100644
--- a/nptl/pthread_create.c
+++ b/nptl/pthread_create.c
@@ -207,31 +207,6 @@ static int create_thread (struct pthread *pd, const struct pthread_attr *attr,
#include <createthread.c>
-/* Deallocate a thread's stack after optionally making sure the thread
- descriptor is still valid. */
-void
-__free_tcb (struct pthread *pd)
-{
- /* The thread is exiting now. */
- if (__builtin_expect (atomic_bit_test_set (&pd->cancelhandling,
- TERMINATED_BIT) == 0, 1))
- {
- /* Free TPP data. */
- if (__glibc_unlikely (pd->tpp != NULL))
- {
- struct priority_protection_data *tpp = pd->tpp;
-
- pd->tpp = NULL;
- free (tpp);
- }
-
- /* Queue the stack memory block for reuse and exit the process. The
- kernel will signal via writing to the address returned by
- QUEUE-STACK when the stack is available. */
- __nptl_deallocate_stack (pd);
- }
-}
-
/* Local function to start thread and handle cleanup.
createthread.c defines the macro START_THREAD_DEFN to the
declaration that its create_thread function will refer to, and
@@ -444,7 +419,7 @@ START_THREAD_DEFN
/* If the thread is detached free the TCB. */
if (IS_DETACHED (pd))
/* Free the TCB. */
- __free_tcb (pd);
+ __nptl_free_tcb (pd);
/* We cannot call '_exit' here. '_exit' will terminate the process.
diff --git a/nptl/pthread_detach.c b/nptl/pthread_detach.c
index 57293ec950..410255bbe1 100644
--- a/nptl/pthread_detach.c
+++ b/nptl/pthread_detach.c
@@ -49,7 +49,7 @@ __pthread_detach (pthread_t th)
if ((pd->cancelhandling & EXITING_BITMASK) != 0)
/* Note that the code in __free_tcb makes sure each thread
control block is freed only once. */
- __free_tcb (pd);
+ __nptl_free_tcb (pd);
return result;
}
diff --git a/nptl/pthread_join_common.c b/nptl/pthread_join_common.c
index a99c26e27e..e87801b5a3 100644
--- a/nptl/pthread_join_common.c
+++ b/nptl/pthread_join_common.c
@@ -122,7 +122,7 @@ __pthread_clockjoin_ex (pthread_t threadid, void **thread_return,
*thread_return = pd_result;
/* Free the TCB. */
- __free_tcb (pd);
+ __nptl_free_tcb (pd);
}
else
pd->joinid = NULL;
--
2.31.1
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH 7/8] nptl: Move pthread_detach, thrd_detach into libc
2021-05-10 12:37 [PATCH 0/8] nptl: Move pthread_detach and pthread_join into libc Florian Weimer
` (5 preceding siblings ...)
2021-05-10 12:38 ` [PATCH 6/8] nptl: Move __free_tcb " Florian Weimer
@ 2021-05-10 12:38 ` Florian Weimer
2021-05-10 16:56 ` Adhemerval Zanella
2021-05-10 12:42 ` [PATCH 8/8] nptl: Move thread join functions " Florian Weimer
7 siblings, 1 reply; 20+ messages in thread
From: Florian Weimer @ 2021-05-10 12:38 UTC (permalink / raw)
To: libc-alpha
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(-)
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
--
2.31.1
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH 8/8] nptl: Move thread join functions into libc
2021-05-10 12:37 [PATCH 0/8] nptl: Move pthread_detach and pthread_join into libc Florian Weimer
` (6 preceding siblings ...)
2021-05-10 12:38 ` [PATCH 7/8] nptl: Move pthread_detach, thrd_detach " Florian Weimer
@ 2021-05-10 12:42 ` Florian Weimer
2021-05-10 16:58 ` Adhemerval Zanella
7 siblings, 1 reply; 20+ messages in thread
From: Florian Weimer @ 2021-05-10 12:42 UTC (permalink / raw)
To: libc-alpha
The symbols pthread_clockjoin_np, pthread_join, pthread_timedjoin_np,
pthread_tryjoin_np, thrd_join were moved using
scripts/move-symbol-to-libc.py.
Moving the symbols at the same time avoids the need for temporary
exports.
---
nptl/Makefile | 10 +++----
nptl/Versions | 18 +++++++++----
nptl/libpthread-compat.c | 5 ++++
nptl/pthreadP.h | 5 ++--
nptl/pthread_clockjoin.c | 27 ++++++++++++-------
nptl/pthread_join.c | 13 +++++++--
nptl/pthread_timedjoin.c | 22 ++++++++++-----
nptl/pthread_tryjoin.c | 8 +++++-
sysdeps/pthread/Makefile | 3 ++-
sysdeps/pthread/thrd_join.c | 11 +++++++-
sysdeps/unix/sysv/linux/aarch64/libc.abilist | 10 +++++++
.../sysv/linux/aarch64/libpthread.abilist | 6 +----
sysdeps/unix/sysv/linux/alpha/libc.abilist | 10 +++++++
.../unix/sysv/linux/alpha/libpthread.abilist | 6 +----
sysdeps/unix/sysv/linux/arc/libc.abilist | 10 +++++++
.../unix/sysv/linux/arc/libpthread.abilist | 5 ----
sysdeps/unix/sysv/linux/arm/be/libc.abilist | 10 +++++++
.../unix/sysv/linux/arm/be/libpthread.abilist | 6 +----
sysdeps/unix/sysv/linux/arm/le/libc.abilist | 10 +++++++
.../unix/sysv/linux/arm/le/libpthread.abilist | 6 +----
sysdeps/unix/sysv/linux/csky/libc.abilist | 10 +++++++
.../unix/sysv/linux/csky/libpthread.abilist | 6 +----
sysdeps/unix/sysv/linux/hppa/libc.abilist | 10 +++++++
.../unix/sysv/linux/hppa/libpthread.abilist | 6 +----
sysdeps/unix/sysv/linux/i386/libc.abilist | 10 +++++++
.../unix/sysv/linux/i386/libpthread.abilist | 6 +----
sysdeps/unix/sysv/linux/ia64/libc.abilist | 10 +++++++
.../unix/sysv/linux/ia64/libpthread.abilist | 6 +----
.../sysv/linux/m68k/coldfire/libc.abilist | 10 +++++++
.../linux/m68k/coldfire/libpthread.abilist | 6 +----
.../unix/sysv/linux/m68k/m680x0/libc.abilist | 10 +++++++
.../sysv/linux/m68k/m680x0/libpthread.abilist | 6 +----
.../sysv/linux/microblaze/be/libc.abilist | 10 +++++++
.../linux/microblaze/be/libpthread.abilist | 6 +----
.../sysv/linux/microblaze/le/libc.abilist | 10 +++++++
.../linux/microblaze/le/libpthread.abilist | 6 +----
.../sysv/linux/mips/mips32/fpu/libc.abilist | 10 +++++++
.../sysv/linux/mips/mips32/libpthread.abilist | 6 +----
.../sysv/linux/mips/mips32/nofpu/libc.abilist | 10 +++++++
.../sysv/linux/mips/mips64/libpthread.abilist | 6 +----
.../sysv/linux/mips/mips64/n32/libc.abilist | 10 +++++++
.../sysv/linux/mips/mips64/n64/libc.abilist | 10 +++++++
sysdeps/unix/sysv/linux/nios2/libc.abilist | 10 +++++++
.../unix/sysv/linux/nios2/libpthread.abilist | 6 +----
.../linux/powerpc/powerpc32/fpu/libc.abilist | 10 +++++++
.../powerpc/powerpc32/libpthread.abilist | 6 +----
.../powerpc/powerpc32/nofpu/libc.abilist | 10 +++++++
.../linux/powerpc/powerpc64/be/libc.abilist | 10 +++++++
.../powerpc/powerpc64/be/libpthread.abilist | 6 +----
.../linux/powerpc/powerpc64/le/libc.abilist | 10 +++++++
.../powerpc/powerpc64/le/libpthread.abilist | 6 +----
.../unix/sysv/linux/riscv/rv32/libc.abilist | 10 +++++++
.../sysv/linux/riscv/rv32/libpthread.abilist | 5 ----
.../unix/sysv/linux/riscv/rv64/libc.abilist | 10 +++++++
.../sysv/linux/riscv/rv64/libpthread.abilist | 6 +----
.../unix/sysv/linux/s390/s390-32/libc.abilist | 10 +++++++
.../linux/s390/s390-32/libpthread.abilist | 6 +----
.../unix/sysv/linux/s390/s390-64/libc.abilist | 10 +++++++
.../linux/s390/s390-64/libpthread.abilist | 6 +----
sysdeps/unix/sysv/linux/sh/be/libc.abilist | 10 +++++++
.../unix/sysv/linux/sh/be/libpthread.abilist | 6 +----
sysdeps/unix/sysv/linux/sh/le/libc.abilist | 10 +++++++
.../unix/sysv/linux/sh/le/libpthread.abilist | 6 +----
.../sysv/linux/sparc/sparc32/libc.abilist | 10 +++++++
.../linux/sparc/sparc32/libpthread.abilist | 6 +----
.../sysv/linux/sparc/sparc64/libc.abilist | 10 +++++++
.../linux/sparc/sparc64/libpthread.abilist | 6 +----
.../unix/sysv/linux/x86_64/64/libc.abilist | 10 +++++++
.../sysv/linux/x86_64/64/libpthread.abilist | 6 +----
.../unix/sysv/linux/x86_64/x32/libc.abilist | 10 +++++++
.../sysv/linux/x86_64/x32/libpthread.abilist | 6 +----
71 files changed, 436 insertions(+), 178 deletions(-)
diff --git a/nptl/Makefile b/nptl/Makefile
index 3ef4cb966b..e8aa11b13d 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -84,6 +84,7 @@ routines = \
pthread_barrierattr_init \
pthread_barrierattr_setpshared \
pthread_cleanup_upto \
+ pthread_clockjoin \
pthread_cond_broadcast \
pthread_cond_destroy \
pthread_cond_init \
@@ -102,6 +103,8 @@ routines = \
pthread_getattr_np \
pthread_getschedparam \
pthread_getspecific \
+ pthread_join \
+ pthread_join_common \
pthread_key_create \
pthread_key_delete \
pthread_keys \
@@ -161,6 +164,8 @@ routines = \
pthread_spin_trylock \
pthread_spin_unlock \
pthread_testcancel \
+ pthread_timedjoin \
+ pthread_tryjoin \
pthread_yield \
sem_clockwait \
sem_close \
@@ -200,21 +205,16 @@ libpthread-routines = \
pthread_attr_setstackaddr \
pthread_attr_setstacksize \
pthread_cancel \
- pthread_clockjoin \
pthread_create \
pthread_getattr_default_np \
pthread_getconcurrency \
pthread_getcpuclockid \
pthread_getname \
- pthread_join \
- pthread_join_common \
pthread_setaffinity \
pthread_setconcurrency \
pthread_setname \
pthread_setschedprio \
pthread_sigqueue \
- pthread_timedjoin \
- pthread_tryjoin \
version \
libpthread-shared-only-routines = \
diff --git a/nptl/Versions b/nptl/Versions
index 46ae34a1a2..8c3e825083 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -42,6 +42,7 @@ libc {
pthread_exit;
pthread_getschedparam;
pthread_getspecific;
+ pthread_join;
pthread_key_create;
pthread_key_delete;
pthread_kill;
@@ -148,6 +149,8 @@ libc {
pthread_condattr_getclock;
pthread_condattr_setclock;
pthread_getaffinity_np;
+ pthread_timedjoin_np;
+ pthread_tryjoin_np;
}
GLIBC_2.3.4 {
pthread_attr_setaffinity_np;
@@ -190,6 +193,7 @@ libc {
thrd_detach;
thrd_equal;
thrd_exit;
+ thrd_join;
thrd_sleep;
thrd_yield;
tss_create;
@@ -204,6 +208,9 @@ libc {
pthread_rwlock_clockwrlock;
sem_clockwait;
}
+ GLIBC_2.31 {
+ pthread_clockjoin_np;
+ }
GLIBC_2.32 {
pthread_attr_getsigmask_np;
pthread_attr_setaffinity_np;
@@ -237,6 +244,7 @@ libc {
pthread_barrierattr_getpshared;
pthread_barrierattr_init;
pthread_barrierattr_setpshared;
+ pthread_clockjoin_np;
pthread_cond_clockwait;
pthread_condattr_getclock;
pthread_condattr_getpshared;
@@ -244,6 +252,7 @@ libc {
pthread_condattr_setpshared;
pthread_detach;
pthread_getspecific;
+ pthread_join;
pthread_key_create;
pthread_key_delete;
pthread_kill;
@@ -287,6 +296,8 @@ libc {
pthread_spin_trylock;
pthread_spin_unlock;
pthread_testcancel;
+ pthread_timedjoin_np;
+ pthread_tryjoin_np;
sem_clockwait;
sem_close;
sem_destroy;
@@ -300,6 +311,7 @@ libc {
sem_wait;
thrd_detach;
thrd_exit;
+ thrd_join;
tss_create;
tss_delete;
tss_get;
@@ -369,7 +381,6 @@ libpthread {
funlockfile;
pthread_cancel;
pthread_create;
- pthread_join;
pthread_sigmask;
}
@@ -421,8 +432,6 @@ libpthread {
__pthread_unregister_cancel_restore;
pthread_attr_getaffinity_np;
pthread_setaffinity_np;
- pthread_timedjoin_np;
- pthread_tryjoin_np;
}
GLIBC_2.3.4 {
@@ -452,7 +461,6 @@ libpthread {
# C11 thread symbols.
GLIBC_2.28 {
thrd_create;
- thrd_join;
}
GLIBC_2.30 {
@@ -460,7 +468,7 @@ libpthread {
}
GLIBC_2.31 {
- pthread_clockjoin_np;
+ __libpthread_version_placeholder;
}
GLIBC_PRIVATE {
diff --git a/nptl/libpthread-compat.c b/nptl/libpthread-compat.c
index 401fa6ad34..bc9ee36df0 100644
--- a/nptl/libpthread-compat.c
+++ b/nptl/libpthread-compat.c
@@ -69,3 +69,8 @@ compat_symbol (libpthread, __libpthread_version_placeholder_1,
compat_symbol (libpthread, __libpthread_version_placeholder_1,
__libpthread_version_placeholder, GLIBC_2_30);
#endif
+
+#if (SHLIB_COMPAT (libpthread, GLIBC_2_31, GLIBC_2_32))
+compat_symbol (libpthread, __libpthread_version_placeholder_1,
+ __libpthread_version_placeholder, GLIBC_2_31);
+#endif
diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
index 34d133b187..7e3cef4709 100644
--- a/nptl/pthreadP.h
+++ b/nptl/pthreadP.h
@@ -456,10 +456,10 @@ libc_hidden_proto (__pthread_cond_wait)
extern int __pthread_clockjoin_np64 (pthread_t threadid, void **thread_return,
clockid_t clockid,
const struct __timespec64 *abstime);
-libpthread_hidden_proto (__pthread_clockjoin_np64)
+libc_hidden_proto (__pthread_clockjoin_np64)
extern int __pthread_timedjoin_np64 (pthread_t threadid, void **thread_return,
const struct __timespec64 *abstime);
-libpthread_hidden_proto (__pthread_timedjoin_np64)
+libc_hidden_proto (__pthread_timedjoin_np64)
extern int __pthread_cond_timedwait64 (pthread_cond_t *cond,
pthread_mutex_t *mutex,
const struct __timespec64 *abstime);
@@ -535,6 +535,7 @@ extern int __pthread_kill (pthread_t threadid, int signo);
extern void __pthread_exit (void *value) __attribute__ ((__noreturn__));
libc_hidden_proto (__pthread_exit)
extern int __pthread_join (pthread_t threadid, void **thread_return);
+libc_hidden_proto (__pthread_join)
extern int __pthread_setcanceltype (int type, int *oldtype);
libc_hidden_proto (__pthread_setcanceltype)
extern void __pthread_testcancel (void);
diff --git a/nptl/pthread_clockjoin.c b/nptl/pthread_clockjoin.c
index 7457c187fe..f5007d7831 100644
--- a/nptl/pthread_clockjoin.c
+++ b/nptl/pthread_clockjoin.c
@@ -19,10 +19,12 @@
#include <time.h>
#include <futex-internal.h>
#include "pthreadP.h"
+#include <shlib-compat.h>
int
-__pthread_clockjoin_np64 (pthread_t threadid, void **thread_return,
- clockid_t clockid, const struct __timespec64 *abstime)
+___pthread_clockjoin_np64 (pthread_t threadid, void **thread_return,
+ clockid_t clockid,
+ const struct __timespec64 *abstime)
{
if (!futex_abstimed_supported_clockid (clockid))
return EINVAL;
@@ -31,12 +33,14 @@ __pthread_clockjoin_np64 (pthread_t threadid, void **thread_return,
clockid, abstime, true);
}
-#if __TIMESIZE != 64
-libpthread_hidden_def (__pthread_clockjoin_np64)
+#if __TIMESIZE == 64
+strong_alias (___pthread_clockjoin_np64, ___pthread_clockjoin_np)
+#else /* __TIMESPEC64 != 64 */
+libc_hidden_ver (___pthread_clockjoin_np64, __pthread_clockjoin_np64)
int
-__pthread_clockjoin_np (pthread_t threadid, void **thread_return,
- clockid_t clockid, const struct timespec *abstime)
+___pthread_clockjoin_np (pthread_t threadid, void **thread_return,
+ clockid_t clockid, const struct timespec *abstime)
{
if (abstime != NULL)
{
@@ -45,8 +49,13 @@ __pthread_clockjoin_np (pthread_t threadid, void **thread_return,
&ts64);
}
else
- return __pthread_clockjoin_np64 (threadid, thread_return, clockid,
- NULL);
+ return __pthread_clockjoin_np64 (threadid, thread_return, clockid,
+ NULL);
}
+#endif /* __TIMESPEC64 != 64 */
+versioned_symbol (libc, ___pthread_clockjoin_np, pthread_clockjoin_np,
+ GLIBC_2_34);
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_31, GLIBC_2_34)
+compat_symbol (libpthread, ___pthread_clockjoin_np, pthread_clockjoin_np,
+ GLIBC_2_31);
#endif
-weak_alias (__pthread_clockjoin_np, pthread_clockjoin_np)
diff --git a/nptl/pthread_join.c b/nptl/pthread_join.c
index 4ad718e606..d2b33de73d 100644
--- a/nptl/pthread_join.c
+++ b/nptl/pthread_join.c
@@ -17,11 +17,20 @@
<https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
+#include <shlib-compat.h>
int
-__pthread_join (pthread_t threadid, void **thread_return)
+___pthread_join (pthread_t threadid, void **thread_return)
{
return __pthread_clockjoin_ex (threadid, thread_return, 0 /* Ignored */,
NULL, true);
}
-weak_alias (__pthread_join, pthread_join)
+versioned_symbol (libc, ___pthread_join, pthread_join, GLIBC_2_34);
+libc_hidden_ver (___pthread_join, __pthread_join)
+#ifndef SHARED
+strong_alias (___pthread_join, __pthread_join)
+#endif
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_34)
+compat_symbol (libc, ___pthread_join, pthread_join, GLIBC_2_0);
+#endif
diff --git a/nptl/pthread_timedjoin.c b/nptl/pthread_timedjoin.c
index f5d0d3d6ce..ebc31f935a 100644
--- a/nptl/pthread_timedjoin.c
+++ b/nptl/pthread_timedjoin.c
@@ -18,21 +18,24 @@
#include <time.h>
#include "pthreadP.h"
+#include <shlib-compat.h>
int
-__pthread_timedjoin_np64 (pthread_t threadid, void **thread_return,
- const struct __timespec64 *abstime)
+___pthread_timedjoin_np64 (pthread_t threadid, void **thread_return,
+ const struct __timespec64 *abstime)
{
return __pthread_clockjoin_ex (threadid, thread_return,
CLOCK_REALTIME, abstime, true);
}
-#if __TIMESIZE != 64
-libpthread_hidden_def (__pthread_timedjoin_np64)
+#if __TIMESIZE == 64
+strong_alias (___pthread_timedjoin_np64, ___pthread_timedjoin_np)
+#else /* __TIMESPEC64 != 64 */
+libc_hidden_ver (___pthread_timedjoin_np64, __pthread_timedjoin_np64)
int
-__pthread_timedjoin_np (pthread_t threadid, void **thread_return,
- const struct timespec *abstime)
+ ___pthread_timedjoin_np (pthread_t threadid, void **thread_return,
+ const struct timespec *abstime)
{
if (abstime != NULL)
{
@@ -42,5 +45,10 @@ __pthread_timedjoin_np (pthread_t threadid, void **thread_return,
else
return __pthread_timedjoin_np64 (threadid, thread_return, NULL);
}
+#endif /* __TIMESPEC64 != 64 */
+versioned_symbol (libc, ___pthread_timedjoin_np, pthread_timedjoin_np,
+ GLIBC_2_34);
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_3_3, GLIBC_2_34)
+compat_symbol (libpthread, ___pthread_timedjoin_np, pthread_timedjoin_np,
+ GLIBC_2_3_3);
#endif
-weak_alias (__pthread_timedjoin_np, pthread_timedjoin_np)
diff --git a/nptl/pthread_tryjoin.c b/nptl/pthread_tryjoin.c
index 62c9469258..fd938e8780 100644
--- a/nptl/pthread_tryjoin.c
+++ b/nptl/pthread_tryjoin.c
@@ -17,9 +17,10 @@
<https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
+#include <shlib-compat.h>
int
-pthread_tryjoin_np (pthread_t threadid, void **thread_return)
+__pthread_tryjoin_np (pthread_t threadid, void **thread_return)
{
/* Return right away if the thread hasn't terminated yet. */
struct pthread *pd = (struct pthread *) threadid;
@@ -31,3 +32,8 @@ pthread_tryjoin_np (pthread_t threadid, void **thread_return)
return __pthread_clockjoin_ex (threadid, thread_return, 0 /* Ignored */,
NULL, false);
}
+versioned_symbol (libc, __pthread_tryjoin_np, pthread_tryjoin_np, GLIBC_2_34);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_3_3, GLIBC_2_34)
+compat_symbol (libc, __pthread_tryjoin_np, pthread_tryjoin_np, GLIBC_2_3_3);
+#endif
diff --git a/sysdeps/pthread/Makefile b/sysdeps/pthread/Makefile
index ec8e3af577..b15d085f51 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_join
+libpthread-routines += thrd_create
$(libpthread-routines-var) += \
call_once \
@@ -49,6 +49,7 @@ $(libpthread-routines-var) += \
mtx_unlock \
thrd_detach \
thrd_exit \
+ thrd_join \
tss_create \
tss_delete \
tss_get \
diff --git a/sysdeps/pthread/thrd_join.c b/sysdeps/pthread/thrd_join.c
index 8b53092c12..8db96ce4a5 100644
--- a/sysdeps/pthread/thrd_join.c
+++ b/sysdeps/pthread/thrd_join.c
@@ -17,9 +17,10 @@
<https://www.gnu.org/licenses/>. */
#include "thrd_priv.h"
+#include <shlib-compat.h>
int
-thrd_join (thrd_t thr, int *res)
+__thrd_join (thrd_t thr, int *res)
{
void *pthread_res;
int err_code = __pthread_join (thr, &pthread_res);
@@ -28,3 +29,11 @@ thrd_join (thrd_t thr, int *res)
return thrd_err_map (err_code);
}
+#if PTHREAD_IN_LIBC
+versioned_symbol (libc, __thrd_join, thrd_join, GLIBC_2_34);
+# if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_28, GLIBC_2_34)
+compat_symbol (libc, __thrd_join, thrd_join, GLIBC_2_28);
+# endif
+#else /* !PTHREAD_IN_LIBC */
+strong_alias (__thrd_join, thrd_join)
+#endif
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index b5b0b44697..2d06bfef34 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -1481,6 +1481,7 @@ GLIBC_2.17 pthread_getaffinity_np F
GLIBC_2.17 pthread_getattr_np F
GLIBC_2.17 pthread_getschedparam F
GLIBC_2.17 pthread_getspecific F
+GLIBC_2.17 pthread_join F
GLIBC_2.17 pthread_key_create F
GLIBC_2.17 pthread_key_delete F
GLIBC_2.17 pthread_kill F
@@ -1539,6 +1540,8 @@ GLIBC_2.17 pthread_spin_lock F
GLIBC_2.17 pthread_spin_trylock F
GLIBC_2.17 pthread_spin_unlock F
GLIBC_2.17 pthread_testcancel F
+GLIBC_2.17 pthread_timedjoin_np F
+GLIBC_2.17 pthread_tryjoin_np F
GLIBC_2.17 pthread_yield F
GLIBC_2.17 ptrace F
GLIBC_2.17 ptsname F
@@ -2255,6 +2258,7 @@ 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_join F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
GLIBC_2.28 tss_create F
@@ -2273,6 +2277,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.30 tgkill F
GLIBC_2.30 twalk_r F
+GLIBC_2.31 pthread_clockjoin_np F
GLIBC_2.32 __libc_single_threaded D 0x1
GLIBC_2.32 pthread_attr_getsigmask_np F
GLIBC_2.32 pthread_attr_setaffinity_np F
@@ -2322,6 +2327,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
GLIBC_2.34 pthread_barrierattr_getpshared F
GLIBC_2.34 pthread_barrierattr_init F
GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_clockjoin_np F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F
@@ -2329,6 +2335,7 @@ 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_join F
GLIBC_2.34 pthread_key_create F
GLIBC_2.34 pthread_key_delete F
GLIBC_2.34 pthread_kill F
@@ -2376,6 +2383,8 @@ GLIBC_2.34 pthread_spin_lock F
GLIBC_2.34 pthread_spin_trylock F
GLIBC_2.34 pthread_spin_unlock F
GLIBC_2.34 pthread_testcancel F
+GLIBC_2.34 pthread_timedjoin_np F
+GLIBC_2.34 pthread_tryjoin_np F
GLIBC_2.34 sem_clockwait F
GLIBC_2.34 sem_close F
GLIBC_2.34 sem_destroy F
@@ -2389,6 +2398,7 @@ 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 thrd_join F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
GLIBC_2.34 tss_get F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
index 71627a5cc8..fd8f0f7d1c 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
@@ -23,16 +23,12 @@ GLIBC_2.17 pthread_create F
GLIBC_2.17 pthread_getconcurrency F
GLIBC_2.17 pthread_getcpuclockid F
GLIBC_2.17 pthread_getname_np F
-GLIBC_2.17 pthread_join F
GLIBC_2.17 pthread_setaffinity_np F
GLIBC_2.17 pthread_setconcurrency F
GLIBC_2.17 pthread_setname_np F
GLIBC_2.17 pthread_setschedprio F
GLIBC_2.17 pthread_sigqueue F
-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_join F
GLIBC_2.30 __libpthread_version_placeholder F
-GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.31 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 20d4855e90..8f1c1368ad 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -902,6 +902,7 @@ GLIBC_2.0 pthread_equal F
GLIBC_2.0 pthread_exit F
GLIBC_2.0 pthread_getschedparam F
GLIBC_2.0 pthread_getspecific F
+GLIBC_2.0 pthread_join F
GLIBC_2.0 pthread_key_create F
GLIBC_2.0 pthread_key_delete F
GLIBC_2.0 pthread_kill F
@@ -2153,6 +2154,7 @@ 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_join F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
GLIBC_2.28 tss_create F
@@ -2284,6 +2286,8 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
GLIBC_2.3.3 pthread_condattr_getclock F
GLIBC_2.3.3 pthread_condattr_setclock F
GLIBC_2.3.3 pthread_getaffinity_np F
+GLIBC_2.3.3 pthread_timedjoin_np F
+GLIBC_2.3.3 pthread_tryjoin_np F
GLIBC_2.3.3 remap_file_pages F
GLIBC_2.3.3 sched_getaffinity F
GLIBC_2.3.3 sched_setaffinity F
@@ -2360,6 +2364,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.30 tgkill F
GLIBC_2.30 twalk_r F
+GLIBC_2.31 pthread_clockjoin_np F
GLIBC_2.32 __libc_single_threaded D 0x1
GLIBC_2.32 pthread_attr_getsigmask_np F
GLIBC_2.32 pthread_attr_setaffinity_np F
@@ -2409,6 +2414,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
GLIBC_2.34 pthread_barrierattr_getpshared F
GLIBC_2.34 pthread_barrierattr_init F
GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_clockjoin_np F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F
@@ -2416,6 +2422,7 @@ 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_join F
GLIBC_2.34 pthread_key_create F
GLIBC_2.34 pthread_key_delete F
GLIBC_2.34 pthread_kill F
@@ -2463,6 +2470,8 @@ GLIBC_2.34 pthread_spin_lock F
GLIBC_2.34 pthread_spin_trylock F
GLIBC_2.34 pthread_spin_unlock F
GLIBC_2.34 pthread_testcancel F
+GLIBC_2.34 pthread_timedjoin_np F
+GLIBC_2.34 pthread_tryjoin_np F
GLIBC_2.34 sem_clockwait F
GLIBC_2.34 sem_close F
GLIBC_2.34 sem_destroy F
@@ -2476,6 +2485,7 @@ 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 thrd_join F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
GLIBC_2.34 tss_get F
diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
index b4ea31102a..16fa6ec4ee 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_join F
GLIBC_2.1 pthread_attr_getguardsize F
GLIBC_2.1 pthread_attr_getstackaddr F
GLIBC_2.1 pthread_attr_getstacksize F
@@ -29,7 +28,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_join F
GLIBC_2.3.2 __libpthread_version_placeholder F
GLIBC_2.3.3 __pthread_register_cancel F
GLIBC_2.3.3 __pthread_register_cancel_defer F
@@ -39,11 +37,9 @@ GLIBC_2.3.3 pthread_attr_getaffinity_np F
GLIBC_2.3.3 pthread_attr_setstack F
GLIBC_2.3.3 pthread_attr_setstacksize F
GLIBC_2.3.3 pthread_setaffinity_np F
-GLIBC_2.3.3 pthread_timedjoin_np F
-GLIBC_2.3.3 pthread_tryjoin_np F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_setaffinity_np F
GLIBC_2.3.4 pthread_setschedprio F
GLIBC_2.30 __libpthread_version_placeholder F
-GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.31 __libpthread_version_placeholder F
GLIBC_2.4 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 19eb517f28..ae902ecdd0 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1401,6 +1401,7 @@ GLIBC_2.32 pthread_barrierattr_destroy F
GLIBC_2.32 pthread_barrierattr_getpshared F
GLIBC_2.32 pthread_barrierattr_init F
GLIBC_2.32 pthread_barrierattr_setpshared F
+GLIBC_2.32 pthread_clockjoin_np F
GLIBC_2.32 pthread_cond_broadcast F
GLIBC_2.32 pthread_cond_clockwait F
GLIBC_2.32 pthread_cond_destroy F
@@ -1421,6 +1422,7 @@ GLIBC_2.32 pthread_getaffinity_np F
GLIBC_2.32 pthread_getattr_np F
GLIBC_2.32 pthread_getschedparam F
GLIBC_2.32 pthread_getspecific F
+GLIBC_2.32 pthread_join F
GLIBC_2.32 pthread_key_create F
GLIBC_2.32 pthread_key_delete F
GLIBC_2.32 pthread_kill F
@@ -1483,6 +1485,8 @@ GLIBC_2.32 pthread_spin_lock F
GLIBC_2.32 pthread_spin_trylock F
GLIBC_2.32 pthread_spin_unlock F
GLIBC_2.32 pthread_testcancel F
+GLIBC_2.32 pthread_timedjoin_np F
+GLIBC_2.32 pthread_tryjoin_np F
GLIBC_2.32 pthread_yield F
GLIBC_2.32 ptrace F
GLIBC_2.32 ptsname F
@@ -1866,6 +1870,7 @@ 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_join F
GLIBC_2.32 thrd_sleep F
GLIBC_2.32 thrd_yield F
GLIBC_2.32 time F
@@ -2081,6 +2086,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
GLIBC_2.34 pthread_barrierattr_getpshared F
GLIBC_2.34 pthread_barrierattr_init F
GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_clockjoin_np F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F
@@ -2088,6 +2094,7 @@ 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_join F
GLIBC_2.34 pthread_key_create F
GLIBC_2.34 pthread_key_delete F
GLIBC_2.34 pthread_kill F
@@ -2135,6 +2142,8 @@ GLIBC_2.34 pthread_spin_lock F
GLIBC_2.34 pthread_spin_trylock F
GLIBC_2.34 pthread_spin_unlock F
GLIBC_2.34 pthread_testcancel F
+GLIBC_2.34 pthread_timedjoin_np F
+GLIBC_2.34 pthread_tryjoin_np F
GLIBC_2.34 sem_clockwait F
GLIBC_2.34 sem_close F
GLIBC_2.34 sem_destroy F
@@ -2148,6 +2157,7 @@ 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 thrd_join F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
GLIBC_2.34 tss_get F
diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
index 8ac0cde1ee..4c8b8ee724 100644
--- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
@@ -19,19 +19,14 @@ GLIBC_2.32 pthread_attr_setstack F
GLIBC_2.32 pthread_attr_setstackaddr F
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_getattr_default_np F
GLIBC_2.32 pthread_getconcurrency F
GLIBC_2.32 pthread_getcpuclockid F
GLIBC_2.32 pthread_getname_np F
-GLIBC_2.32 pthread_join F
GLIBC_2.32 pthread_setaffinity_np F
GLIBC_2.32 pthread_setconcurrency F
GLIBC_2.32 pthread_setname_np F
GLIBC_2.32 pthread_setschedprio F
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_join F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 9ba6a30214..acc620643f 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -140,6 +140,7 @@ GLIBC_2.28 thrd_current F
GLIBC_2.28 thrd_detach F
GLIBC_2.28 thrd_equal F
GLIBC_2.28 thrd_exit F
+GLIBC_2.28 thrd_join F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
GLIBC_2.28 tss_create F
@@ -159,6 +160,7 @@ GLIBC_2.30 sem_clockwait F
GLIBC_2.30 tgkill F
GLIBC_2.30 twalk_r F
GLIBC_2.31 msgctl F
+GLIBC_2.31 pthread_clockjoin_np F
GLIBC_2.31 semctl F
GLIBC_2.31 shmctl F
GLIBC_2.32 __libc_single_threaded D 0x1
@@ -210,6 +212,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
GLIBC_2.34 pthread_barrierattr_getpshared F
GLIBC_2.34 pthread_barrierattr_init F
GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_clockjoin_np F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F
@@ -217,6 +220,7 @@ 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_join F
GLIBC_2.34 pthread_key_create F
GLIBC_2.34 pthread_key_delete F
GLIBC_2.34 pthread_kill F
@@ -264,6 +268,8 @@ GLIBC_2.34 pthread_spin_lock F
GLIBC_2.34 pthread_spin_trylock F
GLIBC_2.34 pthread_spin_unlock F
GLIBC_2.34 pthread_testcancel F
+GLIBC_2.34 pthread_timedjoin_np F
+GLIBC_2.34 pthread_tryjoin_np F
GLIBC_2.34 sem_clockwait F
GLIBC_2.34 sem_close F
GLIBC_2.34 sem_destroy F
@@ -277,6 +283,7 @@ 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 thrd_join F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
GLIBC_2.34 tss_get F
@@ -1698,6 +1705,7 @@ GLIBC_2.4 pthread_getaffinity_np F
GLIBC_2.4 pthread_getattr_np F
GLIBC_2.4 pthread_getschedparam F
GLIBC_2.4 pthread_getspecific F
+GLIBC_2.4 pthread_join F
GLIBC_2.4 pthread_key_create F
GLIBC_2.4 pthread_key_delete F
GLIBC_2.4 pthread_kill F
@@ -1753,6 +1761,8 @@ GLIBC_2.4 pthread_spin_lock F
GLIBC_2.4 pthread_spin_trylock F
GLIBC_2.4 pthread_spin_unlock F
GLIBC_2.4 pthread_testcancel F
+GLIBC_2.4 pthread_timedjoin_np F
+GLIBC_2.4 pthread_tryjoin_np F
GLIBC_2.4 pthread_yield F
GLIBC_2.4 ptrace F
GLIBC_2.4 ptsname F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
index b74a43658d..072b9a30f1 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
@@ -3,9 +3,8 @@ 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_join F
GLIBC_2.30 __libpthread_version_placeholder F
-GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.31 __libpthread_version_placeholder F
GLIBC_2.4 _IO_flockfile F
GLIBC_2.4 _IO_ftrylockfile F
GLIBC_2.4 _IO_funlockfile F
@@ -31,9 +30,6 @@ GLIBC_2.4 pthread_cancel F
GLIBC_2.4 pthread_create F
GLIBC_2.4 pthread_getconcurrency F
GLIBC_2.4 pthread_getcpuclockid F
-GLIBC_2.4 pthread_join F
GLIBC_2.4 pthread_setaffinity_np F
GLIBC_2.4 pthread_setconcurrency F
GLIBC_2.4 pthread_setschedprio F
-GLIBC_2.4 pthread_timedjoin_np F
-GLIBC_2.4 pthread_tryjoin_np F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 9a79a6622e..fd33a2317f 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -140,6 +140,7 @@ GLIBC_2.28 thrd_current F
GLIBC_2.28 thrd_detach F
GLIBC_2.28 thrd_equal F
GLIBC_2.28 thrd_exit F
+GLIBC_2.28 thrd_join F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
GLIBC_2.28 tss_create F
@@ -158,6 +159,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.30 tgkill F
GLIBC_2.30 twalk_r F
+GLIBC_2.31 pthread_clockjoin_np F
GLIBC_2.32 __libc_single_threaded D 0x1
GLIBC_2.32 pthread_attr_getsigmask_np F
GLIBC_2.32 pthread_attr_setaffinity_np F
@@ -207,6 +209,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
GLIBC_2.34 pthread_barrierattr_getpshared F
GLIBC_2.34 pthread_barrierattr_init F
GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_clockjoin_np F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F
@@ -214,6 +217,7 @@ 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_join F
GLIBC_2.34 pthread_key_create F
GLIBC_2.34 pthread_key_delete F
GLIBC_2.34 pthread_kill F
@@ -261,6 +265,8 @@ GLIBC_2.34 pthread_spin_lock F
GLIBC_2.34 pthread_spin_trylock F
GLIBC_2.34 pthread_spin_unlock F
GLIBC_2.34 pthread_testcancel F
+GLIBC_2.34 pthread_timedjoin_np F
+GLIBC_2.34 pthread_tryjoin_np F
GLIBC_2.34 sem_clockwait F
GLIBC_2.34 sem_close F
GLIBC_2.34 sem_destroy F
@@ -274,6 +280,7 @@ 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 thrd_join F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
GLIBC_2.34 tss_get F
@@ -1695,6 +1702,7 @@ GLIBC_2.4 pthread_getaffinity_np F
GLIBC_2.4 pthread_getattr_np F
GLIBC_2.4 pthread_getschedparam F
GLIBC_2.4 pthread_getspecific F
+GLIBC_2.4 pthread_join F
GLIBC_2.4 pthread_key_create F
GLIBC_2.4 pthread_key_delete F
GLIBC_2.4 pthread_kill F
@@ -1750,6 +1758,8 @@ GLIBC_2.4 pthread_spin_lock F
GLIBC_2.4 pthread_spin_trylock F
GLIBC_2.4 pthread_spin_unlock F
GLIBC_2.4 pthread_testcancel F
+GLIBC_2.4 pthread_timedjoin_np F
+GLIBC_2.4 pthread_tryjoin_np F
GLIBC_2.4 pthread_yield F
GLIBC_2.4 ptrace F
GLIBC_2.4 ptsname F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
index b74a43658d..072b9a30f1 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
@@ -3,9 +3,8 @@ 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_join F
GLIBC_2.30 __libpthread_version_placeholder F
-GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.31 __libpthread_version_placeholder F
GLIBC_2.4 _IO_flockfile F
GLIBC_2.4 _IO_ftrylockfile F
GLIBC_2.4 _IO_funlockfile F
@@ -31,9 +30,6 @@ GLIBC_2.4 pthread_cancel F
GLIBC_2.4 pthread_create F
GLIBC_2.4 pthread_getconcurrency F
GLIBC_2.4 pthread_getcpuclockid F
-GLIBC_2.4 pthread_join F
GLIBC_2.4 pthread_setaffinity_np F
GLIBC_2.4 pthread_setconcurrency F
GLIBC_2.4 pthread_setschedprio F
-GLIBC_2.4 pthread_timedjoin_np F
-GLIBC_2.4 pthread_tryjoin_np F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index b21ff2de89..c1ac24c3a2 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -1481,6 +1481,7 @@ GLIBC_2.29 pthread_getaffinity_np F
GLIBC_2.29 pthread_getattr_np F
GLIBC_2.29 pthread_getschedparam F
GLIBC_2.29 pthread_getspecific F
+GLIBC_2.29 pthread_join F
GLIBC_2.29 pthread_key_create F
GLIBC_2.29 pthread_key_delete F
GLIBC_2.29 pthread_kill F
@@ -1540,6 +1541,8 @@ GLIBC_2.29 pthread_spin_lock F
GLIBC_2.29 pthread_spin_trylock F
GLIBC_2.29 pthread_spin_unlock F
GLIBC_2.29 pthread_testcancel F
+GLIBC_2.29 pthread_timedjoin_np F
+GLIBC_2.29 pthread_tryjoin_np F
GLIBC_2.29 pthread_yield F
GLIBC_2.29 ptrace F
GLIBC_2.29 ptsname F
@@ -1957,6 +1960,7 @@ 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_join F
GLIBC_2.29 thrd_sleep F
GLIBC_2.29 thrd_yield F
GLIBC_2.29 time F
@@ -2216,6 +2220,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.30 tgkill F
GLIBC_2.30 twalk_r F
+GLIBC_2.31 pthread_clockjoin_np F
GLIBC_2.32 __libc_single_threaded D 0x1
GLIBC_2.32 pthread_attr_getsigmask_np F
GLIBC_2.32 pthread_attr_setaffinity_np F
@@ -2265,6 +2270,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
GLIBC_2.34 pthread_barrierattr_getpshared F
GLIBC_2.34 pthread_barrierattr_init F
GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_clockjoin_np F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F
@@ -2272,6 +2278,7 @@ 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_join F
GLIBC_2.34 pthread_key_create F
GLIBC_2.34 pthread_key_delete F
GLIBC_2.34 pthread_kill F
@@ -2319,6 +2326,8 @@ GLIBC_2.34 pthread_spin_lock F
GLIBC_2.34 pthread_spin_trylock F
GLIBC_2.34 pthread_spin_unlock F
GLIBC_2.34 pthread_testcancel F
+GLIBC_2.34 pthread_timedjoin_np F
+GLIBC_2.34 pthread_tryjoin_np F
GLIBC_2.34 sem_clockwait F
GLIBC_2.34 sem_close F
GLIBC_2.34 sem_destroy F
@@ -2332,6 +2341,7 @@ 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 thrd_join F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
GLIBC_2.34 tss_get F
diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
index 665cc7bc38..678865fb8c 100644
--- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
@@ -24,15 +24,11 @@ GLIBC_2.29 pthread_getattr_default_np F
GLIBC_2.29 pthread_getconcurrency F
GLIBC_2.29 pthread_getcpuclockid F
GLIBC_2.29 pthread_getname_np F
-GLIBC_2.29 pthread_join F
GLIBC_2.29 pthread_setaffinity_np F
GLIBC_2.29 pthread_setconcurrency F
GLIBC_2.29 pthread_setname_np F
GLIBC_2.29 pthread_setschedprio F
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_join F
GLIBC_2.30 __libpthread_version_placeholder F
-GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.31 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 3e893dfcaa..29225ac912 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -1304,6 +1304,7 @@ GLIBC_2.2 pthread_equal F
GLIBC_2.2 pthread_exit F
GLIBC_2.2 pthread_getschedparam F
GLIBC_2.2 pthread_getspecific F
+GLIBC_2.2 pthread_join F
GLIBC_2.2 pthread_key_create F
GLIBC_2.2 pthread_key_delete F
GLIBC_2.2 pthread_kill F
@@ -1986,6 +1987,7 @@ 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_join F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
GLIBC_2.28 tss_create F
@@ -2121,6 +2123,8 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
GLIBC_2.3.3 pthread_condattr_getclock F
GLIBC_2.3.3 pthread_condattr_setclock F
GLIBC_2.3.3 pthread_getaffinity_np F
+GLIBC_2.3.3 pthread_timedjoin_np F
+GLIBC_2.3.3 pthread_tryjoin_np F
GLIBC_2.3.3 remap_file_pages F
GLIBC_2.3.3 sched_getaffinity F
GLIBC_2.3.3 sched_setaffinity F
@@ -2167,6 +2171,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.30 tgkill F
GLIBC_2.30 twalk_r F
+GLIBC_2.31 pthread_clockjoin_np F
GLIBC_2.32 __libc_single_threaded D 0x1
GLIBC_2.32 pthread_attr_getsigmask_np F
GLIBC_2.32 pthread_attr_setaffinity_np F
@@ -2216,6 +2221,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
GLIBC_2.34 pthread_barrierattr_getpshared F
GLIBC_2.34 pthread_barrierattr_init F
GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_clockjoin_np F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F
@@ -2223,6 +2229,7 @@ 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_join F
GLIBC_2.34 pthread_key_create F
GLIBC_2.34 pthread_key_delete F
GLIBC_2.34 pthread_kill F
@@ -2270,6 +2277,8 @@ GLIBC_2.34 pthread_spin_lock F
GLIBC_2.34 pthread_spin_trylock F
GLIBC_2.34 pthread_spin_unlock F
GLIBC_2.34 pthread_testcancel F
+GLIBC_2.34 pthread_timedjoin_np F
+GLIBC_2.34 pthread_tryjoin_np F
GLIBC_2.34 sem_clockwait F
GLIBC_2.34 sem_close F
GLIBC_2.34 sem_destroy F
@@ -2283,6 +2292,7 @@ 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 thrd_join F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
GLIBC_2.34 tss_get F
diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
index cc1ca55754..59585f6763 100644
--- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
@@ -21,12 +21,10 @@ GLIBC_2.2 pthread_cancel F
GLIBC_2.2 pthread_create F
GLIBC_2.2 pthread_getconcurrency F
GLIBC_2.2 pthread_getcpuclockid F
-GLIBC_2.2 pthread_join F
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_join F
GLIBC_2.3.2 __libpthread_version_placeholder F
GLIBC_2.3.3 __pthread_register_cancel F
GLIBC_2.3.3 __pthread_register_cancel_defer F
@@ -34,11 +32,9 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 pthread_attr_getaffinity_np F
GLIBC_2.3.3 pthread_setaffinity_np F
-GLIBC_2.3.3 pthread_timedjoin_np F
-GLIBC_2.3.3 pthread_tryjoin_np F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_setaffinity_np F
GLIBC_2.3.4 pthread_setschedprio F
GLIBC_2.30 __libpthread_version_placeholder F
-GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.31 __libpthread_version_placeholder F
GLIBC_2.4 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index f0af406ec5..b5026ba906 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -879,6 +879,7 @@ GLIBC_2.0 pthread_equal F
GLIBC_2.0 pthread_exit F
GLIBC_2.0 pthread_getschedparam F
GLIBC_2.0 pthread_getspecific F
+GLIBC_2.0 pthread_join F
GLIBC_2.0 pthread_key_create F
GLIBC_2.0 pthread_key_delete F
GLIBC_2.0 pthread_kill F
@@ -2166,6 +2167,7 @@ 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_join F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
GLIBC_2.28 tss_create F
@@ -2301,6 +2303,8 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
GLIBC_2.3.3 pthread_condattr_getclock F
GLIBC_2.3.3 pthread_condattr_setclock F
GLIBC_2.3.3 pthread_getaffinity_np F
+GLIBC_2.3.3 pthread_timedjoin_np F
+GLIBC_2.3.3 pthread_tryjoin_np F
GLIBC_2.3.3 remap_file_pages F
GLIBC_2.3.3 sched_getaffinity F
GLIBC_2.3.3 sched_setaffinity F
@@ -2348,6 +2352,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.30 tgkill F
GLIBC_2.30 twalk_r F
+GLIBC_2.31 pthread_clockjoin_np F
GLIBC_2.32 __libc_single_threaded D 0x1
GLIBC_2.32 pthread_attr_getsigmask_np F
GLIBC_2.32 pthread_attr_setaffinity_np F
@@ -2399,6 +2404,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
GLIBC_2.34 pthread_barrierattr_getpshared F
GLIBC_2.34 pthread_barrierattr_init F
GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_clockjoin_np F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F
@@ -2406,6 +2412,7 @@ 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_join F
GLIBC_2.34 pthread_key_create F
GLIBC_2.34 pthread_key_delete F
GLIBC_2.34 pthread_kill F
@@ -2453,6 +2460,8 @@ GLIBC_2.34 pthread_spin_lock F
GLIBC_2.34 pthread_spin_trylock F
GLIBC_2.34 pthread_spin_unlock F
GLIBC_2.34 pthread_testcancel F
+GLIBC_2.34 pthread_timedjoin_np F
+GLIBC_2.34 pthread_tryjoin_np F
GLIBC_2.34 sem_clockwait F
GLIBC_2.34 sem_close F
GLIBC_2.34 sem_destroy F
@@ -2466,6 +2475,7 @@ 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 thrd_join F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
GLIBC_2.34 tss_get F
diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
index 0854a21e65..c7397f889d 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_join F
GLIBC_2.1 pthread_attr_getguardsize F
GLIBC_2.1 pthread_attr_getstackaddr F
GLIBC_2.1 pthread_attr_getstacksize F
@@ -29,7 +28,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_join F
GLIBC_2.3.2 __libpthread_version_placeholder F
GLIBC_2.3.3 __pthread_register_cancel F
GLIBC_2.3.3 __pthread_register_cancel_defer F
@@ -37,11 +35,9 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 pthread_attr_getaffinity_np F
GLIBC_2.3.3 pthread_setaffinity_np F
-GLIBC_2.3.3 pthread_timedjoin_np F
-GLIBC_2.3.3 pthread_tryjoin_np F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_setaffinity_np F
GLIBC_2.3.4 pthread_setschedprio F
GLIBC_2.30 __libpthread_version_placeholder F
-GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.31 __libpthread_version_placeholder F
GLIBC_2.4 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 83985b06e0..f6fc393a21 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -1325,6 +1325,7 @@ GLIBC_2.2 pthread_equal F
GLIBC_2.2 pthread_exit F
GLIBC_2.2 pthread_getschedparam F
GLIBC_2.2 pthread_getspecific F
+GLIBC_2.2 pthread_join F
GLIBC_2.2 pthread_key_create F
GLIBC_2.2 pthread_key_delete F
GLIBC_2.2 pthread_kill F
@@ -2021,6 +2022,7 @@ 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_join F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
GLIBC_2.28 tss_create F
@@ -2152,6 +2154,8 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
GLIBC_2.3.3 pthread_condattr_getclock F
GLIBC_2.3.3 pthread_condattr_setclock F
GLIBC_2.3.3 pthread_getaffinity_np F
+GLIBC_2.3.3 pthread_timedjoin_np F
+GLIBC_2.3.3 pthread_tryjoin_np F
GLIBC_2.3.3 remap_file_pages F
GLIBC_2.3.3 sched_getaffinity F
GLIBC_2.3.3 sched_setaffinity F
@@ -2200,6 +2204,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.30 tgkill F
GLIBC_2.30 twalk_r F
+GLIBC_2.31 pthread_clockjoin_np F
GLIBC_2.32 __libc_single_threaded D 0x1
GLIBC_2.32 pthread_attr_getsigmask_np F
GLIBC_2.32 pthread_attr_setaffinity_np F
@@ -2250,6 +2255,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
GLIBC_2.34 pthread_barrierattr_getpshared F
GLIBC_2.34 pthread_barrierattr_init F
GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_clockjoin_np F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F
@@ -2257,6 +2263,7 @@ 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_join F
GLIBC_2.34 pthread_key_create F
GLIBC_2.34 pthread_key_delete F
GLIBC_2.34 pthread_kill F
@@ -2304,6 +2311,8 @@ GLIBC_2.34 pthread_spin_lock F
GLIBC_2.34 pthread_spin_trylock F
GLIBC_2.34 pthread_spin_unlock F
GLIBC_2.34 pthread_testcancel F
+GLIBC_2.34 pthread_timedjoin_np F
+GLIBC_2.34 pthread_tryjoin_np F
GLIBC_2.34 sem_clockwait F
GLIBC_2.34 sem_close F
GLIBC_2.34 sem_destroy F
@@ -2317,6 +2326,7 @@ 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 thrd_join F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
GLIBC_2.34 tss_get F
diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
index c377a13e65..1b0a061014 100644
--- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
@@ -21,12 +21,10 @@ GLIBC_2.2 pthread_cancel F
GLIBC_2.2 pthread_create F
GLIBC_2.2 pthread_getconcurrency F
GLIBC_2.2 pthread_getcpuclockid F
-GLIBC_2.2 pthread_join F
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_join F
GLIBC_2.3.2 __libpthread_version_placeholder F
GLIBC_2.3.3 __pthread_register_cancel F
GLIBC_2.3.3 __pthread_register_cancel_defer F
@@ -36,11 +34,9 @@ GLIBC_2.3.3 pthread_attr_getaffinity_np F
GLIBC_2.3.3 pthread_attr_setstack F
GLIBC_2.3.3 pthread_attr_setstacksize F
GLIBC_2.3.3 pthread_setaffinity_np F
-GLIBC_2.3.3 pthread_timedjoin_np F
-GLIBC_2.3.3 pthread_tryjoin_np F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_setaffinity_np F
GLIBC_2.3.4 pthread_setschedprio F
GLIBC_2.30 __libpthread_version_placeholder F
-GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.31 __libpthread_version_placeholder F
GLIBC_2.4 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 7d38f2fe55..dfb73924b9 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -141,6 +141,7 @@ GLIBC_2.28 thrd_current F
GLIBC_2.28 thrd_detach F
GLIBC_2.28 thrd_equal F
GLIBC_2.28 thrd_exit F
+GLIBC_2.28 thrd_join F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
GLIBC_2.28 tss_create F
@@ -160,6 +161,7 @@ GLIBC_2.30 sem_clockwait F
GLIBC_2.30 tgkill F
GLIBC_2.30 twalk_r F
GLIBC_2.31 msgctl F
+GLIBC_2.31 pthread_clockjoin_np F
GLIBC_2.31 semctl F
GLIBC_2.31 shmctl F
GLIBC_2.32 __libc_single_threaded D 0x1
@@ -211,6 +213,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
GLIBC_2.34 pthread_barrierattr_getpshared F
GLIBC_2.34 pthread_barrierattr_init F
GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_clockjoin_np F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F
@@ -218,6 +221,7 @@ 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_join F
GLIBC_2.34 pthread_key_create F
GLIBC_2.34 pthread_key_delete F
GLIBC_2.34 pthread_kill F
@@ -265,6 +269,8 @@ GLIBC_2.34 pthread_spin_lock F
GLIBC_2.34 pthread_spin_trylock F
GLIBC_2.34 pthread_spin_unlock F
GLIBC_2.34 pthread_testcancel F
+GLIBC_2.34 pthread_timedjoin_np F
+GLIBC_2.34 pthread_tryjoin_np F
GLIBC_2.34 sem_clockwait F
GLIBC_2.34 sem_close F
GLIBC_2.34 sem_destroy F
@@ -278,6 +284,7 @@ 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 thrd_join F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
GLIBC_2.34 tss_get F
@@ -1678,6 +1685,7 @@ GLIBC_2.4 pthread_getaffinity_np F
GLIBC_2.4 pthread_getattr_np F
GLIBC_2.4 pthread_getschedparam F
GLIBC_2.4 pthread_getspecific F
+GLIBC_2.4 pthread_join F
GLIBC_2.4 pthread_key_create F
GLIBC_2.4 pthread_key_delete F
GLIBC_2.4 pthread_kill F
@@ -1733,6 +1741,8 @@ GLIBC_2.4 pthread_spin_lock F
GLIBC_2.4 pthread_spin_trylock F
GLIBC_2.4 pthread_spin_unlock F
GLIBC_2.4 pthread_testcancel F
+GLIBC_2.4 pthread_timedjoin_np F
+GLIBC_2.4 pthread_tryjoin_np F
GLIBC_2.4 pthread_yield F
GLIBC_2.4 ptrace F
GLIBC_2.4 ptsname F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
index b74a43658d..072b9a30f1 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
@@ -3,9 +3,8 @@ 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_join F
GLIBC_2.30 __libpthread_version_placeholder F
-GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.31 __libpthread_version_placeholder F
GLIBC_2.4 _IO_flockfile F
GLIBC_2.4 _IO_ftrylockfile F
GLIBC_2.4 _IO_funlockfile F
@@ -31,9 +30,6 @@ GLIBC_2.4 pthread_cancel F
GLIBC_2.4 pthread_create F
GLIBC_2.4 pthread_getconcurrency F
GLIBC_2.4 pthread_getcpuclockid F
-GLIBC_2.4 pthread_join F
GLIBC_2.4 pthread_setaffinity_np F
GLIBC_2.4 pthread_setconcurrency F
GLIBC_2.4 pthread_setschedprio F
-GLIBC_2.4 pthread_timedjoin_np F
-GLIBC_2.4 pthread_tryjoin_np F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 99ad04d858..1a88ecbca4 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -878,6 +878,7 @@ GLIBC_2.0 pthread_equal F
GLIBC_2.0 pthread_exit F
GLIBC_2.0 pthread_getschedparam F
GLIBC_2.0 pthread_getspecific F
+GLIBC_2.0 pthread_join F
GLIBC_2.0 pthread_key_create F
GLIBC_2.0 pthread_key_delete F
GLIBC_2.0 pthread_kill F
@@ -2109,6 +2110,7 @@ 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_join F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
GLIBC_2.28 tss_create F
@@ -2244,6 +2246,8 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
GLIBC_2.3.3 pthread_condattr_getclock F
GLIBC_2.3.3 pthread_condattr_setclock F
GLIBC_2.3.3 pthread_getaffinity_np F
+GLIBC_2.3.3 pthread_timedjoin_np F
+GLIBC_2.3.3 pthread_tryjoin_np F
GLIBC_2.3.3 remap_file_pages F
GLIBC_2.3.3 sched_getaffinity F
GLIBC_2.3.3 sched_setaffinity F
@@ -2291,6 +2295,7 @@ GLIBC_2.30 sem_clockwait F
GLIBC_2.30 tgkill F
GLIBC_2.30 twalk_r F
GLIBC_2.31 msgctl F
+GLIBC_2.31 pthread_clockjoin_np F
GLIBC_2.31 semctl F
GLIBC_2.31 shmctl F
GLIBC_2.32 __libc_single_threaded D 0x1
@@ -2342,6 +2347,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
GLIBC_2.34 pthread_barrierattr_getpshared F
GLIBC_2.34 pthread_barrierattr_init F
GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_clockjoin_np F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F
@@ -2349,6 +2355,7 @@ 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_join F
GLIBC_2.34 pthread_key_create F
GLIBC_2.34 pthread_key_delete F
GLIBC_2.34 pthread_kill F
@@ -2396,6 +2403,8 @@ GLIBC_2.34 pthread_spin_lock F
GLIBC_2.34 pthread_spin_trylock F
GLIBC_2.34 pthread_spin_unlock F
GLIBC_2.34 pthread_testcancel F
+GLIBC_2.34 pthread_timedjoin_np F
+GLIBC_2.34 pthread_tryjoin_np F
GLIBC_2.34 sem_clockwait F
GLIBC_2.34 sem_close F
GLIBC_2.34 sem_destroy F
@@ -2409,6 +2418,7 @@ 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 thrd_join F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
GLIBC_2.34 tss_get F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
index 0854a21e65..c7397f889d 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_join F
GLIBC_2.1 pthread_attr_getguardsize F
GLIBC_2.1 pthread_attr_getstackaddr F
GLIBC_2.1 pthread_attr_getstacksize F
@@ -29,7 +28,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_join F
GLIBC_2.3.2 __libpthread_version_placeholder F
GLIBC_2.3.3 __pthread_register_cancel F
GLIBC_2.3.3 __pthread_register_cancel_defer F
@@ -37,11 +35,9 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 pthread_attr_getaffinity_np F
GLIBC_2.3.3 pthread_setaffinity_np F
-GLIBC_2.3.3 pthread_timedjoin_np F
-GLIBC_2.3.3 pthread_tryjoin_np F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_setaffinity_np F
GLIBC_2.3.4 pthread_setschedprio F
GLIBC_2.30 __libpthread_version_placeholder F
-GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.31 __libpthread_version_placeholder F
GLIBC_2.4 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 5eebad0468..f07dba5ef0 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -1483,6 +1483,7 @@ GLIBC_2.18 pthread_getaffinity_np F
GLIBC_2.18 pthread_getattr_np F
GLIBC_2.18 pthread_getschedparam F
GLIBC_2.18 pthread_getspecific F
+GLIBC_2.18 pthread_join F
GLIBC_2.18 pthread_key_create F
GLIBC_2.18 pthread_key_delete F
GLIBC_2.18 pthread_kill F
@@ -1542,6 +1543,8 @@ GLIBC_2.18 pthread_spin_lock F
GLIBC_2.18 pthread_spin_trylock F
GLIBC_2.18 pthread_spin_unlock F
GLIBC_2.18 pthread_testcancel F
+GLIBC_2.18 pthread_timedjoin_np F
+GLIBC_2.18 pthread_tryjoin_np F
GLIBC_2.18 pthread_yield F
GLIBC_2.18 ptrace F
GLIBC_2.18 ptsname F
@@ -2246,6 +2249,7 @@ 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_join F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
GLIBC_2.28 tss_create F
@@ -2265,6 +2269,7 @@ GLIBC_2.30 sem_clockwait F
GLIBC_2.30 tgkill F
GLIBC_2.30 twalk_r F
GLIBC_2.31 msgctl F
+GLIBC_2.31 pthread_clockjoin_np F
GLIBC_2.31 semctl F
GLIBC_2.31 shmctl F
GLIBC_2.32 __libc_single_threaded D 0x1
@@ -2316,6 +2321,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
GLIBC_2.34 pthread_barrierattr_getpshared F
GLIBC_2.34 pthread_barrierattr_init F
GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_clockjoin_np F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F
@@ -2323,6 +2329,7 @@ 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_join F
GLIBC_2.34 pthread_key_create F
GLIBC_2.34 pthread_key_delete F
GLIBC_2.34 pthread_kill F
@@ -2370,6 +2377,8 @@ GLIBC_2.34 pthread_spin_lock F
GLIBC_2.34 pthread_spin_trylock F
GLIBC_2.34 pthread_spin_unlock F
GLIBC_2.34 pthread_testcancel F
+GLIBC_2.34 pthread_timedjoin_np F
+GLIBC_2.34 pthread_tryjoin_np F
GLIBC_2.34 sem_clockwait F
GLIBC_2.34 sem_close F
GLIBC_2.34 sem_destroy F
@@ -2383,6 +2392,7 @@ 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 thrd_join F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
GLIBC_2.34 tss_get F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
index f50eb41a1a..2e35824ff0 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
@@ -24,15 +24,11 @@ GLIBC_2.18 pthread_getattr_default_np F
GLIBC_2.18 pthread_getconcurrency F
GLIBC_2.18 pthread_getcpuclockid F
GLIBC_2.18 pthread_getname_np F
-GLIBC_2.18 pthread_join F
GLIBC_2.18 pthread_setaffinity_np F
GLIBC_2.18 pthread_setconcurrency F
GLIBC_2.18 pthread_setname_np F
GLIBC_2.18 pthread_setschedprio F
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_join F
GLIBC_2.30 __libpthread_version_placeholder F
-GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.31 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 9c54e2d42c..688de4ee35 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -1483,6 +1483,7 @@ GLIBC_2.18 pthread_getaffinity_np F
GLIBC_2.18 pthread_getattr_np F
GLIBC_2.18 pthread_getschedparam F
GLIBC_2.18 pthread_getspecific F
+GLIBC_2.18 pthread_join F
GLIBC_2.18 pthread_key_create F
GLIBC_2.18 pthread_key_delete F
GLIBC_2.18 pthread_kill F
@@ -1542,6 +1543,8 @@ GLIBC_2.18 pthread_spin_lock F
GLIBC_2.18 pthread_spin_trylock F
GLIBC_2.18 pthread_spin_unlock F
GLIBC_2.18 pthread_testcancel F
+GLIBC_2.18 pthread_timedjoin_np F
+GLIBC_2.18 pthread_tryjoin_np F
GLIBC_2.18 pthread_yield F
GLIBC_2.18 ptrace F
GLIBC_2.18 ptsname F
@@ -2246,6 +2249,7 @@ 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_join F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
GLIBC_2.28 tss_create F
@@ -2264,6 +2268,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.30 tgkill F
GLIBC_2.30 twalk_r F
+GLIBC_2.31 pthread_clockjoin_np F
GLIBC_2.32 __libc_single_threaded D 0x1
GLIBC_2.32 pthread_attr_getsigmask_np F
GLIBC_2.32 pthread_attr_setaffinity_np F
@@ -2313,6 +2318,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
GLIBC_2.34 pthread_barrierattr_getpshared F
GLIBC_2.34 pthread_barrierattr_init F
GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_clockjoin_np F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F
@@ -2320,6 +2326,7 @@ 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_join F
GLIBC_2.34 pthread_key_create F
GLIBC_2.34 pthread_key_delete F
GLIBC_2.34 pthread_kill F
@@ -2367,6 +2374,8 @@ GLIBC_2.34 pthread_spin_lock F
GLIBC_2.34 pthread_spin_trylock F
GLIBC_2.34 pthread_spin_unlock F
GLIBC_2.34 pthread_testcancel F
+GLIBC_2.34 pthread_timedjoin_np F
+GLIBC_2.34 pthread_tryjoin_np F
GLIBC_2.34 sem_clockwait F
GLIBC_2.34 sem_close F
GLIBC_2.34 sem_destroy F
@@ -2380,6 +2389,7 @@ 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 thrd_join F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
GLIBC_2.34 tss_get F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
index f50eb41a1a..2e35824ff0 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
@@ -24,15 +24,11 @@ GLIBC_2.18 pthread_getattr_default_np F
GLIBC_2.18 pthread_getconcurrency F
GLIBC_2.18 pthread_getcpuclockid F
GLIBC_2.18 pthread_getname_np F
-GLIBC_2.18 pthread_join F
GLIBC_2.18 pthread_setaffinity_np F
GLIBC_2.18 pthread_setconcurrency F
GLIBC_2.18 pthread_setname_np F
GLIBC_2.18 pthread_setschedprio F
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_join F
GLIBC_2.30 __libpthread_version_placeholder F
-GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.31 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 34e77850a1..7e82eadb1d 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -875,6 +875,7 @@ GLIBC_2.0 pthread_equal F
GLIBC_2.0 pthread_exit F
GLIBC_2.0 pthread_getschedparam F
GLIBC_2.0 pthread_getspecific F
+GLIBC_2.0 pthread_join F
GLIBC_2.0 pthread_key_create F
GLIBC_2.0 pthread_key_delete F
GLIBC_2.0 pthread_kill F
@@ -2079,6 +2080,7 @@ 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_join F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
GLIBC_2.28 tss_create F
@@ -2210,6 +2212,8 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
GLIBC_2.3.3 pthread_condattr_getclock F
GLIBC_2.3.3 pthread_condattr_setclock F
GLIBC_2.3.3 pthread_getaffinity_np F
+GLIBC_2.3.3 pthread_timedjoin_np F
+GLIBC_2.3.3 pthread_tryjoin_np F
GLIBC_2.3.3 remap_file_pages F
GLIBC_2.3.3 sched_getaffinity F
GLIBC_2.3.3 sched_setaffinity F
@@ -2256,6 +2260,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.30 tgkill F
GLIBC_2.30 twalk_r F
+GLIBC_2.31 pthread_clockjoin_np F
GLIBC_2.32 __libc_single_threaded D 0x1
GLIBC_2.32 pthread_attr_getsigmask_np F
GLIBC_2.32 pthread_attr_setaffinity_np F
@@ -2305,6 +2310,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
GLIBC_2.34 pthread_barrierattr_getpshared F
GLIBC_2.34 pthread_barrierattr_init F
GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_clockjoin_np F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F
@@ -2312,6 +2318,7 @@ 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_join F
GLIBC_2.34 pthread_key_create F
GLIBC_2.34 pthread_key_delete F
GLIBC_2.34 pthread_kill F
@@ -2359,6 +2366,8 @@ GLIBC_2.34 pthread_spin_lock F
GLIBC_2.34 pthread_spin_trylock F
GLIBC_2.34 pthread_spin_unlock F
GLIBC_2.34 pthread_testcancel F
+GLIBC_2.34 pthread_timedjoin_np F
+GLIBC_2.34 pthread_tryjoin_np F
GLIBC_2.34 sem_clockwait F
GLIBC_2.34 sem_close F
GLIBC_2.34 sem_destroy F
@@ -2372,6 +2381,7 @@ 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 thrd_join F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
GLIBC_2.34 tss_get F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
index a1ba1503a5..2a70d89cd8 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_join F
GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 pthread_getname_np F
GLIBC_2.12 pthread_setname_np 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_join F
GLIBC_2.3.2 __libpthread_version_placeholder F
GLIBC_2.3.3 __pthread_register_cancel F
GLIBC_2.3.3 __pthread_register_cancel_defer F
@@ -37,11 +35,9 @@ GLIBC_2.3.3 pthread_attr_getaffinity_np F
GLIBC_2.3.3 pthread_attr_setstack F
GLIBC_2.3.3 pthread_attr_setstacksize F
GLIBC_2.3.3 pthread_setaffinity_np F
-GLIBC_2.3.3 pthread_timedjoin_np F
-GLIBC_2.3.3 pthread_tryjoin_np F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_setaffinity_np F
GLIBC_2.3.4 pthread_setschedprio F
GLIBC_2.30 __libpthread_version_placeholder F
-GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.31 __libpthread_version_placeholder F
GLIBC_2.4 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index d01dc8462b..5891b9b563 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -875,6 +875,7 @@ GLIBC_2.0 pthread_equal F
GLIBC_2.0 pthread_exit F
GLIBC_2.0 pthread_getschedparam F
GLIBC_2.0 pthread_getspecific F
+GLIBC_2.0 pthread_join F
GLIBC_2.0 pthread_key_create F
GLIBC_2.0 pthread_key_delete F
GLIBC_2.0 pthread_kill F
@@ -2077,6 +2078,7 @@ 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_join F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
GLIBC_2.28 tss_create F
@@ -2208,6 +2210,8 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
GLIBC_2.3.3 pthread_condattr_getclock F
GLIBC_2.3.3 pthread_condattr_setclock F
GLIBC_2.3.3 pthread_getaffinity_np F
+GLIBC_2.3.3 pthread_timedjoin_np F
+GLIBC_2.3.3 pthread_tryjoin_np F
GLIBC_2.3.3 remap_file_pages F
GLIBC_2.3.3 sched_getaffinity F
GLIBC_2.3.3 sched_setaffinity F
@@ -2254,6 +2258,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.30 tgkill F
GLIBC_2.30 twalk_r F
+GLIBC_2.31 pthread_clockjoin_np F
GLIBC_2.32 __libc_single_threaded D 0x1
GLIBC_2.32 pthread_attr_getsigmask_np F
GLIBC_2.32 pthread_attr_setaffinity_np F
@@ -2303,6 +2308,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
GLIBC_2.34 pthread_barrierattr_getpshared F
GLIBC_2.34 pthread_barrierattr_init F
GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_clockjoin_np F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F
@@ -2310,6 +2316,7 @@ 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_join F
GLIBC_2.34 pthread_key_create F
GLIBC_2.34 pthread_key_delete F
GLIBC_2.34 pthread_kill F
@@ -2357,6 +2364,8 @@ GLIBC_2.34 pthread_spin_lock F
GLIBC_2.34 pthread_spin_trylock F
GLIBC_2.34 pthread_spin_unlock F
GLIBC_2.34 pthread_testcancel F
+GLIBC_2.34 pthread_timedjoin_np F
+GLIBC_2.34 pthread_tryjoin_np F
GLIBC_2.34 sem_clockwait F
GLIBC_2.34 sem_close F
GLIBC_2.34 sem_destroy F
@@ -2370,6 +2379,7 @@ 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 thrd_join F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
GLIBC_2.34 tss_get F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
index a1ba1503a5..2a70d89cd8 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_join F
GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 pthread_getname_np F
GLIBC_2.12 pthread_setname_np 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_join F
GLIBC_2.3.2 __libpthread_version_placeholder F
GLIBC_2.3.3 __pthread_register_cancel F
GLIBC_2.3.3 __pthread_register_cancel_defer F
@@ -37,11 +35,9 @@ GLIBC_2.3.3 pthread_attr_getaffinity_np F
GLIBC_2.3.3 pthread_attr_setstack F
GLIBC_2.3.3 pthread_attr_setstacksize F
GLIBC_2.3.3 pthread_setaffinity_np F
-GLIBC_2.3.3 pthread_timedjoin_np F
-GLIBC_2.3.3 pthread_tryjoin_np F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_setaffinity_np F
GLIBC_2.3.4 pthread_setschedprio F
GLIBC_2.30 __libpthread_version_placeholder F
-GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.31 __libpthread_version_placeholder F
GLIBC_2.4 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index a906bb949a..dbf9dcf588 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -875,6 +875,7 @@ GLIBC_2.0 pthread_equal F
GLIBC_2.0 pthread_exit F
GLIBC_2.0 pthread_getschedparam F
GLIBC_2.0 pthread_getspecific F
+GLIBC_2.0 pthread_join F
GLIBC_2.0 pthread_key_create F
GLIBC_2.0 pthread_key_delete F
GLIBC_2.0 pthread_kill F
@@ -2085,6 +2086,7 @@ 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_join F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
GLIBC_2.28 tss_create F
@@ -2216,6 +2218,8 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
GLIBC_2.3.3 pthread_condattr_getclock F
GLIBC_2.3.3 pthread_condattr_setclock F
GLIBC_2.3.3 pthread_getaffinity_np F
+GLIBC_2.3.3 pthread_timedjoin_np F
+GLIBC_2.3.3 pthread_tryjoin_np F
GLIBC_2.3.3 remap_file_pages F
GLIBC_2.3.3 sched_getaffinity F
GLIBC_2.3.3 sched_setaffinity F
@@ -2262,6 +2266,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.30 tgkill F
GLIBC_2.30 twalk_r F
+GLIBC_2.31 pthread_clockjoin_np F
GLIBC_2.32 __libc_single_threaded D 0x1
GLIBC_2.32 pthread_attr_getsigmask_np F
GLIBC_2.32 pthread_attr_setaffinity_np F
@@ -2311,6 +2316,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
GLIBC_2.34 pthread_barrierattr_getpshared F
GLIBC_2.34 pthread_barrierattr_init F
GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_clockjoin_np F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F
@@ -2318,6 +2324,7 @@ 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_join F
GLIBC_2.34 pthread_key_create F
GLIBC_2.34 pthread_key_delete F
GLIBC_2.34 pthread_kill F
@@ -2365,6 +2372,8 @@ GLIBC_2.34 pthread_spin_lock F
GLIBC_2.34 pthread_spin_trylock F
GLIBC_2.34 pthread_spin_unlock F
GLIBC_2.34 pthread_testcancel F
+GLIBC_2.34 pthread_timedjoin_np F
+GLIBC_2.34 pthread_tryjoin_np F
GLIBC_2.34 sem_clockwait F
GLIBC_2.34 sem_close F
GLIBC_2.34 sem_destroy F
@@ -2378,6 +2387,7 @@ 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 thrd_join F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
GLIBC_2.34 tss_get F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 89dd91a0a4..ed31156fe5 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -873,6 +873,7 @@ GLIBC_2.0 pthread_equal F
GLIBC_2.0 pthread_exit F
GLIBC_2.0 pthread_getschedparam F
GLIBC_2.0 pthread_getspecific F
+GLIBC_2.0 pthread_join F
GLIBC_2.0 pthread_key_create F
GLIBC_2.0 pthread_key_delete F
GLIBC_2.0 pthread_kill F
@@ -2080,6 +2081,7 @@ 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_join F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
GLIBC_2.28 tss_create F
@@ -2208,6 +2210,8 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
GLIBC_2.3.3 pthread_condattr_getclock F
GLIBC_2.3.3 pthread_condattr_setclock F
GLIBC_2.3.3 pthread_getaffinity_np F
+GLIBC_2.3.3 pthread_timedjoin_np F
+GLIBC_2.3.3 pthread_tryjoin_np F
GLIBC_2.3.3 remap_file_pages F
GLIBC_2.3.3 sched_getaffinity F
GLIBC_2.3.3 sched_setaffinity F
@@ -2256,6 +2260,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.30 tgkill F
GLIBC_2.30 twalk_r F
+GLIBC_2.31 pthread_clockjoin_np F
GLIBC_2.32 __libc_single_threaded D 0x1
GLIBC_2.32 pthread_attr_getsigmask_np F
GLIBC_2.32 pthread_attr_setaffinity_np F
@@ -2305,6 +2310,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
GLIBC_2.34 pthread_barrierattr_getpshared F
GLIBC_2.34 pthread_barrierattr_init F
GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_clockjoin_np F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F
@@ -2312,6 +2318,7 @@ 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_join F
GLIBC_2.34 pthread_key_create F
GLIBC_2.34 pthread_key_delete F
GLIBC_2.34 pthread_kill F
@@ -2359,6 +2366,8 @@ GLIBC_2.34 pthread_spin_lock F
GLIBC_2.34 pthread_spin_trylock F
GLIBC_2.34 pthread_spin_unlock F
GLIBC_2.34 pthread_testcancel F
+GLIBC_2.34 pthread_timedjoin_np F
+GLIBC_2.34 pthread_tryjoin_np F
GLIBC_2.34 sem_clockwait F
GLIBC_2.34 sem_close F
GLIBC_2.34 sem_destroy F
@@ -2372,6 +2381,7 @@ 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 thrd_join F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
GLIBC_2.34 tss_get F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 8b2b19d09b..bca4034be2 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -1526,6 +1526,7 @@ GLIBC_2.21 pthread_getaffinity_np F
GLIBC_2.21 pthread_getattr_np F
GLIBC_2.21 pthread_getschedparam F
GLIBC_2.21 pthread_getspecific F
+GLIBC_2.21 pthread_join F
GLIBC_2.21 pthread_key_create F
GLIBC_2.21 pthread_key_delete F
GLIBC_2.21 pthread_kill F
@@ -1585,6 +1586,8 @@ GLIBC_2.21 pthread_spin_lock F
GLIBC_2.21 pthread_spin_trylock F
GLIBC_2.21 pthread_spin_unlock F
GLIBC_2.21 pthread_testcancel F
+GLIBC_2.21 pthread_timedjoin_np F
+GLIBC_2.21 pthread_tryjoin_np F
GLIBC_2.21 pthread_yield F
GLIBC_2.21 ptrace F
GLIBC_2.21 ptsname F
@@ -2288,6 +2291,7 @@ 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_join F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
GLIBC_2.28 tss_create F
@@ -2306,6 +2310,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.30 tgkill F
GLIBC_2.30 twalk_r F
+GLIBC_2.31 pthread_clockjoin_np F
GLIBC_2.32 __libc_single_threaded D 0x1
GLIBC_2.32 pthread_attr_getsigmask_np F
GLIBC_2.32 pthread_attr_setaffinity_np F
@@ -2355,6 +2360,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
GLIBC_2.34 pthread_barrierattr_getpshared F
GLIBC_2.34 pthread_barrierattr_init F
GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_clockjoin_np F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F
@@ -2362,6 +2368,7 @@ 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_join F
GLIBC_2.34 pthread_key_create F
GLIBC_2.34 pthread_key_delete F
GLIBC_2.34 pthread_kill F
@@ -2409,6 +2416,8 @@ GLIBC_2.34 pthread_spin_lock F
GLIBC_2.34 pthread_spin_trylock F
GLIBC_2.34 pthread_spin_unlock F
GLIBC_2.34 pthread_testcancel F
+GLIBC_2.34 pthread_timedjoin_np F
+GLIBC_2.34 pthread_tryjoin_np F
GLIBC_2.34 sem_clockwait F
GLIBC_2.34 sem_close F
GLIBC_2.34 sem_destroy F
@@ -2422,6 +2431,7 @@ 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 thrd_join F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
GLIBC_2.34 tss_get F
diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
index 27fb415228..220d80ea95 100644
--- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
@@ -24,15 +24,11 @@ GLIBC_2.21 pthread_getattr_default_np F
GLIBC_2.21 pthread_getconcurrency F
GLIBC_2.21 pthread_getcpuclockid F
GLIBC_2.21 pthread_getname_np F
-GLIBC_2.21 pthread_join F
GLIBC_2.21 pthread_setaffinity_np F
GLIBC_2.21 pthread_setconcurrency F
GLIBC_2.21 pthread_setname_np F
GLIBC_2.21 pthread_setschedprio F
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_join F
GLIBC_2.30 __libpthread_version_placeholder F
-GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.31 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 84aab42aaa..5de9636022 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -886,6 +886,7 @@ GLIBC_2.0 pthread_equal F
GLIBC_2.0 pthread_exit F
GLIBC_2.0 pthread_getschedparam F
GLIBC_2.0 pthread_getspecific F
+GLIBC_2.0 pthread_join F
GLIBC_2.0 pthread_key_create F
GLIBC_2.0 pthread_key_delete F
GLIBC_2.0 pthread_kill F
@@ -2113,6 +2114,7 @@ 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_join F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
GLIBC_2.28 tss_create F
@@ -2250,6 +2252,8 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
GLIBC_2.3.3 pthread_condattr_getclock F
GLIBC_2.3.3 pthread_condattr_setclock F
GLIBC_2.3.3 pthread_getaffinity_np F
+GLIBC_2.3.3 pthread_timedjoin_np F
+GLIBC_2.3.3 pthread_tryjoin_np F
GLIBC_2.3.3 remap_file_pages F
GLIBC_2.3.3 sched_getaffinity F
GLIBC_2.3.3 sched_setaffinity F
@@ -2320,6 +2324,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.30 tgkill F
GLIBC_2.30 twalk_r F
+GLIBC_2.31 pthread_clockjoin_np F
GLIBC_2.32 __libc_single_threaded D 0x1
GLIBC_2.32 pthread_attr_getsigmask_np F
GLIBC_2.32 pthread_attr_setaffinity_np F
@@ -2369,6 +2374,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
GLIBC_2.34 pthread_barrierattr_getpshared F
GLIBC_2.34 pthread_barrierattr_init F
GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_clockjoin_np F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F
@@ -2376,6 +2382,7 @@ 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_join F
GLIBC_2.34 pthread_key_create F
GLIBC_2.34 pthread_key_delete F
GLIBC_2.34 pthread_kill F
@@ -2423,6 +2430,8 @@ GLIBC_2.34 pthread_spin_lock F
GLIBC_2.34 pthread_spin_trylock F
GLIBC_2.34 pthread_spin_unlock F
GLIBC_2.34 pthread_testcancel F
+GLIBC_2.34 pthread_timedjoin_np F
+GLIBC_2.34 pthread_tryjoin_np F
GLIBC_2.34 sem_clockwait F
GLIBC_2.34 sem_close F
GLIBC_2.34 sem_destroy F
@@ -2436,6 +2445,7 @@ 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 thrd_join F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
GLIBC_2.34 tss_get F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
index 831b66ee72..1286f68dad 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_join F
GLIBC_2.1 pthread_attr_getguardsize F
GLIBC_2.1 pthread_attr_getstackaddr F
GLIBC_2.1 pthread_attr_getstacksize F
@@ -29,7 +28,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_join F
GLIBC_2.3.2 __libpthread_version_placeholder F
GLIBC_2.3.3 __pthread_register_cancel F
GLIBC_2.3.3 __pthread_register_cancel_defer F
@@ -37,13 +35,11 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 pthread_attr_getaffinity_np F
GLIBC_2.3.3 pthread_setaffinity_np F
-GLIBC_2.3.3 pthread_timedjoin_np F
-GLIBC_2.3.3 pthread_tryjoin_np F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_setaffinity_np F
GLIBC_2.3.4 pthread_setschedprio F
GLIBC_2.30 __libpthread_version_placeholder F
-GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.31 __libpthread_version_placeholder F
GLIBC_2.4 __libpthread_version_placeholder F
GLIBC_2.6 pthread_attr_setstack F
GLIBC_2.6 pthread_attr_setstacksize F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 00201c5544..10cb492163 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -886,6 +886,7 @@ GLIBC_2.0 pthread_equal F
GLIBC_2.0 pthread_exit F
GLIBC_2.0 pthread_getschedparam F
GLIBC_2.0 pthread_getspecific F
+GLIBC_2.0 pthread_join F
GLIBC_2.0 pthread_key_create F
GLIBC_2.0 pthread_key_delete F
GLIBC_2.0 pthread_kill F
@@ -2117,6 +2118,7 @@ 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_join F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
GLIBC_2.28 tss_create F
@@ -2283,6 +2285,8 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
GLIBC_2.3.3 pthread_condattr_getclock F
GLIBC_2.3.3 pthread_condattr_setclock F
GLIBC_2.3.3 pthread_getaffinity_np F
+GLIBC_2.3.3 pthread_timedjoin_np F
+GLIBC_2.3.3 pthread_tryjoin_np F
GLIBC_2.3.3 remap_file_pages F
GLIBC_2.3.3 sched_getaffinity F
GLIBC_2.3.3 sched_setaffinity F
@@ -2353,6 +2357,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.30 tgkill F
GLIBC_2.30 twalk_r F
+GLIBC_2.31 pthread_clockjoin_np F
GLIBC_2.32 __libc_single_threaded D 0x1
GLIBC_2.32 pthread_attr_getsigmask_np F
GLIBC_2.32 pthread_attr_setaffinity_np F
@@ -2402,6 +2407,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
GLIBC_2.34 pthread_barrierattr_getpshared F
GLIBC_2.34 pthread_barrierattr_init F
GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_clockjoin_np F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F
@@ -2409,6 +2415,7 @@ 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_join F
GLIBC_2.34 pthread_key_create F
GLIBC_2.34 pthread_key_delete F
GLIBC_2.34 pthread_kill F
@@ -2456,6 +2463,8 @@ GLIBC_2.34 pthread_spin_lock F
GLIBC_2.34 pthread_spin_trylock F
GLIBC_2.34 pthread_spin_unlock F
GLIBC_2.34 pthread_testcancel F
+GLIBC_2.34 pthread_timedjoin_np F
+GLIBC_2.34 pthread_tryjoin_np F
GLIBC_2.34 sem_clockwait F
GLIBC_2.34 sem_close F
GLIBC_2.34 sem_destroy F
@@ -2469,6 +2478,7 @@ 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 thrd_join F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
GLIBC_2.34 tss_get F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 8725f4a851..4d72e24c22 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -140,6 +140,7 @@ GLIBC_2.28 thrd_current F
GLIBC_2.28 thrd_detach F
GLIBC_2.28 thrd_equal F
GLIBC_2.28 thrd_exit F
+GLIBC_2.28 thrd_join F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
GLIBC_2.28 tss_create F
@@ -1429,6 +1430,7 @@ GLIBC_2.3 pthread_exit F
GLIBC_2.3 pthread_getattr_np F
GLIBC_2.3 pthread_getschedparam F
GLIBC_2.3 pthread_getspecific F
+GLIBC_2.3 pthread_join F
GLIBC_2.3 pthread_key_create F
GLIBC_2.3 pthread_key_delete F
GLIBC_2.3 pthread_kill F
@@ -2099,6 +2101,8 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
GLIBC_2.3.3 pthread_condattr_getclock F
GLIBC_2.3.3 pthread_condattr_setclock F
GLIBC_2.3.3 pthread_getaffinity_np F
+GLIBC_2.3.3 pthread_timedjoin_np F
+GLIBC_2.3.3 pthread_tryjoin_np F
GLIBC_2.3.3 remap_file_pages F
GLIBC_2.3.3 sched_getaffinity F
GLIBC_2.3.3 sched_setaffinity F
@@ -2168,6 +2172,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.30 tgkill F
GLIBC_2.30 twalk_r F
+GLIBC_2.31 pthread_clockjoin_np F
GLIBC_2.32 __libc_single_threaded D 0x1
GLIBC_2.32 pthread_attr_getsigmask_np F
GLIBC_2.32 pthread_attr_setaffinity_np F
@@ -2217,6 +2222,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
GLIBC_2.34 pthread_barrierattr_getpshared F
GLIBC_2.34 pthread_barrierattr_init F
GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_clockjoin_np F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F
@@ -2224,6 +2230,7 @@ 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_join F
GLIBC_2.34 pthread_key_create F
GLIBC_2.34 pthread_key_delete F
GLIBC_2.34 pthread_kill F
@@ -2271,6 +2278,8 @@ GLIBC_2.34 pthread_spin_lock F
GLIBC_2.34 pthread_spin_trylock F
GLIBC_2.34 pthread_spin_unlock F
GLIBC_2.34 pthread_testcancel F
+GLIBC_2.34 pthread_timedjoin_np F
+GLIBC_2.34 pthread_tryjoin_np F
GLIBC_2.34 sem_clockwait F
GLIBC_2.34 sem_close F
GLIBC_2.34 sem_destroy F
@@ -2284,6 +2293,7 @@ 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 thrd_join F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
GLIBC_2.34 tss_get F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
index 91a5618412..496c83d9df 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_join F
GLIBC_2.3 _IO_flockfile F
GLIBC_2.3 _IO_ftrylockfile F
GLIBC_2.3 _IO_funlockfile F
@@ -23,7 +22,6 @@ GLIBC_2.3 pthread_cancel F
GLIBC_2.3 pthread_create F
GLIBC_2.3 pthread_getconcurrency F
GLIBC_2.3 pthread_getcpuclockid F
-GLIBC_2.3 pthread_join F
GLIBC_2.3 pthread_setconcurrency F
GLIBC_2.3.2 __libpthread_version_placeholder F
GLIBC_2.3.3 __pthread_register_cancel F
@@ -32,13 +30,11 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 pthread_attr_getaffinity_np F
GLIBC_2.3.3 pthread_setaffinity_np F
-GLIBC_2.3.3 pthread_timedjoin_np F
-GLIBC_2.3.3 pthread_tryjoin_np F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_setaffinity_np F
GLIBC_2.3.4 pthread_setschedprio F
GLIBC_2.30 __libpthread_version_placeholder F
-GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.31 __libpthread_version_placeholder F
GLIBC_2.4 __libpthread_version_placeholder F
GLIBC_2.6 pthread_attr_setstack F
GLIBC_2.6 pthread_attr_setstacksize F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 89ab60dc38..d3ac4aeefc 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -1569,6 +1569,7 @@ GLIBC_2.17 pthread_getaffinity_np F
GLIBC_2.17 pthread_getattr_np F
GLIBC_2.17 pthread_getschedparam F
GLIBC_2.17 pthread_getspecific F
+GLIBC_2.17 pthread_join F
GLIBC_2.17 pthread_key_create F
GLIBC_2.17 pthread_key_delete F
GLIBC_2.17 pthread_kill F
@@ -1627,6 +1628,8 @@ GLIBC_2.17 pthread_spin_lock F
GLIBC_2.17 pthread_spin_trylock F
GLIBC_2.17 pthread_spin_unlock F
GLIBC_2.17 pthread_testcancel F
+GLIBC_2.17 pthread_timedjoin_np F
+GLIBC_2.17 pthread_tryjoin_np F
GLIBC_2.17 pthread_yield F
GLIBC_2.17 ptrace F
GLIBC_2.17 ptsname F
@@ -2345,6 +2348,7 @@ 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_join F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
GLIBC_2.28 tss_create F
@@ -2375,6 +2379,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.30 tgkill F
GLIBC_2.30 twalk_r F
+GLIBC_2.31 pthread_clockjoin_np F
GLIBC_2.32 __argp_errorieee128 F
GLIBC_2.32 __argp_failureieee128 F
GLIBC_2.32 __asprintf_chkieee128 F
@@ -2518,6 +2523,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
GLIBC_2.34 pthread_barrierattr_getpshared F
GLIBC_2.34 pthread_barrierattr_init F
GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_clockjoin_np F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F
@@ -2525,6 +2531,7 @@ 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_join F
GLIBC_2.34 pthread_key_create F
GLIBC_2.34 pthread_key_delete F
GLIBC_2.34 pthread_kill F
@@ -2572,6 +2579,8 @@ GLIBC_2.34 pthread_spin_lock F
GLIBC_2.34 pthread_spin_trylock F
GLIBC_2.34 pthread_spin_unlock F
GLIBC_2.34 pthread_testcancel F
+GLIBC_2.34 pthread_timedjoin_np F
+GLIBC_2.34 pthread_tryjoin_np F
GLIBC_2.34 sem_clockwait F
GLIBC_2.34 sem_close F
GLIBC_2.34 sem_destroy F
@@ -2585,6 +2594,7 @@ 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 thrd_join F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
GLIBC_2.34 tss_get F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
index 71627a5cc8..fd8f0f7d1c 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
@@ -23,16 +23,12 @@ GLIBC_2.17 pthread_create F
GLIBC_2.17 pthread_getconcurrency F
GLIBC_2.17 pthread_getcpuclockid F
GLIBC_2.17 pthread_getname_np F
-GLIBC_2.17 pthread_join F
GLIBC_2.17 pthread_setaffinity_np F
GLIBC_2.17 pthread_setconcurrency F
GLIBC_2.17 pthread_setname_np F
GLIBC_2.17 pthread_setschedprio F
GLIBC_2.17 pthread_sigqueue F
-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_join F
GLIBC_2.30 __libpthread_version_placeholder F
-GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.31 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index e201491852..dcef189dcc 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1403,6 +1403,7 @@ GLIBC_2.33 pthread_barrierattr_destroy F
GLIBC_2.33 pthread_barrierattr_getpshared F
GLIBC_2.33 pthread_barrierattr_init F
GLIBC_2.33 pthread_barrierattr_setpshared F
+GLIBC_2.33 pthread_clockjoin_np F
GLIBC_2.33 pthread_cond_broadcast F
GLIBC_2.33 pthread_cond_clockwait F
GLIBC_2.33 pthread_cond_destroy F
@@ -1423,6 +1424,7 @@ GLIBC_2.33 pthread_getaffinity_np F
GLIBC_2.33 pthread_getattr_np F
GLIBC_2.33 pthread_getschedparam F
GLIBC_2.33 pthread_getspecific F
+GLIBC_2.33 pthread_join F
GLIBC_2.33 pthread_key_create F
GLIBC_2.33 pthread_key_delete F
GLIBC_2.33 pthread_kill F
@@ -1485,6 +1487,8 @@ GLIBC_2.33 pthread_spin_lock F
GLIBC_2.33 pthread_spin_trylock F
GLIBC_2.33 pthread_spin_unlock F
GLIBC_2.33 pthread_testcancel F
+GLIBC_2.33 pthread_timedjoin_np F
+GLIBC_2.33 pthread_tryjoin_np F
GLIBC_2.33 pthread_yield F
GLIBC_2.33 ptrace F
GLIBC_2.33 ptsname F
@@ -1876,6 +1880,7 @@ 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_join F
GLIBC_2.33 thrd_sleep F
GLIBC_2.33 thrd_yield F
GLIBC_2.33 time F
@@ -2083,6 +2088,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
GLIBC_2.34 pthread_barrierattr_getpshared F
GLIBC_2.34 pthread_barrierattr_init F
GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_clockjoin_np F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F
@@ -2090,6 +2096,7 @@ 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_join F
GLIBC_2.34 pthread_key_create F
GLIBC_2.34 pthread_key_delete F
GLIBC_2.34 pthread_kill F
@@ -2137,6 +2144,8 @@ GLIBC_2.34 pthread_spin_lock F
GLIBC_2.34 pthread_spin_trylock F
GLIBC_2.34 pthread_spin_unlock F
GLIBC_2.34 pthread_testcancel F
+GLIBC_2.34 pthread_timedjoin_np F
+GLIBC_2.34 pthread_tryjoin_np F
GLIBC_2.34 sem_clockwait F
GLIBC_2.34 sem_close F
GLIBC_2.34 sem_destroy F
@@ -2150,6 +2159,7 @@ 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 thrd_join F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
GLIBC_2.34 tss_get F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
index 0ad1f57b44..0979096ed7 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
@@ -19,19 +19,14 @@ GLIBC_2.33 pthread_attr_setstack F
GLIBC_2.33 pthread_attr_setstackaddr F
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_getattr_default_np F
GLIBC_2.33 pthread_getconcurrency F
GLIBC_2.33 pthread_getcpuclockid F
GLIBC_2.33 pthread_getname_np F
-GLIBC_2.33 pthread_join F
GLIBC_2.33 pthread_setaffinity_np F
GLIBC_2.33 pthread_setconcurrency F
GLIBC_2.33 pthread_setname_np F
GLIBC_2.33 pthread_setschedprio F
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_join F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 8f5d8490a7..806d787b3f 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -1471,6 +1471,7 @@ GLIBC_2.27 pthread_getaffinity_np F
GLIBC_2.27 pthread_getattr_np F
GLIBC_2.27 pthread_getschedparam F
GLIBC_2.27 pthread_getspecific F
+GLIBC_2.27 pthread_join F
GLIBC_2.27 pthread_key_create F
GLIBC_2.27 pthread_key_delete F
GLIBC_2.27 pthread_kill F
@@ -1530,6 +1531,8 @@ GLIBC_2.27 pthread_spin_lock F
GLIBC_2.27 pthread_spin_trylock F
GLIBC_2.27 pthread_spin_unlock F
GLIBC_2.27 pthread_testcancel F
+GLIBC_2.27 pthread_timedjoin_np F
+GLIBC_2.27 pthread_tryjoin_np F
GLIBC_2.27 pthread_yield F
GLIBC_2.27 ptrace F
GLIBC_2.27 ptsname F
@@ -2216,6 +2219,7 @@ 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_join F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
GLIBC_2.28 tss_create F
@@ -2234,6 +2238,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.30 tgkill F
GLIBC_2.30 twalk_r F
+GLIBC_2.31 pthread_clockjoin_np F
GLIBC_2.32 __libc_single_threaded D 0x1
GLIBC_2.32 pthread_attr_getsigmask_np F
GLIBC_2.32 pthread_attr_setaffinity_np F
@@ -2283,6 +2288,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
GLIBC_2.34 pthread_barrierattr_getpshared F
GLIBC_2.34 pthread_barrierattr_init F
GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_clockjoin_np F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F
@@ -2290,6 +2296,7 @@ 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_join F
GLIBC_2.34 pthread_key_create F
GLIBC_2.34 pthread_key_delete F
GLIBC_2.34 pthread_kill F
@@ -2337,6 +2344,8 @@ GLIBC_2.34 pthread_spin_lock F
GLIBC_2.34 pthread_spin_trylock F
GLIBC_2.34 pthread_spin_unlock F
GLIBC_2.34 pthread_testcancel F
+GLIBC_2.34 pthread_timedjoin_np F
+GLIBC_2.34 pthread_tryjoin_np F
GLIBC_2.34 sem_clockwait F
GLIBC_2.34 sem_close F
GLIBC_2.34 sem_destroy F
@@ -2350,6 +2359,7 @@ 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 thrd_join F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
GLIBC_2.34 tss_get F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
index 74b4bdce74..98d64de740 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
@@ -24,15 +24,11 @@ GLIBC_2.27 pthread_getattr_default_np F
GLIBC_2.27 pthread_getconcurrency F
GLIBC_2.27 pthread_getcpuclockid F
GLIBC_2.27 pthread_getname_np F
-GLIBC_2.27 pthread_join F
GLIBC_2.27 pthread_setaffinity_np F
GLIBC_2.27 pthread_setconcurrency F
GLIBC_2.27 pthread_setname_np F
GLIBC_2.27 pthread_setschedprio F
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_join F
GLIBC_2.30 __libpthread_version_placeholder F
-GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.31 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 686a10ee24..52f3cc5a97 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -877,6 +877,7 @@ GLIBC_2.0 pthread_equal F
GLIBC_2.0 pthread_exit F
GLIBC_2.0 pthread_getschedparam F
GLIBC_2.0 pthread_getspecific F
+GLIBC_2.0 pthread_join F
GLIBC_2.0 pthread_key_create F
GLIBC_2.0 pthread_key_delete F
GLIBC_2.0 pthread_kill F
@@ -2122,6 +2123,7 @@ 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_join F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
GLIBC_2.28 tss_create F
@@ -2257,6 +2259,8 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
GLIBC_2.3.3 pthread_condattr_getclock F
GLIBC_2.3.3 pthread_condattr_setclock F
GLIBC_2.3.3 pthread_getaffinity_np F
+GLIBC_2.3.3 pthread_timedjoin_np F
+GLIBC_2.3.3 pthread_tryjoin_np F
GLIBC_2.3.3 remap_file_pages F
GLIBC_2.3.3 sched_getaffinity F
GLIBC_2.3.3 sched_setaffinity F
@@ -2316,6 +2320,7 @@ GLIBC_2.30 sem_clockwait F
GLIBC_2.30 tgkill F
GLIBC_2.30 twalk_r F
GLIBC_2.31 msgctl F
+GLIBC_2.31 pthread_clockjoin_np F
GLIBC_2.31 semctl F
GLIBC_2.31 shmctl F
GLIBC_2.32 __libc_single_threaded D 0x1
@@ -2367,6 +2372,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
GLIBC_2.34 pthread_barrierattr_getpshared F
GLIBC_2.34 pthread_barrierattr_init F
GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_clockjoin_np F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F
@@ -2374,6 +2380,7 @@ 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_join F
GLIBC_2.34 pthread_key_create F
GLIBC_2.34 pthread_key_delete F
GLIBC_2.34 pthread_kill F
@@ -2421,6 +2428,8 @@ GLIBC_2.34 pthread_spin_lock F
GLIBC_2.34 pthread_spin_trylock F
GLIBC_2.34 pthread_spin_unlock F
GLIBC_2.34 pthread_testcancel F
+GLIBC_2.34 pthread_timedjoin_np F
+GLIBC_2.34 pthread_tryjoin_np F
GLIBC_2.34 sem_clockwait F
GLIBC_2.34 sem_close F
GLIBC_2.34 sem_destroy F
@@ -2434,6 +2443,7 @@ 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 thrd_join F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
GLIBC_2.34 tss_get F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
index 87db062308..df9de2e5ed 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_join F
GLIBC_2.1 pthread_attr_getguardsize F
GLIBC_2.1 pthread_attr_getstackaddr F
GLIBC_2.1 pthread_attr_getstacksize 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_join F
GLIBC_2.3.2 __libpthread_version_placeholder F
GLIBC_2.3.3 __pthread_register_cancel F
GLIBC_2.3.3 __pthread_register_cancel_defer F
@@ -38,11 +36,9 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 pthread_attr_getaffinity_np F
GLIBC_2.3.3 pthread_setaffinity_np F
-GLIBC_2.3.3 pthread_timedjoin_np F
-GLIBC_2.3.3 pthread_tryjoin_np F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_setaffinity_np F
GLIBC_2.3.4 pthread_setschedprio F
GLIBC_2.30 __libpthread_version_placeholder F
-GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.31 __libpthread_version_placeholder F
GLIBC_2.4 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 8ff9d69dca..96dcf91860 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -1322,6 +1322,7 @@ GLIBC_2.2 pthread_equal F
GLIBC_2.2 pthread_exit F
GLIBC_2.2 pthread_getschedparam F
GLIBC_2.2 pthread_getspecific F
+GLIBC_2.2 pthread_join F
GLIBC_2.2 pthread_key_create F
GLIBC_2.2 pthread_key_delete F
GLIBC_2.2 pthread_kill F
@@ -2013,6 +2014,7 @@ 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_join F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
GLIBC_2.28 tss_create F
@@ -2145,6 +2147,8 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
GLIBC_2.3.3 pthread_condattr_getclock F
GLIBC_2.3.3 pthread_condattr_setclock F
GLIBC_2.3.3 pthread_getaffinity_np F
+GLIBC_2.3.3 pthread_timedjoin_np F
+GLIBC_2.3.3 pthread_tryjoin_np F
GLIBC_2.3.3 remap_file_pages F
GLIBC_2.3.3 sched_getaffinity F
GLIBC_2.3.3 sched_setaffinity F
@@ -2205,6 +2209,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.30 tgkill F
GLIBC_2.30 twalk_r F
+GLIBC_2.31 pthread_clockjoin_np F
GLIBC_2.32 __libc_single_threaded D 0x1
GLIBC_2.32 pthread_attr_getsigmask_np F
GLIBC_2.32 pthread_attr_setaffinity_np F
@@ -2254,6 +2259,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
GLIBC_2.34 pthread_barrierattr_getpshared F
GLIBC_2.34 pthread_barrierattr_init F
GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_clockjoin_np F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F
@@ -2261,6 +2267,7 @@ 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_join F
GLIBC_2.34 pthread_key_create F
GLIBC_2.34 pthread_key_delete F
GLIBC_2.34 pthread_kill F
@@ -2308,6 +2315,8 @@ GLIBC_2.34 pthread_spin_lock F
GLIBC_2.34 pthread_spin_trylock F
GLIBC_2.34 pthread_spin_unlock F
GLIBC_2.34 pthread_testcancel F
+GLIBC_2.34 pthread_timedjoin_np F
+GLIBC_2.34 pthread_tryjoin_np F
GLIBC_2.34 sem_clockwait F
GLIBC_2.34 sem_close F
GLIBC_2.34 sem_destroy F
@@ -2321,6 +2330,7 @@ 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 thrd_join F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
GLIBC_2.34 tss_get F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
index 3bf0bc9538..5754138e46 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
@@ -22,12 +22,10 @@ GLIBC_2.2 pthread_cancel F
GLIBC_2.2 pthread_create F
GLIBC_2.2 pthread_getconcurrency F
GLIBC_2.2 pthread_getcpuclockid F
-GLIBC_2.2 pthread_join F
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_join F
GLIBC_2.3.2 __libpthread_version_placeholder F
GLIBC_2.3.3 __pthread_register_cancel F
GLIBC_2.3.3 __pthread_register_cancel_defer F
@@ -35,11 +33,9 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 pthread_attr_getaffinity_np F
GLIBC_2.3.3 pthread_setaffinity_np F
-GLIBC_2.3.3 pthread_timedjoin_np F
-GLIBC_2.3.3 pthread_tryjoin_np F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_setaffinity_np F
GLIBC_2.3.4 pthread_setschedprio F
GLIBC_2.30 __libpthread_version_placeholder F
-GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.31 __libpthread_version_placeholder F
GLIBC_2.4 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 9ecce30901..0360f65963 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -1308,6 +1308,7 @@ GLIBC_2.2 pthread_equal F
GLIBC_2.2 pthread_exit F
GLIBC_2.2 pthread_getschedparam F
GLIBC_2.2 pthread_getspecific F
+GLIBC_2.2 pthread_join F
GLIBC_2.2 pthread_key_create F
GLIBC_2.2 pthread_key_delete F
GLIBC_2.2 pthread_kill F
@@ -1990,6 +1991,7 @@ 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_join F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
GLIBC_2.28 tss_create F
@@ -2125,6 +2127,8 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
GLIBC_2.3.3 pthread_condattr_getclock F
GLIBC_2.3.3 pthread_condattr_setclock F
GLIBC_2.3.3 pthread_getaffinity_np F
+GLIBC_2.3.3 pthread_timedjoin_np F
+GLIBC_2.3.3 pthread_tryjoin_np F
GLIBC_2.3.3 remap_file_pages F
GLIBC_2.3.3 sched_getaffinity F
GLIBC_2.3.3 sched_setaffinity F
@@ -2172,6 +2176,7 @@ GLIBC_2.30 sem_clockwait F
GLIBC_2.30 tgkill F
GLIBC_2.30 twalk_r F
GLIBC_2.31 msgctl F
+GLIBC_2.31 pthread_clockjoin_np F
GLIBC_2.31 semctl F
GLIBC_2.31 shmctl F
GLIBC_2.32 __libc_single_threaded D 0x1
@@ -2223,6 +2228,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
GLIBC_2.34 pthread_barrierattr_getpshared F
GLIBC_2.34 pthread_barrierattr_init F
GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_clockjoin_np F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F
@@ -2230,6 +2236,7 @@ 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_join F
GLIBC_2.34 pthread_key_create F
GLIBC_2.34 pthread_key_delete F
GLIBC_2.34 pthread_kill F
@@ -2277,6 +2284,8 @@ GLIBC_2.34 pthread_spin_lock F
GLIBC_2.34 pthread_spin_trylock F
GLIBC_2.34 pthread_spin_unlock F
GLIBC_2.34 pthread_testcancel F
+GLIBC_2.34 pthread_timedjoin_np F
+GLIBC_2.34 pthread_tryjoin_np F
GLIBC_2.34 sem_clockwait F
GLIBC_2.34 sem_close F
GLIBC_2.34 sem_destroy F
@@ -2290,6 +2299,7 @@ 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 thrd_join F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
GLIBC_2.34 tss_get F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
index cc1ca55754..59585f6763 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
@@ -21,12 +21,10 @@ GLIBC_2.2 pthread_cancel F
GLIBC_2.2 pthread_create F
GLIBC_2.2 pthread_getconcurrency F
GLIBC_2.2 pthread_getcpuclockid F
-GLIBC_2.2 pthread_join F
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_join F
GLIBC_2.3.2 __libpthread_version_placeholder F
GLIBC_2.3.3 __pthread_register_cancel F
GLIBC_2.3.3 __pthread_register_cancel_defer F
@@ -34,11 +32,9 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 pthread_attr_getaffinity_np F
GLIBC_2.3.3 pthread_setaffinity_np F
-GLIBC_2.3.3 pthread_timedjoin_np F
-GLIBC_2.3.3 pthread_tryjoin_np F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_setaffinity_np F
GLIBC_2.3.4 pthread_setschedprio F
GLIBC_2.30 __libpthread_version_placeholder F
-GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.31 __libpthread_version_placeholder F
GLIBC_2.4 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index a6faf4e2d6..c99300d9fc 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -1308,6 +1308,7 @@ GLIBC_2.2 pthread_equal F
GLIBC_2.2 pthread_exit F
GLIBC_2.2 pthread_getschedparam F
GLIBC_2.2 pthread_getspecific F
+GLIBC_2.2 pthread_join F
GLIBC_2.2 pthread_key_create F
GLIBC_2.2 pthread_key_delete F
GLIBC_2.2 pthread_kill F
@@ -1990,6 +1991,7 @@ 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_join F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
GLIBC_2.28 tss_create F
@@ -2125,6 +2127,8 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
GLIBC_2.3.3 pthread_condattr_getclock F
GLIBC_2.3.3 pthread_condattr_setclock F
GLIBC_2.3.3 pthread_getaffinity_np F
+GLIBC_2.3.3 pthread_timedjoin_np F
+GLIBC_2.3.3 pthread_tryjoin_np F
GLIBC_2.3.3 remap_file_pages F
GLIBC_2.3.3 sched_getaffinity F
GLIBC_2.3.3 sched_setaffinity F
@@ -2171,6 +2175,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.30 tgkill F
GLIBC_2.30 twalk_r F
+GLIBC_2.31 pthread_clockjoin_np F
GLIBC_2.32 __libc_single_threaded D 0x1
GLIBC_2.32 pthread_attr_getsigmask_np F
GLIBC_2.32 pthread_attr_setaffinity_np F
@@ -2220,6 +2225,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
GLIBC_2.34 pthread_barrierattr_getpshared F
GLIBC_2.34 pthread_barrierattr_init F
GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_clockjoin_np F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F
@@ -2227,6 +2233,7 @@ 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_join F
GLIBC_2.34 pthread_key_create F
GLIBC_2.34 pthread_key_delete F
GLIBC_2.34 pthread_kill F
@@ -2274,6 +2281,8 @@ GLIBC_2.34 pthread_spin_lock F
GLIBC_2.34 pthread_spin_trylock F
GLIBC_2.34 pthread_spin_unlock F
GLIBC_2.34 pthread_testcancel F
+GLIBC_2.34 pthread_timedjoin_np F
+GLIBC_2.34 pthread_tryjoin_np F
GLIBC_2.34 sem_clockwait F
GLIBC_2.34 sem_close F
GLIBC_2.34 sem_destroy F
@@ -2287,6 +2296,7 @@ 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 thrd_join F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
GLIBC_2.34 tss_get F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
index cc1ca55754..59585f6763 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
@@ -21,12 +21,10 @@ GLIBC_2.2 pthread_cancel F
GLIBC_2.2 pthread_create F
GLIBC_2.2 pthread_getconcurrency F
GLIBC_2.2 pthread_getcpuclockid F
-GLIBC_2.2 pthread_join F
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_join F
GLIBC_2.3.2 __libpthread_version_placeholder F
GLIBC_2.3.3 __pthread_register_cancel F
GLIBC_2.3.3 __pthread_register_cancel_defer F
@@ -34,11 +32,9 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 pthread_attr_getaffinity_np F
GLIBC_2.3.3 pthread_setaffinity_np F
-GLIBC_2.3.3 pthread_timedjoin_np F
-GLIBC_2.3.3 pthread_tryjoin_np F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_setaffinity_np F
GLIBC_2.3.4 pthread_setschedprio F
GLIBC_2.30 __libpthread_version_placeholder F
-GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.31 __libpthread_version_placeholder F
GLIBC_2.4 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 4d08e96ffa..1d3f00ec04 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -880,6 +880,7 @@ GLIBC_2.0 pthread_equal F
GLIBC_2.0 pthread_exit F
GLIBC_2.0 pthread_getschedparam F
GLIBC_2.0 pthread_getspecific F
+GLIBC_2.0 pthread_join F
GLIBC_2.0 pthread_key_create F
GLIBC_2.0 pthread_key_delete F
GLIBC_2.0 pthread_kill F
@@ -2116,6 +2117,7 @@ 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_join F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
GLIBC_2.28 tss_create F
@@ -2251,6 +2253,8 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
GLIBC_2.3.3 pthread_condattr_getclock F
GLIBC_2.3.3 pthread_condattr_setclock F
GLIBC_2.3.3 pthread_getaffinity_np F
+GLIBC_2.3.3 pthread_timedjoin_np F
+GLIBC_2.3.3 pthread_tryjoin_np F
GLIBC_2.3.3 remap_file_pages F
GLIBC_2.3.3 sched_getaffinity F
GLIBC_2.3.3 sched_setaffinity F
@@ -2309,6 +2313,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.30 tgkill F
GLIBC_2.30 twalk_r F
+GLIBC_2.31 pthread_clockjoin_np F
GLIBC_2.32 __libc_single_threaded D 0x1
GLIBC_2.32 pthread_attr_getsigmask_np F
GLIBC_2.32 pthread_attr_setaffinity_np F
@@ -2358,6 +2363,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
GLIBC_2.34 pthread_barrierattr_getpshared F
GLIBC_2.34 pthread_barrierattr_init F
GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_clockjoin_np F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F
@@ -2365,6 +2371,7 @@ 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_join F
GLIBC_2.34 pthread_key_create F
GLIBC_2.34 pthread_key_delete F
GLIBC_2.34 pthread_kill F
@@ -2412,6 +2419,8 @@ GLIBC_2.34 pthread_spin_lock F
GLIBC_2.34 pthread_spin_trylock F
GLIBC_2.34 pthread_spin_unlock F
GLIBC_2.34 pthread_testcancel F
+GLIBC_2.34 pthread_timedjoin_np F
+GLIBC_2.34 pthread_tryjoin_np F
GLIBC_2.34 sem_clockwait F
GLIBC_2.34 sem_close F
GLIBC_2.34 sem_destroy F
@@ -2425,6 +2434,7 @@ 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 thrd_join F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
GLIBC_2.34 tss_get F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
index b4ea31102a..16fa6ec4ee 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_join F
GLIBC_2.1 pthread_attr_getguardsize F
GLIBC_2.1 pthread_attr_getstackaddr F
GLIBC_2.1 pthread_attr_getstacksize F
@@ -29,7 +28,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_join F
GLIBC_2.3.2 __libpthread_version_placeholder F
GLIBC_2.3.3 __pthread_register_cancel F
GLIBC_2.3.3 __pthread_register_cancel_defer F
@@ -39,11 +37,9 @@ GLIBC_2.3.3 pthread_attr_getaffinity_np F
GLIBC_2.3.3 pthread_attr_setstack F
GLIBC_2.3.3 pthread_attr_setstacksize F
GLIBC_2.3.3 pthread_setaffinity_np F
-GLIBC_2.3.3 pthread_timedjoin_np F
-GLIBC_2.3.3 pthread_tryjoin_np F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_setaffinity_np F
GLIBC_2.3.4 pthread_setschedprio F
GLIBC_2.30 __libpthread_version_placeholder F
-GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.31 __libpthread_version_placeholder F
GLIBC_2.4 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index bc9ddd71a6..eb222daa74 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -1351,6 +1351,7 @@ GLIBC_2.2 pthread_equal F
GLIBC_2.2 pthread_exit F
GLIBC_2.2 pthread_getschedparam F
GLIBC_2.2 pthread_getspecific F
+GLIBC_2.2 pthread_join F
GLIBC_2.2 pthread_key_create F
GLIBC_2.2 pthread_key_delete F
GLIBC_2.2 pthread_kill F
@@ -2043,6 +2044,7 @@ 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_join F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
GLIBC_2.28 tss_create F
@@ -2174,6 +2176,8 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
GLIBC_2.3.3 pthread_condattr_getclock F
GLIBC_2.3.3 pthread_condattr_setclock F
GLIBC_2.3.3 pthread_getaffinity_np F
+GLIBC_2.3.3 pthread_timedjoin_np F
+GLIBC_2.3.3 pthread_tryjoin_np F
GLIBC_2.3.3 remap_file_pages F
GLIBC_2.3.3 sched_getaffinity F
GLIBC_2.3.3 sched_setaffinity F
@@ -2222,6 +2226,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.30 tgkill F
GLIBC_2.30 twalk_r F
+GLIBC_2.31 pthread_clockjoin_np F
GLIBC_2.32 __libc_single_threaded D 0x1
GLIBC_2.32 pthread_attr_getsigmask_np F
GLIBC_2.32 pthread_attr_setaffinity_np F
@@ -2271,6 +2276,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
GLIBC_2.34 pthread_barrierattr_getpshared F
GLIBC_2.34 pthread_barrierattr_init F
GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_clockjoin_np F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F
@@ -2278,6 +2284,7 @@ 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_join F
GLIBC_2.34 pthread_key_create F
GLIBC_2.34 pthread_key_delete F
GLIBC_2.34 pthread_kill F
@@ -2325,6 +2332,8 @@ GLIBC_2.34 pthread_spin_lock F
GLIBC_2.34 pthread_spin_trylock F
GLIBC_2.34 pthread_spin_unlock F
GLIBC_2.34 pthread_testcancel F
+GLIBC_2.34 pthread_timedjoin_np F
+GLIBC_2.34 pthread_tryjoin_np F
GLIBC_2.34 sem_clockwait F
GLIBC_2.34 sem_close F
GLIBC_2.34 sem_destroy F
@@ -2338,6 +2347,7 @@ 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 thrd_join F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
GLIBC_2.34 tss_get F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
index c377a13e65..1b0a061014 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
@@ -21,12 +21,10 @@ GLIBC_2.2 pthread_cancel F
GLIBC_2.2 pthread_create F
GLIBC_2.2 pthread_getconcurrency F
GLIBC_2.2 pthread_getcpuclockid F
-GLIBC_2.2 pthread_join F
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_join F
GLIBC_2.3.2 __libpthread_version_placeholder F
GLIBC_2.3.3 __pthread_register_cancel F
GLIBC_2.3.3 __pthread_register_cancel_defer F
@@ -36,11 +34,9 @@ GLIBC_2.3.3 pthread_attr_getaffinity_np F
GLIBC_2.3.3 pthread_attr_setstack F
GLIBC_2.3.3 pthread_attr_setstacksize F
GLIBC_2.3.3 pthread_setaffinity_np F
-GLIBC_2.3.3 pthread_timedjoin_np F
-GLIBC_2.3.3 pthread_tryjoin_np F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_setaffinity_np F
GLIBC_2.3.4 pthread_setschedprio F
GLIBC_2.30 __libpthread_version_placeholder F
-GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.31 __libpthread_version_placeholder F
GLIBC_2.4 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index a893315017..c34f50d673 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -1319,6 +1319,7 @@ GLIBC_2.2.5 pthread_exit F
GLIBC_2.2.5 pthread_getattr_np F
GLIBC_2.2.5 pthread_getschedparam F
GLIBC_2.2.5 pthread_getspecific F
+GLIBC_2.2.5 pthread_join F
GLIBC_2.2.5 pthread_key_create F
GLIBC_2.2.5 pthread_key_delete F
GLIBC_2.2.5 pthread_kill F
@@ -2002,6 +2003,7 @@ 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_join F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
GLIBC_2.28 tss_create F
@@ -2133,6 +2135,8 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
GLIBC_2.3.3 pthread_condattr_getclock F
GLIBC_2.3.3 pthread_condattr_setclock F
GLIBC_2.3.3 pthread_getaffinity_np F
+GLIBC_2.3.3 pthread_timedjoin_np F
+GLIBC_2.3.3 pthread_tryjoin_np F
GLIBC_2.3.3 remap_file_pages F
GLIBC_2.3.3 sched_getaffinity F
GLIBC_2.3.3 sched_setaffinity F
@@ -2181,6 +2185,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.30 tgkill F
GLIBC_2.30 twalk_r F
+GLIBC_2.31 pthread_clockjoin_np F
GLIBC_2.32 __libc_single_threaded D 0x1
GLIBC_2.32 pthread_attr_getsigmask_np F
GLIBC_2.32 pthread_attr_setaffinity_np F
@@ -2232,6 +2237,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
GLIBC_2.34 pthread_barrierattr_getpshared F
GLIBC_2.34 pthread_barrierattr_init F
GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_clockjoin_np F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F
@@ -2239,6 +2245,7 @@ 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_join F
GLIBC_2.34 pthread_key_create F
GLIBC_2.34 pthread_key_delete F
GLIBC_2.34 pthread_kill F
@@ -2286,6 +2293,8 @@ GLIBC_2.34 pthread_spin_lock F
GLIBC_2.34 pthread_spin_trylock F
GLIBC_2.34 pthread_spin_unlock F
GLIBC_2.34 pthread_testcancel F
+GLIBC_2.34 pthread_timedjoin_np F
+GLIBC_2.34 pthread_tryjoin_np F
GLIBC_2.34 sem_clockwait F
GLIBC_2.34 sem_close F
GLIBC_2.34 sem_destroy F
@@ -2299,6 +2308,7 @@ 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 thrd_join F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
GLIBC_2.34 tss_get F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
index dac904b6e9..df961f49ba 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
@@ -21,11 +21,9 @@ GLIBC_2.2.5 pthread_cancel F
GLIBC_2.2.5 pthread_create 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_join F
GLIBC_2.3.2 __libpthread_version_placeholder F
GLIBC_2.3.3 __pthread_register_cancel F
GLIBC_2.3.3 __pthread_register_cancel_defer F
@@ -33,11 +31,9 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 pthread_attr_getaffinity_np F
GLIBC_2.3.3 pthread_setaffinity_np F
-GLIBC_2.3.3 pthread_timedjoin_np F
-GLIBC_2.3.3 pthread_tryjoin_np F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_setaffinity_np F
GLIBC_2.3.4 pthread_setschedprio F
GLIBC_2.30 __libpthread_version_placeholder F
-GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.31 __libpthread_version_placeholder F
GLIBC_2.4 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index fa9319c610..4fae69daff 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -1488,6 +1488,7 @@ GLIBC_2.16 pthread_getaffinity_np F
GLIBC_2.16 pthread_getattr_np F
GLIBC_2.16 pthread_getschedparam F
GLIBC_2.16 pthread_getspecific F
+GLIBC_2.16 pthread_join F
GLIBC_2.16 pthread_key_create F
GLIBC_2.16 pthread_key_delete F
GLIBC_2.16 pthread_kill F
@@ -1546,6 +1547,8 @@ GLIBC_2.16 pthread_spin_lock F
GLIBC_2.16 pthread_spin_trylock F
GLIBC_2.16 pthread_spin_unlock F
GLIBC_2.16 pthread_testcancel F
+GLIBC_2.16 pthread_timedjoin_np F
+GLIBC_2.16 pthread_tryjoin_np F
GLIBC_2.16 pthread_yield F
GLIBC_2.16 ptrace F
GLIBC_2.16 ptsname F
@@ -2268,6 +2271,7 @@ 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_join F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
GLIBC_2.28 tss_create F
@@ -2286,6 +2290,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.30 tgkill F
GLIBC_2.30 twalk_r F
+GLIBC_2.31 pthread_clockjoin_np F
GLIBC_2.32 __libc_single_threaded D 0x1
GLIBC_2.32 pthread_attr_getsigmask_np F
GLIBC_2.32 pthread_attr_setaffinity_np F
@@ -2337,6 +2342,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
GLIBC_2.34 pthread_barrierattr_getpshared F
GLIBC_2.34 pthread_barrierattr_init F
GLIBC_2.34 pthread_barrierattr_setpshared F
+GLIBC_2.34 pthread_clockjoin_np F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F
@@ -2344,6 +2350,7 @@ 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_join F
GLIBC_2.34 pthread_key_create F
GLIBC_2.34 pthread_key_delete F
GLIBC_2.34 pthread_kill F
@@ -2391,6 +2398,8 @@ GLIBC_2.34 pthread_spin_lock F
GLIBC_2.34 pthread_spin_trylock F
GLIBC_2.34 pthread_spin_unlock F
GLIBC_2.34 pthread_testcancel F
+GLIBC_2.34 pthread_timedjoin_np F
+GLIBC_2.34 pthread_tryjoin_np F
GLIBC_2.34 sem_clockwait F
GLIBC_2.34 sem_close F
GLIBC_2.34 sem_destroy F
@@ -2404,6 +2413,7 @@ 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 thrd_join F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
GLIBC_2.34 tss_get F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
index b8bbe71c59..25d7f53b0b 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
@@ -23,16 +23,12 @@ GLIBC_2.16 pthread_create F
GLIBC_2.16 pthread_getconcurrency F
GLIBC_2.16 pthread_getcpuclockid F
GLIBC_2.16 pthread_getname_np F
-GLIBC_2.16 pthread_join F
GLIBC_2.16 pthread_setaffinity_np F
GLIBC_2.16 pthread_setconcurrency F
GLIBC_2.16 pthread_setname_np F
GLIBC_2.16 pthread_setschedprio F
GLIBC_2.16 pthread_sigqueue F
-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_join F
GLIBC_2.30 __libpthread_version_placeholder F
-GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.31 __libpthread_version_placeholder F
--
2.31.1
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 1/8] nptl: Remove unused nptl/pthread_sigqueue.c stub implementation
2021-05-10 12:37 ` [PATCH 1/8] nptl: Remove unused nptl/pthread_sigqueue.c stub implementation Florian Weimer
@ 2021-05-10 13:21 ` Adhemerval Zanella
0 siblings, 0 replies; 20+ messages in thread
From: Adhemerval Zanella @ 2021-05-10 13:21 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
LGTM, thanks.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
On 10/05/2021 09:37, Florian Weimer via Libc-alpha wrote:
> ---
> nptl/pthread_sigqueue.c | 37 -------------------------------------
> 1 file changed, 37 deletions(-)
> delete mode 100644 nptl/pthread_sigqueue.c
>
> diff --git a/nptl/pthread_sigqueue.c b/nptl/pthread_sigqueue.c
> deleted file mode 100644
> index 7d60e2b98d..0000000000
> --- a/nptl/pthread_sigqueue.c
> +++ /dev/null
> @@ -1,37 +0,0 @@
> -/* Queue a signal (with value) for a specific pthread. Stub version.
> - Copyright (C) 2014-2021 Free Software Foundation, Inc.
> - This file is part of the GNU C Library.
> -
> - The GNU C Library is free software; you can redistribute it and/or
> - modify it under the terms of the GNU Lesser General Public
> - License as published by the Free Software Foundation; either
> - version 2.1 of the License, or (at your option) any later version.
> -
> - The GNU C Library is distributed in the hope that it will be useful,
> - but WITHOUT ANY WARRANTY; without even the implied warranty of
> - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> - Lesser General Public License for more details.
> -
> - You should have received a copy of the GNU Lesser General Public
> - License along with the GNU C Library; if not, see
> - <https://www.gnu.org/licenses/>. */
> -
> -#include <errno.h>
> -#include <signal.h>
> -#include <pthreadP.h>
> -
> -
> -int
> -pthread_sigqueue (pthread_t threadid, int signo, const union sigval value)
> -{
> - struct pthread *pd = (struct pthread *) threadid;
> -
> - /* Make sure the descriptor is valid. */
> - if (DEBUGGING_P && INVALID_TD_P (pd))
> - /* Not a valid thread handle. */
> - return ESRCH;
> -
> - return ENOSYS;
> -}
> -
> -stub_warning (pthread_sigqueue)
>
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 2/8] nptl: Move pthread_sigqueue implementation into main nptl directory
2021-05-10 12:37 ` [PATCH 2/8] nptl: Move pthread_sigqueue implementation into main nptl directory Florian Weimer
@ 2021-05-10 13:25 ` Adhemerval Zanella
2021-05-11 9:09 ` Florian Weimer
0 siblings, 1 reply; 20+ messages in thread
From: Adhemerval Zanella @ 2021-05-10 13:25 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
LGTM, thanks. Maybe combine with the patch that removes the stub
version.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
On 10/05/2021 09:37, Florian Weimer via Libc-alpha wrote:
> ---
> {sysdeps/unix/sysv/linux => nptl}/pthread_sigqueue.c | 0
> 1 file changed, 0 insertions(+), 0 deletions(-)
> rename {sysdeps/unix/sysv/linux => nptl}/pthread_sigqueue.c (100%)
>
> diff --git a/sysdeps/unix/sysv/linux/pthread_sigqueue.c b/nptl/pthread_sigqueue.c
> similarity index 100%
> rename from sysdeps/unix/sysv/linux/pthread_sigqueue.c
> rename to nptl/pthread_sigqueue.c
>
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 3/8] nptl: Remove always-disabled debugging support
2021-05-10 12:37 ` [PATCH 3/8] nptl: Remove always-disabled debugging support Florian Weimer
@ 2021-05-10 13:47 ` Adhemerval Zanella
0 siblings, 0 replies; 20+ messages in thread
From: Adhemerval Zanella @ 2021-05-10 13:47 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 10/05/2021 09:37, Florian Weimer via Libc-alpha wrote:
> This removes the DEBUGGING_P macro and the __pthread_debug variable.
> The __find_in_stack_list function is now unused and deleted as well.
LGTM, thanks. As a side note we might revise the INVALID_TD_P and
INVALID_NOT_TERMINATED_TD_P in the future, I don't their usage are
entirely safe within glibc.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> ---
> nptl/pthreadP.h | 26 +++++-----------------
> nptl/pthread_create.c | 49 -----------------------------------------
> nptl/pthread_sigqueue.c | 5 -----
> 3 files changed, 5 insertions(+), 75 deletions(-)
>
> diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
> index d9b97c814a..d9a6137bd3 100644
> --- a/nptl/pthreadP.h
> +++ b/nptl/pthreadP.h
> @@ -243,23 +243,11 @@ libc_hidden_proto (__pthread_tpp_change_priority)
> extern int __pthread_current_priority (void);
> libc_hidden_proto (__pthread_current_priority)
>
> -/* The library can run in debugging mode where it performs a lot more
> - tests. */
> -extern int __pthread_debug attribute_hidden;
> -/** For now disable debugging support. */
> -#if 0
> -# define DEBUGGING_P __builtin_expect (__pthread_debug, 0)
> -# define INVALID_TD_P(pd) (DEBUGGING_P && __find_in_stack_list (pd) == NULL)
> -# define INVALID_NOT_TERMINATED_TD_P(pd) INVALID_TD_P (pd)
> -#else
> -# define DEBUGGING_P 0
> -/* Simplified test. This will not catch all invalid descriptors but
> - is better than nothing. And if the test triggers the thread
> - descriptor is guaranteed to be invalid. */
> -# define INVALID_TD_P(pd) __builtin_expect ((pd)->tid <= 0, 0)
> -# define INVALID_NOT_TERMINATED_TD_P(pd) __builtin_expect ((pd)->tid < 0, 0)
> -#endif
> -
> +/* This will not catch all invalid descriptors but is better than
> + nothing. And if the test triggers the thread descriptor is
> + guaranteed to be invalid. */
> +#define INVALID_TD_P(pd) __builtin_expect ((pd)->tid <= 0, 0)
> +#define INVALID_NOT_TERMINATED_TD_P(pd) __builtin_expect ((pd)->tid < 0, 0)
>
> /* Cancellation test. */
> #define CANCELLATION_P(self) \
> @@ -322,10 +310,6 @@ __do_cancel (void)
>
> /* Internal prototypes. */
>
> -/* Thread list handling. */
> -extern struct pthread *__find_in_stack_list (struct pthread *pd)
> - attribute_hidden;
> -
> /* Deallocate a thread's stack after optionally making sure the thread
> descriptor is still valid. */
> extern void __free_tcb (struct pthread *pd) attribute_hidden;
Ok.
> diff --git a/nptl/pthread_create.c b/nptl/pthread_create.c
> index 775287d0e4..d19456d48b 100644
> --- a/nptl/pthread_create.c
> +++ b/nptl/pthread_create.c
> @@ -42,9 +42,6 @@
> #include <stap-probe.h>
>
>
> -/* Nozero if debugging mode is enabled. */
> -int __pthread_debug;
> -
> /* Globally enabled events. */
> static td_thr_events_t __nptl_threads_events __attribute_used__;
>
> @@ -210,46 +207,6 @@ static int create_thread (struct pthread *pd, const struct pthread_attr *attr,
>
> #include <createthread.c>
>
> -
> -struct pthread *
> -__find_in_stack_list (struct pthread *pd)
> -{
> - list_t *entry;
> - struct pthread *result = NULL;
> -
> - lll_lock (GL (dl_stack_cache_lock), LLL_PRIVATE);
> -
> - list_for_each (entry, &GL (dl_stack_used))
> - {
> - struct pthread *curp;
> -
> - curp = list_entry (entry, struct pthread, list);
> - if (curp == pd)
> - {
> - result = curp;
> - break;
> - }
> - }
> -
> - if (result == NULL)
> - list_for_each (entry, &GL (dl_stack_user))
> - {
> - struct pthread *curp;
> -
> - curp = list_entry (entry, struct pthread, list);
> - if (curp == pd)
> - {
> - result = curp;
> - break;
> - }
> - }
> -
> - lll_unlock (GL (dl_stack_cache_lock), LLL_PRIVATE);
> -
> - return result;
> -}
> -
> -
> /* Deallocate a thread's stack after optionally making sure the thread
> descriptor is still valid. */
> void
Ok.
> @@ -259,12 +216,6 @@ __free_tcb (struct pthread *pd)
> if (__builtin_expect (atomic_bit_test_set (&pd->cancelhandling,
> TERMINATED_BIT) == 0, 1))
> {
> - /* Remove the descriptor from the list. */
> - if (DEBUGGING_P && __find_in_stack_list (pd) == NULL)
> - /* Something is really wrong. The descriptor for a still
> - running thread is gone. */
> - abort ();
> -
> /* Free TPP data. */
> if (__glibc_unlikely (pd->tpp != NULL))
> {
Ok.
> diff --git a/nptl/pthread_sigqueue.c b/nptl/pthread_sigqueue.c
> index 64bacfe41b..3ffb595489 100644
> --- a/nptl/pthread_sigqueue.c
> +++ b/nptl/pthread_sigqueue.c
> @@ -31,11 +31,6 @@ pthread_sigqueue (pthread_t threadid, int signo, const union sigval value)
> #ifdef __NR_rt_tgsigqueueinfo
> struct pthread *pd = (struct pthread *) threadid;
>
> - /* Make sure the descriptor is valid. */
> - if (DEBUGGING_P && INVALID_TD_P (pd))
> - /* Not a valid thread handle. */
> - return ESRCH;
> -
> /* Force load of pd->tid into local variable or register. Otherwise
> if a thread exits between ESRCH test and tgkill, we might return
> EINVAL, because pd->tid would be cleared by the kernel. */
>
Ok.
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 4/8] nptl: Move pthread_setattr_default_np into libc
2021-05-10 12:37 ` [PATCH 4/8] nptl: Move pthread_setattr_default_np into libc Florian Weimer
@ 2021-05-10 16:28 ` Adhemerval Zanella
0 siblings, 0 replies; 20+ messages in thread
From: Adhemerval Zanella @ 2021-05-10 16:28 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 10/05/2021 09:37, Florian Weimer via Libc-alpha wrote:
> The symbol was moved using scripts/move-symbol-to-libc.py.
>
> The export of __default_pthread_attr_freeres is temporary. There
> is a minor regression in freeres coverage because in the dynamic case,
> __default_pthread_attr_freeres is no longer called if libpthread is
> not linked in.
LGTM, thanks.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> ---
> nptl/Makefile | 2 +-
> nptl/Versions | 8 ++++++--
> nptl/pthreadP.h | 2 +-
> nptl/pthread_setattr_default_np.c | 10 ++++++++--
> sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/aarch64/libpthread.abilist | 1 -
> sysdeps/unix/sysv/linux/alpha/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/alpha/libpthread.abilist | 1 -
> sysdeps/unix/sysv/linux/arc/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/arc/libpthread.abilist | 1 -
> sysdeps/unix/sysv/linux/arm/be/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/arm/be/libpthread.abilist | 1 -
> sysdeps/unix/sysv/linux/arm/le/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/arm/le/libpthread.abilist | 1 -
> sysdeps/unix/sysv/linux/csky/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/csky/libpthread.abilist | 1 -
> sysdeps/unix/sysv/linux/hppa/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/hppa/libpthread.abilist | 1 -
> sysdeps/unix/sysv/linux/i386/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/i386/libpthread.abilist | 1 -
> sysdeps/unix/sysv/linux/ia64/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/ia64/libpthread.abilist | 1 -
> sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist | 2 ++
> .../unix/sysv/linux/m68k/coldfire/libpthread.abilist | 1 -
> sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist | 1 -
> sysdeps/unix/sysv/linux/microblaze/be/libc.abilist | 2 ++
> .../unix/sysv/linux/microblaze/be/libpthread.abilist | 1 -
> sysdeps/unix/sysv/linux/microblaze/le/libc.abilist | 2 ++
> .../unix/sysv/linux/microblaze/le/libpthread.abilist | 1 -
> sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist | 1 -
> sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist | 1 -
> sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/nios2/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/nios2/libpthread.abilist | 1 -
> .../unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist | 2 ++
> .../sysv/linux/powerpc/powerpc32/libpthread.abilist | 1 -
> .../sysv/linux/powerpc/powerpc32/nofpu/libc.abilist | 2 ++
> .../unix/sysv/linux/powerpc/powerpc64/be/libc.abilist | 2 ++
> .../sysv/linux/powerpc/powerpc64/be/libpthread.abilist | 1 -
> .../unix/sysv/linux/powerpc/powerpc64/le/libc.abilist | 2 ++
> .../sysv/linux/powerpc/powerpc64/le/libpthread.abilist | 1 -
> sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist | 1 -
> sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist | 1 -
> sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist | 2 ++
> .../unix/sysv/linux/s390/s390-32/libpthread.abilist | 1 -
> sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist | 2 ++
> .../unix/sysv/linux/s390/s390-64/libpthread.abilist | 1 -
> sysdeps/unix/sysv/linux/sh/be/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/sh/be/libpthread.abilist | 1 -
> sysdeps/unix/sysv/linux/sh/le/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/sh/le/libpthread.abilist | 1 -
> sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist | 2 ++
> .../unix/sysv/linux/sparc/sparc32/libpthread.abilist | 1 -
> sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist | 2 ++
> .../unix/sysv/linux/sparc/sparc64/libpthread.abilist | 1 -
> sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist | 1 -
> sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist | 1 -
> 65 files changed, 80 insertions(+), 35 deletions(-)
>
> diff --git a/nptl/Makefile b/nptl/Makefile
> index f7723cb808..2a18eadf71 100644
> --- a/nptl/Makefile
> +++ b/nptl/Makefile
> @@ -145,6 +145,7 @@ routines = \
> pthread_rwlockattr_setkind_np \
> pthread_rwlockattr_setpshared \
> pthread_self \
> + pthread_setattr_default_np \
> pthread_setcancelstate \
> pthread_setcanceltype \
> pthread_setschedparam \
> @@ -206,7 +207,6 @@ libpthread-routines = \
> pthread_join \
> pthread_join_common \
> pthread_setaffinity \
> - pthread_setattr_default_np \
> pthread_setconcurrency \
> pthread_setname \
> pthread_setschedprio \
Ok.
> diff --git a/nptl/Versions b/nptl/Versions
> index 4c1c4ee0a7..de025e179c 100644
> --- a/nptl/Versions
> +++ b/nptl/Versions
> @@ -167,6 +167,9 @@ libc {
> pthread_mutexattr_getrobust;
> pthread_mutexattr_setrobust;
> }
> + GLIBC_2.18 {
> + pthread_setattr_default_np;
> + }
> # C11 thread symbols.
> GLIBC_2.28 {
> call_once;
> @@ -230,8 +233,8 @@ libc {
> pthread_barrier_wait;
> pthread_barrierattr_destroy;
> pthread_barrierattr_getpshared;
> - pthread_barrierattr_setpshared;
> pthread_barrierattr_init;
> + pthread_barrierattr_setpshared;
> pthread_cond_clockwait;
> pthread_condattr_getclock;
> pthread_condattr_getpshared;
> @@ -273,6 +276,7 @@ libc {
> pthread_rwlockattr_init;
> pthread_rwlockattr_setkind_np;
> pthread_rwlockattr_setpshared;
> + pthread_setattr_default_np;
> pthread_setspecific;
> pthread_spin_destroy;
> pthread_spin_init;
> @@ -299,6 +303,7 @@ libc {
> }
> GLIBC_PRIVATE {
> __default_pthread_attr;
> + __default_pthread_attr_freeres;
> __default_pthread_attr_lock;
> __futex_abstimed_wait64;
> __futex_abstimed_wait_cancelable64;
> @@ -436,7 +441,6 @@ libpthread {
>
> GLIBC_2.18 {
> pthread_getattr_default_np;
> - pthread_setattr_default_np;
> }
>
> # C11 thread symbols.
OK.
> diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
> index d9a6137bd3..8466332248 100644
> --- a/nptl/pthreadP.h
> +++ b/nptl/pthreadP.h
> @@ -203,7 +203,7 @@ libc_hidden_proto (__default_pthread_attr)
> extern int __default_pthread_attr_lock;
> libc_hidden_proto (__default_pthread_attr_lock)
> /* Called from __libc_freeres to deallocate the default attribute. */
> -extern void __default_pthread_attr_freeres (void) attribute_hidden;
> +extern void __default_pthread_attr_freeres (void);
>
> /* Size and alignment of static TLS block. */
> extern size_t __static_tls_size attribute_hidden;
Ok.
> diff --git a/nptl/pthread_setattr_default_np.c b/nptl/pthread_setattr_default_np.c
> index fcf1873d2f..bfdb93bc6e 100644
> --- a/nptl/pthread_setattr_default_np.c
> +++ b/nptl/pthread_setattr_default_np.c
> @@ -20,10 +20,10 @@
> #include <stdlib.h>
> #include <pthreadP.h>
> #include <string.h>
> -
> +#include <shlib-compat.h>
>
> int
> -pthread_setattr_default_np (const pthread_attr_t *in)
> +__pthread_setattr_default_np (const pthread_attr_t *in)
> {
> const struct pthread_attr *real_in;
> int ret;
> @@ -81,6 +81,12 @@ pthread_setattr_default_np (const pthread_attr_t *in)
> lll_unlock (__default_pthread_attr_lock, LLL_PRIVATE);
> return ret;
> }
> +versioned_symbol (libc, __pthread_setattr_default_np,
> + pthread_setattr_default_np, GLIBC_2_34);
> +#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_18, GLIBC_2_34)
> +compat_symbol (libc, __pthread_setattr_default_np,
> + pthread_setattr_default_np, GLIBC_2_18);
> +#endif
>
> /* This is placed in the same file as pthread_setattr_default_np
> because only this function can trigger allocation of attribute
Ok.
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index 36d760212c..caee529c98 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -2179,6 +2179,7 @@ GLIBC_2.17 xprt_register F
> GLIBC_2.17 xprt_unregister F
> GLIBC_2.18 __cxa_thread_atexit_impl F
> GLIBC_2.18 _mcount F
> +GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.22 fmemopen F
> GLIBC_2.23 fts64_children F
> GLIBC_2.23 fts64_close F
> @@ -2364,6 +2365,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
> GLIBC_2.34 pthread_rwlockattr_init F
> GLIBC_2.34 pthread_rwlockattr_setkind_np F
> GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setattr_default_np F
> GLIBC_2.34 pthread_setspecific F
> GLIBC_2.34 pthread_spin_destroy F
> GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> index b4f0fdd999..f09c6d434a 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> @@ -33,7 +33,6 @@ GLIBC_2.17 pthread_sigqueue F
> GLIBC_2.17 pthread_timedjoin_np F
> GLIBC_2.17 pthread_tryjoin_np F
> GLIBC_2.18 pthread_getattr_default_np F
> -GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.28 thrd_create F
> GLIBC_2.28 thrd_detach F
> GLIBC_2.28 thrd_join F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index 8fc9b75676..7a9a6608f4 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -1854,6 +1854,7 @@ GLIBC_2.17 clock_nanosleep F
> GLIBC_2.17 clock_settime F
> GLIBC_2.17 secure_getenv F
> GLIBC_2.18 __cxa_thread_atexit_impl F
> +GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.2 _IO_adjust_wcolumn F
> GLIBC_2.2 _IO_fgetpos F
> GLIBC_2.2 _IO_fgetpos64 F
> @@ -2451,6 +2452,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
> GLIBC_2.34 pthread_rwlockattr_init F
> GLIBC_2.34 pthread_rwlockattr_setkind_np F
> GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setattr_default_np F
> GLIBC_2.34 pthread_setspecific F
> GLIBC_2.34 pthread_spin_destroy F
> GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> index c2017537e2..9b2e09a2e4 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> @@ -24,7 +24,6 @@ GLIBC_2.11 pthread_sigqueue F
> GLIBC_2.12 pthread_getname_np F
> GLIBC_2.12 pthread_setname_np F
> GLIBC_2.18 pthread_getattr_default_np F
> -GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.2 pthread_attr_getstack F
> GLIBC_2.2 pthread_attr_setstack F
> GLIBC_2.2 pthread_getcpuclockid F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index 8e84a695fd..6fef10b0ad 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -1470,6 +1470,7 @@ GLIBC_2.32 pthread_rwlockattr_init F
> GLIBC_2.32 pthread_rwlockattr_setkind_np F
> GLIBC_2.32 pthread_rwlockattr_setpshared F
> GLIBC_2.32 pthread_self F
> +GLIBC_2.32 pthread_setattr_default_np F
> GLIBC_2.32 pthread_setcancelstate F
> GLIBC_2.32 pthread_setcanceltype F
> GLIBC_2.32 pthread_setschedparam F
> @@ -2123,6 +2124,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
> GLIBC_2.34 pthread_rwlockattr_init F
> GLIBC_2.34 pthread_rwlockattr_setkind_np F
> GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setattr_default_np F
> GLIBC_2.34 pthread_setspecific F
> GLIBC_2.34 pthread_spin_destroy F
> GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> index bc072be61f..8a4bea9aa9 100644
> --- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> @@ -28,7 +28,6 @@ GLIBC_2.32 pthread_getcpuclockid F
> GLIBC_2.32 pthread_getname_np F
> GLIBC_2.32 pthread_join F
> GLIBC_2.32 pthread_setaffinity_np F
> -GLIBC_2.32 pthread_setattr_default_np F
> GLIBC_2.32 pthread_setconcurrency F
> GLIBC_2.32 pthread_setname_np F
> GLIBC_2.32 pthread_setschedprio F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index 424d683ffe..f97aeeb047 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -74,6 +74,7 @@ GLIBC_2.17 clock_nanosleep F
> GLIBC_2.17 clock_settime F
> GLIBC_2.17 secure_getenv F
> GLIBC_2.18 __cxa_thread_atexit_impl F
> +GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.22 fmemopen F
> GLIBC_2.23 fts64_children F
> GLIBC_2.23 fts64_close F
> @@ -253,6 +254,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
> GLIBC_2.34 pthread_rwlockattr_init F
> GLIBC_2.34 pthread_rwlockattr_setkind_np F
> GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setattr_default_np F
> GLIBC_2.34 pthread_setspecific F
> GLIBC_2.34 pthread_spin_destroy F
> GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> index 5b52c456fb..117d44ad5f 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> @@ -2,7 +2,6 @@ GLIBC_2.11 pthread_sigqueue F
> GLIBC_2.12 pthread_getname_np F
> GLIBC_2.12 pthread_setname_np F
> GLIBC_2.18 pthread_getattr_default_np F
> -GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.28 thrd_create F
> GLIBC_2.28 thrd_detach F
> GLIBC_2.28 thrd_join F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index 15acd896df..70f5f81faf 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -74,6 +74,7 @@ GLIBC_2.17 clock_nanosleep F
> GLIBC_2.17 clock_settime F
> GLIBC_2.17 secure_getenv F
> GLIBC_2.18 __cxa_thread_atexit_impl F
> +GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.22 fmemopen F
> GLIBC_2.23 fts64_children F
> GLIBC_2.23 fts64_close F
> @@ -250,6 +251,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
> GLIBC_2.34 pthread_rwlockattr_init F
> GLIBC_2.34 pthread_rwlockattr_setkind_np F
> GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setattr_default_np F
> GLIBC_2.34 pthread_setspecific F
> GLIBC_2.34 pthread_spin_destroy F
> GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> index 5b52c456fb..117d44ad5f 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> @@ -2,7 +2,6 @@ GLIBC_2.11 pthread_sigqueue F
> GLIBC_2.12 pthread_getname_np F
> GLIBC_2.12 pthread_setname_np F
> GLIBC_2.18 pthread_getattr_default_np F
> -GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.28 thrd_create F
> GLIBC_2.28 thrd_detach F
> GLIBC_2.28 thrd_join F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index 61c58b1e0f..bd80fd1afd 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -1527,6 +1527,7 @@ GLIBC_2.29 pthread_rwlockattr_init F
> GLIBC_2.29 pthread_rwlockattr_setkind_np F
> GLIBC_2.29 pthread_rwlockattr_setpshared F
> GLIBC_2.29 pthread_self F
> +GLIBC_2.29 pthread_setattr_default_np F
> GLIBC_2.29 pthread_setcancelstate F
> GLIBC_2.29 pthread_setcanceltype F
> GLIBC_2.29 pthread_setschedparam F
> @@ -2307,6 +2308,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
> GLIBC_2.34 pthread_rwlockattr_init F
> GLIBC_2.34 pthread_rwlockattr_setkind_np F
> GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setattr_default_np F
> GLIBC_2.34 pthread_setspecific F
> GLIBC_2.34 pthread_spin_destroy F
> GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> index d55f09a9fe..8ad8fc7c7f 100644
> --- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> @@ -27,7 +27,6 @@ GLIBC_2.29 pthread_getcpuclockid F
> GLIBC_2.29 pthread_getname_np F
> GLIBC_2.29 pthread_join F
> GLIBC_2.29 pthread_setaffinity_np F
> -GLIBC_2.29 pthread_setattr_default_np F
> GLIBC_2.29 pthread_setconcurrency F
> GLIBC_2.29 pthread_setname_np F
> GLIBC_2.29 pthread_setschedprio F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index e89b8b935f..fb40c0292c 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -77,6 +77,7 @@ GLIBC_2.17 secure_getenv F
> GLIBC_2.17 sys_errlist D 0x410
> GLIBC_2.17 sys_nerr D 0x4
> GLIBC_2.18 __cxa_thread_atexit_impl F
> +GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.19 fanotify_mark F
> GLIBC_2.2 _Exit F
> GLIBC_2.2 _IO_2_1_stderr_ D 0xa0
> @@ -2258,6 +2259,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
> GLIBC_2.34 pthread_rwlockattr_init F
> GLIBC_2.34 pthread_rwlockattr_setkind_np F
> GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setattr_default_np F
> GLIBC_2.34 pthread_setspecific F
> GLIBC_2.34 pthread_spin_destroy F
> GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> index 2c4a7041b6..7e7fdfb8cd 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> @@ -2,7 +2,6 @@ GLIBC_2.11 pthread_sigqueue F
> GLIBC_2.12 pthread_getname_np F
> GLIBC_2.12 pthread_setname_np F
> GLIBC_2.18 pthread_getattr_default_np F
> -GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.2 _IO_flockfile F
> GLIBC_2.2 _IO_ftrylockfile F
> GLIBC_2.2 _IO_funlockfile F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index 3c3c826952..dd243f7808 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -1856,6 +1856,7 @@ GLIBC_2.17 clock_nanosleep F
> GLIBC_2.17 clock_settime F
> GLIBC_2.17 secure_getenv F
> GLIBC_2.18 __cxa_thread_atexit_impl F
> +GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.2 _IO_adjust_wcolumn F
> GLIBC_2.2 _IO_fgetpos F
> GLIBC_2.2 _IO_fgetpos64 F
> @@ -2441,6 +2442,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
> GLIBC_2.34 pthread_rwlockattr_init F
> GLIBC_2.34 pthread_rwlockattr_setkind_np F
> GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setattr_default_np F
> GLIBC_2.34 pthread_setspecific F
> GLIBC_2.34 pthread_spin_destroy F
> GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> index 1cbc49b937..1f5547e80c 100644
> --- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> @@ -24,7 +24,6 @@ GLIBC_2.11 pthread_sigqueue F
> GLIBC_2.12 pthread_getname_np F
> GLIBC_2.12 pthread_setname_np F
> GLIBC_2.18 pthread_getattr_default_np F
> -GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.2 pthread_attr_getstack F
> GLIBC_2.2 pthread_attr_setstack F
> GLIBC_2.2 pthread_getcpuclockid F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index 94a0819e08..b805382c4b 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -74,6 +74,7 @@ GLIBC_2.17 clock_nanosleep F
> GLIBC_2.17 clock_settime F
> GLIBC_2.17 secure_getenv F
> GLIBC_2.18 __cxa_thread_atexit_impl F
> +GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.2 _Exit F
> GLIBC_2.2 _IO_2_1_stderr_ D 0xe0
> GLIBC_2.2 _IO_2_1_stdin_ D 0xe0
> @@ -2292,6 +2293,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
> GLIBC_2.34 pthread_rwlockattr_init F
> GLIBC_2.34 pthread_rwlockattr_setkind_np F
> GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setattr_default_np F
> GLIBC_2.34 pthread_setspecific F
> GLIBC_2.34 pthread_spin_destroy F
> GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> index 6b87a988d4..3460d95267 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> @@ -2,7 +2,6 @@ GLIBC_2.11 pthread_sigqueue F
> GLIBC_2.12 pthread_getname_np F
> GLIBC_2.12 pthread_setname_np F
> GLIBC_2.18 pthread_getattr_default_np F
> -GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.2 _IO_flockfile F
> GLIBC_2.2 _IO_ftrylockfile F
> GLIBC_2.2 _IO_funlockfile F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index 789189ea9d..21332b7b39 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -75,6 +75,7 @@ GLIBC_2.17 clock_nanosleep F
> GLIBC_2.17 clock_settime F
> GLIBC_2.17 secure_getenv F
> GLIBC_2.18 __cxa_thread_atexit_impl F
> +GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.22 fmemopen F
> GLIBC_2.23 fts64_children F
> GLIBC_2.23 fts64_close F
> @@ -254,6 +255,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
> GLIBC_2.34 pthread_rwlockattr_init F
> GLIBC_2.34 pthread_rwlockattr_setkind_np F
> GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setattr_default_np F
> GLIBC_2.34 pthread_setspecific F
> GLIBC_2.34 pthread_spin_destroy F
> GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> index 5b52c456fb..117d44ad5f 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> @@ -2,7 +2,6 @@ GLIBC_2.11 pthread_sigqueue F
> GLIBC_2.12 pthread_getname_np F
> GLIBC_2.12 pthread_setname_np F
> GLIBC_2.18 pthread_getattr_default_np F
> -GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.28 thrd_create F
> GLIBC_2.28 thrd_detach F
> GLIBC_2.28 thrd_join F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index ae2fd168e7..5159aee942 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -1812,6 +1812,7 @@ GLIBC_2.17 clock_nanosleep F
> GLIBC_2.17 clock_settime F
> GLIBC_2.17 secure_getenv F
> GLIBC_2.18 __cxa_thread_atexit_impl F
> +GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.2 _IO_adjust_wcolumn F
> GLIBC_2.2 _IO_fgetpos F
> GLIBC_2.2 _IO_fgetpos64 F
> @@ -2384,6 +2385,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
> GLIBC_2.34 pthread_rwlockattr_init F
> GLIBC_2.34 pthread_rwlockattr_setkind_np F
> GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setattr_default_np F
> GLIBC_2.34 pthread_setspecific F
> GLIBC_2.34 pthread_spin_destroy F
> GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> index 1cbc49b937..1f5547e80c 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> @@ -24,7 +24,6 @@ GLIBC_2.11 pthread_sigqueue F
> GLIBC_2.12 pthread_getname_np F
> GLIBC_2.12 pthread_setname_np F
> GLIBC_2.18 pthread_getattr_default_np F
> -GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.2 pthread_attr_getstack F
> GLIBC_2.2 pthread_attr_setstack F
> GLIBC_2.2 pthread_getcpuclockid F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index 4a39e0d5d5..4609ade92c 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -1529,6 +1529,7 @@ GLIBC_2.18 pthread_rwlockattr_init F
> GLIBC_2.18 pthread_rwlockattr_setkind_np F
> GLIBC_2.18 pthread_rwlockattr_setpshared F
> GLIBC_2.18 pthread_self F
> +GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.18 pthread_setcancelstate F
> GLIBC_2.18 pthread_setcanceltype F
> GLIBC_2.18 pthread_setschedparam F
> @@ -2358,6 +2359,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
> GLIBC_2.34 pthread_rwlockattr_init F
> GLIBC_2.34 pthread_rwlockattr_setkind_np F
> GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setattr_default_np F
> GLIBC_2.34 pthread_setspecific F
> GLIBC_2.34 pthread_spin_destroy F
> GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> index ee29730057..c87d939959 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> @@ -27,7 +27,6 @@ GLIBC_2.18 pthread_getcpuclockid F
> GLIBC_2.18 pthread_getname_np F
> GLIBC_2.18 pthread_join F
> GLIBC_2.18 pthread_setaffinity_np F
> -GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.18 pthread_setconcurrency F
> GLIBC_2.18 pthread_setname_np F
> GLIBC_2.18 pthread_setschedprio F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index f0d2c10414..41db7ed508 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -1529,6 +1529,7 @@ GLIBC_2.18 pthread_rwlockattr_init F
> GLIBC_2.18 pthread_rwlockattr_setkind_np F
> GLIBC_2.18 pthread_rwlockattr_setpshared F
> GLIBC_2.18 pthread_self F
> +GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.18 pthread_setcancelstate F
> GLIBC_2.18 pthread_setcanceltype F
> GLIBC_2.18 pthread_setschedparam F
> @@ -2355,6 +2356,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
> GLIBC_2.34 pthread_rwlockattr_init F
> GLIBC_2.34 pthread_rwlockattr_setkind_np F
> GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setattr_default_np F
> GLIBC_2.34 pthread_setspecific F
> GLIBC_2.34 pthread_spin_destroy F
> GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> index ee29730057..c87d939959 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> @@ -27,7 +27,6 @@ GLIBC_2.18 pthread_getcpuclockid F
> GLIBC_2.18 pthread_getname_np F
> GLIBC_2.18 pthread_join F
> GLIBC_2.18 pthread_setaffinity_np F
> -GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.18 pthread_setconcurrency F
> GLIBC_2.18 pthread_setname_np F
> GLIBC_2.18 pthread_setschedprio F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index ece8508afc..77d3b72f2b 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -1421,6 +1421,7 @@ GLIBC_2.17 secure_getenv F
> GLIBC_2.18 __cxa_thread_atexit_impl F
> GLIBC_2.18 __mips_fpu_getcw F
> GLIBC_2.18 __mips_fpu_setcw F
> +GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.19 getrlimit64 F
> GLIBC_2.19 setrlimit64 F
> GLIBC_2.2 _Exit F
> @@ -2347,6 +2348,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
> GLIBC_2.34 pthread_rwlockattr_init F
> GLIBC_2.34 pthread_rwlockattr_setkind_np F
> GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setattr_default_np F
> GLIBC_2.34 pthread_setspecific F
> GLIBC_2.34 pthread_spin_destroy F
> GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> index e523996633..fa52921d78 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> @@ -13,7 +13,6 @@ GLIBC_2.11 pthread_sigqueue F
> GLIBC_2.12 pthread_getname_np F
> GLIBC_2.12 pthread_setname_np F
> GLIBC_2.18 pthread_getattr_default_np F
> -GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.2 pthread_attr_getguardsize F
> GLIBC_2.2 pthread_attr_getstack F
> GLIBC_2.2 pthread_attr_getstackaddr F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index 0bfd7786d3..bfc6ca8d87 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -1419,6 +1419,7 @@ GLIBC_2.17 clock_nanosleep F
> GLIBC_2.17 clock_settime F
> GLIBC_2.17 secure_getenv F
> GLIBC_2.18 __cxa_thread_atexit_impl F
> +GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.19 getrlimit64 F
> GLIBC_2.19 setrlimit64 F
> GLIBC_2.2 _Exit F
> @@ -2345,6 +2346,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
> GLIBC_2.34 pthread_rwlockattr_init F
> GLIBC_2.34 pthread_rwlockattr_setkind_np F
> GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setattr_default_np F
> GLIBC_2.34 pthread_setspecific F
> GLIBC_2.34 pthread_spin_destroy F
> GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> index e523996633..fa52921d78 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> @@ -13,7 +13,6 @@ GLIBC_2.11 pthread_sigqueue F
> GLIBC_2.12 pthread_getname_np F
> GLIBC_2.12 pthread_setname_np F
> GLIBC_2.18 pthread_getattr_default_np F
> -GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.2 pthread_attr_getguardsize F
> GLIBC_2.2 pthread_attr_getstack F
> GLIBC_2.2 pthread_attr_getstackaddr F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index ae1796b582..cdade4e56a 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -1419,6 +1419,7 @@ GLIBC_2.17 clock_nanosleep F
> GLIBC_2.17 clock_settime F
> GLIBC_2.17 secure_getenv F
> GLIBC_2.18 __cxa_thread_atexit_impl F
> +GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.19 getrlimit64 F
> GLIBC_2.19 setrlimit64 F
> GLIBC_2.2 _Exit F
> @@ -2353,6 +2354,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
> GLIBC_2.34 pthread_rwlockattr_init F
> GLIBC_2.34 pthread_rwlockattr_setkind_np F
> GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setattr_default_np F
> GLIBC_2.34 pthread_setspecific F
> GLIBC_2.34 pthread_spin_destroy F
> GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index 4139762550..62184c7a10 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -1417,6 +1417,7 @@ GLIBC_2.17 clock_nanosleep F
> GLIBC_2.17 clock_settime F
> GLIBC_2.17 secure_getenv F
> GLIBC_2.18 __cxa_thread_atexit_impl F
> +GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.2 _Exit F
> GLIBC_2.2 _IO_2_1_stderr_ D 0xe0
> GLIBC_2.2 _IO_2_1_stdin_ D 0xe0
> @@ -2347,6 +2348,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
> GLIBC_2.34 pthread_rwlockattr_init F
> GLIBC_2.34 pthread_rwlockattr_setkind_np F
> GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setattr_default_np F
> GLIBC_2.34 pthread_setspecific F
> GLIBC_2.34 pthread_spin_destroy F
> GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index f442fdf645..bc230f7020 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -1572,6 +1572,7 @@ GLIBC_2.21 pthread_rwlockattr_init F
> GLIBC_2.21 pthread_rwlockattr_setkind_np F
> GLIBC_2.21 pthread_rwlockattr_setpshared F
> GLIBC_2.21 pthread_self F
> +GLIBC_2.21 pthread_setattr_default_np F
> GLIBC_2.21 pthread_setcancelstate F
> GLIBC_2.21 pthread_setcanceltype F
> GLIBC_2.21 pthread_setschedparam F
> @@ -2397,6 +2398,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
> GLIBC_2.34 pthread_rwlockattr_init F
> GLIBC_2.34 pthread_rwlockattr_setkind_np F
> GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setattr_default_np F
> GLIBC_2.34 pthread_setspecific F
> GLIBC_2.34 pthread_spin_destroy F
> GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> index 059b21f854..502268cbd5 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> @@ -27,7 +27,6 @@ GLIBC_2.21 pthread_getcpuclockid F
> GLIBC_2.21 pthread_getname_np F
> GLIBC_2.21 pthread_join F
> GLIBC_2.21 pthread_setaffinity_np F
> -GLIBC_2.21 pthread_setattr_default_np F
> GLIBC_2.21 pthread_setconcurrency F
> GLIBC_2.21 pthread_setname_np F
> GLIBC_2.21 pthread_setschedprio F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index 0e3d3a3648..0e384dd37e 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -1818,6 +1818,7 @@ GLIBC_2.17 clock_nanosleep F
> GLIBC_2.17 clock_settime F
> GLIBC_2.17 secure_getenv F
> GLIBC_2.18 __cxa_thread_atexit_impl F
> +GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.2 _IO_adjust_wcolumn F
> GLIBC_2.2 _IO_fgetpos F
> GLIBC_2.2 _IO_fgetpos64 F
> @@ -2411,6 +2412,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
> GLIBC_2.34 pthread_rwlockattr_init F
> GLIBC_2.34 pthread_rwlockattr_setkind_np F
> GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setattr_default_np F
> GLIBC_2.34 pthread_setspecific F
> GLIBC_2.34 pthread_spin_destroy F
> GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> index 84312f522b..c2ac178742 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> @@ -24,7 +24,6 @@ GLIBC_2.11 pthread_sigqueue F
> GLIBC_2.12 pthread_getname_np F
> GLIBC_2.12 pthread_setname_np F
> GLIBC_2.18 pthread_getattr_default_np F
> -GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.2 pthread_attr_getstack F
> GLIBC_2.2 pthread_attr_setstack F
> GLIBC_2.2 pthread_getcpuclockid F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index a14c3c9531..dac4a03938 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -1818,6 +1818,7 @@ GLIBC_2.17 clock_nanosleep F
> GLIBC_2.17 clock_settime F
> GLIBC_2.17 secure_getenv F
> GLIBC_2.18 __cxa_thread_atexit_impl F
> +GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.19 __atomic_feclearexcept F
> GLIBC_2.19 __atomic_feholdexcept F
> GLIBC_2.19 __atomic_feupdateenv F
> @@ -2444,6 +2445,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
> GLIBC_2.34 pthread_rwlockattr_init F
> GLIBC_2.34 pthread_rwlockattr_setkind_np F
> GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setattr_default_np F
> GLIBC_2.34 pthread_setspecific F
> GLIBC_2.34 pthread_spin_destroy F
> GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index 513df99b4d..6a8958d5a8 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -75,6 +75,7 @@ GLIBC_2.17 clock_nanosleep F
> GLIBC_2.17 clock_settime F
> GLIBC_2.17 secure_getenv F
> GLIBC_2.18 __cxa_thread_atexit_impl F
> +GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.22 fmemopen F
> GLIBC_2.23 fts64_children F
> GLIBC_2.23 fts64_close F
> @@ -2259,6 +2260,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
> GLIBC_2.34 pthread_rwlockattr_init F
> GLIBC_2.34 pthread_rwlockattr_setkind_np F
> GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setattr_default_np F
> GLIBC_2.34 pthread_setspecific F
> GLIBC_2.34 pthread_spin_destroy F
> GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> index 2d5583ebe8..89b4083cf4 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> @@ -2,7 +2,6 @@ GLIBC_2.11 pthread_sigqueue F
> GLIBC_2.12 pthread_getname_np F
> GLIBC_2.12 pthread_setname_np F
> GLIBC_2.18 pthread_getattr_default_np F
> -GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.28 thrd_create F
> GLIBC_2.28 thrd_detach F
> GLIBC_2.28 thrd_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 e271e61128..16f4d90871 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -2266,6 +2266,7 @@ GLIBC_2.17 xencrypt F
> GLIBC_2.17 xprt_register F
> GLIBC_2.17 xprt_unregister F
> GLIBC_2.18 __cxa_thread_atexit_impl F
> +GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.22 fmemopen F
> GLIBC_2.23 fts64_children F
> GLIBC_2.23 fts64_close F
> @@ -2560,6 +2561,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
> GLIBC_2.34 pthread_rwlockattr_init F
> GLIBC_2.34 pthread_rwlockattr_setkind_np F
> GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setattr_default_np F
> GLIBC_2.34 pthread_setspecific F
> GLIBC_2.34 pthread_spin_destroy F
> GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> index b4f0fdd999..f09c6d434a 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> @@ -33,7 +33,6 @@ GLIBC_2.17 pthread_sigqueue F
> GLIBC_2.17 pthread_timedjoin_np F
> GLIBC_2.17 pthread_tryjoin_np F
> GLIBC_2.18 pthread_getattr_default_np F
> -GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.28 thrd_create F
> GLIBC_2.28 thrd_detach F
> GLIBC_2.28 thrd_join F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index c883de1279..876ed3d11f 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -1472,6 +1472,7 @@ GLIBC_2.33 pthread_rwlockattr_init F
> GLIBC_2.33 pthread_rwlockattr_setkind_np F
> GLIBC_2.33 pthread_rwlockattr_setpshared F
> GLIBC_2.33 pthread_self F
> +GLIBC_2.33 pthread_setattr_default_np F
> GLIBC_2.33 pthread_setcancelstate F
> GLIBC_2.33 pthread_setcanceltype F
> GLIBC_2.33 pthread_setschedparam F
> @@ -2125,6 +2126,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
> GLIBC_2.34 pthread_rwlockattr_init F
> GLIBC_2.34 pthread_rwlockattr_setkind_np F
> GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setattr_default_np F
> GLIBC_2.34 pthread_setspecific F
> GLIBC_2.34 pthread_spin_destroy F
> GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> index cc35881f1a..d6f50be603 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> @@ -28,7 +28,6 @@ GLIBC_2.33 pthread_getcpuclockid F
> GLIBC_2.33 pthread_getname_np F
> GLIBC_2.33 pthread_join F
> GLIBC_2.33 pthread_setaffinity_np F
> -GLIBC_2.33 pthread_setattr_default_np F
> GLIBC_2.33 pthread_setconcurrency F
> GLIBC_2.33 pthread_setname_np F
> GLIBC_2.33 pthread_setschedprio F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index a8202f95cd..ec2dbc5f6c 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -1517,6 +1517,7 @@ GLIBC_2.27 pthread_rwlockattr_init F
> GLIBC_2.27 pthread_rwlockattr_setkind_np F
> GLIBC_2.27 pthread_rwlockattr_setpshared F
> GLIBC_2.27 pthread_self F
> +GLIBC_2.27 pthread_setattr_default_np F
> GLIBC_2.27 pthread_setcancelstate F
> GLIBC_2.27 pthread_setcanceltype F
> GLIBC_2.27 pthread_setschedparam F
> @@ -2325,6 +2326,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
> GLIBC_2.34 pthread_rwlockattr_init F
> GLIBC_2.34 pthread_rwlockattr_setkind_np F
> GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setattr_default_np F
> GLIBC_2.34 pthread_setspecific F
> GLIBC_2.34 pthread_spin_destroy F
> GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> index 6946ced1b9..240dfc6c9a 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> @@ -27,7 +27,6 @@ GLIBC_2.27 pthread_getcpuclockid F
> GLIBC_2.27 pthread_getname_np F
> GLIBC_2.27 pthread_join F
> GLIBC_2.27 pthread_setaffinity_np F
> -GLIBC_2.27 pthread_setattr_default_np F
> GLIBC_2.27 pthread_setconcurrency F
> GLIBC_2.27 pthread_setname_np F
> GLIBC_2.27 pthread_setschedprio F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index d63e9a2139..d1bc174497 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -1808,6 +1808,7 @@ GLIBC_2.17 clock_nanosleep F
> GLIBC_2.17 clock_settime F
> GLIBC_2.17 secure_getenv F
> GLIBC_2.18 __cxa_thread_atexit_impl F
> +GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.19 __longjmp_chk F
> GLIBC_2.19 __sigsetjmp F
> GLIBC_2.19 _longjmp F
> @@ -2409,6 +2410,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
> GLIBC_2.34 pthread_rwlockattr_init F
> GLIBC_2.34 pthread_rwlockattr_setkind_np F
> GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setattr_default_np F
> GLIBC_2.34 pthread_setspecific F
> GLIBC_2.34 pthread_spin_destroy F
> GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> index 0c6df4a437..20ee83baca 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> @@ -24,7 +24,6 @@ GLIBC_2.11 pthread_sigqueue F
> GLIBC_2.12 pthread_getname_np F
> GLIBC_2.12 pthread_setname_np F
> GLIBC_2.18 pthread_getattr_default_np F
> -GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.19 __libpthread_version_placeholder F
> GLIBC_2.2 pthread_attr_getstack F
> GLIBC_2.2 pthread_attr_setstack F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index 55cd1e75ce..3771dc652a 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -78,6 +78,7 @@ GLIBC_2.17 clock_nanosleep F
> GLIBC_2.17 clock_settime F
> GLIBC_2.17 secure_getenv F
> GLIBC_2.18 __cxa_thread_atexit_impl F
> +GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.19 __longjmp_chk F
> GLIBC_2.19 __sigsetjmp F
> GLIBC_2.19 _longjmp F
> @@ -2296,6 +2297,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
> GLIBC_2.34 pthread_rwlockattr_init F
> GLIBC_2.34 pthread_rwlockattr_setkind_np F
> GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setattr_default_np F
> GLIBC_2.34 pthread_setspecific F
> GLIBC_2.34 pthread_spin_destroy F
> GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> index d287d8fe7a..35f0b89d66 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> @@ -2,7 +2,6 @@ GLIBC_2.11 pthread_sigqueue F
> GLIBC_2.12 pthread_getname_np F
> GLIBC_2.12 pthread_setname_np F
> GLIBC_2.18 pthread_getattr_default_np F
> -GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.19 __libpthread_version_placeholder F
> GLIBC_2.2 _IO_flockfile F
> GLIBC_2.2 _IO_ftrylockfile F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index 39c4667cb0..6355ca1061 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -78,6 +78,7 @@ GLIBC_2.17 clock_nanosleep F
> GLIBC_2.17 clock_settime F
> GLIBC_2.17 secure_getenv F
> GLIBC_2.18 __cxa_thread_atexit_impl F
> +GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.2 _Exit F
> GLIBC_2.2 _IO_2_1_stderr_ D 0x98
> GLIBC_2.2 _IO_2_1_stdin_ D 0x98
> @@ -2265,6 +2266,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
> GLIBC_2.34 pthread_rwlockattr_init F
> GLIBC_2.34 pthread_rwlockattr_setkind_np F
> GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setattr_default_np F
> GLIBC_2.34 pthread_setspecific F
> GLIBC_2.34 pthread_spin_destroy F
> GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> index 2c4a7041b6..7e7fdfb8cd 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> @@ -2,7 +2,6 @@ GLIBC_2.11 pthread_sigqueue F
> GLIBC_2.12 pthread_getname_np F
> GLIBC_2.12 pthread_setname_np F
> GLIBC_2.18 pthread_getattr_default_np F
> -GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.2 _IO_flockfile F
> GLIBC_2.2 _IO_ftrylockfile F
> GLIBC_2.2 _IO_funlockfile F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index ae7e00cbc4..a1e3c3a93b 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -78,6 +78,7 @@ GLIBC_2.17 clock_nanosleep F
> GLIBC_2.17 clock_settime F
> GLIBC_2.17 secure_getenv F
> GLIBC_2.18 __cxa_thread_atexit_impl F
> +GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.2 _Exit F
> GLIBC_2.2 _IO_2_1_stderr_ D 0x98
> GLIBC_2.2 _IO_2_1_stdin_ D 0x98
> @@ -2262,6 +2263,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
> GLIBC_2.34 pthread_rwlockattr_init F
> GLIBC_2.34 pthread_rwlockattr_setkind_np F
> GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setattr_default_np F
> GLIBC_2.34 pthread_setspecific F
> GLIBC_2.34 pthread_spin_destroy F
> GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> index 2c4a7041b6..7e7fdfb8cd 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> @@ -2,7 +2,6 @@ GLIBC_2.11 pthread_sigqueue F
> GLIBC_2.12 pthread_getname_np F
> GLIBC_2.12 pthread_setname_np F
> GLIBC_2.18 pthread_getattr_default_np F
> -GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.2 _IO_flockfile F
> GLIBC_2.2 _IO_ftrylockfile F
> GLIBC_2.2 _IO_funlockfile F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index 8556de3265..17026a997b 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -1814,6 +1814,7 @@ GLIBC_2.17 clock_nanosleep F
> GLIBC_2.17 clock_settime F
> GLIBC_2.17 secure_getenv F
> GLIBC_2.18 __cxa_thread_atexit_impl F
> +GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.2 _IO_adjust_wcolumn F
> GLIBC_2.2 _IO_fgetpos F
> GLIBC_2.2 _IO_fgetpos64 F
> @@ -2400,6 +2401,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
> GLIBC_2.34 pthread_rwlockattr_init F
> GLIBC_2.34 pthread_rwlockattr_setkind_np F
> GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setattr_default_np F
> GLIBC_2.34 pthread_setspecific F
> GLIBC_2.34 pthread_spin_destroy F
> GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> index c2017537e2..9b2e09a2e4 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> @@ -24,7 +24,6 @@ GLIBC_2.11 pthread_sigqueue F
> GLIBC_2.12 pthread_getname_np F
> GLIBC_2.12 pthread_setname_np F
> GLIBC_2.18 pthread_getattr_default_np F
> -GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.2 pthread_attr_getstack F
> GLIBC_2.2 pthread_attr_setstack F
> GLIBC_2.2 pthread_getcpuclockid F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index d2f08437d1..9dc72e0556 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -83,6 +83,7 @@ GLIBC_2.17 clock_nanosleep F
> GLIBC_2.17 clock_settime F
> GLIBC_2.17 secure_getenv F
> GLIBC_2.18 __cxa_thread_atexit_impl F
> +GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.2 _Exit F
> GLIBC_2.2 _IO_2_1_stderr_ D 0xe0
> GLIBC_2.2 _IO_2_1_stdin_ D 0xe0
> @@ -2313,6 +2314,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
> GLIBC_2.34 pthread_rwlockattr_init F
> GLIBC_2.34 pthread_rwlockattr_setkind_np F
> GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setattr_default_np F
> GLIBC_2.34 pthread_setspecific F
> GLIBC_2.34 pthread_spin_destroy F
> GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> index 6b87a988d4..3460d95267 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> @@ -2,7 +2,6 @@ GLIBC_2.11 pthread_sigqueue F
> GLIBC_2.12 pthread_getname_np F
> GLIBC_2.12 pthread_setname_np F
> GLIBC_2.18 pthread_getattr_default_np F
> -GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.2 _IO_flockfile F
> GLIBC_2.2 _IO_ftrylockfile F
> GLIBC_2.2 _IO_funlockfile F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index f752981203..586aec23cb 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -76,6 +76,7 @@ GLIBC_2.17 clock_nanosleep F
> GLIBC_2.17 clock_settime F
> GLIBC_2.17 secure_getenv F
> GLIBC_2.18 __cxa_thread_atexit_impl F
> +GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.2.5 _Exit F
> GLIBC_2.2.5 _IO_2_1_stderr_ D 0xe0
> GLIBC_2.2.5 _IO_2_1_stdin_ D 0xe0
> @@ -2274,6 +2275,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
> GLIBC_2.34 pthread_rwlockattr_init F
> GLIBC_2.34 pthread_rwlockattr_setkind_np F
> GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setattr_default_np F
> GLIBC_2.34 pthread_setspecific F
> GLIBC_2.34 pthread_spin_destroy F
> GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> index cea092874a..fd77f8a602 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> @@ -2,7 +2,6 @@ GLIBC_2.11 pthread_sigqueue F
> GLIBC_2.12 pthread_getname_np F
> GLIBC_2.12 pthread_setname_np F
> GLIBC_2.18 pthread_getattr_default_np F
> -GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.2.5 _IO_flockfile F
> GLIBC_2.2.5 _IO_ftrylockfile F
> GLIBC_2.2.5 _IO_funlockfile F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index 55f133b0d5..1529b87004 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -2189,6 +2189,7 @@ GLIBC_2.17 clock_nanosleep F
> GLIBC_2.17 clock_settime F
> GLIBC_2.17 secure_getenv F
> GLIBC_2.18 __cxa_thread_atexit_impl F
> +GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.22 fmemopen F
> GLIBC_2.23 fts64_children F
> GLIBC_2.23 fts64_close F
> @@ -2379,6 +2380,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
> GLIBC_2.34 pthread_rwlockattr_init F
> GLIBC_2.34 pthread_rwlockattr_setkind_np F
> GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setattr_default_np F
> GLIBC_2.34 pthread_setspecific F
> GLIBC_2.34 pthread_spin_destroy F
> GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> index 394748f198..ab2ec9227a 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> @@ -33,7 +33,6 @@ GLIBC_2.16 pthread_sigqueue F
> GLIBC_2.16 pthread_timedjoin_np F
> GLIBC_2.16 pthread_tryjoin_np F
> GLIBC_2.18 pthread_getattr_default_np F
> -GLIBC_2.18 pthread_setattr_default_np F
> GLIBC_2.28 thrd_create F
> GLIBC_2.28 thrd_detach F
> GLIBC_2.28 thrd_join F
>
Ok.
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 5/8] nptl: Move stack cache management, __libpthread_freeres into libc
2021-05-10 12:37 ` [PATCH 5/8] nptl: Move stack cache management, __libpthread_freeres " Florian Weimer
@ 2021-05-10 16:45 ` Adhemerval Zanella
2021-05-11 9:29 ` Florian Weimer
0 siblings, 1 reply; 20+ messages in thread
From: Adhemerval Zanella @ 2021-05-10 16:45 UTC (permalink / raw)
To: Florian Weimer, libc-alpha, Carlos O'Donell
On 10/05/2021 09:37, Florian Weimer via Libc-alpha wrote:
> This replaces the FREE_P macro with the __nptl_stack_in_use inline
> function. stack_list_del is renamed to __nptl_stack_list_del,
> stack_list_add to __nptl_stack_list_add, __deallocate_stack to
> __nptl_deallocate_stack, free_stacks to __nptl_free_stacks.
>
> It is convenient to move __libpthread_freeres into libc at the
> same time. This removes the temporary __default_pthread_attr_freeres
> export and restores full freeres coverage for __default_pthread_attr.
LGTM with some small nits below. I still dislike the 'Contributed by'
on *newer* file, so I ccing Carlos.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> ---
> malloc/set-freeres.c | 15 +++--
> nptl/Makefile | 3 +-
> nptl/Versions | 5 +-
> nptl/allocatestack.c | 147 ++----------------------------------------
> nptl/descr.h | 6 ++
> nptl/nptl-stack.c | 130 +++++++++++++++++++++++++++++++++++++
> nptl/nptl-stack.h | 50 ++++++++++++++
> nptl/nptlfreeres.c | 3 +-
> nptl/pthreadP.h | 7 +-
> nptl/pthread_create.c | 4 +-
> 10 files changed, 212 insertions(+), 158 deletions(-)
> create mode 100644 nptl/nptl-stack.c
> create mode 100644 nptl/nptl-stack.h
>
> diff --git a/malloc/set-freeres.c b/malloc/set-freeres.c
> index d404250151..5c19a2725c 100644
> --- a/malloc/set-freeres.c
> +++ b/malloc/set-freeres.c
> @@ -29,7 +29,15 @@ DEFINE_HOOK (__libc_subfreeres, (void));
>
> symbol_set_define (__libc_freeres_ptrs);
>
> -extern __attribute__ ((weak)) void __libpthread_freeres (void);
> +extern void __libpthread_freeres (void)
> +#if PTHREAD_IN_LIBC && defined SHARED
> +/* It is possible to call __libpthread_freeres directly in shared
> + builds with an integrated libpthread. */
> + attribute_hidden
> +#else
> + __attribute__ ((weak))
> +#endif
> + ;
>
> void __libc_freeres_fn_section
> __libc_freeres (void)
> @@ -51,10 +59,7 @@ __libc_freeres (void)
> /* We run the resource freeing after IO cleanup. */
> RUN_HOOK (__libc_subfreeres, ());
>
> - /* Call the libpthread list of cleanup functions
> - (weak-ref-and-check). */
> - if (&__libpthread_freeres != NULL)
> - __libpthread_freeres ();
> + call_function_static_weak (__libpthread_freeres);
>
> #ifdef SHARED
> __libc_unwind_link_freeres ();
Ok.
> diff --git a/nptl/Makefile b/nptl/Makefile
> index 2a18eadf71..3b83817163 100644
> --- a/nptl/Makefile
> +++ b/nptl/Makefile
> @@ -44,9 +44,11 @@ routines = \
> libc_multiple_threads \
> libc_pthread_init \
> lowlevellock \
> + nptl-stack \
> nptl_deallocate_tsd \
> nptl_nthreads \
> nptl_setxid \
> + nptlfreeres \
> old_pthread_atfork \
> old_pthread_cond_broadcast \
> old_pthread_cond_destroy \
> @@ -185,7 +187,6 @@ libpthread-routines = \
> funlockfile \
> libpthread-compat \
> nptl-init \
> - nptlfreeres \
> pt-interp \
> pthread_attr_getaffinity \
> pthread_attr_getguardsize \
Ok.
> diff --git a/nptl/Versions b/nptl/Versions
> index de025e179c..93219d2657 100644
> --- a/nptl/Versions
> +++ b/nptl/Versions
> @@ -303,7 +303,6 @@ libc {
> }
> GLIBC_PRIVATE {
> __default_pthread_attr;
> - __default_pthread_attr_freeres;
> __default_pthread_attr_lock;
> __futex_abstimed_wait64;
> __futex_abstimed_wait_cancelable64;
> @@ -320,9 +319,12 @@ libc {
> __lll_trylock_elision;
> __lll_unlock_elision;
> __mutex_aconf;
> + __nptl_deallocate_stack;
> __nptl_deallocate_tsd;
> __nptl_nthreads;
> __nptl_setxid_sighandler;
> + __nptl_stack_list_add;
> + __nptl_stack_list_del;
> __pthread_attr_copy;
> __pthread_attr_destroy;
> __pthread_attr_init;
> @@ -459,7 +461,6 @@ libpthread {
> }
>
> GLIBC_PRIVATE {
> - __libpthread_freeres;
> __pthread_clock_gettime;
> __pthread_clock_settime;
> __pthread_get_minstack;
OK.
> diff --git a/nptl/allocatestack.c b/nptl/allocatestack.c
> index 8672e89e75..c0a5c4d96d 100644
> --- a/nptl/allocatestack.c
> +++ b/nptl/allocatestack.c
> @@ -31,7 +31,7 @@
> #include <lowlevellock.h>
> #include <futex-internal.h>
> #include <kernel-features.h>
> -
> +#include <nptl-stack.h>
>
> #ifndef NEED_SEPARATE_REGISTER_STACK
>
> @@ -92,56 +92,6 @@
> # define MAP_STACK 0
> #endif
>
> -/* This yields the pointer that TLS support code calls the thread pointer. */
> -#if TLS_TCB_AT_TP
> -# define TLS_TPADJ(pd) (pd)
> -#elif TLS_DTV_AT_TP
> -# define TLS_TPADJ(pd) ((struct pthread *)((char *) (pd) + TLS_PRE_TCB_SIZE))
> -#endif
> -
> -/* Cache handling for not-yet free stacks. */
> -
> -/* Maximum size in kB of cache. */
> -static size_t stack_cache_maxsize = 40 * 1024 * 1024; /* 40MiBi by default. */
> -
> -/* Check whether the stack is still used or not. */
> -#define FREE_P(descr) ((descr)->tid <= 0)
> -
> -
> -static void
> -stack_list_del (list_t *elem)
> -{
> - GL (dl_in_flight_stack) = (uintptr_t) elem;
> -
> - atomic_write_barrier ();
> -
> - list_del (elem);
> -
> - atomic_write_barrier ();
> -
> - GL (dl_in_flight_stack) = 0;
> -}
> -
> -
> -static void
> -stack_list_add (list_t *elem, list_t *list)
> -{
> - GL (dl_in_flight_stack) = (uintptr_t) elem | 1;
> -
> - atomic_write_barrier ();
> -
> - list_add (elem, list);
> -
> - atomic_write_barrier ();
> -
> - GL (dl_in_flight_stack) = 0;
> -}
> -
> -
> -/* We create a double linked list of all cache entries. Double linked
> - because this allows removing entries from the end. */
> -
> -
> /* Get a stack frame from the cache. We have to match by size since
> some blocks might be too small or far too large. */
> static struct pthread *
Ok.
> @@ -164,7 +114,7 @@ get_cached_stack (size_t *sizep, void **memp)
> struct pthread *curr;
>
> curr = list_entry (entry, struct pthread, list);
> - if (FREE_P (curr) && curr->stackblock_size >= size)
> + if (__nptl_stack_in_use (curr) && curr->stackblock_size >= size)
> {
> if (curr->stackblock_size == size)
> {
Ok.
> @@ -193,10 +143,10 @@ get_cached_stack (size_t *sizep, void **memp)
> result->setxid_futex = -1;
>
> /* Dequeue the entry. */
> - stack_list_del (&result->list);
> + __nptl_stack_list_del (&result->list);
>
> /* And add to the list of stacks in use. */
> - stack_list_add (&result->list, &GL (dl_stack_used));
> + __nptl_stack_list_add (&result->list, &GL (dl_stack_used));
>
> /* And decrease the cache size. */
> GL (dl_stack_cache_actsize) -= result->stackblock_size;
Ok.
> @@ -229,68 +179,6 @@ get_cached_stack (size_t *sizep, void **memp)
> return result;
> }
>
> -
> -/* Free stacks until cache size is lower than LIMIT. */
> -static void
> -free_stacks (size_t limit)
> -{
> - /* We reduce the size of the cache. Remove the last entries until
> - the size is below the limit. */
> - list_t *entry;
> - list_t *prev;
> -
> - /* Search from the end of the list. */
> - list_for_each_prev_safe (entry, prev, &GL (dl_stack_cache))
> - {
> - struct pthread *curr;
> -
> - curr = list_entry (entry, struct pthread, list);
> - if (FREE_P (curr))
> - {
> - /* Unlink the block. */
> - stack_list_del (entry);
> -
> - /* Account for the freed memory. */
> - GL (dl_stack_cache_actsize) -= curr->stackblock_size;
> -
> - /* Free the memory associated with the ELF TLS. */
> - _dl_deallocate_tls (TLS_TPADJ (curr), false);
> -
> - /* Remove this block. This should never fail. If it does
> - something is really wrong. */
> - if (__munmap (curr->stackblock, curr->stackblock_size) != 0)
> - abort ();
> -
> - /* Maybe we have freed enough. */
> - if (GL (dl_stack_cache_actsize) <= limit)
> - break;
> - }
> - }
> -}
> -
> -/* Free all the stacks on cleanup. */
> -void
> -__nptl_stacks_freeres (void)
> -{
> - free_stacks (0);
> -}
> -
> -/* Add a stack frame which is not used anymore to the stack. Must be
> - called with the cache lock held. */
> -static inline void
> -__attribute ((always_inline))
> -queue_stack (struct pthread *stack)
> -{
> - /* We unconditionally add the stack to the list. The memory may
> - still be in use but it will not be reused until the kernel marks
> - the stack as not used anymore. */
> - stack_list_add (&stack->list, &GL (dl_stack_cache));
> -
> - GL (dl_stack_cache_actsize) += stack->stackblock_size;
> - if (__glibc_unlikely (GL (dl_stack_cache_actsize) > stack_cache_maxsize))
> - free_stacks (stack_cache_maxsize);
> -}
> -
> /* Return the guard page position on allocated stack. */
> static inline char *
> __attribute ((always_inline))
Ok.
> @@ -588,7 +476,7 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp,
> lll_lock (GL (dl_stack_cache_lock), LLL_PRIVATE);
>
> /* And add to the list of stacks in use. */
> - stack_list_add (&pd->list, &GL (dl_stack_used));
> + __nptl_stack_list_add (&pd->list, &GL (dl_stack_used));
>
> lll_unlock (GL (dl_stack_cache_lock), LLL_PRIVATE);
>
> @@ -630,7 +518,7 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp,
> lll_lock (GL (dl_stack_cache_lock), LLL_PRIVATE);
>
> /* Remove the thread from the list. */
> - stack_list_del (&pd->list);
> + __nptl_stack_list_del (&pd->list);
>
> lll_unlock (GL (dl_stack_cache_lock), LLL_PRIVATE);
>
Ok.
> @@ -731,26 +619,3 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp,
>
> return 0;
> }
> -
> -
> -void
> -__deallocate_stack (struct pthread *pd)
> -{
> - lll_lock (GL (dl_stack_cache_lock), LLL_PRIVATE);
> -
> - /* Remove the thread from the list of threads with user defined
> - stacks. */
> - stack_list_del (&pd->list);
> -
> - /* Not much to do. Just free the mmap()ed memory. Note that we do
> - not reset the 'used' flag in the 'tid' field. This is done by
> - the kernel. If no thread has been created yet this field is
> - still zero. */
> - if (__glibc_likely (! pd->user_stack))
> - (void) queue_stack (pd);
> - else
> - /* Free the memory associated with the ELF TLS. */
> - _dl_deallocate_tls (TLS_TPADJ (pd), false);
> -
> - lll_unlock (GL (dl_stack_cache_lock), LLL_PRIVATE);
> -}
Ok.
> diff --git a/nptl/descr.h b/nptl/descr.h
> index d423a53bbf..3de9535449 100644
> --- a/nptl/descr.h
> +++ b/nptl/descr.h
> @@ -416,5 +416,11 @@ struct pthread
> (sizeof (struct pthread) - offsetof (struct pthread, end_padding))
> } __attribute ((aligned (TCB_ALIGNMENT)));
>
> +/* This yields the pointer that TLS support code calls the thread pointer. */
> +#if TLS_TCB_AT_TP
> +# define TLS_TPADJ(pd) (pd)
> +#elif TLS_DTV_AT_TP
> +# define TLS_TPADJ(pd) ((struct pthread *)((char *) (pd) + TLS_PRE_TCB_SIZE))
> +#endif
>
> #endif /* descr.h */
Ok.
> diff --git a/nptl/nptl-stack.c b/nptl/nptl-stack.c
> new file mode 100644
> index 0000000000..5ead9db198
> --- /dev/null
> +++ b/nptl/nptl-stack.c
> @@ -0,0 +1,130 @@
> +/* Stack cache management for NPTL.
> + Copyright (C) 2002-2021 Free Software Foundation, Inc.
> + This file is part of the GNU C Library.
> + Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
I am aware about your reservation about removing the 'Contributed by' removal,
but I think for *newer* files it should *not* be included.
> +
> + The GNU C Library is free software; you can redistribute it and/or
> + modify it under the terms of the GNU Lesser General Public
> + License as published by the Free Software Foundation; either
> + version 2.1 of the License, or (at your option) any later version.
> +
> + The GNU C Library is distributed in the hope that it will be useful,
> + but WITHOUT ANY WARRANTY; without even the implied warranty of
> + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> + Lesser General Public License for more details.
> +
> + You should have received a copy of the GNU Lesser General Public
> + License along with the GNU C Library; if not, see
> + <https://www.gnu.org/licenses/>. */
> +
> +#include <nptl-stack.h>
> +#include <ldsodefs.h>
> +
> +/* Maximum size in kB of cache. */
> +static size_t stack_cache_maxsize = 40 * 1024 * 1024; /* 40MiBi by default. */
This line seems to be too long.
> +
> +void
> +__nptl_stack_list_del (list_t *elem)
> +{
> + GL (dl_in_flight_stack) = (uintptr_t) elem;
> +
> + atomic_write_barrier ();
> +
> + list_del (elem);
> +
> + atomic_write_barrier ();
> +
> + GL (dl_in_flight_stack) = 0;
> +}
> +libc_hidden_def (__nptl_stack_list_del)
> +
> +void
> +__nptl_stack_list_add (list_t *elem, list_t *list)
> +{
> + GL (dl_in_flight_stack) = (uintptr_t) elem | 1;
> +
> + atomic_write_barrier ();
> +
> + list_add (elem, list);
> +
> + atomic_write_barrier ();
> +
> + GL (dl_in_flight_stack) = 0;
> +}
> +libc_hidden_def (__nptl_stack_list_add)
> +
> +void
> +__nptl_free_stacks (size_t limit)
> +{
> + /* We reduce the size of the cache. Remove the last entries until
> + the size is below the limit. */
> + list_t *entry;
> + list_t *prev;
> +
> + /* Search from the end of the list. */
> + list_for_each_prev_safe (entry, prev, &GL (dl_stack_cache))
> + {
> + struct pthread *curr;
> +
> + curr = list_entry (entry, struct pthread, list);
> + if (__nptl_stack_in_use (curr))
> + {
> + /* Unlink the block. */
> + __nptl_stack_list_del (entry);
> +
> + /* Account for the freed memory. */
> + GL (dl_stack_cache_actsize) -= curr->stackblock_size;
> +
> + /* Free the memory associated with the ELF TLS. */
> + _dl_deallocate_tls (TLS_TPADJ (curr), false);
> +
> + /* Remove this block. This should never fail. If it does
> + something is really wrong. */
> + if (__munmap (curr->stackblock, curr->stackblock_size) != 0)
> + abort ();
> +
> + /* Maybe we have freed enough. */
> + if (GL (dl_stack_cache_actsize) <= limit)
> + break;
> + }
> + }
> +}
> +
> +/* Add a stack frame which is not used anymore to the stack. Must be
> + called with the cache lock held. */
> +static inline void
> +__attribute ((always_inline))
> +queue_stack (struct pthread *stack)
> +{
> + /* We unconditionally add the stack to the list. The memory may
> + still be in use but it will not be reused until the kernel marks
> + the stack as not used anymore. */
> + __nptl_stack_list_add (&stack->list, &GL (dl_stack_cache));
> +
> + GL (dl_stack_cache_actsize) += stack->stackblock_size;
> + if (__glibc_unlikely (GL (dl_stack_cache_actsize) > stack_cache_maxsize))
> + __nptl_free_stacks (stack_cache_maxsize);
> +}
> +
> +void
> +__nptl_deallocate_stack (struct pthread *pd)
> +{
> + lll_lock (GL (dl_stack_cache_lock), LLL_PRIVATE);
> +
> + /* Remove the thread from the list of threads with user defined
> + stacks. */
> + __nptl_stack_list_del (&pd->list);
> +
> + /* Not much to do. Just free the mmap()ed memory. Note that we do
> + not reset the 'used' flag in the 'tid' field. This is done by
> + the kernel. If no thread has been created yet this field is
> + still zero. */
> + if (__glibc_likely (! pd->user_stack))
> + (void) queue_stack (pd);
> + else
> + /* Free the memory associated with the ELF TLS. */
> + _dl_deallocate_tls (TLS_TPADJ (pd), false);
> +
> + lll_unlock (GL (dl_stack_cache_lock), LLL_PRIVATE);
> +}
> +libc_hidden_def (__nptl_deallocate_stack)
Ok.
> diff --git a/nptl/nptl-stack.h b/nptl/nptl-stack.h
> new file mode 100644
> index 0000000000..8631b61816
> --- /dev/null
> +++ b/nptl/nptl-stack.h
> @@ -0,0 +1,50 @@
> +/* Stack cache management for NPTL.
> + Copyright (C) 2002-2021 Free Software Foundation, Inc.
> + This file is part of the GNU C Library.
> + Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
Same as before.
> +
> + The GNU C Library is free software; you can redistribute it and/or
> + modify it under the terms of the GNU Lesser General Public
> + License as published by the Free Software Foundation; either
> + version 2.1 of the License, or (at your option) any later version.
> +
> + The GNU C Library is distributed in the hope that it will be useful,
> + but WITHOUT ANY WARRANTY; without even the implied warranty of
> + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> + Lesser General Public License for more details.
> +
> + You should have received a copy of the GNU Lesser General Public
> + License along with the GNU C Library; if not, see
> + <https://www.gnu.org/licenses/>. */
> +
> +#ifndef _NPTL_STACK_H
> +#define _NPTL_STACK_H
> +
> +#include <descr.h>
> +#include <list.h>
> +#include <stdbool.h>
> +
> +/* Check whether the stack is still used or not. */
> +static inline bool
> +__nptl_stack_in_use (struct pthread *pd)
> +{
> + return pd->tid <= 0;
> +}
> +
> +/* Remove the stack ELEM from its list. */
> +void __nptl_stack_list_del (list_t *elem);
> +libc_hidden_proto (__nptl_stack_list_del)
> +
> +/* Add ELEM to a stack list. LIST can be either &GL (dl_stack_used)
> + or &GL (dl_stack_cache). */
> +void __nptl_stack_list_add (list_t *elem, list_t *list);
> +libc_hidden_proto (__nptl_stack_list_add)
> +
> +/* Free allocated stack. */
> +extern void __nptl_deallocate_stack (struct pthread *pd);
> +libc_hidden_proto (__nptl_deallocate_stack)
> +
> +/* Free stacks until cache size is lower than LIMIT. */
> +void __nptl_free_stacks (size_t limit) attribute_hidden;
> +
> +#endif /* _NPTL_STACK_H */
Ok.
> diff --git a/nptl/nptlfreeres.c b/nptl/nptlfreeres.c
> index 4833f04714..527b5ee103 100644
> --- a/nptl/nptlfreeres.c
> +++ b/nptl/nptlfreeres.c
> @@ -19,6 +19,7 @@
> #include <set-hooks.h>
> #include <libc-symbols.h>
> #include <pthreadP.h>
> +#include <nptl-stack.h>
>
> /* Free libpthread.so resources.
> Note: Caller ensures we are called only once. */
> @@ -26,5 +27,5 @@ void
> __libpthread_freeres (void)
> {
> call_function_static_weak (__default_pthread_attr_freeres);
> - call_function_static_weak (__nptl_stacks_freeres);
> + __nptl_free_stacks (0);
> }
Ok.
> diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
> index 8466332248..505d0f00ff 100644
> --- a/nptl/pthreadP.h
> +++ b/nptl/pthreadP.h
> @@ -203,7 +203,7 @@ libc_hidden_proto (__default_pthread_attr)
> extern int __default_pthread_attr_lock;
> libc_hidden_proto (__default_pthread_attr_lock)
> /* Called from __libc_freeres to deallocate the default attribute. */
> -extern void __default_pthread_attr_freeres (void);
> +extern void __default_pthread_attr_freeres (void) attribute_hidden;
>
> /* Size and alignment of static TLS block. */
> extern size_t __static_tls_size attribute_hidden;
> @@ -314,9 +314,6 @@ __do_cancel (void)
> descriptor is still valid. */
> extern void __free_tcb (struct pthread *pd) attribute_hidden;
>
> -/* Free allocated stack. */
> -extern void __deallocate_stack (struct pthread *pd) attribute_hidden;
> -
> /* Change the permissions of a thread stack. Called from
> _dl_make_stacks_executable and pthread_create. */
> int
> @@ -679,8 +676,6 @@ void __nptl_setxid_sighandler (int sig, siginfo_t *si, void *ctx);
> libc_hidden_proto (__nptl_setxid_sighandler)
> extern int __nptl_setxid (struct xid_command *cmdp) attribute_hidden;
>
> -extern void __nptl_stacks_freeres (void) attribute_hidden;
> -
> extern void __wait_lookup_done (void) attribute_hidden;
>
> /* Allocates the extension space for ATTR. Returns an error code on
Ok.
> diff --git a/nptl/pthread_create.c b/nptl/pthread_create.c
> index d19456d48b..fcaf440bb5 100644
> --- a/nptl/pthread_create.c
> +++ b/nptl/pthread_create.c
> @@ -228,7 +228,7 @@ __free_tcb (struct pthread *pd)
> /* Queue the stack memory block for reuse and exit the process. The
> kernel will signal via writing to the address returned by
> QUEUE-STACK when the stack is available. */
> - __deallocate_stack (pd);
> + __nptl_deallocate_stack (pd);
> }
> }
>
> @@ -711,7 +711,7 @@ __pthread_create_2_1 (pthread_t *newthread, const pthread_attr_t *attr,
> futex_wake (&pd->setxid_futex, 1, FUTEX_PRIVATE);
>
> /* Free the resources. */
> - __deallocate_stack (pd);
> + __nptl_deallocate_stack (pd);
> }
>
> /* We have to translate error codes. */
>
OK.
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 6/8] nptl: Move __free_tcb into libc
2021-05-10 12:38 ` [PATCH 6/8] nptl: Move __free_tcb " Florian Weimer
@ 2021-05-10 16:49 ` Adhemerval Zanella
2021-05-11 9:30 ` Florian Weimer
0 siblings, 1 reply; 20+ messages in thread
From: Adhemerval Zanella @ 2021-05-10 16:49 UTC (permalink / raw)
To: libc-alpha, Florian Weimer
On 10/05/2021 09:38, Florian Weimer via Libc-alpha wrote:
> Under the name __nptl_free_tcb.
LGTM (the 'Contribute-by' is not a blocker, so we can follow up on the
previous patch).
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> ---
> nptl/Makefile | 1 +
> nptl/Versions | 1 +
> nptl/nptl_free_tcb.c | 46 ++++++++++++++++++++++++++++++++++++++
> nptl/pthreadP.h | 3 ++-
> nptl/pthread_create.c | 27 +---------------------
> nptl/pthread_detach.c | 2 +-
> nptl/pthread_join_common.c | 2 +-
> 7 files changed, 53 insertions(+), 29 deletions(-)
> create mode 100644 nptl/nptl_free_tcb.c
>
> diff --git a/nptl/Makefile b/nptl/Makefile
> index 3b83817163..82dc6f466d 100644
> --- a/nptl/Makefile
> +++ b/nptl/Makefile
> @@ -46,6 +46,7 @@ routines = \
> lowlevellock \
> nptl-stack \
> nptl_deallocate_tsd \
> + nptl_free_tcb \
> nptl_nthreads \
> nptl_setxid \
> nptlfreeres \
Ok.
> diff --git a/nptl/Versions b/nptl/Versions
> index 93219d2657..da610a4803 100644
> --- a/nptl/Versions
> +++ b/nptl/Versions
> @@ -321,6 +321,7 @@ libc {
> __mutex_aconf;
> __nptl_deallocate_stack;
> __nptl_deallocate_tsd;
> + __nptl_free_tcb;
> __nptl_nthreads;
> __nptl_setxid_sighandler;
> __nptl_stack_list_add;
Ok.
> diff --git a/nptl/nptl_free_tcb.c b/nptl/nptl_free_tcb.c
> new file mode 100644
> index 0000000000..65c4d3bfa7
> --- /dev/null
> +++ b/nptl/nptl_free_tcb.c
> @@ -0,0 +1,46 @@
> +/* TCB deallocation for NPTL.
> + Copyright (C) 2002-2021 Free Software Foundation, Inc.
> + This file is part of the GNU C Library.
> + Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
> +
> + The GNU C Library is free software; you can redistribute it and/or
> + modify it under the terms of the GNU Lesser General Public
> + License as published by the Free Software Foundation; either
> + version 2.1 of the License, or (at your option) any later version.
> +
> + The GNU C Library is distributed in the hope that it will be useful,
> + but WITHOUT ANY WARRANTY; without even the implied warranty of
> + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> + Lesser General Public License for more details.
> +
> + You should have received a copy of the GNU Lesser General Public
> + License along with the GNU C Library; if not, see
> + <https://www.gnu.org/licenses/>. */
> +
> +#include <nptl-stack.h>
> +#include <pthreadP.h>
> +#include <stdlib.h>
> +
> +void
> +__nptl_free_tcb (struct pthread *pd)
> +{
> + /* The thread is exiting now. */
> + if (__builtin_expect (atomic_bit_test_set (&pd->cancelhandling,
> + TERMINATED_BIT) == 0, 1))
Maybe use __glibc_likely here or just remove it, since it does not make
to use in this short function.
> + {
> + /* Free TPP data. */
> + if (__glibc_unlikely (pd->tpp != NULL))
Same here, the loop is short enough that it should not matter.
> + {
> + struct priority_protection_data *tpp = pd->tpp;
> +
> + pd->tpp = NULL;
> + free (tpp);
> + }
> +
> + /* Queue the stack memory block for reuse and exit the process. The
> + kernel will signal via writing to the address returned by
> + QUEUE-STACK when the stack is available. */
> + __nptl_deallocate_stack (pd);
> + }
> +}
> +libc_hidden_def (__nptl_free_tcb)
> diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
> index 505d0f00ff..d580f71a38 100644
> --- a/nptl/pthreadP.h
> +++ b/nptl/pthreadP.h
> @@ -312,7 +312,8 @@ __do_cancel (void)
>
> /* Deallocate a thread's stack after optionally making sure the thread
> descriptor is still valid. */
> -extern void __free_tcb (struct pthread *pd) attribute_hidden;
> +extern void __nptl_free_tcb (struct pthread *pd);
> +libc_hidden_proto (__nptl_free_tcb)
>
> /* Change the permissions of a thread stack. Called from
> _dl_make_stacks_executable and pthread_create. */
Ok.
> diff --git a/nptl/pthread_create.c b/nptl/pthread_create.c
> index fcaf440bb5..770656453d 100644
> --- a/nptl/pthread_create.c
> +++ b/nptl/pthread_create.c
> @@ -207,31 +207,6 @@ static int create_thread (struct pthread *pd, const struct pthread_attr *attr,
>
> #include <createthread.c>
>
> -/* Deallocate a thread's stack after optionally making sure the thread
> - descriptor is still valid. */
> -void
> -__free_tcb (struct pthread *pd)
> -{
> - /* The thread is exiting now. */
> - if (__builtin_expect (atomic_bit_test_set (&pd->cancelhandling,
> - TERMINATED_BIT) == 0, 1))
> - {
> - /* Free TPP data. */
> - if (__glibc_unlikely (pd->tpp != NULL))
> - {
> - struct priority_protection_data *tpp = pd->tpp;
> -
> - pd->tpp = NULL;
> - free (tpp);
> - }
> -
> - /* Queue the stack memory block for reuse and exit the process. The
> - kernel will signal via writing to the address returned by
> - QUEUE-STACK when the stack is available. */
> - __nptl_deallocate_stack (pd);
> - }
> -}
> -
> /* Local function to start thread and handle cleanup.
> createthread.c defines the macro START_THREAD_DEFN to the
> declaration that its create_thread function will refer to, and
Ok.
> @@ -444,7 +419,7 @@ START_THREAD_DEFN
> /* If the thread is detached free the TCB. */
> if (IS_DETACHED (pd))
> /* Free the TCB. */
> - __free_tcb (pd);
> + __nptl_free_tcb (pd);
>
> /* We cannot call '_exit' here. '_exit' will terminate the process.
>
Ok.
> diff --git a/nptl/pthread_detach.c b/nptl/pthread_detach.c
> index 57293ec950..410255bbe1 100644
> --- a/nptl/pthread_detach.c
> +++ b/nptl/pthread_detach.c
> @@ -49,7 +49,7 @@ __pthread_detach (pthread_t th)
> if ((pd->cancelhandling & EXITING_BITMASK) != 0)
> /* Note that the code in __free_tcb makes sure each thread
> control block is freed only once. */
> - __free_tcb (pd);
> + __nptl_free_tcb (pd);
>
> return result;
> }
Ok.
> diff --git a/nptl/pthread_join_common.c b/nptl/pthread_join_common.c
> index a99c26e27e..e87801b5a3 100644
> --- a/nptl/pthread_join_common.c
> +++ b/nptl/pthread_join_common.c
> @@ -122,7 +122,7 @@ __pthread_clockjoin_ex (pthread_t threadid, void **thread_return,
> *thread_return = pd_result;
>
> /* Free the TCB. */
> - __free_tcb (pd);
> + __nptl_free_tcb (pd);
> }
> else
> pd->joinid = NULL;
>
Ok.
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 7/8] nptl: Move pthread_detach, thrd_detach into libc
2021-05-10 12:38 ` [PATCH 7/8] nptl: Move pthread_detach, thrd_detach " Florian Weimer
@ 2021-05-10 16:56 ` Adhemerval Zanella
0 siblings, 0 replies; 20+ messages in thread
From: Adhemerval Zanella @ 2021-05-10 16:56 UTC (permalink / raw)
To: libc-alpha
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.
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 8/8] nptl: Move thread join functions into libc
2021-05-10 12:42 ` [PATCH 8/8] nptl: Move thread join functions " Florian Weimer
@ 2021-05-10 16:58 ` Adhemerval Zanella
0 siblings, 0 replies; 20+ messages in thread
From: Adhemerval Zanella @ 2021-05-10 16:58 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 10/05/2021 09:42, Florian Weimer via Libc-alpha wrote:
> The symbols pthread_clockjoin_np, pthread_join, pthread_timedjoin_np,
> pthread_tryjoin_np, thrd_join were moved using
> scripts/move-symbol-to-libc.py.
>
> Moving the symbols at the same time avoids the need for temporary
> exports.
LGTM, thanks.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> ---
> nptl/Makefile | 10 +++----
> nptl/Versions | 18 +++++++++----
> nptl/libpthread-compat.c | 5 ++++
> nptl/pthreadP.h | 5 ++--
> nptl/pthread_clockjoin.c | 27 ++++++++++++-------
> nptl/pthread_join.c | 13 +++++++--
> nptl/pthread_timedjoin.c | 22 ++++++++++-----
> nptl/pthread_tryjoin.c | 8 +++++-
> sysdeps/pthread/Makefile | 3 ++-
> sysdeps/pthread/thrd_join.c | 11 +++++++-
> sysdeps/unix/sysv/linux/aarch64/libc.abilist | 10 +++++++
> .../sysv/linux/aarch64/libpthread.abilist | 6 +----
> sysdeps/unix/sysv/linux/alpha/libc.abilist | 10 +++++++
> .../unix/sysv/linux/alpha/libpthread.abilist | 6 +----
> sysdeps/unix/sysv/linux/arc/libc.abilist | 10 +++++++
> .../unix/sysv/linux/arc/libpthread.abilist | 5 ----
> sysdeps/unix/sysv/linux/arm/be/libc.abilist | 10 +++++++
> .../unix/sysv/linux/arm/be/libpthread.abilist | 6 +----
> sysdeps/unix/sysv/linux/arm/le/libc.abilist | 10 +++++++
> .../unix/sysv/linux/arm/le/libpthread.abilist | 6 +----
> sysdeps/unix/sysv/linux/csky/libc.abilist | 10 +++++++
> .../unix/sysv/linux/csky/libpthread.abilist | 6 +----
> sysdeps/unix/sysv/linux/hppa/libc.abilist | 10 +++++++
> .../unix/sysv/linux/hppa/libpthread.abilist | 6 +----
> sysdeps/unix/sysv/linux/i386/libc.abilist | 10 +++++++
> .../unix/sysv/linux/i386/libpthread.abilist | 6 +----
> sysdeps/unix/sysv/linux/ia64/libc.abilist | 10 +++++++
> .../unix/sysv/linux/ia64/libpthread.abilist | 6 +----
> .../sysv/linux/m68k/coldfire/libc.abilist | 10 +++++++
> .../linux/m68k/coldfire/libpthread.abilist | 6 +----
> .../unix/sysv/linux/m68k/m680x0/libc.abilist | 10 +++++++
> .../sysv/linux/m68k/m680x0/libpthread.abilist | 6 +----
> .../sysv/linux/microblaze/be/libc.abilist | 10 +++++++
> .../linux/microblaze/be/libpthread.abilist | 6 +----
> .../sysv/linux/microblaze/le/libc.abilist | 10 +++++++
> .../linux/microblaze/le/libpthread.abilist | 6 +----
> .../sysv/linux/mips/mips32/fpu/libc.abilist | 10 +++++++
> .../sysv/linux/mips/mips32/libpthread.abilist | 6 +----
> .../sysv/linux/mips/mips32/nofpu/libc.abilist | 10 +++++++
> .../sysv/linux/mips/mips64/libpthread.abilist | 6 +----
> .../sysv/linux/mips/mips64/n32/libc.abilist | 10 +++++++
> .../sysv/linux/mips/mips64/n64/libc.abilist | 10 +++++++
> sysdeps/unix/sysv/linux/nios2/libc.abilist | 10 +++++++
> .../unix/sysv/linux/nios2/libpthread.abilist | 6 +----
> .../linux/powerpc/powerpc32/fpu/libc.abilist | 10 +++++++
> .../powerpc/powerpc32/libpthread.abilist | 6 +----
> .../powerpc/powerpc32/nofpu/libc.abilist | 10 +++++++
> .../linux/powerpc/powerpc64/be/libc.abilist | 10 +++++++
> .../powerpc/powerpc64/be/libpthread.abilist | 6 +----
> .../linux/powerpc/powerpc64/le/libc.abilist | 10 +++++++
> .../powerpc/powerpc64/le/libpthread.abilist | 6 +----
> .../unix/sysv/linux/riscv/rv32/libc.abilist | 10 +++++++
> .../sysv/linux/riscv/rv32/libpthread.abilist | 5 ----
> .../unix/sysv/linux/riscv/rv64/libc.abilist | 10 +++++++
> .../sysv/linux/riscv/rv64/libpthread.abilist | 6 +----
> .../unix/sysv/linux/s390/s390-32/libc.abilist | 10 +++++++
> .../linux/s390/s390-32/libpthread.abilist | 6 +----
> .../unix/sysv/linux/s390/s390-64/libc.abilist | 10 +++++++
> .../linux/s390/s390-64/libpthread.abilist | 6 +----
> sysdeps/unix/sysv/linux/sh/be/libc.abilist | 10 +++++++
> .../unix/sysv/linux/sh/be/libpthread.abilist | 6 +----
> sysdeps/unix/sysv/linux/sh/le/libc.abilist | 10 +++++++
> .../unix/sysv/linux/sh/le/libpthread.abilist | 6 +----
> .../sysv/linux/sparc/sparc32/libc.abilist | 10 +++++++
> .../linux/sparc/sparc32/libpthread.abilist | 6 +----
> .../sysv/linux/sparc/sparc64/libc.abilist | 10 +++++++
> .../linux/sparc/sparc64/libpthread.abilist | 6 +----
> .../unix/sysv/linux/x86_64/64/libc.abilist | 10 +++++++
> .../sysv/linux/x86_64/64/libpthread.abilist | 6 +----
> .../unix/sysv/linux/x86_64/x32/libc.abilist | 10 +++++++
> .../sysv/linux/x86_64/x32/libpthread.abilist | 6 +----
> 71 files changed, 436 insertions(+), 178 deletions(-)
>
> diff --git a/nptl/Makefile b/nptl/Makefile
> index 3ef4cb966b..e8aa11b13d 100644
> --- a/nptl/Makefile
> +++ b/nptl/Makefile
> @@ -84,6 +84,7 @@ routines = \
> pthread_barrierattr_init \
> pthread_barrierattr_setpshared \
> pthread_cleanup_upto \
> + pthread_clockjoin \
> pthread_cond_broadcast \
> pthread_cond_destroy \
> pthread_cond_init \
> @@ -102,6 +103,8 @@ routines = \
> pthread_getattr_np \
> pthread_getschedparam \
> pthread_getspecific \
> + pthread_join \
> + pthread_join_common \
> pthread_key_create \
> pthread_key_delete \
> pthread_keys \
> @@ -161,6 +164,8 @@ routines = \
> pthread_spin_trylock \
> pthread_spin_unlock \
> pthread_testcancel \
> + pthread_timedjoin \
> + pthread_tryjoin \
> pthread_yield \
> sem_clockwait \
> sem_close \
> @@ -200,21 +205,16 @@ libpthread-routines = \
> pthread_attr_setstackaddr \
> pthread_attr_setstacksize \
> pthread_cancel \
> - pthread_clockjoin \
> pthread_create \
> pthread_getattr_default_np \
> pthread_getconcurrency \
> pthread_getcpuclockid \
> pthread_getname \
> - pthread_join \
> - pthread_join_common \
> pthread_setaffinity \
> pthread_setconcurrency \
> pthread_setname \
> pthread_setschedprio \
> pthread_sigqueue \
> - pthread_timedjoin \
> - pthread_tryjoin \
> version \
>
> libpthread-shared-only-routines = \
Ok.
> diff --git a/nptl/Versions b/nptl/Versions
> index 46ae34a1a2..8c3e825083 100644
> --- a/nptl/Versions
> +++ b/nptl/Versions
> @@ -42,6 +42,7 @@ libc {
> pthread_exit;
> pthread_getschedparam;
> pthread_getspecific;
> + pthread_join;
> pthread_key_create;
> pthread_key_delete;
> pthread_kill;
> @@ -148,6 +149,8 @@ libc {
> pthread_condattr_getclock;
> pthread_condattr_setclock;
> pthread_getaffinity_np;
> + pthread_timedjoin_np;
> + pthread_tryjoin_np;
> }
> GLIBC_2.3.4 {
> pthread_attr_setaffinity_np;
> @@ -190,6 +193,7 @@ libc {
> thrd_detach;
> thrd_equal;
> thrd_exit;
> + thrd_join;
> thrd_sleep;
> thrd_yield;
> tss_create;
> @@ -204,6 +208,9 @@ libc {
> pthread_rwlock_clockwrlock;
> sem_clockwait;
> }
> + GLIBC_2.31 {
> + pthread_clockjoin_np;
> + }
> GLIBC_2.32 {
> pthread_attr_getsigmask_np;
> pthread_attr_setaffinity_np;
> @@ -237,6 +244,7 @@ libc {
> pthread_barrierattr_getpshared;
> pthread_barrierattr_init;
> pthread_barrierattr_setpshared;
> + pthread_clockjoin_np;
> pthread_cond_clockwait;
> pthread_condattr_getclock;
> pthread_condattr_getpshared;
> @@ -244,6 +252,7 @@ libc {
> pthread_condattr_setpshared;
> pthread_detach;
> pthread_getspecific;
> + pthread_join;
> pthread_key_create;
> pthread_key_delete;
> pthread_kill;
> @@ -287,6 +296,8 @@ libc {
> pthread_spin_trylock;
> pthread_spin_unlock;
> pthread_testcancel;
> + pthread_timedjoin_np;
> + pthread_tryjoin_np;
> sem_clockwait;
> sem_close;
> sem_destroy;
> @@ -300,6 +311,7 @@ libc {
> sem_wait;
> thrd_detach;
> thrd_exit;
> + thrd_join;
> tss_create;
> tss_delete;
> tss_get;
> @@ -369,7 +381,6 @@ libpthread {
> funlockfile;
> pthread_cancel;
> pthread_create;
> - pthread_join;
> pthread_sigmask;
> }
>
> @@ -421,8 +432,6 @@ libpthread {
> __pthread_unregister_cancel_restore;
> pthread_attr_getaffinity_np;
> pthread_setaffinity_np;
> - pthread_timedjoin_np;
> - pthread_tryjoin_np;
> }
>
> GLIBC_2.3.4 {
> @@ -452,7 +461,6 @@ libpthread {
> # C11 thread symbols.
> GLIBC_2.28 {
> thrd_create;
> - thrd_join;
> }
>
> GLIBC_2.30 {
> @@ -460,7 +468,7 @@ libpthread {
> }
>
> GLIBC_2.31 {
> - pthread_clockjoin_np;
> + __libpthread_version_placeholder;
> }
>
> GLIBC_PRIVATE {
Ok.
> diff --git a/nptl/libpthread-compat.c b/nptl/libpthread-compat.c
> index 401fa6ad34..bc9ee36df0 100644
> --- a/nptl/libpthread-compat.c
> +++ b/nptl/libpthread-compat.c
> @@ -69,3 +69,8 @@ compat_symbol (libpthread, __libpthread_version_placeholder_1,
> compat_symbol (libpthread, __libpthread_version_placeholder_1,
> __libpthread_version_placeholder, GLIBC_2_30);
> #endif
> +
> +#if (SHLIB_COMPAT (libpthread, GLIBC_2_31, GLIBC_2_32))
> +compat_symbol (libpthread, __libpthread_version_placeholder_1,
> + __libpthread_version_placeholder, GLIBC_2_31);
> +#endif
Ok.
> diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
> index 34d133b187..7e3cef4709 100644
> --- a/nptl/pthreadP.h
> +++ b/nptl/pthreadP.h
> @@ -456,10 +456,10 @@ libc_hidden_proto (__pthread_cond_wait)
> extern int __pthread_clockjoin_np64 (pthread_t threadid, void **thread_return,
> clockid_t clockid,
> const struct __timespec64 *abstime);
> -libpthread_hidden_proto (__pthread_clockjoin_np64)
> +libc_hidden_proto (__pthread_clockjoin_np64)
> extern int __pthread_timedjoin_np64 (pthread_t threadid, void **thread_return,
> const struct __timespec64 *abstime);
> -libpthread_hidden_proto (__pthread_timedjoin_np64)
> +libc_hidden_proto (__pthread_timedjoin_np64)
> extern int __pthread_cond_timedwait64 (pthread_cond_t *cond,
> pthread_mutex_t *mutex,
> const struct __timespec64 *abstime);
> @@ -535,6 +535,7 @@ extern int __pthread_kill (pthread_t threadid, int signo);
> extern void __pthread_exit (void *value) __attribute__ ((__noreturn__));
> libc_hidden_proto (__pthread_exit)
> extern int __pthread_join (pthread_t threadid, void **thread_return);
> +libc_hidden_proto (__pthread_join)
> extern int __pthread_setcanceltype (int type, int *oldtype);
> libc_hidden_proto (__pthread_setcanceltype)
> extern void __pthread_testcancel (void);
Ok.
> diff --git a/nptl/pthread_clockjoin.c b/nptl/pthread_clockjoin.c
> index 7457c187fe..f5007d7831 100644
> --- a/nptl/pthread_clockjoin.c
> +++ b/nptl/pthread_clockjoin.c
> @@ -19,10 +19,12 @@
> #include <time.h>
> #include <futex-internal.h>
> #include "pthreadP.h"
> +#include <shlib-compat.h>
>
> int
> -__pthread_clockjoin_np64 (pthread_t threadid, void **thread_return,
> - clockid_t clockid, const struct __timespec64 *abstime)
> +___pthread_clockjoin_np64 (pthread_t threadid, void **thread_return,
> + clockid_t clockid,
> + const struct __timespec64 *abstime)
> {
> if (!futex_abstimed_supported_clockid (clockid))
> return EINVAL;
> @@ -31,12 +33,14 @@ __pthread_clockjoin_np64 (pthread_t threadid, void **thread_return,
> clockid, abstime, true);
> }
>
> -#if __TIMESIZE != 64
> -libpthread_hidden_def (__pthread_clockjoin_np64)
> +#if __TIMESIZE == 64
> +strong_alias (___pthread_clockjoin_np64, ___pthread_clockjoin_np)
> +#else /* __TIMESPEC64 != 64 */
> +libc_hidden_ver (___pthread_clockjoin_np64, __pthread_clockjoin_np64)
>
> int
> -__pthread_clockjoin_np (pthread_t threadid, void **thread_return,
> - clockid_t clockid, const struct timespec *abstime)
> +___pthread_clockjoin_np (pthread_t threadid, void **thread_return,
> + clockid_t clockid, const struct timespec *abstime)
> {
> if (abstime != NULL)
> {
> @@ -45,8 +49,13 @@ __pthread_clockjoin_np (pthread_t threadid, void **thread_return,
> &ts64);
> }
> else
> - return __pthread_clockjoin_np64 (threadid, thread_return, clockid,
> - NULL);
> + return __pthread_clockjoin_np64 (threadid, thread_return, clockid,
> + NULL);
> }
> +#endif /* __TIMESPEC64 != 64 */
> +versioned_symbol (libc, ___pthread_clockjoin_np, pthread_clockjoin_np,
> + GLIBC_2_34);
> +#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_31, GLIBC_2_34)
> +compat_symbol (libpthread, ___pthread_clockjoin_np, pthread_clockjoin_np,
> + GLIBC_2_31);
> #endif
> -weak_alias (__pthread_clockjoin_np, pthread_clockjoin_np)
Ok.
> diff --git a/nptl/pthread_join.c b/nptl/pthread_join.c
> index 4ad718e606..d2b33de73d 100644
> --- a/nptl/pthread_join.c
> +++ b/nptl/pthread_join.c
> @@ -17,11 +17,20 @@
> <https://www.gnu.org/licenses/>. */
>
> #include "pthreadP.h"
> +#include <shlib-compat.h>
>
> int
> -__pthread_join (pthread_t threadid, void **thread_return)
> +___pthread_join (pthread_t threadid, void **thread_return)
> {
> return __pthread_clockjoin_ex (threadid, thread_return, 0 /* Ignored */,
> NULL, true);
> }
> -weak_alias (__pthread_join, pthread_join)
> +versioned_symbol (libc, ___pthread_join, pthread_join, GLIBC_2_34);
> +libc_hidden_ver (___pthread_join, __pthread_join)
> +#ifndef SHARED
> +strong_alias (___pthread_join, __pthread_join)
> +#endif
> +
> +#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_34)
> +compat_symbol (libc, ___pthread_join, pthread_join, GLIBC_2_0);
> +#endif
Ok.
> diff --git a/nptl/pthread_timedjoin.c b/nptl/pthread_timedjoin.c
> index f5d0d3d6ce..ebc31f935a 100644
> --- a/nptl/pthread_timedjoin.c
> +++ b/nptl/pthread_timedjoin.c
> @@ -18,21 +18,24 @@
>
> #include <time.h>
> #include "pthreadP.h"
> +#include <shlib-compat.h>
>
> int
> -__pthread_timedjoin_np64 (pthread_t threadid, void **thread_return,
> - const struct __timespec64 *abstime)
> +___pthread_timedjoin_np64 (pthread_t threadid, void **thread_return,
> + const struct __timespec64 *abstime)
> {
> return __pthread_clockjoin_ex (threadid, thread_return,
> CLOCK_REALTIME, abstime, true);
> }
>
> -#if __TIMESIZE != 64
> -libpthread_hidden_def (__pthread_timedjoin_np64)
> +#if __TIMESIZE == 64
> +strong_alias (___pthread_timedjoin_np64, ___pthread_timedjoin_np)
> +#else /* __TIMESPEC64 != 64 */
> +libc_hidden_ver (___pthread_timedjoin_np64, __pthread_timedjoin_np64)
>
> int
> -__pthread_timedjoin_np (pthread_t threadid, void **thread_return,
> - const struct timespec *abstime)
> + ___pthread_timedjoin_np (pthread_t threadid, void **thread_return,
> + const struct timespec *abstime)
> {
> if (abstime != NULL)
> {
> @@ -42,5 +45,10 @@ __pthread_timedjoin_np (pthread_t threadid, void **thread_return,
> else
> return __pthread_timedjoin_np64 (threadid, thread_return, NULL);
> }
> +#endif /* __TIMESPEC64 != 64 */
> +versioned_symbol (libc, ___pthread_timedjoin_np, pthread_timedjoin_np,
> + GLIBC_2_34);
> +#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_3_3, GLIBC_2_34)
> +compat_symbol (libpthread, ___pthread_timedjoin_np, pthread_timedjoin_np,
> + GLIBC_2_3_3);
> #endif
> -weak_alias (__pthread_timedjoin_np, pthread_timedjoin_np)
Ok.
> diff --git a/nptl/pthread_tryjoin.c b/nptl/pthread_tryjoin.c
> index 62c9469258..fd938e8780 100644
> --- a/nptl/pthread_tryjoin.c
> +++ b/nptl/pthread_tryjoin.c
> @@ -17,9 +17,10 @@
> <https://www.gnu.org/licenses/>. */
>
> #include "pthreadP.h"
> +#include <shlib-compat.h>
>
> int
> -pthread_tryjoin_np (pthread_t threadid, void **thread_return)
> +__pthread_tryjoin_np (pthread_t threadid, void **thread_return)
> {
> /* Return right away if the thread hasn't terminated yet. */
> struct pthread *pd = (struct pthread *) threadid;
> @@ -31,3 +32,8 @@ pthread_tryjoin_np (pthread_t threadid, void **thread_return)
> return __pthread_clockjoin_ex (threadid, thread_return, 0 /* Ignored */,
> NULL, false);
> }
> +versioned_symbol (libc, __pthread_tryjoin_np, pthread_tryjoin_np, GLIBC_2_34);
> +
> +#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_3_3, GLIBC_2_34)
> +compat_symbol (libc, __pthread_tryjoin_np, pthread_tryjoin_np, GLIBC_2_3_3);
> +#endif
Ok.
> diff --git a/sysdeps/pthread/Makefile b/sysdeps/pthread/Makefile
> index ec8e3af577..b15d085f51 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_join
> +libpthread-routines += thrd_create
>
> $(libpthread-routines-var) += \
> call_once \
> @@ -49,6 +49,7 @@ $(libpthread-routines-var) += \
> mtx_unlock \
> thrd_detach \
> thrd_exit \
> + thrd_join \
> tss_create \
> tss_delete \
> tss_get \
Ok.
> diff --git a/sysdeps/pthread/thrd_join.c b/sysdeps/pthread/thrd_join.c
> index 8b53092c12..8db96ce4a5 100644
> --- a/sysdeps/pthread/thrd_join.c
> +++ b/sysdeps/pthread/thrd_join.c
> @@ -17,9 +17,10 @@
> <https://www.gnu.org/licenses/>. */
>
> #include "thrd_priv.h"
> +#include <shlib-compat.h>
>
> int
> -thrd_join (thrd_t thr, int *res)
> +__thrd_join (thrd_t thr, int *res)
> {
> void *pthread_res;
> int err_code = __pthread_join (thr, &pthread_res);
> @@ -28,3 +29,11 @@ thrd_join (thrd_t thr, int *res)
>
> return thrd_err_map (err_code);
> }
> +#if PTHREAD_IN_LIBC
> +versioned_symbol (libc, __thrd_join, thrd_join, GLIBC_2_34);
> +# if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_28, GLIBC_2_34)
> +compat_symbol (libc, __thrd_join, thrd_join, GLIBC_2_28);
> +# endif
> +#else /* !PTHREAD_IN_LIBC */
> +strong_alias (__thrd_join, thrd_join)
> +#endif
Ok.
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index b5b0b44697..2d06bfef34 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -1481,6 +1481,7 @@ GLIBC_2.17 pthread_getaffinity_np F
> GLIBC_2.17 pthread_getattr_np F
> GLIBC_2.17 pthread_getschedparam F
> GLIBC_2.17 pthread_getspecific F
> +GLIBC_2.17 pthread_join F
> GLIBC_2.17 pthread_key_create F
> GLIBC_2.17 pthread_key_delete F
> GLIBC_2.17 pthread_kill F
> @@ -1539,6 +1540,8 @@ GLIBC_2.17 pthread_spin_lock F
> GLIBC_2.17 pthread_spin_trylock F
> GLIBC_2.17 pthread_spin_unlock F
> GLIBC_2.17 pthread_testcancel F
> +GLIBC_2.17 pthread_timedjoin_np F
> +GLIBC_2.17 pthread_tryjoin_np F
> GLIBC_2.17 pthread_yield F
> GLIBC_2.17 ptrace F
> GLIBC_2.17 ptsname F
> @@ -2255,6 +2258,7 @@ 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_join F
> GLIBC_2.28 thrd_sleep F
> GLIBC_2.28 thrd_yield F
> GLIBC_2.28 tss_create F
> @@ -2273,6 +2277,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
> GLIBC_2.30 sem_clockwait F
> GLIBC_2.30 tgkill F
> GLIBC_2.30 twalk_r F
> +GLIBC_2.31 pthread_clockjoin_np F
> GLIBC_2.32 __libc_single_threaded D 0x1
> GLIBC_2.32 pthread_attr_getsigmask_np F
> GLIBC_2.32 pthread_attr_setaffinity_np F
> @@ -2322,6 +2327,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
> GLIBC_2.34 pthread_barrierattr_getpshared F
> GLIBC_2.34 pthread_barrierattr_init F
> GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_clockjoin_np F
> GLIBC_2.34 pthread_cond_clockwait F
> GLIBC_2.34 pthread_condattr_getclock F
> GLIBC_2.34 pthread_condattr_getpshared F
> @@ -2329,6 +2335,7 @@ 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_join F
> GLIBC_2.34 pthread_key_create F
> GLIBC_2.34 pthread_key_delete F
> GLIBC_2.34 pthread_kill F
> @@ -2376,6 +2383,8 @@ GLIBC_2.34 pthread_spin_lock F
> GLIBC_2.34 pthread_spin_trylock F
> GLIBC_2.34 pthread_spin_unlock F
> GLIBC_2.34 pthread_testcancel F
> +GLIBC_2.34 pthread_timedjoin_np F
> +GLIBC_2.34 pthread_tryjoin_np F
> GLIBC_2.34 sem_clockwait F
> GLIBC_2.34 sem_close F
> GLIBC_2.34 sem_destroy F
> @@ -2389,6 +2398,7 @@ 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 thrd_join F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> GLIBC_2.34 tss_get F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> index 71627a5cc8..fd8f0f7d1c 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> @@ -23,16 +23,12 @@ GLIBC_2.17 pthread_create F
> GLIBC_2.17 pthread_getconcurrency F
> GLIBC_2.17 pthread_getcpuclockid F
> GLIBC_2.17 pthread_getname_np F
> -GLIBC_2.17 pthread_join F
> GLIBC_2.17 pthread_setaffinity_np F
> GLIBC_2.17 pthread_setconcurrency F
> GLIBC_2.17 pthread_setname_np F
> GLIBC_2.17 pthread_setschedprio F
> GLIBC_2.17 pthread_sigqueue F
> -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_join F
> GLIBC_2.30 __libpthread_version_placeholder F
> -GLIBC_2.31 pthread_clockjoin_np F
> +GLIBC_2.31 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index 20d4855e90..8f1c1368ad 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -902,6 +902,7 @@ GLIBC_2.0 pthread_equal F
> GLIBC_2.0 pthread_exit F
> GLIBC_2.0 pthread_getschedparam F
> GLIBC_2.0 pthread_getspecific F
> +GLIBC_2.0 pthread_join F
> GLIBC_2.0 pthread_key_create F
> GLIBC_2.0 pthread_key_delete F
> GLIBC_2.0 pthread_kill F
> @@ -2153,6 +2154,7 @@ 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_join F
> GLIBC_2.28 thrd_sleep F
> GLIBC_2.28 thrd_yield F
> GLIBC_2.28 tss_create F
> @@ -2284,6 +2286,8 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
> GLIBC_2.3.3 pthread_condattr_getclock F
> GLIBC_2.3.3 pthread_condattr_setclock F
> GLIBC_2.3.3 pthread_getaffinity_np F
> +GLIBC_2.3.3 pthread_timedjoin_np F
> +GLIBC_2.3.3 pthread_tryjoin_np F
> GLIBC_2.3.3 remap_file_pages F
> GLIBC_2.3.3 sched_getaffinity F
> GLIBC_2.3.3 sched_setaffinity F
> @@ -2360,6 +2364,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
> GLIBC_2.30 sem_clockwait F
> GLIBC_2.30 tgkill F
> GLIBC_2.30 twalk_r F
> +GLIBC_2.31 pthread_clockjoin_np F
> GLIBC_2.32 __libc_single_threaded D 0x1
> GLIBC_2.32 pthread_attr_getsigmask_np F
> GLIBC_2.32 pthread_attr_setaffinity_np F
> @@ -2409,6 +2414,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
> GLIBC_2.34 pthread_barrierattr_getpshared F
> GLIBC_2.34 pthread_barrierattr_init F
> GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_clockjoin_np F
> GLIBC_2.34 pthread_cond_clockwait F
> GLIBC_2.34 pthread_condattr_getclock F
> GLIBC_2.34 pthread_condattr_getpshared F
> @@ -2416,6 +2422,7 @@ 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_join F
> GLIBC_2.34 pthread_key_create F
> GLIBC_2.34 pthread_key_delete F
> GLIBC_2.34 pthread_kill F
> @@ -2463,6 +2470,8 @@ GLIBC_2.34 pthread_spin_lock F
> GLIBC_2.34 pthread_spin_trylock F
> GLIBC_2.34 pthread_spin_unlock F
> GLIBC_2.34 pthread_testcancel F
> +GLIBC_2.34 pthread_timedjoin_np F
> +GLIBC_2.34 pthread_tryjoin_np F
> GLIBC_2.34 sem_clockwait F
> GLIBC_2.34 sem_close F
> GLIBC_2.34 sem_destroy F
> @@ -2476,6 +2485,7 @@ 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 thrd_join F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> GLIBC_2.34 tss_get F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> index b4ea31102a..16fa6ec4ee 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_join F
> GLIBC_2.1 pthread_attr_getguardsize F
> GLIBC_2.1 pthread_attr_getstackaddr F
> GLIBC_2.1 pthread_attr_getstacksize F
> @@ -29,7 +28,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_join F
> GLIBC_2.3.2 __libpthread_version_placeholder F
> GLIBC_2.3.3 __pthread_register_cancel F
> GLIBC_2.3.3 __pthread_register_cancel_defer F
> @@ -39,11 +37,9 @@ GLIBC_2.3.3 pthread_attr_getaffinity_np F
> GLIBC_2.3.3 pthread_attr_setstack F
> GLIBC_2.3.3 pthread_attr_setstacksize F
> GLIBC_2.3.3 pthread_setaffinity_np F
> -GLIBC_2.3.3 pthread_timedjoin_np F
> -GLIBC_2.3.3 pthread_tryjoin_np F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_setaffinity_np F
> GLIBC_2.3.4 pthread_setschedprio F
> GLIBC_2.30 __libpthread_version_placeholder F
> -GLIBC_2.31 pthread_clockjoin_np F
> +GLIBC_2.31 __libpthread_version_placeholder F
> GLIBC_2.4 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index 19eb517f28..ae902ecdd0 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -1401,6 +1401,7 @@ GLIBC_2.32 pthread_barrierattr_destroy F
> GLIBC_2.32 pthread_barrierattr_getpshared F
> GLIBC_2.32 pthread_barrierattr_init F
> GLIBC_2.32 pthread_barrierattr_setpshared F
> +GLIBC_2.32 pthread_clockjoin_np F
> GLIBC_2.32 pthread_cond_broadcast F
> GLIBC_2.32 pthread_cond_clockwait F
> GLIBC_2.32 pthread_cond_destroy F
> @@ -1421,6 +1422,7 @@ GLIBC_2.32 pthread_getaffinity_np F
> GLIBC_2.32 pthread_getattr_np F
> GLIBC_2.32 pthread_getschedparam F
> GLIBC_2.32 pthread_getspecific F
> +GLIBC_2.32 pthread_join F
> GLIBC_2.32 pthread_key_create F
> GLIBC_2.32 pthread_key_delete F
> GLIBC_2.32 pthread_kill F
> @@ -1483,6 +1485,8 @@ GLIBC_2.32 pthread_spin_lock F
> GLIBC_2.32 pthread_spin_trylock F
> GLIBC_2.32 pthread_spin_unlock F
> GLIBC_2.32 pthread_testcancel F
> +GLIBC_2.32 pthread_timedjoin_np F
> +GLIBC_2.32 pthread_tryjoin_np F
> GLIBC_2.32 pthread_yield F
> GLIBC_2.32 ptrace F
> GLIBC_2.32 ptsname F
> @@ -1866,6 +1870,7 @@ 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_join F
> GLIBC_2.32 thrd_sleep F
> GLIBC_2.32 thrd_yield F
> GLIBC_2.32 time F
> @@ -2081,6 +2086,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
> GLIBC_2.34 pthread_barrierattr_getpshared F
> GLIBC_2.34 pthread_barrierattr_init F
> GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_clockjoin_np F
> GLIBC_2.34 pthread_cond_clockwait F
> GLIBC_2.34 pthread_condattr_getclock F
> GLIBC_2.34 pthread_condattr_getpshared F
> @@ -2088,6 +2094,7 @@ 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_join F
> GLIBC_2.34 pthread_key_create F
> GLIBC_2.34 pthread_key_delete F
> GLIBC_2.34 pthread_kill F
> @@ -2135,6 +2142,8 @@ GLIBC_2.34 pthread_spin_lock F
> GLIBC_2.34 pthread_spin_trylock F
> GLIBC_2.34 pthread_spin_unlock F
> GLIBC_2.34 pthread_testcancel F
> +GLIBC_2.34 pthread_timedjoin_np F
> +GLIBC_2.34 pthread_tryjoin_np F
> GLIBC_2.34 sem_clockwait F
> GLIBC_2.34 sem_close F
> GLIBC_2.34 sem_destroy F
> @@ -2148,6 +2157,7 @@ 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 thrd_join F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> GLIBC_2.34 tss_get F
> diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> index 8ac0cde1ee..4c8b8ee724 100644
> --- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> @@ -19,19 +19,14 @@ GLIBC_2.32 pthread_attr_setstack F
> GLIBC_2.32 pthread_attr_setstackaddr F
> 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_getattr_default_np F
> GLIBC_2.32 pthread_getconcurrency F
> GLIBC_2.32 pthread_getcpuclockid F
> GLIBC_2.32 pthread_getname_np F
> -GLIBC_2.32 pthread_join F
> GLIBC_2.32 pthread_setaffinity_np F
> GLIBC_2.32 pthread_setconcurrency F
> GLIBC_2.32 pthread_setname_np F
> GLIBC_2.32 pthread_setschedprio F
> 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_join F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index 9ba6a30214..acc620643f 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -140,6 +140,7 @@ GLIBC_2.28 thrd_current F
> GLIBC_2.28 thrd_detach F
> GLIBC_2.28 thrd_equal F
> GLIBC_2.28 thrd_exit F
> +GLIBC_2.28 thrd_join F
> GLIBC_2.28 thrd_sleep F
> GLIBC_2.28 thrd_yield F
> GLIBC_2.28 tss_create F
> @@ -159,6 +160,7 @@ GLIBC_2.30 sem_clockwait F
> GLIBC_2.30 tgkill F
> GLIBC_2.30 twalk_r F
> GLIBC_2.31 msgctl F
> +GLIBC_2.31 pthread_clockjoin_np F
> GLIBC_2.31 semctl F
> GLIBC_2.31 shmctl F
> GLIBC_2.32 __libc_single_threaded D 0x1
> @@ -210,6 +212,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
> GLIBC_2.34 pthread_barrierattr_getpshared F
> GLIBC_2.34 pthread_barrierattr_init F
> GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_clockjoin_np F
> GLIBC_2.34 pthread_cond_clockwait F
> GLIBC_2.34 pthread_condattr_getclock F
> GLIBC_2.34 pthread_condattr_getpshared F
> @@ -217,6 +220,7 @@ 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_join F
> GLIBC_2.34 pthread_key_create F
> GLIBC_2.34 pthread_key_delete F
> GLIBC_2.34 pthread_kill F
> @@ -264,6 +268,8 @@ GLIBC_2.34 pthread_spin_lock F
> GLIBC_2.34 pthread_spin_trylock F
> GLIBC_2.34 pthread_spin_unlock F
> GLIBC_2.34 pthread_testcancel F
> +GLIBC_2.34 pthread_timedjoin_np F
> +GLIBC_2.34 pthread_tryjoin_np F
> GLIBC_2.34 sem_clockwait F
> GLIBC_2.34 sem_close F
> GLIBC_2.34 sem_destroy F
> @@ -277,6 +283,7 @@ 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 thrd_join F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> GLIBC_2.34 tss_get F
> @@ -1698,6 +1705,7 @@ GLIBC_2.4 pthread_getaffinity_np F
> GLIBC_2.4 pthread_getattr_np F
> GLIBC_2.4 pthread_getschedparam F
> GLIBC_2.4 pthread_getspecific F
> +GLIBC_2.4 pthread_join F
> GLIBC_2.4 pthread_key_create F
> GLIBC_2.4 pthread_key_delete F
> GLIBC_2.4 pthread_kill F
> @@ -1753,6 +1761,8 @@ GLIBC_2.4 pthread_spin_lock F
> GLIBC_2.4 pthread_spin_trylock F
> GLIBC_2.4 pthread_spin_unlock F
> GLIBC_2.4 pthread_testcancel F
> +GLIBC_2.4 pthread_timedjoin_np F
> +GLIBC_2.4 pthread_tryjoin_np F
> GLIBC_2.4 pthread_yield F
> GLIBC_2.4 ptrace F
> GLIBC_2.4 ptsname F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> index b74a43658d..072b9a30f1 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> @@ -3,9 +3,8 @@ 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_join F
> GLIBC_2.30 __libpthread_version_placeholder F
> -GLIBC_2.31 pthread_clockjoin_np F
> +GLIBC_2.31 __libpthread_version_placeholder F
> GLIBC_2.4 _IO_flockfile F
> GLIBC_2.4 _IO_ftrylockfile F
> GLIBC_2.4 _IO_funlockfile F
> @@ -31,9 +30,6 @@ GLIBC_2.4 pthread_cancel F
> GLIBC_2.4 pthread_create F
> GLIBC_2.4 pthread_getconcurrency F
> GLIBC_2.4 pthread_getcpuclockid F
> -GLIBC_2.4 pthread_join F
> GLIBC_2.4 pthread_setaffinity_np F
> GLIBC_2.4 pthread_setconcurrency F
> GLIBC_2.4 pthread_setschedprio F
> -GLIBC_2.4 pthread_timedjoin_np F
> -GLIBC_2.4 pthread_tryjoin_np F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index 9a79a6622e..fd33a2317f 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -140,6 +140,7 @@ GLIBC_2.28 thrd_current F
> GLIBC_2.28 thrd_detach F
> GLIBC_2.28 thrd_equal F
> GLIBC_2.28 thrd_exit F
> +GLIBC_2.28 thrd_join F
> GLIBC_2.28 thrd_sleep F
> GLIBC_2.28 thrd_yield F
> GLIBC_2.28 tss_create F
> @@ -158,6 +159,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
> GLIBC_2.30 sem_clockwait F
> GLIBC_2.30 tgkill F
> GLIBC_2.30 twalk_r F
> +GLIBC_2.31 pthread_clockjoin_np F
> GLIBC_2.32 __libc_single_threaded D 0x1
> GLIBC_2.32 pthread_attr_getsigmask_np F
> GLIBC_2.32 pthread_attr_setaffinity_np F
> @@ -207,6 +209,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
> GLIBC_2.34 pthread_barrierattr_getpshared F
> GLIBC_2.34 pthread_barrierattr_init F
> GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_clockjoin_np F
> GLIBC_2.34 pthread_cond_clockwait F
> GLIBC_2.34 pthread_condattr_getclock F
> GLIBC_2.34 pthread_condattr_getpshared F
> @@ -214,6 +217,7 @@ 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_join F
> GLIBC_2.34 pthread_key_create F
> GLIBC_2.34 pthread_key_delete F
> GLIBC_2.34 pthread_kill F
> @@ -261,6 +265,8 @@ GLIBC_2.34 pthread_spin_lock F
> GLIBC_2.34 pthread_spin_trylock F
> GLIBC_2.34 pthread_spin_unlock F
> GLIBC_2.34 pthread_testcancel F
> +GLIBC_2.34 pthread_timedjoin_np F
> +GLIBC_2.34 pthread_tryjoin_np F
> GLIBC_2.34 sem_clockwait F
> GLIBC_2.34 sem_close F
> GLIBC_2.34 sem_destroy F
> @@ -274,6 +280,7 @@ 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 thrd_join F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> GLIBC_2.34 tss_get F
> @@ -1695,6 +1702,7 @@ GLIBC_2.4 pthread_getaffinity_np F
> GLIBC_2.4 pthread_getattr_np F
> GLIBC_2.4 pthread_getschedparam F
> GLIBC_2.4 pthread_getspecific F
> +GLIBC_2.4 pthread_join F
> GLIBC_2.4 pthread_key_create F
> GLIBC_2.4 pthread_key_delete F
> GLIBC_2.4 pthread_kill F
> @@ -1750,6 +1758,8 @@ GLIBC_2.4 pthread_spin_lock F
> GLIBC_2.4 pthread_spin_trylock F
> GLIBC_2.4 pthread_spin_unlock F
> GLIBC_2.4 pthread_testcancel F
> +GLIBC_2.4 pthread_timedjoin_np F
> +GLIBC_2.4 pthread_tryjoin_np F
> GLIBC_2.4 pthread_yield F
> GLIBC_2.4 ptrace F
> GLIBC_2.4 ptsname F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> index b74a43658d..072b9a30f1 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> @@ -3,9 +3,8 @@ 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_join F
> GLIBC_2.30 __libpthread_version_placeholder F
> -GLIBC_2.31 pthread_clockjoin_np F
> +GLIBC_2.31 __libpthread_version_placeholder F
> GLIBC_2.4 _IO_flockfile F
> GLIBC_2.4 _IO_ftrylockfile F
> GLIBC_2.4 _IO_funlockfile F
> @@ -31,9 +30,6 @@ GLIBC_2.4 pthread_cancel F
> GLIBC_2.4 pthread_create F
> GLIBC_2.4 pthread_getconcurrency F
> GLIBC_2.4 pthread_getcpuclockid F
> -GLIBC_2.4 pthread_join F
> GLIBC_2.4 pthread_setaffinity_np F
> GLIBC_2.4 pthread_setconcurrency F
> GLIBC_2.4 pthread_setschedprio F
> -GLIBC_2.4 pthread_timedjoin_np F
> -GLIBC_2.4 pthread_tryjoin_np F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index b21ff2de89..c1ac24c3a2 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -1481,6 +1481,7 @@ GLIBC_2.29 pthread_getaffinity_np F
> GLIBC_2.29 pthread_getattr_np F
> GLIBC_2.29 pthread_getschedparam F
> GLIBC_2.29 pthread_getspecific F
> +GLIBC_2.29 pthread_join F
> GLIBC_2.29 pthread_key_create F
> GLIBC_2.29 pthread_key_delete F
> GLIBC_2.29 pthread_kill F
> @@ -1540,6 +1541,8 @@ GLIBC_2.29 pthread_spin_lock F
> GLIBC_2.29 pthread_spin_trylock F
> GLIBC_2.29 pthread_spin_unlock F
> GLIBC_2.29 pthread_testcancel F
> +GLIBC_2.29 pthread_timedjoin_np F
> +GLIBC_2.29 pthread_tryjoin_np F
> GLIBC_2.29 pthread_yield F
> GLIBC_2.29 ptrace F
> GLIBC_2.29 ptsname F
> @@ -1957,6 +1960,7 @@ 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_join F
> GLIBC_2.29 thrd_sleep F
> GLIBC_2.29 thrd_yield F
> GLIBC_2.29 time F
> @@ -2216,6 +2220,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
> GLIBC_2.30 sem_clockwait F
> GLIBC_2.30 tgkill F
> GLIBC_2.30 twalk_r F
> +GLIBC_2.31 pthread_clockjoin_np F
> GLIBC_2.32 __libc_single_threaded D 0x1
> GLIBC_2.32 pthread_attr_getsigmask_np F
> GLIBC_2.32 pthread_attr_setaffinity_np F
> @@ -2265,6 +2270,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
> GLIBC_2.34 pthread_barrierattr_getpshared F
> GLIBC_2.34 pthread_barrierattr_init F
> GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_clockjoin_np F
> GLIBC_2.34 pthread_cond_clockwait F
> GLIBC_2.34 pthread_condattr_getclock F
> GLIBC_2.34 pthread_condattr_getpshared F
> @@ -2272,6 +2278,7 @@ 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_join F
> GLIBC_2.34 pthread_key_create F
> GLIBC_2.34 pthread_key_delete F
> GLIBC_2.34 pthread_kill F
> @@ -2319,6 +2326,8 @@ GLIBC_2.34 pthread_spin_lock F
> GLIBC_2.34 pthread_spin_trylock F
> GLIBC_2.34 pthread_spin_unlock F
> GLIBC_2.34 pthread_testcancel F
> +GLIBC_2.34 pthread_timedjoin_np F
> +GLIBC_2.34 pthread_tryjoin_np F
> GLIBC_2.34 sem_clockwait F
> GLIBC_2.34 sem_close F
> GLIBC_2.34 sem_destroy F
> @@ -2332,6 +2341,7 @@ 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 thrd_join F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> GLIBC_2.34 tss_get F
> diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> index 665cc7bc38..678865fb8c 100644
> --- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> @@ -24,15 +24,11 @@ GLIBC_2.29 pthread_getattr_default_np F
> GLIBC_2.29 pthread_getconcurrency F
> GLIBC_2.29 pthread_getcpuclockid F
> GLIBC_2.29 pthread_getname_np F
> -GLIBC_2.29 pthread_join F
> GLIBC_2.29 pthread_setaffinity_np F
> GLIBC_2.29 pthread_setconcurrency F
> GLIBC_2.29 pthread_setname_np F
> GLIBC_2.29 pthread_setschedprio F
> 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_join F
> GLIBC_2.30 __libpthread_version_placeholder F
> -GLIBC_2.31 pthread_clockjoin_np F
> +GLIBC_2.31 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index 3e893dfcaa..29225ac912 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -1304,6 +1304,7 @@ GLIBC_2.2 pthread_equal F
> GLIBC_2.2 pthread_exit F
> GLIBC_2.2 pthread_getschedparam F
> GLIBC_2.2 pthread_getspecific F
> +GLIBC_2.2 pthread_join F
> GLIBC_2.2 pthread_key_create F
> GLIBC_2.2 pthread_key_delete F
> GLIBC_2.2 pthread_kill F
> @@ -1986,6 +1987,7 @@ 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_join F
> GLIBC_2.28 thrd_sleep F
> GLIBC_2.28 thrd_yield F
> GLIBC_2.28 tss_create F
> @@ -2121,6 +2123,8 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
> GLIBC_2.3.3 pthread_condattr_getclock F
> GLIBC_2.3.3 pthread_condattr_setclock F
> GLIBC_2.3.3 pthread_getaffinity_np F
> +GLIBC_2.3.3 pthread_timedjoin_np F
> +GLIBC_2.3.3 pthread_tryjoin_np F
> GLIBC_2.3.3 remap_file_pages F
> GLIBC_2.3.3 sched_getaffinity F
> GLIBC_2.3.3 sched_setaffinity F
> @@ -2167,6 +2171,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
> GLIBC_2.30 sem_clockwait F
> GLIBC_2.30 tgkill F
> GLIBC_2.30 twalk_r F
> +GLIBC_2.31 pthread_clockjoin_np F
> GLIBC_2.32 __libc_single_threaded D 0x1
> GLIBC_2.32 pthread_attr_getsigmask_np F
> GLIBC_2.32 pthread_attr_setaffinity_np F
> @@ -2216,6 +2221,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
> GLIBC_2.34 pthread_barrierattr_getpshared F
> GLIBC_2.34 pthread_barrierattr_init F
> GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_clockjoin_np F
> GLIBC_2.34 pthread_cond_clockwait F
> GLIBC_2.34 pthread_condattr_getclock F
> GLIBC_2.34 pthread_condattr_getpshared F
> @@ -2223,6 +2229,7 @@ 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_join F
> GLIBC_2.34 pthread_key_create F
> GLIBC_2.34 pthread_key_delete F
> GLIBC_2.34 pthread_kill F
> @@ -2270,6 +2277,8 @@ GLIBC_2.34 pthread_spin_lock F
> GLIBC_2.34 pthread_spin_trylock F
> GLIBC_2.34 pthread_spin_unlock F
> GLIBC_2.34 pthread_testcancel F
> +GLIBC_2.34 pthread_timedjoin_np F
> +GLIBC_2.34 pthread_tryjoin_np F
> GLIBC_2.34 sem_clockwait F
> GLIBC_2.34 sem_close F
> GLIBC_2.34 sem_destroy F
> @@ -2283,6 +2292,7 @@ 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 thrd_join F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> GLIBC_2.34 tss_get F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> index cc1ca55754..59585f6763 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> @@ -21,12 +21,10 @@ GLIBC_2.2 pthread_cancel F
> GLIBC_2.2 pthread_create F
> GLIBC_2.2 pthread_getconcurrency F
> GLIBC_2.2 pthread_getcpuclockid F
> -GLIBC_2.2 pthread_join F
> 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_join F
> GLIBC_2.3.2 __libpthread_version_placeholder F
> GLIBC_2.3.3 __pthread_register_cancel F
> GLIBC_2.3.3 __pthread_register_cancel_defer F
> @@ -34,11 +32,9 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
> GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 pthread_attr_getaffinity_np F
> GLIBC_2.3.3 pthread_setaffinity_np F
> -GLIBC_2.3.3 pthread_timedjoin_np F
> -GLIBC_2.3.3 pthread_tryjoin_np F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_setaffinity_np F
> GLIBC_2.3.4 pthread_setschedprio F
> GLIBC_2.30 __libpthread_version_placeholder F
> -GLIBC_2.31 pthread_clockjoin_np F
> +GLIBC_2.31 __libpthread_version_placeholder F
> GLIBC_2.4 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index f0af406ec5..b5026ba906 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -879,6 +879,7 @@ GLIBC_2.0 pthread_equal F
> GLIBC_2.0 pthread_exit F
> GLIBC_2.0 pthread_getschedparam F
> GLIBC_2.0 pthread_getspecific F
> +GLIBC_2.0 pthread_join F
> GLIBC_2.0 pthread_key_create F
> GLIBC_2.0 pthread_key_delete F
> GLIBC_2.0 pthread_kill F
> @@ -2166,6 +2167,7 @@ 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_join F
> GLIBC_2.28 thrd_sleep F
> GLIBC_2.28 thrd_yield F
> GLIBC_2.28 tss_create F
> @@ -2301,6 +2303,8 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
> GLIBC_2.3.3 pthread_condattr_getclock F
> GLIBC_2.3.3 pthread_condattr_setclock F
> GLIBC_2.3.3 pthread_getaffinity_np F
> +GLIBC_2.3.3 pthread_timedjoin_np F
> +GLIBC_2.3.3 pthread_tryjoin_np F
> GLIBC_2.3.3 remap_file_pages F
> GLIBC_2.3.3 sched_getaffinity F
> GLIBC_2.3.3 sched_setaffinity F
> @@ -2348,6 +2352,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
> GLIBC_2.30 sem_clockwait F
> GLIBC_2.30 tgkill F
> GLIBC_2.30 twalk_r F
> +GLIBC_2.31 pthread_clockjoin_np F
> GLIBC_2.32 __libc_single_threaded D 0x1
> GLIBC_2.32 pthread_attr_getsigmask_np F
> GLIBC_2.32 pthread_attr_setaffinity_np F
> @@ -2399,6 +2404,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
> GLIBC_2.34 pthread_barrierattr_getpshared F
> GLIBC_2.34 pthread_barrierattr_init F
> GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_clockjoin_np F
> GLIBC_2.34 pthread_cond_clockwait F
> GLIBC_2.34 pthread_condattr_getclock F
> GLIBC_2.34 pthread_condattr_getpshared F
> @@ -2406,6 +2412,7 @@ 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_join F
> GLIBC_2.34 pthread_key_create F
> GLIBC_2.34 pthread_key_delete F
> GLIBC_2.34 pthread_kill F
> @@ -2453,6 +2460,8 @@ GLIBC_2.34 pthread_spin_lock F
> GLIBC_2.34 pthread_spin_trylock F
> GLIBC_2.34 pthread_spin_unlock F
> GLIBC_2.34 pthread_testcancel F
> +GLIBC_2.34 pthread_timedjoin_np F
> +GLIBC_2.34 pthread_tryjoin_np F
> GLIBC_2.34 sem_clockwait F
> GLIBC_2.34 sem_close F
> GLIBC_2.34 sem_destroy F
> @@ -2466,6 +2475,7 @@ 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 thrd_join F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> GLIBC_2.34 tss_get F
> diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> index 0854a21e65..c7397f889d 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_join F
> GLIBC_2.1 pthread_attr_getguardsize F
> GLIBC_2.1 pthread_attr_getstackaddr F
> GLIBC_2.1 pthread_attr_getstacksize F
> @@ -29,7 +28,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_join F
> GLIBC_2.3.2 __libpthread_version_placeholder F
> GLIBC_2.3.3 __pthread_register_cancel F
> GLIBC_2.3.3 __pthread_register_cancel_defer F
> @@ -37,11 +35,9 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
> GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 pthread_attr_getaffinity_np F
> GLIBC_2.3.3 pthread_setaffinity_np F
> -GLIBC_2.3.3 pthread_timedjoin_np F
> -GLIBC_2.3.3 pthread_tryjoin_np F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_setaffinity_np F
> GLIBC_2.3.4 pthread_setschedprio F
> GLIBC_2.30 __libpthread_version_placeholder F
> -GLIBC_2.31 pthread_clockjoin_np F
> +GLIBC_2.31 __libpthread_version_placeholder F
> GLIBC_2.4 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index 83985b06e0..f6fc393a21 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -1325,6 +1325,7 @@ GLIBC_2.2 pthread_equal F
> GLIBC_2.2 pthread_exit F
> GLIBC_2.2 pthread_getschedparam F
> GLIBC_2.2 pthread_getspecific F
> +GLIBC_2.2 pthread_join F
> GLIBC_2.2 pthread_key_create F
> GLIBC_2.2 pthread_key_delete F
> GLIBC_2.2 pthread_kill F
> @@ -2021,6 +2022,7 @@ 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_join F
> GLIBC_2.28 thrd_sleep F
> GLIBC_2.28 thrd_yield F
> GLIBC_2.28 tss_create F
> @@ -2152,6 +2154,8 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
> GLIBC_2.3.3 pthread_condattr_getclock F
> GLIBC_2.3.3 pthread_condattr_setclock F
> GLIBC_2.3.3 pthread_getaffinity_np F
> +GLIBC_2.3.3 pthread_timedjoin_np F
> +GLIBC_2.3.3 pthread_tryjoin_np F
> GLIBC_2.3.3 remap_file_pages F
> GLIBC_2.3.3 sched_getaffinity F
> GLIBC_2.3.3 sched_setaffinity F
> @@ -2200,6 +2204,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
> GLIBC_2.30 sem_clockwait F
> GLIBC_2.30 tgkill F
> GLIBC_2.30 twalk_r F
> +GLIBC_2.31 pthread_clockjoin_np F
> GLIBC_2.32 __libc_single_threaded D 0x1
> GLIBC_2.32 pthread_attr_getsigmask_np F
> GLIBC_2.32 pthread_attr_setaffinity_np F
> @@ -2250,6 +2255,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
> GLIBC_2.34 pthread_barrierattr_getpshared F
> GLIBC_2.34 pthread_barrierattr_init F
> GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_clockjoin_np F
> GLIBC_2.34 pthread_cond_clockwait F
> GLIBC_2.34 pthread_condattr_getclock F
> GLIBC_2.34 pthread_condattr_getpshared F
> @@ -2257,6 +2263,7 @@ 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_join F
> GLIBC_2.34 pthread_key_create F
> GLIBC_2.34 pthread_key_delete F
> GLIBC_2.34 pthread_kill F
> @@ -2304,6 +2311,8 @@ GLIBC_2.34 pthread_spin_lock F
> GLIBC_2.34 pthread_spin_trylock F
> GLIBC_2.34 pthread_spin_unlock F
> GLIBC_2.34 pthread_testcancel F
> +GLIBC_2.34 pthread_timedjoin_np F
> +GLIBC_2.34 pthread_tryjoin_np F
> GLIBC_2.34 sem_clockwait F
> GLIBC_2.34 sem_close F
> GLIBC_2.34 sem_destroy F
> @@ -2317,6 +2326,7 @@ 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 thrd_join F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> GLIBC_2.34 tss_get F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> index c377a13e65..1b0a061014 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> @@ -21,12 +21,10 @@ GLIBC_2.2 pthread_cancel F
> GLIBC_2.2 pthread_create F
> GLIBC_2.2 pthread_getconcurrency F
> GLIBC_2.2 pthread_getcpuclockid F
> -GLIBC_2.2 pthread_join F
> 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_join F
> GLIBC_2.3.2 __libpthread_version_placeholder F
> GLIBC_2.3.3 __pthread_register_cancel F
> GLIBC_2.3.3 __pthread_register_cancel_defer F
> @@ -36,11 +34,9 @@ GLIBC_2.3.3 pthread_attr_getaffinity_np F
> GLIBC_2.3.3 pthread_attr_setstack F
> GLIBC_2.3.3 pthread_attr_setstacksize F
> GLIBC_2.3.3 pthread_setaffinity_np F
> -GLIBC_2.3.3 pthread_timedjoin_np F
> -GLIBC_2.3.3 pthread_tryjoin_np F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_setaffinity_np F
> GLIBC_2.3.4 pthread_setschedprio F
> GLIBC_2.30 __libpthread_version_placeholder F
> -GLIBC_2.31 pthread_clockjoin_np F
> +GLIBC_2.31 __libpthread_version_placeholder F
> GLIBC_2.4 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index 7d38f2fe55..dfb73924b9 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -141,6 +141,7 @@ GLIBC_2.28 thrd_current F
> GLIBC_2.28 thrd_detach F
> GLIBC_2.28 thrd_equal F
> GLIBC_2.28 thrd_exit F
> +GLIBC_2.28 thrd_join F
> GLIBC_2.28 thrd_sleep F
> GLIBC_2.28 thrd_yield F
> GLIBC_2.28 tss_create F
> @@ -160,6 +161,7 @@ GLIBC_2.30 sem_clockwait F
> GLIBC_2.30 tgkill F
> GLIBC_2.30 twalk_r F
> GLIBC_2.31 msgctl F
> +GLIBC_2.31 pthread_clockjoin_np F
> GLIBC_2.31 semctl F
> GLIBC_2.31 shmctl F
> GLIBC_2.32 __libc_single_threaded D 0x1
> @@ -211,6 +213,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
> GLIBC_2.34 pthread_barrierattr_getpshared F
> GLIBC_2.34 pthread_barrierattr_init F
> GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_clockjoin_np F
> GLIBC_2.34 pthread_cond_clockwait F
> GLIBC_2.34 pthread_condattr_getclock F
> GLIBC_2.34 pthread_condattr_getpshared F
> @@ -218,6 +221,7 @@ 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_join F
> GLIBC_2.34 pthread_key_create F
> GLIBC_2.34 pthread_key_delete F
> GLIBC_2.34 pthread_kill F
> @@ -265,6 +269,8 @@ GLIBC_2.34 pthread_spin_lock F
> GLIBC_2.34 pthread_spin_trylock F
> GLIBC_2.34 pthread_spin_unlock F
> GLIBC_2.34 pthread_testcancel F
> +GLIBC_2.34 pthread_timedjoin_np F
> +GLIBC_2.34 pthread_tryjoin_np F
> GLIBC_2.34 sem_clockwait F
> GLIBC_2.34 sem_close F
> GLIBC_2.34 sem_destroy F
> @@ -278,6 +284,7 @@ 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 thrd_join F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> GLIBC_2.34 tss_get F
> @@ -1678,6 +1685,7 @@ GLIBC_2.4 pthread_getaffinity_np F
> GLIBC_2.4 pthread_getattr_np F
> GLIBC_2.4 pthread_getschedparam F
> GLIBC_2.4 pthread_getspecific F
> +GLIBC_2.4 pthread_join F
> GLIBC_2.4 pthread_key_create F
> GLIBC_2.4 pthread_key_delete F
> GLIBC_2.4 pthread_kill F
> @@ -1733,6 +1741,8 @@ GLIBC_2.4 pthread_spin_lock F
> GLIBC_2.4 pthread_spin_trylock F
> GLIBC_2.4 pthread_spin_unlock F
> GLIBC_2.4 pthread_testcancel F
> +GLIBC_2.4 pthread_timedjoin_np F
> +GLIBC_2.4 pthread_tryjoin_np F
> GLIBC_2.4 pthread_yield F
> GLIBC_2.4 ptrace F
> GLIBC_2.4 ptsname F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> index b74a43658d..072b9a30f1 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> @@ -3,9 +3,8 @@ 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_join F
> GLIBC_2.30 __libpthread_version_placeholder F
> -GLIBC_2.31 pthread_clockjoin_np F
> +GLIBC_2.31 __libpthread_version_placeholder F
> GLIBC_2.4 _IO_flockfile F
> GLIBC_2.4 _IO_ftrylockfile F
> GLIBC_2.4 _IO_funlockfile F
> @@ -31,9 +30,6 @@ GLIBC_2.4 pthread_cancel F
> GLIBC_2.4 pthread_create F
> GLIBC_2.4 pthread_getconcurrency F
> GLIBC_2.4 pthread_getcpuclockid F
> -GLIBC_2.4 pthread_join F
> GLIBC_2.4 pthread_setaffinity_np F
> GLIBC_2.4 pthread_setconcurrency F
> GLIBC_2.4 pthread_setschedprio F
> -GLIBC_2.4 pthread_timedjoin_np F
> -GLIBC_2.4 pthread_tryjoin_np F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index 99ad04d858..1a88ecbca4 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -878,6 +878,7 @@ GLIBC_2.0 pthread_equal F
> GLIBC_2.0 pthread_exit F
> GLIBC_2.0 pthread_getschedparam F
> GLIBC_2.0 pthread_getspecific F
> +GLIBC_2.0 pthread_join F
> GLIBC_2.0 pthread_key_create F
> GLIBC_2.0 pthread_key_delete F
> GLIBC_2.0 pthread_kill F
> @@ -2109,6 +2110,7 @@ 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_join F
> GLIBC_2.28 thrd_sleep F
> GLIBC_2.28 thrd_yield F
> GLIBC_2.28 tss_create F
> @@ -2244,6 +2246,8 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
> GLIBC_2.3.3 pthread_condattr_getclock F
> GLIBC_2.3.3 pthread_condattr_setclock F
> GLIBC_2.3.3 pthread_getaffinity_np F
> +GLIBC_2.3.3 pthread_timedjoin_np F
> +GLIBC_2.3.3 pthread_tryjoin_np F
> GLIBC_2.3.3 remap_file_pages F
> GLIBC_2.3.3 sched_getaffinity F
> GLIBC_2.3.3 sched_setaffinity F
> @@ -2291,6 +2295,7 @@ GLIBC_2.30 sem_clockwait F
> GLIBC_2.30 tgkill F
> GLIBC_2.30 twalk_r F
> GLIBC_2.31 msgctl F
> +GLIBC_2.31 pthread_clockjoin_np F
> GLIBC_2.31 semctl F
> GLIBC_2.31 shmctl F
> GLIBC_2.32 __libc_single_threaded D 0x1
> @@ -2342,6 +2347,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
> GLIBC_2.34 pthread_barrierattr_getpshared F
> GLIBC_2.34 pthread_barrierattr_init F
> GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_clockjoin_np F
> GLIBC_2.34 pthread_cond_clockwait F
> GLIBC_2.34 pthread_condattr_getclock F
> GLIBC_2.34 pthread_condattr_getpshared F
> @@ -2349,6 +2355,7 @@ 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_join F
> GLIBC_2.34 pthread_key_create F
> GLIBC_2.34 pthread_key_delete F
> GLIBC_2.34 pthread_kill F
> @@ -2396,6 +2403,8 @@ GLIBC_2.34 pthread_spin_lock F
> GLIBC_2.34 pthread_spin_trylock F
> GLIBC_2.34 pthread_spin_unlock F
> GLIBC_2.34 pthread_testcancel F
> +GLIBC_2.34 pthread_timedjoin_np F
> +GLIBC_2.34 pthread_tryjoin_np F
> GLIBC_2.34 sem_clockwait F
> GLIBC_2.34 sem_close F
> GLIBC_2.34 sem_destroy F
> @@ -2409,6 +2418,7 @@ 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 thrd_join F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> GLIBC_2.34 tss_get F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> index 0854a21e65..c7397f889d 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_join F
> GLIBC_2.1 pthread_attr_getguardsize F
> GLIBC_2.1 pthread_attr_getstackaddr F
> GLIBC_2.1 pthread_attr_getstacksize F
> @@ -29,7 +28,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_join F
> GLIBC_2.3.2 __libpthread_version_placeholder F
> GLIBC_2.3.3 __pthread_register_cancel F
> GLIBC_2.3.3 __pthread_register_cancel_defer F
> @@ -37,11 +35,9 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
> GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 pthread_attr_getaffinity_np F
> GLIBC_2.3.3 pthread_setaffinity_np F
> -GLIBC_2.3.3 pthread_timedjoin_np F
> -GLIBC_2.3.3 pthread_tryjoin_np F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_setaffinity_np F
> GLIBC_2.3.4 pthread_setschedprio F
> GLIBC_2.30 __libpthread_version_placeholder F
> -GLIBC_2.31 pthread_clockjoin_np F
> +GLIBC_2.31 __libpthread_version_placeholder F
> GLIBC_2.4 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index 5eebad0468..f07dba5ef0 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -1483,6 +1483,7 @@ GLIBC_2.18 pthread_getaffinity_np F
> GLIBC_2.18 pthread_getattr_np F
> GLIBC_2.18 pthread_getschedparam F
> GLIBC_2.18 pthread_getspecific F
> +GLIBC_2.18 pthread_join F
> GLIBC_2.18 pthread_key_create F
> GLIBC_2.18 pthread_key_delete F
> GLIBC_2.18 pthread_kill F
> @@ -1542,6 +1543,8 @@ GLIBC_2.18 pthread_spin_lock F
> GLIBC_2.18 pthread_spin_trylock F
> GLIBC_2.18 pthread_spin_unlock F
> GLIBC_2.18 pthread_testcancel F
> +GLIBC_2.18 pthread_timedjoin_np F
> +GLIBC_2.18 pthread_tryjoin_np F
> GLIBC_2.18 pthread_yield F
> GLIBC_2.18 ptrace F
> GLIBC_2.18 ptsname F
> @@ -2246,6 +2249,7 @@ 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_join F
> GLIBC_2.28 thrd_sleep F
> GLIBC_2.28 thrd_yield F
> GLIBC_2.28 tss_create F
> @@ -2265,6 +2269,7 @@ GLIBC_2.30 sem_clockwait F
> GLIBC_2.30 tgkill F
> GLIBC_2.30 twalk_r F
> GLIBC_2.31 msgctl F
> +GLIBC_2.31 pthread_clockjoin_np F
> GLIBC_2.31 semctl F
> GLIBC_2.31 shmctl F
> GLIBC_2.32 __libc_single_threaded D 0x1
> @@ -2316,6 +2321,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
> GLIBC_2.34 pthread_barrierattr_getpshared F
> GLIBC_2.34 pthread_barrierattr_init F
> GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_clockjoin_np F
> GLIBC_2.34 pthread_cond_clockwait F
> GLIBC_2.34 pthread_condattr_getclock F
> GLIBC_2.34 pthread_condattr_getpshared F
> @@ -2323,6 +2329,7 @@ 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_join F
> GLIBC_2.34 pthread_key_create F
> GLIBC_2.34 pthread_key_delete F
> GLIBC_2.34 pthread_kill F
> @@ -2370,6 +2377,8 @@ GLIBC_2.34 pthread_spin_lock F
> GLIBC_2.34 pthread_spin_trylock F
> GLIBC_2.34 pthread_spin_unlock F
> GLIBC_2.34 pthread_testcancel F
> +GLIBC_2.34 pthread_timedjoin_np F
> +GLIBC_2.34 pthread_tryjoin_np F
> GLIBC_2.34 sem_clockwait F
> GLIBC_2.34 sem_close F
> GLIBC_2.34 sem_destroy F
> @@ -2383,6 +2392,7 @@ 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 thrd_join F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> GLIBC_2.34 tss_get F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> index f50eb41a1a..2e35824ff0 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> @@ -24,15 +24,11 @@ GLIBC_2.18 pthread_getattr_default_np F
> GLIBC_2.18 pthread_getconcurrency F
> GLIBC_2.18 pthread_getcpuclockid F
> GLIBC_2.18 pthread_getname_np F
> -GLIBC_2.18 pthread_join F
> GLIBC_2.18 pthread_setaffinity_np F
> GLIBC_2.18 pthread_setconcurrency F
> GLIBC_2.18 pthread_setname_np F
> GLIBC_2.18 pthread_setschedprio F
> 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_join F
> GLIBC_2.30 __libpthread_version_placeholder F
> -GLIBC_2.31 pthread_clockjoin_np F
> +GLIBC_2.31 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index 9c54e2d42c..688de4ee35 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -1483,6 +1483,7 @@ GLIBC_2.18 pthread_getaffinity_np F
> GLIBC_2.18 pthread_getattr_np F
> GLIBC_2.18 pthread_getschedparam F
> GLIBC_2.18 pthread_getspecific F
> +GLIBC_2.18 pthread_join F
> GLIBC_2.18 pthread_key_create F
> GLIBC_2.18 pthread_key_delete F
> GLIBC_2.18 pthread_kill F
> @@ -1542,6 +1543,8 @@ GLIBC_2.18 pthread_spin_lock F
> GLIBC_2.18 pthread_spin_trylock F
> GLIBC_2.18 pthread_spin_unlock F
> GLIBC_2.18 pthread_testcancel F
> +GLIBC_2.18 pthread_timedjoin_np F
> +GLIBC_2.18 pthread_tryjoin_np F
> GLIBC_2.18 pthread_yield F
> GLIBC_2.18 ptrace F
> GLIBC_2.18 ptsname F
> @@ -2246,6 +2249,7 @@ 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_join F
> GLIBC_2.28 thrd_sleep F
> GLIBC_2.28 thrd_yield F
> GLIBC_2.28 tss_create F
> @@ -2264,6 +2268,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
> GLIBC_2.30 sem_clockwait F
> GLIBC_2.30 tgkill F
> GLIBC_2.30 twalk_r F
> +GLIBC_2.31 pthread_clockjoin_np F
> GLIBC_2.32 __libc_single_threaded D 0x1
> GLIBC_2.32 pthread_attr_getsigmask_np F
> GLIBC_2.32 pthread_attr_setaffinity_np F
> @@ -2313,6 +2318,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
> GLIBC_2.34 pthread_barrierattr_getpshared F
> GLIBC_2.34 pthread_barrierattr_init F
> GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_clockjoin_np F
> GLIBC_2.34 pthread_cond_clockwait F
> GLIBC_2.34 pthread_condattr_getclock F
> GLIBC_2.34 pthread_condattr_getpshared F
> @@ -2320,6 +2326,7 @@ 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_join F
> GLIBC_2.34 pthread_key_create F
> GLIBC_2.34 pthread_key_delete F
> GLIBC_2.34 pthread_kill F
> @@ -2367,6 +2374,8 @@ GLIBC_2.34 pthread_spin_lock F
> GLIBC_2.34 pthread_spin_trylock F
> GLIBC_2.34 pthread_spin_unlock F
> GLIBC_2.34 pthread_testcancel F
> +GLIBC_2.34 pthread_timedjoin_np F
> +GLIBC_2.34 pthread_tryjoin_np F
> GLIBC_2.34 sem_clockwait F
> GLIBC_2.34 sem_close F
> GLIBC_2.34 sem_destroy F
> @@ -2380,6 +2389,7 @@ 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 thrd_join F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> GLIBC_2.34 tss_get F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> index f50eb41a1a..2e35824ff0 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> @@ -24,15 +24,11 @@ GLIBC_2.18 pthread_getattr_default_np F
> GLIBC_2.18 pthread_getconcurrency F
> GLIBC_2.18 pthread_getcpuclockid F
> GLIBC_2.18 pthread_getname_np F
> -GLIBC_2.18 pthread_join F
> GLIBC_2.18 pthread_setaffinity_np F
> GLIBC_2.18 pthread_setconcurrency F
> GLIBC_2.18 pthread_setname_np F
> GLIBC_2.18 pthread_setschedprio F
> 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_join F
> GLIBC_2.30 __libpthread_version_placeholder F
> -GLIBC_2.31 pthread_clockjoin_np F
> +GLIBC_2.31 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index 34e77850a1..7e82eadb1d 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -875,6 +875,7 @@ GLIBC_2.0 pthread_equal F
> GLIBC_2.0 pthread_exit F
> GLIBC_2.0 pthread_getschedparam F
> GLIBC_2.0 pthread_getspecific F
> +GLIBC_2.0 pthread_join F
> GLIBC_2.0 pthread_key_create F
> GLIBC_2.0 pthread_key_delete F
> GLIBC_2.0 pthread_kill F
> @@ -2079,6 +2080,7 @@ 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_join F
> GLIBC_2.28 thrd_sleep F
> GLIBC_2.28 thrd_yield F
> GLIBC_2.28 tss_create F
> @@ -2210,6 +2212,8 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
> GLIBC_2.3.3 pthread_condattr_getclock F
> GLIBC_2.3.3 pthread_condattr_setclock F
> GLIBC_2.3.3 pthread_getaffinity_np F
> +GLIBC_2.3.3 pthread_timedjoin_np F
> +GLIBC_2.3.3 pthread_tryjoin_np F
> GLIBC_2.3.3 remap_file_pages F
> GLIBC_2.3.3 sched_getaffinity F
> GLIBC_2.3.3 sched_setaffinity F
> @@ -2256,6 +2260,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
> GLIBC_2.30 sem_clockwait F
> GLIBC_2.30 tgkill F
> GLIBC_2.30 twalk_r F
> +GLIBC_2.31 pthread_clockjoin_np F
> GLIBC_2.32 __libc_single_threaded D 0x1
> GLIBC_2.32 pthread_attr_getsigmask_np F
> GLIBC_2.32 pthread_attr_setaffinity_np F
> @@ -2305,6 +2310,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
> GLIBC_2.34 pthread_barrierattr_getpshared F
> GLIBC_2.34 pthread_barrierattr_init F
> GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_clockjoin_np F
> GLIBC_2.34 pthread_cond_clockwait F
> GLIBC_2.34 pthread_condattr_getclock F
> GLIBC_2.34 pthread_condattr_getpshared F
> @@ -2312,6 +2318,7 @@ 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_join F
> GLIBC_2.34 pthread_key_create F
> GLIBC_2.34 pthread_key_delete F
> GLIBC_2.34 pthread_kill F
> @@ -2359,6 +2366,8 @@ GLIBC_2.34 pthread_spin_lock F
> GLIBC_2.34 pthread_spin_trylock F
> GLIBC_2.34 pthread_spin_unlock F
> GLIBC_2.34 pthread_testcancel F
> +GLIBC_2.34 pthread_timedjoin_np F
> +GLIBC_2.34 pthread_tryjoin_np F
> GLIBC_2.34 sem_clockwait F
> GLIBC_2.34 sem_close F
> GLIBC_2.34 sem_destroy F
> @@ -2372,6 +2381,7 @@ 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 thrd_join F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> GLIBC_2.34 tss_get F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> index a1ba1503a5..2a70d89cd8 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_join F
> GLIBC_2.11 pthread_sigqueue F
> GLIBC_2.12 pthread_getname_np F
> GLIBC_2.12 pthread_setname_np 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_join F
> GLIBC_2.3.2 __libpthread_version_placeholder F
> GLIBC_2.3.3 __pthread_register_cancel F
> GLIBC_2.3.3 __pthread_register_cancel_defer F
> @@ -37,11 +35,9 @@ GLIBC_2.3.3 pthread_attr_getaffinity_np F
> GLIBC_2.3.3 pthread_attr_setstack F
> GLIBC_2.3.3 pthread_attr_setstacksize F
> GLIBC_2.3.3 pthread_setaffinity_np F
> -GLIBC_2.3.3 pthread_timedjoin_np F
> -GLIBC_2.3.3 pthread_tryjoin_np F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_setaffinity_np F
> GLIBC_2.3.4 pthread_setschedprio F
> GLIBC_2.30 __libpthread_version_placeholder F
> -GLIBC_2.31 pthread_clockjoin_np F
> +GLIBC_2.31 __libpthread_version_placeholder F
> GLIBC_2.4 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index d01dc8462b..5891b9b563 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -875,6 +875,7 @@ GLIBC_2.0 pthread_equal F
> GLIBC_2.0 pthread_exit F
> GLIBC_2.0 pthread_getschedparam F
> GLIBC_2.0 pthread_getspecific F
> +GLIBC_2.0 pthread_join F
> GLIBC_2.0 pthread_key_create F
> GLIBC_2.0 pthread_key_delete F
> GLIBC_2.0 pthread_kill F
> @@ -2077,6 +2078,7 @@ 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_join F
> GLIBC_2.28 thrd_sleep F
> GLIBC_2.28 thrd_yield F
> GLIBC_2.28 tss_create F
> @@ -2208,6 +2210,8 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
> GLIBC_2.3.3 pthread_condattr_getclock F
> GLIBC_2.3.3 pthread_condattr_setclock F
> GLIBC_2.3.3 pthread_getaffinity_np F
> +GLIBC_2.3.3 pthread_timedjoin_np F
> +GLIBC_2.3.3 pthread_tryjoin_np F
> GLIBC_2.3.3 remap_file_pages F
> GLIBC_2.3.3 sched_getaffinity F
> GLIBC_2.3.3 sched_setaffinity F
> @@ -2254,6 +2258,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
> GLIBC_2.30 sem_clockwait F
> GLIBC_2.30 tgkill F
> GLIBC_2.30 twalk_r F
> +GLIBC_2.31 pthread_clockjoin_np F
> GLIBC_2.32 __libc_single_threaded D 0x1
> GLIBC_2.32 pthread_attr_getsigmask_np F
> GLIBC_2.32 pthread_attr_setaffinity_np F
> @@ -2303,6 +2308,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
> GLIBC_2.34 pthread_barrierattr_getpshared F
> GLIBC_2.34 pthread_barrierattr_init F
> GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_clockjoin_np F
> GLIBC_2.34 pthread_cond_clockwait F
> GLIBC_2.34 pthread_condattr_getclock F
> GLIBC_2.34 pthread_condattr_getpshared F
> @@ -2310,6 +2316,7 @@ 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_join F
> GLIBC_2.34 pthread_key_create F
> GLIBC_2.34 pthread_key_delete F
> GLIBC_2.34 pthread_kill F
> @@ -2357,6 +2364,8 @@ GLIBC_2.34 pthread_spin_lock F
> GLIBC_2.34 pthread_spin_trylock F
> GLIBC_2.34 pthread_spin_unlock F
> GLIBC_2.34 pthread_testcancel F
> +GLIBC_2.34 pthread_timedjoin_np F
> +GLIBC_2.34 pthread_tryjoin_np F
> GLIBC_2.34 sem_clockwait F
> GLIBC_2.34 sem_close F
> GLIBC_2.34 sem_destroy F
> @@ -2370,6 +2379,7 @@ 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 thrd_join F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> GLIBC_2.34 tss_get F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> index a1ba1503a5..2a70d89cd8 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_join F
> GLIBC_2.11 pthread_sigqueue F
> GLIBC_2.12 pthread_getname_np F
> GLIBC_2.12 pthread_setname_np 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_join F
> GLIBC_2.3.2 __libpthread_version_placeholder F
> GLIBC_2.3.3 __pthread_register_cancel F
> GLIBC_2.3.3 __pthread_register_cancel_defer F
> @@ -37,11 +35,9 @@ GLIBC_2.3.3 pthread_attr_getaffinity_np F
> GLIBC_2.3.3 pthread_attr_setstack F
> GLIBC_2.3.3 pthread_attr_setstacksize F
> GLIBC_2.3.3 pthread_setaffinity_np F
> -GLIBC_2.3.3 pthread_timedjoin_np F
> -GLIBC_2.3.3 pthread_tryjoin_np F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_setaffinity_np F
> GLIBC_2.3.4 pthread_setschedprio F
> GLIBC_2.30 __libpthread_version_placeholder F
> -GLIBC_2.31 pthread_clockjoin_np F
> +GLIBC_2.31 __libpthread_version_placeholder F
> GLIBC_2.4 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index a906bb949a..dbf9dcf588 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -875,6 +875,7 @@ GLIBC_2.0 pthread_equal F
> GLIBC_2.0 pthread_exit F
> GLIBC_2.0 pthread_getschedparam F
> GLIBC_2.0 pthread_getspecific F
> +GLIBC_2.0 pthread_join F
> GLIBC_2.0 pthread_key_create F
> GLIBC_2.0 pthread_key_delete F
> GLIBC_2.0 pthread_kill F
> @@ -2085,6 +2086,7 @@ 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_join F
> GLIBC_2.28 thrd_sleep F
> GLIBC_2.28 thrd_yield F
> GLIBC_2.28 tss_create F
> @@ -2216,6 +2218,8 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
> GLIBC_2.3.3 pthread_condattr_getclock F
> GLIBC_2.3.3 pthread_condattr_setclock F
> GLIBC_2.3.3 pthread_getaffinity_np F
> +GLIBC_2.3.3 pthread_timedjoin_np F
> +GLIBC_2.3.3 pthread_tryjoin_np F
> GLIBC_2.3.3 remap_file_pages F
> GLIBC_2.3.3 sched_getaffinity F
> GLIBC_2.3.3 sched_setaffinity F
> @@ -2262,6 +2266,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
> GLIBC_2.30 sem_clockwait F
> GLIBC_2.30 tgkill F
> GLIBC_2.30 twalk_r F
> +GLIBC_2.31 pthread_clockjoin_np F
> GLIBC_2.32 __libc_single_threaded D 0x1
> GLIBC_2.32 pthread_attr_getsigmask_np F
> GLIBC_2.32 pthread_attr_setaffinity_np F
> @@ -2311,6 +2316,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
> GLIBC_2.34 pthread_barrierattr_getpshared F
> GLIBC_2.34 pthread_barrierattr_init F
> GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_clockjoin_np F
> GLIBC_2.34 pthread_cond_clockwait F
> GLIBC_2.34 pthread_condattr_getclock F
> GLIBC_2.34 pthread_condattr_getpshared F
> @@ -2318,6 +2324,7 @@ 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_join F
> GLIBC_2.34 pthread_key_create F
> GLIBC_2.34 pthread_key_delete F
> GLIBC_2.34 pthread_kill F
> @@ -2365,6 +2372,8 @@ GLIBC_2.34 pthread_spin_lock F
> GLIBC_2.34 pthread_spin_trylock F
> GLIBC_2.34 pthread_spin_unlock F
> GLIBC_2.34 pthread_testcancel F
> +GLIBC_2.34 pthread_timedjoin_np F
> +GLIBC_2.34 pthread_tryjoin_np F
> GLIBC_2.34 sem_clockwait F
> GLIBC_2.34 sem_close F
> GLIBC_2.34 sem_destroy F
> @@ -2378,6 +2387,7 @@ 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 thrd_join F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> GLIBC_2.34 tss_get F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index 89dd91a0a4..ed31156fe5 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -873,6 +873,7 @@ GLIBC_2.0 pthread_equal F
> GLIBC_2.0 pthread_exit F
> GLIBC_2.0 pthread_getschedparam F
> GLIBC_2.0 pthread_getspecific F
> +GLIBC_2.0 pthread_join F
> GLIBC_2.0 pthread_key_create F
> GLIBC_2.0 pthread_key_delete F
> GLIBC_2.0 pthread_kill F
> @@ -2080,6 +2081,7 @@ 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_join F
> GLIBC_2.28 thrd_sleep F
> GLIBC_2.28 thrd_yield F
> GLIBC_2.28 tss_create F
> @@ -2208,6 +2210,8 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
> GLIBC_2.3.3 pthread_condattr_getclock F
> GLIBC_2.3.3 pthread_condattr_setclock F
> GLIBC_2.3.3 pthread_getaffinity_np F
> +GLIBC_2.3.3 pthread_timedjoin_np F
> +GLIBC_2.3.3 pthread_tryjoin_np F
> GLIBC_2.3.3 remap_file_pages F
> GLIBC_2.3.3 sched_getaffinity F
> GLIBC_2.3.3 sched_setaffinity F
> @@ -2256,6 +2260,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
> GLIBC_2.30 sem_clockwait F
> GLIBC_2.30 tgkill F
> GLIBC_2.30 twalk_r F
> +GLIBC_2.31 pthread_clockjoin_np F
> GLIBC_2.32 __libc_single_threaded D 0x1
> GLIBC_2.32 pthread_attr_getsigmask_np F
> GLIBC_2.32 pthread_attr_setaffinity_np F
> @@ -2305,6 +2310,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
> GLIBC_2.34 pthread_barrierattr_getpshared F
> GLIBC_2.34 pthread_barrierattr_init F
> GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_clockjoin_np F
> GLIBC_2.34 pthread_cond_clockwait F
> GLIBC_2.34 pthread_condattr_getclock F
> GLIBC_2.34 pthread_condattr_getpshared F
> @@ -2312,6 +2318,7 @@ 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_join F
> GLIBC_2.34 pthread_key_create F
> GLIBC_2.34 pthread_key_delete F
> GLIBC_2.34 pthread_kill F
> @@ -2359,6 +2366,8 @@ GLIBC_2.34 pthread_spin_lock F
> GLIBC_2.34 pthread_spin_trylock F
> GLIBC_2.34 pthread_spin_unlock F
> GLIBC_2.34 pthread_testcancel F
> +GLIBC_2.34 pthread_timedjoin_np F
> +GLIBC_2.34 pthread_tryjoin_np F
> GLIBC_2.34 sem_clockwait F
> GLIBC_2.34 sem_close F
> GLIBC_2.34 sem_destroy F
> @@ -2372,6 +2381,7 @@ 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 thrd_join F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> GLIBC_2.34 tss_get F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index 8b2b19d09b..bca4034be2 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -1526,6 +1526,7 @@ GLIBC_2.21 pthread_getaffinity_np F
> GLIBC_2.21 pthread_getattr_np F
> GLIBC_2.21 pthread_getschedparam F
> GLIBC_2.21 pthread_getspecific F
> +GLIBC_2.21 pthread_join F
> GLIBC_2.21 pthread_key_create F
> GLIBC_2.21 pthread_key_delete F
> GLIBC_2.21 pthread_kill F
> @@ -1585,6 +1586,8 @@ GLIBC_2.21 pthread_spin_lock F
> GLIBC_2.21 pthread_spin_trylock F
> GLIBC_2.21 pthread_spin_unlock F
> GLIBC_2.21 pthread_testcancel F
> +GLIBC_2.21 pthread_timedjoin_np F
> +GLIBC_2.21 pthread_tryjoin_np F
> GLIBC_2.21 pthread_yield F
> GLIBC_2.21 ptrace F
> GLIBC_2.21 ptsname F
> @@ -2288,6 +2291,7 @@ 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_join F
> GLIBC_2.28 thrd_sleep F
> GLIBC_2.28 thrd_yield F
> GLIBC_2.28 tss_create F
> @@ -2306,6 +2310,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
> GLIBC_2.30 sem_clockwait F
> GLIBC_2.30 tgkill F
> GLIBC_2.30 twalk_r F
> +GLIBC_2.31 pthread_clockjoin_np F
> GLIBC_2.32 __libc_single_threaded D 0x1
> GLIBC_2.32 pthread_attr_getsigmask_np F
> GLIBC_2.32 pthread_attr_setaffinity_np F
> @@ -2355,6 +2360,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
> GLIBC_2.34 pthread_barrierattr_getpshared F
> GLIBC_2.34 pthread_barrierattr_init F
> GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_clockjoin_np F
> GLIBC_2.34 pthread_cond_clockwait F
> GLIBC_2.34 pthread_condattr_getclock F
> GLIBC_2.34 pthread_condattr_getpshared F
> @@ -2362,6 +2368,7 @@ 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_join F
> GLIBC_2.34 pthread_key_create F
> GLIBC_2.34 pthread_key_delete F
> GLIBC_2.34 pthread_kill F
> @@ -2409,6 +2416,8 @@ GLIBC_2.34 pthread_spin_lock F
> GLIBC_2.34 pthread_spin_trylock F
> GLIBC_2.34 pthread_spin_unlock F
> GLIBC_2.34 pthread_testcancel F
> +GLIBC_2.34 pthread_timedjoin_np F
> +GLIBC_2.34 pthread_tryjoin_np F
> GLIBC_2.34 sem_clockwait F
> GLIBC_2.34 sem_close F
> GLIBC_2.34 sem_destroy F
> @@ -2422,6 +2431,7 @@ 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 thrd_join F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> GLIBC_2.34 tss_get F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> index 27fb415228..220d80ea95 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> @@ -24,15 +24,11 @@ GLIBC_2.21 pthread_getattr_default_np F
> GLIBC_2.21 pthread_getconcurrency F
> GLIBC_2.21 pthread_getcpuclockid F
> GLIBC_2.21 pthread_getname_np F
> -GLIBC_2.21 pthread_join F
> GLIBC_2.21 pthread_setaffinity_np F
> GLIBC_2.21 pthread_setconcurrency F
> GLIBC_2.21 pthread_setname_np F
> GLIBC_2.21 pthread_setschedprio F
> 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_join F
> GLIBC_2.30 __libpthread_version_placeholder F
> -GLIBC_2.31 pthread_clockjoin_np F
> +GLIBC_2.31 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index 84aab42aaa..5de9636022 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -886,6 +886,7 @@ GLIBC_2.0 pthread_equal F
> GLIBC_2.0 pthread_exit F
> GLIBC_2.0 pthread_getschedparam F
> GLIBC_2.0 pthread_getspecific F
> +GLIBC_2.0 pthread_join F
> GLIBC_2.0 pthread_key_create F
> GLIBC_2.0 pthread_key_delete F
> GLIBC_2.0 pthread_kill F
> @@ -2113,6 +2114,7 @@ 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_join F
> GLIBC_2.28 thrd_sleep F
> GLIBC_2.28 thrd_yield F
> GLIBC_2.28 tss_create F
> @@ -2250,6 +2252,8 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
> GLIBC_2.3.3 pthread_condattr_getclock F
> GLIBC_2.3.3 pthread_condattr_setclock F
> GLIBC_2.3.3 pthread_getaffinity_np F
> +GLIBC_2.3.3 pthread_timedjoin_np F
> +GLIBC_2.3.3 pthread_tryjoin_np F
> GLIBC_2.3.3 remap_file_pages F
> GLIBC_2.3.3 sched_getaffinity F
> GLIBC_2.3.3 sched_setaffinity F
> @@ -2320,6 +2324,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
> GLIBC_2.30 sem_clockwait F
> GLIBC_2.30 tgkill F
> GLIBC_2.30 twalk_r F
> +GLIBC_2.31 pthread_clockjoin_np F
> GLIBC_2.32 __libc_single_threaded D 0x1
> GLIBC_2.32 pthread_attr_getsigmask_np F
> GLIBC_2.32 pthread_attr_setaffinity_np F
> @@ -2369,6 +2374,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
> GLIBC_2.34 pthread_barrierattr_getpshared F
> GLIBC_2.34 pthread_barrierattr_init F
> GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_clockjoin_np F
> GLIBC_2.34 pthread_cond_clockwait F
> GLIBC_2.34 pthread_condattr_getclock F
> GLIBC_2.34 pthread_condattr_getpshared F
> @@ -2376,6 +2382,7 @@ 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_join F
> GLIBC_2.34 pthread_key_create F
> GLIBC_2.34 pthread_key_delete F
> GLIBC_2.34 pthread_kill F
> @@ -2423,6 +2430,8 @@ GLIBC_2.34 pthread_spin_lock F
> GLIBC_2.34 pthread_spin_trylock F
> GLIBC_2.34 pthread_spin_unlock F
> GLIBC_2.34 pthread_testcancel F
> +GLIBC_2.34 pthread_timedjoin_np F
> +GLIBC_2.34 pthread_tryjoin_np F
> GLIBC_2.34 sem_clockwait F
> GLIBC_2.34 sem_close F
> GLIBC_2.34 sem_destroy F
> @@ -2436,6 +2445,7 @@ 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 thrd_join F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> GLIBC_2.34 tss_get F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> index 831b66ee72..1286f68dad 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_join F
> GLIBC_2.1 pthread_attr_getguardsize F
> GLIBC_2.1 pthread_attr_getstackaddr F
> GLIBC_2.1 pthread_attr_getstacksize F
> @@ -29,7 +28,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_join F
> GLIBC_2.3.2 __libpthread_version_placeholder F
> GLIBC_2.3.3 __pthread_register_cancel F
> GLIBC_2.3.3 __pthread_register_cancel_defer F
> @@ -37,13 +35,11 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
> GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 pthread_attr_getaffinity_np F
> GLIBC_2.3.3 pthread_setaffinity_np F
> -GLIBC_2.3.3 pthread_timedjoin_np F
> -GLIBC_2.3.3 pthread_tryjoin_np F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_setaffinity_np F
> GLIBC_2.3.4 pthread_setschedprio F
> GLIBC_2.30 __libpthread_version_placeholder F
> -GLIBC_2.31 pthread_clockjoin_np F
> +GLIBC_2.31 __libpthread_version_placeholder F
> GLIBC_2.4 __libpthread_version_placeholder F
> GLIBC_2.6 pthread_attr_setstack F
> GLIBC_2.6 pthread_attr_setstacksize F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index 00201c5544..10cb492163 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -886,6 +886,7 @@ GLIBC_2.0 pthread_equal F
> GLIBC_2.0 pthread_exit F
> GLIBC_2.0 pthread_getschedparam F
> GLIBC_2.0 pthread_getspecific F
> +GLIBC_2.0 pthread_join F
> GLIBC_2.0 pthread_key_create F
> GLIBC_2.0 pthread_key_delete F
> GLIBC_2.0 pthread_kill F
> @@ -2117,6 +2118,7 @@ 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_join F
> GLIBC_2.28 thrd_sleep F
> GLIBC_2.28 thrd_yield F
> GLIBC_2.28 tss_create F
> @@ -2283,6 +2285,8 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
> GLIBC_2.3.3 pthread_condattr_getclock F
> GLIBC_2.3.3 pthread_condattr_setclock F
> GLIBC_2.3.3 pthread_getaffinity_np F
> +GLIBC_2.3.3 pthread_timedjoin_np F
> +GLIBC_2.3.3 pthread_tryjoin_np F
> GLIBC_2.3.3 remap_file_pages F
> GLIBC_2.3.3 sched_getaffinity F
> GLIBC_2.3.3 sched_setaffinity F
> @@ -2353,6 +2357,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
> GLIBC_2.30 sem_clockwait F
> GLIBC_2.30 tgkill F
> GLIBC_2.30 twalk_r F
> +GLIBC_2.31 pthread_clockjoin_np F
> GLIBC_2.32 __libc_single_threaded D 0x1
> GLIBC_2.32 pthread_attr_getsigmask_np F
> GLIBC_2.32 pthread_attr_setaffinity_np F
> @@ -2402,6 +2407,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
> GLIBC_2.34 pthread_barrierattr_getpshared F
> GLIBC_2.34 pthread_barrierattr_init F
> GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_clockjoin_np F
> GLIBC_2.34 pthread_cond_clockwait F
> GLIBC_2.34 pthread_condattr_getclock F
> GLIBC_2.34 pthread_condattr_getpshared F
> @@ -2409,6 +2415,7 @@ 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_join F
> GLIBC_2.34 pthread_key_create F
> GLIBC_2.34 pthread_key_delete F
> GLIBC_2.34 pthread_kill F
> @@ -2456,6 +2463,8 @@ GLIBC_2.34 pthread_spin_lock F
> GLIBC_2.34 pthread_spin_trylock F
> GLIBC_2.34 pthread_spin_unlock F
> GLIBC_2.34 pthread_testcancel F
> +GLIBC_2.34 pthread_timedjoin_np F
> +GLIBC_2.34 pthread_tryjoin_np F
> GLIBC_2.34 sem_clockwait F
> GLIBC_2.34 sem_close F
> GLIBC_2.34 sem_destroy F
> @@ -2469,6 +2478,7 @@ 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 thrd_join F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> GLIBC_2.34 tss_get F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index 8725f4a851..4d72e24c22 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -140,6 +140,7 @@ GLIBC_2.28 thrd_current F
> GLIBC_2.28 thrd_detach F
> GLIBC_2.28 thrd_equal F
> GLIBC_2.28 thrd_exit F
> +GLIBC_2.28 thrd_join F
> GLIBC_2.28 thrd_sleep F
> GLIBC_2.28 thrd_yield F
> GLIBC_2.28 tss_create F
> @@ -1429,6 +1430,7 @@ GLIBC_2.3 pthread_exit F
> GLIBC_2.3 pthread_getattr_np F
> GLIBC_2.3 pthread_getschedparam F
> GLIBC_2.3 pthread_getspecific F
> +GLIBC_2.3 pthread_join F
> GLIBC_2.3 pthread_key_create F
> GLIBC_2.3 pthread_key_delete F
> GLIBC_2.3 pthread_kill F
> @@ -2099,6 +2101,8 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
> GLIBC_2.3.3 pthread_condattr_getclock F
> GLIBC_2.3.3 pthread_condattr_setclock F
> GLIBC_2.3.3 pthread_getaffinity_np F
> +GLIBC_2.3.3 pthread_timedjoin_np F
> +GLIBC_2.3.3 pthread_tryjoin_np F
> GLIBC_2.3.3 remap_file_pages F
> GLIBC_2.3.3 sched_getaffinity F
> GLIBC_2.3.3 sched_setaffinity F
> @@ -2168,6 +2172,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
> GLIBC_2.30 sem_clockwait F
> GLIBC_2.30 tgkill F
> GLIBC_2.30 twalk_r F
> +GLIBC_2.31 pthread_clockjoin_np F
> GLIBC_2.32 __libc_single_threaded D 0x1
> GLIBC_2.32 pthread_attr_getsigmask_np F
> GLIBC_2.32 pthread_attr_setaffinity_np F
> @@ -2217,6 +2222,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
> GLIBC_2.34 pthread_barrierattr_getpshared F
> GLIBC_2.34 pthread_barrierattr_init F
> GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_clockjoin_np F
> GLIBC_2.34 pthread_cond_clockwait F
> GLIBC_2.34 pthread_condattr_getclock F
> GLIBC_2.34 pthread_condattr_getpshared F
> @@ -2224,6 +2230,7 @@ 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_join F
> GLIBC_2.34 pthread_key_create F
> GLIBC_2.34 pthread_key_delete F
> GLIBC_2.34 pthread_kill F
> @@ -2271,6 +2278,8 @@ GLIBC_2.34 pthread_spin_lock F
> GLIBC_2.34 pthread_spin_trylock F
> GLIBC_2.34 pthread_spin_unlock F
> GLIBC_2.34 pthread_testcancel F
> +GLIBC_2.34 pthread_timedjoin_np F
> +GLIBC_2.34 pthread_tryjoin_np F
> GLIBC_2.34 sem_clockwait F
> GLIBC_2.34 sem_close F
> GLIBC_2.34 sem_destroy F
> @@ -2284,6 +2293,7 @@ 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 thrd_join F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> GLIBC_2.34 tss_get F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> index 91a5618412..496c83d9df 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_join F
> GLIBC_2.3 _IO_flockfile F
> GLIBC_2.3 _IO_ftrylockfile F
> GLIBC_2.3 _IO_funlockfile F
> @@ -23,7 +22,6 @@ GLIBC_2.3 pthread_cancel F
> GLIBC_2.3 pthread_create F
> GLIBC_2.3 pthread_getconcurrency F
> GLIBC_2.3 pthread_getcpuclockid F
> -GLIBC_2.3 pthread_join F
> GLIBC_2.3 pthread_setconcurrency F
> GLIBC_2.3.2 __libpthread_version_placeholder F
> GLIBC_2.3.3 __pthread_register_cancel F
> @@ -32,13 +30,11 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
> GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 pthread_attr_getaffinity_np F
> GLIBC_2.3.3 pthread_setaffinity_np F
> -GLIBC_2.3.3 pthread_timedjoin_np F
> -GLIBC_2.3.3 pthread_tryjoin_np F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_setaffinity_np F
> GLIBC_2.3.4 pthread_setschedprio F
> GLIBC_2.30 __libpthread_version_placeholder F
> -GLIBC_2.31 pthread_clockjoin_np F
> +GLIBC_2.31 __libpthread_version_placeholder F
> GLIBC_2.4 __libpthread_version_placeholder F
> GLIBC_2.6 pthread_attr_setstack F
> GLIBC_2.6 pthread_attr_setstacksize F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index 89ab60dc38..d3ac4aeefc 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -1569,6 +1569,7 @@ GLIBC_2.17 pthread_getaffinity_np F
> GLIBC_2.17 pthread_getattr_np F
> GLIBC_2.17 pthread_getschedparam F
> GLIBC_2.17 pthread_getspecific F
> +GLIBC_2.17 pthread_join F
> GLIBC_2.17 pthread_key_create F
> GLIBC_2.17 pthread_key_delete F
> GLIBC_2.17 pthread_kill F
> @@ -1627,6 +1628,8 @@ GLIBC_2.17 pthread_spin_lock F
> GLIBC_2.17 pthread_spin_trylock F
> GLIBC_2.17 pthread_spin_unlock F
> GLIBC_2.17 pthread_testcancel F
> +GLIBC_2.17 pthread_timedjoin_np F
> +GLIBC_2.17 pthread_tryjoin_np F
> GLIBC_2.17 pthread_yield F
> GLIBC_2.17 ptrace F
> GLIBC_2.17 ptsname F
> @@ -2345,6 +2348,7 @@ 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_join F
> GLIBC_2.28 thrd_sleep F
> GLIBC_2.28 thrd_yield F
> GLIBC_2.28 tss_create F
> @@ -2375,6 +2379,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
> GLIBC_2.30 sem_clockwait F
> GLIBC_2.30 tgkill F
> GLIBC_2.30 twalk_r F
> +GLIBC_2.31 pthread_clockjoin_np F
> GLIBC_2.32 __argp_errorieee128 F
> GLIBC_2.32 __argp_failureieee128 F
> GLIBC_2.32 __asprintf_chkieee128 F
> @@ -2518,6 +2523,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
> GLIBC_2.34 pthread_barrierattr_getpshared F
> GLIBC_2.34 pthread_barrierattr_init F
> GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_clockjoin_np F
> GLIBC_2.34 pthread_cond_clockwait F
> GLIBC_2.34 pthread_condattr_getclock F
> GLIBC_2.34 pthread_condattr_getpshared F
> @@ -2525,6 +2531,7 @@ 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_join F
> GLIBC_2.34 pthread_key_create F
> GLIBC_2.34 pthread_key_delete F
> GLIBC_2.34 pthread_kill F
> @@ -2572,6 +2579,8 @@ GLIBC_2.34 pthread_spin_lock F
> GLIBC_2.34 pthread_spin_trylock F
> GLIBC_2.34 pthread_spin_unlock F
> GLIBC_2.34 pthread_testcancel F
> +GLIBC_2.34 pthread_timedjoin_np F
> +GLIBC_2.34 pthread_tryjoin_np F
> GLIBC_2.34 sem_clockwait F
> GLIBC_2.34 sem_close F
> GLIBC_2.34 sem_destroy F
> @@ -2585,6 +2594,7 @@ 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 thrd_join F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> GLIBC_2.34 tss_get F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> index 71627a5cc8..fd8f0f7d1c 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> @@ -23,16 +23,12 @@ GLIBC_2.17 pthread_create F
> GLIBC_2.17 pthread_getconcurrency F
> GLIBC_2.17 pthread_getcpuclockid F
> GLIBC_2.17 pthread_getname_np F
> -GLIBC_2.17 pthread_join F
> GLIBC_2.17 pthread_setaffinity_np F
> GLIBC_2.17 pthread_setconcurrency F
> GLIBC_2.17 pthread_setname_np F
> GLIBC_2.17 pthread_setschedprio F
> GLIBC_2.17 pthread_sigqueue F
> -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_join F
> GLIBC_2.30 __libpthread_version_placeholder F
> -GLIBC_2.31 pthread_clockjoin_np F
> +GLIBC_2.31 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index e201491852..dcef189dcc 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -1403,6 +1403,7 @@ GLIBC_2.33 pthread_barrierattr_destroy F
> GLIBC_2.33 pthread_barrierattr_getpshared F
> GLIBC_2.33 pthread_barrierattr_init F
> GLIBC_2.33 pthread_barrierattr_setpshared F
> +GLIBC_2.33 pthread_clockjoin_np F
> GLIBC_2.33 pthread_cond_broadcast F
> GLIBC_2.33 pthread_cond_clockwait F
> GLIBC_2.33 pthread_cond_destroy F
> @@ -1423,6 +1424,7 @@ GLIBC_2.33 pthread_getaffinity_np F
> GLIBC_2.33 pthread_getattr_np F
> GLIBC_2.33 pthread_getschedparam F
> GLIBC_2.33 pthread_getspecific F
> +GLIBC_2.33 pthread_join F
> GLIBC_2.33 pthread_key_create F
> GLIBC_2.33 pthread_key_delete F
> GLIBC_2.33 pthread_kill F
> @@ -1485,6 +1487,8 @@ GLIBC_2.33 pthread_spin_lock F
> GLIBC_2.33 pthread_spin_trylock F
> GLIBC_2.33 pthread_spin_unlock F
> GLIBC_2.33 pthread_testcancel F
> +GLIBC_2.33 pthread_timedjoin_np F
> +GLIBC_2.33 pthread_tryjoin_np F
> GLIBC_2.33 pthread_yield F
> GLIBC_2.33 ptrace F
> GLIBC_2.33 ptsname F
> @@ -1876,6 +1880,7 @@ 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_join F
> GLIBC_2.33 thrd_sleep F
> GLIBC_2.33 thrd_yield F
> GLIBC_2.33 time F
> @@ -2083,6 +2088,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
> GLIBC_2.34 pthread_barrierattr_getpshared F
> GLIBC_2.34 pthread_barrierattr_init F
> GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_clockjoin_np F
> GLIBC_2.34 pthread_cond_clockwait F
> GLIBC_2.34 pthread_condattr_getclock F
> GLIBC_2.34 pthread_condattr_getpshared F
> @@ -2090,6 +2096,7 @@ 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_join F
> GLIBC_2.34 pthread_key_create F
> GLIBC_2.34 pthread_key_delete F
> GLIBC_2.34 pthread_kill F
> @@ -2137,6 +2144,8 @@ GLIBC_2.34 pthread_spin_lock F
> GLIBC_2.34 pthread_spin_trylock F
> GLIBC_2.34 pthread_spin_unlock F
> GLIBC_2.34 pthread_testcancel F
> +GLIBC_2.34 pthread_timedjoin_np F
> +GLIBC_2.34 pthread_tryjoin_np F
> GLIBC_2.34 sem_clockwait F
> GLIBC_2.34 sem_close F
> GLIBC_2.34 sem_destroy F
> @@ -2150,6 +2159,7 @@ 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 thrd_join F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> GLIBC_2.34 tss_get F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> index 0ad1f57b44..0979096ed7 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> @@ -19,19 +19,14 @@ GLIBC_2.33 pthread_attr_setstack F
> GLIBC_2.33 pthread_attr_setstackaddr F
> 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_getattr_default_np F
> GLIBC_2.33 pthread_getconcurrency F
> GLIBC_2.33 pthread_getcpuclockid F
> GLIBC_2.33 pthread_getname_np F
> -GLIBC_2.33 pthread_join F
> GLIBC_2.33 pthread_setaffinity_np F
> GLIBC_2.33 pthread_setconcurrency F
> GLIBC_2.33 pthread_setname_np F
> GLIBC_2.33 pthread_setschedprio F
> 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_join F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index 8f5d8490a7..806d787b3f 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -1471,6 +1471,7 @@ GLIBC_2.27 pthread_getaffinity_np F
> GLIBC_2.27 pthread_getattr_np F
> GLIBC_2.27 pthread_getschedparam F
> GLIBC_2.27 pthread_getspecific F
> +GLIBC_2.27 pthread_join F
> GLIBC_2.27 pthread_key_create F
> GLIBC_2.27 pthread_key_delete F
> GLIBC_2.27 pthread_kill F
> @@ -1530,6 +1531,8 @@ GLIBC_2.27 pthread_spin_lock F
> GLIBC_2.27 pthread_spin_trylock F
> GLIBC_2.27 pthread_spin_unlock F
> GLIBC_2.27 pthread_testcancel F
> +GLIBC_2.27 pthread_timedjoin_np F
> +GLIBC_2.27 pthread_tryjoin_np F
> GLIBC_2.27 pthread_yield F
> GLIBC_2.27 ptrace F
> GLIBC_2.27 ptsname F
> @@ -2216,6 +2219,7 @@ 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_join F
> GLIBC_2.28 thrd_sleep F
> GLIBC_2.28 thrd_yield F
> GLIBC_2.28 tss_create F
> @@ -2234,6 +2238,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
> GLIBC_2.30 sem_clockwait F
> GLIBC_2.30 tgkill F
> GLIBC_2.30 twalk_r F
> +GLIBC_2.31 pthread_clockjoin_np F
> GLIBC_2.32 __libc_single_threaded D 0x1
> GLIBC_2.32 pthread_attr_getsigmask_np F
> GLIBC_2.32 pthread_attr_setaffinity_np F
> @@ -2283,6 +2288,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
> GLIBC_2.34 pthread_barrierattr_getpshared F
> GLIBC_2.34 pthread_barrierattr_init F
> GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_clockjoin_np F
> GLIBC_2.34 pthread_cond_clockwait F
> GLIBC_2.34 pthread_condattr_getclock F
> GLIBC_2.34 pthread_condattr_getpshared F
> @@ -2290,6 +2296,7 @@ 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_join F
> GLIBC_2.34 pthread_key_create F
> GLIBC_2.34 pthread_key_delete F
> GLIBC_2.34 pthread_kill F
> @@ -2337,6 +2344,8 @@ GLIBC_2.34 pthread_spin_lock F
> GLIBC_2.34 pthread_spin_trylock F
> GLIBC_2.34 pthread_spin_unlock F
> GLIBC_2.34 pthread_testcancel F
> +GLIBC_2.34 pthread_timedjoin_np F
> +GLIBC_2.34 pthread_tryjoin_np F
> GLIBC_2.34 sem_clockwait F
> GLIBC_2.34 sem_close F
> GLIBC_2.34 sem_destroy F
> @@ -2350,6 +2359,7 @@ 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 thrd_join F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> GLIBC_2.34 tss_get F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> index 74b4bdce74..98d64de740 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> @@ -24,15 +24,11 @@ GLIBC_2.27 pthread_getattr_default_np F
> GLIBC_2.27 pthread_getconcurrency F
> GLIBC_2.27 pthread_getcpuclockid F
> GLIBC_2.27 pthread_getname_np F
> -GLIBC_2.27 pthread_join F
> GLIBC_2.27 pthread_setaffinity_np F
> GLIBC_2.27 pthread_setconcurrency F
> GLIBC_2.27 pthread_setname_np F
> GLIBC_2.27 pthread_setschedprio F
> 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_join F
> GLIBC_2.30 __libpthread_version_placeholder F
> -GLIBC_2.31 pthread_clockjoin_np F
> +GLIBC_2.31 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index 686a10ee24..52f3cc5a97 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -877,6 +877,7 @@ GLIBC_2.0 pthread_equal F
> GLIBC_2.0 pthread_exit F
> GLIBC_2.0 pthread_getschedparam F
> GLIBC_2.0 pthread_getspecific F
> +GLIBC_2.0 pthread_join F
> GLIBC_2.0 pthread_key_create F
> GLIBC_2.0 pthread_key_delete F
> GLIBC_2.0 pthread_kill F
> @@ -2122,6 +2123,7 @@ 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_join F
> GLIBC_2.28 thrd_sleep F
> GLIBC_2.28 thrd_yield F
> GLIBC_2.28 tss_create F
> @@ -2257,6 +2259,8 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
> GLIBC_2.3.3 pthread_condattr_getclock F
> GLIBC_2.3.3 pthread_condattr_setclock F
> GLIBC_2.3.3 pthread_getaffinity_np F
> +GLIBC_2.3.3 pthread_timedjoin_np F
> +GLIBC_2.3.3 pthread_tryjoin_np F
> GLIBC_2.3.3 remap_file_pages F
> GLIBC_2.3.3 sched_getaffinity F
> GLIBC_2.3.3 sched_setaffinity F
> @@ -2316,6 +2320,7 @@ GLIBC_2.30 sem_clockwait F
> GLIBC_2.30 tgkill F
> GLIBC_2.30 twalk_r F
> GLIBC_2.31 msgctl F
> +GLIBC_2.31 pthread_clockjoin_np F
> GLIBC_2.31 semctl F
> GLIBC_2.31 shmctl F
> GLIBC_2.32 __libc_single_threaded D 0x1
> @@ -2367,6 +2372,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
> GLIBC_2.34 pthread_barrierattr_getpshared F
> GLIBC_2.34 pthread_barrierattr_init F
> GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_clockjoin_np F
> GLIBC_2.34 pthread_cond_clockwait F
> GLIBC_2.34 pthread_condattr_getclock F
> GLIBC_2.34 pthread_condattr_getpshared F
> @@ -2374,6 +2380,7 @@ 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_join F
> GLIBC_2.34 pthread_key_create F
> GLIBC_2.34 pthread_key_delete F
> GLIBC_2.34 pthread_kill F
> @@ -2421,6 +2428,8 @@ GLIBC_2.34 pthread_spin_lock F
> GLIBC_2.34 pthread_spin_trylock F
> GLIBC_2.34 pthread_spin_unlock F
> GLIBC_2.34 pthread_testcancel F
> +GLIBC_2.34 pthread_timedjoin_np F
> +GLIBC_2.34 pthread_tryjoin_np F
> GLIBC_2.34 sem_clockwait F
> GLIBC_2.34 sem_close F
> GLIBC_2.34 sem_destroy F
> @@ -2434,6 +2443,7 @@ 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 thrd_join F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> GLIBC_2.34 tss_get F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> index 87db062308..df9de2e5ed 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_join F
> GLIBC_2.1 pthread_attr_getguardsize F
> GLIBC_2.1 pthread_attr_getstackaddr F
> GLIBC_2.1 pthread_attr_getstacksize 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_join F
> GLIBC_2.3.2 __libpthread_version_placeholder F
> GLIBC_2.3.3 __pthread_register_cancel F
> GLIBC_2.3.3 __pthread_register_cancel_defer F
> @@ -38,11 +36,9 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
> GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 pthread_attr_getaffinity_np F
> GLIBC_2.3.3 pthread_setaffinity_np F
> -GLIBC_2.3.3 pthread_timedjoin_np F
> -GLIBC_2.3.3 pthread_tryjoin_np F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_setaffinity_np F
> GLIBC_2.3.4 pthread_setschedprio F
> GLIBC_2.30 __libpthread_version_placeholder F
> -GLIBC_2.31 pthread_clockjoin_np F
> +GLIBC_2.31 __libpthread_version_placeholder F
> GLIBC_2.4 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index 8ff9d69dca..96dcf91860 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -1322,6 +1322,7 @@ GLIBC_2.2 pthread_equal F
> GLIBC_2.2 pthread_exit F
> GLIBC_2.2 pthread_getschedparam F
> GLIBC_2.2 pthread_getspecific F
> +GLIBC_2.2 pthread_join F
> GLIBC_2.2 pthread_key_create F
> GLIBC_2.2 pthread_key_delete F
> GLIBC_2.2 pthread_kill F
> @@ -2013,6 +2014,7 @@ 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_join F
> GLIBC_2.28 thrd_sleep F
> GLIBC_2.28 thrd_yield F
> GLIBC_2.28 tss_create F
> @@ -2145,6 +2147,8 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
> GLIBC_2.3.3 pthread_condattr_getclock F
> GLIBC_2.3.3 pthread_condattr_setclock F
> GLIBC_2.3.3 pthread_getaffinity_np F
> +GLIBC_2.3.3 pthread_timedjoin_np F
> +GLIBC_2.3.3 pthread_tryjoin_np F
> GLIBC_2.3.3 remap_file_pages F
> GLIBC_2.3.3 sched_getaffinity F
> GLIBC_2.3.3 sched_setaffinity F
> @@ -2205,6 +2209,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
> GLIBC_2.30 sem_clockwait F
> GLIBC_2.30 tgkill F
> GLIBC_2.30 twalk_r F
> +GLIBC_2.31 pthread_clockjoin_np F
> GLIBC_2.32 __libc_single_threaded D 0x1
> GLIBC_2.32 pthread_attr_getsigmask_np F
> GLIBC_2.32 pthread_attr_setaffinity_np F
> @@ -2254,6 +2259,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
> GLIBC_2.34 pthread_barrierattr_getpshared F
> GLIBC_2.34 pthread_barrierattr_init F
> GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_clockjoin_np F
> GLIBC_2.34 pthread_cond_clockwait F
> GLIBC_2.34 pthread_condattr_getclock F
> GLIBC_2.34 pthread_condattr_getpshared F
> @@ -2261,6 +2267,7 @@ 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_join F
> GLIBC_2.34 pthread_key_create F
> GLIBC_2.34 pthread_key_delete F
> GLIBC_2.34 pthread_kill F
> @@ -2308,6 +2315,8 @@ GLIBC_2.34 pthread_spin_lock F
> GLIBC_2.34 pthread_spin_trylock F
> GLIBC_2.34 pthread_spin_unlock F
> GLIBC_2.34 pthread_testcancel F
> +GLIBC_2.34 pthread_timedjoin_np F
> +GLIBC_2.34 pthread_tryjoin_np F
> GLIBC_2.34 sem_clockwait F
> GLIBC_2.34 sem_close F
> GLIBC_2.34 sem_destroy F
> @@ -2321,6 +2330,7 @@ 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 thrd_join F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> GLIBC_2.34 tss_get F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> index 3bf0bc9538..5754138e46 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> @@ -22,12 +22,10 @@ GLIBC_2.2 pthread_cancel F
> GLIBC_2.2 pthread_create F
> GLIBC_2.2 pthread_getconcurrency F
> GLIBC_2.2 pthread_getcpuclockid F
> -GLIBC_2.2 pthread_join F
> 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_join F
> GLIBC_2.3.2 __libpthread_version_placeholder F
> GLIBC_2.3.3 __pthread_register_cancel F
> GLIBC_2.3.3 __pthread_register_cancel_defer F
> @@ -35,11 +33,9 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
> GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 pthread_attr_getaffinity_np F
> GLIBC_2.3.3 pthread_setaffinity_np F
> -GLIBC_2.3.3 pthread_timedjoin_np F
> -GLIBC_2.3.3 pthread_tryjoin_np F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_setaffinity_np F
> GLIBC_2.3.4 pthread_setschedprio F
> GLIBC_2.30 __libpthread_version_placeholder F
> -GLIBC_2.31 pthread_clockjoin_np F
> +GLIBC_2.31 __libpthread_version_placeholder F
> GLIBC_2.4 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index 9ecce30901..0360f65963 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -1308,6 +1308,7 @@ GLIBC_2.2 pthread_equal F
> GLIBC_2.2 pthread_exit F
> GLIBC_2.2 pthread_getschedparam F
> GLIBC_2.2 pthread_getspecific F
> +GLIBC_2.2 pthread_join F
> GLIBC_2.2 pthread_key_create F
> GLIBC_2.2 pthread_key_delete F
> GLIBC_2.2 pthread_kill F
> @@ -1990,6 +1991,7 @@ 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_join F
> GLIBC_2.28 thrd_sleep F
> GLIBC_2.28 thrd_yield F
> GLIBC_2.28 tss_create F
> @@ -2125,6 +2127,8 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
> GLIBC_2.3.3 pthread_condattr_getclock F
> GLIBC_2.3.3 pthread_condattr_setclock F
> GLIBC_2.3.3 pthread_getaffinity_np F
> +GLIBC_2.3.3 pthread_timedjoin_np F
> +GLIBC_2.3.3 pthread_tryjoin_np F
> GLIBC_2.3.3 remap_file_pages F
> GLIBC_2.3.3 sched_getaffinity F
> GLIBC_2.3.3 sched_setaffinity F
> @@ -2172,6 +2176,7 @@ GLIBC_2.30 sem_clockwait F
> GLIBC_2.30 tgkill F
> GLIBC_2.30 twalk_r F
> GLIBC_2.31 msgctl F
> +GLIBC_2.31 pthread_clockjoin_np F
> GLIBC_2.31 semctl F
> GLIBC_2.31 shmctl F
> GLIBC_2.32 __libc_single_threaded D 0x1
> @@ -2223,6 +2228,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
> GLIBC_2.34 pthread_barrierattr_getpshared F
> GLIBC_2.34 pthread_barrierattr_init F
> GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_clockjoin_np F
> GLIBC_2.34 pthread_cond_clockwait F
> GLIBC_2.34 pthread_condattr_getclock F
> GLIBC_2.34 pthread_condattr_getpshared F
> @@ -2230,6 +2236,7 @@ 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_join F
> GLIBC_2.34 pthread_key_create F
> GLIBC_2.34 pthread_key_delete F
> GLIBC_2.34 pthread_kill F
> @@ -2277,6 +2284,8 @@ GLIBC_2.34 pthread_spin_lock F
> GLIBC_2.34 pthread_spin_trylock F
> GLIBC_2.34 pthread_spin_unlock F
> GLIBC_2.34 pthread_testcancel F
> +GLIBC_2.34 pthread_timedjoin_np F
> +GLIBC_2.34 pthread_tryjoin_np F
> GLIBC_2.34 sem_clockwait F
> GLIBC_2.34 sem_close F
> GLIBC_2.34 sem_destroy F
> @@ -2290,6 +2299,7 @@ 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 thrd_join F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> GLIBC_2.34 tss_get F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> index cc1ca55754..59585f6763 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> @@ -21,12 +21,10 @@ GLIBC_2.2 pthread_cancel F
> GLIBC_2.2 pthread_create F
> GLIBC_2.2 pthread_getconcurrency F
> GLIBC_2.2 pthread_getcpuclockid F
> -GLIBC_2.2 pthread_join F
> 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_join F
> GLIBC_2.3.2 __libpthread_version_placeholder F
> GLIBC_2.3.3 __pthread_register_cancel F
> GLIBC_2.3.3 __pthread_register_cancel_defer F
> @@ -34,11 +32,9 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
> GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 pthread_attr_getaffinity_np F
> GLIBC_2.3.3 pthread_setaffinity_np F
> -GLIBC_2.3.3 pthread_timedjoin_np F
> -GLIBC_2.3.3 pthread_tryjoin_np F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_setaffinity_np F
> GLIBC_2.3.4 pthread_setschedprio F
> GLIBC_2.30 __libpthread_version_placeholder F
> -GLIBC_2.31 pthread_clockjoin_np F
> +GLIBC_2.31 __libpthread_version_placeholder F
> GLIBC_2.4 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index a6faf4e2d6..c99300d9fc 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -1308,6 +1308,7 @@ GLIBC_2.2 pthread_equal F
> GLIBC_2.2 pthread_exit F
> GLIBC_2.2 pthread_getschedparam F
> GLIBC_2.2 pthread_getspecific F
> +GLIBC_2.2 pthread_join F
> GLIBC_2.2 pthread_key_create F
> GLIBC_2.2 pthread_key_delete F
> GLIBC_2.2 pthread_kill F
> @@ -1990,6 +1991,7 @@ 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_join F
> GLIBC_2.28 thrd_sleep F
> GLIBC_2.28 thrd_yield F
> GLIBC_2.28 tss_create F
> @@ -2125,6 +2127,8 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
> GLIBC_2.3.3 pthread_condattr_getclock F
> GLIBC_2.3.3 pthread_condattr_setclock F
> GLIBC_2.3.3 pthread_getaffinity_np F
> +GLIBC_2.3.3 pthread_timedjoin_np F
> +GLIBC_2.3.3 pthread_tryjoin_np F
> GLIBC_2.3.3 remap_file_pages F
> GLIBC_2.3.3 sched_getaffinity F
> GLIBC_2.3.3 sched_setaffinity F
> @@ -2171,6 +2175,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
> GLIBC_2.30 sem_clockwait F
> GLIBC_2.30 tgkill F
> GLIBC_2.30 twalk_r F
> +GLIBC_2.31 pthread_clockjoin_np F
> GLIBC_2.32 __libc_single_threaded D 0x1
> GLIBC_2.32 pthread_attr_getsigmask_np F
> GLIBC_2.32 pthread_attr_setaffinity_np F
> @@ -2220,6 +2225,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
> GLIBC_2.34 pthread_barrierattr_getpshared F
> GLIBC_2.34 pthread_barrierattr_init F
> GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_clockjoin_np F
> GLIBC_2.34 pthread_cond_clockwait F
> GLIBC_2.34 pthread_condattr_getclock F
> GLIBC_2.34 pthread_condattr_getpshared F
> @@ -2227,6 +2233,7 @@ 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_join F
> GLIBC_2.34 pthread_key_create F
> GLIBC_2.34 pthread_key_delete F
> GLIBC_2.34 pthread_kill F
> @@ -2274,6 +2281,8 @@ GLIBC_2.34 pthread_spin_lock F
> GLIBC_2.34 pthread_spin_trylock F
> GLIBC_2.34 pthread_spin_unlock F
> GLIBC_2.34 pthread_testcancel F
> +GLIBC_2.34 pthread_timedjoin_np F
> +GLIBC_2.34 pthread_tryjoin_np F
> GLIBC_2.34 sem_clockwait F
> GLIBC_2.34 sem_close F
> GLIBC_2.34 sem_destroy F
> @@ -2287,6 +2296,7 @@ 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 thrd_join F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> GLIBC_2.34 tss_get F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> index cc1ca55754..59585f6763 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> @@ -21,12 +21,10 @@ GLIBC_2.2 pthread_cancel F
> GLIBC_2.2 pthread_create F
> GLIBC_2.2 pthread_getconcurrency F
> GLIBC_2.2 pthread_getcpuclockid F
> -GLIBC_2.2 pthread_join F
> 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_join F
> GLIBC_2.3.2 __libpthread_version_placeholder F
> GLIBC_2.3.3 __pthread_register_cancel F
> GLIBC_2.3.3 __pthread_register_cancel_defer F
> @@ -34,11 +32,9 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
> GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 pthread_attr_getaffinity_np F
> GLIBC_2.3.3 pthread_setaffinity_np F
> -GLIBC_2.3.3 pthread_timedjoin_np F
> -GLIBC_2.3.3 pthread_tryjoin_np F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_setaffinity_np F
> GLIBC_2.3.4 pthread_setschedprio F
> GLIBC_2.30 __libpthread_version_placeholder F
> -GLIBC_2.31 pthread_clockjoin_np F
> +GLIBC_2.31 __libpthread_version_placeholder F
> GLIBC_2.4 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index 4d08e96ffa..1d3f00ec04 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -880,6 +880,7 @@ GLIBC_2.0 pthread_equal F
> GLIBC_2.0 pthread_exit F
> GLIBC_2.0 pthread_getschedparam F
> GLIBC_2.0 pthread_getspecific F
> +GLIBC_2.0 pthread_join F
> GLIBC_2.0 pthread_key_create F
> GLIBC_2.0 pthread_key_delete F
> GLIBC_2.0 pthread_kill F
> @@ -2116,6 +2117,7 @@ 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_join F
> GLIBC_2.28 thrd_sleep F
> GLIBC_2.28 thrd_yield F
> GLIBC_2.28 tss_create F
> @@ -2251,6 +2253,8 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
> GLIBC_2.3.3 pthread_condattr_getclock F
> GLIBC_2.3.3 pthread_condattr_setclock F
> GLIBC_2.3.3 pthread_getaffinity_np F
> +GLIBC_2.3.3 pthread_timedjoin_np F
> +GLIBC_2.3.3 pthread_tryjoin_np F
> GLIBC_2.3.3 remap_file_pages F
> GLIBC_2.3.3 sched_getaffinity F
> GLIBC_2.3.3 sched_setaffinity F
> @@ -2309,6 +2313,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
> GLIBC_2.30 sem_clockwait F
> GLIBC_2.30 tgkill F
> GLIBC_2.30 twalk_r F
> +GLIBC_2.31 pthread_clockjoin_np F
> GLIBC_2.32 __libc_single_threaded D 0x1
> GLIBC_2.32 pthread_attr_getsigmask_np F
> GLIBC_2.32 pthread_attr_setaffinity_np F
> @@ -2358,6 +2363,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
> GLIBC_2.34 pthread_barrierattr_getpshared F
> GLIBC_2.34 pthread_barrierattr_init F
> GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_clockjoin_np F
> GLIBC_2.34 pthread_cond_clockwait F
> GLIBC_2.34 pthread_condattr_getclock F
> GLIBC_2.34 pthread_condattr_getpshared F
> @@ -2365,6 +2371,7 @@ 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_join F
> GLIBC_2.34 pthread_key_create F
> GLIBC_2.34 pthread_key_delete F
> GLIBC_2.34 pthread_kill F
> @@ -2412,6 +2419,8 @@ GLIBC_2.34 pthread_spin_lock F
> GLIBC_2.34 pthread_spin_trylock F
> GLIBC_2.34 pthread_spin_unlock F
> GLIBC_2.34 pthread_testcancel F
> +GLIBC_2.34 pthread_timedjoin_np F
> +GLIBC_2.34 pthread_tryjoin_np F
> GLIBC_2.34 sem_clockwait F
> GLIBC_2.34 sem_close F
> GLIBC_2.34 sem_destroy F
> @@ -2425,6 +2434,7 @@ 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 thrd_join F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> GLIBC_2.34 tss_get F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> index b4ea31102a..16fa6ec4ee 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_join F
> GLIBC_2.1 pthread_attr_getguardsize F
> GLIBC_2.1 pthread_attr_getstackaddr F
> GLIBC_2.1 pthread_attr_getstacksize F
> @@ -29,7 +28,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_join F
> GLIBC_2.3.2 __libpthread_version_placeholder F
> GLIBC_2.3.3 __pthread_register_cancel F
> GLIBC_2.3.3 __pthread_register_cancel_defer F
> @@ -39,11 +37,9 @@ GLIBC_2.3.3 pthread_attr_getaffinity_np F
> GLIBC_2.3.3 pthread_attr_setstack F
> GLIBC_2.3.3 pthread_attr_setstacksize F
> GLIBC_2.3.3 pthread_setaffinity_np F
> -GLIBC_2.3.3 pthread_timedjoin_np F
> -GLIBC_2.3.3 pthread_tryjoin_np F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_setaffinity_np F
> GLIBC_2.3.4 pthread_setschedprio F
> GLIBC_2.30 __libpthread_version_placeholder F
> -GLIBC_2.31 pthread_clockjoin_np F
> +GLIBC_2.31 __libpthread_version_placeholder F
> GLIBC_2.4 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index bc9ddd71a6..eb222daa74 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -1351,6 +1351,7 @@ GLIBC_2.2 pthread_equal F
> GLIBC_2.2 pthread_exit F
> GLIBC_2.2 pthread_getschedparam F
> GLIBC_2.2 pthread_getspecific F
> +GLIBC_2.2 pthread_join F
> GLIBC_2.2 pthread_key_create F
> GLIBC_2.2 pthread_key_delete F
> GLIBC_2.2 pthread_kill F
> @@ -2043,6 +2044,7 @@ 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_join F
> GLIBC_2.28 thrd_sleep F
> GLIBC_2.28 thrd_yield F
> GLIBC_2.28 tss_create F
> @@ -2174,6 +2176,8 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
> GLIBC_2.3.3 pthread_condattr_getclock F
> GLIBC_2.3.3 pthread_condattr_setclock F
> GLIBC_2.3.3 pthread_getaffinity_np F
> +GLIBC_2.3.3 pthread_timedjoin_np F
> +GLIBC_2.3.3 pthread_tryjoin_np F
> GLIBC_2.3.3 remap_file_pages F
> GLIBC_2.3.3 sched_getaffinity F
> GLIBC_2.3.3 sched_setaffinity F
> @@ -2222,6 +2226,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
> GLIBC_2.30 sem_clockwait F
> GLIBC_2.30 tgkill F
> GLIBC_2.30 twalk_r F
> +GLIBC_2.31 pthread_clockjoin_np F
> GLIBC_2.32 __libc_single_threaded D 0x1
> GLIBC_2.32 pthread_attr_getsigmask_np F
> GLIBC_2.32 pthread_attr_setaffinity_np F
> @@ -2271,6 +2276,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
> GLIBC_2.34 pthread_barrierattr_getpshared F
> GLIBC_2.34 pthread_barrierattr_init F
> GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_clockjoin_np F
> GLIBC_2.34 pthread_cond_clockwait F
> GLIBC_2.34 pthread_condattr_getclock F
> GLIBC_2.34 pthread_condattr_getpshared F
> @@ -2278,6 +2284,7 @@ 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_join F
> GLIBC_2.34 pthread_key_create F
> GLIBC_2.34 pthread_key_delete F
> GLIBC_2.34 pthread_kill F
> @@ -2325,6 +2332,8 @@ GLIBC_2.34 pthread_spin_lock F
> GLIBC_2.34 pthread_spin_trylock F
> GLIBC_2.34 pthread_spin_unlock F
> GLIBC_2.34 pthread_testcancel F
> +GLIBC_2.34 pthread_timedjoin_np F
> +GLIBC_2.34 pthread_tryjoin_np F
> GLIBC_2.34 sem_clockwait F
> GLIBC_2.34 sem_close F
> GLIBC_2.34 sem_destroy F
> @@ -2338,6 +2347,7 @@ 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 thrd_join F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> GLIBC_2.34 tss_get F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> index c377a13e65..1b0a061014 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> @@ -21,12 +21,10 @@ GLIBC_2.2 pthread_cancel F
> GLIBC_2.2 pthread_create F
> GLIBC_2.2 pthread_getconcurrency F
> GLIBC_2.2 pthread_getcpuclockid F
> -GLIBC_2.2 pthread_join F
> 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_join F
> GLIBC_2.3.2 __libpthread_version_placeholder F
> GLIBC_2.3.3 __pthread_register_cancel F
> GLIBC_2.3.3 __pthread_register_cancel_defer F
> @@ -36,11 +34,9 @@ GLIBC_2.3.3 pthread_attr_getaffinity_np F
> GLIBC_2.3.3 pthread_attr_setstack F
> GLIBC_2.3.3 pthread_attr_setstacksize F
> GLIBC_2.3.3 pthread_setaffinity_np F
> -GLIBC_2.3.3 pthread_timedjoin_np F
> -GLIBC_2.3.3 pthread_tryjoin_np F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_setaffinity_np F
> GLIBC_2.3.4 pthread_setschedprio F
> GLIBC_2.30 __libpthread_version_placeholder F
> -GLIBC_2.31 pthread_clockjoin_np F
> +GLIBC_2.31 __libpthread_version_placeholder F
> GLIBC_2.4 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index a893315017..c34f50d673 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -1319,6 +1319,7 @@ GLIBC_2.2.5 pthread_exit F
> GLIBC_2.2.5 pthread_getattr_np F
> GLIBC_2.2.5 pthread_getschedparam F
> GLIBC_2.2.5 pthread_getspecific F
> +GLIBC_2.2.5 pthread_join F
> GLIBC_2.2.5 pthread_key_create F
> GLIBC_2.2.5 pthread_key_delete F
> GLIBC_2.2.5 pthread_kill F
> @@ -2002,6 +2003,7 @@ 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_join F
> GLIBC_2.28 thrd_sleep F
> GLIBC_2.28 thrd_yield F
> GLIBC_2.28 tss_create F
> @@ -2133,6 +2135,8 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
> GLIBC_2.3.3 pthread_condattr_getclock F
> GLIBC_2.3.3 pthread_condattr_setclock F
> GLIBC_2.3.3 pthread_getaffinity_np F
> +GLIBC_2.3.3 pthread_timedjoin_np F
> +GLIBC_2.3.3 pthread_tryjoin_np F
> GLIBC_2.3.3 remap_file_pages F
> GLIBC_2.3.3 sched_getaffinity F
> GLIBC_2.3.3 sched_setaffinity F
> @@ -2181,6 +2185,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
> GLIBC_2.30 sem_clockwait F
> GLIBC_2.30 tgkill F
> GLIBC_2.30 twalk_r F
> +GLIBC_2.31 pthread_clockjoin_np F
> GLIBC_2.32 __libc_single_threaded D 0x1
> GLIBC_2.32 pthread_attr_getsigmask_np F
> GLIBC_2.32 pthread_attr_setaffinity_np F
> @@ -2232,6 +2237,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
> GLIBC_2.34 pthread_barrierattr_getpshared F
> GLIBC_2.34 pthread_barrierattr_init F
> GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_clockjoin_np F
> GLIBC_2.34 pthread_cond_clockwait F
> GLIBC_2.34 pthread_condattr_getclock F
> GLIBC_2.34 pthread_condattr_getpshared F
> @@ -2239,6 +2245,7 @@ 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_join F
> GLIBC_2.34 pthread_key_create F
> GLIBC_2.34 pthread_key_delete F
> GLIBC_2.34 pthread_kill F
> @@ -2286,6 +2293,8 @@ GLIBC_2.34 pthread_spin_lock F
> GLIBC_2.34 pthread_spin_trylock F
> GLIBC_2.34 pthread_spin_unlock F
> GLIBC_2.34 pthread_testcancel F
> +GLIBC_2.34 pthread_timedjoin_np F
> +GLIBC_2.34 pthread_tryjoin_np F
> GLIBC_2.34 sem_clockwait F
> GLIBC_2.34 sem_close F
> GLIBC_2.34 sem_destroy F
> @@ -2299,6 +2308,7 @@ 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 thrd_join F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> GLIBC_2.34 tss_get F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> index dac904b6e9..df961f49ba 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> @@ -21,11 +21,9 @@ GLIBC_2.2.5 pthread_cancel F
> GLIBC_2.2.5 pthread_create 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_join F
> GLIBC_2.3.2 __libpthread_version_placeholder F
> GLIBC_2.3.3 __pthread_register_cancel F
> GLIBC_2.3.3 __pthread_register_cancel_defer F
> @@ -33,11 +31,9 @@ GLIBC_2.3.3 __pthread_unregister_cancel F
> GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> GLIBC_2.3.3 pthread_attr_getaffinity_np F
> GLIBC_2.3.3 pthread_setaffinity_np F
> -GLIBC_2.3.3 pthread_timedjoin_np F
> -GLIBC_2.3.3 pthread_tryjoin_np F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_setaffinity_np F
> GLIBC_2.3.4 pthread_setschedprio F
> GLIBC_2.30 __libpthread_version_placeholder F
> -GLIBC_2.31 pthread_clockjoin_np F
> +GLIBC_2.31 __libpthread_version_placeholder F
> GLIBC_2.4 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index fa9319c610..4fae69daff 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -1488,6 +1488,7 @@ GLIBC_2.16 pthread_getaffinity_np F
> GLIBC_2.16 pthread_getattr_np F
> GLIBC_2.16 pthread_getschedparam F
> GLIBC_2.16 pthread_getspecific F
> +GLIBC_2.16 pthread_join F
> GLIBC_2.16 pthread_key_create F
> GLIBC_2.16 pthread_key_delete F
> GLIBC_2.16 pthread_kill F
> @@ -1546,6 +1547,8 @@ GLIBC_2.16 pthread_spin_lock F
> GLIBC_2.16 pthread_spin_trylock F
> GLIBC_2.16 pthread_spin_unlock F
> GLIBC_2.16 pthread_testcancel F
> +GLIBC_2.16 pthread_timedjoin_np F
> +GLIBC_2.16 pthread_tryjoin_np F
> GLIBC_2.16 pthread_yield F
> GLIBC_2.16 ptrace F
> GLIBC_2.16 ptsname F
> @@ -2268,6 +2271,7 @@ 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_join F
> GLIBC_2.28 thrd_sleep F
> GLIBC_2.28 thrd_yield F
> GLIBC_2.28 tss_create F
> @@ -2286,6 +2290,7 @@ GLIBC_2.30 pthread_rwlock_clockwrlock F
> GLIBC_2.30 sem_clockwait F
> GLIBC_2.30 tgkill F
> GLIBC_2.30 twalk_r F
> +GLIBC_2.31 pthread_clockjoin_np F
> GLIBC_2.32 __libc_single_threaded D 0x1
> GLIBC_2.32 pthread_attr_getsigmask_np F
> GLIBC_2.32 pthread_attr_setaffinity_np F
> @@ -2337,6 +2342,7 @@ GLIBC_2.34 pthread_barrierattr_destroy F
> GLIBC_2.34 pthread_barrierattr_getpshared F
> GLIBC_2.34 pthread_barrierattr_init F
> GLIBC_2.34 pthread_barrierattr_setpshared F
> +GLIBC_2.34 pthread_clockjoin_np F
> GLIBC_2.34 pthread_cond_clockwait F
> GLIBC_2.34 pthread_condattr_getclock F
> GLIBC_2.34 pthread_condattr_getpshared F
> @@ -2344,6 +2350,7 @@ 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_join F
> GLIBC_2.34 pthread_key_create F
> GLIBC_2.34 pthread_key_delete F
> GLIBC_2.34 pthread_kill F
> @@ -2391,6 +2398,8 @@ GLIBC_2.34 pthread_spin_lock F
> GLIBC_2.34 pthread_spin_trylock F
> GLIBC_2.34 pthread_spin_unlock F
> GLIBC_2.34 pthread_testcancel F
> +GLIBC_2.34 pthread_timedjoin_np F
> +GLIBC_2.34 pthread_tryjoin_np F
> GLIBC_2.34 sem_clockwait F
> GLIBC_2.34 sem_close F
> GLIBC_2.34 sem_destroy F
> @@ -2404,6 +2413,7 @@ 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 thrd_join F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> GLIBC_2.34 tss_get F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> index b8bbe71c59..25d7f53b0b 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> @@ -23,16 +23,12 @@ GLIBC_2.16 pthread_create F
> GLIBC_2.16 pthread_getconcurrency F
> GLIBC_2.16 pthread_getcpuclockid F
> GLIBC_2.16 pthread_getname_np F
> -GLIBC_2.16 pthread_join F
> GLIBC_2.16 pthread_setaffinity_np F
> GLIBC_2.16 pthread_setconcurrency F
> GLIBC_2.16 pthread_setname_np F
> GLIBC_2.16 pthread_setschedprio F
> GLIBC_2.16 pthread_sigqueue F
> -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_join F
> GLIBC_2.30 __libpthread_version_placeholder F
> -GLIBC_2.31 pthread_clockjoin_np F
> +GLIBC_2.31 __libpthread_version_placeholder F
>
Ok.
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 2/8] nptl: Move pthread_sigqueue implementation into main nptl directory
2021-05-10 13:25 ` Adhemerval Zanella
@ 2021-05-11 9:09 ` Florian Weimer
0 siblings, 0 replies; 20+ messages in thread
From: Florian Weimer @ 2021-05-11 9:09 UTC (permalink / raw)
To: Adhemerval Zanella; +Cc: libc-alpha
* Adhemerval Zanella:
> LGTM, thanks. Maybe combine with the patch that removes the stub
> version.
>
> Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Okay, I've squashed the two commits.
Thanks,
Florian
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 5/8] nptl: Move stack cache management, __libpthread_freeres into libc
2021-05-10 16:45 ` Adhemerval Zanella
@ 2021-05-11 9:29 ` Florian Weimer
0 siblings, 0 replies; 20+ messages in thread
From: Florian Weimer @ 2021-05-11 9:29 UTC (permalink / raw)
To: Adhemerval Zanella; +Cc: libc-alpha, Carlos O'Donell
* Adhemerval Zanella:
>> +/* Maximum size in kB of cache. */
>> +static size_t stack_cache_maxsize = 40 * 1024 * 1024; /* 40MiBi by default. */
>
> This line seems to be too long.
It's exactly 79 characters long. I've changed it so that it's shorter.
Thanks,
Florian
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 6/8] nptl: Move __free_tcb into libc
2021-05-10 16:49 ` Adhemerval Zanella
@ 2021-05-11 9:30 ` Florian Weimer
0 siblings, 0 replies; 20+ messages in thread
From: Florian Weimer @ 2021-05-11 9:30 UTC (permalink / raw)
To: Adhemerval Zanella; +Cc: libc-alpha
* Adhemerval Zanella:
>> +void
>> +__nptl_free_tcb (struct pthread *pd)
>> +{
>> + /* The thread is exiting now. */
>> + if (__builtin_expect (atomic_bit_test_set (&pd->cancelhandling,
>> + TERMINATED_BIT) == 0, 1))
>
> Maybe use __glibc_likely here or just remove it, since it does not make
> to use in this short function.
>
>> + {
>> + /* Free TPP data. */
>> + if (__glibc_unlikely (pd->tpp != NULL))
>
> Same here, the loop is short enough that it should not matter.
I've removed both.
Thanks,
Florian
^ permalink raw reply [flat|nested] 20+ messages in thread
end of thread, other threads:[~2021-05-11 9:29 UTC | newest]
Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-10 12:37 [PATCH 0/8] nptl: Move pthread_detach and pthread_join into libc Florian Weimer
2021-05-10 12:37 ` [PATCH 1/8] nptl: Remove unused nptl/pthread_sigqueue.c stub implementation Florian Weimer
2021-05-10 13:21 ` Adhemerval Zanella
2021-05-10 12:37 ` [PATCH 2/8] nptl: Move pthread_sigqueue implementation into main nptl directory Florian Weimer
2021-05-10 13:25 ` Adhemerval Zanella
2021-05-11 9:09 ` Florian Weimer
2021-05-10 12:37 ` [PATCH 3/8] nptl: Remove always-disabled debugging support Florian Weimer
2021-05-10 13:47 ` Adhemerval Zanella
2021-05-10 12:37 ` [PATCH 4/8] nptl: Move pthread_setattr_default_np into libc Florian Weimer
2021-05-10 16:28 ` Adhemerval Zanella
2021-05-10 12:37 ` [PATCH 5/8] nptl: Move stack cache management, __libpthread_freeres " Florian Weimer
2021-05-10 16:45 ` Adhemerval Zanella
2021-05-11 9:29 ` Florian Weimer
2021-05-10 12:38 ` [PATCH 6/8] nptl: Move __free_tcb " Florian Weimer
2021-05-10 16:49 ` Adhemerval Zanella
2021-05-11 9:30 ` Florian Weimer
2021-05-10 12:38 ` [PATCH 7/8] nptl: Move pthread_detach, thrd_detach " Florian Weimer
2021-05-10 16:56 ` Adhemerval Zanella
2021-05-10 12:42 ` [PATCH 8/8] nptl: Move thread join functions " Florian Weimer
2021-05-10 16:58 ` Adhemerval Zanella
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).