[14/19] nptl: Move mtx_unlock into libc

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

Commit Message

Wilco Dijkstra via Libc-alpha April 26, 2021, 5:02 p.m.
The symbol was moved using scripts/move-symbol-to-libc.py.

__pthread_mutex_unlock@GLIBC_2.34 is not removed in this commit
because it is still used from nptl/nptl-init.c.
---
 nptl/Versions                                         |  3 ++-
 sysdeps/pthread/Makefile                              |  2 +-
 sysdeps/pthread/mtx_unlock.c                          | 11 ++++++++++-
 sysdeps/unix/sysv/linux/aarch64/libc.abilist          |  2 ++
 sysdeps/unix/sysv/linux/aarch64/libpthread.abilist    |  1 -
 sysdeps/unix/sysv/linux/alpha/libc.abilist            |  2 ++
 sysdeps/unix/sysv/linux/alpha/libpthread.abilist      |  1 -
 sysdeps/unix/sysv/linux/arc/libc.abilist              |  2 ++
 sysdeps/unix/sysv/linux/arc/libpthread.abilist        |  1 -
 sysdeps/unix/sysv/linux/arm/be/libc.abilist           |  2 ++
 sysdeps/unix/sysv/linux/arm/be/libpthread.abilist     |  1 -
 sysdeps/unix/sysv/linux/arm/le/libc.abilist           |  2 ++
 sysdeps/unix/sysv/linux/arm/le/libpthread.abilist     |  1 -
 sysdeps/unix/sysv/linux/csky/libc.abilist             |  2 ++
 sysdeps/unix/sysv/linux/csky/libpthread.abilist       |  1 -
 sysdeps/unix/sysv/linux/hppa/libc.abilist             |  2 ++
 sysdeps/unix/sysv/linux/hppa/libpthread.abilist       |  1 -
 sysdeps/unix/sysv/linux/i386/libc.abilist             |  2 ++
 sysdeps/unix/sysv/linux/i386/libpthread.abilist       |  1 -
 sysdeps/unix/sysv/linux/ia64/libc.abilist             |  2 ++
 sysdeps/unix/sysv/linux/ia64/libpthread.abilist       |  1 -
 sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist    |  2 ++
 .../unix/sysv/linux/m68k/coldfire/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist      |  2 ++
 .../unix/sysv/linux/m68k/m680x0/libpthread.abilist    |  1 -
 sysdeps/unix/sysv/linux/microblaze/be/libc.abilist    |  2 ++
 .../unix/sysv/linux/microblaze/be/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/microblaze/le/libc.abilist    |  2 ++
 .../unix/sysv/linux/microblaze/le/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist  |  2 ++
 .../unix/sysv/linux/mips/mips32/libpthread.abilist    |  1 -
 .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist    |  2 ++
 .../unix/sysv/linux/mips/mips64/libpthread.abilist    |  1 -
 sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist  |  2 ++
 sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist  |  2 ++
 sysdeps/unix/sysv/linux/nios2/libc.abilist            |  2 ++
 sysdeps/unix/sysv/linux/nios2/libpthread.abilist      |  1 -
 .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist     |  2 ++
 .../sysv/linux/powerpc/powerpc32/libpthread.abilist   |  1 -
 .../sysv/linux/powerpc/powerpc32/nofpu/libc.abilist   |  2 ++
 .../unix/sysv/linux/powerpc/powerpc64/be/libc.abilist |  2 ++
 .../linux/powerpc/powerpc64/be/libpthread.abilist     |  1 -
 .../unix/sysv/linux/powerpc/powerpc64/le/libc.abilist |  2 ++
 .../linux/powerpc/powerpc64/le/libpthread.abilist     |  1 -
 sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist       |  2 ++
 sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist |  1 -
 sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist       |  2 ++
 sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist |  1 -
 sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist     |  2 ++
 .../unix/sysv/linux/s390/s390-32/libpthread.abilist   |  1 -
 sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist     |  2 ++
 .../unix/sysv/linux/s390/s390-64/libpthread.abilist   |  1 -
 sysdeps/unix/sysv/linux/sh/be/libc.abilist            |  2 ++
 sysdeps/unix/sysv/linux/sh/be/libpthread.abilist      |  1 -
 sysdeps/unix/sysv/linux/sh/le/libc.abilist            |  2 ++
 sysdeps/unix/sysv/linux/sh/le/libpthread.abilist      |  1 -
 sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist    |  2 ++
 .../unix/sysv/linux/sparc/sparc32/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist    |  2 ++
 .../unix/sysv/linux/sparc/sparc64/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/x86_64/64/libc.abilist        |  2 ++
 sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist       |  2 ++
 sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist |  1 -
 64 files changed, 77 insertions(+), 32 deletions(-)

-- 
2.30.2

Comments

Wilco Dijkstra via Libc-alpha May 2, 2021, 8:46 p.m. | #1
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>

 
> __pthread_mutex_unlock@GLIBC_2.34 is not removed in this commit

> because it is still used from nptl/nptl-init.c.


OK (is NOT removed, had to read that twice).

> ---

>  nptl/Versions                                         |  3 ++-

>  sysdeps/pthread/Makefile                              |  2 +-

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

>  64 files changed, 77 insertions(+), 32 deletions(-)

> 

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

> index 9eea4082a0..47704ba4d1 100644

> --- a/nptl/Versions

> +++ b/nptl/Versions

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

>      mtx_lock;

>      mtx_timedlock;

>      mtx_trylock;

> +    mtx_unlock;

>      thrd_current;

>      thrd_equal;

>      thrd_sleep;

> @@ -174,6 +175,7 @@ libc {

>      mtx_lock;

>      mtx_timedlock;

>      mtx_trylock;

> +    mtx_unlock;

>      pthread_cond_clockwait;

>      pthread_condattr_getclock;

>      pthread_condattr_getpshared;

> @@ -385,7 +387,6 @@ libpthread {

>  

>    # C11 thread symbols.

>    GLIBC_2.28 {

> -    mtx_unlock;

>      thrd_create;

>      thrd_detach;

>      thrd_exit;

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

> index dbff46dd45..6f204ccab2 100644

> --- a/sysdeps/pthread/Makefile

> +++ b/sysdeps/pthread/Makefile

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

>  routines += thrd_current thrd_equal thrd_sleep thrd_yield

>  

>  libpthread-routines += thrd_create thrd_detach thrd_exit thrd_join \

> -		       mtx_unlock \

>  		       tss_create tss_delete tss_get tss_set

>  

>  $(libpthread-routines-var) += \

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

>    mtx_lock \

>    mtx_timedlock \

>    mtx_trylock \

> +  mtx_unlock \

>  

>  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_unlock.c b/sysdeps/pthread/mtx_unlock.c

> index 04cd748887..d3765cdca1 100644

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

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

> @@ -17,10 +17,19 @@

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

>  

>  #include "thrd_priv.h"

> +#include <shlib-compat.h>

>  

>  int

> -mtx_unlock (mtx_t *mutex)

> +__mtx_unlock (mtx_t *mutex)

>  {

>    int err_code = __pthread_mutex_unlock ((pthread_mutex_t *) mutex);

>    return thrd_err_map (err_code);

>  }

> +#if PTHREAD_IN_LIBC

> +versioned_symbol (libc, __mtx_unlock, mtx_unlock, GLIBC_2_34);

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

> +compat_symbol (libpthread, __mtx_unlock, mtx_unlock, GLIBC_2_28);

> +# endif

> +#else /* !PTHREAD_IN_LIBC */

> +strong_alias (__mtx_unlock, mtx_unlock)

> +#endif

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

> index ef3072e5b9..fddeb25a72 100644

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

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

> @@ -2211,6 +2211,7 @@ GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> +GLIBC_2.28 mtx_unlock F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2268,6 +2269,7 @@ GLIBC_2.34 mtx_init F

>  GLIBC_2.34 mtx_lock F

>  GLIBC_2.34 mtx_timedlock F

>  GLIBC_2.34 mtx_trylock F

> +GLIBC_2.34 mtx_unlock 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 516f2acc12..d18f1540f8 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_unlock F

>  GLIBC_2.28 thrd_create F

>  GLIBC_2.28 thrd_detach F

>  GLIBC_2.28 thrd_exit F

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

> index e66abe3e8f..38d2821356 100644

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

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

> @@ -2104,6 +2104,7 @@ GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> +GLIBC_2.28 mtx_unlock F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2349,6 +2350,7 @@ GLIBC_2.34 mtx_init F

>  GLIBC_2.34 mtx_lock F

>  GLIBC_2.34 mtx_timedlock F

>  GLIBC_2.34 mtx_trylock F

> +GLIBC_2.34 mtx_unlock 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 46246e0726..0357adc360 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_unlock F

>  GLIBC_2.28 thrd_create F

>  GLIBC_2.28 thrd_detach F

>  GLIBC_2.28 thrd_exit F

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

> index 993906ff5d..08d1092337 100644

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

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

> @@ -1268,6 +1268,7 @@ GLIBC_2.32 mtx_init F

>  GLIBC_2.32 mtx_lock F

>  GLIBC_2.32 mtx_timedlock F

>  GLIBC_2.32 mtx_trylock F

> +GLIBC_2.32 mtx_unlock F

>  GLIBC_2.32 munlock F

>  GLIBC_2.32 munlockall F

>  GLIBC_2.32 munmap F

> @@ -2027,6 +2028,7 @@ GLIBC_2.34 mtx_init F

>  GLIBC_2.34 mtx_lock F

>  GLIBC_2.34 mtx_timedlock F

>  GLIBC_2.34 mtx_trylock F

> +GLIBC_2.34 mtx_unlock 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 88b84360f4..f6d0d01f47 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_unlock F

>  GLIBC_2.32 pthread_attr_getaffinity_np F

>  GLIBC_2.32 pthread_attr_getguardsize F

>  GLIBC_2.32 pthread_attr_getstack F

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

> index e358752785..011d0a2a72 100644

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

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

> @@ -132,6 +132,7 @@ GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> +GLIBC_2.28 mtx_unlock F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -192,6 +193,7 @@ GLIBC_2.34 mtx_init F

>  GLIBC_2.34 mtx_lock F

>  GLIBC_2.34 mtx_timedlock F

>  GLIBC_2.34 mtx_trylock F

> +GLIBC_2.34 mtx_unlock 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 cbf4c73750..df380de883 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_unlock F

>  GLIBC_2.28 thrd_create F

>  GLIBC_2.28 thrd_detach F

>  GLIBC_2.28 thrd_exit F

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

> index 0d06e1d3af..77f88a1614 100644

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

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

> @@ -132,6 +132,7 @@ GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> +GLIBC_2.28 mtx_unlock F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -189,6 +190,7 @@ GLIBC_2.34 mtx_init F

>  GLIBC_2.34 mtx_lock F

>  GLIBC_2.34 mtx_timedlock F

>  GLIBC_2.34 mtx_trylock F

> +GLIBC_2.34 mtx_unlock 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 cbf4c73750..df380de883 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_unlock F

>  GLIBC_2.28 thrd_create F

>  GLIBC_2.28 thrd_detach F

>  GLIBC_2.28 thrd_exit F

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

> index a7df6f64fe..97dfaf2710 100644

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

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

> @@ -1323,6 +1323,7 @@ GLIBC_2.29 mtx_init F

>  GLIBC_2.29 mtx_lock F

>  GLIBC_2.29 mtx_timedlock F

>  GLIBC_2.29 mtx_trylock F

> +GLIBC_2.29 mtx_unlock F

>  GLIBC_2.29 munlock F

>  GLIBC_2.29 munlockall F

>  GLIBC_2.29 munmap F

> @@ -2211,6 +2212,7 @@ GLIBC_2.34 mtx_init F

>  GLIBC_2.34 mtx_lock F

>  GLIBC_2.34 mtx_timedlock F

>  GLIBC_2.34 mtx_trylock F

> +GLIBC_2.34 mtx_unlock 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 59658bc168..8f2662e794 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_unlock F

>  GLIBC_2.29 pthread_attr_getaffinity_np F

>  GLIBC_2.29 pthread_attr_getguardsize F

>  GLIBC_2.29 pthread_attr_getstack F

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

> index 2ec2e55e8e..673de09c0c 100644

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

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

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

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> +GLIBC_2.28 mtx_unlock F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2162,6 +2163,7 @@ GLIBC_2.34 mtx_init F

>  GLIBC_2.34 mtx_lock F

>  GLIBC_2.34 mtx_timedlock F

>  GLIBC_2.34 mtx_trylock F

> +GLIBC_2.34 mtx_unlock 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 8964f6ac06..666b409e05 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_unlock F

>  GLIBC_2.28 thrd_create F

>  GLIBC_2.28 thrd_detach F

>  GLIBC_2.28 thrd_exit F

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

> index 287b01f48c..ff914ff287 100644

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

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

> @@ -2117,6 +2117,7 @@ GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> +GLIBC_2.28 mtx_unlock F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2339,6 +2340,7 @@ GLIBC_2.34 mtx_init F

>  GLIBC_2.34 mtx_lock F

>  GLIBC_2.34 mtx_timedlock F

>  GLIBC_2.34 mtx_trylock F

> +GLIBC_2.34 mtx_unlock 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 259ad2840d..c151fd4bce 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_unlock F

>  GLIBC_2.28 thrd_create F

>  GLIBC_2.28 thrd_detach F

>  GLIBC_2.28 thrd_exit F

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

> index bf600fec71..b429c9d290 100644

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

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

> @@ -1978,6 +1978,7 @@ GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> +GLIBC_2.28 mtx_unlock F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2196,6 +2197,7 @@ GLIBC_2.34 mtx_init F

>  GLIBC_2.34 mtx_lock F

>  GLIBC_2.34 mtx_timedlock F

>  GLIBC_2.34 mtx_trylock F

> +GLIBC_2.34 mtx_unlock 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 d46bf76171..7b38318523 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_unlock F

>  GLIBC_2.28 thrd_create F

>  GLIBC_2.28 thrd_detach F

>  GLIBC_2.28 thrd_exit F

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

> index 8613618546..3232874576 100644

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

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

> @@ -133,6 +133,7 @@ GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> +GLIBC_2.28 mtx_unlock F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -193,6 +194,7 @@ GLIBC_2.34 mtx_init F

>  GLIBC_2.34 mtx_lock F

>  GLIBC_2.34 mtx_timedlock F

>  GLIBC_2.34 mtx_trylock F

> +GLIBC_2.34 mtx_unlock 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 cbf4c73750..df380de883 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_unlock F

>  GLIBC_2.28 thrd_create F

>  GLIBC_2.28 thrd_detach F

>  GLIBC_2.28 thrd_exit F

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

> index ff9ce0d15c..a9b92d93cd 100644

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

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

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

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> +GLIBC_2.28 mtx_unlock F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2282,6 +2283,7 @@ GLIBC_2.34 mtx_init F

>  GLIBC_2.34 mtx_lock F

>  GLIBC_2.34 mtx_timedlock F

>  GLIBC_2.34 mtx_trylock F

> +GLIBC_2.34 mtx_unlock 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 259ad2840d..c151fd4bce 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_unlock F

>  GLIBC_2.28 thrd_create F

>  GLIBC_2.28 thrd_detach F

>  GLIBC_2.28 thrd_exit F

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

> index bcb53f13f2..b022965fe0 100644

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

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

> @@ -2202,6 +2202,7 @@ GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> +GLIBC_2.28 mtx_unlock F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2262,6 +2263,7 @@ GLIBC_2.34 mtx_init F

>  GLIBC_2.34 mtx_lock F

>  GLIBC_2.34 mtx_timedlock F

>  GLIBC_2.34 mtx_trylock F

> +GLIBC_2.34 mtx_unlock 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 11a92d20ba..5ae61bbe9d 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_unlock F

>  GLIBC_2.28 thrd_create F

>  GLIBC_2.28 thrd_detach F

>  GLIBC_2.28 thrd_exit F

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

> index d82bbfd602..f3dbd4e6df 100644

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

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

> @@ -2202,6 +2202,7 @@ GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> +GLIBC_2.28 mtx_unlock F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2259,6 +2260,7 @@ GLIBC_2.34 mtx_init F

>  GLIBC_2.34 mtx_lock F

>  GLIBC_2.34 mtx_timedlock F

>  GLIBC_2.34 mtx_trylock F

> +GLIBC_2.34 mtx_unlock 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 11a92d20ba..5ae61bbe9d 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_unlock F

>  GLIBC_2.28 thrd_create F

>  GLIBC_2.28 thrd_detach F

>  GLIBC_2.28 thrd_exit F

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

> index b9e83b9ad4..51cd0e8a86 100644

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

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

> @@ -2030,6 +2030,7 @@ GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> +GLIBC_2.28 mtx_unlock F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2245,6 +2246,7 @@ GLIBC_2.34 mtx_init F

>  GLIBC_2.34 mtx_lock F

>  GLIBC_2.34 mtx_timedlock F

>  GLIBC_2.34 mtx_trylock F

> +GLIBC_2.34 mtx_unlock 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 bb8b100cd9..b9a81337d6 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_unlock F

>  GLIBC_2.28 thrd_create F

>  GLIBC_2.28 thrd_detach F

>  GLIBC_2.28 thrd_exit F

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

> index 56abfc9490..1211e370c8 100644

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

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

> @@ -2028,6 +2028,7 @@ GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> +GLIBC_2.28 mtx_unlock F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2243,6 +2244,7 @@ GLIBC_2.34 mtx_init F

>  GLIBC_2.34 mtx_lock F

>  GLIBC_2.34 mtx_timedlock F

>  GLIBC_2.34 mtx_trylock F

> +GLIBC_2.34 mtx_unlock 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 bb8b100cd9..b9a81337d6 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_unlock F

>  GLIBC_2.28 thrd_create F

>  GLIBC_2.28 thrd_detach F

>  GLIBC_2.28 thrd_exit F

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

> index b0e4e5d6e3..293c679204 100644

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

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

> @@ -2036,6 +2036,7 @@ GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> +GLIBC_2.28 mtx_unlock F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2251,6 +2252,7 @@ GLIBC_2.34 mtx_init F

>  GLIBC_2.34 mtx_lock F

>  GLIBC_2.34 mtx_timedlock F

>  GLIBC_2.34 mtx_trylock F

> +GLIBC_2.34 mtx_unlock 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 25e4cd3695..aa912f46d2 100644

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

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

> @@ -2031,6 +2031,7 @@ GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> +GLIBC_2.28 mtx_unlock F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2245,6 +2246,7 @@ GLIBC_2.34 mtx_init F

>  GLIBC_2.34 mtx_lock F

>  GLIBC_2.34 mtx_timedlock F

>  GLIBC_2.34 mtx_trylock F

> +GLIBC_2.34 mtx_unlock 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 7eadb2fe54..d5bb6cf400 100644

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

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

> @@ -2244,6 +2244,7 @@ GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> +GLIBC_2.28 mtx_unlock F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2301,6 +2302,7 @@ GLIBC_2.34 mtx_init F

>  GLIBC_2.34 mtx_lock F

>  GLIBC_2.34 mtx_timedlock F

>  GLIBC_2.34 mtx_trylock F

> +GLIBC_2.34 mtx_unlock 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 af14835c41..4e4b0c70fd 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_unlock F

>  GLIBC_2.28 thrd_create F

>  GLIBC_2.28 thrd_detach F

>  GLIBC_2.28 thrd_exit F

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

> index 3fde404d29..18e9526f46 100644

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

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

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

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> +GLIBC_2.28 mtx_unlock F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2309,6 +2310,7 @@ GLIBC_2.34 mtx_init F

>  GLIBC_2.34 mtx_lock F

>  GLIBC_2.34 mtx_timedlock F

>  GLIBC_2.34 mtx_trylock F

> +GLIBC_2.34 mtx_unlock 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 329b88cbee..175dfc459a 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_unlock F

>  GLIBC_2.28 thrd_create F

>  GLIBC_2.28 thrd_detach F

>  GLIBC_2.28 thrd_exit F

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

> index a313be1c1f..5dd0a83d0b 100644

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

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

> @@ -2068,6 +2068,7 @@ GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> +GLIBC_2.28 mtx_unlock F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2342,6 +2343,7 @@ GLIBC_2.34 mtx_init F

>  GLIBC_2.34 mtx_lock F

>  GLIBC_2.34 mtx_timedlock F

>  GLIBC_2.34 mtx_trylock F

> +GLIBC_2.34 mtx_unlock 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 3c6fdfc379..9703ac0e2f 100644

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

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

> @@ -132,6 +132,7 @@ GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> +GLIBC_2.28 mtx_unlock F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2163,6 +2164,7 @@ GLIBC_2.34 mtx_init F

>  GLIBC_2.34 mtx_lock F

>  GLIBC_2.34 mtx_timedlock F

>  GLIBC_2.34 mtx_trylock F

> +GLIBC_2.34 mtx_unlock 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 22d92be0c0..e4e52afc9d 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_unlock F

>  GLIBC_2.28 thrd_create F

>  GLIBC_2.28 thrd_detach F

>  GLIBC_2.28 thrd_exit F

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

> index 903b701ee7..b55ac71c1b 100644

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

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

> @@ -2301,6 +2301,7 @@ GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> +GLIBC_2.28 mtx_unlock F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2464,6 +2465,7 @@ GLIBC_2.34 mtx_init F

>  GLIBC_2.34 mtx_lock F

>  GLIBC_2.34 mtx_timedlock F

>  GLIBC_2.34 mtx_trylock F

> +GLIBC_2.34 mtx_unlock 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 516f2acc12..d18f1540f8 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_unlock F

>  GLIBC_2.28 thrd_create F

>  GLIBC_2.28 thrd_detach F

>  GLIBC_2.28 thrd_exit F

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

> index 4aeecf2e75..f5a3ab9bcd 100644

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

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

> @@ -1270,6 +1270,7 @@ GLIBC_2.33 mtx_init F

>  GLIBC_2.33 mtx_lock F

>  GLIBC_2.33 mtx_timedlock F

>  GLIBC_2.33 mtx_trylock F

> +GLIBC_2.33 mtx_unlock F

>  GLIBC_2.33 munlock F

>  GLIBC_2.33 munlockall F

>  GLIBC_2.33 munmap F

> @@ -2029,6 +2030,7 @@ GLIBC_2.34 mtx_init F

>  GLIBC_2.34 mtx_lock F

>  GLIBC_2.34 mtx_timedlock F

>  GLIBC_2.34 mtx_trylock F

> +GLIBC_2.34 mtx_unlock 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 2597776ed8..25a34d836d 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_unlock F

>  GLIBC_2.33 pthread_attr_getaffinity_np F

>  GLIBC_2.33 pthread_attr_getguardsize F

>  GLIBC_2.33 pthread_attr_getstack F

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

> index dea907a104..e1ab110de7 100644

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

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

> @@ -2172,6 +2172,7 @@ GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> +GLIBC_2.28 mtx_unlock F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2229,6 +2230,7 @@ GLIBC_2.34 mtx_init F

>  GLIBC_2.34 mtx_lock F

>  GLIBC_2.34 mtx_timedlock F

>  GLIBC_2.34 mtx_trylock F

> +GLIBC_2.34 mtx_unlock 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 b759bd2d96..70408a1f6b 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_unlock F

>  GLIBC_2.28 thrd_create F

>  GLIBC_2.28 thrd_detach F

>  GLIBC_2.28 thrd_exit F

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

> index 0c1f06fa4e..a20d113936 100644

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

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

> @@ -2073,6 +2073,7 @@ GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> +GLIBC_2.28 mtx_unlock F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2307,6 +2308,7 @@ GLIBC_2.34 mtx_init F

>  GLIBC_2.34 mtx_lock F

>  GLIBC_2.34 mtx_timedlock F

>  GLIBC_2.34 mtx_trylock F

> +GLIBC_2.34 mtx_unlock 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 90c504f2a8..79db0fcdcb 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_unlock F

>  GLIBC_2.28 thrd_create F

>  GLIBC_2.28 thrd_detach F

>  GLIBC_2.28 thrd_exit F

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

> index 0f0f889da9..8993c14069 100644

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

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

> @@ -1970,6 +1970,7 @@ GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> +GLIBC_2.28 mtx_unlock F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2200,6 +2201,7 @@ GLIBC_2.34 mtx_init F

>  GLIBC_2.34 mtx_lock F

>  GLIBC_2.34 mtx_timedlock F

>  GLIBC_2.34 mtx_trylock F

> +GLIBC_2.34 mtx_unlock 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 c448c783ec..18871ea360 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_unlock F

>  GLIBC_2.28 thrd_create F

>  GLIBC_2.28 thrd_detach F

>  GLIBC_2.28 thrd_exit F

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

> index 4d28a594be..86fb418fe9 100644

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

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

> @@ -1947,6 +1947,7 @@ GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> +GLIBC_2.28 mtx_unlock F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2169,6 +2170,7 @@ GLIBC_2.34 mtx_init F

>  GLIBC_2.34 mtx_lock F

>  GLIBC_2.34 mtx_timedlock F

>  GLIBC_2.34 mtx_trylock F

> +GLIBC_2.34 mtx_unlock 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 8964f6ac06..666b409e05 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_unlock F

>  GLIBC_2.28 thrd_create F

>  GLIBC_2.28 thrd_detach F

>  GLIBC_2.28 thrd_exit F

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

> index 6269dec706..e591103913 100644

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

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

> @@ -1947,6 +1947,7 @@ GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> +GLIBC_2.28 mtx_unlock F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2166,6 +2167,7 @@ GLIBC_2.34 mtx_init F

>  GLIBC_2.34 mtx_lock F

>  GLIBC_2.34 mtx_timedlock F

>  GLIBC_2.34 mtx_trylock F

> +GLIBC_2.34 mtx_unlock 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 8964f6ac06..666b409e05 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_unlock F

>  GLIBC_2.28 thrd_create F

>  GLIBC_2.28 thrd_detach F

>  GLIBC_2.28 thrd_exit F

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

> index d472ed6c6f..62df52de0b 100644

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

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

> @@ -2067,6 +2067,7 @@ GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> +GLIBC_2.28 mtx_unlock F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2298,6 +2299,7 @@ GLIBC_2.34 mtx_init F

>  GLIBC_2.34 mtx_lock F

>  GLIBC_2.34 mtx_timedlock F

>  GLIBC_2.34 mtx_trylock F

> +GLIBC_2.34 mtx_unlock 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 46246e0726..0357adc360 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_unlock F

>  GLIBC_2.28 thrd_create F

>  GLIBC_2.28 thrd_detach F

>  GLIBC_2.28 thrd_exit F

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

> index ca790641c1..440a75d481 100644

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

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

> @@ -2000,6 +2000,7 @@ GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> +GLIBC_2.28 mtx_unlock F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2217,6 +2218,7 @@ GLIBC_2.34 mtx_init F

>  GLIBC_2.34 mtx_lock F

>  GLIBC_2.34 mtx_timedlock F

>  GLIBC_2.34 mtx_trylock F

> +GLIBC_2.34 mtx_unlock 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 d46bf76171..7b38318523 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_unlock F

>  GLIBC_2.28 thrd_create F

>  GLIBC_2.28 thrd_detach F

>  GLIBC_2.28 thrd_exit F

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

> index a0f30252ee..001bfbe8fd 100644

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

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

> @@ -1959,6 +1959,7 @@ GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> +GLIBC_2.28 mtx_unlock F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2178,6 +2179,7 @@ GLIBC_2.34 mtx_init F

>  GLIBC_2.34 mtx_lock F

>  GLIBC_2.34 mtx_timedlock F

>  GLIBC_2.34 mtx_trylock F

> +GLIBC_2.34 mtx_unlock 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 5b69b3b2b8..2d147416d8 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_unlock F

>  GLIBC_2.28 thrd_create F

>  GLIBC_2.28 thrd_detach F

>  GLIBC_2.28 thrd_exit F

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

> index 51ceeb216e..46c26caced 100644

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

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

> @@ -2224,6 +2224,7 @@ GLIBC_2.28 mtx_init F

>  GLIBC_2.28 mtx_lock F

>  GLIBC_2.28 mtx_timedlock F

>  GLIBC_2.28 mtx_trylock F

> +GLIBC_2.28 mtx_unlock F

>  GLIBC_2.28 renameat2 F

>  GLIBC_2.28 statx F

>  GLIBC_2.28 thrd_current F

> @@ -2283,6 +2284,7 @@ GLIBC_2.34 mtx_init F

>  GLIBC_2.34 mtx_lock F

>  GLIBC_2.34 mtx_timedlock F

>  GLIBC_2.34 mtx_trylock F

> +GLIBC_2.34 mtx_unlock 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 22c36b9d2e..3ab8e0dca9 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_unlock F

>  GLIBC_2.28 thrd_create F

>  GLIBC_2.28 thrd_detach F

>  GLIBC_2.28 thrd_exit F

> 



-- 
Cheers,
Carlos.

Patch

diff --git a/nptl/Versions b/nptl/Versions
index 9eea4082a0..47704ba4d1 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -138,6 +138,7 @@  libc {
     mtx_lock;
     mtx_timedlock;
     mtx_trylock;
+    mtx_unlock;
     thrd_current;
     thrd_equal;
     thrd_sleep;
@@ -174,6 +175,7 @@  libc {
     mtx_lock;
     mtx_timedlock;
     mtx_trylock;
+    mtx_unlock;
     pthread_cond_clockwait;
     pthread_condattr_getclock;
     pthread_condattr_getpshared;
@@ -385,7 +387,6 @@  libpthread {
 
   # C11 thread symbols.
   GLIBC_2.28 {
-    mtx_unlock;
     thrd_create;
     thrd_detach;
     thrd_exit;
diff --git a/sysdeps/pthread/Makefile b/sysdeps/pthread/Makefile
index dbff46dd45..6f204ccab2 100644
--- a/sysdeps/pthread/Makefile
+++ b/sysdeps/pthread/Makefile
@@ -32,7 +32,6 @@  headers += threads.h
 routines += thrd_current thrd_equal thrd_sleep thrd_yield
 
 libpthread-routines += thrd_create thrd_detach thrd_exit thrd_join \
-		       mtx_unlock \
 		       tss_create tss_delete tss_get tss_set
 
 $(libpthread-routines-var) += \
@@ -48,6 +47,7 @@  $(libpthread-routines-var) += \
   mtx_lock \
   mtx_timedlock \
   mtx_trylock \
+  mtx_unlock \
 
 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_unlock.c b/sysdeps/pthread/mtx_unlock.c
index 04cd748887..d3765cdca1 100644
--- a/sysdeps/pthread/mtx_unlock.c
+++ b/sysdeps/pthread/mtx_unlock.c
@@ -17,10 +17,19 @@ 
    <https://www.gnu.org/licenses/>.  */
 
 #include "thrd_priv.h"
+#include <shlib-compat.h>
 
 int
-mtx_unlock (mtx_t *mutex)
+__mtx_unlock (mtx_t *mutex)
 {
   int err_code = __pthread_mutex_unlock ((pthread_mutex_t *) mutex);
   return thrd_err_map (err_code);
 }
+#if PTHREAD_IN_LIBC
+versioned_symbol (libc, __mtx_unlock, mtx_unlock, GLIBC_2_34);
+# if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_28, GLIBC_2_34)
+compat_symbol (libpthread, __mtx_unlock, mtx_unlock, GLIBC_2_28);
+# endif
+#else /* !PTHREAD_IN_LIBC */
+strong_alias (__mtx_unlock, mtx_unlock)
+#endif
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index ef3072e5b9..fddeb25a72 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -2211,6 +2211,7 @@  GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
+GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2268,6 +2269,7 @@  GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
+GLIBC_2.34 mtx_unlock 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 516f2acc12..d18f1540f8 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_unlock F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index e66abe3e8f..38d2821356 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -2104,6 +2104,7 @@  GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
+GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2349,6 +2350,7 @@  GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
+GLIBC_2.34 mtx_unlock 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 46246e0726..0357adc360 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_unlock F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 993906ff5d..08d1092337 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1268,6 +1268,7 @@  GLIBC_2.32 mtx_init F
 GLIBC_2.32 mtx_lock F
 GLIBC_2.32 mtx_timedlock F
 GLIBC_2.32 mtx_trylock F
+GLIBC_2.32 mtx_unlock F
 GLIBC_2.32 munlock F
 GLIBC_2.32 munlockall F
 GLIBC_2.32 munmap F
@@ -2027,6 +2028,7 @@  GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
+GLIBC_2.34 mtx_unlock 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 88b84360f4..f6d0d01f47 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_unlock F
 GLIBC_2.32 pthread_attr_getaffinity_np F
 GLIBC_2.32 pthread_attr_getguardsize F
 GLIBC_2.32 pthread_attr_getstack F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index e358752785..011d0a2a72 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -132,6 +132,7 @@  GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
+GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -192,6 +193,7 @@  GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
+GLIBC_2.34 mtx_unlock 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 cbf4c73750..df380de883 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_unlock F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 0d06e1d3af..77f88a1614 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -132,6 +132,7 @@  GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
+GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -189,6 +190,7 @@  GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
+GLIBC_2.34 mtx_unlock 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 cbf4c73750..df380de883 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_unlock F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index a7df6f64fe..97dfaf2710 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -1323,6 +1323,7 @@  GLIBC_2.29 mtx_init F
 GLIBC_2.29 mtx_lock F
 GLIBC_2.29 mtx_timedlock F
 GLIBC_2.29 mtx_trylock F
+GLIBC_2.29 mtx_unlock F
 GLIBC_2.29 munlock F
 GLIBC_2.29 munlockall F
 GLIBC_2.29 munmap F
@@ -2211,6 +2212,7 @@  GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
+GLIBC_2.34 mtx_unlock 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 59658bc168..8f2662e794 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_unlock F
 GLIBC_2.29 pthread_attr_getaffinity_np F
 GLIBC_2.29 pthread_attr_getguardsize F
 GLIBC_2.29 pthread_attr_getstack F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 2ec2e55e8e..673de09c0c 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -1943,6 +1943,7 @@  GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
+GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2162,6 +2163,7 @@  GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
+GLIBC_2.34 mtx_unlock 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 8964f6ac06..666b409e05 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_unlock F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 287b01f48c..ff914ff287 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -2117,6 +2117,7 @@  GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
+GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2339,6 +2340,7 @@  GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
+GLIBC_2.34 mtx_unlock 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 259ad2840d..c151fd4bce 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_unlock F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index bf600fec71..b429c9d290 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -1978,6 +1978,7 @@  GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
+GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2196,6 +2197,7 @@  GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
+GLIBC_2.34 mtx_unlock 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 d46bf76171..7b38318523 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_unlock F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 8613618546..3232874576 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -133,6 +133,7 @@  GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
+GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -193,6 +194,7 @@  GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
+GLIBC_2.34 mtx_unlock 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 cbf4c73750..df380de883 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_unlock F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index ff9ce0d15c..a9b92d93cd 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2060,6 +2060,7 @@  GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
+GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2282,6 +2283,7 @@  GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
+GLIBC_2.34 mtx_unlock 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 259ad2840d..c151fd4bce 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_unlock F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index bcb53f13f2..b022965fe0 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -2202,6 +2202,7 @@  GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
+GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2262,6 +2263,7 @@  GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
+GLIBC_2.34 mtx_unlock 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 11a92d20ba..5ae61bbe9d 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_unlock F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index d82bbfd602..f3dbd4e6df 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -2202,6 +2202,7 @@  GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
+GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2259,6 +2260,7 @@  GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
+GLIBC_2.34 mtx_unlock 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 11a92d20ba..5ae61bbe9d 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_unlock F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index b9e83b9ad4..51cd0e8a86 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -2030,6 +2030,7 @@  GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
+GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2245,6 +2246,7 @@  GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
+GLIBC_2.34 mtx_unlock 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 bb8b100cd9..b9a81337d6 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_unlock F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 56abfc9490..1211e370c8 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -2028,6 +2028,7 @@  GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
+GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2243,6 +2244,7 @@  GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
+GLIBC_2.34 mtx_unlock 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 bb8b100cd9..b9a81337d6 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_unlock F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index b0e4e5d6e3..293c679204 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -2036,6 +2036,7 @@  GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
+GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2251,6 +2252,7 @@  GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
+GLIBC_2.34 mtx_unlock 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 25e4cd3695..aa912f46d2 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -2031,6 +2031,7 @@  GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
+GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2245,6 +2246,7 @@  GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
+GLIBC_2.34 mtx_unlock 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 7eadb2fe54..d5bb6cf400 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -2244,6 +2244,7 @@  GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
+GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2301,6 +2302,7 @@  GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
+GLIBC_2.34 mtx_unlock 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 af14835c41..4e4b0c70fd 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_unlock F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 3fde404d29..18e9526f46 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -2064,6 +2064,7 @@  GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
+GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2309,6 +2310,7 @@  GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
+GLIBC_2.34 mtx_unlock 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 329b88cbee..175dfc459a 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_unlock F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index a313be1c1f..5dd0a83d0b 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -2068,6 +2068,7 @@  GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
+GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2342,6 +2343,7 @@  GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
+GLIBC_2.34 mtx_unlock 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 3c6fdfc379..9703ac0e2f 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -132,6 +132,7 @@  GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
+GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2163,6 +2164,7 @@  GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
+GLIBC_2.34 mtx_unlock 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 22d92be0c0..e4e52afc9d 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_unlock F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 903b701ee7..b55ac71c1b 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -2301,6 +2301,7 @@  GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
+GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2464,6 +2465,7 @@  GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
+GLIBC_2.34 mtx_unlock 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 516f2acc12..d18f1540f8 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_unlock F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 4aeecf2e75..f5a3ab9bcd 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1270,6 +1270,7 @@  GLIBC_2.33 mtx_init F
 GLIBC_2.33 mtx_lock F
 GLIBC_2.33 mtx_timedlock F
 GLIBC_2.33 mtx_trylock F
+GLIBC_2.33 mtx_unlock F
 GLIBC_2.33 munlock F
 GLIBC_2.33 munlockall F
 GLIBC_2.33 munmap F
@@ -2029,6 +2030,7 @@  GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
+GLIBC_2.34 mtx_unlock 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 2597776ed8..25a34d836d 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_unlock F
 GLIBC_2.33 pthread_attr_getaffinity_np F
 GLIBC_2.33 pthread_attr_getguardsize F
 GLIBC_2.33 pthread_attr_getstack F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index dea907a104..e1ab110de7 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -2172,6 +2172,7 @@  GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
+GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2229,6 +2230,7 @@  GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
+GLIBC_2.34 mtx_unlock 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 b759bd2d96..70408a1f6b 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_unlock F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 0c1f06fa4e..a20d113936 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -2073,6 +2073,7 @@  GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
+GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2307,6 +2308,7 @@  GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
+GLIBC_2.34 mtx_unlock 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 90c504f2a8..79db0fcdcb 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_unlock F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 0f0f889da9..8993c14069 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -1970,6 +1970,7 @@  GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
+GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2200,6 +2201,7 @@  GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
+GLIBC_2.34 mtx_unlock 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 c448c783ec..18871ea360 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_unlock F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 4d28a594be..86fb418fe9 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -1947,6 +1947,7 @@  GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
+GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2169,6 +2170,7 @@  GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
+GLIBC_2.34 mtx_unlock 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 8964f6ac06..666b409e05 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_unlock F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 6269dec706..e591103913 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -1947,6 +1947,7 @@  GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
+GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2166,6 +2167,7 @@  GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
+GLIBC_2.34 mtx_unlock 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 8964f6ac06..666b409e05 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_unlock F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index d472ed6c6f..62df52de0b 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -2067,6 +2067,7 @@  GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
+GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2298,6 +2299,7 @@  GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
+GLIBC_2.34 mtx_unlock 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 46246e0726..0357adc360 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_unlock F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index ca790641c1..440a75d481 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -2000,6 +2000,7 @@  GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
+GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2217,6 +2218,7 @@  GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
+GLIBC_2.34 mtx_unlock 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 d46bf76171..7b38318523 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_unlock F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index a0f30252ee..001bfbe8fd 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -1959,6 +1959,7 @@  GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
+GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2178,6 +2179,7 @@  GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
+GLIBC_2.34 mtx_unlock 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 5b69b3b2b8..2d147416d8 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_unlock F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 51ceeb216e..46c26caced 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -2224,6 +2224,7 @@  GLIBC_2.28 mtx_init F
 GLIBC_2.28 mtx_lock F
 GLIBC_2.28 mtx_timedlock F
 GLIBC_2.28 mtx_trylock F
+GLIBC_2.28 mtx_unlock F
 GLIBC_2.28 renameat2 F
 GLIBC_2.28 statx F
 GLIBC_2.28 thrd_current F
@@ -2283,6 +2284,7 @@  GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
+GLIBC_2.34 mtx_unlock 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 22c36b9d2e..3ab8e0dca9 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_unlock F
 GLIBC_2.28 thrd_create F
 GLIBC_2.28 thrd_detach F
 GLIBC_2.28 thrd_exit F