diff mbox series

[05/35] rt: Move shm_open into libc

Message ID 97e6b6026f744af3695f11e65e0886452217bab3.1622761828.git.fweimer@redhat.com
State New
Headers show
Series Linux: Move librt into libc | expand

Commit Message

Florian Weimer June 3, 2021, 11:15 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.
---
 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 ++
 .../unix/sysv/linux/mips/mips64/librt.abilist   |  1 -
 .../sysv/linux/mips/mips64/n32/libc.abilist     |  2 ++
 .../sysv/linux/mips/mips64/n64/libc.abilist     |  2 ++
 sysdeps/unix/sysv/linux/nios2/libc.abilist      |  2 ++
 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 -
 66 files changed, 86 insertions(+), 40 deletions(-)

Comments

Adhemerval Zanella June 17, 2021, 11:12 a.m. UTC | #1
On 03/06/2021 20:15, Florian Weimer via Libc-alpha wrote:
> 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.

LGTM, thanks.

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 ++
>  .../unix/sysv/linux/mips/mips64/librt.abilist   |  1 -
>  .../sysv/linux/mips/mips64/n32/libc.abilist     |  2 ++
>  .../sysv/linux/mips/mips64/n64/libc.abilist     |  2 ++
>  sysdeps/unix/sysv/linux/nios2/libc.abilist      |  2 ++
>  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 -
>  66 files changed, 86 insertions(+), 40 deletions(-)
> 
> diff --git a/rt/Makefile b/rt/Makefile
> index baec51b40a..0628ae8aa8 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 \

Ok.

> 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;

Ok.

> 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

Ok.

> 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 bee807a6f8..11a93b4f47 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
> @@ -2463,6 +2464,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 43dd600039..622f5ecdb1 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
> @@ -2556,6 +2557,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 033ed08877..0c7b210b97 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
> @@ -2222,6 +2223,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 f66ee7aab1..855501dd12 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -319,6 +319,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
> @@ -2023,6 +2024,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 3c0647b251..fc89b71b2b 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> @@ -25,7 +25,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 3798b32830..6bdb09d974 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -316,6 +316,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
> @@ -2020,6 +2021,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 3c0647b251..fc89b71b2b 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> @@ -25,7 +25,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 ba53b61ea6..9188a21281 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
> @@ -2406,6 +2407,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 c6690ef7c1..31482a39b6 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 9783504c93..038a2b432e 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
> @@ -2360,6 +2361,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 bb03781dcc..fc899622c3 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 c223c360ff..113202ad27 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
> @@ -2544,6 +2545,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 bb03781dcc..fc899622c3 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 ea2be9ead2..7b2e27901a 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
> @@ -2396,6 +2397,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 3cb4279b41..9544632fa0 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -320,6 +320,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
> @@ -2003,6 +2004,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 3c0647b251..fc89b71b2b 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> @@ -25,7 +25,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 94a718ff58..0dbccbd651 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
> @@ -2487,6 +2488,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 bb03781dcc..fc899622c3 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 5823bf18ef..33c00287a5 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
> @@ -2457,6 +2458,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 889dfbc0ee..4fd9af2b2d 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 723c4bcb09..f0a3bd844b 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
> @@ -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/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> index 889dfbc0ee..4fd9af2b2d 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 f67da8f37a..cfb82eb1b9 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
> @@ -2452,6 +2453,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 1539c1cef9..e62ed45d14 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 e44a6be8aa..a00a18a8bb 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
> @@ -2450,6 +2451,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/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
> index 1539c1cef9..e62ed45d14 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/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/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index 21cbe39166..22f37a4d5e 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
> @@ -2458,6 +2459,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/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index a271342813..5df30910b8 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
> @@ -2452,6 +2453,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/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index 9429209215..5448a51818 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
> @@ -2496,6 +2497,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 b4ae7a2dc2..77170f30d8 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 eaca8e4b0c..64d8eecd31 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
> @@ -2514,6 +2515,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 bb03781dcc..fc899622c3 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 c754a181da..14b5eb792a 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
> @@ -2547,6 +2548,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 98bd6bea39..6fc6134b68 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
> @@ -2360,6 +2361,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 d27f7448ed..1bfa23792e 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
> @@ -2659,6 +2660,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 33c9f98bf5..89d2efa8c3 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
> @@ -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/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 9902603cd4..1d5ed0960f 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
> @@ -2424,6 +2425,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 963e27571d..4b7c3ddda8 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
> @@ -2512,6 +2513,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 bb03781dcc..fc899622c3 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 17c56a2658..da934580c3 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
> @@ -2397,6 +2398,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 456abfb5bb..eca39dbda8 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
> @@ -2367,6 +2368,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 bb03781dcc..fc899622c3 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 45e59f1821..662e99dec5 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
> @@ -2364,6 +2365,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 bb03781dcc..fc899622c3 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 734e1f38b6..749ea6eb02 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
> @@ -2505,6 +2506,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 38f0aad791..355a98faa0 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 9edf5ff234..6875623afc 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
> @@ -2417,6 +2418,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 bc8535fbed..c79b6c1006 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
> @@ -2375,6 +2376,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 669cc664f5..bf02471db3 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
> @@ -2478,6 +2479,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
> 

Ok.
Adhemerval Zanella June 17, 2021, 12:25 p.m. UTC | #2
On 03/06/2021 20:15, Florian Weimer via Libc-alpha wrote:
> 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.

LGTM, thanks.

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 ++
>  .../unix/sysv/linux/mips/mips64/librt.abilist   |  1 -
>  .../sysv/linux/mips/mips64/n32/libc.abilist     |  2 ++
>  .../sysv/linux/mips/mips64/n64/libc.abilist     |  2 ++
>  sysdeps/unix/sysv/linux/nios2/libc.abilist      |  2 ++
>  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 -
>  66 files changed, 86 insertions(+), 40 deletions(-)
> 
> diff --git a/rt/Makefile b/rt/Makefile
> index baec51b40a..0628ae8aa8 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 bee807a6f8..11a93b4f47 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
> @@ -2463,6 +2464,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 43dd600039..622f5ecdb1 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
> @@ -2556,6 +2557,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 033ed08877..0c7b210b97 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
> @@ -2222,6 +2223,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 f66ee7aab1..855501dd12 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -319,6 +319,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
> @@ -2023,6 +2024,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 3c0647b251..fc89b71b2b 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> @@ -25,7 +25,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 3798b32830..6bdb09d974 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -316,6 +316,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
> @@ -2020,6 +2021,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 3c0647b251..fc89b71b2b 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> @@ -25,7 +25,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 ba53b61ea6..9188a21281 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
> @@ -2406,6 +2407,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 c6690ef7c1..31482a39b6 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 9783504c93..038a2b432e 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
> @@ -2360,6 +2361,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 bb03781dcc..fc899622c3 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 c223c360ff..113202ad27 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
> @@ -2544,6 +2545,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 bb03781dcc..fc899622c3 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 ea2be9ead2..7b2e27901a 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
> @@ -2396,6 +2397,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 3cb4279b41..9544632fa0 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -320,6 +320,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
> @@ -2003,6 +2004,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 3c0647b251..fc89b71b2b 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> @@ -25,7 +25,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 94a718ff58..0dbccbd651 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
> @@ -2487,6 +2488,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 bb03781dcc..fc899622c3 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 5823bf18ef..33c00287a5 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
> @@ -2457,6 +2458,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 889dfbc0ee..4fd9af2b2d 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 723c4bcb09..f0a3bd844b 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
> @@ -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/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> index 889dfbc0ee..4fd9af2b2d 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 f67da8f37a..cfb82eb1b9 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
> @@ -2452,6 +2453,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 1539c1cef9..e62ed45d14 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 e44a6be8aa..a00a18a8bb 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
> @@ -2450,6 +2451,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/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
> index 1539c1cef9..e62ed45d14 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/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/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index 21cbe39166..22f37a4d5e 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
> @@ -2458,6 +2459,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/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index a271342813..5df30910b8 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
> @@ -2452,6 +2453,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/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index 9429209215..5448a51818 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
> @@ -2496,6 +2497,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 b4ae7a2dc2..77170f30d8 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 eaca8e4b0c..64d8eecd31 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
> @@ -2514,6 +2515,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 bb03781dcc..fc899622c3 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 c754a181da..14b5eb792a 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
> @@ -2547,6 +2548,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 98bd6bea39..6fc6134b68 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
> @@ -2360,6 +2361,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 d27f7448ed..1bfa23792e 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
> @@ -2659,6 +2660,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 33c9f98bf5..89d2efa8c3 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
> @@ -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/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 9902603cd4..1d5ed0960f 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
> @@ -2424,6 +2425,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 963e27571d..4b7c3ddda8 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
> @@ -2512,6 +2513,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 bb03781dcc..fc899622c3 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 17c56a2658..da934580c3 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
> @@ -2397,6 +2398,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 456abfb5bb..eca39dbda8 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
> @@ -2367,6 +2368,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 bb03781dcc..fc899622c3 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 45e59f1821..662e99dec5 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
> @@ -2364,6 +2365,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 bb03781dcc..fc899622c3 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 734e1f38b6..749ea6eb02 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
> @@ -2505,6 +2506,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 38f0aad791..355a98faa0 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 9edf5ff234..6875623afc 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
> @@ -2417,6 +2418,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 bc8535fbed..c79b6c1006 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
> @@ -2375,6 +2376,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 669cc664f5..bf02471db3 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
> @@ -2478,6 +2479,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
>
diff mbox series

Patch

diff --git a/rt/Makefile b/rt/Makefile
index baec51b40a..0628ae8aa8 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 bee807a6f8..11a93b4f47 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
@@ -2463,6 +2464,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 43dd600039..622f5ecdb1 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
@@ -2556,6 +2557,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 033ed08877..0c7b210b97 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
@@ -2222,6 +2223,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 f66ee7aab1..855501dd12 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -319,6 +319,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
@@ -2023,6 +2024,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 3c0647b251..fc89b71b2b 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -25,7 +25,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 3798b32830..6bdb09d974 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -316,6 +316,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
@@ -2020,6 +2021,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 3c0647b251..fc89b71b2b 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -25,7 +25,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 ba53b61ea6..9188a21281 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
@@ -2406,6 +2407,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 c6690ef7c1..31482a39b6 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 9783504c93..038a2b432e 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
@@ -2360,6 +2361,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 bb03781dcc..fc899622c3 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 c223c360ff..113202ad27 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
@@ -2544,6 +2545,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 bb03781dcc..fc899622c3 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 ea2be9ead2..7b2e27901a 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
@@ -2396,6 +2397,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 3cb4279b41..9544632fa0 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -320,6 +320,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
@@ -2003,6 +2004,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 3c0647b251..fc89b71b2b 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -25,7 +25,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 94a718ff58..0dbccbd651 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
@@ -2487,6 +2488,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 bb03781dcc..fc899622c3 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 5823bf18ef..33c00287a5 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
@@ -2457,6 +2458,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 889dfbc0ee..4fd9af2b2d 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 723c4bcb09..f0a3bd844b 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
@@ -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/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
index 889dfbc0ee..4fd9af2b2d 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 f67da8f37a..cfb82eb1b9 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
@@ -2452,6 +2453,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 1539c1cef9..e62ed45d14 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 e44a6be8aa..a00a18a8bb 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
@@ -2450,6 +2451,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/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
index 1539c1cef9..e62ed45d14 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/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/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 21cbe39166..22f37a4d5e 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
@@ -2458,6 +2459,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/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index a271342813..5df30910b8 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
@@ -2452,6 +2453,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/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 9429209215..5448a51818 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
@@ -2496,6 +2497,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 b4ae7a2dc2..77170f30d8 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 eaca8e4b0c..64d8eecd31 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
@@ -2514,6 +2515,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 bb03781dcc..fc899622c3 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 c754a181da..14b5eb792a 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
@@ -2547,6 +2548,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 98bd6bea39..6fc6134b68 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
@@ -2360,6 +2361,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 d27f7448ed..1bfa23792e 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
@@ -2659,6 +2660,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 33c9f98bf5..89d2efa8c3 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
@@ -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/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 9902603cd4..1d5ed0960f 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
@@ -2424,6 +2425,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 963e27571d..4b7c3ddda8 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
@@ -2512,6 +2513,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 bb03781dcc..fc899622c3 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 17c56a2658..da934580c3 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
@@ -2397,6 +2398,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 456abfb5bb..eca39dbda8 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
@@ -2367,6 +2368,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 bb03781dcc..fc899622c3 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 45e59f1821..662e99dec5 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
@@ -2364,6 +2365,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 bb03781dcc..fc899622c3 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 734e1f38b6..749ea6eb02 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
@@ -2505,6 +2506,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 38f0aad791..355a98faa0 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 9edf5ff234..6875623afc 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
@@ -2417,6 +2418,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 bc8535fbed..c79b6c1006 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
@@ -2375,6 +2376,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 669cc664f5..bf02471db3 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
@@ -2478,6 +2479,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