[04/14] nptl: Move pthread_rwlock_init into libc

Message ID 713b63187a89a69728e9c18b35da928df98acff4.1619199278.git.fweimer@redhat.com
State Committed
Headers
Series nptl: Move remaining rwlock functions into libc |

Commit Message

Florian Weimer April 23, 2021, 5:37 p.m. UTC
  And __pthread_rwlock_init as a compatibility symbol.

__libc_rwlock_init is changed to call __pthread_rwlock_init directly.

The symbols were moved using scripts/move-symbol-to-libc.py.
---
 nptl/Makefile                                 |  2 +-
 nptl/Versions                                 |  4 ++--
 nptl/pthread_rwlock_init.c                    | 20 ++++++++++++++++---
 sysdeps/nptl/libc-lockP.h                     | 11 ++--------
 sysdeps/unix/sysv/linux/aarch64/libc.abilist  |  3 +++
 .../sysv/linux/aarch64/libpthread.abilist     |  2 --
 sysdeps/unix/sysv/linux/alpha/libc.abilist    |  3 +++
 .../unix/sysv/linux/alpha/libpthread.abilist  |  2 --
 sysdeps/unix/sysv/linux/arc/libc.abilist      |  3 +++
 .../unix/sysv/linux/arc/libpthread.abilist    |  2 --
 sysdeps/unix/sysv/linux/arm/be/libc.abilist   |  3 +++
 .../unix/sysv/linux/arm/be/libpthread.abilist |  2 --
 sysdeps/unix/sysv/linux/arm/le/libc.abilist   |  3 +++
 .../unix/sysv/linux/arm/le/libpthread.abilist |  2 --
 sysdeps/unix/sysv/linux/csky/libc.abilist     |  3 +++
 .../unix/sysv/linux/csky/libpthread.abilist   |  2 --
 sysdeps/unix/sysv/linux/hppa/libc.abilist     |  3 +++
 .../unix/sysv/linux/hppa/libpthread.abilist   |  2 --
 sysdeps/unix/sysv/linux/i386/libc.abilist     |  3 +++
 .../unix/sysv/linux/i386/libpthread.abilist   |  2 --
 sysdeps/unix/sysv/linux/ia64/libc.abilist     |  3 +++
 .../unix/sysv/linux/ia64/libpthread.abilist   |  2 --
 .../sysv/linux/m68k/coldfire/libc.abilist     |  3 +++
 .../linux/m68k/coldfire/libpthread.abilist    |  2 --
 .../unix/sysv/linux/m68k/m680x0/libc.abilist  |  3 +++
 .../sysv/linux/m68k/m680x0/libpthread.abilist |  2 --
 .../sysv/linux/microblaze/be/libc.abilist     |  3 +++
 .../linux/microblaze/be/libpthread.abilist    |  2 --
 .../sysv/linux/microblaze/le/libc.abilist     |  3 +++
 .../linux/microblaze/le/libpthread.abilist    |  2 --
 .../sysv/linux/mips/mips32/fpu/libc.abilist   |  3 +++
 .../sysv/linux/mips/mips32/libpthread.abilist |  2 --
 .../sysv/linux/mips/mips32/nofpu/libc.abilist |  3 +++
 .../sysv/linux/mips/mips64/libpthread.abilist |  2 --
 .../sysv/linux/mips/mips64/n32/libc.abilist   |  3 +++
 .../sysv/linux/mips/mips64/n64/libc.abilist   |  3 +++
 sysdeps/unix/sysv/linux/nios2/libc.abilist    |  3 +++
 .../unix/sysv/linux/nios2/libpthread.abilist  |  2 --
 .../linux/powerpc/powerpc32/fpu/libc.abilist  |  3 +++
 .../powerpc/powerpc32/libpthread.abilist      |  2 --
 .../powerpc/powerpc32/nofpu/libc.abilist      |  3 +++
 .../linux/powerpc/powerpc64/be/libc.abilist   |  3 +++
 .../powerpc/powerpc64/be/libpthread.abilist   |  2 --
 .../linux/powerpc/powerpc64/le/libc.abilist   |  3 +++
 .../powerpc/powerpc64/le/libpthread.abilist   |  2 --
 .../unix/sysv/linux/riscv/rv32/libc.abilist   |  3 +++
 .../sysv/linux/riscv/rv32/libpthread.abilist  |  2 --
 .../unix/sysv/linux/riscv/rv64/libc.abilist   |  3 +++
 .../sysv/linux/riscv/rv64/libpthread.abilist  |  2 --
 .../unix/sysv/linux/s390/s390-32/libc.abilist |  3 +++
 .../linux/s390/s390-32/libpthread.abilist     |  2 --
 .../unix/sysv/linux/s390/s390-64/libc.abilist |  3 +++
 .../linux/s390/s390-64/libpthread.abilist     |  2 --
 sysdeps/unix/sysv/linux/sh/be/libc.abilist    |  3 +++
 .../unix/sysv/linux/sh/be/libpthread.abilist  |  2 --
 sysdeps/unix/sysv/linux/sh/le/libc.abilist    |  3 +++
 .../unix/sysv/linux/sh/le/libpthread.abilist  |  2 --
 .../sysv/linux/sparc/sparc32/libc.abilist     |  3 +++
 .../linux/sparc/sparc32/libpthread.abilist    |  2 --
 .../sysv/linux/sparc/sparc64/libc.abilist     |  3 +++
 .../linux/sparc/sparc64/libpthread.abilist    |  2 --
 .../unix/sysv/linux/x86_64/64/libc.abilist    |  3 +++
 .../sysv/linux/x86_64/64/libpthread.abilist   |  2 --
 .../unix/sysv/linux/x86_64/x32/libc.abilist   |  3 +++
 .../sysv/linux/x86_64/x32/libpthread.abilist  |  2 --
 65 files changed, 118 insertions(+), 73 deletions(-)
  

Comments

Carlos O'Donell May 2, 2021, 7:34 p.m. UTC | #1
On 4/23/21 1:37 PM, Florian Weimer via Libc-alpha wrote:
> And __pthread_rwlock_init as a compatibility symbol.

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>
 
> __libc_rwlock_init is changed to call __pthread_rwlock_init directly.

OK.
 
> The symbols were moved using scripts/move-symbol-to-libc.py.
> ---
>  nptl/Makefile                                 |  2 +-
>  nptl/Versions                                 |  4 ++--
>  nptl/pthread_rwlock_init.c                    | 20 ++++++++++++++++---
>  sysdeps/nptl/libc-lockP.h                     | 11 ++--------
>  sysdeps/unix/sysv/linux/aarch64/libc.abilist  |  3 +++
>  .../sysv/linux/aarch64/libpthread.abilist     |  2 --
>  sysdeps/unix/sysv/linux/alpha/libc.abilist    |  3 +++
>  .../unix/sysv/linux/alpha/libpthread.abilist  |  2 --
>  sysdeps/unix/sysv/linux/arc/libc.abilist      |  3 +++
>  .../unix/sysv/linux/arc/libpthread.abilist    |  2 --
>  sysdeps/unix/sysv/linux/arm/be/libc.abilist   |  3 +++
>  .../unix/sysv/linux/arm/be/libpthread.abilist |  2 --
>  sysdeps/unix/sysv/linux/arm/le/libc.abilist   |  3 +++
>  .../unix/sysv/linux/arm/le/libpthread.abilist |  2 --
>  sysdeps/unix/sysv/linux/csky/libc.abilist     |  3 +++
>  .../unix/sysv/linux/csky/libpthread.abilist   |  2 --
>  sysdeps/unix/sysv/linux/hppa/libc.abilist     |  3 +++
>  .../unix/sysv/linux/hppa/libpthread.abilist   |  2 --
>  sysdeps/unix/sysv/linux/i386/libc.abilist     |  3 +++
>  .../unix/sysv/linux/i386/libpthread.abilist   |  2 --
>  sysdeps/unix/sysv/linux/ia64/libc.abilist     |  3 +++
>  .../unix/sysv/linux/ia64/libpthread.abilist   |  2 --
>  .../sysv/linux/m68k/coldfire/libc.abilist     |  3 +++
>  .../linux/m68k/coldfire/libpthread.abilist    |  2 --
>  .../unix/sysv/linux/m68k/m680x0/libc.abilist  |  3 +++
>  .../sysv/linux/m68k/m680x0/libpthread.abilist |  2 --
>  .../sysv/linux/microblaze/be/libc.abilist     |  3 +++
>  .../linux/microblaze/be/libpthread.abilist    |  2 --
>  .../sysv/linux/microblaze/le/libc.abilist     |  3 +++
>  .../linux/microblaze/le/libpthread.abilist    |  2 --
>  .../sysv/linux/mips/mips32/fpu/libc.abilist   |  3 +++
>  .../sysv/linux/mips/mips32/libpthread.abilist |  2 --
>  .../sysv/linux/mips/mips32/nofpu/libc.abilist |  3 +++
>  .../sysv/linux/mips/mips64/libpthread.abilist |  2 --
>  .../sysv/linux/mips/mips64/n32/libc.abilist   |  3 +++
>  .../sysv/linux/mips/mips64/n64/libc.abilist   |  3 +++
>  sysdeps/unix/sysv/linux/nios2/libc.abilist    |  3 +++
>  .../unix/sysv/linux/nios2/libpthread.abilist  |  2 --
>  .../linux/powerpc/powerpc32/fpu/libc.abilist  |  3 +++
>  .../powerpc/powerpc32/libpthread.abilist      |  2 --
>  .../powerpc/powerpc32/nofpu/libc.abilist      |  3 +++
>  .../linux/powerpc/powerpc64/be/libc.abilist   |  3 +++
>  .../powerpc/powerpc64/be/libpthread.abilist   |  2 --
>  .../linux/powerpc/powerpc64/le/libc.abilist   |  3 +++
>  .../powerpc/powerpc64/le/libpthread.abilist   |  2 --
>  .../unix/sysv/linux/riscv/rv32/libc.abilist   |  3 +++
>  .../sysv/linux/riscv/rv32/libpthread.abilist  |  2 --
>  .../unix/sysv/linux/riscv/rv64/libc.abilist   |  3 +++
>  .../sysv/linux/riscv/rv64/libpthread.abilist  |  2 --
>  .../unix/sysv/linux/s390/s390-32/libc.abilist |  3 +++
>  .../linux/s390/s390-32/libpthread.abilist     |  2 --
>  .../unix/sysv/linux/s390/s390-64/libc.abilist |  3 +++
>  .../linux/s390/s390-64/libpthread.abilist     |  2 --
>  sysdeps/unix/sysv/linux/sh/be/libc.abilist    |  3 +++
>  .../unix/sysv/linux/sh/be/libpthread.abilist  |  2 --
>  sysdeps/unix/sysv/linux/sh/le/libc.abilist    |  3 +++
>  .../unix/sysv/linux/sh/le/libpthread.abilist  |  2 --
>  .../sysv/linux/sparc/sparc32/libc.abilist     |  3 +++
>  .../linux/sparc/sparc32/libpthread.abilist    |  2 --
>  .../sysv/linux/sparc/sparc64/libc.abilist     |  3 +++
>  .../linux/sparc/sparc64/libpthread.abilist    |  2 --
>  .../unix/sysv/linux/x86_64/64/libc.abilist    |  3 +++
>  .../sysv/linux/x86_64/64/libpthread.abilist   |  2 --
>  .../unix/sysv/linux/x86_64/x32/libc.abilist   |  3 +++
>  .../sysv/linux/x86_64/x32/libpthread.abilist  |  2 --
>  65 files changed, 118 insertions(+), 73 deletions(-)
> 
> diff --git a/nptl/Makefile b/nptl/Makefile
> index 37c6513f68..e41459c571 100644
> --- a/nptl/Makefile
> +++ b/nptl/Makefile
> @@ -123,6 +123,7 @@ routines = \
>    pthread_rwlock_clockrdlock \
>    pthread_rwlock_clockwrlock \
>    pthread_rwlock_destroy \
> +  pthread_rwlock_init \
>    pthread_rwlock_rdlock \
>    pthread_rwlock_unlock \
>    pthread_rwlock_wrlock \
> @@ -181,7 +182,6 @@ libpthread-routines = \
>    pthread_getname \
>    pthread_join \
>    pthread_join_common \
> -  pthread_rwlock_init \
>    pthread_rwlock_timedrdlock \
>    pthread_rwlock_timedwrlock \
>    pthread_rwlock_tryrdlock \
> diff --git a/nptl/Versions b/nptl/Versions
> index 9232a19227..72d20e2117 100644
> --- a/nptl/Versions
> +++ b/nptl/Versions
> @@ -67,12 +67,14 @@ libc {
>      pthread_mutexattr_gettype;
>      pthread_mutexattr_settype;
>      pthread_rwlock_destroy;
> +    pthread_rwlock_init;
>      pthread_rwlock_rdlock;
>      pthread_rwlock_unlock;
>      pthread_rwlock_wrlock;
>    }
>    GLIBC_2.2 {
>      __pthread_rwlock_destroy;
> +    __pthread_rwlock_init;
>      __pthread_rwlock_rdlock;
>      __pthread_rwlock_unlock;
>      __pthread_rwlock_wrlock;
> @@ -280,7 +282,6 @@ libpthread {
>      pthread_attr_setstacksize;
>      pthread_create;
>      pthread_getconcurrency;
> -    pthread_rwlock_init;
>      pthread_rwlock_tryrdlock;
>      pthread_rwlock_trywrlock;
>      pthread_rwlockattr_destroy;
> @@ -309,7 +310,6 @@ libpthread {
>    }
>  
>    GLIBC_2.2 {
> -    __pthread_rwlock_init;
>      __pthread_rwlock_tryrdlock;
>      __pthread_rwlock_trywrlock;
>      pthread_attr_getstack;
> diff --git a/nptl/pthread_rwlock_init.c b/nptl/pthread_rwlock_init.c
> index c7d8fef687..db8ebee504 100644
> --- a/nptl/pthread_rwlock_init.c
> +++ b/nptl/pthread_rwlock_init.c
> @@ -19,7 +19,7 @@
>  #include "pthreadP.h"
>  #include <string.h>
>  #include <pthread-offsets.h>
> -
> +#include <shlib-compat.h>
>  
>  static const struct pthread_rwlockattr default_rwlockattr =
>    {
> @@ -30,7 +30,7 @@ static const struct pthread_rwlockattr default_rwlockattr =
>  
>  /* See pthread_rwlock_common.c.  */
>  int
> -__pthread_rwlock_init (pthread_rwlock_t *rwlock,
> +___pthread_rwlock_init (pthread_rwlock_t *rwlock,
>  		       const pthread_rwlockattr_t *attr)
>  {
>    ASSERT_TYPE_SIZE (pthread_rwlock_t, __SIZEOF_PTHREAD_RWLOCK_T);
> @@ -55,4 +55,18 @@ __pthread_rwlock_init (pthread_rwlock_t *rwlock,
>  
>    return 0;
>  }
> -strong_alias (__pthread_rwlock_init, pthread_rwlock_init)
> +versioned_symbol (libc, ___pthread_rwlock_init, pthread_rwlock_init,
> +                  GLIBC_2_34);
> +libc_hidden_ver (___pthread_rwlock_init, __pthread_rwlock_init)
> +#ifndef SHARED
> +strong_alias (___pthread_rwlock_init, __pthread_rwlock_init)
> +#endif
> +
> +#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_1, GLIBC_2_34)
> +compat_symbol (libpthread, ___pthread_rwlock_init, pthread_rwlock_init,
> +               GLIBC_2_1);
> +#endif
> +#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_2, GLIBC_2_34)
> +compat_symbol (libpthread, ___pthread_rwlock_init, __pthread_rwlock_init,
> +               GLIBC_2_2);
> +#endif
> diff --git a/sysdeps/nptl/libc-lockP.h b/sysdeps/nptl/libc-lockP.h
> index 07ead8fb9f..31ecc4a2c1 100644
> --- a/sysdeps/nptl/libc-lockP.h
> +++ b/sysdeps/nptl/libc-lockP.h
> @@ -114,14 +114,7 @@ _Static_assert (LLL_LOCK_INITIALIZER == 0, "LLL_LOCK_INITIALIZER != 0");
>  #else
>  # define __libc_lock_init(NAME) __pthread_mutex_init (&(NAME))
>  #endif
> -#if defined SHARED && IS_IN (libc)
> -/* ((NAME) = (__libc_rwlock_t) PTHREAD_RWLOCK_INITIALIZER) is inefficient.  */
> -# define __libc_rwlock_init(NAME) \
> -  ((void) __builtin_memset (&(NAME), '\0', sizeof (NAME)))
> -#else
> -# define __libc_rwlock_init(NAME) \
> -  __libc_maybe_call (__pthread_rwlock_init, (&(NAME), NULL), 0)
> -#endif
> +#define __libc_rwlock_init(NAME) __pthread_rwlock_init (&(NAME), NULL)
>  
>  /* Finalize the named lock variable, which must be locked.  It cannot be
>     used again until __libc_lock_init is called again on it.  This must be
> @@ -267,6 +260,7 @@ extern int __pthread_mutexattr_settype (pthread_mutexattr_t *__attr,
>  
>  extern int __pthread_rwlock_init (pthread_rwlock_t *__rwlock,
>  				  const pthread_rwlockattr_t *__attr);
> +libc_hidden_proto (__pthread_rwlock_init)
>  
>  extern int __pthread_rwlock_destroy (pthread_rwlock_t *__rwlock);
>  
> @@ -299,7 +293,6 @@ weak_extern (__pthread_mutex_trylock)
>  weak_extern (__pthread_mutexattr_init)
>  weak_extern (__pthread_mutexattr_destroy)
>  weak_extern (__pthread_mutexattr_settype)
> -weak_extern (__pthread_rwlock_init)
>  weak_extern (__pthread_rwlock_tryrdlock)
>  weak_extern (__pthread_rwlock_trywrlock)
>  weak_extern (__pthread_initialize)
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index 8e7de61692..49538b3773 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -351,6 +351,7 @@ GLIBC_2.17 __pthread_mutexattr_init F
>  GLIBC_2.17 __pthread_mutexattr_settype F
>  GLIBC_2.17 __pthread_once F
>  GLIBC_2.17 __pthread_rwlock_destroy F
> +GLIBC_2.17 __pthread_rwlock_init F
>  GLIBC_2.17 __pthread_rwlock_rdlock F
>  GLIBC_2.17 __pthread_rwlock_unlock F
>  GLIBC_2.17 __pthread_rwlock_wrlock F
> @@ -1502,6 +1503,7 @@ GLIBC_2.17 pthread_mutexattr_setrobust_np F
>  GLIBC_2.17 pthread_mutexattr_settype F
>  GLIBC_2.17 pthread_once F
>  GLIBC_2.17 pthread_rwlock_destroy F
> +GLIBC_2.17 pthread_rwlock_init F
>  GLIBC_2.17 pthread_rwlock_rdlock F
>  GLIBC_2.17 pthread_rwlock_unlock F
>  GLIBC_2.17 pthread_rwlock_wrlock F
> @@ -2285,6 +2287,7 @@ GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_rwlock_clockrdlock F
>  GLIBC_2.34 pthread_rwlock_clockwrlock F
>  GLIBC_2.34 pthread_rwlock_destroy F
> +GLIBC_2.34 pthread_rwlock_init F
>  GLIBC_2.34 pthread_rwlock_rdlock F
>  GLIBC_2.34 pthread_rwlock_unlock F
>  GLIBC_2.34 pthread_rwlock_wrlock F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> index ebdbdfa867..c6dee0cc25 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.17 _IO_funlockfile F
>  GLIBC_2.17 __errno_location F
>  GLIBC_2.17 __pthread_register_cancel F
>  GLIBC_2.17 __pthread_register_cancel_defer F
> -GLIBC_2.17 __pthread_rwlock_init F
>  GLIBC_2.17 __pthread_rwlock_tryrdlock F
>  GLIBC_2.17 __pthread_rwlock_trywrlock F
>  GLIBC_2.17 __pthread_unregister_cancel F
> @@ -35,7 +34,6 @@ GLIBC_2.17 pthread_getconcurrency F
>  GLIBC_2.17 pthread_getcpuclockid F
>  GLIBC_2.17 pthread_getname_np F
>  GLIBC_2.17 pthread_join F
> -GLIBC_2.17 pthread_rwlock_init F
>  GLIBC_2.17 pthread_rwlock_timedrdlock F
>  GLIBC_2.17 pthread_rwlock_timedwrlock F
>  GLIBC_2.17 pthread_rwlock_tryrdlock F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index 396c786557..6336e2dd35 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -1607,6 +1607,7 @@ GLIBC_2.1 pthread_attr_init F
>  GLIBC_2.1 pthread_mutexattr_gettype F
>  GLIBC_2.1 pthread_mutexattr_settype F
>  GLIBC_2.1 pthread_rwlock_destroy F
> +GLIBC_2.1 pthread_rwlock_init F
>  GLIBC_2.1 pthread_rwlock_rdlock F
>  GLIBC_2.1 pthread_rwlock_unlock F
>  GLIBC_2.1 pthread_rwlock_wrlock F
> @@ -1887,6 +1888,7 @@ GLIBC_2.2 __nl_langinfo_l F
>  GLIBC_2.2 __open64 F
>  GLIBC_2.2 __pread64 F
>  GLIBC_2.2 __pthread_rwlock_destroy F
> +GLIBC_2.2 __pthread_rwlock_init F
>  GLIBC_2.2 __pthread_rwlock_rdlock F
>  GLIBC_2.2 __pthread_rwlock_unlock F
>  GLIBC_2.2 __pthread_rwlock_wrlock F
> @@ -2366,6 +2368,7 @@ GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_rwlock_clockrdlock F
>  GLIBC_2.34 pthread_rwlock_clockwrlock F
>  GLIBC_2.34 pthread_rwlock_destroy F
> +GLIBC_2.34 pthread_rwlock_init F
>  GLIBC_2.34 pthread_rwlock_rdlock F
>  GLIBC_2.34 pthread_rwlock_unlock F
>  GLIBC_2.34 pthread_rwlock_wrlock F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> index b80868c5da..0189fc6a88 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> @@ -24,7 +24,6 @@ GLIBC_2.1 pthread_attr_setstackaddr F
>  GLIBC_2.1 pthread_attr_setstacksize F
>  GLIBC_2.1 pthread_create F
>  GLIBC_2.1 pthread_getconcurrency F
> -GLIBC_2.1 pthread_rwlock_init F
>  GLIBC_2.1 pthread_rwlock_tryrdlock F
>  GLIBC_2.1 pthread_rwlock_trywrlock F
>  GLIBC_2.1 pthread_rwlockattr_destroy F
> @@ -49,7 +48,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.2 __pthread_rwlock_init F
>  GLIBC_2.2 __pthread_rwlock_tryrdlock F
>  GLIBC_2.2 __pthread_rwlock_trywrlock F
>  GLIBC_2.2 pthread_attr_getstack F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index 832ac4e217..a5fff26d3a 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -340,6 +340,7 @@ GLIBC_2.32 __pthread_mutexattr_init F
>  GLIBC_2.32 __pthread_mutexattr_settype F
>  GLIBC_2.32 __pthread_once F
>  GLIBC_2.32 __pthread_rwlock_destroy F
> +GLIBC_2.32 __pthread_rwlock_init F
>  GLIBC_2.32 __pthread_rwlock_rdlock F
>  GLIBC_2.32 __pthread_rwlock_unlock F
>  GLIBC_2.32 __pthread_rwlock_wrlock F
> @@ -1432,6 +1433,7 @@ GLIBC_2.32 pthread_once F
>  GLIBC_2.32 pthread_rwlock_clockrdlock F
>  GLIBC_2.32 pthread_rwlock_clockwrlock F
>  GLIBC_2.32 pthread_rwlock_destroy F
> +GLIBC_2.32 pthread_rwlock_init F
>  GLIBC_2.32 pthread_rwlock_rdlock F
>  GLIBC_2.32 pthread_rwlock_unlock F
>  GLIBC_2.32 pthread_rwlock_wrlock F
> @@ -2044,6 +2046,7 @@ GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_rwlock_clockrdlock F
>  GLIBC_2.34 pthread_rwlock_clockwrlock F
>  GLIBC_2.34 pthread_rwlock_destroy F
> +GLIBC_2.34 pthread_rwlock_init F
>  GLIBC_2.34 pthread_rwlock_rdlock F
>  GLIBC_2.34 pthread_rwlock_unlock F
>  GLIBC_2.34 pthread_rwlock_wrlock F
> diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> index 0d819a63b1..d71f38bf24 100644
> --- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.32 _IO_funlockfile F
>  GLIBC_2.32 __errno_location F
>  GLIBC_2.32 __pthread_register_cancel F
>  GLIBC_2.32 __pthread_register_cancel_defer F
> -GLIBC_2.32 __pthread_rwlock_init F
>  GLIBC_2.32 __pthread_rwlock_tryrdlock F
>  GLIBC_2.32 __pthread_rwlock_trywrlock F
>  GLIBC_2.32 __pthread_unregister_cancel F
> @@ -50,7 +49,6 @@ GLIBC_2.32 pthread_getconcurrency F
>  GLIBC_2.32 pthread_getcpuclockid F
>  GLIBC_2.32 pthread_getname_np F
>  GLIBC_2.32 pthread_join F
> -GLIBC_2.32 pthread_rwlock_init F
>  GLIBC_2.32 pthread_rwlock_timedrdlock F
>  GLIBC_2.32 pthread_rwlock_timedwrlock F
>  GLIBC_2.32 pthread_rwlock_tryrdlock F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index dcba73cb45..6595cad027 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -207,6 +207,7 @@ GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_rwlock_clockrdlock F
>  GLIBC_2.34 pthread_rwlock_clockwrlock F
>  GLIBC_2.34 pthread_rwlock_destroy F
> +GLIBC_2.34 pthread_rwlock_init F
>  GLIBC_2.34 pthread_rwlock_rdlock F
>  GLIBC_2.34 pthread_rwlock_unlock F
>  GLIBC_2.34 pthread_rwlock_wrlock F
> @@ -556,6 +557,7 @@ GLIBC_2.4 __pthread_mutexattr_init F
>  GLIBC_2.4 __pthread_mutexattr_settype F
>  GLIBC_2.4 __pthread_once F
>  GLIBC_2.4 __pthread_rwlock_destroy F
> +GLIBC_2.4 __pthread_rwlock_init F
>  GLIBC_2.4 __pthread_rwlock_rdlock F
>  GLIBC_2.4 __pthread_rwlock_unlock F
>  GLIBC_2.4 __pthread_rwlock_wrlock F
> @@ -1651,6 +1653,7 @@ GLIBC_2.4 pthread_mutexattr_setrobust_np F
>  GLIBC_2.4 pthread_mutexattr_settype F
>  GLIBC_2.4 pthread_once F
>  GLIBC_2.4 pthread_rwlock_destroy F
> +GLIBC_2.4 pthread_rwlock_init F
>  GLIBC_2.4 pthread_rwlock_rdlock F
>  GLIBC_2.4 pthread_rwlock_unlock F
>  GLIBC_2.4 pthread_rwlock_wrlock F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> index 85d9816c4e..1340d32c7f 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> @@ -33,7 +33,6 @@ GLIBC_2.4 __errno_location F
>  GLIBC_2.4 __libpthread_version_placeholder F
>  GLIBC_2.4 __pthread_register_cancel F
>  GLIBC_2.4 __pthread_register_cancel_defer F
> -GLIBC_2.4 __pthread_rwlock_init F
>  GLIBC_2.4 __pthread_rwlock_tryrdlock F
>  GLIBC_2.4 __pthread_rwlock_trywrlock F
>  GLIBC_2.4 __pthread_unregister_cancel F
> @@ -63,7 +62,6 @@ GLIBC_2.4 pthread_detach F
>  GLIBC_2.4 pthread_getconcurrency F
>  GLIBC_2.4 pthread_getcpuclockid F
>  GLIBC_2.4 pthread_join F
> -GLIBC_2.4 pthread_rwlock_init F
>  GLIBC_2.4 pthread_rwlock_timedrdlock F
>  GLIBC_2.4 pthread_rwlock_timedwrlock F
>  GLIBC_2.4 pthread_rwlock_tryrdlock F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index d401b85fc9..f4dbe63497 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -204,6 +204,7 @@ GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_rwlock_clockrdlock F
>  GLIBC_2.34 pthread_rwlock_clockwrlock F
>  GLIBC_2.34 pthread_rwlock_destroy F
> +GLIBC_2.34 pthread_rwlock_init F
>  GLIBC_2.34 pthread_rwlock_rdlock F
>  GLIBC_2.34 pthread_rwlock_unlock F
>  GLIBC_2.34 pthread_rwlock_wrlock F
> @@ -553,6 +554,7 @@ GLIBC_2.4 __pthread_mutexattr_init F
>  GLIBC_2.4 __pthread_mutexattr_settype F
>  GLIBC_2.4 __pthread_once F
>  GLIBC_2.4 __pthread_rwlock_destroy F
> +GLIBC_2.4 __pthread_rwlock_init F
>  GLIBC_2.4 __pthread_rwlock_rdlock F
>  GLIBC_2.4 __pthread_rwlock_unlock F
>  GLIBC_2.4 __pthread_rwlock_wrlock F
> @@ -1648,6 +1650,7 @@ GLIBC_2.4 pthread_mutexattr_setrobust_np F
>  GLIBC_2.4 pthread_mutexattr_settype F
>  GLIBC_2.4 pthread_once F
>  GLIBC_2.4 pthread_rwlock_destroy F
> +GLIBC_2.4 pthread_rwlock_init F
>  GLIBC_2.4 pthread_rwlock_rdlock F
>  GLIBC_2.4 pthread_rwlock_unlock F
>  GLIBC_2.4 pthread_rwlock_wrlock F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> index 85d9816c4e..1340d32c7f 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> @@ -33,7 +33,6 @@ GLIBC_2.4 __errno_location F
>  GLIBC_2.4 __libpthread_version_placeholder F
>  GLIBC_2.4 __pthread_register_cancel F
>  GLIBC_2.4 __pthread_register_cancel_defer F
> -GLIBC_2.4 __pthread_rwlock_init F
>  GLIBC_2.4 __pthread_rwlock_tryrdlock F
>  GLIBC_2.4 __pthread_rwlock_trywrlock F
>  GLIBC_2.4 __pthread_unregister_cancel F
> @@ -63,7 +62,6 @@ GLIBC_2.4 pthread_detach F
>  GLIBC_2.4 pthread_getconcurrency F
>  GLIBC_2.4 pthread_getcpuclockid F
>  GLIBC_2.4 pthread_join F
> -GLIBC_2.4 pthread_rwlock_init F
>  GLIBC_2.4 pthread_rwlock_timedrdlock F
>  GLIBC_2.4 pthread_rwlock_timedwrlock F
>  GLIBC_2.4 pthread_rwlock_tryrdlock F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index a99d18b478..c0a28cd1d4 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -344,6 +344,7 @@ GLIBC_2.29 __pthread_mutexattr_init F
>  GLIBC_2.29 __pthread_mutexattr_settype F
>  GLIBC_2.29 __pthread_once F
>  GLIBC_2.29 __pthread_rwlock_destroy F
> +GLIBC_2.29 __pthread_rwlock_init F
>  GLIBC_2.29 __pthread_rwlock_rdlock F
>  GLIBC_2.29 __pthread_rwlock_unlock F
>  GLIBC_2.29 __pthread_rwlock_wrlock F
> @@ -1489,6 +1490,7 @@ GLIBC_2.29 pthread_mutexattr_setrobust_np F
>  GLIBC_2.29 pthread_mutexattr_settype F
>  GLIBC_2.29 pthread_once F
>  GLIBC_2.29 pthread_rwlock_destroy F
> +GLIBC_2.29 pthread_rwlock_init F
>  GLIBC_2.29 pthread_rwlock_rdlock F
>  GLIBC_2.29 pthread_rwlock_unlock F
>  GLIBC_2.29 pthread_rwlock_wrlock F
> @@ -2228,6 +2230,7 @@ GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_rwlock_clockrdlock F
>  GLIBC_2.34 pthread_rwlock_clockwrlock F
>  GLIBC_2.34 pthread_rwlock_destroy F
> +GLIBC_2.34 pthread_rwlock_init F
>  GLIBC_2.34 pthread_rwlock_rdlock F
>  GLIBC_2.34 pthread_rwlock_unlock F
>  GLIBC_2.34 pthread_rwlock_wrlock F
> diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> index 21d9318f9a..8c2eacba71 100644
> --- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.29 _IO_funlockfile F
>  GLIBC_2.29 __errno_location F
>  GLIBC_2.29 __pthread_register_cancel F
>  GLIBC_2.29 __pthread_register_cancel_defer F
> -GLIBC_2.29 __pthread_rwlock_init F
>  GLIBC_2.29 __pthread_rwlock_tryrdlock F
>  GLIBC_2.29 __pthread_rwlock_trywrlock F
>  GLIBC_2.29 __pthread_unregister_cancel F
> @@ -49,7 +48,6 @@ GLIBC_2.29 pthread_getconcurrency F
>  GLIBC_2.29 pthread_getcpuclockid F
>  GLIBC_2.29 pthread_getname_np F
>  GLIBC_2.29 pthread_join F
> -GLIBC_2.29 pthread_rwlock_init F
>  GLIBC_2.29 pthread_rwlock_timedrdlock F
>  GLIBC_2.29 pthread_rwlock_timedwrlock F
>  GLIBC_2.29 pthread_rwlock_tryrdlock F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index 7d0c716a6d..50253bac3f 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -370,6 +370,7 @@ GLIBC_2.2 __pthread_mutexattr_init F
>  GLIBC_2.2 __pthread_mutexattr_settype F
>  GLIBC_2.2 __pthread_once F
>  GLIBC_2.2 __pthread_rwlock_destroy F
> +GLIBC_2.2 __pthread_rwlock_init F
>  GLIBC_2.2 __pthread_rwlock_rdlock F
>  GLIBC_2.2 __pthread_rwlock_unlock F
>  GLIBC_2.2 __pthread_rwlock_wrlock F
> @@ -1313,6 +1314,7 @@ GLIBC_2.2 pthread_mutexattr_setpshared F
>  GLIBC_2.2 pthread_mutexattr_settype F
>  GLIBC_2.2 pthread_once F
>  GLIBC_2.2 pthread_rwlock_destroy F
> +GLIBC_2.2 pthread_rwlock_init F
>  GLIBC_2.2 pthread_rwlock_rdlock F
>  GLIBC_2.2 pthread_rwlock_unlock F
>  GLIBC_2.2 pthread_rwlock_wrlock F
> @@ -2179,6 +2181,7 @@ GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_rwlock_clockrdlock F
>  GLIBC_2.34 pthread_rwlock_clockwrlock F
>  GLIBC_2.34 pthread_rwlock_destroy F
> +GLIBC_2.34 pthread_rwlock_init F
>  GLIBC_2.34 pthread_rwlock_rdlock F
>  GLIBC_2.34 pthread_rwlock_unlock F
>  GLIBC_2.34 pthread_rwlock_wrlock F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> index 82bc0321f5..52da9c0a32 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> @@ -7,7 +7,6 @@ GLIBC_2.2 _IO_flockfile F
>  GLIBC_2.2 _IO_ftrylockfile F
>  GLIBC_2.2 _IO_funlockfile F
>  GLIBC_2.2 __errno_location F
> -GLIBC_2.2 __pthread_rwlock_init F
>  GLIBC_2.2 __pthread_rwlock_tryrdlock F
>  GLIBC_2.2 __pthread_rwlock_trywrlock F
>  GLIBC_2.2 flockfile F
> @@ -33,7 +32,6 @@ GLIBC_2.2 pthread_detach F
>  GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_join F
> -GLIBC_2.2 pthread_rwlock_init F
>  GLIBC_2.2 pthread_rwlock_timedrdlock F
>  GLIBC_2.2 pthread_rwlock_timedwrlock F
>  GLIBC_2.2 pthread_rwlock_tryrdlock F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index 906baf44bf..4a6e8cf210 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -1575,6 +1575,7 @@ GLIBC_2.1 pthread_attr_init F
>  GLIBC_2.1 pthread_mutexattr_gettype F
>  GLIBC_2.1 pthread_mutexattr_settype F
>  GLIBC_2.1 pthread_rwlock_destroy F
> +GLIBC_2.1 pthread_rwlock_init F
>  GLIBC_2.1 pthread_rwlock_rdlock F
>  GLIBC_2.1 pthread_rwlock_unlock F
>  GLIBC_2.1 pthread_rwlock_wrlock F
> @@ -1891,6 +1892,7 @@ GLIBC_2.2 __nl_langinfo_l F
>  GLIBC_2.2 __open64 F
>  GLIBC_2.2 __pread64 F
>  GLIBC_2.2 __pthread_rwlock_destroy F
> +GLIBC_2.2 __pthread_rwlock_init F
>  GLIBC_2.2 __pthread_rwlock_rdlock F
>  GLIBC_2.2 __pthread_rwlock_unlock F
>  GLIBC_2.2 __pthread_rwlock_wrlock F
> @@ -2356,6 +2358,7 @@ GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_rwlock_clockrdlock F
>  GLIBC_2.34 pthread_rwlock_clockwrlock F
>  GLIBC_2.34 pthread_rwlock_destroy F
> +GLIBC_2.34 pthread_rwlock_init F
>  GLIBC_2.34 pthread_rwlock_rdlock F
>  GLIBC_2.34 pthread_rwlock_unlock F
>  GLIBC_2.34 pthread_rwlock_wrlock F
> diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> index ad2e81096d..a0daef9d41 100644
> --- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> @@ -24,7 +24,6 @@ GLIBC_2.1 pthread_attr_setstackaddr F
>  GLIBC_2.1 pthread_attr_setstacksize F
>  GLIBC_2.1 pthread_create F
>  GLIBC_2.1 pthread_getconcurrency F
> -GLIBC_2.1 pthread_rwlock_init F
>  GLIBC_2.1 pthread_rwlock_tryrdlock F
>  GLIBC_2.1 pthread_rwlock_trywrlock F
>  GLIBC_2.1 pthread_rwlockattr_destroy F
> @@ -49,7 +48,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.2 __pthread_rwlock_init F
>  GLIBC_2.2 __pthread_rwlock_tryrdlock F
>  GLIBC_2.2 __pthread_rwlock_trywrlock F
>  GLIBC_2.2 pthread_attr_getstack F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index f92ae402f9..ba34d9e68f 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -374,6 +374,7 @@ GLIBC_2.2 __pthread_mutexattr_init F
>  GLIBC_2.2 __pthread_mutexattr_settype F
>  GLIBC_2.2 __pthread_once F
>  GLIBC_2.2 __pthread_rwlock_destroy F
> +GLIBC_2.2 __pthread_rwlock_init F
>  GLIBC_2.2 __pthread_rwlock_rdlock F
>  GLIBC_2.2 __pthread_rwlock_unlock F
>  GLIBC_2.2 __pthread_rwlock_wrlock F
> @@ -1334,6 +1335,7 @@ GLIBC_2.2 pthread_mutexattr_setpshared F
>  GLIBC_2.2 pthread_mutexattr_settype F
>  GLIBC_2.2 pthread_once F
>  GLIBC_2.2 pthread_rwlock_destroy F
> +GLIBC_2.2 pthread_rwlock_init F
>  GLIBC_2.2 pthread_rwlock_rdlock F
>  GLIBC_2.2 pthread_rwlock_unlock F
>  GLIBC_2.2 pthread_rwlock_wrlock F
> @@ -2213,6 +2215,7 @@ GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_rwlock_clockrdlock F
>  GLIBC_2.34 pthread_rwlock_clockwrlock F
>  GLIBC_2.34 pthread_rwlock_destroy F
> +GLIBC_2.34 pthread_rwlock_init F
>  GLIBC_2.34 pthread_rwlock_rdlock F
>  GLIBC_2.34 pthread_rwlock_unlock F
>  GLIBC_2.34 pthread_rwlock_wrlock F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> index 6d11adb7da..5d186fc586 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> @@ -7,7 +7,6 @@ GLIBC_2.2 _IO_flockfile F
>  GLIBC_2.2 _IO_ftrylockfile F
>  GLIBC_2.2 _IO_funlockfile F
>  GLIBC_2.2 __errno_location F
> -GLIBC_2.2 __pthread_rwlock_init F
>  GLIBC_2.2 __pthread_rwlock_tryrdlock F
>  GLIBC_2.2 __pthread_rwlock_trywrlock F
>  GLIBC_2.2 flockfile F
> @@ -33,7 +32,6 @@ GLIBC_2.2 pthread_detach F
>  GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_join F
> -GLIBC_2.2 pthread_rwlock_init F
>  GLIBC_2.2 pthread_rwlock_timedrdlock F
>  GLIBC_2.2 pthread_rwlock_timedwrlock F
>  GLIBC_2.2 pthread_rwlock_tryrdlock F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index cb6bd2ec33..2a31f0acd5 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -208,6 +208,7 @@ GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_rwlock_clockrdlock F
>  GLIBC_2.34 pthread_rwlock_clockwrlock F
>  GLIBC_2.34 pthread_rwlock_destroy F
> +GLIBC_2.34 pthread_rwlock_init F
>  GLIBC_2.34 pthread_rwlock_rdlock F
>  GLIBC_2.34 pthread_rwlock_unlock F
>  GLIBC_2.34 pthread_rwlock_wrlock F
> @@ -542,6 +543,7 @@ GLIBC_2.4 __pthread_mutexattr_init F
>  GLIBC_2.4 __pthread_mutexattr_settype F
>  GLIBC_2.4 __pthread_once F
>  GLIBC_2.4 __pthread_rwlock_destroy F
> +GLIBC_2.4 __pthread_rwlock_init F
>  GLIBC_2.4 __pthread_rwlock_rdlock F
>  GLIBC_2.4 __pthread_rwlock_unlock F
>  GLIBC_2.4 __pthread_rwlock_wrlock F
> @@ -1631,6 +1633,7 @@ GLIBC_2.4 pthread_mutexattr_setrobust_np F
>  GLIBC_2.4 pthread_mutexattr_settype F
>  GLIBC_2.4 pthread_once F
>  GLIBC_2.4 pthread_rwlock_destroy F
> +GLIBC_2.4 pthread_rwlock_init F
>  GLIBC_2.4 pthread_rwlock_rdlock F
>  GLIBC_2.4 pthread_rwlock_unlock F
>  GLIBC_2.4 pthread_rwlock_wrlock F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> index 85d9816c4e..1340d32c7f 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> @@ -33,7 +33,6 @@ GLIBC_2.4 __errno_location F
>  GLIBC_2.4 __libpthread_version_placeholder F
>  GLIBC_2.4 __pthread_register_cancel F
>  GLIBC_2.4 __pthread_register_cancel_defer F
> -GLIBC_2.4 __pthread_rwlock_init F
>  GLIBC_2.4 __pthread_rwlock_tryrdlock F
>  GLIBC_2.4 __pthread_rwlock_trywrlock F
>  GLIBC_2.4 __pthread_unregister_cancel F
> @@ -63,7 +62,6 @@ GLIBC_2.4 pthread_detach F
>  GLIBC_2.4 pthread_getconcurrency F
>  GLIBC_2.4 pthread_getcpuclockid F
>  GLIBC_2.4 pthread_join F
> -GLIBC_2.4 pthread_rwlock_init F
>  GLIBC_2.4 pthread_rwlock_timedrdlock F
>  GLIBC_2.4 pthread_rwlock_timedwrlock F
>  GLIBC_2.4 pthread_rwlock_tryrdlock F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index 5e1c0c5f92..4528a06d6f 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -1571,6 +1571,7 @@ GLIBC_2.1 pthread_attr_init F
>  GLIBC_2.1 pthread_mutexattr_gettype F
>  GLIBC_2.1 pthread_mutexattr_settype F
>  GLIBC_2.1 pthread_rwlock_destroy F
> +GLIBC_2.1 pthread_rwlock_init F
>  GLIBC_2.1 pthread_rwlock_rdlock F
>  GLIBC_2.1 pthread_rwlock_unlock F
>  GLIBC_2.1 pthread_rwlock_wrlock F
> @@ -1847,6 +1848,7 @@ GLIBC_2.2 __nl_langinfo_l F
>  GLIBC_2.2 __open64 F
>  GLIBC_2.2 __pread64 F
>  GLIBC_2.2 __pthread_rwlock_destroy F
> +GLIBC_2.2 __pthread_rwlock_init F
>  GLIBC_2.2 __pthread_rwlock_rdlock F
>  GLIBC_2.2 __pthread_rwlock_unlock F
>  GLIBC_2.2 __pthread_rwlock_wrlock F
> @@ -2299,6 +2301,7 @@ GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_rwlock_clockrdlock F
>  GLIBC_2.34 pthread_rwlock_clockwrlock F
>  GLIBC_2.34 pthread_rwlock_destroy F
> +GLIBC_2.34 pthread_rwlock_init F
>  GLIBC_2.34 pthread_rwlock_rdlock F
>  GLIBC_2.34 pthread_rwlock_unlock F
>  GLIBC_2.34 pthread_rwlock_wrlock F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> index ad2e81096d..a0daef9d41 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> @@ -24,7 +24,6 @@ GLIBC_2.1 pthread_attr_setstackaddr F
>  GLIBC_2.1 pthread_attr_setstacksize F
>  GLIBC_2.1 pthread_create F
>  GLIBC_2.1 pthread_getconcurrency F
> -GLIBC_2.1 pthread_rwlock_init F
>  GLIBC_2.1 pthread_rwlock_tryrdlock F
>  GLIBC_2.1 pthread_rwlock_trywrlock F
>  GLIBC_2.1 pthread_rwlockattr_destroy F
> @@ -49,7 +48,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.2 __pthread_rwlock_init F
>  GLIBC_2.2 __pthread_rwlock_tryrdlock F
>  GLIBC_2.2 __pthread_rwlock_trywrlock F
>  GLIBC_2.2 pthread_attr_getstack F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index 824dea1e05..0f6be8c0f2 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -352,6 +352,7 @@ GLIBC_2.18 __pthread_mutexattr_init F
>  GLIBC_2.18 __pthread_mutexattr_settype F
>  GLIBC_2.18 __pthread_once F
>  GLIBC_2.18 __pthread_rwlock_destroy F
> +GLIBC_2.18 __pthread_rwlock_init F
>  GLIBC_2.18 __pthread_rwlock_rdlock F
>  GLIBC_2.18 __pthread_rwlock_unlock F
>  GLIBC_2.18 __pthread_rwlock_wrlock F
> @@ -1504,6 +1505,7 @@ GLIBC_2.18 pthread_mutexattr_setrobust_np F
>  GLIBC_2.18 pthread_mutexattr_settype F
>  GLIBC_2.18 pthread_once F
>  GLIBC_2.18 pthread_rwlock_destroy F
> +GLIBC_2.18 pthread_rwlock_init F
>  GLIBC_2.18 pthread_rwlock_rdlock F
>  GLIBC_2.18 pthread_rwlock_unlock F
>  GLIBC_2.18 pthread_rwlock_wrlock F
> @@ -2279,6 +2281,7 @@ GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_rwlock_clockrdlock F
>  GLIBC_2.34 pthread_rwlock_clockwrlock F
>  GLIBC_2.34 pthread_rwlock_destroy F
> +GLIBC_2.34 pthread_rwlock_init F
>  GLIBC_2.34 pthread_rwlock_rdlock F
>  GLIBC_2.34 pthread_rwlock_unlock F
>  GLIBC_2.34 pthread_rwlock_wrlock F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> index 7d0c9cf145..968fcfd1df 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.18 _IO_funlockfile F
>  GLIBC_2.18 __errno_location F
>  GLIBC_2.18 __pthread_register_cancel F
>  GLIBC_2.18 __pthread_register_cancel_defer F
> -GLIBC_2.18 __pthread_rwlock_init F
>  GLIBC_2.18 __pthread_rwlock_tryrdlock F
>  GLIBC_2.18 __pthread_rwlock_trywrlock F
>  GLIBC_2.18 __pthread_unregister_cancel F
> @@ -36,7 +35,6 @@ GLIBC_2.18 pthread_getconcurrency F
>  GLIBC_2.18 pthread_getcpuclockid F
>  GLIBC_2.18 pthread_getname_np F
>  GLIBC_2.18 pthread_join F
> -GLIBC_2.18 pthread_rwlock_init F
>  GLIBC_2.18 pthread_rwlock_timedrdlock F
>  GLIBC_2.18 pthread_rwlock_timedwrlock F
>  GLIBC_2.18 pthread_rwlock_tryrdlock F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index 177bd7f5e4..a024c588b1 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -352,6 +352,7 @@ GLIBC_2.18 __pthread_mutexattr_init F
>  GLIBC_2.18 __pthread_mutexattr_settype F
>  GLIBC_2.18 __pthread_once F
>  GLIBC_2.18 __pthread_rwlock_destroy F
> +GLIBC_2.18 __pthread_rwlock_init F
>  GLIBC_2.18 __pthread_rwlock_rdlock F
>  GLIBC_2.18 __pthread_rwlock_unlock F
>  GLIBC_2.18 __pthread_rwlock_wrlock F
> @@ -1504,6 +1505,7 @@ GLIBC_2.18 pthread_mutexattr_setrobust_np F
>  GLIBC_2.18 pthread_mutexattr_settype F
>  GLIBC_2.18 pthread_once F
>  GLIBC_2.18 pthread_rwlock_destroy F
> +GLIBC_2.18 pthread_rwlock_init F
>  GLIBC_2.18 pthread_rwlock_rdlock F
>  GLIBC_2.18 pthread_rwlock_unlock F
>  GLIBC_2.18 pthread_rwlock_wrlock F
> @@ -2276,6 +2278,7 @@ GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_rwlock_clockrdlock F
>  GLIBC_2.34 pthread_rwlock_clockwrlock F
>  GLIBC_2.34 pthread_rwlock_destroy F
> +GLIBC_2.34 pthread_rwlock_init F
>  GLIBC_2.34 pthread_rwlock_rdlock F
>  GLIBC_2.34 pthread_rwlock_unlock F
>  GLIBC_2.34 pthread_rwlock_wrlock F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> index 7d0c9cf145..968fcfd1df 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.18 _IO_funlockfile F
>  GLIBC_2.18 __errno_location F
>  GLIBC_2.18 __pthread_register_cancel F
>  GLIBC_2.18 __pthread_register_cancel_defer F
> -GLIBC_2.18 __pthread_rwlock_init F
>  GLIBC_2.18 __pthread_rwlock_tryrdlock F
>  GLIBC_2.18 __pthread_rwlock_trywrlock F
>  GLIBC_2.18 __pthread_unregister_cancel F
> @@ -36,7 +35,6 @@ GLIBC_2.18 pthread_getconcurrency F
>  GLIBC_2.18 pthread_getcpuclockid F
>  GLIBC_2.18 pthread_getname_np F
>  GLIBC_2.18 pthread_join F
> -GLIBC_2.18 pthread_rwlock_init F
>  GLIBC_2.18 pthread_rwlock_timedrdlock F
>  GLIBC_2.18 pthread_rwlock_timedwrlock F
>  GLIBC_2.18 pthread_rwlock_tryrdlock F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index db80dbe227..f70ab56969 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -1545,6 +1545,7 @@ GLIBC_2.2 __open64 F
>  GLIBC_2.2 __poll F
>  GLIBC_2.2 __pread64 F
>  GLIBC_2.2 __pthread_rwlock_destroy F
> +GLIBC_2.2 __pthread_rwlock_init F
>  GLIBC_2.2 __pthread_rwlock_rdlock F
>  GLIBC_2.2 __pthread_rwlock_unlock F
>  GLIBC_2.2 __pthread_rwlock_wrlock F
> @@ -1843,6 +1844,7 @@ GLIBC_2.2 pthread_mutexattr_gettype F
>  GLIBC_2.2 pthread_mutexattr_setpshared F
>  GLIBC_2.2 pthread_mutexattr_settype F
>  GLIBC_2.2 pthread_rwlock_destroy F
> +GLIBC_2.2 pthread_rwlock_init F
>  GLIBC_2.2 pthread_rwlock_rdlock F
>  GLIBC_2.2 pthread_rwlock_unlock F
>  GLIBC_2.2 pthread_rwlock_wrlock F
> @@ -2262,6 +2264,7 @@ GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_rwlock_clockrdlock F
>  GLIBC_2.34 pthread_rwlock_clockwrlock F
>  GLIBC_2.34 pthread_rwlock_destroy F
> +GLIBC_2.34 pthread_rwlock_init F
>  GLIBC_2.34 pthread_rwlock_rdlock F
>  GLIBC_2.34 pthread_rwlock_unlock F
>  GLIBC_2.34 pthread_rwlock_wrlock F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> index 14e375c8da..a09a4dc5e3 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> @@ -21,7 +21,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.2 __pthread_rwlock_init F
>  GLIBC_2.2 __pthread_rwlock_tryrdlock F
>  GLIBC_2.2 __pthread_rwlock_trywrlock F
>  GLIBC_2.2 pthread_attr_getguardsize F
> @@ -41,7 +40,6 @@ GLIBC_2.2 pthread_barrierattr_setpshared F
>  GLIBC_2.2 pthread_create F
>  GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
> -GLIBC_2.2 pthread_rwlock_init F
>  GLIBC_2.2 pthread_rwlock_timedrdlock F
>  GLIBC_2.2 pthread_rwlock_timedwrlock F
>  GLIBC_2.2 pthread_rwlock_tryrdlock F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index 46fbef56f2..996626fc69 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -1543,6 +1543,7 @@ GLIBC_2.2 __open64 F
>  GLIBC_2.2 __poll F
>  GLIBC_2.2 __pread64 F
>  GLIBC_2.2 __pthread_rwlock_destroy F
> +GLIBC_2.2 __pthread_rwlock_init F
>  GLIBC_2.2 __pthread_rwlock_rdlock F
>  GLIBC_2.2 __pthread_rwlock_unlock F
>  GLIBC_2.2 __pthread_rwlock_wrlock F
> @@ -1841,6 +1842,7 @@ GLIBC_2.2 pthread_mutexattr_gettype F
>  GLIBC_2.2 pthread_mutexattr_setpshared F
>  GLIBC_2.2 pthread_mutexattr_settype F
>  GLIBC_2.2 pthread_rwlock_destroy F
> +GLIBC_2.2 pthread_rwlock_init F
>  GLIBC_2.2 pthread_rwlock_rdlock F
>  GLIBC_2.2 pthread_rwlock_unlock F
>  GLIBC_2.2 pthread_rwlock_wrlock F
> @@ -2260,6 +2262,7 @@ GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_rwlock_clockrdlock F
>  GLIBC_2.34 pthread_rwlock_clockwrlock F
>  GLIBC_2.34 pthread_rwlock_destroy F
> +GLIBC_2.34 pthread_rwlock_init F
>  GLIBC_2.34 pthread_rwlock_rdlock F
>  GLIBC_2.34 pthread_rwlock_unlock F
>  GLIBC_2.34 pthread_rwlock_wrlock F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> index 14e375c8da..a09a4dc5e3 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> @@ -21,7 +21,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.2 __pthread_rwlock_init F
>  GLIBC_2.2 __pthread_rwlock_tryrdlock F
>  GLIBC_2.2 __pthread_rwlock_trywrlock F
>  GLIBC_2.2 pthread_attr_getguardsize F
> @@ -41,7 +40,6 @@ GLIBC_2.2 pthread_barrierattr_setpshared F
>  GLIBC_2.2 pthread_create F
>  GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
> -GLIBC_2.2 pthread_rwlock_init F
>  GLIBC_2.2 pthread_rwlock_timedrdlock F
>  GLIBC_2.2 pthread_rwlock_timedwrlock F
>  GLIBC_2.2 pthread_rwlock_tryrdlock F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index 02b3a04e1d..fcef7cf463 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -1543,6 +1543,7 @@ GLIBC_2.2 __open64 F
>  GLIBC_2.2 __poll F
>  GLIBC_2.2 __pread64 F
>  GLIBC_2.2 __pthread_rwlock_destroy F
> +GLIBC_2.2 __pthread_rwlock_init F
>  GLIBC_2.2 __pthread_rwlock_rdlock F
>  GLIBC_2.2 __pthread_rwlock_unlock F
>  GLIBC_2.2 __pthread_rwlock_wrlock F
> @@ -1841,6 +1842,7 @@ GLIBC_2.2 pthread_mutexattr_gettype F
>  GLIBC_2.2 pthread_mutexattr_setpshared F
>  GLIBC_2.2 pthread_mutexattr_settype F
>  GLIBC_2.2 pthread_rwlock_destroy F
> +GLIBC_2.2 pthread_rwlock_init F
>  GLIBC_2.2 pthread_rwlock_rdlock F
>  GLIBC_2.2 pthread_rwlock_unlock F
>  GLIBC_2.2 pthread_rwlock_wrlock F
> @@ -2268,6 +2270,7 @@ GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_rwlock_clockrdlock F
>  GLIBC_2.34 pthread_rwlock_clockwrlock F
>  GLIBC_2.34 pthread_rwlock_destroy F
> +GLIBC_2.34 pthread_rwlock_init F
>  GLIBC_2.34 pthread_rwlock_rdlock F
>  GLIBC_2.34 pthread_rwlock_unlock F
>  GLIBC_2.34 pthread_rwlock_wrlock F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index ffbd2d7e1a..e6425649d7 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -1539,6 +1539,7 @@ GLIBC_2.2 __open64 F
>  GLIBC_2.2 __poll F
>  GLIBC_2.2 __pread64 F
>  GLIBC_2.2 __pthread_rwlock_destroy F
> +GLIBC_2.2 __pthread_rwlock_init F
>  GLIBC_2.2 __pthread_rwlock_rdlock F
>  GLIBC_2.2 __pthread_rwlock_unlock F
>  GLIBC_2.2 __pthread_rwlock_wrlock F
> @@ -1837,6 +1838,7 @@ GLIBC_2.2 pthread_mutexattr_gettype F
>  GLIBC_2.2 pthread_mutexattr_setpshared F
>  GLIBC_2.2 pthread_mutexattr_settype F
>  GLIBC_2.2 pthread_rwlock_destroy F
> +GLIBC_2.2 pthread_rwlock_init F
>  GLIBC_2.2 pthread_rwlock_rdlock F
>  GLIBC_2.2 pthread_rwlock_unlock F
>  GLIBC_2.2 pthread_rwlock_wrlock F
> @@ -2262,6 +2264,7 @@ GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_rwlock_clockrdlock F
>  GLIBC_2.34 pthread_rwlock_clockwrlock F
>  GLIBC_2.34 pthread_rwlock_destroy F
> +GLIBC_2.34 pthread_rwlock_init F
>  GLIBC_2.34 pthread_rwlock_rdlock F
>  GLIBC_2.34 pthread_rwlock_unlock F
>  GLIBC_2.34 pthread_rwlock_wrlock F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index 5a5b32e243..28b29918a8 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -389,6 +389,7 @@ GLIBC_2.21 __pthread_mutexattr_init F
>  GLIBC_2.21 __pthread_mutexattr_settype F
>  GLIBC_2.21 __pthread_once F
>  GLIBC_2.21 __pthread_rwlock_destroy F
> +GLIBC_2.21 __pthread_rwlock_init F
>  GLIBC_2.21 __pthread_rwlock_rdlock F
>  GLIBC_2.21 __pthread_rwlock_unlock F
>  GLIBC_2.21 __pthread_rwlock_wrlock F
> @@ -1547,6 +1548,7 @@ GLIBC_2.21 pthread_mutexattr_setrobust_np F
>  GLIBC_2.21 pthread_mutexattr_settype F
>  GLIBC_2.21 pthread_once F
>  GLIBC_2.21 pthread_rwlock_destroy F
> +GLIBC_2.21 pthread_rwlock_init F
>  GLIBC_2.21 pthread_rwlock_rdlock F
>  GLIBC_2.21 pthread_rwlock_unlock F
>  GLIBC_2.21 pthread_rwlock_wrlock F
> @@ -2318,6 +2320,7 @@ GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_rwlock_clockrdlock F
>  GLIBC_2.34 pthread_rwlock_clockwrlock F
>  GLIBC_2.34 pthread_rwlock_destroy F
> +GLIBC_2.34 pthread_rwlock_init F
>  GLIBC_2.34 pthread_rwlock_rdlock F
>  GLIBC_2.34 pthread_rwlock_unlock F
>  GLIBC_2.34 pthread_rwlock_wrlock F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> index 547413fcf0..a13844bb1d 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.21 _IO_funlockfile F
>  GLIBC_2.21 __errno_location F
>  GLIBC_2.21 __pthread_register_cancel F
>  GLIBC_2.21 __pthread_register_cancel_defer F
> -GLIBC_2.21 __pthread_rwlock_init F
>  GLIBC_2.21 __pthread_rwlock_tryrdlock F
>  GLIBC_2.21 __pthread_rwlock_trywrlock F
>  GLIBC_2.21 __pthread_unregister_cancel F
> @@ -36,7 +35,6 @@ GLIBC_2.21 pthread_getconcurrency F
>  GLIBC_2.21 pthread_getcpuclockid F
>  GLIBC_2.21 pthread_getname_np F
>  GLIBC_2.21 pthread_join F
> -GLIBC_2.21 pthread_rwlock_init F
>  GLIBC_2.21 pthread_rwlock_timedrdlock F
>  GLIBC_2.21 pthread_rwlock_timedwrlock F
>  GLIBC_2.21 pthread_rwlock_tryrdlock F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index 80fed3fb6c..7ef1e07d22 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -1579,6 +1579,7 @@ GLIBC_2.1 pthread_attr_init F
>  GLIBC_2.1 pthread_mutexattr_gettype F
>  GLIBC_2.1 pthread_mutexattr_settype F
>  GLIBC_2.1 pthread_rwlock_destroy F
> +GLIBC_2.1 pthread_rwlock_init F
>  GLIBC_2.1 pthread_rwlock_rdlock F
>  GLIBC_2.1 pthread_rwlock_unlock F
>  GLIBC_2.1 pthread_rwlock_wrlock F
> @@ -1853,6 +1854,7 @@ GLIBC_2.2 __nl_langinfo_l F
>  GLIBC_2.2 __open64 F
>  GLIBC_2.2 __pread64 F
>  GLIBC_2.2 __pthread_rwlock_destroy F
> +GLIBC_2.2 __pthread_rwlock_init F
>  GLIBC_2.2 __pthread_rwlock_rdlock F
>  GLIBC_2.2 __pthread_rwlock_unlock F
>  GLIBC_2.2 __pthread_rwlock_wrlock F
> @@ -2326,6 +2328,7 @@ GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_rwlock_clockrdlock F
>  GLIBC_2.34 pthread_rwlock_clockwrlock F
>  GLIBC_2.34 pthread_rwlock_destroy F
> +GLIBC_2.34 pthread_rwlock_init F
>  GLIBC_2.34 pthread_rwlock_rdlock F
>  GLIBC_2.34 pthread_rwlock_unlock F
>  GLIBC_2.34 pthread_rwlock_wrlock F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> index aff96f37d4..8c16c499ad 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> @@ -24,7 +24,6 @@ GLIBC_2.1 pthread_attr_setstackaddr F
>  GLIBC_2.1 pthread_attr_setstacksize F
>  GLIBC_2.1 pthread_create F
>  GLIBC_2.1 pthread_getconcurrency F
> -GLIBC_2.1 pthread_rwlock_init F
>  GLIBC_2.1 pthread_rwlock_tryrdlock F
>  GLIBC_2.1 pthread_rwlock_trywrlock F
>  GLIBC_2.1 pthread_rwlockattr_destroy F
> @@ -49,7 +48,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.2 __pthread_rwlock_init F
>  GLIBC_2.2 __pthread_rwlock_tryrdlock F
>  GLIBC_2.2 __pthread_rwlock_trywrlock F
>  GLIBC_2.2 pthread_attr_getstack F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index 1673ad274d..a125dae857 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -1579,6 +1579,7 @@ GLIBC_2.1 pthread_attr_init F
>  GLIBC_2.1 pthread_mutexattr_gettype F
>  GLIBC_2.1 pthread_mutexattr_settype F
>  GLIBC_2.1 pthread_rwlock_destroy F
> +GLIBC_2.1 pthread_rwlock_init F
>  GLIBC_2.1 pthread_rwlock_rdlock F
>  GLIBC_2.1 pthread_rwlock_unlock F
>  GLIBC_2.1 pthread_rwlock_wrlock F
> @@ -1857,6 +1858,7 @@ GLIBC_2.2 __nl_langinfo_l F
>  GLIBC_2.2 __open64 F
>  GLIBC_2.2 __pread64 F
>  GLIBC_2.2 __pthread_rwlock_destroy F
> +GLIBC_2.2 __pthread_rwlock_init F
>  GLIBC_2.2 __pthread_rwlock_rdlock F
>  GLIBC_2.2 __pthread_rwlock_unlock F
>  GLIBC_2.2 __pthread_rwlock_wrlock F
> @@ -2359,6 +2361,7 @@ GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_rwlock_clockrdlock F
>  GLIBC_2.34 pthread_rwlock_clockwrlock F
>  GLIBC_2.34 pthread_rwlock_destroy F
> +GLIBC_2.34 pthread_rwlock_init F
>  GLIBC_2.34 pthread_rwlock_rdlock F
>  GLIBC_2.34 pthread_rwlock_unlock F
>  GLIBC_2.34 pthread_rwlock_wrlock F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index dd4d6d1fcc..90f7f52f9b 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -423,6 +423,7 @@ GLIBC_2.3 __pthread_mutexattr_init F
>  GLIBC_2.3 __pthread_mutexattr_settype F
>  GLIBC_2.3 __pthread_once F
>  GLIBC_2.3 __pthread_rwlock_destroy F
> +GLIBC_2.3 __pthread_rwlock_init F
>  GLIBC_2.3 __pthread_rwlock_rdlock F
>  GLIBC_2.3 __pthread_rwlock_unlock F
>  GLIBC_2.3 __pthread_rwlock_wrlock F
> @@ -1419,6 +1420,7 @@ GLIBC_2.3 pthread_mutexattr_setpshared F
>  GLIBC_2.3 pthread_mutexattr_settype F
>  GLIBC_2.3 pthread_once F
>  GLIBC_2.3 pthread_rwlock_destroy F
> +GLIBC_2.3 pthread_rwlock_init F
>  GLIBC_2.3 pthread_rwlock_rdlock F
>  GLIBC_2.3 pthread_rwlock_unlock F
>  GLIBC_2.3 pthread_rwlock_wrlock F
> @@ -2180,6 +2182,7 @@ GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_rwlock_clockrdlock F
>  GLIBC_2.34 pthread_rwlock_clockwrlock F
>  GLIBC_2.34 pthread_rwlock_destroy F
> +GLIBC_2.34 pthread_rwlock_init F
>  GLIBC_2.34 pthread_rwlock_rdlock F
>  GLIBC_2.34 pthread_rwlock_unlock F
>  GLIBC_2.34 pthread_rwlock_wrlock F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> index 558fb1b7db..099a75abb3 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> @@ -28,7 +28,6 @@ GLIBC_2.3 _IO_flockfile F
>  GLIBC_2.3 _IO_ftrylockfile F
>  GLIBC_2.3 _IO_funlockfile F
>  GLIBC_2.3 __errno_location F
> -GLIBC_2.3 __pthread_rwlock_init F
>  GLIBC_2.3 __pthread_rwlock_tryrdlock F
>  GLIBC_2.3 __pthread_rwlock_trywrlock F
>  GLIBC_2.3 flockfile F
> @@ -54,7 +53,6 @@ GLIBC_2.3 pthread_detach F
>  GLIBC_2.3 pthread_getconcurrency F
>  GLIBC_2.3 pthread_getcpuclockid F
>  GLIBC_2.3 pthread_join F
> -GLIBC_2.3 pthread_rwlock_init F
>  GLIBC_2.3 pthread_rwlock_timedrdlock F
>  GLIBC_2.3 pthread_rwlock_timedwrlock F
>  GLIBC_2.3 pthread_rwlock_tryrdlock F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index 9c3dba4573..203e333287 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -437,6 +437,7 @@ GLIBC_2.17 __pthread_mutexattr_init F
>  GLIBC_2.17 __pthread_mutexattr_settype F
>  GLIBC_2.17 __pthread_once F
>  GLIBC_2.17 __pthread_rwlock_destroy F
> +GLIBC_2.17 __pthread_rwlock_init F
>  GLIBC_2.17 __pthread_rwlock_rdlock F
>  GLIBC_2.17 __pthread_rwlock_unlock F
>  GLIBC_2.17 __pthread_rwlock_wrlock F
> @@ -1590,6 +1591,7 @@ GLIBC_2.17 pthread_mutexattr_setrobust_np F
>  GLIBC_2.17 pthread_mutexattr_settype F
>  GLIBC_2.17 pthread_once F
>  GLIBC_2.17 pthread_rwlock_destroy F
> +GLIBC_2.17 pthread_rwlock_init F
>  GLIBC_2.17 pthread_rwlock_rdlock F
>  GLIBC_2.17 pthread_rwlock_unlock F
>  GLIBC_2.17 pthread_rwlock_wrlock F
> @@ -2481,6 +2483,7 @@ GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_rwlock_clockrdlock F
>  GLIBC_2.34 pthread_rwlock_clockwrlock F
>  GLIBC_2.34 pthread_rwlock_destroy F
> +GLIBC_2.34 pthread_rwlock_init F
>  GLIBC_2.34 pthread_rwlock_rdlock F
>  GLIBC_2.34 pthread_rwlock_unlock F
>  GLIBC_2.34 pthread_rwlock_wrlock F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> index ebdbdfa867..c6dee0cc25 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.17 _IO_funlockfile F
>  GLIBC_2.17 __errno_location F
>  GLIBC_2.17 __pthread_register_cancel F
>  GLIBC_2.17 __pthread_register_cancel_defer F
> -GLIBC_2.17 __pthread_rwlock_init F
>  GLIBC_2.17 __pthread_rwlock_tryrdlock F
>  GLIBC_2.17 __pthread_rwlock_trywrlock F
>  GLIBC_2.17 __pthread_unregister_cancel F
> @@ -35,7 +34,6 @@ GLIBC_2.17 pthread_getconcurrency F
>  GLIBC_2.17 pthread_getcpuclockid F
>  GLIBC_2.17 pthread_getname_np F
>  GLIBC_2.17 pthread_join F
> -GLIBC_2.17 pthread_rwlock_init F
>  GLIBC_2.17 pthread_rwlock_timedrdlock F
>  GLIBC_2.17 pthread_rwlock_timedwrlock F
>  GLIBC_2.17 pthread_rwlock_tryrdlock F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index 44ab3eacef..5754bd09b5 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -337,6 +337,7 @@ GLIBC_2.33 __pthread_mutexattr_init F
>  GLIBC_2.33 __pthread_mutexattr_settype F
>  GLIBC_2.33 __pthread_once F
>  GLIBC_2.33 __pthread_rwlock_destroy F
> +GLIBC_2.33 __pthread_rwlock_init F
>  GLIBC_2.33 __pthread_rwlock_rdlock F
>  GLIBC_2.33 __pthread_rwlock_unlock F
>  GLIBC_2.33 __pthread_rwlock_wrlock F
> @@ -1434,6 +1435,7 @@ GLIBC_2.33 pthread_once F
>  GLIBC_2.33 pthread_rwlock_clockrdlock F
>  GLIBC_2.33 pthread_rwlock_clockwrlock F
>  GLIBC_2.33 pthread_rwlock_destroy F
> +GLIBC_2.33 pthread_rwlock_init F
>  GLIBC_2.33 pthread_rwlock_rdlock F
>  GLIBC_2.33 pthread_rwlock_unlock F
>  GLIBC_2.33 pthread_rwlock_wrlock F
> @@ -2046,6 +2048,7 @@ GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_rwlock_clockrdlock F
>  GLIBC_2.34 pthread_rwlock_clockwrlock F
>  GLIBC_2.34 pthread_rwlock_destroy F
> +GLIBC_2.34 pthread_rwlock_init F
>  GLIBC_2.34 pthread_rwlock_rdlock F
>  GLIBC_2.34 pthread_rwlock_unlock F
>  GLIBC_2.34 pthread_rwlock_wrlock F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> index d2c8879f18..5774e8e989 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.33 _IO_funlockfile F
>  GLIBC_2.33 __errno_location F
>  GLIBC_2.33 __pthread_register_cancel F
>  GLIBC_2.33 __pthread_register_cancel_defer F
> -GLIBC_2.33 __pthread_rwlock_init F
>  GLIBC_2.33 __pthread_rwlock_tryrdlock F
>  GLIBC_2.33 __pthread_rwlock_trywrlock F
>  GLIBC_2.33 __pthread_unregister_cancel F
> @@ -50,7 +49,6 @@ GLIBC_2.33 pthread_getconcurrency F
>  GLIBC_2.33 pthread_getcpuclockid F
>  GLIBC_2.33 pthread_getname_np F
>  GLIBC_2.33 pthread_join F
> -GLIBC_2.33 pthread_rwlock_init F
>  GLIBC_2.33 pthread_rwlock_timedrdlock F
>  GLIBC_2.33 pthread_rwlock_timedwrlock F
>  GLIBC_2.33 pthread_rwlock_tryrdlock F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index b79b1f6726..a63dc8cf06 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -348,6 +348,7 @@ GLIBC_2.27 __pthread_mutexattr_init F
>  GLIBC_2.27 __pthread_mutexattr_settype F
>  GLIBC_2.27 __pthread_once F
>  GLIBC_2.27 __pthread_rwlock_destroy F
> +GLIBC_2.27 __pthread_rwlock_init F
>  GLIBC_2.27 __pthread_rwlock_rdlock F
>  GLIBC_2.27 __pthread_rwlock_unlock F
>  GLIBC_2.27 __pthread_rwlock_wrlock F
> @@ -1492,6 +1493,7 @@ GLIBC_2.27 pthread_mutexattr_setrobust_np F
>  GLIBC_2.27 pthread_mutexattr_settype F
>  GLIBC_2.27 pthread_once F
>  GLIBC_2.27 pthread_rwlock_destroy F
> +GLIBC_2.27 pthread_rwlock_init F
>  GLIBC_2.27 pthread_rwlock_rdlock F
>  GLIBC_2.27 pthread_rwlock_unlock F
>  GLIBC_2.27 pthread_rwlock_wrlock F
> @@ -2246,6 +2248,7 @@ GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_rwlock_clockrdlock F
>  GLIBC_2.34 pthread_rwlock_clockwrlock F
>  GLIBC_2.34 pthread_rwlock_destroy F
> +GLIBC_2.34 pthread_rwlock_init F
>  GLIBC_2.34 pthread_rwlock_rdlock F
>  GLIBC_2.34 pthread_rwlock_unlock F
>  GLIBC_2.34 pthread_rwlock_wrlock F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> index 48a5bd78f0..aafc83b0c1 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.27 _IO_funlockfile F
>  GLIBC_2.27 __errno_location F
>  GLIBC_2.27 __pthread_register_cancel F
>  GLIBC_2.27 __pthread_register_cancel_defer F
> -GLIBC_2.27 __pthread_rwlock_init F
>  GLIBC_2.27 __pthread_rwlock_tryrdlock F
>  GLIBC_2.27 __pthread_rwlock_trywrlock F
>  GLIBC_2.27 __pthread_unregister_cancel F
> @@ -36,7 +35,6 @@ GLIBC_2.27 pthread_getconcurrency F
>  GLIBC_2.27 pthread_getcpuclockid F
>  GLIBC_2.27 pthread_getname_np F
>  GLIBC_2.27 pthread_join F
> -GLIBC_2.27 pthread_rwlock_init F
>  GLIBC_2.27 pthread_rwlock_timedrdlock F
>  GLIBC_2.27 pthread_rwlock_timedwrlock F
>  GLIBC_2.27 pthread_rwlock_tryrdlock F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index 4c88f1489d..d77f798688 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -1571,6 +1571,7 @@ GLIBC_2.1 pthread_attr_init F
>  GLIBC_2.1 pthread_mutexattr_gettype F
>  GLIBC_2.1 pthread_mutexattr_settype F
>  GLIBC_2.1 pthread_rwlock_destroy F
> +GLIBC_2.1 pthread_rwlock_init F
>  GLIBC_2.1 pthread_rwlock_rdlock F
>  GLIBC_2.1 pthread_rwlock_unlock F
>  GLIBC_2.1 pthread_rwlock_wrlock F
> @@ -1851,6 +1852,7 @@ GLIBC_2.2 __nl_langinfo_l F
>  GLIBC_2.2 __open64 F
>  GLIBC_2.2 __pread64 F
>  GLIBC_2.2 __pthread_rwlock_destroy F
> +GLIBC_2.2 __pthread_rwlock_init F
>  GLIBC_2.2 __pthread_rwlock_rdlock F
>  GLIBC_2.2 __pthread_rwlock_unlock F
>  GLIBC_2.2 __pthread_rwlock_wrlock F
> @@ -2324,6 +2326,7 @@ GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_rwlock_clockrdlock F
>  GLIBC_2.34 pthread_rwlock_clockwrlock F
>  GLIBC_2.34 pthread_rwlock_destroy F
> +GLIBC_2.34 pthread_rwlock_init F
>  GLIBC_2.34 pthread_rwlock_rdlock F
>  GLIBC_2.34 pthread_rwlock_unlock F
>  GLIBC_2.34 pthread_rwlock_wrlock F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> index 2cac9acdc5..67f28adcac 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> @@ -24,7 +24,6 @@ GLIBC_2.1 pthread_attr_setstackaddr F
>  GLIBC_2.1 pthread_attr_setstacksize F
>  GLIBC_2.1 pthread_create F
>  GLIBC_2.1 pthread_getconcurrency F
> -GLIBC_2.1 pthread_rwlock_init F
>  GLIBC_2.1 pthread_rwlock_tryrdlock F
>  GLIBC_2.1 pthread_rwlock_trywrlock F
>  GLIBC_2.1 pthread_rwlockattr_destroy F
> @@ -50,7 +49,6 @@ 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.19 __libpthread_version_placeholder F
> -GLIBC_2.2 __pthread_rwlock_init F
>  GLIBC_2.2 __pthread_rwlock_tryrdlock F
>  GLIBC_2.2 __pthread_rwlock_trywrlock F
>  GLIBC_2.2 pthread_attr_getstack F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index 7b3f066d8c..0c2b2b80c9 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -384,6 +384,7 @@ GLIBC_2.2 __pthread_mutexattr_init F
>  GLIBC_2.2 __pthread_mutexattr_settype F
>  GLIBC_2.2 __pthread_once F
>  GLIBC_2.2 __pthread_rwlock_destroy F
> +GLIBC_2.2 __pthread_rwlock_init F
>  GLIBC_2.2 __pthread_rwlock_rdlock F
>  GLIBC_2.2 __pthread_rwlock_unlock F
>  GLIBC_2.2 __pthread_rwlock_wrlock F
> @@ -1331,6 +1332,7 @@ GLIBC_2.2 pthread_mutexattr_setpshared F
>  GLIBC_2.2 pthread_mutexattr_settype F
>  GLIBC_2.2 pthread_once F
>  GLIBC_2.2 pthread_rwlock_destroy F
> +GLIBC_2.2 pthread_rwlock_init F
>  GLIBC_2.2 pthread_rwlock_rdlock F
>  GLIBC_2.2 pthread_rwlock_unlock F
>  GLIBC_2.2 pthread_rwlock_wrlock F
> @@ -2217,6 +2219,7 @@ GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_rwlock_clockrdlock F
>  GLIBC_2.34 pthread_rwlock_clockwrlock F
>  GLIBC_2.34 pthread_rwlock_destroy F
> +GLIBC_2.34 pthread_rwlock_init F
>  GLIBC_2.34 pthread_rwlock_rdlock F
>  GLIBC_2.34 pthread_rwlock_unlock F
>  GLIBC_2.34 pthread_rwlock_wrlock F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> index 19792333fe..e8c053292d 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> @@ -8,7 +8,6 @@ GLIBC_2.2 _IO_flockfile F
>  GLIBC_2.2 _IO_ftrylockfile F
>  GLIBC_2.2 _IO_funlockfile F
>  GLIBC_2.2 __errno_location F
> -GLIBC_2.2 __pthread_rwlock_init F
>  GLIBC_2.2 __pthread_rwlock_tryrdlock F
>  GLIBC_2.2 __pthread_rwlock_trywrlock F
>  GLIBC_2.2 flockfile F
> @@ -34,7 +33,6 @@ GLIBC_2.2 pthread_detach F
>  GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_join F
> -GLIBC_2.2 pthread_rwlock_init F
>  GLIBC_2.2 pthread_rwlock_timedrdlock F
>  GLIBC_2.2 pthread_rwlock_timedwrlock F
>  GLIBC_2.2 pthread_rwlock_tryrdlock F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index bda61af088..2383629b95 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -373,6 +373,7 @@ GLIBC_2.2 __pthread_mutexattr_init F
>  GLIBC_2.2 __pthread_mutexattr_settype F
>  GLIBC_2.2 __pthread_once F
>  GLIBC_2.2 __pthread_rwlock_destroy F
> +GLIBC_2.2 __pthread_rwlock_init F
>  GLIBC_2.2 __pthread_rwlock_rdlock F
>  GLIBC_2.2 __pthread_rwlock_unlock F
>  GLIBC_2.2 __pthread_rwlock_wrlock F
> @@ -1317,6 +1318,7 @@ GLIBC_2.2 pthread_mutexattr_setpshared F
>  GLIBC_2.2 pthread_mutexattr_settype F
>  GLIBC_2.2 pthread_once F
>  GLIBC_2.2 pthread_rwlock_destroy F
> +GLIBC_2.2 pthread_rwlock_init F
>  GLIBC_2.2 pthread_rwlock_rdlock F
>  GLIBC_2.2 pthread_rwlock_unlock F
>  GLIBC_2.2 pthread_rwlock_wrlock F
> @@ -2186,6 +2188,7 @@ GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_rwlock_clockrdlock F
>  GLIBC_2.34 pthread_rwlock_clockwrlock F
>  GLIBC_2.34 pthread_rwlock_destroy F
> +GLIBC_2.34 pthread_rwlock_init F
>  GLIBC_2.34 pthread_rwlock_rdlock F
>  GLIBC_2.34 pthread_rwlock_unlock F
>  GLIBC_2.34 pthread_rwlock_wrlock F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> index 82bc0321f5..52da9c0a32 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> @@ -7,7 +7,6 @@ GLIBC_2.2 _IO_flockfile F
>  GLIBC_2.2 _IO_ftrylockfile F
>  GLIBC_2.2 _IO_funlockfile F
>  GLIBC_2.2 __errno_location F
> -GLIBC_2.2 __pthread_rwlock_init F
>  GLIBC_2.2 __pthread_rwlock_tryrdlock F
>  GLIBC_2.2 __pthread_rwlock_trywrlock F
>  GLIBC_2.2 flockfile F
> @@ -33,7 +32,6 @@ GLIBC_2.2 pthread_detach F
>  GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_join F
> -GLIBC_2.2 pthread_rwlock_init F
>  GLIBC_2.2 pthread_rwlock_timedrdlock F
>  GLIBC_2.2 pthread_rwlock_timedwrlock F
>  GLIBC_2.2 pthread_rwlock_tryrdlock F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index 7227ced168..66b504e002 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -373,6 +373,7 @@ GLIBC_2.2 __pthread_mutexattr_init F
>  GLIBC_2.2 __pthread_mutexattr_settype F
>  GLIBC_2.2 __pthread_once F
>  GLIBC_2.2 __pthread_rwlock_destroy F
> +GLIBC_2.2 __pthread_rwlock_init F
>  GLIBC_2.2 __pthread_rwlock_rdlock F
>  GLIBC_2.2 __pthread_rwlock_unlock F
>  GLIBC_2.2 __pthread_rwlock_wrlock F
> @@ -1317,6 +1318,7 @@ GLIBC_2.2 pthread_mutexattr_setpshared F
>  GLIBC_2.2 pthread_mutexattr_settype F
>  GLIBC_2.2 pthread_once F
>  GLIBC_2.2 pthread_rwlock_destroy F
> +GLIBC_2.2 pthread_rwlock_init F
>  GLIBC_2.2 pthread_rwlock_rdlock F
>  GLIBC_2.2 pthread_rwlock_unlock F
>  GLIBC_2.2 pthread_rwlock_wrlock F
> @@ -2183,6 +2185,7 @@ GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_rwlock_clockrdlock F
>  GLIBC_2.34 pthread_rwlock_clockwrlock F
>  GLIBC_2.34 pthread_rwlock_destroy F
> +GLIBC_2.34 pthread_rwlock_init F
>  GLIBC_2.34 pthread_rwlock_rdlock F
>  GLIBC_2.34 pthread_rwlock_unlock F
>  GLIBC_2.34 pthread_rwlock_wrlock F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> index 82bc0321f5..52da9c0a32 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> @@ -7,7 +7,6 @@ GLIBC_2.2 _IO_flockfile F
>  GLIBC_2.2 _IO_ftrylockfile F
>  GLIBC_2.2 _IO_funlockfile F
>  GLIBC_2.2 __errno_location F
> -GLIBC_2.2 __pthread_rwlock_init F
>  GLIBC_2.2 __pthread_rwlock_tryrdlock F
>  GLIBC_2.2 __pthread_rwlock_trywrlock F
>  GLIBC_2.2 flockfile F
> @@ -33,7 +32,6 @@ GLIBC_2.2 pthread_detach F
>  GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_join F
> -GLIBC_2.2 pthread_rwlock_init F
>  GLIBC_2.2 pthread_rwlock_timedrdlock F
>  GLIBC_2.2 pthread_rwlock_timedwrlock F
>  GLIBC_2.2 pthread_rwlock_tryrdlock F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index 330715ff71..4638a6dc22 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -1572,6 +1572,7 @@ GLIBC_2.1 pthread_attr_init F
>  GLIBC_2.1 pthread_mutexattr_gettype F
>  GLIBC_2.1 pthread_mutexattr_settype F
>  GLIBC_2.1 pthread_rwlock_destroy F
> +GLIBC_2.1 pthread_rwlock_init F
>  GLIBC_2.1 pthread_rwlock_rdlock F
>  GLIBC_2.1 pthread_rwlock_unlock F
>  GLIBC_2.1 pthread_rwlock_wrlock F
> @@ -1849,6 +1850,7 @@ GLIBC_2.2 __nl_langinfo_l F
>  GLIBC_2.2 __open64 F
>  GLIBC_2.2 __pread64 F
>  GLIBC_2.2 __pthread_rwlock_destroy F
> +GLIBC_2.2 __pthread_rwlock_init F
>  GLIBC_2.2 __pthread_rwlock_rdlock F
>  GLIBC_2.2 __pthread_rwlock_unlock F
>  GLIBC_2.2 __pthread_rwlock_wrlock F
> @@ -2315,6 +2317,7 @@ GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_rwlock_clockrdlock F
>  GLIBC_2.34 pthread_rwlock_clockwrlock F
>  GLIBC_2.34 pthread_rwlock_destroy F
> +GLIBC_2.34 pthread_rwlock_init F
>  GLIBC_2.34 pthread_rwlock_rdlock F
>  GLIBC_2.34 pthread_rwlock_unlock F
>  GLIBC_2.34 pthread_rwlock_wrlock F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> index b80868c5da..0189fc6a88 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> @@ -24,7 +24,6 @@ GLIBC_2.1 pthread_attr_setstackaddr F
>  GLIBC_2.1 pthread_attr_setstacksize F
>  GLIBC_2.1 pthread_create F
>  GLIBC_2.1 pthread_getconcurrency F
> -GLIBC_2.1 pthread_rwlock_init F
>  GLIBC_2.1 pthread_rwlock_tryrdlock F
>  GLIBC_2.1 pthread_rwlock_trywrlock F
>  GLIBC_2.1 pthread_rwlockattr_destroy F
> @@ -49,7 +48,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.2 __pthread_rwlock_init F
>  GLIBC_2.2 __pthread_rwlock_tryrdlock F
>  GLIBC_2.2 __pthread_rwlock_trywrlock F
>  GLIBC_2.2 pthread_attr_getstack F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index 5e4848be27..3b6fe85339 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -411,6 +411,7 @@ GLIBC_2.2 __pthread_mutexattr_init F
>  GLIBC_2.2 __pthread_mutexattr_settype F
>  GLIBC_2.2 __pthread_once F
>  GLIBC_2.2 __pthread_rwlock_destroy F
> +GLIBC_2.2 __pthread_rwlock_init F
>  GLIBC_2.2 __pthread_rwlock_rdlock F
>  GLIBC_2.2 __pthread_rwlock_unlock F
>  GLIBC_2.2 __pthread_rwlock_wrlock F
> @@ -1360,6 +1361,7 @@ GLIBC_2.2 pthread_mutexattr_setpshared F
>  GLIBC_2.2 pthread_mutexattr_settype F
>  GLIBC_2.2 pthread_once F
>  GLIBC_2.2 pthread_rwlock_destroy F
> +GLIBC_2.2 pthread_rwlock_init F
>  GLIBC_2.2 pthread_rwlock_rdlock F
>  GLIBC_2.2 pthread_rwlock_unlock F
>  GLIBC_2.2 pthread_rwlock_wrlock F
> @@ -2234,6 +2236,7 @@ GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_rwlock_clockrdlock F
>  GLIBC_2.34 pthread_rwlock_clockwrlock F
>  GLIBC_2.34 pthread_rwlock_destroy F
> +GLIBC_2.34 pthread_rwlock_init F
>  GLIBC_2.34 pthread_rwlock_rdlock F
>  GLIBC_2.34 pthread_rwlock_unlock F
>  GLIBC_2.34 pthread_rwlock_wrlock F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> index 6d11adb7da..5d186fc586 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> @@ -7,7 +7,6 @@ GLIBC_2.2 _IO_flockfile F
>  GLIBC_2.2 _IO_ftrylockfile F
>  GLIBC_2.2 _IO_funlockfile F
>  GLIBC_2.2 __errno_location F
> -GLIBC_2.2 __pthread_rwlock_init F
>  GLIBC_2.2 __pthread_rwlock_tryrdlock F
>  GLIBC_2.2 __pthread_rwlock_trywrlock F
>  GLIBC_2.2 flockfile F
> @@ -33,7 +32,6 @@ GLIBC_2.2 pthread_detach F
>  GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_join F
> -GLIBC_2.2 pthread_rwlock_init F
>  GLIBC_2.2 pthread_rwlock_timedrdlock F
>  GLIBC_2.2 pthread_rwlock_timedwrlock F
>  GLIBC_2.2 pthread_rwlock_tryrdlock F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index 1975808993..764a2f71b1 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -372,6 +372,7 @@ GLIBC_2.2.5 __pthread_mutexattr_init F
>  GLIBC_2.2.5 __pthread_mutexattr_settype F
>  GLIBC_2.2.5 __pthread_once F
>  GLIBC_2.2.5 __pthread_rwlock_destroy F
> +GLIBC_2.2.5 __pthread_rwlock_init F
>  GLIBC_2.2.5 __pthread_rwlock_rdlock F
>  GLIBC_2.2.5 __pthread_rwlock_unlock F
>  GLIBC_2.2.5 __pthread_rwlock_wrlock F
> @@ -1328,6 +1329,7 @@ GLIBC_2.2.5 pthread_mutexattr_setpshared F
>  GLIBC_2.2.5 pthread_mutexattr_settype F
>  GLIBC_2.2.5 pthread_once F
>  GLIBC_2.2.5 pthread_rwlock_destroy F
> +GLIBC_2.2.5 pthread_rwlock_init F
>  GLIBC_2.2.5 pthread_rwlock_rdlock F
>  GLIBC_2.2.5 pthread_rwlock_unlock F
>  GLIBC_2.2.5 pthread_rwlock_wrlock F
> @@ -2195,6 +2197,7 @@ GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_rwlock_clockrdlock F
>  GLIBC_2.34 pthread_rwlock_clockwrlock F
>  GLIBC_2.34 pthread_rwlock_destroy F
> +GLIBC_2.34 pthread_rwlock_init F
>  GLIBC_2.34 pthread_rwlock_rdlock F
>  GLIBC_2.34 pthread_rwlock_unlock F
>  GLIBC_2.34 pthread_rwlock_wrlock F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> index 06ec562b00..8805d613fd 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> @@ -7,7 +7,6 @@ GLIBC_2.2.5 _IO_flockfile F
>  GLIBC_2.2.5 _IO_ftrylockfile F
>  GLIBC_2.2.5 _IO_funlockfile F
>  GLIBC_2.2.5 __errno_location F
> -GLIBC_2.2.5 __pthread_rwlock_init F
>  GLIBC_2.2.5 __pthread_rwlock_tryrdlock F
>  GLIBC_2.2.5 __pthread_rwlock_trywrlock F
>  GLIBC_2.2.5 flockfile F
> @@ -33,7 +32,6 @@ GLIBC_2.2.5 pthread_detach F
>  GLIBC_2.2.5 pthread_getconcurrency F
>  GLIBC_2.2.5 pthread_getcpuclockid F
>  GLIBC_2.2.5 pthread_join F
> -GLIBC_2.2.5 pthread_rwlock_init F
>  GLIBC_2.2.5 pthread_rwlock_timedrdlock F
>  GLIBC_2.2.5 pthread_rwlock_timedwrlock F
>  GLIBC_2.2.5 pthread_rwlock_tryrdlock F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index ff5dc484ba..cce82949fd 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -352,6 +352,7 @@ GLIBC_2.16 __pthread_mutexattr_init F
>  GLIBC_2.16 __pthread_mutexattr_settype F
>  GLIBC_2.16 __pthread_once F
>  GLIBC_2.16 __pthread_rwlock_destroy F
> +GLIBC_2.16 __pthread_rwlock_init F
>  GLIBC_2.16 __pthread_rwlock_rdlock F
>  GLIBC_2.16 __pthread_rwlock_unlock F
>  GLIBC_2.16 __pthread_rwlock_wrlock F
> @@ -1509,6 +1510,7 @@ GLIBC_2.16 pthread_mutexattr_setrobust_np F
>  GLIBC_2.16 pthread_mutexattr_settype F
>  GLIBC_2.16 pthread_once F
>  GLIBC_2.16 pthread_rwlock_destroy F
> +GLIBC_2.16 pthread_rwlock_init F
>  GLIBC_2.16 pthread_rwlock_rdlock F
>  GLIBC_2.16 pthread_rwlock_unlock F
>  GLIBC_2.16 pthread_rwlock_wrlock F
> @@ -2300,6 +2302,7 @@ GLIBC_2.34 pthread_once F
>  GLIBC_2.34 pthread_rwlock_clockrdlock F
>  GLIBC_2.34 pthread_rwlock_clockwrlock F
>  GLIBC_2.34 pthread_rwlock_destroy F
> +GLIBC_2.34 pthread_rwlock_init F
>  GLIBC_2.34 pthread_rwlock_rdlock F
>  GLIBC_2.34 pthread_rwlock_unlock F
>  GLIBC_2.34 pthread_rwlock_wrlock F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> index 92d8aa0635..6a9a29ec4b 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.16 _IO_funlockfile F
>  GLIBC_2.16 __errno_location F
>  GLIBC_2.16 __pthread_register_cancel F
>  GLIBC_2.16 __pthread_register_cancel_defer F
> -GLIBC_2.16 __pthread_rwlock_init F
>  GLIBC_2.16 __pthread_rwlock_tryrdlock F
>  GLIBC_2.16 __pthread_rwlock_trywrlock F
>  GLIBC_2.16 __pthread_unregister_cancel F
> @@ -35,7 +34,6 @@ GLIBC_2.16 pthread_getconcurrency F
>  GLIBC_2.16 pthread_getcpuclockid F
>  GLIBC_2.16 pthread_getname_np F
>  GLIBC_2.16 pthread_join F
> -GLIBC_2.16 pthread_rwlock_init F
>  GLIBC_2.16 pthread_rwlock_timedrdlock F
>  GLIBC_2.16 pthread_rwlock_timedwrlock F
>  GLIBC_2.16 pthread_rwlock_tryrdlock F
>
  

Patch

diff --git a/nptl/Makefile b/nptl/Makefile
index 37c6513f68..e41459c571 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -123,6 +123,7 @@  routines = \
   pthread_rwlock_clockrdlock \
   pthread_rwlock_clockwrlock \
   pthread_rwlock_destroy \
+  pthread_rwlock_init \
   pthread_rwlock_rdlock \
   pthread_rwlock_unlock \
   pthread_rwlock_wrlock \
@@ -181,7 +182,6 @@  libpthread-routines = \
   pthread_getname \
   pthread_join \
   pthread_join_common \
-  pthread_rwlock_init \
   pthread_rwlock_timedrdlock \
   pthread_rwlock_timedwrlock \
   pthread_rwlock_tryrdlock \
diff --git a/nptl/Versions b/nptl/Versions
index 9232a19227..72d20e2117 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -67,12 +67,14 @@  libc {
     pthread_mutexattr_gettype;
     pthread_mutexattr_settype;
     pthread_rwlock_destroy;
+    pthread_rwlock_init;
     pthread_rwlock_rdlock;
     pthread_rwlock_unlock;
     pthread_rwlock_wrlock;
   }
   GLIBC_2.2 {
     __pthread_rwlock_destroy;
+    __pthread_rwlock_init;
     __pthread_rwlock_rdlock;
     __pthread_rwlock_unlock;
     __pthread_rwlock_wrlock;
@@ -280,7 +282,6 @@  libpthread {
     pthread_attr_setstacksize;
     pthread_create;
     pthread_getconcurrency;
-    pthread_rwlock_init;
     pthread_rwlock_tryrdlock;
     pthread_rwlock_trywrlock;
     pthread_rwlockattr_destroy;
@@ -309,7 +310,6 @@  libpthread {
   }
 
   GLIBC_2.2 {
-    __pthread_rwlock_init;
     __pthread_rwlock_tryrdlock;
     __pthread_rwlock_trywrlock;
     pthread_attr_getstack;
diff --git a/nptl/pthread_rwlock_init.c b/nptl/pthread_rwlock_init.c
index c7d8fef687..db8ebee504 100644
--- a/nptl/pthread_rwlock_init.c
+++ b/nptl/pthread_rwlock_init.c
@@ -19,7 +19,7 @@ 
 #include "pthreadP.h"
 #include <string.h>
 #include <pthread-offsets.h>
-
+#include <shlib-compat.h>
 
 static const struct pthread_rwlockattr default_rwlockattr =
   {
@@ -30,7 +30,7 @@  static const struct pthread_rwlockattr default_rwlockattr =
 
 /* See pthread_rwlock_common.c.  */
 int
-__pthread_rwlock_init (pthread_rwlock_t *rwlock,
+___pthread_rwlock_init (pthread_rwlock_t *rwlock,
 		       const pthread_rwlockattr_t *attr)
 {
   ASSERT_TYPE_SIZE (pthread_rwlock_t, __SIZEOF_PTHREAD_RWLOCK_T);
@@ -55,4 +55,18 @@  __pthread_rwlock_init (pthread_rwlock_t *rwlock,
 
   return 0;
 }
-strong_alias (__pthread_rwlock_init, pthread_rwlock_init)
+versioned_symbol (libc, ___pthread_rwlock_init, pthread_rwlock_init,
+                  GLIBC_2_34);
+libc_hidden_ver (___pthread_rwlock_init, __pthread_rwlock_init)
+#ifndef SHARED
+strong_alias (___pthread_rwlock_init, __pthread_rwlock_init)
+#endif
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_1, GLIBC_2_34)
+compat_symbol (libpthread, ___pthread_rwlock_init, pthread_rwlock_init,
+               GLIBC_2_1);
+#endif
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libpthread, ___pthread_rwlock_init, __pthread_rwlock_init,
+               GLIBC_2_2);
+#endif
diff --git a/sysdeps/nptl/libc-lockP.h b/sysdeps/nptl/libc-lockP.h
index 07ead8fb9f..31ecc4a2c1 100644
--- a/sysdeps/nptl/libc-lockP.h
+++ b/sysdeps/nptl/libc-lockP.h
@@ -114,14 +114,7 @@  _Static_assert (LLL_LOCK_INITIALIZER == 0, "LLL_LOCK_INITIALIZER != 0");
 #else
 # define __libc_lock_init(NAME) __pthread_mutex_init (&(NAME))
 #endif
-#if defined SHARED && IS_IN (libc)
-/* ((NAME) = (__libc_rwlock_t) PTHREAD_RWLOCK_INITIALIZER) is inefficient.  */
-# define __libc_rwlock_init(NAME) \
-  ((void) __builtin_memset (&(NAME), '\0', sizeof (NAME)))
-#else
-# define __libc_rwlock_init(NAME) \
-  __libc_maybe_call (__pthread_rwlock_init, (&(NAME), NULL), 0)
-#endif
+#define __libc_rwlock_init(NAME) __pthread_rwlock_init (&(NAME), NULL)
 
 /* Finalize the named lock variable, which must be locked.  It cannot be
    used again until __libc_lock_init is called again on it.  This must be
@@ -267,6 +260,7 @@  extern int __pthread_mutexattr_settype (pthread_mutexattr_t *__attr,
 
 extern int __pthread_rwlock_init (pthread_rwlock_t *__rwlock,
 				  const pthread_rwlockattr_t *__attr);
+libc_hidden_proto (__pthread_rwlock_init)
 
 extern int __pthread_rwlock_destroy (pthread_rwlock_t *__rwlock);
 
@@ -299,7 +293,6 @@  weak_extern (__pthread_mutex_trylock)
 weak_extern (__pthread_mutexattr_init)
 weak_extern (__pthread_mutexattr_destroy)
 weak_extern (__pthread_mutexattr_settype)
-weak_extern (__pthread_rwlock_init)
 weak_extern (__pthread_rwlock_tryrdlock)
 weak_extern (__pthread_rwlock_trywrlock)
 weak_extern (__pthread_initialize)
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 8e7de61692..49538b3773 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -351,6 +351,7 @@  GLIBC_2.17 __pthread_mutexattr_init F
 GLIBC_2.17 __pthread_mutexattr_settype F
 GLIBC_2.17 __pthread_once F
 GLIBC_2.17 __pthread_rwlock_destroy F
+GLIBC_2.17 __pthread_rwlock_init F
 GLIBC_2.17 __pthread_rwlock_rdlock F
 GLIBC_2.17 __pthread_rwlock_unlock F
 GLIBC_2.17 __pthread_rwlock_wrlock F
@@ -1502,6 +1503,7 @@  GLIBC_2.17 pthread_mutexattr_setrobust_np F
 GLIBC_2.17 pthread_mutexattr_settype F
 GLIBC_2.17 pthread_once F
 GLIBC_2.17 pthread_rwlock_destroy F
+GLIBC_2.17 pthread_rwlock_init F
 GLIBC_2.17 pthread_rwlock_rdlock F
 GLIBC_2.17 pthread_rwlock_unlock F
 GLIBC_2.17 pthread_rwlock_wrlock F
@@ -2285,6 +2287,7 @@  GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_rwlock_clockrdlock F
 GLIBC_2.34 pthread_rwlock_clockwrlock F
 GLIBC_2.34 pthread_rwlock_destroy F
+GLIBC_2.34 pthread_rwlock_init F
 GLIBC_2.34 pthread_rwlock_rdlock F
 GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
index ebdbdfa867..c6dee0cc25 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
@@ -4,7 +4,6 @@  GLIBC_2.17 _IO_funlockfile F
 GLIBC_2.17 __errno_location F
 GLIBC_2.17 __pthread_register_cancel F
 GLIBC_2.17 __pthread_register_cancel_defer F
-GLIBC_2.17 __pthread_rwlock_init F
 GLIBC_2.17 __pthread_rwlock_tryrdlock F
 GLIBC_2.17 __pthread_rwlock_trywrlock F
 GLIBC_2.17 __pthread_unregister_cancel F
@@ -35,7 +34,6 @@  GLIBC_2.17 pthread_getconcurrency F
 GLIBC_2.17 pthread_getcpuclockid F
 GLIBC_2.17 pthread_getname_np F
 GLIBC_2.17 pthread_join F
-GLIBC_2.17 pthread_rwlock_init F
 GLIBC_2.17 pthread_rwlock_timedrdlock F
 GLIBC_2.17 pthread_rwlock_timedwrlock F
 GLIBC_2.17 pthread_rwlock_tryrdlock F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 396c786557..6336e2dd35 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -1607,6 +1607,7 @@  GLIBC_2.1 pthread_attr_init F
 GLIBC_2.1 pthread_mutexattr_gettype F
 GLIBC_2.1 pthread_mutexattr_settype F
 GLIBC_2.1 pthread_rwlock_destroy F
+GLIBC_2.1 pthread_rwlock_init F
 GLIBC_2.1 pthread_rwlock_rdlock F
 GLIBC_2.1 pthread_rwlock_unlock F
 GLIBC_2.1 pthread_rwlock_wrlock F
@@ -1887,6 +1888,7 @@  GLIBC_2.2 __nl_langinfo_l F
 GLIBC_2.2 __open64 F
 GLIBC_2.2 __pread64 F
 GLIBC_2.2 __pthread_rwlock_destroy F
+GLIBC_2.2 __pthread_rwlock_init F
 GLIBC_2.2 __pthread_rwlock_rdlock F
 GLIBC_2.2 __pthread_rwlock_unlock F
 GLIBC_2.2 __pthread_rwlock_wrlock F
@@ -2366,6 +2368,7 @@  GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_rwlock_clockrdlock F
 GLIBC_2.34 pthread_rwlock_clockwrlock F
 GLIBC_2.34 pthread_rwlock_destroy F
+GLIBC_2.34 pthread_rwlock_init F
 GLIBC_2.34 pthread_rwlock_rdlock F
 GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
index b80868c5da..0189fc6a88 100644
--- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
@@ -24,7 +24,6 @@  GLIBC_2.1 pthread_attr_setstackaddr F
 GLIBC_2.1 pthread_attr_setstacksize F
 GLIBC_2.1 pthread_create F
 GLIBC_2.1 pthread_getconcurrency F
-GLIBC_2.1 pthread_rwlock_init F
 GLIBC_2.1 pthread_rwlock_tryrdlock F
 GLIBC_2.1 pthread_rwlock_trywrlock F
 GLIBC_2.1 pthread_rwlockattr_destroy F
@@ -49,7 +48,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.2 __pthread_rwlock_init F
 GLIBC_2.2 __pthread_rwlock_tryrdlock F
 GLIBC_2.2 __pthread_rwlock_trywrlock F
 GLIBC_2.2 pthread_attr_getstack F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 832ac4e217..a5fff26d3a 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -340,6 +340,7 @@  GLIBC_2.32 __pthread_mutexattr_init F
 GLIBC_2.32 __pthread_mutexattr_settype F
 GLIBC_2.32 __pthread_once F
 GLIBC_2.32 __pthread_rwlock_destroy F
+GLIBC_2.32 __pthread_rwlock_init F
 GLIBC_2.32 __pthread_rwlock_rdlock F
 GLIBC_2.32 __pthread_rwlock_unlock F
 GLIBC_2.32 __pthread_rwlock_wrlock F
@@ -1432,6 +1433,7 @@  GLIBC_2.32 pthread_once F
 GLIBC_2.32 pthread_rwlock_clockrdlock F
 GLIBC_2.32 pthread_rwlock_clockwrlock F
 GLIBC_2.32 pthread_rwlock_destroy F
+GLIBC_2.32 pthread_rwlock_init F
 GLIBC_2.32 pthread_rwlock_rdlock F
 GLIBC_2.32 pthread_rwlock_unlock F
 GLIBC_2.32 pthread_rwlock_wrlock F
@@ -2044,6 +2046,7 @@  GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_rwlock_clockrdlock F
 GLIBC_2.34 pthread_rwlock_clockwrlock F
 GLIBC_2.34 pthread_rwlock_destroy F
+GLIBC_2.34 pthread_rwlock_init F
 GLIBC_2.34 pthread_rwlock_rdlock F
 GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
index 0d819a63b1..d71f38bf24 100644
--- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
@@ -4,7 +4,6 @@  GLIBC_2.32 _IO_funlockfile F
 GLIBC_2.32 __errno_location F
 GLIBC_2.32 __pthread_register_cancel F
 GLIBC_2.32 __pthread_register_cancel_defer F
-GLIBC_2.32 __pthread_rwlock_init F
 GLIBC_2.32 __pthread_rwlock_tryrdlock F
 GLIBC_2.32 __pthread_rwlock_trywrlock F
 GLIBC_2.32 __pthread_unregister_cancel F
@@ -50,7 +49,6 @@  GLIBC_2.32 pthread_getconcurrency F
 GLIBC_2.32 pthread_getcpuclockid F
 GLIBC_2.32 pthread_getname_np F
 GLIBC_2.32 pthread_join F
-GLIBC_2.32 pthread_rwlock_init F
 GLIBC_2.32 pthread_rwlock_timedrdlock F
 GLIBC_2.32 pthread_rwlock_timedwrlock F
 GLIBC_2.32 pthread_rwlock_tryrdlock F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index dcba73cb45..6595cad027 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -207,6 +207,7 @@  GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_rwlock_clockrdlock F
 GLIBC_2.34 pthread_rwlock_clockwrlock F
 GLIBC_2.34 pthread_rwlock_destroy F
+GLIBC_2.34 pthread_rwlock_init F
 GLIBC_2.34 pthread_rwlock_rdlock F
 GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
@@ -556,6 +557,7 @@  GLIBC_2.4 __pthread_mutexattr_init F
 GLIBC_2.4 __pthread_mutexattr_settype F
 GLIBC_2.4 __pthread_once F
 GLIBC_2.4 __pthread_rwlock_destroy F
+GLIBC_2.4 __pthread_rwlock_init F
 GLIBC_2.4 __pthread_rwlock_rdlock F
 GLIBC_2.4 __pthread_rwlock_unlock F
 GLIBC_2.4 __pthread_rwlock_wrlock F
@@ -1651,6 +1653,7 @@  GLIBC_2.4 pthread_mutexattr_setrobust_np F
 GLIBC_2.4 pthread_mutexattr_settype F
 GLIBC_2.4 pthread_once F
 GLIBC_2.4 pthread_rwlock_destroy F
+GLIBC_2.4 pthread_rwlock_init F
 GLIBC_2.4 pthread_rwlock_rdlock F
 GLIBC_2.4 pthread_rwlock_unlock F
 GLIBC_2.4 pthread_rwlock_wrlock F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
index 85d9816c4e..1340d32c7f 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
@@ -33,7 +33,6 @@  GLIBC_2.4 __errno_location F
 GLIBC_2.4 __libpthread_version_placeholder F
 GLIBC_2.4 __pthread_register_cancel F
 GLIBC_2.4 __pthread_register_cancel_defer F
-GLIBC_2.4 __pthread_rwlock_init F
 GLIBC_2.4 __pthread_rwlock_tryrdlock F
 GLIBC_2.4 __pthread_rwlock_trywrlock F
 GLIBC_2.4 __pthread_unregister_cancel F
@@ -63,7 +62,6 @@  GLIBC_2.4 pthread_detach F
 GLIBC_2.4 pthread_getconcurrency F
 GLIBC_2.4 pthread_getcpuclockid F
 GLIBC_2.4 pthread_join F
-GLIBC_2.4 pthread_rwlock_init F
 GLIBC_2.4 pthread_rwlock_timedrdlock F
 GLIBC_2.4 pthread_rwlock_timedwrlock F
 GLIBC_2.4 pthread_rwlock_tryrdlock F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index d401b85fc9..f4dbe63497 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -204,6 +204,7 @@  GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_rwlock_clockrdlock F
 GLIBC_2.34 pthread_rwlock_clockwrlock F
 GLIBC_2.34 pthread_rwlock_destroy F
+GLIBC_2.34 pthread_rwlock_init F
 GLIBC_2.34 pthread_rwlock_rdlock F
 GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
@@ -553,6 +554,7 @@  GLIBC_2.4 __pthread_mutexattr_init F
 GLIBC_2.4 __pthread_mutexattr_settype F
 GLIBC_2.4 __pthread_once F
 GLIBC_2.4 __pthread_rwlock_destroy F
+GLIBC_2.4 __pthread_rwlock_init F
 GLIBC_2.4 __pthread_rwlock_rdlock F
 GLIBC_2.4 __pthread_rwlock_unlock F
 GLIBC_2.4 __pthread_rwlock_wrlock F
@@ -1648,6 +1650,7 @@  GLIBC_2.4 pthread_mutexattr_setrobust_np F
 GLIBC_2.4 pthread_mutexattr_settype F
 GLIBC_2.4 pthread_once F
 GLIBC_2.4 pthread_rwlock_destroy F
+GLIBC_2.4 pthread_rwlock_init F
 GLIBC_2.4 pthread_rwlock_rdlock F
 GLIBC_2.4 pthread_rwlock_unlock F
 GLIBC_2.4 pthread_rwlock_wrlock F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
index 85d9816c4e..1340d32c7f 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
@@ -33,7 +33,6 @@  GLIBC_2.4 __errno_location F
 GLIBC_2.4 __libpthread_version_placeholder F
 GLIBC_2.4 __pthread_register_cancel F
 GLIBC_2.4 __pthread_register_cancel_defer F
-GLIBC_2.4 __pthread_rwlock_init F
 GLIBC_2.4 __pthread_rwlock_tryrdlock F
 GLIBC_2.4 __pthread_rwlock_trywrlock F
 GLIBC_2.4 __pthread_unregister_cancel F
@@ -63,7 +62,6 @@  GLIBC_2.4 pthread_detach F
 GLIBC_2.4 pthread_getconcurrency F
 GLIBC_2.4 pthread_getcpuclockid F
 GLIBC_2.4 pthread_join F
-GLIBC_2.4 pthread_rwlock_init F
 GLIBC_2.4 pthread_rwlock_timedrdlock F
 GLIBC_2.4 pthread_rwlock_timedwrlock F
 GLIBC_2.4 pthread_rwlock_tryrdlock F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index a99d18b478..c0a28cd1d4 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -344,6 +344,7 @@  GLIBC_2.29 __pthread_mutexattr_init F
 GLIBC_2.29 __pthread_mutexattr_settype F
 GLIBC_2.29 __pthread_once F
 GLIBC_2.29 __pthread_rwlock_destroy F
+GLIBC_2.29 __pthread_rwlock_init F
 GLIBC_2.29 __pthread_rwlock_rdlock F
 GLIBC_2.29 __pthread_rwlock_unlock F
 GLIBC_2.29 __pthread_rwlock_wrlock F
@@ -1489,6 +1490,7 @@  GLIBC_2.29 pthread_mutexattr_setrobust_np F
 GLIBC_2.29 pthread_mutexattr_settype F
 GLIBC_2.29 pthread_once F
 GLIBC_2.29 pthread_rwlock_destroy F
+GLIBC_2.29 pthread_rwlock_init F
 GLIBC_2.29 pthread_rwlock_rdlock F
 GLIBC_2.29 pthread_rwlock_unlock F
 GLIBC_2.29 pthread_rwlock_wrlock F
@@ -2228,6 +2230,7 @@  GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_rwlock_clockrdlock F
 GLIBC_2.34 pthread_rwlock_clockwrlock F
 GLIBC_2.34 pthread_rwlock_destroy F
+GLIBC_2.34 pthread_rwlock_init F
 GLIBC_2.34 pthread_rwlock_rdlock F
 GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
index 21d9318f9a..8c2eacba71 100644
--- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
@@ -4,7 +4,6 @@  GLIBC_2.29 _IO_funlockfile F
 GLIBC_2.29 __errno_location F
 GLIBC_2.29 __pthread_register_cancel F
 GLIBC_2.29 __pthread_register_cancel_defer F
-GLIBC_2.29 __pthread_rwlock_init F
 GLIBC_2.29 __pthread_rwlock_tryrdlock F
 GLIBC_2.29 __pthread_rwlock_trywrlock F
 GLIBC_2.29 __pthread_unregister_cancel F
@@ -49,7 +48,6 @@  GLIBC_2.29 pthread_getconcurrency F
 GLIBC_2.29 pthread_getcpuclockid F
 GLIBC_2.29 pthread_getname_np F
 GLIBC_2.29 pthread_join F
-GLIBC_2.29 pthread_rwlock_init F
 GLIBC_2.29 pthread_rwlock_timedrdlock F
 GLIBC_2.29 pthread_rwlock_timedwrlock F
 GLIBC_2.29 pthread_rwlock_tryrdlock F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 7d0c716a6d..50253bac3f 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -370,6 +370,7 @@  GLIBC_2.2 __pthread_mutexattr_init F
 GLIBC_2.2 __pthread_mutexattr_settype F
 GLIBC_2.2 __pthread_once F
 GLIBC_2.2 __pthread_rwlock_destroy F
+GLIBC_2.2 __pthread_rwlock_init F
 GLIBC_2.2 __pthread_rwlock_rdlock F
 GLIBC_2.2 __pthread_rwlock_unlock F
 GLIBC_2.2 __pthread_rwlock_wrlock F
@@ -1313,6 +1314,7 @@  GLIBC_2.2 pthread_mutexattr_setpshared F
 GLIBC_2.2 pthread_mutexattr_settype F
 GLIBC_2.2 pthread_once F
 GLIBC_2.2 pthread_rwlock_destroy F
+GLIBC_2.2 pthread_rwlock_init F
 GLIBC_2.2 pthread_rwlock_rdlock F
 GLIBC_2.2 pthread_rwlock_unlock F
 GLIBC_2.2 pthread_rwlock_wrlock F
@@ -2179,6 +2181,7 @@  GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_rwlock_clockrdlock F
 GLIBC_2.34 pthread_rwlock_clockwrlock F
 GLIBC_2.34 pthread_rwlock_destroy F
+GLIBC_2.34 pthread_rwlock_init F
 GLIBC_2.34 pthread_rwlock_rdlock F
 GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
index 82bc0321f5..52da9c0a32 100644
--- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
@@ -7,7 +7,6 @@  GLIBC_2.2 _IO_flockfile F
 GLIBC_2.2 _IO_ftrylockfile F
 GLIBC_2.2 _IO_funlockfile F
 GLIBC_2.2 __errno_location F
-GLIBC_2.2 __pthread_rwlock_init F
 GLIBC_2.2 __pthread_rwlock_tryrdlock F
 GLIBC_2.2 __pthread_rwlock_trywrlock F
 GLIBC_2.2 flockfile F
@@ -33,7 +32,6 @@  GLIBC_2.2 pthread_detach F
 GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join F
-GLIBC_2.2 pthread_rwlock_init F
 GLIBC_2.2 pthread_rwlock_timedrdlock F
 GLIBC_2.2 pthread_rwlock_timedwrlock F
 GLIBC_2.2 pthread_rwlock_tryrdlock F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 906baf44bf..4a6e8cf210 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -1575,6 +1575,7 @@  GLIBC_2.1 pthread_attr_init F
 GLIBC_2.1 pthread_mutexattr_gettype F
 GLIBC_2.1 pthread_mutexattr_settype F
 GLIBC_2.1 pthread_rwlock_destroy F
+GLIBC_2.1 pthread_rwlock_init F
 GLIBC_2.1 pthread_rwlock_rdlock F
 GLIBC_2.1 pthread_rwlock_unlock F
 GLIBC_2.1 pthread_rwlock_wrlock F
@@ -1891,6 +1892,7 @@  GLIBC_2.2 __nl_langinfo_l F
 GLIBC_2.2 __open64 F
 GLIBC_2.2 __pread64 F
 GLIBC_2.2 __pthread_rwlock_destroy F
+GLIBC_2.2 __pthread_rwlock_init F
 GLIBC_2.2 __pthread_rwlock_rdlock F
 GLIBC_2.2 __pthread_rwlock_unlock F
 GLIBC_2.2 __pthread_rwlock_wrlock F
@@ -2356,6 +2358,7 @@  GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_rwlock_clockrdlock F
 GLIBC_2.34 pthread_rwlock_clockwrlock F
 GLIBC_2.34 pthread_rwlock_destroy F
+GLIBC_2.34 pthread_rwlock_init F
 GLIBC_2.34 pthread_rwlock_rdlock F
 GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
index ad2e81096d..a0daef9d41 100644
--- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
@@ -24,7 +24,6 @@  GLIBC_2.1 pthread_attr_setstackaddr F
 GLIBC_2.1 pthread_attr_setstacksize F
 GLIBC_2.1 pthread_create F
 GLIBC_2.1 pthread_getconcurrency F
-GLIBC_2.1 pthread_rwlock_init F
 GLIBC_2.1 pthread_rwlock_tryrdlock F
 GLIBC_2.1 pthread_rwlock_trywrlock F
 GLIBC_2.1 pthread_rwlockattr_destroy F
@@ -49,7 +48,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.2 __pthread_rwlock_init F
 GLIBC_2.2 __pthread_rwlock_tryrdlock F
 GLIBC_2.2 __pthread_rwlock_trywrlock F
 GLIBC_2.2 pthread_attr_getstack F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index f92ae402f9..ba34d9e68f 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -374,6 +374,7 @@  GLIBC_2.2 __pthread_mutexattr_init F
 GLIBC_2.2 __pthread_mutexattr_settype F
 GLIBC_2.2 __pthread_once F
 GLIBC_2.2 __pthread_rwlock_destroy F
+GLIBC_2.2 __pthread_rwlock_init F
 GLIBC_2.2 __pthread_rwlock_rdlock F
 GLIBC_2.2 __pthread_rwlock_unlock F
 GLIBC_2.2 __pthread_rwlock_wrlock F
@@ -1334,6 +1335,7 @@  GLIBC_2.2 pthread_mutexattr_setpshared F
 GLIBC_2.2 pthread_mutexattr_settype F
 GLIBC_2.2 pthread_once F
 GLIBC_2.2 pthread_rwlock_destroy F
+GLIBC_2.2 pthread_rwlock_init F
 GLIBC_2.2 pthread_rwlock_rdlock F
 GLIBC_2.2 pthread_rwlock_unlock F
 GLIBC_2.2 pthread_rwlock_wrlock F
@@ -2213,6 +2215,7 @@  GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_rwlock_clockrdlock F
 GLIBC_2.34 pthread_rwlock_clockwrlock F
 GLIBC_2.34 pthread_rwlock_destroy F
+GLIBC_2.34 pthread_rwlock_init F
 GLIBC_2.34 pthread_rwlock_rdlock F
 GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
index 6d11adb7da..5d186fc586 100644
--- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
@@ -7,7 +7,6 @@  GLIBC_2.2 _IO_flockfile F
 GLIBC_2.2 _IO_ftrylockfile F
 GLIBC_2.2 _IO_funlockfile F
 GLIBC_2.2 __errno_location F
-GLIBC_2.2 __pthread_rwlock_init F
 GLIBC_2.2 __pthread_rwlock_tryrdlock F
 GLIBC_2.2 __pthread_rwlock_trywrlock F
 GLIBC_2.2 flockfile F
@@ -33,7 +32,6 @@  GLIBC_2.2 pthread_detach F
 GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join F
-GLIBC_2.2 pthread_rwlock_init F
 GLIBC_2.2 pthread_rwlock_timedrdlock F
 GLIBC_2.2 pthread_rwlock_timedwrlock F
 GLIBC_2.2 pthread_rwlock_tryrdlock F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index cb6bd2ec33..2a31f0acd5 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -208,6 +208,7 @@  GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_rwlock_clockrdlock F
 GLIBC_2.34 pthread_rwlock_clockwrlock F
 GLIBC_2.34 pthread_rwlock_destroy F
+GLIBC_2.34 pthread_rwlock_init F
 GLIBC_2.34 pthread_rwlock_rdlock F
 GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
@@ -542,6 +543,7 @@  GLIBC_2.4 __pthread_mutexattr_init F
 GLIBC_2.4 __pthread_mutexattr_settype F
 GLIBC_2.4 __pthread_once F
 GLIBC_2.4 __pthread_rwlock_destroy F
+GLIBC_2.4 __pthread_rwlock_init F
 GLIBC_2.4 __pthread_rwlock_rdlock F
 GLIBC_2.4 __pthread_rwlock_unlock F
 GLIBC_2.4 __pthread_rwlock_wrlock F
@@ -1631,6 +1633,7 @@  GLIBC_2.4 pthread_mutexattr_setrobust_np F
 GLIBC_2.4 pthread_mutexattr_settype F
 GLIBC_2.4 pthread_once F
 GLIBC_2.4 pthread_rwlock_destroy F
+GLIBC_2.4 pthread_rwlock_init F
 GLIBC_2.4 pthread_rwlock_rdlock F
 GLIBC_2.4 pthread_rwlock_unlock F
 GLIBC_2.4 pthread_rwlock_wrlock F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
index 85d9816c4e..1340d32c7f 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
@@ -33,7 +33,6 @@  GLIBC_2.4 __errno_location F
 GLIBC_2.4 __libpthread_version_placeholder F
 GLIBC_2.4 __pthread_register_cancel F
 GLIBC_2.4 __pthread_register_cancel_defer F
-GLIBC_2.4 __pthread_rwlock_init F
 GLIBC_2.4 __pthread_rwlock_tryrdlock F
 GLIBC_2.4 __pthread_rwlock_trywrlock F
 GLIBC_2.4 __pthread_unregister_cancel F
@@ -63,7 +62,6 @@  GLIBC_2.4 pthread_detach F
 GLIBC_2.4 pthread_getconcurrency F
 GLIBC_2.4 pthread_getcpuclockid F
 GLIBC_2.4 pthread_join F
-GLIBC_2.4 pthread_rwlock_init F
 GLIBC_2.4 pthread_rwlock_timedrdlock F
 GLIBC_2.4 pthread_rwlock_timedwrlock F
 GLIBC_2.4 pthread_rwlock_tryrdlock F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 5e1c0c5f92..4528a06d6f 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -1571,6 +1571,7 @@  GLIBC_2.1 pthread_attr_init F
 GLIBC_2.1 pthread_mutexattr_gettype F
 GLIBC_2.1 pthread_mutexattr_settype F
 GLIBC_2.1 pthread_rwlock_destroy F
+GLIBC_2.1 pthread_rwlock_init F
 GLIBC_2.1 pthread_rwlock_rdlock F
 GLIBC_2.1 pthread_rwlock_unlock F
 GLIBC_2.1 pthread_rwlock_wrlock F
@@ -1847,6 +1848,7 @@  GLIBC_2.2 __nl_langinfo_l F
 GLIBC_2.2 __open64 F
 GLIBC_2.2 __pread64 F
 GLIBC_2.2 __pthread_rwlock_destroy F
+GLIBC_2.2 __pthread_rwlock_init F
 GLIBC_2.2 __pthread_rwlock_rdlock F
 GLIBC_2.2 __pthread_rwlock_unlock F
 GLIBC_2.2 __pthread_rwlock_wrlock F
@@ -2299,6 +2301,7 @@  GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_rwlock_clockrdlock F
 GLIBC_2.34 pthread_rwlock_clockwrlock F
 GLIBC_2.34 pthread_rwlock_destroy F
+GLIBC_2.34 pthread_rwlock_init F
 GLIBC_2.34 pthread_rwlock_rdlock F
 GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
index ad2e81096d..a0daef9d41 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
@@ -24,7 +24,6 @@  GLIBC_2.1 pthread_attr_setstackaddr F
 GLIBC_2.1 pthread_attr_setstacksize F
 GLIBC_2.1 pthread_create F
 GLIBC_2.1 pthread_getconcurrency F
-GLIBC_2.1 pthread_rwlock_init F
 GLIBC_2.1 pthread_rwlock_tryrdlock F
 GLIBC_2.1 pthread_rwlock_trywrlock F
 GLIBC_2.1 pthread_rwlockattr_destroy F
@@ -49,7 +48,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.2 __pthread_rwlock_init F
 GLIBC_2.2 __pthread_rwlock_tryrdlock F
 GLIBC_2.2 __pthread_rwlock_trywrlock F
 GLIBC_2.2 pthread_attr_getstack F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 824dea1e05..0f6be8c0f2 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -352,6 +352,7 @@  GLIBC_2.18 __pthread_mutexattr_init F
 GLIBC_2.18 __pthread_mutexattr_settype F
 GLIBC_2.18 __pthread_once F
 GLIBC_2.18 __pthread_rwlock_destroy F
+GLIBC_2.18 __pthread_rwlock_init F
 GLIBC_2.18 __pthread_rwlock_rdlock F
 GLIBC_2.18 __pthread_rwlock_unlock F
 GLIBC_2.18 __pthread_rwlock_wrlock F
@@ -1504,6 +1505,7 @@  GLIBC_2.18 pthread_mutexattr_setrobust_np F
 GLIBC_2.18 pthread_mutexattr_settype F
 GLIBC_2.18 pthread_once F
 GLIBC_2.18 pthread_rwlock_destroy F
+GLIBC_2.18 pthread_rwlock_init F
 GLIBC_2.18 pthread_rwlock_rdlock F
 GLIBC_2.18 pthread_rwlock_unlock F
 GLIBC_2.18 pthread_rwlock_wrlock F
@@ -2279,6 +2281,7 @@  GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_rwlock_clockrdlock F
 GLIBC_2.34 pthread_rwlock_clockwrlock F
 GLIBC_2.34 pthread_rwlock_destroy F
+GLIBC_2.34 pthread_rwlock_init F
 GLIBC_2.34 pthread_rwlock_rdlock F
 GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
index 7d0c9cf145..968fcfd1df 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
@@ -4,7 +4,6 @@  GLIBC_2.18 _IO_funlockfile F
 GLIBC_2.18 __errno_location F
 GLIBC_2.18 __pthread_register_cancel F
 GLIBC_2.18 __pthread_register_cancel_defer F
-GLIBC_2.18 __pthread_rwlock_init F
 GLIBC_2.18 __pthread_rwlock_tryrdlock F
 GLIBC_2.18 __pthread_rwlock_trywrlock F
 GLIBC_2.18 __pthread_unregister_cancel F
@@ -36,7 +35,6 @@  GLIBC_2.18 pthread_getconcurrency F
 GLIBC_2.18 pthread_getcpuclockid F
 GLIBC_2.18 pthread_getname_np F
 GLIBC_2.18 pthread_join F
-GLIBC_2.18 pthread_rwlock_init F
 GLIBC_2.18 pthread_rwlock_timedrdlock F
 GLIBC_2.18 pthread_rwlock_timedwrlock F
 GLIBC_2.18 pthread_rwlock_tryrdlock F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 177bd7f5e4..a024c588b1 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -352,6 +352,7 @@  GLIBC_2.18 __pthread_mutexattr_init F
 GLIBC_2.18 __pthread_mutexattr_settype F
 GLIBC_2.18 __pthread_once F
 GLIBC_2.18 __pthread_rwlock_destroy F
+GLIBC_2.18 __pthread_rwlock_init F
 GLIBC_2.18 __pthread_rwlock_rdlock F
 GLIBC_2.18 __pthread_rwlock_unlock F
 GLIBC_2.18 __pthread_rwlock_wrlock F
@@ -1504,6 +1505,7 @@  GLIBC_2.18 pthread_mutexattr_setrobust_np F
 GLIBC_2.18 pthread_mutexattr_settype F
 GLIBC_2.18 pthread_once F
 GLIBC_2.18 pthread_rwlock_destroy F
+GLIBC_2.18 pthread_rwlock_init F
 GLIBC_2.18 pthread_rwlock_rdlock F
 GLIBC_2.18 pthread_rwlock_unlock F
 GLIBC_2.18 pthread_rwlock_wrlock F
@@ -2276,6 +2278,7 @@  GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_rwlock_clockrdlock F
 GLIBC_2.34 pthread_rwlock_clockwrlock F
 GLIBC_2.34 pthread_rwlock_destroy F
+GLIBC_2.34 pthread_rwlock_init F
 GLIBC_2.34 pthread_rwlock_rdlock F
 GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
index 7d0c9cf145..968fcfd1df 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
@@ -4,7 +4,6 @@  GLIBC_2.18 _IO_funlockfile F
 GLIBC_2.18 __errno_location F
 GLIBC_2.18 __pthread_register_cancel F
 GLIBC_2.18 __pthread_register_cancel_defer F
-GLIBC_2.18 __pthread_rwlock_init F
 GLIBC_2.18 __pthread_rwlock_tryrdlock F
 GLIBC_2.18 __pthread_rwlock_trywrlock F
 GLIBC_2.18 __pthread_unregister_cancel F
@@ -36,7 +35,6 @@  GLIBC_2.18 pthread_getconcurrency F
 GLIBC_2.18 pthread_getcpuclockid F
 GLIBC_2.18 pthread_getname_np F
 GLIBC_2.18 pthread_join F
-GLIBC_2.18 pthread_rwlock_init F
 GLIBC_2.18 pthread_rwlock_timedrdlock F
 GLIBC_2.18 pthread_rwlock_timedwrlock F
 GLIBC_2.18 pthread_rwlock_tryrdlock F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index db80dbe227..f70ab56969 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -1545,6 +1545,7 @@  GLIBC_2.2 __open64 F
 GLIBC_2.2 __poll F
 GLIBC_2.2 __pread64 F
 GLIBC_2.2 __pthread_rwlock_destroy F
+GLIBC_2.2 __pthread_rwlock_init F
 GLIBC_2.2 __pthread_rwlock_rdlock F
 GLIBC_2.2 __pthread_rwlock_unlock F
 GLIBC_2.2 __pthread_rwlock_wrlock F
@@ -1843,6 +1844,7 @@  GLIBC_2.2 pthread_mutexattr_gettype F
 GLIBC_2.2 pthread_mutexattr_setpshared F
 GLIBC_2.2 pthread_mutexattr_settype F
 GLIBC_2.2 pthread_rwlock_destroy F
+GLIBC_2.2 pthread_rwlock_init F
 GLIBC_2.2 pthread_rwlock_rdlock F
 GLIBC_2.2 pthread_rwlock_unlock F
 GLIBC_2.2 pthread_rwlock_wrlock F
@@ -2262,6 +2264,7 @@  GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_rwlock_clockrdlock F
 GLIBC_2.34 pthread_rwlock_clockwrlock F
 GLIBC_2.34 pthread_rwlock_destroy F
+GLIBC_2.34 pthread_rwlock_init F
 GLIBC_2.34 pthread_rwlock_rdlock F
 GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
index 14e375c8da..a09a4dc5e3 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
@@ -21,7 +21,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.2 __pthread_rwlock_init F
 GLIBC_2.2 __pthread_rwlock_tryrdlock F
 GLIBC_2.2 __pthread_rwlock_trywrlock F
 GLIBC_2.2 pthread_attr_getguardsize F
@@ -41,7 +40,6 @@  GLIBC_2.2 pthread_barrierattr_setpshared F
 GLIBC_2.2 pthread_create F
 GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
-GLIBC_2.2 pthread_rwlock_init F
 GLIBC_2.2 pthread_rwlock_timedrdlock F
 GLIBC_2.2 pthread_rwlock_timedwrlock F
 GLIBC_2.2 pthread_rwlock_tryrdlock F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 46fbef56f2..996626fc69 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -1543,6 +1543,7 @@  GLIBC_2.2 __open64 F
 GLIBC_2.2 __poll F
 GLIBC_2.2 __pread64 F
 GLIBC_2.2 __pthread_rwlock_destroy F
+GLIBC_2.2 __pthread_rwlock_init F
 GLIBC_2.2 __pthread_rwlock_rdlock F
 GLIBC_2.2 __pthread_rwlock_unlock F
 GLIBC_2.2 __pthread_rwlock_wrlock F
@@ -1841,6 +1842,7 @@  GLIBC_2.2 pthread_mutexattr_gettype F
 GLIBC_2.2 pthread_mutexattr_setpshared F
 GLIBC_2.2 pthread_mutexattr_settype F
 GLIBC_2.2 pthread_rwlock_destroy F
+GLIBC_2.2 pthread_rwlock_init F
 GLIBC_2.2 pthread_rwlock_rdlock F
 GLIBC_2.2 pthread_rwlock_unlock F
 GLIBC_2.2 pthread_rwlock_wrlock F
@@ -2260,6 +2262,7 @@  GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_rwlock_clockrdlock F
 GLIBC_2.34 pthread_rwlock_clockwrlock F
 GLIBC_2.34 pthread_rwlock_destroy F
+GLIBC_2.34 pthread_rwlock_init F
 GLIBC_2.34 pthread_rwlock_rdlock F
 GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
index 14e375c8da..a09a4dc5e3 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
@@ -21,7 +21,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.2 __pthread_rwlock_init F
 GLIBC_2.2 __pthread_rwlock_tryrdlock F
 GLIBC_2.2 __pthread_rwlock_trywrlock F
 GLIBC_2.2 pthread_attr_getguardsize F
@@ -41,7 +40,6 @@  GLIBC_2.2 pthread_barrierattr_setpshared F
 GLIBC_2.2 pthread_create F
 GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
-GLIBC_2.2 pthread_rwlock_init F
 GLIBC_2.2 pthread_rwlock_timedrdlock F
 GLIBC_2.2 pthread_rwlock_timedwrlock F
 GLIBC_2.2 pthread_rwlock_tryrdlock F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 02b3a04e1d..fcef7cf463 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -1543,6 +1543,7 @@  GLIBC_2.2 __open64 F
 GLIBC_2.2 __poll F
 GLIBC_2.2 __pread64 F
 GLIBC_2.2 __pthread_rwlock_destroy F
+GLIBC_2.2 __pthread_rwlock_init F
 GLIBC_2.2 __pthread_rwlock_rdlock F
 GLIBC_2.2 __pthread_rwlock_unlock F
 GLIBC_2.2 __pthread_rwlock_wrlock F
@@ -1841,6 +1842,7 @@  GLIBC_2.2 pthread_mutexattr_gettype F
 GLIBC_2.2 pthread_mutexattr_setpshared F
 GLIBC_2.2 pthread_mutexattr_settype F
 GLIBC_2.2 pthread_rwlock_destroy F
+GLIBC_2.2 pthread_rwlock_init F
 GLIBC_2.2 pthread_rwlock_rdlock F
 GLIBC_2.2 pthread_rwlock_unlock F
 GLIBC_2.2 pthread_rwlock_wrlock F
@@ -2268,6 +2270,7 @@  GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_rwlock_clockrdlock F
 GLIBC_2.34 pthread_rwlock_clockwrlock F
 GLIBC_2.34 pthread_rwlock_destroy F
+GLIBC_2.34 pthread_rwlock_init F
 GLIBC_2.34 pthread_rwlock_rdlock F
 GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index ffbd2d7e1a..e6425649d7 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -1539,6 +1539,7 @@  GLIBC_2.2 __open64 F
 GLIBC_2.2 __poll F
 GLIBC_2.2 __pread64 F
 GLIBC_2.2 __pthread_rwlock_destroy F
+GLIBC_2.2 __pthread_rwlock_init F
 GLIBC_2.2 __pthread_rwlock_rdlock F
 GLIBC_2.2 __pthread_rwlock_unlock F
 GLIBC_2.2 __pthread_rwlock_wrlock F
@@ -1837,6 +1838,7 @@  GLIBC_2.2 pthread_mutexattr_gettype F
 GLIBC_2.2 pthread_mutexattr_setpshared F
 GLIBC_2.2 pthread_mutexattr_settype F
 GLIBC_2.2 pthread_rwlock_destroy F
+GLIBC_2.2 pthread_rwlock_init F
 GLIBC_2.2 pthread_rwlock_rdlock F
 GLIBC_2.2 pthread_rwlock_unlock F
 GLIBC_2.2 pthread_rwlock_wrlock F
@@ -2262,6 +2264,7 @@  GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_rwlock_clockrdlock F
 GLIBC_2.34 pthread_rwlock_clockwrlock F
 GLIBC_2.34 pthread_rwlock_destroy F
+GLIBC_2.34 pthread_rwlock_init F
 GLIBC_2.34 pthread_rwlock_rdlock F
 GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 5a5b32e243..28b29918a8 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -389,6 +389,7 @@  GLIBC_2.21 __pthread_mutexattr_init F
 GLIBC_2.21 __pthread_mutexattr_settype F
 GLIBC_2.21 __pthread_once F
 GLIBC_2.21 __pthread_rwlock_destroy F
+GLIBC_2.21 __pthread_rwlock_init F
 GLIBC_2.21 __pthread_rwlock_rdlock F
 GLIBC_2.21 __pthread_rwlock_unlock F
 GLIBC_2.21 __pthread_rwlock_wrlock F
@@ -1547,6 +1548,7 @@  GLIBC_2.21 pthread_mutexattr_setrobust_np F
 GLIBC_2.21 pthread_mutexattr_settype F
 GLIBC_2.21 pthread_once F
 GLIBC_2.21 pthread_rwlock_destroy F
+GLIBC_2.21 pthread_rwlock_init F
 GLIBC_2.21 pthread_rwlock_rdlock F
 GLIBC_2.21 pthread_rwlock_unlock F
 GLIBC_2.21 pthread_rwlock_wrlock F
@@ -2318,6 +2320,7 @@  GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_rwlock_clockrdlock F
 GLIBC_2.34 pthread_rwlock_clockwrlock F
 GLIBC_2.34 pthread_rwlock_destroy F
+GLIBC_2.34 pthread_rwlock_init F
 GLIBC_2.34 pthread_rwlock_rdlock F
 GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
index 547413fcf0..a13844bb1d 100644
--- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
@@ -4,7 +4,6 @@  GLIBC_2.21 _IO_funlockfile F
 GLIBC_2.21 __errno_location F
 GLIBC_2.21 __pthread_register_cancel F
 GLIBC_2.21 __pthread_register_cancel_defer F
-GLIBC_2.21 __pthread_rwlock_init F
 GLIBC_2.21 __pthread_rwlock_tryrdlock F
 GLIBC_2.21 __pthread_rwlock_trywrlock F
 GLIBC_2.21 __pthread_unregister_cancel F
@@ -36,7 +35,6 @@  GLIBC_2.21 pthread_getconcurrency F
 GLIBC_2.21 pthread_getcpuclockid F
 GLIBC_2.21 pthread_getname_np F
 GLIBC_2.21 pthread_join F
-GLIBC_2.21 pthread_rwlock_init F
 GLIBC_2.21 pthread_rwlock_timedrdlock F
 GLIBC_2.21 pthread_rwlock_timedwrlock F
 GLIBC_2.21 pthread_rwlock_tryrdlock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 80fed3fb6c..7ef1e07d22 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -1579,6 +1579,7 @@  GLIBC_2.1 pthread_attr_init F
 GLIBC_2.1 pthread_mutexattr_gettype F
 GLIBC_2.1 pthread_mutexattr_settype F
 GLIBC_2.1 pthread_rwlock_destroy F
+GLIBC_2.1 pthread_rwlock_init F
 GLIBC_2.1 pthread_rwlock_rdlock F
 GLIBC_2.1 pthread_rwlock_unlock F
 GLIBC_2.1 pthread_rwlock_wrlock F
@@ -1853,6 +1854,7 @@  GLIBC_2.2 __nl_langinfo_l F
 GLIBC_2.2 __open64 F
 GLIBC_2.2 __pread64 F
 GLIBC_2.2 __pthread_rwlock_destroy F
+GLIBC_2.2 __pthread_rwlock_init F
 GLIBC_2.2 __pthread_rwlock_rdlock F
 GLIBC_2.2 __pthread_rwlock_unlock F
 GLIBC_2.2 __pthread_rwlock_wrlock F
@@ -2326,6 +2328,7 @@  GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_rwlock_clockrdlock F
 GLIBC_2.34 pthread_rwlock_clockwrlock F
 GLIBC_2.34 pthread_rwlock_destroy F
+GLIBC_2.34 pthread_rwlock_init F
 GLIBC_2.34 pthread_rwlock_rdlock F
 GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
index aff96f37d4..8c16c499ad 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
@@ -24,7 +24,6 @@  GLIBC_2.1 pthread_attr_setstackaddr F
 GLIBC_2.1 pthread_attr_setstacksize F
 GLIBC_2.1 pthread_create F
 GLIBC_2.1 pthread_getconcurrency F
-GLIBC_2.1 pthread_rwlock_init F
 GLIBC_2.1 pthread_rwlock_tryrdlock F
 GLIBC_2.1 pthread_rwlock_trywrlock F
 GLIBC_2.1 pthread_rwlockattr_destroy F
@@ -49,7 +48,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.2 __pthread_rwlock_init F
 GLIBC_2.2 __pthread_rwlock_tryrdlock F
 GLIBC_2.2 __pthread_rwlock_trywrlock F
 GLIBC_2.2 pthread_attr_getstack F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 1673ad274d..a125dae857 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -1579,6 +1579,7 @@  GLIBC_2.1 pthread_attr_init F
 GLIBC_2.1 pthread_mutexattr_gettype F
 GLIBC_2.1 pthread_mutexattr_settype F
 GLIBC_2.1 pthread_rwlock_destroy F
+GLIBC_2.1 pthread_rwlock_init F
 GLIBC_2.1 pthread_rwlock_rdlock F
 GLIBC_2.1 pthread_rwlock_unlock F
 GLIBC_2.1 pthread_rwlock_wrlock F
@@ -1857,6 +1858,7 @@  GLIBC_2.2 __nl_langinfo_l F
 GLIBC_2.2 __open64 F
 GLIBC_2.2 __pread64 F
 GLIBC_2.2 __pthread_rwlock_destroy F
+GLIBC_2.2 __pthread_rwlock_init F
 GLIBC_2.2 __pthread_rwlock_rdlock F
 GLIBC_2.2 __pthread_rwlock_unlock F
 GLIBC_2.2 __pthread_rwlock_wrlock F
@@ -2359,6 +2361,7 @@  GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_rwlock_clockrdlock F
 GLIBC_2.34 pthread_rwlock_clockwrlock F
 GLIBC_2.34 pthread_rwlock_destroy F
+GLIBC_2.34 pthread_rwlock_init F
 GLIBC_2.34 pthread_rwlock_rdlock F
 GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index dd4d6d1fcc..90f7f52f9b 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -423,6 +423,7 @@  GLIBC_2.3 __pthread_mutexattr_init F
 GLIBC_2.3 __pthread_mutexattr_settype F
 GLIBC_2.3 __pthread_once F
 GLIBC_2.3 __pthread_rwlock_destroy F
+GLIBC_2.3 __pthread_rwlock_init F
 GLIBC_2.3 __pthread_rwlock_rdlock F
 GLIBC_2.3 __pthread_rwlock_unlock F
 GLIBC_2.3 __pthread_rwlock_wrlock F
@@ -1419,6 +1420,7 @@  GLIBC_2.3 pthread_mutexattr_setpshared F
 GLIBC_2.3 pthread_mutexattr_settype F
 GLIBC_2.3 pthread_once F
 GLIBC_2.3 pthread_rwlock_destroy F
+GLIBC_2.3 pthread_rwlock_init F
 GLIBC_2.3 pthread_rwlock_rdlock F
 GLIBC_2.3 pthread_rwlock_unlock F
 GLIBC_2.3 pthread_rwlock_wrlock F
@@ -2180,6 +2182,7 @@  GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_rwlock_clockrdlock F
 GLIBC_2.34 pthread_rwlock_clockwrlock F
 GLIBC_2.34 pthread_rwlock_destroy F
+GLIBC_2.34 pthread_rwlock_init F
 GLIBC_2.34 pthread_rwlock_rdlock F
 GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
index 558fb1b7db..099a75abb3 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
@@ -28,7 +28,6 @@  GLIBC_2.3 _IO_flockfile F
 GLIBC_2.3 _IO_ftrylockfile F
 GLIBC_2.3 _IO_funlockfile F
 GLIBC_2.3 __errno_location F
-GLIBC_2.3 __pthread_rwlock_init F
 GLIBC_2.3 __pthread_rwlock_tryrdlock F
 GLIBC_2.3 __pthread_rwlock_trywrlock F
 GLIBC_2.3 flockfile F
@@ -54,7 +53,6 @@  GLIBC_2.3 pthread_detach F
 GLIBC_2.3 pthread_getconcurrency F
 GLIBC_2.3 pthread_getcpuclockid F
 GLIBC_2.3 pthread_join F
-GLIBC_2.3 pthread_rwlock_init F
 GLIBC_2.3 pthread_rwlock_timedrdlock F
 GLIBC_2.3 pthread_rwlock_timedwrlock F
 GLIBC_2.3 pthread_rwlock_tryrdlock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 9c3dba4573..203e333287 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -437,6 +437,7 @@  GLIBC_2.17 __pthread_mutexattr_init F
 GLIBC_2.17 __pthread_mutexattr_settype F
 GLIBC_2.17 __pthread_once F
 GLIBC_2.17 __pthread_rwlock_destroy F
+GLIBC_2.17 __pthread_rwlock_init F
 GLIBC_2.17 __pthread_rwlock_rdlock F
 GLIBC_2.17 __pthread_rwlock_unlock F
 GLIBC_2.17 __pthread_rwlock_wrlock F
@@ -1590,6 +1591,7 @@  GLIBC_2.17 pthread_mutexattr_setrobust_np F
 GLIBC_2.17 pthread_mutexattr_settype F
 GLIBC_2.17 pthread_once F
 GLIBC_2.17 pthread_rwlock_destroy F
+GLIBC_2.17 pthread_rwlock_init F
 GLIBC_2.17 pthread_rwlock_rdlock F
 GLIBC_2.17 pthread_rwlock_unlock F
 GLIBC_2.17 pthread_rwlock_wrlock F
@@ -2481,6 +2483,7 @@  GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_rwlock_clockrdlock F
 GLIBC_2.34 pthread_rwlock_clockwrlock F
 GLIBC_2.34 pthread_rwlock_destroy F
+GLIBC_2.34 pthread_rwlock_init F
 GLIBC_2.34 pthread_rwlock_rdlock F
 GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
index ebdbdfa867..c6dee0cc25 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
@@ -4,7 +4,6 @@  GLIBC_2.17 _IO_funlockfile F
 GLIBC_2.17 __errno_location F
 GLIBC_2.17 __pthread_register_cancel F
 GLIBC_2.17 __pthread_register_cancel_defer F
-GLIBC_2.17 __pthread_rwlock_init F
 GLIBC_2.17 __pthread_rwlock_tryrdlock F
 GLIBC_2.17 __pthread_rwlock_trywrlock F
 GLIBC_2.17 __pthread_unregister_cancel F
@@ -35,7 +34,6 @@  GLIBC_2.17 pthread_getconcurrency F
 GLIBC_2.17 pthread_getcpuclockid F
 GLIBC_2.17 pthread_getname_np F
 GLIBC_2.17 pthread_join F
-GLIBC_2.17 pthread_rwlock_init F
 GLIBC_2.17 pthread_rwlock_timedrdlock F
 GLIBC_2.17 pthread_rwlock_timedwrlock F
 GLIBC_2.17 pthread_rwlock_tryrdlock F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 44ab3eacef..5754bd09b5 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -337,6 +337,7 @@  GLIBC_2.33 __pthread_mutexattr_init F
 GLIBC_2.33 __pthread_mutexattr_settype F
 GLIBC_2.33 __pthread_once F
 GLIBC_2.33 __pthread_rwlock_destroy F
+GLIBC_2.33 __pthread_rwlock_init F
 GLIBC_2.33 __pthread_rwlock_rdlock F
 GLIBC_2.33 __pthread_rwlock_unlock F
 GLIBC_2.33 __pthread_rwlock_wrlock F
@@ -1434,6 +1435,7 @@  GLIBC_2.33 pthread_once F
 GLIBC_2.33 pthread_rwlock_clockrdlock F
 GLIBC_2.33 pthread_rwlock_clockwrlock F
 GLIBC_2.33 pthread_rwlock_destroy F
+GLIBC_2.33 pthread_rwlock_init F
 GLIBC_2.33 pthread_rwlock_rdlock F
 GLIBC_2.33 pthread_rwlock_unlock F
 GLIBC_2.33 pthread_rwlock_wrlock F
@@ -2046,6 +2048,7 @@  GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_rwlock_clockrdlock F
 GLIBC_2.34 pthread_rwlock_clockwrlock F
 GLIBC_2.34 pthread_rwlock_destroy F
+GLIBC_2.34 pthread_rwlock_init F
 GLIBC_2.34 pthread_rwlock_rdlock F
 GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
index d2c8879f18..5774e8e989 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
@@ -4,7 +4,6 @@  GLIBC_2.33 _IO_funlockfile F
 GLIBC_2.33 __errno_location F
 GLIBC_2.33 __pthread_register_cancel F
 GLIBC_2.33 __pthread_register_cancel_defer F
-GLIBC_2.33 __pthread_rwlock_init F
 GLIBC_2.33 __pthread_rwlock_tryrdlock F
 GLIBC_2.33 __pthread_rwlock_trywrlock F
 GLIBC_2.33 __pthread_unregister_cancel F
@@ -50,7 +49,6 @@  GLIBC_2.33 pthread_getconcurrency F
 GLIBC_2.33 pthread_getcpuclockid F
 GLIBC_2.33 pthread_getname_np F
 GLIBC_2.33 pthread_join F
-GLIBC_2.33 pthread_rwlock_init F
 GLIBC_2.33 pthread_rwlock_timedrdlock F
 GLIBC_2.33 pthread_rwlock_timedwrlock F
 GLIBC_2.33 pthread_rwlock_tryrdlock F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index b79b1f6726..a63dc8cf06 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -348,6 +348,7 @@  GLIBC_2.27 __pthread_mutexattr_init F
 GLIBC_2.27 __pthread_mutexattr_settype F
 GLIBC_2.27 __pthread_once F
 GLIBC_2.27 __pthread_rwlock_destroy F
+GLIBC_2.27 __pthread_rwlock_init F
 GLIBC_2.27 __pthread_rwlock_rdlock F
 GLIBC_2.27 __pthread_rwlock_unlock F
 GLIBC_2.27 __pthread_rwlock_wrlock F
@@ -1492,6 +1493,7 @@  GLIBC_2.27 pthread_mutexattr_setrobust_np F
 GLIBC_2.27 pthread_mutexattr_settype F
 GLIBC_2.27 pthread_once F
 GLIBC_2.27 pthread_rwlock_destroy F
+GLIBC_2.27 pthread_rwlock_init F
 GLIBC_2.27 pthread_rwlock_rdlock F
 GLIBC_2.27 pthread_rwlock_unlock F
 GLIBC_2.27 pthread_rwlock_wrlock F
@@ -2246,6 +2248,7 @@  GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_rwlock_clockrdlock F
 GLIBC_2.34 pthread_rwlock_clockwrlock F
 GLIBC_2.34 pthread_rwlock_destroy F
+GLIBC_2.34 pthread_rwlock_init F
 GLIBC_2.34 pthread_rwlock_rdlock F
 GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
index 48a5bd78f0..aafc83b0c1 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
@@ -4,7 +4,6 @@  GLIBC_2.27 _IO_funlockfile F
 GLIBC_2.27 __errno_location F
 GLIBC_2.27 __pthread_register_cancel F
 GLIBC_2.27 __pthread_register_cancel_defer F
-GLIBC_2.27 __pthread_rwlock_init F
 GLIBC_2.27 __pthread_rwlock_tryrdlock F
 GLIBC_2.27 __pthread_rwlock_trywrlock F
 GLIBC_2.27 __pthread_unregister_cancel F
@@ -36,7 +35,6 @@  GLIBC_2.27 pthread_getconcurrency F
 GLIBC_2.27 pthread_getcpuclockid F
 GLIBC_2.27 pthread_getname_np F
 GLIBC_2.27 pthread_join F
-GLIBC_2.27 pthread_rwlock_init F
 GLIBC_2.27 pthread_rwlock_timedrdlock F
 GLIBC_2.27 pthread_rwlock_timedwrlock F
 GLIBC_2.27 pthread_rwlock_tryrdlock F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 4c88f1489d..d77f798688 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -1571,6 +1571,7 @@  GLIBC_2.1 pthread_attr_init F
 GLIBC_2.1 pthread_mutexattr_gettype F
 GLIBC_2.1 pthread_mutexattr_settype F
 GLIBC_2.1 pthread_rwlock_destroy F
+GLIBC_2.1 pthread_rwlock_init F
 GLIBC_2.1 pthread_rwlock_rdlock F
 GLIBC_2.1 pthread_rwlock_unlock F
 GLIBC_2.1 pthread_rwlock_wrlock F
@@ -1851,6 +1852,7 @@  GLIBC_2.2 __nl_langinfo_l F
 GLIBC_2.2 __open64 F
 GLIBC_2.2 __pread64 F
 GLIBC_2.2 __pthread_rwlock_destroy F
+GLIBC_2.2 __pthread_rwlock_init F
 GLIBC_2.2 __pthread_rwlock_rdlock F
 GLIBC_2.2 __pthread_rwlock_unlock F
 GLIBC_2.2 __pthread_rwlock_wrlock F
@@ -2324,6 +2326,7 @@  GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_rwlock_clockrdlock F
 GLIBC_2.34 pthread_rwlock_clockwrlock F
 GLIBC_2.34 pthread_rwlock_destroy F
+GLIBC_2.34 pthread_rwlock_init F
 GLIBC_2.34 pthread_rwlock_rdlock F
 GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
index 2cac9acdc5..67f28adcac 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
@@ -24,7 +24,6 @@  GLIBC_2.1 pthread_attr_setstackaddr F
 GLIBC_2.1 pthread_attr_setstacksize F
 GLIBC_2.1 pthread_create F
 GLIBC_2.1 pthread_getconcurrency F
-GLIBC_2.1 pthread_rwlock_init F
 GLIBC_2.1 pthread_rwlock_tryrdlock F
 GLIBC_2.1 pthread_rwlock_trywrlock F
 GLIBC_2.1 pthread_rwlockattr_destroy F
@@ -50,7 +49,6 @@  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.19 __libpthread_version_placeholder F
-GLIBC_2.2 __pthread_rwlock_init F
 GLIBC_2.2 __pthread_rwlock_tryrdlock F
 GLIBC_2.2 __pthread_rwlock_trywrlock F
 GLIBC_2.2 pthread_attr_getstack F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 7b3f066d8c..0c2b2b80c9 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -384,6 +384,7 @@  GLIBC_2.2 __pthread_mutexattr_init F
 GLIBC_2.2 __pthread_mutexattr_settype F
 GLIBC_2.2 __pthread_once F
 GLIBC_2.2 __pthread_rwlock_destroy F
+GLIBC_2.2 __pthread_rwlock_init F
 GLIBC_2.2 __pthread_rwlock_rdlock F
 GLIBC_2.2 __pthread_rwlock_unlock F
 GLIBC_2.2 __pthread_rwlock_wrlock F
@@ -1331,6 +1332,7 @@  GLIBC_2.2 pthread_mutexattr_setpshared F
 GLIBC_2.2 pthread_mutexattr_settype F
 GLIBC_2.2 pthread_once F
 GLIBC_2.2 pthread_rwlock_destroy F
+GLIBC_2.2 pthread_rwlock_init F
 GLIBC_2.2 pthread_rwlock_rdlock F
 GLIBC_2.2 pthread_rwlock_unlock F
 GLIBC_2.2 pthread_rwlock_wrlock F
@@ -2217,6 +2219,7 @@  GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_rwlock_clockrdlock F
 GLIBC_2.34 pthread_rwlock_clockwrlock F
 GLIBC_2.34 pthread_rwlock_destroy F
+GLIBC_2.34 pthread_rwlock_init F
 GLIBC_2.34 pthread_rwlock_rdlock F
 GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
index 19792333fe..e8c053292d 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
@@ -8,7 +8,6 @@  GLIBC_2.2 _IO_flockfile F
 GLIBC_2.2 _IO_ftrylockfile F
 GLIBC_2.2 _IO_funlockfile F
 GLIBC_2.2 __errno_location F
-GLIBC_2.2 __pthread_rwlock_init F
 GLIBC_2.2 __pthread_rwlock_tryrdlock F
 GLIBC_2.2 __pthread_rwlock_trywrlock F
 GLIBC_2.2 flockfile F
@@ -34,7 +33,6 @@  GLIBC_2.2 pthread_detach F
 GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join F
-GLIBC_2.2 pthread_rwlock_init F
 GLIBC_2.2 pthread_rwlock_timedrdlock F
 GLIBC_2.2 pthread_rwlock_timedwrlock F
 GLIBC_2.2 pthread_rwlock_tryrdlock F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index bda61af088..2383629b95 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -373,6 +373,7 @@  GLIBC_2.2 __pthread_mutexattr_init F
 GLIBC_2.2 __pthread_mutexattr_settype F
 GLIBC_2.2 __pthread_once F
 GLIBC_2.2 __pthread_rwlock_destroy F
+GLIBC_2.2 __pthread_rwlock_init F
 GLIBC_2.2 __pthread_rwlock_rdlock F
 GLIBC_2.2 __pthread_rwlock_unlock F
 GLIBC_2.2 __pthread_rwlock_wrlock F
@@ -1317,6 +1318,7 @@  GLIBC_2.2 pthread_mutexattr_setpshared F
 GLIBC_2.2 pthread_mutexattr_settype F
 GLIBC_2.2 pthread_once F
 GLIBC_2.2 pthread_rwlock_destroy F
+GLIBC_2.2 pthread_rwlock_init F
 GLIBC_2.2 pthread_rwlock_rdlock F
 GLIBC_2.2 pthread_rwlock_unlock F
 GLIBC_2.2 pthread_rwlock_wrlock F
@@ -2186,6 +2188,7 @@  GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_rwlock_clockrdlock F
 GLIBC_2.34 pthread_rwlock_clockwrlock F
 GLIBC_2.34 pthread_rwlock_destroy F
+GLIBC_2.34 pthread_rwlock_init F
 GLIBC_2.34 pthread_rwlock_rdlock F
 GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
index 82bc0321f5..52da9c0a32 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
@@ -7,7 +7,6 @@  GLIBC_2.2 _IO_flockfile F
 GLIBC_2.2 _IO_ftrylockfile F
 GLIBC_2.2 _IO_funlockfile F
 GLIBC_2.2 __errno_location F
-GLIBC_2.2 __pthread_rwlock_init F
 GLIBC_2.2 __pthread_rwlock_tryrdlock F
 GLIBC_2.2 __pthread_rwlock_trywrlock F
 GLIBC_2.2 flockfile F
@@ -33,7 +32,6 @@  GLIBC_2.2 pthread_detach F
 GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join F
-GLIBC_2.2 pthread_rwlock_init F
 GLIBC_2.2 pthread_rwlock_timedrdlock F
 GLIBC_2.2 pthread_rwlock_timedwrlock F
 GLIBC_2.2 pthread_rwlock_tryrdlock F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 7227ced168..66b504e002 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -373,6 +373,7 @@  GLIBC_2.2 __pthread_mutexattr_init F
 GLIBC_2.2 __pthread_mutexattr_settype F
 GLIBC_2.2 __pthread_once F
 GLIBC_2.2 __pthread_rwlock_destroy F
+GLIBC_2.2 __pthread_rwlock_init F
 GLIBC_2.2 __pthread_rwlock_rdlock F
 GLIBC_2.2 __pthread_rwlock_unlock F
 GLIBC_2.2 __pthread_rwlock_wrlock F
@@ -1317,6 +1318,7 @@  GLIBC_2.2 pthread_mutexattr_setpshared F
 GLIBC_2.2 pthread_mutexattr_settype F
 GLIBC_2.2 pthread_once F
 GLIBC_2.2 pthread_rwlock_destroy F
+GLIBC_2.2 pthread_rwlock_init F
 GLIBC_2.2 pthread_rwlock_rdlock F
 GLIBC_2.2 pthread_rwlock_unlock F
 GLIBC_2.2 pthread_rwlock_wrlock F
@@ -2183,6 +2185,7 @@  GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_rwlock_clockrdlock F
 GLIBC_2.34 pthread_rwlock_clockwrlock F
 GLIBC_2.34 pthread_rwlock_destroy F
+GLIBC_2.34 pthread_rwlock_init F
 GLIBC_2.34 pthread_rwlock_rdlock F
 GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
index 82bc0321f5..52da9c0a32 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
@@ -7,7 +7,6 @@  GLIBC_2.2 _IO_flockfile F
 GLIBC_2.2 _IO_ftrylockfile F
 GLIBC_2.2 _IO_funlockfile F
 GLIBC_2.2 __errno_location F
-GLIBC_2.2 __pthread_rwlock_init F
 GLIBC_2.2 __pthread_rwlock_tryrdlock F
 GLIBC_2.2 __pthread_rwlock_trywrlock F
 GLIBC_2.2 flockfile F
@@ -33,7 +32,6 @@  GLIBC_2.2 pthread_detach F
 GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join F
-GLIBC_2.2 pthread_rwlock_init F
 GLIBC_2.2 pthread_rwlock_timedrdlock F
 GLIBC_2.2 pthread_rwlock_timedwrlock F
 GLIBC_2.2 pthread_rwlock_tryrdlock F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 330715ff71..4638a6dc22 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -1572,6 +1572,7 @@  GLIBC_2.1 pthread_attr_init F
 GLIBC_2.1 pthread_mutexattr_gettype F
 GLIBC_2.1 pthread_mutexattr_settype F
 GLIBC_2.1 pthread_rwlock_destroy F
+GLIBC_2.1 pthread_rwlock_init F
 GLIBC_2.1 pthread_rwlock_rdlock F
 GLIBC_2.1 pthread_rwlock_unlock F
 GLIBC_2.1 pthread_rwlock_wrlock F
@@ -1849,6 +1850,7 @@  GLIBC_2.2 __nl_langinfo_l F
 GLIBC_2.2 __open64 F
 GLIBC_2.2 __pread64 F
 GLIBC_2.2 __pthread_rwlock_destroy F
+GLIBC_2.2 __pthread_rwlock_init F
 GLIBC_2.2 __pthread_rwlock_rdlock F
 GLIBC_2.2 __pthread_rwlock_unlock F
 GLIBC_2.2 __pthread_rwlock_wrlock F
@@ -2315,6 +2317,7 @@  GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_rwlock_clockrdlock F
 GLIBC_2.34 pthread_rwlock_clockwrlock F
 GLIBC_2.34 pthread_rwlock_destroy F
+GLIBC_2.34 pthread_rwlock_init F
 GLIBC_2.34 pthread_rwlock_rdlock F
 GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
index b80868c5da..0189fc6a88 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
@@ -24,7 +24,6 @@  GLIBC_2.1 pthread_attr_setstackaddr F
 GLIBC_2.1 pthread_attr_setstacksize F
 GLIBC_2.1 pthread_create F
 GLIBC_2.1 pthread_getconcurrency F
-GLIBC_2.1 pthread_rwlock_init F
 GLIBC_2.1 pthread_rwlock_tryrdlock F
 GLIBC_2.1 pthread_rwlock_trywrlock F
 GLIBC_2.1 pthread_rwlockattr_destroy F
@@ -49,7 +48,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.2 __pthread_rwlock_init F
 GLIBC_2.2 __pthread_rwlock_tryrdlock F
 GLIBC_2.2 __pthread_rwlock_trywrlock F
 GLIBC_2.2 pthread_attr_getstack F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 5e4848be27..3b6fe85339 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -411,6 +411,7 @@  GLIBC_2.2 __pthread_mutexattr_init F
 GLIBC_2.2 __pthread_mutexattr_settype F
 GLIBC_2.2 __pthread_once F
 GLIBC_2.2 __pthread_rwlock_destroy F
+GLIBC_2.2 __pthread_rwlock_init F
 GLIBC_2.2 __pthread_rwlock_rdlock F
 GLIBC_2.2 __pthread_rwlock_unlock F
 GLIBC_2.2 __pthread_rwlock_wrlock F
@@ -1360,6 +1361,7 @@  GLIBC_2.2 pthread_mutexattr_setpshared F
 GLIBC_2.2 pthread_mutexattr_settype F
 GLIBC_2.2 pthread_once F
 GLIBC_2.2 pthread_rwlock_destroy F
+GLIBC_2.2 pthread_rwlock_init F
 GLIBC_2.2 pthread_rwlock_rdlock F
 GLIBC_2.2 pthread_rwlock_unlock F
 GLIBC_2.2 pthread_rwlock_wrlock F
@@ -2234,6 +2236,7 @@  GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_rwlock_clockrdlock F
 GLIBC_2.34 pthread_rwlock_clockwrlock F
 GLIBC_2.34 pthread_rwlock_destroy F
+GLIBC_2.34 pthread_rwlock_init F
 GLIBC_2.34 pthread_rwlock_rdlock F
 GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
index 6d11adb7da..5d186fc586 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
@@ -7,7 +7,6 @@  GLIBC_2.2 _IO_flockfile F
 GLIBC_2.2 _IO_ftrylockfile F
 GLIBC_2.2 _IO_funlockfile F
 GLIBC_2.2 __errno_location F
-GLIBC_2.2 __pthread_rwlock_init F
 GLIBC_2.2 __pthread_rwlock_tryrdlock F
 GLIBC_2.2 __pthread_rwlock_trywrlock F
 GLIBC_2.2 flockfile F
@@ -33,7 +32,6 @@  GLIBC_2.2 pthread_detach F
 GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_join F
-GLIBC_2.2 pthread_rwlock_init F
 GLIBC_2.2 pthread_rwlock_timedrdlock F
 GLIBC_2.2 pthread_rwlock_timedwrlock F
 GLIBC_2.2 pthread_rwlock_tryrdlock F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 1975808993..764a2f71b1 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -372,6 +372,7 @@  GLIBC_2.2.5 __pthread_mutexattr_init F
 GLIBC_2.2.5 __pthread_mutexattr_settype F
 GLIBC_2.2.5 __pthread_once F
 GLIBC_2.2.5 __pthread_rwlock_destroy F
+GLIBC_2.2.5 __pthread_rwlock_init F
 GLIBC_2.2.5 __pthread_rwlock_rdlock F
 GLIBC_2.2.5 __pthread_rwlock_unlock F
 GLIBC_2.2.5 __pthread_rwlock_wrlock F
@@ -1328,6 +1329,7 @@  GLIBC_2.2.5 pthread_mutexattr_setpshared F
 GLIBC_2.2.5 pthread_mutexattr_settype F
 GLIBC_2.2.5 pthread_once F
 GLIBC_2.2.5 pthread_rwlock_destroy F
+GLIBC_2.2.5 pthread_rwlock_init F
 GLIBC_2.2.5 pthread_rwlock_rdlock F
 GLIBC_2.2.5 pthread_rwlock_unlock F
 GLIBC_2.2.5 pthread_rwlock_wrlock F
@@ -2195,6 +2197,7 @@  GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_rwlock_clockrdlock F
 GLIBC_2.34 pthread_rwlock_clockwrlock F
 GLIBC_2.34 pthread_rwlock_destroy F
+GLIBC_2.34 pthread_rwlock_init F
 GLIBC_2.34 pthread_rwlock_rdlock F
 GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
index 06ec562b00..8805d613fd 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
@@ -7,7 +7,6 @@  GLIBC_2.2.5 _IO_flockfile F
 GLIBC_2.2.5 _IO_ftrylockfile F
 GLIBC_2.2.5 _IO_funlockfile F
 GLIBC_2.2.5 __errno_location F
-GLIBC_2.2.5 __pthread_rwlock_init F
 GLIBC_2.2.5 __pthread_rwlock_tryrdlock F
 GLIBC_2.2.5 __pthread_rwlock_trywrlock F
 GLIBC_2.2.5 flockfile F
@@ -33,7 +32,6 @@  GLIBC_2.2.5 pthread_detach F
 GLIBC_2.2.5 pthread_getconcurrency F
 GLIBC_2.2.5 pthread_getcpuclockid F
 GLIBC_2.2.5 pthread_join F
-GLIBC_2.2.5 pthread_rwlock_init F
 GLIBC_2.2.5 pthread_rwlock_timedrdlock F
 GLIBC_2.2.5 pthread_rwlock_timedwrlock F
 GLIBC_2.2.5 pthread_rwlock_tryrdlock F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index ff5dc484ba..cce82949fd 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -352,6 +352,7 @@  GLIBC_2.16 __pthread_mutexattr_init F
 GLIBC_2.16 __pthread_mutexattr_settype F
 GLIBC_2.16 __pthread_once F
 GLIBC_2.16 __pthread_rwlock_destroy F
+GLIBC_2.16 __pthread_rwlock_init F
 GLIBC_2.16 __pthread_rwlock_rdlock F
 GLIBC_2.16 __pthread_rwlock_unlock F
 GLIBC_2.16 __pthread_rwlock_wrlock F
@@ -1509,6 +1510,7 @@  GLIBC_2.16 pthread_mutexattr_setrobust_np F
 GLIBC_2.16 pthread_mutexattr_settype F
 GLIBC_2.16 pthread_once F
 GLIBC_2.16 pthread_rwlock_destroy F
+GLIBC_2.16 pthread_rwlock_init F
 GLIBC_2.16 pthread_rwlock_rdlock F
 GLIBC_2.16 pthread_rwlock_unlock F
 GLIBC_2.16 pthread_rwlock_wrlock F
@@ -2300,6 +2302,7 @@  GLIBC_2.34 pthread_once F
 GLIBC_2.34 pthread_rwlock_clockrdlock F
 GLIBC_2.34 pthread_rwlock_clockwrlock F
 GLIBC_2.34 pthread_rwlock_destroy F
+GLIBC_2.34 pthread_rwlock_init F
 GLIBC_2.34 pthread_rwlock_rdlock F
 GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
index 92d8aa0635..6a9a29ec4b 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
@@ -4,7 +4,6 @@  GLIBC_2.16 _IO_funlockfile F
 GLIBC_2.16 __errno_location F
 GLIBC_2.16 __pthread_register_cancel F
 GLIBC_2.16 __pthread_register_cancel_defer F
-GLIBC_2.16 __pthread_rwlock_init F
 GLIBC_2.16 __pthread_rwlock_tryrdlock F
 GLIBC_2.16 __pthread_rwlock_trywrlock F
 GLIBC_2.16 __pthread_unregister_cancel F
@@ -35,7 +34,6 @@  GLIBC_2.16 pthread_getconcurrency F
 GLIBC_2.16 pthread_getcpuclockid F
 GLIBC_2.16 pthread_getname_np F
 GLIBC_2.16 pthread_join F
-GLIBC_2.16 pthread_rwlock_init F
 GLIBC_2.16 pthread_rwlock_timedrdlock F
 GLIBC_2.16 pthread_rwlock_timedwrlock F
 GLIBC_2.16 pthread_rwlock_tryrdlock F