diff mbox series

[v3,34/37] nptl: Move core mutex functions into libc

Message ID ad8f014bcec5cd8fdc6a9d8d8fce9458219e64ac.1615914632.git.fweimer@redhat.com
State Superseded
Delegated to: Adhemerval Zanella Netto
Headers show
Series libpthread removal: NPTL forwarders are gone | expand

Commit Message

Florian Weimer March 16, 2021, 5:31 p.m. UTC
This is complicated because of a second compilation of
nptl/pthread_mutex_lock.c via nptl/pthread_mutex_cond_lock.c.
PTHREAD_MUTEX_VERSIONS is introduced to suppress symbol versions
in that case.

The symbols __pthread_mutex_lock, __pthread_mutex_unlock,
__pthread_mutex_init, __pthread_mutex_destroy, pthread_mutex_lock,
pthread_mutex_unlock, pthread_mutex_init, pthread_mutex_destroy
have beeb moved using scripts/move-symbol-to-libc.py.
---
 nptl/Makefile                                 |  8 ++---
 nptl/Versions                                 | 17 +++++-----
 nptl/forward.c                                | 11 -------
 nptl/nptl-init.c                              |  4 ---
 nptl/pthreadP.h                               | 11 ++++---
 nptl/pthread_mutex_cond_lock.c                |  3 +-
 nptl/pthread_mutex_destroy.c                  | 18 ++++++++---
 nptl/pthread_mutex_init.c                     | 16 ++++++++--
 nptl/pthread_mutex_lock.c                     | 22 ++++++++++---
 nptl/pthread_mutex_unlock.c                   | 19 ++++++++---
 sysdeps/nptl/libc-lockP.h                     | 32 ++++++-------------
 sysdeps/nptl/pthread-functions.h              |  5 ---
 sysdeps/unix/sysv/linux/aarch64/libc.abilist  |  8 +++++
 .../sysv/linux/aarch64/libpthread.abilist     |  8 -----
 sysdeps/unix/sysv/linux/alpha/libc.abilist    |  8 +++++
 .../unix/sysv/linux/alpha/libpthread.abilist  |  8 -----
 sysdeps/unix/sysv/linux/arc/libc.abilist      |  8 +++++
 .../unix/sysv/linux/arc/libpthread.abilist    |  8 -----
 sysdeps/unix/sysv/linux/arm/be/libc.abilist   |  8 +++++
 .../unix/sysv/linux/arm/be/libpthread.abilist |  8 -----
 sysdeps/unix/sysv/linux/arm/le/libc.abilist   |  8 +++++
 .../unix/sysv/linux/arm/le/libpthread.abilist |  8 -----
 sysdeps/unix/sysv/linux/csky/libc.abilist     |  8 +++++
 .../unix/sysv/linux/csky/libpthread.abilist   |  8 -----
 sysdeps/unix/sysv/linux/hppa/libc.abilist     |  8 +++++
 .../unix/sysv/linux/hppa/libpthread.abilist   |  8 -----
 sysdeps/unix/sysv/linux/i386/libc.abilist     |  8 +++++
 .../unix/sysv/linux/i386/libpthread.abilist   |  8 -----
 sysdeps/unix/sysv/linux/ia64/libc.abilist     |  8 +++++
 .../unix/sysv/linux/ia64/libpthread.abilist   |  8 -----
 .../sysv/linux/m68k/coldfire/libc.abilist     |  8 +++++
 .../linux/m68k/coldfire/libpthread.abilist    |  8 -----
 .../unix/sysv/linux/m68k/m680x0/libc.abilist  |  8 +++++
 .../sysv/linux/m68k/m680x0/libpthread.abilist |  8 -----
 .../sysv/linux/microblaze/be/libc.abilist     |  8 +++++
 .../linux/microblaze/be/libpthread.abilist    |  8 -----
 .../sysv/linux/microblaze/le/libc.abilist     |  8 +++++
 .../linux/microblaze/le/libpthread.abilist    |  8 -----
 .../sysv/linux/mips/mips32/fpu/libc.abilist   |  8 +++++
 .../sysv/linux/mips/mips32/libpthread.abilist |  8 -----
 .../sysv/linux/mips/mips32/nofpu/libc.abilist |  8 +++++
 .../sysv/linux/mips/mips64/libpthread.abilist |  8 -----
 .../sysv/linux/mips/mips64/n32/libc.abilist   |  8 +++++
 .../sysv/linux/mips/mips64/n64/libc.abilist   |  8 +++++
 sysdeps/unix/sysv/linux/nios2/libc.abilist    |  8 +++++
 .../unix/sysv/linux/nios2/libpthread.abilist  |  8 -----
 .../linux/powerpc/powerpc32/fpu/libc.abilist  |  8 +++++
 .../powerpc/powerpc32/libpthread.abilist      |  8 -----
 .../powerpc/powerpc32/nofpu/libc.abilist      |  8 +++++
 .../linux/powerpc/powerpc64/be/libc.abilist   |  8 +++++
 .../powerpc/powerpc64/be/libpthread.abilist   |  8 -----
 .../linux/powerpc/powerpc64/le/libc.abilist   |  8 +++++
 .../powerpc/powerpc64/le/libpthread.abilist   |  8 -----
 .../unix/sysv/linux/riscv/rv32/libc.abilist   |  8 +++++
 .../sysv/linux/riscv/rv32/libpthread.abilist  |  8 -----
 .../unix/sysv/linux/riscv/rv64/libc.abilist   |  8 +++++
 .../sysv/linux/riscv/rv64/libpthread.abilist  |  8 -----
 .../unix/sysv/linux/s390/s390-32/libc.abilist |  8 +++++
 .../linux/s390/s390-32/libpthread.abilist     |  8 -----
 .../unix/sysv/linux/s390/s390-64/libc.abilist |  8 +++++
 .../linux/s390/s390-64/libpthread.abilist     |  8 -----
 sysdeps/unix/sysv/linux/sh/be/libc.abilist    |  8 +++++
 .../unix/sysv/linux/sh/be/libpthread.abilist  |  8 -----
 sysdeps/unix/sysv/linux/sh/le/libc.abilist    |  8 +++++
 .../unix/sysv/linux/sh/le/libpthread.abilist  |  8 -----
 .../sysv/linux/sparc/sparc32/libc.abilist     |  8 +++++
 .../linux/sparc/sparc32/libpthread.abilist    |  8 -----
 .../sysv/linux/sparc/sparc64/libc.abilist     |  8 +++++
 .../linux/sparc/sparc64/libpthread.abilist    |  8 -----
 .../unix/sysv/linux/x86_64/64/libc.abilist    |  8 +++++
 .../sysv/linux/x86_64/64/libpthread.abilist   |  8 -----
 .../unix/sysv/linux/x86_64/x32/libc.abilist   |  8 +++++
 .../sysv/linux/x86_64/x32/libpthread.abilist  |  8 -----
 73 files changed, 346 insertions(+), 308 deletions(-)

Comments

Adhemerval Zanella March 25, 2021, 8:46 p.m. UTC | #1
On 16/03/2021 14:31, Florian Weimer via Libc-alpha wrote:
> This is complicated because of a second compilation of
> nptl/pthread_mutex_lock.c via nptl/pthread_mutex_cond_lock.c.
> PTHREAD_MUTEX_VERSIONS is introduced to suppress symbol versions
> in that case.

I am wondering if it would worth a refactor to make the cond wait
code to just enable/disable lock elision and call the default 
symbol instead of providing an specific implementation.

> 
> The symbols __pthread_mutex_lock, __pthread_mutex_unlock,
> __pthread_mutex_init, __pthread_mutex_destroy, pthread_mutex_lock,
> pthread_mutex_unlock, pthread_mutex_init, pthread_mutex_destroy
> have beeb moved using scripts/move-symbol-to-libc.py.

s/beeb/been.

LGTM, thanks.

(Same comment regarding compat_symbol with multiple references 
as before).

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

> ---
>  nptl/Makefile                                 |  8 ++---
>  nptl/Versions                                 | 17 +++++-----
>  nptl/forward.c                                | 11 -------
>  nptl/nptl-init.c                              |  4 ---
>  nptl/pthreadP.h                               | 11 ++++---
>  nptl/pthread_mutex_cond_lock.c                |  3 +-
>  nptl/pthread_mutex_destroy.c                  | 18 ++++++++---
>  nptl/pthread_mutex_init.c                     | 16 ++++++++--
>  nptl/pthread_mutex_lock.c                     | 22 ++++++++++---
>  nptl/pthread_mutex_unlock.c                   | 19 ++++++++---
>  sysdeps/nptl/libc-lockP.h                     | 32 ++++++-------------
>  sysdeps/nptl/pthread-functions.h              |  5 ---
>  sysdeps/unix/sysv/linux/aarch64/libc.abilist  |  8 +++++
>  .../sysv/linux/aarch64/libpthread.abilist     |  8 -----
>  sysdeps/unix/sysv/linux/alpha/libc.abilist    |  8 +++++
>  .../unix/sysv/linux/alpha/libpthread.abilist  |  8 -----
>  sysdeps/unix/sysv/linux/arc/libc.abilist      |  8 +++++
>  .../unix/sysv/linux/arc/libpthread.abilist    |  8 -----
>  sysdeps/unix/sysv/linux/arm/be/libc.abilist   |  8 +++++
>  .../unix/sysv/linux/arm/be/libpthread.abilist |  8 -----
>  sysdeps/unix/sysv/linux/arm/le/libc.abilist   |  8 +++++
>  .../unix/sysv/linux/arm/le/libpthread.abilist |  8 -----
>  sysdeps/unix/sysv/linux/csky/libc.abilist     |  8 +++++
>  .../unix/sysv/linux/csky/libpthread.abilist   |  8 -----
>  sysdeps/unix/sysv/linux/hppa/libc.abilist     |  8 +++++
>  .../unix/sysv/linux/hppa/libpthread.abilist   |  8 -----
>  sysdeps/unix/sysv/linux/i386/libc.abilist     |  8 +++++
>  .../unix/sysv/linux/i386/libpthread.abilist   |  8 -----
>  sysdeps/unix/sysv/linux/ia64/libc.abilist     |  8 +++++
>  .../unix/sysv/linux/ia64/libpthread.abilist   |  8 -----
>  .../sysv/linux/m68k/coldfire/libc.abilist     |  8 +++++
>  .../linux/m68k/coldfire/libpthread.abilist    |  8 -----
>  .../unix/sysv/linux/m68k/m680x0/libc.abilist  |  8 +++++
>  .../sysv/linux/m68k/m680x0/libpthread.abilist |  8 -----
>  .../sysv/linux/microblaze/be/libc.abilist     |  8 +++++
>  .../linux/microblaze/be/libpthread.abilist    |  8 -----
>  .../sysv/linux/microblaze/le/libc.abilist     |  8 +++++
>  .../linux/microblaze/le/libpthread.abilist    |  8 -----
>  .../sysv/linux/mips/mips32/fpu/libc.abilist   |  8 +++++
>  .../sysv/linux/mips/mips32/libpthread.abilist |  8 -----
>  .../sysv/linux/mips/mips32/nofpu/libc.abilist |  8 +++++
>  .../sysv/linux/mips/mips64/libpthread.abilist |  8 -----
>  .../sysv/linux/mips/mips64/n32/libc.abilist   |  8 +++++
>  .../sysv/linux/mips/mips64/n64/libc.abilist   |  8 +++++
>  sysdeps/unix/sysv/linux/nios2/libc.abilist    |  8 +++++
>  .../unix/sysv/linux/nios2/libpthread.abilist  |  8 -----
>  .../linux/powerpc/powerpc32/fpu/libc.abilist  |  8 +++++
>  .../powerpc/powerpc32/libpthread.abilist      |  8 -----
>  .../powerpc/powerpc32/nofpu/libc.abilist      |  8 +++++
>  .../linux/powerpc/powerpc64/be/libc.abilist   |  8 +++++
>  .../powerpc/powerpc64/be/libpthread.abilist   |  8 -----
>  .../linux/powerpc/powerpc64/le/libc.abilist   |  8 +++++
>  .../powerpc/powerpc64/le/libpthread.abilist   |  8 -----
>  .../unix/sysv/linux/riscv/rv32/libc.abilist   |  8 +++++
>  .../sysv/linux/riscv/rv32/libpthread.abilist  |  8 -----
>  .../unix/sysv/linux/riscv/rv64/libc.abilist   |  8 +++++
>  .../sysv/linux/riscv/rv64/libpthread.abilist  |  8 -----
>  .../unix/sysv/linux/s390/s390-32/libc.abilist |  8 +++++
>  .../linux/s390/s390-32/libpthread.abilist     |  8 -----
>  .../unix/sysv/linux/s390/s390-64/libc.abilist |  8 +++++
>  .../linux/s390/s390-64/libpthread.abilist     |  8 -----
>  sysdeps/unix/sysv/linux/sh/be/libc.abilist    |  8 +++++
>  .../unix/sysv/linux/sh/be/libpthread.abilist  |  8 -----
>  sysdeps/unix/sysv/linux/sh/le/libc.abilist    |  8 +++++
>  .../unix/sysv/linux/sh/le/libpthread.abilist  |  8 -----
>  .../sysv/linux/sparc/sparc32/libc.abilist     |  8 +++++
>  .../linux/sparc/sparc32/libpthread.abilist    |  8 -----
>  .../sysv/linux/sparc/sparc64/libc.abilist     |  8 +++++
>  .../linux/sparc/sparc64/libpthread.abilist    |  8 -----
>  .../unix/sysv/linux/x86_64/64/libc.abilist    |  8 +++++
>  .../sysv/linux/x86_64/64/libpthread.abilist   |  8 -----
>  .../unix/sysv/linux/x86_64/x32/libc.abilist   |  8 +++++
>  .../sysv/linux/x86_64/x32/libpthread.abilist  |  8 -----
>  73 files changed, 346 insertions(+), 308 deletions(-)
> 
> diff --git a/nptl/Makefile b/nptl/Makefile
> index 3ae0e1e8c8..e0ba8bea13 100644
> --- a/nptl/Makefile
> +++ b/nptl/Makefile
> @@ -84,6 +84,10 @@ routines = \
>    pthread_keys \
>    pthread_mutex_conf \
>    pthread_mutex_consistent \
> +  pthread_mutex_destroy \
> +  pthread_mutex_init \
> +  pthread_mutex_lock \
> +  pthread_mutex_unlock \
>    pthread_once \
>    pthread_rwlock_rdlock \
>    pthread_rwlock_unlock \
> @@ -171,14 +175,10 @@ libpthread-routines = \
>    pthread_kill \
>    pthread_kill_other_threads \
>    pthread_mutex_cond_lock \
> -  pthread_mutex_destroy \
>    pthread_mutex_getprioceiling \
> -  pthread_mutex_init \
> -  pthread_mutex_lock \
>    pthread_mutex_setprioceiling \
>    pthread_mutex_timedlock \
>    pthread_mutex_trylock \
> -  pthread_mutex_unlock \
>    pthread_mutexattr_destroy \
>    pthread_mutexattr_getprioceiling \
>    pthread_mutexattr_getprotocol \

Ok.

> diff --git a/nptl/Versions b/nptl/Versions
> index 2b9508bd6f..2352b74c7e 100644
> --- a/nptl/Versions
> +++ b/nptl/Versions
> @@ -2,6 +2,10 @@ libc {
>    GLIBC_2.0 {
>      __pthread_getspecific;
>      __pthread_key_create;
> +    __pthread_mutex_destroy;
> +    __pthread_mutex_init;
> +    __pthread_mutex_lock;
> +    __pthread_mutex_unlock;
>      __pthread_once;
>      __pthread_setspecific;
>      _pthread_cleanup_pop;
> @@ -103,6 +107,10 @@ libc {
>      __pthread_cleanup_routine;
>      __pthread_getspecific;
>      __pthread_key_create;
> +    __pthread_mutex_destroy;
> +    __pthread_mutex_init;
> +    __pthread_mutex_lock;
> +    __pthread_mutex_unlock;
>      __pthread_once;
>      __pthread_rwlock_rdlock;
>      __pthread_rwlock_unlock;
> @@ -155,6 +163,7 @@ libc {
>      __pthread_getattr_default_np;
>      __pthread_key_delete;
>      __pthread_keys;
> +    __pthread_mutex_unlock_usercnt;
>      __pthread_setcancelstate;
>      __pthread_tpp_change_priority;
>      __pthread_unwind;
> @@ -177,11 +186,7 @@ libpthread {
>      __lseek;
>      __open;
>      __pthread_atfork;
> -    __pthread_mutex_destroy;
> -    __pthread_mutex_init;
> -    __pthread_mutex_lock;
>      __pthread_mutex_trylock;
> -    __pthread_mutex_unlock;
>      __pthread_mutexattr_destroy;
>      __pthread_mutexattr_init;
>      __pthread_mutexattr_settype;
> @@ -213,11 +218,7 @@ libpthread {
>      pthread_join;
>      pthread_kill;
>      pthread_kill_other_threads_np;
> -    pthread_mutex_destroy;
> -    pthread_mutex_init;
> -    pthread_mutex_lock;
>      pthread_mutex_trylock;
> -    pthread_mutex_unlock;
>      pthread_mutexattr_destroy;
>      pthread_mutexattr_getkind_np;
>      pthread_mutexattr_init;

Ok.

> diff --git a/nptl/forward.c b/nptl/forward.c
> index de4e9cd6ab..c914baec4f 100644
> --- a/nptl/forward.c
> +++ b/nptl/forward.c
> @@ -90,14 +90,3 @@ FORWARD (__pthread_cond_timedwait,
>  	  const struct timespec *abstime), (cond, mutex, abstime), 0)
>  versioned_symbol (libc, __pthread_cond_timedwait, pthread_cond_timedwait,
>  		  GLIBC_2_3_2);
> -
> -
> -FORWARD (pthread_mutex_destroy, (pthread_mutex_t *mutex), (mutex), 0)
> -
> -FORWARD (pthread_mutex_init,
> -	 (pthread_mutex_t *mutex, const pthread_mutexattr_t *mutexattr),
> -	 (mutex, mutexattr), 0)
> -
> -FORWARD (pthread_mutex_lock, (pthread_mutex_t *mutex), (mutex), 0)
> -
> -FORWARD (pthread_mutex_unlock, (pthread_mutex_t *mutex), (mutex), 0)

Ok.

> diff --git a/nptl/nptl-init.c b/nptl/nptl-init.c
> index 5c85f75cc1..cbc9430ecb 100644
> --- a/nptl/nptl-init.c
> +++ b/nptl/nptl-init.c
> @@ -63,10 +63,6 @@ static const struct pthread_functions pthread_functions =
>      .ptr___pthread_cond_wait_2_0 = __pthread_cond_wait_2_0,
>      .ptr___pthread_cond_timedwait_2_0 = __pthread_cond_timedwait_2_0,
>  # endif
> -    .ptr_pthread_mutex_destroy = __pthread_mutex_destroy,
> -    .ptr_pthread_mutex_init = __pthread_mutex_init,
> -    .ptr_pthread_mutex_lock = __pthread_mutex_lock,
> -    .ptr_pthread_mutex_unlock = __pthread_mutex_unlock,
>      .ptr__nptl_setxid = __nptl_setxid,
>    };
>  # define ptr_pthread_functions &pthread_functions

Ok.

> diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
> index 7fd290e004..4feebdf09e 100644
> --- a/nptl/pthreadP.h
> +++ b/nptl/pthreadP.h
> @@ -389,9 +389,12 @@ extern int __pthread_setschedparam (pthread_t thread_id, int policy,
>  				    const struct sched_param *param);
>  extern int __pthread_mutex_init (pthread_mutex_t *__mutex,
>  				 const pthread_mutexattr_t *__mutexattr);
> +libc_hidden_proto (__pthread_mutex_init)
>  extern int __pthread_mutex_destroy (pthread_mutex_t *__mutex);
> +libc_hidden_proto (__pthread_mutex_destroy)
>  extern int __pthread_mutex_trylock (pthread_mutex_t *_mutex);
>  extern int __pthread_mutex_lock (pthread_mutex_t *__mutex);
> +libc_hidden_proto (__pthread_mutex_lock)
>  extern int __pthread_mutex_timedlock (pthread_mutex_t *__mutex,
>       const struct timespec *__abstime);
>  extern int __pthread_mutex_cond_lock (pthread_mutex_t *__mutex)
> @@ -399,8 +402,10 @@ extern int __pthread_mutex_cond_lock (pthread_mutex_t *__mutex)
>  extern void __pthread_mutex_cond_lock_adjust (pthread_mutex_t *__mutex)
>       attribute_hidden;
>  extern int __pthread_mutex_unlock (pthread_mutex_t *__mutex);
> +libc_hidden_proto (__pthread_mutex_unlock)
>  extern int __pthread_mutex_unlock_usercnt (pthread_mutex_t *__mutex,
> -					   int __decr) attribute_hidden;
> +					   int __decr);
> +libc_hidden_proto (__pthread_mutex_unlock_usercnt)
>  extern int __pthread_mutexattr_init (pthread_mutexattr_t *attr);
>  extern int __pthread_mutexattr_destroy (pthread_mutexattr_t *attr);
>  extern int __pthread_mutexattr_settype (pthread_mutexattr_t *attr, int kind);
> @@ -554,11 +559,7 @@ libc_hidden_proto (__pthread_sigmask);
>  
>  
>  #if IS_IN (libpthread)
> -hidden_proto (__pthread_mutex_init)
> -hidden_proto (__pthread_mutex_destroy)
> -hidden_proto (__pthread_mutex_lock)
>  hidden_proto (__pthread_mutex_trylock)
> -hidden_proto (__pthread_mutex_unlock)
>  hidden_proto (__pthread_rwlock_unlock)
>  hidden_proto (__pthread_testcancel)
>  hidden_proto (__pthread_mutexattr_init)

Ok.

> diff --git a/nptl/pthread_mutex_cond_lock.c b/nptl/pthread_mutex_cond_lock.c
> index 3386bd689b..f3af514305 100644
> --- a/nptl/pthread_mutex_cond_lock.c
> +++ b/nptl/pthread_mutex_cond_lock.c
> @@ -15,8 +15,9 @@
>  /* We need to assume that there are other threads blocked on the futex.
>     See __pthread_mutex_lock_full for further details.  */
>  #define LLL_ROBUST_MUTEX_LOCK_MODIFIER FUTEX_WAITERS
> -#define __pthread_mutex_lock  __pthread_mutex_cond_lock
> +#define PTHREAD_MUTEX_LOCK  __pthread_mutex_cond_lock
>  #define __pthread_mutex_lock_full __pthread_mutex_cond_lock_full
>  #define NO_INCR
> +#define PTHREAD_MUTEX_VERSIONS 0
>  
>  #include <nptl/pthread_mutex_lock.c>

Ok.

> diff --git a/nptl/pthread_mutex_destroy.c b/nptl/pthread_mutex_destroy.c
> index d2fb816e11..98da991a9d 100644
> --- a/nptl/pthread_mutex_destroy.c
> +++ b/nptl/pthread_mutex_destroy.c
> @@ -18,12 +18,12 @@
>  
>  #include <errno.h>
>  #include "pthreadP.h"
> -
> +#include <shlib-compat.h>
>  #include <stap-probe.h>
>  
>  
>  int
> -__pthread_mutex_destroy (pthread_mutex_t *mutex)
> +__pthread_mutex_destroy_1 (pthread_mutex_t *mutex)
>  {
>    LIBC_PROBE (mutex_destroy, 1, mutex);
>  
> @@ -41,5 +41,15 @@ __pthread_mutex_destroy (pthread_mutex_t *mutex)
>  
>    return 0;
>  }
> -weak_alias (__pthread_mutex_destroy, pthread_mutex_destroy)
> -hidden_def (__pthread_mutex_destroy)
> +versioned_symbol (libc, __pthread_mutex_destroy_1, __pthread_mutex_destroy,
> +                  GLIBC_2_34);
> +libc_hidden_ver (__pthread_mutex_destroy_1, __pthread_mutex_destroy)
> +strong_alias (__pthread_mutex_destroy_1, __pthread_mutex_destroy_2)
> +versioned_symbol (libc, __pthread_mutex_destroy_2, pthread_mutex_destroy,
> +                  GLIBC_2_0);
> +
> +#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_34)
> +strong_alias (__pthread_mutex_destroy_1, __pthread_mutex_destroy_3)
> +compat_symbol (libc, __pthread_mutex_destroy_3, __pthread_mutex_destroy,
> +               GLIBC_2_0);
> +#endif

Ok.

> diff --git a/nptl/pthread_mutex_init.c b/nptl/pthread_mutex_init.c
> index f5c3a4b464..b3af7fcd48 100644
> --- a/nptl/pthread_mutex_init.c
> +++ b/nptl/pthread_mutex_init.c
> @@ -25,6 +25,7 @@
>  #include <atomic.h>
>  #include <pthread-offsets.h>
>  #include <futex-internal.h>
> +#include <shlib-compat.h>
>  
>  #include <stap-probe.h>
>  
> @@ -48,7 +49,7 @@ prio_inherit_missing (void)
>  }
>  
>  int
> -__pthread_mutex_init (pthread_mutex_t *mutex,
> +__pthread_mutex_init_1 (pthread_mutex_t *mutex,
>  		      const pthread_mutexattr_t *mutexattr)
>  {
>    const struct pthread_mutexattr *imutexattr;
> @@ -150,5 +151,14 @@ __pthread_mutex_init (pthread_mutex_t *mutex,
>  
>    return 0;
>  }
> -weak_alias (__pthread_mutex_init, pthread_mutex_init)
> -hidden_def (__pthread_mutex_init)
> +versioned_symbol (libc, __pthread_mutex_init_1, __pthread_mutex_init,
> +		  GLIBC_2_34);
> +libc_hidden_ver (__pthread_mutex_init_1, __pthread_mutex_init)
> +strong_alias (__pthread_mutex_init_1, __pthread_mutex_init_2)
> +versioned_symbol (libc, __pthread_mutex_init_2, pthread_mutex_init,
> +		  GLIBC_2_0);
> +# if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_34)
> +strong_alias (__pthread_mutex_init_1, __pthread_mutex_init_3)
> +compat_symbol (libc, __pthread_mutex_init_3, __pthread_mutex_init,
> +	       GLIBC_2_0);
> +#endif

Ok.

> diff --git a/nptl/pthread_mutex_lock.c b/nptl/pthread_mutex_lock.c
> index 8649a92ffb..261cd5a72d 100644
> --- a/nptl/pthread_mutex_lock.c
> +++ b/nptl/pthread_mutex_lock.c
> @@ -26,6 +26,7 @@
>  #include <atomic.h>
>  #include <futex-internal.h>
>  #include <stap-probe.h>
> +#include <shlib-compat.h>
>  
>  /* Some of the following definitions differ when pthread_mutex_cond_lock.c
>     includes this file.  */
> @@ -60,13 +61,15 @@ lll_mutex_lock_optimized (pthread_mutex_t *mutex)
>  # define LLL_MUTEX_TRYLOCK_ELISION(mutex) \
>    lll_trylock_elision((mutex)->__data.__lock, (mutex)->__data.__elision, \
>  		   PTHREAD_MUTEX_PSHARED (mutex))
> +# define PTHREAD_MUTEX_LOCK __pthread_mutex_lock_1
> +# define PTHREAD_MUTEX_VERSIONS 1
>  #endif
>  
>  static int __pthread_mutex_lock_full (pthread_mutex_t *mutex)
>       __attribute_noinline__;
>  
>  int
> -__pthread_mutex_lock (pthread_mutex_t *mutex)
> +PTHREAD_MUTEX_LOCK (pthread_mutex_t *mutex)
>  {
>    /* See concurrency notes regarding mutex type which is loaded from __kind
>       in struct __pthread_mutex_s in sysdeps/nptl/bits/thread-shared-types.h.  */
> @@ -604,10 +607,19 @@ __pthread_mutex_lock_full (pthread_mutex_t *mutex)
>  
>    return 0;
>  }
> -#ifndef __pthread_mutex_lock
> -weak_alias (__pthread_mutex_lock, pthread_mutex_lock)
> -hidden_def (__pthread_mutex_lock)
> -#endif
> +
> +#if PTHREAD_MUTEX_VERSIONS
> +versioned_symbol (libc, __pthread_mutex_lock_1, __pthread_mutex_lock,
> +		  GLIBC_2_34);
> +libc_hidden_ver (__pthread_mutex_lock_1, __pthread_mutex_lock)
> +strong_alias (__pthread_mutex_lock_1, __pthread_mutex_lock_2)
> +versioned_symbol (libc, __pthread_mutex_lock_2, pthread_mutex_lock, GLIBC_2_0);
> +
> +# if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_34)
> +strong_alias (__pthread_mutex_lock_1, __pthread_mutex_lock_3)
> +compat_symbol (libc, __pthread_mutex_lock_3, __pthread_mutex_lock, GLIBC_2_0);
> +# endif
> +#endif /* PTHREAD_MUTEX_VERSIONS */
>  
>  
>  #ifdef NO_INCR

Ok.

> diff --git a/nptl/pthread_mutex_unlock.c b/nptl/pthread_mutex_unlock.c
> index 655093ee9a..159720198c 100644
> --- a/nptl/pthread_mutex_unlock.c
> +++ b/nptl/pthread_mutex_unlock.c
> @@ -23,6 +23,7 @@
>  #include <lowlevellock.h>
>  #include <stap-probe.h>
>  #include <futex-internal.h>
> +#include <shlib-compat.h>
>  
>  static int
>  __pthread_mutex_unlock_full (pthread_mutex_t *mutex, int decr)
> @@ -44,7 +45,6 @@ lll_mutex_unlock_optimized (pthread_mutex_t *mutex)
>  }
>  
>  int
> -attribute_hidden
>  __pthread_mutex_unlock_usercnt (pthread_mutex_t *mutex, int decr)
>  {
>    /* See concurrency notes regarding mutex type which is loaded from __kind
> @@ -103,6 +103,7 @@ __pthread_mutex_unlock_usercnt (pthread_mutex_t *mutex, int decr)
>        goto normal;
>      }
>  }
> +libc_hidden_def (__pthread_mutex_unlock_usercnt)
>  
>  
>  static int
> @@ -363,9 +364,19 @@ __pthread_mutex_unlock_full (pthread_mutex_t *mutex, int decr)
>  
>  
>  int
> -__pthread_mutex_unlock (pthread_mutex_t *mutex)
> +__pthread_mutex_unlock_1 (pthread_mutex_t *mutex)
>  {
>    return __pthread_mutex_unlock_usercnt (mutex, 1);
>  }
> -weak_alias (__pthread_mutex_unlock, pthread_mutex_unlock)
> -hidden_def (__pthread_mutex_unlock)
> +versioned_symbol (libc, __pthread_mutex_unlock_1, __pthread_mutex_unlock,
> +		  GLIBC_2_34);
> +libc_hidden_ver (__pthread_mutex_unlock_1, __pthread_mutex_unlock)
> +strong_alias (__pthread_mutex_unlock_1, __pthread_mutex_unlock_2)
> +versioned_symbol (libc, __pthread_mutex_unlock_2, pthread_mutex_unlock,
> +		  GLIBC_2_0);
> +
> +#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_34)
> +strong_alias (__pthread_mutex_unlock_1, __pthread_mutex_unlock_3)
> +compat_symbol (libc, __pthread_mutex_unlock_3, __pthread_mutex_unlock,
> +	       GLIBC_2_0);
> +#endif

Ok.

> diff --git a/sysdeps/nptl/libc-lockP.h b/sysdeps/nptl/libc-lockP.h
> index 89910560fa..0dd2ea1147 100644
> --- a/sysdeps/nptl/libc-lockP.h
> +++ b/sysdeps/nptl/libc-lockP.h
> @@ -128,8 +128,7 @@ _Static_assert (LLL_LOCK_INITIALIZER == 0, "LLL_LOCK_INITIALIZER != 0");
>  # define __libc_lock_init(NAME) \
>    ((void) ((NAME) = LLL_LOCK_INITIALIZER))
>  #else
> -# define __libc_lock_init(NAME) \
> -  __libc_maybe_call (__pthread_mutex_init, (&(NAME), NULL), 0)
> +# define __libc_lock_init(NAME) __pthread_mutex_init (&(NAME))
>  #endif
>  #if defined SHARED && IS_IN (libc)
>  /* ((NAME) = (__libc_rwlock_t) PTHREAD_RWLOCK_INITIALIZER) is inefficient.  */

Ok.

> @@ -146,8 +145,7 @@ _Static_assert (LLL_LOCK_INITIALIZER == 0, "LLL_LOCK_INITIALIZER != 0");
>  #if IS_IN (libc) || IS_IN (libpthread)
>  # define __libc_lock_fini(NAME) ((void) 0)
>  #else
> -# define __libc_lock_fini(NAME) \
> -  __libc_maybe_call (__pthread_mutex_destroy, (&(NAME)), 0)
> +# define __libc_lock_fini(NAME) __pthread_mutex_destroy (&(NAME))
>  #endif
>  #if defined SHARED && IS_IN (libc)
>  # define __libc_rwlock_fini(NAME) ((void) 0)

Ok.

> @@ -164,8 +162,7 @@ _Static_assert (LLL_LOCK_INITIALIZER == 0, "LLL_LOCK_INITIALIZER != 0");
>  # endif
>  #else
>  # undef __libc_lock_lock
> -# define __libc_lock_lock(NAME) \
> -  __libc_maybe_call (__pthread_mutex_lock, (&(NAME)), 0)
> +# define __libc_lock_lock(NAME) __pthread_mutex_lock (&(NAME))
>  #endif
>  #define __libc_rwlock_rdlock(NAME) __pthread_rwlock_rdlock (&(NAME))
>  #define __libc_rwlock_wrlock(NAME) __pthread_rwlock_wrlock (&(NAME))

Ok.

> @@ -194,8 +191,7 @@ _Static_assert (LLL_LOCK_INITIALIZER == 0, "LLL_LOCK_INITIALIZER != 0");
>  # define __libc_lock_unlock(NAME) \
>    lll_unlock (NAME, LLL_PRIVATE)
>  #else
> -# define __libc_lock_unlock(NAME) \
> -  __libc_maybe_call (__pthread_mutex_unlock, (&(NAME)), 0)
> +# define __libc_lock_unlock(NAME) __pthread_mutex_unlock (&(NAME))
>  #endif
>  #define __libc_rwlock_unlock(NAME) __pthread_rwlock_unlock (&(NAME))
>  

Ok.

> @@ -213,10 +209,10 @@ _Static_assert (LLL_LOCK_INITIALIZER == 0, "LLL_LOCK_INITIALIZER != 0");
>    GL(dl_rtld_unlock_recursive) (&(NAME).mutex)
>  #else
>  # define __rtld_lock_lock_recursive(NAME) \
> -  __libc_maybe_call (__pthread_mutex_lock, (&(NAME).mutex), 0)
> +  __pthread_mutex_lock (&(NAME).mutex)
>  
>  # define __rtld_lock_unlock_recursive(NAME) \
> -  __libc_maybe_call (__pthread_mutex_unlock, (&(NAME).mutex), 0)
> +  __pthread_mutex_unlock (&(NAME).mutex)
>  #endif
>  
>  /* Define once control variable.  */

Ok.

> @@ -274,15 +270,15 @@ extern int __register_atfork (void (*__prepare) (void),
>  
>  extern int __pthread_mutex_init (pthread_mutex_t *__mutex,
>  				 const pthread_mutexattr_t *__mutex_attr);
> -
> +libc_hidden_proto (__pthread_mutex_init)
>  extern int __pthread_mutex_destroy (pthread_mutex_t *__mutex);
> -
> +libc_hidden_proto (__pthread_mutex_destroy)
>  extern int __pthread_mutex_trylock (pthread_mutex_t *__mutex);
>  
>  extern int __pthread_mutex_lock (pthread_mutex_t *__mutex);
> -
> +libc_hidden_proto (__pthread_mutex_lock)
>  extern int __pthread_mutex_unlock (pthread_mutex_t *__mutex);
> -
> +libc_hidden_proto (__pthread_mutex_unlock)
>  extern int __pthread_mutexattr_init (pthread_mutexattr_t *__attr);
>  
>  extern int __pthread_mutexattr_destroy (pthread_mutexattr_t *__attr);

Ok.

> @@ -320,11 +316,7 @@ libc_hidden_proto (__pthread_setcancelstate)
>     single-threaded processes.  */
>  #ifndef __NO_WEAK_PTHREAD_ALIASES
>  # ifdef weak_extern
> -weak_extern (__pthread_mutex_init)
> -weak_extern (__pthread_mutex_destroy)
> -weak_extern (__pthread_mutex_lock)
>  weak_extern (__pthread_mutex_trylock)
> -weak_extern (__pthread_mutex_unlock)
>  weak_extern (__pthread_mutexattr_init)
>  weak_extern (__pthread_mutexattr_destroy)
>  weak_extern (__pthread_mutexattr_settype)

Ok.

> @@ -335,11 +327,7 @@ weak_extern (__pthread_rwlock_trywrlock)
>  weak_extern (__pthread_initialize)
>  weak_extern (__pthread_atfork)
>  # else
> -#  pragma weak __pthread_mutex_init
> -#  pragma weak __pthread_mutex_destroy
> -#  pragma weak __pthread_mutex_lock
>  #  pragma weak __pthread_mutex_trylock
> -#  pragma weak __pthread_mutex_unlock
>  #  pragma weak __pthread_mutexattr_init
>  #  pragma weak __pthread_mutexattr_destroy
>  #  pragma weak __pthread_mutexattr_settype

Ok.

> diff --git a/sysdeps/nptl/pthread-functions.h b/sysdeps/nptl/pthread-functions.h
> index 8535e142d5..dab5a2831e 100644
> --- a/sysdeps/nptl/pthread-functions.h
> +++ b/sysdeps/nptl/pthread-functions.h
> @@ -41,11 +41,6 @@ struct pthread_functions
>    int (*ptr___pthread_cond_timedwait_2_0) (pthread_cond_2_0_t *,
>  					   pthread_mutex_t *,
>  					   const struct timespec *);
> -  int (*ptr_pthread_mutex_destroy) (pthread_mutex_t *);
> -  int (*ptr_pthread_mutex_init) (pthread_mutex_t *,
> -				 const pthread_mutexattr_t *);
> -  int (*ptr_pthread_mutex_lock) (pthread_mutex_t *);
> -  int (*ptr_pthread_mutex_unlock) (pthread_mutex_t *);
>    int (*ptr__nptl_setxid) (struct xid_command *);
>  };
>  

Ok.

> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index 9191b2e760..381947232e 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -341,6 +341,10 @@ GLIBC_2.17 __progname_full D 0x8
>  GLIBC_2.17 __pthread_cleanup_routine F
>  GLIBC_2.17 __pthread_getspecific F
>  GLIBC_2.17 __pthread_key_create F
> +GLIBC_2.17 __pthread_mutex_destroy F
> +GLIBC_2.17 __pthread_mutex_init F
> +GLIBC_2.17 __pthread_mutex_lock F
> +GLIBC_2.17 __pthread_mutex_unlock F
>  GLIBC_2.17 __pthread_once F
>  GLIBC_2.17 __pthread_rwlock_rdlock F
>  GLIBC_2.17 __pthread_rwlock_unlock F
> @@ -2198,6 +2202,10 @@ GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
>  GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
> +GLIBC_2.34 __pthread_mutex_destroy F
> +GLIBC_2.34 __pthread_mutex_init F
> +GLIBC_2.34 __pthread_mutex_lock F
> +GLIBC_2.34 __pthread_mutex_unlock F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_rwlock_rdlock F
>  GLIBC_2.34 __pthread_rwlock_unlock F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> index 9a24f796de..29a98fc2f4 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> @@ -13,11 +13,7 @@ GLIBC_2.17 __lseek F
>  GLIBC_2.17 __open F
>  GLIBC_2.17 __open64 F
>  GLIBC_2.17 __pread64 F
> -GLIBC_2.17 __pthread_mutex_destroy F
> -GLIBC_2.17 __pthread_mutex_init F
> -GLIBC_2.17 __pthread_mutex_lock F
>  GLIBC_2.17 __pthread_mutex_trylock F
> -GLIBC_2.17 __pthread_mutex_unlock F
>  GLIBC_2.17 __pthread_mutexattr_destroy F
>  GLIBC_2.17 __pthread_mutexattr_init F
>  GLIBC_2.17 __pthread_mutexattr_settype F
> @@ -84,14 +80,10 @@ GLIBC_2.17 pthread_getname_np F
>  GLIBC_2.17 pthread_join F
>  GLIBC_2.17 pthread_kill F
>  GLIBC_2.17 pthread_kill_other_threads_np F
> -GLIBC_2.17 pthread_mutex_destroy F
>  GLIBC_2.17 pthread_mutex_getprioceiling F
> -GLIBC_2.17 pthread_mutex_init F
> -GLIBC_2.17 pthread_mutex_lock F
>  GLIBC_2.17 pthread_mutex_setprioceiling F
>  GLIBC_2.17 pthread_mutex_timedlock F
>  GLIBC_2.17 pthread_mutex_trylock F
> -GLIBC_2.17 pthread_mutex_unlock F
>  GLIBC_2.17 pthread_mutexattr_destroy F
>  GLIBC_2.17 pthread_mutexattr_getkind_np F
>  GLIBC_2.17 pthread_mutexattr_getprioceiling F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index 71dd49d25c..7e314dd68b 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -190,6 +190,10 @@ GLIBC_2.0 __progname D 0x8
>  GLIBC_2.0 __progname_full D 0x8
>  GLIBC_2.0 __pthread_getspecific F
>  GLIBC_2.0 __pthread_key_create F
> +GLIBC_2.0 __pthread_mutex_destroy F
> +GLIBC_2.0 __pthread_mutex_init F
> +GLIBC_2.0 __pthread_mutex_lock F
> +GLIBC_2.0 __pthread_mutex_unlock F
>  GLIBC_2.0 __pthread_once F
>  GLIBC_2.0 __pthread_setspecific F
>  GLIBC_2.0 __rcmd_errstr D 0x8
> @@ -2279,6 +2283,10 @@ GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
>  GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
> +GLIBC_2.34 __pthread_mutex_destroy F
> +GLIBC_2.34 __pthread_mutex_init F
> +GLIBC_2.34 __pthread_mutex_lock F
> +GLIBC_2.34 __pthread_mutex_unlock F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_rwlock_rdlock F
>  GLIBC_2.34 __pthread_rwlock_unlock F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> index a7b3fd73ab..29cb6259a5 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> @@ -8,11 +8,7 @@ GLIBC_2.0 __fcntl F
>  GLIBC_2.0 __h_errno_location F
>  GLIBC_2.0 __lseek F
>  GLIBC_2.0 __open F
> -GLIBC_2.0 __pthread_mutex_destroy F
> -GLIBC_2.0 __pthread_mutex_init F
> -GLIBC_2.0 __pthread_mutex_lock F
>  GLIBC_2.0 __pthread_mutex_trylock F
> -GLIBC_2.0 __pthread_mutex_unlock F
>  GLIBC_2.0 __pthread_mutexattr_destroy F
>  GLIBC_2.0 __pthread_mutexattr_init F
>  GLIBC_2.0 __pthread_mutexattr_settype F
> @@ -43,11 +39,7 @@ GLIBC_2.0 pthread_detach F
>  GLIBC_2.0 pthread_join F
>  GLIBC_2.0 pthread_kill F
>  GLIBC_2.0 pthread_kill_other_threads_np F
> -GLIBC_2.0 pthread_mutex_destroy F
> -GLIBC_2.0 pthread_mutex_init F
> -GLIBC_2.0 pthread_mutex_lock F
>  GLIBC_2.0 pthread_mutex_trylock F
> -GLIBC_2.0 pthread_mutex_unlock F
>  GLIBC_2.0 pthread_mutexattr_destroy F
>  GLIBC_2.0 pthread_mutexattr_getkind_np F
>  GLIBC_2.0 pthread_mutexattr_init F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index 38764a6746..014b30c7bd 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -330,6 +330,10 @@ GLIBC_2.32 __progname_full D 0x4
>  GLIBC_2.32 __pthread_cleanup_routine F
>  GLIBC_2.32 __pthread_getspecific F
>  GLIBC_2.32 __pthread_key_create F
> +GLIBC_2.32 __pthread_mutex_destroy F
> +GLIBC_2.32 __pthread_mutex_init F
> +GLIBC_2.32 __pthread_mutex_lock F
> +GLIBC_2.32 __pthread_mutex_unlock F
>  GLIBC_2.32 __pthread_once F
>  GLIBC_2.32 __pthread_rwlock_rdlock F
>  GLIBC_2.32 __pthread_rwlock_unlock F
> @@ -1958,6 +1962,10 @@ GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
>  GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
> +GLIBC_2.34 __pthread_mutex_destroy F
> +GLIBC_2.34 __pthread_mutex_init F
> +GLIBC_2.34 __pthread_mutex_lock F
> +GLIBC_2.34 __pthread_mutex_unlock F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_rwlock_rdlock F
>  GLIBC_2.34 __pthread_rwlock_unlock F
> diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> index 0d8b928e6d..b926ef9dba 100644
> --- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> @@ -12,11 +12,7 @@ GLIBC_2.32 __lseek F
>  GLIBC_2.32 __open F
>  GLIBC_2.32 __open64 F
>  GLIBC_2.32 __pread64 F
> -GLIBC_2.32 __pthread_mutex_destroy F
> -GLIBC_2.32 __pthread_mutex_init F
> -GLIBC_2.32 __pthread_mutex_lock F
>  GLIBC_2.32 __pthread_mutex_trylock F
> -GLIBC_2.32 __pthread_mutex_unlock F
>  GLIBC_2.32 __pthread_mutexattr_destroy F
>  GLIBC_2.32 __pthread_mutexattr_init F
>  GLIBC_2.32 __pthread_mutexattr_settype F
> @@ -99,14 +95,10 @@ GLIBC_2.32 pthread_join F
>  GLIBC_2.32 pthread_kill F
>  GLIBC_2.32 pthread_kill_other_threads_np F
>  GLIBC_2.32 pthread_mutex_clocklock F
> -GLIBC_2.32 pthread_mutex_destroy F
>  GLIBC_2.32 pthread_mutex_getprioceiling F
> -GLIBC_2.32 pthread_mutex_init F
> -GLIBC_2.32 pthread_mutex_lock F
>  GLIBC_2.32 pthread_mutex_setprioceiling F
>  GLIBC_2.32 pthread_mutex_timedlock F
>  GLIBC_2.32 pthread_mutex_trylock F
> -GLIBC_2.32 pthread_mutex_unlock F
>  GLIBC_2.32 pthread_mutexattr_destroy F
>  GLIBC_2.32 pthread_mutexattr_getkind_np F
>  GLIBC_2.32 pthread_mutexattr_getprioceiling F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index 86d971e7d2..412eb541fc 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -160,6 +160,10 @@ GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
>  GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
> +GLIBC_2.34 __pthread_mutex_destroy F
> +GLIBC_2.34 __pthread_mutex_init F
> +GLIBC_2.34 __pthread_mutex_lock F
> +GLIBC_2.34 __pthread_mutex_unlock F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_rwlock_rdlock F
>  GLIBC_2.34 __pthread_rwlock_unlock F
> @@ -505,6 +509,10 @@ GLIBC_2.4 __progname_full D 0x4
>  GLIBC_2.4 __pthread_cleanup_routine F
>  GLIBC_2.4 __pthread_getspecific F
>  GLIBC_2.4 __pthread_key_create F
> +GLIBC_2.4 __pthread_mutex_destroy F
> +GLIBC_2.4 __pthread_mutex_init F
> +GLIBC_2.4 __pthread_mutex_lock F
> +GLIBC_2.4 __pthread_mutex_unlock F
>  GLIBC_2.4 __pthread_once F
>  GLIBC_2.4 __pthread_rwlock_rdlock F
>  GLIBC_2.4 __pthread_rwlock_unlock F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> index 833b53362d..8dd2c3f7a6 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> @@ -47,11 +47,7 @@ GLIBC_2.4 __lseek F
>  GLIBC_2.4 __open F
>  GLIBC_2.4 __open64 F
>  GLIBC_2.4 __pread64 F
> -GLIBC_2.4 __pthread_mutex_destroy F
> -GLIBC_2.4 __pthread_mutex_init F
> -GLIBC_2.4 __pthread_mutex_lock F
>  GLIBC_2.4 __pthread_mutex_trylock F
> -GLIBC_2.4 __pthread_mutex_unlock F
>  GLIBC_2.4 __pthread_mutexattr_destroy F
>  GLIBC_2.4 __pthread_mutexattr_init F
>  GLIBC_2.4 __pthread_mutexattr_settype F
> @@ -117,14 +113,10 @@ GLIBC_2.4 pthread_getcpuclockid F
>  GLIBC_2.4 pthread_join F
>  GLIBC_2.4 pthread_kill F
>  GLIBC_2.4 pthread_kill_other_threads_np F
> -GLIBC_2.4 pthread_mutex_destroy F
>  GLIBC_2.4 pthread_mutex_getprioceiling F
> -GLIBC_2.4 pthread_mutex_init F
> -GLIBC_2.4 pthread_mutex_lock F
>  GLIBC_2.4 pthread_mutex_setprioceiling F
>  GLIBC_2.4 pthread_mutex_timedlock F
>  GLIBC_2.4 pthread_mutex_trylock F
> -GLIBC_2.4 pthread_mutex_unlock F
>  GLIBC_2.4 pthread_mutexattr_destroy F
>  GLIBC_2.4 pthread_mutexattr_getkind_np F
>  GLIBC_2.4 pthread_mutexattr_getprioceiling F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index caf3f6a141..588f1d6b42 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -157,6 +157,10 @@ GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
>  GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
> +GLIBC_2.34 __pthread_mutex_destroy F
> +GLIBC_2.34 __pthread_mutex_init F
> +GLIBC_2.34 __pthread_mutex_lock F
> +GLIBC_2.34 __pthread_mutex_unlock F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_rwlock_rdlock F
>  GLIBC_2.34 __pthread_rwlock_unlock F
> @@ -502,6 +506,10 @@ GLIBC_2.4 __progname_full D 0x4
>  GLIBC_2.4 __pthread_cleanup_routine F
>  GLIBC_2.4 __pthread_getspecific F
>  GLIBC_2.4 __pthread_key_create F
> +GLIBC_2.4 __pthread_mutex_destroy F
> +GLIBC_2.4 __pthread_mutex_init F
> +GLIBC_2.4 __pthread_mutex_lock F
> +GLIBC_2.4 __pthread_mutex_unlock F
>  GLIBC_2.4 __pthread_once F
>  GLIBC_2.4 __pthread_rwlock_rdlock F
>  GLIBC_2.4 __pthread_rwlock_unlock F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> index 833b53362d..8dd2c3f7a6 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> @@ -47,11 +47,7 @@ GLIBC_2.4 __lseek F
>  GLIBC_2.4 __open F
>  GLIBC_2.4 __open64 F
>  GLIBC_2.4 __pread64 F
> -GLIBC_2.4 __pthread_mutex_destroy F
> -GLIBC_2.4 __pthread_mutex_init F
> -GLIBC_2.4 __pthread_mutex_lock F
>  GLIBC_2.4 __pthread_mutex_trylock F
> -GLIBC_2.4 __pthread_mutex_unlock F
>  GLIBC_2.4 __pthread_mutexattr_destroy F
>  GLIBC_2.4 __pthread_mutexattr_init F
>  GLIBC_2.4 __pthread_mutexattr_settype F
> @@ -117,14 +113,10 @@ GLIBC_2.4 pthread_getcpuclockid F
>  GLIBC_2.4 pthread_join F
>  GLIBC_2.4 pthread_kill F
>  GLIBC_2.4 pthread_kill_other_threads_np F
> -GLIBC_2.4 pthread_mutex_destroy F
>  GLIBC_2.4 pthread_mutex_getprioceiling F
> -GLIBC_2.4 pthread_mutex_init F
> -GLIBC_2.4 pthread_mutex_lock F
>  GLIBC_2.4 pthread_mutex_setprioceiling F
>  GLIBC_2.4 pthread_mutex_timedlock F
>  GLIBC_2.4 pthread_mutex_trylock F
> -GLIBC_2.4 pthread_mutex_unlock F
>  GLIBC_2.4 pthread_mutexattr_destroy F
>  GLIBC_2.4 pthread_mutexattr_getkind_np F
>  GLIBC_2.4 pthread_mutexattr_getprioceiling F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index aeb6424389..76fb31f895 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -334,6 +334,10 @@ GLIBC_2.29 __progname_full D 0x4
>  GLIBC_2.29 __pthread_cleanup_routine F
>  GLIBC_2.29 __pthread_getspecific F
>  GLIBC_2.29 __pthread_key_create F
> +GLIBC_2.29 __pthread_mutex_destroy F
> +GLIBC_2.29 __pthread_mutex_init F
> +GLIBC_2.29 __pthread_mutex_lock F
> +GLIBC_2.29 __pthread_mutex_unlock F
>  GLIBC_2.29 __pthread_once F
>  GLIBC_2.29 __pthread_rwlock_rdlock F
>  GLIBC_2.29 __pthread_rwlock_unlock F
> @@ -2142,6 +2146,10 @@ GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
>  GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
> +GLIBC_2.34 __pthread_mutex_destroy F
> +GLIBC_2.34 __pthread_mutex_init F
> +GLIBC_2.34 __pthread_mutex_lock F
> +GLIBC_2.34 __pthread_mutex_unlock F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_rwlock_rdlock F
>  GLIBC_2.34 __pthread_rwlock_unlock F
> diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> index 440c0507d1..2c4d219569 100644
> --- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> @@ -12,11 +12,7 @@ GLIBC_2.29 __lseek F
>  GLIBC_2.29 __open F
>  GLIBC_2.29 __open64 F
>  GLIBC_2.29 __pread64 F
> -GLIBC_2.29 __pthread_mutex_destroy F
> -GLIBC_2.29 __pthread_mutex_init F
> -GLIBC_2.29 __pthread_mutex_lock F
>  GLIBC_2.29 __pthread_mutex_trylock F
> -GLIBC_2.29 __pthread_mutex_unlock F
>  GLIBC_2.29 __pthread_mutexattr_destroy F
>  GLIBC_2.29 __pthread_mutexattr_init F
>  GLIBC_2.29 __pthread_mutexattr_settype F
> @@ -96,14 +92,10 @@ GLIBC_2.29 pthread_getname_np F
>  GLIBC_2.29 pthread_join F
>  GLIBC_2.29 pthread_kill F
>  GLIBC_2.29 pthread_kill_other_threads_np F
> -GLIBC_2.29 pthread_mutex_destroy F
>  GLIBC_2.29 pthread_mutex_getprioceiling F
> -GLIBC_2.29 pthread_mutex_init F
> -GLIBC_2.29 pthread_mutex_lock F
>  GLIBC_2.29 pthread_mutex_setprioceiling F
>  GLIBC_2.29 pthread_mutex_timedlock F
>  GLIBC_2.29 pthread_mutex_trylock F
> -GLIBC_2.29 pthread_mutex_unlock F
>  GLIBC_2.29 pthread_mutexattr_destroy F
>  GLIBC_2.29 pthread_mutexattr_getkind_np F
>  GLIBC_2.29 pthread_mutexattr_getprioceiling F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index e1d02058c9..e99899dee5 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -358,6 +358,10 @@ GLIBC_2.2 __progname D 0x4
>  GLIBC_2.2 __progname_full D 0x4
>  GLIBC_2.2 __pthread_getspecific F
>  GLIBC_2.2 __pthread_key_create F
> +GLIBC_2.2 __pthread_mutex_destroy F
> +GLIBC_2.2 __pthread_mutex_init F
> +GLIBC_2.2 __pthread_mutex_lock F
> +GLIBC_2.2 __pthread_mutex_unlock F
>  GLIBC_2.2 __pthread_once F
>  GLIBC_2.2 __pthread_rwlock_rdlock F
>  GLIBC_2.2 __pthread_rwlock_unlock F
> @@ -2100,6 +2104,10 @@ GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
>  GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
> +GLIBC_2.34 __pthread_mutex_destroy F
> +GLIBC_2.34 __pthread_mutex_init F
> +GLIBC_2.34 __pthread_mutex_lock F
> +GLIBC_2.34 __pthread_mutex_unlock F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_rwlock_rdlock F
>  GLIBC_2.34 __pthread_rwlock_unlock F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> index 70af59d791..9e15deaad8 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> @@ -20,11 +20,7 @@ GLIBC_2.2 __lseek F
>  GLIBC_2.2 __open F
>  GLIBC_2.2 __open64 F
>  GLIBC_2.2 __pread64 F
> -GLIBC_2.2 __pthread_mutex_destroy F
> -GLIBC_2.2 __pthread_mutex_init F
> -GLIBC_2.2 __pthread_mutex_lock F
>  GLIBC_2.2 __pthread_mutex_trylock F
> -GLIBC_2.2 __pthread_mutex_unlock F
>  GLIBC_2.2 __pthread_mutexattr_destroy F
>  GLIBC_2.2 __pthread_mutexattr_init F
>  GLIBC_2.2 __pthread_mutexattr_settype F
> @@ -83,12 +79,8 @@ GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_join F
>  GLIBC_2.2 pthread_kill F
>  GLIBC_2.2 pthread_kill_other_threads_np F
> -GLIBC_2.2 pthread_mutex_destroy F
> -GLIBC_2.2 pthread_mutex_init F
> -GLIBC_2.2 pthread_mutex_lock F
>  GLIBC_2.2 pthread_mutex_timedlock F
>  GLIBC_2.2 pthread_mutex_trylock F
> -GLIBC_2.2 pthread_mutex_unlock F
>  GLIBC_2.2 pthread_mutexattr_destroy F
>  GLIBC_2.2 pthread_mutexattr_getkind_np F
>  GLIBC_2.2 pthread_mutexattr_getpshared F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index 717344a690..29b8e0c1eb 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -187,6 +187,10 @@ GLIBC_2.0 __progname D 0x4
>  GLIBC_2.0 __progname_full D 0x4
>  GLIBC_2.0 __pthread_getspecific F
>  GLIBC_2.0 __pthread_key_create F
> +GLIBC_2.0 __pthread_mutex_destroy F
> +GLIBC_2.0 __pthread_mutex_init F
> +GLIBC_2.0 __pthread_mutex_lock F
> +GLIBC_2.0 __pthread_mutex_unlock F
>  GLIBC_2.0 __pthread_once F
>  GLIBC_2.0 __pthread_setspecific F
>  GLIBC_2.0 __rcmd_errstr D 0x4
> @@ -2267,6 +2271,10 @@ GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
>  GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
> +GLIBC_2.34 __pthread_mutex_destroy F
> +GLIBC_2.34 __pthread_mutex_init F
> +GLIBC_2.34 __pthread_mutex_lock F
> +GLIBC_2.34 __pthread_mutex_unlock F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_rwlock_rdlock F
>  GLIBC_2.34 __pthread_rwlock_unlock F
> diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> index 35cc2f61c5..4065a88a3b 100644
> --- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> @@ -8,11 +8,7 @@ GLIBC_2.0 __fcntl F
>  GLIBC_2.0 __h_errno_location F
>  GLIBC_2.0 __lseek F
>  GLIBC_2.0 __open F
> -GLIBC_2.0 __pthread_mutex_destroy F
> -GLIBC_2.0 __pthread_mutex_init F
> -GLIBC_2.0 __pthread_mutex_lock F
>  GLIBC_2.0 __pthread_mutex_trylock F
> -GLIBC_2.0 __pthread_mutex_unlock F
>  GLIBC_2.0 __pthread_mutexattr_destroy F
>  GLIBC_2.0 __pthread_mutexattr_init F
>  GLIBC_2.0 __pthread_mutexattr_settype F
> @@ -43,11 +39,7 @@ GLIBC_2.0 pthread_detach F
>  GLIBC_2.0 pthread_join F
>  GLIBC_2.0 pthread_kill F
>  GLIBC_2.0 pthread_kill_other_threads_np F
> -GLIBC_2.0 pthread_mutex_destroy F
> -GLIBC_2.0 pthread_mutex_init F
> -GLIBC_2.0 pthread_mutex_lock F
>  GLIBC_2.0 pthread_mutex_trylock F
> -GLIBC_2.0 pthread_mutex_unlock F
>  GLIBC_2.0 pthread_mutexattr_destroy F
>  GLIBC_2.0 pthread_mutexattr_getkind_np F
>  GLIBC_2.0 pthread_mutexattr_init F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index 284b7072a3..fb8a36ce20 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -362,6 +362,10 @@ GLIBC_2.2 __progname D 0x8
>  GLIBC_2.2 __progname_full D 0x8
>  GLIBC_2.2 __pthread_getspecific F
>  GLIBC_2.2 __pthread_key_create F
> +GLIBC_2.2 __pthread_mutex_destroy F
> +GLIBC_2.2 __pthread_mutex_init F
> +GLIBC_2.2 __pthread_mutex_lock F
> +GLIBC_2.2 __pthread_mutex_unlock F
>  GLIBC_2.2 __pthread_once F
>  GLIBC_2.2 __pthread_rwlock_rdlock F
>  GLIBC_2.2 __pthread_rwlock_unlock F
> @@ -2132,6 +2136,10 @@ GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
>  GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
> +GLIBC_2.34 __pthread_mutex_destroy F
> +GLIBC_2.34 __pthread_mutex_init F
> +GLIBC_2.34 __pthread_mutex_lock F
> +GLIBC_2.34 __pthread_mutex_unlock F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_rwlock_rdlock F
>  GLIBC_2.34 __pthread_rwlock_unlock F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> index 2e69109cdc..684bf559e5 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> @@ -20,11 +20,7 @@ GLIBC_2.2 __lseek F
>  GLIBC_2.2 __open F
>  GLIBC_2.2 __open64 F
>  GLIBC_2.2 __pread64 F
> -GLIBC_2.2 __pthread_mutex_destroy F
> -GLIBC_2.2 __pthread_mutex_init F
> -GLIBC_2.2 __pthread_mutex_lock F
>  GLIBC_2.2 __pthread_mutex_trylock F
> -GLIBC_2.2 __pthread_mutex_unlock F
>  GLIBC_2.2 __pthread_mutexattr_destroy F
>  GLIBC_2.2 __pthread_mutexattr_init F
>  GLIBC_2.2 __pthread_mutexattr_settype F
> @@ -83,12 +79,8 @@ GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_join F
>  GLIBC_2.2 pthread_kill F
>  GLIBC_2.2 pthread_kill_other_threads_np F
> -GLIBC_2.2 pthread_mutex_destroy F
> -GLIBC_2.2 pthread_mutex_init F
> -GLIBC_2.2 pthread_mutex_lock F
>  GLIBC_2.2 pthread_mutex_timedlock F
>  GLIBC_2.2 pthread_mutex_trylock F
> -GLIBC_2.2 pthread_mutex_unlock F
>  GLIBC_2.2 pthread_mutexattr_destroy F
>  GLIBC_2.2 pthread_mutexattr_getkind_np F
>  GLIBC_2.2 pthread_mutexattr_getpshared F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index 404d16b92a..03e80e6a12 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -161,6 +161,10 @@ GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
>  GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
> +GLIBC_2.34 __pthread_mutex_destroy F
> +GLIBC_2.34 __pthread_mutex_init F
> +GLIBC_2.34 __pthread_mutex_lock F
> +GLIBC_2.34 __pthread_mutex_unlock F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_rwlock_rdlock F
>  GLIBC_2.34 __pthread_rwlock_unlock F
> @@ -491,6 +495,10 @@ GLIBC_2.4 __progname_full D 0x4
>  GLIBC_2.4 __pthread_cleanup_routine F
>  GLIBC_2.4 __pthread_getspecific F
>  GLIBC_2.4 __pthread_key_create F
> +GLIBC_2.4 __pthread_mutex_destroy F
> +GLIBC_2.4 __pthread_mutex_init F
> +GLIBC_2.4 __pthread_mutex_lock F
> +GLIBC_2.4 __pthread_mutex_unlock F
>  GLIBC_2.4 __pthread_once F
>  GLIBC_2.4 __pthread_rwlock_rdlock F
>  GLIBC_2.4 __pthread_rwlock_unlock F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> index 833b53362d..8dd2c3f7a6 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> @@ -47,11 +47,7 @@ GLIBC_2.4 __lseek F
>  GLIBC_2.4 __open F
>  GLIBC_2.4 __open64 F
>  GLIBC_2.4 __pread64 F
> -GLIBC_2.4 __pthread_mutex_destroy F
> -GLIBC_2.4 __pthread_mutex_init F
> -GLIBC_2.4 __pthread_mutex_lock F
>  GLIBC_2.4 __pthread_mutex_trylock F
> -GLIBC_2.4 __pthread_mutex_unlock F
>  GLIBC_2.4 __pthread_mutexattr_destroy F
>  GLIBC_2.4 __pthread_mutexattr_init F
>  GLIBC_2.4 __pthread_mutexattr_settype F
> @@ -117,14 +113,10 @@ GLIBC_2.4 pthread_getcpuclockid F
>  GLIBC_2.4 pthread_join F
>  GLIBC_2.4 pthread_kill F
>  GLIBC_2.4 pthread_kill_other_threads_np F
> -GLIBC_2.4 pthread_mutex_destroy F
>  GLIBC_2.4 pthread_mutex_getprioceiling F
> -GLIBC_2.4 pthread_mutex_init F
> -GLIBC_2.4 pthread_mutex_lock F
>  GLIBC_2.4 pthread_mutex_setprioceiling F
>  GLIBC_2.4 pthread_mutex_timedlock F
>  GLIBC_2.4 pthread_mutex_trylock F
> -GLIBC_2.4 pthread_mutex_unlock F
>  GLIBC_2.4 pthread_mutexattr_destroy F
>  GLIBC_2.4 pthread_mutexattr_getkind_np F
>  GLIBC_2.4 pthread_mutexattr_getprioceiling F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index b1ad96e072..2a5bee30d1 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -187,6 +187,10 @@ GLIBC_2.0 __progname D 0x4
>  GLIBC_2.0 __progname_full D 0x4
>  GLIBC_2.0 __pthread_getspecific F
>  GLIBC_2.0 __pthread_key_create F
> +GLIBC_2.0 __pthread_mutex_destroy F
> +GLIBC_2.0 __pthread_mutex_init F
> +GLIBC_2.0 __pthread_mutex_lock F
> +GLIBC_2.0 __pthread_mutex_unlock F
>  GLIBC_2.0 __pthread_once F
>  GLIBC_2.0 __pthread_setspecific F
>  GLIBC_2.0 __rcmd_errstr D 0x4
> @@ -2212,6 +2216,10 @@ GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
>  GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
> +GLIBC_2.34 __pthread_mutex_destroy F
> +GLIBC_2.34 __pthread_mutex_init F
> +GLIBC_2.34 __pthread_mutex_lock F
> +GLIBC_2.34 __pthread_mutex_unlock F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_rwlock_rdlock F
>  GLIBC_2.34 __pthread_rwlock_unlock F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> index 35cc2f61c5..4065a88a3b 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> @@ -8,11 +8,7 @@ GLIBC_2.0 __fcntl F
>  GLIBC_2.0 __h_errno_location F
>  GLIBC_2.0 __lseek F
>  GLIBC_2.0 __open F
> -GLIBC_2.0 __pthread_mutex_destroy F
> -GLIBC_2.0 __pthread_mutex_init F
> -GLIBC_2.0 __pthread_mutex_lock F
>  GLIBC_2.0 __pthread_mutex_trylock F
> -GLIBC_2.0 __pthread_mutex_unlock F
>  GLIBC_2.0 __pthread_mutexattr_destroy F
>  GLIBC_2.0 __pthread_mutexattr_init F
>  GLIBC_2.0 __pthread_mutexattr_settype F
> @@ -43,11 +39,7 @@ GLIBC_2.0 pthread_detach F
>  GLIBC_2.0 pthread_join F
>  GLIBC_2.0 pthread_kill F
>  GLIBC_2.0 pthread_kill_other_threads_np F
> -GLIBC_2.0 pthread_mutex_destroy F
> -GLIBC_2.0 pthread_mutex_init F
> -GLIBC_2.0 pthread_mutex_lock F
>  GLIBC_2.0 pthread_mutex_trylock F
> -GLIBC_2.0 pthread_mutex_unlock F
>  GLIBC_2.0 pthread_mutexattr_destroy F
>  GLIBC_2.0 pthread_mutexattr_getkind_np F
>  GLIBC_2.0 pthread_mutexattr_init F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index 3e0cceae93..b46567880e 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -342,6 +342,10 @@ GLIBC_2.18 __progname_full D 0x4
>  GLIBC_2.18 __pthread_cleanup_routine F
>  GLIBC_2.18 __pthread_getspecific F
>  GLIBC_2.18 __pthread_key_create F
> +GLIBC_2.18 __pthread_mutex_destroy F
> +GLIBC_2.18 __pthread_mutex_init F
> +GLIBC_2.18 __pthread_mutex_lock F
> +GLIBC_2.18 __pthread_mutex_unlock F
>  GLIBC_2.18 __pthread_once F
>  GLIBC_2.18 __pthread_rwlock_rdlock F
>  GLIBC_2.18 __pthread_rwlock_unlock F
> @@ -2193,6 +2197,10 @@ GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
>  GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
> +GLIBC_2.34 __pthread_mutex_destroy F
> +GLIBC_2.34 __pthread_mutex_init F
> +GLIBC_2.34 __pthread_mutex_lock F
> +GLIBC_2.34 __pthread_mutex_unlock F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_rwlock_rdlock F
>  GLIBC_2.34 __pthread_rwlock_unlock F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> index 0db83c2f88..d8a9642f66 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> @@ -13,11 +13,7 @@ GLIBC_2.18 __lseek F
>  GLIBC_2.18 __open F
>  GLIBC_2.18 __open64 F
>  GLIBC_2.18 __pread64 F
> -GLIBC_2.18 __pthread_mutex_destroy F
> -GLIBC_2.18 __pthread_mutex_init F
> -GLIBC_2.18 __pthread_mutex_lock F
>  GLIBC_2.18 __pthread_mutex_trylock F
> -GLIBC_2.18 __pthread_mutex_unlock F
>  GLIBC_2.18 __pthread_mutexattr_destroy F
>  GLIBC_2.18 __pthread_mutexattr_init F
>  GLIBC_2.18 __pthread_mutexattr_settype F
> @@ -85,14 +81,10 @@ GLIBC_2.18 pthread_getname_np F
>  GLIBC_2.18 pthread_join F
>  GLIBC_2.18 pthread_kill F
>  GLIBC_2.18 pthread_kill_other_threads_np F
> -GLIBC_2.18 pthread_mutex_destroy F
>  GLIBC_2.18 pthread_mutex_getprioceiling F
> -GLIBC_2.18 pthread_mutex_init F
> -GLIBC_2.18 pthread_mutex_lock F
>  GLIBC_2.18 pthread_mutex_setprioceiling F
>  GLIBC_2.18 pthread_mutex_timedlock F
>  GLIBC_2.18 pthread_mutex_trylock F
> -GLIBC_2.18 pthread_mutex_unlock F
>  GLIBC_2.18 pthread_mutexattr_destroy F
>  GLIBC_2.18 pthread_mutexattr_getkind_np F
>  GLIBC_2.18 pthread_mutexattr_getprioceiling F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index 4ee88a1d01..7796c5313a 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -342,6 +342,10 @@ GLIBC_2.18 __progname_full D 0x4
>  GLIBC_2.18 __pthread_cleanup_routine F
>  GLIBC_2.18 __pthread_getspecific F
>  GLIBC_2.18 __pthread_key_create F
> +GLIBC_2.18 __pthread_mutex_destroy F
> +GLIBC_2.18 __pthread_mutex_init F
> +GLIBC_2.18 __pthread_mutex_lock F
> +GLIBC_2.18 __pthread_mutex_unlock F
>  GLIBC_2.18 __pthread_once F
>  GLIBC_2.18 __pthread_rwlock_rdlock F
>  GLIBC_2.18 __pthread_rwlock_unlock F
> @@ -2190,6 +2194,10 @@ GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
>  GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
> +GLIBC_2.34 __pthread_mutex_destroy F
> +GLIBC_2.34 __pthread_mutex_init F
> +GLIBC_2.34 __pthread_mutex_lock F
> +GLIBC_2.34 __pthread_mutex_unlock F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_rwlock_rdlock F
>  GLIBC_2.34 __pthread_rwlock_unlock F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> index 0db83c2f88..d8a9642f66 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> @@ -13,11 +13,7 @@ GLIBC_2.18 __lseek F
>  GLIBC_2.18 __open F
>  GLIBC_2.18 __open64 F
>  GLIBC_2.18 __pread64 F
> -GLIBC_2.18 __pthread_mutex_destroy F
> -GLIBC_2.18 __pthread_mutex_init F
> -GLIBC_2.18 __pthread_mutex_lock F
>  GLIBC_2.18 __pthread_mutex_trylock F
> -GLIBC_2.18 __pthread_mutex_unlock F
>  GLIBC_2.18 __pthread_mutexattr_destroy F
>  GLIBC_2.18 __pthread_mutexattr_init F
>  GLIBC_2.18 __pthread_mutexattr_settype F
> @@ -85,14 +81,10 @@ GLIBC_2.18 pthread_getname_np F
>  GLIBC_2.18 pthread_join F
>  GLIBC_2.18 pthread_kill F
>  GLIBC_2.18 pthread_kill_other_threads_np F
> -GLIBC_2.18 pthread_mutex_destroy F
>  GLIBC_2.18 pthread_mutex_getprioceiling F
> -GLIBC_2.18 pthread_mutex_init F
> -GLIBC_2.18 pthread_mutex_lock F
>  GLIBC_2.18 pthread_mutex_setprioceiling F
>  GLIBC_2.18 pthread_mutex_timedlock F
>  GLIBC_2.18 pthread_mutex_trylock F
> -GLIBC_2.18 pthread_mutex_unlock F
>  GLIBC_2.18 pthread_mutexattr_destroy F
>  GLIBC_2.18 pthread_mutexattr_getkind_np F
>  GLIBC_2.18 pthread_mutexattr_getprioceiling F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index e67af35000..c3e658dbc1 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -185,6 +185,10 @@ GLIBC_2.0 __progname D 0x4
>  GLIBC_2.0 __progname_full D 0x4
>  GLIBC_2.0 __pthread_getspecific F
>  GLIBC_2.0 __pthread_key_create F
> +GLIBC_2.0 __pthread_mutex_destroy F
> +GLIBC_2.0 __pthread_mutex_init F
> +GLIBC_2.0 __pthread_mutex_lock F
> +GLIBC_2.0 __pthread_mutex_unlock F
>  GLIBC_2.0 __pthread_once F
>  GLIBC_2.0 __pthread_setspecific F
>  GLIBC_2.0 __rcmd_errstr D 0x4
> @@ -2183,6 +2187,10 @@ GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
>  GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
> +GLIBC_2.34 __pthread_mutex_destroy F
> +GLIBC_2.34 __pthread_mutex_init F
> +GLIBC_2.34 __pthread_mutex_lock F
> +GLIBC_2.34 __pthread_mutex_unlock F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_rwlock_rdlock F
>  GLIBC_2.34 __pthread_rwlock_unlock F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> index a1a66138d4..4bd5de2dd7 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> @@ -8,11 +8,7 @@ GLIBC_2.0 __fcntl F
>  GLIBC_2.0 __h_errno_location F
>  GLIBC_2.0 __lseek F
>  GLIBC_2.0 __open F
> -GLIBC_2.0 __pthread_mutex_destroy F
> -GLIBC_2.0 __pthread_mutex_init F
> -GLIBC_2.0 __pthread_mutex_lock F
>  GLIBC_2.0 __pthread_mutex_trylock F
> -GLIBC_2.0 __pthread_mutex_unlock F
>  GLIBC_2.0 __pthread_mutexattr_destroy F
>  GLIBC_2.0 __pthread_mutexattr_init F
>  GLIBC_2.0 __pthread_mutexattr_settype F
> @@ -43,11 +39,7 @@ GLIBC_2.0 pthread_detach F
>  GLIBC_2.0 pthread_join F
>  GLIBC_2.0 pthread_kill F
>  GLIBC_2.0 pthread_kill_other_threads_np F
> -GLIBC_2.0 pthread_mutex_destroy F
> -GLIBC_2.0 pthread_mutex_init F
> -GLIBC_2.0 pthread_mutex_lock F
>  GLIBC_2.0 pthread_mutex_trylock F
> -GLIBC_2.0 pthread_mutex_unlock F
>  GLIBC_2.0 pthread_mutexattr_destroy F
>  GLIBC_2.0 pthread_mutexattr_getkind_np F
>  GLIBC_2.0 pthread_mutexattr_init F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index 1ce0179391..bae73ebb39 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -185,6 +185,10 @@ GLIBC_2.0 __progname D 0x4
>  GLIBC_2.0 __progname_full D 0x4
>  GLIBC_2.0 __pthread_getspecific F
>  GLIBC_2.0 __pthread_key_create F
> +GLIBC_2.0 __pthread_mutex_destroy F
> +GLIBC_2.0 __pthread_mutex_init F
> +GLIBC_2.0 __pthread_mutex_lock F
> +GLIBC_2.0 __pthread_mutex_unlock F
>  GLIBC_2.0 __pthread_once F
>  GLIBC_2.0 __pthread_setspecific F
>  GLIBC_2.0 __rcmd_errstr D 0x4
> @@ -2181,6 +2185,10 @@ GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
>  GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
> +GLIBC_2.34 __pthread_mutex_destroy F
> +GLIBC_2.34 __pthread_mutex_init F
> +GLIBC_2.34 __pthread_mutex_lock F
> +GLIBC_2.34 __pthread_mutex_unlock F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_rwlock_rdlock F
>  GLIBC_2.34 __pthread_rwlock_unlock F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> index a1a66138d4..4bd5de2dd7 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> @@ -8,11 +8,7 @@ GLIBC_2.0 __fcntl F
>  GLIBC_2.0 __h_errno_location F
>  GLIBC_2.0 __lseek F
>  GLIBC_2.0 __open F
> -GLIBC_2.0 __pthread_mutex_destroy F
> -GLIBC_2.0 __pthread_mutex_init F
> -GLIBC_2.0 __pthread_mutex_lock F
>  GLIBC_2.0 __pthread_mutex_trylock F
> -GLIBC_2.0 __pthread_mutex_unlock F
>  GLIBC_2.0 __pthread_mutexattr_destroy F
>  GLIBC_2.0 __pthread_mutexattr_init F
>  GLIBC_2.0 __pthread_mutexattr_settype F
> @@ -43,11 +39,7 @@ GLIBC_2.0 pthread_detach F
>  GLIBC_2.0 pthread_join F
>  GLIBC_2.0 pthread_kill F
>  GLIBC_2.0 pthread_kill_other_threads_np F
> -GLIBC_2.0 pthread_mutex_destroy F
> -GLIBC_2.0 pthread_mutex_init F
> -GLIBC_2.0 pthread_mutex_lock F
>  GLIBC_2.0 pthread_mutex_trylock F
> -GLIBC_2.0 pthread_mutex_unlock F
>  GLIBC_2.0 pthread_mutexattr_destroy F
>  GLIBC_2.0 pthread_mutexattr_getkind_np F
>  GLIBC_2.0 pthread_mutexattr_init F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index 54c2300420..74fb3b997e 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -185,6 +185,10 @@ GLIBC_2.0 __progname D 0x4
>  GLIBC_2.0 __progname_full D 0x4
>  GLIBC_2.0 __pthread_getspecific F
>  GLIBC_2.0 __pthread_key_create F
> +GLIBC_2.0 __pthread_mutex_destroy F
> +GLIBC_2.0 __pthread_mutex_init F
> +GLIBC_2.0 __pthread_mutex_lock F
> +GLIBC_2.0 __pthread_mutex_unlock F
>  GLIBC_2.0 __pthread_once F
>  GLIBC_2.0 __pthread_setspecific F
>  GLIBC_2.0 __rcmd_errstr D 0x4
> @@ -2189,6 +2193,10 @@ GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
>  GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
> +GLIBC_2.34 __pthread_mutex_destroy F
> +GLIBC_2.34 __pthread_mutex_init F
> +GLIBC_2.34 __pthread_mutex_lock F
> +GLIBC_2.34 __pthread_mutex_unlock F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_rwlock_rdlock F
>  GLIBC_2.34 __pthread_rwlock_unlock F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index 90bbb7f253..3083e3d821 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -185,6 +185,10 @@ GLIBC_2.0 __progname D 0x8
>  GLIBC_2.0 __progname_full D 0x8
>  GLIBC_2.0 __pthread_getspecific F
>  GLIBC_2.0 __pthread_key_create F
> +GLIBC_2.0 __pthread_mutex_destroy F
> +GLIBC_2.0 __pthread_mutex_init F
> +GLIBC_2.0 __pthread_mutex_lock F
> +GLIBC_2.0 __pthread_mutex_unlock F
>  GLIBC_2.0 __pthread_once F
>  GLIBC_2.0 __pthread_setspecific F
>  GLIBC_2.0 __rcmd_errstr D 0x8
> @@ -2183,6 +2187,10 @@ GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
>  GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
> +GLIBC_2.34 __pthread_mutex_destroy F
> +GLIBC_2.34 __pthread_mutex_init F
> +GLIBC_2.34 __pthread_mutex_lock F
> +GLIBC_2.34 __pthread_mutex_unlock F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_rwlock_rdlock F
>  GLIBC_2.34 __pthread_rwlock_unlock F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index 1f68c2a3fb..f79ca91eb7 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -379,6 +379,10 @@ GLIBC_2.21 __progname_full D 0x4
>  GLIBC_2.21 __pthread_cleanup_routine F
>  GLIBC_2.21 __pthread_getspecific F
>  GLIBC_2.21 __pthread_key_create F
> +GLIBC_2.21 __pthread_mutex_destroy F
> +GLIBC_2.21 __pthread_mutex_init F
> +GLIBC_2.21 __pthread_mutex_lock F
> +GLIBC_2.21 __pthread_mutex_unlock F
>  GLIBC_2.21 __pthread_once F
>  GLIBC_2.21 __pthread_rwlock_rdlock F
>  GLIBC_2.21 __pthread_rwlock_unlock F
> @@ -2231,6 +2235,10 @@ GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
>  GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
> +GLIBC_2.34 __pthread_mutex_destroy F
> +GLIBC_2.34 __pthread_mutex_init F
> +GLIBC_2.34 __pthread_mutex_lock F
> +GLIBC_2.34 __pthread_mutex_unlock F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_rwlock_rdlock F
>  GLIBC_2.34 __pthread_rwlock_unlock F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> index 806432b7b4..c469853b65 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> @@ -13,11 +13,7 @@ GLIBC_2.21 __lseek F
>  GLIBC_2.21 __open F
>  GLIBC_2.21 __open64 F
>  GLIBC_2.21 __pread64 F
> -GLIBC_2.21 __pthread_mutex_destroy F
> -GLIBC_2.21 __pthread_mutex_init F
> -GLIBC_2.21 __pthread_mutex_lock F
>  GLIBC_2.21 __pthread_mutex_trylock F
> -GLIBC_2.21 __pthread_mutex_unlock F
>  GLIBC_2.21 __pthread_mutexattr_destroy F
>  GLIBC_2.21 __pthread_mutexattr_init F
>  GLIBC_2.21 __pthread_mutexattr_settype F
> @@ -85,14 +81,10 @@ GLIBC_2.21 pthread_getname_np F
>  GLIBC_2.21 pthread_join F
>  GLIBC_2.21 pthread_kill F
>  GLIBC_2.21 pthread_kill_other_threads_np F
> -GLIBC_2.21 pthread_mutex_destroy F
>  GLIBC_2.21 pthread_mutex_getprioceiling F
> -GLIBC_2.21 pthread_mutex_init F
> -GLIBC_2.21 pthread_mutex_lock F
>  GLIBC_2.21 pthread_mutex_setprioceiling F
>  GLIBC_2.21 pthread_mutex_timedlock F
>  GLIBC_2.21 pthread_mutex_trylock F
> -GLIBC_2.21 pthread_mutex_unlock F
>  GLIBC_2.21 pthread_mutexattr_destroy F
>  GLIBC_2.21 pthread_mutexattr_getkind_np F
>  GLIBC_2.21 pthread_mutexattr_getprioceiling F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index a41536e4cd..f5408e6078 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -196,6 +196,10 @@ GLIBC_2.0 __progname D 0x4
>  GLIBC_2.0 __progname_full D 0x4
>  GLIBC_2.0 __pthread_getspecific F
>  GLIBC_2.0 __pthread_key_create F
> +GLIBC_2.0 __pthread_mutex_destroy F
> +GLIBC_2.0 __pthread_mutex_init F
> +GLIBC_2.0 __pthread_mutex_lock F
> +GLIBC_2.0 __pthread_mutex_unlock F
>  GLIBC_2.0 __pthread_once F
>  GLIBC_2.0 __pthread_setspecific F
>  GLIBC_2.0 __rcmd_errstr D 0x4
> @@ -2239,6 +2243,10 @@ GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
>  GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
> +GLIBC_2.34 __pthread_mutex_destroy F
> +GLIBC_2.34 __pthread_mutex_init F
> +GLIBC_2.34 __pthread_mutex_lock F
> +GLIBC_2.34 __pthread_mutex_unlock F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_rwlock_rdlock F
>  GLIBC_2.34 __pthread_rwlock_unlock F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> index d0646d0eaf..44fb3a6743 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> @@ -8,11 +8,7 @@ GLIBC_2.0 __fcntl F
>  GLIBC_2.0 __h_errno_location F
>  GLIBC_2.0 __lseek F
>  GLIBC_2.0 __open F
> -GLIBC_2.0 __pthread_mutex_destroy F
> -GLIBC_2.0 __pthread_mutex_init F
> -GLIBC_2.0 __pthread_mutex_lock F
>  GLIBC_2.0 __pthread_mutex_trylock F
> -GLIBC_2.0 __pthread_mutex_unlock F
>  GLIBC_2.0 __pthread_mutexattr_destroy F
>  GLIBC_2.0 __pthread_mutexattr_init F
>  GLIBC_2.0 __pthread_mutexattr_settype F
> @@ -43,11 +39,7 @@ GLIBC_2.0 pthread_detach F
>  GLIBC_2.0 pthread_join F
>  GLIBC_2.0 pthread_kill F
>  GLIBC_2.0 pthread_kill_other_threads_np F
> -GLIBC_2.0 pthread_mutex_destroy F
> -GLIBC_2.0 pthread_mutex_init F
> -GLIBC_2.0 pthread_mutex_lock F
>  GLIBC_2.0 pthread_mutex_trylock F
> -GLIBC_2.0 pthread_mutex_unlock F
>  GLIBC_2.0 pthread_mutexattr_destroy F
>  GLIBC_2.0 pthread_mutexattr_getkind_np F
>  GLIBC_2.0 pthread_mutexattr_init F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index cdd6e98496..a7587dcc45 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -196,6 +196,10 @@ GLIBC_2.0 __progname D 0x4
>  GLIBC_2.0 __progname_full D 0x4
>  GLIBC_2.0 __pthread_getspecific F
>  GLIBC_2.0 __pthread_key_create F
> +GLIBC_2.0 __pthread_mutex_destroy F
> +GLIBC_2.0 __pthread_mutex_init F
> +GLIBC_2.0 __pthread_mutex_lock F
> +GLIBC_2.0 __pthread_mutex_unlock F
>  GLIBC_2.0 __pthread_once F
>  GLIBC_2.0 __pthread_setspecific F
>  GLIBC_2.0 __rcmd_errstr D 0x4
> @@ -2272,6 +2276,10 @@ GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
>  GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
> +GLIBC_2.34 __pthread_mutex_destroy F
> +GLIBC_2.34 __pthread_mutex_init F
> +GLIBC_2.34 __pthread_mutex_lock F
> +GLIBC_2.34 __pthread_mutex_unlock F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_rwlock_rdlock F
>  GLIBC_2.34 __pthread_rwlock_unlock F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index 63a7449937..7ea6dc6574 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -411,6 +411,10 @@ GLIBC_2.3 __progname D 0x8
>  GLIBC_2.3 __progname_full D 0x8
>  GLIBC_2.3 __pthread_getspecific F
>  GLIBC_2.3 __pthread_key_create F
> +GLIBC_2.3 __pthread_mutex_destroy F
> +GLIBC_2.3 __pthread_mutex_init F
> +GLIBC_2.3 __pthread_mutex_lock F
> +GLIBC_2.3 __pthread_mutex_unlock F
>  GLIBC_2.3 __pthread_once F
>  GLIBC_2.3 __pthread_rwlock_rdlock F
>  GLIBC_2.3 __pthread_rwlock_unlock F
> @@ -2102,6 +2106,10 @@ GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
>  GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
> +GLIBC_2.34 __pthread_mutex_destroy F
> +GLIBC_2.34 __pthread_mutex_init F
> +GLIBC_2.34 __pthread_mutex_lock F
> +GLIBC_2.34 __pthread_mutex_unlock F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_rwlock_rdlock F
>  GLIBC_2.34 __pthread_rwlock_unlock F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> index 72d49ce4f3..2e77dc2fb3 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> @@ -41,11 +41,7 @@ GLIBC_2.3 __lseek F
>  GLIBC_2.3 __open F
>  GLIBC_2.3 __open64 F
>  GLIBC_2.3 __pread64 F
> -GLIBC_2.3 __pthread_mutex_destroy F
> -GLIBC_2.3 __pthread_mutex_init F
> -GLIBC_2.3 __pthread_mutex_lock F
>  GLIBC_2.3 __pthread_mutex_trylock F
> -GLIBC_2.3 __pthread_mutex_unlock F
>  GLIBC_2.3 __pthread_mutexattr_destroy F
>  GLIBC_2.3 __pthread_mutexattr_init F
>  GLIBC_2.3 __pthread_mutexattr_settype F
> @@ -103,12 +99,8 @@ GLIBC_2.3 pthread_getcpuclockid F
>  GLIBC_2.3 pthread_join F
>  GLIBC_2.3 pthread_kill F
>  GLIBC_2.3 pthread_kill_other_threads_np F
> -GLIBC_2.3 pthread_mutex_destroy F
> -GLIBC_2.3 pthread_mutex_init F
> -GLIBC_2.3 pthread_mutex_lock F
>  GLIBC_2.3 pthread_mutex_timedlock F
>  GLIBC_2.3 pthread_mutex_trylock F
> -GLIBC_2.3 pthread_mutex_unlock F
>  GLIBC_2.3 pthread_mutexattr_destroy F
>  GLIBC_2.3 pthread_mutexattr_getkind_np F
>  GLIBC_2.3 pthread_mutexattr_getpshared F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index b6de88ea41..f994892fd9 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -427,6 +427,10 @@ GLIBC_2.17 __progname_full D 0x8
>  GLIBC_2.17 __pthread_cleanup_routine F
>  GLIBC_2.17 __pthread_getspecific F
>  GLIBC_2.17 __pthread_key_create F
> +GLIBC_2.17 __pthread_mutex_destroy F
> +GLIBC_2.17 __pthread_mutex_init F
> +GLIBC_2.17 __pthread_mutex_lock F
> +GLIBC_2.17 __pthread_mutex_unlock F
>  GLIBC_2.17 __pthread_once F
>  GLIBC_2.17 __pthread_rwlock_rdlock F
>  GLIBC_2.17 __pthread_rwlock_unlock F
> @@ -2393,6 +2397,10 @@ GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
>  GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
> +GLIBC_2.34 __pthread_mutex_destroy F
> +GLIBC_2.34 __pthread_mutex_init F
> +GLIBC_2.34 __pthread_mutex_lock F
> +GLIBC_2.34 __pthread_mutex_unlock F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_rwlock_rdlock F
>  GLIBC_2.34 __pthread_rwlock_unlock F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> index 9a24f796de..29a98fc2f4 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> @@ -13,11 +13,7 @@ GLIBC_2.17 __lseek F
>  GLIBC_2.17 __open F
>  GLIBC_2.17 __open64 F
>  GLIBC_2.17 __pread64 F
> -GLIBC_2.17 __pthread_mutex_destroy F
> -GLIBC_2.17 __pthread_mutex_init F
> -GLIBC_2.17 __pthread_mutex_lock F
>  GLIBC_2.17 __pthread_mutex_trylock F
> -GLIBC_2.17 __pthread_mutex_unlock F
>  GLIBC_2.17 __pthread_mutexattr_destroy F
>  GLIBC_2.17 __pthread_mutexattr_init F
>  GLIBC_2.17 __pthread_mutexattr_settype F
> @@ -84,14 +80,10 @@ GLIBC_2.17 pthread_getname_np F
>  GLIBC_2.17 pthread_join F
>  GLIBC_2.17 pthread_kill F
>  GLIBC_2.17 pthread_kill_other_threads_np F
> -GLIBC_2.17 pthread_mutex_destroy F
>  GLIBC_2.17 pthread_mutex_getprioceiling F
> -GLIBC_2.17 pthread_mutex_init F
> -GLIBC_2.17 pthread_mutex_lock F
>  GLIBC_2.17 pthread_mutex_setprioceiling F
>  GLIBC_2.17 pthread_mutex_timedlock F
>  GLIBC_2.17 pthread_mutex_trylock F
> -GLIBC_2.17 pthread_mutex_unlock F
>  GLIBC_2.17 pthread_mutexattr_destroy F
>  GLIBC_2.17 pthread_mutexattr_getkind_np F
>  GLIBC_2.17 pthread_mutexattr_getprioceiling F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index d81b46d597..70b873f9fb 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -327,6 +327,10 @@ GLIBC_2.33 __progname_full D 0x4
>  GLIBC_2.33 __pthread_cleanup_routine F
>  GLIBC_2.33 __pthread_getspecific F
>  GLIBC_2.33 __pthread_key_create F
> +GLIBC_2.33 __pthread_mutex_destroy F
> +GLIBC_2.33 __pthread_mutex_init F
> +GLIBC_2.33 __pthread_mutex_lock F
> +GLIBC_2.33 __pthread_mutex_unlock F
>  GLIBC_2.33 __pthread_once F
>  GLIBC_2.33 __pthread_rwlock_rdlock F
>  GLIBC_2.33 __pthread_rwlock_unlock F
> @@ -1960,6 +1964,10 @@ GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
>  GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
> +GLIBC_2.34 __pthread_mutex_destroy F
> +GLIBC_2.34 __pthread_mutex_init F
> +GLIBC_2.34 __pthread_mutex_lock F
> +GLIBC_2.34 __pthread_mutex_unlock F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_rwlock_rdlock F
>  GLIBC_2.34 __pthread_rwlock_unlock F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> index 10e50b67c0..911969f7eb 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> @@ -12,11 +12,7 @@ GLIBC_2.33 __lseek F
>  GLIBC_2.33 __open F
>  GLIBC_2.33 __open64 F
>  GLIBC_2.33 __pread64 F
> -GLIBC_2.33 __pthread_mutex_destroy F
> -GLIBC_2.33 __pthread_mutex_init F
> -GLIBC_2.33 __pthread_mutex_lock F
>  GLIBC_2.33 __pthread_mutex_trylock F
> -GLIBC_2.33 __pthread_mutex_unlock F
>  GLIBC_2.33 __pthread_mutexattr_destroy F
>  GLIBC_2.33 __pthread_mutexattr_init F
>  GLIBC_2.33 __pthread_mutexattr_settype F
> @@ -99,14 +95,10 @@ GLIBC_2.33 pthread_join F
>  GLIBC_2.33 pthread_kill F
>  GLIBC_2.33 pthread_kill_other_threads_np F
>  GLIBC_2.33 pthread_mutex_clocklock F
> -GLIBC_2.33 pthread_mutex_destroy F
>  GLIBC_2.33 pthread_mutex_getprioceiling F
> -GLIBC_2.33 pthread_mutex_init F
> -GLIBC_2.33 pthread_mutex_lock F
>  GLIBC_2.33 pthread_mutex_setprioceiling F
>  GLIBC_2.33 pthread_mutex_timedlock F
>  GLIBC_2.33 pthread_mutex_trylock F
> -GLIBC_2.33 pthread_mutex_unlock F
>  GLIBC_2.33 pthread_mutexattr_destroy F
>  GLIBC_2.33 pthread_mutexattr_getkind_np F
>  GLIBC_2.33 pthread_mutexattr_getprioceiling F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index fbd1c5e5cf..ddfac62fd0 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -338,6 +338,10 @@ GLIBC_2.27 __progname_full D 0x8
>  GLIBC_2.27 __pthread_cleanup_routine F
>  GLIBC_2.27 __pthread_getspecific F
>  GLIBC_2.27 __pthread_key_create F
> +GLIBC_2.27 __pthread_mutex_destroy F
> +GLIBC_2.27 __pthread_mutex_init F
> +GLIBC_2.27 __pthread_mutex_lock F
> +GLIBC_2.27 __pthread_mutex_unlock F
>  GLIBC_2.27 __pthread_once F
>  GLIBC_2.27 __pthread_rwlock_rdlock F
>  GLIBC_2.27 __pthread_rwlock_unlock F
> @@ -2160,6 +2164,10 @@ GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
>  GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
> +GLIBC_2.34 __pthread_mutex_destroy F
> +GLIBC_2.34 __pthread_mutex_init F
> +GLIBC_2.34 __pthread_mutex_lock F
> +GLIBC_2.34 __pthread_mutex_unlock F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_rwlock_rdlock F
>  GLIBC_2.34 __pthread_rwlock_unlock F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> index ed24898e0d..21f462137a 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> @@ -13,11 +13,7 @@ GLIBC_2.27 __lseek F
>  GLIBC_2.27 __open F
>  GLIBC_2.27 __open64 F
>  GLIBC_2.27 __pread64 F
> -GLIBC_2.27 __pthread_mutex_destroy F
> -GLIBC_2.27 __pthread_mutex_init F
> -GLIBC_2.27 __pthread_mutex_lock F
>  GLIBC_2.27 __pthread_mutex_trylock F
> -GLIBC_2.27 __pthread_mutex_unlock F
>  GLIBC_2.27 __pthread_mutexattr_destroy F
>  GLIBC_2.27 __pthread_mutexattr_init F
>  GLIBC_2.27 __pthread_mutexattr_settype F
> @@ -85,14 +81,10 @@ GLIBC_2.27 pthread_getname_np F
>  GLIBC_2.27 pthread_join F
>  GLIBC_2.27 pthread_kill F
>  GLIBC_2.27 pthread_kill_other_threads_np F
> -GLIBC_2.27 pthread_mutex_destroy F
>  GLIBC_2.27 pthread_mutex_getprioceiling F
> -GLIBC_2.27 pthread_mutex_init F
> -GLIBC_2.27 pthread_mutex_lock F
>  GLIBC_2.27 pthread_mutex_setprioceiling F
>  GLIBC_2.27 pthread_mutex_timedlock F
>  GLIBC_2.27 pthread_mutex_trylock F
> -GLIBC_2.27 pthread_mutex_unlock F
>  GLIBC_2.27 pthread_mutexattr_destroy F
>  GLIBC_2.27 pthread_mutexattr_getkind_np F
>  GLIBC_2.27 pthread_mutexattr_getprioceiling F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index 27a9b011a8..078237adb2 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -187,6 +187,10 @@ GLIBC_2.0 __progname D 0x4
>  GLIBC_2.0 __progname_full D 0x4
>  GLIBC_2.0 __pthread_getspecific F
>  GLIBC_2.0 __pthread_key_create F
> +GLIBC_2.0 __pthread_mutex_destroy F
> +GLIBC_2.0 __pthread_mutex_init F
> +GLIBC_2.0 __pthread_mutex_lock F
> +GLIBC_2.0 __pthread_mutex_unlock F
>  GLIBC_2.0 __pthread_once F
>  GLIBC_2.0 __pthread_setspecific F
>  GLIBC_2.0 __rcmd_errstr D 0x4
> @@ -2237,6 +2241,10 @@ GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
>  GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
> +GLIBC_2.34 __pthread_mutex_destroy F
> +GLIBC_2.34 __pthread_mutex_init F
> +GLIBC_2.34 __pthread_mutex_lock F
> +GLIBC_2.34 __pthread_mutex_unlock F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_rwlock_rdlock F
>  GLIBC_2.34 __pthread_rwlock_unlock F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> index d6e91c977a..7b2edb7f57 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> @@ -8,11 +8,7 @@ GLIBC_2.0 __fcntl F
>  GLIBC_2.0 __h_errno_location F
>  GLIBC_2.0 __lseek F
>  GLIBC_2.0 __open F
> -GLIBC_2.0 __pthread_mutex_destroy F
> -GLIBC_2.0 __pthread_mutex_init F
> -GLIBC_2.0 __pthread_mutex_lock F
>  GLIBC_2.0 __pthread_mutex_trylock F
> -GLIBC_2.0 __pthread_mutex_unlock F
>  GLIBC_2.0 __pthread_mutexattr_destroy F
>  GLIBC_2.0 __pthread_mutexattr_init F
>  GLIBC_2.0 __pthread_mutexattr_settype F
> @@ -43,11 +39,7 @@ GLIBC_2.0 pthread_detach F
>  GLIBC_2.0 pthread_join F
>  GLIBC_2.0 pthread_kill F
>  GLIBC_2.0 pthread_kill_other_threads_np F
> -GLIBC_2.0 pthread_mutex_destroy F
> -GLIBC_2.0 pthread_mutex_init F
> -GLIBC_2.0 pthread_mutex_lock F
>  GLIBC_2.0 pthread_mutex_trylock F
> -GLIBC_2.0 pthread_mutex_unlock F
>  GLIBC_2.0 pthread_mutexattr_destroy F
>  GLIBC_2.0 pthread_mutexattr_getkind_np F
>  GLIBC_2.0 pthread_mutexattr_init F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index 9e79331100..a2700aba32 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -372,6 +372,10 @@ GLIBC_2.2 __progname D 0x8
>  GLIBC_2.2 __progname_full D 0x8
>  GLIBC_2.2 __pthread_getspecific F
>  GLIBC_2.2 __pthread_key_create F
> +GLIBC_2.2 __pthread_mutex_destroy F
> +GLIBC_2.2 __pthread_mutex_init F
> +GLIBC_2.2 __pthread_mutex_lock F
> +GLIBC_2.2 __pthread_mutex_unlock F
>  GLIBC_2.2 __pthread_once F
>  GLIBC_2.2 __pthread_rwlock_rdlock F
>  GLIBC_2.2 __pthread_rwlock_unlock F
> @@ -2138,6 +2142,10 @@ GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
>  GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
> +GLIBC_2.34 __pthread_mutex_destroy F
> +GLIBC_2.34 __pthread_mutex_init F
> +GLIBC_2.34 __pthread_mutex_lock F
> +GLIBC_2.34 __pthread_mutex_unlock F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_rwlock_rdlock F
>  GLIBC_2.34 __pthread_rwlock_unlock F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> index 14489b39d0..8b4729fb7a 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> @@ -21,11 +21,7 @@ GLIBC_2.2 __lseek F
>  GLIBC_2.2 __open F
>  GLIBC_2.2 __open64 F
>  GLIBC_2.2 __pread64 F
> -GLIBC_2.2 __pthread_mutex_destroy F
> -GLIBC_2.2 __pthread_mutex_init F
> -GLIBC_2.2 __pthread_mutex_lock F
>  GLIBC_2.2 __pthread_mutex_trylock F
> -GLIBC_2.2 __pthread_mutex_unlock F
>  GLIBC_2.2 __pthread_mutexattr_destroy F
>  GLIBC_2.2 __pthread_mutexattr_init F
>  GLIBC_2.2 __pthread_mutexattr_settype F
> @@ -84,12 +80,8 @@ GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_join F
>  GLIBC_2.2 pthread_kill F
>  GLIBC_2.2 pthread_kill_other_threads_np F
> -GLIBC_2.2 pthread_mutex_destroy F
> -GLIBC_2.2 pthread_mutex_init F
> -GLIBC_2.2 pthread_mutex_lock F
>  GLIBC_2.2 pthread_mutex_timedlock F
>  GLIBC_2.2 pthread_mutex_trylock F
> -GLIBC_2.2 pthread_mutex_unlock F
>  GLIBC_2.2 pthread_mutexattr_destroy F
>  GLIBC_2.2 pthread_mutexattr_getkind_np F
>  GLIBC_2.2 pthread_mutexattr_getpshared F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index b7dd795864..4fce4b408e 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -361,6 +361,10 @@ GLIBC_2.2 __progname D 0x4
>  GLIBC_2.2 __progname_full D 0x4
>  GLIBC_2.2 __pthread_getspecific F
>  GLIBC_2.2 __pthread_key_create F
> +GLIBC_2.2 __pthread_mutex_destroy F
> +GLIBC_2.2 __pthread_mutex_init F
> +GLIBC_2.2 __pthread_mutex_lock F
> +GLIBC_2.2 __pthread_mutex_unlock F
>  GLIBC_2.2 __pthread_once F
>  GLIBC_2.2 __pthread_rwlock_rdlock F
>  GLIBC_2.2 __pthread_rwlock_unlock F
> @@ -2107,6 +2111,10 @@ GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
>  GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
> +GLIBC_2.34 __pthread_mutex_destroy F
> +GLIBC_2.34 __pthread_mutex_init F
> +GLIBC_2.34 __pthread_mutex_lock F
> +GLIBC_2.34 __pthread_mutex_unlock F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_rwlock_rdlock F
>  GLIBC_2.34 __pthread_rwlock_unlock F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> index 70af59d791..9e15deaad8 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> @@ -20,11 +20,7 @@ GLIBC_2.2 __lseek F
>  GLIBC_2.2 __open F
>  GLIBC_2.2 __open64 F
>  GLIBC_2.2 __pread64 F
> -GLIBC_2.2 __pthread_mutex_destroy F
> -GLIBC_2.2 __pthread_mutex_init F
> -GLIBC_2.2 __pthread_mutex_lock F
>  GLIBC_2.2 __pthread_mutex_trylock F
> -GLIBC_2.2 __pthread_mutex_unlock F
>  GLIBC_2.2 __pthread_mutexattr_destroy F
>  GLIBC_2.2 __pthread_mutexattr_init F
>  GLIBC_2.2 __pthread_mutexattr_settype F
> @@ -83,12 +79,8 @@ GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_join F
>  GLIBC_2.2 pthread_kill F
>  GLIBC_2.2 pthread_kill_other_threads_np F
> -GLIBC_2.2 pthread_mutex_destroy F
> -GLIBC_2.2 pthread_mutex_init F
> -GLIBC_2.2 pthread_mutex_lock F
>  GLIBC_2.2 pthread_mutex_timedlock F
>  GLIBC_2.2 pthread_mutex_trylock F
> -GLIBC_2.2 pthread_mutex_unlock F
>  GLIBC_2.2 pthread_mutexattr_destroy F
>  GLIBC_2.2 pthread_mutexattr_getkind_np F
>  GLIBC_2.2 pthread_mutexattr_getpshared F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index eea30cd098..5dba0f5d0c 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -361,6 +361,10 @@ GLIBC_2.2 __progname D 0x4
>  GLIBC_2.2 __progname_full D 0x4
>  GLIBC_2.2 __pthread_getspecific F
>  GLIBC_2.2 __pthread_key_create F
> +GLIBC_2.2 __pthread_mutex_destroy F
> +GLIBC_2.2 __pthread_mutex_init F
> +GLIBC_2.2 __pthread_mutex_lock F
> +GLIBC_2.2 __pthread_mutex_unlock F
>  GLIBC_2.2 __pthread_once F
>  GLIBC_2.2 __pthread_rwlock_rdlock F
>  GLIBC_2.2 __pthread_rwlock_unlock F
> @@ -2104,6 +2108,10 @@ GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
>  GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
> +GLIBC_2.34 __pthread_mutex_destroy F
> +GLIBC_2.34 __pthread_mutex_init F
> +GLIBC_2.34 __pthread_mutex_lock F
> +GLIBC_2.34 __pthread_mutex_unlock F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_rwlock_rdlock F
>  GLIBC_2.34 __pthread_rwlock_unlock F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> index 70af59d791..9e15deaad8 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> @@ -20,11 +20,7 @@ GLIBC_2.2 __lseek F
>  GLIBC_2.2 __open F
>  GLIBC_2.2 __open64 F
>  GLIBC_2.2 __pread64 F
> -GLIBC_2.2 __pthread_mutex_destroy F
> -GLIBC_2.2 __pthread_mutex_init F
> -GLIBC_2.2 __pthread_mutex_lock F
>  GLIBC_2.2 __pthread_mutex_trylock F
> -GLIBC_2.2 __pthread_mutex_unlock F
>  GLIBC_2.2 __pthread_mutexattr_destroy F
>  GLIBC_2.2 __pthread_mutexattr_init F
>  GLIBC_2.2 __pthread_mutexattr_settype F
> @@ -83,12 +79,8 @@ GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_join F
>  GLIBC_2.2 pthread_kill F
>  GLIBC_2.2 pthread_kill_other_threads_np F
> -GLIBC_2.2 pthread_mutex_destroy F
> -GLIBC_2.2 pthread_mutex_init F
> -GLIBC_2.2 pthread_mutex_lock F
>  GLIBC_2.2 pthread_mutex_timedlock F
>  GLIBC_2.2 pthread_mutex_trylock F
> -GLIBC_2.2 pthread_mutex_unlock F
>  GLIBC_2.2 pthread_mutexattr_destroy F
>  GLIBC_2.2 pthread_mutexattr_getkind_np F
>  GLIBC_2.2 pthread_mutexattr_getpshared F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index 4944c4159b..e064e5a4dc 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -191,6 +191,10 @@ GLIBC_2.0 __progname D 0x4
>  GLIBC_2.0 __progname_full D 0x4
>  GLIBC_2.0 __pthread_getspecific F
>  GLIBC_2.0 __pthread_key_create F
> +GLIBC_2.0 __pthread_mutex_destroy F
> +GLIBC_2.0 __pthread_mutex_init F
> +GLIBC_2.0 __pthread_mutex_lock F
> +GLIBC_2.0 __pthread_mutex_unlock F
>  GLIBC_2.0 __pthread_once F
>  GLIBC_2.0 __pthread_setspecific F
>  GLIBC_2.0 __rcmd_errstr D 0x4
> @@ -2228,6 +2232,10 @@ GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
>  GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
> +GLIBC_2.34 __pthread_mutex_destroy F
> +GLIBC_2.34 __pthread_mutex_init F
> +GLIBC_2.34 __pthread_mutex_lock F
> +GLIBC_2.34 __pthread_mutex_unlock F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_rwlock_rdlock F
>  GLIBC_2.34 __pthread_rwlock_unlock F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> index a7b3fd73ab..29cb6259a5 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> @@ -8,11 +8,7 @@ GLIBC_2.0 __fcntl F
>  GLIBC_2.0 __h_errno_location F
>  GLIBC_2.0 __lseek F
>  GLIBC_2.0 __open F
> -GLIBC_2.0 __pthread_mutex_destroy F
> -GLIBC_2.0 __pthread_mutex_init F
> -GLIBC_2.0 __pthread_mutex_lock F
>  GLIBC_2.0 __pthread_mutex_trylock F
> -GLIBC_2.0 __pthread_mutex_unlock F
>  GLIBC_2.0 __pthread_mutexattr_destroy F
>  GLIBC_2.0 __pthread_mutexattr_init F
>  GLIBC_2.0 __pthread_mutexattr_settype F
> @@ -43,11 +39,7 @@ GLIBC_2.0 pthread_detach F
>  GLIBC_2.0 pthread_join F
>  GLIBC_2.0 pthread_kill F
>  GLIBC_2.0 pthread_kill_other_threads_np F
> -GLIBC_2.0 pthread_mutex_destroy F
> -GLIBC_2.0 pthread_mutex_init F
> -GLIBC_2.0 pthread_mutex_lock F
>  GLIBC_2.0 pthread_mutex_trylock F
> -GLIBC_2.0 pthread_mutex_unlock F
>  GLIBC_2.0 pthread_mutexattr_destroy F
>  GLIBC_2.0 pthread_mutexattr_getkind_np F
>  GLIBC_2.0 pthread_mutexattr_init F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index e69420994f..36fed3cf99 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -399,6 +399,10 @@ GLIBC_2.2 __progname D 0x8
>  GLIBC_2.2 __progname_full D 0x8
>  GLIBC_2.2 __pthread_getspecific F
>  GLIBC_2.2 __pthread_key_create F
> +GLIBC_2.2 __pthread_mutex_destroy F
> +GLIBC_2.2 __pthread_mutex_init F
> +GLIBC_2.2 __pthread_mutex_lock F
> +GLIBC_2.2 __pthread_mutex_unlock F
>  GLIBC_2.2 __pthread_once F
>  GLIBC_2.2 __pthread_rwlock_rdlock F
>  GLIBC_2.2 __pthread_rwlock_unlock F
> @@ -2155,6 +2159,10 @@ GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
>  GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
> +GLIBC_2.34 __pthread_mutex_destroy F
> +GLIBC_2.34 __pthread_mutex_init F
> +GLIBC_2.34 __pthread_mutex_lock F
> +GLIBC_2.34 __pthread_mutex_unlock F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_rwlock_rdlock F
>  GLIBC_2.34 __pthread_rwlock_unlock F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> index 2e69109cdc..684bf559e5 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> @@ -20,11 +20,7 @@ GLIBC_2.2 __lseek F
>  GLIBC_2.2 __open F
>  GLIBC_2.2 __open64 F
>  GLIBC_2.2 __pread64 F
> -GLIBC_2.2 __pthread_mutex_destroy F
> -GLIBC_2.2 __pthread_mutex_init F
> -GLIBC_2.2 __pthread_mutex_lock F
>  GLIBC_2.2 __pthread_mutex_trylock F
> -GLIBC_2.2 __pthread_mutex_unlock F
>  GLIBC_2.2 __pthread_mutexattr_destroy F
>  GLIBC_2.2 __pthread_mutexattr_init F
>  GLIBC_2.2 __pthread_mutexattr_settype F
> @@ -83,12 +79,8 @@ GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_join F
>  GLIBC_2.2 pthread_kill F
>  GLIBC_2.2 pthread_kill_other_threads_np F
> -GLIBC_2.2 pthread_mutex_destroy F
> -GLIBC_2.2 pthread_mutex_init F
> -GLIBC_2.2 pthread_mutex_lock F
>  GLIBC_2.2 pthread_mutex_timedlock F
>  GLIBC_2.2 pthread_mutex_trylock F
> -GLIBC_2.2 pthread_mutex_unlock F
>  GLIBC_2.2 pthread_mutexattr_destroy F
>  GLIBC_2.2 pthread_mutexattr_getkind_np F
>  GLIBC_2.2 pthread_mutexattr_getpshared F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index dfe78d93cb..6858c1328f 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -360,6 +360,10 @@ GLIBC_2.2.5 __progname D 0x8
>  GLIBC_2.2.5 __progname_full D 0x8
>  GLIBC_2.2.5 __pthread_getspecific F
>  GLIBC_2.2.5 __pthread_key_create F
> +GLIBC_2.2.5 __pthread_mutex_destroy F
> +GLIBC_2.2.5 __pthread_mutex_init F
> +GLIBC_2.2.5 __pthread_mutex_lock F
> +GLIBC_2.2.5 __pthread_mutex_unlock F
>  GLIBC_2.2.5 __pthread_once F
>  GLIBC_2.2.5 __pthread_rwlock_rdlock F
>  GLIBC_2.2.5 __pthread_rwlock_unlock F
> @@ -2114,6 +2118,10 @@ GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
>  GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
> +GLIBC_2.34 __pthread_mutex_destroy F
> +GLIBC_2.34 __pthread_mutex_init F
> +GLIBC_2.34 __pthread_mutex_lock F
> +GLIBC_2.34 __pthread_mutex_unlock F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_rwlock_rdlock F
>  GLIBC_2.34 __pthread_rwlock_unlock F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> index 4f8dfa000a..54ad81fdd6 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> @@ -20,11 +20,7 @@ GLIBC_2.2.5 __lseek F
>  GLIBC_2.2.5 __open F
>  GLIBC_2.2.5 __open64 F
>  GLIBC_2.2.5 __pread64 F
> -GLIBC_2.2.5 __pthread_mutex_destroy F
> -GLIBC_2.2.5 __pthread_mutex_init F
> -GLIBC_2.2.5 __pthread_mutex_lock F
>  GLIBC_2.2.5 __pthread_mutex_trylock F
> -GLIBC_2.2.5 __pthread_mutex_unlock F
>  GLIBC_2.2.5 __pthread_mutexattr_destroy F
>  GLIBC_2.2.5 __pthread_mutexattr_init F
>  GLIBC_2.2.5 __pthread_mutexattr_settype F
> @@ -83,12 +79,8 @@ GLIBC_2.2.5 pthread_getcpuclockid F
>  GLIBC_2.2.5 pthread_join F
>  GLIBC_2.2.5 pthread_kill F
>  GLIBC_2.2.5 pthread_kill_other_threads_np F
> -GLIBC_2.2.5 pthread_mutex_destroy F
> -GLIBC_2.2.5 pthread_mutex_init F
> -GLIBC_2.2.5 pthread_mutex_lock F
>  GLIBC_2.2.5 pthread_mutex_timedlock F
>  GLIBC_2.2.5 pthread_mutex_trylock F
> -GLIBC_2.2.5 pthread_mutex_unlock F
>  GLIBC_2.2.5 pthread_mutexattr_destroy F
>  GLIBC_2.2.5 pthread_mutexattr_getkind_np F
>  GLIBC_2.2.5 pthread_mutexattr_getpshared F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index 3accd92583..72da8cceaa 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -342,6 +342,10 @@ GLIBC_2.16 __progname_full D 0x4
>  GLIBC_2.16 __pthread_cleanup_routine F
>  GLIBC_2.16 __pthread_getspecific F
>  GLIBC_2.16 __pthread_key_create F
> +GLIBC_2.16 __pthread_mutex_destroy F
> +GLIBC_2.16 __pthread_mutex_init F
> +GLIBC_2.16 __pthread_mutex_lock F
> +GLIBC_2.16 __pthread_mutex_unlock F
>  GLIBC_2.16 __pthread_once F
>  GLIBC_2.16 __pthread_rwlock_rdlock F
>  GLIBC_2.16 __pthread_rwlock_unlock F
> @@ -2212,6 +2216,10 @@ GLIBC_2.34 __libc_start_main F
>  GLIBC_2.34 __pthread_cleanup_routine F
>  GLIBC_2.34 __pthread_getspecific F
>  GLIBC_2.34 __pthread_key_create F
> +GLIBC_2.34 __pthread_mutex_destroy F
> +GLIBC_2.34 __pthread_mutex_init F
> +GLIBC_2.34 __pthread_mutex_lock F
> +GLIBC_2.34 __pthread_mutex_unlock F
>  GLIBC_2.34 __pthread_once F
>  GLIBC_2.34 __pthread_rwlock_rdlock F
>  GLIBC_2.34 __pthread_rwlock_unlock F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> index 0b017c0218..6b095bf36a 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> @@ -13,11 +13,7 @@ GLIBC_2.16 __lseek F
>  GLIBC_2.16 __open F
>  GLIBC_2.16 __open64 F
>  GLIBC_2.16 __pread64 F
> -GLIBC_2.16 __pthread_mutex_destroy F
> -GLIBC_2.16 __pthread_mutex_init F
> -GLIBC_2.16 __pthread_mutex_lock F
>  GLIBC_2.16 __pthread_mutex_trylock F
> -GLIBC_2.16 __pthread_mutex_unlock F
>  GLIBC_2.16 __pthread_mutexattr_destroy F
>  GLIBC_2.16 __pthread_mutexattr_init F
>  GLIBC_2.16 __pthread_mutexattr_settype F
> @@ -84,14 +80,10 @@ GLIBC_2.16 pthread_getname_np F
>  GLIBC_2.16 pthread_join F
>  GLIBC_2.16 pthread_kill F
>  GLIBC_2.16 pthread_kill_other_threads_np F
> -GLIBC_2.16 pthread_mutex_destroy F
>  GLIBC_2.16 pthread_mutex_getprioceiling F
> -GLIBC_2.16 pthread_mutex_init F
> -GLIBC_2.16 pthread_mutex_lock F
>  GLIBC_2.16 pthread_mutex_setprioceiling F
>  GLIBC_2.16 pthread_mutex_timedlock F
>  GLIBC_2.16 pthread_mutex_trylock F
> -GLIBC_2.16 pthread_mutex_unlock F
>  GLIBC_2.16 pthread_mutexattr_destroy F
>  GLIBC_2.16 pthread_mutexattr_getkind_np F
>  GLIBC_2.16 pthread_mutexattr_getprioceiling F
> 

Ok.
diff mbox series

Patch

diff --git a/nptl/Makefile b/nptl/Makefile
index 3ae0e1e8c8..e0ba8bea13 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -84,6 +84,10 @@  routines = \
   pthread_keys \
   pthread_mutex_conf \
   pthread_mutex_consistent \
+  pthread_mutex_destroy \
+  pthread_mutex_init \
+  pthread_mutex_lock \
+  pthread_mutex_unlock \
   pthread_once \
   pthread_rwlock_rdlock \
   pthread_rwlock_unlock \
@@ -171,14 +175,10 @@  libpthread-routines = \
   pthread_kill \
   pthread_kill_other_threads \
   pthread_mutex_cond_lock \
-  pthread_mutex_destroy \
   pthread_mutex_getprioceiling \
-  pthread_mutex_init \
-  pthread_mutex_lock \
   pthread_mutex_setprioceiling \
   pthread_mutex_timedlock \
   pthread_mutex_trylock \
-  pthread_mutex_unlock \
   pthread_mutexattr_destroy \
   pthread_mutexattr_getprioceiling \
   pthread_mutexattr_getprotocol \
diff --git a/nptl/Versions b/nptl/Versions
index 2b9508bd6f..2352b74c7e 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -2,6 +2,10 @@  libc {
   GLIBC_2.0 {
     __pthread_getspecific;
     __pthread_key_create;
+    __pthread_mutex_destroy;
+    __pthread_mutex_init;
+    __pthread_mutex_lock;
+    __pthread_mutex_unlock;
     __pthread_once;
     __pthread_setspecific;
     _pthread_cleanup_pop;
@@ -103,6 +107,10 @@  libc {
     __pthread_cleanup_routine;
     __pthread_getspecific;
     __pthread_key_create;
+    __pthread_mutex_destroy;
+    __pthread_mutex_init;
+    __pthread_mutex_lock;
+    __pthread_mutex_unlock;
     __pthread_once;
     __pthread_rwlock_rdlock;
     __pthread_rwlock_unlock;
@@ -155,6 +163,7 @@  libc {
     __pthread_getattr_default_np;
     __pthread_key_delete;
     __pthread_keys;
+    __pthread_mutex_unlock_usercnt;
     __pthread_setcancelstate;
     __pthread_tpp_change_priority;
     __pthread_unwind;
@@ -177,11 +186,7 @@  libpthread {
     __lseek;
     __open;
     __pthread_atfork;
-    __pthread_mutex_destroy;
-    __pthread_mutex_init;
-    __pthread_mutex_lock;
     __pthread_mutex_trylock;
-    __pthread_mutex_unlock;
     __pthread_mutexattr_destroy;
     __pthread_mutexattr_init;
     __pthread_mutexattr_settype;
@@ -213,11 +218,7 @@  libpthread {
     pthread_join;
     pthread_kill;
     pthread_kill_other_threads_np;
-    pthread_mutex_destroy;
-    pthread_mutex_init;
-    pthread_mutex_lock;
     pthread_mutex_trylock;
-    pthread_mutex_unlock;
     pthread_mutexattr_destroy;
     pthread_mutexattr_getkind_np;
     pthread_mutexattr_init;
diff --git a/nptl/forward.c b/nptl/forward.c
index de4e9cd6ab..c914baec4f 100644
--- a/nptl/forward.c
+++ b/nptl/forward.c
@@ -90,14 +90,3 @@  FORWARD (__pthread_cond_timedwait,
 	  const struct timespec *abstime), (cond, mutex, abstime), 0)
 versioned_symbol (libc, __pthread_cond_timedwait, pthread_cond_timedwait,
 		  GLIBC_2_3_2);
-
-
-FORWARD (pthread_mutex_destroy, (pthread_mutex_t *mutex), (mutex), 0)
-
-FORWARD (pthread_mutex_init,
-	 (pthread_mutex_t *mutex, const pthread_mutexattr_t *mutexattr),
-	 (mutex, mutexattr), 0)
-
-FORWARD (pthread_mutex_lock, (pthread_mutex_t *mutex), (mutex), 0)
-
-FORWARD (pthread_mutex_unlock, (pthread_mutex_t *mutex), (mutex), 0)
diff --git a/nptl/nptl-init.c b/nptl/nptl-init.c
index 5c85f75cc1..cbc9430ecb 100644
--- a/nptl/nptl-init.c
+++ b/nptl/nptl-init.c
@@ -63,10 +63,6 @@  static const struct pthread_functions pthread_functions =
     .ptr___pthread_cond_wait_2_0 = __pthread_cond_wait_2_0,
     .ptr___pthread_cond_timedwait_2_0 = __pthread_cond_timedwait_2_0,
 # endif
-    .ptr_pthread_mutex_destroy = __pthread_mutex_destroy,
-    .ptr_pthread_mutex_init = __pthread_mutex_init,
-    .ptr_pthread_mutex_lock = __pthread_mutex_lock,
-    .ptr_pthread_mutex_unlock = __pthread_mutex_unlock,
     .ptr__nptl_setxid = __nptl_setxid,
   };
 # define ptr_pthread_functions &pthread_functions
diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
index 7fd290e004..4feebdf09e 100644
--- a/nptl/pthreadP.h
+++ b/nptl/pthreadP.h
@@ -389,9 +389,12 @@  extern int __pthread_setschedparam (pthread_t thread_id, int policy,
 				    const struct sched_param *param);
 extern int __pthread_mutex_init (pthread_mutex_t *__mutex,
 				 const pthread_mutexattr_t *__mutexattr);
+libc_hidden_proto (__pthread_mutex_init)
 extern int __pthread_mutex_destroy (pthread_mutex_t *__mutex);
+libc_hidden_proto (__pthread_mutex_destroy)
 extern int __pthread_mutex_trylock (pthread_mutex_t *_mutex);
 extern int __pthread_mutex_lock (pthread_mutex_t *__mutex);
+libc_hidden_proto (__pthread_mutex_lock)
 extern int __pthread_mutex_timedlock (pthread_mutex_t *__mutex,
      const struct timespec *__abstime);
 extern int __pthread_mutex_cond_lock (pthread_mutex_t *__mutex)
@@ -399,8 +402,10 @@  extern int __pthread_mutex_cond_lock (pthread_mutex_t *__mutex)
 extern void __pthread_mutex_cond_lock_adjust (pthread_mutex_t *__mutex)
      attribute_hidden;
 extern int __pthread_mutex_unlock (pthread_mutex_t *__mutex);
+libc_hidden_proto (__pthread_mutex_unlock)
 extern int __pthread_mutex_unlock_usercnt (pthread_mutex_t *__mutex,
-					   int __decr) attribute_hidden;
+					   int __decr);
+libc_hidden_proto (__pthread_mutex_unlock_usercnt)
 extern int __pthread_mutexattr_init (pthread_mutexattr_t *attr);
 extern int __pthread_mutexattr_destroy (pthread_mutexattr_t *attr);
 extern int __pthread_mutexattr_settype (pthread_mutexattr_t *attr, int kind);
@@ -554,11 +559,7 @@  libc_hidden_proto (__pthread_sigmask);
 
 
 #if IS_IN (libpthread)
-hidden_proto (__pthread_mutex_init)
-hidden_proto (__pthread_mutex_destroy)
-hidden_proto (__pthread_mutex_lock)
 hidden_proto (__pthread_mutex_trylock)
-hidden_proto (__pthread_mutex_unlock)
 hidden_proto (__pthread_rwlock_unlock)
 hidden_proto (__pthread_testcancel)
 hidden_proto (__pthread_mutexattr_init)
diff --git a/nptl/pthread_mutex_cond_lock.c b/nptl/pthread_mutex_cond_lock.c
index 3386bd689b..f3af514305 100644
--- a/nptl/pthread_mutex_cond_lock.c
+++ b/nptl/pthread_mutex_cond_lock.c
@@ -15,8 +15,9 @@ 
 /* We need to assume that there are other threads blocked on the futex.
    See __pthread_mutex_lock_full for further details.  */
 #define LLL_ROBUST_MUTEX_LOCK_MODIFIER FUTEX_WAITERS
-#define __pthread_mutex_lock  __pthread_mutex_cond_lock
+#define PTHREAD_MUTEX_LOCK  __pthread_mutex_cond_lock
 #define __pthread_mutex_lock_full __pthread_mutex_cond_lock_full
 #define NO_INCR
+#define PTHREAD_MUTEX_VERSIONS 0
 
 #include <nptl/pthread_mutex_lock.c>
diff --git a/nptl/pthread_mutex_destroy.c b/nptl/pthread_mutex_destroy.c
index d2fb816e11..98da991a9d 100644
--- a/nptl/pthread_mutex_destroy.c
+++ b/nptl/pthread_mutex_destroy.c
@@ -18,12 +18,12 @@ 
 
 #include <errno.h>
 #include "pthreadP.h"
-
+#include <shlib-compat.h>
 #include <stap-probe.h>
 
 
 int
-__pthread_mutex_destroy (pthread_mutex_t *mutex)
+__pthread_mutex_destroy_1 (pthread_mutex_t *mutex)
 {
   LIBC_PROBE (mutex_destroy, 1, mutex);
 
@@ -41,5 +41,15 @@  __pthread_mutex_destroy (pthread_mutex_t *mutex)
 
   return 0;
 }
-weak_alias (__pthread_mutex_destroy, pthread_mutex_destroy)
-hidden_def (__pthread_mutex_destroy)
+versioned_symbol (libc, __pthread_mutex_destroy_1, __pthread_mutex_destroy,
+                  GLIBC_2_34);
+libc_hidden_ver (__pthread_mutex_destroy_1, __pthread_mutex_destroy)
+strong_alias (__pthread_mutex_destroy_1, __pthread_mutex_destroy_2)
+versioned_symbol (libc, __pthread_mutex_destroy_2, pthread_mutex_destroy,
+                  GLIBC_2_0);
+
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_34)
+strong_alias (__pthread_mutex_destroy_1, __pthread_mutex_destroy_3)
+compat_symbol (libc, __pthread_mutex_destroy_3, __pthread_mutex_destroy,
+               GLIBC_2_0);
+#endif
diff --git a/nptl/pthread_mutex_init.c b/nptl/pthread_mutex_init.c
index f5c3a4b464..b3af7fcd48 100644
--- a/nptl/pthread_mutex_init.c
+++ b/nptl/pthread_mutex_init.c
@@ -25,6 +25,7 @@ 
 #include <atomic.h>
 #include <pthread-offsets.h>
 #include <futex-internal.h>
+#include <shlib-compat.h>
 
 #include <stap-probe.h>
 
@@ -48,7 +49,7 @@  prio_inherit_missing (void)
 }
 
 int
-__pthread_mutex_init (pthread_mutex_t *mutex,
+__pthread_mutex_init_1 (pthread_mutex_t *mutex,
 		      const pthread_mutexattr_t *mutexattr)
 {
   const struct pthread_mutexattr *imutexattr;
@@ -150,5 +151,14 @@  __pthread_mutex_init (pthread_mutex_t *mutex,
 
   return 0;
 }
-weak_alias (__pthread_mutex_init, pthread_mutex_init)
-hidden_def (__pthread_mutex_init)
+versioned_symbol (libc, __pthread_mutex_init_1, __pthread_mutex_init,
+		  GLIBC_2_34);
+libc_hidden_ver (__pthread_mutex_init_1, __pthread_mutex_init)
+strong_alias (__pthread_mutex_init_1, __pthread_mutex_init_2)
+versioned_symbol (libc, __pthread_mutex_init_2, pthread_mutex_init,
+		  GLIBC_2_0);
+# if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_34)
+strong_alias (__pthread_mutex_init_1, __pthread_mutex_init_3)
+compat_symbol (libc, __pthread_mutex_init_3, __pthread_mutex_init,
+	       GLIBC_2_0);
+#endif
diff --git a/nptl/pthread_mutex_lock.c b/nptl/pthread_mutex_lock.c
index 8649a92ffb..261cd5a72d 100644
--- a/nptl/pthread_mutex_lock.c
+++ b/nptl/pthread_mutex_lock.c
@@ -26,6 +26,7 @@ 
 #include <atomic.h>
 #include <futex-internal.h>
 #include <stap-probe.h>
+#include <shlib-compat.h>
 
 /* Some of the following definitions differ when pthread_mutex_cond_lock.c
    includes this file.  */
@@ -60,13 +61,15 @@  lll_mutex_lock_optimized (pthread_mutex_t *mutex)
 # define LLL_MUTEX_TRYLOCK_ELISION(mutex) \
   lll_trylock_elision((mutex)->__data.__lock, (mutex)->__data.__elision, \
 		   PTHREAD_MUTEX_PSHARED (mutex))
+# define PTHREAD_MUTEX_LOCK __pthread_mutex_lock_1
+# define PTHREAD_MUTEX_VERSIONS 1
 #endif
 
 static int __pthread_mutex_lock_full (pthread_mutex_t *mutex)
      __attribute_noinline__;
 
 int
-__pthread_mutex_lock (pthread_mutex_t *mutex)
+PTHREAD_MUTEX_LOCK (pthread_mutex_t *mutex)
 {
   /* See concurrency notes regarding mutex type which is loaded from __kind
      in struct __pthread_mutex_s in sysdeps/nptl/bits/thread-shared-types.h.  */
@@ -604,10 +607,19 @@  __pthread_mutex_lock_full (pthread_mutex_t *mutex)
 
   return 0;
 }
-#ifndef __pthread_mutex_lock
-weak_alias (__pthread_mutex_lock, pthread_mutex_lock)
-hidden_def (__pthread_mutex_lock)
-#endif
+
+#if PTHREAD_MUTEX_VERSIONS
+versioned_symbol (libc, __pthread_mutex_lock_1, __pthread_mutex_lock,
+		  GLIBC_2_34);
+libc_hidden_ver (__pthread_mutex_lock_1, __pthread_mutex_lock)
+strong_alias (__pthread_mutex_lock_1, __pthread_mutex_lock_2)
+versioned_symbol (libc, __pthread_mutex_lock_2, pthread_mutex_lock, GLIBC_2_0);
+
+# if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_34)
+strong_alias (__pthread_mutex_lock_1, __pthread_mutex_lock_3)
+compat_symbol (libc, __pthread_mutex_lock_3, __pthread_mutex_lock, GLIBC_2_0);
+# endif
+#endif /* PTHREAD_MUTEX_VERSIONS */
 
 
 #ifdef NO_INCR
diff --git a/nptl/pthread_mutex_unlock.c b/nptl/pthread_mutex_unlock.c
index 655093ee9a..159720198c 100644
--- a/nptl/pthread_mutex_unlock.c
+++ b/nptl/pthread_mutex_unlock.c
@@ -23,6 +23,7 @@ 
 #include <lowlevellock.h>
 #include <stap-probe.h>
 #include <futex-internal.h>
+#include <shlib-compat.h>
 
 static int
 __pthread_mutex_unlock_full (pthread_mutex_t *mutex, int decr)
@@ -44,7 +45,6 @@  lll_mutex_unlock_optimized (pthread_mutex_t *mutex)
 }
 
 int
-attribute_hidden
 __pthread_mutex_unlock_usercnt (pthread_mutex_t *mutex, int decr)
 {
   /* See concurrency notes regarding mutex type which is loaded from __kind
@@ -103,6 +103,7 @@  __pthread_mutex_unlock_usercnt (pthread_mutex_t *mutex, int decr)
       goto normal;
     }
 }
+libc_hidden_def (__pthread_mutex_unlock_usercnt)
 
 
 static int
@@ -363,9 +364,19 @@  __pthread_mutex_unlock_full (pthread_mutex_t *mutex, int decr)
 
 
 int
-__pthread_mutex_unlock (pthread_mutex_t *mutex)
+__pthread_mutex_unlock_1 (pthread_mutex_t *mutex)
 {
   return __pthread_mutex_unlock_usercnt (mutex, 1);
 }
-weak_alias (__pthread_mutex_unlock, pthread_mutex_unlock)
-hidden_def (__pthread_mutex_unlock)
+versioned_symbol (libc, __pthread_mutex_unlock_1, __pthread_mutex_unlock,
+		  GLIBC_2_34);
+libc_hidden_ver (__pthread_mutex_unlock_1, __pthread_mutex_unlock)
+strong_alias (__pthread_mutex_unlock_1, __pthread_mutex_unlock_2)
+versioned_symbol (libc, __pthread_mutex_unlock_2, pthread_mutex_unlock,
+		  GLIBC_2_0);
+
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_34)
+strong_alias (__pthread_mutex_unlock_1, __pthread_mutex_unlock_3)
+compat_symbol (libc, __pthread_mutex_unlock_3, __pthread_mutex_unlock,
+	       GLIBC_2_0);
+#endif
diff --git a/sysdeps/nptl/libc-lockP.h b/sysdeps/nptl/libc-lockP.h
index 89910560fa..0dd2ea1147 100644
--- a/sysdeps/nptl/libc-lockP.h
+++ b/sysdeps/nptl/libc-lockP.h
@@ -128,8 +128,7 @@  _Static_assert (LLL_LOCK_INITIALIZER == 0, "LLL_LOCK_INITIALIZER != 0");
 # define __libc_lock_init(NAME) \
   ((void) ((NAME) = LLL_LOCK_INITIALIZER))
 #else
-# define __libc_lock_init(NAME) \
-  __libc_maybe_call (__pthread_mutex_init, (&(NAME), NULL), 0)
+# define __libc_lock_init(NAME) __pthread_mutex_init (&(NAME))
 #endif
 #if defined SHARED && IS_IN (libc)
 /* ((NAME) = (__libc_rwlock_t) PTHREAD_RWLOCK_INITIALIZER) is inefficient.  */
@@ -146,8 +145,7 @@  _Static_assert (LLL_LOCK_INITIALIZER == 0, "LLL_LOCK_INITIALIZER != 0");
 #if IS_IN (libc) || IS_IN (libpthread)
 # define __libc_lock_fini(NAME) ((void) 0)
 #else
-# define __libc_lock_fini(NAME) \
-  __libc_maybe_call (__pthread_mutex_destroy, (&(NAME)), 0)
+# define __libc_lock_fini(NAME) __pthread_mutex_destroy (&(NAME))
 #endif
 #if defined SHARED && IS_IN (libc)
 # define __libc_rwlock_fini(NAME) ((void) 0)
@@ -164,8 +162,7 @@  _Static_assert (LLL_LOCK_INITIALIZER == 0, "LLL_LOCK_INITIALIZER != 0");
 # endif
 #else
 # undef __libc_lock_lock
-# define __libc_lock_lock(NAME) \
-  __libc_maybe_call (__pthread_mutex_lock, (&(NAME)), 0)
+# define __libc_lock_lock(NAME) __pthread_mutex_lock (&(NAME))
 #endif
 #define __libc_rwlock_rdlock(NAME) __pthread_rwlock_rdlock (&(NAME))
 #define __libc_rwlock_wrlock(NAME) __pthread_rwlock_wrlock (&(NAME))
@@ -194,8 +191,7 @@  _Static_assert (LLL_LOCK_INITIALIZER == 0, "LLL_LOCK_INITIALIZER != 0");
 # define __libc_lock_unlock(NAME) \
   lll_unlock (NAME, LLL_PRIVATE)
 #else
-# define __libc_lock_unlock(NAME) \
-  __libc_maybe_call (__pthread_mutex_unlock, (&(NAME)), 0)
+# define __libc_lock_unlock(NAME) __pthread_mutex_unlock (&(NAME))
 #endif
 #define __libc_rwlock_unlock(NAME) __pthread_rwlock_unlock (&(NAME))
 
@@ -213,10 +209,10 @@  _Static_assert (LLL_LOCK_INITIALIZER == 0, "LLL_LOCK_INITIALIZER != 0");
   GL(dl_rtld_unlock_recursive) (&(NAME).mutex)
 #else
 # define __rtld_lock_lock_recursive(NAME) \
-  __libc_maybe_call (__pthread_mutex_lock, (&(NAME).mutex), 0)
+  __pthread_mutex_lock (&(NAME).mutex)
 
 # define __rtld_lock_unlock_recursive(NAME) \
-  __libc_maybe_call (__pthread_mutex_unlock, (&(NAME).mutex), 0)
+  __pthread_mutex_unlock (&(NAME).mutex)
 #endif
 
 /* Define once control variable.  */
@@ -274,15 +270,15 @@  extern int __register_atfork (void (*__prepare) (void),
 
 extern int __pthread_mutex_init (pthread_mutex_t *__mutex,
 				 const pthread_mutexattr_t *__mutex_attr);
-
+libc_hidden_proto (__pthread_mutex_init)
 extern int __pthread_mutex_destroy (pthread_mutex_t *__mutex);
-
+libc_hidden_proto (__pthread_mutex_destroy)
 extern int __pthread_mutex_trylock (pthread_mutex_t *__mutex);
 
 extern int __pthread_mutex_lock (pthread_mutex_t *__mutex);
-
+libc_hidden_proto (__pthread_mutex_lock)
 extern int __pthread_mutex_unlock (pthread_mutex_t *__mutex);
-
+libc_hidden_proto (__pthread_mutex_unlock)
 extern int __pthread_mutexattr_init (pthread_mutexattr_t *__attr);
 
 extern int __pthread_mutexattr_destroy (pthread_mutexattr_t *__attr);
@@ -320,11 +316,7 @@  libc_hidden_proto (__pthread_setcancelstate)
    single-threaded processes.  */
 #ifndef __NO_WEAK_PTHREAD_ALIASES
 # ifdef weak_extern
-weak_extern (__pthread_mutex_init)
-weak_extern (__pthread_mutex_destroy)
-weak_extern (__pthread_mutex_lock)
 weak_extern (__pthread_mutex_trylock)
-weak_extern (__pthread_mutex_unlock)
 weak_extern (__pthread_mutexattr_init)
 weak_extern (__pthread_mutexattr_destroy)
 weak_extern (__pthread_mutexattr_settype)
@@ -335,11 +327,7 @@  weak_extern (__pthread_rwlock_trywrlock)
 weak_extern (__pthread_initialize)
 weak_extern (__pthread_atfork)
 # else
-#  pragma weak __pthread_mutex_init
-#  pragma weak __pthread_mutex_destroy
-#  pragma weak __pthread_mutex_lock
 #  pragma weak __pthread_mutex_trylock
-#  pragma weak __pthread_mutex_unlock
 #  pragma weak __pthread_mutexattr_init
 #  pragma weak __pthread_mutexattr_destroy
 #  pragma weak __pthread_mutexattr_settype
diff --git a/sysdeps/nptl/pthread-functions.h b/sysdeps/nptl/pthread-functions.h
index 8535e142d5..dab5a2831e 100644
--- a/sysdeps/nptl/pthread-functions.h
+++ b/sysdeps/nptl/pthread-functions.h
@@ -41,11 +41,6 @@  struct pthread_functions
   int (*ptr___pthread_cond_timedwait_2_0) (pthread_cond_2_0_t *,
 					   pthread_mutex_t *,
 					   const struct timespec *);
-  int (*ptr_pthread_mutex_destroy) (pthread_mutex_t *);
-  int (*ptr_pthread_mutex_init) (pthread_mutex_t *,
-				 const pthread_mutexattr_t *);
-  int (*ptr_pthread_mutex_lock) (pthread_mutex_t *);
-  int (*ptr_pthread_mutex_unlock) (pthread_mutex_t *);
   int (*ptr__nptl_setxid) (struct xid_command *);
 };
 
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 9191b2e760..381947232e 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -341,6 +341,10 @@  GLIBC_2.17 __progname_full D 0x8
 GLIBC_2.17 __pthread_cleanup_routine F
 GLIBC_2.17 __pthread_getspecific F
 GLIBC_2.17 __pthread_key_create F
+GLIBC_2.17 __pthread_mutex_destroy F
+GLIBC_2.17 __pthread_mutex_init F
+GLIBC_2.17 __pthread_mutex_lock F
+GLIBC_2.17 __pthread_mutex_unlock F
 GLIBC_2.17 __pthread_once F
 GLIBC_2.17 __pthread_rwlock_rdlock F
 GLIBC_2.17 __pthread_rwlock_unlock F
@@ -2198,6 +2202,10 @@  GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
 GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
+GLIBC_2.34 __pthread_mutex_destroy F
+GLIBC_2.34 __pthread_mutex_init F
+GLIBC_2.34 __pthread_mutex_lock F
+GLIBC_2.34 __pthread_mutex_unlock F
 GLIBC_2.34 __pthread_once F
 GLIBC_2.34 __pthread_rwlock_rdlock F
 GLIBC_2.34 __pthread_rwlock_unlock F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
index 9a24f796de..29a98fc2f4 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
@@ -13,11 +13,7 @@  GLIBC_2.17 __lseek F
 GLIBC_2.17 __open F
 GLIBC_2.17 __open64 F
 GLIBC_2.17 __pread64 F
-GLIBC_2.17 __pthread_mutex_destroy F
-GLIBC_2.17 __pthread_mutex_init F
-GLIBC_2.17 __pthread_mutex_lock F
 GLIBC_2.17 __pthread_mutex_trylock F
-GLIBC_2.17 __pthread_mutex_unlock F
 GLIBC_2.17 __pthread_mutexattr_destroy F
 GLIBC_2.17 __pthread_mutexattr_init F
 GLIBC_2.17 __pthread_mutexattr_settype F
@@ -84,14 +80,10 @@  GLIBC_2.17 pthread_getname_np F
 GLIBC_2.17 pthread_join F
 GLIBC_2.17 pthread_kill F
 GLIBC_2.17 pthread_kill_other_threads_np F
-GLIBC_2.17 pthread_mutex_destroy F
 GLIBC_2.17 pthread_mutex_getprioceiling F
-GLIBC_2.17 pthread_mutex_init F
-GLIBC_2.17 pthread_mutex_lock F
 GLIBC_2.17 pthread_mutex_setprioceiling F
 GLIBC_2.17 pthread_mutex_timedlock F
 GLIBC_2.17 pthread_mutex_trylock F
-GLIBC_2.17 pthread_mutex_unlock F
 GLIBC_2.17 pthread_mutexattr_destroy F
 GLIBC_2.17 pthread_mutexattr_getkind_np F
 GLIBC_2.17 pthread_mutexattr_getprioceiling F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 71dd49d25c..7e314dd68b 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -190,6 +190,10 @@  GLIBC_2.0 __progname D 0x8
 GLIBC_2.0 __progname_full D 0x8
 GLIBC_2.0 __pthread_getspecific F
 GLIBC_2.0 __pthread_key_create F
+GLIBC_2.0 __pthread_mutex_destroy F
+GLIBC_2.0 __pthread_mutex_init F
+GLIBC_2.0 __pthread_mutex_lock F
+GLIBC_2.0 __pthread_mutex_unlock F
 GLIBC_2.0 __pthread_once F
 GLIBC_2.0 __pthread_setspecific F
 GLIBC_2.0 __rcmd_errstr D 0x8
@@ -2279,6 +2283,10 @@  GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
 GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
+GLIBC_2.34 __pthread_mutex_destroy F
+GLIBC_2.34 __pthread_mutex_init F
+GLIBC_2.34 __pthread_mutex_lock F
+GLIBC_2.34 __pthread_mutex_unlock F
 GLIBC_2.34 __pthread_once F
 GLIBC_2.34 __pthread_rwlock_rdlock F
 GLIBC_2.34 __pthread_rwlock_unlock F
diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
index a7b3fd73ab..29cb6259a5 100644
--- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
@@ -8,11 +8,7 @@  GLIBC_2.0 __fcntl F
 GLIBC_2.0 __h_errno_location F
 GLIBC_2.0 __lseek F
 GLIBC_2.0 __open F
-GLIBC_2.0 __pthread_mutex_destroy F
-GLIBC_2.0 __pthread_mutex_init F
-GLIBC_2.0 __pthread_mutex_lock F
 GLIBC_2.0 __pthread_mutex_trylock F
-GLIBC_2.0 __pthread_mutex_unlock F
 GLIBC_2.0 __pthread_mutexattr_destroy F
 GLIBC_2.0 __pthread_mutexattr_init F
 GLIBC_2.0 __pthread_mutexattr_settype F
@@ -43,11 +39,7 @@  GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join F
 GLIBC_2.0 pthread_kill F
 GLIBC_2.0 pthread_kill_other_threads_np F
-GLIBC_2.0 pthread_mutex_destroy F
-GLIBC_2.0 pthread_mutex_init F
-GLIBC_2.0 pthread_mutex_lock F
 GLIBC_2.0 pthread_mutex_trylock F
-GLIBC_2.0 pthread_mutex_unlock F
 GLIBC_2.0 pthread_mutexattr_destroy F
 GLIBC_2.0 pthread_mutexattr_getkind_np F
 GLIBC_2.0 pthread_mutexattr_init F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 38764a6746..014b30c7bd 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -330,6 +330,10 @@  GLIBC_2.32 __progname_full D 0x4
 GLIBC_2.32 __pthread_cleanup_routine F
 GLIBC_2.32 __pthread_getspecific F
 GLIBC_2.32 __pthread_key_create F
+GLIBC_2.32 __pthread_mutex_destroy F
+GLIBC_2.32 __pthread_mutex_init F
+GLIBC_2.32 __pthread_mutex_lock F
+GLIBC_2.32 __pthread_mutex_unlock F
 GLIBC_2.32 __pthread_once F
 GLIBC_2.32 __pthread_rwlock_rdlock F
 GLIBC_2.32 __pthread_rwlock_unlock F
@@ -1958,6 +1962,10 @@  GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
 GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
+GLIBC_2.34 __pthread_mutex_destroy F
+GLIBC_2.34 __pthread_mutex_init F
+GLIBC_2.34 __pthread_mutex_lock F
+GLIBC_2.34 __pthread_mutex_unlock F
 GLIBC_2.34 __pthread_once F
 GLIBC_2.34 __pthread_rwlock_rdlock F
 GLIBC_2.34 __pthread_rwlock_unlock F
diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
index 0d8b928e6d..b926ef9dba 100644
--- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
@@ -12,11 +12,7 @@  GLIBC_2.32 __lseek F
 GLIBC_2.32 __open F
 GLIBC_2.32 __open64 F
 GLIBC_2.32 __pread64 F
-GLIBC_2.32 __pthread_mutex_destroy F
-GLIBC_2.32 __pthread_mutex_init F
-GLIBC_2.32 __pthread_mutex_lock F
 GLIBC_2.32 __pthread_mutex_trylock F
-GLIBC_2.32 __pthread_mutex_unlock F
 GLIBC_2.32 __pthread_mutexattr_destroy F
 GLIBC_2.32 __pthread_mutexattr_init F
 GLIBC_2.32 __pthread_mutexattr_settype F
@@ -99,14 +95,10 @@  GLIBC_2.32 pthread_join F
 GLIBC_2.32 pthread_kill F
 GLIBC_2.32 pthread_kill_other_threads_np F
 GLIBC_2.32 pthread_mutex_clocklock F
-GLIBC_2.32 pthread_mutex_destroy F
 GLIBC_2.32 pthread_mutex_getprioceiling F
-GLIBC_2.32 pthread_mutex_init F
-GLIBC_2.32 pthread_mutex_lock F
 GLIBC_2.32 pthread_mutex_setprioceiling F
 GLIBC_2.32 pthread_mutex_timedlock F
 GLIBC_2.32 pthread_mutex_trylock F
-GLIBC_2.32 pthread_mutex_unlock F
 GLIBC_2.32 pthread_mutexattr_destroy F
 GLIBC_2.32 pthread_mutexattr_getkind_np F
 GLIBC_2.32 pthread_mutexattr_getprioceiling F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 86d971e7d2..412eb541fc 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -160,6 +160,10 @@  GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
 GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
+GLIBC_2.34 __pthread_mutex_destroy F
+GLIBC_2.34 __pthread_mutex_init F
+GLIBC_2.34 __pthread_mutex_lock F
+GLIBC_2.34 __pthread_mutex_unlock F
 GLIBC_2.34 __pthread_once F
 GLIBC_2.34 __pthread_rwlock_rdlock F
 GLIBC_2.34 __pthread_rwlock_unlock F
@@ -505,6 +509,10 @@  GLIBC_2.4 __progname_full D 0x4
 GLIBC_2.4 __pthread_cleanup_routine F
 GLIBC_2.4 __pthread_getspecific F
 GLIBC_2.4 __pthread_key_create F
+GLIBC_2.4 __pthread_mutex_destroy F
+GLIBC_2.4 __pthread_mutex_init F
+GLIBC_2.4 __pthread_mutex_lock F
+GLIBC_2.4 __pthread_mutex_unlock F
 GLIBC_2.4 __pthread_once F
 GLIBC_2.4 __pthread_rwlock_rdlock F
 GLIBC_2.4 __pthread_rwlock_unlock F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
index 833b53362d..8dd2c3f7a6 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
@@ -47,11 +47,7 @@  GLIBC_2.4 __lseek F
 GLIBC_2.4 __open F
 GLIBC_2.4 __open64 F
 GLIBC_2.4 __pread64 F
-GLIBC_2.4 __pthread_mutex_destroy F
-GLIBC_2.4 __pthread_mutex_init F
-GLIBC_2.4 __pthread_mutex_lock F
 GLIBC_2.4 __pthread_mutex_trylock F
-GLIBC_2.4 __pthread_mutex_unlock F
 GLIBC_2.4 __pthread_mutexattr_destroy F
 GLIBC_2.4 __pthread_mutexattr_init F
 GLIBC_2.4 __pthread_mutexattr_settype F
@@ -117,14 +113,10 @@  GLIBC_2.4 pthread_getcpuclockid F
 GLIBC_2.4 pthread_join F
 GLIBC_2.4 pthread_kill F
 GLIBC_2.4 pthread_kill_other_threads_np F
-GLIBC_2.4 pthread_mutex_destroy F
 GLIBC_2.4 pthread_mutex_getprioceiling F
-GLIBC_2.4 pthread_mutex_init F
-GLIBC_2.4 pthread_mutex_lock F
 GLIBC_2.4 pthread_mutex_setprioceiling F
 GLIBC_2.4 pthread_mutex_timedlock F
 GLIBC_2.4 pthread_mutex_trylock F
-GLIBC_2.4 pthread_mutex_unlock F
 GLIBC_2.4 pthread_mutexattr_destroy F
 GLIBC_2.4 pthread_mutexattr_getkind_np F
 GLIBC_2.4 pthread_mutexattr_getprioceiling F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index caf3f6a141..588f1d6b42 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -157,6 +157,10 @@  GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
 GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
+GLIBC_2.34 __pthread_mutex_destroy F
+GLIBC_2.34 __pthread_mutex_init F
+GLIBC_2.34 __pthread_mutex_lock F
+GLIBC_2.34 __pthread_mutex_unlock F
 GLIBC_2.34 __pthread_once F
 GLIBC_2.34 __pthread_rwlock_rdlock F
 GLIBC_2.34 __pthread_rwlock_unlock F
@@ -502,6 +506,10 @@  GLIBC_2.4 __progname_full D 0x4
 GLIBC_2.4 __pthread_cleanup_routine F
 GLIBC_2.4 __pthread_getspecific F
 GLIBC_2.4 __pthread_key_create F
+GLIBC_2.4 __pthread_mutex_destroy F
+GLIBC_2.4 __pthread_mutex_init F
+GLIBC_2.4 __pthread_mutex_lock F
+GLIBC_2.4 __pthread_mutex_unlock F
 GLIBC_2.4 __pthread_once F
 GLIBC_2.4 __pthread_rwlock_rdlock F
 GLIBC_2.4 __pthread_rwlock_unlock F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
index 833b53362d..8dd2c3f7a6 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
@@ -47,11 +47,7 @@  GLIBC_2.4 __lseek F
 GLIBC_2.4 __open F
 GLIBC_2.4 __open64 F
 GLIBC_2.4 __pread64 F
-GLIBC_2.4 __pthread_mutex_destroy F
-GLIBC_2.4 __pthread_mutex_init F
-GLIBC_2.4 __pthread_mutex_lock F
 GLIBC_2.4 __pthread_mutex_trylock F
-GLIBC_2.4 __pthread_mutex_unlock F
 GLIBC_2.4 __pthread_mutexattr_destroy F
 GLIBC_2.4 __pthread_mutexattr_init F
 GLIBC_2.4 __pthread_mutexattr_settype F
@@ -117,14 +113,10 @@  GLIBC_2.4 pthread_getcpuclockid F
 GLIBC_2.4 pthread_join F
 GLIBC_2.4 pthread_kill F
 GLIBC_2.4 pthread_kill_other_threads_np F
-GLIBC_2.4 pthread_mutex_destroy F
 GLIBC_2.4 pthread_mutex_getprioceiling F
-GLIBC_2.4 pthread_mutex_init F
-GLIBC_2.4 pthread_mutex_lock F
 GLIBC_2.4 pthread_mutex_setprioceiling F
 GLIBC_2.4 pthread_mutex_timedlock F
 GLIBC_2.4 pthread_mutex_trylock F
-GLIBC_2.4 pthread_mutex_unlock F
 GLIBC_2.4 pthread_mutexattr_destroy F
 GLIBC_2.4 pthread_mutexattr_getkind_np F
 GLIBC_2.4 pthread_mutexattr_getprioceiling F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index aeb6424389..76fb31f895 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -334,6 +334,10 @@  GLIBC_2.29 __progname_full D 0x4
 GLIBC_2.29 __pthread_cleanup_routine F
 GLIBC_2.29 __pthread_getspecific F
 GLIBC_2.29 __pthread_key_create F
+GLIBC_2.29 __pthread_mutex_destroy F
+GLIBC_2.29 __pthread_mutex_init F
+GLIBC_2.29 __pthread_mutex_lock F
+GLIBC_2.29 __pthread_mutex_unlock F
 GLIBC_2.29 __pthread_once F
 GLIBC_2.29 __pthread_rwlock_rdlock F
 GLIBC_2.29 __pthread_rwlock_unlock F
@@ -2142,6 +2146,10 @@  GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
 GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
+GLIBC_2.34 __pthread_mutex_destroy F
+GLIBC_2.34 __pthread_mutex_init F
+GLIBC_2.34 __pthread_mutex_lock F
+GLIBC_2.34 __pthread_mutex_unlock F
 GLIBC_2.34 __pthread_once F
 GLIBC_2.34 __pthread_rwlock_rdlock F
 GLIBC_2.34 __pthread_rwlock_unlock F
diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
index 440c0507d1..2c4d219569 100644
--- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
@@ -12,11 +12,7 @@  GLIBC_2.29 __lseek F
 GLIBC_2.29 __open F
 GLIBC_2.29 __open64 F
 GLIBC_2.29 __pread64 F
-GLIBC_2.29 __pthread_mutex_destroy F
-GLIBC_2.29 __pthread_mutex_init F
-GLIBC_2.29 __pthread_mutex_lock F
 GLIBC_2.29 __pthread_mutex_trylock F
-GLIBC_2.29 __pthread_mutex_unlock F
 GLIBC_2.29 __pthread_mutexattr_destroy F
 GLIBC_2.29 __pthread_mutexattr_init F
 GLIBC_2.29 __pthread_mutexattr_settype F
@@ -96,14 +92,10 @@  GLIBC_2.29 pthread_getname_np F
 GLIBC_2.29 pthread_join F
 GLIBC_2.29 pthread_kill F
 GLIBC_2.29 pthread_kill_other_threads_np F
-GLIBC_2.29 pthread_mutex_destroy F
 GLIBC_2.29 pthread_mutex_getprioceiling F
-GLIBC_2.29 pthread_mutex_init F
-GLIBC_2.29 pthread_mutex_lock F
 GLIBC_2.29 pthread_mutex_setprioceiling F
 GLIBC_2.29 pthread_mutex_timedlock F
 GLIBC_2.29 pthread_mutex_trylock F
-GLIBC_2.29 pthread_mutex_unlock F
 GLIBC_2.29 pthread_mutexattr_destroy F
 GLIBC_2.29 pthread_mutexattr_getkind_np F
 GLIBC_2.29 pthread_mutexattr_getprioceiling F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index e1d02058c9..e99899dee5 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -358,6 +358,10 @@  GLIBC_2.2 __progname D 0x4
 GLIBC_2.2 __progname_full D 0x4
 GLIBC_2.2 __pthread_getspecific F
 GLIBC_2.2 __pthread_key_create F
+GLIBC_2.2 __pthread_mutex_destroy F
+GLIBC_2.2 __pthread_mutex_init F
+GLIBC_2.2 __pthread_mutex_lock F
+GLIBC_2.2 __pthread_mutex_unlock F
 GLIBC_2.2 __pthread_once F
 GLIBC_2.2 __pthread_rwlock_rdlock F
 GLIBC_2.2 __pthread_rwlock_unlock F
@@ -2100,6 +2104,10 @@  GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
 GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
+GLIBC_2.34 __pthread_mutex_destroy F
+GLIBC_2.34 __pthread_mutex_init F
+GLIBC_2.34 __pthread_mutex_lock F
+GLIBC_2.34 __pthread_mutex_unlock F
 GLIBC_2.34 __pthread_once F
 GLIBC_2.34 __pthread_rwlock_rdlock F
 GLIBC_2.34 __pthread_rwlock_unlock F
diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
index 70af59d791..9e15deaad8 100644
--- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
@@ -20,11 +20,7 @@  GLIBC_2.2 __lseek F
 GLIBC_2.2 __open F
 GLIBC_2.2 __open64 F
 GLIBC_2.2 __pread64 F
-GLIBC_2.2 __pthread_mutex_destroy F
-GLIBC_2.2 __pthread_mutex_init F
-GLIBC_2.2 __pthread_mutex_lock F
 GLIBC_2.2 __pthread_mutex_trylock F
-GLIBC_2.2 __pthread_mutex_unlock F
 GLIBC_2.2 __pthread_mutexattr_destroy F
 GLIBC_2.2 __pthread_mutexattr_init F
 GLIBC_2.2 __pthread_mutexattr_settype F
@@ -83,12 +79,8 @@  GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join F
 GLIBC_2.2 pthread_kill F
 GLIBC_2.2 pthread_kill_other_threads_np F
-GLIBC_2.2 pthread_mutex_destroy F
-GLIBC_2.2 pthread_mutex_init F
-GLIBC_2.2 pthread_mutex_lock F
 GLIBC_2.2 pthread_mutex_timedlock F
 GLIBC_2.2 pthread_mutex_trylock F
-GLIBC_2.2 pthread_mutex_unlock F
 GLIBC_2.2 pthread_mutexattr_destroy F
 GLIBC_2.2 pthread_mutexattr_getkind_np F
 GLIBC_2.2 pthread_mutexattr_getpshared F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 717344a690..29b8e0c1eb 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -187,6 +187,10 @@  GLIBC_2.0 __progname D 0x4
 GLIBC_2.0 __progname_full D 0x4
 GLIBC_2.0 __pthread_getspecific F
 GLIBC_2.0 __pthread_key_create F
+GLIBC_2.0 __pthread_mutex_destroy F
+GLIBC_2.0 __pthread_mutex_init F
+GLIBC_2.0 __pthread_mutex_lock F
+GLIBC_2.0 __pthread_mutex_unlock F
 GLIBC_2.0 __pthread_once F
 GLIBC_2.0 __pthread_setspecific F
 GLIBC_2.0 __rcmd_errstr D 0x4
@@ -2267,6 +2271,10 @@  GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
 GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
+GLIBC_2.34 __pthread_mutex_destroy F
+GLIBC_2.34 __pthread_mutex_init F
+GLIBC_2.34 __pthread_mutex_lock F
+GLIBC_2.34 __pthread_mutex_unlock F
 GLIBC_2.34 __pthread_once F
 GLIBC_2.34 __pthread_rwlock_rdlock F
 GLIBC_2.34 __pthread_rwlock_unlock F
diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
index 35cc2f61c5..4065a88a3b 100644
--- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
@@ -8,11 +8,7 @@  GLIBC_2.0 __fcntl F
 GLIBC_2.0 __h_errno_location F
 GLIBC_2.0 __lseek F
 GLIBC_2.0 __open F
-GLIBC_2.0 __pthread_mutex_destroy F
-GLIBC_2.0 __pthread_mutex_init F
-GLIBC_2.0 __pthread_mutex_lock F
 GLIBC_2.0 __pthread_mutex_trylock F
-GLIBC_2.0 __pthread_mutex_unlock F
 GLIBC_2.0 __pthread_mutexattr_destroy F
 GLIBC_2.0 __pthread_mutexattr_init F
 GLIBC_2.0 __pthread_mutexattr_settype F
@@ -43,11 +39,7 @@  GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join F
 GLIBC_2.0 pthread_kill F
 GLIBC_2.0 pthread_kill_other_threads_np F
-GLIBC_2.0 pthread_mutex_destroy F
-GLIBC_2.0 pthread_mutex_init F
-GLIBC_2.0 pthread_mutex_lock F
 GLIBC_2.0 pthread_mutex_trylock F
-GLIBC_2.0 pthread_mutex_unlock F
 GLIBC_2.0 pthread_mutexattr_destroy F
 GLIBC_2.0 pthread_mutexattr_getkind_np F
 GLIBC_2.0 pthread_mutexattr_init F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 284b7072a3..fb8a36ce20 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -362,6 +362,10 @@  GLIBC_2.2 __progname D 0x8
 GLIBC_2.2 __progname_full D 0x8
 GLIBC_2.2 __pthread_getspecific F
 GLIBC_2.2 __pthread_key_create F
+GLIBC_2.2 __pthread_mutex_destroy F
+GLIBC_2.2 __pthread_mutex_init F
+GLIBC_2.2 __pthread_mutex_lock F
+GLIBC_2.2 __pthread_mutex_unlock F
 GLIBC_2.2 __pthread_once F
 GLIBC_2.2 __pthread_rwlock_rdlock F
 GLIBC_2.2 __pthread_rwlock_unlock F
@@ -2132,6 +2136,10 @@  GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
 GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
+GLIBC_2.34 __pthread_mutex_destroy F
+GLIBC_2.34 __pthread_mutex_init F
+GLIBC_2.34 __pthread_mutex_lock F
+GLIBC_2.34 __pthread_mutex_unlock F
 GLIBC_2.34 __pthread_once F
 GLIBC_2.34 __pthread_rwlock_rdlock F
 GLIBC_2.34 __pthread_rwlock_unlock F
diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
index 2e69109cdc..684bf559e5 100644
--- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
@@ -20,11 +20,7 @@  GLIBC_2.2 __lseek F
 GLIBC_2.2 __open F
 GLIBC_2.2 __open64 F
 GLIBC_2.2 __pread64 F
-GLIBC_2.2 __pthread_mutex_destroy F
-GLIBC_2.2 __pthread_mutex_init F
-GLIBC_2.2 __pthread_mutex_lock F
 GLIBC_2.2 __pthread_mutex_trylock F
-GLIBC_2.2 __pthread_mutex_unlock F
 GLIBC_2.2 __pthread_mutexattr_destroy F
 GLIBC_2.2 __pthread_mutexattr_init F
 GLIBC_2.2 __pthread_mutexattr_settype F
@@ -83,12 +79,8 @@  GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join F
 GLIBC_2.2 pthread_kill F
 GLIBC_2.2 pthread_kill_other_threads_np F
-GLIBC_2.2 pthread_mutex_destroy F
-GLIBC_2.2 pthread_mutex_init F
-GLIBC_2.2 pthread_mutex_lock F
 GLIBC_2.2 pthread_mutex_timedlock F
 GLIBC_2.2 pthread_mutex_trylock F
-GLIBC_2.2 pthread_mutex_unlock F
 GLIBC_2.2 pthread_mutexattr_destroy F
 GLIBC_2.2 pthread_mutexattr_getkind_np F
 GLIBC_2.2 pthread_mutexattr_getpshared F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 404d16b92a..03e80e6a12 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -161,6 +161,10 @@  GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
 GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
+GLIBC_2.34 __pthread_mutex_destroy F
+GLIBC_2.34 __pthread_mutex_init F
+GLIBC_2.34 __pthread_mutex_lock F
+GLIBC_2.34 __pthread_mutex_unlock F
 GLIBC_2.34 __pthread_once F
 GLIBC_2.34 __pthread_rwlock_rdlock F
 GLIBC_2.34 __pthread_rwlock_unlock F
@@ -491,6 +495,10 @@  GLIBC_2.4 __progname_full D 0x4
 GLIBC_2.4 __pthread_cleanup_routine F
 GLIBC_2.4 __pthread_getspecific F
 GLIBC_2.4 __pthread_key_create F
+GLIBC_2.4 __pthread_mutex_destroy F
+GLIBC_2.4 __pthread_mutex_init F
+GLIBC_2.4 __pthread_mutex_lock F
+GLIBC_2.4 __pthread_mutex_unlock F
 GLIBC_2.4 __pthread_once F
 GLIBC_2.4 __pthread_rwlock_rdlock F
 GLIBC_2.4 __pthread_rwlock_unlock F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
index 833b53362d..8dd2c3f7a6 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
@@ -47,11 +47,7 @@  GLIBC_2.4 __lseek F
 GLIBC_2.4 __open F
 GLIBC_2.4 __open64 F
 GLIBC_2.4 __pread64 F
-GLIBC_2.4 __pthread_mutex_destroy F
-GLIBC_2.4 __pthread_mutex_init F
-GLIBC_2.4 __pthread_mutex_lock F
 GLIBC_2.4 __pthread_mutex_trylock F
-GLIBC_2.4 __pthread_mutex_unlock F
 GLIBC_2.4 __pthread_mutexattr_destroy F
 GLIBC_2.4 __pthread_mutexattr_init F
 GLIBC_2.4 __pthread_mutexattr_settype F
@@ -117,14 +113,10 @@  GLIBC_2.4 pthread_getcpuclockid F
 GLIBC_2.4 pthread_join F
 GLIBC_2.4 pthread_kill F
 GLIBC_2.4 pthread_kill_other_threads_np F
-GLIBC_2.4 pthread_mutex_destroy F
 GLIBC_2.4 pthread_mutex_getprioceiling F
-GLIBC_2.4 pthread_mutex_init F
-GLIBC_2.4 pthread_mutex_lock F
 GLIBC_2.4 pthread_mutex_setprioceiling F
 GLIBC_2.4 pthread_mutex_timedlock F
 GLIBC_2.4 pthread_mutex_trylock F
-GLIBC_2.4 pthread_mutex_unlock F
 GLIBC_2.4 pthread_mutexattr_destroy F
 GLIBC_2.4 pthread_mutexattr_getkind_np F
 GLIBC_2.4 pthread_mutexattr_getprioceiling F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index b1ad96e072..2a5bee30d1 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -187,6 +187,10 @@  GLIBC_2.0 __progname D 0x4
 GLIBC_2.0 __progname_full D 0x4
 GLIBC_2.0 __pthread_getspecific F
 GLIBC_2.0 __pthread_key_create F
+GLIBC_2.0 __pthread_mutex_destroy F
+GLIBC_2.0 __pthread_mutex_init F
+GLIBC_2.0 __pthread_mutex_lock F
+GLIBC_2.0 __pthread_mutex_unlock F
 GLIBC_2.0 __pthread_once F
 GLIBC_2.0 __pthread_setspecific F
 GLIBC_2.0 __rcmd_errstr D 0x4
@@ -2212,6 +2216,10 @@  GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
 GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
+GLIBC_2.34 __pthread_mutex_destroy F
+GLIBC_2.34 __pthread_mutex_init F
+GLIBC_2.34 __pthread_mutex_lock F
+GLIBC_2.34 __pthread_mutex_unlock F
 GLIBC_2.34 __pthread_once F
 GLIBC_2.34 __pthread_rwlock_rdlock F
 GLIBC_2.34 __pthread_rwlock_unlock F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
index 35cc2f61c5..4065a88a3b 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
@@ -8,11 +8,7 @@  GLIBC_2.0 __fcntl F
 GLIBC_2.0 __h_errno_location F
 GLIBC_2.0 __lseek F
 GLIBC_2.0 __open F
-GLIBC_2.0 __pthread_mutex_destroy F
-GLIBC_2.0 __pthread_mutex_init F
-GLIBC_2.0 __pthread_mutex_lock F
 GLIBC_2.0 __pthread_mutex_trylock F
-GLIBC_2.0 __pthread_mutex_unlock F
 GLIBC_2.0 __pthread_mutexattr_destroy F
 GLIBC_2.0 __pthread_mutexattr_init F
 GLIBC_2.0 __pthread_mutexattr_settype F
@@ -43,11 +39,7 @@  GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join F
 GLIBC_2.0 pthread_kill F
 GLIBC_2.0 pthread_kill_other_threads_np F
-GLIBC_2.0 pthread_mutex_destroy F
-GLIBC_2.0 pthread_mutex_init F
-GLIBC_2.0 pthread_mutex_lock F
 GLIBC_2.0 pthread_mutex_trylock F
-GLIBC_2.0 pthread_mutex_unlock F
 GLIBC_2.0 pthread_mutexattr_destroy F
 GLIBC_2.0 pthread_mutexattr_getkind_np F
 GLIBC_2.0 pthread_mutexattr_init F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 3e0cceae93..b46567880e 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -342,6 +342,10 @@  GLIBC_2.18 __progname_full D 0x4
 GLIBC_2.18 __pthread_cleanup_routine F
 GLIBC_2.18 __pthread_getspecific F
 GLIBC_2.18 __pthread_key_create F
+GLIBC_2.18 __pthread_mutex_destroy F
+GLIBC_2.18 __pthread_mutex_init F
+GLIBC_2.18 __pthread_mutex_lock F
+GLIBC_2.18 __pthread_mutex_unlock F
 GLIBC_2.18 __pthread_once F
 GLIBC_2.18 __pthread_rwlock_rdlock F
 GLIBC_2.18 __pthread_rwlock_unlock F
@@ -2193,6 +2197,10 @@  GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
 GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
+GLIBC_2.34 __pthread_mutex_destroy F
+GLIBC_2.34 __pthread_mutex_init F
+GLIBC_2.34 __pthread_mutex_lock F
+GLIBC_2.34 __pthread_mutex_unlock F
 GLIBC_2.34 __pthread_once F
 GLIBC_2.34 __pthread_rwlock_rdlock F
 GLIBC_2.34 __pthread_rwlock_unlock F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
index 0db83c2f88..d8a9642f66 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
@@ -13,11 +13,7 @@  GLIBC_2.18 __lseek F
 GLIBC_2.18 __open F
 GLIBC_2.18 __open64 F
 GLIBC_2.18 __pread64 F
-GLIBC_2.18 __pthread_mutex_destroy F
-GLIBC_2.18 __pthread_mutex_init F
-GLIBC_2.18 __pthread_mutex_lock F
 GLIBC_2.18 __pthread_mutex_trylock F
-GLIBC_2.18 __pthread_mutex_unlock F
 GLIBC_2.18 __pthread_mutexattr_destroy F
 GLIBC_2.18 __pthread_mutexattr_init F
 GLIBC_2.18 __pthread_mutexattr_settype F
@@ -85,14 +81,10 @@  GLIBC_2.18 pthread_getname_np F
 GLIBC_2.18 pthread_join F
 GLIBC_2.18 pthread_kill F
 GLIBC_2.18 pthread_kill_other_threads_np F
-GLIBC_2.18 pthread_mutex_destroy F
 GLIBC_2.18 pthread_mutex_getprioceiling F
-GLIBC_2.18 pthread_mutex_init F
-GLIBC_2.18 pthread_mutex_lock F
 GLIBC_2.18 pthread_mutex_setprioceiling F
 GLIBC_2.18 pthread_mutex_timedlock F
 GLIBC_2.18 pthread_mutex_trylock F
-GLIBC_2.18 pthread_mutex_unlock F
 GLIBC_2.18 pthread_mutexattr_destroy F
 GLIBC_2.18 pthread_mutexattr_getkind_np F
 GLIBC_2.18 pthread_mutexattr_getprioceiling F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 4ee88a1d01..7796c5313a 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -342,6 +342,10 @@  GLIBC_2.18 __progname_full D 0x4
 GLIBC_2.18 __pthread_cleanup_routine F
 GLIBC_2.18 __pthread_getspecific F
 GLIBC_2.18 __pthread_key_create F
+GLIBC_2.18 __pthread_mutex_destroy F
+GLIBC_2.18 __pthread_mutex_init F
+GLIBC_2.18 __pthread_mutex_lock F
+GLIBC_2.18 __pthread_mutex_unlock F
 GLIBC_2.18 __pthread_once F
 GLIBC_2.18 __pthread_rwlock_rdlock F
 GLIBC_2.18 __pthread_rwlock_unlock F
@@ -2190,6 +2194,10 @@  GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
 GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
+GLIBC_2.34 __pthread_mutex_destroy F
+GLIBC_2.34 __pthread_mutex_init F
+GLIBC_2.34 __pthread_mutex_lock F
+GLIBC_2.34 __pthread_mutex_unlock F
 GLIBC_2.34 __pthread_once F
 GLIBC_2.34 __pthread_rwlock_rdlock F
 GLIBC_2.34 __pthread_rwlock_unlock F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
index 0db83c2f88..d8a9642f66 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
@@ -13,11 +13,7 @@  GLIBC_2.18 __lseek F
 GLIBC_2.18 __open F
 GLIBC_2.18 __open64 F
 GLIBC_2.18 __pread64 F
-GLIBC_2.18 __pthread_mutex_destroy F
-GLIBC_2.18 __pthread_mutex_init F
-GLIBC_2.18 __pthread_mutex_lock F
 GLIBC_2.18 __pthread_mutex_trylock F
-GLIBC_2.18 __pthread_mutex_unlock F
 GLIBC_2.18 __pthread_mutexattr_destroy F
 GLIBC_2.18 __pthread_mutexattr_init F
 GLIBC_2.18 __pthread_mutexattr_settype F
@@ -85,14 +81,10 @@  GLIBC_2.18 pthread_getname_np F
 GLIBC_2.18 pthread_join F
 GLIBC_2.18 pthread_kill F
 GLIBC_2.18 pthread_kill_other_threads_np F
-GLIBC_2.18 pthread_mutex_destroy F
 GLIBC_2.18 pthread_mutex_getprioceiling F
-GLIBC_2.18 pthread_mutex_init F
-GLIBC_2.18 pthread_mutex_lock F
 GLIBC_2.18 pthread_mutex_setprioceiling F
 GLIBC_2.18 pthread_mutex_timedlock F
 GLIBC_2.18 pthread_mutex_trylock F
-GLIBC_2.18 pthread_mutex_unlock F
 GLIBC_2.18 pthread_mutexattr_destroy F
 GLIBC_2.18 pthread_mutexattr_getkind_np F
 GLIBC_2.18 pthread_mutexattr_getprioceiling F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index e67af35000..c3e658dbc1 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -185,6 +185,10 @@  GLIBC_2.0 __progname D 0x4
 GLIBC_2.0 __progname_full D 0x4
 GLIBC_2.0 __pthread_getspecific F
 GLIBC_2.0 __pthread_key_create F
+GLIBC_2.0 __pthread_mutex_destroy F
+GLIBC_2.0 __pthread_mutex_init F
+GLIBC_2.0 __pthread_mutex_lock F
+GLIBC_2.0 __pthread_mutex_unlock F
 GLIBC_2.0 __pthread_once F
 GLIBC_2.0 __pthread_setspecific F
 GLIBC_2.0 __rcmd_errstr D 0x4
@@ -2183,6 +2187,10 @@  GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
 GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
+GLIBC_2.34 __pthread_mutex_destroy F
+GLIBC_2.34 __pthread_mutex_init F
+GLIBC_2.34 __pthread_mutex_lock F
+GLIBC_2.34 __pthread_mutex_unlock F
 GLIBC_2.34 __pthread_once F
 GLIBC_2.34 __pthread_rwlock_rdlock F
 GLIBC_2.34 __pthread_rwlock_unlock F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
index a1a66138d4..4bd5de2dd7 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
@@ -8,11 +8,7 @@  GLIBC_2.0 __fcntl F
 GLIBC_2.0 __h_errno_location F
 GLIBC_2.0 __lseek F
 GLIBC_2.0 __open F
-GLIBC_2.0 __pthread_mutex_destroy F
-GLIBC_2.0 __pthread_mutex_init F
-GLIBC_2.0 __pthread_mutex_lock F
 GLIBC_2.0 __pthread_mutex_trylock F
-GLIBC_2.0 __pthread_mutex_unlock F
 GLIBC_2.0 __pthread_mutexattr_destroy F
 GLIBC_2.0 __pthread_mutexattr_init F
 GLIBC_2.0 __pthread_mutexattr_settype F
@@ -43,11 +39,7 @@  GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join F
 GLIBC_2.0 pthread_kill F
 GLIBC_2.0 pthread_kill_other_threads_np F
-GLIBC_2.0 pthread_mutex_destroy F
-GLIBC_2.0 pthread_mutex_init F
-GLIBC_2.0 pthread_mutex_lock F
 GLIBC_2.0 pthread_mutex_trylock F
-GLIBC_2.0 pthread_mutex_unlock F
 GLIBC_2.0 pthread_mutexattr_destroy F
 GLIBC_2.0 pthread_mutexattr_getkind_np F
 GLIBC_2.0 pthread_mutexattr_init F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 1ce0179391..bae73ebb39 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -185,6 +185,10 @@  GLIBC_2.0 __progname D 0x4
 GLIBC_2.0 __progname_full D 0x4
 GLIBC_2.0 __pthread_getspecific F
 GLIBC_2.0 __pthread_key_create F
+GLIBC_2.0 __pthread_mutex_destroy F
+GLIBC_2.0 __pthread_mutex_init F
+GLIBC_2.0 __pthread_mutex_lock F
+GLIBC_2.0 __pthread_mutex_unlock F
 GLIBC_2.0 __pthread_once F
 GLIBC_2.0 __pthread_setspecific F
 GLIBC_2.0 __rcmd_errstr D 0x4
@@ -2181,6 +2185,10 @@  GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
 GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
+GLIBC_2.34 __pthread_mutex_destroy F
+GLIBC_2.34 __pthread_mutex_init F
+GLIBC_2.34 __pthread_mutex_lock F
+GLIBC_2.34 __pthread_mutex_unlock F
 GLIBC_2.34 __pthread_once F
 GLIBC_2.34 __pthread_rwlock_rdlock F
 GLIBC_2.34 __pthread_rwlock_unlock F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
index a1a66138d4..4bd5de2dd7 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
@@ -8,11 +8,7 @@  GLIBC_2.0 __fcntl F
 GLIBC_2.0 __h_errno_location F
 GLIBC_2.0 __lseek F
 GLIBC_2.0 __open F
-GLIBC_2.0 __pthread_mutex_destroy F
-GLIBC_2.0 __pthread_mutex_init F
-GLIBC_2.0 __pthread_mutex_lock F
 GLIBC_2.0 __pthread_mutex_trylock F
-GLIBC_2.0 __pthread_mutex_unlock F
 GLIBC_2.0 __pthread_mutexattr_destroy F
 GLIBC_2.0 __pthread_mutexattr_init F
 GLIBC_2.0 __pthread_mutexattr_settype F
@@ -43,11 +39,7 @@  GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join F
 GLIBC_2.0 pthread_kill F
 GLIBC_2.0 pthread_kill_other_threads_np F
-GLIBC_2.0 pthread_mutex_destroy F
-GLIBC_2.0 pthread_mutex_init F
-GLIBC_2.0 pthread_mutex_lock F
 GLIBC_2.0 pthread_mutex_trylock F
-GLIBC_2.0 pthread_mutex_unlock F
 GLIBC_2.0 pthread_mutexattr_destroy F
 GLIBC_2.0 pthread_mutexattr_getkind_np F
 GLIBC_2.0 pthread_mutexattr_init F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 54c2300420..74fb3b997e 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -185,6 +185,10 @@  GLIBC_2.0 __progname D 0x4
 GLIBC_2.0 __progname_full D 0x4
 GLIBC_2.0 __pthread_getspecific F
 GLIBC_2.0 __pthread_key_create F
+GLIBC_2.0 __pthread_mutex_destroy F
+GLIBC_2.0 __pthread_mutex_init F
+GLIBC_2.0 __pthread_mutex_lock F
+GLIBC_2.0 __pthread_mutex_unlock F
 GLIBC_2.0 __pthread_once F
 GLIBC_2.0 __pthread_setspecific F
 GLIBC_2.0 __rcmd_errstr D 0x4
@@ -2189,6 +2193,10 @@  GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
 GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
+GLIBC_2.34 __pthread_mutex_destroy F
+GLIBC_2.34 __pthread_mutex_init F
+GLIBC_2.34 __pthread_mutex_lock F
+GLIBC_2.34 __pthread_mutex_unlock F
 GLIBC_2.34 __pthread_once F
 GLIBC_2.34 __pthread_rwlock_rdlock F
 GLIBC_2.34 __pthread_rwlock_unlock F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 90bbb7f253..3083e3d821 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -185,6 +185,10 @@  GLIBC_2.0 __progname D 0x8
 GLIBC_2.0 __progname_full D 0x8
 GLIBC_2.0 __pthread_getspecific F
 GLIBC_2.0 __pthread_key_create F
+GLIBC_2.0 __pthread_mutex_destroy F
+GLIBC_2.0 __pthread_mutex_init F
+GLIBC_2.0 __pthread_mutex_lock F
+GLIBC_2.0 __pthread_mutex_unlock F
 GLIBC_2.0 __pthread_once F
 GLIBC_2.0 __pthread_setspecific F
 GLIBC_2.0 __rcmd_errstr D 0x8
@@ -2183,6 +2187,10 @@  GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
 GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
+GLIBC_2.34 __pthread_mutex_destroy F
+GLIBC_2.34 __pthread_mutex_init F
+GLIBC_2.34 __pthread_mutex_lock F
+GLIBC_2.34 __pthread_mutex_unlock F
 GLIBC_2.34 __pthread_once F
 GLIBC_2.34 __pthread_rwlock_rdlock F
 GLIBC_2.34 __pthread_rwlock_unlock F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 1f68c2a3fb..f79ca91eb7 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -379,6 +379,10 @@  GLIBC_2.21 __progname_full D 0x4
 GLIBC_2.21 __pthread_cleanup_routine F
 GLIBC_2.21 __pthread_getspecific F
 GLIBC_2.21 __pthread_key_create F
+GLIBC_2.21 __pthread_mutex_destroy F
+GLIBC_2.21 __pthread_mutex_init F
+GLIBC_2.21 __pthread_mutex_lock F
+GLIBC_2.21 __pthread_mutex_unlock F
 GLIBC_2.21 __pthread_once F
 GLIBC_2.21 __pthread_rwlock_rdlock F
 GLIBC_2.21 __pthread_rwlock_unlock F
@@ -2231,6 +2235,10 @@  GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
 GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
+GLIBC_2.34 __pthread_mutex_destroy F
+GLIBC_2.34 __pthread_mutex_init F
+GLIBC_2.34 __pthread_mutex_lock F
+GLIBC_2.34 __pthread_mutex_unlock F
 GLIBC_2.34 __pthread_once F
 GLIBC_2.34 __pthread_rwlock_rdlock F
 GLIBC_2.34 __pthread_rwlock_unlock F
diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
index 806432b7b4..c469853b65 100644
--- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
@@ -13,11 +13,7 @@  GLIBC_2.21 __lseek F
 GLIBC_2.21 __open F
 GLIBC_2.21 __open64 F
 GLIBC_2.21 __pread64 F
-GLIBC_2.21 __pthread_mutex_destroy F
-GLIBC_2.21 __pthread_mutex_init F
-GLIBC_2.21 __pthread_mutex_lock F
 GLIBC_2.21 __pthread_mutex_trylock F
-GLIBC_2.21 __pthread_mutex_unlock F
 GLIBC_2.21 __pthread_mutexattr_destroy F
 GLIBC_2.21 __pthread_mutexattr_init F
 GLIBC_2.21 __pthread_mutexattr_settype F
@@ -85,14 +81,10 @@  GLIBC_2.21 pthread_getname_np F
 GLIBC_2.21 pthread_join F
 GLIBC_2.21 pthread_kill F
 GLIBC_2.21 pthread_kill_other_threads_np F
-GLIBC_2.21 pthread_mutex_destroy F
 GLIBC_2.21 pthread_mutex_getprioceiling F
-GLIBC_2.21 pthread_mutex_init F
-GLIBC_2.21 pthread_mutex_lock F
 GLIBC_2.21 pthread_mutex_setprioceiling F
 GLIBC_2.21 pthread_mutex_timedlock F
 GLIBC_2.21 pthread_mutex_trylock F
-GLIBC_2.21 pthread_mutex_unlock F
 GLIBC_2.21 pthread_mutexattr_destroy F
 GLIBC_2.21 pthread_mutexattr_getkind_np F
 GLIBC_2.21 pthread_mutexattr_getprioceiling F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index a41536e4cd..f5408e6078 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -196,6 +196,10 @@  GLIBC_2.0 __progname D 0x4
 GLIBC_2.0 __progname_full D 0x4
 GLIBC_2.0 __pthread_getspecific F
 GLIBC_2.0 __pthread_key_create F
+GLIBC_2.0 __pthread_mutex_destroy F
+GLIBC_2.0 __pthread_mutex_init F
+GLIBC_2.0 __pthread_mutex_lock F
+GLIBC_2.0 __pthread_mutex_unlock F
 GLIBC_2.0 __pthread_once F
 GLIBC_2.0 __pthread_setspecific F
 GLIBC_2.0 __rcmd_errstr D 0x4
@@ -2239,6 +2243,10 @@  GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
 GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
+GLIBC_2.34 __pthread_mutex_destroy F
+GLIBC_2.34 __pthread_mutex_init F
+GLIBC_2.34 __pthread_mutex_lock F
+GLIBC_2.34 __pthread_mutex_unlock F
 GLIBC_2.34 __pthread_once F
 GLIBC_2.34 __pthread_rwlock_rdlock F
 GLIBC_2.34 __pthread_rwlock_unlock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
index d0646d0eaf..44fb3a6743 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
@@ -8,11 +8,7 @@  GLIBC_2.0 __fcntl F
 GLIBC_2.0 __h_errno_location F
 GLIBC_2.0 __lseek F
 GLIBC_2.0 __open F
-GLIBC_2.0 __pthread_mutex_destroy F
-GLIBC_2.0 __pthread_mutex_init F
-GLIBC_2.0 __pthread_mutex_lock F
 GLIBC_2.0 __pthread_mutex_trylock F
-GLIBC_2.0 __pthread_mutex_unlock F
 GLIBC_2.0 __pthread_mutexattr_destroy F
 GLIBC_2.0 __pthread_mutexattr_init F
 GLIBC_2.0 __pthread_mutexattr_settype F
@@ -43,11 +39,7 @@  GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join F
 GLIBC_2.0 pthread_kill F
 GLIBC_2.0 pthread_kill_other_threads_np F
-GLIBC_2.0 pthread_mutex_destroy F
-GLIBC_2.0 pthread_mutex_init F
-GLIBC_2.0 pthread_mutex_lock F
 GLIBC_2.0 pthread_mutex_trylock F
-GLIBC_2.0 pthread_mutex_unlock F
 GLIBC_2.0 pthread_mutexattr_destroy F
 GLIBC_2.0 pthread_mutexattr_getkind_np F
 GLIBC_2.0 pthread_mutexattr_init F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index cdd6e98496..a7587dcc45 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -196,6 +196,10 @@  GLIBC_2.0 __progname D 0x4
 GLIBC_2.0 __progname_full D 0x4
 GLIBC_2.0 __pthread_getspecific F
 GLIBC_2.0 __pthread_key_create F
+GLIBC_2.0 __pthread_mutex_destroy F
+GLIBC_2.0 __pthread_mutex_init F
+GLIBC_2.0 __pthread_mutex_lock F
+GLIBC_2.0 __pthread_mutex_unlock F
 GLIBC_2.0 __pthread_once F
 GLIBC_2.0 __pthread_setspecific F
 GLIBC_2.0 __rcmd_errstr D 0x4
@@ -2272,6 +2276,10 @@  GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
 GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
+GLIBC_2.34 __pthread_mutex_destroy F
+GLIBC_2.34 __pthread_mutex_init F
+GLIBC_2.34 __pthread_mutex_lock F
+GLIBC_2.34 __pthread_mutex_unlock F
 GLIBC_2.34 __pthread_once F
 GLIBC_2.34 __pthread_rwlock_rdlock F
 GLIBC_2.34 __pthread_rwlock_unlock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 63a7449937..7ea6dc6574 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -411,6 +411,10 @@  GLIBC_2.3 __progname D 0x8
 GLIBC_2.3 __progname_full D 0x8
 GLIBC_2.3 __pthread_getspecific F
 GLIBC_2.3 __pthread_key_create F
+GLIBC_2.3 __pthread_mutex_destroy F
+GLIBC_2.3 __pthread_mutex_init F
+GLIBC_2.3 __pthread_mutex_lock F
+GLIBC_2.3 __pthread_mutex_unlock F
 GLIBC_2.3 __pthread_once F
 GLIBC_2.3 __pthread_rwlock_rdlock F
 GLIBC_2.3 __pthread_rwlock_unlock F
@@ -2102,6 +2106,10 @@  GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
 GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
+GLIBC_2.34 __pthread_mutex_destroy F
+GLIBC_2.34 __pthread_mutex_init F
+GLIBC_2.34 __pthread_mutex_lock F
+GLIBC_2.34 __pthread_mutex_unlock F
 GLIBC_2.34 __pthread_once F
 GLIBC_2.34 __pthread_rwlock_rdlock F
 GLIBC_2.34 __pthread_rwlock_unlock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
index 72d49ce4f3..2e77dc2fb3 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
@@ -41,11 +41,7 @@  GLIBC_2.3 __lseek F
 GLIBC_2.3 __open F
 GLIBC_2.3 __open64 F
 GLIBC_2.3 __pread64 F
-GLIBC_2.3 __pthread_mutex_destroy F
-GLIBC_2.3 __pthread_mutex_init F
-GLIBC_2.3 __pthread_mutex_lock F
 GLIBC_2.3 __pthread_mutex_trylock F
-GLIBC_2.3 __pthread_mutex_unlock F
 GLIBC_2.3 __pthread_mutexattr_destroy F
 GLIBC_2.3 __pthread_mutexattr_init F
 GLIBC_2.3 __pthread_mutexattr_settype F
@@ -103,12 +99,8 @@  GLIBC_2.3 pthread_getcpuclockid F
 GLIBC_2.3 pthread_join F
 GLIBC_2.3 pthread_kill F
 GLIBC_2.3 pthread_kill_other_threads_np F
-GLIBC_2.3 pthread_mutex_destroy F
-GLIBC_2.3 pthread_mutex_init F
-GLIBC_2.3 pthread_mutex_lock F
 GLIBC_2.3 pthread_mutex_timedlock F
 GLIBC_2.3 pthread_mutex_trylock F
-GLIBC_2.3 pthread_mutex_unlock F
 GLIBC_2.3 pthread_mutexattr_destroy F
 GLIBC_2.3 pthread_mutexattr_getkind_np F
 GLIBC_2.3 pthread_mutexattr_getpshared F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index b6de88ea41..f994892fd9 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -427,6 +427,10 @@  GLIBC_2.17 __progname_full D 0x8
 GLIBC_2.17 __pthread_cleanup_routine F
 GLIBC_2.17 __pthread_getspecific F
 GLIBC_2.17 __pthread_key_create F
+GLIBC_2.17 __pthread_mutex_destroy F
+GLIBC_2.17 __pthread_mutex_init F
+GLIBC_2.17 __pthread_mutex_lock F
+GLIBC_2.17 __pthread_mutex_unlock F
 GLIBC_2.17 __pthread_once F
 GLIBC_2.17 __pthread_rwlock_rdlock F
 GLIBC_2.17 __pthread_rwlock_unlock F
@@ -2393,6 +2397,10 @@  GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
 GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
+GLIBC_2.34 __pthread_mutex_destroy F
+GLIBC_2.34 __pthread_mutex_init F
+GLIBC_2.34 __pthread_mutex_lock F
+GLIBC_2.34 __pthread_mutex_unlock F
 GLIBC_2.34 __pthread_once F
 GLIBC_2.34 __pthread_rwlock_rdlock F
 GLIBC_2.34 __pthread_rwlock_unlock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
index 9a24f796de..29a98fc2f4 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
@@ -13,11 +13,7 @@  GLIBC_2.17 __lseek F
 GLIBC_2.17 __open F
 GLIBC_2.17 __open64 F
 GLIBC_2.17 __pread64 F
-GLIBC_2.17 __pthread_mutex_destroy F
-GLIBC_2.17 __pthread_mutex_init F
-GLIBC_2.17 __pthread_mutex_lock F
 GLIBC_2.17 __pthread_mutex_trylock F
-GLIBC_2.17 __pthread_mutex_unlock F
 GLIBC_2.17 __pthread_mutexattr_destroy F
 GLIBC_2.17 __pthread_mutexattr_init F
 GLIBC_2.17 __pthread_mutexattr_settype F
@@ -84,14 +80,10 @@  GLIBC_2.17 pthread_getname_np F
 GLIBC_2.17 pthread_join F
 GLIBC_2.17 pthread_kill F
 GLIBC_2.17 pthread_kill_other_threads_np F
-GLIBC_2.17 pthread_mutex_destroy F
 GLIBC_2.17 pthread_mutex_getprioceiling F
-GLIBC_2.17 pthread_mutex_init F
-GLIBC_2.17 pthread_mutex_lock F
 GLIBC_2.17 pthread_mutex_setprioceiling F
 GLIBC_2.17 pthread_mutex_timedlock F
 GLIBC_2.17 pthread_mutex_trylock F
-GLIBC_2.17 pthread_mutex_unlock F
 GLIBC_2.17 pthread_mutexattr_destroy F
 GLIBC_2.17 pthread_mutexattr_getkind_np F
 GLIBC_2.17 pthread_mutexattr_getprioceiling F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index d81b46d597..70b873f9fb 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -327,6 +327,10 @@  GLIBC_2.33 __progname_full D 0x4
 GLIBC_2.33 __pthread_cleanup_routine F
 GLIBC_2.33 __pthread_getspecific F
 GLIBC_2.33 __pthread_key_create F
+GLIBC_2.33 __pthread_mutex_destroy F
+GLIBC_2.33 __pthread_mutex_init F
+GLIBC_2.33 __pthread_mutex_lock F
+GLIBC_2.33 __pthread_mutex_unlock F
 GLIBC_2.33 __pthread_once F
 GLIBC_2.33 __pthread_rwlock_rdlock F
 GLIBC_2.33 __pthread_rwlock_unlock F
@@ -1960,6 +1964,10 @@  GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
 GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
+GLIBC_2.34 __pthread_mutex_destroy F
+GLIBC_2.34 __pthread_mutex_init F
+GLIBC_2.34 __pthread_mutex_lock F
+GLIBC_2.34 __pthread_mutex_unlock F
 GLIBC_2.34 __pthread_once F
 GLIBC_2.34 __pthread_rwlock_rdlock F
 GLIBC_2.34 __pthread_rwlock_unlock F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
index 10e50b67c0..911969f7eb 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
@@ -12,11 +12,7 @@  GLIBC_2.33 __lseek F
 GLIBC_2.33 __open F
 GLIBC_2.33 __open64 F
 GLIBC_2.33 __pread64 F
-GLIBC_2.33 __pthread_mutex_destroy F
-GLIBC_2.33 __pthread_mutex_init F
-GLIBC_2.33 __pthread_mutex_lock F
 GLIBC_2.33 __pthread_mutex_trylock F
-GLIBC_2.33 __pthread_mutex_unlock F
 GLIBC_2.33 __pthread_mutexattr_destroy F
 GLIBC_2.33 __pthread_mutexattr_init F
 GLIBC_2.33 __pthread_mutexattr_settype F
@@ -99,14 +95,10 @@  GLIBC_2.33 pthread_join F
 GLIBC_2.33 pthread_kill F
 GLIBC_2.33 pthread_kill_other_threads_np F
 GLIBC_2.33 pthread_mutex_clocklock F
-GLIBC_2.33 pthread_mutex_destroy F
 GLIBC_2.33 pthread_mutex_getprioceiling F
-GLIBC_2.33 pthread_mutex_init F
-GLIBC_2.33 pthread_mutex_lock F
 GLIBC_2.33 pthread_mutex_setprioceiling F
 GLIBC_2.33 pthread_mutex_timedlock F
 GLIBC_2.33 pthread_mutex_trylock F
-GLIBC_2.33 pthread_mutex_unlock F
 GLIBC_2.33 pthread_mutexattr_destroy F
 GLIBC_2.33 pthread_mutexattr_getkind_np F
 GLIBC_2.33 pthread_mutexattr_getprioceiling F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index fbd1c5e5cf..ddfac62fd0 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -338,6 +338,10 @@  GLIBC_2.27 __progname_full D 0x8
 GLIBC_2.27 __pthread_cleanup_routine F
 GLIBC_2.27 __pthread_getspecific F
 GLIBC_2.27 __pthread_key_create F
+GLIBC_2.27 __pthread_mutex_destroy F
+GLIBC_2.27 __pthread_mutex_init F
+GLIBC_2.27 __pthread_mutex_lock F
+GLIBC_2.27 __pthread_mutex_unlock F
 GLIBC_2.27 __pthread_once F
 GLIBC_2.27 __pthread_rwlock_rdlock F
 GLIBC_2.27 __pthread_rwlock_unlock F
@@ -2160,6 +2164,10 @@  GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
 GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
+GLIBC_2.34 __pthread_mutex_destroy F
+GLIBC_2.34 __pthread_mutex_init F
+GLIBC_2.34 __pthread_mutex_lock F
+GLIBC_2.34 __pthread_mutex_unlock F
 GLIBC_2.34 __pthread_once F
 GLIBC_2.34 __pthread_rwlock_rdlock F
 GLIBC_2.34 __pthread_rwlock_unlock F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
index ed24898e0d..21f462137a 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
@@ -13,11 +13,7 @@  GLIBC_2.27 __lseek F
 GLIBC_2.27 __open F
 GLIBC_2.27 __open64 F
 GLIBC_2.27 __pread64 F
-GLIBC_2.27 __pthread_mutex_destroy F
-GLIBC_2.27 __pthread_mutex_init F
-GLIBC_2.27 __pthread_mutex_lock F
 GLIBC_2.27 __pthread_mutex_trylock F
-GLIBC_2.27 __pthread_mutex_unlock F
 GLIBC_2.27 __pthread_mutexattr_destroy F
 GLIBC_2.27 __pthread_mutexattr_init F
 GLIBC_2.27 __pthread_mutexattr_settype F
@@ -85,14 +81,10 @@  GLIBC_2.27 pthread_getname_np F
 GLIBC_2.27 pthread_join F
 GLIBC_2.27 pthread_kill F
 GLIBC_2.27 pthread_kill_other_threads_np F
-GLIBC_2.27 pthread_mutex_destroy F
 GLIBC_2.27 pthread_mutex_getprioceiling F
-GLIBC_2.27 pthread_mutex_init F
-GLIBC_2.27 pthread_mutex_lock F
 GLIBC_2.27 pthread_mutex_setprioceiling F
 GLIBC_2.27 pthread_mutex_timedlock F
 GLIBC_2.27 pthread_mutex_trylock F
-GLIBC_2.27 pthread_mutex_unlock F
 GLIBC_2.27 pthread_mutexattr_destroy F
 GLIBC_2.27 pthread_mutexattr_getkind_np F
 GLIBC_2.27 pthread_mutexattr_getprioceiling F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 27a9b011a8..078237adb2 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -187,6 +187,10 @@  GLIBC_2.0 __progname D 0x4
 GLIBC_2.0 __progname_full D 0x4
 GLIBC_2.0 __pthread_getspecific F
 GLIBC_2.0 __pthread_key_create F
+GLIBC_2.0 __pthread_mutex_destroy F
+GLIBC_2.0 __pthread_mutex_init F
+GLIBC_2.0 __pthread_mutex_lock F
+GLIBC_2.0 __pthread_mutex_unlock F
 GLIBC_2.0 __pthread_once F
 GLIBC_2.0 __pthread_setspecific F
 GLIBC_2.0 __rcmd_errstr D 0x4
@@ -2237,6 +2241,10 @@  GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
 GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
+GLIBC_2.34 __pthread_mutex_destroy F
+GLIBC_2.34 __pthread_mutex_init F
+GLIBC_2.34 __pthread_mutex_lock F
+GLIBC_2.34 __pthread_mutex_unlock F
 GLIBC_2.34 __pthread_once F
 GLIBC_2.34 __pthread_rwlock_rdlock F
 GLIBC_2.34 __pthread_rwlock_unlock F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
index d6e91c977a..7b2edb7f57 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
@@ -8,11 +8,7 @@  GLIBC_2.0 __fcntl F
 GLIBC_2.0 __h_errno_location F
 GLIBC_2.0 __lseek F
 GLIBC_2.0 __open F
-GLIBC_2.0 __pthread_mutex_destroy F
-GLIBC_2.0 __pthread_mutex_init F
-GLIBC_2.0 __pthread_mutex_lock F
 GLIBC_2.0 __pthread_mutex_trylock F
-GLIBC_2.0 __pthread_mutex_unlock F
 GLIBC_2.0 __pthread_mutexattr_destroy F
 GLIBC_2.0 __pthread_mutexattr_init F
 GLIBC_2.0 __pthread_mutexattr_settype F
@@ -43,11 +39,7 @@  GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join F
 GLIBC_2.0 pthread_kill F
 GLIBC_2.0 pthread_kill_other_threads_np F
-GLIBC_2.0 pthread_mutex_destroy F
-GLIBC_2.0 pthread_mutex_init F
-GLIBC_2.0 pthread_mutex_lock F
 GLIBC_2.0 pthread_mutex_trylock F
-GLIBC_2.0 pthread_mutex_unlock F
 GLIBC_2.0 pthread_mutexattr_destroy F
 GLIBC_2.0 pthread_mutexattr_getkind_np F
 GLIBC_2.0 pthread_mutexattr_init F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 9e79331100..a2700aba32 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -372,6 +372,10 @@  GLIBC_2.2 __progname D 0x8
 GLIBC_2.2 __progname_full D 0x8
 GLIBC_2.2 __pthread_getspecific F
 GLIBC_2.2 __pthread_key_create F
+GLIBC_2.2 __pthread_mutex_destroy F
+GLIBC_2.2 __pthread_mutex_init F
+GLIBC_2.2 __pthread_mutex_lock F
+GLIBC_2.2 __pthread_mutex_unlock F
 GLIBC_2.2 __pthread_once F
 GLIBC_2.2 __pthread_rwlock_rdlock F
 GLIBC_2.2 __pthread_rwlock_unlock F
@@ -2138,6 +2142,10 @@  GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
 GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
+GLIBC_2.34 __pthread_mutex_destroy F
+GLIBC_2.34 __pthread_mutex_init F
+GLIBC_2.34 __pthread_mutex_lock F
+GLIBC_2.34 __pthread_mutex_unlock F
 GLIBC_2.34 __pthread_once F
 GLIBC_2.34 __pthread_rwlock_rdlock F
 GLIBC_2.34 __pthread_rwlock_unlock F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
index 14489b39d0..8b4729fb7a 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
@@ -21,11 +21,7 @@  GLIBC_2.2 __lseek F
 GLIBC_2.2 __open F
 GLIBC_2.2 __open64 F
 GLIBC_2.2 __pread64 F
-GLIBC_2.2 __pthread_mutex_destroy F
-GLIBC_2.2 __pthread_mutex_init F
-GLIBC_2.2 __pthread_mutex_lock F
 GLIBC_2.2 __pthread_mutex_trylock F
-GLIBC_2.2 __pthread_mutex_unlock F
 GLIBC_2.2 __pthread_mutexattr_destroy F
 GLIBC_2.2 __pthread_mutexattr_init F
 GLIBC_2.2 __pthread_mutexattr_settype F
@@ -84,12 +80,8 @@  GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join F
 GLIBC_2.2 pthread_kill F
 GLIBC_2.2 pthread_kill_other_threads_np F
-GLIBC_2.2 pthread_mutex_destroy F
-GLIBC_2.2 pthread_mutex_init F
-GLIBC_2.2 pthread_mutex_lock F
 GLIBC_2.2 pthread_mutex_timedlock F
 GLIBC_2.2 pthread_mutex_trylock F
-GLIBC_2.2 pthread_mutex_unlock F
 GLIBC_2.2 pthread_mutexattr_destroy F
 GLIBC_2.2 pthread_mutexattr_getkind_np F
 GLIBC_2.2 pthread_mutexattr_getpshared F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index b7dd795864..4fce4b408e 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -361,6 +361,10 @@  GLIBC_2.2 __progname D 0x4
 GLIBC_2.2 __progname_full D 0x4
 GLIBC_2.2 __pthread_getspecific F
 GLIBC_2.2 __pthread_key_create F
+GLIBC_2.2 __pthread_mutex_destroy F
+GLIBC_2.2 __pthread_mutex_init F
+GLIBC_2.2 __pthread_mutex_lock F
+GLIBC_2.2 __pthread_mutex_unlock F
 GLIBC_2.2 __pthread_once F
 GLIBC_2.2 __pthread_rwlock_rdlock F
 GLIBC_2.2 __pthread_rwlock_unlock F
@@ -2107,6 +2111,10 @@  GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
 GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
+GLIBC_2.34 __pthread_mutex_destroy F
+GLIBC_2.34 __pthread_mutex_init F
+GLIBC_2.34 __pthread_mutex_lock F
+GLIBC_2.34 __pthread_mutex_unlock F
 GLIBC_2.34 __pthread_once F
 GLIBC_2.34 __pthread_rwlock_rdlock F
 GLIBC_2.34 __pthread_rwlock_unlock F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
index 70af59d791..9e15deaad8 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
@@ -20,11 +20,7 @@  GLIBC_2.2 __lseek F
 GLIBC_2.2 __open F
 GLIBC_2.2 __open64 F
 GLIBC_2.2 __pread64 F
-GLIBC_2.2 __pthread_mutex_destroy F
-GLIBC_2.2 __pthread_mutex_init F
-GLIBC_2.2 __pthread_mutex_lock F
 GLIBC_2.2 __pthread_mutex_trylock F
-GLIBC_2.2 __pthread_mutex_unlock F
 GLIBC_2.2 __pthread_mutexattr_destroy F
 GLIBC_2.2 __pthread_mutexattr_init F
 GLIBC_2.2 __pthread_mutexattr_settype F
@@ -83,12 +79,8 @@  GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join F
 GLIBC_2.2 pthread_kill F
 GLIBC_2.2 pthread_kill_other_threads_np F
-GLIBC_2.2 pthread_mutex_destroy F
-GLIBC_2.2 pthread_mutex_init F
-GLIBC_2.2 pthread_mutex_lock F
 GLIBC_2.2 pthread_mutex_timedlock F
 GLIBC_2.2 pthread_mutex_trylock F
-GLIBC_2.2 pthread_mutex_unlock F
 GLIBC_2.2 pthread_mutexattr_destroy F
 GLIBC_2.2 pthread_mutexattr_getkind_np F
 GLIBC_2.2 pthread_mutexattr_getpshared F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index eea30cd098..5dba0f5d0c 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -361,6 +361,10 @@  GLIBC_2.2 __progname D 0x4
 GLIBC_2.2 __progname_full D 0x4
 GLIBC_2.2 __pthread_getspecific F
 GLIBC_2.2 __pthread_key_create F
+GLIBC_2.2 __pthread_mutex_destroy F
+GLIBC_2.2 __pthread_mutex_init F
+GLIBC_2.2 __pthread_mutex_lock F
+GLIBC_2.2 __pthread_mutex_unlock F
 GLIBC_2.2 __pthread_once F
 GLIBC_2.2 __pthread_rwlock_rdlock F
 GLIBC_2.2 __pthread_rwlock_unlock F
@@ -2104,6 +2108,10 @@  GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
 GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
+GLIBC_2.34 __pthread_mutex_destroy F
+GLIBC_2.34 __pthread_mutex_init F
+GLIBC_2.34 __pthread_mutex_lock F
+GLIBC_2.34 __pthread_mutex_unlock F
 GLIBC_2.34 __pthread_once F
 GLIBC_2.34 __pthread_rwlock_rdlock F
 GLIBC_2.34 __pthread_rwlock_unlock F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
index 70af59d791..9e15deaad8 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
@@ -20,11 +20,7 @@  GLIBC_2.2 __lseek F
 GLIBC_2.2 __open F
 GLIBC_2.2 __open64 F
 GLIBC_2.2 __pread64 F
-GLIBC_2.2 __pthread_mutex_destroy F
-GLIBC_2.2 __pthread_mutex_init F
-GLIBC_2.2 __pthread_mutex_lock F
 GLIBC_2.2 __pthread_mutex_trylock F
-GLIBC_2.2 __pthread_mutex_unlock F
 GLIBC_2.2 __pthread_mutexattr_destroy F
 GLIBC_2.2 __pthread_mutexattr_init F
 GLIBC_2.2 __pthread_mutexattr_settype F
@@ -83,12 +79,8 @@  GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join F
 GLIBC_2.2 pthread_kill F
 GLIBC_2.2 pthread_kill_other_threads_np F
-GLIBC_2.2 pthread_mutex_destroy F
-GLIBC_2.2 pthread_mutex_init F
-GLIBC_2.2 pthread_mutex_lock F
 GLIBC_2.2 pthread_mutex_timedlock F
 GLIBC_2.2 pthread_mutex_trylock F
-GLIBC_2.2 pthread_mutex_unlock F
 GLIBC_2.2 pthread_mutexattr_destroy F
 GLIBC_2.2 pthread_mutexattr_getkind_np F
 GLIBC_2.2 pthread_mutexattr_getpshared F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 4944c4159b..e064e5a4dc 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -191,6 +191,10 @@  GLIBC_2.0 __progname D 0x4
 GLIBC_2.0 __progname_full D 0x4
 GLIBC_2.0 __pthread_getspecific F
 GLIBC_2.0 __pthread_key_create F
+GLIBC_2.0 __pthread_mutex_destroy F
+GLIBC_2.0 __pthread_mutex_init F
+GLIBC_2.0 __pthread_mutex_lock F
+GLIBC_2.0 __pthread_mutex_unlock F
 GLIBC_2.0 __pthread_once F
 GLIBC_2.0 __pthread_setspecific F
 GLIBC_2.0 __rcmd_errstr D 0x4
@@ -2228,6 +2232,10 @@  GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
 GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
+GLIBC_2.34 __pthread_mutex_destroy F
+GLIBC_2.34 __pthread_mutex_init F
+GLIBC_2.34 __pthread_mutex_lock F
+GLIBC_2.34 __pthread_mutex_unlock F
 GLIBC_2.34 __pthread_once F
 GLIBC_2.34 __pthread_rwlock_rdlock F
 GLIBC_2.34 __pthread_rwlock_unlock F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
index a7b3fd73ab..29cb6259a5 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
@@ -8,11 +8,7 @@  GLIBC_2.0 __fcntl F
 GLIBC_2.0 __h_errno_location F
 GLIBC_2.0 __lseek F
 GLIBC_2.0 __open F
-GLIBC_2.0 __pthread_mutex_destroy F
-GLIBC_2.0 __pthread_mutex_init F
-GLIBC_2.0 __pthread_mutex_lock F
 GLIBC_2.0 __pthread_mutex_trylock F
-GLIBC_2.0 __pthread_mutex_unlock F
 GLIBC_2.0 __pthread_mutexattr_destroy F
 GLIBC_2.0 __pthread_mutexattr_init F
 GLIBC_2.0 __pthread_mutexattr_settype F
@@ -43,11 +39,7 @@  GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join F
 GLIBC_2.0 pthread_kill F
 GLIBC_2.0 pthread_kill_other_threads_np F
-GLIBC_2.0 pthread_mutex_destroy F
-GLIBC_2.0 pthread_mutex_init F
-GLIBC_2.0 pthread_mutex_lock F
 GLIBC_2.0 pthread_mutex_trylock F
-GLIBC_2.0 pthread_mutex_unlock F
 GLIBC_2.0 pthread_mutexattr_destroy F
 GLIBC_2.0 pthread_mutexattr_getkind_np F
 GLIBC_2.0 pthread_mutexattr_init F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index e69420994f..36fed3cf99 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -399,6 +399,10 @@  GLIBC_2.2 __progname D 0x8
 GLIBC_2.2 __progname_full D 0x8
 GLIBC_2.2 __pthread_getspecific F
 GLIBC_2.2 __pthread_key_create F
+GLIBC_2.2 __pthread_mutex_destroy F
+GLIBC_2.2 __pthread_mutex_init F
+GLIBC_2.2 __pthread_mutex_lock F
+GLIBC_2.2 __pthread_mutex_unlock F
 GLIBC_2.2 __pthread_once F
 GLIBC_2.2 __pthread_rwlock_rdlock F
 GLIBC_2.2 __pthread_rwlock_unlock F
@@ -2155,6 +2159,10 @@  GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
 GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
+GLIBC_2.34 __pthread_mutex_destroy F
+GLIBC_2.34 __pthread_mutex_init F
+GLIBC_2.34 __pthread_mutex_lock F
+GLIBC_2.34 __pthread_mutex_unlock F
 GLIBC_2.34 __pthread_once F
 GLIBC_2.34 __pthread_rwlock_rdlock F
 GLIBC_2.34 __pthread_rwlock_unlock F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
index 2e69109cdc..684bf559e5 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
@@ -20,11 +20,7 @@  GLIBC_2.2 __lseek F
 GLIBC_2.2 __open F
 GLIBC_2.2 __open64 F
 GLIBC_2.2 __pread64 F
-GLIBC_2.2 __pthread_mutex_destroy F
-GLIBC_2.2 __pthread_mutex_init F
-GLIBC_2.2 __pthread_mutex_lock F
 GLIBC_2.2 __pthread_mutex_trylock F
-GLIBC_2.2 __pthread_mutex_unlock F
 GLIBC_2.2 __pthread_mutexattr_destroy F
 GLIBC_2.2 __pthread_mutexattr_init F
 GLIBC_2.2 __pthread_mutexattr_settype F
@@ -83,12 +79,8 @@  GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join F
 GLIBC_2.2 pthread_kill F
 GLIBC_2.2 pthread_kill_other_threads_np F
-GLIBC_2.2 pthread_mutex_destroy F
-GLIBC_2.2 pthread_mutex_init F
-GLIBC_2.2 pthread_mutex_lock F
 GLIBC_2.2 pthread_mutex_timedlock F
 GLIBC_2.2 pthread_mutex_trylock F
-GLIBC_2.2 pthread_mutex_unlock F
 GLIBC_2.2 pthread_mutexattr_destroy F
 GLIBC_2.2 pthread_mutexattr_getkind_np F
 GLIBC_2.2 pthread_mutexattr_getpshared F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index dfe78d93cb..6858c1328f 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -360,6 +360,10 @@  GLIBC_2.2.5 __progname D 0x8
 GLIBC_2.2.5 __progname_full D 0x8
 GLIBC_2.2.5 __pthread_getspecific F
 GLIBC_2.2.5 __pthread_key_create F
+GLIBC_2.2.5 __pthread_mutex_destroy F
+GLIBC_2.2.5 __pthread_mutex_init F
+GLIBC_2.2.5 __pthread_mutex_lock F
+GLIBC_2.2.5 __pthread_mutex_unlock F
 GLIBC_2.2.5 __pthread_once F
 GLIBC_2.2.5 __pthread_rwlock_rdlock F
 GLIBC_2.2.5 __pthread_rwlock_unlock F
@@ -2114,6 +2118,10 @@  GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
 GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
+GLIBC_2.34 __pthread_mutex_destroy F
+GLIBC_2.34 __pthread_mutex_init F
+GLIBC_2.34 __pthread_mutex_lock F
+GLIBC_2.34 __pthread_mutex_unlock F
 GLIBC_2.34 __pthread_once F
 GLIBC_2.34 __pthread_rwlock_rdlock F
 GLIBC_2.34 __pthread_rwlock_unlock F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
index 4f8dfa000a..54ad81fdd6 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
@@ -20,11 +20,7 @@  GLIBC_2.2.5 __lseek F
 GLIBC_2.2.5 __open F
 GLIBC_2.2.5 __open64 F
 GLIBC_2.2.5 __pread64 F
-GLIBC_2.2.5 __pthread_mutex_destroy F
-GLIBC_2.2.5 __pthread_mutex_init F
-GLIBC_2.2.5 __pthread_mutex_lock F
 GLIBC_2.2.5 __pthread_mutex_trylock F
-GLIBC_2.2.5 __pthread_mutex_unlock F
 GLIBC_2.2.5 __pthread_mutexattr_destroy F
 GLIBC_2.2.5 __pthread_mutexattr_init F
 GLIBC_2.2.5 __pthread_mutexattr_settype F
@@ -83,12 +79,8 @@  GLIBC_2.2.5 pthread_getcpuclockid F
 GLIBC_2.2.5 pthread_join F
 GLIBC_2.2.5 pthread_kill F
 GLIBC_2.2.5 pthread_kill_other_threads_np F
-GLIBC_2.2.5 pthread_mutex_destroy F
-GLIBC_2.2.5 pthread_mutex_init F
-GLIBC_2.2.5 pthread_mutex_lock F
 GLIBC_2.2.5 pthread_mutex_timedlock F
 GLIBC_2.2.5 pthread_mutex_trylock F
-GLIBC_2.2.5 pthread_mutex_unlock F
 GLIBC_2.2.5 pthread_mutexattr_destroy F
 GLIBC_2.2.5 pthread_mutexattr_getkind_np F
 GLIBC_2.2.5 pthread_mutexattr_getpshared F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 3accd92583..72da8cceaa 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -342,6 +342,10 @@  GLIBC_2.16 __progname_full D 0x4
 GLIBC_2.16 __pthread_cleanup_routine F
 GLIBC_2.16 __pthread_getspecific F
 GLIBC_2.16 __pthread_key_create F
+GLIBC_2.16 __pthread_mutex_destroy F
+GLIBC_2.16 __pthread_mutex_init F
+GLIBC_2.16 __pthread_mutex_lock F
+GLIBC_2.16 __pthread_mutex_unlock F
 GLIBC_2.16 __pthread_once F
 GLIBC_2.16 __pthread_rwlock_rdlock F
 GLIBC_2.16 __pthread_rwlock_unlock F
@@ -2212,6 +2216,10 @@  GLIBC_2.34 __libc_start_main F
 GLIBC_2.34 __pthread_cleanup_routine F
 GLIBC_2.34 __pthread_getspecific F
 GLIBC_2.34 __pthread_key_create F
+GLIBC_2.34 __pthread_mutex_destroy F
+GLIBC_2.34 __pthread_mutex_init F
+GLIBC_2.34 __pthread_mutex_lock F
+GLIBC_2.34 __pthread_mutex_unlock F
 GLIBC_2.34 __pthread_once F
 GLIBC_2.34 __pthread_rwlock_rdlock F
 GLIBC_2.34 __pthread_rwlock_unlock F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
index 0b017c0218..6b095bf36a 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
@@ -13,11 +13,7 @@  GLIBC_2.16 __lseek F
 GLIBC_2.16 __open F
 GLIBC_2.16 __open64 F
 GLIBC_2.16 __pread64 F
-GLIBC_2.16 __pthread_mutex_destroy F
-GLIBC_2.16 __pthread_mutex_init F
-GLIBC_2.16 __pthread_mutex_lock F
 GLIBC_2.16 __pthread_mutex_trylock F
-GLIBC_2.16 __pthread_mutex_unlock F
 GLIBC_2.16 __pthread_mutexattr_destroy F
 GLIBC_2.16 __pthread_mutexattr_init F
 GLIBC_2.16 __pthread_mutexattr_settype F
@@ -84,14 +80,10 @@  GLIBC_2.16 pthread_getname_np F
 GLIBC_2.16 pthread_join F
 GLIBC_2.16 pthread_kill F
 GLIBC_2.16 pthread_kill_other_threads_np F
-GLIBC_2.16 pthread_mutex_destroy F
 GLIBC_2.16 pthread_mutex_getprioceiling F
-GLIBC_2.16 pthread_mutex_init F
-GLIBC_2.16 pthread_mutex_lock F
 GLIBC_2.16 pthread_mutex_setprioceiling F
 GLIBC_2.16 pthread_mutex_timedlock F
 GLIBC_2.16 pthread_mutex_trylock F
-GLIBC_2.16 pthread_mutex_unlock F
 GLIBC_2.16 pthread_mutexattr_destroy F
 GLIBC_2.16 pthread_mutexattr_getkind_np F
 GLIBC_2.16 pthread_mutexattr_getprioceiling F