[8/8] nptl: Move thread join functions into libc

Message ID fcea47bfc326a0e7fd3c24178cdba13d3660d2a0.1620650045.git.fweimer@redhat.com
State Committed
Delegated to: Adhemerval Zanella Netto
Headers
Series nptl: Move pthread_detach and pthread_join into libc |

Checks

Context Check Description
dj/TryBot-apply_patch success Patch applied to master at the time it was sent

Commit Message

Florian Weimer May 10, 2021, 12:42 p.m. UTC
  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(-)
  

Comments

Adhemerval Zanella May 10, 2021, 4:58 p.m. UTC | #1
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.
  

Patch

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