[10/11] nptl: Move sem_unlink into libc

Message ID a983ab8a722ea4bfa2aa340a552a286c21ca9788.1620049438.git.fweimer@redhat.com
State New
Headers show
Series
  • nptl: Move semaphore functions into libc
Related show

Commit Message

Michael Hudson-Doyle via Libc-alpha May 3, 2021, 1:52 p.m.
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(-)

-- 
2.30.2

Comments

Michael Hudson-Doyle via Libc-alpha May 5, 2021, 2:37 p.m. | #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