public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
From: Adhemerval Zanella <adhemerval.zanella@linaro.org>
To: libc-alpha@sourceware.org, Florian Weimer <fweimer@redhat.com>
Subject: Re: [PATCH v3 08/37] nptl: Move pthread_once and __pthread_once into libc
Date: Wed, 17 Mar 2021 10:37:33 -0300	[thread overview]
Message-ID: <5405bbad-3c70-4435-8815-59e84738c3fb@linaro.org> (raw)
In-Reply-To: <41a88cab-808e-c10e-a975-41cdd252c299@linaro.org>



On 17/03/2021 10:30, Adhemerval Zanella wrote:
> 
> 
> On 16/03/2021 14:28, Florian Weimer via Libc-alpha wrote:
>> And also the fork generation counter, __fork_generation.  This
>> eliminates the need for __fork_generation_pointer.
>>
>> call_once remains in libpthread and calls the exported __pthread_once
>> symbol.
>>
>> pthread_once and __pthread_once have been moved using
>> scripts/move-symbol-to-libc.py.
> 
> LGTM, I just don't see why we need a GLIBC_2.34 __pthread_once.

Ok, it is called by call_once.  I wonder if we could make a GLIBC_PRIVATE
instead so we can remove it once we moce call_once to libc.

> 
> Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
> 
>> ---
>>  nptl/Makefile                                 |  2 +-
>>  nptl/Versions                                 |  6 ++++--
>>  nptl/libc_pthread_init.c                      |  8 +------
>>  nptl/nptl-init.c                              |  4 +---
>>  nptl/pthreadP.h                               |  8 +++----
>>  nptl/pthread_once.c                           | 21 +++++++++++++++----
>>  sysdeps/nptl/fork.c                           |  3 +--
>>  sysdeps/nptl/fork.h                           |  3 ---
>>  sysdeps/nptl/libc-lockP.h                     | 13 ++----------
>>  sysdeps/nptl/pthread-functions.h              |  1 -
>>  sysdeps/unix/sysv/linux/aarch64/libc.abilist  |  4 ++++
>>  .../sysv/linux/aarch64/libpthread.abilist     |  2 --
>>  sysdeps/unix/sysv/linux/alpha/libc.abilist    |  4 ++++
>>  .../unix/sysv/linux/alpha/libpthread.abilist  |  2 --
>>  sysdeps/unix/sysv/linux/arc/libc.abilist      |  4 ++++
>>  .../unix/sysv/linux/arc/libpthread.abilist    |  2 --
>>  sysdeps/unix/sysv/linux/arm/be/libc.abilist   |  4 ++++
>>  .../unix/sysv/linux/arm/be/libpthread.abilist |  2 --
>>  sysdeps/unix/sysv/linux/arm/le/libc.abilist   |  4 ++++
>>  .../unix/sysv/linux/arm/le/libpthread.abilist |  2 --
>>  sysdeps/unix/sysv/linux/csky/libc.abilist     |  4 ++++
>>  .../unix/sysv/linux/csky/libpthread.abilist   |  2 --
>>  sysdeps/unix/sysv/linux/hppa/libc.abilist     |  4 ++++
>>  .../unix/sysv/linux/hppa/libpthread.abilist   |  2 --
>>  sysdeps/unix/sysv/linux/i386/libc.abilist     |  4 ++++
>>  .../unix/sysv/linux/i386/libpthread.abilist   |  2 --
>>  sysdeps/unix/sysv/linux/ia64/libc.abilist     |  4 ++++
>>  .../unix/sysv/linux/ia64/libpthread.abilist   |  2 --
>>  .../sysv/linux/m68k/coldfire/libc.abilist     |  4 ++++
>>  .../linux/m68k/coldfire/libpthread.abilist    |  2 --
>>  .../unix/sysv/linux/m68k/m680x0/libc.abilist  |  4 ++++
>>  .../sysv/linux/m68k/m680x0/libpthread.abilist |  2 --
>>  .../sysv/linux/microblaze/be/libc.abilist     |  4 ++++
>>  .../linux/microblaze/be/libpthread.abilist    |  2 --
>>  .../sysv/linux/microblaze/le/libc.abilist     |  4 ++++
>>  .../linux/microblaze/le/libpthread.abilist    |  2 --
>>  .../sysv/linux/mips/mips32/fpu/libc.abilist   |  4 ++++
>>  .../sysv/linux/mips/mips32/libpthread.abilist |  2 --
>>  .../sysv/linux/mips/mips32/nofpu/libc.abilist |  4 ++++
>>  .../sysv/linux/mips/mips64/libpthread.abilist |  2 --
>>  .../sysv/linux/mips/mips64/n32/libc.abilist   |  4 ++++
>>  .../sysv/linux/mips/mips64/n64/libc.abilist   |  4 ++++
>>  sysdeps/unix/sysv/linux/nios2/libc.abilist    |  4 ++++
>>  .../unix/sysv/linux/nios2/libpthread.abilist  |  2 --
>>  .../linux/powerpc/powerpc32/fpu/libc.abilist  |  4 ++++
>>  .../powerpc/powerpc32/libpthread.abilist      |  2 --
>>  .../powerpc/powerpc32/nofpu/libc.abilist      |  4 ++++
>>  .../linux/powerpc/powerpc64/be/libc.abilist   |  4 ++++
>>  .../powerpc/powerpc64/be/libpthread.abilist   |  2 --
>>  .../linux/powerpc/powerpc64/le/libc.abilist   |  4 ++++
>>  .../powerpc/powerpc64/le/libpthread.abilist   |  2 --
>>  .../unix/sysv/linux/riscv/rv32/libc.abilist   |  4 ++++
>>  .../sysv/linux/riscv/rv32/libpthread.abilist  |  2 --
>>  .../unix/sysv/linux/riscv/rv64/libc.abilist   |  4 ++++
>>  .../sysv/linux/riscv/rv64/libpthread.abilist  |  2 --
>>  .../unix/sysv/linux/s390/s390-32/libc.abilist |  4 ++++
>>  .../linux/s390/s390-32/libpthread.abilist     |  2 --
>>  .../unix/sysv/linux/s390/s390-64/libc.abilist |  4 ++++
>>  .../linux/s390/s390-64/libpthread.abilist     |  2 --
>>  sysdeps/unix/sysv/linux/sh/be/libc.abilist    |  4 ++++
>>  .../unix/sysv/linux/sh/be/libpthread.abilist  |  2 --
>>  sysdeps/unix/sysv/linux/sh/le/libc.abilist    |  4 ++++
>>  .../unix/sysv/linux/sh/le/libpthread.abilist  |  2 --
>>  .../sysv/linux/sparc/sparc32/libc.abilist     |  4 ++++
>>  .../linux/sparc/sparc32/libpthread.abilist    |  2 --
>>  .../sysv/linux/sparc/sparc64/libc.abilist     |  4 ++++
>>  .../linux/sparc/sparc64/libpthread.abilist    |  2 --
>>  .../unix/sysv/linux/x86_64/64/libc.abilist    |  4 ++++
>>  .../sysv/linux/x86_64/64/libpthread.abilist   |  2 --
>>  .../unix/sysv/linux/x86_64/x32/libc.abilist   |  4 ++++
>>  .../sysv/linux/x86_64/x32/libpthread.abilist  |  2 --
>>  71 files changed, 158 insertions(+), 97 deletions(-)
>>
>> diff --git a/nptl/Makefile b/nptl/Makefile
>> index 8847c4dd49..910d8c7ebf 100644
>> --- a/nptl/Makefile
>> +++ b/nptl/Makefile
>> @@ -76,6 +76,7 @@ routines = \
>>    pthread_getattr_np \
>>    pthread_getschedparam \
>>    pthread_mutex_consistent \
>> +  pthread_once \
>>    pthread_self \
>>    pthread_setschedparam \
>>    pthread_sigmask \
>> @@ -179,7 +180,6 @@ libpthread-routines = \
>>    pthread_mutexattr_setpshared \
>>    pthread_mutexattr_setrobust \
>>    pthread_mutexattr_settype \
>> -  pthread_once \
>>    pthread_rwlock_clockrdlock \
>>    pthread_rwlock_clockwrlock \
>>    pthread_rwlock_destroy \
> 
> Ok.
> 
>> diff --git a/nptl/Versions b/nptl/Versions
>> index 8fa0d178db..49133585e4 100644
>> --- a/nptl/Versions
>> +++ b/nptl/Versions
>> @@ -1,5 +1,6 @@
>>  libc {
>>    GLIBC_2.0 {
>> +    __pthread_once;
>>      _pthread_cleanup_pop;
>>      _pthread_cleanup_pop_restore;
>>      _pthread_cleanup_push;
>> @@ -31,6 +32,7 @@ libc {
>>      pthread_mutex_init;
>>      pthread_mutex_lock;
>>      pthread_mutex_unlock;
>> +    pthread_once;
>>      pthread_self;
>>      pthread_setcancelstate;
>>      pthread_setcanceltype;
>> @@ -83,7 +85,9 @@ libc {
>>    }
>>    GLIBC_2.34 {
>>      __pthread_cleanup_routine;
>> +    __pthread_once;
> 
> Why do we need the __pthread_once for 2.34 as well?
> 
>>      pthread_mutex_consistent;
>> +    pthread_once;
>>    }
>>    GLIBC_PRIVATE {
>>      __futex_abstimed_wait64;
>> @@ -141,7 +145,6 @@ libpthread {
>>      __pthread_mutexattr_destroy;
>>      __pthread_mutexattr_init;
>>      __pthread_mutexattr_settype;
>> -    __pthread_once;
>>      __pthread_setspecific;
>>      __read;
>>      __send;
>> @@ -184,7 +187,6 @@ libpthread {
>>      pthread_mutexattr_getkind_np;
>>      pthread_mutexattr_init;
>>      pthread_mutexattr_setkind_np;
>> -    pthread_once;
>>      pthread_setcancelstate;
>>      pthread_setcanceltype;
>>      pthread_setspecific;
> 
> Ok.
> 
>> diff --git a/nptl/libc_pthread_init.c b/nptl/libc_pthread_init.c
>> index 0757f92cd2..3ac54aae13 100644
>> --- a/nptl/libc_pthread_init.c
>> +++ b/nptl/libc_pthread_init.c
>> @@ -28,9 +28,6 @@
>>  #include <ldsodefs.h>
>>  
>>  
>> -unsigned long int *__fork_generation_pointer;
>> -
>> -
>>  #ifdef TLS_MULTIPLE_THREADS_IN_TCB
>>  void
>>  #else
>> @@ -38,12 +35,9 @@ extern int __libc_multiple_threads attribute_hidden;
>>  
>>  int *
>>  #endif
>> -__libc_pthread_init (unsigned long int *ptr, void (*reclaim) (void),
>> +__libc_pthread_init (void (*reclaim) (void),
>>  		     const struct pthread_functions *functions)
>>  {
>> -  /* Remember the pointer to the generation counter in libpthread.  */
>> -  __fork_generation_pointer = ptr;
>> -
>>    /* Called by a child after fork.  */
>>    __register_atfork (NULL, NULL, reclaim, NULL);
>>  
> 
> Ok.
> 
>> diff --git a/nptl/nptl-init.c b/nptl/nptl-init.c
>> index 41527dcad1..c2e02b1bf2 100644
>> --- a/nptl/nptl-init.c
>> +++ b/nptl/nptl-init.c
>> @@ -88,7 +88,6 @@ static const struct pthread_functions pthread_functions =
>>      .ptr_pthread_mutex_unlock = __pthread_mutex_unlock,
>>      .ptr___pthread_setcancelstate = __pthread_setcancelstate,
>>      .ptr_pthread_setcanceltype = __pthread_setcanceltype,
>> -    .ptr___pthread_once = __pthread_once,
>>      .ptr___pthread_rwlock_rdlock = __pthread_rwlock_rdlock,
>>      .ptr___pthread_rwlock_wrlock = __pthread_rwlock_wrlock,
>>      .ptr___pthread_rwlock_unlock = __pthread_rwlock_unlock,
>> @@ -334,8 +333,7 @@ __pthread_initialize_minimal_internal (void)
>>  #ifndef TLS_MULTIPLE_THREADS_IN_TCB
>>    __libc_multiple_threads_ptr =
>>  #endif
>> -    __libc_pthread_init (&__fork_generation, __reclaim_stacks,
>> -			 ptr_pthread_functions);
>> +    __libc_pthread_init (__reclaim_stacks, ptr_pthread_functions);
>>  
>>  #if HAVE_TUNABLES
>>    __pthread_tunables_init ();
> 
> Ok.
> 
>> diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
>> index 8f3d2cc8c9..9f2990217c 100644
>> --- a/nptl/pthreadP.h
>> +++ b/nptl/pthreadP.h
>> @@ -355,12 +355,10 @@ hidden_proto (__nptl_death_event)
>>  
>>  /* Register the generation counter in the libpthread with the libc.  */
>>  #ifdef TLS_MULTIPLE_THREADS_IN_TCB
>> -extern void __libc_pthread_init (unsigned long int *ptr,
>> -				 void (*reclaim) (void),
>> +extern void __libc_pthread_init (void (*reclaim) (void),
>>  				 const struct pthread_functions *functions);
>>  #else
>> -extern int *__libc_pthread_init (unsigned long int *ptr,
>> -				 void (*reclaim) (void),
>> +extern int *__libc_pthread_init (void (*reclaim) (void),
>>  				 const struct pthread_functions *functions);
>>  
>>  /* Variable set to a nonzero value either if more than one thread runs or ran,
> 
> Ok.
> 
>> @@ -519,6 +517,7 @@ extern void *__pthread_getspecific (pthread_key_t key);
>>  extern int __pthread_setspecific (pthread_key_t key, const void *value);
>>  extern int __pthread_once (pthread_once_t *once_control,
>>  			   void (*init_routine) (void));
>> +libc_hidden_proto (__pthread_once)
>>  extern int __pthread_atfork (void (*prepare) (void), void (*parent) (void),
>>  			     void (*child) (void));
>>  extern pthread_t __pthread_self (void);
>> @@ -551,7 +550,6 @@ hidden_proto (__pthread_rwlock_unlock)
>>  hidden_proto (__pthread_key_create)
>>  hidden_proto (__pthread_getspecific)
>>  hidden_proto (__pthread_setspecific)
>> -hidden_proto (__pthread_once)
>>  hidden_proto (__pthread_setcancelstate)
>>  hidden_proto (__pthread_testcancel)
>>  hidden_proto (__pthread_mutexattr_init)
> 
> Ok.
> 
>> diff --git a/nptl/pthread_once.c b/nptl/pthread_once.c
>> index 7645da222a..7335150485 100644
>> --- a/nptl/pthread_once.c
>> +++ b/nptl/pthread_once.c
>> @@ -19,7 +19,9 @@
>>  #include "pthreadP.h"
>>  #include <futex-internal.h>
>>  #include <atomic.h>
>> -
>> +#include <libc-lockP.h>
>> +#include <fork.h>
>> +#include <shlib-compat.h>
>>  
>>  unsigned long int __fork_generation attribute_hidden;
>>  
>> @@ -132,7 +134,7 @@ __pthread_once_slow (pthread_once_t *once_control, void (*init_routine) (void))
>>  }
>>  
>>  int
>> -__pthread_once (pthread_once_t *once_control, void (*init_routine) (void))
>> +__pthread_once_1 (pthread_once_t *once_control, void (*init_routine) (void))
>>  {
>>    /* Fast path.  See __pthread_once_slow.  */
>>    int val;
>> @@ -142,5 +144,16 @@ __pthread_once (pthread_once_t *once_control, void (*init_routine) (void))
>>    else
>>      return __pthread_once_slow (once_control, init_routine);
>>  }
>> -weak_alias (__pthread_once, pthread_once)
>> -hidden_def (__pthread_once)
>> +versioned_symbol (libc, __pthread_once_1, __pthread_once, GLIBC_2_34);
>> +libc_hidden_ver (__pthread_once_1, __pthread_once)
>> +
>> +/* Several aliases for setting different symbol versions.  */
>> +strong_alias (__pthread_once_1, __pthread_once_2)
>> +strong_alias (__pthread_once_1, __pthread_once_3)
>> +strong_alias (__pthread_once_1, __pthread_once_4)
>> +
>> +versioned_symbol (libc, __pthread_once_2, pthread_once, GLIBC_2_34);
>> +#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_34)
>> +compat_symbol (libc, __pthread_once_3, __pthread_once, GLIBC_2_0);
>> +compat_symbol (libc, __pthread_once_4, pthread_once, GLIBC_2_0);
>> +#endif
> 
> Ok.
> 
>> diff --git a/sysdeps/nptl/fork.c b/sysdeps/nptl/fork.c
>> index f78267b68c..ffc8f9d041 100644
>> --- a/sysdeps/nptl/fork.c
>> +++ b/sysdeps/nptl/fork.c
>> @@ -88,8 +88,7 @@ __libc_fork (void)
>>        struct pthread *self = THREAD_SELF;
>>  
>>        /* See __pthread_once.  */
>> -      if (__fork_generation_pointer != NULL)
>> -	*__fork_generation_pointer += __PTHREAD_ONCE_FORK_GEN_INCR;
>> +      __fork_generation += __PTHREAD_ONCE_FORK_GEN_INCR;
>>  
>>        /* Initialize the robust mutex list setting in the kernel which has
>>  	 been reset during the fork.  We do not check for errors because if
> 
> Ok.
> 
>> diff --git a/sysdeps/nptl/fork.h b/sysdeps/nptl/fork.h
>> index 5246754290..a2a1ad8265 100644
>> --- a/sysdeps/nptl/fork.h
>> +++ b/sysdeps/nptl/fork.h
>> @@ -21,6 +21,3 @@
>>  
>>  /* The fork generation counter, defined in libpthread.  */
>>  extern unsigned long int __fork_generation attribute_hidden;
>> -
>> -/* Pointer to the fork generation counter in the thread library.  */
>> -extern unsigned long int *__fork_generation_pointer attribute_hidden;
> 
> Ok.
> 
>> diff --git a/sysdeps/nptl/libc-lockP.h b/sysdeps/nptl/libc-lockP.h
>> index 1a861b0d3f..9550bc37e4 100644
>> --- a/sysdeps/nptl/libc-lockP.h
>> +++ b/sysdeps/nptl/libc-lockP.h
>> @@ -238,15 +238,7 @@ _Static_assert (LLL_LOCK_INITIALIZER == 0, "LLL_LOCK_INITIALIZER != 0");
>>  
>>  /* Call handler iff the first call.  */
>>  #define __libc_once(ONCE_CONTROL, INIT_FUNCTION) \
>> -  do {									      \
>> -    if (PTFAVAIL (__pthread_once))					      \
>> -      __libc_ptf_call_always (__pthread_once, (&(ONCE_CONTROL),		      \
>> -					       INIT_FUNCTION));		      \
>> -    else if ((ONCE_CONTROL) == PTHREAD_ONCE_INIT) {			      \
>> -      INIT_FUNCTION ();							      \
>> -      (ONCE_CONTROL) |= 2;						      \
>> -    }									      \
>> -  } while (0)
>> +  __pthread_once (&(ONCE_CONTROL), INIT_FUNCTION)
>>  
>>  /* Get once control variable.  */
>>  #define __libc_once_get(ONCE_CONTROL)	((ONCE_CONTROL) != PTHREAD_ONCE_INIT)
> 
> Ok.
> 
>> @@ -342,6 +334,7 @@ extern void *__pthread_getspecific (pthread_key_t __key);
>>  
>>  extern int __pthread_once (pthread_once_t *__once_control,
>>  			   void (*__init_routine) (void));
>> +libc_hidden_proto (__pthread_once)
>>  
>>  extern int __pthread_atfork (void (*__prepare) (void),
>>  			     void (*__parent) (void),
>> @@ -372,7 +365,6 @@ weak_extern (__pthread_rwlock_unlock)
>>  weak_extern (__pthread_key_create)
>>  weak_extern (__pthread_setspecific)
>>  weak_extern (__pthread_getspecific)
>> -weak_extern (__pthread_once)
>>  weak_extern (__pthread_initialize)
>>  weak_extern (__pthread_atfork)
>>  weak_extern (__pthread_setcancelstate)
>> @@ -394,7 +386,6 @@ weak_extern (__pthread_setcancelstate)
>>  #  pragma weak __pthread_key_create
>>  #  pragma weak __pthread_setspecific
>>  #  pragma weak __pthread_getspecific
>> -#  pragma weak __pthread_once
>>  #  pragma weak __pthread_initialize
>>  #  pragma weak __pthread_atfork
>>  #  pragma weak __pthread_setcancelstate
> 
> Ok.
> 
>> diff --git a/sysdeps/nptl/pthread-functions.h b/sysdeps/nptl/pthread-functions.h
>> index 1bbe609598..6ef7602cb9 100644
>> --- a/sysdeps/nptl/pthread-functions.h
>> +++ b/sysdeps/nptl/pthread-functions.h
>> @@ -49,7 +49,6 @@ struct pthread_functions
>>    int (*ptr_pthread_mutex_unlock) (pthread_mutex_t *);
>>    int (*ptr___pthread_setcancelstate) (int, int *);
>>    int (*ptr_pthread_setcanceltype) (int, int *);
>> -  int (*ptr___pthread_once) (pthread_once_t *, void (*) (void));
>>    int (*ptr___pthread_rwlock_rdlock) (pthread_rwlock_t *);
>>    int (*ptr___pthread_rwlock_wrlock) (pthread_rwlock_t *);
>>    int (*ptr___pthread_rwlock_unlock) (pthread_rwlock_t *);
> 
> Ok.
> 
>> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
>> index a585f7d30d..8a11066f9e 100644
>> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
>> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
>> @@ -339,6 +339,7 @@ GLIBC_2.17 __profile_frequency F
>>  GLIBC_2.17 __progname D 0x8
>>  GLIBC_2.17 __progname_full D 0x8
>>  GLIBC_2.17 __pthread_cleanup_routine F
>> +GLIBC_2.17 __pthread_once F
>>  GLIBC_2.17 __ptsname_r_chk F
>>  GLIBC_2.17 __pwrite64 F
>>  GLIBC_2.17 __rawmemchr F
>> @@ -1453,6 +1454,7 @@ GLIBC_2.17 pthread_mutex_destroy F
>>  GLIBC_2.17 pthread_mutex_init F
>>  GLIBC_2.17 pthread_mutex_lock F
>>  GLIBC_2.17 pthread_mutex_unlock F
>> +GLIBC_2.17 pthread_once F
>>  GLIBC_2.17 pthread_self F
>>  GLIBC_2.17 pthread_setcancelstate F
>>  GLIBC_2.17 pthread_setcanceltype F
>> @@ -2180,4 +2182,6 @@ GLIBC_2.33 stat F
>>  GLIBC_2.33 stat64 F
>>  GLIBC_2.34 __libc_start_main F
>>  GLIBC_2.34 __pthread_cleanup_routine F
>> +GLIBC_2.34 __pthread_once F
>>  GLIBC_2.34 pthread_mutex_consistent F
>> +GLIBC_2.34 pthread_once F
>> diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
>> index 884d97efca..a57e807cd0 100644
>> --- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
>> +++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
>> @@ -23,7 +23,6 @@ GLIBC_2.17 __pthread_mutex_unlock F
>>  GLIBC_2.17 __pthread_mutexattr_destroy F
>>  GLIBC_2.17 __pthread_mutexattr_init F
>>  GLIBC_2.17 __pthread_mutexattr_settype F
>> -GLIBC_2.17 __pthread_once F
>>  GLIBC_2.17 __pthread_register_cancel F
>>  GLIBC_2.17 __pthread_register_cancel_defer F
>>  GLIBC_2.17 __pthread_rwlock_destroy F
>> @@ -120,7 +119,6 @@ GLIBC_2.17 pthread_mutexattr_setpshared F
>>  GLIBC_2.17 pthread_mutexattr_setrobust F
>>  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
>> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
>> index c9ac935ccf..b62c855163 100644
>> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
>> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
>> @@ -188,6 +188,7 @@ GLIBC_2.0 __printf_fp F
>>  GLIBC_2.0 __profile_frequency F
>>  GLIBC_2.0 __progname D 0x8
>>  GLIBC_2.0 __progname_full D 0x8
>> +GLIBC_2.0 __pthread_once F
>>  GLIBC_2.0 __rcmd_errstr D 0x8
>>  GLIBC_2.0 __read F
>>  GLIBC_2.0 __realloc_hook D 0x8
>> @@ -891,6 +892,7 @@ GLIBC_2.0 pthread_mutex_destroy F
>>  GLIBC_2.0 pthread_mutex_init F
>>  GLIBC_2.0 pthread_mutex_lock F
>>  GLIBC_2.0 pthread_mutex_unlock F
>> +GLIBC_2.0 pthread_once F
>>  GLIBC_2.0 pthread_self F
>>  GLIBC_2.0 pthread_setcancelstate F
>>  GLIBC_2.0 pthread_setcanceltype F
>> @@ -2261,7 +2263,9 @@ GLIBC_2.33 stat F
>>  GLIBC_2.33 stat64 F
>>  GLIBC_2.34 __libc_start_main F
>>  GLIBC_2.34 __pthread_cleanup_routine F
>> +GLIBC_2.34 __pthread_once F
>>  GLIBC_2.34 pthread_mutex_consistent F
>> +GLIBC_2.34 pthread_once F
>>  GLIBC_2.4 _IO_fprintf F
>>  GLIBC_2.4 _IO_printf F
>>  GLIBC_2.4 _IO_sprintf F
>> diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
>> index e17b5183ef..059ae76802 100644
>> --- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
>> +++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
>> @@ -18,7 +18,6 @@ GLIBC_2.0 __pthread_mutex_unlock F
>>  GLIBC_2.0 __pthread_mutexattr_destroy F
>>  GLIBC_2.0 __pthread_mutexattr_init F
>>  GLIBC_2.0 __pthread_mutexattr_settype F
>> -GLIBC_2.0 __pthread_once F
>>  GLIBC_2.0 __pthread_setspecific F
>>  GLIBC_2.0 __read F
>>  GLIBC_2.0 __send F
>> @@ -60,7 +59,6 @@ GLIBC_2.0 pthread_mutexattr_destroy F
>>  GLIBC_2.0 pthread_mutexattr_getkind_np F
>>  GLIBC_2.0 pthread_mutexattr_init F
>>  GLIBC_2.0 pthread_mutexattr_setkind_np F
>> -GLIBC_2.0 pthread_once F
>>  GLIBC_2.0 pthread_setcancelstate F
>>  GLIBC_2.0 pthread_setcanceltype F
>>  GLIBC_2.0 pthread_setspecific F
>> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
>> index 27fecc5c8a..cd549c654b 100644
>> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
>> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
>> @@ -328,6 +328,7 @@ GLIBC_2.32 __profile_frequency F
>>  GLIBC_2.32 __progname D 0x4
>>  GLIBC_2.32 __progname_full D 0x4
>>  GLIBC_2.32 __pthread_cleanup_routine F
>> +GLIBC_2.32 __pthread_once F
>>  GLIBC_2.32 __ptsname_r_chk F
>>  GLIBC_2.32 __pwrite64 F
>>  GLIBC_2.32 __rawmemchr F
>> @@ -1380,6 +1381,7 @@ GLIBC_2.32 pthread_mutex_destroy F
>>  GLIBC_2.32 pthread_mutex_init F
>>  GLIBC_2.32 pthread_mutex_lock F
>>  GLIBC_2.32 pthread_mutex_unlock F
>> +GLIBC_2.32 pthread_once F
>>  GLIBC_2.32 pthread_self F
>>  GLIBC_2.32 pthread_setcancelstate F
>>  GLIBC_2.32 pthread_setcanceltype F
>> @@ -1940,4 +1942,6 @@ GLIBC_2.33 stat F
>>  GLIBC_2.33 stat64 F
>>  GLIBC_2.34 __libc_start_main F
>>  GLIBC_2.34 __pthread_cleanup_routine F
>> +GLIBC_2.34 __pthread_once F
>>  GLIBC_2.34 pthread_mutex_consistent F
>> +GLIBC_2.34 pthread_once F
>> diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
>> index 9713a20071..55970eb845 100644
>> --- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
>> +++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
>> @@ -22,7 +22,6 @@ GLIBC_2.32 __pthread_mutex_unlock F
>>  GLIBC_2.32 __pthread_mutexattr_destroy F
>>  GLIBC_2.32 __pthread_mutexattr_init F
>>  GLIBC_2.32 __pthread_mutexattr_settype F
>> -GLIBC_2.32 __pthread_once F
>>  GLIBC_2.32 __pthread_register_cancel F
>>  GLIBC_2.32 __pthread_register_cancel_defer F
>>  GLIBC_2.32 __pthread_rwlock_destroy F
>> @@ -135,7 +134,6 @@ GLIBC_2.32 pthread_mutexattr_setpshared F
>>  GLIBC_2.32 pthread_mutexattr_setrobust F
>>  GLIBC_2.32 pthread_mutexattr_setrobust_np F
>>  GLIBC_2.32 pthread_mutexattr_settype F
>> -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
>> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
>> index 2383d95094..03e5389852 100644
>> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
>> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
>> @@ -158,7 +158,9 @@ GLIBC_2.33 stat F
>>  GLIBC_2.33 stat64 F
>>  GLIBC_2.34 __libc_start_main F
>>  GLIBC_2.34 __pthread_cleanup_routine F
>> +GLIBC_2.34 __pthread_once F
>>  GLIBC_2.34 pthread_mutex_consistent F
>> +GLIBC_2.34 pthread_once F
>>  GLIBC_2.4 _Exit F
>>  GLIBC_2.4 _IO_2_1_stderr_ D 0xa0
>>  GLIBC_2.4 _IO_2_1_stdin_ D 0xa0
>> @@ -487,6 +489,7 @@ GLIBC_2.4 __profile_frequency F
>>  GLIBC_2.4 __progname D 0x4
>>  GLIBC_2.4 __progname_full D 0x4
>>  GLIBC_2.4 __pthread_cleanup_routine F
>> +GLIBC_2.4 __pthread_once F
>>  GLIBC_2.4 __ptsname_r_chk F
>>  GLIBC_2.4 __pwrite64 F
>>  GLIBC_2.4 __rawmemchr F
>> @@ -1548,6 +1551,7 @@ GLIBC_2.4 pthread_mutex_destroy F
>>  GLIBC_2.4 pthread_mutex_init F
>>  GLIBC_2.4 pthread_mutex_lock F
>>  GLIBC_2.4 pthread_mutex_unlock F
>> +GLIBC_2.4 pthread_once F
>>  GLIBC_2.4 pthread_self F
>>  GLIBC_2.4 pthread_setcancelstate F
>>  GLIBC_2.4 pthread_setcanceltype F
>> diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
>> index e75c83d47f..2e3d644ed9 100644
>> --- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
>> +++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
>> @@ -57,7 +57,6 @@ GLIBC_2.4 __pthread_mutex_unlock F
>>  GLIBC_2.4 __pthread_mutexattr_destroy F
>>  GLIBC_2.4 __pthread_mutexattr_init F
>>  GLIBC_2.4 __pthread_mutexattr_settype F
>> -GLIBC_2.4 __pthread_once F
>>  GLIBC_2.4 __pthread_register_cancel F
>>  GLIBC_2.4 __pthread_register_cancel_defer F
>>  GLIBC_2.4 __pthread_rwlock_destroy F
>> @@ -151,7 +150,6 @@ GLIBC_2.4 pthread_mutexattr_setprotocol F
>>  GLIBC_2.4 pthread_mutexattr_setpshared F
>>  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
>> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
>> index bb46b8b5e3..ac2fcf7b14 100644
>> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
>> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
>> @@ -155,7 +155,9 @@ GLIBC_2.33 stat F
>>  GLIBC_2.33 stat64 F
>>  GLIBC_2.34 __libc_start_main F
>>  GLIBC_2.34 __pthread_cleanup_routine F
>> +GLIBC_2.34 __pthread_once F
>>  GLIBC_2.34 pthread_mutex_consistent F
>> +GLIBC_2.34 pthread_once F
>>  GLIBC_2.4 _Exit F
>>  GLIBC_2.4 _IO_2_1_stderr_ D 0xa0
>>  GLIBC_2.4 _IO_2_1_stdin_ D 0xa0
>> @@ -484,6 +486,7 @@ GLIBC_2.4 __profile_frequency F
>>  GLIBC_2.4 __progname D 0x4
>>  GLIBC_2.4 __progname_full D 0x4
>>  GLIBC_2.4 __pthread_cleanup_routine F
>> +GLIBC_2.4 __pthread_once F
>>  GLIBC_2.4 __ptsname_r_chk F
>>  GLIBC_2.4 __pwrite64 F
>>  GLIBC_2.4 __rawmemchr F
>> @@ -1545,6 +1548,7 @@ GLIBC_2.4 pthread_mutex_destroy F
>>  GLIBC_2.4 pthread_mutex_init F
>>  GLIBC_2.4 pthread_mutex_lock F
>>  GLIBC_2.4 pthread_mutex_unlock F
>> +GLIBC_2.4 pthread_once F
>>  GLIBC_2.4 pthread_self F
>>  GLIBC_2.4 pthread_setcancelstate F
>>  GLIBC_2.4 pthread_setcanceltype F
>> diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
>> index e75c83d47f..2e3d644ed9 100644
>> --- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
>> +++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
>> @@ -57,7 +57,6 @@ GLIBC_2.4 __pthread_mutex_unlock F
>>  GLIBC_2.4 __pthread_mutexattr_destroy F
>>  GLIBC_2.4 __pthread_mutexattr_init F
>>  GLIBC_2.4 __pthread_mutexattr_settype F
>> -GLIBC_2.4 __pthread_once F
>>  GLIBC_2.4 __pthread_register_cancel F
>>  GLIBC_2.4 __pthread_register_cancel_defer F
>>  GLIBC_2.4 __pthread_rwlock_destroy F
>> @@ -151,7 +150,6 @@ GLIBC_2.4 pthread_mutexattr_setprotocol F
>>  GLIBC_2.4 pthread_mutexattr_setpshared F
>>  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
>> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
>> index 684e451f83..336a59110e 100644
>> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
>> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
>> @@ -332,6 +332,7 @@ GLIBC_2.29 __profile_frequency F
>>  GLIBC_2.29 __progname D 0x4
>>  GLIBC_2.29 __progname_full D 0x4
>>  GLIBC_2.29 __pthread_cleanup_routine F
>> +GLIBC_2.29 __pthread_once F
>>  GLIBC_2.29 __ptsname_r_chk F
>>  GLIBC_2.29 __pwrite64 F
>>  GLIBC_2.29 __rawmemchr F
>> @@ -1441,6 +1442,7 @@ GLIBC_2.29 pthread_mutex_destroy F
>>  GLIBC_2.29 pthread_mutex_init F
>>  GLIBC_2.29 pthread_mutex_lock F
>>  GLIBC_2.29 pthread_mutex_unlock F
>> +GLIBC_2.29 pthread_once F
>>  GLIBC_2.29 pthread_self F
>>  GLIBC_2.29 pthread_setcancelstate F
>>  GLIBC_2.29 pthread_setcanceltype F
>> @@ -2124,4 +2126,6 @@ GLIBC_2.33 stat F
>>  GLIBC_2.33 stat64 F
>>  GLIBC_2.34 __libc_start_main F
>>  GLIBC_2.34 __pthread_cleanup_routine F
>> +GLIBC_2.34 __pthread_once F
>>  GLIBC_2.34 pthread_mutex_consistent F
>> +GLIBC_2.34 pthread_once F
>> diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
>> index bb8a51a51d..78e69d3e06 100644
>> --- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
>> +++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
>> @@ -22,7 +22,6 @@ GLIBC_2.29 __pthread_mutex_unlock F
>>  GLIBC_2.29 __pthread_mutexattr_destroy F
>>  GLIBC_2.29 __pthread_mutexattr_init F
>>  GLIBC_2.29 __pthread_mutexattr_settype F
>> -GLIBC_2.29 __pthread_once F
>>  GLIBC_2.29 __pthread_register_cancel F
>>  GLIBC_2.29 __pthread_register_cancel_defer F
>>  GLIBC_2.29 __pthread_rwlock_destroy F
>> @@ -132,7 +131,6 @@ GLIBC_2.29 pthread_mutexattr_setpshared F
>>  GLIBC_2.29 pthread_mutexattr_setrobust F
>>  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
>> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
>> index 8dde237f8b..6d40c40268 100644
>> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
>> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
>> @@ -356,6 +356,7 @@ GLIBC_2.2 __printf_fp F
>>  GLIBC_2.2 __profile_frequency F
>>  GLIBC_2.2 __progname D 0x4
>>  GLIBC_2.2 __progname_full D 0x4
>> +GLIBC_2.2 __pthread_once F
>>  GLIBC_2.2 __pwrite64 F
>>  GLIBC_2.2 __rawmemchr F
>>  GLIBC_2.2 __rcmd_errstr D 0x4
>> @@ -1275,6 +1276,7 @@ GLIBC_2.2 pthread_mutex_destroy F
>>  GLIBC_2.2 pthread_mutex_init F
>>  GLIBC_2.2 pthread_mutex_lock F
>>  GLIBC_2.2 pthread_mutex_unlock F
>> +GLIBC_2.2 pthread_once F
>>  GLIBC_2.2 pthread_self F
>>  GLIBC_2.2 pthread_setcancelstate F
>>  GLIBC_2.2 pthread_setcanceltype F
>> @@ -2082,7 +2084,9 @@ GLIBC_2.33 stat F
>>  GLIBC_2.33 stat64 F
>>  GLIBC_2.34 __libc_start_main F
>>  GLIBC_2.34 __pthread_cleanup_routine F
>> +GLIBC_2.34 __pthread_once F
>>  GLIBC_2.34 pthread_mutex_consistent F
>> +GLIBC_2.34 pthread_once F
>>  GLIBC_2.4 __confstr_chk F
>>  GLIBC_2.4 __fgets_chk F
>>  GLIBC_2.4 __fgets_unlocked_chk F
>> diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
>> index 740570ef37..96c70fb45e 100644
>> --- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
>> +++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
>> @@ -30,7 +30,6 @@ GLIBC_2.2 __pthread_mutex_unlock F
>>  GLIBC_2.2 __pthread_mutexattr_destroy F
>>  GLIBC_2.2 __pthread_mutexattr_init F
>>  GLIBC_2.2 __pthread_mutexattr_settype F
>> -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
>> @@ -108,7 +107,6 @@ GLIBC_2.2 pthread_mutexattr_init F
>>  GLIBC_2.2 pthread_mutexattr_setkind_np F
>>  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
>> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
>> index cc2226be23..2022f82d81 100644
>> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
>> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
>> @@ -185,6 +185,7 @@ GLIBC_2.0 __printf_fp F
>>  GLIBC_2.0 __profile_frequency F
>>  GLIBC_2.0 __progname D 0x4
>>  GLIBC_2.0 __progname_full D 0x4
>> +GLIBC_2.0 __pthread_once F
>>  GLIBC_2.0 __rcmd_errstr D 0x4
>>  GLIBC_2.0 __read F
>>  GLIBC_2.0 __realloc_hook D 0x4
>> @@ -868,6 +869,7 @@ GLIBC_2.0 pthread_mutex_destroy F
>>  GLIBC_2.0 pthread_mutex_init F
>>  GLIBC_2.0 pthread_mutex_lock F
>>  GLIBC_2.0 pthread_mutex_unlock F
>> +GLIBC_2.0 pthread_once F
>>  GLIBC_2.0 pthread_self F
>>  GLIBC_2.0 pthread_setcancelstate F
>>  GLIBC_2.0 pthread_setcanceltype F
>> @@ -2249,7 +2251,9 @@ GLIBC_2.33 stat F
>>  GLIBC_2.33 stat64 F
>>  GLIBC_2.34 __libc_start_main F
>>  GLIBC_2.34 __pthread_cleanup_routine F
>> +GLIBC_2.34 __pthread_once F
>>  GLIBC_2.34 pthread_mutex_consistent F
>> +GLIBC_2.34 pthread_once F
>>  GLIBC_2.4 __confstr_chk F
>>  GLIBC_2.4 __fgets_chk F
>>  GLIBC_2.4 __fgets_unlocked_chk F
>> diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
>> index 0b8c5b9104..f2be012ea9 100644
>> --- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
>> +++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
>> @@ -18,7 +18,6 @@ GLIBC_2.0 __pthread_mutex_unlock F
>>  GLIBC_2.0 __pthread_mutexattr_destroy F
>>  GLIBC_2.0 __pthread_mutexattr_init F
>>  GLIBC_2.0 __pthread_mutexattr_settype F
>> -GLIBC_2.0 __pthread_once F
>>  GLIBC_2.0 __pthread_setspecific F
>>  GLIBC_2.0 __read F
>>  GLIBC_2.0 __send F
>> @@ -60,7 +59,6 @@ GLIBC_2.0 pthread_mutexattr_destroy F
>>  GLIBC_2.0 pthread_mutexattr_getkind_np F
>>  GLIBC_2.0 pthread_mutexattr_init F
>>  GLIBC_2.0 pthread_mutexattr_setkind_np F
>> -GLIBC_2.0 pthread_once F
>>  GLIBC_2.0 pthread_setcancelstate F
>>  GLIBC_2.0 pthread_setcanceltype F
>>  GLIBC_2.0 pthread_setspecific F
>> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
>> index 438f3bd131..b9eeaabb01 100644
>> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
>> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
>> @@ -360,6 +360,7 @@ GLIBC_2.2 __printf_fp F
>>  GLIBC_2.2 __profile_frequency F
>>  GLIBC_2.2 __progname D 0x8
>>  GLIBC_2.2 __progname_full D 0x8
>> +GLIBC_2.2 __pthread_once F
>>  GLIBC_2.2 __pwrite64 F
>>  GLIBC_2.2 __rawmemchr F
>>  GLIBC_2.2 __rcmd_errstr D 0x8
>> @@ -1296,6 +1297,7 @@ GLIBC_2.2 pthread_mutex_destroy F
>>  GLIBC_2.2 pthread_mutex_init F
>>  GLIBC_2.2 pthread_mutex_lock F
>>  GLIBC_2.2 pthread_mutex_unlock F
>> +GLIBC_2.2 pthread_once F
>>  GLIBC_2.2 pthread_self F
>>  GLIBC_2.2 pthread_setcancelstate F
>>  GLIBC_2.2 pthread_setcanceltype F
>> @@ -2114,7 +2116,9 @@ GLIBC_2.33 stat F
>>  GLIBC_2.33 stat64 F
>>  GLIBC_2.34 __libc_start_main F
>>  GLIBC_2.34 __pthread_cleanup_routine F
>> +GLIBC_2.34 __pthread_once F
>>  GLIBC_2.34 pthread_mutex_consistent F
>> +GLIBC_2.34 pthread_once F
>>  GLIBC_2.4 __confstr_chk F
>>  GLIBC_2.4 __fgets_chk F
>>  GLIBC_2.4 __fgets_unlocked_chk F
>> diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
>> index 0565c43c10..3698acd3e9 100644
>> --- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
>> +++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
>> @@ -30,7 +30,6 @@ GLIBC_2.2 __pthread_mutex_unlock F
>>  GLIBC_2.2 __pthread_mutexattr_destroy F
>>  GLIBC_2.2 __pthread_mutexattr_init F
>>  GLIBC_2.2 __pthread_mutexattr_settype F
>> -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
>> @@ -108,7 +107,6 @@ GLIBC_2.2 pthread_mutexattr_init F
>>  GLIBC_2.2 pthread_mutexattr_setkind_np F
>>  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
>> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
>> index 5add3e607a..5a099fb3d0 100644
>> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
>> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
>> @@ -159,7 +159,9 @@ GLIBC_2.33 stat F
>>  GLIBC_2.33 stat64 F
>>  GLIBC_2.34 __libc_start_main F
>>  GLIBC_2.34 __pthread_cleanup_routine F
>> +GLIBC_2.34 __pthread_once F
>>  GLIBC_2.34 pthread_mutex_consistent F
>> +GLIBC_2.34 pthread_once F
>>  GLIBC_2.4 _Exit F
>>  GLIBC_2.4 _IO_2_1_stderr_ D 0x98
>>  GLIBC_2.4 _IO_2_1_stdin_ D 0x98
>> @@ -473,6 +475,7 @@ GLIBC_2.4 __profile_frequency F
>>  GLIBC_2.4 __progname D 0x4
>>  GLIBC_2.4 __progname_full D 0x4
>>  GLIBC_2.4 __pthread_cleanup_routine F
>> +GLIBC_2.4 __pthread_once F
>>  GLIBC_2.4 __ptsname_r_chk F
>>  GLIBC_2.4 __pwrite64 F
>>  GLIBC_2.4 __rawmemchr F
>> @@ -1528,6 +1531,7 @@ GLIBC_2.4 pthread_mutex_destroy F
>>  GLIBC_2.4 pthread_mutex_init F
>>  GLIBC_2.4 pthread_mutex_lock F
>>  GLIBC_2.4 pthread_mutex_unlock F
>> +GLIBC_2.4 pthread_once F
>>  GLIBC_2.4 pthread_self F
>>  GLIBC_2.4 pthread_setcancelstate F
>>  GLIBC_2.4 pthread_setcanceltype F
>> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
>> index e75c83d47f..2e3d644ed9 100644
>> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
>> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
>> @@ -57,7 +57,6 @@ GLIBC_2.4 __pthread_mutex_unlock F
>>  GLIBC_2.4 __pthread_mutexattr_destroy F
>>  GLIBC_2.4 __pthread_mutexattr_init F
>>  GLIBC_2.4 __pthread_mutexattr_settype F
>> -GLIBC_2.4 __pthread_once F
>>  GLIBC_2.4 __pthread_register_cancel F
>>  GLIBC_2.4 __pthread_register_cancel_defer F
>>  GLIBC_2.4 __pthread_rwlock_destroy F
>> @@ -151,7 +150,6 @@ GLIBC_2.4 pthread_mutexattr_setprotocol F
>>  GLIBC_2.4 pthread_mutexattr_setpshared F
>>  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
>> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
>> index 2e7c9f9b47..f81c9cc523 100644
>> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
>> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
>> @@ -185,6 +185,7 @@ GLIBC_2.0 __printf_fp F
>>  GLIBC_2.0 __profile_frequency F
>>  GLIBC_2.0 __progname D 0x4
>>  GLIBC_2.0 __progname_full D 0x4
>> +GLIBC_2.0 __pthread_once F
>>  GLIBC_2.0 __rcmd_errstr D 0x4
>>  GLIBC_2.0 __read F
>>  GLIBC_2.0 __realloc_hook D 0x4
>> @@ -867,6 +868,7 @@ GLIBC_2.0 pthread_mutex_destroy F
>>  GLIBC_2.0 pthread_mutex_init F
>>  GLIBC_2.0 pthread_mutex_lock F
>>  GLIBC_2.0 pthread_mutex_unlock F
>> +GLIBC_2.0 pthread_once F
>>  GLIBC_2.0 pthread_self F
>>  GLIBC_2.0 pthread_setcancelstate F
>>  GLIBC_2.0 pthread_setcanceltype F
>> @@ -2194,7 +2196,9 @@ GLIBC_2.33 stat F
>>  GLIBC_2.33 stat64 F
>>  GLIBC_2.34 __libc_start_main F
>>  GLIBC_2.34 __pthread_cleanup_routine F
>> +GLIBC_2.34 __pthread_once F
>>  GLIBC_2.34 pthread_mutex_consistent F
>> +GLIBC_2.34 pthread_once F
>>  GLIBC_2.4 __confstr_chk F
>>  GLIBC_2.4 __fgets_chk F
>>  GLIBC_2.4 __fgets_unlocked_chk F
>> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
>> index 0b8c5b9104..f2be012ea9 100644
>> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
>> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
>> @@ -18,7 +18,6 @@ GLIBC_2.0 __pthread_mutex_unlock F
>>  GLIBC_2.0 __pthread_mutexattr_destroy F
>>  GLIBC_2.0 __pthread_mutexattr_init F
>>  GLIBC_2.0 __pthread_mutexattr_settype F
>> -GLIBC_2.0 __pthread_once F
>>  GLIBC_2.0 __pthread_setspecific F
>>  GLIBC_2.0 __read F
>>  GLIBC_2.0 __send F
>> @@ -60,7 +59,6 @@ GLIBC_2.0 pthread_mutexattr_destroy F
>>  GLIBC_2.0 pthread_mutexattr_getkind_np F
>>  GLIBC_2.0 pthread_mutexattr_init F
>>  GLIBC_2.0 pthread_mutexattr_setkind_np F
>> -GLIBC_2.0 pthread_once F
>>  GLIBC_2.0 pthread_setcancelstate F
>>  GLIBC_2.0 pthread_setcanceltype F
>>  GLIBC_2.0 pthread_setspecific F
>> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
>> index 493f7ddaa0..ce50516bc6 100644
>> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
>> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
>> @@ -340,6 +340,7 @@ GLIBC_2.18 __profile_frequency F
>>  GLIBC_2.18 __progname D 0x4
>>  GLIBC_2.18 __progname_full D 0x4
>>  GLIBC_2.18 __pthread_cleanup_routine F
>> +GLIBC_2.18 __pthread_once F
>>  GLIBC_2.18 __ptsname_r_chk F
>>  GLIBC_2.18 __pwrite64 F
>>  GLIBC_2.18 __rawmemchr F
>> @@ -1456,6 +1457,7 @@ GLIBC_2.18 pthread_mutex_destroy F
>>  GLIBC_2.18 pthread_mutex_init F
>>  GLIBC_2.18 pthread_mutex_lock F
>>  GLIBC_2.18 pthread_mutex_unlock F
>> +GLIBC_2.18 pthread_once F
>>  GLIBC_2.18 pthread_self F
>>  GLIBC_2.18 pthread_setcancelstate F
>>  GLIBC_2.18 pthread_setcanceltype F
>> @@ -2175,4 +2177,6 @@ GLIBC_2.33 stat F
>>  GLIBC_2.33 stat64 F
>>  GLIBC_2.34 __libc_start_main F
>>  GLIBC_2.34 __pthread_cleanup_routine F
>> +GLIBC_2.34 __pthread_once F
>>  GLIBC_2.34 pthread_mutex_consistent F
>> +GLIBC_2.34 pthread_once F
>> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
>> index 3798ae24be..73c70d5c87 100644
>> --- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
>> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
>> @@ -23,7 +23,6 @@ GLIBC_2.18 __pthread_mutex_unlock F
>>  GLIBC_2.18 __pthread_mutexattr_destroy F
>>  GLIBC_2.18 __pthread_mutexattr_init F
>>  GLIBC_2.18 __pthread_mutexattr_settype F
>> -GLIBC_2.18 __pthread_once F
>>  GLIBC_2.18 __pthread_register_cancel F
>>  GLIBC_2.18 __pthread_register_cancel_defer F
>>  GLIBC_2.18 __pthread_rwlock_destroy F
>> @@ -121,7 +120,6 @@ GLIBC_2.18 pthread_mutexattr_setpshared F
>>  GLIBC_2.18 pthread_mutexattr_setrobust F
>>  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
>> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
>> index ec83b89aa3..37ecc7c967 100644
>> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
>> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
>> @@ -340,6 +340,7 @@ GLIBC_2.18 __profile_frequency F
>>  GLIBC_2.18 __progname D 0x4
>>  GLIBC_2.18 __progname_full D 0x4
>>  GLIBC_2.18 __pthread_cleanup_routine F
>> +GLIBC_2.18 __pthread_once F
>>  GLIBC_2.18 __ptsname_r_chk F
>>  GLIBC_2.18 __pwrite64 F
>>  GLIBC_2.18 __rawmemchr F
>> @@ -1456,6 +1457,7 @@ GLIBC_2.18 pthread_mutex_destroy F
>>  GLIBC_2.18 pthread_mutex_init F
>>  GLIBC_2.18 pthread_mutex_lock F
>>  GLIBC_2.18 pthread_mutex_unlock F
>> +GLIBC_2.18 pthread_once F
>>  GLIBC_2.18 pthread_self F
>>  GLIBC_2.18 pthread_setcancelstate F
>>  GLIBC_2.18 pthread_setcanceltype F
>> @@ -2172,4 +2174,6 @@ GLIBC_2.33 stat F
>>  GLIBC_2.33 stat64 F
>>  GLIBC_2.34 __libc_start_main F
>>  GLIBC_2.34 __pthread_cleanup_routine F
>> +GLIBC_2.34 __pthread_once F
>>  GLIBC_2.34 pthread_mutex_consistent F
>> +GLIBC_2.34 pthread_once F
>> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
>> index 3798ae24be..73c70d5c87 100644
>> --- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
>> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
>> @@ -23,7 +23,6 @@ GLIBC_2.18 __pthread_mutex_unlock F
>>  GLIBC_2.18 __pthread_mutexattr_destroy F
>>  GLIBC_2.18 __pthread_mutexattr_init F
>>  GLIBC_2.18 __pthread_mutexattr_settype F
>> -GLIBC_2.18 __pthread_once F
>>  GLIBC_2.18 __pthread_register_cancel F
>>  GLIBC_2.18 __pthread_register_cancel_defer F
>>  GLIBC_2.18 __pthread_rwlock_destroy F
>> @@ -121,7 +120,6 @@ GLIBC_2.18 pthread_mutexattr_setpshared F
>>  GLIBC_2.18 pthread_mutexattr_setrobust F
>>  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
>> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
>> index cb0ab4bc19..6d50fcc64f 100644
>> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
>> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
>> @@ -183,6 +183,7 @@ GLIBC_2.0 __printf_fp F
>>  GLIBC_2.0 __profile_frequency F
>>  GLIBC_2.0 __progname D 0x4
>>  GLIBC_2.0 __progname_full D 0x4
>> +GLIBC_2.0 __pthread_once F
>>  GLIBC_2.0 __rcmd_errstr D 0x4
>>  GLIBC_2.0 __read F
>>  GLIBC_2.0 __realloc_hook D 0x4
>> @@ -864,6 +865,7 @@ GLIBC_2.0 pthread_mutex_destroy F
>>  GLIBC_2.0 pthread_mutex_init F
>>  GLIBC_2.0 pthread_mutex_lock F
>>  GLIBC_2.0 pthread_mutex_unlock F
>> +GLIBC_2.0 pthread_once F
>>  GLIBC_2.0 pthread_self F
>>  GLIBC_2.0 pthread_setcancelstate F
>>  GLIBC_2.0 pthread_setcanceltype F
>> @@ -2165,7 +2167,9 @@ GLIBC_2.33 stat F
>>  GLIBC_2.33 stat64 F
>>  GLIBC_2.34 __libc_start_main F
>>  GLIBC_2.34 __pthread_cleanup_routine F
>> +GLIBC_2.34 __pthread_once F
>>  GLIBC_2.34 pthread_mutex_consistent F
>> +GLIBC_2.34 pthread_once F
>>  GLIBC_2.4 __confstr_chk F
>>  GLIBC_2.4 __fgets_chk F
>>  GLIBC_2.4 __fgets_unlocked_chk F
>> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
>> index 79da59eb81..faa1ad9d1c 100644
>> --- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
>> +++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
>> @@ -18,7 +18,6 @@ GLIBC_2.0 __pthread_mutex_unlock F
>>  GLIBC_2.0 __pthread_mutexattr_destroy F
>>  GLIBC_2.0 __pthread_mutexattr_init F
>>  GLIBC_2.0 __pthread_mutexattr_settype F
>> -GLIBC_2.0 __pthread_once F
>>  GLIBC_2.0 __pthread_setspecific F
>>  GLIBC_2.0 __read F
>>  GLIBC_2.0 __send F
>> @@ -60,7 +59,6 @@ GLIBC_2.0 pthread_mutexattr_destroy F
>>  GLIBC_2.0 pthread_mutexattr_getkind_np F
>>  GLIBC_2.0 pthread_mutexattr_init F
>>  GLIBC_2.0 pthread_mutexattr_setkind_np F
>> -GLIBC_2.0 pthread_once F
>>  GLIBC_2.0 pthread_setcancelstate F
>>  GLIBC_2.0 pthread_setcanceltype F
>>  GLIBC_2.0 pthread_setspecific F
>> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
>> index 2be2623e99..b4e05e270d 100644
>> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
>> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
>> @@ -183,6 +183,7 @@ GLIBC_2.0 __printf_fp F
>>  GLIBC_2.0 __profile_frequency F
>>  GLIBC_2.0 __progname D 0x4
>>  GLIBC_2.0 __progname_full D 0x4
>> +GLIBC_2.0 __pthread_once F
>>  GLIBC_2.0 __rcmd_errstr D 0x4
>>  GLIBC_2.0 __read F
>>  GLIBC_2.0 __realloc_hook D 0x4
>> @@ -864,6 +865,7 @@ GLIBC_2.0 pthread_mutex_destroy F
>>  GLIBC_2.0 pthread_mutex_init F
>>  GLIBC_2.0 pthread_mutex_lock F
>>  GLIBC_2.0 pthread_mutex_unlock F
>> +GLIBC_2.0 pthread_once F
>>  GLIBC_2.0 pthread_self F
>>  GLIBC_2.0 pthread_setcancelstate F
>>  GLIBC_2.0 pthread_setcanceltype F
>> @@ -2163,7 +2165,9 @@ GLIBC_2.33 stat F
>>  GLIBC_2.33 stat64 F
>>  GLIBC_2.34 __libc_start_main F
>>  GLIBC_2.34 __pthread_cleanup_routine F
>> +GLIBC_2.34 __pthread_once F
>>  GLIBC_2.34 pthread_mutex_consistent F
>> +GLIBC_2.34 pthread_once F
>>  GLIBC_2.4 __confstr_chk F
>>  GLIBC_2.4 __fgets_chk F
>>  GLIBC_2.4 __fgets_unlocked_chk F
>> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
>> index 79da59eb81..faa1ad9d1c 100644
>> --- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
>> +++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
>> @@ -18,7 +18,6 @@ GLIBC_2.0 __pthread_mutex_unlock F
>>  GLIBC_2.0 __pthread_mutexattr_destroy F
>>  GLIBC_2.0 __pthread_mutexattr_init F
>>  GLIBC_2.0 __pthread_mutexattr_settype F
>> -GLIBC_2.0 __pthread_once F
>>  GLIBC_2.0 __pthread_setspecific F
>>  GLIBC_2.0 __read F
>>  GLIBC_2.0 __send F
>> @@ -60,7 +59,6 @@ GLIBC_2.0 pthread_mutexattr_destroy F
>>  GLIBC_2.0 pthread_mutexattr_getkind_np F
>>  GLIBC_2.0 pthread_mutexattr_init F
>>  GLIBC_2.0 pthread_mutexattr_setkind_np F
>> -GLIBC_2.0 pthread_once F
>>  GLIBC_2.0 pthread_setcancelstate F
>>  GLIBC_2.0 pthread_setcanceltype F
>>  GLIBC_2.0 pthread_setspecific F
>> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
>> index 09147861b5..71d184c2aa 100644
>> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
>> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
>> @@ -183,6 +183,7 @@ GLIBC_2.0 __printf_fp F
>>  GLIBC_2.0 __profile_frequency F
>>  GLIBC_2.0 __progname D 0x4
>>  GLIBC_2.0 __progname_full D 0x4
>> +GLIBC_2.0 __pthread_once F
>>  GLIBC_2.0 __rcmd_errstr D 0x4
>>  GLIBC_2.0 __read F
>>  GLIBC_2.0 __realloc_hook D 0x4
>> @@ -864,6 +865,7 @@ GLIBC_2.0 pthread_mutex_destroy F
>>  GLIBC_2.0 pthread_mutex_init F
>>  GLIBC_2.0 pthread_mutex_lock F
>>  GLIBC_2.0 pthread_mutex_unlock F
>> +GLIBC_2.0 pthread_once F
>>  GLIBC_2.0 pthread_self F
>>  GLIBC_2.0 pthread_setcancelstate F
>>  GLIBC_2.0 pthread_setcanceltype F
>> @@ -2171,7 +2173,9 @@ GLIBC_2.33 stat F
>>  GLIBC_2.33 stat64 F
>>  GLIBC_2.34 __libc_start_main F
>>  GLIBC_2.34 __pthread_cleanup_routine F
>> +GLIBC_2.34 __pthread_once F
>>  GLIBC_2.34 pthread_mutex_consistent F
>> +GLIBC_2.34 pthread_once F
>>  GLIBC_2.4 __confstr_chk F
>>  GLIBC_2.4 __fgets_chk F
>>  GLIBC_2.4 __fgets_unlocked_chk F
>> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
>> index 4a0208c8c8..1e792c6705 100644
>> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
>> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
>> @@ -183,6 +183,7 @@ GLIBC_2.0 __printf_fp F
>>  GLIBC_2.0 __profile_frequency F
>>  GLIBC_2.0 __progname D 0x8
>>  GLIBC_2.0 __progname_full D 0x8
>> +GLIBC_2.0 __pthread_once F
>>  GLIBC_2.0 __rcmd_errstr D 0x8
>>  GLIBC_2.0 __read F
>>  GLIBC_2.0 __realloc_hook D 0x8
>> @@ -862,6 +863,7 @@ GLIBC_2.0 pthread_mutex_destroy F
>>  GLIBC_2.0 pthread_mutex_init F
>>  GLIBC_2.0 pthread_mutex_lock F
>>  GLIBC_2.0 pthread_mutex_unlock F
>> +GLIBC_2.0 pthread_once F
>>  GLIBC_2.0 pthread_self F
>>  GLIBC_2.0 pthread_setcancelstate F
>>  GLIBC_2.0 pthread_setcanceltype F
>> @@ -2165,7 +2167,9 @@ GLIBC_2.33 stat F
>>  GLIBC_2.33 stat64 F
>>  GLIBC_2.34 __libc_start_main F
>>  GLIBC_2.34 __pthread_cleanup_routine F
>> +GLIBC_2.34 __pthread_once F
>>  GLIBC_2.34 pthread_mutex_consistent F
>> +GLIBC_2.34 pthread_once F
>>  GLIBC_2.4 __confstr_chk F
>>  GLIBC_2.4 __fgets_chk F
>>  GLIBC_2.4 __fgets_unlocked_chk F
>> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
>> index 078025a7d6..5afc3e8022 100644
>> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
>> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
>> @@ -377,6 +377,7 @@ GLIBC_2.21 __profile_frequency F
>>  GLIBC_2.21 __progname D 0x4
>>  GLIBC_2.21 __progname_full D 0x4
>>  GLIBC_2.21 __pthread_cleanup_routine F
>> +GLIBC_2.21 __pthread_once F
>>  GLIBC_2.21 __ptsname_r_chk F
>>  GLIBC_2.21 __pwrite64 F
>>  GLIBC_2.21 __rawmemchr F
>> @@ -1498,6 +1499,7 @@ GLIBC_2.21 pthread_mutex_destroy F
>>  GLIBC_2.21 pthread_mutex_init F
>>  GLIBC_2.21 pthread_mutex_lock F
>>  GLIBC_2.21 pthread_mutex_unlock F
>> +GLIBC_2.21 pthread_once F
>>  GLIBC_2.21 pthread_self F
>>  GLIBC_2.21 pthread_setcancelstate F
>>  GLIBC_2.21 pthread_setcanceltype F
>> @@ -2213,4 +2215,6 @@ GLIBC_2.33 stat F
>>  GLIBC_2.33 stat64 F
>>  GLIBC_2.34 __libc_start_main F
>>  GLIBC_2.34 __pthread_cleanup_routine F
>> +GLIBC_2.34 __pthread_once F
>>  GLIBC_2.34 pthread_mutex_consistent F
>> +GLIBC_2.34 pthread_once F
>> diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
>> index 9dadbc85cc..5db41bc85b 100644
>> --- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
>> +++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
>> @@ -23,7 +23,6 @@ GLIBC_2.21 __pthread_mutex_unlock F
>>  GLIBC_2.21 __pthread_mutexattr_destroy F
>>  GLIBC_2.21 __pthread_mutexattr_init F
>>  GLIBC_2.21 __pthread_mutexattr_settype F
>> -GLIBC_2.21 __pthread_once F
>>  GLIBC_2.21 __pthread_register_cancel F
>>  GLIBC_2.21 __pthread_register_cancel_defer F
>>  GLIBC_2.21 __pthread_rwlock_destroy F
>> @@ -121,7 +120,6 @@ GLIBC_2.21 pthread_mutexattr_setpshared F
>>  GLIBC_2.21 pthread_mutexattr_setrobust F
>>  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
>> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
>> index bc79b844a5..4bfae8faa6 100644
>> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
>> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
>> @@ -194,6 +194,7 @@ GLIBC_2.0 __printf_fp F
>>  GLIBC_2.0 __profile_frequency F
>>  GLIBC_2.0 __progname D 0x4
>>  GLIBC_2.0 __progname_full D 0x4
>> +GLIBC_2.0 __pthread_once F
>>  GLIBC_2.0 __rcmd_errstr D 0x4
>>  GLIBC_2.0 __read F
>>  GLIBC_2.0 __realloc_hook D 0x4
>> @@ -875,6 +876,7 @@ GLIBC_2.0 pthread_mutex_destroy F
>>  GLIBC_2.0 pthread_mutex_init F
>>  GLIBC_2.0 pthread_mutex_lock F
>>  GLIBC_2.0 pthread_mutex_unlock F
>> +GLIBC_2.0 pthread_once F
>>  GLIBC_2.0 pthread_self F
>>  GLIBC_2.0 pthread_setcancelstate F
>>  GLIBC_2.0 pthread_setcanceltype F
>> @@ -2221,7 +2223,9 @@ GLIBC_2.33 stat F
>>  GLIBC_2.33 stat64 F
>>  GLIBC_2.34 __libc_start_main F
>>  GLIBC_2.34 __pthread_cleanup_routine F
>> +GLIBC_2.34 __pthread_once F
>>  GLIBC_2.34 pthread_mutex_consistent F
>> +GLIBC_2.34 pthread_once F
>>  GLIBC_2.4 _IO_fprintf F
>>  GLIBC_2.4 _IO_printf F
>>  GLIBC_2.4 _IO_sprintf F
>> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
>> index c852fcc147..995c88cbce 100644
>> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
>> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
>> @@ -18,7 +18,6 @@ GLIBC_2.0 __pthread_mutex_unlock F
>>  GLIBC_2.0 __pthread_mutexattr_destroy F
>>  GLIBC_2.0 __pthread_mutexattr_init F
>>  GLIBC_2.0 __pthread_mutexattr_settype F
>> -GLIBC_2.0 __pthread_once F
>>  GLIBC_2.0 __pthread_setspecific F
>>  GLIBC_2.0 __read F
>>  GLIBC_2.0 __send F
>> @@ -60,7 +59,6 @@ GLIBC_2.0 pthread_mutexattr_destroy F
>>  GLIBC_2.0 pthread_mutexattr_getkind_np F
>>  GLIBC_2.0 pthread_mutexattr_init F
>>  GLIBC_2.0 pthread_mutexattr_setkind_np F
>> -GLIBC_2.0 pthread_once F
>>  GLIBC_2.0 pthread_setcancelstate F
>>  GLIBC_2.0 pthread_setcanceltype F
>>  GLIBC_2.0 pthread_setspecific F
>> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
>> index 63c05472ed..dc102f7f29 100644
>> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
>> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
>> @@ -194,6 +194,7 @@ GLIBC_2.0 __printf_fp F
>>  GLIBC_2.0 __profile_frequency F
>>  GLIBC_2.0 __progname D 0x4
>>  GLIBC_2.0 __progname_full D 0x4
>> +GLIBC_2.0 __pthread_once F
>>  GLIBC_2.0 __rcmd_errstr D 0x4
>>  GLIBC_2.0 __read F
>>  GLIBC_2.0 __realloc_hook D 0x4
>> @@ -875,6 +876,7 @@ GLIBC_2.0 pthread_mutex_destroy F
>>  GLIBC_2.0 pthread_mutex_init F
>>  GLIBC_2.0 pthread_mutex_lock F
>>  GLIBC_2.0 pthread_mutex_unlock F
>> +GLIBC_2.0 pthread_once F
>>  GLIBC_2.0 pthread_self F
>>  GLIBC_2.0 pthread_setcancelstate F
>>  GLIBC_2.0 pthread_setcanceltype F
>> @@ -2254,7 +2256,9 @@ GLIBC_2.33 stat F
>>  GLIBC_2.33 stat64 F
>>  GLIBC_2.34 __libc_start_main F
>>  GLIBC_2.34 __pthread_cleanup_routine F
>> +GLIBC_2.34 __pthread_once F
>>  GLIBC_2.34 pthread_mutex_consistent F
>> +GLIBC_2.34 pthread_once F
>>  GLIBC_2.4 _IO_fprintf F
>>  GLIBC_2.4 _IO_printf F
>>  GLIBC_2.4 _IO_sprintf F
>> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
>> index 37e4ee564d..9f019c4eac 100644
>> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
>> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
>> @@ -409,6 +409,7 @@ GLIBC_2.3 __printf_fp F
>>  GLIBC_2.3 __profile_frequency F
>>  GLIBC_2.3 __progname D 0x8
>>  GLIBC_2.3 __progname_full D 0x8
>> +GLIBC_2.3 __pthread_once F
>>  GLIBC_2.3 __pwrite64 F
>>  GLIBC_2.3 __rawmemchr F
>>  GLIBC_2.3 __rcmd_errstr D 0x8
>> @@ -1382,6 +1383,7 @@ GLIBC_2.3 pthread_mutex_destroy F
>>  GLIBC_2.3 pthread_mutex_init F
>>  GLIBC_2.3 pthread_mutex_lock F
>>  GLIBC_2.3 pthread_mutex_unlock F
>> +GLIBC_2.3 pthread_once F
>>  GLIBC_2.3 pthread_self F
>>  GLIBC_2.3 pthread_setcancelstate F
>>  GLIBC_2.3 pthread_setcanceltype F
>> @@ -2084,7 +2086,9 @@ GLIBC_2.33 stat F
>>  GLIBC_2.33 stat64 F
>>  GLIBC_2.34 __libc_start_main F
>>  GLIBC_2.34 __pthread_cleanup_routine F
>> +GLIBC_2.34 __pthread_once F
>>  GLIBC_2.34 pthread_mutex_consistent F
>> +GLIBC_2.34 pthread_once F
>>  GLIBC_2.4 _IO_fprintf F
>>  GLIBC_2.4 _IO_printf F
>>  GLIBC_2.4 _IO_sprintf F
>> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
>> index b7d0c8b743..07428bd3d6 100644
>> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
>> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
>> @@ -51,7 +51,6 @@ GLIBC_2.3 __pthread_mutex_unlock F
>>  GLIBC_2.3 __pthread_mutexattr_destroy F
>>  GLIBC_2.3 __pthread_mutexattr_init F
>>  GLIBC_2.3 __pthread_mutexattr_settype F
>> -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
>> @@ -128,7 +127,6 @@ GLIBC_2.3 pthread_mutexattr_init F
>>  GLIBC_2.3 pthread_mutexattr_setkind_np F
>>  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
>> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
>> index 1888ec6e86..f1217ffca5 100644
>> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
>> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
>> @@ -425,6 +425,7 @@ GLIBC_2.17 __profile_frequency F
>>  GLIBC_2.17 __progname D 0x8
>>  GLIBC_2.17 __progname_full D 0x8
>>  GLIBC_2.17 __pthread_cleanup_routine F
>> +GLIBC_2.17 __pthread_once F
>>  GLIBC_2.17 __ptsname_r_chk F
>>  GLIBC_2.17 __pwrite64 F
>>  GLIBC_2.17 __rawmemchr F
>> @@ -1542,6 +1543,7 @@ GLIBC_2.17 pthread_mutex_destroy F
>>  GLIBC_2.17 pthread_mutex_init F
>>  GLIBC_2.17 pthread_mutex_lock F
>>  GLIBC_2.17 pthread_mutex_unlock F
>> +GLIBC_2.17 pthread_once F
>>  GLIBC_2.17 pthread_self F
>>  GLIBC_2.17 pthread_setcancelstate F
>>  GLIBC_2.17 pthread_setcanceltype F
>> @@ -2375,4 +2377,6 @@ GLIBC_2.33 stat F
>>  GLIBC_2.33 stat64 F
>>  GLIBC_2.34 __libc_start_main F
>>  GLIBC_2.34 __pthread_cleanup_routine F
>> +GLIBC_2.34 __pthread_once F
>>  GLIBC_2.34 pthread_mutex_consistent F
>> +GLIBC_2.34 pthread_once F
>> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
>> index 884d97efca..a57e807cd0 100644
>> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
>> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
>> @@ -23,7 +23,6 @@ GLIBC_2.17 __pthread_mutex_unlock F
>>  GLIBC_2.17 __pthread_mutexattr_destroy F
>>  GLIBC_2.17 __pthread_mutexattr_init F
>>  GLIBC_2.17 __pthread_mutexattr_settype F
>> -GLIBC_2.17 __pthread_once F
>>  GLIBC_2.17 __pthread_register_cancel F
>>  GLIBC_2.17 __pthread_register_cancel_defer F
>>  GLIBC_2.17 __pthread_rwlock_destroy F
>> @@ -120,7 +119,6 @@ GLIBC_2.17 pthread_mutexattr_setpshared F
>>  GLIBC_2.17 pthread_mutexattr_setrobust F
>>  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
>> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
>> index 8cd92b1abe..afaabf996e 100644
>> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
>> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
>> @@ -325,6 +325,7 @@ GLIBC_2.33 __profile_frequency F
>>  GLIBC_2.33 __progname D 0x4
>>  GLIBC_2.33 __progname_full D 0x4
>>  GLIBC_2.33 __pthread_cleanup_routine F
>> +GLIBC_2.33 __pthread_once F
>>  GLIBC_2.33 __ptsname_r_chk F
>>  GLIBC_2.33 __pwrite64 F
>>  GLIBC_2.33 __rawmemchr F
>> @@ -1382,6 +1383,7 @@ GLIBC_2.33 pthread_mutex_destroy F
>>  GLIBC_2.33 pthread_mutex_init F
>>  GLIBC_2.33 pthread_mutex_lock F
>>  GLIBC_2.33 pthread_mutex_unlock F
>> +GLIBC_2.33 pthread_once F
>>  GLIBC_2.33 pthread_self F
>>  GLIBC_2.33 pthread_setcancelstate F
>>  GLIBC_2.33 pthread_setcanceltype F
>> @@ -1942,4 +1944,6 @@ GLIBC_2.33 writev F
>>  GLIBC_2.33 wscanf F
>>  GLIBC_2.34 __libc_start_main F
>>  GLIBC_2.34 __pthread_cleanup_routine F
>> +GLIBC_2.34 __pthread_once F
>>  GLIBC_2.34 pthread_mutex_consistent F
>> +GLIBC_2.34 pthread_once F
>> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
>> index 71e8f38003..ddf52b427a 100644
>> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
>> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
>> @@ -22,7 +22,6 @@ GLIBC_2.33 __pthread_mutex_unlock F
>>  GLIBC_2.33 __pthread_mutexattr_destroy F
>>  GLIBC_2.33 __pthread_mutexattr_init F
>>  GLIBC_2.33 __pthread_mutexattr_settype F
>> -GLIBC_2.33 __pthread_once F
>>  GLIBC_2.33 __pthread_register_cancel F
>>  GLIBC_2.33 __pthread_register_cancel_defer F
>>  GLIBC_2.33 __pthread_rwlock_destroy F
>> @@ -135,7 +134,6 @@ GLIBC_2.33 pthread_mutexattr_setpshared F
>>  GLIBC_2.33 pthread_mutexattr_setrobust F
>>  GLIBC_2.33 pthread_mutexattr_setrobust_np F
>>  GLIBC_2.33 pthread_mutexattr_settype F
>> -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
>> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
>> index 894f01282f..28563980d5 100644
>> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
>> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
>> @@ -336,6 +336,7 @@ GLIBC_2.27 __profile_frequency F
>>  GLIBC_2.27 __progname D 0x8
>>  GLIBC_2.27 __progname_full D 0x8
>>  GLIBC_2.27 __pthread_cleanup_routine F
>> +GLIBC_2.27 __pthread_once F
>>  GLIBC_2.27 __ptsname_r_chk F
>>  GLIBC_2.27 __pwrite64 F
>>  GLIBC_2.27 __rawmemchr F
>> @@ -1444,6 +1445,7 @@ GLIBC_2.27 pthread_mutex_destroy F
>>  GLIBC_2.27 pthread_mutex_init F
>>  GLIBC_2.27 pthread_mutex_lock F
>>  GLIBC_2.27 pthread_mutex_unlock F
>> +GLIBC_2.27 pthread_once F
>>  GLIBC_2.27 pthread_self F
>>  GLIBC_2.27 pthread_setcancelstate F
>>  GLIBC_2.27 pthread_setcanceltype F
>> @@ -2142,4 +2144,6 @@ GLIBC_2.33 stat F
>>  GLIBC_2.33 stat64 F
>>  GLIBC_2.34 __libc_start_main F
>>  GLIBC_2.34 __pthread_cleanup_routine F
>> +GLIBC_2.34 __pthread_once F
>>  GLIBC_2.34 pthread_mutex_consistent F
>> +GLIBC_2.34 pthread_once F
>> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
>> index f5f9baefb9..b12ec34091 100644
>> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
>> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
>> @@ -23,7 +23,6 @@ GLIBC_2.27 __pthread_mutex_unlock F
>>  GLIBC_2.27 __pthread_mutexattr_destroy F
>>  GLIBC_2.27 __pthread_mutexattr_init F
>>  GLIBC_2.27 __pthread_mutexattr_settype F
>> -GLIBC_2.27 __pthread_once F
>>  GLIBC_2.27 __pthread_register_cancel F
>>  GLIBC_2.27 __pthread_register_cancel_defer F
>>  GLIBC_2.27 __pthread_rwlock_destroy F
>> @@ -121,7 +120,6 @@ GLIBC_2.27 pthread_mutexattr_setpshared F
>>  GLIBC_2.27 pthread_mutexattr_setrobust F
>>  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
>> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
>> index 8788493ce0..6cfde17d64 100644
>> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
>> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
>> @@ -185,6 +185,7 @@ GLIBC_2.0 __printf_fp F
>>  GLIBC_2.0 __profile_frequency F
>>  GLIBC_2.0 __progname D 0x4
>>  GLIBC_2.0 __progname_full D 0x4
>> +GLIBC_2.0 __pthread_once F
>>  GLIBC_2.0 __rcmd_errstr D 0x4
>>  GLIBC_2.0 __read F
>>  GLIBC_2.0 __realloc_hook D 0x4
>> @@ -866,6 +867,7 @@ GLIBC_2.0 pthread_mutex_destroy F
>>  GLIBC_2.0 pthread_mutex_init F
>>  GLIBC_2.0 pthread_mutex_lock F
>>  GLIBC_2.0 pthread_mutex_unlock F
>> +GLIBC_2.0 pthread_once F
>>  GLIBC_2.0 pthread_self F
>>  GLIBC_2.0 pthread_setcancelstate F
>>  GLIBC_2.0 pthread_setcanceltype F
>> @@ -2219,7 +2221,9 @@ GLIBC_2.33 stat F
>>  GLIBC_2.33 stat64 F
>>  GLIBC_2.34 __libc_start_main F
>>  GLIBC_2.34 __pthread_cleanup_routine F
>> +GLIBC_2.34 __pthread_once F
>>  GLIBC_2.34 pthread_mutex_consistent F
>> +GLIBC_2.34 pthread_once F
>>  GLIBC_2.4 _IO_fprintf F
>>  GLIBC_2.4 _IO_printf F
>>  GLIBC_2.4 _IO_sprintf F
>> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
>> index 518a08ad1e..738e9ab535 100644
>> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
>> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
>> @@ -18,7 +18,6 @@ GLIBC_2.0 __pthread_mutex_unlock F
>>  GLIBC_2.0 __pthread_mutexattr_destroy F
>>  GLIBC_2.0 __pthread_mutexattr_init F
>>  GLIBC_2.0 __pthread_mutexattr_settype F
>> -GLIBC_2.0 __pthread_once F
>>  GLIBC_2.0 __pthread_setspecific F
>>  GLIBC_2.0 __read F
>>  GLIBC_2.0 __send F
>> @@ -60,7 +59,6 @@ GLIBC_2.0 pthread_mutexattr_destroy F
>>  GLIBC_2.0 pthread_mutexattr_getkind_np F
>>  GLIBC_2.0 pthread_mutexattr_init F
>>  GLIBC_2.0 pthread_mutexattr_setkind_np F
>> -GLIBC_2.0 pthread_once F
>>  GLIBC_2.0 pthread_setcancelstate F
>>  GLIBC_2.0 pthread_setcanceltype F
>>  GLIBC_2.0 pthread_setspecific F
>> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
>> index 4596ab72b0..16b2483535 100644
>> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
>> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
>> @@ -370,6 +370,7 @@ GLIBC_2.2 __printf_fp F
>>  GLIBC_2.2 __profile_frequency F
>>  GLIBC_2.2 __progname D 0x8
>>  GLIBC_2.2 __progname_full D 0x8
>> +GLIBC_2.2 __pthread_once F
>>  GLIBC_2.2 __pwrite64 F
>>  GLIBC_2.2 __rawmemchr F
>>  GLIBC_2.2 __rcmd_errstr D 0x8
>> @@ -1293,6 +1294,7 @@ GLIBC_2.2 pthread_mutex_destroy F
>>  GLIBC_2.2 pthread_mutex_init F
>>  GLIBC_2.2 pthread_mutex_lock F
>>  GLIBC_2.2 pthread_mutex_unlock F
>> +GLIBC_2.2 pthread_once F
>>  GLIBC_2.2 pthread_self F
>>  GLIBC_2.2 pthread_setcancelstate F
>>  GLIBC_2.2 pthread_setcanceltype F
>> @@ -2120,7 +2122,9 @@ GLIBC_2.33 stat F
>>  GLIBC_2.33 stat64 F
>>  GLIBC_2.34 __libc_start_main F
>>  GLIBC_2.34 __pthread_cleanup_routine F
>> +GLIBC_2.34 __pthread_once F
>>  GLIBC_2.34 pthread_mutex_consistent F
>> +GLIBC_2.34 pthread_once F
>>  GLIBC_2.4 _IO_fprintf F
>>  GLIBC_2.4 _IO_printf F
>>  GLIBC_2.4 _IO_sprintf F
>> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
>> index c21f7cfea6..13a2e8ef91 100644
>> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
>> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
>> @@ -31,7 +31,6 @@ GLIBC_2.2 __pthread_mutex_unlock F
>>  GLIBC_2.2 __pthread_mutexattr_destroy F
>>  GLIBC_2.2 __pthread_mutexattr_init F
>>  GLIBC_2.2 __pthread_mutexattr_settype F
>> -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
>> @@ -109,7 +108,6 @@ GLIBC_2.2 pthread_mutexattr_init F
>>  GLIBC_2.2 pthread_mutexattr_setkind_np F
>>  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
>> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
>> index ae16394e8a..a6fd6eb894 100644
>> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
>> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
>> @@ -359,6 +359,7 @@ GLIBC_2.2 __printf_fp F
>>  GLIBC_2.2 __profile_frequency F
>>  GLIBC_2.2 __progname D 0x4
>>  GLIBC_2.2 __progname_full D 0x4
>> +GLIBC_2.2 __pthread_once F
>>  GLIBC_2.2 __pwrite64 F
>>  GLIBC_2.2 __rawmemchr F
>>  GLIBC_2.2 __rcmd_errstr D 0x4
>> @@ -1279,6 +1280,7 @@ GLIBC_2.2 pthread_mutex_destroy F
>>  GLIBC_2.2 pthread_mutex_init F
>>  GLIBC_2.2 pthread_mutex_lock F
>>  GLIBC_2.2 pthread_mutex_unlock F
>> +GLIBC_2.2 pthread_once F
>>  GLIBC_2.2 pthread_self F
>>  GLIBC_2.2 pthread_setcancelstate F
>>  GLIBC_2.2 pthread_setcanceltype F
>> @@ -2089,7 +2091,9 @@ GLIBC_2.33 stat F
>>  GLIBC_2.33 stat64 F
>>  GLIBC_2.34 __libc_start_main F
>>  GLIBC_2.34 __pthread_cleanup_routine F
>> +GLIBC_2.34 __pthread_once F
>>  GLIBC_2.34 pthread_mutex_consistent F
>> +GLIBC_2.34 pthread_once F
>>  GLIBC_2.4 __confstr_chk F
>>  GLIBC_2.4 __fgets_chk F
>>  GLIBC_2.4 __fgets_unlocked_chk F
>> diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
>> index 740570ef37..96c70fb45e 100644
>> --- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
>> +++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
>> @@ -30,7 +30,6 @@ GLIBC_2.2 __pthread_mutex_unlock F
>>  GLIBC_2.2 __pthread_mutexattr_destroy F
>>  GLIBC_2.2 __pthread_mutexattr_init F
>>  GLIBC_2.2 __pthread_mutexattr_settype F
>> -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
>> @@ -108,7 +107,6 @@ GLIBC_2.2 pthread_mutexattr_init F
>>  GLIBC_2.2 pthread_mutexattr_setkind_np F
>>  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
>> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
>> index 6e45427e90..f4ba7b4ee8 100644
>> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
>> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
>> @@ -359,6 +359,7 @@ GLIBC_2.2 __printf_fp F
>>  GLIBC_2.2 __profile_frequency F
>>  GLIBC_2.2 __progname D 0x4
>>  GLIBC_2.2 __progname_full D 0x4
>> +GLIBC_2.2 __pthread_once F
>>  GLIBC_2.2 __pwrite64 F
>>  GLIBC_2.2 __rawmemchr F
>>  GLIBC_2.2 __rcmd_errstr D 0x4
>> @@ -1279,6 +1280,7 @@ GLIBC_2.2 pthread_mutex_destroy F
>>  GLIBC_2.2 pthread_mutex_init F
>>  GLIBC_2.2 pthread_mutex_lock F
>>  GLIBC_2.2 pthread_mutex_unlock F
>> +GLIBC_2.2 pthread_once F
>>  GLIBC_2.2 pthread_self F
>>  GLIBC_2.2 pthread_setcancelstate F
>>  GLIBC_2.2 pthread_setcanceltype F
>> @@ -2086,7 +2088,9 @@ GLIBC_2.33 stat F
>>  GLIBC_2.33 stat64 F
>>  GLIBC_2.34 __libc_start_main F
>>  GLIBC_2.34 __pthread_cleanup_routine F
>> +GLIBC_2.34 __pthread_once F
>>  GLIBC_2.34 pthread_mutex_consistent F
>> +GLIBC_2.34 pthread_once F
>>  GLIBC_2.4 __confstr_chk F
>>  GLIBC_2.4 __fgets_chk F
>>  GLIBC_2.4 __fgets_unlocked_chk F
>> diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
>> index 740570ef37..96c70fb45e 100644
>> --- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
>> +++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
>> @@ -30,7 +30,6 @@ GLIBC_2.2 __pthread_mutex_unlock F
>>  GLIBC_2.2 __pthread_mutexattr_destroy F
>>  GLIBC_2.2 __pthread_mutexattr_init F
>>  GLIBC_2.2 __pthread_mutexattr_settype F
>> -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
>> @@ -108,7 +107,6 @@ GLIBC_2.2 pthread_mutexattr_init F
>>  GLIBC_2.2 pthread_mutexattr_setkind_np F
>>  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
>> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
>> index 080a036590..70c2a92dfc 100644
>> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
>> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
>> @@ -189,6 +189,7 @@ GLIBC_2.0 __printf_fp F
>>  GLIBC_2.0 __profile_frequency F
>>  GLIBC_2.0 __progname D 0x4
>>  GLIBC_2.0 __progname_full D 0x4
>> +GLIBC_2.0 __pthread_once F
>>  GLIBC_2.0 __rcmd_errstr D 0x4
>>  GLIBC_2.0 __read F
>>  GLIBC_2.0 __realloc_hook D 0x4
>> @@ -869,6 +870,7 @@ GLIBC_2.0 pthread_mutex_destroy F
>>  GLIBC_2.0 pthread_mutex_init F
>>  GLIBC_2.0 pthread_mutex_lock F
>>  GLIBC_2.0 pthread_mutex_unlock F
>> +GLIBC_2.0 pthread_once F
>>  GLIBC_2.0 pthread_self F
>>  GLIBC_2.0 pthread_setcancelstate F
>>  GLIBC_2.0 pthread_setcanceltype F
>> @@ -2210,7 +2212,9 @@ GLIBC_2.33 stat F
>>  GLIBC_2.33 stat64 F
>>  GLIBC_2.34 __libc_start_main F
>>  GLIBC_2.34 __pthread_cleanup_routine F
>> +GLIBC_2.34 __pthread_once F
>>  GLIBC_2.34 pthread_mutex_consistent F
>> +GLIBC_2.34 pthread_once F
>>  GLIBC_2.4 _IO_fprintf F
>>  GLIBC_2.4 _IO_printf F
>>  GLIBC_2.4 _IO_sprintf F
>> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
>> index e17b5183ef..059ae76802 100644
>> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
>> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
>> @@ -18,7 +18,6 @@ GLIBC_2.0 __pthread_mutex_unlock F
>>  GLIBC_2.0 __pthread_mutexattr_destroy F
>>  GLIBC_2.0 __pthread_mutexattr_init F
>>  GLIBC_2.0 __pthread_mutexattr_settype F
>> -GLIBC_2.0 __pthread_once F
>>  GLIBC_2.0 __pthread_setspecific F
>>  GLIBC_2.0 __read F
>>  GLIBC_2.0 __send F
>> @@ -60,7 +59,6 @@ GLIBC_2.0 pthread_mutexattr_destroy F
>>  GLIBC_2.0 pthread_mutexattr_getkind_np F
>>  GLIBC_2.0 pthread_mutexattr_init F
>>  GLIBC_2.0 pthread_mutexattr_setkind_np F
>> -GLIBC_2.0 pthread_once F
>>  GLIBC_2.0 pthread_setcancelstate F
>>  GLIBC_2.0 pthread_setcanceltype F
>>  GLIBC_2.0 pthread_setspecific F
>> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
>> index c8fb7da49f..6f323b3705 100644
>> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
>> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
>> @@ -397,6 +397,7 @@ GLIBC_2.2 __printf_fp F
>>  GLIBC_2.2 __profile_frequency F
>>  GLIBC_2.2 __progname D 0x8
>>  GLIBC_2.2 __progname_full D 0x8
>> +GLIBC_2.2 __pthread_once F
>>  GLIBC_2.2 __pwrite64 F
>>  GLIBC_2.2 __rawmemchr F
>>  GLIBC_2.2 __rcmd_errstr D 0x8
>> @@ -1322,6 +1323,7 @@ GLIBC_2.2 pthread_mutex_destroy F
>>  GLIBC_2.2 pthread_mutex_init F
>>  GLIBC_2.2 pthread_mutex_lock F
>>  GLIBC_2.2 pthread_mutex_unlock F
>> +GLIBC_2.2 pthread_once F
>>  GLIBC_2.2 pthread_self F
>>  GLIBC_2.2 pthread_setcancelstate F
>>  GLIBC_2.2 pthread_setcanceltype F
>> @@ -2137,7 +2139,9 @@ GLIBC_2.33 stat F
>>  GLIBC_2.33 stat64 F
>>  GLIBC_2.34 __libc_start_main F
>>  GLIBC_2.34 __pthread_cleanup_routine F
>> +GLIBC_2.34 __pthread_once F
>>  GLIBC_2.34 pthread_mutex_consistent F
>> +GLIBC_2.34 pthread_once F
>>  GLIBC_2.4 __confstr_chk F
>>  GLIBC_2.4 __fgets_chk F
>>  GLIBC_2.4 __fgets_unlocked_chk F
>> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
>> index 0565c43c10..3698acd3e9 100644
>> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
>> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
>> @@ -30,7 +30,6 @@ GLIBC_2.2 __pthread_mutex_unlock F
>>  GLIBC_2.2 __pthread_mutexattr_destroy F
>>  GLIBC_2.2 __pthread_mutexattr_init F
>>  GLIBC_2.2 __pthread_mutexattr_settype F
>> -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
>> @@ -108,7 +107,6 @@ GLIBC_2.2 pthread_mutexattr_init F
>>  GLIBC_2.2 pthread_mutexattr_setkind_np F
>>  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
>> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
>> index cde6fdb49d..35503c7361 100644
>> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
>> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
>> @@ -358,6 +358,7 @@ GLIBC_2.2.5 __printf_fp F
>>  GLIBC_2.2.5 __profile_frequency F
>>  GLIBC_2.2.5 __progname D 0x8
>>  GLIBC_2.2.5 __progname_full D 0x8
>> +GLIBC_2.2.5 __pthread_once F
>>  GLIBC_2.2.5 __pwrite64 F
>>  GLIBC_2.2.5 __rawmemchr F
>>  GLIBC_2.2.5 __rcmd_errstr D 0x8
>> @@ -1290,6 +1291,7 @@ GLIBC_2.2.5 pthread_mutex_destroy F
>>  GLIBC_2.2.5 pthread_mutex_init F
>>  GLIBC_2.2.5 pthread_mutex_lock F
>>  GLIBC_2.2.5 pthread_mutex_unlock F
>> +GLIBC_2.2.5 pthread_once F
>>  GLIBC_2.2.5 pthread_self F
>>  GLIBC_2.2.5 pthread_setcancelstate F
>>  GLIBC_2.2.5 pthread_setcanceltype F
>> @@ -2096,7 +2098,9 @@ GLIBC_2.33 stat F
>>  GLIBC_2.33 stat64 F
>>  GLIBC_2.34 __libc_start_main F
>>  GLIBC_2.34 __pthread_cleanup_routine F
>> +GLIBC_2.34 __pthread_once F
>>  GLIBC_2.34 pthread_mutex_consistent F
>> +GLIBC_2.34 pthread_once F
>>  GLIBC_2.4 __confstr_chk F
>>  GLIBC_2.4 __fgets_chk F
>>  GLIBC_2.4 __fgets_unlocked_chk F
>> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
>> index f1255816b1..7636fde610 100644
>> --- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
>> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
>> @@ -30,7 +30,6 @@ GLIBC_2.2.5 __pthread_mutex_unlock F
>>  GLIBC_2.2.5 __pthread_mutexattr_destroy F
>>  GLIBC_2.2.5 __pthread_mutexattr_init F
>>  GLIBC_2.2.5 __pthread_mutexattr_settype F
>> -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
>> @@ -108,7 +107,6 @@ GLIBC_2.2.5 pthread_mutexattr_init F
>>  GLIBC_2.2.5 pthread_mutexattr_setkind_np F
>>  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
>> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
>> index e772da1ec4..3af0b4def9 100644
>> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
>> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
>> @@ -340,6 +340,7 @@ GLIBC_2.16 __profile_frequency F
>>  GLIBC_2.16 __progname D 0x4
>>  GLIBC_2.16 __progname_full D 0x4
>>  GLIBC_2.16 __pthread_cleanup_routine F
>> +GLIBC_2.16 __pthread_once F
>>  GLIBC_2.16 __ptsname_r_chk F
>>  GLIBC_2.16 __pwrite64 F
>>  GLIBC_2.16 __rawmemchr F
>> @@ -1461,6 +1462,7 @@ GLIBC_2.16 pthread_mutex_destroy F
>>  GLIBC_2.16 pthread_mutex_init F
>>  GLIBC_2.16 pthread_mutex_lock F
>>  GLIBC_2.16 pthread_mutex_unlock F
>> +GLIBC_2.16 pthread_once F
>>  GLIBC_2.16 pthread_self F
>>  GLIBC_2.16 pthread_setcancelstate F
>>  GLIBC_2.16 pthread_setcanceltype F
>> @@ -2194,4 +2196,6 @@ GLIBC_2.33 stat F
>>  GLIBC_2.33 stat64 F
>>  GLIBC_2.34 __libc_start_main F
>>  GLIBC_2.34 __pthread_cleanup_routine F
>> +GLIBC_2.34 __pthread_once F
>>  GLIBC_2.34 pthread_mutex_consistent F
>> +GLIBC_2.34 pthread_once F
>> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
>> index fdaff69ea6..d15de68e7e 100644
>> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
>> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
>> @@ -23,7 +23,6 @@ GLIBC_2.16 __pthread_mutex_unlock F
>>  GLIBC_2.16 __pthread_mutexattr_destroy F
>>  GLIBC_2.16 __pthread_mutexattr_init F
>>  GLIBC_2.16 __pthread_mutexattr_settype F
>> -GLIBC_2.16 __pthread_once F
>>  GLIBC_2.16 __pthread_register_cancel F
>>  GLIBC_2.16 __pthread_register_cancel_defer F
>>  GLIBC_2.16 __pthread_rwlock_destroy F
>> @@ -120,7 +119,6 @@ GLIBC_2.16 pthread_mutexattr_setpshared F
>>  GLIBC_2.16 pthread_mutexattr_setrobust F
>>  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
>>
> 
> Ok.
> 

  reply	other threads:[~2021-03-17 13:37 UTC|newest]

Thread overview: 99+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-16 17:27 [PATCH v3 00/37] libpthread removal: NPTL forwarders are gone Florian Weimer
2021-03-16 17:27 ` [PATCH v3 01/37] nptl: Move pthread_mutex_consistent into libc Florian Weimer
2021-03-17 11:36   ` Adhemerval Zanella
2021-03-16 17:27 ` [PATCH v3 02/37] nptl: Move __pthread_cleanup_routine " Florian Weimer
2021-03-16 17:27 ` [PATCH v3 03/37] nptl: Move legacy unwinding implementation " Florian Weimer
2021-03-16 17:27 ` [PATCH v3 04/37] nptl: Move legacy cancelation handling into libc as compat symbols Florian Weimer
2021-03-16 17:27 ` [PATCH v3 05/37] nptl: Remove longjmp, siglongjmp from libpthread Florian Weimer
2021-03-17 11:38   ` Adhemerval Zanella
2021-03-16 17:28 ` [PATCH v3 06/37] x86: Restore compile-time check for shadow stack pointer in longjmp Florian Weimer
2021-03-16 17:28 ` [PATCH v3 07/37] nptl: Move __pthread_cleanup_upto into libc Florian Weimer
2021-03-16 17:28 ` [PATCH v3 08/37] nptl: Move pthread_once and __pthread_once " Florian Weimer
2021-03-17 13:30   ` Adhemerval Zanella
2021-03-17 13:37     ` Adhemerval Zanella [this message]
2021-03-17 14:45       ` Florian Weimer
2021-03-17 16:39         ` Adhemerval Zanella
2021-03-17 16:56           ` Florian Weimer
2021-03-17 17:22             ` Adhemerval Zanella
2021-03-17 17:43               ` Florian Weimer
2021-03-17 19:09                 ` Adhemerval Zanella
2021-03-16 17:29 ` [PATCH v3 09/37] nptl: Move __pthread_unwind_next " Florian Weimer
2021-03-17 19:42   ` Adhemerval Zanella
2021-03-17 19:54     ` Florian Weimer
2021-03-17 20:16       ` Adhemerval Zanella
2021-03-17 20:33         ` Florian Weimer
2021-03-17 20:44           ` Adhemerval Zanella
2021-03-16 17:29 ` [PATCH v3 10/37] csu: Move calling main out of __libc_start_main_impl Florian Weimer
2021-03-17 20:45   ` Adhemerval Zanella
2021-03-16 17:29 ` [PATCH v3 11/37] nptl: Move internal __nptl_nthreads variable into libc Florian Weimer
2021-03-18 12:42   ` Adhemerval Zanella
2021-03-16 17:29 ` [PATCH v3 12/37] nptl_db: Introduce DB_MAIN_ARRAY_VARIABLE Florian Weimer
2021-03-18 12:43   ` Adhemerval Zanella
2021-03-16 17:29 ` [PATCH v3 13/37] nptl: Move __pthread_keys global variable into libc Florian Weimer
2021-03-18 12:44   ` Adhemerval Zanella
2021-03-16 17:29 ` [PATCH v3 14/37] nptl: Move __nptl_deallocate_tsd " Florian Weimer
2021-03-18 12:46   ` Adhemerval Zanella
2021-03-18 17:16     ` Florian Weimer
2021-03-18 17:54       ` Adhemerval Zanella
2021-03-16 17:29 ` [PATCH v3 15/37] nptl: Move pthread_exit " Florian Weimer
2021-03-18 12:49   ` Adhemerval Zanella
2021-03-16 17:29 ` [PATCH v3 16/37] nptl: Move pthread_setcancelstate " Florian Weimer
2021-03-18 12:52   ` Adhemerval Zanella
2021-03-16 17:29 ` [PATCH v3 17/37] nptl: Move pthread_setcanceltype " Florian Weimer
2021-03-18 12:53   ` Adhemerval Zanella
2021-03-16 17:29 ` [PATCH v3 18/37] nptl: Invoke the set_robust_list system call directly in fork Florian Weimer
2021-03-18 12:54   ` Adhemerval Zanella
2021-03-16 17:30 ` [PATCH v3 19/37] dlfcn: Failures after dlmopen should not terminate process [BZ #24772] Florian Weimer
2021-03-19 19:56   ` Adhemerval Zanella
2021-03-27 16:57     ` Florian Weimer
2021-03-16 17:30 ` [PATCH v3 20/37] dlfcn: dlerror needs to call free from the base namespace [BZ #24773] Florian Weimer
2021-03-23 14:47   ` Adhemerval Zanella
2021-03-16 17:30 ` [PATCH v3 21/37] Remove pthread_key_create-related internals from libc-lock.h Florian Weimer
2021-03-23 16:39   ` Adhemerval Zanella
2021-03-16 17:30 ` [PATCH v3 22/37] elf: Introduce __tls_init_tp for second-phase TCB initialization Florian Weimer
2021-03-23 18:25   ` Adhemerval Zanella
2021-03-16 17:30 ` [PATCH v3 23/37] nptl: Move part of TCB initialization from libpthread to __tls_init_tp Florian Weimer
2021-03-24 13:56   ` Adhemerval Zanella
2021-03-27 17:19     ` Florian Weimer
2021-03-16 17:30 ` [PATCH v3 24/37] nptl: Move pthread_key_create, __pthread_key_create into libc Florian Weimer
2021-03-24 14:09   ` Adhemerval Zanella
2021-03-24 14:32     ` Florian Weimer
2021-03-24 14:42       ` Adhemerval Zanella
2021-03-24 15:08         ` Florian Weimer
2021-03-24 15:46           ` Adhemerval Zanella
2021-03-16 17:30 ` [PATCH v3 25/37] nptl: Move pthread_getspecific, __pthread_getspecific " Florian Weimer
2021-03-24 14:12   ` Adhemerval Zanella
2021-03-24 14:38     ` Florian Weimer
2021-03-24 14:43       ` Adhemerval Zanella
2021-03-16 17:30 ` [PATCH v3 26/37] nptl: Move pthread_setspecific, __pthread_setspecific " Florian Weimer
2021-03-24 14:26   ` Adhemerval Zanella
2021-03-16 17:30 ` [PATCH v3 27/37] nptl: Move pthread_key_delete " Florian Weimer
2021-03-24 14:45   ` Adhemerval Zanella
2021-03-16 17:31 ` [PATCH v3 28/37] nptl: Move rwlock functions with forwarders " Florian Weimer
2021-03-25 19:52   ` Adhemerval Zanella
2021-03-27 21:41     ` Florian Weimer
2021-03-16 17:31 ` [PATCH v3 29/37] nptl: Move the internal thread priority protection symbols " Florian Weimer
2021-03-25 20:21   ` Adhemerval Zanella
2021-03-16 17:31 ` [PATCH v3 30/37] pthread: Introduce __pthread_early_init Florian Weimer
2021-03-25 20:22   ` Adhemerval Zanella
2021-03-16 17:31 ` [PATCH v3 31/37] nptl: Move internal symbol __mutex_aconf into libc Florian Weimer
2021-03-25 20:24   ` Adhemerval Zanella
2021-03-16 17:31 ` [PATCH v3 32/37] nptl: pthread_mutex_lock, pthread_mutex_unock single-threaded optimization Florian Weimer
2021-03-26 18:00   ` Adhemerval Zanella
2021-03-16 17:31 ` [PATCH v3 33/37] x86: Remove low-level lock optimization Florian Weimer
2021-03-25 20:30   ` Adhemerval Zanella
2021-03-16 17:31 ` [PATCH v3 34/37] nptl: Move core mutex functions into libc Florian Weimer
2021-03-25 20:46   ` Adhemerval Zanella
2021-03-16 17:31 ` [PATCH v3 35/37] nptl: Move core condition variable " Florian Weimer
2021-03-26 17:14   ` Adhemerval Zanella
2021-03-16 17:31 ` [PATCH v3 36/37] nptl: Move setxid broadcast implementation " Florian Weimer
2021-03-26 18:15   ` Adhemerval Zanella
2021-04-06 18:41     ` Florian Weimer
2021-04-06 18:54       ` Adhemerval Zanella
2021-04-06 19:23         ` Florian Weimer
2021-04-06 19:40           ` Adhemerval Zanella
2021-03-16 17:31 ` [PATCH v3 37/37] nptl: Remove remnants of the libc/libpthread forwarder interface Florian Weimer
2021-03-26 18:19   ` Adhemerval Zanella
2021-03-18 22:06 ` [PATCH v3 00/37] libpthread removal: NPTL forwarders are gone Florian Weimer
2021-03-26 18:25 ` Adhemerval Zanella
2021-03-31 10:18   ` Florian Weimer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5405bbad-3c70-4435-8815-59e84738c3fb@linaro.org \
    --to=adhemerval.zanella@linaro.org \
    --cc=fweimer@redhat.com \
    --cc=libc-alpha@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).