[10/11] nptl: Move sem_unlink into libc

Message ID a983ab8a722ea4bfa2aa340a552a286c21ca9788.1620049438.git.fweimer@redhat.com
State Committed
Commit 990c8ffd3a83232365f346413e394d4431875899
Delegated to: Adhemerval Zanella Netto
Headers
Series nptl: Move semaphore functions into libc |

Commit Message

Florian Weimer May 3, 2021, 1:52 p.m. UTC
  The symbol was moved using scripts/move-symbol-to-libc.py.

A small adjust to the sem_unlink implementation is necessary to avoid
a check-localplt failure.

A placeholder symbol to keep the GLIBC_2.1.1 version alive in
libpthread is added with this commit.
---
 nptl/Makefile                                   |  2 +-
 nptl/Versions                                   |  4 +++-
 nptl/libpthread-compat.c                        |  4 ++++
 sysdeps/pthread/sem_unlink.c                    | 17 +++++++++++++++--
 sysdeps/unix/sysv/linux/aarch64/libc.abilist    |  2 ++
 .../unix/sysv/linux/aarch64/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/alpha/libc.abilist      |  2 ++
 .../unix/sysv/linux/alpha/libpthread.abilist    |  2 +-
 sysdeps/unix/sysv/linux/arc/libc.abilist        |  2 ++
 sysdeps/unix/sysv/linux/arc/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/arm/be/libc.abilist     |  2 ++
 .../unix/sysv/linux/arm/be/libpthread.abilist   |  1 -
 sysdeps/unix/sysv/linux/arm/le/libc.abilist     |  2 ++
 .../unix/sysv/linux/arm/le/libpthread.abilist   |  1 -
 sysdeps/unix/sysv/linux/csky/libc.abilist       |  2 ++
 sysdeps/unix/sysv/linux/csky/libpthread.abilist |  1 -
 sysdeps/unix/sysv/linux/hppa/libc.abilist       |  2 ++
 sysdeps/unix/sysv/linux/hppa/libpthread.abilist |  1 -
 sysdeps/unix/sysv/linux/i386/libc.abilist       |  2 ++
 sysdeps/unix/sysv/linux/i386/libpthread.abilist |  2 +-
 sysdeps/unix/sysv/linux/ia64/libc.abilist       |  2 ++
 sysdeps/unix/sysv/linux/ia64/libpthread.abilist |  1 -
 .../unix/sysv/linux/m68k/coldfire/libc.abilist  |  2 ++
 .../sysv/linux/m68k/coldfire/libpthread.abilist |  1 -
 .../unix/sysv/linux/m68k/m680x0/libc.abilist    |  2 ++
 .../sysv/linux/m68k/m680x0/libpthread.abilist   |  2 +-
 .../unix/sysv/linux/microblaze/be/libc.abilist  |  2 ++
 .../sysv/linux/microblaze/be/libpthread.abilist |  1 -
 .../unix/sysv/linux/microblaze/le/libc.abilist  |  2 ++
 .../sysv/linux/microblaze/le/libpthread.abilist |  1 -
 .../sysv/linux/mips/mips32/fpu/libc.abilist     |  2 ++
 .../sysv/linux/mips/mips32/libpthread.abilist   |  1 -
 .../sysv/linux/mips/mips32/nofpu/libc.abilist   |  2 ++
 .../sysv/linux/mips/mips64/libpthread.abilist   |  1 -
 .../sysv/linux/mips/mips64/n32/libc.abilist     |  2 ++
 .../sysv/linux/mips/mips64/n64/libc.abilist     |  2 ++
 sysdeps/unix/sysv/linux/nios2/libc.abilist      |  2 ++
 .../unix/sysv/linux/nios2/libpthread.abilist    |  1 -
 .../linux/powerpc/powerpc32/fpu/libc.abilist    |  2 ++
 .../linux/powerpc/powerpc32/libpthread.abilist  |  2 +-
 .../linux/powerpc/powerpc32/nofpu/libc.abilist  |  2 ++
 .../linux/powerpc/powerpc64/be/libc.abilist     |  2 ++
 .../powerpc/powerpc64/be/libpthread.abilist     |  1 -
 .../linux/powerpc/powerpc64/le/libc.abilist     |  2 ++
 .../powerpc/powerpc64/le/libpthread.abilist     |  1 -
 sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist |  2 ++
 .../sysv/linux/riscv/rv32/libpthread.abilist    |  1 -
 sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist |  2 ++
 .../sysv/linux/riscv/rv64/libpthread.abilist    |  1 -
 .../unix/sysv/linux/s390/s390-32/libc.abilist   |  2 ++
 .../sysv/linux/s390/s390-32/libpthread.abilist  |  2 +-
 .../unix/sysv/linux/s390/s390-64/libc.abilist   |  2 ++
 .../sysv/linux/s390/s390-64/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/sh/be/libc.abilist      |  2 ++
 .../unix/sysv/linux/sh/be/libpthread.abilist    |  1 -
 sysdeps/unix/sysv/linux/sh/le/libc.abilist      |  2 ++
 .../unix/sysv/linux/sh/le/libpthread.abilist    |  1 -
 .../unix/sysv/linux/sparc/sparc32/libc.abilist  |  2 ++
 .../sysv/linux/sparc/sparc32/libpthread.abilist |  2 +-
 .../unix/sysv/linux/sparc/sparc64/libc.abilist  |  2 ++
 .../sysv/linux/sparc/sparc64/libpthread.abilist |  1 -
 sysdeps/unix/sysv/linux/x86_64/64/libc.abilist  |  2 ++
 .../sysv/linux/x86_64/64/libpthread.abilist     |  1 -
 sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist |  2 ++
 .../sysv/linux/x86_64/x32/libpthread.abilist    |  1 -
 65 files changed, 93 insertions(+), 33 deletions(-)
  

Comments

Adhemerval Zanella May 5, 2021, 2:37 p.m. UTC | #1
On 03/05/2021 10:52, Florian Weimer via Libc-alpha wrote:
> The symbol was moved using scripts/move-symbol-to-libc.py.
> 
> A small adjust to the sem_unlink implementation is necessary to avoid
> a check-localplt failure.
> 
> A placeholder symbol to keep the GLIBC_2.1.1 version alive in
> libpthread is added with this commit.

LGTM, thanks.

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

> ---
>  nptl/Makefile                                   |  2 +-
>  nptl/Versions                                   |  4 +++-
>  nptl/libpthread-compat.c                        |  4 ++++
>  sysdeps/pthread/sem_unlink.c                    | 17 +++++++++++++++--
>  sysdeps/unix/sysv/linux/aarch64/libc.abilist    |  2 ++
>  .../unix/sysv/linux/aarch64/libpthread.abilist  |  1 -
>  sysdeps/unix/sysv/linux/alpha/libc.abilist      |  2 ++
>  .../unix/sysv/linux/alpha/libpthread.abilist    |  2 +-
>  sysdeps/unix/sysv/linux/arc/libc.abilist        |  2 ++
>  sysdeps/unix/sysv/linux/arc/libpthread.abilist  |  1 -
>  sysdeps/unix/sysv/linux/arm/be/libc.abilist     |  2 ++
>  .../unix/sysv/linux/arm/be/libpthread.abilist   |  1 -
>  sysdeps/unix/sysv/linux/arm/le/libc.abilist     |  2 ++
>  .../unix/sysv/linux/arm/le/libpthread.abilist   |  1 -
>  sysdeps/unix/sysv/linux/csky/libc.abilist       |  2 ++
>  sysdeps/unix/sysv/linux/csky/libpthread.abilist |  1 -
>  sysdeps/unix/sysv/linux/hppa/libc.abilist       |  2 ++
>  sysdeps/unix/sysv/linux/hppa/libpthread.abilist |  1 -
>  sysdeps/unix/sysv/linux/i386/libc.abilist       |  2 ++
>  sysdeps/unix/sysv/linux/i386/libpthread.abilist |  2 +-
>  sysdeps/unix/sysv/linux/ia64/libc.abilist       |  2 ++
>  sysdeps/unix/sysv/linux/ia64/libpthread.abilist |  1 -
>  .../unix/sysv/linux/m68k/coldfire/libc.abilist  |  2 ++
>  .../sysv/linux/m68k/coldfire/libpthread.abilist |  1 -
>  .../unix/sysv/linux/m68k/m680x0/libc.abilist    |  2 ++
>  .../sysv/linux/m68k/m680x0/libpthread.abilist   |  2 +-
>  .../unix/sysv/linux/microblaze/be/libc.abilist  |  2 ++
>  .../sysv/linux/microblaze/be/libpthread.abilist |  1 -
>  .../unix/sysv/linux/microblaze/le/libc.abilist  |  2 ++
>  .../sysv/linux/microblaze/le/libpthread.abilist |  1 -
>  .../sysv/linux/mips/mips32/fpu/libc.abilist     |  2 ++
>  .../sysv/linux/mips/mips32/libpthread.abilist   |  1 -
>  .../sysv/linux/mips/mips32/nofpu/libc.abilist   |  2 ++
>  .../sysv/linux/mips/mips64/libpthread.abilist   |  1 -
>  .../sysv/linux/mips/mips64/n32/libc.abilist     |  2 ++
>  .../sysv/linux/mips/mips64/n64/libc.abilist     |  2 ++
>  sysdeps/unix/sysv/linux/nios2/libc.abilist      |  2 ++
>  .../unix/sysv/linux/nios2/libpthread.abilist    |  1 -
>  .../linux/powerpc/powerpc32/fpu/libc.abilist    |  2 ++
>  .../linux/powerpc/powerpc32/libpthread.abilist  |  2 +-
>  .../linux/powerpc/powerpc32/nofpu/libc.abilist  |  2 ++
>  .../linux/powerpc/powerpc64/be/libc.abilist     |  2 ++
>  .../powerpc/powerpc64/be/libpthread.abilist     |  1 -
>  .../linux/powerpc/powerpc64/le/libc.abilist     |  2 ++
>  .../powerpc/powerpc64/le/libpthread.abilist     |  1 -
>  sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist |  2 ++
>  .../sysv/linux/riscv/rv32/libpthread.abilist    |  1 -
>  sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist |  2 ++
>  .../sysv/linux/riscv/rv64/libpthread.abilist    |  1 -
>  .../unix/sysv/linux/s390/s390-32/libc.abilist   |  2 ++
>  .../sysv/linux/s390/s390-32/libpthread.abilist  |  2 +-
>  .../unix/sysv/linux/s390/s390-64/libc.abilist   |  2 ++
>  .../sysv/linux/s390/s390-64/libpthread.abilist  |  1 -
>  sysdeps/unix/sysv/linux/sh/be/libc.abilist      |  2 ++
>  .../unix/sysv/linux/sh/be/libpthread.abilist    |  1 -
>  sysdeps/unix/sysv/linux/sh/le/libc.abilist      |  2 ++
>  .../unix/sysv/linux/sh/le/libpthread.abilist    |  1 -
>  .../unix/sysv/linux/sparc/sparc32/libc.abilist  |  2 ++
>  .../sysv/linux/sparc/sparc32/libpthread.abilist |  2 +-
>  .../unix/sysv/linux/sparc/sparc64/libc.abilist  |  2 ++
>  .../sysv/linux/sparc/sparc64/libpthread.abilist |  1 -
>  sysdeps/unix/sysv/linux/x86_64/64/libc.abilist  |  2 ++
>  .../sysv/linux/x86_64/64/libpthread.abilist     |  1 -
>  sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist |  2 ++
>  .../sysv/linux/x86_64/x32/libpthread.abilist    |  1 -
>  65 files changed, 93 insertions(+), 33 deletions(-)
> 
> diff --git a/nptl/Makefile b/nptl/Makefile
> index 9f73cf2434..665cd1f3d1 100644
> --- a/nptl/Makefile
> +++ b/nptl/Makefile
> @@ -159,6 +159,7 @@ routines = \
>    sem_post \
>    sem_routines \
>    sem_timedwait \
> +  sem_unlink \
>    tpp \
>    unwind \
>  
> @@ -210,7 +211,6 @@ libpthread-routines = \
>    pthread_sigqueue \
>    pthread_timedjoin \
>    pthread_tryjoin \
> -  sem_unlink \
>    sem_wait \
>    vars \
>    version \
> diff --git a/nptl/Versions b/nptl/Versions
> index f19c2355f1..20997aa706 100644
> --- a/nptl/Versions
> +++ b/nptl/Versions
> @@ -92,6 +92,7 @@ libc {
>    GLIBC_2.1.1 {
>      sem_close;
>      sem_open;
> +    sem_unlink;
>    }
>    GLIBC_2.2 {
>      __pthread_rwlock_destroy;
> @@ -269,6 +270,7 @@ libc {
>      sem_open;
>      sem_post;
>      sem_timedwait;
> +    sem_unlink;
>      thrd_exit;
>      tss_create;
>      tss_delete;
> @@ -353,7 +355,7 @@ libpthread {
>    }
>  
>    GLIBC_2.1.1 {
> -    sem_unlink;
> +    __libpthread_version_placeholder;
>    }
>  
>    GLIBC_2.1.2 {
> diff --git a/nptl/libpthread-compat.c b/nptl/libpthread-compat.c
> index 7b0427aaed..401fa6ad34 100644
> --- a/nptl/libpthread-compat.c
> +++ b/nptl/libpthread-compat.c
> @@ -36,6 +36,10 @@ __libpthread_version_placeholder_1 (void)
>     version or later, the placeholder symbol is not needed because
>     there are plenty of other symbols which populate those later
>     versions.  */
> +#if (SHLIB_COMPAT (libpthread, GLIBC_2_1_1, GLIBC_2_1_2))
> +compat_symbol (libpthread, __libpthread_version_placeholder_1,
> +	       __libpthread_version_placeholder, GLIBC_2_1_1);
> +#endif
>  #if (SHLIB_COMPAT (libpthread, GLIBC_2_1_2, GLIBC_2_2))
>  compat_symbol (libpthread, __libpthread_version_placeholder_1,
>  	       __libpthread_version_placeholder, GLIBC_2_1_2);
> diff --git a/sysdeps/pthread/sem_unlink.c b/sysdeps/pthread/sem_unlink.c
> index 1f06a55b8e..c6f89349e5 100644
> --- a/sysdeps/pthread/sem_unlink.c
> +++ b/sysdeps/pthread/sem_unlink.c
> @@ -24,8 +24,13 @@
>  #include "semaphoreP.h"
>  #include <shm-directory.h>
>  
> +#if !PTHREAD_IN_LIBC
> +/* The private name is not exported from libc.  */
> +# define __unlink unlink
> +#endif
> +
>  int
> -sem_unlink (const char *name)
> +__sem_unlink (const char *name)
>  {
>    struct shmdir_name dirname;
>    if (__shm_get_name (&dirname, name, true) != 0)
> @@ -35,8 +40,16 @@ sem_unlink (const char *name)
>      }
>  
>    /* Now try removing it.  */
> -  int ret = unlink (dirname.name);
> +  int ret = __unlink (dirname.name);
>    if (ret < 0 && errno == EPERM)
>      __set_errno (EACCES);
>    return ret;
>  }
> +#if PTHREAD_IN_LIBC
> +versioned_symbol (libc, __sem_unlink, sem_unlink, GLIBC_2_34);
> +# if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_1_1, GLIBC_2_34)
> +compat_symbol (libpthread, __sem_unlink, sem_unlink, GLIBC_2_1_1);
> +# endif
> +#else /* !PTHREAD_IN_LIBC */
> +strong_alias (__sem_unlink, sem_unlink)
> +#endif
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index 3da65776d9..75cacc3038 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -1667,6 +1667,7 @@ 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_unlink F
>  GLIBC_2.17 semctl F
>  GLIBC_2.17 semget F
>  GLIBC_2.17 semop F
> @@ -2361,6 +2362,7 @@ GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
>  GLIBC_2.34 sem_timedwait F
> +GLIBC_2.34 sem_unlink 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 da05cd4d59..590f08ba58 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> @@ -40,7 +40,6 @@ GLIBC_2.17 pthread_sigqueue F
>  GLIBC_2.17 pthread_timedjoin_np F
>  GLIBC_2.17 pthread_tryjoin_np F
>  GLIBC_2.17 sem_trywait F
> -GLIBC_2.17 sem_unlink F
>  GLIBC_2.17 sem_wait F
>  GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.18 pthread_setattr_default_np F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index 6e71456850..a1c7de11ee 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -1731,6 +1731,7 @@ 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 sem_unlink F
>  GLIBC_2.1.1 strchrnul F
>  GLIBC_2.1.1 xdr_hyper F
>  GLIBC_2.1.1 xdr_int64_t F
> @@ -2446,6 +2447,7 @@ GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
>  GLIBC_2.34 sem_timedwait F
> +GLIBC_2.34 sem_unlink 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 64f7b97cfd..6540830d09 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> @@ -22,7 +22,7 @@ GLIBC_2.1 pthread_getconcurrency F
>  GLIBC_2.1 pthread_setconcurrency F
>  GLIBC_2.1 sem_trywait F
>  GLIBC_2.1 sem_wait F
> -GLIBC_2.1.1 sem_unlink F
> +GLIBC_2.1.1 __libpthread_version_placeholder F
>  GLIBC_2.1.2 __libpthread_version_placeholder F
>  GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 pthread_getname_np F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index 3dcbebada1..13f0192e61 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -1609,6 +1609,7 @@ 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_unlink F
>  GLIBC_2.32 semctl F
>  GLIBC_2.32 semget F
>  GLIBC_2.32 semop F
> @@ -2120,6 +2121,7 @@ GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
>  GLIBC_2.34 sem_timedwait F
> +GLIBC_2.34 sem_unlink 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 d11ab85312..7aa79d0d68 100644
> --- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> @@ -43,7 +43,6 @@ GLIBC_2.32 pthread_sigqueue F
>  GLIBC_2.32 pthread_timedjoin_np F
>  GLIBC_2.32 pthread_tryjoin_np F
>  GLIBC_2.32 sem_trywait F
> -GLIBC_2.32 sem_unlink F
>  GLIBC_2.32 sem_wait F
>  GLIBC_2.32 thrd_create F
>  GLIBC_2.32 thrd_detach F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index aec8132bd5..04715a2155 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -260,6 +260,7 @@ GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
>  GLIBC_2.34 sem_timedwait F
> +GLIBC_2.34 sem_unlink F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> @@ -1852,6 +1853,7 @@ 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_unlink 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 7dc74135e3..1e819c1173 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> @@ -48,5 +48,4 @@ GLIBC_2.4 pthread_setschedprio F
>  GLIBC_2.4 pthread_timedjoin_np F
>  GLIBC_2.4 pthread_tryjoin_np F
>  GLIBC_2.4 sem_trywait F
> -GLIBC_2.4 sem_unlink F
>  GLIBC_2.4 sem_wait F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index 2f2e2fb7a2..671b211af6 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -257,6 +257,7 @@ GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
>  GLIBC_2.34 sem_timedwait F
> +GLIBC_2.34 sem_unlink F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> @@ -1849,6 +1850,7 @@ 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_unlink 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 7dc74135e3..1e819c1173 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> @@ -48,5 +48,4 @@ GLIBC_2.4 pthread_setschedprio F
>  GLIBC_2.4 pthread_timedjoin_np F
>  GLIBC_2.4 pthread_tryjoin_np F
>  GLIBC_2.4 sem_trywait F
> -GLIBC_2.4 sem_unlink F
>  GLIBC_2.4 sem_wait F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index e17de2294f..ccb423fe97 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -1670,6 +1670,7 @@ 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_unlink F
>  GLIBC_2.29 semctl F
>  GLIBC_2.29 semget F
>  GLIBC_2.29 semop F
> @@ -2304,6 +2305,7 @@ GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
>  GLIBC_2.34 sem_timedwait F
> +GLIBC_2.34 sem_unlink 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 f3286d7d92..3579a0bfbb 100644
> --- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> @@ -42,7 +42,6 @@ GLIBC_2.29 pthread_sigqueue F
>  GLIBC_2.29 pthread_timedjoin_np F
>  GLIBC_2.29 pthread_tryjoin_np F
>  GLIBC_2.29 sem_trywait F
> -GLIBC_2.29 sem_unlink F
>  GLIBC_2.29 sem_wait F
>  GLIBC_2.29 thrd_create F
>  GLIBC_2.29 thrd_detach F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index a64c7afdd8..2d1fa9694b 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -1459,6 +1459,7 @@ 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_unlink F
>  GLIBC_2.2 semctl F
>  GLIBC_2.2 semget F
>  GLIBC_2.2 semop F
> @@ -2255,6 +2256,7 @@ GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
>  GLIBC_2.34 sem_timedwait F
> +GLIBC_2.34 sem_unlink 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 e6282e233c..30f7add73e 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> @@ -32,7 +32,6 @@ GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_join F
>  GLIBC_2.2 pthread_setconcurrency F
>  GLIBC_2.2 sem_trywait F
> -GLIBC_2.2 sem_unlink F
>  GLIBC_2.2 sem_wait F
>  GLIBC_2.2.3 __libpthread_version_placeholder F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index 1486c5dbcb..e270a9c9ab 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -1737,6 +1737,7 @@ 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 sem_unlink F
>  GLIBC_2.1.1 strchrnul F
>  GLIBC_2.1.1 xdr_hyper F
>  GLIBC_2.1.1 xdr_int64_t F
> @@ -2436,6 +2437,7 @@ GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
>  GLIBC_2.34 sem_timedwait F
> +GLIBC_2.34 sem_unlink 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 c94979df12..c7a1d8f0ff 100644
> --- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> @@ -22,7 +22,7 @@ GLIBC_2.1 pthread_getconcurrency F
>  GLIBC_2.1 pthread_setconcurrency F
>  GLIBC_2.1 sem_trywait F
>  GLIBC_2.1 sem_wait F
> -GLIBC_2.1.1 sem_unlink F
> +GLIBC_2.1.1 __libpthread_version_placeholder F
>  GLIBC_2.1.2 __libpthread_version_placeholder F
>  GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 pthread_getname_np F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index 044d56cac8..76dfc3a9ff 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -1480,6 +1480,7 @@ 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_unlink F
>  GLIBC_2.2 semctl F
>  GLIBC_2.2 semget F
>  GLIBC_2.2 semop F
> @@ -2289,6 +2290,7 @@ GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
>  GLIBC_2.34 sem_timedwait F
> +GLIBC_2.34 sem_unlink 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 4573250afa..225bfd0e6a 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> @@ -32,7 +32,6 @@ GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_join F
>  GLIBC_2.2 pthread_setconcurrency F
>  GLIBC_2.2 sem_trywait F
> -GLIBC_2.2 sem_unlink F
>  GLIBC_2.2 sem_wait F
>  GLIBC_2.2.3 __libpthread_version_placeholder F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index d0e68c2bc1..50b6beebdb 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -261,6 +261,7 @@ GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
>  GLIBC_2.34 sem_timedwait F
> +GLIBC_2.34 sem_unlink F
>  GLIBC_2.34 thrd_exit F
>  GLIBC_2.34 tss_create F
>  GLIBC_2.34 tss_delete F
> @@ -1832,6 +1833,7 @@ 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_unlink 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 7dc74135e3..1e819c1173 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> @@ -48,5 +48,4 @@ GLIBC_2.4 pthread_setschedprio F
>  GLIBC_2.4 pthread_timedjoin_np F
>  GLIBC_2.4 pthread_tryjoin_np F
>  GLIBC_2.4 sem_trywait F
> -GLIBC_2.4 sem_unlink F
>  GLIBC_2.4 sem_wait F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index 3fd4c8b544..f42dfe0d54 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -1693,6 +1693,7 @@ 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 sem_unlink F
>  GLIBC_2.1.1 strchrnul F
>  GLIBC_2.1.1 xdr_hyper F
>  GLIBC_2.1.1 xdr_int64_t F
> @@ -2379,6 +2380,7 @@ GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
>  GLIBC_2.34 sem_timedwait F
> +GLIBC_2.34 sem_unlink 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 c94979df12..c7a1d8f0ff 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> @@ -22,7 +22,7 @@ GLIBC_2.1 pthread_getconcurrency F
>  GLIBC_2.1 pthread_setconcurrency F
>  GLIBC_2.1 sem_trywait F
>  GLIBC_2.1 sem_wait F
> -GLIBC_2.1.1 sem_unlink F
> +GLIBC_2.1.1 __libpthread_version_placeholder F
>  GLIBC_2.1.2 __libpthread_version_placeholder F
>  GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 pthread_getname_np F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index 41d99361c5..563c3a0e35 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -1669,6 +1669,7 @@ 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_unlink F
>  GLIBC_2.18 semctl F
>  GLIBC_2.18 semget F
>  GLIBC_2.18 semop F
> @@ -2355,6 +2356,7 @@ GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
>  GLIBC_2.34 sem_timedwait F
> +GLIBC_2.34 sem_unlink 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 50483447c3..d7bacba551 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> @@ -42,7 +42,6 @@ GLIBC_2.18 pthread_sigqueue F
>  GLIBC_2.18 pthread_timedjoin_np F
>  GLIBC_2.18 pthread_tryjoin_np F
>  GLIBC_2.18 sem_trywait F
> -GLIBC_2.18 sem_unlink F
>  GLIBC_2.18 sem_wait F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.28 thrd_detach F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index bc5512f728..57a51ab39b 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -1669,6 +1669,7 @@ 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_unlink F
>  GLIBC_2.18 semctl F
>  GLIBC_2.18 semget F
>  GLIBC_2.18 semop F
> @@ -2352,6 +2353,7 @@ GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
>  GLIBC_2.34 sem_timedwait F
> +GLIBC_2.34 sem_unlink 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 50483447c3..d7bacba551 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> @@ -42,7 +42,6 @@ GLIBC_2.18 pthread_sigqueue F
>  GLIBC_2.18 pthread_timedjoin_np F
>  GLIBC_2.18 pthread_tryjoin_np F
>  GLIBC_2.18 sem_trywait F
> -GLIBC_2.18 sem_unlink F
>  GLIBC_2.18 sem_wait F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.28 thrd_detach F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index a9052fd2d2..a7b828f541 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -1899,6 +1899,7 @@ 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_unlink F
>  GLIBC_2.2 semctl F
>  GLIBC_2.2 sendfile F
>  GLIBC_2.2 setrlimit64 F
> @@ -2342,6 +2343,7 @@ GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
>  GLIBC_2.34 sem_timedwait F
> +GLIBC_2.34 sem_unlink 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 f9cca8a676..c7256adbdb 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> @@ -35,7 +35,6 @@ GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_setconcurrency F
>  GLIBC_2.2 sem_trywait F
> -GLIBC_2.2 sem_unlink F
>  GLIBC_2.2 sem_wait F
>  GLIBC_2.2.3 __libpthread_version_placeholder F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index c1510d2570..38e27a67b7 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -1897,6 +1897,7 @@ 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_unlink F
>  GLIBC_2.2 semctl F
>  GLIBC_2.2 sendfile F
>  GLIBC_2.2 setrlimit64 F
> @@ -2340,6 +2341,7 @@ GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
>  GLIBC_2.34 sem_timedwait F
> +GLIBC_2.34 sem_unlink 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 f9cca8a676..c7256adbdb 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> @@ -35,7 +35,6 @@ GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_setconcurrency F
>  GLIBC_2.2 sem_trywait F
> -GLIBC_2.2 sem_unlink F
>  GLIBC_2.2 sem_wait F
>  GLIBC_2.2.3 __libpthread_version_placeholder F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index bce71b4ff8..932bbb01ed 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -1897,6 +1897,7 @@ 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_unlink F
>  GLIBC_2.2 sendfile F
>  GLIBC_2.2 setrlimit64 F
>  GLIBC_2.2 setutxent F
> @@ -2348,6 +2349,7 @@ GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
>  GLIBC_2.34 sem_timedwait F
> +GLIBC_2.34 sem_unlink 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 e7919379ff..d2af27e80e 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -1893,6 +1893,7 @@ 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_unlink F
>  GLIBC_2.2 sendfile F
>  GLIBC_2.2 setrlimit64 F
>  GLIBC_2.2 setutxent F
> @@ -2342,6 +2343,7 @@ GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
>  GLIBC_2.34 sem_timedwait F
> +GLIBC_2.34 sem_unlink 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 022e7b13c0..b56a86af95 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -1712,6 +1712,7 @@ 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_unlink F
>  GLIBC_2.21 semctl F
>  GLIBC_2.21 semget F
>  GLIBC_2.21 semop F
> @@ -2394,6 +2395,7 @@ GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
>  GLIBC_2.34 sem_timedwait F
> +GLIBC_2.34 sem_unlink 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 2c6366d253..8c753b83c5 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> @@ -42,7 +42,6 @@ GLIBC_2.21 pthread_sigqueue F
>  GLIBC_2.21 pthread_timedjoin_np F
>  GLIBC_2.21 pthread_tryjoin_np F
>  GLIBC_2.21 sem_trywait F
> -GLIBC_2.21 sem_unlink F
>  GLIBC_2.21 sem_wait F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.28 thrd_detach F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index 6d96f00678..f66d77276d 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -1698,6 +1698,7 @@ 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 sem_unlink F
>  GLIBC_2.1.1 strchrnul F
>  GLIBC_2.1.1 xdr_hyper F
>  GLIBC_2.1.1 xdr_int64_t F
> @@ -2406,6 +2407,7 @@ GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
>  GLIBC_2.34 sem_timedwait F
> +GLIBC_2.34 sem_unlink 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 2cb64d181e..83968d0c97 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> @@ -22,7 +22,7 @@ GLIBC_2.1 pthread_getconcurrency F
>  GLIBC_2.1 pthread_setconcurrency F
>  GLIBC_2.1 sem_trywait F
>  GLIBC_2.1 sem_wait F
> -GLIBC_2.1.1 sem_unlink F
> +GLIBC_2.1.1 __libpthread_version_placeholder F
>  GLIBC_2.1.2 __libpthread_version_placeholder F
>  GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 pthread_getname_np F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index 1e9ab5406b..bf1a6ba7ba 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -1698,6 +1698,7 @@ 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 sem_unlink F
>  GLIBC_2.1.1 strchrnul F
>  GLIBC_2.1.1 xdr_hyper F
>  GLIBC_2.1.1 xdr_int64_t F
> @@ -2439,6 +2440,7 @@ GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
>  GLIBC_2.34 sem_timedwait F
> +GLIBC_2.34 sem_unlink 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 fd10c13d52..55eea26dc9 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -1584,6 +1584,7 @@ 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_unlink F
>  GLIBC_2.3 semctl F
>  GLIBC_2.3 semget F
>  GLIBC_2.3 semop F
> @@ -2256,6 +2257,7 @@ GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
>  GLIBC_2.34 sem_timedwait F
> +GLIBC_2.34 sem_unlink 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 d83baa5b40..b6a7fc4e23 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> @@ -35,7 +35,6 @@ GLIBC_2.3 pthread_getcpuclockid F
>  GLIBC_2.3 pthread_join F
>  GLIBC_2.3 pthread_setconcurrency F
>  GLIBC_2.3 sem_trywait F
> -GLIBC_2.3 sem_unlink F
>  GLIBC_2.3 sem_wait F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
>  GLIBC_2.3.3 __pthread_register_cancel F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index c73d3442a4..b5032df9df 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -1755,6 +1755,7 @@ 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_unlink F
>  GLIBC_2.17 semctl F
>  GLIBC_2.17 semget F
>  GLIBC_2.17 semop F
> @@ -2557,6 +2558,7 @@ GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
>  GLIBC_2.34 sem_timedwait F
> +GLIBC_2.34 sem_unlink 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 da05cd4d59..590f08ba58 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> @@ -40,7 +40,6 @@ GLIBC_2.17 pthread_sigqueue F
>  GLIBC_2.17 pthread_timedjoin_np F
>  GLIBC_2.17 pthread_tryjoin_np F
>  GLIBC_2.17 sem_trywait F
> -GLIBC_2.17 sem_unlink F
>  GLIBC_2.17 sem_wait F
>  GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.18 pthread_setattr_default_np F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index a44a2d24b0..7b86b09a47 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -1611,6 +1611,7 @@ 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_unlink F
>  GLIBC_2.33 semctl F
>  GLIBC_2.33 semget F
>  GLIBC_2.33 semop F
> @@ -2122,6 +2123,7 @@ GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
>  GLIBC_2.34 sem_timedwait F
> +GLIBC_2.34 sem_unlink 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 95c2cc98ca..74798905a5 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> @@ -43,7 +43,6 @@ GLIBC_2.33 pthread_sigqueue F
>  GLIBC_2.33 pthread_timedjoin_np F
>  GLIBC_2.33 pthread_tryjoin_np F
>  GLIBC_2.33 sem_trywait F
> -GLIBC_2.33 sem_unlink F
>  GLIBC_2.33 sem_wait F
>  GLIBC_2.33 thrd_create F
>  GLIBC_2.33 thrd_detach F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index 2bf396dc33..36e7eff6a7 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -1659,6 +1659,7 @@ 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_unlink F
>  GLIBC_2.27 semctl F
>  GLIBC_2.27 semget F
>  GLIBC_2.27 semop F
> @@ -2322,6 +2323,7 @@ GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
>  GLIBC_2.34 sem_timedwait F
> +GLIBC_2.34 sem_unlink 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 efbdd69d5f..8eb140f7ac 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> @@ -42,7 +42,6 @@ GLIBC_2.27 pthread_sigqueue F
>  GLIBC_2.27 pthread_timedjoin_np F
>  GLIBC_2.27 pthread_tryjoin_np F
>  GLIBC_2.27 sem_trywait F
> -GLIBC_2.27 sem_unlink F
>  GLIBC_2.27 sem_wait F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.28 thrd_detach F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index a39aeedc83..96d23b986b 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -1690,6 +1690,7 @@ 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 sem_unlink F
>  GLIBC_2.1.1 strchrnul F
>  GLIBC_2.1.1 xdr_hyper F
>  GLIBC_2.1.1 xdr_int64_t F
> @@ -2404,6 +2405,7 @@ GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
>  GLIBC_2.34 sem_timedwait F
> +GLIBC_2.34 sem_unlink 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 c9352acfff..f59ac6c20d 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> @@ -22,7 +22,7 @@ GLIBC_2.1 pthread_getconcurrency F
>  GLIBC_2.1 pthread_setconcurrency F
>  GLIBC_2.1 sem_trywait F
>  GLIBC_2.1 sem_wait F
> -GLIBC_2.1.1 sem_unlink F
> +GLIBC_2.1.1 __libpthread_version_placeholder F
>  GLIBC_2.1.2 __libpthread_version_placeholder F
>  GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 pthread_getname_np F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index 98b33f844b..928b499c84 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -1477,6 +1477,7 @@ 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_unlink F
>  GLIBC_2.2 semctl F
>  GLIBC_2.2 semget F
>  GLIBC_2.2 semop F
> @@ -2293,6 +2294,7 @@ GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
>  GLIBC_2.34 sem_timedwait F
> +GLIBC_2.34 sem_unlink 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 58a2d4f3ba..a2f0c9965f 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> @@ -33,7 +33,6 @@ GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_join F
>  GLIBC_2.2 pthread_setconcurrency F
>  GLIBC_2.2 sem_trywait F
> -GLIBC_2.2 sem_unlink F
>  GLIBC_2.2 sem_wait F
>  GLIBC_2.2.3 __libpthread_version_placeholder F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index c029912b67..61594abaf2 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -1463,6 +1463,7 @@ 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_unlink F
>  GLIBC_2.2 semctl F
>  GLIBC_2.2 semget F
>  GLIBC_2.2 semop F
> @@ -2262,6 +2263,7 @@ GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
>  GLIBC_2.34 sem_timedwait F
> +GLIBC_2.34 sem_unlink 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 e6282e233c..30f7add73e 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> @@ -32,7 +32,6 @@ GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_join F
>  GLIBC_2.2 pthread_setconcurrency F
>  GLIBC_2.2 sem_trywait F
> -GLIBC_2.2 sem_unlink F
>  GLIBC_2.2 sem_wait F
>  GLIBC_2.2.3 __libpthread_version_placeholder F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index 5b3f7aa502..17d56762a5 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -1463,6 +1463,7 @@ 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_unlink F
>  GLIBC_2.2 semctl F
>  GLIBC_2.2 semget F
>  GLIBC_2.2 semop F
> @@ -2259,6 +2260,7 @@ GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
>  GLIBC_2.34 sem_timedwait F
> +GLIBC_2.34 sem_unlink 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 e6282e233c..30f7add73e 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> @@ -32,7 +32,6 @@ GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_join F
>  GLIBC_2.2 pthread_setconcurrency F
>  GLIBC_2.2 sem_trywait F
> -GLIBC_2.2 sem_unlink F
>  GLIBC_2.2 sem_wait F
>  GLIBC_2.2.3 __libpthread_version_placeholder F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index d82f1c3f89..f34f9851ee 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -1691,6 +1691,7 @@ 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 sem_unlink F
>  GLIBC_2.1.1 strchrnul F
>  GLIBC_2.1.1 xdr_hyper F
>  GLIBC_2.1.1 xdr_int64_t F
> @@ -2395,6 +2396,7 @@ GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
>  GLIBC_2.34 sem_timedwait F
> +GLIBC_2.34 sem_unlink 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 64f7b97cfd..6540830d09 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> @@ -22,7 +22,7 @@ GLIBC_2.1 pthread_getconcurrency F
>  GLIBC_2.1 pthread_setconcurrency F
>  GLIBC_2.1 sem_trywait F
>  GLIBC_2.1 sem_wait F
> -GLIBC_2.1.1 sem_unlink F
> +GLIBC_2.1.1 __libpthread_version_placeholder F
>  GLIBC_2.1.2 __libpthread_version_placeholder F
>  GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 pthread_getname_np F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index b77c3ebc14..17d1320652 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -1506,6 +1506,7 @@ 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_unlink F
>  GLIBC_2.2 semctl F
>  GLIBC_2.2 semget F
>  GLIBC_2.2 semop F
> @@ -2310,6 +2311,7 @@ GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
>  GLIBC_2.34 sem_timedwait F
> +GLIBC_2.34 sem_unlink 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 4573250afa..225bfd0e6a 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> @@ -32,7 +32,6 @@ GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_join F
>  GLIBC_2.2 pthread_setconcurrency F
>  GLIBC_2.2 sem_trywait F
> -GLIBC_2.2 sem_unlink F
>  GLIBC_2.2 sem_wait F
>  GLIBC_2.2.3 __libpthread_version_placeholder F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index 1b56b70a15..f59fc63658 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -1474,6 +1474,7 @@ 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_unlink F
>  GLIBC_2.2.5 semctl F
>  GLIBC_2.2.5 semget F
>  GLIBC_2.2.5 semop F
> @@ -2271,6 +2272,7 @@ GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
>  GLIBC_2.34 sem_timedwait F
> +GLIBC_2.34 sem_unlink 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 dc598f1bd8..6fc3699f2c 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> @@ -32,7 +32,6 @@ 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_trywait F
> -GLIBC_2.2.5 sem_unlink F
>  GLIBC_2.2.5 sem_wait F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index 26d95cc46e..d6e06954b6 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -1673,6 +1673,7 @@ 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_unlink F
>  GLIBC_2.16 semctl F
>  GLIBC_2.16 semget F
>  GLIBC_2.16 semop F
> @@ -2376,6 +2377,7 @@ GLIBC_2.34 sem_init F
>  GLIBC_2.34 sem_open F
>  GLIBC_2.34 sem_post F
>  GLIBC_2.34 sem_timedwait F
> +GLIBC_2.34 sem_unlink 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 b5ade1e207..ab481ebe8a 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> @@ -40,7 +40,6 @@ GLIBC_2.16 pthread_sigqueue F
>  GLIBC_2.16 pthread_timedjoin_np F
>  GLIBC_2.16 pthread_tryjoin_np F
>  GLIBC_2.16 sem_trywait F
> -GLIBC_2.16 sem_unlink F
>  GLIBC_2.16 sem_wait F
>  GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.18 pthread_setattr_default_np F
>
  

Patch

diff --git a/nptl/Makefile b/nptl/Makefile
index 9f73cf2434..665cd1f3d1 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -159,6 +159,7 @@  routines = \
   sem_post \
   sem_routines \
   sem_timedwait \
+  sem_unlink \
   tpp \
   unwind \
 
@@ -210,7 +211,6 @@  libpthread-routines = \
   pthread_sigqueue \
   pthread_timedjoin \
   pthread_tryjoin \
-  sem_unlink \
   sem_wait \
   vars \
   version \
diff --git a/nptl/Versions b/nptl/Versions
index f19c2355f1..20997aa706 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -92,6 +92,7 @@  libc {
   GLIBC_2.1.1 {
     sem_close;
     sem_open;
+    sem_unlink;
   }
   GLIBC_2.2 {
     __pthread_rwlock_destroy;
@@ -269,6 +270,7 @@  libc {
     sem_open;
     sem_post;
     sem_timedwait;
+    sem_unlink;
     thrd_exit;
     tss_create;
     tss_delete;
@@ -353,7 +355,7 @@  libpthread {
   }
 
   GLIBC_2.1.1 {
-    sem_unlink;
+    __libpthread_version_placeholder;
   }
 
   GLIBC_2.1.2 {
diff --git a/nptl/libpthread-compat.c b/nptl/libpthread-compat.c
index 7b0427aaed..401fa6ad34 100644
--- a/nptl/libpthread-compat.c
+++ b/nptl/libpthread-compat.c
@@ -36,6 +36,10 @@  __libpthread_version_placeholder_1 (void)
    version or later, the placeholder symbol is not needed because
    there are plenty of other symbols which populate those later
    versions.  */
+#if (SHLIB_COMPAT (libpthread, GLIBC_2_1_1, GLIBC_2_1_2))
+compat_symbol (libpthread, __libpthread_version_placeholder_1,
+	       __libpthread_version_placeholder, GLIBC_2_1_1);
+#endif
 #if (SHLIB_COMPAT (libpthread, GLIBC_2_1_2, GLIBC_2_2))
 compat_symbol (libpthread, __libpthread_version_placeholder_1,
 	       __libpthread_version_placeholder, GLIBC_2_1_2);
diff --git a/sysdeps/pthread/sem_unlink.c b/sysdeps/pthread/sem_unlink.c
index 1f06a55b8e..c6f89349e5 100644
--- a/sysdeps/pthread/sem_unlink.c
+++ b/sysdeps/pthread/sem_unlink.c
@@ -24,8 +24,13 @@ 
 #include "semaphoreP.h"
 #include <shm-directory.h>
 
+#if !PTHREAD_IN_LIBC
+/* The private name is not exported from libc.  */
+# define __unlink unlink
+#endif
+
 int
-sem_unlink (const char *name)
+__sem_unlink (const char *name)
 {
   struct shmdir_name dirname;
   if (__shm_get_name (&dirname, name, true) != 0)
@@ -35,8 +40,16 @@  sem_unlink (const char *name)
     }
 
   /* Now try removing it.  */
-  int ret = unlink (dirname.name);
+  int ret = __unlink (dirname.name);
   if (ret < 0 && errno == EPERM)
     __set_errno (EACCES);
   return ret;
 }
+#if PTHREAD_IN_LIBC
+versioned_symbol (libc, __sem_unlink, sem_unlink, GLIBC_2_34);
+# if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_1_1, GLIBC_2_34)
+compat_symbol (libpthread, __sem_unlink, sem_unlink, GLIBC_2_1_1);
+# endif
+#else /* !PTHREAD_IN_LIBC */
+strong_alias (__sem_unlink, sem_unlink)
+#endif
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 3da65776d9..75cacc3038 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -1667,6 +1667,7 @@  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_unlink F
 GLIBC_2.17 semctl F
 GLIBC_2.17 semget F
 GLIBC_2.17 semop F
@@ -2361,6 +2362,7 @@  GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
 GLIBC_2.34 sem_timedwait F
+GLIBC_2.34 sem_unlink 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 da05cd4d59..590f08ba58 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
@@ -40,7 +40,6 @@  GLIBC_2.17 pthread_sigqueue F
 GLIBC_2.17 pthread_timedjoin_np F
 GLIBC_2.17 pthread_tryjoin_np F
 GLIBC_2.17 sem_trywait F
-GLIBC_2.17 sem_unlink F
 GLIBC_2.17 sem_wait F
 GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_setattr_default_np F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 6e71456850..a1c7de11ee 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -1731,6 +1731,7 @@  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 sem_unlink F
 GLIBC_2.1.1 strchrnul F
 GLIBC_2.1.1 xdr_hyper F
 GLIBC_2.1.1 xdr_int64_t F
@@ -2446,6 +2447,7 @@  GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
 GLIBC_2.34 sem_timedwait F
+GLIBC_2.34 sem_unlink 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 64f7b97cfd..6540830d09 100644
--- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
@@ -22,7 +22,7 @@  GLIBC_2.1 pthread_getconcurrency F
 GLIBC_2.1 pthread_setconcurrency F
 GLIBC_2.1 sem_trywait F
 GLIBC_2.1 sem_wait F
-GLIBC_2.1.1 sem_unlink F
+GLIBC_2.1.1 __libpthread_version_placeholder F
 GLIBC_2.1.2 __libpthread_version_placeholder F
 GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 pthread_getname_np F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 3dcbebada1..13f0192e61 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1609,6 +1609,7 @@  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_unlink F
 GLIBC_2.32 semctl F
 GLIBC_2.32 semget F
 GLIBC_2.32 semop F
@@ -2120,6 +2121,7 @@  GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
 GLIBC_2.34 sem_timedwait F
+GLIBC_2.34 sem_unlink 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 d11ab85312..7aa79d0d68 100644
--- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
@@ -43,7 +43,6 @@  GLIBC_2.32 pthread_sigqueue F
 GLIBC_2.32 pthread_timedjoin_np F
 GLIBC_2.32 pthread_tryjoin_np F
 GLIBC_2.32 sem_trywait F
-GLIBC_2.32 sem_unlink F
 GLIBC_2.32 sem_wait F
 GLIBC_2.32 thrd_create F
 GLIBC_2.32 thrd_detach F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index aec8132bd5..04715a2155 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -260,6 +260,7 @@  GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
 GLIBC_2.34 sem_timedwait F
+GLIBC_2.34 sem_unlink F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
@@ -1852,6 +1853,7 @@  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_unlink 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 7dc74135e3..1e819c1173 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
@@ -48,5 +48,4 @@  GLIBC_2.4 pthread_setschedprio F
 GLIBC_2.4 pthread_timedjoin_np F
 GLIBC_2.4 pthread_tryjoin_np F
 GLIBC_2.4 sem_trywait F
-GLIBC_2.4 sem_unlink F
 GLIBC_2.4 sem_wait F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 2f2e2fb7a2..671b211af6 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -257,6 +257,7 @@  GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
 GLIBC_2.34 sem_timedwait F
+GLIBC_2.34 sem_unlink F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
@@ -1849,6 +1850,7 @@  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_unlink 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 7dc74135e3..1e819c1173 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
@@ -48,5 +48,4 @@  GLIBC_2.4 pthread_setschedprio F
 GLIBC_2.4 pthread_timedjoin_np F
 GLIBC_2.4 pthread_tryjoin_np F
 GLIBC_2.4 sem_trywait F
-GLIBC_2.4 sem_unlink F
 GLIBC_2.4 sem_wait F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index e17de2294f..ccb423fe97 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -1670,6 +1670,7 @@  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_unlink F
 GLIBC_2.29 semctl F
 GLIBC_2.29 semget F
 GLIBC_2.29 semop F
@@ -2304,6 +2305,7 @@  GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
 GLIBC_2.34 sem_timedwait F
+GLIBC_2.34 sem_unlink 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 f3286d7d92..3579a0bfbb 100644
--- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
@@ -42,7 +42,6 @@  GLIBC_2.29 pthread_sigqueue F
 GLIBC_2.29 pthread_timedjoin_np F
 GLIBC_2.29 pthread_tryjoin_np F
 GLIBC_2.29 sem_trywait F
-GLIBC_2.29 sem_unlink F
 GLIBC_2.29 sem_wait F
 GLIBC_2.29 thrd_create F
 GLIBC_2.29 thrd_detach F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index a64c7afdd8..2d1fa9694b 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -1459,6 +1459,7 @@  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_unlink F
 GLIBC_2.2 semctl F
 GLIBC_2.2 semget F
 GLIBC_2.2 semop F
@@ -2255,6 +2256,7 @@  GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
 GLIBC_2.34 sem_timedwait F
+GLIBC_2.34 sem_unlink 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 e6282e233c..30f7add73e 100644
--- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
@@ -32,7 +32,6 @@  GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join F
 GLIBC_2.2 pthread_setconcurrency F
 GLIBC_2.2 sem_trywait F
-GLIBC_2.2 sem_unlink F
 GLIBC_2.2 sem_wait F
 GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 1486c5dbcb..e270a9c9ab 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -1737,6 +1737,7 @@  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 sem_unlink F
 GLIBC_2.1.1 strchrnul F
 GLIBC_2.1.1 xdr_hyper F
 GLIBC_2.1.1 xdr_int64_t F
@@ -2436,6 +2437,7 @@  GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
 GLIBC_2.34 sem_timedwait F
+GLIBC_2.34 sem_unlink 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 c94979df12..c7a1d8f0ff 100644
--- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
@@ -22,7 +22,7 @@  GLIBC_2.1 pthread_getconcurrency F
 GLIBC_2.1 pthread_setconcurrency F
 GLIBC_2.1 sem_trywait F
 GLIBC_2.1 sem_wait F
-GLIBC_2.1.1 sem_unlink F
+GLIBC_2.1.1 __libpthread_version_placeholder F
 GLIBC_2.1.2 __libpthread_version_placeholder F
 GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 pthread_getname_np F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 044d56cac8..76dfc3a9ff 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -1480,6 +1480,7 @@  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_unlink F
 GLIBC_2.2 semctl F
 GLIBC_2.2 semget F
 GLIBC_2.2 semop F
@@ -2289,6 +2290,7 @@  GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
 GLIBC_2.34 sem_timedwait F
+GLIBC_2.34 sem_unlink 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 4573250afa..225bfd0e6a 100644
--- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
@@ -32,7 +32,6 @@  GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join F
 GLIBC_2.2 pthread_setconcurrency F
 GLIBC_2.2 sem_trywait F
-GLIBC_2.2 sem_unlink F
 GLIBC_2.2 sem_wait F
 GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index d0e68c2bc1..50b6beebdb 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -261,6 +261,7 @@  GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
 GLIBC_2.34 sem_timedwait F
+GLIBC_2.34 sem_unlink F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
@@ -1832,6 +1833,7 @@  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_unlink 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 7dc74135e3..1e819c1173 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
@@ -48,5 +48,4 @@  GLIBC_2.4 pthread_setschedprio F
 GLIBC_2.4 pthread_timedjoin_np F
 GLIBC_2.4 pthread_tryjoin_np F
 GLIBC_2.4 sem_trywait F
-GLIBC_2.4 sem_unlink F
 GLIBC_2.4 sem_wait F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 3fd4c8b544..f42dfe0d54 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -1693,6 +1693,7 @@  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 sem_unlink F
 GLIBC_2.1.1 strchrnul F
 GLIBC_2.1.1 xdr_hyper F
 GLIBC_2.1.1 xdr_int64_t F
@@ -2379,6 +2380,7 @@  GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
 GLIBC_2.34 sem_timedwait F
+GLIBC_2.34 sem_unlink 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 c94979df12..c7a1d8f0ff 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
@@ -22,7 +22,7 @@  GLIBC_2.1 pthread_getconcurrency F
 GLIBC_2.1 pthread_setconcurrency F
 GLIBC_2.1 sem_trywait F
 GLIBC_2.1 sem_wait F
-GLIBC_2.1.1 sem_unlink F
+GLIBC_2.1.1 __libpthread_version_placeholder F
 GLIBC_2.1.2 __libpthread_version_placeholder F
 GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 pthread_getname_np F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 41d99361c5..563c3a0e35 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -1669,6 +1669,7 @@  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_unlink F
 GLIBC_2.18 semctl F
 GLIBC_2.18 semget F
 GLIBC_2.18 semop F
@@ -2355,6 +2356,7 @@  GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
 GLIBC_2.34 sem_timedwait F
+GLIBC_2.34 sem_unlink 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 50483447c3..d7bacba551 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
@@ -42,7 +42,6 @@  GLIBC_2.18 pthread_sigqueue F
 GLIBC_2.18 pthread_timedjoin_np F
 GLIBC_2.18 pthread_tryjoin_np F
 GLIBC_2.18 sem_trywait F
-GLIBC_2.18 sem_unlink F
 GLIBC_2.18 sem_wait F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index bc5512f728..57a51ab39b 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -1669,6 +1669,7 @@  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_unlink F
 GLIBC_2.18 semctl F
 GLIBC_2.18 semget F
 GLIBC_2.18 semop F
@@ -2352,6 +2353,7 @@  GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
 GLIBC_2.34 sem_timedwait F
+GLIBC_2.34 sem_unlink 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 50483447c3..d7bacba551 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
@@ -42,7 +42,6 @@  GLIBC_2.18 pthread_sigqueue F
 GLIBC_2.18 pthread_timedjoin_np F
 GLIBC_2.18 pthread_tryjoin_np F
 GLIBC_2.18 sem_trywait F
-GLIBC_2.18 sem_unlink F
 GLIBC_2.18 sem_wait F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index a9052fd2d2..a7b828f541 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -1899,6 +1899,7 @@  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_unlink F
 GLIBC_2.2 semctl F
 GLIBC_2.2 sendfile F
 GLIBC_2.2 setrlimit64 F
@@ -2342,6 +2343,7 @@  GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
 GLIBC_2.34 sem_timedwait F
+GLIBC_2.34 sem_unlink 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 f9cca8a676..c7256adbdb 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
@@ -35,7 +35,6 @@  GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_setconcurrency F
 GLIBC_2.2 sem_trywait F
-GLIBC_2.2 sem_unlink F
 GLIBC_2.2 sem_wait F
 GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index c1510d2570..38e27a67b7 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -1897,6 +1897,7 @@  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_unlink F
 GLIBC_2.2 semctl F
 GLIBC_2.2 sendfile F
 GLIBC_2.2 setrlimit64 F
@@ -2340,6 +2341,7 @@  GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
 GLIBC_2.34 sem_timedwait F
+GLIBC_2.34 sem_unlink 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 f9cca8a676..c7256adbdb 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
@@ -35,7 +35,6 @@  GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_setconcurrency F
 GLIBC_2.2 sem_trywait F
-GLIBC_2.2 sem_unlink F
 GLIBC_2.2 sem_wait F
 GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index bce71b4ff8..932bbb01ed 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -1897,6 +1897,7 @@  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_unlink F
 GLIBC_2.2 sendfile F
 GLIBC_2.2 setrlimit64 F
 GLIBC_2.2 setutxent F
@@ -2348,6 +2349,7 @@  GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
 GLIBC_2.34 sem_timedwait F
+GLIBC_2.34 sem_unlink 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 e7919379ff..d2af27e80e 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -1893,6 +1893,7 @@  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_unlink F
 GLIBC_2.2 sendfile F
 GLIBC_2.2 setrlimit64 F
 GLIBC_2.2 setutxent F
@@ -2342,6 +2343,7 @@  GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
 GLIBC_2.34 sem_timedwait F
+GLIBC_2.34 sem_unlink 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 022e7b13c0..b56a86af95 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -1712,6 +1712,7 @@  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_unlink F
 GLIBC_2.21 semctl F
 GLIBC_2.21 semget F
 GLIBC_2.21 semop F
@@ -2394,6 +2395,7 @@  GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
 GLIBC_2.34 sem_timedwait F
+GLIBC_2.34 sem_unlink 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 2c6366d253..8c753b83c5 100644
--- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
@@ -42,7 +42,6 @@  GLIBC_2.21 pthread_sigqueue F
 GLIBC_2.21 pthread_timedjoin_np F
 GLIBC_2.21 pthread_tryjoin_np F
 GLIBC_2.21 sem_trywait F
-GLIBC_2.21 sem_unlink F
 GLIBC_2.21 sem_wait F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 6d96f00678..f66d77276d 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -1698,6 +1698,7 @@  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 sem_unlink F
 GLIBC_2.1.1 strchrnul F
 GLIBC_2.1.1 xdr_hyper F
 GLIBC_2.1.1 xdr_int64_t F
@@ -2406,6 +2407,7 @@  GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
 GLIBC_2.34 sem_timedwait F
+GLIBC_2.34 sem_unlink 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 2cb64d181e..83968d0c97 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
@@ -22,7 +22,7 @@  GLIBC_2.1 pthread_getconcurrency F
 GLIBC_2.1 pthread_setconcurrency F
 GLIBC_2.1 sem_trywait F
 GLIBC_2.1 sem_wait F
-GLIBC_2.1.1 sem_unlink F
+GLIBC_2.1.1 __libpthread_version_placeholder F
 GLIBC_2.1.2 __libpthread_version_placeholder F
 GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 pthread_getname_np F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 1e9ab5406b..bf1a6ba7ba 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -1698,6 +1698,7 @@  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 sem_unlink F
 GLIBC_2.1.1 strchrnul F
 GLIBC_2.1.1 xdr_hyper F
 GLIBC_2.1.1 xdr_int64_t F
@@ -2439,6 +2440,7 @@  GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
 GLIBC_2.34 sem_timedwait F
+GLIBC_2.34 sem_unlink 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 fd10c13d52..55eea26dc9 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -1584,6 +1584,7 @@  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_unlink F
 GLIBC_2.3 semctl F
 GLIBC_2.3 semget F
 GLIBC_2.3 semop F
@@ -2256,6 +2257,7 @@  GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
 GLIBC_2.34 sem_timedwait F
+GLIBC_2.34 sem_unlink 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 d83baa5b40..b6a7fc4e23 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
@@ -35,7 +35,6 @@  GLIBC_2.3 pthread_getcpuclockid F
 GLIBC_2.3 pthread_join F
 GLIBC_2.3 pthread_setconcurrency F
 GLIBC_2.3 sem_trywait F
-GLIBC_2.3 sem_unlink F
 GLIBC_2.3 sem_wait F
 GLIBC_2.3.2 __libpthread_version_placeholder F
 GLIBC_2.3.3 __pthread_register_cancel F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index c73d3442a4..b5032df9df 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -1755,6 +1755,7 @@  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_unlink F
 GLIBC_2.17 semctl F
 GLIBC_2.17 semget F
 GLIBC_2.17 semop F
@@ -2557,6 +2558,7 @@  GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
 GLIBC_2.34 sem_timedwait F
+GLIBC_2.34 sem_unlink 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 da05cd4d59..590f08ba58 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
@@ -40,7 +40,6 @@  GLIBC_2.17 pthread_sigqueue F
 GLIBC_2.17 pthread_timedjoin_np F
 GLIBC_2.17 pthread_tryjoin_np F
 GLIBC_2.17 sem_trywait F
-GLIBC_2.17 sem_unlink F
 GLIBC_2.17 sem_wait F
 GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_setattr_default_np F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index a44a2d24b0..7b86b09a47 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1611,6 +1611,7 @@  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_unlink F
 GLIBC_2.33 semctl F
 GLIBC_2.33 semget F
 GLIBC_2.33 semop F
@@ -2122,6 +2123,7 @@  GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
 GLIBC_2.34 sem_timedwait F
+GLIBC_2.34 sem_unlink 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 95c2cc98ca..74798905a5 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
@@ -43,7 +43,6 @@  GLIBC_2.33 pthread_sigqueue F
 GLIBC_2.33 pthread_timedjoin_np F
 GLIBC_2.33 pthread_tryjoin_np F
 GLIBC_2.33 sem_trywait F
-GLIBC_2.33 sem_unlink F
 GLIBC_2.33 sem_wait F
 GLIBC_2.33 thrd_create F
 GLIBC_2.33 thrd_detach F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 2bf396dc33..36e7eff6a7 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -1659,6 +1659,7 @@  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_unlink F
 GLIBC_2.27 semctl F
 GLIBC_2.27 semget F
 GLIBC_2.27 semop F
@@ -2322,6 +2323,7 @@  GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
 GLIBC_2.34 sem_timedwait F
+GLIBC_2.34 sem_unlink 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 efbdd69d5f..8eb140f7ac 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
@@ -42,7 +42,6 @@  GLIBC_2.27 pthread_sigqueue F
 GLIBC_2.27 pthread_timedjoin_np F
 GLIBC_2.27 pthread_tryjoin_np F
 GLIBC_2.27 sem_trywait F
-GLIBC_2.27 sem_unlink F
 GLIBC_2.27 sem_wait F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index a39aeedc83..96d23b986b 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -1690,6 +1690,7 @@  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 sem_unlink F
 GLIBC_2.1.1 strchrnul F
 GLIBC_2.1.1 xdr_hyper F
 GLIBC_2.1.1 xdr_int64_t F
@@ -2404,6 +2405,7 @@  GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
 GLIBC_2.34 sem_timedwait F
+GLIBC_2.34 sem_unlink 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 c9352acfff..f59ac6c20d 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
@@ -22,7 +22,7 @@  GLIBC_2.1 pthread_getconcurrency F
 GLIBC_2.1 pthread_setconcurrency F
 GLIBC_2.1 sem_trywait F
 GLIBC_2.1 sem_wait F
-GLIBC_2.1.1 sem_unlink F
+GLIBC_2.1.1 __libpthread_version_placeholder F
 GLIBC_2.1.2 __libpthread_version_placeholder F
 GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 pthread_getname_np F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 98b33f844b..928b499c84 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -1477,6 +1477,7 @@  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_unlink F
 GLIBC_2.2 semctl F
 GLIBC_2.2 semget F
 GLIBC_2.2 semop F
@@ -2293,6 +2294,7 @@  GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
 GLIBC_2.34 sem_timedwait F
+GLIBC_2.34 sem_unlink 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 58a2d4f3ba..a2f0c9965f 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
@@ -33,7 +33,6 @@  GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join F
 GLIBC_2.2 pthread_setconcurrency F
 GLIBC_2.2 sem_trywait F
-GLIBC_2.2 sem_unlink F
 GLIBC_2.2 sem_wait F
 GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index c029912b67..61594abaf2 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -1463,6 +1463,7 @@  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_unlink F
 GLIBC_2.2 semctl F
 GLIBC_2.2 semget F
 GLIBC_2.2 semop F
@@ -2262,6 +2263,7 @@  GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
 GLIBC_2.34 sem_timedwait F
+GLIBC_2.34 sem_unlink 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 e6282e233c..30f7add73e 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
@@ -32,7 +32,6 @@  GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join F
 GLIBC_2.2 pthread_setconcurrency F
 GLIBC_2.2 sem_trywait F
-GLIBC_2.2 sem_unlink F
 GLIBC_2.2 sem_wait F
 GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 5b3f7aa502..17d56762a5 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -1463,6 +1463,7 @@  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_unlink F
 GLIBC_2.2 semctl F
 GLIBC_2.2 semget F
 GLIBC_2.2 semop F
@@ -2259,6 +2260,7 @@  GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
 GLIBC_2.34 sem_timedwait F
+GLIBC_2.34 sem_unlink 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 e6282e233c..30f7add73e 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
@@ -32,7 +32,6 @@  GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join F
 GLIBC_2.2 pthread_setconcurrency F
 GLIBC_2.2 sem_trywait F
-GLIBC_2.2 sem_unlink F
 GLIBC_2.2 sem_wait F
 GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index d82f1c3f89..f34f9851ee 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -1691,6 +1691,7 @@  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 sem_unlink F
 GLIBC_2.1.1 strchrnul F
 GLIBC_2.1.1 xdr_hyper F
 GLIBC_2.1.1 xdr_int64_t F
@@ -2395,6 +2396,7 @@  GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
 GLIBC_2.34 sem_timedwait F
+GLIBC_2.34 sem_unlink 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 64f7b97cfd..6540830d09 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
@@ -22,7 +22,7 @@  GLIBC_2.1 pthread_getconcurrency F
 GLIBC_2.1 pthread_setconcurrency F
 GLIBC_2.1 sem_trywait F
 GLIBC_2.1 sem_wait F
-GLIBC_2.1.1 sem_unlink F
+GLIBC_2.1.1 __libpthread_version_placeholder F
 GLIBC_2.1.2 __libpthread_version_placeholder F
 GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 pthread_getname_np F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index b77c3ebc14..17d1320652 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -1506,6 +1506,7 @@  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_unlink F
 GLIBC_2.2 semctl F
 GLIBC_2.2 semget F
 GLIBC_2.2 semop F
@@ -2310,6 +2311,7 @@  GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
 GLIBC_2.34 sem_timedwait F
+GLIBC_2.34 sem_unlink 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 4573250afa..225bfd0e6a 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
@@ -32,7 +32,6 @@  GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join F
 GLIBC_2.2 pthread_setconcurrency F
 GLIBC_2.2 sem_trywait F
-GLIBC_2.2 sem_unlink F
 GLIBC_2.2 sem_wait F
 GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 1b56b70a15..f59fc63658 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -1474,6 +1474,7 @@  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_unlink F
 GLIBC_2.2.5 semctl F
 GLIBC_2.2.5 semget F
 GLIBC_2.2.5 semop F
@@ -2271,6 +2272,7 @@  GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
 GLIBC_2.34 sem_timedwait F
+GLIBC_2.34 sem_unlink 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 dc598f1bd8..6fc3699f2c 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
@@ -32,7 +32,6 @@  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_trywait F
-GLIBC_2.2.5 sem_unlink F
 GLIBC_2.2.5 sem_wait F
 GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 26d95cc46e..d6e06954b6 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -1673,6 +1673,7 @@  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_unlink F
 GLIBC_2.16 semctl F
 GLIBC_2.16 semget F
 GLIBC_2.16 semop F
@@ -2376,6 +2377,7 @@  GLIBC_2.34 sem_init F
 GLIBC_2.34 sem_open F
 GLIBC_2.34 sem_post F
 GLIBC_2.34 sem_timedwait F
+GLIBC_2.34 sem_unlink 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 b5ade1e207..ab481ebe8a 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
@@ -40,7 +40,6 @@  GLIBC_2.16 pthread_sigqueue F
 GLIBC_2.16 pthread_timedjoin_np F
 GLIBC_2.16 pthread_tryjoin_np F
 GLIBC_2.16 sem_trywait F
-GLIBC_2.16 sem_unlink F
 GLIBC_2.16 sem_wait F
 GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_setattr_default_np F