[04/11] nptl: Move sem_close, sem_open into libc

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

Commit Message

Florian Weimer May 3, 2021, 1:51 p.m. UTC
  The symbols were moved using move-symbol-to-libc.py.

Both functions are moved at the same time because they depend
on internal functions in sysdeps/pthread/sem_routines.c, which
are moved in this commit as well.  Additional hidden prototypes
are required to avoid check-localplt failures.
---
 include/shm-directory.h                       |  1 +
 include/stdlib.h                              |  1 +
 misc/mktemp.c                                 |  1 +
 nptl/Makefile                                 |  6 +--
 nptl/Versions                                 |  8 +++-
 posix/shm-directory.c                         |  1 +
 sysdeps/pthread/sem_close.c                   | 10 ++++-
 sysdeps/pthread/sem_open.c                    | 40 +++++++++++++------
 sysdeps/pthread/sem_routines.c                | 10 ++---
 sysdeps/unix/sysv/linux/aarch64/libc.abilist  |  4 ++
 .../sysv/linux/aarch64/libpthread.abilist     |  2 -
 sysdeps/unix/sysv/linux/alpha/libc.abilist    |  4 ++
 .../unix/sysv/linux/alpha/libpthread.abilist  |  2 -
 sysdeps/unix/sysv/linux/arc/libc.abilist      |  4 ++
 .../unix/sysv/linux/arc/libpthread.abilist    |  2 -
 sysdeps/unix/sysv/linux/arm/be/libc.abilist   |  4 ++
 .../unix/sysv/linux/arm/be/libpthread.abilist |  2 -
 sysdeps/unix/sysv/linux/arm/le/libc.abilist   |  4 ++
 .../unix/sysv/linux/arm/le/libpthread.abilist |  2 -
 sysdeps/unix/sysv/linux/csky/libc.abilist     |  4 ++
 .../unix/sysv/linux/csky/libpthread.abilist   |  2 -
 sysdeps/unix/sysv/linux/hppa/libc.abilist     |  4 ++
 .../unix/sysv/linux/hppa/libpthread.abilist   |  2 -
 sysdeps/unix/sysv/linux/i386/libc.abilist     |  4 ++
 .../unix/sysv/linux/i386/libpthread.abilist   |  2 -
 sysdeps/unix/sysv/linux/ia64/libc.abilist     |  4 ++
 .../unix/sysv/linux/ia64/libpthread.abilist   |  2 -
 .../sysv/linux/m68k/coldfire/libc.abilist     |  4 ++
 .../linux/m68k/coldfire/libpthread.abilist    |  2 -
 .../unix/sysv/linux/m68k/m680x0/libc.abilist  |  4 ++
 .../sysv/linux/m68k/m680x0/libpthread.abilist |  2 -
 .../sysv/linux/microblaze/be/libc.abilist     |  4 ++
 .../linux/microblaze/be/libpthread.abilist    |  2 -
 .../sysv/linux/microblaze/le/libc.abilist     |  4 ++
 .../linux/microblaze/le/libpthread.abilist    |  2 -
 .../sysv/linux/mips/mips32/fpu/libc.abilist   |  4 ++
 .../sysv/linux/mips/mips32/libpthread.abilist |  2 -
 .../sysv/linux/mips/mips32/nofpu/libc.abilist |  4 ++
 .../sysv/linux/mips/mips64/libpthread.abilist |  2 -
 .../sysv/linux/mips/mips64/n32/libc.abilist   |  4 ++
 .../sysv/linux/mips/mips64/n64/libc.abilist   |  4 ++
 sysdeps/unix/sysv/linux/nios2/libc.abilist    |  4 ++
 .../unix/sysv/linux/nios2/libpthread.abilist  |  2 -
 .../linux/powerpc/powerpc32/fpu/libc.abilist  |  4 ++
 .../powerpc/powerpc32/libpthread.abilist      |  2 -
 .../powerpc/powerpc32/nofpu/libc.abilist      |  4 ++
 .../linux/powerpc/powerpc64/be/libc.abilist   |  4 ++
 .../powerpc/powerpc64/be/libpthread.abilist   |  2 -
 .../linux/powerpc/powerpc64/le/libc.abilist   |  4 ++
 .../powerpc/powerpc64/le/libpthread.abilist   |  2 -
 .../unix/sysv/linux/riscv/rv32/libc.abilist   |  4 ++
 .../sysv/linux/riscv/rv32/libpthread.abilist  |  2 -
 .../unix/sysv/linux/riscv/rv64/libc.abilist   |  4 ++
 .../sysv/linux/riscv/rv64/libpthread.abilist  |  2 -
 .../unix/sysv/linux/s390/s390-32/libc.abilist |  4 ++
 .../linux/s390/s390-32/libpthread.abilist     |  2 -
 .../unix/sysv/linux/s390/s390-64/libc.abilist |  4 ++
 .../linux/s390/s390-64/libpthread.abilist     |  2 -
 sysdeps/unix/sysv/linux/sh/be/libc.abilist    |  4 ++
 .../unix/sysv/linux/sh/be/libpthread.abilist  |  2 -
 sysdeps/unix/sysv/linux/sh/le/libc.abilist    |  4 ++
 .../unix/sysv/linux/sh/le/libpthread.abilist  |  2 -
 .../sysv/linux/sparc/sparc32/libc.abilist     |  4 ++
 .../linux/sparc/sparc32/libpthread.abilist    |  2 -
 .../sysv/linux/sparc/sparc64/libc.abilist     |  4 ++
 .../linux/sparc/sparc64/libpthread.abilist    |  2 -
 .../unix/sysv/linux/x86_64/64/libc.abilist    |  4 ++
 .../sysv/linux/x86_64/64/libpthread.abilist   |  2 -
 .../unix/sysv/linux/x86_64/x32/libc.abilist   |  4 ++
 .../sysv/linux/x86_64/x32/libpthread.abilist  |  2 -
 70 files changed, 182 insertions(+), 82 deletions(-)
  

Comments

Adhemerval Zanella May 5, 2021, 2:33 p.m. UTC | #1
On 03/05/2021 10:51, Florian Weimer via Libc-alpha wrote:
> The symbols were moved using move-symbol-to-libc.py.
> 
> Both functions are moved at the same time because they depend
> on internal functions in sysdeps/pthread/sem_routines.c, which
> are moved in this commit as well.  Additional hidden prototypes
> are required to avoid check-localplt failures.

LGTM, with some small nits below.

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

> ---
>  include/shm-directory.h                       |  1 +
>  include/stdlib.h                              |  1 +
>  misc/mktemp.c                                 |  1 +
>  nptl/Makefile                                 |  6 +--
>  nptl/Versions                                 |  8 +++-
>  posix/shm-directory.c                         |  1 +
>  sysdeps/pthread/sem_close.c                   | 10 ++++-
>  sysdeps/pthread/sem_open.c                    | 40 +++++++++++++------
>  sysdeps/pthread/sem_routines.c                | 10 ++---
>  sysdeps/unix/sysv/linux/aarch64/libc.abilist  |  4 ++
>  .../sysv/linux/aarch64/libpthread.abilist     |  2 -
>  sysdeps/unix/sysv/linux/alpha/libc.abilist    |  4 ++
>  .../unix/sysv/linux/alpha/libpthread.abilist  |  2 -
>  sysdeps/unix/sysv/linux/arc/libc.abilist      |  4 ++
>  .../unix/sysv/linux/arc/libpthread.abilist    |  2 -
>  sysdeps/unix/sysv/linux/arm/be/libc.abilist   |  4 ++
>  .../unix/sysv/linux/arm/be/libpthread.abilist |  2 -
>  sysdeps/unix/sysv/linux/arm/le/libc.abilist   |  4 ++
>  .../unix/sysv/linux/arm/le/libpthread.abilist |  2 -
>  sysdeps/unix/sysv/linux/csky/libc.abilist     |  4 ++
>  .../unix/sysv/linux/csky/libpthread.abilist   |  2 -
>  sysdeps/unix/sysv/linux/hppa/libc.abilist     |  4 ++
>  .../unix/sysv/linux/hppa/libpthread.abilist   |  2 -
>  sysdeps/unix/sysv/linux/i386/libc.abilist     |  4 ++
>  .../unix/sysv/linux/i386/libpthread.abilist   |  2 -
>  sysdeps/unix/sysv/linux/ia64/libc.abilist     |  4 ++
>  .../unix/sysv/linux/ia64/libpthread.abilist   |  2 -
>  .../sysv/linux/m68k/coldfire/libc.abilist     |  4 ++
>  .../linux/m68k/coldfire/libpthread.abilist    |  2 -
>  .../unix/sysv/linux/m68k/m680x0/libc.abilist  |  4 ++
>  .../sysv/linux/m68k/m680x0/libpthread.abilist |  2 -
>  .../sysv/linux/microblaze/be/libc.abilist     |  4 ++
>  .../linux/microblaze/be/libpthread.abilist    |  2 -
>  .../sysv/linux/microblaze/le/libc.abilist     |  4 ++
>  .../linux/microblaze/le/libpthread.abilist    |  2 -
>  .../sysv/linux/mips/mips32/fpu/libc.abilist   |  4 ++
>  .../sysv/linux/mips/mips32/libpthread.abilist |  2 -
>  .../sysv/linux/mips/mips32/nofpu/libc.abilist |  4 ++
>  .../sysv/linux/mips/mips64/libpthread.abilist |  2 -
>  .../sysv/linux/mips/mips64/n32/libc.abilist   |  4 ++
>  .../sysv/linux/mips/mips64/n64/libc.abilist   |  4 ++
>  sysdeps/unix/sysv/linux/nios2/libc.abilist    |  4 ++
>  .../unix/sysv/linux/nios2/libpthread.abilist  |  2 -
>  .../linux/powerpc/powerpc32/fpu/libc.abilist  |  4 ++
>  .../powerpc/powerpc32/libpthread.abilist      |  2 -
>  .../powerpc/powerpc32/nofpu/libc.abilist      |  4 ++
>  .../linux/powerpc/powerpc64/be/libc.abilist   |  4 ++
>  .../powerpc/powerpc64/be/libpthread.abilist   |  2 -
>  .../linux/powerpc/powerpc64/le/libc.abilist   |  4 ++
>  .../powerpc/powerpc64/le/libpthread.abilist   |  2 -
>  .../unix/sysv/linux/riscv/rv32/libc.abilist   |  4 ++
>  .../sysv/linux/riscv/rv32/libpthread.abilist  |  2 -
>  .../unix/sysv/linux/riscv/rv64/libc.abilist   |  4 ++
>  .../sysv/linux/riscv/rv64/libpthread.abilist  |  2 -
>  .../unix/sysv/linux/s390/s390-32/libc.abilist |  4 ++
>  .../linux/s390/s390-32/libpthread.abilist     |  2 -
>  .../unix/sysv/linux/s390/s390-64/libc.abilist |  4 ++
>  .../linux/s390/s390-64/libpthread.abilist     |  2 -
>  sysdeps/unix/sysv/linux/sh/be/libc.abilist    |  4 ++
>  .../unix/sysv/linux/sh/be/libpthread.abilist  |  2 -
>  sysdeps/unix/sysv/linux/sh/le/libc.abilist    |  4 ++
>  .../unix/sysv/linux/sh/le/libpthread.abilist  |  2 -
>  .../sysv/linux/sparc/sparc32/libc.abilist     |  4 ++
>  .../linux/sparc/sparc32/libpthread.abilist    |  2 -
>  .../sysv/linux/sparc/sparc64/libc.abilist     |  4 ++
>  .../linux/sparc/sparc64/libpthread.abilist    |  2 -
>  .../unix/sysv/linux/x86_64/64/libc.abilist    |  4 ++
>  .../sysv/linux/x86_64/64/libpthread.abilist   |  2 -
>  .../unix/sysv/linux/x86_64/x32/libc.abilist   |  4 ++
>  .../sysv/linux/x86_64/x32/libpthread.abilist  |  2 -
>  70 files changed, 182 insertions(+), 82 deletions(-)
> 
> diff --git a/include/shm-directory.h b/include/shm-directory.h
> index 1d3ffb6137..25e9484a5d 100644
> --- a/include/shm-directory.h
> +++ b/include/shm-directory.h
> @@ -37,5 +37,6 @@ struct shmdir_name
>     SEM_PREFIX is true.  */
>  int __shm_get_name (struct shmdir_name *result, const char *name,
>  		    bool sem_prefix);
> +libc_hidden_proto (__shm_get_name)
>  
>  #endif  /* shm-directory.h */
> diff --git a/include/stdlib.h b/include/stdlib.h
> index cdbdbf310d..e2453c1896 100644
> --- a/include/stdlib.h
> +++ b/include/stdlib.h
> @@ -91,6 +91,7 @@ extern int __setenv (const char *__name, const char *__value, int __replace)
>  extern int __unsetenv (const char *__name) attribute_hidden;
>  extern int __clearenv (void) attribute_hidden;
>  extern char *__mktemp (char *__template) __THROW __nonnull ((1));
> +libc_hidden_proto (__mktemp)
>  extern char *__canonicalize_file_name (const char *__name);
>  extern char *__realpath (const char *__name, char *__resolved);
>  libc_hidden_proto (__realpath)
> diff --git a/misc/mktemp.c b/misc/mktemp.c
> index 92bb121ddf..07f195f845 100644
> --- a/misc/mktemp.c
> +++ b/misc/mktemp.c
> @@ -30,6 +30,7 @@ __mktemp (char *template)
>  
>    return template;
>  }
> +libc_hidden_def (__mktemp)
>  weak_alias (__mktemp, mktemp)
>  
>  link_warning (mktemp, "the use of `mktemp' is dangerous, "
> diff --git a/nptl/Makefile b/nptl/Makefile
> index 66fd90049e..ab24222c1d 100644
> --- a/nptl/Makefile
> +++ b/nptl/Makefile
> @@ -151,6 +151,9 @@ routines = \
>    pthread_testcancel \
>    pthread_yield \
>    sem_clockwait \
> +  sem_close \
> +  sem_open \
> +  sem_routines \
>    tpp \
>    unwind \
>  
> @@ -202,13 +205,10 @@ libpthread-routines = \
>    pthread_sigqueue \
>    pthread_timedjoin \
>    pthread_tryjoin \
> -  sem_close \
>    sem_destroy \
>    sem_getvalue \
>    sem_init \
> -  sem_open \
>    sem_post \
> -  sem_routines \
>    sem_timedwait \
>    sem_unlink \
>    sem_wait \
> diff --git a/nptl/Versions b/nptl/Versions
> index 97567b6354..4a9e5a0305 100644
> --- a/nptl/Versions
> +++ b/nptl/Versions
> @@ -81,6 +81,10 @@ libc {
>      pthread_rwlockattr_setkind_np;
>      pthread_rwlockattr_setpshared;
>    }
> +  GLIBC_2.1.1 {
> +    sem_close;
> +    sem_open;
> +  }
>    GLIBC_2.2 {
>      __pthread_rwlock_destroy;
>      __pthread_rwlock_init;
> @@ -249,6 +253,8 @@ libc {
>      pthread_spin_unlock;
>      pthread_testcancel;
>      sem_clockwait;
> +    sem_close;
> +    sem_open;
>      thrd_exit;
>      tss_create;
>      tss_delete;
> @@ -341,8 +347,6 @@ libpthread {
>    }
>  
>    GLIBC_2.1.1 {
> -    sem_close;
> -    sem_open;
>      sem_unlink;
>    }
>  
> diff --git a/posix/shm-directory.c b/posix/shm-directory.c
> index c06bf96aa7..5dd640ebd0 100644
> --- a/posix/shm-directory.c
> +++ b/posix/shm-directory.c
> @@ -42,5 +42,6 @@ __shm_get_name (struct shmdir_name *result, const char *name, bool sem_prefix)
>      return -1;
>    return 0;
>  }
> +libc_hidden_def (__shm_get_name)
>  
>  #endif
> diff --git a/sysdeps/pthread/sem_close.c b/sysdeps/pthread/sem_close.c
> index 6649196cac..212848f745 100644
> --- a/sysdeps/pthread/sem_close.c
> +++ b/sysdeps/pthread/sem_close.c
> @@ -21,7 +21,7 @@
>  #include <sem_routines.h>
>  
>  int
> -sem_close (sem_t *sem)
> +__sem_close (sem_t *sem)
>  {
>    if (!__sem_remove_mapping (sem))
>      {
> @@ -31,3 +31,11 @@ sem_close (sem_t *sem)
>  
>    return 0;
>  }
> +#if PTHREAD_IN_LIBC
> +versioned_symbol (libc, __sem_close, sem_close, GLIBC_2_34);
> +# if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_1_1, GLIBC_2_34)
> +compat_symbol (libpthread, __sem_close, sem_close, GLIBC_2_1_1);
> +# endif
> +#else /* !PTHREAD_IN_LIBC */
> +strong_alias (__sem_close, sem_close)
> +#endif
> diff --git a/sysdeps/pthread/sem_open.c b/sysdeps/pthread/sem_open.c
> index 0265abc45b..0185659fb9 100644
> --- a/sysdeps/pthread/sem_open.c
> +++ b/sysdeps/pthread/sem_open.c
> @@ -27,8 +27,14 @@
>  #include <futex-internal.h>
>  #include <libc-lock.h>
>  
> +#if !PTHREAD_IN_LIBC
> +/* The private names are not exported from libc.  */
> +# define __link link
> +# define __unlink unlink
> +#endif
> +
>  sem_t *
> -sem_open (const char *name, int oflag, ...)
> +__sem_open (const char *name, int oflag, ...)
>  {
>    int fd;
>    sem_t *result;
> @@ -59,8 +65,8 @@ sem_open (const char *name, int oflag, ...)
>    if ((oflag & O_CREAT) == 0 || (oflag & O_EXCL) == 0)
>      {
>      try_again:
> -      fd = open (dirname.name,
> -		 (oflag & ~(O_CREAT|O_ACCMODE)) | O_NOFOLLOW | O_RDWR);
> +      fd = __open (dirname.name,
> +		   (oflag & ~(O_CREAT|O_ACCMODE)) | O_NOFOLLOW | O_RDWR);
>  
>        if (fd == -1)
>  	{
> @@ -127,7 +133,7 @@ sem_open (const char *name, int oflag, ...)
>  	    }
>  
>  	  /* Open the file.  Make sure we do not overwrite anything.  */
> -	  fd = open (tmpfname, O_RDWR | O_CREAT | O_EXCL, mode);
> +	  fd = __open (tmpfname, O_RDWR | O_CREAT | O_EXCL, mode);
>  	  if (fd == -1)
>  	    {
>  	      if (errno == EEXIST)
> @@ -154,15 +160,15 @@ sem_open (const char *name, int oflag, ...)
>        if (TEMP_FAILURE_RETRY (write (fd, &sem.initsem, sizeof (sem_t)))
>  	  == sizeof (sem_t)
>  	  /* Map the sem_t structure from the file.  */
> -	  && (result = (sem_t *) mmap (NULL, sizeof (sem_t),
> -				       PROT_READ | PROT_WRITE, MAP_SHARED,
> -				       fd, 0)) != MAP_FAILED)
> +	  && (result = (sem_t *) __mmap (NULL, sizeof (sem_t),
> +					 PROT_READ | PROT_WRITE, MAP_SHARED,
> +					 fd, 0)) != MAP_FAILED)
>  	{
>  	  /* Create the file.  Don't overwrite an existing file.  */
> -	  if (link (tmpfname, dirname.name) != 0)
> +	  if (__link (tmpfname, dirname.name) != 0)
>  	    {
>  	      /* Undo the mapping.  */
> -	      (void) munmap (result, sizeof (sem_t));
> +	      (void) __munmap (result, sizeof (sem_t));
>  

No need to keep the warning supression cast here.

>  	      /* Reinitialize 'result'.  */
>  	      result = SEM_FAILED;
> @@ -172,10 +178,10 @@ sem_open (const char *name, int oflag, ...)
>  	      if ((oflag & O_EXCL) == 0 && errno == EEXIST)
>  		{
>  		  /* Remove the file.  */
> -		  (void) unlink (tmpfname);
> +		  (void) __unlink (tmpfname);

Same as before.

>  
>  		  /* Close the file.  */
> -		  close (fd);
> +		  __close (fd);
>  
>  		  goto try_again;
>  		}
> @@ -189,7 +195,7 @@ sem_open (const char *name, int oflag, ...)
>  
>        /* Now remove the temporary name.  This should never fail.  If
>  	 it fails we leak a file name.  Better fix the kernel.  */
> -      (void) unlink (tmpfname);
> +      (void) __unlink (tmpfname);
>      }
>  

Same as before.

>    /* Map the mmap error to the error we need.  */
> @@ -201,7 +207,7 @@ sem_open (const char *name, int oflag, ...)
>      {
>        /* Do not disturb errno.  */
>        int save = errno;
> -      close (fd);
> +      __close (fd);
>        errno = save;
>      }
>  
> @@ -212,3 +218,11 @@ out:
>  
>    return result;
>  }
> +#if PTHREAD_IN_LIBC
> +versioned_symbol (libc, __sem_open, sem_open, GLIBC_2_34);
> +# if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_1_1, GLIBC_2_34)
> +compat_symbol (libpthread, __sem_open, sem_open, GLIBC_2_1_1);
> +# endif
> +#else /* !PTHREAD_IN_LIBC */
> +strong_alias (__sem_open, sem_open)
> +#endif
> diff --git a/sysdeps/pthread/sem_routines.c b/sysdeps/pthread/sem_routines.c
> index 34e6410729..9a78dab5d3 100644
> --- a/sysdeps/pthread/sem_routines.c
> +++ b/sysdeps/pthread/sem_routines.c
> @@ -106,9 +106,9 @@ __sem_check_add_mapping (const char *name, int fd, sem_t *existing)
>  	    {
>  	      /* If the caller hasn't provided any map it now.  */
>  	      if (existing == SEM_FAILED)
> -		existing = (sem_t *) mmap (NULL, sizeof (sem_t),
> -					   PROT_READ | PROT_WRITE, MAP_SHARED,
> -					   fd, 0);
> +		existing = (sem_t *) __mmap (NULL, sizeof (sem_t),
> +					     PROT_READ | PROT_WRITE,
> +					     MAP_SHARED, fd, 0);
>  
>  	      newp->dev = st.st_dev;
>  	      newp->ino = st.st_ino;
> @@ -136,7 +136,7 @@ __sem_check_add_mapping (const char *name, int fd, sem_t *existing)
>      {
>        /* Do not disturb errno.  */
>        int save = errno;
> -      munmap (existing, sizeof (sem_t));
> +      __munmap (existing, sizeof (sem_t));
>        errno = save;
>      }
>  
> @@ -183,7 +183,7 @@ __sem_remove_mapping (sem_t *sem)
>  	  /* Remove the record from the tree.  */
>  	  __tdelete (rec, &sem_mappings, sem_search);
>  
> -	  if (munmap (rec->sem, sizeof (sem_t)) == -1)
> +	  if (__munmap (rec->sem, sizeof (sem_t)) == -1)
>  	    ret = false;
>  
>  	  free (rec);
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index 0f54f3fa7a..26d440e487 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -1660,6 +1660,8 @@ GLIBC_2.17 seed48 F
>  GLIBC_2.17 seed48_r F
>  GLIBC_2.17 seekdir F
>  GLIBC_2.17 select F
> +GLIBC_2.17 sem_close F
> +GLIBC_2.17 sem_open F
>  GLIBC_2.17 semctl F
>  GLIBC_2.17 semget F
>  GLIBC_2.17 semop F
> @@ -2347,6 +2349,8 @@ GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 pthread_testcancel F
>  GLIBC_2.34 sem_clockwait F
> +GLIBC_2.34 sem_close F
> +GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> index 0481baac9c..f8dc604dfa 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> @@ -39,11 +39,9 @@ GLIBC_2.17 pthread_setschedprio F
>  GLIBC_2.17 pthread_sigqueue F
>  GLIBC_2.17 pthread_timedjoin_np F
>  GLIBC_2.17 pthread_tryjoin_np F
> -GLIBC_2.17 sem_close F
>  GLIBC_2.17 sem_destroy F
>  GLIBC_2.17 sem_getvalue F
>  GLIBC_2.17 sem_init F
> -GLIBC_2.17 sem_open F
>  GLIBC_2.17 sem_post F
>  GLIBC_2.17 sem_timedwait F
>  GLIBC_2.17 sem_trywait F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index c0d38ccd38..cef9391d34 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -1721,6 +1721,8 @@ GLIBC_2.1.1 getutmp F
>  GLIBC_2.1.1 getutmpx F
>  GLIBC_2.1.1 imaxabs F
>  GLIBC_2.1.1 imaxdiv F
> +GLIBC_2.1.1 sem_close F
> +GLIBC_2.1.1 sem_open F
>  GLIBC_2.1.1 strchrnul F
>  GLIBC_2.1.1 xdr_hyper F
>  GLIBC_2.1.1 xdr_int64_t F
> @@ -2428,6 +2430,8 @@ GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 pthread_testcancel F
>  GLIBC_2.34 sem_clockwait F
> +GLIBC_2.34 sem_close F
> +GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> index 86b15ad0d7..8cc7e9bc57 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> @@ -30,8 +30,6 @@ GLIBC_2.1 sem_init F
>  GLIBC_2.1 sem_post F
>  GLIBC_2.1 sem_trywait F
>  GLIBC_2.1 sem_wait F
> -GLIBC_2.1.1 sem_close F
> -GLIBC_2.1.1 sem_open F
>  GLIBC_2.1.1 sem_unlink F
>  GLIBC_2.1.2 __libpthread_version_placeholder F
>  GLIBC_2.11 pthread_sigqueue F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index 79fad165e1..a9d30544f3 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -1602,6 +1602,8 @@ GLIBC_2.32 seed48_r F
>  GLIBC_2.32 seekdir F
>  GLIBC_2.32 select F
>  GLIBC_2.32 sem_clockwait F
> +GLIBC_2.32 sem_close F
> +GLIBC_2.32 sem_open F
>  GLIBC_2.32 semctl F
>  GLIBC_2.32 semget F
>  GLIBC_2.32 semop F
> @@ -2106,6 +2108,8 @@ GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 pthread_testcancel F
>  GLIBC_2.34 sem_clockwait F
> +GLIBC_2.34 sem_close F
> +GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> index f9bb47a3c5..9032472f97 100644
> --- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> @@ -42,11 +42,9 @@ GLIBC_2.32 pthread_setschedprio F
>  GLIBC_2.32 pthread_sigqueue F
>  GLIBC_2.32 pthread_timedjoin_np F
>  GLIBC_2.32 pthread_tryjoin_np F
> -GLIBC_2.32 sem_close F
>  GLIBC_2.32 sem_destroy F
>  GLIBC_2.32 sem_getvalue F
>  GLIBC_2.32 sem_init F
> -GLIBC_2.32 sem_open F
>  GLIBC_2.32 sem_post F
>  GLIBC_2.32 sem_timedwait F
>  GLIBC_2.32 sem_trywait F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index 38cddc482a..637c85823b 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -253,6 +253,8 @@ GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 pthread_testcancel F
>  GLIBC_2.34 sem_clockwait F
> +GLIBC_2.34 sem_close F
> +GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> @@ -1838,6 +1840,8 @@ GLIBC_2.4 seed48 F
>  GLIBC_2.4 seed48_r F
>  GLIBC_2.4 seekdir F
>  GLIBC_2.4 select F
> +GLIBC_2.4 sem_close F
> +GLIBC_2.4 sem_open F
>  GLIBC_2.4 semctl F
>  GLIBC_2.4 semget F
>  GLIBC_2.4 semop F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> index e56c397379..4a8b77148b 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> @@ -47,11 +47,9 @@ GLIBC_2.4 pthread_setconcurrency F
>  GLIBC_2.4 pthread_setschedprio F
>  GLIBC_2.4 pthread_timedjoin_np F
>  GLIBC_2.4 pthread_tryjoin_np F
> -GLIBC_2.4 sem_close F
>  GLIBC_2.4 sem_destroy F
>  GLIBC_2.4 sem_getvalue F
>  GLIBC_2.4 sem_init F
> -GLIBC_2.4 sem_open F
>  GLIBC_2.4 sem_post F
>  GLIBC_2.4 sem_timedwait F
>  GLIBC_2.4 sem_trywait F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index 78ae8c3907..c2d82d24c3 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -250,6 +250,8 @@ GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 pthread_testcancel F
>  GLIBC_2.34 sem_clockwait F
> +GLIBC_2.34 sem_close F
> +GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> @@ -1835,6 +1837,8 @@ GLIBC_2.4 seed48 F
>  GLIBC_2.4 seed48_r F
>  GLIBC_2.4 seekdir F
>  GLIBC_2.4 select F
> +GLIBC_2.4 sem_close F
> +GLIBC_2.4 sem_open F
>  GLIBC_2.4 semctl F
>  GLIBC_2.4 semget F
>  GLIBC_2.4 semop F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> index e56c397379..4a8b77148b 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> @@ -47,11 +47,9 @@ GLIBC_2.4 pthread_setconcurrency F
>  GLIBC_2.4 pthread_setschedprio F
>  GLIBC_2.4 pthread_timedjoin_np F
>  GLIBC_2.4 pthread_tryjoin_np F
> -GLIBC_2.4 sem_close F
>  GLIBC_2.4 sem_destroy F
>  GLIBC_2.4 sem_getvalue F
>  GLIBC_2.4 sem_init F
> -GLIBC_2.4 sem_open F
>  GLIBC_2.4 sem_post F
>  GLIBC_2.4 sem_timedwait F
>  GLIBC_2.4 sem_trywait F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index 66dae5ded1..de4c614097 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -1663,6 +1663,8 @@ GLIBC_2.29 seed48 F
>  GLIBC_2.29 seed48_r F
>  GLIBC_2.29 seekdir F
>  GLIBC_2.29 select F
> +GLIBC_2.29 sem_close F
> +GLIBC_2.29 sem_open F
>  GLIBC_2.29 semctl F
>  GLIBC_2.29 semget F
>  GLIBC_2.29 semop F
> @@ -2290,6 +2292,8 @@ GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 pthread_testcancel F
>  GLIBC_2.34 sem_clockwait F
> +GLIBC_2.34 sem_close F
> +GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> index 6fd5e8061a..b16ffe2dd8 100644
> --- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> @@ -41,11 +41,9 @@ GLIBC_2.29 pthread_setschedprio F
>  GLIBC_2.29 pthread_sigqueue F
>  GLIBC_2.29 pthread_timedjoin_np F
>  GLIBC_2.29 pthread_tryjoin_np F
> -GLIBC_2.29 sem_close F
>  GLIBC_2.29 sem_destroy F
>  GLIBC_2.29 sem_getvalue F
>  GLIBC_2.29 sem_init F
> -GLIBC_2.29 sem_open F
>  GLIBC_2.29 sem_post F
>  GLIBC_2.29 sem_timedwait F
>  GLIBC_2.29 sem_trywait F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index 46875d7402..83bb694e02 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -1452,6 +1452,8 @@ GLIBC_2.2 seed48 F
>  GLIBC_2.2 seed48_r F
>  GLIBC_2.2 seekdir F
>  GLIBC_2.2 select F
> +GLIBC_2.2 sem_close F
> +GLIBC_2.2 sem_open F
>  GLIBC_2.2 semctl F
>  GLIBC_2.2 semget F
>  GLIBC_2.2 semop F
> @@ -2241,6 +2243,8 @@ GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 pthread_testcancel F
>  GLIBC_2.34 sem_clockwait F
> +GLIBC_2.34 sem_close F
> +GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> index c6e9eee45b..c07e43ba36 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> @@ -31,11 +31,9 @@ GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_join F
>  GLIBC_2.2 pthread_setconcurrency F
> -GLIBC_2.2 sem_close F
>  GLIBC_2.2 sem_destroy F
>  GLIBC_2.2 sem_getvalue F
>  GLIBC_2.2 sem_init F
> -GLIBC_2.2 sem_open F
>  GLIBC_2.2 sem_post F
>  GLIBC_2.2 sem_timedwait F
>  GLIBC_2.2 sem_trywait F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index 5d8ca2e122..361856e177 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -1727,6 +1727,8 @@ GLIBC_2.1.1 getutmp F
>  GLIBC_2.1.1 getutmpx F
>  GLIBC_2.1.1 imaxabs F
>  GLIBC_2.1.1 imaxdiv F
> +GLIBC_2.1.1 sem_close F
> +GLIBC_2.1.1 sem_open F
>  GLIBC_2.1.1 strchrnul F
>  GLIBC_2.1.1 xdr_hyper F
>  GLIBC_2.1.1 xdr_int64_t F
> @@ -2418,6 +2420,8 @@ GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 pthread_testcancel F
>  GLIBC_2.34 sem_clockwait F
> +GLIBC_2.34 sem_close F
> +GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> index 30bc064058..be013d96e2 100644
> --- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> @@ -30,8 +30,6 @@ GLIBC_2.1 sem_init F
>  GLIBC_2.1 sem_post F
>  GLIBC_2.1 sem_trywait F
>  GLIBC_2.1 sem_wait F
> -GLIBC_2.1.1 sem_close F
> -GLIBC_2.1.1 sem_open F
>  GLIBC_2.1.1 sem_unlink F
>  GLIBC_2.1.2 __libpthread_version_placeholder F
>  GLIBC_2.11 pthread_sigqueue F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index c14a38e14c..9be17c7672 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -1473,6 +1473,8 @@ GLIBC_2.2 seed48 F
>  GLIBC_2.2 seed48_r F
>  GLIBC_2.2 seekdir F
>  GLIBC_2.2 select F
> +GLIBC_2.2 sem_close F
> +GLIBC_2.2 sem_open F
>  GLIBC_2.2 semctl F
>  GLIBC_2.2 semget F
>  GLIBC_2.2 semop F
> @@ -2275,6 +2277,8 @@ GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 pthread_testcancel F
>  GLIBC_2.34 sem_clockwait F
> +GLIBC_2.34 sem_close F
> +GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> index 6f15ac3cb1..42c7615f64 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> @@ -31,11 +31,9 @@ GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_join F
>  GLIBC_2.2 pthread_setconcurrency F
> -GLIBC_2.2 sem_close F
>  GLIBC_2.2 sem_destroy F
>  GLIBC_2.2 sem_getvalue F
>  GLIBC_2.2 sem_init F
> -GLIBC_2.2 sem_open F
>  GLIBC_2.2 sem_post F
>  GLIBC_2.2 sem_timedwait F
>  GLIBC_2.2 sem_trywait F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index aabed7c366..8ded141557 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -254,6 +254,8 @@ GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 pthread_testcancel F
>  GLIBC_2.34 sem_clockwait F
> +GLIBC_2.34 sem_close F
> +GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> @@ -1818,6 +1820,8 @@ GLIBC_2.4 seed48 F
>  GLIBC_2.4 seed48_r F
>  GLIBC_2.4 seekdir F
>  GLIBC_2.4 select F
> +GLIBC_2.4 sem_close F
> +GLIBC_2.4 sem_open F
>  GLIBC_2.4 semctl F
>  GLIBC_2.4 semget F
>  GLIBC_2.4 semop F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> index e56c397379..4a8b77148b 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> @@ -47,11 +47,9 @@ GLIBC_2.4 pthread_setconcurrency F
>  GLIBC_2.4 pthread_setschedprio F
>  GLIBC_2.4 pthread_timedjoin_np F
>  GLIBC_2.4 pthread_tryjoin_np F
> -GLIBC_2.4 sem_close F
>  GLIBC_2.4 sem_destroy F
>  GLIBC_2.4 sem_getvalue F
>  GLIBC_2.4 sem_init F
> -GLIBC_2.4 sem_open F
>  GLIBC_2.4 sem_post F
>  GLIBC_2.4 sem_timedwait F
>  GLIBC_2.4 sem_trywait F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index 4a3b9f25fa..e8a006c424 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -1683,6 +1683,8 @@ GLIBC_2.1.1 getutmp F
>  GLIBC_2.1.1 getutmpx F
>  GLIBC_2.1.1 imaxabs F
>  GLIBC_2.1.1 imaxdiv F
> +GLIBC_2.1.1 sem_close F
> +GLIBC_2.1.1 sem_open F
>  GLIBC_2.1.1 strchrnul F
>  GLIBC_2.1.1 xdr_hyper F
>  GLIBC_2.1.1 xdr_int64_t F
> @@ -2361,6 +2363,8 @@ GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 pthread_testcancel F
>  GLIBC_2.34 sem_clockwait F
> +GLIBC_2.34 sem_close F
> +GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> index 30bc064058..be013d96e2 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> @@ -30,8 +30,6 @@ GLIBC_2.1 sem_init F
>  GLIBC_2.1 sem_post F
>  GLIBC_2.1 sem_trywait F
>  GLIBC_2.1 sem_wait F
> -GLIBC_2.1.1 sem_close F
> -GLIBC_2.1.1 sem_open F
>  GLIBC_2.1.1 sem_unlink F
>  GLIBC_2.1.2 __libpthread_version_placeholder F
>  GLIBC_2.11 pthread_sigqueue F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index 82ac489f32..a4907fad02 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -1662,6 +1662,8 @@ GLIBC_2.18 seed48 F
>  GLIBC_2.18 seed48_r F
>  GLIBC_2.18 seekdir F
>  GLIBC_2.18 select F
> +GLIBC_2.18 sem_close F
> +GLIBC_2.18 sem_open F
>  GLIBC_2.18 semctl F
>  GLIBC_2.18 semget F
>  GLIBC_2.18 semop F
> @@ -2341,6 +2343,8 @@ GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 pthread_testcancel F
>  GLIBC_2.34 sem_clockwait F
> +GLIBC_2.34 sem_close F
> +GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> index 703310b8dd..8b3ddcbda9 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> @@ -41,11 +41,9 @@ GLIBC_2.18 pthread_setschedprio F
>  GLIBC_2.18 pthread_sigqueue F
>  GLIBC_2.18 pthread_timedjoin_np F
>  GLIBC_2.18 pthread_tryjoin_np F
> -GLIBC_2.18 sem_close F
>  GLIBC_2.18 sem_destroy F
>  GLIBC_2.18 sem_getvalue F
>  GLIBC_2.18 sem_init F
> -GLIBC_2.18 sem_open F
>  GLIBC_2.18 sem_post F
>  GLIBC_2.18 sem_timedwait F
>  GLIBC_2.18 sem_trywait F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index 3ec2794b5b..c5282a3fd1 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -1662,6 +1662,8 @@ GLIBC_2.18 seed48 F
>  GLIBC_2.18 seed48_r F
>  GLIBC_2.18 seekdir F
>  GLIBC_2.18 select F
> +GLIBC_2.18 sem_close F
> +GLIBC_2.18 sem_open F
>  GLIBC_2.18 semctl F
>  GLIBC_2.18 semget F
>  GLIBC_2.18 semop F
> @@ -2338,6 +2340,8 @@ GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 pthread_testcancel F
>  GLIBC_2.34 sem_clockwait F
> +GLIBC_2.34 sem_close F
> +GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> index 703310b8dd..8b3ddcbda9 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> @@ -41,11 +41,9 @@ GLIBC_2.18 pthread_setschedprio F
>  GLIBC_2.18 pthread_sigqueue F
>  GLIBC_2.18 pthread_timedjoin_np F
>  GLIBC_2.18 pthread_tryjoin_np F
> -GLIBC_2.18 sem_close F
>  GLIBC_2.18 sem_destroy F
>  GLIBC_2.18 sem_getvalue F
>  GLIBC_2.18 sem_init F
> -GLIBC_2.18 sem_open F
>  GLIBC_2.18 sem_post F
>  GLIBC_2.18 sem_timedwait F
>  GLIBC_2.18 sem_trywait F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index ff623c22f3..a6fb6ac493 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -1888,6 +1888,8 @@ GLIBC_2.2 rresvport_af F
>  GLIBC_2.2 rtime F
>  GLIBC_2.2 ruserok_af F
>  GLIBC_2.2 scandir64 F
> +GLIBC_2.2 sem_close F
> +GLIBC_2.2 sem_open F
>  GLIBC_2.2 semctl F
>  GLIBC_2.2 sendfile F
>  GLIBC_2.2 setrlimit64 F
> @@ -2324,6 +2326,8 @@ GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 pthread_testcancel F
>  GLIBC_2.34 sem_clockwait F
> +GLIBC_2.34 sem_close F
> +GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> index 8444fb5280..d79cc95dfd 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> @@ -38,11 +38,9 @@ GLIBC_2.2 pthread_create F
>  GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_setconcurrency F
> -GLIBC_2.2 sem_close F
>  GLIBC_2.2 sem_destroy F
>  GLIBC_2.2 sem_getvalue F
>  GLIBC_2.2 sem_init F
> -GLIBC_2.2 sem_open F
>  GLIBC_2.2 sem_post F
>  GLIBC_2.2 sem_timedwait F
>  GLIBC_2.2 sem_trywait F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index 6cecd92386..abfe1226b1 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -1886,6 +1886,8 @@ GLIBC_2.2 rresvport_af F
>  GLIBC_2.2 rtime F
>  GLIBC_2.2 ruserok_af F
>  GLIBC_2.2 scandir64 F
> +GLIBC_2.2 sem_close F
> +GLIBC_2.2 sem_open F
>  GLIBC_2.2 semctl F
>  GLIBC_2.2 sendfile F
>  GLIBC_2.2 setrlimit64 F
> @@ -2322,6 +2324,8 @@ GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 pthread_testcancel F
>  GLIBC_2.34 sem_clockwait F
> +GLIBC_2.34 sem_close F
> +GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> index 8444fb5280..d79cc95dfd 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> @@ -38,11 +38,9 @@ GLIBC_2.2 pthread_create F
>  GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_setconcurrency F
> -GLIBC_2.2 sem_close F
>  GLIBC_2.2 sem_destroy F
>  GLIBC_2.2 sem_getvalue F
>  GLIBC_2.2 sem_init F
> -GLIBC_2.2 sem_open F
>  GLIBC_2.2 sem_post F
>  GLIBC_2.2 sem_timedwait F
>  GLIBC_2.2 sem_trywait F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index 858fa17010..30851df44a 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -1886,6 +1886,8 @@ GLIBC_2.2 rresvport_af F
>  GLIBC_2.2 rtime F
>  GLIBC_2.2 ruserok_af F
>  GLIBC_2.2 scandir64 F
> +GLIBC_2.2 sem_close F
> +GLIBC_2.2 sem_open F
>  GLIBC_2.2 sendfile F
>  GLIBC_2.2 setrlimit64 F
>  GLIBC_2.2 setutxent F
> @@ -2330,6 +2332,8 @@ GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 pthread_testcancel F
>  GLIBC_2.34 sem_clockwait F
> +GLIBC_2.34 sem_close F
> +GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index 5c72417ee3..81d37d6322 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -1882,6 +1882,8 @@ GLIBC_2.2 rresvport_af F
>  GLIBC_2.2 rtime F
>  GLIBC_2.2 ruserok_af F
>  GLIBC_2.2 scandir64 F
> +GLIBC_2.2 sem_close F
> +GLIBC_2.2 sem_open F
>  GLIBC_2.2 sendfile F
>  GLIBC_2.2 setrlimit64 F
>  GLIBC_2.2 setutxent F
> @@ -2324,6 +2326,8 @@ GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 pthread_testcancel F
>  GLIBC_2.34 sem_clockwait F
> +GLIBC_2.34 sem_close F
> +GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index b9cd5703da..a5dbb107db 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -1705,6 +1705,8 @@ GLIBC_2.21 seed48 F
>  GLIBC_2.21 seed48_r F
>  GLIBC_2.21 seekdir F
>  GLIBC_2.21 select F
> +GLIBC_2.21 sem_close F
> +GLIBC_2.21 sem_open F
>  GLIBC_2.21 semctl F
>  GLIBC_2.21 semget F
>  GLIBC_2.21 semop F
> @@ -2380,6 +2382,8 @@ GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 pthread_testcancel F
>  GLIBC_2.34 sem_clockwait F
> +GLIBC_2.34 sem_close F
> +GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> index 6e4845723f..e8f9bdeef4 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> @@ -41,11 +41,9 @@ GLIBC_2.21 pthread_setschedprio F
>  GLIBC_2.21 pthread_sigqueue F
>  GLIBC_2.21 pthread_timedjoin_np F
>  GLIBC_2.21 pthread_tryjoin_np F
> -GLIBC_2.21 sem_close F
>  GLIBC_2.21 sem_destroy F
>  GLIBC_2.21 sem_getvalue F
>  GLIBC_2.21 sem_init F
> -GLIBC_2.21 sem_open F
>  GLIBC_2.21 sem_post F
>  GLIBC_2.21 sem_timedwait F
>  GLIBC_2.21 sem_trywait F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index 2384127281..9f512cfe62 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -1688,6 +1688,8 @@ GLIBC_2.1.1 getutmp F
>  GLIBC_2.1.1 getutmpx F
>  GLIBC_2.1.1 imaxabs F
>  GLIBC_2.1.1 imaxdiv F
> +GLIBC_2.1.1 sem_close F
> +GLIBC_2.1.1 sem_open F
>  GLIBC_2.1.1 strchrnul F
>  GLIBC_2.1.1 xdr_hyper F
>  GLIBC_2.1.1 xdr_int64_t F
> @@ -2388,6 +2390,8 @@ GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 pthread_testcancel F
>  GLIBC_2.34 sem_clockwait F
> +GLIBC_2.34 sem_close F
> +GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> index 2614e1e6b9..31ef39020a 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> @@ -30,8 +30,6 @@ GLIBC_2.1 sem_init F
>  GLIBC_2.1 sem_post F
>  GLIBC_2.1 sem_trywait F
>  GLIBC_2.1 sem_wait F
> -GLIBC_2.1.1 sem_close F
> -GLIBC_2.1.1 sem_open F
>  GLIBC_2.1.1 sem_unlink F
>  GLIBC_2.1.2 __libpthread_version_placeholder F
>  GLIBC_2.11 pthread_sigqueue F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index ce47bd3777..99aad58eaa 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -1688,6 +1688,8 @@ GLIBC_2.1.1 getutmp F
>  GLIBC_2.1.1 getutmpx F
>  GLIBC_2.1.1 imaxabs F
>  GLIBC_2.1.1 imaxdiv F
> +GLIBC_2.1.1 sem_close F
> +GLIBC_2.1.1 sem_open F
>  GLIBC_2.1.1 strchrnul F
>  GLIBC_2.1.1 xdr_hyper F
>  GLIBC_2.1.1 xdr_int64_t F
> @@ -2421,6 +2423,8 @@ GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 pthread_testcancel F
>  GLIBC_2.34 sem_clockwait F
> +GLIBC_2.34 sem_close F
> +GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index 1be222ec73..466f6b5d7b 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -1577,6 +1577,8 @@ GLIBC_2.3 seed48 F
>  GLIBC_2.3 seed48_r F
>  GLIBC_2.3 seekdir F
>  GLIBC_2.3 select F
> +GLIBC_2.3 sem_close F
> +GLIBC_2.3 sem_open F
>  GLIBC_2.3 semctl F
>  GLIBC_2.3 semget F
>  GLIBC_2.3 semop F
> @@ -2242,6 +2244,8 @@ GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 pthread_testcancel F
>  GLIBC_2.34 sem_clockwait F
> +GLIBC_2.34 sem_close F
> +GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> index af39b79df0..02c32b9aa6 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> @@ -34,11 +34,9 @@ GLIBC_2.3 pthread_getconcurrency F
>  GLIBC_2.3 pthread_getcpuclockid F
>  GLIBC_2.3 pthread_join F
>  GLIBC_2.3 pthread_setconcurrency F
> -GLIBC_2.3 sem_close F
>  GLIBC_2.3 sem_destroy F
>  GLIBC_2.3 sem_getvalue F
>  GLIBC_2.3 sem_init F
> -GLIBC_2.3 sem_open F
>  GLIBC_2.3 sem_post F
>  GLIBC_2.3 sem_timedwait F
>  GLIBC_2.3 sem_trywait F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index 26de7bc08f..b1a2922377 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -1748,6 +1748,8 @@ GLIBC_2.17 seed48 F
>  GLIBC_2.17 seed48_r F
>  GLIBC_2.17 seekdir F
>  GLIBC_2.17 select F
> +GLIBC_2.17 sem_close F
> +GLIBC_2.17 sem_open F
>  GLIBC_2.17 semctl F
>  GLIBC_2.17 semget F
>  GLIBC_2.17 semop F
> @@ -2543,6 +2545,8 @@ GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 pthread_testcancel F
>  GLIBC_2.34 sem_clockwait F
> +GLIBC_2.34 sem_close F
> +GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> index 0481baac9c..f8dc604dfa 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> @@ -39,11 +39,9 @@ GLIBC_2.17 pthread_setschedprio F
>  GLIBC_2.17 pthread_sigqueue F
>  GLIBC_2.17 pthread_timedjoin_np F
>  GLIBC_2.17 pthread_tryjoin_np F
> -GLIBC_2.17 sem_close F
>  GLIBC_2.17 sem_destroy F
>  GLIBC_2.17 sem_getvalue F
>  GLIBC_2.17 sem_init F
> -GLIBC_2.17 sem_open F
>  GLIBC_2.17 sem_post F
>  GLIBC_2.17 sem_timedwait F
>  GLIBC_2.17 sem_trywait F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index 423a563d6a..7ed6c10b7c 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -1604,6 +1604,8 @@ GLIBC_2.33 seed48_r F
>  GLIBC_2.33 seekdir F
>  GLIBC_2.33 select F
>  GLIBC_2.33 sem_clockwait F
> +GLIBC_2.33 sem_close F
> +GLIBC_2.33 sem_open F
>  GLIBC_2.33 semctl F
>  GLIBC_2.33 semget F
>  GLIBC_2.33 semop F
> @@ -2108,6 +2110,8 @@ GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 pthread_testcancel F
>  GLIBC_2.34 sem_clockwait F
> +GLIBC_2.34 sem_close F
> +GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> index 2c05fed5de..1a87403132 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> @@ -42,11 +42,9 @@ GLIBC_2.33 pthread_setschedprio F
>  GLIBC_2.33 pthread_sigqueue F
>  GLIBC_2.33 pthread_timedjoin_np F
>  GLIBC_2.33 pthread_tryjoin_np F
> -GLIBC_2.33 sem_close F
>  GLIBC_2.33 sem_destroy F
>  GLIBC_2.33 sem_getvalue F
>  GLIBC_2.33 sem_init F
> -GLIBC_2.33 sem_open F
>  GLIBC_2.33 sem_post F
>  GLIBC_2.33 sem_timedwait F
>  GLIBC_2.33 sem_trywait F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index 04e587b23c..a0f5d0f988 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -1652,6 +1652,8 @@ GLIBC_2.27 seed48 F
>  GLIBC_2.27 seed48_r F
>  GLIBC_2.27 seekdir F
>  GLIBC_2.27 select F
> +GLIBC_2.27 sem_close F
> +GLIBC_2.27 sem_open F
>  GLIBC_2.27 semctl F
>  GLIBC_2.27 semget F
>  GLIBC_2.27 semop F
> @@ -2308,6 +2310,8 @@ GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 pthread_testcancel F
>  GLIBC_2.34 sem_clockwait F
> +GLIBC_2.34 sem_close F
> +GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> index 24c1fc45ce..122cb26879 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> @@ -41,11 +41,9 @@ GLIBC_2.27 pthread_setschedprio F
>  GLIBC_2.27 pthread_sigqueue F
>  GLIBC_2.27 pthread_timedjoin_np F
>  GLIBC_2.27 pthread_tryjoin_np F
> -GLIBC_2.27 sem_close F
>  GLIBC_2.27 sem_destroy F
>  GLIBC_2.27 sem_getvalue F
>  GLIBC_2.27 sem_init F
> -GLIBC_2.27 sem_open F
>  GLIBC_2.27 sem_post F
>  GLIBC_2.27 sem_timedwait F
>  GLIBC_2.27 sem_trywait F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index 7b269ae840..f2a59ab190 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -1680,6 +1680,8 @@ GLIBC_2.1.1 getutmp F
>  GLIBC_2.1.1 getutmpx F
>  GLIBC_2.1.1 imaxabs F
>  GLIBC_2.1.1 imaxdiv F
> +GLIBC_2.1.1 sem_close F
> +GLIBC_2.1.1 sem_open F
>  GLIBC_2.1.1 strchrnul F
>  GLIBC_2.1.1 xdr_hyper F
>  GLIBC_2.1.1 xdr_int64_t F
> @@ -2386,6 +2388,8 @@ GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 pthread_testcancel F
>  GLIBC_2.34 sem_clockwait F
> +GLIBC_2.34 sem_close F
> +GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> index 17893bf306..a6adbf2c0c 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> @@ -30,8 +30,6 @@ GLIBC_2.1 sem_init F
>  GLIBC_2.1 sem_post F
>  GLIBC_2.1 sem_trywait F
>  GLIBC_2.1 sem_wait F
> -GLIBC_2.1.1 sem_close F
> -GLIBC_2.1.1 sem_open F
>  GLIBC_2.1.1 sem_unlink F
>  GLIBC_2.1.2 __libpthread_version_placeholder F
>  GLIBC_2.11 pthread_sigqueue F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index c2af5d0ece..232d00b8af 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -1470,6 +1470,8 @@ GLIBC_2.2 seed48 F
>  GLIBC_2.2 seed48_r F
>  GLIBC_2.2 seekdir F
>  GLIBC_2.2 select F
> +GLIBC_2.2 sem_close F
> +GLIBC_2.2 sem_open F
>  GLIBC_2.2 semctl F
>  GLIBC_2.2 semget F
>  GLIBC_2.2 semop F
> @@ -2279,6 +2281,8 @@ GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 pthread_testcancel F
>  GLIBC_2.34 sem_clockwait F
> +GLIBC_2.34 sem_close F
> +GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> index 3f42d9dcc5..6b6f17b0dd 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> @@ -32,11 +32,9 @@ GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_join F
>  GLIBC_2.2 pthread_setconcurrency F
> -GLIBC_2.2 sem_close F
>  GLIBC_2.2 sem_destroy F
>  GLIBC_2.2 sem_getvalue F
>  GLIBC_2.2 sem_init F
> -GLIBC_2.2 sem_open F
>  GLIBC_2.2 sem_post F
>  GLIBC_2.2 sem_timedwait F
>  GLIBC_2.2 sem_trywait F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index 00ea530f98..e4eb7c0042 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -1456,6 +1456,8 @@ GLIBC_2.2 seed48 F
>  GLIBC_2.2 seed48_r F
>  GLIBC_2.2 seekdir F
>  GLIBC_2.2 select F
> +GLIBC_2.2 sem_close F
> +GLIBC_2.2 sem_open F
>  GLIBC_2.2 semctl F
>  GLIBC_2.2 semget F
>  GLIBC_2.2 semop F
> @@ -2248,6 +2250,8 @@ GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 pthread_testcancel F
>  GLIBC_2.34 sem_clockwait F
> +GLIBC_2.34 sem_close F
> +GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> index c6e9eee45b..c07e43ba36 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> @@ -31,11 +31,9 @@ GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_join F
>  GLIBC_2.2 pthread_setconcurrency F
> -GLIBC_2.2 sem_close F
>  GLIBC_2.2 sem_destroy F
>  GLIBC_2.2 sem_getvalue F
>  GLIBC_2.2 sem_init F
> -GLIBC_2.2 sem_open F
>  GLIBC_2.2 sem_post F
>  GLIBC_2.2 sem_timedwait F
>  GLIBC_2.2 sem_trywait F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index ea92a1c366..2a019d5f89 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -1456,6 +1456,8 @@ GLIBC_2.2 seed48 F
>  GLIBC_2.2 seed48_r F
>  GLIBC_2.2 seekdir F
>  GLIBC_2.2 select F
> +GLIBC_2.2 sem_close F
> +GLIBC_2.2 sem_open F
>  GLIBC_2.2 semctl F
>  GLIBC_2.2 semget F
>  GLIBC_2.2 semop F
> @@ -2245,6 +2247,8 @@ GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 pthread_testcancel F
>  GLIBC_2.34 sem_clockwait F
> +GLIBC_2.34 sem_close F
> +GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> index c6e9eee45b..c07e43ba36 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> @@ -31,11 +31,9 @@ GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_join F
>  GLIBC_2.2 pthread_setconcurrency F
> -GLIBC_2.2 sem_close F
>  GLIBC_2.2 sem_destroy F
>  GLIBC_2.2 sem_getvalue F
>  GLIBC_2.2 sem_init F
> -GLIBC_2.2 sem_open F
>  GLIBC_2.2 sem_post F
>  GLIBC_2.2 sem_timedwait F
>  GLIBC_2.2 sem_trywait F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index f0d5866658..a0e6b25aeb 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -1681,6 +1681,8 @@ GLIBC_2.1.1 getutmp F
>  GLIBC_2.1.1 getutmpx F
>  GLIBC_2.1.1 imaxabs F
>  GLIBC_2.1.1 imaxdiv F
> +GLIBC_2.1.1 sem_close F
> +GLIBC_2.1.1 sem_open F
>  GLIBC_2.1.1 strchrnul F
>  GLIBC_2.1.1 xdr_hyper F
>  GLIBC_2.1.1 xdr_int64_t F
> @@ -2377,6 +2379,8 @@ GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 pthread_testcancel F
>  GLIBC_2.34 sem_clockwait F
> +GLIBC_2.34 sem_close F
> +GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> index 86b15ad0d7..8cc7e9bc57 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> @@ -30,8 +30,6 @@ GLIBC_2.1 sem_init F
>  GLIBC_2.1 sem_post F
>  GLIBC_2.1 sem_trywait F
>  GLIBC_2.1 sem_wait F
> -GLIBC_2.1.1 sem_close F
> -GLIBC_2.1.1 sem_open F
>  GLIBC_2.1.1 sem_unlink F
>  GLIBC_2.1.2 __libpthread_version_placeholder F
>  GLIBC_2.11 pthread_sigqueue F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index da0c9e1e86..f836c0c88b 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -1499,6 +1499,8 @@ GLIBC_2.2 seed48 F
>  GLIBC_2.2 seed48_r F
>  GLIBC_2.2 seekdir F
>  GLIBC_2.2 select F
> +GLIBC_2.2 sem_close F
> +GLIBC_2.2 sem_open F
>  GLIBC_2.2 semctl F
>  GLIBC_2.2 semget F
>  GLIBC_2.2 semop F
> @@ -2296,6 +2298,8 @@ GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 pthread_testcancel F
>  GLIBC_2.34 sem_clockwait F
> +GLIBC_2.34 sem_close F
> +GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> index 6f15ac3cb1..42c7615f64 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> @@ -31,11 +31,9 @@ GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_join F
>  GLIBC_2.2 pthread_setconcurrency F
> -GLIBC_2.2 sem_close F
>  GLIBC_2.2 sem_destroy F
>  GLIBC_2.2 sem_getvalue F
>  GLIBC_2.2 sem_init F
> -GLIBC_2.2 sem_open F
>  GLIBC_2.2 sem_post F
>  GLIBC_2.2 sem_timedwait F
>  GLIBC_2.2 sem_trywait F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index 33b4b7a121..8c48f6fbd0 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -1467,6 +1467,8 @@ GLIBC_2.2.5 seed48 F
>  GLIBC_2.2.5 seed48_r F
>  GLIBC_2.2.5 seekdir F
>  GLIBC_2.2.5 select F
> +GLIBC_2.2.5 sem_close F
> +GLIBC_2.2.5 sem_open F
>  GLIBC_2.2.5 semctl F
>  GLIBC_2.2.5 semget F
>  GLIBC_2.2.5 semop F
> @@ -2257,6 +2259,8 @@ GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 pthread_testcancel F
>  GLIBC_2.34 sem_clockwait F
> +GLIBC_2.34 sem_close F
> +GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> index 3516798f9a..9a98ac62d7 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> @@ -31,11 +31,9 @@ GLIBC_2.2.5 pthread_getconcurrency F
>  GLIBC_2.2.5 pthread_getcpuclockid F
>  GLIBC_2.2.5 pthread_join F
>  GLIBC_2.2.5 pthread_setconcurrency F
> -GLIBC_2.2.5 sem_close F
>  GLIBC_2.2.5 sem_destroy F
>  GLIBC_2.2.5 sem_getvalue F
>  GLIBC_2.2.5 sem_init F
> -GLIBC_2.2.5 sem_open F
>  GLIBC_2.2.5 sem_post F
>  GLIBC_2.2.5 sem_timedwait F
>  GLIBC_2.2.5 sem_trywait F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index 0a1215efeb..f96ad30cef 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -1666,6 +1666,8 @@ GLIBC_2.16 seed48 F
>  GLIBC_2.16 seed48_r F
>  GLIBC_2.16 seekdir F
>  GLIBC_2.16 select F
> +GLIBC_2.16 sem_close F
> +GLIBC_2.16 sem_open F
>  GLIBC_2.16 semctl F
>  GLIBC_2.16 semget F
>  GLIBC_2.16 semop F
> @@ -2362,6 +2364,8 @@ GLIBC_2.34 pthread_spin_trylock F
>  GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 pthread_testcancel F
>  GLIBC_2.34 sem_clockwait F
> +GLIBC_2.34 sem_close F
> +GLIBC_2.34 sem_open F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> index b2c9bca89c..025b02f3de 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> @@ -39,11 +39,9 @@ GLIBC_2.16 pthread_setschedprio F
>  GLIBC_2.16 pthread_sigqueue F
>  GLIBC_2.16 pthread_timedjoin_np F
>  GLIBC_2.16 pthread_tryjoin_np F
> -GLIBC_2.16 sem_close F
>  GLIBC_2.16 sem_destroy F
>  GLIBC_2.16 sem_getvalue F
>  GLIBC_2.16 sem_init F
> -GLIBC_2.16 sem_open F
>  GLIBC_2.16 sem_post F
>  GLIBC_2.16 sem_timedwait F
>  GLIBC_2.16 sem_trywait F
>
  
Florian Weimer May 5, 2021, 3:30 p.m. UTC | #2
* Adhemerval Zanella:

> On 03/05/2021 10:51, Florian Weimer via Libc-alpha wrote:
>> The symbols were moved using move-symbol-to-libc.py.
>> 
>> Both functions are moved at the same time because they depend
>> on internal functions in sysdeps/pthread/sem_routines.c, which
>> are moved in this commit as well.  Additional hidden prototypes
>> are required to avoid check-localplt failures.
>
> LGTM, with some small nits below.
>
> Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

Thanks, I've applied these suggestions.

Florian
  

Patch

diff --git a/include/shm-directory.h b/include/shm-directory.h
index 1d3ffb6137..25e9484a5d 100644
--- a/include/shm-directory.h
+++ b/include/shm-directory.h
@@ -37,5 +37,6 @@  struct shmdir_name
    SEM_PREFIX is true.  */
 int __shm_get_name (struct shmdir_name *result, const char *name,
 		    bool sem_prefix);
+libc_hidden_proto (__shm_get_name)
 
 #endif  /* shm-directory.h */
diff --git a/include/stdlib.h b/include/stdlib.h
index cdbdbf310d..e2453c1896 100644
--- a/include/stdlib.h
+++ b/include/stdlib.h
@@ -91,6 +91,7 @@  extern int __setenv (const char *__name, const char *__value, int __replace)
 extern int __unsetenv (const char *__name) attribute_hidden;
 extern int __clearenv (void) attribute_hidden;
 extern char *__mktemp (char *__template) __THROW __nonnull ((1));
+libc_hidden_proto (__mktemp)
 extern char *__canonicalize_file_name (const char *__name);
 extern char *__realpath (const char *__name, char *__resolved);
 libc_hidden_proto (__realpath)
diff --git a/misc/mktemp.c b/misc/mktemp.c
index 92bb121ddf..07f195f845 100644
--- a/misc/mktemp.c
+++ b/misc/mktemp.c
@@ -30,6 +30,7 @@  __mktemp (char *template)
 
   return template;
 }
+libc_hidden_def (__mktemp)
 weak_alias (__mktemp, mktemp)
 
 link_warning (mktemp, "the use of `mktemp' is dangerous, "
diff --git a/nptl/Makefile b/nptl/Makefile
index 66fd90049e..ab24222c1d 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -151,6 +151,9 @@  routines = \
   pthread_testcancel \
   pthread_yield \
   sem_clockwait \
+  sem_close \
+  sem_open \
+  sem_routines \
   tpp \
   unwind \
 
@@ -202,13 +205,10 @@  libpthread-routines = \
   pthread_sigqueue \
   pthread_timedjoin \
   pthread_tryjoin \
-  sem_close \
   sem_destroy \
   sem_getvalue \
   sem_init \
-  sem_open \
   sem_post \
-  sem_routines \
   sem_timedwait \
   sem_unlink \
   sem_wait \
diff --git a/nptl/Versions b/nptl/Versions
index 97567b6354..4a9e5a0305 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -81,6 +81,10 @@  libc {
     pthread_rwlockattr_setkind_np;
     pthread_rwlockattr_setpshared;
   }
+  GLIBC_2.1.1 {
+    sem_close;
+    sem_open;
+  }
   GLIBC_2.2 {
     __pthread_rwlock_destroy;
     __pthread_rwlock_init;
@@ -249,6 +253,8 @@  libc {
     pthread_spin_unlock;
     pthread_testcancel;
     sem_clockwait;
+    sem_close;
+    sem_open;
     thrd_exit;
     tss_create;
     tss_delete;
@@ -341,8 +347,6 @@  libpthread {
   }
 
   GLIBC_2.1.1 {
-    sem_close;
-    sem_open;
     sem_unlink;
   }
 
diff --git a/posix/shm-directory.c b/posix/shm-directory.c
index c06bf96aa7..5dd640ebd0 100644
--- a/posix/shm-directory.c
+++ b/posix/shm-directory.c
@@ -42,5 +42,6 @@  __shm_get_name (struct shmdir_name *result, const char *name, bool sem_prefix)
     return -1;
   return 0;
 }
+libc_hidden_def (__shm_get_name)
 
 #endif
diff --git a/sysdeps/pthread/sem_close.c b/sysdeps/pthread/sem_close.c
index 6649196cac..212848f745 100644
--- a/sysdeps/pthread/sem_close.c
+++ b/sysdeps/pthread/sem_close.c
@@ -21,7 +21,7 @@ 
 #include <sem_routines.h>
 
 int
-sem_close (sem_t *sem)
+__sem_close (sem_t *sem)
 {
   if (!__sem_remove_mapping (sem))
     {
@@ -31,3 +31,11 @@  sem_close (sem_t *sem)
 
   return 0;
 }
+#if PTHREAD_IN_LIBC
+versioned_symbol (libc, __sem_close, sem_close, GLIBC_2_34);
+# if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_1_1, GLIBC_2_34)
+compat_symbol (libpthread, __sem_close, sem_close, GLIBC_2_1_1);
+# endif
+#else /* !PTHREAD_IN_LIBC */
+strong_alias (__sem_close, sem_close)
+#endif
diff --git a/sysdeps/pthread/sem_open.c b/sysdeps/pthread/sem_open.c
index 0265abc45b..0185659fb9 100644
--- a/sysdeps/pthread/sem_open.c
+++ b/sysdeps/pthread/sem_open.c
@@ -27,8 +27,14 @@ 
 #include <futex-internal.h>
 #include <libc-lock.h>
 
+#if !PTHREAD_IN_LIBC
+/* The private names are not exported from libc.  */
+# define __link link
+# define __unlink unlink
+#endif
+
 sem_t *
-sem_open (const char *name, int oflag, ...)
+__sem_open (const char *name, int oflag, ...)
 {
   int fd;
   sem_t *result;
@@ -59,8 +65,8 @@  sem_open (const char *name, int oflag, ...)
   if ((oflag & O_CREAT) == 0 || (oflag & O_EXCL) == 0)
     {
     try_again:
-      fd = open (dirname.name,
-		 (oflag & ~(O_CREAT|O_ACCMODE)) | O_NOFOLLOW | O_RDWR);
+      fd = __open (dirname.name,
+		   (oflag & ~(O_CREAT|O_ACCMODE)) | O_NOFOLLOW | O_RDWR);
 
       if (fd == -1)
 	{
@@ -127,7 +133,7 @@  sem_open (const char *name, int oflag, ...)
 	    }
 
 	  /* Open the file.  Make sure we do not overwrite anything.  */
-	  fd = open (tmpfname, O_RDWR | O_CREAT | O_EXCL, mode);
+	  fd = __open (tmpfname, O_RDWR | O_CREAT | O_EXCL, mode);
 	  if (fd == -1)
 	    {
 	      if (errno == EEXIST)
@@ -154,15 +160,15 @@  sem_open (const char *name, int oflag, ...)
       if (TEMP_FAILURE_RETRY (write (fd, &sem.initsem, sizeof (sem_t)))
 	  == sizeof (sem_t)
 	  /* Map the sem_t structure from the file.  */
-	  && (result = (sem_t *) mmap (NULL, sizeof (sem_t),
-				       PROT_READ | PROT_WRITE, MAP_SHARED,
-				       fd, 0)) != MAP_FAILED)
+	  && (result = (sem_t *) __mmap (NULL, sizeof (sem_t),
+					 PROT_READ | PROT_WRITE, MAP_SHARED,
+					 fd, 0)) != MAP_FAILED)
 	{
 	  /* Create the file.  Don't overwrite an existing file.  */
-	  if (link (tmpfname, dirname.name) != 0)
+	  if (__link (tmpfname, dirname.name) != 0)
 	    {
 	      /* Undo the mapping.  */
-	      (void) munmap (result, sizeof (sem_t));
+	      (void) __munmap (result, sizeof (sem_t));
 
 	      /* Reinitialize 'result'.  */
 	      result = SEM_FAILED;
@@ -172,10 +178,10 @@  sem_open (const char *name, int oflag, ...)
 	      if ((oflag & O_EXCL) == 0 && errno == EEXIST)
 		{
 		  /* Remove the file.  */
-		  (void) unlink (tmpfname);
+		  (void) __unlink (tmpfname);
 
 		  /* Close the file.  */
-		  close (fd);
+		  __close (fd);
 
 		  goto try_again;
 		}
@@ -189,7 +195,7 @@  sem_open (const char *name, int oflag, ...)
 
       /* Now remove the temporary name.  This should never fail.  If
 	 it fails we leak a file name.  Better fix the kernel.  */
-      (void) unlink (tmpfname);
+      (void) __unlink (tmpfname);
     }
 
   /* Map the mmap error to the error we need.  */
@@ -201,7 +207,7 @@  sem_open (const char *name, int oflag, ...)
     {
       /* Do not disturb errno.  */
       int save = errno;
-      close (fd);
+      __close (fd);
       errno = save;
     }
 
@@ -212,3 +218,11 @@  out:
 
   return result;
 }
+#if PTHREAD_IN_LIBC
+versioned_symbol (libc, __sem_open, sem_open, GLIBC_2_34);
+# if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_1_1, GLIBC_2_34)
+compat_symbol (libpthread, __sem_open, sem_open, GLIBC_2_1_1);
+# endif
+#else /* !PTHREAD_IN_LIBC */
+strong_alias (__sem_open, sem_open)
+#endif
diff --git a/sysdeps/pthread/sem_routines.c b/sysdeps/pthread/sem_routines.c
index 34e6410729..9a78dab5d3 100644
--- a/sysdeps/pthread/sem_routines.c
+++ b/sysdeps/pthread/sem_routines.c
@@ -106,9 +106,9 @@  __sem_check_add_mapping (const char *name, int fd, sem_t *existing)
 	    {
 	      /* If the caller hasn't provided any map it now.  */
 	      if (existing == SEM_FAILED)
-		existing = (sem_t *) mmap (NULL, sizeof (sem_t),
-					   PROT_READ | PROT_WRITE, MAP_SHARED,
-					   fd, 0);
+		existing = (sem_t *) __mmap (NULL, sizeof (sem_t),
+					     PROT_READ | PROT_WRITE,
+					     MAP_SHARED, fd, 0);
 
 	      newp->dev = st.st_dev;
 	      newp->ino = st.st_ino;
@@ -136,7 +136,7 @@  __sem_check_add_mapping (const char *name, int fd, sem_t *existing)
     {
       /* Do not disturb errno.  */
       int save = errno;
-      munmap (existing, sizeof (sem_t));
+      __munmap (existing, sizeof (sem_t));
       errno = save;
     }
 
@@ -183,7 +183,7 @@  __sem_remove_mapping (sem_t *sem)
 	  /* Remove the record from the tree.  */
 	  __tdelete (rec, &sem_mappings, sem_search);
 
-	  if (munmap (rec->sem, sizeof (sem_t)) == -1)
+	  if (__munmap (rec->sem, sizeof (sem_t)) == -1)
 	    ret = false;
 
 	  free (rec);
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 0f54f3fa7a..26d440e487 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -1660,6 +1660,8 @@  GLIBC_2.17 seed48 F
 GLIBC_2.17 seed48_r F
 GLIBC_2.17 seekdir F
 GLIBC_2.17 select F
+GLIBC_2.17 sem_close F
+GLIBC_2.17 sem_open F
 GLIBC_2.17 semctl F
 GLIBC_2.17 semget F
 GLIBC_2.17 semop F
@@ -2347,6 +2349,8 @@  GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 sem_clockwait F
+GLIBC_2.34 sem_close F
+GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
index 0481baac9c..f8dc604dfa 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
@@ -39,11 +39,9 @@  GLIBC_2.17 pthread_setschedprio F
 GLIBC_2.17 pthread_sigqueue F
 GLIBC_2.17 pthread_timedjoin_np F
 GLIBC_2.17 pthread_tryjoin_np F
-GLIBC_2.17 sem_close F
 GLIBC_2.17 sem_destroy F
 GLIBC_2.17 sem_getvalue F
 GLIBC_2.17 sem_init F
-GLIBC_2.17 sem_open F
 GLIBC_2.17 sem_post F
 GLIBC_2.17 sem_timedwait F
 GLIBC_2.17 sem_trywait F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index c0d38ccd38..cef9391d34 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -1721,6 +1721,8 @@  GLIBC_2.1.1 getutmp F
 GLIBC_2.1.1 getutmpx F
 GLIBC_2.1.1 imaxabs F
 GLIBC_2.1.1 imaxdiv F
+GLIBC_2.1.1 sem_close F
+GLIBC_2.1.1 sem_open F
 GLIBC_2.1.1 strchrnul F
 GLIBC_2.1.1 xdr_hyper F
 GLIBC_2.1.1 xdr_int64_t F
@@ -2428,6 +2430,8 @@  GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 sem_clockwait F
+GLIBC_2.34 sem_close F
+GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
index 86b15ad0d7..8cc7e9bc57 100644
--- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
@@ -30,8 +30,6 @@  GLIBC_2.1 sem_init F
 GLIBC_2.1 sem_post F
 GLIBC_2.1 sem_trywait F
 GLIBC_2.1 sem_wait F
-GLIBC_2.1.1 sem_close F
-GLIBC_2.1.1 sem_open F
 GLIBC_2.1.1 sem_unlink F
 GLIBC_2.1.2 __libpthread_version_placeholder F
 GLIBC_2.11 pthread_sigqueue F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 79fad165e1..a9d30544f3 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1602,6 +1602,8 @@  GLIBC_2.32 seed48_r F
 GLIBC_2.32 seekdir F
 GLIBC_2.32 select F
 GLIBC_2.32 sem_clockwait F
+GLIBC_2.32 sem_close F
+GLIBC_2.32 sem_open F
 GLIBC_2.32 semctl F
 GLIBC_2.32 semget F
 GLIBC_2.32 semop F
@@ -2106,6 +2108,8 @@  GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 sem_clockwait F
+GLIBC_2.34 sem_close F
+GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
index f9bb47a3c5..9032472f97 100644
--- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
@@ -42,11 +42,9 @@  GLIBC_2.32 pthread_setschedprio F
 GLIBC_2.32 pthread_sigqueue F
 GLIBC_2.32 pthread_timedjoin_np F
 GLIBC_2.32 pthread_tryjoin_np F
-GLIBC_2.32 sem_close F
 GLIBC_2.32 sem_destroy F
 GLIBC_2.32 sem_getvalue F
 GLIBC_2.32 sem_init F
-GLIBC_2.32 sem_open F
 GLIBC_2.32 sem_post F
 GLIBC_2.32 sem_timedwait F
 GLIBC_2.32 sem_trywait F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 38cddc482a..637c85823b 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -253,6 +253,8 @@  GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 sem_clockwait F
+GLIBC_2.34 sem_close F
+GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
@@ -1838,6 +1840,8 @@  GLIBC_2.4 seed48 F
 GLIBC_2.4 seed48_r F
 GLIBC_2.4 seekdir F
 GLIBC_2.4 select F
+GLIBC_2.4 sem_close F
+GLIBC_2.4 sem_open F
 GLIBC_2.4 semctl F
 GLIBC_2.4 semget F
 GLIBC_2.4 semop F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
index e56c397379..4a8b77148b 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
@@ -47,11 +47,9 @@  GLIBC_2.4 pthread_setconcurrency F
 GLIBC_2.4 pthread_setschedprio F
 GLIBC_2.4 pthread_timedjoin_np F
 GLIBC_2.4 pthread_tryjoin_np F
-GLIBC_2.4 sem_close F
 GLIBC_2.4 sem_destroy F
 GLIBC_2.4 sem_getvalue F
 GLIBC_2.4 sem_init F
-GLIBC_2.4 sem_open F
 GLIBC_2.4 sem_post F
 GLIBC_2.4 sem_timedwait F
 GLIBC_2.4 sem_trywait F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 78ae8c3907..c2d82d24c3 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -250,6 +250,8 @@  GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 sem_clockwait F
+GLIBC_2.34 sem_close F
+GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
@@ -1835,6 +1837,8 @@  GLIBC_2.4 seed48 F
 GLIBC_2.4 seed48_r F
 GLIBC_2.4 seekdir F
 GLIBC_2.4 select F
+GLIBC_2.4 sem_close F
+GLIBC_2.4 sem_open F
 GLIBC_2.4 semctl F
 GLIBC_2.4 semget F
 GLIBC_2.4 semop F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
index e56c397379..4a8b77148b 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
@@ -47,11 +47,9 @@  GLIBC_2.4 pthread_setconcurrency F
 GLIBC_2.4 pthread_setschedprio F
 GLIBC_2.4 pthread_timedjoin_np F
 GLIBC_2.4 pthread_tryjoin_np F
-GLIBC_2.4 sem_close F
 GLIBC_2.4 sem_destroy F
 GLIBC_2.4 sem_getvalue F
 GLIBC_2.4 sem_init F
-GLIBC_2.4 sem_open F
 GLIBC_2.4 sem_post F
 GLIBC_2.4 sem_timedwait F
 GLIBC_2.4 sem_trywait F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 66dae5ded1..de4c614097 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -1663,6 +1663,8 @@  GLIBC_2.29 seed48 F
 GLIBC_2.29 seed48_r F
 GLIBC_2.29 seekdir F
 GLIBC_2.29 select F
+GLIBC_2.29 sem_close F
+GLIBC_2.29 sem_open F
 GLIBC_2.29 semctl F
 GLIBC_2.29 semget F
 GLIBC_2.29 semop F
@@ -2290,6 +2292,8 @@  GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 sem_clockwait F
+GLIBC_2.34 sem_close F
+GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
index 6fd5e8061a..b16ffe2dd8 100644
--- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
@@ -41,11 +41,9 @@  GLIBC_2.29 pthread_setschedprio F
 GLIBC_2.29 pthread_sigqueue F
 GLIBC_2.29 pthread_timedjoin_np F
 GLIBC_2.29 pthread_tryjoin_np F
-GLIBC_2.29 sem_close F
 GLIBC_2.29 sem_destroy F
 GLIBC_2.29 sem_getvalue F
 GLIBC_2.29 sem_init F
-GLIBC_2.29 sem_open F
 GLIBC_2.29 sem_post F
 GLIBC_2.29 sem_timedwait F
 GLIBC_2.29 sem_trywait F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 46875d7402..83bb694e02 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -1452,6 +1452,8 @@  GLIBC_2.2 seed48 F
 GLIBC_2.2 seed48_r F
 GLIBC_2.2 seekdir F
 GLIBC_2.2 select F
+GLIBC_2.2 sem_close F
+GLIBC_2.2 sem_open F
 GLIBC_2.2 semctl F
 GLIBC_2.2 semget F
 GLIBC_2.2 semop F
@@ -2241,6 +2243,8 @@  GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 sem_clockwait F
+GLIBC_2.34 sem_close F
+GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
index c6e9eee45b..c07e43ba36 100644
--- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
@@ -31,11 +31,9 @@  GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join F
 GLIBC_2.2 pthread_setconcurrency F
-GLIBC_2.2 sem_close F
 GLIBC_2.2 sem_destroy F
 GLIBC_2.2 sem_getvalue F
 GLIBC_2.2 sem_init F
-GLIBC_2.2 sem_open F
 GLIBC_2.2 sem_post F
 GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 sem_trywait F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 5d8ca2e122..361856e177 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -1727,6 +1727,8 @@  GLIBC_2.1.1 getutmp F
 GLIBC_2.1.1 getutmpx F
 GLIBC_2.1.1 imaxabs F
 GLIBC_2.1.1 imaxdiv F
+GLIBC_2.1.1 sem_close F
+GLIBC_2.1.1 sem_open F
 GLIBC_2.1.1 strchrnul F
 GLIBC_2.1.1 xdr_hyper F
 GLIBC_2.1.1 xdr_int64_t F
@@ -2418,6 +2420,8 @@  GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 sem_clockwait F
+GLIBC_2.34 sem_close F
+GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
index 30bc064058..be013d96e2 100644
--- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
@@ -30,8 +30,6 @@  GLIBC_2.1 sem_init F
 GLIBC_2.1 sem_post F
 GLIBC_2.1 sem_trywait F
 GLIBC_2.1 sem_wait F
-GLIBC_2.1.1 sem_close F
-GLIBC_2.1.1 sem_open F
 GLIBC_2.1.1 sem_unlink F
 GLIBC_2.1.2 __libpthread_version_placeholder F
 GLIBC_2.11 pthread_sigqueue F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index c14a38e14c..9be17c7672 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -1473,6 +1473,8 @@  GLIBC_2.2 seed48 F
 GLIBC_2.2 seed48_r F
 GLIBC_2.2 seekdir F
 GLIBC_2.2 select F
+GLIBC_2.2 sem_close F
+GLIBC_2.2 sem_open F
 GLIBC_2.2 semctl F
 GLIBC_2.2 semget F
 GLIBC_2.2 semop F
@@ -2275,6 +2277,8 @@  GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 sem_clockwait F
+GLIBC_2.34 sem_close F
+GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
index 6f15ac3cb1..42c7615f64 100644
--- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
@@ -31,11 +31,9 @@  GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join F
 GLIBC_2.2 pthread_setconcurrency F
-GLIBC_2.2 sem_close F
 GLIBC_2.2 sem_destroy F
 GLIBC_2.2 sem_getvalue F
 GLIBC_2.2 sem_init F
-GLIBC_2.2 sem_open F
 GLIBC_2.2 sem_post F
 GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 sem_trywait F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index aabed7c366..8ded141557 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -254,6 +254,8 @@  GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 sem_clockwait F
+GLIBC_2.34 sem_close F
+GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
@@ -1818,6 +1820,8 @@  GLIBC_2.4 seed48 F
 GLIBC_2.4 seed48_r F
 GLIBC_2.4 seekdir F
 GLIBC_2.4 select F
+GLIBC_2.4 sem_close F
+GLIBC_2.4 sem_open F
 GLIBC_2.4 semctl F
 GLIBC_2.4 semget F
 GLIBC_2.4 semop F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
index e56c397379..4a8b77148b 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
@@ -47,11 +47,9 @@  GLIBC_2.4 pthread_setconcurrency F
 GLIBC_2.4 pthread_setschedprio F
 GLIBC_2.4 pthread_timedjoin_np F
 GLIBC_2.4 pthread_tryjoin_np F
-GLIBC_2.4 sem_close F
 GLIBC_2.4 sem_destroy F
 GLIBC_2.4 sem_getvalue F
 GLIBC_2.4 sem_init F
-GLIBC_2.4 sem_open F
 GLIBC_2.4 sem_post F
 GLIBC_2.4 sem_timedwait F
 GLIBC_2.4 sem_trywait F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 4a3b9f25fa..e8a006c424 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -1683,6 +1683,8 @@  GLIBC_2.1.1 getutmp F
 GLIBC_2.1.1 getutmpx F
 GLIBC_2.1.1 imaxabs F
 GLIBC_2.1.1 imaxdiv F
+GLIBC_2.1.1 sem_close F
+GLIBC_2.1.1 sem_open F
 GLIBC_2.1.1 strchrnul F
 GLIBC_2.1.1 xdr_hyper F
 GLIBC_2.1.1 xdr_int64_t F
@@ -2361,6 +2363,8 @@  GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 sem_clockwait F
+GLIBC_2.34 sem_close F
+GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
index 30bc064058..be013d96e2 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
@@ -30,8 +30,6 @@  GLIBC_2.1 sem_init F
 GLIBC_2.1 sem_post F
 GLIBC_2.1 sem_trywait F
 GLIBC_2.1 sem_wait F
-GLIBC_2.1.1 sem_close F
-GLIBC_2.1.1 sem_open F
 GLIBC_2.1.1 sem_unlink F
 GLIBC_2.1.2 __libpthread_version_placeholder F
 GLIBC_2.11 pthread_sigqueue F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 82ac489f32..a4907fad02 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -1662,6 +1662,8 @@  GLIBC_2.18 seed48 F
 GLIBC_2.18 seed48_r F
 GLIBC_2.18 seekdir F
 GLIBC_2.18 select F
+GLIBC_2.18 sem_close F
+GLIBC_2.18 sem_open F
 GLIBC_2.18 semctl F
 GLIBC_2.18 semget F
 GLIBC_2.18 semop F
@@ -2341,6 +2343,8 @@  GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 sem_clockwait F
+GLIBC_2.34 sem_close F
+GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
index 703310b8dd..8b3ddcbda9 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
@@ -41,11 +41,9 @@  GLIBC_2.18 pthread_setschedprio F
 GLIBC_2.18 pthread_sigqueue F
 GLIBC_2.18 pthread_timedjoin_np F
 GLIBC_2.18 pthread_tryjoin_np F
-GLIBC_2.18 sem_close F
 GLIBC_2.18 sem_destroy F
 GLIBC_2.18 sem_getvalue F
 GLIBC_2.18 sem_init F
-GLIBC_2.18 sem_open F
 GLIBC_2.18 sem_post F
 GLIBC_2.18 sem_timedwait F
 GLIBC_2.18 sem_trywait F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 3ec2794b5b..c5282a3fd1 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -1662,6 +1662,8 @@  GLIBC_2.18 seed48 F
 GLIBC_2.18 seed48_r F
 GLIBC_2.18 seekdir F
 GLIBC_2.18 select F
+GLIBC_2.18 sem_close F
+GLIBC_2.18 sem_open F
 GLIBC_2.18 semctl F
 GLIBC_2.18 semget F
 GLIBC_2.18 semop F
@@ -2338,6 +2340,8 @@  GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 sem_clockwait F
+GLIBC_2.34 sem_close F
+GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
index 703310b8dd..8b3ddcbda9 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
@@ -41,11 +41,9 @@  GLIBC_2.18 pthread_setschedprio F
 GLIBC_2.18 pthread_sigqueue F
 GLIBC_2.18 pthread_timedjoin_np F
 GLIBC_2.18 pthread_tryjoin_np F
-GLIBC_2.18 sem_close F
 GLIBC_2.18 sem_destroy F
 GLIBC_2.18 sem_getvalue F
 GLIBC_2.18 sem_init F
-GLIBC_2.18 sem_open F
 GLIBC_2.18 sem_post F
 GLIBC_2.18 sem_timedwait F
 GLIBC_2.18 sem_trywait F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index ff623c22f3..a6fb6ac493 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -1888,6 +1888,8 @@  GLIBC_2.2 rresvport_af F
 GLIBC_2.2 rtime F
 GLIBC_2.2 ruserok_af F
 GLIBC_2.2 scandir64 F
+GLIBC_2.2 sem_close F
+GLIBC_2.2 sem_open F
 GLIBC_2.2 semctl F
 GLIBC_2.2 sendfile F
 GLIBC_2.2 setrlimit64 F
@@ -2324,6 +2326,8 @@  GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 sem_clockwait F
+GLIBC_2.34 sem_close F
+GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
index 8444fb5280..d79cc95dfd 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
@@ -38,11 +38,9 @@  GLIBC_2.2 pthread_create F
 GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_setconcurrency F
-GLIBC_2.2 sem_close F
 GLIBC_2.2 sem_destroy F
 GLIBC_2.2 sem_getvalue F
 GLIBC_2.2 sem_init F
-GLIBC_2.2 sem_open F
 GLIBC_2.2 sem_post F
 GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 sem_trywait F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 6cecd92386..abfe1226b1 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -1886,6 +1886,8 @@  GLIBC_2.2 rresvport_af F
 GLIBC_2.2 rtime F
 GLIBC_2.2 ruserok_af F
 GLIBC_2.2 scandir64 F
+GLIBC_2.2 sem_close F
+GLIBC_2.2 sem_open F
 GLIBC_2.2 semctl F
 GLIBC_2.2 sendfile F
 GLIBC_2.2 setrlimit64 F
@@ -2322,6 +2324,8 @@  GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 sem_clockwait F
+GLIBC_2.34 sem_close F
+GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
index 8444fb5280..d79cc95dfd 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
@@ -38,11 +38,9 @@  GLIBC_2.2 pthread_create F
 GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_setconcurrency F
-GLIBC_2.2 sem_close F
 GLIBC_2.2 sem_destroy F
 GLIBC_2.2 sem_getvalue F
 GLIBC_2.2 sem_init F
-GLIBC_2.2 sem_open F
 GLIBC_2.2 sem_post F
 GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 sem_trywait F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 858fa17010..30851df44a 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -1886,6 +1886,8 @@  GLIBC_2.2 rresvport_af F
 GLIBC_2.2 rtime F
 GLIBC_2.2 ruserok_af F
 GLIBC_2.2 scandir64 F
+GLIBC_2.2 sem_close F
+GLIBC_2.2 sem_open F
 GLIBC_2.2 sendfile F
 GLIBC_2.2 setrlimit64 F
 GLIBC_2.2 setutxent F
@@ -2330,6 +2332,8 @@  GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 sem_clockwait F
+GLIBC_2.34 sem_close F
+GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 5c72417ee3..81d37d6322 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -1882,6 +1882,8 @@  GLIBC_2.2 rresvport_af F
 GLIBC_2.2 rtime F
 GLIBC_2.2 ruserok_af F
 GLIBC_2.2 scandir64 F
+GLIBC_2.2 sem_close F
+GLIBC_2.2 sem_open F
 GLIBC_2.2 sendfile F
 GLIBC_2.2 setrlimit64 F
 GLIBC_2.2 setutxent F
@@ -2324,6 +2326,8 @@  GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 sem_clockwait F
+GLIBC_2.34 sem_close F
+GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index b9cd5703da..a5dbb107db 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -1705,6 +1705,8 @@  GLIBC_2.21 seed48 F
 GLIBC_2.21 seed48_r F
 GLIBC_2.21 seekdir F
 GLIBC_2.21 select F
+GLIBC_2.21 sem_close F
+GLIBC_2.21 sem_open F
 GLIBC_2.21 semctl F
 GLIBC_2.21 semget F
 GLIBC_2.21 semop F
@@ -2380,6 +2382,8 @@  GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 sem_clockwait F
+GLIBC_2.34 sem_close F
+GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
index 6e4845723f..e8f9bdeef4 100644
--- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
@@ -41,11 +41,9 @@  GLIBC_2.21 pthread_setschedprio F
 GLIBC_2.21 pthread_sigqueue F
 GLIBC_2.21 pthread_timedjoin_np F
 GLIBC_2.21 pthread_tryjoin_np F
-GLIBC_2.21 sem_close F
 GLIBC_2.21 sem_destroy F
 GLIBC_2.21 sem_getvalue F
 GLIBC_2.21 sem_init F
-GLIBC_2.21 sem_open F
 GLIBC_2.21 sem_post F
 GLIBC_2.21 sem_timedwait F
 GLIBC_2.21 sem_trywait F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 2384127281..9f512cfe62 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -1688,6 +1688,8 @@  GLIBC_2.1.1 getutmp F
 GLIBC_2.1.1 getutmpx F
 GLIBC_2.1.1 imaxabs F
 GLIBC_2.1.1 imaxdiv F
+GLIBC_2.1.1 sem_close F
+GLIBC_2.1.1 sem_open F
 GLIBC_2.1.1 strchrnul F
 GLIBC_2.1.1 xdr_hyper F
 GLIBC_2.1.1 xdr_int64_t F
@@ -2388,6 +2390,8 @@  GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 sem_clockwait F
+GLIBC_2.34 sem_close F
+GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
index 2614e1e6b9..31ef39020a 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
@@ -30,8 +30,6 @@  GLIBC_2.1 sem_init F
 GLIBC_2.1 sem_post F
 GLIBC_2.1 sem_trywait F
 GLIBC_2.1 sem_wait F
-GLIBC_2.1.1 sem_close F
-GLIBC_2.1.1 sem_open F
 GLIBC_2.1.1 sem_unlink F
 GLIBC_2.1.2 __libpthread_version_placeholder F
 GLIBC_2.11 pthread_sigqueue F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index ce47bd3777..99aad58eaa 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -1688,6 +1688,8 @@  GLIBC_2.1.1 getutmp F
 GLIBC_2.1.1 getutmpx F
 GLIBC_2.1.1 imaxabs F
 GLIBC_2.1.1 imaxdiv F
+GLIBC_2.1.1 sem_close F
+GLIBC_2.1.1 sem_open F
 GLIBC_2.1.1 strchrnul F
 GLIBC_2.1.1 xdr_hyper F
 GLIBC_2.1.1 xdr_int64_t F
@@ -2421,6 +2423,8 @@  GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 sem_clockwait F
+GLIBC_2.34 sem_close F
+GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 1be222ec73..466f6b5d7b 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -1577,6 +1577,8 @@  GLIBC_2.3 seed48 F
 GLIBC_2.3 seed48_r F
 GLIBC_2.3 seekdir F
 GLIBC_2.3 select F
+GLIBC_2.3 sem_close F
+GLIBC_2.3 sem_open F
 GLIBC_2.3 semctl F
 GLIBC_2.3 semget F
 GLIBC_2.3 semop F
@@ -2242,6 +2244,8 @@  GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 sem_clockwait F
+GLIBC_2.34 sem_close F
+GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
index af39b79df0..02c32b9aa6 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
@@ -34,11 +34,9 @@  GLIBC_2.3 pthread_getconcurrency F
 GLIBC_2.3 pthread_getcpuclockid F
 GLIBC_2.3 pthread_join F
 GLIBC_2.3 pthread_setconcurrency F
-GLIBC_2.3 sem_close F
 GLIBC_2.3 sem_destroy F
 GLIBC_2.3 sem_getvalue F
 GLIBC_2.3 sem_init F
-GLIBC_2.3 sem_open F
 GLIBC_2.3 sem_post F
 GLIBC_2.3 sem_timedwait F
 GLIBC_2.3 sem_trywait F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 26de7bc08f..b1a2922377 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -1748,6 +1748,8 @@  GLIBC_2.17 seed48 F
 GLIBC_2.17 seed48_r F
 GLIBC_2.17 seekdir F
 GLIBC_2.17 select F
+GLIBC_2.17 sem_close F
+GLIBC_2.17 sem_open F
 GLIBC_2.17 semctl F
 GLIBC_2.17 semget F
 GLIBC_2.17 semop F
@@ -2543,6 +2545,8 @@  GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 sem_clockwait F
+GLIBC_2.34 sem_close F
+GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
index 0481baac9c..f8dc604dfa 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
@@ -39,11 +39,9 @@  GLIBC_2.17 pthread_setschedprio F
 GLIBC_2.17 pthread_sigqueue F
 GLIBC_2.17 pthread_timedjoin_np F
 GLIBC_2.17 pthread_tryjoin_np F
-GLIBC_2.17 sem_close F
 GLIBC_2.17 sem_destroy F
 GLIBC_2.17 sem_getvalue F
 GLIBC_2.17 sem_init F
-GLIBC_2.17 sem_open F
 GLIBC_2.17 sem_post F
 GLIBC_2.17 sem_timedwait F
 GLIBC_2.17 sem_trywait F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 423a563d6a..7ed6c10b7c 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1604,6 +1604,8 @@  GLIBC_2.33 seed48_r F
 GLIBC_2.33 seekdir F
 GLIBC_2.33 select F
 GLIBC_2.33 sem_clockwait F
+GLIBC_2.33 sem_close F
+GLIBC_2.33 sem_open F
 GLIBC_2.33 semctl F
 GLIBC_2.33 semget F
 GLIBC_2.33 semop F
@@ -2108,6 +2110,8 @@  GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 sem_clockwait F
+GLIBC_2.34 sem_close F
+GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
index 2c05fed5de..1a87403132 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
@@ -42,11 +42,9 @@  GLIBC_2.33 pthread_setschedprio F
 GLIBC_2.33 pthread_sigqueue F
 GLIBC_2.33 pthread_timedjoin_np F
 GLIBC_2.33 pthread_tryjoin_np F
-GLIBC_2.33 sem_close F
 GLIBC_2.33 sem_destroy F
 GLIBC_2.33 sem_getvalue F
 GLIBC_2.33 sem_init F
-GLIBC_2.33 sem_open F
 GLIBC_2.33 sem_post F
 GLIBC_2.33 sem_timedwait F
 GLIBC_2.33 sem_trywait F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 04e587b23c..a0f5d0f988 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -1652,6 +1652,8 @@  GLIBC_2.27 seed48 F
 GLIBC_2.27 seed48_r F
 GLIBC_2.27 seekdir F
 GLIBC_2.27 select F
+GLIBC_2.27 sem_close F
+GLIBC_2.27 sem_open F
 GLIBC_2.27 semctl F
 GLIBC_2.27 semget F
 GLIBC_2.27 semop F
@@ -2308,6 +2310,8 @@  GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 sem_clockwait F
+GLIBC_2.34 sem_close F
+GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
index 24c1fc45ce..122cb26879 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
@@ -41,11 +41,9 @@  GLIBC_2.27 pthread_setschedprio F
 GLIBC_2.27 pthread_sigqueue F
 GLIBC_2.27 pthread_timedjoin_np F
 GLIBC_2.27 pthread_tryjoin_np F
-GLIBC_2.27 sem_close F
 GLIBC_2.27 sem_destroy F
 GLIBC_2.27 sem_getvalue F
 GLIBC_2.27 sem_init F
-GLIBC_2.27 sem_open F
 GLIBC_2.27 sem_post F
 GLIBC_2.27 sem_timedwait F
 GLIBC_2.27 sem_trywait F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 7b269ae840..f2a59ab190 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -1680,6 +1680,8 @@  GLIBC_2.1.1 getutmp F
 GLIBC_2.1.1 getutmpx F
 GLIBC_2.1.1 imaxabs F
 GLIBC_2.1.1 imaxdiv F
+GLIBC_2.1.1 sem_close F
+GLIBC_2.1.1 sem_open F
 GLIBC_2.1.1 strchrnul F
 GLIBC_2.1.1 xdr_hyper F
 GLIBC_2.1.1 xdr_int64_t F
@@ -2386,6 +2388,8 @@  GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 sem_clockwait F
+GLIBC_2.34 sem_close F
+GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
index 17893bf306..a6adbf2c0c 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
@@ -30,8 +30,6 @@  GLIBC_2.1 sem_init F
 GLIBC_2.1 sem_post F
 GLIBC_2.1 sem_trywait F
 GLIBC_2.1 sem_wait F
-GLIBC_2.1.1 sem_close F
-GLIBC_2.1.1 sem_open F
 GLIBC_2.1.1 sem_unlink F
 GLIBC_2.1.2 __libpthread_version_placeholder F
 GLIBC_2.11 pthread_sigqueue F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index c2af5d0ece..232d00b8af 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -1470,6 +1470,8 @@  GLIBC_2.2 seed48 F
 GLIBC_2.2 seed48_r F
 GLIBC_2.2 seekdir F
 GLIBC_2.2 select F
+GLIBC_2.2 sem_close F
+GLIBC_2.2 sem_open F
 GLIBC_2.2 semctl F
 GLIBC_2.2 semget F
 GLIBC_2.2 semop F
@@ -2279,6 +2281,8 @@  GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 sem_clockwait F
+GLIBC_2.34 sem_close F
+GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
index 3f42d9dcc5..6b6f17b0dd 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
@@ -32,11 +32,9 @@  GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join F
 GLIBC_2.2 pthread_setconcurrency F
-GLIBC_2.2 sem_close F
 GLIBC_2.2 sem_destroy F
 GLIBC_2.2 sem_getvalue F
 GLIBC_2.2 sem_init F
-GLIBC_2.2 sem_open F
 GLIBC_2.2 sem_post F
 GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 sem_trywait F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 00ea530f98..e4eb7c0042 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -1456,6 +1456,8 @@  GLIBC_2.2 seed48 F
 GLIBC_2.2 seed48_r F
 GLIBC_2.2 seekdir F
 GLIBC_2.2 select F
+GLIBC_2.2 sem_close F
+GLIBC_2.2 sem_open F
 GLIBC_2.2 semctl F
 GLIBC_2.2 semget F
 GLIBC_2.2 semop F
@@ -2248,6 +2250,8 @@  GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 sem_clockwait F
+GLIBC_2.34 sem_close F
+GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
index c6e9eee45b..c07e43ba36 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
@@ -31,11 +31,9 @@  GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join F
 GLIBC_2.2 pthread_setconcurrency F
-GLIBC_2.2 sem_close F
 GLIBC_2.2 sem_destroy F
 GLIBC_2.2 sem_getvalue F
 GLIBC_2.2 sem_init F
-GLIBC_2.2 sem_open F
 GLIBC_2.2 sem_post F
 GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 sem_trywait F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index ea92a1c366..2a019d5f89 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -1456,6 +1456,8 @@  GLIBC_2.2 seed48 F
 GLIBC_2.2 seed48_r F
 GLIBC_2.2 seekdir F
 GLIBC_2.2 select F
+GLIBC_2.2 sem_close F
+GLIBC_2.2 sem_open F
 GLIBC_2.2 semctl F
 GLIBC_2.2 semget F
 GLIBC_2.2 semop F
@@ -2245,6 +2247,8 @@  GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 sem_clockwait F
+GLIBC_2.34 sem_close F
+GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
index c6e9eee45b..c07e43ba36 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
@@ -31,11 +31,9 @@  GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join F
 GLIBC_2.2 pthread_setconcurrency F
-GLIBC_2.2 sem_close F
 GLIBC_2.2 sem_destroy F
 GLIBC_2.2 sem_getvalue F
 GLIBC_2.2 sem_init F
-GLIBC_2.2 sem_open F
 GLIBC_2.2 sem_post F
 GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 sem_trywait F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index f0d5866658..a0e6b25aeb 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -1681,6 +1681,8 @@  GLIBC_2.1.1 getutmp F
 GLIBC_2.1.1 getutmpx F
 GLIBC_2.1.1 imaxabs F
 GLIBC_2.1.1 imaxdiv F
+GLIBC_2.1.1 sem_close F
+GLIBC_2.1.1 sem_open F
 GLIBC_2.1.1 strchrnul F
 GLIBC_2.1.1 xdr_hyper F
 GLIBC_2.1.1 xdr_int64_t F
@@ -2377,6 +2379,8 @@  GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 sem_clockwait F
+GLIBC_2.34 sem_close F
+GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
index 86b15ad0d7..8cc7e9bc57 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
@@ -30,8 +30,6 @@  GLIBC_2.1 sem_init F
 GLIBC_2.1 sem_post F
 GLIBC_2.1 sem_trywait F
 GLIBC_2.1 sem_wait F
-GLIBC_2.1.1 sem_close F
-GLIBC_2.1.1 sem_open F
 GLIBC_2.1.1 sem_unlink F
 GLIBC_2.1.2 __libpthread_version_placeholder F
 GLIBC_2.11 pthread_sigqueue F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index da0c9e1e86..f836c0c88b 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -1499,6 +1499,8 @@  GLIBC_2.2 seed48 F
 GLIBC_2.2 seed48_r F
 GLIBC_2.2 seekdir F
 GLIBC_2.2 select F
+GLIBC_2.2 sem_close F
+GLIBC_2.2 sem_open F
 GLIBC_2.2 semctl F
 GLIBC_2.2 semget F
 GLIBC_2.2 semop F
@@ -2296,6 +2298,8 @@  GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 sem_clockwait F
+GLIBC_2.34 sem_close F
+GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
index 6f15ac3cb1..42c7615f64 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
@@ -31,11 +31,9 @@  GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join F
 GLIBC_2.2 pthread_setconcurrency F
-GLIBC_2.2 sem_close F
 GLIBC_2.2 sem_destroy F
 GLIBC_2.2 sem_getvalue F
 GLIBC_2.2 sem_init F
-GLIBC_2.2 sem_open F
 GLIBC_2.2 sem_post F
 GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 sem_trywait F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 33b4b7a121..8c48f6fbd0 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -1467,6 +1467,8 @@  GLIBC_2.2.5 seed48 F
 GLIBC_2.2.5 seed48_r F
 GLIBC_2.2.5 seekdir F
 GLIBC_2.2.5 select F
+GLIBC_2.2.5 sem_close F
+GLIBC_2.2.5 sem_open F
 GLIBC_2.2.5 semctl F
 GLIBC_2.2.5 semget F
 GLIBC_2.2.5 semop F
@@ -2257,6 +2259,8 @@  GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 sem_clockwait F
+GLIBC_2.34 sem_close F
+GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
index 3516798f9a..9a98ac62d7 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
@@ -31,11 +31,9 @@  GLIBC_2.2.5 pthread_getconcurrency F
 GLIBC_2.2.5 pthread_getcpuclockid F
 GLIBC_2.2.5 pthread_join F
 GLIBC_2.2.5 pthread_setconcurrency F
-GLIBC_2.2.5 sem_close F
 GLIBC_2.2.5 sem_destroy F
 GLIBC_2.2.5 sem_getvalue F
 GLIBC_2.2.5 sem_init F
-GLIBC_2.2.5 sem_open F
 GLIBC_2.2.5 sem_post F
 GLIBC_2.2.5 sem_timedwait F
 GLIBC_2.2.5 sem_trywait F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 0a1215efeb..f96ad30cef 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -1666,6 +1666,8 @@  GLIBC_2.16 seed48 F
 GLIBC_2.16 seed48_r F
 GLIBC_2.16 seekdir F
 GLIBC_2.16 select F
+GLIBC_2.16 sem_close F
+GLIBC_2.16 sem_open F
 GLIBC_2.16 semctl F
 GLIBC_2.16 semget F
 GLIBC_2.16 semop F
@@ -2362,6 +2364,8 @@  GLIBC_2.34 pthread_spin_trylock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 sem_clockwait F
+GLIBC_2.34 sem_close F
+GLIBC_2.34 sem_open F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
index b2c9bca89c..025b02f3de 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
@@ -39,11 +39,9 @@  GLIBC_2.16 pthread_setschedprio F
 GLIBC_2.16 pthread_sigqueue F
 GLIBC_2.16 pthread_timedjoin_np F
 GLIBC_2.16 pthread_tryjoin_np F
-GLIBC_2.16 sem_close F
 GLIBC_2.16 sem_destroy F
 GLIBC_2.16 sem_getvalue F
 GLIBC_2.16 sem_init F
-GLIBC_2.16 sem_open F
 GLIBC_2.16 sem_post F
 GLIBC_2.16 sem_timedwait F
 GLIBC_2.16 sem_trywait F