[07/11] nptl: Move sem_init into libc

Message ID 5d583b272eed58574df137fc18f635096e3af47f.1620049437.git.fweimer@redhat.com
State Committed
Commit 1ae60ae74ff43cf7a28bace42d91cb6281bd50fc
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                                             | 5 +++--
 nptl/sem_init.c                                           | 8 +++++---
 sysdeps/unix/sysv/linux/aarch64/libc.abilist              | 2 ++
 sysdeps/unix/sysv/linux/aarch64/libpthread.abilist        | 1 -
 sysdeps/unix/sysv/linux/alpha/libc.abilist                | 3 +++
 sysdeps/unix/sysv/linux/alpha/libpthread.abilist          | 2 --
 sysdeps/unix/sysv/linux/arc/libc.abilist                  | 2 ++
 sysdeps/unix/sysv/linux/arc/libpthread.abilist            | 1 -
 sysdeps/unix/sysv/linux/arm/be/libc.abilist               | 2 ++
 sysdeps/unix/sysv/linux/arm/be/libpthread.abilist         | 1 -
 sysdeps/unix/sysv/linux/arm/le/libc.abilist               | 2 ++
 sysdeps/unix/sysv/linux/arm/le/libpthread.abilist         | 1 -
 sysdeps/unix/sysv/linux/csky/libc.abilist                 | 2 ++
 sysdeps/unix/sysv/linux/csky/libpthread.abilist           | 1 -
 sysdeps/unix/sysv/linux/hppa/libc.abilist                 | 2 ++
 sysdeps/unix/sysv/linux/hppa/libpthread.abilist           | 1 -
 sysdeps/unix/sysv/linux/i386/libc.abilist                 | 3 +++
 sysdeps/unix/sysv/linux/i386/libpthread.abilist           | 2 --
 sysdeps/unix/sysv/linux/ia64/libc.abilist                 | 2 ++
 sysdeps/unix/sysv/linux/ia64/libpthread.abilist           | 1 -
 sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist        | 2 ++
 sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist  | 1 -
 sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist          | 3 +++
 sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist    | 2 --
 sysdeps/unix/sysv/linux/microblaze/be/libc.abilist        | 2 ++
 sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist  | 1 -
 sysdeps/unix/sysv/linux/microblaze/le/libc.abilist        | 2 ++
 sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist  | 1 -
 sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist      | 3 +++
 sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist    | 2 --
 sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist    | 3 +++
 sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist    | 2 --
 sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist      | 3 +++
 sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist      | 3 +++
 sysdeps/unix/sysv/linux/nios2/libc.abilist                | 2 ++
 sysdeps/unix/sysv/linux/nios2/libpthread.abilist          | 1 -
 .../unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist    | 3 +++
 .../unix/sysv/linux/powerpc/powerpc32/libpthread.abilist  | 2 --
 .../unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist  | 3 +++
 sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist | 2 ++
 .../sysv/linux/powerpc/powerpc64/be/libpthread.abilist    | 1 -
 sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist | 2 ++
 .../sysv/linux/powerpc/powerpc64/le/libpthread.abilist    | 1 -
 sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist           | 2 ++
 sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist     | 1 -
 sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist           | 2 ++
 sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist     | 1 -
 sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist         | 3 +++
 sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist   | 2 --
 sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist         | 2 ++
 sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist   | 1 -
 sysdeps/unix/sysv/linux/sh/be/libc.abilist                | 2 ++
 sysdeps/unix/sysv/linux/sh/be/libpthread.abilist          | 1 -
 sysdeps/unix/sysv/linux/sh/le/libc.abilist                | 2 ++
 sysdeps/unix/sysv/linux/sh/le/libpthread.abilist          | 1 -
 sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist        | 3 +++
 sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist  | 2 --
 sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist        | 2 ++
 sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist  | 1 -
 sysdeps/unix/sysv/linux/x86_64/64/libc.abilist            | 2 ++
 sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist      | 1 -
 sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist           | 2 ++
 sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist     | 1 -
 64 files changed, 84 insertions(+), 43 deletions(-)
  

Comments

Adhemerval Zanella May 5, 2021, 2:36 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                                             | 5 +++--
>  nptl/sem_init.c                                           | 8 +++++---
>  sysdeps/unix/sysv/linux/aarch64/libc.abilist              | 2 ++
>  sysdeps/unix/sysv/linux/aarch64/libpthread.abilist        | 1 -
>  sysdeps/unix/sysv/linux/alpha/libc.abilist                | 3 +++
>  sysdeps/unix/sysv/linux/alpha/libpthread.abilist          | 2 --
>  sysdeps/unix/sysv/linux/arc/libc.abilist                  | 2 ++
>  sysdeps/unix/sysv/linux/arc/libpthread.abilist            | 1 -
>  sysdeps/unix/sysv/linux/arm/be/libc.abilist               | 2 ++
>  sysdeps/unix/sysv/linux/arm/be/libpthread.abilist         | 1 -
>  sysdeps/unix/sysv/linux/arm/le/libc.abilist               | 2 ++
>  sysdeps/unix/sysv/linux/arm/le/libpthread.abilist         | 1 -
>  sysdeps/unix/sysv/linux/csky/libc.abilist                 | 2 ++
>  sysdeps/unix/sysv/linux/csky/libpthread.abilist           | 1 -
>  sysdeps/unix/sysv/linux/hppa/libc.abilist                 | 2 ++
>  sysdeps/unix/sysv/linux/hppa/libpthread.abilist           | 1 -
>  sysdeps/unix/sysv/linux/i386/libc.abilist                 | 3 +++
>  sysdeps/unix/sysv/linux/i386/libpthread.abilist           | 2 --
>  sysdeps/unix/sysv/linux/ia64/libc.abilist                 | 2 ++
>  sysdeps/unix/sysv/linux/ia64/libpthread.abilist           | 1 -
>  sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist        | 2 ++
>  sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist  | 1 -
>  sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist          | 3 +++
>  sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist    | 2 --
>  sysdeps/unix/sysv/linux/microblaze/be/libc.abilist        | 2 ++
>  sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist  | 1 -
>  sysdeps/unix/sysv/linux/microblaze/le/libc.abilist        | 2 ++
>  sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist  | 1 -
>  sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist      | 3 +++
>  sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist    | 2 --
>  sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist    | 3 +++
>  sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist    | 2 --
>  sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist      | 3 +++
>  sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist      | 3 +++
>  sysdeps/unix/sysv/linux/nios2/libc.abilist                | 2 ++
>  sysdeps/unix/sysv/linux/nios2/libpthread.abilist          | 1 -
>  .../unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist    | 3 +++
>  .../unix/sysv/linux/powerpc/powerpc32/libpthread.abilist  | 2 --
>  .../unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist  | 3 +++
>  sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist | 2 ++
>  .../sysv/linux/powerpc/powerpc64/be/libpthread.abilist    | 1 -
>  sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist | 2 ++
>  .../sysv/linux/powerpc/powerpc64/le/libpthread.abilist    | 1 -
>  sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist           | 2 ++
>  sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist     | 1 -
>  sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist           | 2 ++
>  sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist     | 1 -
>  sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist         | 3 +++
>  sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist   | 2 --
>  sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist         | 2 ++
>  sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist   | 1 -
>  sysdeps/unix/sysv/linux/sh/be/libc.abilist                | 2 ++
>  sysdeps/unix/sysv/linux/sh/be/libpthread.abilist          | 1 -
>  sysdeps/unix/sysv/linux/sh/le/libc.abilist                | 2 ++
>  sysdeps/unix/sysv/linux/sh/le/libpthread.abilist          | 1 -
>  sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist        | 3 +++
>  sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist  | 2 --
>  sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist        | 2 ++
>  sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist  | 1 -
>  sysdeps/unix/sysv/linux/x86_64/64/libc.abilist            | 2 ++
>  sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist      | 1 -
>  sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist           | 2 ++
>  sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist     | 1 -
>  64 files changed, 84 insertions(+), 43 deletions(-)
> 
> diff --git a/nptl/Makefile b/nptl/Makefile
> index 8c32937d82..d0410f6827 100644
> --- a/nptl/Makefile
> +++ b/nptl/Makefile
> @@ -154,6 +154,7 @@ routines = \
>    sem_close \
>    sem_destroy \
>    sem_getvalue \
> +  sem_init \
>    sem_open \
>    sem_routines \
>    tpp \
> @@ -207,7 +208,6 @@ libpthread-routines = \
>    pthread_sigqueue \
>    pthread_timedjoin \
>    pthread_tryjoin \
> -  sem_init \
>    sem_post \
>    sem_timedwait \
>    sem_unlink \
> diff --git a/nptl/Versions b/nptl/Versions
> index dd1c1c7e9e..428cb43c9d 100644
> --- a/nptl/Versions
> +++ b/nptl/Versions
> @@ -64,6 +64,7 @@ libc {
>      pthread_testcancel;
>      sem_destroy;
>      sem_getvalue;
> +    sem_init;
>    }
>    GLIBC_2.1 {
>      pthread_attr_init;
> @@ -84,6 +85,7 @@ libc {
>      pthread_rwlockattr_setpshared;
>      sem_destroy;
>      sem_getvalue;
> +    sem_init;
>    }
>    GLIBC_2.1.1 {
>      sem_close;
> @@ -260,6 +262,7 @@ libc {
>      sem_close;
>      sem_destroy;
>      sem_getvalue;
> +    sem_init;
>      sem_open;
>      thrd_exit;
>      tss_create;
> @@ -326,7 +329,6 @@ libpthread {
>      pthread_detach;
>      pthread_join;
>      pthread_sigmask;
> -    sem_init;
>      sem_post;
>      sem_trywait;
>      sem_wait;
> @@ -342,7 +344,6 @@ libpthread {
>      pthread_create;
>      pthread_getconcurrency;
>      pthread_setconcurrency;
> -    sem_init;
>      sem_post;
>      sem_trywait;
>      sem_wait;
> diff --git a/nptl/sem_init.c b/nptl/sem_init.c
> index ea2ff7b85c..39fe76b92b 100644
> --- a/nptl/sem_init.c
> +++ b/nptl/sem_init.c
> @@ -61,11 +61,13 @@ __new_sem_init (sem_t *sem, int pshared, unsigned int value)
>  
>    return 0;
>  }
> -versioned_symbol (libpthread, __new_sem_init, sem_init, GLIBC_2_1);
> -
> +versioned_symbol (libc, __new_sem_init, sem_init, GLIBC_2_34);
>  
> +#if OTHER_SHLIB_COMPAT(libpthread, GLIBC_2_1, GLIBC_2_34)
> +compat_symbol (libpthread, __new_sem_init, sem_init, GLIBC_2_1);
> +#endif
>  
> -#if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_1)
> +#if OTHER_SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_1)
>  int
>  attribute_compat_text_section
>  __old_sem_init (sem_t *sem, int pshared, unsigned int value)
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index 0e002b50c5..8af3a25de7 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -1663,6 +1663,7 @@ GLIBC_2.17 select F
>  GLIBC_2.17 sem_close F
>  GLIBC_2.17 sem_destroy F
>  GLIBC_2.17 sem_getvalue F
> +GLIBC_2.17 sem_init F
>  GLIBC_2.17 sem_open F
>  GLIBC_2.17 semctl F
>  GLIBC_2.17 semget F
> @@ -2354,6 +2355,7 @@ GLIBC_2.34 sem_clockwait F
>  GLIBC_2.34 sem_close F
>  GLIBC_2.34 sem_destroy F
>  GLIBC_2.34 sem_getvalue F
> +GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> index 87bcb6bd08..cc05c4ec42 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_init F
>  GLIBC_2.17 sem_post F
>  GLIBC_2.17 sem_timedwait F
>  GLIBC_2.17 sem_trywait F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index d39e28a1d1..a906e29085 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -1013,6 +1013,7 @@ GLIBC_2.0 seekdir F
>  GLIBC_2.0 select F
>  GLIBC_2.0 sem_destroy F
>  GLIBC_2.0 sem_getvalue F
> +GLIBC_2.0 sem_init F
>  GLIBC_2.0 semctl F
>  GLIBC_2.0 semget F
>  GLIBC_2.0 semop F
> @@ -1638,6 +1639,7 @@ GLIBC_2.1 scandir64 F
>  GLIBC_2.1 select F
>  GLIBC_2.1 sem_destroy F
>  GLIBC_2.1 sem_getvalue F
> +GLIBC_2.1 sem_init F
>  GLIBC_2.1 sendfile F
>  GLIBC_2.1 setitimer F
>  GLIBC_2.1 setrlimit64 F
> @@ -2437,6 +2439,7 @@ GLIBC_2.34 sem_clockwait F
>  GLIBC_2.34 sem_close F
>  GLIBC_2.34 sem_destroy F
>  GLIBC_2.34 sem_getvalue F
> +GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> index 37eba5d526..04dca3fb17 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> @@ -9,7 +9,6 @@ GLIBC_2.0 pthread_cancel F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.0 pthread_detach F
>  GLIBC_2.0 pthread_join F
> -GLIBC_2.0 sem_init F
>  GLIBC_2.0 sem_post F
>  GLIBC_2.0 sem_trywait F
>  GLIBC_2.0 sem_wait F
> @@ -22,7 +21,6 @@ GLIBC_2.1 pthread_attr_setstacksize F
>  GLIBC_2.1 pthread_create F
>  GLIBC_2.1 pthread_getconcurrency F
>  GLIBC_2.1 pthread_setconcurrency F
> -GLIBC_2.1 sem_init F
>  GLIBC_2.1 sem_post F
>  GLIBC_2.1 sem_trywait F
>  GLIBC_2.1 sem_wait F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index d24e926437..b7f211bee3 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -1605,6 +1605,7 @@ GLIBC_2.32 sem_clockwait F
>  GLIBC_2.32 sem_close F
>  GLIBC_2.32 sem_destroy F
>  GLIBC_2.32 sem_getvalue F
> +GLIBC_2.32 sem_init F
>  GLIBC_2.32 sem_open F
>  GLIBC_2.32 semctl F
>  GLIBC_2.32 semget F
> @@ -2113,6 +2114,7 @@ GLIBC_2.34 sem_clockwait F
>  GLIBC_2.34 sem_close F
>  GLIBC_2.34 sem_destroy F
>  GLIBC_2.34 sem_getvalue F
> +GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
> diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> index 0d2b6878f0..620aa737af 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_init F
>  GLIBC_2.32 sem_post F
>  GLIBC_2.32 sem_timedwait F
>  GLIBC_2.32 sem_trywait F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index 6948069e7a..0ee04e8ec2 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -256,6 +256,7 @@ GLIBC_2.34 sem_clockwait F
>  GLIBC_2.34 sem_close F
>  GLIBC_2.34 sem_destroy F
>  GLIBC_2.34 sem_getvalue F
> +GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
> @@ -1845,6 +1846,7 @@ GLIBC_2.4 select F
>  GLIBC_2.4 sem_close F
>  GLIBC_2.4 sem_destroy F
>  GLIBC_2.4 sem_getvalue F
> +GLIBC_2.4 sem_init F
>  GLIBC_2.4 sem_open F
>  GLIBC_2.4 semctl F
>  GLIBC_2.4 semget F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> index 10ae7a1302..2cad2a326d 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_init F
>  GLIBC_2.4 sem_post F
>  GLIBC_2.4 sem_timedwait F
>  GLIBC_2.4 sem_trywait F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index 24f11ea83f..3440ea0eb8 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -253,6 +253,7 @@ GLIBC_2.34 sem_clockwait F
>  GLIBC_2.34 sem_close F
>  GLIBC_2.34 sem_destroy F
>  GLIBC_2.34 sem_getvalue F
> +GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
> @@ -1842,6 +1843,7 @@ GLIBC_2.4 select F
>  GLIBC_2.4 sem_close F
>  GLIBC_2.4 sem_destroy F
>  GLIBC_2.4 sem_getvalue F
> +GLIBC_2.4 sem_init F
>  GLIBC_2.4 sem_open F
>  GLIBC_2.4 semctl F
>  GLIBC_2.4 semget F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> index 10ae7a1302..2cad2a326d 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_init F
>  GLIBC_2.4 sem_post F
>  GLIBC_2.4 sem_timedwait F
>  GLIBC_2.4 sem_trywait F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index 2ef861b277..862ca71146 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -1666,6 +1666,7 @@ GLIBC_2.29 select F
>  GLIBC_2.29 sem_close F
>  GLIBC_2.29 sem_destroy F
>  GLIBC_2.29 sem_getvalue F
> +GLIBC_2.29 sem_init F
>  GLIBC_2.29 sem_open F
>  GLIBC_2.29 semctl F
>  GLIBC_2.29 semget F
> @@ -2297,6 +2298,7 @@ GLIBC_2.34 sem_clockwait F
>  GLIBC_2.34 sem_close F
>  GLIBC_2.34 sem_destroy F
>  GLIBC_2.34 sem_getvalue F
> +GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
> diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> index 2c736e3810..0d192aad92 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_init F
>  GLIBC_2.29 sem_post F
>  GLIBC_2.29 sem_timedwait F
>  GLIBC_2.29 sem_trywait F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index bb36e5c862..829c751dd4 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -1455,6 +1455,7 @@ GLIBC_2.2 select F
>  GLIBC_2.2 sem_close F
>  GLIBC_2.2 sem_destroy F
>  GLIBC_2.2 sem_getvalue F
> +GLIBC_2.2 sem_init F
>  GLIBC_2.2 sem_open F
>  GLIBC_2.2 semctl F
>  GLIBC_2.2 semget F
> @@ -2248,6 +2249,7 @@ GLIBC_2.34 sem_clockwait F
>  GLIBC_2.34 sem_close F
>  GLIBC_2.34 sem_destroy F
>  GLIBC_2.34 sem_getvalue F
> +GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> index 9a3c7ba538..9e3a2d7b79 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_init F
>  GLIBC_2.2 sem_post F
>  GLIBC_2.2 sem_timedwait F
>  GLIBC_2.2 sem_trywait F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index c01f45d684..e06fc546c7 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -990,6 +990,7 @@ GLIBC_2.0 seekdir F
>  GLIBC_2.0 select F
>  GLIBC_2.0 sem_destroy F
>  GLIBC_2.0 sem_getvalue F
> +GLIBC_2.0 sem_init F
>  GLIBC_2.0 semctl F
>  GLIBC_2.0 semget F
>  GLIBC_2.0 semop F
> @@ -1608,6 +1609,7 @@ GLIBC_2.1 scalblnl F
>  GLIBC_2.1 scandir64 F
>  GLIBC_2.1 sem_destroy F
>  GLIBC_2.1 sem_getvalue F
> +GLIBC_2.1 sem_init F
>  GLIBC_2.1 sendfile F
>  GLIBC_2.1 setrlimit64 F
>  GLIBC_2.1 setutxent F
> @@ -2427,6 +2429,7 @@ GLIBC_2.34 sem_clockwait F
>  GLIBC_2.34 sem_close F
>  GLIBC_2.34 sem_destroy F
>  GLIBC_2.34 sem_getvalue F
> +GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
> diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> index b1833a99e1..c109dfcfd2 100644
> --- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> @@ -9,7 +9,6 @@ GLIBC_2.0 pthread_cancel F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.0 pthread_detach F
>  GLIBC_2.0 pthread_join F
> -GLIBC_2.0 sem_init F
>  GLIBC_2.0 sem_post F
>  GLIBC_2.0 sem_trywait F
>  GLIBC_2.0 sem_wait F
> @@ -22,7 +21,6 @@ GLIBC_2.1 pthread_attr_setstacksize F
>  GLIBC_2.1 pthread_create F
>  GLIBC_2.1 pthread_getconcurrency F
>  GLIBC_2.1 pthread_setconcurrency F
> -GLIBC_2.1 sem_init F
>  GLIBC_2.1 sem_post F
>  GLIBC_2.1 sem_trywait F
>  GLIBC_2.1 sem_wait F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index 6f447d6acb..04062ddec5 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -1476,6 +1476,7 @@ GLIBC_2.2 select F
>  GLIBC_2.2 sem_close F
>  GLIBC_2.2 sem_destroy F
>  GLIBC_2.2 sem_getvalue F
> +GLIBC_2.2 sem_init F
>  GLIBC_2.2 sem_open F
>  GLIBC_2.2 semctl F
>  GLIBC_2.2 semget F
> @@ -2282,6 +2283,7 @@ GLIBC_2.34 sem_clockwait F
>  GLIBC_2.34 sem_close F
>  GLIBC_2.34 sem_destroy F
>  GLIBC_2.34 sem_getvalue F
> +GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> index 212b6841cc..2439b506d9 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_init F
>  GLIBC_2.2 sem_post F
>  GLIBC_2.2 sem_timedwait F
>  GLIBC_2.2 sem_trywait F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index 7d16feab1c..1f14f1fdae 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -257,6 +257,7 @@ GLIBC_2.34 sem_clockwait F
>  GLIBC_2.34 sem_close F
>  GLIBC_2.34 sem_destroy F
>  GLIBC_2.34 sem_getvalue F
> +GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
> @@ -1825,6 +1826,7 @@ GLIBC_2.4 select F
>  GLIBC_2.4 sem_close F
>  GLIBC_2.4 sem_destroy F
>  GLIBC_2.4 sem_getvalue F
> +GLIBC_2.4 sem_init F
>  GLIBC_2.4 sem_open F
>  GLIBC_2.4 semctl F
>  GLIBC_2.4 semget F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> index 10ae7a1302..2cad2a326d 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_init F
>  GLIBC_2.4 sem_post F
>  GLIBC_2.4 sem_timedwait F
>  GLIBC_2.4 sem_trywait F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index 6a613724bc..ef4c457b82 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -989,6 +989,7 @@ GLIBC_2.0 seekdir F
>  GLIBC_2.0 select F
>  GLIBC_2.0 sem_destroy F
>  GLIBC_2.0 sem_getvalue F
> +GLIBC_2.0 sem_init F
>  GLIBC_2.0 semctl F
>  GLIBC_2.0 semget F
>  GLIBC_2.0 semop F
> @@ -1604,6 +1605,7 @@ GLIBC_2.1 scalblnl F
>  GLIBC_2.1 scandir64 F
>  GLIBC_2.1 sem_destroy F
>  GLIBC_2.1 sem_getvalue F
> +GLIBC_2.1 sem_init F
>  GLIBC_2.1 sendfile F
>  GLIBC_2.1 setrlimit64 F
>  GLIBC_2.1 setutxent F
> @@ -2370,6 +2372,7 @@ GLIBC_2.34 sem_clockwait F
>  GLIBC_2.34 sem_close F
>  GLIBC_2.34 sem_destroy F
>  GLIBC_2.34 sem_getvalue F
> +GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> index b1833a99e1..c109dfcfd2 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> @@ -9,7 +9,6 @@ GLIBC_2.0 pthread_cancel F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.0 pthread_detach F
>  GLIBC_2.0 pthread_join F
> -GLIBC_2.0 sem_init F
>  GLIBC_2.0 sem_post F
>  GLIBC_2.0 sem_trywait F
>  GLIBC_2.0 sem_wait F
> @@ -22,7 +21,6 @@ GLIBC_2.1 pthread_attr_setstacksize F
>  GLIBC_2.1 pthread_create F
>  GLIBC_2.1 pthread_getconcurrency F
>  GLIBC_2.1 pthread_setconcurrency F
> -GLIBC_2.1 sem_init F
>  GLIBC_2.1 sem_post F
>  GLIBC_2.1 sem_trywait F
>  GLIBC_2.1 sem_wait F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index 08727dea01..c85118ef83 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -1665,6 +1665,7 @@ GLIBC_2.18 select F
>  GLIBC_2.18 sem_close F
>  GLIBC_2.18 sem_destroy F
>  GLIBC_2.18 sem_getvalue F
> +GLIBC_2.18 sem_init F
>  GLIBC_2.18 sem_open F
>  GLIBC_2.18 semctl F
>  GLIBC_2.18 semget F
> @@ -2348,6 +2349,7 @@ GLIBC_2.34 sem_clockwait F
>  GLIBC_2.34 sem_close F
>  GLIBC_2.34 sem_destroy F
>  GLIBC_2.34 sem_getvalue F
> +GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> index 4656602675..87adfbd119 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_init F
>  GLIBC_2.18 sem_post F
>  GLIBC_2.18 sem_timedwait F
>  GLIBC_2.18 sem_trywait F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index 4145398631..e329d24837 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -1665,6 +1665,7 @@ GLIBC_2.18 select F
>  GLIBC_2.18 sem_close F
>  GLIBC_2.18 sem_destroy F
>  GLIBC_2.18 sem_getvalue F
> +GLIBC_2.18 sem_init F
>  GLIBC_2.18 sem_open F
>  GLIBC_2.18 semctl F
>  GLIBC_2.18 semget F
> @@ -2345,6 +2346,7 @@ GLIBC_2.34 sem_clockwait F
>  GLIBC_2.34 sem_close F
>  GLIBC_2.34 sem_destroy F
>  GLIBC_2.34 sem_getvalue F
> +GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> index 4656602675..87adfbd119 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_init F
>  GLIBC_2.18 sem_post F
>  GLIBC_2.18 sem_timedwait F
>  GLIBC_2.18 sem_trywait F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index 1ff4fda725..10c4f9169f 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -986,6 +986,7 @@ GLIBC_2.0 seekdir F
>  GLIBC_2.0 select F
>  GLIBC_2.0 sem_destroy F
>  GLIBC_2.0 sem_getvalue F
> +GLIBC_2.0 sem_init F
>  GLIBC_2.0 semctl F
>  GLIBC_2.0 semget F
>  GLIBC_2.0 semop F
> @@ -1893,6 +1894,7 @@ GLIBC_2.2 scandir64 F
>  GLIBC_2.2 sem_close F
>  GLIBC_2.2 sem_destroy F
>  GLIBC_2.2 sem_getvalue F
> +GLIBC_2.2 sem_init F
>  GLIBC_2.2 sem_open F
>  GLIBC_2.2 semctl F
>  GLIBC_2.2 sendfile F
> @@ -2333,6 +2335,7 @@ GLIBC_2.34 sem_clockwait F
>  GLIBC_2.34 sem_close F
>  GLIBC_2.34 sem_destroy F
>  GLIBC_2.34 sem_getvalue F
> +GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> index f250d3b50b..fda2fedaa8 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> @@ -9,7 +9,6 @@ GLIBC_2.0 pthread_cancel F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.0 pthread_detach F
>  GLIBC_2.0 pthread_join F
> -GLIBC_2.0 sem_init F
>  GLIBC_2.0 sem_post F
>  GLIBC_2.0 sem_trywait F
>  GLIBC_2.0 sem_wait F
> @@ -36,7 +35,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_init F
>  GLIBC_2.2 sem_post F
>  GLIBC_2.2 sem_timedwait F
>  GLIBC_2.2 sem_trywait F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index 76acce16f5..5c756ef87c 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -986,6 +986,7 @@ GLIBC_2.0 seekdir F
>  GLIBC_2.0 select F
>  GLIBC_2.0 sem_destroy F
>  GLIBC_2.0 sem_getvalue F
> +GLIBC_2.0 sem_init F
>  GLIBC_2.0 semctl F
>  GLIBC_2.0 semget F
>  GLIBC_2.0 semop F
> @@ -1891,6 +1892,7 @@ GLIBC_2.2 scandir64 F
>  GLIBC_2.2 sem_close F
>  GLIBC_2.2 sem_destroy F
>  GLIBC_2.2 sem_getvalue F
> +GLIBC_2.2 sem_init F
>  GLIBC_2.2 sem_open F
>  GLIBC_2.2 semctl F
>  GLIBC_2.2 sendfile F
> @@ -2331,6 +2333,7 @@ GLIBC_2.34 sem_clockwait F
>  GLIBC_2.34 sem_close F
>  GLIBC_2.34 sem_destroy F
>  GLIBC_2.34 sem_getvalue F
> +GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> index f250d3b50b..fda2fedaa8 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> @@ -9,7 +9,6 @@ GLIBC_2.0 pthread_cancel F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.0 pthread_detach F
>  GLIBC_2.0 pthread_join F
> -GLIBC_2.0 sem_init F
>  GLIBC_2.0 sem_post F
>  GLIBC_2.0 sem_trywait F
>  GLIBC_2.0 sem_wait F
> @@ -36,7 +35,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_init F
>  GLIBC_2.2 sem_post F
>  GLIBC_2.2 sem_timedwait F
>  GLIBC_2.2 sem_trywait F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index 2d626894fd..3a48dba1a8 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -986,6 +986,7 @@ GLIBC_2.0 seekdir F
>  GLIBC_2.0 select F
>  GLIBC_2.0 sem_destroy F
>  GLIBC_2.0 sem_getvalue F
> +GLIBC_2.0 sem_init F
>  GLIBC_2.0 semctl F
>  GLIBC_2.0 semget F
>  GLIBC_2.0 semop F
> @@ -1891,6 +1892,7 @@ GLIBC_2.2 scandir64 F
>  GLIBC_2.2 sem_close F
>  GLIBC_2.2 sem_destroy F
>  GLIBC_2.2 sem_getvalue F
> +GLIBC_2.2 sem_init F
>  GLIBC_2.2 sem_open F
>  GLIBC_2.2 sendfile F
>  GLIBC_2.2 setrlimit64 F
> @@ -2339,6 +2341,7 @@ GLIBC_2.34 sem_clockwait F
>  GLIBC_2.34 sem_close F
>  GLIBC_2.34 sem_destroy F
>  GLIBC_2.34 sem_getvalue F
> +GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index 0aaf7611bd..43b9ffa9be 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -984,6 +984,7 @@ GLIBC_2.0 seekdir F
>  GLIBC_2.0 select F
>  GLIBC_2.0 sem_destroy F
>  GLIBC_2.0 sem_getvalue F
> +GLIBC_2.0 sem_init F
>  GLIBC_2.0 semctl F
>  GLIBC_2.0 semget F
>  GLIBC_2.0 semop F
> @@ -1887,6 +1888,7 @@ GLIBC_2.2 scandir64 F
>  GLIBC_2.2 sem_close F
>  GLIBC_2.2 sem_destroy F
>  GLIBC_2.2 sem_getvalue F
> +GLIBC_2.2 sem_init F
>  GLIBC_2.2 sem_open F
>  GLIBC_2.2 sendfile F
>  GLIBC_2.2 setrlimit64 F
> @@ -2333,6 +2335,7 @@ GLIBC_2.34 sem_clockwait F
>  GLIBC_2.34 sem_close F
>  GLIBC_2.34 sem_destroy F
>  GLIBC_2.34 sem_getvalue F
> +GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index ea8b37e340..9871445825 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -1708,6 +1708,7 @@ GLIBC_2.21 select F
>  GLIBC_2.21 sem_close F
>  GLIBC_2.21 sem_destroy F
>  GLIBC_2.21 sem_getvalue F
> +GLIBC_2.21 sem_init F
>  GLIBC_2.21 sem_open F
>  GLIBC_2.21 semctl F
>  GLIBC_2.21 semget F
> @@ -2387,6 +2388,7 @@ GLIBC_2.34 sem_clockwait F
>  GLIBC_2.34 sem_close F
>  GLIBC_2.34 sem_destroy F
>  GLIBC_2.34 sem_getvalue F
> +GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> index 5d47b5af57..8dc58decd5 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_init F
>  GLIBC_2.21 sem_post F
>  GLIBC_2.21 sem_timedwait F
>  GLIBC_2.21 sem_trywait F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index 9e8200f88f..a18583a716 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -997,6 +997,7 @@ GLIBC_2.0 seekdir F
>  GLIBC_2.0 select F
>  GLIBC_2.0 sem_destroy F
>  GLIBC_2.0 sem_getvalue F
> +GLIBC_2.0 sem_init F
>  GLIBC_2.0 semctl F
>  GLIBC_2.0 semget F
>  GLIBC_2.0 semop F
> @@ -1609,6 +1610,7 @@ GLIBC_2.1 rtime F
>  GLIBC_2.1 scandir64 F
>  GLIBC_2.1 sem_destroy F
>  GLIBC_2.1 sem_getvalue F
> +GLIBC_2.1 sem_init F
>  GLIBC_2.1 sendfile F
>  GLIBC_2.1 setrlimit64 F
>  GLIBC_2.1 setutxent F
> @@ -2397,6 +2399,7 @@ GLIBC_2.34 sem_clockwait F
>  GLIBC_2.34 sem_close F
>  GLIBC_2.34 sem_destroy F
>  GLIBC_2.34 sem_getvalue F
> +GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> index 4ba599efcf..dc53279748 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> @@ -9,7 +9,6 @@ GLIBC_2.0 pthread_cancel F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.0 pthread_detach F
>  GLIBC_2.0 pthread_join F
> -GLIBC_2.0 sem_init F
>  GLIBC_2.0 sem_post F
>  GLIBC_2.0 sem_trywait F
>  GLIBC_2.0 sem_wait F
> @@ -22,7 +21,6 @@ GLIBC_2.1 pthread_attr_setstacksize F
>  GLIBC_2.1 pthread_create F
>  GLIBC_2.1 pthread_getconcurrency F
>  GLIBC_2.1 pthread_setconcurrency F
> -GLIBC_2.1 sem_init F
>  GLIBC_2.1 sem_post F
>  GLIBC_2.1 sem_trywait F
>  GLIBC_2.1 sem_wait F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index 8ed232c46e..9bf3da7388 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -997,6 +997,7 @@ GLIBC_2.0 seekdir F
>  GLIBC_2.0 select F
>  GLIBC_2.0 sem_destroy F
>  GLIBC_2.0 sem_getvalue F
> +GLIBC_2.0 sem_init F
>  GLIBC_2.0 semctl F
>  GLIBC_2.0 semget F
>  GLIBC_2.0 semop F
> @@ -1609,6 +1610,7 @@ GLIBC_2.1 rtime F
>  GLIBC_2.1 scandir64 F
>  GLIBC_2.1 sem_destroy F
>  GLIBC_2.1 sem_getvalue F
> +GLIBC_2.1 sem_init F
>  GLIBC_2.1 sendfile F
>  GLIBC_2.1 setrlimit64 F
>  GLIBC_2.1 setutxent F
> @@ -2430,6 +2432,7 @@ GLIBC_2.34 sem_clockwait F
>  GLIBC_2.34 sem_close F
>  GLIBC_2.34 sem_destroy F
>  GLIBC_2.34 sem_getvalue F
> +GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index 887f480421..d5706b2f69 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -1580,6 +1580,7 @@ GLIBC_2.3 select F
>  GLIBC_2.3 sem_close F
>  GLIBC_2.3 sem_destroy F
>  GLIBC_2.3 sem_getvalue F
> +GLIBC_2.3 sem_init F
>  GLIBC_2.3 sem_open F
>  GLIBC_2.3 semctl F
>  GLIBC_2.3 semget F
> @@ -2249,6 +2250,7 @@ GLIBC_2.34 sem_clockwait F
>  GLIBC_2.34 sem_close F
>  GLIBC_2.34 sem_destroy F
>  GLIBC_2.34 sem_getvalue F
> +GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> index 8e89df212e..2897e7dbb7 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_init F
>  GLIBC_2.3 sem_post F
>  GLIBC_2.3 sem_timedwait F
>  GLIBC_2.3 sem_trywait F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index 0e34639e23..deb5f78799 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -1751,6 +1751,7 @@ GLIBC_2.17 select F
>  GLIBC_2.17 sem_close F
>  GLIBC_2.17 sem_destroy F
>  GLIBC_2.17 sem_getvalue F
> +GLIBC_2.17 sem_init F
>  GLIBC_2.17 sem_open F
>  GLIBC_2.17 semctl F
>  GLIBC_2.17 semget F
> @@ -2550,6 +2551,7 @@ GLIBC_2.34 sem_clockwait F
>  GLIBC_2.34 sem_close F
>  GLIBC_2.34 sem_destroy F
>  GLIBC_2.34 sem_getvalue F
> +GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> index 87bcb6bd08..cc05c4ec42 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_init F
>  GLIBC_2.17 sem_post F
>  GLIBC_2.17 sem_timedwait F
>  GLIBC_2.17 sem_trywait F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index ee60bf8925..e3d9041b3e 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -1607,6 +1607,7 @@ GLIBC_2.33 sem_clockwait F
>  GLIBC_2.33 sem_close F
>  GLIBC_2.33 sem_destroy F
>  GLIBC_2.33 sem_getvalue F
> +GLIBC_2.33 sem_init F
>  GLIBC_2.33 sem_open F
>  GLIBC_2.33 semctl F
>  GLIBC_2.33 semget F
> @@ -2115,6 +2116,7 @@ GLIBC_2.34 sem_clockwait F
>  GLIBC_2.34 sem_close F
>  GLIBC_2.34 sem_destroy F
>  GLIBC_2.34 sem_getvalue F
> +GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> index b342a05a1b..93599c88a2 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_init F
>  GLIBC_2.33 sem_post F
>  GLIBC_2.33 sem_timedwait F
>  GLIBC_2.33 sem_trywait F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index 3d76a78b07..b6b59ee692 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -1655,6 +1655,7 @@ GLIBC_2.27 select F
>  GLIBC_2.27 sem_close F
>  GLIBC_2.27 sem_destroy F
>  GLIBC_2.27 sem_getvalue F
> +GLIBC_2.27 sem_init F
>  GLIBC_2.27 sem_open F
>  GLIBC_2.27 semctl F
>  GLIBC_2.27 semget F
> @@ -2315,6 +2316,7 @@ GLIBC_2.34 sem_clockwait F
>  GLIBC_2.34 sem_close F
>  GLIBC_2.34 sem_destroy F
>  GLIBC_2.34 sem_getvalue F
> +GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> index fe091c6884..215454cc39 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_init F
>  GLIBC_2.27 sem_post F
>  GLIBC_2.27 sem_timedwait F
>  GLIBC_2.27 sem_trywait F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index bb44dc053f..ca7a6eec05 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -988,6 +988,7 @@ GLIBC_2.0 seekdir F
>  GLIBC_2.0 select F
>  GLIBC_2.0 sem_destroy F
>  GLIBC_2.0 sem_getvalue F
> +GLIBC_2.0 sem_init F
>  GLIBC_2.0 semctl F
>  GLIBC_2.0 semget F
>  GLIBC_2.0 semop F
> @@ -1601,6 +1602,7 @@ GLIBC_2.1 rtime F
>  GLIBC_2.1 scandir64 F
>  GLIBC_2.1 sem_destroy F
>  GLIBC_2.1 sem_getvalue F
> +GLIBC_2.1 sem_init F
>  GLIBC_2.1 sendfile F
>  GLIBC_2.1 setrlimit64 F
>  GLIBC_2.1 setutxent F
> @@ -2395,6 +2397,7 @@ GLIBC_2.34 sem_clockwait F
>  GLIBC_2.34 sem_close F
>  GLIBC_2.34 sem_destroy F
>  GLIBC_2.34 sem_getvalue F
> +GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> index 899cf97c70..6ed45aa436 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> @@ -9,7 +9,6 @@ GLIBC_2.0 pthread_cancel F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.0 pthread_detach F
>  GLIBC_2.0 pthread_join F
> -GLIBC_2.0 sem_init F
>  GLIBC_2.0 sem_post F
>  GLIBC_2.0 sem_trywait F
>  GLIBC_2.0 sem_wait F
> @@ -22,7 +21,6 @@ GLIBC_2.1 pthread_attr_setstacksize F
>  GLIBC_2.1 pthread_create F
>  GLIBC_2.1 pthread_getconcurrency F
>  GLIBC_2.1 pthread_setconcurrency F
> -GLIBC_2.1 sem_init F
>  GLIBC_2.1 sem_post F
>  GLIBC_2.1 sem_trywait F
>  GLIBC_2.1 sem_wait F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index 6a55bdb602..9d13b92c53 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -1473,6 +1473,7 @@ GLIBC_2.2 select F
>  GLIBC_2.2 sem_close F
>  GLIBC_2.2 sem_destroy F
>  GLIBC_2.2 sem_getvalue F
> +GLIBC_2.2 sem_init F
>  GLIBC_2.2 sem_open F
>  GLIBC_2.2 semctl F
>  GLIBC_2.2 semget F
> @@ -2286,6 +2287,7 @@ GLIBC_2.34 sem_clockwait F
>  GLIBC_2.34 sem_close F
>  GLIBC_2.34 sem_destroy F
>  GLIBC_2.34 sem_getvalue F
> +GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> index ea58dbd01d..162c5743a9 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_init F
>  GLIBC_2.2 sem_post F
>  GLIBC_2.2 sem_timedwait F
>  GLIBC_2.2 sem_trywait F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index fb4c0e3fa7..0cea6eb093 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -1459,6 +1459,7 @@ GLIBC_2.2 select F
>  GLIBC_2.2 sem_close F
>  GLIBC_2.2 sem_destroy F
>  GLIBC_2.2 sem_getvalue F
> +GLIBC_2.2 sem_init F
>  GLIBC_2.2 sem_open F
>  GLIBC_2.2 semctl F
>  GLIBC_2.2 semget F
> @@ -2255,6 +2256,7 @@ GLIBC_2.34 sem_clockwait F
>  GLIBC_2.34 sem_close F
>  GLIBC_2.34 sem_destroy F
>  GLIBC_2.34 sem_getvalue F
> +GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> index 9a3c7ba538..9e3a2d7b79 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_init F
>  GLIBC_2.2 sem_post F
>  GLIBC_2.2 sem_timedwait F
>  GLIBC_2.2 sem_trywait F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index 7c686b7ec9..af2e74fdfa 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -1459,6 +1459,7 @@ GLIBC_2.2 select F
>  GLIBC_2.2 sem_close F
>  GLIBC_2.2 sem_destroy F
>  GLIBC_2.2 sem_getvalue F
> +GLIBC_2.2 sem_init F
>  GLIBC_2.2 sem_open F
>  GLIBC_2.2 semctl F
>  GLIBC_2.2 semget F
> @@ -2252,6 +2253,7 @@ GLIBC_2.34 sem_clockwait F
>  GLIBC_2.34 sem_close F
>  GLIBC_2.34 sem_destroy F
>  GLIBC_2.34 sem_getvalue F
> +GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> index 9a3c7ba538..9e3a2d7b79 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_init F
>  GLIBC_2.2 sem_post F
>  GLIBC_2.2 sem_timedwait F
>  GLIBC_2.2 sem_trywait F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index ab0cb2d1d2..79b69a31be 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -991,6 +991,7 @@ GLIBC_2.0 seekdir F
>  GLIBC_2.0 select F
>  GLIBC_2.0 sem_destroy F
>  GLIBC_2.0 sem_getvalue F
> +GLIBC_2.0 sem_init F
>  GLIBC_2.0 semctl F
>  GLIBC_2.0 semget F
>  GLIBC_2.0 semop F
> @@ -1602,6 +1603,7 @@ GLIBC_2.1 rtime F
>  GLIBC_2.1 scandir64 F
>  GLIBC_2.1 sem_destroy F
>  GLIBC_2.1 sem_getvalue F
> +GLIBC_2.1 sem_init F
>  GLIBC_2.1 sendfile F
>  GLIBC_2.1 setrlimit64 F
>  GLIBC_2.1 setutxent F
> @@ -2386,6 +2388,7 @@ GLIBC_2.34 sem_clockwait F
>  GLIBC_2.34 sem_close F
>  GLIBC_2.34 sem_destroy F
>  GLIBC_2.34 sem_getvalue F
> +GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> index 37eba5d526..04dca3fb17 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> @@ -9,7 +9,6 @@ GLIBC_2.0 pthread_cancel F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.0 pthread_detach F
>  GLIBC_2.0 pthread_join F
> -GLIBC_2.0 sem_init F
>  GLIBC_2.0 sem_post F
>  GLIBC_2.0 sem_trywait F
>  GLIBC_2.0 sem_wait F
> @@ -22,7 +21,6 @@ GLIBC_2.1 pthread_attr_setstacksize F
>  GLIBC_2.1 pthread_create F
>  GLIBC_2.1 pthread_getconcurrency F
>  GLIBC_2.1 pthread_setconcurrency F
> -GLIBC_2.1 sem_init F
>  GLIBC_2.1 sem_post F
>  GLIBC_2.1 sem_trywait F
>  GLIBC_2.1 sem_wait F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index 53dacbb77e..8e367c0030 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -1502,6 +1502,7 @@ GLIBC_2.2 select F
>  GLIBC_2.2 sem_close F
>  GLIBC_2.2 sem_destroy F
>  GLIBC_2.2 sem_getvalue F
> +GLIBC_2.2 sem_init F
>  GLIBC_2.2 sem_open F
>  GLIBC_2.2 semctl F
>  GLIBC_2.2 semget F
> @@ -2303,6 +2304,7 @@ GLIBC_2.34 sem_clockwait F
>  GLIBC_2.34 sem_close F
>  GLIBC_2.34 sem_destroy F
>  GLIBC_2.34 sem_getvalue F
> +GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> index 212b6841cc..2439b506d9 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_init F
>  GLIBC_2.2 sem_post F
>  GLIBC_2.2 sem_timedwait F
>  GLIBC_2.2 sem_trywait F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index 96245373c8..83f18b509d 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -1470,6 +1470,7 @@ GLIBC_2.2.5 select F
>  GLIBC_2.2.5 sem_close F
>  GLIBC_2.2.5 sem_destroy F
>  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 semctl F
>  GLIBC_2.2.5 semget F
> @@ -2264,6 +2265,7 @@ GLIBC_2.34 sem_clockwait F
>  GLIBC_2.34 sem_close F
>  GLIBC_2.34 sem_destroy F
>  GLIBC_2.34 sem_getvalue F
> +GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> index 2c17991871..145925269d 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_init F
>  GLIBC_2.2.5 sem_post F
>  GLIBC_2.2.5 sem_timedwait F
>  GLIBC_2.2.5 sem_trywait F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index 7cd32696c5..01dd2eb8a6 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -1669,6 +1669,7 @@ GLIBC_2.16 select F
>  GLIBC_2.16 sem_close F
>  GLIBC_2.16 sem_destroy F
>  GLIBC_2.16 sem_getvalue F
> +GLIBC_2.16 sem_init F
>  GLIBC_2.16 sem_open F
>  GLIBC_2.16 semctl F
>  GLIBC_2.16 semget F
> @@ -2369,6 +2370,7 @@ GLIBC_2.34 sem_clockwait F
>  GLIBC_2.34 sem_close F
>  GLIBC_2.34 sem_destroy F
>  GLIBC_2.34 sem_getvalue F
> +GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> index 44826acfbd..bbbaa04cd7 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_init F
>  GLIBC_2.16 sem_post F
>  GLIBC_2.16 sem_timedwait F
>  GLIBC_2.16 sem_trywait F
>
  

Patch

diff --git a/nptl/Makefile b/nptl/Makefile
index 8c32937d82..d0410f6827 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -154,6 +154,7 @@  routines = \
   sem_close \
   sem_destroy \
   sem_getvalue \
+  sem_init \
   sem_open \
   sem_routines \
   tpp \
@@ -207,7 +208,6 @@  libpthread-routines = \
   pthread_sigqueue \
   pthread_timedjoin \
   pthread_tryjoin \
-  sem_init \
   sem_post \
   sem_timedwait \
   sem_unlink \
diff --git a/nptl/Versions b/nptl/Versions
index dd1c1c7e9e..428cb43c9d 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -64,6 +64,7 @@  libc {
     pthread_testcancel;
     sem_destroy;
     sem_getvalue;
+    sem_init;
   }
   GLIBC_2.1 {
     pthread_attr_init;
@@ -84,6 +85,7 @@  libc {
     pthread_rwlockattr_setpshared;
     sem_destroy;
     sem_getvalue;
+    sem_init;
   }
   GLIBC_2.1.1 {
     sem_close;
@@ -260,6 +262,7 @@  libc {
     sem_close;
     sem_destroy;
     sem_getvalue;
+    sem_init;
     sem_open;
     thrd_exit;
     tss_create;
@@ -326,7 +329,6 @@  libpthread {
     pthread_detach;
     pthread_join;
     pthread_sigmask;
-    sem_init;
     sem_post;
     sem_trywait;
     sem_wait;
@@ -342,7 +344,6 @@  libpthread {
     pthread_create;
     pthread_getconcurrency;
     pthread_setconcurrency;
-    sem_init;
     sem_post;
     sem_trywait;
     sem_wait;
diff --git a/nptl/sem_init.c b/nptl/sem_init.c
index ea2ff7b85c..39fe76b92b 100644
--- a/nptl/sem_init.c
+++ b/nptl/sem_init.c
@@ -61,11 +61,13 @@  __new_sem_init (sem_t *sem, int pshared, unsigned int value)
 
   return 0;
 }
-versioned_symbol (libpthread, __new_sem_init, sem_init, GLIBC_2_1);
-
+versioned_symbol (libc, __new_sem_init, sem_init, GLIBC_2_34);
 
+#if OTHER_SHLIB_COMPAT(libpthread, GLIBC_2_1, GLIBC_2_34)
+compat_symbol (libpthread, __new_sem_init, sem_init, GLIBC_2_1);
+#endif
 
-#if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_1)
+#if OTHER_SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_1)
 int
 attribute_compat_text_section
 __old_sem_init (sem_t *sem, int pshared, unsigned int value)
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 0e002b50c5..8af3a25de7 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -1663,6 +1663,7 @@  GLIBC_2.17 select F
 GLIBC_2.17 sem_close F
 GLIBC_2.17 sem_destroy F
 GLIBC_2.17 sem_getvalue F
+GLIBC_2.17 sem_init F
 GLIBC_2.17 sem_open F
 GLIBC_2.17 semctl F
 GLIBC_2.17 semget F
@@ -2354,6 +2355,7 @@  GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
 GLIBC_2.34 sem_getvalue F
+GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
index 87bcb6bd08..cc05c4ec42 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_init F
 GLIBC_2.17 sem_post F
 GLIBC_2.17 sem_timedwait F
 GLIBC_2.17 sem_trywait F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index d39e28a1d1..a906e29085 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -1013,6 +1013,7 @@  GLIBC_2.0 seekdir F
 GLIBC_2.0 select F
 GLIBC_2.0 sem_destroy F
 GLIBC_2.0 sem_getvalue F
+GLIBC_2.0 sem_init F
 GLIBC_2.0 semctl F
 GLIBC_2.0 semget F
 GLIBC_2.0 semop F
@@ -1638,6 +1639,7 @@  GLIBC_2.1 scandir64 F
 GLIBC_2.1 select F
 GLIBC_2.1 sem_destroy F
 GLIBC_2.1 sem_getvalue F
+GLIBC_2.1 sem_init F
 GLIBC_2.1 sendfile F
 GLIBC_2.1 setitimer F
 GLIBC_2.1 setrlimit64 F
@@ -2437,6 +2439,7 @@  GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
 GLIBC_2.34 sem_getvalue F
+GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
index 37eba5d526..04dca3fb17 100644
--- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
@@ -9,7 +9,6 @@  GLIBC_2.0 pthread_cancel F
 GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join F
-GLIBC_2.0 sem_init F
 GLIBC_2.0 sem_post F
 GLIBC_2.0 sem_trywait F
 GLIBC_2.0 sem_wait F
@@ -22,7 +21,6 @@  GLIBC_2.1 pthread_attr_setstacksize F
 GLIBC_2.1 pthread_create F
 GLIBC_2.1 pthread_getconcurrency F
 GLIBC_2.1 pthread_setconcurrency F
-GLIBC_2.1 sem_init F
 GLIBC_2.1 sem_post F
 GLIBC_2.1 sem_trywait F
 GLIBC_2.1 sem_wait F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index d24e926437..b7f211bee3 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1605,6 +1605,7 @@  GLIBC_2.32 sem_clockwait F
 GLIBC_2.32 sem_close F
 GLIBC_2.32 sem_destroy F
 GLIBC_2.32 sem_getvalue F
+GLIBC_2.32 sem_init F
 GLIBC_2.32 sem_open F
 GLIBC_2.32 semctl F
 GLIBC_2.32 semget F
@@ -2113,6 +2114,7 @@  GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
 GLIBC_2.34 sem_getvalue F
+GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
index 0d2b6878f0..620aa737af 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_init F
 GLIBC_2.32 sem_post F
 GLIBC_2.32 sem_timedwait F
 GLIBC_2.32 sem_trywait F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 6948069e7a..0ee04e8ec2 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -256,6 +256,7 @@  GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
 GLIBC_2.34 sem_getvalue F
+GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
@@ -1845,6 +1846,7 @@  GLIBC_2.4 select F
 GLIBC_2.4 sem_close F
 GLIBC_2.4 sem_destroy F
 GLIBC_2.4 sem_getvalue F
+GLIBC_2.4 sem_init F
 GLIBC_2.4 sem_open F
 GLIBC_2.4 semctl F
 GLIBC_2.4 semget F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
index 10ae7a1302..2cad2a326d 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_init F
 GLIBC_2.4 sem_post F
 GLIBC_2.4 sem_timedwait F
 GLIBC_2.4 sem_trywait F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 24f11ea83f..3440ea0eb8 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -253,6 +253,7 @@  GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
 GLIBC_2.34 sem_getvalue F
+GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
@@ -1842,6 +1843,7 @@  GLIBC_2.4 select F
 GLIBC_2.4 sem_close F
 GLIBC_2.4 sem_destroy F
 GLIBC_2.4 sem_getvalue F
+GLIBC_2.4 sem_init F
 GLIBC_2.4 sem_open F
 GLIBC_2.4 semctl F
 GLIBC_2.4 semget F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
index 10ae7a1302..2cad2a326d 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_init F
 GLIBC_2.4 sem_post F
 GLIBC_2.4 sem_timedwait F
 GLIBC_2.4 sem_trywait F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 2ef861b277..862ca71146 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -1666,6 +1666,7 @@  GLIBC_2.29 select F
 GLIBC_2.29 sem_close F
 GLIBC_2.29 sem_destroy F
 GLIBC_2.29 sem_getvalue F
+GLIBC_2.29 sem_init F
 GLIBC_2.29 sem_open F
 GLIBC_2.29 semctl F
 GLIBC_2.29 semget F
@@ -2297,6 +2298,7 @@  GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
 GLIBC_2.34 sem_getvalue F
+GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
index 2c736e3810..0d192aad92 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_init F
 GLIBC_2.29 sem_post F
 GLIBC_2.29 sem_timedwait F
 GLIBC_2.29 sem_trywait F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index bb36e5c862..829c751dd4 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -1455,6 +1455,7 @@  GLIBC_2.2 select F
 GLIBC_2.2 sem_close F
 GLIBC_2.2 sem_destroy F
 GLIBC_2.2 sem_getvalue F
+GLIBC_2.2 sem_init F
 GLIBC_2.2 sem_open F
 GLIBC_2.2 semctl F
 GLIBC_2.2 semget F
@@ -2248,6 +2249,7 @@  GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
 GLIBC_2.34 sem_getvalue F
+GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
index 9a3c7ba538..9e3a2d7b79 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_init F
 GLIBC_2.2 sem_post F
 GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 sem_trywait F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index c01f45d684..e06fc546c7 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -990,6 +990,7 @@  GLIBC_2.0 seekdir F
 GLIBC_2.0 select F
 GLIBC_2.0 sem_destroy F
 GLIBC_2.0 sem_getvalue F
+GLIBC_2.0 sem_init F
 GLIBC_2.0 semctl F
 GLIBC_2.0 semget F
 GLIBC_2.0 semop F
@@ -1608,6 +1609,7 @@  GLIBC_2.1 scalblnl F
 GLIBC_2.1 scandir64 F
 GLIBC_2.1 sem_destroy F
 GLIBC_2.1 sem_getvalue F
+GLIBC_2.1 sem_init F
 GLIBC_2.1 sendfile F
 GLIBC_2.1 setrlimit64 F
 GLIBC_2.1 setutxent F
@@ -2427,6 +2429,7 @@  GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
 GLIBC_2.34 sem_getvalue F
+GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
index b1833a99e1..c109dfcfd2 100644
--- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
@@ -9,7 +9,6 @@  GLIBC_2.0 pthread_cancel F
 GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join F
-GLIBC_2.0 sem_init F
 GLIBC_2.0 sem_post F
 GLIBC_2.0 sem_trywait F
 GLIBC_2.0 sem_wait F
@@ -22,7 +21,6 @@  GLIBC_2.1 pthread_attr_setstacksize F
 GLIBC_2.1 pthread_create F
 GLIBC_2.1 pthread_getconcurrency F
 GLIBC_2.1 pthread_setconcurrency F
-GLIBC_2.1 sem_init F
 GLIBC_2.1 sem_post F
 GLIBC_2.1 sem_trywait F
 GLIBC_2.1 sem_wait F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 6f447d6acb..04062ddec5 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -1476,6 +1476,7 @@  GLIBC_2.2 select F
 GLIBC_2.2 sem_close F
 GLIBC_2.2 sem_destroy F
 GLIBC_2.2 sem_getvalue F
+GLIBC_2.2 sem_init F
 GLIBC_2.2 sem_open F
 GLIBC_2.2 semctl F
 GLIBC_2.2 semget F
@@ -2282,6 +2283,7 @@  GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
 GLIBC_2.34 sem_getvalue F
+GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
index 212b6841cc..2439b506d9 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_init F
 GLIBC_2.2 sem_post F
 GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 sem_trywait F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 7d16feab1c..1f14f1fdae 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -257,6 +257,7 @@  GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
 GLIBC_2.34 sem_getvalue F
+GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
@@ -1825,6 +1826,7 @@  GLIBC_2.4 select F
 GLIBC_2.4 sem_close F
 GLIBC_2.4 sem_destroy F
 GLIBC_2.4 sem_getvalue F
+GLIBC_2.4 sem_init F
 GLIBC_2.4 sem_open F
 GLIBC_2.4 semctl F
 GLIBC_2.4 semget F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
index 10ae7a1302..2cad2a326d 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_init F
 GLIBC_2.4 sem_post F
 GLIBC_2.4 sem_timedwait F
 GLIBC_2.4 sem_trywait F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 6a613724bc..ef4c457b82 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -989,6 +989,7 @@  GLIBC_2.0 seekdir F
 GLIBC_2.0 select F
 GLIBC_2.0 sem_destroy F
 GLIBC_2.0 sem_getvalue F
+GLIBC_2.0 sem_init F
 GLIBC_2.0 semctl F
 GLIBC_2.0 semget F
 GLIBC_2.0 semop F
@@ -1604,6 +1605,7 @@  GLIBC_2.1 scalblnl F
 GLIBC_2.1 scandir64 F
 GLIBC_2.1 sem_destroy F
 GLIBC_2.1 sem_getvalue F
+GLIBC_2.1 sem_init F
 GLIBC_2.1 sendfile F
 GLIBC_2.1 setrlimit64 F
 GLIBC_2.1 setutxent F
@@ -2370,6 +2372,7 @@  GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
 GLIBC_2.34 sem_getvalue F
+GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
index b1833a99e1..c109dfcfd2 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
@@ -9,7 +9,6 @@  GLIBC_2.0 pthread_cancel F
 GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join F
-GLIBC_2.0 sem_init F
 GLIBC_2.0 sem_post F
 GLIBC_2.0 sem_trywait F
 GLIBC_2.0 sem_wait F
@@ -22,7 +21,6 @@  GLIBC_2.1 pthread_attr_setstacksize F
 GLIBC_2.1 pthread_create F
 GLIBC_2.1 pthread_getconcurrency F
 GLIBC_2.1 pthread_setconcurrency F
-GLIBC_2.1 sem_init F
 GLIBC_2.1 sem_post F
 GLIBC_2.1 sem_trywait F
 GLIBC_2.1 sem_wait F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 08727dea01..c85118ef83 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -1665,6 +1665,7 @@  GLIBC_2.18 select F
 GLIBC_2.18 sem_close F
 GLIBC_2.18 sem_destroy F
 GLIBC_2.18 sem_getvalue F
+GLIBC_2.18 sem_init F
 GLIBC_2.18 sem_open F
 GLIBC_2.18 semctl F
 GLIBC_2.18 semget F
@@ -2348,6 +2349,7 @@  GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
 GLIBC_2.34 sem_getvalue F
+GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
index 4656602675..87adfbd119 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_init F
 GLIBC_2.18 sem_post F
 GLIBC_2.18 sem_timedwait F
 GLIBC_2.18 sem_trywait F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 4145398631..e329d24837 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -1665,6 +1665,7 @@  GLIBC_2.18 select F
 GLIBC_2.18 sem_close F
 GLIBC_2.18 sem_destroy F
 GLIBC_2.18 sem_getvalue F
+GLIBC_2.18 sem_init F
 GLIBC_2.18 sem_open F
 GLIBC_2.18 semctl F
 GLIBC_2.18 semget F
@@ -2345,6 +2346,7 @@  GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
 GLIBC_2.34 sem_getvalue F
+GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
index 4656602675..87adfbd119 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_init F
 GLIBC_2.18 sem_post F
 GLIBC_2.18 sem_timedwait F
 GLIBC_2.18 sem_trywait F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 1ff4fda725..10c4f9169f 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -986,6 +986,7 @@  GLIBC_2.0 seekdir F
 GLIBC_2.0 select F
 GLIBC_2.0 sem_destroy F
 GLIBC_2.0 sem_getvalue F
+GLIBC_2.0 sem_init F
 GLIBC_2.0 semctl F
 GLIBC_2.0 semget F
 GLIBC_2.0 semop F
@@ -1893,6 +1894,7 @@  GLIBC_2.2 scandir64 F
 GLIBC_2.2 sem_close F
 GLIBC_2.2 sem_destroy F
 GLIBC_2.2 sem_getvalue F
+GLIBC_2.2 sem_init F
 GLIBC_2.2 sem_open F
 GLIBC_2.2 semctl F
 GLIBC_2.2 sendfile F
@@ -2333,6 +2335,7 @@  GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
 GLIBC_2.34 sem_getvalue F
+GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
index f250d3b50b..fda2fedaa8 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
@@ -9,7 +9,6 @@  GLIBC_2.0 pthread_cancel F
 GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join F
-GLIBC_2.0 sem_init F
 GLIBC_2.0 sem_post F
 GLIBC_2.0 sem_trywait F
 GLIBC_2.0 sem_wait F
@@ -36,7 +35,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_init F
 GLIBC_2.2 sem_post F
 GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 sem_trywait F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 76acce16f5..5c756ef87c 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -986,6 +986,7 @@  GLIBC_2.0 seekdir F
 GLIBC_2.0 select F
 GLIBC_2.0 sem_destroy F
 GLIBC_2.0 sem_getvalue F
+GLIBC_2.0 sem_init F
 GLIBC_2.0 semctl F
 GLIBC_2.0 semget F
 GLIBC_2.0 semop F
@@ -1891,6 +1892,7 @@  GLIBC_2.2 scandir64 F
 GLIBC_2.2 sem_close F
 GLIBC_2.2 sem_destroy F
 GLIBC_2.2 sem_getvalue F
+GLIBC_2.2 sem_init F
 GLIBC_2.2 sem_open F
 GLIBC_2.2 semctl F
 GLIBC_2.2 sendfile F
@@ -2331,6 +2333,7 @@  GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
 GLIBC_2.34 sem_getvalue F
+GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
index f250d3b50b..fda2fedaa8 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
@@ -9,7 +9,6 @@  GLIBC_2.0 pthread_cancel F
 GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join F
-GLIBC_2.0 sem_init F
 GLIBC_2.0 sem_post F
 GLIBC_2.0 sem_trywait F
 GLIBC_2.0 sem_wait F
@@ -36,7 +35,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_init F
 GLIBC_2.2 sem_post F
 GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 sem_trywait F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 2d626894fd..3a48dba1a8 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -986,6 +986,7 @@  GLIBC_2.0 seekdir F
 GLIBC_2.0 select F
 GLIBC_2.0 sem_destroy F
 GLIBC_2.0 sem_getvalue F
+GLIBC_2.0 sem_init F
 GLIBC_2.0 semctl F
 GLIBC_2.0 semget F
 GLIBC_2.0 semop F
@@ -1891,6 +1892,7 @@  GLIBC_2.2 scandir64 F
 GLIBC_2.2 sem_close F
 GLIBC_2.2 sem_destroy F
 GLIBC_2.2 sem_getvalue F
+GLIBC_2.2 sem_init F
 GLIBC_2.2 sem_open F
 GLIBC_2.2 sendfile F
 GLIBC_2.2 setrlimit64 F
@@ -2339,6 +2341,7 @@  GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
 GLIBC_2.34 sem_getvalue F
+GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 0aaf7611bd..43b9ffa9be 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -984,6 +984,7 @@  GLIBC_2.0 seekdir F
 GLIBC_2.0 select F
 GLIBC_2.0 sem_destroy F
 GLIBC_2.0 sem_getvalue F
+GLIBC_2.0 sem_init F
 GLIBC_2.0 semctl F
 GLIBC_2.0 semget F
 GLIBC_2.0 semop F
@@ -1887,6 +1888,7 @@  GLIBC_2.2 scandir64 F
 GLIBC_2.2 sem_close F
 GLIBC_2.2 sem_destroy F
 GLIBC_2.2 sem_getvalue F
+GLIBC_2.2 sem_init F
 GLIBC_2.2 sem_open F
 GLIBC_2.2 sendfile F
 GLIBC_2.2 setrlimit64 F
@@ -2333,6 +2335,7 @@  GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
 GLIBC_2.34 sem_getvalue F
+GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index ea8b37e340..9871445825 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -1708,6 +1708,7 @@  GLIBC_2.21 select F
 GLIBC_2.21 sem_close F
 GLIBC_2.21 sem_destroy F
 GLIBC_2.21 sem_getvalue F
+GLIBC_2.21 sem_init F
 GLIBC_2.21 sem_open F
 GLIBC_2.21 semctl F
 GLIBC_2.21 semget F
@@ -2387,6 +2388,7 @@  GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
 GLIBC_2.34 sem_getvalue F
+GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
index 5d47b5af57..8dc58decd5 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_init F
 GLIBC_2.21 sem_post F
 GLIBC_2.21 sem_timedwait F
 GLIBC_2.21 sem_trywait F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 9e8200f88f..a18583a716 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -997,6 +997,7 @@  GLIBC_2.0 seekdir F
 GLIBC_2.0 select F
 GLIBC_2.0 sem_destroy F
 GLIBC_2.0 sem_getvalue F
+GLIBC_2.0 sem_init F
 GLIBC_2.0 semctl F
 GLIBC_2.0 semget F
 GLIBC_2.0 semop F
@@ -1609,6 +1610,7 @@  GLIBC_2.1 rtime F
 GLIBC_2.1 scandir64 F
 GLIBC_2.1 sem_destroy F
 GLIBC_2.1 sem_getvalue F
+GLIBC_2.1 sem_init F
 GLIBC_2.1 sendfile F
 GLIBC_2.1 setrlimit64 F
 GLIBC_2.1 setutxent F
@@ -2397,6 +2399,7 @@  GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
 GLIBC_2.34 sem_getvalue F
+GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
index 4ba599efcf..dc53279748 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
@@ -9,7 +9,6 @@  GLIBC_2.0 pthread_cancel F
 GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join F
-GLIBC_2.0 sem_init F
 GLIBC_2.0 sem_post F
 GLIBC_2.0 sem_trywait F
 GLIBC_2.0 sem_wait F
@@ -22,7 +21,6 @@  GLIBC_2.1 pthread_attr_setstacksize F
 GLIBC_2.1 pthread_create F
 GLIBC_2.1 pthread_getconcurrency F
 GLIBC_2.1 pthread_setconcurrency F
-GLIBC_2.1 sem_init F
 GLIBC_2.1 sem_post F
 GLIBC_2.1 sem_trywait F
 GLIBC_2.1 sem_wait F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 8ed232c46e..9bf3da7388 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -997,6 +997,7 @@  GLIBC_2.0 seekdir F
 GLIBC_2.0 select F
 GLIBC_2.0 sem_destroy F
 GLIBC_2.0 sem_getvalue F
+GLIBC_2.0 sem_init F
 GLIBC_2.0 semctl F
 GLIBC_2.0 semget F
 GLIBC_2.0 semop F
@@ -1609,6 +1610,7 @@  GLIBC_2.1 rtime F
 GLIBC_2.1 scandir64 F
 GLIBC_2.1 sem_destroy F
 GLIBC_2.1 sem_getvalue F
+GLIBC_2.1 sem_init F
 GLIBC_2.1 sendfile F
 GLIBC_2.1 setrlimit64 F
 GLIBC_2.1 setutxent F
@@ -2430,6 +2432,7 @@  GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
 GLIBC_2.34 sem_getvalue F
+GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 887f480421..d5706b2f69 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -1580,6 +1580,7 @@  GLIBC_2.3 select F
 GLIBC_2.3 sem_close F
 GLIBC_2.3 sem_destroy F
 GLIBC_2.3 sem_getvalue F
+GLIBC_2.3 sem_init F
 GLIBC_2.3 sem_open F
 GLIBC_2.3 semctl F
 GLIBC_2.3 semget F
@@ -2249,6 +2250,7 @@  GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
 GLIBC_2.34 sem_getvalue F
+GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
index 8e89df212e..2897e7dbb7 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_init F
 GLIBC_2.3 sem_post F
 GLIBC_2.3 sem_timedwait F
 GLIBC_2.3 sem_trywait F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 0e34639e23..deb5f78799 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -1751,6 +1751,7 @@  GLIBC_2.17 select F
 GLIBC_2.17 sem_close F
 GLIBC_2.17 sem_destroy F
 GLIBC_2.17 sem_getvalue F
+GLIBC_2.17 sem_init F
 GLIBC_2.17 sem_open F
 GLIBC_2.17 semctl F
 GLIBC_2.17 semget F
@@ -2550,6 +2551,7 @@  GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
 GLIBC_2.34 sem_getvalue F
+GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
index 87bcb6bd08..cc05c4ec42 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_init F
 GLIBC_2.17 sem_post F
 GLIBC_2.17 sem_timedwait F
 GLIBC_2.17 sem_trywait F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index ee60bf8925..e3d9041b3e 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1607,6 +1607,7 @@  GLIBC_2.33 sem_clockwait F
 GLIBC_2.33 sem_close F
 GLIBC_2.33 sem_destroy F
 GLIBC_2.33 sem_getvalue F
+GLIBC_2.33 sem_init F
 GLIBC_2.33 sem_open F
 GLIBC_2.33 semctl F
 GLIBC_2.33 semget F
@@ -2115,6 +2116,7 @@  GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
 GLIBC_2.34 sem_getvalue F
+GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
index b342a05a1b..93599c88a2 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_init F
 GLIBC_2.33 sem_post F
 GLIBC_2.33 sem_timedwait F
 GLIBC_2.33 sem_trywait F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 3d76a78b07..b6b59ee692 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -1655,6 +1655,7 @@  GLIBC_2.27 select F
 GLIBC_2.27 sem_close F
 GLIBC_2.27 sem_destroy F
 GLIBC_2.27 sem_getvalue F
+GLIBC_2.27 sem_init F
 GLIBC_2.27 sem_open F
 GLIBC_2.27 semctl F
 GLIBC_2.27 semget F
@@ -2315,6 +2316,7 @@  GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
 GLIBC_2.34 sem_getvalue F
+GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
index fe091c6884..215454cc39 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_init F
 GLIBC_2.27 sem_post F
 GLIBC_2.27 sem_timedwait F
 GLIBC_2.27 sem_trywait F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index bb44dc053f..ca7a6eec05 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -988,6 +988,7 @@  GLIBC_2.0 seekdir F
 GLIBC_2.0 select F
 GLIBC_2.0 sem_destroy F
 GLIBC_2.0 sem_getvalue F
+GLIBC_2.0 sem_init F
 GLIBC_2.0 semctl F
 GLIBC_2.0 semget F
 GLIBC_2.0 semop F
@@ -1601,6 +1602,7 @@  GLIBC_2.1 rtime F
 GLIBC_2.1 scandir64 F
 GLIBC_2.1 sem_destroy F
 GLIBC_2.1 sem_getvalue F
+GLIBC_2.1 sem_init F
 GLIBC_2.1 sendfile F
 GLIBC_2.1 setrlimit64 F
 GLIBC_2.1 setutxent F
@@ -2395,6 +2397,7 @@  GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
 GLIBC_2.34 sem_getvalue F
+GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
index 899cf97c70..6ed45aa436 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
@@ -9,7 +9,6 @@  GLIBC_2.0 pthread_cancel F
 GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join F
-GLIBC_2.0 sem_init F
 GLIBC_2.0 sem_post F
 GLIBC_2.0 sem_trywait F
 GLIBC_2.0 sem_wait F
@@ -22,7 +21,6 @@  GLIBC_2.1 pthread_attr_setstacksize F
 GLIBC_2.1 pthread_create F
 GLIBC_2.1 pthread_getconcurrency F
 GLIBC_2.1 pthread_setconcurrency F
-GLIBC_2.1 sem_init F
 GLIBC_2.1 sem_post F
 GLIBC_2.1 sem_trywait F
 GLIBC_2.1 sem_wait F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 6a55bdb602..9d13b92c53 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -1473,6 +1473,7 @@  GLIBC_2.2 select F
 GLIBC_2.2 sem_close F
 GLIBC_2.2 sem_destroy F
 GLIBC_2.2 sem_getvalue F
+GLIBC_2.2 sem_init F
 GLIBC_2.2 sem_open F
 GLIBC_2.2 semctl F
 GLIBC_2.2 semget F
@@ -2286,6 +2287,7 @@  GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
 GLIBC_2.34 sem_getvalue F
+GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
index ea58dbd01d..162c5743a9 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_init F
 GLIBC_2.2 sem_post F
 GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 sem_trywait F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index fb4c0e3fa7..0cea6eb093 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -1459,6 +1459,7 @@  GLIBC_2.2 select F
 GLIBC_2.2 sem_close F
 GLIBC_2.2 sem_destroy F
 GLIBC_2.2 sem_getvalue F
+GLIBC_2.2 sem_init F
 GLIBC_2.2 sem_open F
 GLIBC_2.2 semctl F
 GLIBC_2.2 semget F
@@ -2255,6 +2256,7 @@  GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
 GLIBC_2.34 sem_getvalue F
+GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
index 9a3c7ba538..9e3a2d7b79 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_init F
 GLIBC_2.2 sem_post F
 GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 sem_trywait F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 7c686b7ec9..af2e74fdfa 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -1459,6 +1459,7 @@  GLIBC_2.2 select F
 GLIBC_2.2 sem_close F
 GLIBC_2.2 sem_destroy F
 GLIBC_2.2 sem_getvalue F
+GLIBC_2.2 sem_init F
 GLIBC_2.2 sem_open F
 GLIBC_2.2 semctl F
 GLIBC_2.2 semget F
@@ -2252,6 +2253,7 @@  GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
 GLIBC_2.34 sem_getvalue F
+GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
index 9a3c7ba538..9e3a2d7b79 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_init F
 GLIBC_2.2 sem_post F
 GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 sem_trywait F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index ab0cb2d1d2..79b69a31be 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -991,6 +991,7 @@  GLIBC_2.0 seekdir F
 GLIBC_2.0 select F
 GLIBC_2.0 sem_destroy F
 GLIBC_2.0 sem_getvalue F
+GLIBC_2.0 sem_init F
 GLIBC_2.0 semctl F
 GLIBC_2.0 semget F
 GLIBC_2.0 semop F
@@ -1602,6 +1603,7 @@  GLIBC_2.1 rtime F
 GLIBC_2.1 scandir64 F
 GLIBC_2.1 sem_destroy F
 GLIBC_2.1 sem_getvalue F
+GLIBC_2.1 sem_init F
 GLIBC_2.1 sendfile F
 GLIBC_2.1 setrlimit64 F
 GLIBC_2.1 setutxent F
@@ -2386,6 +2388,7 @@  GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
 GLIBC_2.34 sem_getvalue F
+GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
index 37eba5d526..04dca3fb17 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
@@ -9,7 +9,6 @@  GLIBC_2.0 pthread_cancel F
 GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join F
-GLIBC_2.0 sem_init F
 GLIBC_2.0 sem_post F
 GLIBC_2.0 sem_trywait F
 GLIBC_2.0 sem_wait F
@@ -22,7 +21,6 @@  GLIBC_2.1 pthread_attr_setstacksize F
 GLIBC_2.1 pthread_create F
 GLIBC_2.1 pthread_getconcurrency F
 GLIBC_2.1 pthread_setconcurrency F
-GLIBC_2.1 sem_init F
 GLIBC_2.1 sem_post F
 GLIBC_2.1 sem_trywait F
 GLIBC_2.1 sem_wait F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 53dacbb77e..8e367c0030 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -1502,6 +1502,7 @@  GLIBC_2.2 select F
 GLIBC_2.2 sem_close F
 GLIBC_2.2 sem_destroy F
 GLIBC_2.2 sem_getvalue F
+GLIBC_2.2 sem_init F
 GLIBC_2.2 sem_open F
 GLIBC_2.2 semctl F
 GLIBC_2.2 semget F
@@ -2303,6 +2304,7 @@  GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
 GLIBC_2.34 sem_getvalue F
+GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
index 212b6841cc..2439b506d9 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_init F
 GLIBC_2.2 sem_post F
 GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 sem_trywait F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 96245373c8..83f18b509d 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -1470,6 +1470,7 @@  GLIBC_2.2.5 select F
 GLIBC_2.2.5 sem_close F
 GLIBC_2.2.5 sem_destroy F
 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 semctl F
 GLIBC_2.2.5 semget F
@@ -2264,6 +2265,7 @@  GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
 GLIBC_2.34 sem_getvalue F
+GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
index 2c17991871..145925269d 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_init F
 GLIBC_2.2.5 sem_post F
 GLIBC_2.2.5 sem_timedwait F
 GLIBC_2.2.5 sem_trywait F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 7cd32696c5..01dd2eb8a6 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -1669,6 +1669,7 @@  GLIBC_2.16 select F
 GLIBC_2.16 sem_close F
 GLIBC_2.16 sem_destroy F
 GLIBC_2.16 sem_getvalue F
+GLIBC_2.16 sem_init F
 GLIBC_2.16 sem_open F
 GLIBC_2.16 semctl F
 GLIBC_2.16 semget F
@@ -2369,6 +2370,7 @@  GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
 GLIBC_2.34 sem_getvalue F
+GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
index 44826acfbd..bbbaa04cd7 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_init F
 GLIBC_2.16 sem_post F
 GLIBC_2.16 sem_timedwait F
 GLIBC_2.16 sem_trywait F