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