[10/19] nptl: Move mtx_init into libc

Message ID 0a1c87b8506e1570db7cbe505e12700600bd0dcd.1619456219.git.fweimer@redhat.com
State New
Headers show
Series
  • nptl: Move most C11 symbols into libc
Related show

Commit Message

The symbol was moved using scripts/move-symbol-to-libc.py.

The calls to __pthread_mutex_init, __pthread_mutexattr_init,
__pthread_mutexattr_settype are now private and no longer need
to be exported.  This allows the removal of the newly added
GLIBC_2.34 symbol versions for those functions.

Also clean up some weak declarations in <libc-lockP.h> for
these functions.  They are not needed and potentially incorrect
for static linking of mtx_init.
---
 nptl/Versions                                         |  6 ++----
 nptl/pthreadP.h                                       |  2 ++
 nptl/pthread_mutex_init.c                             |  8 +++++---
 nptl/pthread_mutexattr_init.c                         |  6 ++++--
 nptl/pthread_mutexattr_settype.c                      |  6 ++++--
 sysdeps/nptl/libc-lockP.h                             |  8 --------
 sysdeps/pthread/Makefile                              |  3 ++-
 sysdeps/pthread/mtx_init.c                            | 11 ++++++++++-
 sysdeps/unix/sysv/linux/aarch64/libc.abilist          |  5 ++---
 sysdeps/unix/sysv/linux/aarch64/libpthread.abilist    |  1 -
 sysdeps/unix/sysv/linux/alpha/libc.abilist            |  5 ++---
 sysdeps/unix/sysv/linux/alpha/libpthread.abilist      |  1 -
 sysdeps/unix/sysv/linux/arc/libc.abilist              |  5 ++---
 sysdeps/unix/sysv/linux/arc/libpthread.abilist        |  1 -
 sysdeps/unix/sysv/linux/arm/be/libc.abilist           |  5 ++---
 sysdeps/unix/sysv/linux/arm/be/libpthread.abilist     |  1 -
 sysdeps/unix/sysv/linux/arm/le/libc.abilist           |  5 ++---
 sysdeps/unix/sysv/linux/arm/le/libpthread.abilist     |  1 -
 sysdeps/unix/sysv/linux/csky/libc.abilist             |  5 ++---
 sysdeps/unix/sysv/linux/csky/libpthread.abilist       |  1 -
 sysdeps/unix/sysv/linux/hppa/libc.abilist             |  5 ++---
 sysdeps/unix/sysv/linux/hppa/libpthread.abilist       |  1 -
 sysdeps/unix/sysv/linux/i386/libc.abilist             |  5 ++---
 sysdeps/unix/sysv/linux/i386/libpthread.abilist       |  1 -
 sysdeps/unix/sysv/linux/ia64/libc.abilist             |  5 ++---
 sysdeps/unix/sysv/linux/ia64/libpthread.abilist       |  1 -
 sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist    |  5 ++---
 .../unix/sysv/linux/m68k/coldfire/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist      |  5 ++---
 .../unix/sysv/linux/m68k/m680x0/libpthread.abilist    |  1 -
 sysdeps/unix/sysv/linux/microblaze/be/libc.abilist    |  5 ++---
 .../unix/sysv/linux/microblaze/be/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/microblaze/le/libc.abilist    |  5 ++---
 .../unix/sysv/linux/microblaze/le/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist  |  5 ++---
 .../unix/sysv/linux/mips/mips32/libpthread.abilist    |  1 -
 .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist    |  5 ++---
 .../unix/sysv/linux/mips/mips64/libpthread.abilist    |  1 -
 sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist  |  5 ++---
 sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist  |  5 ++---
 sysdeps/unix/sysv/linux/nios2/libc.abilist            |  5 ++---
 sysdeps/unix/sysv/linux/nios2/libpthread.abilist      |  1 -
 .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist     |  5 ++---
 .../sysv/linux/powerpc/powerpc32/libpthread.abilist   |  1 -
 .../sysv/linux/powerpc/powerpc32/nofpu/libc.abilist   |  5 ++---
 .../unix/sysv/linux/powerpc/powerpc64/be/libc.abilist |  5 ++---
 .../linux/powerpc/powerpc64/be/libpthread.abilist     |  1 -
 .../unix/sysv/linux/powerpc/powerpc64/le/libc.abilist |  5 ++---
 .../linux/powerpc/powerpc64/le/libpthread.abilist     |  1 -
 sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist       |  5 ++---
 sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist |  1 -
 sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist       |  5 ++---
 sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist |  1 -
 sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist     |  5 ++---
 .../unix/sysv/linux/s390/s390-32/libpthread.abilist   |  1 -
 sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist     |  5 ++---
 .../unix/sysv/linux/s390/s390-64/libpthread.abilist   |  1 -
 sysdeps/unix/sysv/linux/sh/be/libc.abilist            |  5 ++---
 sysdeps/unix/sysv/linux/sh/be/libpthread.abilist      |  1 -
 sysdeps/unix/sysv/linux/sh/le/libc.abilist            |  5 ++---
 sysdeps/unix/sysv/linux/sh/le/libpthread.abilist      |  1 -
 sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist    |  5 ++---
 .../unix/sysv/linux/sparc/sparc32/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist    |  5 ++---
 .../unix/sysv/linux/sparc/sparc64/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/x86_64/64/libc.abilist        |  5 ++---
 sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist       |  5 ++---
 sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist |  1 -
 69 files changed, 93 insertions(+), 146 deletions(-)

-- 
2.30.2

Comments

On 4/26/21 1:02 PM, Florian Weimer via Libc-alpha wrote:
> The symbol was moved using scripts/move-symbol-to-libc.py.


Tested and reviewed on x86_64 and i686.

LGTM.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>

Tested-by: Carlos O'Donell <carlos@redhat.com>

 
> The calls to __pthread_mutex_init, __pthread_mutexattr_init,

> __pthread_mutexattr_settype are now private and no longer need

> to be exported.  This allows the removal of the newly added

> GLIBC_2.34 symbol versions for those functions.


OK.
 
> Also clean up some weak declarations in <libc-lockP.h> for

> these functions.  They are not needed and potentially incorrect

> for static linking of mtx_init.


Agreed.

> ---

>  nptl/Versions                                         |  6 ++----

>  nptl/pthreadP.h                                       |  2 ++

>  nptl/pthread_mutex_init.c                             |  8 +++++---

>  nptl/pthread_mutexattr_init.c                         |  6 ++++--

>  nptl/pthread_mutexattr_settype.c                      |  6 ++++--

>  sysdeps/nptl/libc-lockP.h                             |  8 --------

>  sysdeps/pthread/Makefile                              |  3 ++-

>  sysdeps/pthread/mtx_init.c                            | 11 ++++++++++-

>  sysdeps/unix/sysv/linux/aarch64/libc.abilist          |  5 ++---

>  sysdeps/unix/sysv/linux/aarch64/libpthread.abilist    |  1 -

>  sysdeps/unix/sysv/linux/alpha/libc.abilist            |  5 ++---

>  sysdeps/unix/sysv/linux/alpha/libpthread.abilist      |  1 -

>  sysdeps/unix/sysv/linux/arc/libc.abilist              |  5 ++---

>  sysdeps/unix/sysv/linux/arc/libpthread.abilist        |  1 -

>  sysdeps/unix/sysv/linux/arm/be/libc.abilist           |  5 ++---

>  sysdeps/unix/sysv/linux/arm/be/libpthread.abilist     |  1 -

>  sysdeps/unix/sysv/linux/arm/le/libc.abilist           |  5 ++---

>  sysdeps/unix/sysv/linux/arm/le/libpthread.abilist     |  1 -

>  sysdeps/unix/sysv/linux/csky/libc.abilist             |  5 ++---

>  sysdeps/unix/sysv/linux/csky/libpthread.abilist       |  1 -

>  sysdeps/unix/sysv/linux/hppa/libc.abilist             |  5 ++---

>  sysdeps/unix/sysv/linux/hppa/libpthread.abilist       |  1 -

>  sysdeps/unix/sysv/linux/i386/libc.abilist             |  5 ++---

>  sysdeps/unix/sysv/linux/i386/libpthread.abilist       |  1 -

>  sysdeps/unix/sysv/linux/ia64/libc.abilist             |  5 ++---

>  sysdeps/unix/sysv/linux/ia64/libpthread.abilist       |  1 -

>  sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist    |  5 ++---

>  .../unix/sysv/linux/m68k/coldfire/libpthread.abilist  |  1 -

>  sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist      |  5 ++---

>  .../unix/sysv/linux/m68k/m680x0/libpthread.abilist    |  1 -

>  sysdeps/unix/sysv/linux/microblaze/be/libc.abilist    |  5 ++---

>  .../unix/sysv/linux/microblaze/be/libpthread.abilist  |  1 -

>  sysdeps/unix/sysv/linux/microblaze/le/libc.abilist    |  5 ++---

>  .../unix/sysv/linux/microblaze/le/libpthread.abilist  |  1 -

>  sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist  |  5 ++---

>  .../unix/sysv/linux/mips/mips32/libpthread.abilist    |  1 -

>  .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist    |  5 ++---

>  .../unix/sysv/linux/mips/mips64/libpthread.abilist    |  1 -

>  sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist  |  5 ++---

>  sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist  |  5 ++---

>  sysdeps/unix/sysv/linux/nios2/libc.abilist            |  5 ++---

>  sysdeps/unix/sysv/linux/nios2/libpthread.abilist      |  1 -

>  .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist     |  5 ++---

>  .../sysv/linux/powerpc/powerpc32/libpthread.abilist   |  1 -

>  .../sysv/linux/powerpc/powerpc32/nofpu/libc.abilist   |  5 ++---

>  .../unix/sysv/linux/powerpc/powerpc64/be/libc.abilist |  5 ++---

>  .../linux/powerpc/powerpc64/be/libpthread.abilist     |  1 -

>  .../unix/sysv/linux/powerpc/powerpc64/le/libc.abilist |  5 ++---

>  .../linux/powerpc/powerpc64/le/libpthread.abilist     |  1 -

>  sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist       |  5 ++---

>  sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist |  1 -

>  sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist       |  5 ++---

>  sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist |  1 -

>  sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist     |  5 ++---

>  .../unix/sysv/linux/s390/s390-32/libpthread.abilist   |  1 -

>  sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist     |  5 ++---

>  .../unix/sysv/linux/s390/s390-64/libpthread.abilist   |  1 -

>  sysdeps/unix/sysv/linux/sh/be/libc.abilist            |  5 ++---

>  sysdeps/unix/sysv/linux/sh/be/libpthread.abilist      |  1 -

>  sysdeps/unix/sysv/linux/sh/le/libc.abilist            |  5 ++---

>  sysdeps/unix/sysv/linux/sh/le/libpthread.abilist      |  1 -

>  sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist    |  5 ++---

>  .../unix/sysv/linux/sparc/sparc32/libpthread.abilist  |  1 -

>  sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist    |  5 ++---

>  .../unix/sysv/linux/sparc/sparc64/libpthread.abilist  |  1 -

>  sysdeps/unix/sysv/linux/x86_64/64/libc.abilist        |  5 ++---

>  sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist  |  1 -

>  sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist       |  5 ++---

>  sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist |  1 -

>  69 files changed, 93 insertions(+), 146 deletions(-)

> 

> diff --git a/nptl/Versions b/nptl/Versions

> index 939bed94e9..ccba2ba980 100644

> --- a/nptl/Versions

> +++ b/nptl/Versions

> @@ -134,6 +134,7 @@ libc {

>      cnd_timedwait;

>      cnd_wait;

>      mtx_destroy;

> +    mtx_init;

>      thrd_current;

>      thrd_equal;

>      thrd_sleep;

> @@ -155,11 +156,8 @@ libc {

>      __pthread_cleanup_routine;

>      __pthread_getspecific;

>      __pthread_key_create;

> -    __pthread_mutex_init;

>      __pthread_mutex_lock;

>      __pthread_mutex_unlock;

> -    __pthread_mutexattr_init;

> -    __pthread_mutexattr_settype;

>      __pthread_setspecific;

>      call_once;

>      cnd_broadcast;

> @@ -169,6 +167,7 @@ libc {

>      cnd_timedwait;

>      cnd_wait;

>      mtx_destroy;

> +    mtx_init;

>      pthread_cond_clockwait;

>      pthread_condattr_getclock;

>      pthread_condattr_getpshared;

> @@ -381,7 +380,6 @@ libpthread {

>  

>    # C11 thread symbols.

>    GLIBC_2.28 {

> -    mtx_init;

>      mtx_lock;

>      mtx_timedlock;

>      mtx_trylock;

> diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h

> index db8983c711..3b070ee10d 100644

> --- a/nptl/pthreadP.h

> +++ b/nptl/pthreadP.h

> @@ -411,8 +411,10 @@ extern int __pthread_mutex_unlock_usercnt (pthread_mutex_t *__mutex,

>  					   int __decr);

>  libc_hidden_proto (__pthread_mutex_unlock_usercnt)

>  extern int __pthread_mutexattr_init (pthread_mutexattr_t *attr);

> +libc_hidden_proto (__pthread_mutexattr_init)

>  extern int __pthread_mutexattr_destroy (pthread_mutexattr_t *attr);

>  extern int __pthread_mutexattr_settype (pthread_mutexattr_t *attr, int kind);

> +libc_hidden_proto (__pthread_mutexattr_settype)

>  extern int __pthread_attr_destroy (pthread_attr_t *attr);

>  libc_hidden_proto (__pthread_attr_destroy)

>  extern int __pthread_attr_getdetachstate (const pthread_attr_t *attr,

> diff --git a/nptl/pthread_mutex_init.c b/nptl/pthread_mutex_init.c

> index 328f7b08a7..d9d7523ea4 100644

> --- a/nptl/pthread_mutex_init.c

> +++ b/nptl/pthread_mutex_init.c

> @@ -151,11 +151,13 @@ ___pthread_mutex_init (pthread_mutex_t *mutex,

>  

>    return 0;

>  }

> -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);

> +libc_hidden_ver (___pthread_mutex_init, __pthread_mutex_init)

> +#ifndef SHARED

> +strong_alias (___pthread_mutex_init, __pthread_mutex_init)

> +#endif

> +

>  #if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_34)

>  compat_symbol (libpthread, ___pthread_mutex_init, __pthread_mutex_init,

>  	       GLIBC_2_0);

> diff --git a/nptl/pthread_mutexattr_init.c b/nptl/pthread_mutexattr_init.c

> index ca0c5e94dd..bb41fa169c 100644

> --- a/nptl/pthread_mutexattr_init.c

> +++ b/nptl/pthread_mutexattr_init.c

> @@ -39,8 +39,10 @@ ___pthread_mutexattr_init (pthread_mutexattr_t *attr)

>  }

>  versioned_symbol (libc, ___pthread_mutexattr_init,

>  		  pthread_mutexattr_init, GLIBC_2_34);

> -versioned_symbol (libc, ___pthread_mutexattr_init,

> -		  __pthread_mutexattr_init, GLIBC_2_34);

> +libc_hidden_ver (___pthread_mutexattr_init, __pthread_mutexattr_init)

> +#ifndef SHARED

> +strong_alias (___pthread_mutexattr_init, __pthread_mutexattr_init)

> +#endif

>  

>  #if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_34)

>  compat_symbol (libpthread, ___pthread_mutexattr_init,

> diff --git a/nptl/pthread_mutexattr_settype.c b/nptl/pthread_mutexattr_settype.c

> index df03def8bd..fb8d66c5ea 100644

> --- a/nptl/pthread_mutexattr_settype.c

> +++ b/nptl/pthread_mutexattr_settype.c

> @@ -41,8 +41,10 @@ ___pthread_mutexattr_settype (pthread_mutexattr_t *attr, int kind)

>  }

>  versioned_symbol (libc, ___pthread_mutexattr_settype,

>                    pthread_mutexattr_settype, GLIBC_2_34);

> -versioned_symbol (libc, ___pthread_mutexattr_settype,

> -                  __pthread_mutexattr_settype, GLIBC_2_34);

> +libc_hidden_ver (___pthread_mutexattr_settype, __pthread_mutexattr_settype)

> +#ifndef SHARED

> +strong_alias (___pthread_mutexattr_settype, __pthread_mutexattr_settype)

> +#endif

>  

>  #if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_34)

>  compat_symbol (libpthread, ___pthread_mutexattr_settype,

> diff --git a/sysdeps/nptl/libc-lockP.h b/sysdeps/nptl/libc-lockP.h

> index aad9c9778c..239bd5ed86 100644

> --- a/sysdeps/nptl/libc-lockP.h

> +++ b/sysdeps/nptl/libc-lockP.h

> @@ -269,13 +269,9 @@ 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);

>  

> -extern int __pthread_mutexattr_settype (pthread_mutexattr_t *__attr,

> -					int __kind);

> -

>  extern int __pthread_rwlock_init (pthread_rwlock_t *__rwlock,

>  				  const pthread_rwlockattr_t *__attr);

>  

> @@ -307,9 +303,7 @@ libc_hidden_proto (__pthread_setcancelstate)

>  #ifndef __NO_WEAK_PTHREAD_ALIASES

>  # ifdef weak_extern

>  weak_extern (__pthread_mutex_trylock)

> -weak_extern (__pthread_mutexattr_init)

>  weak_extern (__pthread_mutexattr_destroy)

> -weak_extern (__pthread_mutexattr_settype)

>  weak_extern (__pthread_rwlock_init)

>  weak_extern (__pthread_rwlock_destroy)

>  weak_extern (__pthread_rwlock_tryrdlock)

> @@ -318,9 +312,7 @@ weak_extern (__pthread_initialize)

>  weak_extern (__pthread_atfork)

>  # else

>  #  pragma weak __pthread_mutex_trylock

> -#  pragma weak __pthread_mutexattr_init

>  #  pragma weak __pthread_mutexattr_destroy

> -#  pragma weak __pthread_mutexattr_settype

>  #  pragma weak __pthread_rwlock_destroy

>  #  pragma weak __pthread_rwlock_tryrdlock

>  #  pragma weak __pthread_rwlock_trywrlock

> diff --git a/sysdeps/pthread/Makefile b/sysdeps/pthread/Makefile

> index 591722460a..bf42b6aa71 100644

> --- a/sysdeps/pthread/Makefile

> +++ b/sysdeps/pthread/Makefile

> @@ -32,7 +32,7 @@ headers += threads.h

>  routines += thrd_current thrd_equal thrd_sleep thrd_yield

>  

>  libpthread-routines += thrd_create thrd_detach thrd_exit thrd_join \

> -		       mtx_init mtx_lock mtx_timedlock \

> +		       mtx_lock mtx_timedlock \

>  		       mtx_trylock mtx_unlock \

>  		       tss_create tss_delete tss_get tss_set

>  

> @@ -45,6 +45,7 @@ $(libpthread-routines-var) += \

>    cnd_timedwait \

>    cnd_wait \

>    mtx_destroy \

> +  mtx_init \

>  

>  tests += tst-cnd-basic tst-mtx-trylock tst-cnd-broadcast \

>  	 tst-cnd-timedwait tst-thrd-detach tst-mtx-basic tst-thrd-sleep \

> diff --git a/sysdeps/pthread/mtx_init.c b/sysdeps/pthread/mtx_init.c

> index 8d5f194e99..e99258bd4d 100644

> --- a/sysdeps/pthread/mtx_init.c

> +++ b/sysdeps/pthread/mtx_init.c

> @@ -17,11 +17,12 @@

>     <https://www.gnu.org/licenses/>.  */

>  

>  #include <stdalign.h>

> +#include <shlib-compat.h>

>  

>  #include "thrd_priv.h"

>  

>  int

> -mtx_init (mtx_t *mutex, int type)

> +__mtx_init (mtx_t *mutex, int type)

>  {

>    _Static_assert (sizeof (mtx_t) == sizeof (pthread_mutex_t),

>  		  "sizeof (mtx_t) != sizeof (pthread_mutex_t)");

> @@ -51,3 +52,11 @@ mtx_init (mtx_t *mutex, int type)

>    /* pthread_mutexattr_destroy implementation is a noop.  */

>    return thrd_err_map (err_code);

>  }

> +#if PTHREAD_IN_LIBC

> +versioned_symbol (libc, __mtx_init, mtx_init, GLIBC_2_34);

> +# if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_28, GLIBC_2_34)

> +compat_symbol (libpthread, __mtx_init, mtx_init, GLIBC_2_28);

> +# endif

> +#else /* !PTHREAD_IN_LIBC */

> +strong_alias (__mtx_init, mtx_init)

> +#endif

> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist

> index 0342b37e0b..b586a95b8b 100644

> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist

> @@ -2207,6 +2207,7 @@ GLIBC_2.28 cnd_timedwait F

>  GLIBC_2.28 cnd_wait F

>  GLIBC_2.28 fcntl64 F

>  GLIBC_2.28 mtx_destroy F

> +GLIBC_2.28 mtx_init F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2248,12 +2249,9 @@ 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_init F

>  GLIBC_2.34 __pthread_mutex_lock F

>  GLIBC_2.34 __pthread_mutex_trylock F

>  GLIBC_2.34 __pthread_mutex_unlock F

> -GLIBC_2.34 __pthread_mutexattr_init F

> -GLIBC_2.34 __pthread_mutexattr_settype F

>  GLIBC_2.34 __pthread_setspecific F

>  GLIBC_2.34 __pthread_unwind_next F

>  GLIBC_2.34 call_once F

> @@ -2264,6 +2262,7 @@ GLIBC_2.34 cnd_signal F

>  GLIBC_2.34 cnd_timedwait F

>  GLIBC_2.34 cnd_wait F

>  GLIBC_2.34 mtx_destroy F

> +GLIBC_2.34 mtx_init F

>  GLIBC_2.34 pthread_cond_clockwait F

>  GLIBC_2.34 pthread_condattr_getclock F

>  GLIBC_2.34 pthread_condattr_getpshared F

> diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist

> index 040566dd8d..d70d7eff42 100644

> --- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist

> +++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist

> @@ -69,7 +69,6 @@ GLIBC_2.17 sem_unlink F

>  GLIBC_2.17 sem_wait F

>  GLIBC_2.18 pthread_getattr_default_np F

>  GLIBC_2.18 pthread_setattr_default_np F

> -GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist

> index ef9839121c..e91bd03efd 100644

> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist

> @@ -2100,6 +2100,7 @@ GLIBC_2.28 cnd_timedwait F

>  GLIBC_2.28 cnd_wait F

>  GLIBC_2.28 fcntl64 F

>  GLIBC_2.28 mtx_destroy F

> +GLIBC_2.28 mtx_init F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2329,12 +2330,9 @@ 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_init F

>  GLIBC_2.34 __pthread_mutex_lock F

>  GLIBC_2.34 __pthread_mutex_trylock F

>  GLIBC_2.34 __pthread_mutex_unlock F

> -GLIBC_2.34 __pthread_mutexattr_init F

> -GLIBC_2.34 __pthread_mutexattr_settype F

>  GLIBC_2.34 __pthread_setspecific F

>  GLIBC_2.34 __pthread_unwind_next F

>  GLIBC_2.34 call_once F

> @@ -2345,6 +2343,7 @@ GLIBC_2.34 cnd_signal F

>  GLIBC_2.34 cnd_timedwait F

>  GLIBC_2.34 cnd_wait F

>  GLIBC_2.34 mtx_destroy F

> +GLIBC_2.34 mtx_init F

>  GLIBC_2.34 pthread_cond_clockwait F

>  GLIBC_2.34 pthread_condattr_getclock F

>  GLIBC_2.34 pthread_condattr_getpshared F

> diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist

> index a559c85f49..421e6820f1 100644

> --- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist

> +++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist

> @@ -69,7 +69,6 @@ GLIBC_2.2 pthread_yield F

>  GLIBC_2.2 sem_timedwait F

>  GLIBC_2.2.3 __libpthread_version_placeholder F

>  GLIBC_2.2.6 __libpthread_version_placeholder F

> -GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist

> index f27db10a34..cd2aa56a6a 100644

> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist

> @@ -1264,6 +1264,7 @@ GLIBC_2.32 msgsnd F

>  GLIBC_2.32 msync F

>  GLIBC_2.32 mtrace F

>  GLIBC_2.32 mtx_destroy F

> +GLIBC_2.32 mtx_init F

>  GLIBC_2.32 munlock F

>  GLIBC_2.32 munlockall F

>  GLIBC_2.32 munmap F

> @@ -2007,12 +2008,9 @@ 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_init F

>  GLIBC_2.34 __pthread_mutex_lock F

>  GLIBC_2.34 __pthread_mutex_trylock F

>  GLIBC_2.34 __pthread_mutex_unlock F

> -GLIBC_2.34 __pthread_mutexattr_init F

> -GLIBC_2.34 __pthread_mutexattr_settype F

>  GLIBC_2.34 __pthread_setspecific F

>  GLIBC_2.34 __pthread_unwind_next F

>  GLIBC_2.34 call_once F

> @@ -2023,6 +2021,7 @@ GLIBC_2.34 cnd_signal F

>  GLIBC_2.34 cnd_timedwait F

>  GLIBC_2.34 cnd_wait F

>  GLIBC_2.34 mtx_destroy F

> +GLIBC_2.34 mtx_init F

>  GLIBC_2.34 pthread_cond_clockwait F

>  GLIBC_2.34 pthread_condattr_getclock F

>  GLIBC_2.34 pthread_condattr_getpshared F

> diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist

> index 10529e4718..e7acbb17a4 100644

> --- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist

> +++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist

> @@ -13,7 +13,6 @@ GLIBC_2.32 __pthread_unregister_cancel_restore F

>  GLIBC_2.32 flockfile F

>  GLIBC_2.32 ftrylockfile F

>  GLIBC_2.32 funlockfile F

> -GLIBC_2.32 mtx_init F

>  GLIBC_2.32 mtx_lock F

>  GLIBC_2.32 mtx_timedlock F

>  GLIBC_2.32 mtx_trylock F

> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist

> index 4e9841bdcb..0f55a8191a 100644

> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist

> @@ -128,6 +128,7 @@ GLIBC_2.28 cnd_wait F

>  GLIBC_2.28 fcntl F

>  GLIBC_2.28 fcntl64 F

>  GLIBC_2.28 mtx_destroy F

> +GLIBC_2.28 mtx_init F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -172,12 +173,9 @@ 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_init F

>  GLIBC_2.34 __pthread_mutex_lock F

>  GLIBC_2.34 __pthread_mutex_trylock F

>  GLIBC_2.34 __pthread_mutex_unlock F

> -GLIBC_2.34 __pthread_mutexattr_init F

> -GLIBC_2.34 __pthread_mutexattr_settype F

>  GLIBC_2.34 __pthread_setspecific F

>  GLIBC_2.34 __pthread_unwind_next F

>  GLIBC_2.34 call_once F

> @@ -188,6 +186,7 @@ GLIBC_2.34 cnd_signal F

>  GLIBC_2.34 cnd_timedwait F

>  GLIBC_2.34 cnd_wait F

>  GLIBC_2.34 mtx_destroy F

> +GLIBC_2.34 mtx_init F

>  GLIBC_2.34 pthread_cond_clockwait F

>  GLIBC_2.34 pthread_condattr_getclock F

>  GLIBC_2.34 pthread_condattr_getpshared F

> diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist

> index ce54e903a4..4fc51e55c5 100644

> --- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist

> +++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist

> @@ -3,7 +3,6 @@ GLIBC_2.12 pthread_getname_np F

>  GLIBC_2.12 pthread_setname_np F

>  GLIBC_2.18 pthread_getattr_default_np F

>  GLIBC_2.18 pthread_setattr_default_np F

> -GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist

> index eb566e2cc9..750ab71348 100644

> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist

> @@ -128,6 +128,7 @@ GLIBC_2.28 cnd_wait F

>  GLIBC_2.28 fcntl F

>  GLIBC_2.28 fcntl64 F

>  GLIBC_2.28 mtx_destroy F

> +GLIBC_2.28 mtx_init F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -169,12 +170,9 @@ 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_init F

>  GLIBC_2.34 __pthread_mutex_lock F

>  GLIBC_2.34 __pthread_mutex_trylock F

>  GLIBC_2.34 __pthread_mutex_unlock F

> -GLIBC_2.34 __pthread_mutexattr_init F

> -GLIBC_2.34 __pthread_mutexattr_settype F

>  GLIBC_2.34 __pthread_setspecific F

>  GLIBC_2.34 __pthread_unwind_next F

>  GLIBC_2.34 call_once F

> @@ -185,6 +183,7 @@ GLIBC_2.34 cnd_signal F

>  GLIBC_2.34 cnd_timedwait F

>  GLIBC_2.34 cnd_wait F

>  GLIBC_2.34 mtx_destroy F

> +GLIBC_2.34 mtx_init F

>  GLIBC_2.34 pthread_cond_clockwait F

>  GLIBC_2.34 pthread_condattr_getclock F

>  GLIBC_2.34 pthread_condattr_getpshared F

> diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist

> index ce54e903a4..4fc51e55c5 100644

> --- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist

> +++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist

> @@ -3,7 +3,6 @@ GLIBC_2.12 pthread_getname_np F

>  GLIBC_2.12 pthread_setname_np F

>  GLIBC_2.18 pthread_getattr_default_np F

>  GLIBC_2.18 pthread_setattr_default_np F

> -GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist

> index 6c47ea41f8..bf5bdb2649 100644

> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist

> @@ -1319,6 +1319,7 @@ GLIBC_2.29 msgsnd F

>  GLIBC_2.29 msync F

>  GLIBC_2.29 mtrace F

>  GLIBC_2.29 mtx_destroy F

> +GLIBC_2.29 mtx_init F

>  GLIBC_2.29 munlock F

>  GLIBC_2.29 munlockall F

>  GLIBC_2.29 munmap F

> @@ -2191,12 +2192,9 @@ 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_init F

>  GLIBC_2.34 __pthread_mutex_lock F

>  GLIBC_2.34 __pthread_mutex_trylock F

>  GLIBC_2.34 __pthread_mutex_unlock F

> -GLIBC_2.34 __pthread_mutexattr_init F

> -GLIBC_2.34 __pthread_mutexattr_settype F

>  GLIBC_2.34 __pthread_setspecific F

>  GLIBC_2.34 __pthread_unwind_next F

>  GLIBC_2.34 call_once F

> @@ -2207,6 +2205,7 @@ GLIBC_2.34 cnd_signal F

>  GLIBC_2.34 cnd_timedwait F

>  GLIBC_2.34 cnd_wait F

>  GLIBC_2.34 mtx_destroy F

> +GLIBC_2.34 mtx_init F

>  GLIBC_2.34 pthread_cond_clockwait F

>  GLIBC_2.34 pthread_condattr_getclock F

>  GLIBC_2.34 pthread_condattr_getpshared F

> diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist

> index 4e57ff71c3..7cd0a9c455 100644

> --- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist

> +++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist

> @@ -13,7 +13,6 @@ GLIBC_2.29 __pthread_unregister_cancel_restore F

>  GLIBC_2.29 flockfile F

>  GLIBC_2.29 ftrylockfile F

>  GLIBC_2.29 funlockfile F

> -GLIBC_2.29 mtx_init F

>  GLIBC_2.29 mtx_lock F

>  GLIBC_2.29 mtx_timedlock F

>  GLIBC_2.29 mtx_trylock F

> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist

> index c36fdc53af..e962e5e076 100644

> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist

> @@ -1939,6 +1939,7 @@ GLIBC_2.28 cnd_wait F

>  GLIBC_2.28 fcntl F

>  GLIBC_2.28 fcntl64 F

>  GLIBC_2.28 mtx_destroy F

> +GLIBC_2.28 mtx_init F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2142,12 +2143,9 @@ 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_init F

>  GLIBC_2.34 __pthread_mutex_lock F

>  GLIBC_2.34 __pthread_mutex_trylock F

>  GLIBC_2.34 __pthread_mutex_unlock F

> -GLIBC_2.34 __pthread_mutexattr_init F

> -GLIBC_2.34 __pthread_mutexattr_settype F

>  GLIBC_2.34 __pthread_setspecific F

>  GLIBC_2.34 __pthread_unwind_next F

>  GLIBC_2.34 call_once F

> @@ -2158,6 +2156,7 @@ GLIBC_2.34 cnd_signal F

>  GLIBC_2.34 cnd_timedwait F

>  GLIBC_2.34 cnd_wait F

>  GLIBC_2.34 mtx_destroy F

> +GLIBC_2.34 mtx_init F

>  GLIBC_2.34 pthread_cond_clockwait F

>  GLIBC_2.34 pthread_condattr_getclock F

>  GLIBC_2.34 pthread_condattr_getpshared F

> diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist

> index f0950eec65..4914741631 100644

> --- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist

> +++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist

> @@ -61,7 +61,6 @@ GLIBC_2.2 sem_unlink F

>  GLIBC_2.2 sem_wait F

>  GLIBC_2.2.3 __libpthread_version_placeholder F

>  GLIBC_2.2.6 __libpthread_version_placeholder F

> -GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist

> index 94a86ebc85..831c5cbe3d 100644

> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist

> @@ -2113,6 +2113,7 @@ GLIBC_2.28 cnd_wait F

>  GLIBC_2.28 fcntl F

>  GLIBC_2.28 fcntl64 F

>  GLIBC_2.28 mtx_destroy F

> +GLIBC_2.28 mtx_init F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2319,12 +2320,9 @@ 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_init F

>  GLIBC_2.34 __pthread_mutex_lock F

>  GLIBC_2.34 __pthread_mutex_trylock F

>  GLIBC_2.34 __pthread_mutex_unlock F

> -GLIBC_2.34 __pthread_mutexattr_init F

> -GLIBC_2.34 __pthread_mutexattr_settype F

>  GLIBC_2.34 __pthread_setspecific F

>  GLIBC_2.34 __pthread_unwind_next F

>  GLIBC_2.34 call_once F

> @@ -2335,6 +2333,7 @@ GLIBC_2.34 cnd_signal F

>  GLIBC_2.34 cnd_timedwait F

>  GLIBC_2.34 cnd_wait F

>  GLIBC_2.34 mtx_destroy F

> +GLIBC_2.34 mtx_init F

>  GLIBC_2.34 pthread_cond_clockwait F

>  GLIBC_2.34 pthread_condattr_getclock F

>  GLIBC_2.34 pthread_condattr_getpshared F

> diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist

> index 54e0db13d2..2861f052b0 100644

> --- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist

> +++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist

> @@ -69,7 +69,6 @@ GLIBC_2.2 pthread_yield F

>  GLIBC_2.2 sem_timedwait F

>  GLIBC_2.2.3 __libpthread_version_placeholder F

>  GLIBC_2.2.6 __libpthread_version_placeholder F

> -GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist

> index 6fda5d312c..c27cc55934 100644

> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist

> @@ -1974,6 +1974,7 @@ GLIBC_2.28 cnd_timedwait F

>  GLIBC_2.28 cnd_wait F

>  GLIBC_2.28 fcntl64 F

>  GLIBC_2.28 mtx_destroy F

> +GLIBC_2.28 mtx_init F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2176,12 +2177,9 @@ 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_init F

>  GLIBC_2.34 __pthread_mutex_lock F

>  GLIBC_2.34 __pthread_mutex_trylock F

>  GLIBC_2.34 __pthread_mutex_unlock F

> -GLIBC_2.34 __pthread_mutexattr_init F

> -GLIBC_2.34 __pthread_mutexattr_settype F

>  GLIBC_2.34 __pthread_setspecific F

>  GLIBC_2.34 __pthread_unwind_next F

>  GLIBC_2.34 call_once F

> @@ -2192,6 +2190,7 @@ GLIBC_2.34 cnd_signal F

>  GLIBC_2.34 cnd_timedwait F

>  GLIBC_2.34 cnd_wait F

>  GLIBC_2.34 mtx_destroy F

> +GLIBC_2.34 mtx_init F

>  GLIBC_2.34 pthread_cond_clockwait F

>  GLIBC_2.34 pthread_condattr_getclock F

>  GLIBC_2.34 pthread_condattr_getpshared F

> diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist

> index 850b74f26a..66c8d26ca9 100644

> --- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist

> +++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist

> @@ -61,7 +61,6 @@ GLIBC_2.2 sem_unlink F

>  GLIBC_2.2 sem_wait F

>  GLIBC_2.2.3 __libpthread_version_placeholder F

>  GLIBC_2.2.6 __libpthread_version_placeholder F

> -GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist

> index 00f92af83c..80ab210444 100644

> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist

> @@ -129,6 +129,7 @@ GLIBC_2.28 cnd_wait F

>  GLIBC_2.28 fcntl F

>  GLIBC_2.28 fcntl64 F

>  GLIBC_2.28 mtx_destroy F

> +GLIBC_2.28 mtx_init F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -173,12 +174,9 @@ 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_init F

>  GLIBC_2.34 __pthread_mutex_lock F

>  GLIBC_2.34 __pthread_mutex_trylock F

>  GLIBC_2.34 __pthread_mutex_unlock F

> -GLIBC_2.34 __pthread_mutexattr_init F

> -GLIBC_2.34 __pthread_mutexattr_settype F

>  GLIBC_2.34 __pthread_setspecific F

>  GLIBC_2.34 __pthread_unwind_next F

>  GLIBC_2.34 call_once F

> @@ -189,6 +187,7 @@ GLIBC_2.34 cnd_signal F

>  GLIBC_2.34 cnd_timedwait F

>  GLIBC_2.34 cnd_wait F

>  GLIBC_2.34 mtx_destroy F

> +GLIBC_2.34 mtx_init F

>  GLIBC_2.34 pthread_cond_clockwait F

>  GLIBC_2.34 pthread_condattr_getclock F

>  GLIBC_2.34 pthread_condattr_getpshared F

> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist

> index ce54e903a4..4fc51e55c5 100644

> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist

> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist

> @@ -3,7 +3,6 @@ GLIBC_2.12 pthread_getname_np F

>  GLIBC_2.12 pthread_setname_np F

>  GLIBC_2.18 pthread_getattr_default_np F

>  GLIBC_2.18 pthread_setattr_default_np F

> -GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist

> index 6c0537be6e..80eacfcd27 100644

> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist

> @@ -2056,6 +2056,7 @@ GLIBC_2.28 cnd_wait F

>  GLIBC_2.28 fcntl F

>  GLIBC_2.28 fcntl64 F

>  GLIBC_2.28 mtx_destroy F

> +GLIBC_2.28 mtx_init F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2262,12 +2263,9 @@ 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_init F

>  GLIBC_2.34 __pthread_mutex_lock F

>  GLIBC_2.34 __pthread_mutex_trylock F

>  GLIBC_2.34 __pthread_mutex_unlock F

> -GLIBC_2.34 __pthread_mutexattr_init F

> -GLIBC_2.34 __pthread_mutexattr_settype F

>  GLIBC_2.34 __pthread_setspecific F

>  GLIBC_2.34 __pthread_unwind_next F

>  GLIBC_2.34 call_once F

> @@ -2278,6 +2276,7 @@ GLIBC_2.34 cnd_signal F

>  GLIBC_2.34 cnd_timedwait F

>  GLIBC_2.34 cnd_wait F

>  GLIBC_2.34 mtx_destroy F

> +GLIBC_2.34 mtx_init F

>  GLIBC_2.34 pthread_cond_clockwait F

>  GLIBC_2.34 pthread_condattr_getclock F

>  GLIBC_2.34 pthread_condattr_getpshared F

> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist

> index 54e0db13d2..2861f052b0 100644

> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist

> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist

> @@ -69,7 +69,6 @@ GLIBC_2.2 pthread_yield F

>  GLIBC_2.2 sem_timedwait F

>  GLIBC_2.2.3 __libpthread_version_placeholder F

>  GLIBC_2.2.6 __libpthread_version_placeholder F

> -GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist

> index 53130e8b64..176324a57f 100644

> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist

> @@ -2198,6 +2198,7 @@ GLIBC_2.28 cnd_wait F

>  GLIBC_2.28 fcntl F

>  GLIBC_2.28 fcntl64 F

>  GLIBC_2.28 mtx_destroy F

> +GLIBC_2.28 mtx_init F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2242,12 +2243,9 @@ 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_init F

>  GLIBC_2.34 __pthread_mutex_lock F

>  GLIBC_2.34 __pthread_mutex_trylock F

>  GLIBC_2.34 __pthread_mutex_unlock F

> -GLIBC_2.34 __pthread_mutexattr_init F

> -GLIBC_2.34 __pthread_mutexattr_settype F

>  GLIBC_2.34 __pthread_setspecific F

>  GLIBC_2.34 __pthread_unwind_next F

>  GLIBC_2.34 call_once F

> @@ -2258,6 +2256,7 @@ GLIBC_2.34 cnd_signal F

>  GLIBC_2.34 cnd_timedwait F

>  GLIBC_2.34 cnd_wait F

>  GLIBC_2.34 mtx_destroy F

> +GLIBC_2.34 mtx_init F

>  GLIBC_2.34 pthread_cond_clockwait F

>  GLIBC_2.34 pthread_condattr_getclock F

>  GLIBC_2.34 pthread_condattr_getpshared F

> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist

> index bf2b06603d..aef0f9ec38 100644

> --- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist

> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist

> @@ -69,7 +69,6 @@ GLIBC_2.18 sem_timedwait F

>  GLIBC_2.18 sem_trywait F

>  GLIBC_2.18 sem_unlink F

>  GLIBC_2.18 sem_wait F

> -GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist

> index cbb3c523b8..1d33c78491 100644

> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist

> @@ -2198,6 +2198,7 @@ GLIBC_2.28 cnd_wait F

>  GLIBC_2.28 fcntl F

>  GLIBC_2.28 fcntl64 F

>  GLIBC_2.28 mtx_destroy F

> +GLIBC_2.28 mtx_init F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2239,12 +2240,9 @@ 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_init F

>  GLIBC_2.34 __pthread_mutex_lock F

>  GLIBC_2.34 __pthread_mutex_trylock F

>  GLIBC_2.34 __pthread_mutex_unlock F

> -GLIBC_2.34 __pthread_mutexattr_init F

> -GLIBC_2.34 __pthread_mutexattr_settype F

>  GLIBC_2.34 __pthread_setspecific F

>  GLIBC_2.34 __pthread_unwind_next F

>  GLIBC_2.34 call_once F

> @@ -2255,6 +2253,7 @@ GLIBC_2.34 cnd_signal F

>  GLIBC_2.34 cnd_timedwait F

>  GLIBC_2.34 cnd_wait F

>  GLIBC_2.34 mtx_destroy F

> +GLIBC_2.34 mtx_init F

>  GLIBC_2.34 pthread_cond_clockwait F

>  GLIBC_2.34 pthread_condattr_getclock F

>  GLIBC_2.34 pthread_condattr_getpshared F

> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist

> index bf2b06603d..aef0f9ec38 100644

> --- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist

> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist

> @@ -69,7 +69,6 @@ GLIBC_2.18 sem_timedwait F

>  GLIBC_2.18 sem_trywait F

>  GLIBC_2.18 sem_unlink F

>  GLIBC_2.18 sem_wait F

> -GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist

> index 93b13a4032..9fb953d54a 100644

> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist

> @@ -2026,6 +2026,7 @@ GLIBC_2.28 cnd_wait F

>  GLIBC_2.28 fcntl F

>  GLIBC_2.28 fcntl64 F

>  GLIBC_2.28 mtx_destroy F

> +GLIBC_2.28 mtx_init F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2225,12 +2226,9 @@ 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_init F

>  GLIBC_2.34 __pthread_mutex_lock F

>  GLIBC_2.34 __pthread_mutex_trylock F

>  GLIBC_2.34 __pthread_mutex_unlock F

> -GLIBC_2.34 __pthread_mutexattr_init F

> -GLIBC_2.34 __pthread_mutexattr_settype F

>  GLIBC_2.34 __pthread_setspecific F

>  GLIBC_2.34 __pthread_unwind_next F

>  GLIBC_2.34 call_once F

> @@ -2241,6 +2239,7 @@ GLIBC_2.34 cnd_signal F

>  GLIBC_2.34 cnd_timedwait F

>  GLIBC_2.34 cnd_wait F

>  GLIBC_2.34 mtx_destroy F

> +GLIBC_2.34 mtx_init F

>  GLIBC_2.34 pthread_cond_clockwait F

>  GLIBC_2.34 pthread_condattr_getclock F

>  GLIBC_2.34 pthread_condattr_getpshared F

> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist

> index e159d47826..bd6af822ef 100644

> --- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist

> +++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist

> @@ -68,7 +68,6 @@ GLIBC_2.2 sem_unlink F

>  GLIBC_2.2 sem_wait F

>  GLIBC_2.2.3 __libpthread_version_placeholder F

>  GLIBC_2.2.6 __libpthread_version_placeholder F

> -GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist

> index e923ba0743..12fc2cc399 100644

> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist

> @@ -2024,6 +2024,7 @@ GLIBC_2.28 cnd_wait F

>  GLIBC_2.28 fcntl F

>  GLIBC_2.28 fcntl64 F

>  GLIBC_2.28 mtx_destroy F

> +GLIBC_2.28 mtx_init F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2223,12 +2224,9 @@ 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_init F

>  GLIBC_2.34 __pthread_mutex_lock F

>  GLIBC_2.34 __pthread_mutex_trylock F

>  GLIBC_2.34 __pthread_mutex_unlock F

> -GLIBC_2.34 __pthread_mutexattr_init F

> -GLIBC_2.34 __pthread_mutexattr_settype F

>  GLIBC_2.34 __pthread_setspecific F

>  GLIBC_2.34 __pthread_unwind_next F

>  GLIBC_2.34 call_once F

> @@ -2239,6 +2237,7 @@ GLIBC_2.34 cnd_signal F

>  GLIBC_2.34 cnd_timedwait F

>  GLIBC_2.34 cnd_wait F

>  GLIBC_2.34 mtx_destroy F

> +GLIBC_2.34 mtx_init F

>  GLIBC_2.34 pthread_cond_clockwait F

>  GLIBC_2.34 pthread_condattr_getclock F

>  GLIBC_2.34 pthread_condattr_getpshared F

> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist

> index e159d47826..bd6af822ef 100644

> --- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist

> +++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist

> @@ -68,7 +68,6 @@ GLIBC_2.2 sem_unlink F

>  GLIBC_2.2 sem_wait F

>  GLIBC_2.2.3 __libpthread_version_placeholder F

>  GLIBC_2.2.6 __libpthread_version_placeholder F

> -GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist

> index 331772354f..b98bfd1579 100644

> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist

> @@ -2032,6 +2032,7 @@ GLIBC_2.28 cnd_wait F

>  GLIBC_2.28 fcntl F

>  GLIBC_2.28 fcntl64 F

>  GLIBC_2.28 mtx_destroy F

> +GLIBC_2.28 mtx_init F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2231,12 +2232,9 @@ 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_init F

>  GLIBC_2.34 __pthread_mutex_lock F

>  GLIBC_2.34 __pthread_mutex_trylock F

>  GLIBC_2.34 __pthread_mutex_unlock F

> -GLIBC_2.34 __pthread_mutexattr_init F

> -GLIBC_2.34 __pthread_mutexattr_settype F

>  GLIBC_2.34 __pthread_setspecific F

>  GLIBC_2.34 __pthread_unwind_next F

>  GLIBC_2.34 call_once F

> @@ -2247,6 +2245,7 @@ GLIBC_2.34 cnd_signal F

>  GLIBC_2.34 cnd_timedwait F

>  GLIBC_2.34 cnd_wait F

>  GLIBC_2.34 mtx_destroy F

> +GLIBC_2.34 mtx_init F

>  GLIBC_2.34 pthread_cond_clockwait F

>  GLIBC_2.34 pthread_condattr_getclock F

>  GLIBC_2.34 pthread_condattr_getpshared F

> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist

> index 813a3e7347..a2d4ba5302 100644

> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist

> @@ -2027,6 +2027,7 @@ GLIBC_2.28 cnd_timedwait F

>  GLIBC_2.28 cnd_wait F

>  GLIBC_2.28 fcntl64 F

>  GLIBC_2.28 mtx_destroy F

> +GLIBC_2.28 mtx_init F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2225,12 +2226,9 @@ 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_init F

>  GLIBC_2.34 __pthread_mutex_lock F

>  GLIBC_2.34 __pthread_mutex_trylock F

>  GLIBC_2.34 __pthread_mutex_unlock F

> -GLIBC_2.34 __pthread_mutexattr_init F

> -GLIBC_2.34 __pthread_mutexattr_settype F

>  GLIBC_2.34 __pthread_setspecific F

>  GLIBC_2.34 __pthread_unwind_next F

>  GLIBC_2.34 call_once F

> @@ -2241,6 +2239,7 @@ GLIBC_2.34 cnd_signal F

>  GLIBC_2.34 cnd_timedwait F

>  GLIBC_2.34 cnd_wait F

>  GLIBC_2.34 mtx_destroy F

> +GLIBC_2.34 mtx_init F

>  GLIBC_2.34 pthread_cond_clockwait F

>  GLIBC_2.34 pthread_condattr_getclock F

>  GLIBC_2.34 pthread_condattr_getpshared F

> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist

> index 2dad49c10c..a51b84aabd 100644

> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist

> @@ -2240,6 +2240,7 @@ GLIBC_2.28 cnd_wait F

>  GLIBC_2.28 fcntl F

>  GLIBC_2.28 fcntl64 F

>  GLIBC_2.28 mtx_destroy F

> +GLIBC_2.28 mtx_init F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2281,12 +2282,9 @@ 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_init F

>  GLIBC_2.34 __pthread_mutex_lock F

>  GLIBC_2.34 __pthread_mutex_trylock F

>  GLIBC_2.34 __pthread_mutex_unlock F

> -GLIBC_2.34 __pthread_mutexattr_init F

> -GLIBC_2.34 __pthread_mutexattr_settype F

>  GLIBC_2.34 __pthread_setspecific F

>  GLIBC_2.34 __pthread_unwind_next F

>  GLIBC_2.34 call_once F

> @@ -2297,6 +2295,7 @@ GLIBC_2.34 cnd_signal F

>  GLIBC_2.34 cnd_timedwait F

>  GLIBC_2.34 cnd_wait F

>  GLIBC_2.34 mtx_destroy F

> +GLIBC_2.34 mtx_init F

>  GLIBC_2.34 pthread_cond_clockwait F

>  GLIBC_2.34 pthread_condattr_getclock F

>  GLIBC_2.34 pthread_condattr_getpshared F

> diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist

> index 747161ee6b..6be2396f36 100644

> --- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist

> +++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist

> @@ -69,7 +69,6 @@ GLIBC_2.21 sem_timedwait F

>  GLIBC_2.21 sem_trywait F

>  GLIBC_2.21 sem_unlink F

>  GLIBC_2.21 sem_wait F

> -GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist

> index 4081092566..d43d935915 100644

> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist

> @@ -2060,6 +2060,7 @@ GLIBC_2.28 cnd_wait F

>  GLIBC_2.28 fcntl F

>  GLIBC_2.28 fcntl64 F

>  GLIBC_2.28 mtx_destroy F

> +GLIBC_2.28 mtx_init F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2289,12 +2290,9 @@ 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_init F

>  GLIBC_2.34 __pthread_mutex_lock F

>  GLIBC_2.34 __pthread_mutex_trylock F

>  GLIBC_2.34 __pthread_mutex_unlock F

> -GLIBC_2.34 __pthread_mutexattr_init F

> -GLIBC_2.34 __pthread_mutexattr_settype F

>  GLIBC_2.34 __pthread_setspecific F

>  GLIBC_2.34 __pthread_unwind_next F

>  GLIBC_2.34 call_once F

> @@ -2305,6 +2303,7 @@ GLIBC_2.34 cnd_signal F

>  GLIBC_2.34 cnd_timedwait F

>  GLIBC_2.34 cnd_wait F

>  GLIBC_2.34 mtx_destroy F

> +GLIBC_2.34 mtx_init F

>  GLIBC_2.34 pthread_cond_clockwait F

>  GLIBC_2.34 pthread_condattr_getclock F

>  GLIBC_2.34 pthread_condattr_getpshared F

> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist

> index 864364b0bb..becc6afeca 100644

> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist

> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist

> @@ -69,7 +69,6 @@ GLIBC_2.2 pthread_yield F

>  GLIBC_2.2 sem_timedwait F

>  GLIBC_2.2.3 __libpthread_version_placeholder F

>  GLIBC_2.2.6 __libpthread_version_placeholder F

> -GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist

> index 72aa073e62..e530238266 100644

> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist

> @@ -2064,6 +2064,7 @@ GLIBC_2.28 cnd_wait F

>  GLIBC_2.28 fcntl F

>  GLIBC_2.28 fcntl64 F

>  GLIBC_2.28 mtx_destroy F

> +GLIBC_2.28 mtx_init F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2322,12 +2323,9 @@ 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_init F

>  GLIBC_2.34 __pthread_mutex_lock F

>  GLIBC_2.34 __pthread_mutex_trylock F

>  GLIBC_2.34 __pthread_mutex_unlock F

> -GLIBC_2.34 __pthread_mutexattr_init F

> -GLIBC_2.34 __pthread_mutexattr_settype F

>  GLIBC_2.34 __pthread_setspecific F

>  GLIBC_2.34 __pthread_unwind_next F

>  GLIBC_2.34 call_once F

> @@ -2338,6 +2336,7 @@ GLIBC_2.34 cnd_signal F

>  GLIBC_2.34 cnd_timedwait F

>  GLIBC_2.34 cnd_wait F

>  GLIBC_2.34 mtx_destroy F

> +GLIBC_2.34 mtx_init F

>  GLIBC_2.34 pthread_cond_clockwait F

>  GLIBC_2.34 pthread_condattr_getclock F

>  GLIBC_2.34 pthread_condattr_getpshared F

> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist

> index 2faa943f05..d943ad39a7 100644

> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist

> @@ -128,6 +128,7 @@ GLIBC_2.28 cnd_timedwait F

>  GLIBC_2.28 cnd_wait F

>  GLIBC_2.28 fcntl64 F

>  GLIBC_2.28 mtx_destroy F

> +GLIBC_2.28 mtx_init F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2143,12 +2144,9 @@ 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_init F

>  GLIBC_2.34 __pthread_mutex_lock F

>  GLIBC_2.34 __pthread_mutex_trylock F

>  GLIBC_2.34 __pthread_mutex_unlock F

> -GLIBC_2.34 __pthread_mutexattr_init F

> -GLIBC_2.34 __pthread_mutexattr_settype F

>  GLIBC_2.34 __pthread_setspecific F

>  GLIBC_2.34 __pthread_unwind_next F

>  GLIBC_2.34 call_once F

> @@ -2159,6 +2157,7 @@ GLIBC_2.34 cnd_signal F

>  GLIBC_2.34 cnd_timedwait F

>  GLIBC_2.34 cnd_wait F

>  GLIBC_2.34 mtx_destroy F

> +GLIBC_2.34 mtx_init F

>  GLIBC_2.34 pthread_cond_clockwait F

>  GLIBC_2.34 pthread_condattr_getclock F

>  GLIBC_2.34 pthread_condattr_getpshared F

> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist

> index 6691151b2e..2dd6e41ab2 100644

> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist

> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist

> @@ -3,7 +3,6 @@ GLIBC_2.12 pthread_getname_np F

>  GLIBC_2.12 pthread_setname_np F

>  GLIBC_2.18 pthread_getattr_default_np F

>  GLIBC_2.18 pthread_setattr_default_np F

> -GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist

> index 7d2d64b9b7..345ceae778 100644

> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist

> @@ -2297,6 +2297,7 @@ GLIBC_2.28 cnd_timedwait F

>  GLIBC_2.28 cnd_wait F

>  GLIBC_2.28 fcntl64 F

>  GLIBC_2.28 mtx_destroy F

> +GLIBC_2.28 mtx_init F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2444,12 +2445,9 @@ 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_init F

>  GLIBC_2.34 __pthread_mutex_lock F

>  GLIBC_2.34 __pthread_mutex_trylock F

>  GLIBC_2.34 __pthread_mutex_unlock F

> -GLIBC_2.34 __pthread_mutexattr_init F

> -GLIBC_2.34 __pthread_mutexattr_settype F

>  GLIBC_2.34 __pthread_setspecific F

>  GLIBC_2.34 __pthread_unwind_next F

>  GLIBC_2.34 call_once F

> @@ -2460,6 +2458,7 @@ GLIBC_2.34 cnd_signal F

>  GLIBC_2.34 cnd_timedwait F

>  GLIBC_2.34 cnd_wait F

>  GLIBC_2.34 mtx_destroy F

> +GLIBC_2.34 mtx_init F

>  GLIBC_2.34 pthread_cond_clockwait F

>  GLIBC_2.34 pthread_condattr_getclock F

>  GLIBC_2.34 pthread_condattr_getpshared F

> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist

> index 040566dd8d..d70d7eff42 100644

> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist

> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist

> @@ -69,7 +69,6 @@ GLIBC_2.17 sem_unlink F

>  GLIBC_2.17 sem_wait F

>  GLIBC_2.18 pthread_getattr_default_np F

>  GLIBC_2.18 pthread_setattr_default_np F

> -GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist

> index 0bcd294c6d..b5b6bea53b 100644

> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist

> @@ -1266,6 +1266,7 @@ GLIBC_2.33 msgsnd F

>  GLIBC_2.33 msync F

>  GLIBC_2.33 mtrace F

>  GLIBC_2.33 mtx_destroy F

> +GLIBC_2.33 mtx_init F

>  GLIBC_2.33 munlock F

>  GLIBC_2.33 munlockall F

>  GLIBC_2.33 munmap F

> @@ -2009,12 +2010,9 @@ 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_init F

>  GLIBC_2.34 __pthread_mutex_lock F

>  GLIBC_2.34 __pthread_mutex_trylock F

>  GLIBC_2.34 __pthread_mutex_unlock F

> -GLIBC_2.34 __pthread_mutexattr_init F

> -GLIBC_2.34 __pthread_mutexattr_settype F

>  GLIBC_2.34 __pthread_setspecific F

>  GLIBC_2.34 __pthread_unwind_next F

>  GLIBC_2.34 call_once F

> @@ -2025,6 +2023,7 @@ GLIBC_2.34 cnd_signal F

>  GLIBC_2.34 cnd_timedwait F

>  GLIBC_2.34 cnd_wait F

>  GLIBC_2.34 mtx_destroy F

> +GLIBC_2.34 mtx_init F

>  GLIBC_2.34 pthread_cond_clockwait F

>  GLIBC_2.34 pthread_condattr_getclock F

>  GLIBC_2.34 pthread_condattr_getpshared F

> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist

> index 899cdd8dac..e8fbf99ba0 100644

> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist

> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist

> @@ -13,7 +13,6 @@ GLIBC_2.33 __pthread_unregister_cancel_restore F

>  GLIBC_2.33 flockfile F

>  GLIBC_2.33 ftrylockfile F

>  GLIBC_2.33 funlockfile F

> -GLIBC_2.33 mtx_init F

>  GLIBC_2.33 mtx_lock F

>  GLIBC_2.33 mtx_timedlock F

>  GLIBC_2.33 mtx_trylock F

> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist

> index c03a324ab9..da0a49ebb8 100644

> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist

> @@ -2168,6 +2168,7 @@ GLIBC_2.28 cnd_timedwait F

>  GLIBC_2.28 cnd_wait F

>  GLIBC_2.28 fcntl64 F

>  GLIBC_2.28 mtx_destroy F

> +GLIBC_2.28 mtx_init F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2209,12 +2210,9 @@ 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_init F

>  GLIBC_2.34 __pthread_mutex_lock F

>  GLIBC_2.34 __pthread_mutex_trylock F

>  GLIBC_2.34 __pthread_mutex_unlock F

> -GLIBC_2.34 __pthread_mutexattr_init F

> -GLIBC_2.34 __pthread_mutexattr_settype F

>  GLIBC_2.34 __pthread_setspecific F

>  GLIBC_2.34 __pthread_unwind_next F

>  GLIBC_2.34 call_once F

> @@ -2225,6 +2223,7 @@ GLIBC_2.34 cnd_signal F

>  GLIBC_2.34 cnd_timedwait F

>  GLIBC_2.34 cnd_wait F

>  GLIBC_2.34 mtx_destroy F

> +GLIBC_2.34 mtx_init F

>  GLIBC_2.34 pthread_cond_clockwait F

>  GLIBC_2.34 pthread_condattr_getclock F

>  GLIBC_2.34 pthread_condattr_getpshared F

> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist

> index 0f611f2217..880a5ca8a6 100644

> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist

> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist

> @@ -69,7 +69,6 @@ GLIBC_2.27 sem_timedwait F

>  GLIBC_2.27 sem_trywait F

>  GLIBC_2.27 sem_unlink F

>  GLIBC_2.27 sem_wait F

> -GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist

> index ec70b32df0..e913f0c616 100644

> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist

> @@ -2069,6 +2069,7 @@ GLIBC_2.28 cnd_wait F

>  GLIBC_2.28 fcntl F

>  GLIBC_2.28 fcntl64 F

>  GLIBC_2.28 mtx_destroy F

> +GLIBC_2.28 mtx_init F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2287,12 +2288,9 @@ 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_init F

>  GLIBC_2.34 __pthread_mutex_lock F

>  GLIBC_2.34 __pthread_mutex_trylock F

>  GLIBC_2.34 __pthread_mutex_unlock F

> -GLIBC_2.34 __pthread_mutexattr_init F

> -GLIBC_2.34 __pthread_mutexattr_settype F

>  GLIBC_2.34 __pthread_setspecific F

>  GLIBC_2.34 __pthread_unwind_next F

>  GLIBC_2.34 call_once F

> @@ -2303,6 +2301,7 @@ GLIBC_2.34 cnd_signal F

>  GLIBC_2.34 cnd_timedwait F

>  GLIBC_2.34 cnd_wait F

>  GLIBC_2.34 mtx_destroy F

> +GLIBC_2.34 mtx_init F

>  GLIBC_2.34 pthread_cond_clockwait F

>  GLIBC_2.34 pthread_condattr_getclock F

>  GLIBC_2.34 pthread_condattr_getpshared F

> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist

> index 06bc637dc4..c62aa60dae 100644

> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist

> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist

> @@ -70,7 +70,6 @@ GLIBC_2.2 pthread_yield F

>  GLIBC_2.2 sem_timedwait F

>  GLIBC_2.2.3 __libpthread_version_placeholder F

>  GLIBC_2.2.6 __libpthread_version_placeholder F

> -GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist

> index aa1b2b3fab..ee4ac1a8db 100644

> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist

> @@ -1966,6 +1966,7 @@ GLIBC_2.28 cnd_timedwait F

>  GLIBC_2.28 cnd_wait F

>  GLIBC_2.28 fcntl64 F

>  GLIBC_2.28 mtx_destroy F

> +GLIBC_2.28 mtx_init F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2180,12 +2181,9 @@ 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_init F

>  GLIBC_2.34 __pthread_mutex_lock F

>  GLIBC_2.34 __pthread_mutex_trylock F

>  GLIBC_2.34 __pthread_mutex_unlock F

> -GLIBC_2.34 __pthread_mutexattr_init F

> -GLIBC_2.34 __pthread_mutexattr_settype F

>  GLIBC_2.34 __pthread_setspecific F

>  GLIBC_2.34 __pthread_unwind_next F

>  GLIBC_2.34 call_once F

> @@ -2196,6 +2194,7 @@ GLIBC_2.34 cnd_signal F

>  GLIBC_2.34 cnd_timedwait F

>  GLIBC_2.34 cnd_wait F

>  GLIBC_2.34 mtx_destroy F

> +GLIBC_2.34 mtx_init F

>  GLIBC_2.34 pthread_cond_clockwait F

>  GLIBC_2.34 pthread_condattr_getclock F

>  GLIBC_2.34 pthread_condattr_getpshared F

> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist

> index 2a776f1a4f..3e5b1677d1 100644

> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist

> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist

> @@ -62,7 +62,6 @@ GLIBC_2.2 sem_unlink F

>  GLIBC_2.2 sem_wait F

>  GLIBC_2.2.3 __libpthread_version_placeholder F

>  GLIBC_2.2.6 __libpthread_version_placeholder F

> -GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist

> index 7ee127eee5..9827e4dcc7 100644

> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist

> @@ -1943,6 +1943,7 @@ GLIBC_2.28 cnd_wait F

>  GLIBC_2.28 fcntl F

>  GLIBC_2.28 fcntl64 F

>  GLIBC_2.28 mtx_destroy F

> +GLIBC_2.28 mtx_init F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2149,12 +2150,9 @@ 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_init F

>  GLIBC_2.34 __pthread_mutex_lock F

>  GLIBC_2.34 __pthread_mutex_trylock F

>  GLIBC_2.34 __pthread_mutex_unlock F

> -GLIBC_2.34 __pthread_mutexattr_init F

> -GLIBC_2.34 __pthread_mutexattr_settype F

>  GLIBC_2.34 __pthread_setspecific F

>  GLIBC_2.34 __pthread_unwind_next F

>  GLIBC_2.34 call_once F

> @@ -2165,6 +2163,7 @@ GLIBC_2.34 cnd_signal F

>  GLIBC_2.34 cnd_timedwait F

>  GLIBC_2.34 cnd_wait F

>  GLIBC_2.34 mtx_destroy F

> +GLIBC_2.34 mtx_init F

>  GLIBC_2.34 pthread_cond_clockwait F

>  GLIBC_2.34 pthread_condattr_getclock F

>  GLIBC_2.34 pthread_condattr_getpshared F

> diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist

> index f0950eec65..4914741631 100644

> --- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist

> +++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist

> @@ -61,7 +61,6 @@ GLIBC_2.2 sem_unlink F

>  GLIBC_2.2 sem_wait F

>  GLIBC_2.2.3 __libpthread_version_placeholder F

>  GLIBC_2.2.6 __libpthread_version_placeholder F

> -GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist

> index bf24941a78..20941d1325 100644

> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist

> @@ -1943,6 +1943,7 @@ GLIBC_2.28 cnd_wait F

>  GLIBC_2.28 fcntl F

>  GLIBC_2.28 fcntl64 F

>  GLIBC_2.28 mtx_destroy F

> +GLIBC_2.28 mtx_init F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2146,12 +2147,9 @@ 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_init F

>  GLIBC_2.34 __pthread_mutex_lock F

>  GLIBC_2.34 __pthread_mutex_trylock F

>  GLIBC_2.34 __pthread_mutex_unlock F

> -GLIBC_2.34 __pthread_mutexattr_init F

> -GLIBC_2.34 __pthread_mutexattr_settype F

>  GLIBC_2.34 __pthread_setspecific F

>  GLIBC_2.34 __pthread_unwind_next F

>  GLIBC_2.34 call_once F

> @@ -2162,6 +2160,7 @@ GLIBC_2.34 cnd_signal F

>  GLIBC_2.34 cnd_timedwait F

>  GLIBC_2.34 cnd_wait F

>  GLIBC_2.34 mtx_destroy F

> +GLIBC_2.34 mtx_init F

>  GLIBC_2.34 pthread_cond_clockwait F

>  GLIBC_2.34 pthread_condattr_getclock F

>  GLIBC_2.34 pthread_condattr_getpshared F

> diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist

> index f0950eec65..4914741631 100644

> --- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist

> +++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist

> @@ -61,7 +61,6 @@ GLIBC_2.2 sem_unlink F

>  GLIBC_2.2 sem_wait F

>  GLIBC_2.2.3 __libpthread_version_placeholder F

>  GLIBC_2.2.6 __libpthread_version_placeholder F

> -GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist

> index 77e3b83ffb..b9be2c2c6d 100644

> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist

> @@ -2063,6 +2063,7 @@ GLIBC_2.28 cnd_wait F

>  GLIBC_2.28 fcntl F

>  GLIBC_2.28 fcntl64 F

>  GLIBC_2.28 mtx_destroy F

> +GLIBC_2.28 mtx_init F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2278,12 +2279,9 @@ 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_init F

>  GLIBC_2.34 __pthread_mutex_lock F

>  GLIBC_2.34 __pthread_mutex_trylock F

>  GLIBC_2.34 __pthread_mutex_unlock F

> -GLIBC_2.34 __pthread_mutexattr_init F

> -GLIBC_2.34 __pthread_mutexattr_settype F

>  GLIBC_2.34 __pthread_setspecific F

>  GLIBC_2.34 __pthread_unwind_next F

>  GLIBC_2.34 call_once F

> @@ -2294,6 +2292,7 @@ GLIBC_2.34 cnd_signal F

>  GLIBC_2.34 cnd_timedwait F

>  GLIBC_2.34 cnd_wait F

>  GLIBC_2.34 mtx_destroy F

> +GLIBC_2.34 mtx_init F

>  GLIBC_2.34 pthread_cond_clockwait F

>  GLIBC_2.34 pthread_condattr_getclock F

>  GLIBC_2.34 pthread_condattr_getpshared F

> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist

> index a559c85f49..421e6820f1 100644

> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist

> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist

> @@ -69,7 +69,6 @@ GLIBC_2.2 pthread_yield F

>  GLIBC_2.2 sem_timedwait F

>  GLIBC_2.2.3 __libpthread_version_placeholder F

>  GLIBC_2.2.6 __libpthread_version_placeholder F

> -GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist

> index bc5217167f..09035cac1b 100644

> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist

> @@ -1996,6 +1996,7 @@ GLIBC_2.28 cnd_timedwait F

>  GLIBC_2.28 cnd_wait F

>  GLIBC_2.28 fcntl64 F

>  GLIBC_2.28 mtx_destroy F

> +GLIBC_2.28 mtx_init F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2197,12 +2198,9 @@ 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_init F

>  GLIBC_2.34 __pthread_mutex_lock F

>  GLIBC_2.34 __pthread_mutex_trylock F

>  GLIBC_2.34 __pthread_mutex_unlock F

> -GLIBC_2.34 __pthread_mutexattr_init F

> -GLIBC_2.34 __pthread_mutexattr_settype F

>  GLIBC_2.34 __pthread_setspecific F

>  GLIBC_2.34 __pthread_unwind_next F

>  GLIBC_2.34 call_once F

> @@ -2213,6 +2211,7 @@ GLIBC_2.34 cnd_signal F

>  GLIBC_2.34 cnd_timedwait F

>  GLIBC_2.34 cnd_wait F

>  GLIBC_2.34 mtx_destroy F

> +GLIBC_2.34 mtx_init F

>  GLIBC_2.34 pthread_cond_clockwait F

>  GLIBC_2.34 pthread_condattr_getclock F

>  GLIBC_2.34 pthread_condattr_getpshared F

> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist

> index 850b74f26a..66c8d26ca9 100644

> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist

> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist

> @@ -61,7 +61,6 @@ GLIBC_2.2 sem_unlink F

>  GLIBC_2.2 sem_wait F

>  GLIBC_2.2.3 __libpthread_version_placeholder F

>  GLIBC_2.2.6 __libpthread_version_placeholder F

> -GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist

> index 1c3ac87113..c8b0e2cced 100644

> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist

> @@ -1955,6 +1955,7 @@ GLIBC_2.28 cnd_timedwait F

>  GLIBC_2.28 cnd_wait F

>  GLIBC_2.28 fcntl64 F

>  GLIBC_2.28 mtx_destroy F

> +GLIBC_2.28 mtx_init F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2158,12 +2159,9 @@ 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_init F

>  GLIBC_2.34 __pthread_mutex_lock F

>  GLIBC_2.34 __pthread_mutex_trylock F

>  GLIBC_2.34 __pthread_mutex_unlock F

> -GLIBC_2.34 __pthread_mutexattr_init F

> -GLIBC_2.34 __pthread_mutexattr_settype F

>  GLIBC_2.34 __pthread_setspecific F

>  GLIBC_2.34 __pthread_unwind_next F

>  GLIBC_2.34 call_once F

> @@ -2174,6 +2172,7 @@ GLIBC_2.34 cnd_signal F

>  GLIBC_2.34 cnd_timedwait F

>  GLIBC_2.34 cnd_wait F

>  GLIBC_2.34 mtx_destroy F

> +GLIBC_2.34 mtx_init F

>  GLIBC_2.34 pthread_cond_clockwait F

>  GLIBC_2.34 pthread_condattr_getclock F

>  GLIBC_2.34 pthread_condattr_getpshared F

> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist

> index 92ca4a4d3f..c4a641ddc0 100644

> --- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist

> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist

> @@ -60,7 +60,6 @@ GLIBC_2.2.5 sem_trywait F

>  GLIBC_2.2.5 sem_unlink F

>  GLIBC_2.2.5 sem_wait F

>  GLIBC_2.2.6 __libpthread_version_placeholder F

> -GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist

> index 210cd24093..7303bebc08 100644

> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist

> @@ -2220,6 +2220,7 @@ GLIBC_2.28 cnd_timedwait F

>  GLIBC_2.28 cnd_wait F

>  GLIBC_2.28 fcntl64 F

>  GLIBC_2.28 mtx_destroy F

> +GLIBC_2.28 mtx_init F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2263,12 +2264,9 @@ 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_init F

>  GLIBC_2.34 __pthread_mutex_lock F

>  GLIBC_2.34 __pthread_mutex_trylock F

>  GLIBC_2.34 __pthread_mutex_unlock F

> -GLIBC_2.34 __pthread_mutexattr_init F

> -GLIBC_2.34 __pthread_mutexattr_settype F

>  GLIBC_2.34 __pthread_setspecific F

>  GLIBC_2.34 __pthread_unwind_next F

>  GLIBC_2.34 call_once F

> @@ -2279,6 +2277,7 @@ GLIBC_2.34 cnd_signal F

>  GLIBC_2.34 cnd_timedwait F

>  GLIBC_2.34 cnd_wait F

>  GLIBC_2.34 mtx_destroy F

> +GLIBC_2.34 mtx_init F

>  GLIBC_2.34 pthread_cond_clockwait F

>  GLIBC_2.34 pthread_condattr_getclock F

>  GLIBC_2.34 pthread_condattr_getpshared F

> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist

> index 5e221da268..7a75151bc3 100644

> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist

> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist

> @@ -69,7 +69,6 @@ GLIBC_2.16 sem_unlink F

>  GLIBC_2.16 sem_wait F

>  GLIBC_2.18 pthread_getattr_default_np F

>  GLIBC_2.18 pthread_setattr_default_np F

> -GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> 



-- 
Cheers,
Carlos.

Patch

diff --git a/nptl/Versions b/nptl/Versions
index 939bed94e9..ccba2ba980 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -134,6 +134,7 @@  libc {
     cnd_timedwait;
     cnd_wait;
     mtx_destroy;
+    mtx_init;
     thrd_current;
     thrd_equal;
     thrd_sleep;
@@ -155,11 +156,8 @@  libc {
     __pthread_cleanup_routine;
     __pthread_getspecific;
     __pthread_key_create;
-    __pthread_mutex_init;
     __pthread_mutex_lock;
     __pthread_mutex_unlock;
-    __pthread_mutexattr_init;
-    __pthread_mutexattr_settype;
     __pthread_setspecific;
     call_once;
     cnd_broadcast;
@@ -169,6 +167,7 @@  libc {
     cnd_timedwait;
     cnd_wait;
     mtx_destroy;
+    mtx_init;
     pthread_cond_clockwait;
     pthread_condattr_getclock;
     pthread_condattr_getpshared;
@@ -381,7 +380,6 @@  libpthread {
 
   # C11 thread symbols.
   GLIBC_2.28 {
-    mtx_init;
     mtx_lock;
     mtx_timedlock;
     mtx_trylock;
diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
index db8983c711..3b070ee10d 100644
--- a/nptl/pthreadP.h
+++ b/nptl/pthreadP.h
@@ -411,8 +411,10 @@  extern int __pthread_mutex_unlock_usercnt (pthread_mutex_t *__mutex,
 					   int __decr);
 libc_hidden_proto (__pthread_mutex_unlock_usercnt)
 extern int __pthread_mutexattr_init (pthread_mutexattr_t *attr);
+libc_hidden_proto (__pthread_mutexattr_init)
 extern int __pthread_mutexattr_destroy (pthread_mutexattr_t *attr);
 extern int __pthread_mutexattr_settype (pthread_mutexattr_t *attr, int kind);
+libc_hidden_proto (__pthread_mutexattr_settype)
 extern int __pthread_attr_destroy (pthread_attr_t *attr);
 libc_hidden_proto (__pthread_attr_destroy)
 extern int __pthread_attr_getdetachstate (const pthread_attr_t *attr,
diff --git a/nptl/pthread_mutex_init.c b/nptl/pthread_mutex_init.c
index 328f7b08a7..d9d7523ea4 100644
--- a/nptl/pthread_mutex_init.c
+++ b/nptl/pthread_mutex_init.c
@@ -151,11 +151,13 @@  ___pthread_mutex_init (pthread_mutex_t *mutex,
 
   return 0;
 }
-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);
+libc_hidden_ver (___pthread_mutex_init, __pthread_mutex_init)
+#ifndef SHARED
+strong_alias (___pthread_mutex_init, __pthread_mutex_init)
+#endif
+
 #if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_34)
 compat_symbol (libpthread, ___pthread_mutex_init, __pthread_mutex_init,
 	       GLIBC_2_0);
diff --git a/nptl/pthread_mutexattr_init.c b/nptl/pthread_mutexattr_init.c
index ca0c5e94dd..bb41fa169c 100644
--- a/nptl/pthread_mutexattr_init.c
+++ b/nptl/pthread_mutexattr_init.c
@@ -39,8 +39,10 @@  ___pthread_mutexattr_init (pthread_mutexattr_t *attr)
 }
 versioned_symbol (libc, ___pthread_mutexattr_init,
 		  pthread_mutexattr_init, GLIBC_2_34);
-versioned_symbol (libc, ___pthread_mutexattr_init,
-		  __pthread_mutexattr_init, GLIBC_2_34);
+libc_hidden_ver (___pthread_mutexattr_init, __pthread_mutexattr_init)
+#ifndef SHARED
+strong_alias (___pthread_mutexattr_init, __pthread_mutexattr_init)
+#endif
 
 #if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_34)
 compat_symbol (libpthread, ___pthread_mutexattr_init,
diff --git a/nptl/pthread_mutexattr_settype.c b/nptl/pthread_mutexattr_settype.c
index df03def8bd..fb8d66c5ea 100644
--- a/nptl/pthread_mutexattr_settype.c
+++ b/nptl/pthread_mutexattr_settype.c
@@ -41,8 +41,10 @@  ___pthread_mutexattr_settype (pthread_mutexattr_t *attr, int kind)
 }
 versioned_symbol (libc, ___pthread_mutexattr_settype,
                   pthread_mutexattr_settype, GLIBC_2_34);
-versioned_symbol (libc, ___pthread_mutexattr_settype,
-                  __pthread_mutexattr_settype, GLIBC_2_34);
+libc_hidden_ver (___pthread_mutexattr_settype, __pthread_mutexattr_settype)
+#ifndef SHARED
+strong_alias (___pthread_mutexattr_settype, __pthread_mutexattr_settype)
+#endif
 
 #if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_34)
 compat_symbol (libpthread, ___pthread_mutexattr_settype,
diff --git a/sysdeps/nptl/libc-lockP.h b/sysdeps/nptl/libc-lockP.h
index aad9c9778c..239bd5ed86 100644
--- a/sysdeps/nptl/libc-lockP.h
+++ b/sysdeps/nptl/libc-lockP.h
@@ -269,13 +269,9 @@  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);
 
-extern int __pthread_mutexattr_settype (pthread_mutexattr_t *__attr,
-					int __kind);
-
 extern int __pthread_rwlock_init (pthread_rwlock_t *__rwlock,
 				  const pthread_rwlockattr_t *__attr);
 
@@ -307,9 +303,7 @@  libc_hidden_proto (__pthread_setcancelstate)
 #ifndef __NO_WEAK_PTHREAD_ALIASES
 # ifdef weak_extern
 weak_extern (__pthread_mutex_trylock)
-weak_extern (__pthread_mutexattr_init)
 weak_extern (__pthread_mutexattr_destroy)
-weak_extern (__pthread_mutexattr_settype)
 weak_extern (__pthread_rwlock_init)
 weak_extern (__pthread_rwlock_destroy)
 weak_extern (__pthread_rwlock_tryrdlock)
@@ -318,9 +312,7 @@  weak_extern (__pthread_initialize)
 weak_extern (__pthread_atfork)
 # else
 #  pragma weak __pthread_mutex_trylock
-#  pragma weak __pthread_mutexattr_init
 #  pragma weak __pthread_mutexattr_destroy
-#  pragma weak __pthread_mutexattr_settype
 #  pragma weak __pthread_rwlock_destroy
 #  pragma weak __pthread_rwlock_tryrdlock
 #  pragma weak __pthread_rwlock_trywrlock
diff --git a/sysdeps/pthread/Makefile b/sysdeps/pthread/Makefile
index 591722460a..bf42b6aa71 100644
--- a/sysdeps/pthread/Makefile
+++ b/sysdeps/pthread/Makefile
@@ -32,7 +32,7 @@  headers += threads.h
 routines += thrd_current thrd_equal thrd_sleep thrd_yield
 
 libpthread-routines += thrd_create thrd_detach thrd_exit thrd_join \
-		       mtx_init mtx_lock mtx_timedlock \
+		       mtx_lock mtx_timedlock \
 		       mtx_trylock mtx_unlock \
 		       tss_create tss_delete tss_get tss_set
 
@@ -45,6 +45,7 @@  $(libpthread-routines-var) += \
   cnd_timedwait \
   cnd_wait \
   mtx_destroy \
+  mtx_init \
 
 tests += tst-cnd-basic tst-mtx-trylock tst-cnd-broadcast \
 	 tst-cnd-timedwait tst-thrd-detach tst-mtx-basic tst-thrd-sleep \
diff --git a/sysdeps/pthread/mtx_init.c b/sysdeps/pthread/mtx_init.c
index 8d5f194e99..e99258bd4d 100644
--- a/sysdeps/pthread/mtx_init.c
+++ b/sysdeps/pthread/mtx_init.c
@@ -17,11 +17,12 @@ 
    <https://www.gnu.org/licenses/>.  */
 
 #include <stdalign.h>
+#include <shlib-compat.h>
 
 #include "thrd_priv.h"
 
 int
-mtx_init (mtx_t *mutex, int type)
+__mtx_init (mtx_t *mutex, int type)
 {
   _Static_assert (sizeof (mtx_t) == sizeof (pthread_mutex_t),
 		  "sizeof (mtx_t) != sizeof (pthread_mutex_t)");
@@ -51,3 +52,11 @@  mtx_init (mtx_t *mutex, int type)
   /* pthread_mutexattr_destroy implementation is a noop.  */
   return thrd_err_map (err_code);
 }
+#if PTHREAD_IN_LIBC
+versioned_symbol (libc, __mtx_init, mtx_init, GLIBC_2_34);
+# if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_28, GLIBC_2_34)
+compat_symbol (libpthread, __mtx_init, mtx_init, GLIBC_2_28);
+# endif
+#else /* !PTHREAD_IN_LIBC */
+strong_alias (__mtx_init, mtx_init)
+#endif
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 0342b37e0b..b586a95b8b 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -2207,6 +2207,7 @@  GLIBC_2.28 cnd_timedwait F
 GLIBC_2.28 cnd_wait F
 GLIBC_2.28 fcntl64 F
 GLIBC_2.28 mtx_destroy F
+GLIBC_2.28 mtx_init F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2248,12 +2249,9 @@  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_init F
 GLIBC_2.34 __pthread_mutex_lock F
 GLIBC_2.34 __pthread_mutex_trylock F
 GLIBC_2.34 __pthread_mutex_unlock F
-GLIBC_2.34 __pthread_mutexattr_init F
-GLIBC_2.34 __pthread_mutexattr_settype F
 GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 call_once F
@@ -2264,6 +2262,7 @@  GLIBC_2.34 cnd_signal F
 GLIBC_2.34 cnd_timedwait F
 GLIBC_2.34 cnd_wait F
 GLIBC_2.34 mtx_destroy F
+GLIBC_2.34 mtx_init F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
index 040566dd8d..d70d7eff42 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
@@ -69,7 +69,6 @@  GLIBC_2.17 sem_unlink F
 GLIBC_2.17 sem_wait F
 GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_setattr_default_np F
-GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index ef9839121c..e91bd03efd 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -2100,6 +2100,7 @@  GLIBC_2.28 cnd_timedwait F
 GLIBC_2.28 cnd_wait F
 GLIBC_2.28 fcntl64 F
 GLIBC_2.28 mtx_destroy F
+GLIBC_2.28 mtx_init F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2329,12 +2330,9 @@  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_init F
 GLIBC_2.34 __pthread_mutex_lock F
 GLIBC_2.34 __pthread_mutex_trylock F
 GLIBC_2.34 __pthread_mutex_unlock F
-GLIBC_2.34 __pthread_mutexattr_init F
-GLIBC_2.34 __pthread_mutexattr_settype F
 GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 call_once F
@@ -2345,6 +2343,7 @@  GLIBC_2.34 cnd_signal F
 GLIBC_2.34 cnd_timedwait F
 GLIBC_2.34 cnd_wait F
 GLIBC_2.34 mtx_destroy F
+GLIBC_2.34 mtx_init F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
index a559c85f49..421e6820f1 100644
--- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
@@ -69,7 +69,6 @@  GLIBC_2.2 pthread_yield F
 GLIBC_2.2 sem_timedwait F
 GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
-GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index f27db10a34..cd2aa56a6a 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1264,6 +1264,7 @@  GLIBC_2.32 msgsnd F
 GLIBC_2.32 msync F
 GLIBC_2.32 mtrace F
 GLIBC_2.32 mtx_destroy F
+GLIBC_2.32 mtx_init F
 GLIBC_2.32 munlock F
 GLIBC_2.32 munlockall F
 GLIBC_2.32 munmap F
@@ -2007,12 +2008,9 @@  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_init F
 GLIBC_2.34 __pthread_mutex_lock F
 GLIBC_2.34 __pthread_mutex_trylock F
 GLIBC_2.34 __pthread_mutex_unlock F
-GLIBC_2.34 __pthread_mutexattr_init F
-GLIBC_2.34 __pthread_mutexattr_settype F
 GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 call_once F
@@ -2023,6 +2021,7 @@  GLIBC_2.34 cnd_signal F
 GLIBC_2.34 cnd_timedwait F
 GLIBC_2.34 cnd_wait F
 GLIBC_2.34 mtx_destroy F
+GLIBC_2.34 mtx_init F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
index 10529e4718..e7acbb17a4 100644
--- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
@@ -13,7 +13,6 @@  GLIBC_2.32 __pthread_unregister_cancel_restore F
 GLIBC_2.32 flockfile F
 GLIBC_2.32 ftrylockfile F
 GLIBC_2.32 funlockfile F
-GLIBC_2.32 mtx_init F
 GLIBC_2.32 mtx_lock F
 GLIBC_2.32 mtx_timedlock F
 GLIBC_2.32 mtx_trylock F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 4e9841bdcb..0f55a8191a 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -128,6 +128,7 @@  GLIBC_2.28 cnd_wait F
 GLIBC_2.28 fcntl F
 GLIBC_2.28 fcntl64 F
 GLIBC_2.28 mtx_destroy F
+GLIBC_2.28 mtx_init F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -172,12 +173,9 @@  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_init F
 GLIBC_2.34 __pthread_mutex_lock F
 GLIBC_2.34 __pthread_mutex_trylock F
 GLIBC_2.34 __pthread_mutex_unlock F
-GLIBC_2.34 __pthread_mutexattr_init F
-GLIBC_2.34 __pthread_mutexattr_settype F
 GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 call_once F
@@ -188,6 +186,7 @@  GLIBC_2.34 cnd_signal F
 GLIBC_2.34 cnd_timedwait F
 GLIBC_2.34 cnd_wait F
 GLIBC_2.34 mtx_destroy F
+GLIBC_2.34 mtx_init F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
index ce54e903a4..4fc51e55c5 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
@@ -3,7 +3,6 @@  GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
 GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_setattr_default_np F
-GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index eb566e2cc9..750ab71348 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -128,6 +128,7 @@  GLIBC_2.28 cnd_wait F
 GLIBC_2.28 fcntl F
 GLIBC_2.28 fcntl64 F
 GLIBC_2.28 mtx_destroy F
+GLIBC_2.28 mtx_init F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -169,12 +170,9 @@  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_init F
 GLIBC_2.34 __pthread_mutex_lock F
 GLIBC_2.34 __pthread_mutex_trylock F
 GLIBC_2.34 __pthread_mutex_unlock F
-GLIBC_2.34 __pthread_mutexattr_init F
-GLIBC_2.34 __pthread_mutexattr_settype F
 GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 call_once F
@@ -185,6 +183,7 @@  GLIBC_2.34 cnd_signal F
 GLIBC_2.34 cnd_timedwait F
 GLIBC_2.34 cnd_wait F
 GLIBC_2.34 mtx_destroy F
+GLIBC_2.34 mtx_init F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
index ce54e903a4..4fc51e55c5 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
@@ -3,7 +3,6 @@  GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
 GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_setattr_default_np F
-GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 6c47ea41f8..bf5bdb2649 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -1319,6 +1319,7 @@  GLIBC_2.29 msgsnd F
 GLIBC_2.29 msync F
 GLIBC_2.29 mtrace F
 GLIBC_2.29 mtx_destroy F
+GLIBC_2.29 mtx_init F
 GLIBC_2.29 munlock F
 GLIBC_2.29 munlockall F
 GLIBC_2.29 munmap F
@@ -2191,12 +2192,9 @@  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_init F
 GLIBC_2.34 __pthread_mutex_lock F
 GLIBC_2.34 __pthread_mutex_trylock F
 GLIBC_2.34 __pthread_mutex_unlock F
-GLIBC_2.34 __pthread_mutexattr_init F
-GLIBC_2.34 __pthread_mutexattr_settype F
 GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 call_once F
@@ -2207,6 +2205,7 @@  GLIBC_2.34 cnd_signal F
 GLIBC_2.34 cnd_timedwait F
 GLIBC_2.34 cnd_wait F
 GLIBC_2.34 mtx_destroy F
+GLIBC_2.34 mtx_init F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
index 4e57ff71c3..7cd0a9c455 100644
--- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
@@ -13,7 +13,6 @@  GLIBC_2.29 __pthread_unregister_cancel_restore F
 GLIBC_2.29 flockfile F
 GLIBC_2.29 ftrylockfile F
 GLIBC_2.29 funlockfile F
-GLIBC_2.29 mtx_init F
 GLIBC_2.29 mtx_lock F
 GLIBC_2.29 mtx_timedlock F
 GLIBC_2.29 mtx_trylock F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index c36fdc53af..e962e5e076 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -1939,6 +1939,7 @@  GLIBC_2.28 cnd_wait F
 GLIBC_2.28 fcntl F
 GLIBC_2.28 fcntl64 F
 GLIBC_2.28 mtx_destroy F
+GLIBC_2.28 mtx_init F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2142,12 +2143,9 @@  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_init F
 GLIBC_2.34 __pthread_mutex_lock F
 GLIBC_2.34 __pthread_mutex_trylock F
 GLIBC_2.34 __pthread_mutex_unlock F
-GLIBC_2.34 __pthread_mutexattr_init F
-GLIBC_2.34 __pthread_mutexattr_settype F
 GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 call_once F
@@ -2158,6 +2156,7 @@  GLIBC_2.34 cnd_signal F
 GLIBC_2.34 cnd_timedwait F
 GLIBC_2.34 cnd_wait F
 GLIBC_2.34 mtx_destroy F
+GLIBC_2.34 mtx_init F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
index f0950eec65..4914741631 100644
--- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
@@ -61,7 +61,6 @@  GLIBC_2.2 sem_unlink F
 GLIBC_2.2 sem_wait F
 GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
-GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 94a86ebc85..831c5cbe3d 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -2113,6 +2113,7 @@  GLIBC_2.28 cnd_wait F
 GLIBC_2.28 fcntl F
 GLIBC_2.28 fcntl64 F
 GLIBC_2.28 mtx_destroy F
+GLIBC_2.28 mtx_init F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2319,12 +2320,9 @@  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_init F
 GLIBC_2.34 __pthread_mutex_lock F
 GLIBC_2.34 __pthread_mutex_trylock F
 GLIBC_2.34 __pthread_mutex_unlock F
-GLIBC_2.34 __pthread_mutexattr_init F
-GLIBC_2.34 __pthread_mutexattr_settype F
 GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 call_once F
@@ -2335,6 +2333,7 @@  GLIBC_2.34 cnd_signal F
 GLIBC_2.34 cnd_timedwait F
 GLIBC_2.34 cnd_wait F
 GLIBC_2.34 mtx_destroy F
+GLIBC_2.34 mtx_init F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
index 54e0db13d2..2861f052b0 100644
--- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
@@ -69,7 +69,6 @@  GLIBC_2.2 pthread_yield F
 GLIBC_2.2 sem_timedwait F
 GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
-GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 6fda5d312c..c27cc55934 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -1974,6 +1974,7 @@  GLIBC_2.28 cnd_timedwait F
 GLIBC_2.28 cnd_wait F
 GLIBC_2.28 fcntl64 F
 GLIBC_2.28 mtx_destroy F
+GLIBC_2.28 mtx_init F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2176,12 +2177,9 @@  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_init F
 GLIBC_2.34 __pthread_mutex_lock F
 GLIBC_2.34 __pthread_mutex_trylock F
 GLIBC_2.34 __pthread_mutex_unlock F
-GLIBC_2.34 __pthread_mutexattr_init F
-GLIBC_2.34 __pthread_mutexattr_settype F
 GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 call_once F
@@ -2192,6 +2190,7 @@  GLIBC_2.34 cnd_signal F
 GLIBC_2.34 cnd_timedwait F
 GLIBC_2.34 cnd_wait F
 GLIBC_2.34 mtx_destroy F
+GLIBC_2.34 mtx_init F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
index 850b74f26a..66c8d26ca9 100644
--- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
@@ -61,7 +61,6 @@  GLIBC_2.2 sem_unlink F
 GLIBC_2.2 sem_wait F
 GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
-GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 00f92af83c..80ab210444 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -129,6 +129,7 @@  GLIBC_2.28 cnd_wait F
 GLIBC_2.28 fcntl F
 GLIBC_2.28 fcntl64 F
 GLIBC_2.28 mtx_destroy F
+GLIBC_2.28 mtx_init F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -173,12 +174,9 @@  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_init F
 GLIBC_2.34 __pthread_mutex_lock F
 GLIBC_2.34 __pthread_mutex_trylock F
 GLIBC_2.34 __pthread_mutex_unlock F
-GLIBC_2.34 __pthread_mutexattr_init F
-GLIBC_2.34 __pthread_mutexattr_settype F
 GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 call_once F
@@ -189,6 +187,7 @@  GLIBC_2.34 cnd_signal F
 GLIBC_2.34 cnd_timedwait F
 GLIBC_2.34 cnd_wait F
 GLIBC_2.34 mtx_destroy F
+GLIBC_2.34 mtx_init F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
index ce54e903a4..4fc51e55c5 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
@@ -3,7 +3,6 @@  GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
 GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_setattr_default_np F
-GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 6c0537be6e..80eacfcd27 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2056,6 +2056,7 @@  GLIBC_2.28 cnd_wait F
 GLIBC_2.28 fcntl F
 GLIBC_2.28 fcntl64 F
 GLIBC_2.28 mtx_destroy F
+GLIBC_2.28 mtx_init F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2262,12 +2263,9 @@  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_init F
 GLIBC_2.34 __pthread_mutex_lock F
 GLIBC_2.34 __pthread_mutex_trylock F
 GLIBC_2.34 __pthread_mutex_unlock F
-GLIBC_2.34 __pthread_mutexattr_init F
-GLIBC_2.34 __pthread_mutexattr_settype F
 GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 call_once F
@@ -2278,6 +2276,7 @@  GLIBC_2.34 cnd_signal F
 GLIBC_2.34 cnd_timedwait F
 GLIBC_2.34 cnd_wait F
 GLIBC_2.34 mtx_destroy F
+GLIBC_2.34 mtx_init F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
index 54e0db13d2..2861f052b0 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
@@ -69,7 +69,6 @@  GLIBC_2.2 pthread_yield F
 GLIBC_2.2 sem_timedwait F
 GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
-GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 53130e8b64..176324a57f 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -2198,6 +2198,7 @@  GLIBC_2.28 cnd_wait F
 GLIBC_2.28 fcntl F
 GLIBC_2.28 fcntl64 F
 GLIBC_2.28 mtx_destroy F
+GLIBC_2.28 mtx_init F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2242,12 +2243,9 @@  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_init F
 GLIBC_2.34 __pthread_mutex_lock F
 GLIBC_2.34 __pthread_mutex_trylock F
 GLIBC_2.34 __pthread_mutex_unlock F
-GLIBC_2.34 __pthread_mutexattr_init F
-GLIBC_2.34 __pthread_mutexattr_settype F
 GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 call_once F
@@ -2258,6 +2256,7 @@  GLIBC_2.34 cnd_signal F
 GLIBC_2.34 cnd_timedwait F
 GLIBC_2.34 cnd_wait F
 GLIBC_2.34 mtx_destroy F
+GLIBC_2.34 mtx_init F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
index bf2b06603d..aef0f9ec38 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
@@ -69,7 +69,6 @@  GLIBC_2.18 sem_timedwait F
 GLIBC_2.18 sem_trywait F
 GLIBC_2.18 sem_unlink F
 GLIBC_2.18 sem_wait F
-GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index cbb3c523b8..1d33c78491 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -2198,6 +2198,7 @@  GLIBC_2.28 cnd_wait F
 GLIBC_2.28 fcntl F
 GLIBC_2.28 fcntl64 F
 GLIBC_2.28 mtx_destroy F
+GLIBC_2.28 mtx_init F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2239,12 +2240,9 @@  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_init F
 GLIBC_2.34 __pthread_mutex_lock F
 GLIBC_2.34 __pthread_mutex_trylock F
 GLIBC_2.34 __pthread_mutex_unlock F
-GLIBC_2.34 __pthread_mutexattr_init F
-GLIBC_2.34 __pthread_mutexattr_settype F
 GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 call_once F
@@ -2255,6 +2253,7 @@  GLIBC_2.34 cnd_signal F
 GLIBC_2.34 cnd_timedwait F
 GLIBC_2.34 cnd_wait F
 GLIBC_2.34 mtx_destroy F
+GLIBC_2.34 mtx_init F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
index bf2b06603d..aef0f9ec38 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
@@ -69,7 +69,6 @@  GLIBC_2.18 sem_timedwait F
 GLIBC_2.18 sem_trywait F
 GLIBC_2.18 sem_unlink F
 GLIBC_2.18 sem_wait F
-GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 93b13a4032..9fb953d54a 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -2026,6 +2026,7 @@  GLIBC_2.28 cnd_wait F
 GLIBC_2.28 fcntl F
 GLIBC_2.28 fcntl64 F
 GLIBC_2.28 mtx_destroy F
+GLIBC_2.28 mtx_init F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2225,12 +2226,9 @@  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_init F
 GLIBC_2.34 __pthread_mutex_lock F
 GLIBC_2.34 __pthread_mutex_trylock F
 GLIBC_2.34 __pthread_mutex_unlock F
-GLIBC_2.34 __pthread_mutexattr_init F
-GLIBC_2.34 __pthread_mutexattr_settype F
 GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 call_once F
@@ -2241,6 +2239,7 @@  GLIBC_2.34 cnd_signal F
 GLIBC_2.34 cnd_timedwait F
 GLIBC_2.34 cnd_wait F
 GLIBC_2.34 mtx_destroy F
+GLIBC_2.34 mtx_init F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
index e159d47826..bd6af822ef 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
@@ -68,7 +68,6 @@  GLIBC_2.2 sem_unlink F
 GLIBC_2.2 sem_wait F
 GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
-GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index e923ba0743..12fc2cc399 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -2024,6 +2024,7 @@  GLIBC_2.28 cnd_wait F
 GLIBC_2.28 fcntl F
 GLIBC_2.28 fcntl64 F
 GLIBC_2.28 mtx_destroy F
+GLIBC_2.28 mtx_init F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2223,12 +2224,9 @@  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_init F
 GLIBC_2.34 __pthread_mutex_lock F
 GLIBC_2.34 __pthread_mutex_trylock F
 GLIBC_2.34 __pthread_mutex_unlock F
-GLIBC_2.34 __pthread_mutexattr_init F
-GLIBC_2.34 __pthread_mutexattr_settype F
 GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 call_once F
@@ -2239,6 +2237,7 @@  GLIBC_2.34 cnd_signal F
 GLIBC_2.34 cnd_timedwait F
 GLIBC_2.34 cnd_wait F
 GLIBC_2.34 mtx_destroy F
+GLIBC_2.34 mtx_init F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
index e159d47826..bd6af822ef 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
@@ -68,7 +68,6 @@  GLIBC_2.2 sem_unlink F
 GLIBC_2.2 sem_wait F
 GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
-GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 331772354f..b98bfd1579 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -2032,6 +2032,7 @@  GLIBC_2.28 cnd_wait F
 GLIBC_2.28 fcntl F
 GLIBC_2.28 fcntl64 F
 GLIBC_2.28 mtx_destroy F
+GLIBC_2.28 mtx_init F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2231,12 +2232,9 @@  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_init F
 GLIBC_2.34 __pthread_mutex_lock F
 GLIBC_2.34 __pthread_mutex_trylock F
 GLIBC_2.34 __pthread_mutex_unlock F
-GLIBC_2.34 __pthread_mutexattr_init F
-GLIBC_2.34 __pthread_mutexattr_settype F
 GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 call_once F
@@ -2247,6 +2245,7 @@  GLIBC_2.34 cnd_signal F
 GLIBC_2.34 cnd_timedwait F
 GLIBC_2.34 cnd_wait F
 GLIBC_2.34 mtx_destroy F
+GLIBC_2.34 mtx_init F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 813a3e7347..a2d4ba5302 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -2027,6 +2027,7 @@  GLIBC_2.28 cnd_timedwait F
 GLIBC_2.28 cnd_wait F
 GLIBC_2.28 fcntl64 F
 GLIBC_2.28 mtx_destroy F
+GLIBC_2.28 mtx_init F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2225,12 +2226,9 @@  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_init F
 GLIBC_2.34 __pthread_mutex_lock F
 GLIBC_2.34 __pthread_mutex_trylock F
 GLIBC_2.34 __pthread_mutex_unlock F
-GLIBC_2.34 __pthread_mutexattr_init F
-GLIBC_2.34 __pthread_mutexattr_settype F
 GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 call_once F
@@ -2241,6 +2239,7 @@  GLIBC_2.34 cnd_signal F
 GLIBC_2.34 cnd_timedwait F
 GLIBC_2.34 cnd_wait F
 GLIBC_2.34 mtx_destroy F
+GLIBC_2.34 mtx_init F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 2dad49c10c..a51b84aabd 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -2240,6 +2240,7 @@  GLIBC_2.28 cnd_wait F
 GLIBC_2.28 fcntl F
 GLIBC_2.28 fcntl64 F
 GLIBC_2.28 mtx_destroy F
+GLIBC_2.28 mtx_init F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2281,12 +2282,9 @@  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_init F
 GLIBC_2.34 __pthread_mutex_lock F
 GLIBC_2.34 __pthread_mutex_trylock F
 GLIBC_2.34 __pthread_mutex_unlock F
-GLIBC_2.34 __pthread_mutexattr_init F
-GLIBC_2.34 __pthread_mutexattr_settype F
 GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 call_once F
@@ -2297,6 +2295,7 @@  GLIBC_2.34 cnd_signal F
 GLIBC_2.34 cnd_timedwait F
 GLIBC_2.34 cnd_wait F
 GLIBC_2.34 mtx_destroy F
+GLIBC_2.34 mtx_init F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
index 747161ee6b..6be2396f36 100644
--- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
@@ -69,7 +69,6 @@  GLIBC_2.21 sem_timedwait F
 GLIBC_2.21 sem_trywait F
 GLIBC_2.21 sem_unlink F
 GLIBC_2.21 sem_wait F
-GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 4081092566..d43d935915 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -2060,6 +2060,7 @@  GLIBC_2.28 cnd_wait F
 GLIBC_2.28 fcntl F
 GLIBC_2.28 fcntl64 F
 GLIBC_2.28 mtx_destroy F
+GLIBC_2.28 mtx_init F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2289,12 +2290,9 @@  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_init F
 GLIBC_2.34 __pthread_mutex_lock F
 GLIBC_2.34 __pthread_mutex_trylock F
 GLIBC_2.34 __pthread_mutex_unlock F
-GLIBC_2.34 __pthread_mutexattr_init F
-GLIBC_2.34 __pthread_mutexattr_settype F
 GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 call_once F
@@ -2305,6 +2303,7 @@  GLIBC_2.34 cnd_signal F
 GLIBC_2.34 cnd_timedwait F
 GLIBC_2.34 cnd_wait F
 GLIBC_2.34 mtx_destroy F
+GLIBC_2.34 mtx_init F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
index 864364b0bb..becc6afeca 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
@@ -69,7 +69,6 @@  GLIBC_2.2 pthread_yield F
 GLIBC_2.2 sem_timedwait F
 GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
-GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 72aa073e62..e530238266 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -2064,6 +2064,7 @@  GLIBC_2.28 cnd_wait F
 GLIBC_2.28 fcntl F
 GLIBC_2.28 fcntl64 F
 GLIBC_2.28 mtx_destroy F
+GLIBC_2.28 mtx_init F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2322,12 +2323,9 @@  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_init F
 GLIBC_2.34 __pthread_mutex_lock F
 GLIBC_2.34 __pthread_mutex_trylock F
 GLIBC_2.34 __pthread_mutex_unlock F
-GLIBC_2.34 __pthread_mutexattr_init F
-GLIBC_2.34 __pthread_mutexattr_settype F
 GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 call_once F
@@ -2338,6 +2336,7 @@  GLIBC_2.34 cnd_signal F
 GLIBC_2.34 cnd_timedwait F
 GLIBC_2.34 cnd_wait F
 GLIBC_2.34 mtx_destroy F
+GLIBC_2.34 mtx_init F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 2faa943f05..d943ad39a7 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -128,6 +128,7 @@  GLIBC_2.28 cnd_timedwait F
 GLIBC_2.28 cnd_wait F
 GLIBC_2.28 fcntl64 F
 GLIBC_2.28 mtx_destroy F
+GLIBC_2.28 mtx_init F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2143,12 +2144,9 @@  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_init F
 GLIBC_2.34 __pthread_mutex_lock F
 GLIBC_2.34 __pthread_mutex_trylock F
 GLIBC_2.34 __pthread_mutex_unlock F
-GLIBC_2.34 __pthread_mutexattr_init F
-GLIBC_2.34 __pthread_mutexattr_settype F
 GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 call_once F
@@ -2159,6 +2157,7 @@  GLIBC_2.34 cnd_signal F
 GLIBC_2.34 cnd_timedwait F
 GLIBC_2.34 cnd_wait F
 GLIBC_2.34 mtx_destroy F
+GLIBC_2.34 mtx_init F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
index 6691151b2e..2dd6e41ab2 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
@@ -3,7 +3,6 @@  GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
 GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_setattr_default_np F
-GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 7d2d64b9b7..345ceae778 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -2297,6 +2297,7 @@  GLIBC_2.28 cnd_timedwait F
 GLIBC_2.28 cnd_wait F
 GLIBC_2.28 fcntl64 F
 GLIBC_2.28 mtx_destroy F
+GLIBC_2.28 mtx_init F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2444,12 +2445,9 @@  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_init F
 GLIBC_2.34 __pthread_mutex_lock F
 GLIBC_2.34 __pthread_mutex_trylock F
 GLIBC_2.34 __pthread_mutex_unlock F
-GLIBC_2.34 __pthread_mutexattr_init F
-GLIBC_2.34 __pthread_mutexattr_settype F
 GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 call_once F
@@ -2460,6 +2458,7 @@  GLIBC_2.34 cnd_signal F
 GLIBC_2.34 cnd_timedwait F
 GLIBC_2.34 cnd_wait F
 GLIBC_2.34 mtx_destroy F
+GLIBC_2.34 mtx_init F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
index 040566dd8d..d70d7eff42 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
@@ -69,7 +69,6 @@  GLIBC_2.17 sem_unlink F
 GLIBC_2.17 sem_wait F
 GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_setattr_default_np F
-GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 0bcd294c6d..b5b6bea53b 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1266,6 +1266,7 @@  GLIBC_2.33 msgsnd F
 GLIBC_2.33 msync F
 GLIBC_2.33 mtrace F
 GLIBC_2.33 mtx_destroy F
+GLIBC_2.33 mtx_init F
 GLIBC_2.33 munlock F
 GLIBC_2.33 munlockall F
 GLIBC_2.33 munmap F
@@ -2009,12 +2010,9 @@  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_init F
 GLIBC_2.34 __pthread_mutex_lock F
 GLIBC_2.34 __pthread_mutex_trylock F
 GLIBC_2.34 __pthread_mutex_unlock F
-GLIBC_2.34 __pthread_mutexattr_init F
-GLIBC_2.34 __pthread_mutexattr_settype F
 GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 call_once F
@@ -2025,6 +2023,7 @@  GLIBC_2.34 cnd_signal F
 GLIBC_2.34 cnd_timedwait F
 GLIBC_2.34 cnd_wait F
 GLIBC_2.34 mtx_destroy F
+GLIBC_2.34 mtx_init F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
index 899cdd8dac..e8fbf99ba0 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
@@ -13,7 +13,6 @@  GLIBC_2.33 __pthread_unregister_cancel_restore F
 GLIBC_2.33 flockfile F
 GLIBC_2.33 ftrylockfile F
 GLIBC_2.33 funlockfile F
-GLIBC_2.33 mtx_init F
 GLIBC_2.33 mtx_lock F
 GLIBC_2.33 mtx_timedlock F
 GLIBC_2.33 mtx_trylock F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index c03a324ab9..da0a49ebb8 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -2168,6 +2168,7 @@  GLIBC_2.28 cnd_timedwait F
 GLIBC_2.28 cnd_wait F
 GLIBC_2.28 fcntl64 F
 GLIBC_2.28 mtx_destroy F
+GLIBC_2.28 mtx_init F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2209,12 +2210,9 @@  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_init F
 GLIBC_2.34 __pthread_mutex_lock F
 GLIBC_2.34 __pthread_mutex_trylock F
 GLIBC_2.34 __pthread_mutex_unlock F
-GLIBC_2.34 __pthread_mutexattr_init F
-GLIBC_2.34 __pthread_mutexattr_settype F
 GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 call_once F
@@ -2225,6 +2223,7 @@  GLIBC_2.34 cnd_signal F
 GLIBC_2.34 cnd_timedwait F
 GLIBC_2.34 cnd_wait F
 GLIBC_2.34 mtx_destroy F
+GLIBC_2.34 mtx_init F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
index 0f611f2217..880a5ca8a6 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
@@ -69,7 +69,6 @@  GLIBC_2.27 sem_timedwait F
 GLIBC_2.27 sem_trywait F
 GLIBC_2.27 sem_unlink F
 GLIBC_2.27 sem_wait F
-GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index ec70b32df0..e913f0c616 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -2069,6 +2069,7 @@  GLIBC_2.28 cnd_wait F
 GLIBC_2.28 fcntl F
 GLIBC_2.28 fcntl64 F
 GLIBC_2.28 mtx_destroy F
+GLIBC_2.28 mtx_init F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2287,12 +2288,9 @@  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_init F
 GLIBC_2.34 __pthread_mutex_lock F
 GLIBC_2.34 __pthread_mutex_trylock F
 GLIBC_2.34 __pthread_mutex_unlock F
-GLIBC_2.34 __pthread_mutexattr_init F
-GLIBC_2.34 __pthread_mutexattr_settype F
 GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 call_once F
@@ -2303,6 +2301,7 @@  GLIBC_2.34 cnd_signal F
 GLIBC_2.34 cnd_timedwait F
 GLIBC_2.34 cnd_wait F
 GLIBC_2.34 mtx_destroy F
+GLIBC_2.34 mtx_init F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
index 06bc637dc4..c62aa60dae 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
@@ -70,7 +70,6 @@  GLIBC_2.2 pthread_yield F
 GLIBC_2.2 sem_timedwait F
 GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
-GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index aa1b2b3fab..ee4ac1a8db 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -1966,6 +1966,7 @@  GLIBC_2.28 cnd_timedwait F
 GLIBC_2.28 cnd_wait F
 GLIBC_2.28 fcntl64 F
 GLIBC_2.28 mtx_destroy F
+GLIBC_2.28 mtx_init F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2180,12 +2181,9 @@  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_init F
 GLIBC_2.34 __pthread_mutex_lock F
 GLIBC_2.34 __pthread_mutex_trylock F
 GLIBC_2.34 __pthread_mutex_unlock F
-GLIBC_2.34 __pthread_mutexattr_init F
-GLIBC_2.34 __pthread_mutexattr_settype F
 GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 call_once F
@@ -2196,6 +2194,7 @@  GLIBC_2.34 cnd_signal F
 GLIBC_2.34 cnd_timedwait F
 GLIBC_2.34 cnd_wait F
 GLIBC_2.34 mtx_destroy F
+GLIBC_2.34 mtx_init F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
index 2a776f1a4f..3e5b1677d1 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
@@ -62,7 +62,6 @@  GLIBC_2.2 sem_unlink F
 GLIBC_2.2 sem_wait F
 GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
-GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 7ee127eee5..9827e4dcc7 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -1943,6 +1943,7 @@  GLIBC_2.28 cnd_wait F
 GLIBC_2.28 fcntl F
 GLIBC_2.28 fcntl64 F
 GLIBC_2.28 mtx_destroy F
+GLIBC_2.28 mtx_init F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2149,12 +2150,9 @@  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_init F
 GLIBC_2.34 __pthread_mutex_lock F
 GLIBC_2.34 __pthread_mutex_trylock F
 GLIBC_2.34 __pthread_mutex_unlock F
-GLIBC_2.34 __pthread_mutexattr_init F
-GLIBC_2.34 __pthread_mutexattr_settype F
 GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 call_once F
@@ -2165,6 +2163,7 @@  GLIBC_2.34 cnd_signal F
 GLIBC_2.34 cnd_timedwait F
 GLIBC_2.34 cnd_wait F
 GLIBC_2.34 mtx_destroy F
+GLIBC_2.34 mtx_init F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
index f0950eec65..4914741631 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
@@ -61,7 +61,6 @@  GLIBC_2.2 sem_unlink F
 GLIBC_2.2 sem_wait F
 GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
-GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index bf24941a78..20941d1325 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -1943,6 +1943,7 @@  GLIBC_2.28 cnd_wait F
 GLIBC_2.28 fcntl F
 GLIBC_2.28 fcntl64 F
 GLIBC_2.28 mtx_destroy F
+GLIBC_2.28 mtx_init F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2146,12 +2147,9 @@  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_init F
 GLIBC_2.34 __pthread_mutex_lock F
 GLIBC_2.34 __pthread_mutex_trylock F
 GLIBC_2.34 __pthread_mutex_unlock F
-GLIBC_2.34 __pthread_mutexattr_init F
-GLIBC_2.34 __pthread_mutexattr_settype F
 GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 call_once F
@@ -2162,6 +2160,7 @@  GLIBC_2.34 cnd_signal F
 GLIBC_2.34 cnd_timedwait F
 GLIBC_2.34 cnd_wait F
 GLIBC_2.34 mtx_destroy F
+GLIBC_2.34 mtx_init F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
index f0950eec65..4914741631 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
@@ -61,7 +61,6 @@  GLIBC_2.2 sem_unlink F
 GLIBC_2.2 sem_wait F
 GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
-GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 77e3b83ffb..b9be2c2c6d 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -2063,6 +2063,7 @@  GLIBC_2.28 cnd_wait F
 GLIBC_2.28 fcntl F
 GLIBC_2.28 fcntl64 F
 GLIBC_2.28 mtx_destroy F
+GLIBC_2.28 mtx_init F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2278,12 +2279,9 @@  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_init F
 GLIBC_2.34 __pthread_mutex_lock F
 GLIBC_2.34 __pthread_mutex_trylock F
 GLIBC_2.34 __pthread_mutex_unlock F
-GLIBC_2.34 __pthread_mutexattr_init F
-GLIBC_2.34 __pthread_mutexattr_settype F
 GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 call_once F
@@ -2294,6 +2292,7 @@  GLIBC_2.34 cnd_signal F
 GLIBC_2.34 cnd_timedwait F
 GLIBC_2.34 cnd_wait F
 GLIBC_2.34 mtx_destroy F
+GLIBC_2.34 mtx_init F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
index a559c85f49..421e6820f1 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
@@ -69,7 +69,6 @@  GLIBC_2.2 pthread_yield F
 GLIBC_2.2 sem_timedwait F
 GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
-GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index bc5217167f..09035cac1b 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -1996,6 +1996,7 @@  GLIBC_2.28 cnd_timedwait F
 GLIBC_2.28 cnd_wait F
 GLIBC_2.28 fcntl64 F
 GLIBC_2.28 mtx_destroy F
+GLIBC_2.28 mtx_init F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2197,12 +2198,9 @@  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_init F
 GLIBC_2.34 __pthread_mutex_lock F
 GLIBC_2.34 __pthread_mutex_trylock F
 GLIBC_2.34 __pthread_mutex_unlock F
-GLIBC_2.34 __pthread_mutexattr_init F
-GLIBC_2.34 __pthread_mutexattr_settype F
 GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 call_once F
@@ -2213,6 +2211,7 @@  GLIBC_2.34 cnd_signal F
 GLIBC_2.34 cnd_timedwait F
 GLIBC_2.34 cnd_wait F
 GLIBC_2.34 mtx_destroy F
+GLIBC_2.34 mtx_init F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
index 850b74f26a..66c8d26ca9 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
@@ -61,7 +61,6 @@  GLIBC_2.2 sem_unlink F
 GLIBC_2.2 sem_wait F
 GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
-GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 1c3ac87113..c8b0e2cced 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -1955,6 +1955,7 @@  GLIBC_2.28 cnd_timedwait F
 GLIBC_2.28 cnd_wait F
 GLIBC_2.28 fcntl64 F
 GLIBC_2.28 mtx_destroy F
+GLIBC_2.28 mtx_init F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2158,12 +2159,9 @@  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_init F
 GLIBC_2.34 __pthread_mutex_lock F
 GLIBC_2.34 __pthread_mutex_trylock F
 GLIBC_2.34 __pthread_mutex_unlock F
-GLIBC_2.34 __pthread_mutexattr_init F
-GLIBC_2.34 __pthread_mutexattr_settype F
 GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 call_once F
@@ -2174,6 +2172,7 @@  GLIBC_2.34 cnd_signal F
 GLIBC_2.34 cnd_timedwait F
 GLIBC_2.34 cnd_wait F
 GLIBC_2.34 mtx_destroy F
+GLIBC_2.34 mtx_init F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
index 92ca4a4d3f..c4a641ddc0 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
@@ -60,7 +60,6 @@  GLIBC_2.2.5 sem_trywait F
 GLIBC_2.2.5 sem_unlink F
 GLIBC_2.2.5 sem_wait F
 GLIBC_2.2.6 __libpthread_version_placeholder F
-GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 210cd24093..7303bebc08 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -2220,6 +2220,7 @@  GLIBC_2.28 cnd_timedwait F
 GLIBC_2.28 cnd_wait F
 GLIBC_2.28 fcntl64 F
 GLIBC_2.28 mtx_destroy F
+GLIBC_2.28 mtx_init F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2263,12 +2264,9 @@  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_init F
 GLIBC_2.34 __pthread_mutex_lock F
 GLIBC_2.34 __pthread_mutex_trylock F
 GLIBC_2.34 __pthread_mutex_unlock F
-GLIBC_2.34 __pthread_mutexattr_init F
-GLIBC_2.34 __pthread_mutexattr_settype F
 GLIBC_2.34 __pthread_setspecific F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 call_once F
@@ -2279,6 +2277,7 @@  GLIBC_2.34 cnd_signal F
 GLIBC_2.34 cnd_timedwait F
 GLIBC_2.34 cnd_wait F
 GLIBC_2.34 mtx_destroy F
+GLIBC_2.34 mtx_init F
 GLIBC_2.34 pthread_cond_clockwait F
 GLIBC_2.34 pthread_condattr_getclock F
 GLIBC_2.34 pthread_condattr_getpshared F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
index 5e221da268..7a75151bc3 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
@@ -69,7 +69,6 @@  GLIBC_2.16 sem_unlink F
 GLIBC_2.16 sem_wait F
 GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_setattr_default_np F
-GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F