[09/11] nptl: Move sem_timedwait into libc

Message ID 05fd483c0e133bd58f1a09d4d20bcb93a6018eee.1620049437.git.fweimer@redhat.com
State Committed
Commit 018c75dcb1ee93f3ff0d3d9cbdf1fe48aa630315
Delegated to: Adhemerval Zanella Netto
Headers
Series nptl: Move semaphore functions into libc |

Commit Message

Florian Weimer May 3, 2021, 1:52 p.m. UTC
  The symbol was moved using scripts/move-symbol-to-libc.py.
---
 nptl/Makefile                                  |  2 +-
 nptl/Versions                                  |  3 ++-
 nptl/sem_timedwait.c                           | 18 +++++++++++++-----
 nptl/semaphoreP.h                              |  2 +-
 sysdeps/unix/sysv/linux/aarch64/libc.abilist   |  2 ++
 .../unix/sysv/linux/aarch64/libpthread.abilist |  1 -
 sysdeps/unix/sysv/linux/alpha/libc.abilist     |  2 ++
 .../unix/sysv/linux/alpha/libpthread.abilist   |  1 -
 sysdeps/unix/sysv/linux/arc/libc.abilist       |  2 ++
 sysdeps/unix/sysv/linux/arc/libpthread.abilist |  1 -
 sysdeps/unix/sysv/linux/arm/be/libc.abilist    |  2 ++
 .../unix/sysv/linux/arm/be/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/arm/le/libc.abilist    |  2 ++
 .../unix/sysv/linux/arm/le/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/csky/libc.abilist      |  2 ++
 .../unix/sysv/linux/csky/libpthread.abilist    |  1 -
 sysdeps/unix/sysv/linux/hppa/libc.abilist      |  2 ++
 .../unix/sysv/linux/hppa/libpthread.abilist    |  1 -
 sysdeps/unix/sysv/linux/i386/libc.abilist      |  2 ++
 .../unix/sysv/linux/i386/libpthread.abilist    |  1 -
 sysdeps/unix/sysv/linux/ia64/libc.abilist      |  2 ++
 .../unix/sysv/linux/ia64/libpthread.abilist    |  1 -
 .../unix/sysv/linux/m68k/coldfire/libc.abilist |  2 ++
 .../linux/m68k/coldfire/libpthread.abilist     |  1 -
 .../unix/sysv/linux/m68k/m680x0/libc.abilist   |  2 ++
 .../sysv/linux/m68k/m680x0/libpthread.abilist  |  1 -
 .../unix/sysv/linux/microblaze/be/libc.abilist |  2 ++
 .../linux/microblaze/be/libpthread.abilist     |  1 -
 .../unix/sysv/linux/microblaze/le/libc.abilist |  2 ++
 .../linux/microblaze/le/libpthread.abilist     |  1 -
 .../sysv/linux/mips/mips32/fpu/libc.abilist    |  2 ++
 .../sysv/linux/mips/mips32/libpthread.abilist  |  1 -
 .../sysv/linux/mips/mips32/nofpu/libc.abilist  |  2 ++
 .../sysv/linux/mips/mips64/libpthread.abilist  |  1 -
 .../sysv/linux/mips/mips64/n32/libc.abilist    |  2 ++
 .../sysv/linux/mips/mips64/n64/libc.abilist    |  2 ++
 sysdeps/unix/sysv/linux/nios2/libc.abilist     |  2 ++
 .../unix/sysv/linux/nios2/libpthread.abilist   |  1 -
 .../linux/powerpc/powerpc32/fpu/libc.abilist   |  2 ++
 .../linux/powerpc/powerpc32/libpthread.abilist |  1 -
 .../linux/powerpc/powerpc32/nofpu/libc.abilist |  2 ++
 .../linux/powerpc/powerpc64/be/libc.abilist    |  2 ++
 .../powerpc/powerpc64/be/libpthread.abilist    |  1 -
 .../linux/powerpc/powerpc64/le/libc.abilist    |  2 ++
 .../powerpc/powerpc64/le/libpthread.abilist    |  1 -
 .../unix/sysv/linux/riscv/rv32/libc.abilist    |  2 ++
 .../sysv/linux/riscv/rv32/libpthread.abilist   |  1 -
 .../unix/sysv/linux/riscv/rv64/libc.abilist    |  2 ++
 .../sysv/linux/riscv/rv64/libpthread.abilist   |  1 -
 .../unix/sysv/linux/s390/s390-32/libc.abilist  |  2 ++
 .../sysv/linux/s390/s390-32/libpthread.abilist |  1 -
 .../unix/sysv/linux/s390/s390-64/libc.abilist  |  2 ++
 .../sysv/linux/s390/s390-64/libpthread.abilist |  1 -
 sysdeps/unix/sysv/linux/sh/be/libc.abilist     |  2 ++
 .../unix/sysv/linux/sh/be/libpthread.abilist   |  1 -
 sysdeps/unix/sysv/linux/sh/le/libc.abilist     |  2 ++
 .../unix/sysv/linux/sh/le/libpthread.abilist   |  1 -
 .../unix/sysv/linux/sparc/sparc32/libc.abilist |  2 ++
 .../linux/sparc/sparc32/libpthread.abilist     |  1 -
 .../unix/sysv/linux/sparc/sparc64/libc.abilist |  2 ++
 .../linux/sparc/sparc64/libpthread.abilist     |  1 -
 sysdeps/unix/sysv/linux/x86_64/64/libc.abilist |  2 ++
 .../sysv/linux/x86_64/64/libpthread.abilist    |  1 -
 .../unix/sysv/linux/x86_64/x32/libc.abilist    |  2 ++
 .../sysv/linux/x86_64/x32/libpthread.abilist   |  1 -
 65 files changed, 81 insertions(+), 37 deletions(-)
  

Comments

Adhemerval Zanella Netto May 5, 2021, 2:37 p.m. UTC | #1
On 03/05/2021 10:52, Florian Weimer via Libc-alpha wrote:
> The symbol was moved using scripts/move-symbol-to-libc.py.

LGTM, thanks.

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

> ---
>  nptl/Makefile                                  |  2 +-
>  nptl/Versions                                  |  3 ++-
>  nptl/sem_timedwait.c                           | 18 +++++++++++++-----
>  nptl/semaphoreP.h                              |  2 +-
>  sysdeps/unix/sysv/linux/aarch64/libc.abilist   |  2 ++
>  .../unix/sysv/linux/aarch64/libpthread.abilist |  1 -
>  sysdeps/unix/sysv/linux/alpha/libc.abilist     |  2 ++
>  .../unix/sysv/linux/alpha/libpthread.abilist   |  1 -
>  sysdeps/unix/sysv/linux/arc/libc.abilist       |  2 ++
>  sysdeps/unix/sysv/linux/arc/libpthread.abilist |  1 -
>  sysdeps/unix/sysv/linux/arm/be/libc.abilist    |  2 ++
>  .../unix/sysv/linux/arm/be/libpthread.abilist  |  1 -
>  sysdeps/unix/sysv/linux/arm/le/libc.abilist    |  2 ++
>  .../unix/sysv/linux/arm/le/libpthread.abilist  |  1 -
>  sysdeps/unix/sysv/linux/csky/libc.abilist      |  2 ++
>  .../unix/sysv/linux/csky/libpthread.abilist    |  1 -
>  sysdeps/unix/sysv/linux/hppa/libc.abilist      |  2 ++
>  .../unix/sysv/linux/hppa/libpthread.abilist    |  1 -
>  sysdeps/unix/sysv/linux/i386/libc.abilist      |  2 ++
>  .../unix/sysv/linux/i386/libpthread.abilist    |  1 -
>  sysdeps/unix/sysv/linux/ia64/libc.abilist      |  2 ++
>  .../unix/sysv/linux/ia64/libpthread.abilist    |  1 -
>  .../unix/sysv/linux/m68k/coldfire/libc.abilist |  2 ++
>  .../linux/m68k/coldfire/libpthread.abilist     |  1 -
>  .../unix/sysv/linux/m68k/m680x0/libc.abilist   |  2 ++
>  .../sysv/linux/m68k/m680x0/libpthread.abilist  |  1 -
>  .../unix/sysv/linux/microblaze/be/libc.abilist |  2 ++
>  .../linux/microblaze/be/libpthread.abilist     |  1 -
>  .../unix/sysv/linux/microblaze/le/libc.abilist |  2 ++
>  .../linux/microblaze/le/libpthread.abilist     |  1 -
>  .../sysv/linux/mips/mips32/fpu/libc.abilist    |  2 ++
>  .../sysv/linux/mips/mips32/libpthread.abilist  |  1 -
>  .../sysv/linux/mips/mips32/nofpu/libc.abilist  |  2 ++
>  .../sysv/linux/mips/mips64/libpthread.abilist  |  1 -
>  .../sysv/linux/mips/mips64/n32/libc.abilist    |  2 ++
>  .../sysv/linux/mips/mips64/n64/libc.abilist    |  2 ++
>  sysdeps/unix/sysv/linux/nios2/libc.abilist     |  2 ++
>  .../unix/sysv/linux/nios2/libpthread.abilist   |  1 -
>  .../linux/powerpc/powerpc32/fpu/libc.abilist   |  2 ++
>  .../linux/powerpc/powerpc32/libpthread.abilist |  1 -
>  .../linux/powerpc/powerpc32/nofpu/libc.abilist |  2 ++
>  .../linux/powerpc/powerpc64/be/libc.abilist    |  2 ++
>  .../powerpc/powerpc64/be/libpthread.abilist    |  1 -
>  .../linux/powerpc/powerpc64/le/libc.abilist    |  2 ++
>  .../powerpc/powerpc64/le/libpthread.abilist    |  1 -
>  .../unix/sysv/linux/riscv/rv32/libc.abilist    |  2 ++
>  .../sysv/linux/riscv/rv32/libpthread.abilist   |  1 -
>  .../unix/sysv/linux/riscv/rv64/libc.abilist    |  2 ++
>  .../sysv/linux/riscv/rv64/libpthread.abilist   |  1 -
>  .../unix/sysv/linux/s390/s390-32/libc.abilist  |  2 ++
>  .../sysv/linux/s390/s390-32/libpthread.abilist |  1 -
>  .../unix/sysv/linux/s390/s390-64/libc.abilist  |  2 ++
>  .../sysv/linux/s390/s390-64/libpthread.abilist |  1 -
>  sysdeps/unix/sysv/linux/sh/be/libc.abilist     |  2 ++
>  .../unix/sysv/linux/sh/be/libpthread.abilist   |  1 -
>  sysdeps/unix/sysv/linux/sh/le/libc.abilist     |  2 ++
>  .../unix/sysv/linux/sh/le/libpthread.abilist   |  1 -
>  .../unix/sysv/linux/sparc/sparc32/libc.abilist |  2 ++
>  .../linux/sparc/sparc32/libpthread.abilist     |  1 -
>  .../unix/sysv/linux/sparc/sparc64/libc.abilist |  2 ++
>  .../linux/sparc/sparc64/libpthread.abilist     |  1 -
>  sysdeps/unix/sysv/linux/x86_64/64/libc.abilist |  2 ++
>  .../sysv/linux/x86_64/64/libpthread.abilist    |  1 -
>  .../unix/sysv/linux/x86_64/x32/libc.abilist    |  2 ++
>  .../sysv/linux/x86_64/x32/libpthread.abilist   |  1 -
>  65 files changed, 81 insertions(+), 37 deletions(-)
> 
> diff --git a/nptl/Makefile b/nptl/Makefile
> index 36c0f270b9..9f73cf2434 100644
> --- a/nptl/Makefile
> +++ b/nptl/Makefile
> @@ -158,6 +158,7 @@ routines = \
>    sem_open \
>    sem_post \
>    sem_routines \
> +  sem_timedwait \
>    tpp \
>    unwind \
>  
> @@ -209,7 +210,6 @@ libpthread-routines = \
>    pthread_sigqueue \
>    pthread_timedjoin \
>    pthread_tryjoin \
> -  sem_timedwait \
>    sem_unlink \
>    sem_wait \
>    vars \
> diff --git a/nptl/Versions b/nptl/Versions
> index df3967516f..f19c2355f1 100644
> --- a/nptl/Versions
> +++ b/nptl/Versions
> @@ -114,6 +114,7 @@ libc {
>      pthread_spin_trylock;
>      pthread_spin_unlock;
>      pthread_yield;
> +    sem_timedwait;
>    }
>    GLIBC_2.2.3 {
>      pthread_getattr_np;
> @@ -267,6 +268,7 @@ libc {
>      sem_init;
>      sem_open;
>      sem_post;
> +    sem_timedwait;
>      thrd_exit;
>      tss_create;
>      tss_delete;
> @@ -371,7 +373,6 @@ libpthread {
>      pthread_yield;
>      pthread_rwlock_timedrdlock;
>      pthread_rwlock_timedwrlock;
> -    sem_timedwait;
>    }
>  
>    GLIBC_2.2.3 {
> diff --git a/nptl/sem_timedwait.c b/nptl/sem_timedwait.c
> index 770020e26c..584546c706 100644
> --- a/nptl/sem_timedwait.c
> +++ b/nptl/sem_timedwait.c
> @@ -24,7 +24,7 @@
>  /* This is in a separate file because because sem_timedwait is only provided
>     if __USE_XOPEN2K is defined.  */
>  int
> -__sem_timedwait64 (sem_t *sem, const struct __timespec64 *abstime)
> +___sem_timedwait64 (sem_t *sem, const struct __timespec64 *abstime)
>  {
>    if (! valid_nanoseconds (abstime->tv_nsec))
>      {
> @@ -42,15 +42,23 @@ __sem_timedwait64 (sem_t *sem, const struct __timespec64 *abstime)
>  				  CLOCK_REALTIME, abstime);
>  }
>  
> -#if __TIMESIZE != 64
> -libpthread_hidden_def (__sem_timedwait64)
> +#if __TIMESIZE == 64
> +strong_alias (___sem_timedwait64, ___sem_timedwait)
> +#else /* __TIMESPEC64 != 64 */
> +libc_hidden_ver (___sem_timedwait64, __sem_timedwait64)
> +#ifndef SHARED
> +strong_alias (___sem_timedwait64, __sem_timedwait64)
> +#endif
>  
>  int
> -__sem_timedwait (sem_t *sem, const struct timespec *abstime)
> +___sem_timedwait (sem_t *sem, const struct timespec *abstime)
>  {
>    struct __timespec64 ts64 = valid_timespec_to_timespec64 (*abstime);
>  
>    return __sem_timedwait64 (sem, &ts64);
>  }
> +#endif /* __TIMESPEC64 != 64 */
> +versioned_symbol (libc, ___sem_timedwait, sem_timedwait, GLIBC_2_34);
> +#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_2, GLIBC_2_34)
> +compat_symbol (libpthread, ___sem_timedwait, sem_timedwait, GLIBC_2_2);
>  #endif
> -weak_alias (__sem_timedwait, sem_timedwait)
> diff --git a/nptl/semaphoreP.h b/nptl/semaphoreP.h
> index f030f0e4de..43ad849761 100644
> --- a/nptl/semaphoreP.h
> +++ b/nptl/semaphoreP.h
> @@ -57,5 +57,5 @@ __sem_clockwait64 (sem_t *sem, clockid_t clockid,
>  libc_hidden_proto (__sem_clockwait64)
>  extern int
>  __sem_timedwait64 (sem_t *sem, const struct __timespec64 *abstime);
> -libpthread_hidden_proto (__sem_timedwait64)
> +libc_hidden_proto (__sem_timedwait64)
>  #endif
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index c785610d5e..3da65776d9 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -1666,6 +1666,7 @@ GLIBC_2.17 sem_getvalue F
>  GLIBC_2.17 sem_init F
>  GLIBC_2.17 sem_open F
>  GLIBC_2.17 sem_post F
> +GLIBC_2.17 sem_timedwait F
>  GLIBC_2.17 semctl F
>  GLIBC_2.17 semget F
>  GLIBC_2.17 semop F
> @@ -2359,6 +2360,7 @@ GLIBC_2.34 sem_getvalue F
>  GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
> +GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> index e2a5c2b8e0..da05cd4d59 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> @@ -39,7 +39,6 @@ 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.17 sem_timedwait F
>  GLIBC_2.17 sem_trywait F
>  GLIBC_2.17 sem_unlink F
>  GLIBC_2.17 sem_wait F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index f1c5a64493..6e71456850 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -2026,6 +2026,7 @@ GLIBC_2.2 rcmd_af F
>  GLIBC_2.2 rexec_af F
>  GLIBC_2.2 rresvport_af F
>  GLIBC_2.2 ruserok_af F
> +GLIBC_2.2 sem_timedwait F
>  GLIBC_2.2 semctl F
>  GLIBC_2.2 shmctl F
>  GLIBC_2.2 svc_getreq_common F
> @@ -2444,6 +2445,7 @@ GLIBC_2.34 sem_getvalue F
>  GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
> +GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> index 1e04fed446..64f7b97cfd 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> @@ -38,7 +38,6 @@ GLIBC_2.2 pthread_barrierattr_destroy F
>  GLIBC_2.2 pthread_barrierattr_init F
>  GLIBC_2.2 pthread_barrierattr_setpshared F
>  GLIBC_2.2 pthread_getcpuclockid F
> -GLIBC_2.2 sem_timedwait F
>  GLIBC_2.2.3 __libpthread_version_placeholder F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index 794544cd1d..3dcbebada1 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -1608,6 +1608,7 @@ GLIBC_2.32 sem_getvalue F
>  GLIBC_2.32 sem_init F
>  GLIBC_2.32 sem_open F
>  GLIBC_2.32 sem_post F
> +GLIBC_2.32 sem_timedwait F
>  GLIBC_2.32 semctl F
>  GLIBC_2.32 semget F
>  GLIBC_2.32 semop F
> @@ -2118,6 +2119,7 @@ GLIBC_2.34 sem_getvalue F
>  GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
> +GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> index ed2bdcf3fa..d11ab85312 100644
> --- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> @@ -42,7 +42,6 @@ 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 sem_timedwait F
>  GLIBC_2.32 sem_trywait F
>  GLIBC_2.32 sem_unlink F
>  GLIBC_2.32 sem_wait F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index f483c62b12..aec8132bd5 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -259,6 +259,7 @@ GLIBC_2.34 sem_getvalue F
>  GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
> +GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> @@ -1850,6 +1851,7 @@ GLIBC_2.4 sem_getvalue F
>  GLIBC_2.4 sem_init F
>  GLIBC_2.4 sem_open F
>  GLIBC_2.4 sem_post F
> +GLIBC_2.4 sem_timedwait F
>  GLIBC_2.4 semctl F
>  GLIBC_2.4 semget F
>  GLIBC_2.4 semop F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> index 0f562f4d9e..7dc74135e3 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> @@ -47,7 +47,6 @@ 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
> -GLIBC_2.4 sem_timedwait F
>  GLIBC_2.4 sem_trywait F
>  GLIBC_2.4 sem_unlink F
>  GLIBC_2.4 sem_wait F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index acca7c7ea6..2f2e2fb7a2 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -256,6 +256,7 @@ GLIBC_2.34 sem_getvalue F
>  GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
> +GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> @@ -1847,6 +1848,7 @@ GLIBC_2.4 sem_getvalue F
>  GLIBC_2.4 sem_init F
>  GLIBC_2.4 sem_open F
>  GLIBC_2.4 sem_post F
> +GLIBC_2.4 sem_timedwait F
>  GLIBC_2.4 semctl F
>  GLIBC_2.4 semget F
>  GLIBC_2.4 semop F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> index 0f562f4d9e..7dc74135e3 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> @@ -47,7 +47,6 @@ 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
> -GLIBC_2.4 sem_timedwait F
>  GLIBC_2.4 sem_trywait F
>  GLIBC_2.4 sem_unlink F
>  GLIBC_2.4 sem_wait F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index 480d93f880..e17de2294f 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -1669,6 +1669,7 @@ GLIBC_2.29 sem_getvalue F
>  GLIBC_2.29 sem_init F
>  GLIBC_2.29 sem_open F
>  GLIBC_2.29 sem_post F
> +GLIBC_2.29 sem_timedwait F
>  GLIBC_2.29 semctl F
>  GLIBC_2.29 semget F
>  GLIBC_2.29 semop F
> @@ -2302,6 +2303,7 @@ GLIBC_2.34 sem_getvalue F
>  GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
> +GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> index c3a14fa4a2..f3286d7d92 100644
> --- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> @@ -41,7 +41,6 @@ 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 sem_timedwait F
>  GLIBC_2.29 sem_trywait F
>  GLIBC_2.29 sem_unlink F
>  GLIBC_2.29 sem_wait F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index 90b5df3648..a64c7afdd8 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -1458,6 +1458,7 @@ GLIBC_2.2 sem_getvalue F
>  GLIBC_2.2 sem_init F
>  GLIBC_2.2 sem_open F
>  GLIBC_2.2 sem_post F
> +GLIBC_2.2 sem_timedwait F
>  GLIBC_2.2 semctl F
>  GLIBC_2.2 semget F
>  GLIBC_2.2 semop F
> @@ -2253,6 +2254,7 @@ GLIBC_2.34 sem_getvalue F
>  GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
> +GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> index 069e32a2c2..e6282e233c 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> @@ -31,7 +31,6 @@ 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 sem_timedwait F
>  GLIBC_2.2 sem_trywait F
>  GLIBC_2.2 sem_unlink F
>  GLIBC_2.2 sem_wait F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index aea4c70ae9..1486c5dbcb 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -2038,6 +2038,7 @@ GLIBC_2.2 rexec_af F
>  GLIBC_2.2 rresvport_af F
>  GLIBC_2.2 ruserok_af F
>  GLIBC_2.2 scandir64 F
> +GLIBC_2.2 sem_timedwait F
>  GLIBC_2.2 semctl F
>  GLIBC_2.2 setrlimit F
>  GLIBC_2.2 shmctl F
> @@ -2434,6 +2435,7 @@ GLIBC_2.34 sem_getvalue F
>  GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
> +GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> index b4af14301c..c94979df12 100644
> --- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> @@ -38,7 +38,6 @@ GLIBC_2.2 pthread_barrierattr_destroy F
>  GLIBC_2.2 pthread_barrierattr_init F
>  GLIBC_2.2 pthread_barrierattr_setpshared F
>  GLIBC_2.2 pthread_getcpuclockid F
> -GLIBC_2.2 sem_timedwait F
>  GLIBC_2.2.3 __libpthread_version_placeholder F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index 8444ec41d2..044d56cac8 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -1479,6 +1479,7 @@ GLIBC_2.2 sem_getvalue F
>  GLIBC_2.2 sem_init F
>  GLIBC_2.2 sem_open F
>  GLIBC_2.2 sem_post F
> +GLIBC_2.2 sem_timedwait F
>  GLIBC_2.2 semctl F
>  GLIBC_2.2 semget F
>  GLIBC_2.2 semop F
> @@ -2287,6 +2288,7 @@ GLIBC_2.34 sem_getvalue F
>  GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
> +GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> index 993a2481b8..4573250afa 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> @@ -31,7 +31,6 @@ 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 sem_timedwait F
>  GLIBC_2.2 sem_trywait F
>  GLIBC_2.2 sem_unlink F
>  GLIBC_2.2 sem_wait F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index 0d678c99a2..d0e68c2bc1 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -260,6 +260,7 @@ GLIBC_2.34 sem_getvalue F
>  GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
> +GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> @@ -1830,6 +1831,7 @@ GLIBC_2.4 sem_getvalue F
>  GLIBC_2.4 sem_init F
>  GLIBC_2.4 sem_open F
>  GLIBC_2.4 sem_post F
> +GLIBC_2.4 sem_timedwait F
>  GLIBC_2.4 semctl F
>  GLIBC_2.4 semget F
>  GLIBC_2.4 semop F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> index 0f562f4d9e..7dc74135e3 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> @@ -47,7 +47,6 @@ 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
> -GLIBC_2.4 sem_timedwait F
>  GLIBC_2.4 sem_trywait F
>  GLIBC_2.4 sem_unlink F
>  GLIBC_2.4 sem_wait F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index 2716410e46..3fd4c8b544 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -1994,6 +1994,7 @@ GLIBC_2.2 rexec_af F
>  GLIBC_2.2 rresvport_af F
>  GLIBC_2.2 ruserok_af F
>  GLIBC_2.2 scandir64 F
> +GLIBC_2.2 sem_timedwait F
>  GLIBC_2.2 semctl F
>  GLIBC_2.2 setrlimit F
>  GLIBC_2.2 shmctl F
> @@ -2377,6 +2378,7 @@ GLIBC_2.34 sem_getvalue F
>  GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
> +GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> index b4af14301c..c94979df12 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> @@ -38,7 +38,6 @@ GLIBC_2.2 pthread_barrierattr_destroy F
>  GLIBC_2.2 pthread_barrierattr_init F
>  GLIBC_2.2 pthread_barrierattr_setpshared F
>  GLIBC_2.2 pthread_getcpuclockid F
> -GLIBC_2.2 sem_timedwait F
>  GLIBC_2.2.3 __libpthread_version_placeholder F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index 38d725dd3a..41d99361c5 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -1668,6 +1668,7 @@ GLIBC_2.18 sem_getvalue F
>  GLIBC_2.18 sem_init F
>  GLIBC_2.18 sem_open F
>  GLIBC_2.18 sem_post F
> +GLIBC_2.18 sem_timedwait F
>  GLIBC_2.18 semctl F
>  GLIBC_2.18 semget F
>  GLIBC_2.18 semop F
> @@ -2353,6 +2354,7 @@ GLIBC_2.34 sem_getvalue F
>  GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
> +GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> index 518406c580..50483447c3 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> @@ -41,7 +41,6 @@ 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.18 sem_timedwait F
>  GLIBC_2.18 sem_trywait F
>  GLIBC_2.18 sem_unlink F
>  GLIBC_2.18 sem_wait F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index d4079051df..bc5512f728 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -1668,6 +1668,7 @@ GLIBC_2.18 sem_getvalue F
>  GLIBC_2.18 sem_init F
>  GLIBC_2.18 sem_open F
>  GLIBC_2.18 sem_post F
> +GLIBC_2.18 sem_timedwait F
>  GLIBC_2.18 semctl F
>  GLIBC_2.18 semget F
>  GLIBC_2.18 semop F
> @@ -2350,6 +2351,7 @@ GLIBC_2.34 sem_getvalue F
>  GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
> +GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> index 518406c580..50483447c3 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> @@ -41,7 +41,6 @@ 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.18 sem_timedwait F
>  GLIBC_2.18 sem_trywait F
>  GLIBC_2.18 sem_unlink F
>  GLIBC_2.18 sem_wait F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index ee148e01c2..a9052fd2d2 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -1898,6 +1898,7 @@ GLIBC_2.2 sem_getvalue F
>  GLIBC_2.2 sem_init F
>  GLIBC_2.2 sem_open F
>  GLIBC_2.2 sem_post F
> +GLIBC_2.2 sem_timedwait F
>  GLIBC_2.2 semctl F
>  GLIBC_2.2 sendfile F
>  GLIBC_2.2 setrlimit64 F
> @@ -2340,6 +2341,7 @@ GLIBC_2.34 sem_getvalue F
>  GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
> +GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> index 9482a83b1c..f9cca8a676 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> @@ -34,7 +34,6 @@ GLIBC_2.2 pthread_create F
>  GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_setconcurrency F
> -GLIBC_2.2 sem_timedwait F
>  GLIBC_2.2 sem_trywait F
>  GLIBC_2.2 sem_unlink F
>  GLIBC_2.2 sem_wait F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index f6d465871f..c1510d2570 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -1896,6 +1896,7 @@ GLIBC_2.2 sem_getvalue F
>  GLIBC_2.2 sem_init F
>  GLIBC_2.2 sem_open F
>  GLIBC_2.2 sem_post F
> +GLIBC_2.2 sem_timedwait F
>  GLIBC_2.2 semctl F
>  GLIBC_2.2 sendfile F
>  GLIBC_2.2 setrlimit64 F
> @@ -2338,6 +2339,7 @@ GLIBC_2.34 sem_getvalue F
>  GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
> +GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> index 9482a83b1c..f9cca8a676 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> @@ -34,7 +34,6 @@ GLIBC_2.2 pthread_create F
>  GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_setconcurrency F
> -GLIBC_2.2 sem_timedwait F
>  GLIBC_2.2 sem_trywait F
>  GLIBC_2.2 sem_unlink F
>  GLIBC_2.2 sem_wait F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index 22bb85c170..bce71b4ff8 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -1896,6 +1896,7 @@ GLIBC_2.2 sem_getvalue F
>  GLIBC_2.2 sem_init F
>  GLIBC_2.2 sem_open F
>  GLIBC_2.2 sem_post F
> +GLIBC_2.2 sem_timedwait F
>  GLIBC_2.2 sendfile F
>  GLIBC_2.2 setrlimit64 F
>  GLIBC_2.2 setutxent F
> @@ -2346,6 +2347,7 @@ GLIBC_2.34 sem_getvalue F
>  GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
> +GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index a2c0ac31eb..e7919379ff 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -1892,6 +1892,7 @@ GLIBC_2.2 sem_getvalue F
>  GLIBC_2.2 sem_init F
>  GLIBC_2.2 sem_open F
>  GLIBC_2.2 sem_post F
> +GLIBC_2.2 sem_timedwait F
>  GLIBC_2.2 sendfile F
>  GLIBC_2.2 setrlimit64 F
>  GLIBC_2.2 setutxent F
> @@ -2340,6 +2341,7 @@ GLIBC_2.34 sem_getvalue F
>  GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
> +GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index 5491bc9076..022e7b13c0 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -1711,6 +1711,7 @@ GLIBC_2.21 sem_getvalue F
>  GLIBC_2.21 sem_init F
>  GLIBC_2.21 sem_open F
>  GLIBC_2.21 sem_post F
> +GLIBC_2.21 sem_timedwait F
>  GLIBC_2.21 semctl F
>  GLIBC_2.21 semget F
>  GLIBC_2.21 semop F
> @@ -2392,6 +2393,7 @@ GLIBC_2.34 sem_getvalue F
>  GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
> +GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> index d966123dd7..2c6366d253 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> @@ -41,7 +41,6 @@ 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.21 sem_timedwait F
>  GLIBC_2.21 sem_trywait F
>  GLIBC_2.21 sem_unlink F
>  GLIBC_2.21 sem_wait F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index 9dfb36bcf1..6d96f00678 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -1999,6 +1999,7 @@ GLIBC_2.2 rexec_af F
>  GLIBC_2.2 rresvport_af F
>  GLIBC_2.2 ruserok_af F
>  GLIBC_2.2 scandir64 F
> +GLIBC_2.2 sem_timedwait F
>  GLIBC_2.2 semctl F
>  GLIBC_2.2 setrlimit F
>  GLIBC_2.2 shmctl F
> @@ -2404,6 +2405,7 @@ GLIBC_2.34 sem_getvalue F
>  GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
> +GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> index 3c6e065e52..2cb64d181e 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> @@ -38,7 +38,6 @@ GLIBC_2.2 pthread_barrierattr_destroy F
>  GLIBC_2.2 pthread_barrierattr_init F
>  GLIBC_2.2 pthread_barrierattr_setpshared F
>  GLIBC_2.2 pthread_getcpuclockid F
> -GLIBC_2.2 sem_timedwait F
>  GLIBC_2.2.3 __libpthread_version_placeholder F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index b1f04fc147..1e9ab5406b 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -2003,6 +2003,7 @@ GLIBC_2.2 rexec_af F
>  GLIBC_2.2 rresvport_af F
>  GLIBC_2.2 ruserok_af F
>  GLIBC_2.2 scandir64 F
> +GLIBC_2.2 sem_timedwait F
>  GLIBC_2.2 semctl F
>  GLIBC_2.2 setrlimit F
>  GLIBC_2.2 shmctl F
> @@ -2437,6 +2438,7 @@ GLIBC_2.34 sem_getvalue F
>  GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
> +GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index b5229a315f..fd10c13d52 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -1583,6 +1583,7 @@ GLIBC_2.3 sem_getvalue F
>  GLIBC_2.3 sem_init F
>  GLIBC_2.3 sem_open F
>  GLIBC_2.3 sem_post F
> +GLIBC_2.3 sem_timedwait F
>  GLIBC_2.3 semctl F
>  GLIBC_2.3 semget F
>  GLIBC_2.3 semop F
> @@ -2254,6 +2255,7 @@ GLIBC_2.34 sem_getvalue F
>  GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
> +GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> index 1118ba89f6..d83baa5b40 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> @@ -34,7 +34,6 @@ 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 sem_timedwait F
>  GLIBC_2.3 sem_trywait F
>  GLIBC_2.3 sem_unlink F
>  GLIBC_2.3 sem_wait F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index e68290a5fe..c73d3442a4 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -1754,6 +1754,7 @@ GLIBC_2.17 sem_getvalue F
>  GLIBC_2.17 sem_init F
>  GLIBC_2.17 sem_open F
>  GLIBC_2.17 sem_post F
> +GLIBC_2.17 sem_timedwait F
>  GLIBC_2.17 semctl F
>  GLIBC_2.17 semget F
>  GLIBC_2.17 semop F
> @@ -2555,6 +2556,7 @@ GLIBC_2.34 sem_getvalue F
>  GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
> +GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> index e2a5c2b8e0..da05cd4d59 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> @@ -39,7 +39,6 @@ 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.17 sem_timedwait F
>  GLIBC_2.17 sem_trywait F
>  GLIBC_2.17 sem_unlink F
>  GLIBC_2.17 sem_wait F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index f6062c942b..a44a2d24b0 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -1610,6 +1610,7 @@ GLIBC_2.33 sem_getvalue F
>  GLIBC_2.33 sem_init F
>  GLIBC_2.33 sem_open F
>  GLIBC_2.33 sem_post F
> +GLIBC_2.33 sem_timedwait F
>  GLIBC_2.33 semctl F
>  GLIBC_2.33 semget F
>  GLIBC_2.33 semop F
> @@ -2120,6 +2121,7 @@ GLIBC_2.34 sem_getvalue F
>  GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
> +GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> index 431e167351..95c2cc98ca 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> @@ -42,7 +42,6 @@ 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 sem_timedwait F
>  GLIBC_2.33 sem_trywait F
>  GLIBC_2.33 sem_unlink F
>  GLIBC_2.33 sem_wait F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index 0b667860ec..2bf396dc33 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -1658,6 +1658,7 @@ GLIBC_2.27 sem_getvalue F
>  GLIBC_2.27 sem_init F
>  GLIBC_2.27 sem_open F
>  GLIBC_2.27 sem_post F
> +GLIBC_2.27 sem_timedwait F
>  GLIBC_2.27 semctl F
>  GLIBC_2.27 semget F
>  GLIBC_2.27 semop F
> @@ -2320,6 +2321,7 @@ GLIBC_2.34 sem_getvalue F
>  GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
> +GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> index b102df08a7..efbdd69d5f 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> @@ -41,7 +41,6 @@ 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.27 sem_timedwait F
>  GLIBC_2.27 sem_trywait F
>  GLIBC_2.27 sem_unlink F
>  GLIBC_2.27 sem_wait F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index 118d2a04ce..a39aeedc83 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -1997,6 +1997,7 @@ GLIBC_2.2 rexec_af F
>  GLIBC_2.2 rresvport_af F
>  GLIBC_2.2 ruserok_af F
>  GLIBC_2.2 scandir64 F
> +GLIBC_2.2 sem_timedwait F
>  GLIBC_2.2 semctl F
>  GLIBC_2.2 setrlimit F
>  GLIBC_2.2 shmctl F
> @@ -2402,6 +2403,7 @@ GLIBC_2.34 sem_getvalue F
>  GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
> +GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> index 966ce977a8..c9352acfff 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> @@ -39,7 +39,6 @@ GLIBC_2.2 pthread_barrierattr_destroy F
>  GLIBC_2.2 pthread_barrierattr_init F
>  GLIBC_2.2 pthread_barrierattr_setpshared F
>  GLIBC_2.2 pthread_getcpuclockid F
> -GLIBC_2.2 sem_timedwait F
>  GLIBC_2.2.3 __libpthread_version_placeholder F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index 6c5783579b..98b33f844b 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -1476,6 +1476,7 @@ GLIBC_2.2 sem_getvalue F
>  GLIBC_2.2 sem_init F
>  GLIBC_2.2 sem_open F
>  GLIBC_2.2 sem_post F
> +GLIBC_2.2 sem_timedwait F
>  GLIBC_2.2 semctl F
>  GLIBC_2.2 semget F
>  GLIBC_2.2 semop F
> @@ -2291,6 +2292,7 @@ GLIBC_2.34 sem_getvalue F
>  GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
> +GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> index 8ecf3125a6..58a2d4f3ba 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> @@ -32,7 +32,6 @@ 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 sem_timedwait F
>  GLIBC_2.2 sem_trywait F
>  GLIBC_2.2 sem_unlink F
>  GLIBC_2.2 sem_wait F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index d357f4ceb1..c029912b67 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -1462,6 +1462,7 @@ GLIBC_2.2 sem_getvalue F
>  GLIBC_2.2 sem_init F
>  GLIBC_2.2 sem_open F
>  GLIBC_2.2 sem_post F
> +GLIBC_2.2 sem_timedwait F
>  GLIBC_2.2 semctl F
>  GLIBC_2.2 semget F
>  GLIBC_2.2 semop F
> @@ -2260,6 +2261,7 @@ GLIBC_2.34 sem_getvalue F
>  GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
> +GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> index 069e32a2c2..e6282e233c 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> @@ -31,7 +31,6 @@ 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 sem_timedwait F
>  GLIBC_2.2 sem_trywait F
>  GLIBC_2.2 sem_unlink F
>  GLIBC_2.2 sem_wait F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index ff348ac39d..5b3f7aa502 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -1462,6 +1462,7 @@ GLIBC_2.2 sem_getvalue F
>  GLIBC_2.2 sem_init F
>  GLIBC_2.2 sem_open F
>  GLIBC_2.2 sem_post F
> +GLIBC_2.2 sem_timedwait F
>  GLIBC_2.2 semctl F
>  GLIBC_2.2 semget F
>  GLIBC_2.2 semop F
> @@ -2257,6 +2258,7 @@ GLIBC_2.34 sem_getvalue F
>  GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
> +GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> index 069e32a2c2..e6282e233c 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> @@ -31,7 +31,6 @@ 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 sem_timedwait F
>  GLIBC_2.2 sem_trywait F
>  GLIBC_2.2 sem_unlink F
>  GLIBC_2.2 sem_wait F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index 3a54c61f14..d82f1c3f89 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -1993,6 +1993,7 @@ GLIBC_2.2 rexec_af F
>  GLIBC_2.2 rresvport_af F
>  GLIBC_2.2 ruserok_af F
>  GLIBC_2.2 scandir64 F
> +GLIBC_2.2 sem_timedwait F
>  GLIBC_2.2 semctl F
>  GLIBC_2.2 shmctl F
>  GLIBC_2.2 svc_getreq_common F
> @@ -2393,6 +2394,7 @@ GLIBC_2.34 sem_getvalue F
>  GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
> +GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> index 1e04fed446..64f7b97cfd 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> @@ -38,7 +38,6 @@ GLIBC_2.2 pthread_barrierattr_destroy F
>  GLIBC_2.2 pthread_barrierattr_init F
>  GLIBC_2.2 pthread_barrierattr_setpshared F
>  GLIBC_2.2 pthread_getcpuclockid F
> -GLIBC_2.2 sem_timedwait F
>  GLIBC_2.2.3 __libpthread_version_placeholder F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index ec86498235..b77c3ebc14 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -1505,6 +1505,7 @@ GLIBC_2.2 sem_getvalue F
>  GLIBC_2.2 sem_init F
>  GLIBC_2.2 sem_open F
>  GLIBC_2.2 sem_post F
> +GLIBC_2.2 sem_timedwait F
>  GLIBC_2.2 semctl F
>  GLIBC_2.2 semget F
>  GLIBC_2.2 semop F
> @@ -2308,6 +2309,7 @@ GLIBC_2.34 sem_getvalue F
>  GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
> +GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> index 993a2481b8..4573250afa 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> @@ -31,7 +31,6 @@ 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 sem_timedwait F
>  GLIBC_2.2 sem_trywait F
>  GLIBC_2.2 sem_unlink F
>  GLIBC_2.2 sem_wait F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index c60b9d4baa..1b56b70a15 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -1473,6 +1473,7 @@ GLIBC_2.2.5 sem_getvalue F
>  GLIBC_2.2.5 sem_init F
>  GLIBC_2.2.5 sem_open F
>  GLIBC_2.2.5 sem_post F
> +GLIBC_2.2.5 sem_timedwait F
>  GLIBC_2.2.5 semctl F
>  GLIBC_2.2.5 semget F
>  GLIBC_2.2.5 semop F
> @@ -2269,6 +2270,7 @@ GLIBC_2.34 sem_getvalue F
>  GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
> +GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> index 3e760487f0..dc598f1bd8 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> @@ -31,7 +31,6 @@ 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.5 sem_timedwait F
>  GLIBC_2.2.5 sem_trywait F
>  GLIBC_2.2.5 sem_unlink F
>  GLIBC_2.2.5 sem_wait F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index 1637d12535..26d95cc46e 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -1672,6 +1672,7 @@ GLIBC_2.16 sem_getvalue F
>  GLIBC_2.16 sem_init F
>  GLIBC_2.16 sem_open F
>  GLIBC_2.16 sem_post F
> +GLIBC_2.16 sem_timedwait F
>  GLIBC_2.16 semctl F
>  GLIBC_2.16 semget F
>  GLIBC_2.16 semop F
> @@ -2374,6 +2375,7 @@ GLIBC_2.34 sem_getvalue F
>  GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
> +GLIBC_2.34 sem_timedwait F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> index b63a912fde..b5ade1e207 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> @@ -39,7 +39,6 @@ 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.16 sem_timedwait F
>  GLIBC_2.16 sem_trywait F
>  GLIBC_2.16 sem_unlink F
>  GLIBC_2.16 sem_wait F
>
  

Patch

diff --git a/nptl/Makefile b/nptl/Makefile
index 36c0f270b9..9f73cf2434 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -158,6 +158,7 @@  routines = \
   sem_open \
   sem_post \
   sem_routines \
+  sem_timedwait \
   tpp \
   unwind \
 
@@ -209,7 +210,6 @@  libpthread-routines = \
   pthread_sigqueue \
   pthread_timedjoin \
   pthread_tryjoin \
-  sem_timedwait \
   sem_unlink \
   sem_wait \
   vars \
diff --git a/nptl/Versions b/nptl/Versions
index df3967516f..f19c2355f1 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -114,6 +114,7 @@  libc {
     pthread_spin_trylock;
     pthread_spin_unlock;
     pthread_yield;
+    sem_timedwait;
   }
   GLIBC_2.2.3 {
     pthread_getattr_np;
@@ -267,6 +268,7 @@  libc {
     sem_init;
     sem_open;
     sem_post;
+    sem_timedwait;
     thrd_exit;
     tss_create;
     tss_delete;
@@ -371,7 +373,6 @@  libpthread {
     pthread_yield;
     pthread_rwlock_timedrdlock;
     pthread_rwlock_timedwrlock;
-    sem_timedwait;
   }
 
   GLIBC_2.2.3 {
diff --git a/nptl/sem_timedwait.c b/nptl/sem_timedwait.c
index 770020e26c..584546c706 100644
--- a/nptl/sem_timedwait.c
+++ b/nptl/sem_timedwait.c
@@ -24,7 +24,7 @@ 
 /* This is in a separate file because because sem_timedwait is only provided
    if __USE_XOPEN2K is defined.  */
 int
-__sem_timedwait64 (sem_t *sem, const struct __timespec64 *abstime)
+___sem_timedwait64 (sem_t *sem, const struct __timespec64 *abstime)
 {
   if (! valid_nanoseconds (abstime->tv_nsec))
     {
@@ -42,15 +42,23 @@  __sem_timedwait64 (sem_t *sem, const struct __timespec64 *abstime)
 				  CLOCK_REALTIME, abstime);
 }
 
-#if __TIMESIZE != 64
-libpthread_hidden_def (__sem_timedwait64)
+#if __TIMESIZE == 64
+strong_alias (___sem_timedwait64, ___sem_timedwait)
+#else /* __TIMESPEC64 != 64 */
+libc_hidden_ver (___sem_timedwait64, __sem_timedwait64)
+#ifndef SHARED
+strong_alias (___sem_timedwait64, __sem_timedwait64)
+#endif
 
 int
-__sem_timedwait (sem_t *sem, const struct timespec *abstime)
+___sem_timedwait (sem_t *sem, const struct timespec *abstime)
 {
   struct __timespec64 ts64 = valid_timespec_to_timespec64 (*abstime);
 
   return __sem_timedwait64 (sem, &ts64);
 }
+#endif /* __TIMESPEC64 != 64 */
+versioned_symbol (libc, ___sem_timedwait, sem_timedwait, GLIBC_2_34);
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libpthread, ___sem_timedwait, sem_timedwait, GLIBC_2_2);
 #endif
-weak_alias (__sem_timedwait, sem_timedwait)
diff --git a/nptl/semaphoreP.h b/nptl/semaphoreP.h
index f030f0e4de..43ad849761 100644
--- a/nptl/semaphoreP.h
+++ b/nptl/semaphoreP.h
@@ -57,5 +57,5 @@  __sem_clockwait64 (sem_t *sem, clockid_t clockid,
 libc_hidden_proto (__sem_clockwait64)
 extern int
 __sem_timedwait64 (sem_t *sem, const struct __timespec64 *abstime);
-libpthread_hidden_proto (__sem_timedwait64)
+libc_hidden_proto (__sem_timedwait64)
 #endif
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index c785610d5e..3da65776d9 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -1666,6 +1666,7 @@  GLIBC_2.17 sem_getvalue F
 GLIBC_2.17 sem_init F
 GLIBC_2.17 sem_open F
 GLIBC_2.17 sem_post F
+GLIBC_2.17 sem_timedwait F
 GLIBC_2.17 semctl F
 GLIBC_2.17 semget F
 GLIBC_2.17 semop F
@@ -2359,6 +2360,7 @@  GLIBC_2.34 sem_getvalue F
 GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
+GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
index e2a5c2b8e0..da05cd4d59 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
@@ -39,7 +39,6 @@  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.17 sem_timedwait F
 GLIBC_2.17 sem_trywait F
 GLIBC_2.17 sem_unlink F
 GLIBC_2.17 sem_wait F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index f1c5a64493..6e71456850 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -2026,6 +2026,7 @@  GLIBC_2.2 rcmd_af F
 GLIBC_2.2 rexec_af F
 GLIBC_2.2 rresvport_af F
 GLIBC_2.2 ruserok_af F
+GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 semctl F
 GLIBC_2.2 shmctl F
 GLIBC_2.2 svc_getreq_common F
@@ -2444,6 +2445,7 @@  GLIBC_2.34 sem_getvalue F
 GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
+GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
index 1e04fed446..64f7b97cfd 100644
--- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
@@ -38,7 +38,6 @@  GLIBC_2.2 pthread_barrierattr_destroy F
 GLIBC_2.2 pthread_barrierattr_init F
 GLIBC_2.2 pthread_barrierattr_setpshared F
 GLIBC_2.2 pthread_getcpuclockid F
-GLIBC_2.2 sem_timedwait F
 GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 794544cd1d..3dcbebada1 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1608,6 +1608,7 @@  GLIBC_2.32 sem_getvalue F
 GLIBC_2.32 sem_init F
 GLIBC_2.32 sem_open F
 GLIBC_2.32 sem_post F
+GLIBC_2.32 sem_timedwait F
 GLIBC_2.32 semctl F
 GLIBC_2.32 semget F
 GLIBC_2.32 semop F
@@ -2118,6 +2119,7 @@  GLIBC_2.34 sem_getvalue F
 GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
+GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
index ed2bdcf3fa..d11ab85312 100644
--- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
@@ -42,7 +42,6 @@  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 sem_timedwait F
 GLIBC_2.32 sem_trywait F
 GLIBC_2.32 sem_unlink F
 GLIBC_2.32 sem_wait F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index f483c62b12..aec8132bd5 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -259,6 +259,7 @@  GLIBC_2.34 sem_getvalue F
 GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
+GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
@@ -1850,6 +1851,7 @@  GLIBC_2.4 sem_getvalue F
 GLIBC_2.4 sem_init F
 GLIBC_2.4 sem_open F
 GLIBC_2.4 sem_post F
+GLIBC_2.4 sem_timedwait F
 GLIBC_2.4 semctl F
 GLIBC_2.4 semget F
 GLIBC_2.4 semop F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
index 0f562f4d9e..7dc74135e3 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
@@ -47,7 +47,6 @@  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
-GLIBC_2.4 sem_timedwait F
 GLIBC_2.4 sem_trywait F
 GLIBC_2.4 sem_unlink F
 GLIBC_2.4 sem_wait F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index acca7c7ea6..2f2e2fb7a2 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -256,6 +256,7 @@  GLIBC_2.34 sem_getvalue F
 GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
+GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
@@ -1847,6 +1848,7 @@  GLIBC_2.4 sem_getvalue F
 GLIBC_2.4 sem_init F
 GLIBC_2.4 sem_open F
 GLIBC_2.4 sem_post F
+GLIBC_2.4 sem_timedwait F
 GLIBC_2.4 semctl F
 GLIBC_2.4 semget F
 GLIBC_2.4 semop F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
index 0f562f4d9e..7dc74135e3 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
@@ -47,7 +47,6 @@  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
-GLIBC_2.4 sem_timedwait F
 GLIBC_2.4 sem_trywait F
 GLIBC_2.4 sem_unlink F
 GLIBC_2.4 sem_wait F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 480d93f880..e17de2294f 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -1669,6 +1669,7 @@  GLIBC_2.29 sem_getvalue F
 GLIBC_2.29 sem_init F
 GLIBC_2.29 sem_open F
 GLIBC_2.29 sem_post F
+GLIBC_2.29 sem_timedwait F
 GLIBC_2.29 semctl F
 GLIBC_2.29 semget F
 GLIBC_2.29 semop F
@@ -2302,6 +2303,7 @@  GLIBC_2.34 sem_getvalue F
 GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
+GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
index c3a14fa4a2..f3286d7d92 100644
--- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
@@ -41,7 +41,6 @@  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 sem_timedwait F
 GLIBC_2.29 sem_trywait F
 GLIBC_2.29 sem_unlink F
 GLIBC_2.29 sem_wait F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 90b5df3648..a64c7afdd8 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -1458,6 +1458,7 @@  GLIBC_2.2 sem_getvalue F
 GLIBC_2.2 sem_init F
 GLIBC_2.2 sem_open F
 GLIBC_2.2 sem_post F
+GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 semctl F
 GLIBC_2.2 semget F
 GLIBC_2.2 semop F
@@ -2253,6 +2254,7 @@  GLIBC_2.34 sem_getvalue F
 GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
+GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
index 069e32a2c2..e6282e233c 100644
--- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
@@ -31,7 +31,6 @@  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 sem_timedwait F
 GLIBC_2.2 sem_trywait F
 GLIBC_2.2 sem_unlink F
 GLIBC_2.2 sem_wait F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index aea4c70ae9..1486c5dbcb 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -2038,6 +2038,7 @@  GLIBC_2.2 rexec_af F
 GLIBC_2.2 rresvport_af F
 GLIBC_2.2 ruserok_af F
 GLIBC_2.2 scandir64 F
+GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 semctl F
 GLIBC_2.2 setrlimit F
 GLIBC_2.2 shmctl F
@@ -2434,6 +2435,7 @@  GLIBC_2.34 sem_getvalue F
 GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
+GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
index b4af14301c..c94979df12 100644
--- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
@@ -38,7 +38,6 @@  GLIBC_2.2 pthread_barrierattr_destroy F
 GLIBC_2.2 pthread_barrierattr_init F
 GLIBC_2.2 pthread_barrierattr_setpshared F
 GLIBC_2.2 pthread_getcpuclockid F
-GLIBC_2.2 sem_timedwait F
 GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 8444ec41d2..044d56cac8 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -1479,6 +1479,7 @@  GLIBC_2.2 sem_getvalue F
 GLIBC_2.2 sem_init F
 GLIBC_2.2 sem_open F
 GLIBC_2.2 sem_post F
+GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 semctl F
 GLIBC_2.2 semget F
 GLIBC_2.2 semop F
@@ -2287,6 +2288,7 @@  GLIBC_2.34 sem_getvalue F
 GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
+GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
index 993a2481b8..4573250afa 100644
--- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
@@ -31,7 +31,6 @@  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 sem_timedwait F
 GLIBC_2.2 sem_trywait F
 GLIBC_2.2 sem_unlink F
 GLIBC_2.2 sem_wait F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 0d678c99a2..d0e68c2bc1 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -260,6 +260,7 @@  GLIBC_2.34 sem_getvalue F
 GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
+GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
@@ -1830,6 +1831,7 @@  GLIBC_2.4 sem_getvalue F
 GLIBC_2.4 sem_init F
 GLIBC_2.4 sem_open F
 GLIBC_2.4 sem_post F
+GLIBC_2.4 sem_timedwait F
 GLIBC_2.4 semctl F
 GLIBC_2.4 semget F
 GLIBC_2.4 semop F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
index 0f562f4d9e..7dc74135e3 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
@@ -47,7 +47,6 @@  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
-GLIBC_2.4 sem_timedwait F
 GLIBC_2.4 sem_trywait F
 GLIBC_2.4 sem_unlink F
 GLIBC_2.4 sem_wait F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 2716410e46..3fd4c8b544 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -1994,6 +1994,7 @@  GLIBC_2.2 rexec_af F
 GLIBC_2.2 rresvport_af F
 GLIBC_2.2 ruserok_af F
 GLIBC_2.2 scandir64 F
+GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 semctl F
 GLIBC_2.2 setrlimit F
 GLIBC_2.2 shmctl F
@@ -2377,6 +2378,7 @@  GLIBC_2.34 sem_getvalue F
 GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
+GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
index b4af14301c..c94979df12 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
@@ -38,7 +38,6 @@  GLIBC_2.2 pthread_barrierattr_destroy F
 GLIBC_2.2 pthread_barrierattr_init F
 GLIBC_2.2 pthread_barrierattr_setpshared F
 GLIBC_2.2 pthread_getcpuclockid F
-GLIBC_2.2 sem_timedwait F
 GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 38d725dd3a..41d99361c5 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -1668,6 +1668,7 @@  GLIBC_2.18 sem_getvalue F
 GLIBC_2.18 sem_init F
 GLIBC_2.18 sem_open F
 GLIBC_2.18 sem_post F
+GLIBC_2.18 sem_timedwait F
 GLIBC_2.18 semctl F
 GLIBC_2.18 semget F
 GLIBC_2.18 semop F
@@ -2353,6 +2354,7 @@  GLIBC_2.34 sem_getvalue F
 GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
+GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
index 518406c580..50483447c3 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
@@ -41,7 +41,6 @@  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.18 sem_timedwait F
 GLIBC_2.18 sem_trywait F
 GLIBC_2.18 sem_unlink F
 GLIBC_2.18 sem_wait F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index d4079051df..bc5512f728 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -1668,6 +1668,7 @@  GLIBC_2.18 sem_getvalue F
 GLIBC_2.18 sem_init F
 GLIBC_2.18 sem_open F
 GLIBC_2.18 sem_post F
+GLIBC_2.18 sem_timedwait F
 GLIBC_2.18 semctl F
 GLIBC_2.18 semget F
 GLIBC_2.18 semop F
@@ -2350,6 +2351,7 @@  GLIBC_2.34 sem_getvalue F
 GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
+GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
index 518406c580..50483447c3 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
@@ -41,7 +41,6 @@  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.18 sem_timedwait F
 GLIBC_2.18 sem_trywait F
 GLIBC_2.18 sem_unlink F
 GLIBC_2.18 sem_wait F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index ee148e01c2..a9052fd2d2 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -1898,6 +1898,7 @@  GLIBC_2.2 sem_getvalue F
 GLIBC_2.2 sem_init F
 GLIBC_2.2 sem_open F
 GLIBC_2.2 sem_post F
+GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 semctl F
 GLIBC_2.2 sendfile F
 GLIBC_2.2 setrlimit64 F
@@ -2340,6 +2341,7 @@  GLIBC_2.34 sem_getvalue F
 GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
+GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
index 9482a83b1c..f9cca8a676 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
@@ -34,7 +34,6 @@  GLIBC_2.2 pthread_create F
 GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_setconcurrency F
-GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 sem_trywait F
 GLIBC_2.2 sem_unlink F
 GLIBC_2.2 sem_wait F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index f6d465871f..c1510d2570 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -1896,6 +1896,7 @@  GLIBC_2.2 sem_getvalue F
 GLIBC_2.2 sem_init F
 GLIBC_2.2 sem_open F
 GLIBC_2.2 sem_post F
+GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 semctl F
 GLIBC_2.2 sendfile F
 GLIBC_2.2 setrlimit64 F
@@ -2338,6 +2339,7 @@  GLIBC_2.34 sem_getvalue F
 GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
+GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
index 9482a83b1c..f9cca8a676 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
@@ -34,7 +34,6 @@  GLIBC_2.2 pthread_create F
 GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_setconcurrency F
-GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 sem_trywait F
 GLIBC_2.2 sem_unlink F
 GLIBC_2.2 sem_wait F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 22bb85c170..bce71b4ff8 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -1896,6 +1896,7 @@  GLIBC_2.2 sem_getvalue F
 GLIBC_2.2 sem_init F
 GLIBC_2.2 sem_open F
 GLIBC_2.2 sem_post F
+GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 sendfile F
 GLIBC_2.2 setrlimit64 F
 GLIBC_2.2 setutxent F
@@ -2346,6 +2347,7 @@  GLIBC_2.34 sem_getvalue F
 GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
+GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index a2c0ac31eb..e7919379ff 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -1892,6 +1892,7 @@  GLIBC_2.2 sem_getvalue F
 GLIBC_2.2 sem_init F
 GLIBC_2.2 sem_open F
 GLIBC_2.2 sem_post F
+GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 sendfile F
 GLIBC_2.2 setrlimit64 F
 GLIBC_2.2 setutxent F
@@ -2340,6 +2341,7 @@  GLIBC_2.34 sem_getvalue F
 GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
+GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 5491bc9076..022e7b13c0 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -1711,6 +1711,7 @@  GLIBC_2.21 sem_getvalue F
 GLIBC_2.21 sem_init F
 GLIBC_2.21 sem_open F
 GLIBC_2.21 sem_post F
+GLIBC_2.21 sem_timedwait F
 GLIBC_2.21 semctl F
 GLIBC_2.21 semget F
 GLIBC_2.21 semop F
@@ -2392,6 +2393,7 @@  GLIBC_2.34 sem_getvalue F
 GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
+GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
index d966123dd7..2c6366d253 100644
--- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
@@ -41,7 +41,6 @@  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.21 sem_timedwait F
 GLIBC_2.21 sem_trywait F
 GLIBC_2.21 sem_unlink F
 GLIBC_2.21 sem_wait F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 9dfb36bcf1..6d96f00678 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -1999,6 +1999,7 @@  GLIBC_2.2 rexec_af F
 GLIBC_2.2 rresvport_af F
 GLIBC_2.2 ruserok_af F
 GLIBC_2.2 scandir64 F
+GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 semctl F
 GLIBC_2.2 setrlimit F
 GLIBC_2.2 shmctl F
@@ -2404,6 +2405,7 @@  GLIBC_2.34 sem_getvalue F
 GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
+GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
index 3c6e065e52..2cb64d181e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
@@ -38,7 +38,6 @@  GLIBC_2.2 pthread_barrierattr_destroy F
 GLIBC_2.2 pthread_barrierattr_init F
 GLIBC_2.2 pthread_barrierattr_setpshared F
 GLIBC_2.2 pthread_getcpuclockid F
-GLIBC_2.2 sem_timedwait F
 GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index b1f04fc147..1e9ab5406b 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -2003,6 +2003,7 @@  GLIBC_2.2 rexec_af F
 GLIBC_2.2 rresvport_af F
 GLIBC_2.2 ruserok_af F
 GLIBC_2.2 scandir64 F
+GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 semctl F
 GLIBC_2.2 setrlimit F
 GLIBC_2.2 shmctl F
@@ -2437,6 +2438,7 @@  GLIBC_2.34 sem_getvalue F
 GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
+GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index b5229a315f..fd10c13d52 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -1583,6 +1583,7 @@  GLIBC_2.3 sem_getvalue F
 GLIBC_2.3 sem_init F
 GLIBC_2.3 sem_open F
 GLIBC_2.3 sem_post F
+GLIBC_2.3 sem_timedwait F
 GLIBC_2.3 semctl F
 GLIBC_2.3 semget F
 GLIBC_2.3 semop F
@@ -2254,6 +2255,7 @@  GLIBC_2.34 sem_getvalue F
 GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
+GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
index 1118ba89f6..d83baa5b40 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
@@ -34,7 +34,6 @@  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 sem_timedwait F
 GLIBC_2.3 sem_trywait F
 GLIBC_2.3 sem_unlink F
 GLIBC_2.3 sem_wait F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index e68290a5fe..c73d3442a4 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -1754,6 +1754,7 @@  GLIBC_2.17 sem_getvalue F
 GLIBC_2.17 sem_init F
 GLIBC_2.17 sem_open F
 GLIBC_2.17 sem_post F
+GLIBC_2.17 sem_timedwait F
 GLIBC_2.17 semctl F
 GLIBC_2.17 semget F
 GLIBC_2.17 semop F
@@ -2555,6 +2556,7 @@  GLIBC_2.34 sem_getvalue F
 GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
+GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
index e2a5c2b8e0..da05cd4d59 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
@@ -39,7 +39,6 @@  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.17 sem_timedwait F
 GLIBC_2.17 sem_trywait F
 GLIBC_2.17 sem_unlink F
 GLIBC_2.17 sem_wait F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index f6062c942b..a44a2d24b0 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1610,6 +1610,7 @@  GLIBC_2.33 sem_getvalue F
 GLIBC_2.33 sem_init F
 GLIBC_2.33 sem_open F
 GLIBC_2.33 sem_post F
+GLIBC_2.33 sem_timedwait F
 GLIBC_2.33 semctl F
 GLIBC_2.33 semget F
 GLIBC_2.33 semop F
@@ -2120,6 +2121,7 @@  GLIBC_2.34 sem_getvalue F
 GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
+GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
index 431e167351..95c2cc98ca 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
@@ -42,7 +42,6 @@  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 sem_timedwait F
 GLIBC_2.33 sem_trywait F
 GLIBC_2.33 sem_unlink F
 GLIBC_2.33 sem_wait F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 0b667860ec..2bf396dc33 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -1658,6 +1658,7 @@  GLIBC_2.27 sem_getvalue F
 GLIBC_2.27 sem_init F
 GLIBC_2.27 sem_open F
 GLIBC_2.27 sem_post F
+GLIBC_2.27 sem_timedwait F
 GLIBC_2.27 semctl F
 GLIBC_2.27 semget F
 GLIBC_2.27 semop F
@@ -2320,6 +2321,7 @@  GLIBC_2.34 sem_getvalue F
 GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
+GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
index b102df08a7..efbdd69d5f 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
@@ -41,7 +41,6 @@  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.27 sem_timedwait F
 GLIBC_2.27 sem_trywait F
 GLIBC_2.27 sem_unlink F
 GLIBC_2.27 sem_wait F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 118d2a04ce..a39aeedc83 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -1997,6 +1997,7 @@  GLIBC_2.2 rexec_af F
 GLIBC_2.2 rresvport_af F
 GLIBC_2.2 ruserok_af F
 GLIBC_2.2 scandir64 F
+GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 semctl F
 GLIBC_2.2 setrlimit F
 GLIBC_2.2 shmctl F
@@ -2402,6 +2403,7 @@  GLIBC_2.34 sem_getvalue F
 GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
+GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
index 966ce977a8..c9352acfff 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
@@ -39,7 +39,6 @@  GLIBC_2.2 pthread_barrierattr_destroy F
 GLIBC_2.2 pthread_barrierattr_init F
 GLIBC_2.2 pthread_barrierattr_setpshared F
 GLIBC_2.2 pthread_getcpuclockid F
-GLIBC_2.2 sem_timedwait F
 GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 6c5783579b..98b33f844b 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -1476,6 +1476,7 @@  GLIBC_2.2 sem_getvalue F
 GLIBC_2.2 sem_init F
 GLIBC_2.2 sem_open F
 GLIBC_2.2 sem_post F
+GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 semctl F
 GLIBC_2.2 semget F
 GLIBC_2.2 semop F
@@ -2291,6 +2292,7 @@  GLIBC_2.34 sem_getvalue F
 GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
+GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
index 8ecf3125a6..58a2d4f3ba 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
@@ -32,7 +32,6 @@  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 sem_timedwait F
 GLIBC_2.2 sem_trywait F
 GLIBC_2.2 sem_unlink F
 GLIBC_2.2 sem_wait F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index d357f4ceb1..c029912b67 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -1462,6 +1462,7 @@  GLIBC_2.2 sem_getvalue F
 GLIBC_2.2 sem_init F
 GLIBC_2.2 sem_open F
 GLIBC_2.2 sem_post F
+GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 semctl F
 GLIBC_2.2 semget F
 GLIBC_2.2 semop F
@@ -2260,6 +2261,7 @@  GLIBC_2.34 sem_getvalue F
 GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
+GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
index 069e32a2c2..e6282e233c 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
@@ -31,7 +31,6 @@  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 sem_timedwait F
 GLIBC_2.2 sem_trywait F
 GLIBC_2.2 sem_unlink F
 GLIBC_2.2 sem_wait F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index ff348ac39d..5b3f7aa502 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -1462,6 +1462,7 @@  GLIBC_2.2 sem_getvalue F
 GLIBC_2.2 sem_init F
 GLIBC_2.2 sem_open F
 GLIBC_2.2 sem_post F
+GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 semctl F
 GLIBC_2.2 semget F
 GLIBC_2.2 semop F
@@ -2257,6 +2258,7 @@  GLIBC_2.34 sem_getvalue F
 GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
+GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
index 069e32a2c2..e6282e233c 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
@@ -31,7 +31,6 @@  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 sem_timedwait F
 GLIBC_2.2 sem_trywait F
 GLIBC_2.2 sem_unlink F
 GLIBC_2.2 sem_wait F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 3a54c61f14..d82f1c3f89 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -1993,6 +1993,7 @@  GLIBC_2.2 rexec_af F
 GLIBC_2.2 rresvport_af F
 GLIBC_2.2 ruserok_af F
 GLIBC_2.2 scandir64 F
+GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 semctl F
 GLIBC_2.2 shmctl F
 GLIBC_2.2 svc_getreq_common F
@@ -2393,6 +2394,7 @@  GLIBC_2.34 sem_getvalue F
 GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
+GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
index 1e04fed446..64f7b97cfd 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
@@ -38,7 +38,6 @@  GLIBC_2.2 pthread_barrierattr_destroy F
 GLIBC_2.2 pthread_barrierattr_init F
 GLIBC_2.2 pthread_barrierattr_setpshared F
 GLIBC_2.2 pthread_getcpuclockid F
-GLIBC_2.2 sem_timedwait F
 GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index ec86498235..b77c3ebc14 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -1505,6 +1505,7 @@  GLIBC_2.2 sem_getvalue F
 GLIBC_2.2 sem_init F
 GLIBC_2.2 sem_open F
 GLIBC_2.2 sem_post F
+GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 semctl F
 GLIBC_2.2 semget F
 GLIBC_2.2 semop F
@@ -2308,6 +2309,7 @@  GLIBC_2.34 sem_getvalue F
 GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
+GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
index 993a2481b8..4573250afa 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
@@ -31,7 +31,6 @@  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 sem_timedwait F
 GLIBC_2.2 sem_trywait F
 GLIBC_2.2 sem_unlink F
 GLIBC_2.2 sem_wait F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index c60b9d4baa..1b56b70a15 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -1473,6 +1473,7 @@  GLIBC_2.2.5 sem_getvalue F
 GLIBC_2.2.5 sem_init F
 GLIBC_2.2.5 sem_open F
 GLIBC_2.2.5 sem_post F
+GLIBC_2.2.5 sem_timedwait F
 GLIBC_2.2.5 semctl F
 GLIBC_2.2.5 semget F
 GLIBC_2.2.5 semop F
@@ -2269,6 +2270,7 @@  GLIBC_2.34 sem_getvalue F
 GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
+GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
index 3e760487f0..dc598f1bd8 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
@@ -31,7 +31,6 @@  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.5 sem_timedwait F
 GLIBC_2.2.5 sem_trywait F
 GLIBC_2.2.5 sem_unlink F
 GLIBC_2.2.5 sem_wait F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 1637d12535..26d95cc46e 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -1672,6 +1672,7 @@  GLIBC_2.16 sem_getvalue F
 GLIBC_2.16 sem_init F
 GLIBC_2.16 sem_open F
 GLIBC_2.16 sem_post F
+GLIBC_2.16 sem_timedwait F
 GLIBC_2.16 semctl F
 GLIBC_2.16 semget F
 GLIBC_2.16 semop F
@@ -2374,6 +2375,7 @@  GLIBC_2.34 sem_getvalue F
 GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
+GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
index b63a912fde..b5ade1e207 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
@@ -39,7 +39,6 @@  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.16 sem_timedwait F
 GLIBC_2.16 sem_trywait F
 GLIBC_2.16 sem_unlink F
 GLIBC_2.16 sem_wait F