[05/34] rt: Move shm_open into libc

Message ID 74dcd8dbe968d7693da7cfbc4d693e812ab647ff.1623956057.git.fweimer@redhat.com
State Committed
Commit c6e7ec2f123bceb323836cc4558f9586959ebf58
Headers
Series Move librt into libc |

Checks

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

Commit Message

Florian Weimer June 17, 2021, 6:57 p.m. UTC
  This function has no dependency on libpthread, so the move is also
applied to Hurd.

To avoid localplt failures, use __open64_nocancel instead of
pthread_setcancelstate and open.

The symbol was moved using scripts/move-symbol-to-libc.py.

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
---
 rt/Makefile                                     |  4 +++-
 rt/Versions                                     |  9 ++++++++-
 rt/shm_open.c                                   | 17 +++++++++--------
 sysdeps/mach/hurd/i386/libc.abilist             |  2 ++
 sysdeps/mach/hurd/i386/librt.abilist            |  1 -
 sysdeps/unix/sysv/linux/aarch64/libc.abilist    |  2 ++
 sysdeps/unix/sysv/linux/aarch64/librt.abilist   |  1 -
 sysdeps/unix/sysv/linux/alpha/libc.abilist      |  2 ++
 sysdeps/unix/sysv/linux/alpha/librt.abilist     |  1 -
 sysdeps/unix/sysv/linux/arc/libc.abilist        |  2 ++
 sysdeps/unix/sysv/linux/arc/librt.abilist       |  1 -
 sysdeps/unix/sysv/linux/arm/be/libc.abilist     |  2 ++
 sysdeps/unix/sysv/linux/arm/be/librt.abilist    |  1 -
 sysdeps/unix/sysv/linux/arm/le/libc.abilist     |  2 ++
 sysdeps/unix/sysv/linux/arm/le/librt.abilist    |  1 -
 sysdeps/unix/sysv/linux/csky/libc.abilist       |  2 ++
 sysdeps/unix/sysv/linux/csky/librt.abilist      |  1 -
 sysdeps/unix/sysv/linux/hppa/libc.abilist       |  2 ++
 sysdeps/unix/sysv/linux/hppa/librt.abilist      |  1 -
 sysdeps/unix/sysv/linux/i386/libc.abilist       |  2 ++
 sysdeps/unix/sysv/linux/i386/librt.abilist      |  1 -
 sysdeps/unix/sysv/linux/ia64/libc.abilist       |  2 ++
 sysdeps/unix/sysv/linux/ia64/librt.abilist      |  1 -
 .../unix/sysv/linux/m68k/coldfire/libc.abilist  |  2 ++
 .../unix/sysv/linux/m68k/coldfire/librt.abilist |  1 -
 .../unix/sysv/linux/m68k/m680x0/libc.abilist    |  2 ++
 .../unix/sysv/linux/m68k/m680x0/librt.abilist   |  1 -
 .../unix/sysv/linux/microblaze/be/libc.abilist  |  2 ++
 .../unix/sysv/linux/microblaze/be/librt.abilist |  1 -
 .../unix/sysv/linux/microblaze/le/libc.abilist  |  2 ++
 .../unix/sysv/linux/microblaze/le/librt.abilist |  1 -
 .../sysv/linux/mips/mips32/fpu/libc.abilist     |  2 ++
 .../unix/sysv/linux/mips/mips32/librt.abilist   |  1 -
 .../sysv/linux/mips/mips32/nofpu/libc.abilist   |  2 ++
 .../sysv/linux/mips/mips64/n32/libc.abilist     |  2 ++
 .../sysv/linux/mips/mips64/n32/librt.abilist    |  1 -
 .../sysv/linux/mips/mips64/n64/libc.abilist     |  2 ++
 .../sysv/linux/mips/mips64/n64/librt.abilist    |  1 -
 sysdeps/unix/sysv/linux/nios2/libc.abilist      |  2 ++
 sysdeps/unix/sysv/linux/nios2/librt.abilist     |  1 -
 .../linux/powerpc/powerpc32/fpu/libc.abilist    |  2 ++
 .../sysv/linux/powerpc/powerpc32/librt.abilist  |  1 -
 .../linux/powerpc/powerpc32/nofpu/libc.abilist  |  2 ++
 .../linux/powerpc/powerpc64/be/libc.abilist     |  2 ++
 .../linux/powerpc/powerpc64/be/librt.abilist    |  1 -
 .../linux/powerpc/powerpc64/le/libc.abilist     |  2 ++
 .../linux/powerpc/powerpc64/le/librt.abilist    |  1 -
 sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist |  2 ++
 .../unix/sysv/linux/riscv/rv32/librt.abilist    |  1 -
 sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist |  2 ++
 .../unix/sysv/linux/riscv/rv64/librt.abilist    |  1 -
 .../unix/sysv/linux/s390/s390-32/libc.abilist   |  2 ++
 .../unix/sysv/linux/s390/s390-32/librt.abilist  |  1 -
 .../unix/sysv/linux/s390/s390-64/libc.abilist   |  2 ++
 .../unix/sysv/linux/s390/s390-64/librt.abilist  |  1 -
 sysdeps/unix/sysv/linux/sh/be/libc.abilist      |  2 ++
 sysdeps/unix/sysv/linux/sh/be/librt.abilist     |  1 -
 sysdeps/unix/sysv/linux/sh/le/libc.abilist      |  2 ++
 sysdeps/unix/sysv/linux/sh/le/librt.abilist     |  1 -
 .../unix/sysv/linux/sparc/sparc32/libc.abilist  |  2 ++
 .../unix/sysv/linux/sparc/sparc32/librt.abilist |  1 -
 .../unix/sysv/linux/sparc/sparc64/libc.abilist  |  2 ++
 .../unix/sysv/linux/sparc/sparc64/librt.abilist |  1 -
 sysdeps/unix/sysv/linux/x86_64/64/libc.abilist  |  2 ++
 sysdeps/unix/sysv/linux/x86_64/64/librt.abilist |  1 -
 sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist |  2 ++
 .../unix/sysv/linux/x86_64/x32/librt.abilist    |  1 -
 67 files changed, 86 insertions(+), 41 deletions(-)
  

Patch

diff --git a/rt/Makefile b/rt/Makefile
index 47bc594dee..ba141c82f2 100644
--- a/rt/Makefile
+++ b/rt/Makefile
@@ -24,6 +24,9 @@  include ../Makeconfig
 
 headers	:= aio.h mqueue.h bits/mqueue.h bits/mqueue2.h
 
+routines = \
+  shm_open \
+
 librt-routines = \
   aio_cancel \
   aio_error \
@@ -49,7 +52,6 @@  librt-routines = \
   mq_timedreceive \
   mq_timedsend \
   mq_unlink \
-  shm_open \
   shm_unlink \
   timer_create \
   timer_delete \
diff --git a/rt/Versions b/rt/Versions
index f151f85ef6..e1d208eeb3 100644
--- a/rt/Versions
+++ b/rt/Versions
@@ -1,3 +1,11 @@ 
+libc {
+  GLIBC_2.2 {
+    shm_open;
+  }
+  GLIBC_2.34 {
+    shm_open;
+  }
+}
 librt {
   GLIBC_2.1 {
     aio_cancel;
@@ -19,7 +27,6 @@  librt {
     lio_listio64;
   }
   GLIBC_2.2 {
-    shm_open;
     shm_unlink;
     timer_create;
     timer_delete;
diff --git a/rt/shm_open.c b/rt/shm_open.c
index a89aac4102..40eb8902a8 100644
--- a/rt/shm_open.c
+++ b/rt/shm_open.c
@@ -18,13 +18,15 @@ 
 
 #include <errno.h>
 #include <fcntl.h>
+#include <not-cancel.h>
 #include <pthread.h>
+#include <shlib-compat.h>
 #include <shm-directory.h>
 #include <unistd.h>
 
 /* Open shared memory object.  */
 int
-shm_open (const char *name, int oflag, mode_t mode)
+__shm_open (const char *name, int oflag, mode_t mode)
 {
   struct shmdir_name dirname;
   if (__shm_get_name (&dirname, name, false) != 0)
@@ -35,18 +37,17 @@  shm_open (const char *name, int oflag, mode_t mode)
 
   oflag |= O_NOFOLLOW | O_CLOEXEC;
 
-  /* Disable asynchronous cancellation.  */
-  int state;
-  pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, &state);
-
-  int fd = open (dirname.name, oflag, mode);
+  int fd = __open64_nocancel (dirname.name, oflag, mode);
   if (fd == -1 && __glibc_unlikely (errno == EISDIR))
     /* It might be better to fold this error with EINVAL since
        directory names are just another example for unsuitable shared
        object names and the standard does not mention EISDIR.  */
     __set_errno (EINVAL);
 
-  pthread_setcancelstate (state, NULL);
-
   return fd;
 }
+versioned_symbol (libc, __shm_open, shm_open, GLIBC_2_34);
+
+#if OTHER_SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libc, __shm_open, shm_open, GLIBC_2_2);
+#endif
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index f651989962..f1e529f087 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -1566,6 +1566,7 @@  GLIBC_2.2.6 setutxent F
 GLIBC_2.2.6 setvbuf F
 GLIBC_2.2.6 sgetspent F
 GLIBC_2.2.6 sgetspent_r F
+GLIBC_2.2.6 shm_open F
 GLIBC_2.2.6 shmat F
 GLIBC_2.2.6 shmctl F
 GLIBC_2.2.6 shmdt F
@@ -2226,6 +2227,7 @@  GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 execveat F
+GLIBC_2.34 shm_open F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
diff --git a/sysdeps/mach/hurd/i386/librt.abilist b/sysdeps/mach/hurd/i386/librt.abilist
index 3726e41f06..efee87f824 100644
--- a/sysdeps/mach/hurd/i386/librt.abilist
+++ b/sysdeps/mach/hurd/i386/librt.abilist
@@ -15,7 +15,6 @@  GLIBC_2.2.6 aio_write F
 GLIBC_2.2.6 aio_write64 F
 GLIBC_2.2.6 lio_listio F
 GLIBC_2.2.6 lio_listio64 F
-GLIBC_2.2.6 shm_open F
 GLIBC_2.2.6 shm_unlink F
 GLIBC_2.2.6 timer_create F
 GLIBC_2.2.6 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index ad4c83787d..f228fc17c3 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -1783,6 +1783,7 @@  GLIBC_2.17 sgetsgent F
 GLIBC_2.17 sgetsgent_r F
 GLIBC_2.17 sgetspent F
 GLIBC_2.17 sgetspent_r F
+GLIBC_2.17 shm_open F
 GLIBC_2.17 shmat F
 GLIBC_2.17 shmctl F
 GLIBC_2.17 shmdt F
@@ -2465,6 +2466,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
 GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
index 5e81c82a25..7ebb55d15e 100644
--- a/sysdeps/unix/sysv/linux/aarch64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
@@ -26,7 +26,6 @@  GLIBC_2.17 mq_setattr F
 GLIBC_2.17 mq_timedreceive F
 GLIBC_2.17 mq_timedsend F
 GLIBC_2.17 mq_unlink F
-GLIBC_2.17 shm_open F
 GLIBC_2.17 shm_unlink F
 GLIBC_2.17 timer_create F
 GLIBC_2.17 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 30dfd0baa1..5b90ab838a 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -2067,6 +2067,7 @@  GLIBC_2.2 rresvport_af F
 GLIBC_2.2 ruserok_af F
 GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 semctl F
+GLIBC_2.2 shm_open F
 GLIBC_2.2 shmctl F
 GLIBC_2.2 svc_getreq_common F
 GLIBC_2.2 svc_getreq_poll F
@@ -2558,6 +2559,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
 GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
index 71f86e03ce..bfa53df5cc 100644
--- a/sysdeps/unix/sysv/linux/alpha/librt.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist
@@ -15,7 +15,6 @@  GLIBC_2.1 aio_write F
 GLIBC_2.1 aio_write64 F
 GLIBC_2.1 lio_listio F
 GLIBC_2.1 lio_listio64 F
-GLIBC_2.2 shm_open F
 GLIBC_2.2 shm_unlink F
 GLIBC_2.2 timer_create F
 GLIBC_2.2 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 72ff8c5bdc..00a294c22a 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1728,6 +1728,7 @@  GLIBC_2.32 sgetsgent F
 GLIBC_2.32 sgetsgent_r F
 GLIBC_2.32 sgetspent F
 GLIBC_2.32 sgetspent_r F
+GLIBC_2.32 shm_open F
 GLIBC_2.32 shmat F
 GLIBC_2.32 shmctl F
 GLIBC_2.32 shmdt F
@@ -2224,6 +2225,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
 GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
index fda2b20c01..febfd3320f 100644
--- a/sysdeps/unix/sysv/linux/arc/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arc/librt.abilist
@@ -26,7 +26,6 @@  GLIBC_2.32 mq_setattr F
 GLIBC_2.32 mq_timedreceive F
 GLIBC_2.32 mq_timedsend F
 GLIBC_2.32 mq_unlink F
-GLIBC_2.32 shm_open F
 GLIBC_2.32 shm_unlink F
 GLIBC_2.32 timer_create F
 GLIBC_2.32 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 4c870e6abb..f056f72b77 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -397,6 +397,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
 GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
@@ -2101,6 +2102,7 @@  GLIBC_2.4 setvbuf F
 GLIBC_2.4 setxattr F
 GLIBC_2.4 sgetspent F
 GLIBC_2.4 sgetspent_r F
+GLIBC_2.4 shm_open F
 GLIBC_2.4 shmat F
 GLIBC_2.4 shmctl F
 GLIBC_2.4 shmdt F
diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
index 8cb1ed626c..2c7735e023 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -30,7 +30,6 @@  GLIBC_2.4 mq_setattr F
 GLIBC_2.4 mq_timedreceive F
 GLIBC_2.4 mq_timedsend F
 GLIBC_2.4 mq_unlink F
-GLIBC_2.4 shm_open F
 GLIBC_2.4 shm_unlink F
 GLIBC_2.4 timer_create F
 GLIBC_2.4 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 1f0dbc990a..45751a3796 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -394,6 +394,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
 GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
@@ -2098,6 +2099,7 @@  GLIBC_2.4 setvbuf F
 GLIBC_2.4 setxattr F
 GLIBC_2.4 sgetspent F
 GLIBC_2.4 sgetspent_r F
+GLIBC_2.4 shm_open F
 GLIBC_2.4 shmat F
 GLIBC_2.4 shmctl F
 GLIBC_2.4 shmdt F
diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
index 8cb1ed626c..2c7735e023 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -30,7 +30,6 @@  GLIBC_2.4 mq_setattr F
 GLIBC_2.4 mq_timedreceive F
 GLIBC_2.4 mq_timedsend F
 GLIBC_2.4 mq_unlink F
-GLIBC_2.4 shm_open F
 GLIBC_2.4 shm_unlink F
 GLIBC_2.4 timer_create F
 GLIBC_2.4 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 9756eaeccf..cd0c551a53 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -1788,6 +1788,7 @@  GLIBC_2.29 sgetsgent F
 GLIBC_2.29 sgetsgent_r F
 GLIBC_2.29 sgetspent F
 GLIBC_2.29 sgetspent_r F
+GLIBC_2.29 shm_open F
 GLIBC_2.29 shmat F
 GLIBC_2.29 shmctl F
 GLIBC_2.29 shmdt F
@@ -2484,6 +2485,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
 GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
index b60deca65a..397141f226 100644
--- a/sysdeps/unix/sysv/linux/csky/librt.abilist
+++ b/sysdeps/unix/sysv/linux/csky/librt.abilist
@@ -26,7 +26,6 @@  GLIBC_2.29 mq_setattr F
 GLIBC_2.29 mq_timedreceive F
 GLIBC_2.29 mq_timedsend F
 GLIBC_2.29 mq_unlink F
-GLIBC_2.29 shm_open F
 GLIBC_2.29 shm_unlink F
 GLIBC_2.29 timer_create F
 GLIBC_2.29 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index e78cb54597..6492ea8a6a 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -1555,6 +1555,7 @@  GLIBC_2.2 setutxent F
 GLIBC_2.2 setvbuf F
 GLIBC_2.2 sgetspent F
 GLIBC_2.2 sgetspent_r F
+GLIBC_2.2 shm_open F
 GLIBC_2.2 shmat F
 GLIBC_2.2 shmctl F
 GLIBC_2.2 shmdt F
@@ -2438,6 +2439,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
 GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
index 463a88a1df..9330ab2679 100644
--- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
@@ -15,7 +15,6 @@  GLIBC_2.1 aio_write F
 GLIBC_2.1 aio_write64 F
 GLIBC_2.1 lio_listio F
 GLIBC_2.1 lio_listio64 F
-GLIBC_2.2 shm_open F
 GLIBC_2.2 shm_unlink F
 GLIBC_2.2 timer_create F
 GLIBC_2.2 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index d1583a5465..64e357202e 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -2080,6 +2080,7 @@  GLIBC_2.2 scandir64 F
 GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 semctl F
 GLIBC_2.2 setrlimit F
+GLIBC_2.2 shm_open F
 GLIBC_2.2 shmctl F
 GLIBC_2.2 svc_getreq_common F
 GLIBC_2.2 svc_getreq_poll F
@@ -2622,6 +2623,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
 GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
index 463a88a1df..9330ab2679 100644
--- a/sysdeps/unix/sysv/linux/i386/librt.abilist
+++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
@@ -15,7 +15,6 @@  GLIBC_2.1 aio_write F
 GLIBC_2.1 aio_write64 F
 GLIBC_2.1 lio_listio F
 GLIBC_2.1 lio_listio64 F
-GLIBC_2.2 shm_open F
 GLIBC_2.2 shm_unlink F
 GLIBC_2.2 timer_create F
 GLIBC_2.2 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 4a608b5d29..2d2a33196d 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -1576,6 +1576,7 @@  GLIBC_2.2 setutxent F
 GLIBC_2.2 setvbuf F
 GLIBC_2.2 sgetspent F
 GLIBC_2.2 sgetspent_r F
+GLIBC_2.2 shm_open F
 GLIBC_2.2 shmat F
 GLIBC_2.2 shmctl F
 GLIBC_2.2 shmdt F
@@ -2398,6 +2399,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
 GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
index 08384c9065..31af578b45 100644
--- a/sysdeps/unix/sysv/linux/ia64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/librt.abilist
@@ -15,7 +15,6 @@  GLIBC_2.1 aio_write F
 GLIBC_2.1 aio_write64 F
 GLIBC_2.1 lio_listio F
 GLIBC_2.1 lio_listio64 F
-GLIBC_2.2 shm_open F
 GLIBC_2.2 shm_unlink F
 GLIBC_2.2 timer_create F
 GLIBC_2.2 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 72db6c699b..868964dc1a 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -398,6 +398,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
 GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
@@ -2081,6 +2082,7 @@  GLIBC_2.4 setvbuf F
 GLIBC_2.4 setxattr F
 GLIBC_2.4 sgetspent F
 GLIBC_2.4 sgetspent_r F
+GLIBC_2.4 shm_open F
 GLIBC_2.4 shmat F
 GLIBC_2.4 shmctl F
 GLIBC_2.4 shmdt F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
index 8cb1ed626c..2c7735e023 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -30,7 +30,6 @@  GLIBC_2.4 mq_setattr F
 GLIBC_2.4 mq_timedreceive F
 GLIBC_2.4 mq_timedsend F
 GLIBC_2.4 mq_unlink F
-GLIBC_2.4 shm_open F
 GLIBC_2.4 shm_unlink F
 GLIBC_2.4 timer_create F
 GLIBC_2.4 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index bd4166dbb1..2dbaa0e4cd 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2036,6 +2036,7 @@  GLIBC_2.2 scandir64 F
 GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 semctl F
 GLIBC_2.2 setrlimit F
+GLIBC_2.2 shm_open F
 GLIBC_2.2 shmctl F
 GLIBC_2.2 svc_getreq_common F
 GLIBC_2.2 svc_getreq_poll F
@@ -2565,6 +2566,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
 GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
index 463a88a1df..9330ab2679 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
@@ -15,7 +15,6 @@  GLIBC_2.1 aio_write F
 GLIBC_2.1 aio_write64 F
 GLIBC_2.1 lio_listio F
 GLIBC_2.1 lio_listio64 F
-GLIBC_2.2 shm_open F
 GLIBC_2.2 shm_unlink F
 GLIBC_2.2 timer_create F
 GLIBC_2.2 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 83a6edae67..afdb458987 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -1787,6 +1787,7 @@  GLIBC_2.18 sgetsgent F
 GLIBC_2.18 sgetsgent_r F
 GLIBC_2.18 sgetspent F
 GLIBC_2.18 sgetspent_r F
+GLIBC_2.18 shm_open F
 GLIBC_2.18 shmat F
 GLIBC_2.18 shmctl F
 GLIBC_2.18 shmdt F
@@ -2535,6 +2536,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
 GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
index 1b8fc10087..e4b9a630af 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
@@ -26,7 +26,6 @@  GLIBC_2.18 mq_setattr F
 GLIBC_2.18 mq_timedreceive F
 GLIBC_2.18 mq_timedsend F
 GLIBC_2.18 mq_unlink F
-GLIBC_2.18 shm_open F
 GLIBC_2.18 shm_unlink F
 GLIBC_2.18 timer_create F
 GLIBC_2.18 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index accdc16e0c..054410b405 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -1787,6 +1787,7 @@  GLIBC_2.18 sgetsgent F
 GLIBC_2.18 sgetsgent_r F
 GLIBC_2.18 sgetspent F
 GLIBC_2.18 sgetspent_r F
+GLIBC_2.18 shm_open F
 GLIBC_2.18 shmat F
 GLIBC_2.18 shmctl F
 GLIBC_2.18 shmdt F
@@ -2532,6 +2533,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
 GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
index 1b8fc10087..e4b9a630af 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
@@ -26,7 +26,6 @@  GLIBC_2.18 mq_setattr F
 GLIBC_2.18 mq_timedreceive F
 GLIBC_2.18 mq_timedsend F
 GLIBC_2.18 mq_unlink F
-GLIBC_2.18 shm_open F
 GLIBC_2.18 shm_unlink F
 GLIBC_2.18 timer_create F
 GLIBC_2.18 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 26149e7d3c..c39eec99ee 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -1942,6 +1942,7 @@  GLIBC_2.2 semctl F
 GLIBC_2.2 sendfile F
 GLIBC_2.2 setrlimit64 F
 GLIBC_2.2 setutxent F
+GLIBC_2.2 shm_open F
 GLIBC_2.2 shmctl F
 GLIBC_2.2 sighold F
 GLIBC_2.2 sigignore F
@@ -2530,6 +2531,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
 GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
index c4dd28e3b2..b187230f59 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
@@ -15,7 +15,6 @@  GLIBC_2.2 aio_write F
 GLIBC_2.2 aio_write64 F
 GLIBC_2.2 lio_listio F
 GLIBC_2.2 lio_listio64 F
-GLIBC_2.2 shm_open F
 GLIBC_2.2 shm_unlink F
 GLIBC_2.2 timer_create F
 GLIBC_2.2 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 8f9b7f088d..0344199ff9 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -1940,6 +1940,7 @@  GLIBC_2.2 semctl F
 GLIBC_2.2 sendfile F
 GLIBC_2.2 setrlimit64 F
 GLIBC_2.2 setutxent F
+GLIBC_2.2 shm_open F
 GLIBC_2.2 shmctl F
 GLIBC_2.2 sighold F
 GLIBC_2.2 sigignore F
@@ -2528,6 +2529,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
 GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 57500f91ce..8f7783cb26 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -1939,6 +1939,7 @@  GLIBC_2.2 sem_wait F
 GLIBC_2.2 sendfile F
 GLIBC_2.2 setrlimit64 F
 GLIBC_2.2 setutxent F
+GLIBC_2.2 shm_open F
 GLIBC_2.2 sighold F
 GLIBC_2.2 sigignore F
 GLIBC_2.2 sigqueue F
@@ -2536,6 +2537,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
 GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
index c4dd28e3b2..b187230f59 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
@@ -15,7 +15,6 @@  GLIBC_2.2 aio_write F
 GLIBC_2.2 aio_write64 F
 GLIBC_2.2 lio_listio F
 GLIBC_2.2 lio_listio64 F
-GLIBC_2.2 shm_open F
 GLIBC_2.2 shm_unlink F
 GLIBC_2.2 timer_create F
 GLIBC_2.2 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 485a0121dd..494829a95d 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -1935,6 +1935,7 @@  GLIBC_2.2 sem_wait F
 GLIBC_2.2 sendfile F
 GLIBC_2.2 setrlimit64 F
 GLIBC_2.2 setutxent F
+GLIBC_2.2 shm_open F
 GLIBC_2.2 sighold F
 GLIBC_2.2 sigignore F
 GLIBC_2.2 sigqueue F
@@ -2454,6 +2455,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
 GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
index 1539c1cef9..e62ed45d14 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
@@ -15,7 +15,6 @@  GLIBC_2.2 aio_write F
 GLIBC_2.2 aio_write64 F
 GLIBC_2.2 lio_listio F
 GLIBC_2.2 lio_listio64 F
-GLIBC_2.2 shm_open F
 GLIBC_2.2 shm_unlink F
 GLIBC_2.2 timer_create F
 GLIBC_2.2 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index d07e736980..15236167e9 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -1830,6 +1830,7 @@  GLIBC_2.21 sgetsgent F
 GLIBC_2.21 sgetsgent_r F
 GLIBC_2.21 sgetspent F
 GLIBC_2.21 sgetspent_r F
+GLIBC_2.21 shm_open F
 GLIBC_2.21 shmat F
 GLIBC_2.21 shmctl F
 GLIBC_2.21 shmdt F
@@ -2574,6 +2575,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
 GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
index 2458614125..d9db8e1781 100644
--- a/sysdeps/unix/sysv/linux/nios2/librt.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/librt.abilist
@@ -26,7 +26,6 @@  GLIBC_2.21 mq_setattr F
 GLIBC_2.21 mq_timedreceive F
 GLIBC_2.21 mq_timedsend F
 GLIBC_2.21 mq_unlink F
-GLIBC_2.21 shm_open F
 GLIBC_2.21 shm_unlink F
 GLIBC_2.21 timer_create F
 GLIBC_2.21 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 5a87b36192..5bfa644345 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -2041,6 +2041,7 @@  GLIBC_2.2 scandir64 F
 GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 semctl F
 GLIBC_2.2 setrlimit F
+GLIBC_2.2 shm_open F
 GLIBC_2.2 shmctl F
 GLIBC_2.2 svc_getreq_common F
 GLIBC_2.2 svc_getreq_poll F
@@ -2592,6 +2593,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
 GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
index 463a88a1df..9330ab2679 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
@@ -15,7 +15,6 @@  GLIBC_2.1 aio_write F
 GLIBC_2.1 aio_write64 F
 GLIBC_2.1 lio_listio F
 GLIBC_2.1 lio_listio64 F
-GLIBC_2.2 shm_open F
 GLIBC_2.2 shm_unlink F
 GLIBC_2.2 timer_create F
 GLIBC_2.2 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 413bb1d87a..4d2899b97b 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -2045,6 +2045,7 @@  GLIBC_2.2 scandir64 F
 GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 semctl F
 GLIBC_2.2 setrlimit F
+GLIBC_2.2 shm_open F
 GLIBC_2.2 shmctl F
 GLIBC_2.2 svc_getreq_common F
 GLIBC_2.2 svc_getreq_poll F
@@ -2625,6 +2626,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
 GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 3ff4d977f7..1b03a7b2b2 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -1684,6 +1684,7 @@  GLIBC_2.3 setvbuf F
 GLIBC_2.3 setxattr F
 GLIBC_2.3 sgetspent F
 GLIBC_2.3 sgetspent_r F
+GLIBC_2.3 shm_open F
 GLIBC_2.3 shmat F
 GLIBC_2.3 shmctl F
 GLIBC_2.3 shmdt F
@@ -2362,6 +2363,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
 GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
index 6a5bd96963..ce776089f4 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
@@ -15,7 +15,6 @@  GLIBC_2.3 aio_write F
 GLIBC_2.3 aio_write64 F
 GLIBC_2.3 lio_listio F
 GLIBC_2.3 lio_listio64 F
-GLIBC_2.3 shm_open F
 GLIBC_2.3 shm_unlink F
 GLIBC_2.3 timer_create F
 GLIBC_2.3 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index c2c5c605ac..e69840ef13 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -1871,6 +1871,7 @@  GLIBC_2.17 sgetsgent F
 GLIBC_2.17 sgetsgent_r F
 GLIBC_2.17 sgetspent F
 GLIBC_2.17 sgetspent_r F
+GLIBC_2.17 shm_open F
 GLIBC_2.17 shmat F
 GLIBC_2.17 shmctl F
 GLIBC_2.17 shmdt F
@@ -2661,6 +2662,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
 GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
index 5e81c82a25..7ebb55d15e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
@@ -26,7 +26,6 @@  GLIBC_2.17 mq_setattr F
 GLIBC_2.17 mq_timedreceive F
 GLIBC_2.17 mq_timedsend F
 GLIBC_2.17 mq_unlink F
-GLIBC_2.17 shm_open F
 GLIBC_2.17 shm_unlink F
 GLIBC_2.17 timer_create F
 GLIBC_2.17 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 2abe414bda..77e707990b 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1730,6 +1730,7 @@  GLIBC_2.33 sgetsgent F
 GLIBC_2.33 sgetsgent_r F
 GLIBC_2.33 sgetspent F
 GLIBC_2.33 sgetspent_r F
+GLIBC_2.33 shm_open F
 GLIBC_2.33 shmat F
 GLIBC_2.33 shmctl F
 GLIBC_2.33 shmdt F
@@ -2226,6 +2227,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
 GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
index 8a3f5ed516..1af45783f0 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
@@ -26,7 +26,6 @@  GLIBC_2.33 mq_setattr F
 GLIBC_2.33 mq_timedreceive F
 GLIBC_2.33 mq_timedsend F
 GLIBC_2.33 mq_unlink F
-GLIBC_2.33 shm_open F
 GLIBC_2.33 shm_unlink F
 GLIBC_2.33 timer_create F
 GLIBC_2.33 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 947fc8072d..5eb837832d 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -1777,6 +1777,7 @@  GLIBC_2.27 sgetsgent F
 GLIBC_2.27 sgetsgent_r F
 GLIBC_2.27 sgetspent F
 GLIBC_2.27 sgetspent_r F
+GLIBC_2.27 shm_open F
 GLIBC_2.27 shmat F
 GLIBC_2.27 shmctl F
 GLIBC_2.27 shmdt F
@@ -2426,6 +2427,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
 GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
index bfd262ecc5..51c05877bd 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
@@ -26,7 +26,6 @@  GLIBC_2.27 mq_setattr F
 GLIBC_2.27 mq_timedreceive F
 GLIBC_2.27 mq_timedsend F
 GLIBC_2.27 mq_unlink F
-GLIBC_2.27 shm_open F
 GLIBC_2.27 shm_unlink F
 GLIBC_2.27 timer_create F
 GLIBC_2.27 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 1da934084c..05e5ff3519 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -2039,6 +2039,7 @@  GLIBC_2.2 scandir64 F
 GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 semctl F
 GLIBC_2.2 setrlimit F
+GLIBC_2.2 shm_open F
 GLIBC_2.2 shmctl F
 GLIBC_2.2 svc_getreq_common F
 GLIBC_2.2 svc_getreq_poll F
@@ -2590,6 +2591,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
 GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
index 463a88a1df..9330ab2679 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
@@ -15,7 +15,6 @@  GLIBC_2.1 aio_write F
 GLIBC_2.1 aio_write64 F
 GLIBC_2.1 lio_listio F
 GLIBC_2.1 lio_listio64 F
-GLIBC_2.2 shm_open F
 GLIBC_2.2 shm_unlink F
 GLIBC_2.2 timer_create F
 GLIBC_2.2 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 084b419cf6..bad0a9e3f9 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -1572,6 +1572,7 @@  GLIBC_2.2 setutxent F
 GLIBC_2.2 setvbuf F
 GLIBC_2.2 sgetspent F
 GLIBC_2.2 sgetspent_r F
+GLIBC_2.2 shm_open F
 GLIBC_2.2 shmat F
 GLIBC_2.2 shmctl F
 GLIBC_2.2 shmdt F
@@ -2399,6 +2400,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
 GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
index 5905498a48..269e72621b 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
@@ -15,7 +15,6 @@  GLIBC_2.2 aio_write F
 GLIBC_2.2 aio_write64 F
 GLIBC_2.2 lio_listio F
 GLIBC_2.2 lio_listio64 F
-GLIBC_2.2 shm_open F
 GLIBC_2.2 shm_unlink F
 GLIBC_2.2 timer_create F
 GLIBC_2.2 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 240e315a05..e7b48728bb 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -1559,6 +1559,7 @@  GLIBC_2.2 setutxent F
 GLIBC_2.2 setvbuf F
 GLIBC_2.2 sgetspent F
 GLIBC_2.2 sgetspent_r F
+GLIBC_2.2 shm_open F
 GLIBC_2.2 shmat F
 GLIBC_2.2 shmctl F
 GLIBC_2.2 shmdt F
@@ -2445,6 +2446,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
 GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
index 463a88a1df..9330ab2679 100644
--- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
@@ -15,7 +15,6 @@  GLIBC_2.1 aio_write F
 GLIBC_2.1 aio_write64 F
 GLIBC_2.1 lio_listio F
 GLIBC_2.1 lio_listio64 F
-GLIBC_2.2 shm_open F
 GLIBC_2.2 shm_unlink F
 GLIBC_2.2 timer_create F
 GLIBC_2.2 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index c8b6e4745e..60c84522df 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -1559,6 +1559,7 @@  GLIBC_2.2 setutxent F
 GLIBC_2.2 setvbuf F
 GLIBC_2.2 sgetspent F
 GLIBC_2.2 sgetspent_r F
+GLIBC_2.2 shm_open F
 GLIBC_2.2 shmat F
 GLIBC_2.2 shmctl F
 GLIBC_2.2 shmdt F
@@ -2442,6 +2443,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
 GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
index 463a88a1df..9330ab2679 100644
--- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
@@ -15,7 +15,6 @@  GLIBC_2.1 aio_write F
 GLIBC_2.1 aio_write64 F
 GLIBC_2.1 lio_listio F
 GLIBC_2.1 lio_listio64 F
-GLIBC_2.2 shm_open F
 GLIBC_2.2 shm_unlink F
 GLIBC_2.2 timer_create F
 GLIBC_2.2 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 3ed972b8c9..4efddd8db9 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -2034,6 +2034,7 @@  GLIBC_2.2 ruserok_af F
 GLIBC_2.2 scandir64 F
 GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 semctl F
+GLIBC_2.2 shm_open F
 GLIBC_2.2 shmctl F
 GLIBC_2.2 svc_getreq_common F
 GLIBC_2.2 svc_getreq_poll F
@@ -2583,6 +2584,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
 GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
index fb2769e87b..fa286246e4 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
@@ -15,7 +15,6 @@  GLIBC_2.1 aio_write F
 GLIBC_2.1 aio_write64 F
 GLIBC_2.1 lio_listio F
 GLIBC_2.1 lio_listio64 F
-GLIBC_2.2 shm_open F
 GLIBC_2.2 shm_unlink F
 GLIBC_2.2 timer_create F
 GLIBC_2.2 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 27b3443394..b19426e2e3 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -1602,6 +1602,7 @@  GLIBC_2.2 setutxent F
 GLIBC_2.2 setvbuf F
 GLIBC_2.2 sgetspent F
 GLIBC_2.2 sgetspent_r F
+GLIBC_2.2 shm_open F
 GLIBC_2.2 shmat F
 GLIBC_2.2 shmctl F
 GLIBC_2.2 shmdt F
@@ -2419,6 +2420,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
 GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
index 71f86e03ce..bfa53df5cc 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
@@ -15,7 +15,6 @@  GLIBC_2.1 aio_write F
 GLIBC_2.1 aio_write64 F
 GLIBC_2.1 lio_listio F
 GLIBC_2.1 lio_listio64 F
-GLIBC_2.2 shm_open F
 GLIBC_2.2 shm_unlink F
 GLIBC_2.2 timer_create F
 GLIBC_2.2 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 2e5c5957b0..e73bc2acea 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -1569,6 +1569,7 @@  GLIBC_2.2.5 setutxent F
 GLIBC_2.2.5 setvbuf F
 GLIBC_2.2.5 sgetspent F
 GLIBC_2.2.5 sgetspent_r F
+GLIBC_2.2.5 shm_open F
 GLIBC_2.2.5 shmat F
 GLIBC_2.2.5 shmctl F
 GLIBC_2.2.5 shmdt F
@@ -2377,6 +2378,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
 GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
index 95e3f22daa..ec08fcfcb2 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
@@ -15,7 +15,6 @@  GLIBC_2.2.5 aio_write F
 GLIBC_2.2.5 aio_write64 F
 GLIBC_2.2.5 lio_listio F
 GLIBC_2.2.5 lio_listio64 F
-GLIBC_2.2.5 shm_open F
 GLIBC_2.2.5 shm_unlink F
 GLIBC_2.2.5 timer_create F
 GLIBC_2.2.5 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 0b0d1ac43f..4116101975 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -1789,6 +1789,7 @@  GLIBC_2.16 sgetsgent F
 GLIBC_2.16 sgetsgent_r F
 GLIBC_2.16 sgetspent F
 GLIBC_2.16 sgetspent_r F
+GLIBC_2.16 shm_open F
 GLIBC_2.16 shmat F
 GLIBC_2.16 shmctl F
 GLIBC_2.16 shmdt F
@@ -2480,6 +2481,7 @@  GLIBC_2.34 sem_timedwait F
 GLIBC_2.34 sem_trywait F
 GLIBC_2.34 sem_unlink F
 GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
 GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
index 66969fb9ab..1e40b05c29 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
@@ -26,7 +26,6 @@  GLIBC_2.16 mq_setattr F
 GLIBC_2.16 mq_timedreceive F
 GLIBC_2.16 mq_timedsend F
 GLIBC_2.16 mq_unlink F
-GLIBC_2.16 shm_open F
 GLIBC_2.16 shm_unlink F
 GLIBC_2.16 timer_create F
 GLIBC_2.16 timer_delete F