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
