public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
From: Adhemerval Zanella <adhemerval.zanella@linaro.org>
To: Florian Weimer <fweimer@redhat.com>, libc-alpha@sourceware.org
Subject: Re: [PATCH 8/8] nptl: Move thread join functions into libc
Date: Mon, 10 May 2021 13:58:18 -0300	[thread overview]
Message-ID: <815086fc-43fb-a156-f5e5-20ceb6efc4c8@linaro.org> (raw)
In-Reply-To: <fcea47bfc326a0e7fd3c24178cdba13d3660d2a0.1620650045.git.fweimer@redhat.com>



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.

      reply	other threads:[~2021-05-10 16:58 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-10 12:37 [PATCH 0/8] nptl: Move pthread_detach and pthread_join " Florian Weimer
2021-05-10 12:37 ` [PATCH 1/8] nptl: Remove unused nptl/pthread_sigqueue.c stub implementation Florian Weimer
2021-05-10 13:21   ` Adhemerval Zanella
2021-05-10 12:37 ` [PATCH 2/8] nptl: Move pthread_sigqueue implementation into main nptl directory Florian Weimer
2021-05-10 13:25   ` Adhemerval Zanella
2021-05-11  9:09     ` Florian Weimer
2021-05-10 12:37 ` [PATCH 3/8] nptl: Remove always-disabled debugging support Florian Weimer
2021-05-10 13:47   ` Adhemerval Zanella
2021-05-10 12:37 ` [PATCH 4/8] nptl: Move pthread_setattr_default_np into libc Florian Weimer
2021-05-10 16:28   ` Adhemerval Zanella
2021-05-10 12:37 ` [PATCH 5/8] nptl: Move stack cache management, __libpthread_freeres " Florian Weimer
2021-05-10 16:45   ` Adhemerval Zanella
2021-05-11  9:29     ` Florian Weimer
2021-05-10 12:38 ` [PATCH 6/8] nptl: Move __free_tcb " Florian Weimer
2021-05-10 16:49   ` Adhemerval Zanella
2021-05-11  9:30     ` Florian Weimer
2021-05-10 12:38 ` [PATCH 7/8] nptl: Move pthread_detach, thrd_detach " Florian Weimer
2021-05-10 16:56   ` Adhemerval Zanella
2021-05-10 12:42 ` [PATCH 8/8] nptl: Move thread join functions " Florian Weimer
2021-05-10 16:58   ` Adhemerval Zanella [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=815086fc-43fb-a156-f5e5-20ceb6efc4c8@linaro.org \
    --to=adhemerval.zanella@linaro.org \
    --cc=fweimer@redhat.com \
    --cc=libc-alpha@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).