diff mbox series

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

Message ID 656c729ff7cf3c8dea714475301eb7c4d3bbbe7a.1618564630.git.fweimer@redhat.com
State New
Headers show
Series libpthread: Remove NPTL forwarders | expand

Commit Message

Florian Weimer April 16, 2021, 9:24 a.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 been moved using scripts/move-symbol-to-libc.py.

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                  | 16 +++++++---
 nptl/pthread_mutex_init.c                     | 14 ++++++--
 nptl/pthread_mutex_lock.c                     | 22 ++++++++++---
 nptl/pthread_mutex_unlock.c                   | 17 +++++++---
 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, 340 insertions(+), 308 deletions(-)
diff mbox series

Patch

diff --git a/nptl/Makefile b/nptl/Makefile
index 36ec9f67a0..67a946cf85 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -85,6 +85,10 @@  routines = \
   pthread_kill \
   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 \
@@ -154,14 +158,10 @@  libpthread-routines = \
   pthread_join_common \
   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 2748421a77..7672831e3a 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;
@@ -104,6 +108,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_setspecific;
     pthread_getspecific;
@@ -151,6 +159,7 @@  libc {
     __pthread_getattr_default_np;
     __pthread_key_delete;
     __pthread_keys;
+    __pthread_mutex_unlock_usercnt;
     __pthread_setcancelstate;
     __pthread_tpp_change_priority;
     __pthread_unwind;
@@ -168,11 +177,7 @@  libpthread {
     __errno_location;
     __h_errno_location;
     __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;
@@ -190,11 +195,7 @@  libpthread {
     pthread_detach;
     pthread_join;
     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 646c5a9623..271a29cc64 100644
--- a/nptl/nptl-init.c
+++ b/nptl/nptl-init.c
@@ -62,10 +62,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 5cd5d69c53..332744ec6a 100644
--- a/nptl/pthreadP.h
+++ b/nptl/pthreadP.h
@@ -395,9 +395,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)
@@ -405,8 +408,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);
@@ -560,11 +565,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..89825d44f0 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 (pthread_mutex_t *mutex)
 {
   LIBC_PROBE (mutex_destroy, 1, mutex);
 
@@ -41,5 +41,13 @@  __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, __pthread_mutex_destroy,
+                  GLIBC_2_34);
+libc_hidden_ver (___pthread_mutex_destroy, __pthread_mutex_destroy)
+versioned_symbol (libc, ___pthread_mutex_destroy, pthread_mutex_destroy,
+                  GLIBC_2_0);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_34)
+compat_symbol (libpthread, ___pthread_mutex_destroy, __pthread_mutex_destroy,
+               GLIBC_2_0);
+#endif
diff --git a/nptl/pthread_mutex_init.c b/nptl/pthread_mutex_init.c
index f5c3a4b464..328f7b08a7 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 (pthread_mutex_t *mutex,
 		      const pthread_mutexattr_t *mutexattr)
 {
   const struct pthread_mutexattr *imutexattr;
@@ -150,5 +151,12 @@  __pthread_mutex_init (pthread_mutex_t *mutex,
 
   return 0;
 }
-weak_alias (__pthread_mutex_init, pthread_mutex_init)
-hidden_def (__pthread_mutex_init)
+versioned_symbol (libpthread, ___pthread_mutex_init, __pthread_mutex_init,
+		  GLIBC_2_34);
+libc_hidden_ver (___pthread_mutex_init, __pthread_mutex_init)
+versioned_symbol (libpthread, ___pthread_mutex_init, pthread_mutex_init,
+		  GLIBC_2_0);
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_34)
+compat_symbol (libpthread, ___pthread_mutex_init, __pthread_mutex_init,
+	       GLIBC_2_0);
+#endif
diff --git a/nptl/pthread_mutex_lock.c b/nptl/pthread_mutex_lock.c
index 8649a92ffb..c9e438ef37 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
+# 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 (libpthread, ___pthread_mutex_lock, __pthread_mutex_lock,
+		  GLIBC_2_34);
+libc_hidden_ver (___pthread_mutex_lock, __pthread_mutex_lock)
+versioned_symbol (libpthread, ___pthread_mutex_lock, pthread_mutex_lock,
+		  GLIBC_2_0);
+
+# if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_34)
+compat_symbol (libpthread, ___pthread_mutex_lock, __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..ea88ba2986 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,17 @@  __pthread_mutex_unlock_full (pthread_mutex_t *mutex, int decr)
 
 
 int
-__pthread_mutex_unlock (pthread_mutex_t *mutex)
+___pthread_mutex_unlock (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 (libpthread, ___pthread_mutex_unlock, __pthread_mutex_unlock,
+		  GLIBC_2_34);
+libc_hidden_ver (___pthread_mutex_unlock, __pthread_mutex_unlock)
+versioned_symbol (libpthread, ___pthread_mutex_unlock, pthread_mutex_unlock,
+		  GLIBC_2_0);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_34)
+compat_symbol (libpthread, ___pthread_mutex_unlock, __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 26dd0b3959..6d2f4f0209 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
@@ -2200,6 +2204,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_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
index 3f0247fcec..c1f55a814c 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
@@ -3,11 +3,7 @@  GLIBC_2.17 _IO_ftrylockfile F
 GLIBC_2.17 _IO_funlockfile F
 GLIBC_2.17 __errno_location F
 GLIBC_2.17 __h_errno_location 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
@@ -55,14 +51,10 @@  GLIBC_2.17 pthread_getcpuclockid F
 GLIBC_2.17 pthread_getname_np F
 GLIBC_2.17 pthread_join 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 2f094dfa8f..9c9d63bed8 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
@@ -2288,6 +2292,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_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
index 5a9cc846ae..7c9b4caa57 100644
--- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
@@ -3,11 +3,7 @@  GLIBC_2.0 _IO_ftrylockfile F
 GLIBC_2.0 _IO_funlockfile F
 GLIBC_2.0 __errno_location F
 GLIBC_2.0 __h_errno_location 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
@@ -24,11 +20,7 @@  GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join 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 cd41615242..54649b7fa0 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
@@ -1959,6 +1963,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_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
index b80e78ab9d..be9849a3ef 100644
--- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
@@ -3,11 +3,7 @@  GLIBC_2.32 _IO_ftrylockfile F
 GLIBC_2.32 _IO_funlockfile F
 GLIBC_2.32 __errno_location F
 GLIBC_2.32 __h_errno_location 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
@@ -72,14 +68,10 @@  GLIBC_2.32 pthread_getname_np F
 GLIBC_2.32 pthread_join 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 770e1d99ea..de59364f43 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_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
@@ -503,6 +507,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 c2705e7057..b0eb9eaf94 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
@@ -37,11 +37,7 @@  GLIBC_2.4 _IO_ftrylockfile F
 GLIBC_2.4 _IO_funlockfile F
 GLIBC_2.4 __errno_location F
 GLIBC_2.4 __h_errno_location 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
@@ -88,14 +84,10 @@  GLIBC_2.4 pthread_getconcurrency F
 GLIBC_2.4 pthread_getcpuclockid F
 GLIBC_2.4 pthread_join 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 4f6a853967..0ed5298918 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_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
@@ -500,6 +504,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 c2705e7057..b0eb9eaf94 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
@@ -37,11 +37,7 @@  GLIBC_2.4 _IO_ftrylockfile F
 GLIBC_2.4 _IO_funlockfile F
 GLIBC_2.4 __errno_location F
 GLIBC_2.4 __h_errno_location 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
@@ -88,14 +84,10 @@  GLIBC_2.4 pthread_getconcurrency F
 GLIBC_2.4 pthread_getcpuclockid F
 GLIBC_2.4 pthread_join 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 67ab2433eb..8035d6fd6f 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
@@ -2143,6 +2147,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_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
index dc56638a70..7bde82525a 100644
--- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
@@ -3,11 +3,7 @@  GLIBC_2.29 _IO_ftrylockfile F
 GLIBC_2.29 _IO_funlockfile F
 GLIBC_2.29 __errno_location F
 GLIBC_2.29 __h_errno_location 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
@@ -69,14 +65,10 @@  GLIBC_2.29 pthread_getcpuclockid F
 GLIBC_2.29 pthread_getname_np F
 GLIBC_2.29 pthread_join 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 8a7f2a8963..cf00f6d527 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
@@ -2101,6 +2105,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_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
index a87c1e2c98..e7a48ce0b8 100644
--- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
@@ -10,11 +10,7 @@  GLIBC_2.2 _IO_ftrylockfile F
 GLIBC_2.2 _IO_funlockfile F
 GLIBC_2.2 __errno_location F
 GLIBC_2.2 __h_errno_location 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
@@ -54,12 +50,8 @@  GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join 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 a531801535..5da36df844 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
@@ -2278,6 +2282,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_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
index c09c86ec05..1cf5dca771 100644
--- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
@@ -3,11 +3,7 @@  GLIBC_2.0 _IO_ftrylockfile F
 GLIBC_2.0 _IO_funlockfile F
 GLIBC_2.0 __errno_location F
 GLIBC_2.0 __h_errno_location 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
@@ -24,11 +20,7 @@  GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join 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 bd8da6cbe4..d8c16ceaa2 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
@@ -2135,6 +2139,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_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
index 6cf7099df0..802f3d2bfe 100644
--- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
@@ -10,11 +10,7 @@  GLIBC_2.2 _IO_ftrylockfile F
 GLIBC_2.2 _IO_funlockfile F
 GLIBC_2.2 __errno_location F
 GLIBC_2.2 __h_errno_location 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
@@ -54,12 +50,8 @@  GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join 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 b63949baeb..afa40c363c 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_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
@@ -489,6 +493,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 c2705e7057..b0eb9eaf94 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
@@ -37,11 +37,7 @@  GLIBC_2.4 _IO_ftrylockfile F
 GLIBC_2.4 _IO_funlockfile F
 GLIBC_2.4 __errno_location F
 GLIBC_2.4 __h_errno_location 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
@@ -88,14 +84,10 @@  GLIBC_2.4 pthread_getconcurrency F
 GLIBC_2.4 pthread_getcpuclockid F
 GLIBC_2.4 pthread_join 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 a900e06474..e2256cea09 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
@@ -2221,6 +2225,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_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
index c09c86ec05..1cf5dca771 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
@@ -3,11 +3,7 @@  GLIBC_2.0 _IO_ftrylockfile F
 GLIBC_2.0 _IO_funlockfile F
 GLIBC_2.0 __errno_location F
 GLIBC_2.0 __h_errno_location 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
@@ -24,11 +20,7 @@  GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join 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 4b92c809a6..98325e0028 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
@@ -2194,6 +2198,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_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
index 6b62c976d4..3d4db20181 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
@@ -3,11 +3,7 @@  GLIBC_2.18 _IO_ftrylockfile F
 GLIBC_2.18 _IO_funlockfile F
 GLIBC_2.18 __errno_location F
 GLIBC_2.18 __h_errno_location 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
@@ -56,14 +52,10 @@  GLIBC_2.18 pthread_getcpuclockid F
 GLIBC_2.18 pthread_getname_np F
 GLIBC_2.18 pthread_join 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 cba37be963..7b6859dee7 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
@@ -2191,6 +2195,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_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
index 6b62c976d4..3d4db20181 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
@@ -3,11 +3,7 @@  GLIBC_2.18 _IO_ftrylockfile F
 GLIBC_2.18 _IO_funlockfile F
 GLIBC_2.18 __errno_location F
 GLIBC_2.18 __h_errno_location 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
@@ -56,14 +52,10 @@  GLIBC_2.18 pthread_getcpuclockid F
 GLIBC_2.18 pthread_getname_np F
 GLIBC_2.18 pthread_join 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 2fb12516f0..b205d5aef9 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
@@ -2184,6 +2188,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_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
index ecb2aabcd3..a78c08e3a6 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
@@ -3,11 +3,7 @@  GLIBC_2.0 _IO_ftrylockfile F
 GLIBC_2.0 _IO_funlockfile F
 GLIBC_2.0 __errno_location F
 GLIBC_2.0 __h_errno_location 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
@@ -24,11 +20,7 @@  GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join 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 e9c8f34ef2..4e4cdfba7c 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
@@ -2182,6 +2186,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_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
index ecb2aabcd3..a78c08e3a6 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
@@ -3,11 +3,7 @@  GLIBC_2.0 _IO_ftrylockfile F
 GLIBC_2.0 _IO_funlockfile F
 GLIBC_2.0 __errno_location F
 GLIBC_2.0 __h_errno_location 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
@@ -24,11 +20,7 @@  GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join 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 a2d981c726..b4a38453ab 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
@@ -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_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index ffc935b34b..df56562594 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
@@ -2184,6 +2188,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_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 0dcf9f55e2..6cae3632ad 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
@@ -2233,6 +2237,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_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
index 0281da14c6..504d70fdc8 100644
--- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
@@ -3,11 +3,7 @@  GLIBC_2.21 _IO_ftrylockfile F
 GLIBC_2.21 _IO_funlockfile F
 GLIBC_2.21 __errno_location F
 GLIBC_2.21 __h_errno_location 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
@@ -56,14 +52,10 @@  GLIBC_2.21 pthread_getcpuclockid F
 GLIBC_2.21 pthread_getname_np F
 GLIBC_2.21 pthread_join 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 1202487c8e..6458f4dca7 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
@@ -2248,6 +2252,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_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
index 2486a0d5f2..4ebcfbb8ae 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
@@ -3,11 +3,7 @@  GLIBC_2.0 _IO_ftrylockfile F
 GLIBC_2.0 _IO_funlockfile F
 GLIBC_2.0 __errno_location F
 GLIBC_2.0 __h_errno_location 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
@@ -24,11 +20,7 @@  GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join 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 3870013f98..69c1f7141e 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
@@ -2281,6 +2285,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_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 9fa941ab97..f8e2de67d1 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
@@ -2103,6 +2107,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_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
index 53f92e2c2e..8ea5895de0 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
@@ -31,11 +31,7 @@  GLIBC_2.3 _IO_ftrylockfile F
 GLIBC_2.3 _IO_funlockfile F
 GLIBC_2.3 __errno_location F
 GLIBC_2.3 __h_errno_location 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
@@ -74,12 +70,8 @@  GLIBC_2.3 pthread_getconcurrency F
 GLIBC_2.3 pthread_getcpuclockid F
 GLIBC_2.3 pthread_join 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 802b409879..e16fb6935b 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
@@ -2396,6 +2400,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_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
index 3f0247fcec..c1f55a814c 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
@@ -3,11 +3,7 @@  GLIBC_2.17 _IO_ftrylockfile F
 GLIBC_2.17 _IO_funlockfile F
 GLIBC_2.17 __errno_location F
 GLIBC_2.17 __h_errno_location 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
@@ -55,14 +51,10 @@  GLIBC_2.17 pthread_getcpuclockid F
 GLIBC_2.17 pthread_getname_np F
 GLIBC_2.17 pthread_join 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 f2fc047a1c..7143381898 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
@@ -1961,6 +1965,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_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
index e1fec91836..819f7341ac 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
@@ -3,11 +3,7 @@  GLIBC_2.33 _IO_ftrylockfile F
 GLIBC_2.33 _IO_funlockfile F
 GLIBC_2.33 __errno_location F
 GLIBC_2.33 __h_errno_location 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
@@ -72,14 +68,10 @@  GLIBC_2.33 pthread_getname_np F
 GLIBC_2.33 pthread_join 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 5e8e490cd2..3dd55bfaed 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
@@ -2161,6 +2165,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_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
index ad63bee6ee..c3e1fcd185 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
@@ -3,11 +3,7 @@  GLIBC_2.27 _IO_ftrylockfile F
 GLIBC_2.27 _IO_funlockfile F
 GLIBC_2.27 __errno_location F
 GLIBC_2.27 __h_errno_location 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
@@ -56,14 +52,10 @@  GLIBC_2.27 pthread_getcpuclockid F
 GLIBC_2.27 pthread_getname_np F
 GLIBC_2.27 pthread_join 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 a2c2df7e5c..ebb3a99dc0 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
@@ -2246,6 +2250,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_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
index 9e9fba9281..a0f9da155b 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
@@ -3,11 +3,7 @@  GLIBC_2.0 _IO_ftrylockfile F
 GLIBC_2.0 _IO_funlockfile F
 GLIBC_2.0 __errno_location F
 GLIBC_2.0 __h_errno_location 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
@@ -24,11 +20,7 @@  GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join 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 dc6ca8a9e7..fb471c613f 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
@@ -2139,6 +2143,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_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
index c80e9e7906..c64d0adac0 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
@@ -11,11 +11,7 @@  GLIBC_2.2 _IO_ftrylockfile F
 GLIBC_2.2 _IO_funlockfile F
 GLIBC_2.2 __errno_location F
 GLIBC_2.2 __h_errno_location 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
@@ -55,12 +51,8 @@  GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join 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 80a2c49c9e..0a41aca921 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
@@ -2108,6 +2112,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_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
index a87c1e2c98..e7a48ce0b8 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
@@ -10,11 +10,7 @@  GLIBC_2.2 _IO_ftrylockfile F
 GLIBC_2.2 _IO_funlockfile F
 GLIBC_2.2 __errno_location F
 GLIBC_2.2 __h_errno_location 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
@@ -54,12 +50,8 @@  GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join 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 cf26b71aef..50ae689625 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
@@ -2105,6 +2109,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_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
index a87c1e2c98..e7a48ce0b8 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
@@ -10,11 +10,7 @@  GLIBC_2.2 _IO_ftrylockfile F
 GLIBC_2.2 _IO_funlockfile F
 GLIBC_2.2 __errno_location F
 GLIBC_2.2 __h_errno_location 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
@@ -54,12 +50,8 @@  GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join 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 322378dd4b..7511f7b31c 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
@@ -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_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
index 5a9cc846ae..7c9b4caa57 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
@@ -3,11 +3,7 @@  GLIBC_2.0 _IO_ftrylockfile F
 GLIBC_2.0 _IO_funlockfile F
 GLIBC_2.0 __errno_location F
 GLIBC_2.0 __h_errno_location 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
@@ -24,11 +20,7 @@  GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
 GLIBC_2.0 pthread_join 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 eeaa82fedb..640d872176 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
@@ -2156,6 +2160,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_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
index 6cf7099df0..802f3d2bfe 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
@@ -10,11 +10,7 @@  GLIBC_2.2 _IO_ftrylockfile F
 GLIBC_2.2 _IO_funlockfile F
 GLIBC_2.2 __errno_location F
 GLIBC_2.2 __h_errno_location 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
@@ -54,12 +50,8 @@  GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join 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 dbce478dbb..f1a22fb299 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
@@ -2117,6 +2121,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_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
index cc0a8aa687..106e86ac08 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
@@ -10,11 +10,7 @@  GLIBC_2.2.5 _IO_ftrylockfile F
 GLIBC_2.2.5 _IO_funlockfile F
 GLIBC_2.2.5 __errno_location F
 GLIBC_2.2.5 __h_errno_location 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
@@ -54,12 +50,8 @@  GLIBC_2.2.5 pthread_getconcurrency F
 GLIBC_2.2.5 pthread_getcpuclockid F
 GLIBC_2.2.5 pthread_join F
 GLIBC_2.2.5 pthread_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 fb659ae2c4..6d5d59cf40 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
@@ -2215,6 +2219,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_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
index 5a7c70f589..212e47fb48 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
@@ -3,11 +3,7 @@  GLIBC_2.16 _IO_ftrylockfile F
 GLIBC_2.16 _IO_funlockfile F
 GLIBC_2.16 __errno_location F
 GLIBC_2.16 __h_errno_location 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
@@ -55,14 +51,10 @@  GLIBC_2.16 pthread_getcpuclockid F
 GLIBC_2.16 pthread_getname_np F
 GLIBC_2.16 pthread_join 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