[10/34] Linux: Move aio_init from librt into libc

Message ID 8f2e107e48931e72aa91907b5d74512b1923cc6a.1623956057.git.fweimer@redhat.com
State Committed
Delegated to: Adhemerval Zanella Netto
Headers
Series Move librt into libc |

Checks

Context Check Description
dj/TryBot-apply_patch success Patch applied to master at the time it was sent

Commit Message

Florian Weimer June 17, 2021, 6:57 p.m. UTC
  This commit also moves the aio_misc and aio_sigquue helper,
so GLIBC_PRIVATE exports need to be added.

The symbol was moved using scripts/move-symbol-to-libc.py.
---
 nptl/pthread_getschedparam.c                  |   1 +
 rt/Makefile                                   |   6 +-
 rt/Versions                                   |  23 ++++
 rt/aio_misc.c                                 | 107 ++++++++++++------
 rt/aio_notify.c                               |  21 +++-
 rt/aio_sigqueue.c                             |   2 +-
 sysdeps/generic/aio_misc.h                    |  43 +++++--
 sysdeps/nptl/aio_misc.h                       |   4 +-
 sysdeps/nptl/pthreadP.h                       |   1 +
 sysdeps/unix/sysv/linux/aarch64/libc.abilist  |   2 +
 sysdeps/unix/sysv/linux/aarch64/librt.abilist |   1 -
 sysdeps/unix/sysv/linux/aio_misc.h            |  10 +-
 sysdeps/unix/sysv/linux/aio_sigqueue.c        |   3 +-
 sysdeps/unix/sysv/linux/alpha/libc.abilist    |   2 +
 sysdeps/unix/sysv/linux/alpha/librt.abilist   |   1 -
 sysdeps/unix/sysv/linux/arc/libc.abilist      |   2 +
 sysdeps/unix/sysv/linux/arc/librt.abilist     |   1 -
 sysdeps/unix/sysv/linux/arm/be/libc.abilist   |   2 +
 sysdeps/unix/sysv/linux/arm/be/librt.abilist  |   1 -
 sysdeps/unix/sysv/linux/arm/le/libc.abilist   |   2 +
 sysdeps/unix/sysv/linux/arm/le/librt.abilist  |   1 -
 sysdeps/unix/sysv/linux/csky/libc.abilist     |   2 +
 sysdeps/unix/sysv/linux/csky/librt.abilist    |   1 -
 sysdeps/unix/sysv/linux/hppa/libc.abilist     |   2 +
 sysdeps/unix/sysv/linux/hppa/librt.abilist    |   1 -
 sysdeps/unix/sysv/linux/i386/libc.abilist     |   2 +
 sysdeps/unix/sysv/linux/i386/librt.abilist    |   1 -
 sysdeps/unix/sysv/linux/ia64/libc.abilist     |   2 +
 sysdeps/unix/sysv/linux/ia64/librt.abilist    |   1 -
 .../sysv/linux/m68k/coldfire/libc.abilist     |   2 +
 .../sysv/linux/m68k/coldfire/librt.abilist    |   1 -
 .../unix/sysv/linux/m68k/m680x0/libc.abilist  |   2 +
 .../unix/sysv/linux/m68k/m680x0/librt.abilist |   1 -
 .../sysv/linux/microblaze/be/libc.abilist     |   2 +
 .../sysv/linux/microblaze/be/librt.abilist    |   1 -
 .../sysv/linux/microblaze/le/libc.abilist     |   2 +
 .../sysv/linux/microblaze/le/librt.abilist    |   1 -
 .../sysv/linux/mips/mips32/fpu/libc.abilist   |   2 +
 .../unix/sysv/linux/mips/mips32/librt.abilist |   1 -
 .../sysv/linux/mips/mips32/nofpu/libc.abilist |   2 +
 .../sysv/linux/mips/mips64/n32/libc.abilist   |   2 +
 .../sysv/linux/mips/mips64/n32/librt.abilist  |   1 -
 .../sysv/linux/mips/mips64/n64/libc.abilist   |   2 +
 .../sysv/linux/mips/mips64/n64/librt.abilist  |   1 -
 sysdeps/unix/sysv/linux/nios2/libc.abilist    |   2 +
 sysdeps/unix/sysv/linux/nios2/librt.abilist   |   1 -
 .../linux/powerpc/powerpc32/fpu/libc.abilist  |   2 +
 .../linux/powerpc/powerpc32/librt.abilist     |   1 -
 .../powerpc/powerpc32/nofpu/libc.abilist      |   2 +
 .../linux/powerpc/powerpc64/be/libc.abilist   |   2 +
 .../linux/powerpc/powerpc64/be/librt.abilist  |   1 -
 .../linux/powerpc/powerpc64/le/libc.abilist   |   2 +
 .../linux/powerpc/powerpc64/le/librt.abilist  |   1 -
 .../unix/sysv/linux/riscv/rv32/libc.abilist   |   2 +
 .../unix/sysv/linux/riscv/rv32/librt.abilist  |   1 -
 .../unix/sysv/linux/riscv/rv64/libc.abilist   |   2 +
 .../unix/sysv/linux/riscv/rv64/librt.abilist  |   1 -
 .../unix/sysv/linux/s390/s390-32/libc.abilist |   2 +
 .../sysv/linux/s390/s390-32/librt.abilist     |   1 -
 .../unix/sysv/linux/s390/s390-64/libc.abilist |   2 +
 .../sysv/linux/s390/s390-64/librt.abilist     |   1 -
 sysdeps/unix/sysv/linux/sh/be/libc.abilist    |   2 +
 sysdeps/unix/sysv/linux/sh/be/librt.abilist   |   1 -
 sysdeps/unix/sysv/linux/sh/le/libc.abilist    |   2 +
 sysdeps/unix/sysv/linux/sh/le/librt.abilist   |   1 -
 .../sysv/linux/sparc/sparc32/libc.abilist     |   2 +
 .../sysv/linux/sparc/sparc32/librt.abilist    |   1 -
 .../sysv/linux/sparc/sparc64/libc.abilist     |   2 +
 .../sysv/linux/sparc/sparc64/librt.abilist    |   1 -
 .../unix/sysv/linux/x86_64/64/libc.abilist    |   2 +
 .../unix/sysv/linux/x86_64/64/librt.abilist   |   1 -
 .../unix/sysv/linux/x86_64/x32/libc.abilist   |   2 +
 .../unix/sysv/linux/x86_64/x32/librt.abilist  |   1 -
 73 files changed, 222 insertions(+), 93 deletions(-)
  

Comments

Adhemerval Zanella Netto June 23, 2021, 1:22 p.m. UTC | #1
On 17/06/2021 15:57, Florian Weimer via Libc-alpha wrote:
> This commit also moves the aio_misc and aio_sigquue helper,
> so GLIBC_PRIVATE exports need to be added.
> 
> The symbol was moved using scripts/move-symbol-to-libc.py.

LGTM, only a small nit below.

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

> ---
>  nptl/pthread_getschedparam.c                  |   1 +
>  rt/Makefile                                   |   6 +-
>  rt/Versions                                   |  23 ++++
>  rt/aio_misc.c                                 | 107 ++++++++++++------
>  rt/aio_notify.c                               |  21 +++-
>  rt/aio_sigqueue.c                             |   2 +-
>  sysdeps/generic/aio_misc.h                    |  43 +++++--
>  sysdeps/nptl/aio_misc.h                       |   4 +-
>  sysdeps/nptl/pthreadP.h                       |   1 +
>  sysdeps/unix/sysv/linux/aarch64/libc.abilist  |   2 +
>  sysdeps/unix/sysv/linux/aarch64/librt.abilist |   1 -
>  sysdeps/unix/sysv/linux/aio_misc.h            |  10 +-
>  sysdeps/unix/sysv/linux/aio_sigqueue.c        |   3 +-
>  sysdeps/unix/sysv/linux/alpha/libc.abilist    |   2 +
>  sysdeps/unix/sysv/linux/alpha/librt.abilist   |   1 -
>  sysdeps/unix/sysv/linux/arc/libc.abilist      |   2 +
>  sysdeps/unix/sysv/linux/arc/librt.abilist     |   1 -
>  sysdeps/unix/sysv/linux/arm/be/libc.abilist   |   2 +
>  sysdeps/unix/sysv/linux/arm/be/librt.abilist  |   1 -
>  sysdeps/unix/sysv/linux/arm/le/libc.abilist   |   2 +
>  sysdeps/unix/sysv/linux/arm/le/librt.abilist  |   1 -
>  sysdeps/unix/sysv/linux/csky/libc.abilist     |   2 +
>  sysdeps/unix/sysv/linux/csky/librt.abilist    |   1 -
>  sysdeps/unix/sysv/linux/hppa/libc.abilist     |   2 +
>  sysdeps/unix/sysv/linux/hppa/librt.abilist    |   1 -
>  sysdeps/unix/sysv/linux/i386/libc.abilist     |   2 +
>  sysdeps/unix/sysv/linux/i386/librt.abilist    |   1 -
>  sysdeps/unix/sysv/linux/ia64/libc.abilist     |   2 +
>  sysdeps/unix/sysv/linux/ia64/librt.abilist    |   1 -
>  .../sysv/linux/m68k/coldfire/libc.abilist     |   2 +
>  .../sysv/linux/m68k/coldfire/librt.abilist    |   1 -
>  .../unix/sysv/linux/m68k/m680x0/libc.abilist  |   2 +
>  .../unix/sysv/linux/m68k/m680x0/librt.abilist |   1 -
>  .../sysv/linux/microblaze/be/libc.abilist     |   2 +
>  .../sysv/linux/microblaze/be/librt.abilist    |   1 -
>  .../sysv/linux/microblaze/le/libc.abilist     |   2 +
>  .../sysv/linux/microblaze/le/librt.abilist    |   1 -
>  .../sysv/linux/mips/mips32/fpu/libc.abilist   |   2 +
>  .../unix/sysv/linux/mips/mips32/librt.abilist |   1 -
>  .../sysv/linux/mips/mips32/nofpu/libc.abilist |   2 +
>  .../sysv/linux/mips/mips64/n32/libc.abilist   |   2 +
>  .../sysv/linux/mips/mips64/n32/librt.abilist  |   1 -
>  .../sysv/linux/mips/mips64/n64/libc.abilist   |   2 +
>  .../sysv/linux/mips/mips64/n64/librt.abilist  |   1 -
>  sysdeps/unix/sysv/linux/nios2/libc.abilist    |   2 +
>  sysdeps/unix/sysv/linux/nios2/librt.abilist   |   1 -
>  .../linux/powerpc/powerpc32/fpu/libc.abilist  |   2 +
>  .../linux/powerpc/powerpc32/librt.abilist     |   1 -
>  .../powerpc/powerpc32/nofpu/libc.abilist      |   2 +
>  .../linux/powerpc/powerpc64/be/libc.abilist   |   2 +
>  .../linux/powerpc/powerpc64/be/librt.abilist  |   1 -
>  .../linux/powerpc/powerpc64/le/libc.abilist   |   2 +
>  .../linux/powerpc/powerpc64/le/librt.abilist  |   1 -
>  .../unix/sysv/linux/riscv/rv32/libc.abilist   |   2 +
>  .../unix/sysv/linux/riscv/rv32/librt.abilist  |   1 -
>  .../unix/sysv/linux/riscv/rv64/libc.abilist   |   2 +
>  .../unix/sysv/linux/riscv/rv64/librt.abilist  |   1 -
>  .../unix/sysv/linux/s390/s390-32/libc.abilist |   2 +
>  .../sysv/linux/s390/s390-32/librt.abilist     |   1 -
>  .../unix/sysv/linux/s390/s390-64/libc.abilist |   2 +
>  .../sysv/linux/s390/s390-64/librt.abilist     |   1 -
>  sysdeps/unix/sysv/linux/sh/be/libc.abilist    |   2 +
>  sysdeps/unix/sysv/linux/sh/be/librt.abilist   |   1 -
>  sysdeps/unix/sysv/linux/sh/le/libc.abilist    |   2 +
>  sysdeps/unix/sysv/linux/sh/le/librt.abilist   |   1 -
>  .../sysv/linux/sparc/sparc32/libc.abilist     |   2 +
>  .../sysv/linux/sparc/sparc32/librt.abilist    |   1 -
>  .../sysv/linux/sparc/sparc64/libc.abilist     |   2 +
>  .../sysv/linux/sparc/sparc64/librt.abilist    |   1 -
>  .../unix/sysv/linux/x86_64/64/libc.abilist    |   2 +
>  .../unix/sysv/linux/x86_64/64/librt.abilist   |   1 -
>  .../unix/sysv/linux/x86_64/x32/libc.abilist   |   2 +
>  .../unix/sysv/linux/x86_64/x32/librt.abilist  |   1 -
>  73 files changed, 222 insertions(+), 93 deletions(-)
> 
> diff --git a/nptl/pthread_getschedparam.c b/nptl/pthread_getschedparam.c
> index a69ed8d8c3..94316cf897 100644
> --- a/nptl/pthread_getschedparam.c
> +++ b/nptl/pthread_getschedparam.c
> @@ -70,4 +70,5 @@ __pthread_getschedparam (pthread_t threadid, int *policy,
>  
>    return result;
>  }
> +libc_hidden_def (__pthread_getschedparam)
>  strong_alias (__pthread_getschedparam, pthread_getschedparam)

Ok.

> diff --git a/rt/Makefile b/rt/Makefile
> index 329db09c32..ada87c845e 100644
> --- a/rt/Makefile
> +++ b/rt/Makefile
> @@ -32,12 +32,9 @@ librt-routines = \
>    aio_cancel \
>    aio_error \
>    aio_fsync \
> -  aio_misc \
> -  aio_notify \
>    aio_read \
>    aio_read64 \
>    aio_return \
> -  aio_sigqueue \
>    aio_suspend \
>    aio_write \
>    aio_write64 \
> @@ -60,6 +57,9 @@ librt-routines = \
>    timer_settime \
>  
>  $(librt-routines-var) += \
> +  aio_misc \
> +  aio_notify \
> +  aio_sigqueue \
>  
>  tests := tst-shm tst-timer tst-timer2 \
>  	 tst-aio tst-aio64 tst-aio2 tst-aio3 tst-aio4 tst-aio5 tst-aio6 \

Ok.

> diff --git a/rt/Versions b/rt/Versions
> index 26c6d1ac63..2e991a9d93 100644
> --- a/rt/Versions
> +++ b/rt/Versions
> @@ -1,12 +1,33 @@
>  libc {
> +  GLIBC_2.1 {
> +%if PTHREAD_IN_LIBC
> +    aio_init;
> +%endif
> +  }
>    GLIBC_2.2 {
>      shm_open;
>      shm_unlink;
>    }
>    GLIBC_2.34 {
> +%if PTHREAD_IN_LIBC
> +    aio_init;
> +%endif
>      shm_open;
>      shm_unlink;
>    }
> +%if PTHREAD_IN_LIBC
> +  GLIBC_PRIVATE {
> +    __aio_enqueue_request;
> +    __aio_find_req;
> +    __aio_find_req_fd;
> +    __aio_free_request;
> +    __aio_notify;
> +    __aio_notify_only;
> +    __aio_remove_request;
> +    __aio_requests_mutex;
> +    __aio_sigqueue;
> +  }
> +%endif
>  }
>  librt {
>    GLIBC_2.1 {
> @@ -16,7 +37,9 @@ librt {
>      aio_error64;
>      aio_fsync;
>      aio_fsync64;
> +%if !PTHREAD_IN_LIBC
>      aio_init;
> +%endif
>      aio_read;
>      aio_read64;
>      aio_return;

Ok.

> diff --git a/rt/aio_misc.c b/rt/aio_misc.c
> index b95f07d9d3..d9be8ac33d 100644
> --- a/rt/aio_misc.c
> +++ b/rt/aio_misc.c
> @@ -21,7 +21,7 @@
>  #include <assert.h>
>  #include <errno.h>
>  #include <limits.h>
> -#include <pthread.h>
> +#include <pthreadP.h>
>  #include <stdlib.h>
>  #include <unistd.h>
>  #include <sys/param.h>
> @@ -29,6 +29,20 @@
>  #include <sys/time.h>
>  #include <aio_misc.h>
>  
> +#if !PTHREAD_IN_LIBC
> +/* The available function names differ outside of libc.  (In libc, we
> +   need to use hidden aliases to avoid the PLT.)  */
> +# define __pread __libc_pread
> +# define __pthread_attr_destroy pthread_attr_destroy
> +# define __pthread_attr_init pthread_attr_init
> +# define __pthread_attr_setdetachstate pthread_attr_setdetachstate
> +# define __pthread_cond_signal pthread_cond_signal
> +# define __pthread_cond_timedwait pthread_cond_timedwait
> +# define __pthread_getschedparam pthread_getschedparam
> +# define __pthread_setschedparam pthread_setschedparam
> +# define __pwrite __libc_pwrite
> +#endif
> +
>  #ifndef aio_create_helper_thread
>  # define aio_create_helper_thread __aio_create_helper_thread
>  

Ok.

> @@ -38,12 +52,12 @@ __aio_create_helper_thread (pthread_t *threadp, void *(*tf) (void *), void *arg)
>    pthread_attr_t attr;
>  
>    /* Make sure the thread is created detached.  */
> -  pthread_attr_init (&attr);
> -  pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
> +  __pthread_attr_init (&attr);
> +  __pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
>  
> -  int ret = pthread_create (threadp, &attr, tf, arg);
> +  int ret = __pthread_create (threadp, &attr, tf, arg);
>  
> -  (void) pthread_attr_destroy (&attr);
> +  (void) __pthread_attr_destroy (&attr);
>    return ret;
>  }
>  #endif
> @@ -271,7 +285,7 @@ void
>  __aio_init (const struct aioinit *init)
>  {
>    /* Get the mutex.  */
> -  pthread_mutex_lock (&__aio_requests_mutex);
> +  __pthread_mutex_lock (&__aio_requests_mutex);
>  
>    /* Only allow writing new values if the table is not yet allocated.  */
>    if (pool == NULL)
> @@ -287,9 +301,8 @@ __aio_init (const struct aioinit *init)
>      optim.aio_idle_time = init->aio_idle_time;
>  
>    /* Release the mutex.  */
> -  pthread_mutex_unlock (&__aio_requests_mutex);
> +  __pthread_mutex_unlock (&__aio_requests_mutex);
>  }
> -weak_alias (__aio_init, aio_init)
>  
>  
>  /* The main function of the async I/O handling.  It enqueues requests


Ok.

> @@ -319,11 +332,11 @@ __aio_enqueue_request (aiocb_union *aiocbp, int operation)
>      }
>  
>    /* Compute priority for this request.  */
> -  pthread_getschedparam (pthread_self (), &policy, &param);
> +  __pthread_getschedparam (__pthread_self (), &policy, &param);
>    prio = param.sched_priority - aiocbp->aiocb.aio_reqprio;
>  
>    /* Get the mutex.  */
> -  pthread_mutex_lock (&__aio_requests_mutex);
> +  __pthread_mutex_lock (&__aio_requests_mutex);
>  
>    last = NULL;
>    runp = requests;
> @@ -340,7 +353,7 @@ __aio_enqueue_request (aiocb_union *aiocbp, int operation)
>    newp = get_elem ();
>    if (newp == NULL)
>      {
> -      pthread_mutex_unlock (&__aio_requests_mutex);
> +      __pthread_mutex_unlock (&__aio_requests_mutex);
>        __set_errno (EAGAIN);
>        return NULL;
>      }
> @@ -454,7 +467,7 @@ __aio_enqueue_request (aiocb_union *aiocbp, int operation)
>        /* If there is a thread waiting for work, then let it know that we
>  	 have just given it something to do. */
>        if (idle_thread_count > 0)
> -	pthread_cond_signal (&__aio_new_request_notification);
> +	__pthread_cond_signal (&__aio_new_request_notification);
>      }
>  
>    if (result == 0)
> @@ -469,7 +482,7 @@ __aio_enqueue_request (aiocb_union *aiocbp, int operation)
>      }
>  
>    /* Release the mutex.  */
> -  pthread_mutex_unlock (&__aio_requests_mutex);
> +  __pthread_mutex_unlock (&__aio_requests_mutex);
>  
>    return newp;
>  }


Ok.

> @@ -478,14 +491,14 @@ __aio_enqueue_request (aiocb_union *aiocbp, int operation)
>  static void *
>  handle_fildes_io (void *arg)
>  {
> -  pthread_t self = pthread_self ();
> +  pthread_t self = __pthread_self ();
>    struct sched_param param;
>    struct requestlist *runp = (struct requestlist *) arg;
>    aiocb_union *aiocbp;
>    int policy;
>    int fildes;
>  
> -  pthread_getschedparam (self, &policy, &param);
> +  __pthread_getschedparam (self, &policy, &param);
>  
>    do
>      {
> @@ -495,7 +508,7 @@ handle_fildes_io (void *arg)
>  	 "get work off the work queue" part of this loop, which is near the
>  	 end. */
>        if (runp == NULL)
> -	pthread_mutex_lock (&__aio_requests_mutex);
> +	__pthread_mutex_lock (&__aio_requests_mutex);
>        else
>  	{
>  	  /* Hopefully this request is marked as running.  */
> @@ -511,7 +524,7 @@ handle_fildes_io (void *arg)
>  	    {
>  	      param.sched_priority = aiocbp->aiocb.__abs_prio;
>  	      policy = aiocbp->aiocb.__policy;
> -	      pthread_setschedparam (self, policy, &param);
> +	      __pthread_setschedparam (self, policy, &param);
>  	    }
>  
>  	  /* Process request pointed to by RUNP.  We must not be disturbed
> @@ -527,11 +540,11 @@ handle_fildes_io (void *arg)
>  						 aiocbp->aiocb64.aio_offset));
>  	      else
>  		aiocbp->aiocb.__return_value =
> -		  TEMP_FAILURE_RETRY (__libc_pread (fildes,
> -						    (void *)
> -						    aiocbp->aiocb.aio_buf,
> -						    aiocbp->aiocb.aio_nbytes,
> -						    aiocbp->aiocb.aio_offset));
> +		  TEMP_FAILURE_RETRY (__pread (fildes,
> +					       (void *)
> +					       aiocbp->aiocb.aio_buf,
> +					       aiocbp->aiocb.aio_nbytes,
> +					       aiocbp->aiocb.aio_offset));
>  
>  	      if (aiocbp->aiocb.__return_value == -1 && errno == ESPIPE)
>  		/* The Linux kernel is different from others.  It returns

Ok.

> @@ -554,10 +567,10 @@ handle_fildes_io (void *arg)
>  						  aiocbp->aiocb64.aio_offset));
>  	      else
>  		aiocbp->aiocb.__return_value =
> -		  TEMP_FAILURE_RETRY (__libc_pwrite (fildes, (const void *)
> -					      aiocbp->aiocb.aio_buf,
> -					      aiocbp->aiocb.aio_nbytes,
> -					      aiocbp->aiocb.aio_offset));
> +		  TEMP_FAILURE_RETRY (__pwrite (fildes, (const void *)
> +						aiocbp->aiocb.aio_buf,
> +						aiocbp->aiocb.aio_nbytes,
> +						aiocbp->aiocb.aio_offset));
>  
>  	      if (aiocbp->aiocb.__return_value == -1 && errno == ESPIPE)
>  		/* The Linux kernel is different from others.  It returns
> @@ -583,7 +596,7 @@ handle_fildes_io (void *arg)
>  	    }
>  
>  	  /* Get the mutex.  */
> -	  pthread_mutex_lock (&__aio_requests_mutex);
> +	  __pthread_mutex_lock (&__aio_requests_mutex);
>  
>  	  if (aiocbp->aiocb.__return_value == -1)
>  	    aiocbp->aiocb.__error_code = errno;
> @@ -626,9 +639,9 @@ handle_fildes_io (void *arg)
>  	      wakeup_time.tv_nsec -= 1000000000;
>  	      ++wakeup_time.tv_sec;
>  	    }
> -	  pthread_cond_timedwait (&__aio_new_request_notification,
> -				  &__aio_requests_mutex,
> -				  &wakeup_time);
> +	  __pthread_cond_timedwait (&__aio_new_request_notification,
> +				    &__aio_requests_mutex,
> +				    &wakeup_time);
>  	  --idle_thread_count;
>  	  runp = runlist;
>  	}
> @@ -651,20 +664,21 @@ handle_fildes_io (void *arg)
>  		 up for these other work elements; otherwise, we should try
>  		 to create a new thread. */
>  	      if (idle_thread_count > 0)
> -		pthread_cond_signal (&__aio_new_request_notification);
> +		__pthread_cond_signal (&__aio_new_request_notification);
>  	      else if (nthreads < optim.aio_threads)
>  		{
>  		  pthread_t thid;
>  		  pthread_attr_t attr;
>  
>  		  /* Make sure the thread is created detached.  */
> -		  pthread_attr_init (&attr);
> -		  pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
> +		  __pthread_attr_init (&attr);
> +		  __pthread_attr_setdetachstate (&attr,
> +						 PTHREAD_CREATE_DETACHED);
>  
>  		  /* Now try to start a thread. If we fail, no big deal,
>  		     because we know that there is at least one thread (us)
>  		     that is working on AIO operations. */
> -		  if (pthread_create (&thid, &attr, handle_fildes_io, NULL)
> +		  if (__pthread_create (&thid, &attr, handle_fildes_io, NULL)
>  		      == 0)
>  		    ++nthreads;
>  		}
> @@ -672,7 +686,7 @@ handle_fildes_io (void *arg)
>  	}
>  
>        /* Release the mutex.  */
> -      pthread_mutex_unlock (&__aio_requests_mutex);
> +      __pthread_mutex_unlock (&__aio_requests_mutex);
>      }
>    while (runp != NULL);
>  
> @@ -719,3 +733,26 @@ add_request_to_runlist (struct requestlist *newrequest)
>        runp->next_run = newrequest;
>      }
>  }
> +

Ok.

> +#if PTHREAD_IN_LIBC
> +libc_hidden_data_def (__aio_requests_mutex)
> +libc_hidden_def (__aio_enqueue_request)
> +libc_hidden_def (__aio_find_req)
> +libc_hidden_def (__aio_find_req_fd)
> +libc_hidden_def (__aio_free_request)
> +libc_hidden_def (__aio_remove_request)
> +
> +versioned_symbol (libc, __aio_init, aio_init, GLIBC_2_34);
> +# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_34)
> +compat_symbol (librt, __aio_init, aio_init, GLIBC_2_1);
> +# endif
> +
> +#else /* !PTHREAD_IN_LIBC */
> +librt_hidden_data_def (__aio_requests_mutex)
> +librt_hidden_def (__aio_enqueue_request)
> +librt_hidden_def (__aio_find_req)
> +librt_hidden_def (__aio_find_req_fd)
> +librt_hidden_def (__aio_free_request)
> +librt_hidden_def (__aio_remove_request)
> +weak_alias (__aio_init, aio_init)
> +#endif /* !PTHREAD_IN_LIBC */

Ok.

> diff --git a/rt/aio_notify.c b/rt/aio_notify.c
> index a8d61503d8..432000e34b 100644
> --- a/rt/aio_notify.c
> +++ b/rt/aio_notify.c
> @@ -18,12 +18,17 @@
>     <https://www.gnu.org/licenses/>.  */
>  
>  #include <errno.h>
> -#include <pthread.h>
> +#include <pthreadP.h>
>  #include <stdlib.h>
>  #include <unistd.h>
>  #include <aio_misc.h>
>  #include <signal.h>
>  
> +#if !PTHREAD_IN_LIBC
> +# define __pthread_attr_init pthread_attr_init
> +# define __pthread_attr_setdetachstate pthread_attr_setdetachstate
> +#endif
> +
>  #ifndef aio_start_notify_thread
>  # define aio_start_notify_thread() do { } while (0)
>  #endif
> @@ -62,8 +67,8 @@ __aio_notify_only (struct sigevent *sigev)
>        pattr = (pthread_attr_t *) sigev->sigev_notify_attributes;
>        if (pattr == NULL)
>  	{
> -	  pthread_attr_init (&attr);
> -	  pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
> +	  __pthread_attr_init (&attr);
> +	  __pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
>  	  pattr = &attr;
>  	}
>  
> @@ -81,7 +86,7 @@ __aio_notify_only (struct sigevent *sigev)
>  	{
>  	  nf->func = sigev->sigev_notify_function;
>  	  nf->value = sigev->sigev_value;
> -	  if (pthread_create (&tid, pattr, notify_func_wrapper, nf) < 0)
> +	  if (__pthread_create (&tid, pattr, notify_func_wrapper, nf) < 0)
>  	    {
>  	      free (nf);
>  	      result = -1;
> @@ -155,3 +160,11 @@ __aio_notify (struct requestlist *req)
>        waitlist = next;
>      }
>  }
> +
> +#if PTHREAD_IN_LIBC
> +libc_hidden_def (__aio_notify)
> +libc_hidden_def (__aio_notify_only)
> +#else
> +librt_hidden_def (__aio_notify)
> +librt_hidden_def (__aio_notify_only)
> +#endif

Ok.

> diff --git a/rt/aio_sigqueue.c b/rt/aio_sigqueue.c
> index 2f7da00ad3..0ad95ae04c 100644
> --- a/rt/aio_sigqueue.c
> +++ b/rt/aio_sigqueue.c
> @@ -28,5 +28,5 @@ __aio_sigqueue (int sig, const union sigval val, pid_t caller_pid)
>    __set_errno (ENOSYS);
>    return -1;
>  }
> -
> +librt_hidden_def (__aio_sigqueue)
>  stub_warning (__aio_sigqueue)

Ok.

> diff --git a/sysdeps/generic/aio_misc.h b/sysdeps/generic/aio_misc.h
> index e23524cffe..d9bff36e50 100644
> --- a/sysdeps/generic/aio_misc.h
> +++ b/sysdeps/generic/aio_misc.h
> @@ -87,36 +87,55 @@ struct requestlist
>  
>  
>  /* Lock for global I/O list of requests.  */
> -extern pthread_mutex_t __aio_requests_mutex attribute_hidden;
> +extern pthread_mutex_t __aio_requests_mutex;
>  
>  
>  /* Enqueue request.  */
>  extern struct requestlist *__aio_enqueue_request (aiocb_union *aiocbp,
> -						  int operation)
> -  attribute_hidden;
> +						  int operation);
>  
>  /* Find request entry for given AIO control block.  */
> -extern struct requestlist *__aio_find_req (aiocb_union *elem) attribute_hidden;
> +extern struct requestlist *__aio_find_req (aiocb_union *elem);
>  
>  /* Find request entry for given file descriptor.  */
> -extern struct requestlist *__aio_find_req_fd (int fildes) attribute_hidden;
> +extern struct requestlist *__aio_find_req_fd (int fildes);
>  
>  /* Remove request from the list.  */
>  extern void __aio_remove_request (struct requestlist *last,
> -				  struct requestlist *req, int all)
> -     attribute_hidden;
> +				  struct requestlist *req, int all);
>  
>  /* Release the entry for the request.  */
> -extern void __aio_free_request (struct requestlist *req) attribute_hidden;
> +extern void __aio_free_request (struct requestlist *req);
>  
>  /* Notify initiator of request and tell this everybody listening.  */
> -extern void __aio_notify (struct requestlist *req) attribute_hidden;
> +extern void __aio_notify (struct requestlist *req);
>  
>  /* Notify initiator of request.  */
> -extern int __aio_notify_only (struct sigevent *sigev) attribute_hidden;
> +extern int __aio_notify_only (struct sigevent *sigev);
>  
>  /* Send the signal.  */
> -extern int __aio_sigqueue (int sig, const union sigval val, pid_t caller_pid)
> -     attribute_hidden;
> +extern int __aio_sigqueue (int sig, const union sigval val, pid_t caller_pid);
> +
> +#if PTHREAD_IN_LIBC
> +libc_hidden_proto (__aio_enqueue_request)
> +libc_hidden_proto (__aio_find_req)
> +libc_hidden_proto (__aio_find_req_fd)
> +libc_hidden_proto (__aio_free_request)
> +libc_hidden_proto (__aio_notify)
> +libc_hidden_proto (__aio_notify_only)
> +libc_hidden_proto (__aio_remove_request)
> +libc_hidden_proto (__aio_requests_mutex)
> +libc_hidden_proto (__aio_sigqueue)
> +#else
> +librt_hidden_proto (__aio_enqueue_request)
> +librt_hidden_proto (__aio_find_req)
> +librt_hidden_proto (__aio_find_req_fd)
> +librt_hidden_proto (__aio_free_request)
> +librt_hidden_proto (__aio_notify)
> +librt_hidden_proto (__aio_notify_only)
> +librt_hidden_proto (__aio_remove_request)
> +librt_hidden_proto (__aio_requests_mutex)
> +librt_hidden_proto (__aio_sigqueue)
> +#endif
>  
>  #endif /* aio_misc.h */
> diff --git a/sysdeps/nptl/aio_misc.h b/sysdeps/nptl/aio_misc.h
> index a5c439fab5..d85f9c2fef 100644
> --- a/sysdeps/nptl/aio_misc.h
> +++ b/sysdeps/nptl/aio_misc.h
> @@ -39,7 +39,7 @@
>  									      \
>      if (oldval != 0)							      \
>        {									      \
> -	pthread_mutex_unlock (&__aio_requests_mutex);			      \
> +	__pthread_mutex_unlock (&__aio_requests_mutex);			      \
>  									      \
>  	int status;							      \
>  	do								      \
> @@ -67,7 +67,7 @@
>  	else								      \
>  	  assert (status == 0 || status == EAGAIN);			      \
>  									      \
> -	pthread_mutex_lock (&__aio_requests_mutex);			      \
> +	__pthread_mutex_lock (&__aio_requests_mutex);			      \
>        }									      \
>    } while (0)
>  

Ok.

> diff --git a/sysdeps/nptl/pthreadP.h b/sysdeps/nptl/pthreadP.h
> index ca96ff073b..374657a2fd 100644
> --- a/sysdeps/nptl/pthreadP.h
> +++ b/sysdeps/nptl/pthreadP.h
> @@ -337,6 +337,7 @@ libc_hidden_proto (__pthread_get_minstack)
>  /* Namespace save aliases.  */
>  extern int __pthread_getschedparam (pthread_t thread_id, int *policy,
>  				    struct sched_param *param);
> +libc_hidden_proto (__pthread_getschedparam)
>  extern int __pthread_setschedparam (pthread_t thread_id, int policy,
>  				    const struct sched_param *param);
>  extern int __pthread_mutex_init (pthread_mutex_t *__mutex,

Ok.

> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index 42e240e284..1bc4ffccce 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -589,6 +589,7 @@ GLIBC_2.17 addseverity F
>  GLIBC_2.17 adjtime F
>  GLIBC_2.17 adjtimex F
>  GLIBC_2.17 advance F
> +GLIBC_2.17 aio_init F
>  GLIBC_2.17 alarm F
>  GLIBC_2.17 aligned_alloc F
>  GLIBC_2.17 alphasort F
> @@ -2348,6 +2349,7 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
>  GLIBC_2.34 call_once F
>  GLIBC_2.34 cnd_broadcast F
>  GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> index c41e0e675b..66dc3e4457 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> @@ -5,7 +5,6 @@ GLIBC_2.17 aio_error F
>  GLIBC_2.17 aio_error64 F
>  GLIBC_2.17 aio_fsync F
>  GLIBC_2.17 aio_fsync64 F
> -GLIBC_2.17 aio_init F
>  GLIBC_2.17 aio_read F
>  GLIBC_2.17 aio_read64 F
>  GLIBC_2.17 aio_return F

Ok.

> diff --git a/sysdeps/unix/sysv/linux/aio_misc.h b/sysdeps/unix/sysv/linux/aio_misc.h
> index a661cee203..79907544dc 100644
> --- a/sysdeps/unix/sysv/linux/aio_misc.h
> +++ b/sysdeps/unix/sysv/linux/aio_misc.h
> @@ -42,11 +42,11 @@ __aio_create_helper_thread (pthread_t *threadp, void *(*tf) (void *),
>    pthread_attr_t attr;
>  
>    /* Make sure the thread is created detached.  */
> -  pthread_attr_init (&attr);
> -  pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
> +  __pthread_attr_init (&attr);
> +  __pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
>  
>    /* The helper thread needs only very little resources.  */
> -  (void) pthread_attr_setstacksize (&attr, __pthread_get_minstack (&attr));
> +  (void) __pthread_attr_setstacksize (&attr, __pthread_get_minstack (&attr));

I think there is no need the extra cast here.

>  
>    /* Block all signals in the helper thread.  To do this thoroughly we
>       temporarily have to block all signals here.  */
> @@ -56,13 +56,13 @@ __aio_create_helper_thread (pthread_t *threadp, void *(*tf) (void *),
>    INTERNAL_SYSCALL_CALL (rt_sigprocmask, SIG_SETMASK, &ss, &oss,
>  			 __NSIG_BYTES);
>  
> -  int ret = pthread_create (threadp, &attr, tf, arg);
> +  int ret = __pthread_create (threadp, &attr, tf, arg);
>  
>    /* Restore the signal mask.  */
>    INTERNAL_SYSCALL_CALL (rt_sigprocmask, SIG_SETMASK, &oss, NULL,
>  			 __NSIG_BYTES);
>  
> -  (void) pthread_attr_destroy (&attr);
> +  (void) __pthread_attr_destroy (&attr);
>    return ret;
>  }
>  #endif

Ok.

> diff --git a/sysdeps/unix/sysv/linux/aio_sigqueue.c b/sysdeps/unix/sysv/linux/aio_sigqueue.c
> index 398d7a2f1f..bd0da6e763 100644
> --- a/sysdeps/unix/sysv/linux/aio_sigqueue.c
> +++ b/sysdeps/unix/sysv/linux/aio_sigqueue.c
> @@ -39,8 +39,9 @@ __aio_sigqueue (int sig, const union sigval val, pid_t caller_pid)
>    info.si_signo = sig;
>    info.si_code = SI_ASYNCIO;
>    info.si_pid = caller_pid;
> -  info.si_uid = getuid ();
> +  info.si_uid = __getuid ();
>    info.si_value = val;
>  
>    return INLINE_SYSCALL (rt_sigqueueinfo, 3, info.si_pid, sig, &info);
>  }
> +libc_hidden_def (__aio_sigqueue)

Ok.

> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index fad54555dc..5f3bebef8c 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -1502,6 +1502,7 @@ GLIBC_2.1 _sys_siglist D 0x200
>  GLIBC_2.1 addseverity F
>  GLIBC_2.1 adjtime F
>  GLIBC_2.1 adjtimex F
> +GLIBC_2.1 aio_init F
>  GLIBC_2.1 alphasort64 F
>  GLIBC_2.1 argp_err_exit_status D 0x4
>  GLIBC_2.1 argp_error F
> @@ -2441,6 +2442,7 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
>  GLIBC_2.34 call_once F
>  GLIBC_2.34 cnd_broadcast F
>  GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
> index c4985067f7..94f5ca8b6f 100644
> --- a/sysdeps/unix/sysv/linux/alpha/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.1 aio_error F
>  GLIBC_2.1 aio_error64 F
>  GLIBC_2.1 aio_fsync F
>  GLIBC_2.1 aio_fsync64 F
> -GLIBC_2.1 aio_init F
>  GLIBC_2.1 aio_read F
>  GLIBC_2.1 aio_read64 F
>  GLIBC_2.1 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index 907716ec39..24d3a3673c 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -550,6 +550,7 @@ GLIBC_2.32 addmntent F
>  GLIBC_2.32 addseverity F
>  GLIBC_2.32 adjtime F
>  GLIBC_2.32 adjtimex F
> +GLIBC_2.32 aio_init F
>  GLIBC_2.32 alarm F
>  GLIBC_2.32 aligned_alloc F
>  GLIBC_2.32 alphasort F
> @@ -2107,6 +2108,7 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
>  GLIBC_2.34 call_once F
>  GLIBC_2.34 cnd_broadcast F
>  GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
> index 7ee0b6d324..e53772e428 100644
> --- a/sysdeps/unix/sysv/linux/arc/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/librt.abilist
> @@ -5,7 +5,6 @@ GLIBC_2.32 aio_error F
>  GLIBC_2.32 aio_error64 F
>  GLIBC_2.32 aio_fsync F
>  GLIBC_2.32 aio_fsync64 F
> -GLIBC_2.32 aio_init F
>  GLIBC_2.32 aio_read F
>  GLIBC_2.32 aio_read64 F
>  GLIBC_2.32 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index 50f987a429..582aa645c0 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -278,6 +278,7 @@ GLIBC_2.34 __wait3_time64 F
>  GLIBC_2.34 __wait4_time64 F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
>  GLIBC_2.34 call_once F
>  GLIBC_2.34 cnd_broadcast F
>  GLIBC_2.34 cnd_destroy F
> @@ -981,6 +982,7 @@ GLIBC_2.4 addseverity F
>  GLIBC_2.4 adjtime F
>  GLIBC_2.4 adjtimex F
>  GLIBC_2.4 advance F
> +GLIBC_2.4 aio_init F
>  GLIBC_2.4 alarm F
>  GLIBC_2.4 alphasort F
>  GLIBC_2.4 alphasort64 F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> index 278da67f77..3aa50aa219 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> @@ -9,7 +9,6 @@ GLIBC_2.4 aio_error F
>  GLIBC_2.4 aio_error64 F
>  GLIBC_2.4 aio_fsync F
>  GLIBC_2.4 aio_fsync64 F
> -GLIBC_2.4 aio_init F
>  GLIBC_2.4 aio_read F
>  GLIBC_2.4 aio_read64 F
>  GLIBC_2.4 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index bf9038af84..400eae9ab0 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -275,6 +275,7 @@ GLIBC_2.34 __wait3_time64 F
>  GLIBC_2.34 __wait4_time64 F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
>  GLIBC_2.34 call_once F
>  GLIBC_2.34 cnd_broadcast F
>  GLIBC_2.34 cnd_destroy F
> @@ -978,6 +979,7 @@ GLIBC_2.4 addseverity F
>  GLIBC_2.4 adjtime F
>  GLIBC_2.4 adjtimex F
>  GLIBC_2.4 advance F
> +GLIBC_2.4 aio_init F
>  GLIBC_2.4 alarm F
>  GLIBC_2.4 alphasort F
>  GLIBC_2.4 alphasort64 F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> index 278da67f77..3aa50aa219 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> @@ -9,7 +9,6 @@ GLIBC_2.4 aio_error F
>  GLIBC_2.4 aio_error64 F
>  GLIBC_2.4 aio_fsync F
>  GLIBC_2.4 aio_fsync64 F
> -GLIBC_2.4 aio_init F
>  GLIBC_2.4 aio_read F
>  GLIBC_2.4 aio_read64 F
>  GLIBC_2.4 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index afb91f6f43..4cd189d5db 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -564,6 +564,7 @@ GLIBC_2.29 addmntent F
>  GLIBC_2.29 addseverity F
>  GLIBC_2.29 adjtime F
>  GLIBC_2.29 adjtimex F
> +GLIBC_2.29 aio_init F
>  GLIBC_2.29 alarm F
>  GLIBC_2.29 aligned_alloc F
>  GLIBC_2.29 alphasort F
> @@ -2367,6 +2368,7 @@ GLIBC_2.34 __wait3_time64 F
>  GLIBC_2.34 __wait4_time64 F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
>  GLIBC_2.34 call_once F
>  GLIBC_2.34 cnd_broadcast F
>  GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
> index 60400954a3..640230cfc0 100644
> --- a/sysdeps/unix/sysv/linux/csky/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/librt.abilist
> @@ -5,7 +5,6 @@ GLIBC_2.29 aio_error F
>  GLIBC_2.29 aio_error64 F
>  GLIBC_2.29 aio_fsync F
>  GLIBC_2.29 aio_fsync64 F
> -GLIBC_2.29 aio_init F
>  GLIBC_2.29 aio_read F
>  GLIBC_2.29 aio_read64 F
>  GLIBC_2.29 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index 125f8a269a..ede6bee0cd 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -3,6 +3,7 @@ GLIBC_2.0 dlclose F
>  GLIBC_2.0 dlerror F
>  GLIBC_2.0 dlopen F
>  GLIBC_2.0 dlsym F
> +GLIBC_2.1 aio_init F
>  GLIBC_2.1 dlopen F
>  GLIBC_2.1 dlvsym F
>  GLIBC_2.10 __cxa_at_quick_exit F
> @@ -2321,6 +2322,7 @@ GLIBC_2.34 __wait3_time64 F
>  GLIBC_2.34 __wait4_time64 F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
>  GLIBC_2.34 call_once F
>  GLIBC_2.34 cnd_broadcast F
>  GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
> index 6ac4f0597e..0114c42067 100644
> --- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.1 aio_error F
>  GLIBC_2.1 aio_error64 F
>  GLIBC_2.1 aio_fsync F
>  GLIBC_2.1 aio_fsync64 F
> -GLIBC_2.1 aio_init F
>  GLIBC_2.1 aio_read F
>  GLIBC_2.1 aio_read64 F
>  GLIBC_2.1 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index 517753bdd1..17063aaaf9 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -1475,6 +1475,7 @@ GLIBC_2.1 _sys_errlist D 0x1f4
>  GLIBC_2.1 _sys_nerr D 0x4
>  GLIBC_2.1 _sys_siglist D 0x100
>  GLIBC_2.1 addseverity F
> +GLIBC_2.1 aio_init F
>  GLIBC_2.1 alphasort64 F
>  GLIBC_2.1 argp_err_exit_status D 0x4
>  GLIBC_2.1 argp_error F
> @@ -2505,6 +2506,7 @@ GLIBC_2.34 __wait3_time64 F
>  GLIBC_2.34 __wait4_time64 F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
>  GLIBC_2.34 call_once F
>  GLIBC_2.34 cnd_broadcast F
>  GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
> index 6ac4f0597e..0114c42067 100644
> --- a/sysdeps/unix/sysv/linux/i386/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.1 aio_error F
>  GLIBC_2.1 aio_error64 F
>  GLIBC_2.1 aio_fsync F
>  GLIBC_2.1 aio_fsync64 F
> -GLIBC_2.1 aio_init F
>  GLIBC_2.1 aio_read F
>  GLIBC_2.1 aio_read64 F
>  GLIBC_2.1 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index 23d0928360..4991b80dd1 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -3,6 +3,7 @@ GLIBC_2.0 dlclose F
>  GLIBC_2.0 dlerror F
>  GLIBC_2.0 dlopen F
>  GLIBC_2.0 dlsym F
> +GLIBC_2.1 aio_init F
>  GLIBC_2.1 dlopen F
>  GLIBC_2.1 dlvsym F
>  GLIBC_2.10 __cxa_at_quick_exit F
> @@ -2281,6 +2282,7 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
>  GLIBC_2.34 call_once F
>  GLIBC_2.34 cnd_broadcast F
>  GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
> index fa7f54dd55..2c97c02f21 100644
> --- a/sysdeps/unix/sysv/linux/ia64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.1 aio_error F
>  GLIBC_2.1 aio_error64 F
>  GLIBC_2.1 aio_fsync F
>  GLIBC_2.1 aio_fsync64 F
> -GLIBC_2.1 aio_init F
>  GLIBC_2.1 aio_read F
>  GLIBC_2.1 aio_read64 F
>  GLIBC_2.1 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index dd5fb50b18..c1d7edf1f9 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -279,6 +279,7 @@ GLIBC_2.34 __wait3_time64 F
>  GLIBC_2.34 __wait4_time64 F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
>  GLIBC_2.34 call_once F
>  GLIBC_2.34 cnd_broadcast F
>  GLIBC_2.34 cnd_destroy F
> @@ -969,6 +970,7 @@ GLIBC_2.4 addseverity F
>  GLIBC_2.4 adjtime F
>  GLIBC_2.4 adjtimex F
>  GLIBC_2.4 advance F
> +GLIBC_2.4 aio_init F
>  GLIBC_2.4 alarm F
>  GLIBC_2.4 alphasort F
>  GLIBC_2.4 alphasort64 F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> index 278da67f77..3aa50aa219 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> @@ -9,7 +9,6 @@ GLIBC_2.4 aio_error F
>  GLIBC_2.4 aio_error64 F
>  GLIBC_2.4 aio_fsync F
>  GLIBC_2.4 aio_fsync64 F
> -GLIBC_2.4 aio_init F
>  GLIBC_2.4 aio_read F
>  GLIBC_2.4 aio_read64 F
>  GLIBC_2.4 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index cb1d553361..725280a9db 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -1473,6 +1473,7 @@ GLIBC_2.1 _sys_errlist D 0x1f4
>  GLIBC_2.1 _sys_nerr D 0x4
>  GLIBC_2.1 _sys_siglist D 0x100
>  GLIBC_2.1 addseverity F
> +GLIBC_2.1 aio_init F
>  GLIBC_2.1 alphasort64 F
>  GLIBC_2.1 argp_err_exit_status D 0x4
>  GLIBC_2.1 argp_error F
> @@ -2448,6 +2449,7 @@ GLIBC_2.34 __wait3_time64 F
>  GLIBC_2.34 __wait4_time64 F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
>  GLIBC_2.34 call_once F
>  GLIBC_2.34 cnd_broadcast F
>  GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> index 6ac4f0597e..0114c42067 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.1 aio_error F
>  GLIBC_2.1 aio_error64 F
>  GLIBC_2.1 aio_fsync F
>  GLIBC_2.1 aio_fsync64 F
> -GLIBC_2.1 aio_init F
>  GLIBC_2.1 aio_read F
>  GLIBC_2.1 aio_read64 F
>  GLIBC_2.1 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index 6a20a6fdf2..fe9a9c2f09 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -591,6 +591,7 @@ GLIBC_2.18 addseverity F
>  GLIBC_2.18 adjtime F
>  GLIBC_2.18 adjtimex F
>  GLIBC_2.18 advance F
> +GLIBC_2.18 aio_init F
>  GLIBC_2.18 alarm F
>  GLIBC_2.18 aligned_alloc F
>  GLIBC_2.18 alphasort F
> @@ -2418,6 +2419,7 @@ GLIBC_2.34 __wait3_time64 F
>  GLIBC_2.34 __wait4_time64 F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
>  GLIBC_2.34 call_once F
>  GLIBC_2.34 cnd_broadcast F
>  GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> index a14deaabdb..679050b4b7 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> @@ -5,7 +5,6 @@ GLIBC_2.18 aio_error F
>  GLIBC_2.18 aio_error64 F
>  GLIBC_2.18 aio_fsync F
>  GLIBC_2.18 aio_fsync64 F
> -GLIBC_2.18 aio_init F
>  GLIBC_2.18 aio_read F
>  GLIBC_2.18 aio_read64 F
>  GLIBC_2.18 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index 4c21cbb64d..8db8d27e29 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -591,6 +591,7 @@ GLIBC_2.18 addseverity F
>  GLIBC_2.18 adjtime F
>  GLIBC_2.18 adjtimex F
>  GLIBC_2.18 advance F
> +GLIBC_2.18 aio_init F
>  GLIBC_2.18 alarm F
>  GLIBC_2.18 aligned_alloc F
>  GLIBC_2.18 alphasort F
> @@ -2415,6 +2416,7 @@ GLIBC_2.34 __wait3_time64 F
>  GLIBC_2.34 __wait4_time64 F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
>  GLIBC_2.34 call_once F
>  GLIBC_2.34 cnd_broadcast F
>  GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> index a14deaabdb..679050b4b7 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> @@ -5,7 +5,6 @@ GLIBC_2.18 aio_error F
>  GLIBC_2.18 aio_error64 F
>  GLIBC_2.18 aio_fsync F
>  GLIBC_2.18 aio_fsync64 F
> -GLIBC_2.18 aio_init F
>  GLIBC_2.18 aio_read F
>  GLIBC_2.18 aio_read64 F
>  GLIBC_2.18 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index f83ba2f780..b6cd21ace7 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -1651,6 +1651,7 @@ GLIBC_2.2 _sys_nerr D 0x4
>  GLIBC_2.2 _sys_siglist D 0x100
>  GLIBC_2.2 _test_and_set F
>  GLIBC_2.2 addseverity F
> +GLIBC_2.2 aio_init F
>  GLIBC_2.2 alphasort64 F
>  GLIBC_2.2 argp_err_exit_status D 0x4
>  GLIBC_2.2 argp_error F
> @@ -2413,6 +2414,7 @@ GLIBC_2.34 __wait3_time64 F
>  GLIBC_2.34 __wait4_time64 F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
>  GLIBC_2.34 call_once F
>  GLIBC_2.34 cnd_broadcast F
>  GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> index 2c212d29d0..617d124234 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.2 aio_error F
>  GLIBC_2.2 aio_error64 F
>  GLIBC_2.2 aio_fsync F
>  GLIBC_2.2 aio_fsync64 F
> -GLIBC_2.2 aio_init F
>  GLIBC_2.2 aio_read F
>  GLIBC_2.2 aio_read64 F
>  GLIBC_2.2 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index 347bbddb94..65d0dcbe04 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -1649,6 +1649,7 @@ GLIBC_2.2 _sys_nerr D 0x4
>  GLIBC_2.2 _sys_siglist D 0x100
>  GLIBC_2.2 _test_and_set F
>  GLIBC_2.2 addseverity F
> +GLIBC_2.2 aio_init F
>  GLIBC_2.2 alphasort64 F
>  GLIBC_2.2 argp_err_exit_status D 0x4
>  GLIBC_2.2 argp_error F
> @@ -2411,6 +2412,7 @@ GLIBC_2.34 __wait3_time64 F
>  GLIBC_2.34 __wait4_time64 F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
>  GLIBC_2.34 call_once F
>  GLIBC_2.34 cnd_broadcast F
>  GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index 26b7ab529b..a2b2e09a63 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -1650,6 +1650,7 @@ GLIBC_2.2 _sys_nerr D 0x4
>  GLIBC_2.2 _sys_siglist D 0x100
>  GLIBC_2.2 _test_and_set F
>  GLIBC_2.2 addseverity F
> +GLIBC_2.2 aio_init F
>  GLIBC_2.2 alphasort64 F
>  GLIBC_2.2 argp_err_exit_status D 0x4
>  GLIBC_2.2 argp_error F
> @@ -2419,6 +2420,7 @@ GLIBC_2.34 __wait3_time64 F
>  GLIBC_2.34 __wait4_time64 F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
>  GLIBC_2.34 call_once F
>  GLIBC_2.34 cnd_broadcast F
>  GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> index 2c212d29d0..617d124234 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.2 aio_error F
>  GLIBC_2.2 aio_error64 F
>  GLIBC_2.2 aio_fsync F
>  GLIBC_2.2 aio_fsync64 F
> -GLIBC_2.2 aio_init F
>  GLIBC_2.2 aio_read F
>  GLIBC_2.2 aio_read64 F
>  GLIBC_2.2 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index e667b0e553..78b96a7119 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -1646,6 +1646,7 @@ GLIBC_2.2 _sys_nerr D 0x4
>  GLIBC_2.2 _sys_siglist D 0x200
>  GLIBC_2.2 _test_and_set F
>  GLIBC_2.2 addseverity F
> +GLIBC_2.2 aio_init F
>  GLIBC_2.2 alphasort64 F
>  GLIBC_2.2 argp_err_exit_status D 0x4
>  GLIBC_2.2 argp_error F
> @@ -2337,6 +2338,7 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
>  GLIBC_2.34 call_once F
>  GLIBC_2.34 cnd_broadcast F
>  GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> index 2c7d661e56..40749a395c 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.2 aio_error F
>  GLIBC_2.2 aio_error64 F
>  GLIBC_2.2 aio_fsync F
>  GLIBC_2.2 aio_fsync64 F
> -GLIBC_2.2 aio_init F
>  GLIBC_2.2 aio_read F
>  GLIBC_2.2 aio_read64 F
>  GLIBC_2.2 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index 89a1cc7da6..98943b6041 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -633,6 +633,7 @@ GLIBC_2.21 addseverity F
>  GLIBC_2.21 adjtime F
>  GLIBC_2.21 adjtimex F
>  GLIBC_2.21 advance F
> +GLIBC_2.21 aio_init F
>  GLIBC_2.21 alarm F
>  GLIBC_2.21 aligned_alloc F
>  GLIBC_2.21 alphasort F
> @@ -2457,6 +2458,7 @@ GLIBC_2.34 __wait3_time64 F
>  GLIBC_2.34 __wait4_time64 F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
>  GLIBC_2.34 call_once F
>  GLIBC_2.34 cnd_broadcast F
>  GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
> index f600881b44..de354a6bb8 100644
> --- a/sysdeps/unix/sysv/linux/nios2/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/librt.abilist
> @@ -5,7 +5,6 @@ GLIBC_2.21 aio_error F
>  GLIBC_2.21 aio_error64 F
>  GLIBC_2.21 aio_fsync F
>  GLIBC_2.21 aio_fsync64 F
> -GLIBC_2.21 aio_init F
>  GLIBC_2.21 aio_read F
>  GLIBC_2.21 aio_read64 F
>  GLIBC_2.21 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index f364c5219e..f5d5c03eb3 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -1480,6 +1480,7 @@ GLIBC_2.1 _sys_errlist D 0x1f4
>  GLIBC_2.1 _sys_nerr D 0x4
>  GLIBC_2.1 _sys_siglist D 0x100
>  GLIBC_2.1 addseverity F
> +GLIBC_2.1 aio_init F
>  GLIBC_2.1 alphasort64 F
>  GLIBC_2.1 argp_err_exit_status D 0x4
>  GLIBC_2.1 argp_error F
> @@ -2475,6 +2476,7 @@ GLIBC_2.34 __wait3_time64 F
>  GLIBC_2.34 __wait4_time64 F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
>  GLIBC_2.34 call_once F
>  GLIBC_2.34 cnd_broadcast F
>  GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> index 6ac4f0597e..0114c42067 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.1 aio_error F
>  GLIBC_2.1 aio_error64 F
>  GLIBC_2.1 aio_fsync F
>  GLIBC_2.1 aio_fsync64 F
> -GLIBC_2.1 aio_init F
>  GLIBC_2.1 aio_read F
>  GLIBC_2.1 aio_read64 F
>  GLIBC_2.1 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index f5bcc78afe..6e99869e4c 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -1480,6 +1480,7 @@ GLIBC_2.1 _sys_errlist D 0x1f4
>  GLIBC_2.1 _sys_nerr D 0x4
>  GLIBC_2.1 _sys_siglist D 0x100
>  GLIBC_2.1 addseverity F
> +GLIBC_2.1 aio_init F
>  GLIBC_2.1 alphasort64 F
>  GLIBC_2.1 argp_err_exit_status D 0x4
>  GLIBC_2.1 argp_error F
> @@ -2508,6 +2509,7 @@ GLIBC_2.34 __wait3_time64 F
>  GLIBC_2.34 __wait4_time64 F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
>  GLIBC_2.34 call_once F
>  GLIBC_2.34 cnd_broadcast F
>  GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index 6032716053..205768e241 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -633,6 +633,7 @@ GLIBC_2.3 addseverity F
>  GLIBC_2.3 adjtime F
>  GLIBC_2.3 adjtimex F
>  GLIBC_2.3 advance F
> +GLIBC_2.3 aio_init F
>  GLIBC_2.3 alarm F
>  GLIBC_2.3 alphasort F
>  GLIBC_2.3 alphasort64 F
> @@ -2245,6 +2246,7 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
>  GLIBC_2.34 call_once F
>  GLIBC_2.34 cnd_broadcast F
>  GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> index b3c7afb461..3607639c50 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.3 aio_error F
>  GLIBC_2.3 aio_error64 F
>  GLIBC_2.3 aio_fsync F
>  GLIBC_2.3 aio_fsync64 F
> -GLIBC_2.3 aio_init F
>  GLIBC_2.3 aio_read F
>  GLIBC_2.3 aio_read64 F
>  GLIBC_2.3 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index 8c5494e1dc..fccca7ccc6 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -677,6 +677,7 @@ GLIBC_2.17 addseverity F
>  GLIBC_2.17 adjtime F
>  GLIBC_2.17 adjtimex F
>  GLIBC_2.17 advance F
> +GLIBC_2.17 aio_init F
>  GLIBC_2.17 alarm F
>  GLIBC_2.17 aligned_alloc F
>  GLIBC_2.17 alphasort F
> @@ -2544,6 +2545,7 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
>  GLIBC_2.34 call_once F
>  GLIBC_2.34 cnd_broadcast F
>  GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> index c41e0e675b..66dc3e4457 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> @@ -5,7 +5,6 @@ GLIBC_2.17 aio_error F
>  GLIBC_2.17 aio_error64 F
>  GLIBC_2.17 aio_fsync F
>  GLIBC_2.17 aio_fsync64 F
> -GLIBC_2.17 aio_init F
>  GLIBC_2.17 aio_read F
>  GLIBC_2.17 aio_read64 F
>  GLIBC_2.17 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index d7db279c1e..1de14d1195 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -544,6 +544,7 @@ GLIBC_2.33 addmntent F
>  GLIBC_2.33 addseverity F
>  GLIBC_2.33 adjtime F
>  GLIBC_2.33 adjtimex F
> +GLIBC_2.33 aio_init F
>  GLIBC_2.33 alarm F
>  GLIBC_2.33 aligned_alloc F
>  GLIBC_2.33 alphasort F
> @@ -2109,6 +2110,7 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
>  GLIBC_2.34 call_once F
>  GLIBC_2.34 cnd_broadcast F
>  GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> index c03b8a741e..c588e04ae0 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> @@ -5,7 +5,6 @@ GLIBC_2.33 aio_error F
>  GLIBC_2.33 aio_error64 F
>  GLIBC_2.33 aio_fsync F
>  GLIBC_2.33 aio_fsync64 F
> -GLIBC_2.33 aio_init F
>  GLIBC_2.33 aio_read F
>  GLIBC_2.33 aio_read64 F
>  GLIBC_2.33 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index ef03dc0f9e..fd243b77de 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -570,6 +570,7 @@ GLIBC_2.27 addmntent F
>  GLIBC_2.27 addseverity F
>  GLIBC_2.27 adjtime F
>  GLIBC_2.27 adjtimex F
> +GLIBC_2.27 aio_init F
>  GLIBC_2.27 alarm F
>  GLIBC_2.27 aligned_alloc F
>  GLIBC_2.27 alphasort F
> @@ -2309,6 +2310,7 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
>  GLIBC_2.34 call_once F
>  GLIBC_2.34 cnd_broadcast F
>  GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> index 3cc7884927..4be13a5327 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> @@ -5,7 +5,6 @@ GLIBC_2.27 aio_error F
>  GLIBC_2.27 aio_error64 F
>  GLIBC_2.27 aio_fsync F
>  GLIBC_2.27 aio_fsync64 F
> -GLIBC_2.27 aio_init F
>  GLIBC_2.27 aio_read F
>  GLIBC_2.27 aio_read64 F
>  GLIBC_2.27 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index 9118cb68ec..5a9ccc644b 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -1472,6 +1472,7 @@ GLIBC_2.1 _sys_errlist D 0x1f4
>  GLIBC_2.1 _sys_nerr D 0x4
>  GLIBC_2.1 _sys_siglist D 0x100
>  GLIBC_2.1 addseverity F
> +GLIBC_2.1 aio_init F
>  GLIBC_2.1 alphasort64 F
>  GLIBC_2.1 argp_err_exit_status D 0x4
>  GLIBC_2.1 argp_error F
> @@ -2473,6 +2474,7 @@ GLIBC_2.34 __wait3_time64 F
>  GLIBC_2.34 __wait4_time64 F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
>  GLIBC_2.34 call_once F
>  GLIBC_2.34 cnd_broadcast F
>  GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> index 6ac4f0597e..0114c42067 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.1 aio_error F
>  GLIBC_2.1 aio_error64 F
>  GLIBC_2.1 aio_fsync F
>  GLIBC_2.1 aio_fsync64 F
> -GLIBC_2.1 aio_init F
>  GLIBC_2.1 aio_read F
>  GLIBC_2.1 aio_read64 F
>  GLIBC_2.1 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index 66c01bd7e7..4b336dcbae 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -570,6 +570,7 @@ GLIBC_2.2 addseverity F
>  GLIBC_2.2 adjtime F
>  GLIBC_2.2 adjtimex F
>  GLIBC_2.2 advance F
> +GLIBC_2.2 aio_init F
>  GLIBC_2.2 alarm F
>  GLIBC_2.2 alphasort F
>  GLIBC_2.2 alphasort64 F
> @@ -2282,6 +2283,7 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
>  GLIBC_2.34 call_once F
>  GLIBC_2.34 cnd_broadcast F
>  GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> index 80735b140b..97673a21d4 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.2 aio_error F
>  GLIBC_2.2 aio_error64 F
>  GLIBC_2.2 aio_fsync F
>  GLIBC_2.2 aio_fsync64 F
> -GLIBC_2.2 aio_init F
>  GLIBC_2.2 aio_read F
>  GLIBC_2.2 aio_read64 F
>  GLIBC_2.2 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index c40eb412c2..702fc7cd1c 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -7,6 +7,7 @@ GLIBC_2.0 dlclose F
>  GLIBC_2.0 dlerror F
>  GLIBC_2.0 dlopen F
>  GLIBC_2.0 dlsym F
> +GLIBC_2.1 aio_init F
>  GLIBC_2.1 dlopen F
>  GLIBC_2.1 dlvsym F
>  GLIBC_2.10 __cxa_at_quick_exit F
> @@ -2328,6 +2329,7 @@ GLIBC_2.34 __wait3_time64 F
>  GLIBC_2.34 __wait4_time64 F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
>  GLIBC_2.34 call_once F
>  GLIBC_2.34 cnd_broadcast F
>  GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> index 6ac4f0597e..0114c42067 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.1 aio_error F
>  GLIBC_2.1 aio_error64 F
>  GLIBC_2.1 aio_fsync F
>  GLIBC_2.1 aio_fsync64 F
> -GLIBC_2.1 aio_init F
>  GLIBC_2.1 aio_read F
>  GLIBC_2.1 aio_read64 F
>  GLIBC_2.1 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index 1412d33835..cca5fe2265 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -7,6 +7,7 @@ GLIBC_2.0 dlclose F
>  GLIBC_2.0 dlerror F
>  GLIBC_2.0 dlopen F
>  GLIBC_2.0 dlsym F
> +GLIBC_2.1 aio_init F
>  GLIBC_2.1 dlopen F
>  GLIBC_2.1 dlvsym F
>  GLIBC_2.10 __cxa_at_quick_exit F
> @@ -2325,6 +2326,7 @@ GLIBC_2.34 __wait3_time64 F
>  GLIBC_2.34 __wait4_time64 F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
>  GLIBC_2.34 call_once F
>  GLIBC_2.34 cnd_broadcast F
>  GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> index 6ac4f0597e..0114c42067 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.1 aio_error F
>  GLIBC_2.1 aio_error64 F
>  GLIBC_2.1 aio_fsync F
>  GLIBC_2.1 aio_fsync64 F
> -GLIBC_2.1 aio_init F
>  GLIBC_2.1 aio_read F
>  GLIBC_2.1 aio_read64 F
>  GLIBC_2.1 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index 7b55d34753..937efaaba4 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -1474,6 +1474,7 @@ GLIBC_2.1 _sys_errlist D 0x1fc
>  GLIBC_2.1 _sys_nerr D 0x4
>  GLIBC_2.1 _sys_siglist D 0x100
>  GLIBC_2.1 addseverity F
> +GLIBC_2.1 aio_init F
>  GLIBC_2.1 alphasort64 F
>  GLIBC_2.1 argp_err_exit_status D 0x4
>  GLIBC_2.1 argp_error F
> @@ -2466,6 +2467,7 @@ GLIBC_2.34 __wait3_time64 F
>  GLIBC_2.34 __wait4_time64 F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
>  GLIBC_2.34 call_once F
>  GLIBC_2.34 cnd_broadcast F
>  GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> index 100bd4fb76..e4e4569d81 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.1 aio_error F
>  GLIBC_2.1 aio_error64 F
>  GLIBC_2.1 aio_fsync F
>  GLIBC_2.1 aio_fsync64 F
> -GLIBC_2.1 aio_init F
>  GLIBC_2.1 aio_read F
>  GLIBC_2.1 aio_read64 F
>  GLIBC_2.1 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index cfd5f38864..47f96b1480 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -7,6 +7,7 @@ GLIBC_2.0 dlclose F
>  GLIBC_2.0 dlerror F
>  GLIBC_2.0 dlopen F
>  GLIBC_2.0 dlsym F
> +GLIBC_2.1 aio_init F
>  GLIBC_2.1 dlopen F
>  GLIBC_2.1 dlvsym F
>  GLIBC_2.10 __cxa_at_quick_exit F
> @@ -2302,6 +2303,7 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
>  GLIBC_2.34 call_once F
>  GLIBC_2.34 cnd_broadcast F
>  GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> index c4985067f7..94f5ca8b6f 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.1 aio_error F
>  GLIBC_2.1 aio_error64 F
>  GLIBC_2.1 aio_fsync F
>  GLIBC_2.1 aio_fsync64 F
> -GLIBC_2.1 aio_init F
>  GLIBC_2.1 aio_read F
>  GLIBC_2.1 aio_read64 F
>  GLIBC_2.1 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index 17be05f14f..4ff62311e9 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -559,6 +559,7 @@ GLIBC_2.2.5 addseverity F
>  GLIBC_2.2.5 adjtime F
>  GLIBC_2.2.5 adjtimex F
>  GLIBC_2.2.5 advance F
> +GLIBC_2.2.5 aio_init F
>  GLIBC_2.2.5 alarm F
>  GLIBC_2.2.5 alphasort F
>  GLIBC_2.2.5 alphasort64 F
> @@ -2260,6 +2261,7 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
>  GLIBC_2.34 call_once F
>  GLIBC_2.34 cnd_broadcast F
>  GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> index a3da4f8e6e..bac8c74b5f 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.2.5 aio_error F
>  GLIBC_2.2.5 aio_error64 F
>  GLIBC_2.2.5 aio_fsync F
>  GLIBC_2.2.5 aio_fsync64 F
> -GLIBC_2.2.5 aio_init F
>  GLIBC_2.2.5 aio_read F
>  GLIBC_2.2.5 aio_read64 F
>  GLIBC_2.2.5 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index a9db18906b..e34873201d 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -592,6 +592,7 @@ GLIBC_2.16 addseverity F
>  GLIBC_2.16 adjtime F
>  GLIBC_2.16 adjtimex F
>  GLIBC_2.16 advance F
> +GLIBC_2.16 aio_init F
>  GLIBC_2.16 alarm F
>  GLIBC_2.16 aligned_alloc F
>  GLIBC_2.16 alphasort F
> @@ -2363,6 +2364,7 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
>  GLIBC_2.34 call_once F
>  GLIBC_2.34 cnd_broadcast F
>  GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> index a0069d137b..2e432fe7d6 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> @@ -5,7 +5,6 @@ GLIBC_2.16 aio_error F
>  GLIBC_2.16 aio_error64 F
>  GLIBC_2.16 aio_fsync F
>  GLIBC_2.16 aio_fsync64 F
> -GLIBC_2.16 aio_init F
>  GLIBC_2.16 aio_read F
>  GLIBC_2.16 aio_read64 F
>  GLIBC_2.16 aio_return F
> 

Ok.
  

Patch

diff --git a/nptl/pthread_getschedparam.c b/nptl/pthread_getschedparam.c
index a69ed8d8c3..94316cf897 100644
--- a/nptl/pthread_getschedparam.c
+++ b/nptl/pthread_getschedparam.c
@@ -70,4 +70,5 @@  __pthread_getschedparam (pthread_t threadid, int *policy,
 
   return result;
 }
+libc_hidden_def (__pthread_getschedparam)
 strong_alias (__pthread_getschedparam, pthread_getschedparam)
diff --git a/rt/Makefile b/rt/Makefile
index 329db09c32..ada87c845e 100644
--- a/rt/Makefile
+++ b/rt/Makefile
@@ -32,12 +32,9 @@  librt-routines = \
   aio_cancel \
   aio_error \
   aio_fsync \
-  aio_misc \
-  aio_notify \
   aio_read \
   aio_read64 \
   aio_return \
-  aio_sigqueue \
   aio_suspend \
   aio_write \
   aio_write64 \
@@ -60,6 +57,9 @@  librt-routines = \
   timer_settime \
 
 $(librt-routines-var) += \
+  aio_misc \
+  aio_notify \
+  aio_sigqueue \
 
 tests := tst-shm tst-timer tst-timer2 \
 	 tst-aio tst-aio64 tst-aio2 tst-aio3 tst-aio4 tst-aio5 tst-aio6 \
diff --git a/rt/Versions b/rt/Versions
index 26c6d1ac63..2e991a9d93 100644
--- a/rt/Versions
+++ b/rt/Versions
@@ -1,12 +1,33 @@ 
 libc {
+  GLIBC_2.1 {
+%if PTHREAD_IN_LIBC
+    aio_init;
+%endif
+  }
   GLIBC_2.2 {
     shm_open;
     shm_unlink;
   }
   GLIBC_2.34 {
+%if PTHREAD_IN_LIBC
+    aio_init;
+%endif
     shm_open;
     shm_unlink;
   }
+%if PTHREAD_IN_LIBC
+  GLIBC_PRIVATE {
+    __aio_enqueue_request;
+    __aio_find_req;
+    __aio_find_req_fd;
+    __aio_free_request;
+    __aio_notify;
+    __aio_notify_only;
+    __aio_remove_request;
+    __aio_requests_mutex;
+    __aio_sigqueue;
+  }
+%endif
 }
 librt {
   GLIBC_2.1 {
@@ -16,7 +37,9 @@  librt {
     aio_error64;
     aio_fsync;
     aio_fsync64;
+%if !PTHREAD_IN_LIBC
     aio_init;
+%endif
     aio_read;
     aio_read64;
     aio_return;
diff --git a/rt/aio_misc.c b/rt/aio_misc.c
index b95f07d9d3..d9be8ac33d 100644
--- a/rt/aio_misc.c
+++ b/rt/aio_misc.c
@@ -21,7 +21,7 @@ 
 #include <assert.h>
 #include <errno.h>
 #include <limits.h>
-#include <pthread.h>
+#include <pthreadP.h>
 #include <stdlib.h>
 #include <unistd.h>
 #include <sys/param.h>
@@ -29,6 +29,20 @@ 
 #include <sys/time.h>
 #include <aio_misc.h>
 
+#if !PTHREAD_IN_LIBC
+/* The available function names differ outside of libc.  (In libc, we
+   need to use hidden aliases to avoid the PLT.)  */
+# define __pread __libc_pread
+# define __pthread_attr_destroy pthread_attr_destroy
+# define __pthread_attr_init pthread_attr_init
+# define __pthread_attr_setdetachstate pthread_attr_setdetachstate
+# define __pthread_cond_signal pthread_cond_signal
+# define __pthread_cond_timedwait pthread_cond_timedwait
+# define __pthread_getschedparam pthread_getschedparam
+# define __pthread_setschedparam pthread_setschedparam
+# define __pwrite __libc_pwrite
+#endif
+
 #ifndef aio_create_helper_thread
 # define aio_create_helper_thread __aio_create_helper_thread
 
@@ -38,12 +52,12 @@  __aio_create_helper_thread (pthread_t *threadp, void *(*tf) (void *), void *arg)
   pthread_attr_t attr;
 
   /* Make sure the thread is created detached.  */
-  pthread_attr_init (&attr);
-  pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
+  __pthread_attr_init (&attr);
+  __pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
 
-  int ret = pthread_create (threadp, &attr, tf, arg);
+  int ret = __pthread_create (threadp, &attr, tf, arg);
 
-  (void) pthread_attr_destroy (&attr);
+  (void) __pthread_attr_destroy (&attr);
   return ret;
 }
 #endif
@@ -271,7 +285,7 @@  void
 __aio_init (const struct aioinit *init)
 {
   /* Get the mutex.  */
-  pthread_mutex_lock (&__aio_requests_mutex);
+  __pthread_mutex_lock (&__aio_requests_mutex);
 
   /* Only allow writing new values if the table is not yet allocated.  */
   if (pool == NULL)
@@ -287,9 +301,8 @@  __aio_init (const struct aioinit *init)
     optim.aio_idle_time = init->aio_idle_time;
 
   /* Release the mutex.  */
-  pthread_mutex_unlock (&__aio_requests_mutex);
+  __pthread_mutex_unlock (&__aio_requests_mutex);
 }
-weak_alias (__aio_init, aio_init)
 
 
 /* The main function of the async I/O handling.  It enqueues requests
@@ -319,11 +332,11 @@  __aio_enqueue_request (aiocb_union *aiocbp, int operation)
     }
 
   /* Compute priority for this request.  */
-  pthread_getschedparam (pthread_self (), &policy, &param);
+  __pthread_getschedparam (__pthread_self (), &policy, &param);
   prio = param.sched_priority - aiocbp->aiocb.aio_reqprio;
 
   /* Get the mutex.  */
-  pthread_mutex_lock (&__aio_requests_mutex);
+  __pthread_mutex_lock (&__aio_requests_mutex);
 
   last = NULL;
   runp = requests;
@@ -340,7 +353,7 @@  __aio_enqueue_request (aiocb_union *aiocbp, int operation)
   newp = get_elem ();
   if (newp == NULL)
     {
-      pthread_mutex_unlock (&__aio_requests_mutex);
+      __pthread_mutex_unlock (&__aio_requests_mutex);
       __set_errno (EAGAIN);
       return NULL;
     }
@@ -454,7 +467,7 @@  __aio_enqueue_request (aiocb_union *aiocbp, int operation)
       /* If there is a thread waiting for work, then let it know that we
 	 have just given it something to do. */
       if (idle_thread_count > 0)
-	pthread_cond_signal (&__aio_new_request_notification);
+	__pthread_cond_signal (&__aio_new_request_notification);
     }
 
   if (result == 0)
@@ -469,7 +482,7 @@  __aio_enqueue_request (aiocb_union *aiocbp, int operation)
     }
 
   /* Release the mutex.  */
-  pthread_mutex_unlock (&__aio_requests_mutex);
+  __pthread_mutex_unlock (&__aio_requests_mutex);
 
   return newp;
 }
@@ -478,14 +491,14 @@  __aio_enqueue_request (aiocb_union *aiocbp, int operation)
 static void *
 handle_fildes_io (void *arg)
 {
-  pthread_t self = pthread_self ();
+  pthread_t self = __pthread_self ();
   struct sched_param param;
   struct requestlist *runp = (struct requestlist *) arg;
   aiocb_union *aiocbp;
   int policy;
   int fildes;
 
-  pthread_getschedparam (self, &policy, &param);
+  __pthread_getschedparam (self, &policy, &param);
 
   do
     {
@@ -495,7 +508,7 @@  handle_fildes_io (void *arg)
 	 "get work off the work queue" part of this loop, which is near the
 	 end. */
       if (runp == NULL)
-	pthread_mutex_lock (&__aio_requests_mutex);
+	__pthread_mutex_lock (&__aio_requests_mutex);
       else
 	{
 	  /* Hopefully this request is marked as running.  */
@@ -511,7 +524,7 @@  handle_fildes_io (void *arg)
 	    {
 	      param.sched_priority = aiocbp->aiocb.__abs_prio;
 	      policy = aiocbp->aiocb.__policy;
-	      pthread_setschedparam (self, policy, &param);
+	      __pthread_setschedparam (self, policy, &param);
 	    }
 
 	  /* Process request pointed to by RUNP.  We must not be disturbed
@@ -527,11 +540,11 @@  handle_fildes_io (void *arg)
 						 aiocbp->aiocb64.aio_offset));
 	      else
 		aiocbp->aiocb.__return_value =
-		  TEMP_FAILURE_RETRY (__libc_pread (fildes,
-						    (void *)
-						    aiocbp->aiocb.aio_buf,
-						    aiocbp->aiocb.aio_nbytes,
-						    aiocbp->aiocb.aio_offset));
+		  TEMP_FAILURE_RETRY (__pread (fildes,
+					       (void *)
+					       aiocbp->aiocb.aio_buf,
+					       aiocbp->aiocb.aio_nbytes,
+					       aiocbp->aiocb.aio_offset));
 
 	      if (aiocbp->aiocb.__return_value == -1 && errno == ESPIPE)
 		/* The Linux kernel is different from others.  It returns
@@ -554,10 +567,10 @@  handle_fildes_io (void *arg)
 						  aiocbp->aiocb64.aio_offset));
 	      else
 		aiocbp->aiocb.__return_value =
-		  TEMP_FAILURE_RETRY (__libc_pwrite (fildes, (const void *)
-					      aiocbp->aiocb.aio_buf,
-					      aiocbp->aiocb.aio_nbytes,
-					      aiocbp->aiocb.aio_offset));
+		  TEMP_FAILURE_RETRY (__pwrite (fildes, (const void *)
+						aiocbp->aiocb.aio_buf,
+						aiocbp->aiocb.aio_nbytes,
+						aiocbp->aiocb.aio_offset));
 
 	      if (aiocbp->aiocb.__return_value == -1 && errno == ESPIPE)
 		/* The Linux kernel is different from others.  It returns
@@ -583,7 +596,7 @@  handle_fildes_io (void *arg)
 	    }
 
 	  /* Get the mutex.  */
-	  pthread_mutex_lock (&__aio_requests_mutex);
+	  __pthread_mutex_lock (&__aio_requests_mutex);
 
 	  if (aiocbp->aiocb.__return_value == -1)
 	    aiocbp->aiocb.__error_code = errno;
@@ -626,9 +639,9 @@  handle_fildes_io (void *arg)
 	      wakeup_time.tv_nsec -= 1000000000;
 	      ++wakeup_time.tv_sec;
 	    }
-	  pthread_cond_timedwait (&__aio_new_request_notification,
-				  &__aio_requests_mutex,
-				  &wakeup_time);
+	  __pthread_cond_timedwait (&__aio_new_request_notification,
+				    &__aio_requests_mutex,
+				    &wakeup_time);
 	  --idle_thread_count;
 	  runp = runlist;
 	}
@@ -651,20 +664,21 @@  handle_fildes_io (void *arg)
 		 up for these other work elements; otherwise, we should try
 		 to create a new thread. */
 	      if (idle_thread_count > 0)
-		pthread_cond_signal (&__aio_new_request_notification);
+		__pthread_cond_signal (&__aio_new_request_notification);
 	      else if (nthreads < optim.aio_threads)
 		{
 		  pthread_t thid;
 		  pthread_attr_t attr;
 
 		  /* Make sure the thread is created detached.  */
-		  pthread_attr_init (&attr);
-		  pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
+		  __pthread_attr_init (&attr);
+		  __pthread_attr_setdetachstate (&attr,
+						 PTHREAD_CREATE_DETACHED);
 
 		  /* Now try to start a thread. If we fail, no big deal,
 		     because we know that there is at least one thread (us)
 		     that is working on AIO operations. */
-		  if (pthread_create (&thid, &attr, handle_fildes_io, NULL)
+		  if (__pthread_create (&thid, &attr, handle_fildes_io, NULL)
 		      == 0)
 		    ++nthreads;
 		}
@@ -672,7 +686,7 @@  handle_fildes_io (void *arg)
 	}
 
       /* Release the mutex.  */
-      pthread_mutex_unlock (&__aio_requests_mutex);
+      __pthread_mutex_unlock (&__aio_requests_mutex);
     }
   while (runp != NULL);
 
@@ -719,3 +733,26 @@  add_request_to_runlist (struct requestlist *newrequest)
       runp->next_run = newrequest;
     }
 }
+
+#if PTHREAD_IN_LIBC
+libc_hidden_data_def (__aio_requests_mutex)
+libc_hidden_def (__aio_enqueue_request)
+libc_hidden_def (__aio_find_req)
+libc_hidden_def (__aio_find_req_fd)
+libc_hidden_def (__aio_free_request)
+libc_hidden_def (__aio_remove_request)
+
+versioned_symbol (libc, __aio_init, aio_init, GLIBC_2_34);
+# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_34)
+compat_symbol (librt, __aio_init, aio_init, GLIBC_2_1);
+# endif
+
+#else /* !PTHREAD_IN_LIBC */
+librt_hidden_data_def (__aio_requests_mutex)
+librt_hidden_def (__aio_enqueue_request)
+librt_hidden_def (__aio_find_req)
+librt_hidden_def (__aio_find_req_fd)
+librt_hidden_def (__aio_free_request)
+librt_hidden_def (__aio_remove_request)
+weak_alias (__aio_init, aio_init)
+#endif /* !PTHREAD_IN_LIBC */
diff --git a/rt/aio_notify.c b/rt/aio_notify.c
index a8d61503d8..432000e34b 100644
--- a/rt/aio_notify.c
+++ b/rt/aio_notify.c
@@ -18,12 +18,17 @@ 
    <https://www.gnu.org/licenses/>.  */
 
 #include <errno.h>
-#include <pthread.h>
+#include <pthreadP.h>
 #include <stdlib.h>
 #include <unistd.h>
 #include <aio_misc.h>
 #include <signal.h>
 
+#if !PTHREAD_IN_LIBC
+# define __pthread_attr_init pthread_attr_init
+# define __pthread_attr_setdetachstate pthread_attr_setdetachstate
+#endif
+
 #ifndef aio_start_notify_thread
 # define aio_start_notify_thread() do { } while (0)
 #endif
@@ -62,8 +67,8 @@  __aio_notify_only (struct sigevent *sigev)
       pattr = (pthread_attr_t *) sigev->sigev_notify_attributes;
       if (pattr == NULL)
 	{
-	  pthread_attr_init (&attr);
-	  pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
+	  __pthread_attr_init (&attr);
+	  __pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
 	  pattr = &attr;
 	}
 
@@ -81,7 +86,7 @@  __aio_notify_only (struct sigevent *sigev)
 	{
 	  nf->func = sigev->sigev_notify_function;
 	  nf->value = sigev->sigev_value;
-	  if (pthread_create (&tid, pattr, notify_func_wrapper, nf) < 0)
+	  if (__pthread_create (&tid, pattr, notify_func_wrapper, nf) < 0)
 	    {
 	      free (nf);
 	      result = -1;
@@ -155,3 +160,11 @@  __aio_notify (struct requestlist *req)
       waitlist = next;
     }
 }
+
+#if PTHREAD_IN_LIBC
+libc_hidden_def (__aio_notify)
+libc_hidden_def (__aio_notify_only)
+#else
+librt_hidden_def (__aio_notify)
+librt_hidden_def (__aio_notify_only)
+#endif
diff --git a/rt/aio_sigqueue.c b/rt/aio_sigqueue.c
index 2f7da00ad3..0ad95ae04c 100644
--- a/rt/aio_sigqueue.c
+++ b/rt/aio_sigqueue.c
@@ -28,5 +28,5 @@  __aio_sigqueue (int sig, const union sigval val, pid_t caller_pid)
   __set_errno (ENOSYS);
   return -1;
 }
-
+librt_hidden_def (__aio_sigqueue)
 stub_warning (__aio_sigqueue)
diff --git a/sysdeps/generic/aio_misc.h b/sysdeps/generic/aio_misc.h
index e23524cffe..d9bff36e50 100644
--- a/sysdeps/generic/aio_misc.h
+++ b/sysdeps/generic/aio_misc.h
@@ -87,36 +87,55 @@  struct requestlist
 
 
 /* Lock for global I/O list of requests.  */
-extern pthread_mutex_t __aio_requests_mutex attribute_hidden;
+extern pthread_mutex_t __aio_requests_mutex;
 
 
 /* Enqueue request.  */
 extern struct requestlist *__aio_enqueue_request (aiocb_union *aiocbp,
-						  int operation)
-  attribute_hidden;
+						  int operation);
 
 /* Find request entry for given AIO control block.  */
-extern struct requestlist *__aio_find_req (aiocb_union *elem) attribute_hidden;
+extern struct requestlist *__aio_find_req (aiocb_union *elem);
 
 /* Find request entry for given file descriptor.  */
-extern struct requestlist *__aio_find_req_fd (int fildes) attribute_hidden;
+extern struct requestlist *__aio_find_req_fd (int fildes);
 
 /* Remove request from the list.  */
 extern void __aio_remove_request (struct requestlist *last,
-				  struct requestlist *req, int all)
-     attribute_hidden;
+				  struct requestlist *req, int all);
 
 /* Release the entry for the request.  */
-extern void __aio_free_request (struct requestlist *req) attribute_hidden;
+extern void __aio_free_request (struct requestlist *req);
 
 /* Notify initiator of request and tell this everybody listening.  */
-extern void __aio_notify (struct requestlist *req) attribute_hidden;
+extern void __aio_notify (struct requestlist *req);
 
 /* Notify initiator of request.  */
-extern int __aio_notify_only (struct sigevent *sigev) attribute_hidden;
+extern int __aio_notify_only (struct sigevent *sigev);
 
 /* Send the signal.  */
-extern int __aio_sigqueue (int sig, const union sigval val, pid_t caller_pid)
-     attribute_hidden;
+extern int __aio_sigqueue (int sig, const union sigval val, pid_t caller_pid);
+
+#if PTHREAD_IN_LIBC
+libc_hidden_proto (__aio_enqueue_request)
+libc_hidden_proto (__aio_find_req)
+libc_hidden_proto (__aio_find_req_fd)
+libc_hidden_proto (__aio_free_request)
+libc_hidden_proto (__aio_notify)
+libc_hidden_proto (__aio_notify_only)
+libc_hidden_proto (__aio_remove_request)
+libc_hidden_proto (__aio_requests_mutex)
+libc_hidden_proto (__aio_sigqueue)
+#else
+librt_hidden_proto (__aio_enqueue_request)
+librt_hidden_proto (__aio_find_req)
+librt_hidden_proto (__aio_find_req_fd)
+librt_hidden_proto (__aio_free_request)
+librt_hidden_proto (__aio_notify)
+librt_hidden_proto (__aio_notify_only)
+librt_hidden_proto (__aio_remove_request)
+librt_hidden_proto (__aio_requests_mutex)
+librt_hidden_proto (__aio_sigqueue)
+#endif
 
 #endif /* aio_misc.h */
diff --git a/sysdeps/nptl/aio_misc.h b/sysdeps/nptl/aio_misc.h
index a5c439fab5..d85f9c2fef 100644
--- a/sysdeps/nptl/aio_misc.h
+++ b/sysdeps/nptl/aio_misc.h
@@ -39,7 +39,7 @@ 
 									      \
     if (oldval != 0)							      \
       {									      \
-	pthread_mutex_unlock (&__aio_requests_mutex);			      \
+	__pthread_mutex_unlock (&__aio_requests_mutex);			      \
 									      \
 	int status;							      \
 	do								      \
@@ -67,7 +67,7 @@ 
 	else								      \
 	  assert (status == 0 || status == EAGAIN);			      \
 									      \
-	pthread_mutex_lock (&__aio_requests_mutex);			      \
+	__pthread_mutex_lock (&__aio_requests_mutex);			      \
       }									      \
   } while (0)
 
diff --git a/sysdeps/nptl/pthreadP.h b/sysdeps/nptl/pthreadP.h
index ca96ff073b..374657a2fd 100644
--- a/sysdeps/nptl/pthreadP.h
+++ b/sysdeps/nptl/pthreadP.h
@@ -337,6 +337,7 @@  libc_hidden_proto (__pthread_get_minstack)
 /* Namespace save aliases.  */
 extern int __pthread_getschedparam (pthread_t thread_id, int *policy,
 				    struct sched_param *param);
+libc_hidden_proto (__pthread_getschedparam)
 extern int __pthread_setschedparam (pthread_t thread_id, int policy,
 				    const struct sched_param *param);
 extern int __pthread_mutex_init (pthread_mutex_t *__mutex,
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 42e240e284..1bc4ffccce 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -589,6 +589,7 @@  GLIBC_2.17 addseverity F
 GLIBC_2.17 adjtime F
 GLIBC_2.17 adjtimex F
 GLIBC_2.17 advance F
+GLIBC_2.17 aio_init F
 GLIBC_2.17 alarm F
 GLIBC_2.17 aligned_alloc F
 GLIBC_2.17 alphasort F
@@ -2348,6 +2349,7 @@  GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
 GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
index c41e0e675b..66dc3e4457 100644
--- a/sysdeps/unix/sysv/linux/aarch64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
@@ -5,7 +5,6 @@  GLIBC_2.17 aio_error F
 GLIBC_2.17 aio_error64 F
 GLIBC_2.17 aio_fsync F
 GLIBC_2.17 aio_fsync64 F
-GLIBC_2.17 aio_init F
 GLIBC_2.17 aio_read F
 GLIBC_2.17 aio_read64 F
 GLIBC_2.17 aio_return F
diff --git a/sysdeps/unix/sysv/linux/aio_misc.h b/sysdeps/unix/sysv/linux/aio_misc.h
index a661cee203..79907544dc 100644
--- a/sysdeps/unix/sysv/linux/aio_misc.h
+++ b/sysdeps/unix/sysv/linux/aio_misc.h
@@ -42,11 +42,11 @@  __aio_create_helper_thread (pthread_t *threadp, void *(*tf) (void *),
   pthread_attr_t attr;
 
   /* Make sure the thread is created detached.  */
-  pthread_attr_init (&attr);
-  pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
+  __pthread_attr_init (&attr);
+  __pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
 
   /* The helper thread needs only very little resources.  */
-  (void) pthread_attr_setstacksize (&attr, __pthread_get_minstack (&attr));
+  (void) __pthread_attr_setstacksize (&attr, __pthread_get_minstack (&attr));
 
   /* Block all signals in the helper thread.  To do this thoroughly we
      temporarily have to block all signals here.  */
@@ -56,13 +56,13 @@  __aio_create_helper_thread (pthread_t *threadp, void *(*tf) (void *),
   INTERNAL_SYSCALL_CALL (rt_sigprocmask, SIG_SETMASK, &ss, &oss,
 			 __NSIG_BYTES);
 
-  int ret = pthread_create (threadp, &attr, tf, arg);
+  int ret = __pthread_create (threadp, &attr, tf, arg);
 
   /* Restore the signal mask.  */
   INTERNAL_SYSCALL_CALL (rt_sigprocmask, SIG_SETMASK, &oss, NULL,
 			 __NSIG_BYTES);
 
-  (void) pthread_attr_destroy (&attr);
+  (void) __pthread_attr_destroy (&attr);
   return ret;
 }
 #endif
diff --git a/sysdeps/unix/sysv/linux/aio_sigqueue.c b/sysdeps/unix/sysv/linux/aio_sigqueue.c
index 398d7a2f1f..bd0da6e763 100644
--- a/sysdeps/unix/sysv/linux/aio_sigqueue.c
+++ b/sysdeps/unix/sysv/linux/aio_sigqueue.c
@@ -39,8 +39,9 @@  __aio_sigqueue (int sig, const union sigval val, pid_t caller_pid)
   info.si_signo = sig;
   info.si_code = SI_ASYNCIO;
   info.si_pid = caller_pid;
-  info.si_uid = getuid ();
+  info.si_uid = __getuid ();
   info.si_value = val;
 
   return INLINE_SYSCALL (rt_sigqueueinfo, 3, info.si_pid, sig, &info);
 }
+libc_hidden_def (__aio_sigqueue)
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index fad54555dc..5f3bebef8c 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -1502,6 +1502,7 @@  GLIBC_2.1 _sys_siglist D 0x200
 GLIBC_2.1 addseverity F
 GLIBC_2.1 adjtime F
 GLIBC_2.1 adjtimex F
+GLIBC_2.1 aio_init F
 GLIBC_2.1 alphasort64 F
 GLIBC_2.1 argp_err_exit_status D 0x4
 GLIBC_2.1 argp_error F
@@ -2441,6 +2442,7 @@  GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
 GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
index c4985067f7..94f5ca8b6f 100644
--- a/sysdeps/unix/sysv/linux/alpha/librt.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist
@@ -4,7 +4,6 @@  GLIBC_2.1 aio_error F
 GLIBC_2.1 aio_error64 F
 GLIBC_2.1 aio_fsync F
 GLIBC_2.1 aio_fsync64 F
-GLIBC_2.1 aio_init F
 GLIBC_2.1 aio_read F
 GLIBC_2.1 aio_read64 F
 GLIBC_2.1 aio_return F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 907716ec39..24d3a3673c 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -550,6 +550,7 @@  GLIBC_2.32 addmntent F
 GLIBC_2.32 addseverity F
 GLIBC_2.32 adjtime F
 GLIBC_2.32 adjtimex F
+GLIBC_2.32 aio_init F
 GLIBC_2.32 alarm F
 GLIBC_2.32 aligned_alloc F
 GLIBC_2.32 alphasort F
@@ -2107,6 +2108,7 @@  GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
 GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
index 7ee0b6d324..e53772e428 100644
--- a/sysdeps/unix/sysv/linux/arc/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arc/librt.abilist
@@ -5,7 +5,6 @@  GLIBC_2.32 aio_error F
 GLIBC_2.32 aio_error64 F
 GLIBC_2.32 aio_fsync F
 GLIBC_2.32 aio_fsync64 F
-GLIBC_2.32 aio_init F
 GLIBC_2.32 aio_read F
 GLIBC_2.32 aio_read64 F
 GLIBC_2.32 aio_return F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 50f987a429..582aa645c0 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -278,6 +278,7 @@  GLIBC_2.34 __wait3_time64 F
 GLIBC_2.34 __wait4_time64 F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
 GLIBC_2.34 cnd_destroy F
@@ -981,6 +982,7 @@  GLIBC_2.4 addseverity F
 GLIBC_2.4 adjtime F
 GLIBC_2.4 adjtimex F
 GLIBC_2.4 advance F
+GLIBC_2.4 aio_init F
 GLIBC_2.4 alarm F
 GLIBC_2.4 alphasort F
 GLIBC_2.4 alphasort64 F
diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
index 278da67f77..3aa50aa219 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -9,7 +9,6 @@  GLIBC_2.4 aio_error F
 GLIBC_2.4 aio_error64 F
 GLIBC_2.4 aio_fsync F
 GLIBC_2.4 aio_fsync64 F
-GLIBC_2.4 aio_init F
 GLIBC_2.4 aio_read F
 GLIBC_2.4 aio_read64 F
 GLIBC_2.4 aio_return F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index bf9038af84..400eae9ab0 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -275,6 +275,7 @@  GLIBC_2.34 __wait3_time64 F
 GLIBC_2.34 __wait4_time64 F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
 GLIBC_2.34 cnd_destroy F
@@ -978,6 +979,7 @@  GLIBC_2.4 addseverity F
 GLIBC_2.4 adjtime F
 GLIBC_2.4 adjtimex F
 GLIBC_2.4 advance F
+GLIBC_2.4 aio_init F
 GLIBC_2.4 alarm F
 GLIBC_2.4 alphasort F
 GLIBC_2.4 alphasort64 F
diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
index 278da67f77..3aa50aa219 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -9,7 +9,6 @@  GLIBC_2.4 aio_error F
 GLIBC_2.4 aio_error64 F
 GLIBC_2.4 aio_fsync F
 GLIBC_2.4 aio_fsync64 F
-GLIBC_2.4 aio_init F
 GLIBC_2.4 aio_read F
 GLIBC_2.4 aio_read64 F
 GLIBC_2.4 aio_return F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index afb91f6f43..4cd189d5db 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -564,6 +564,7 @@  GLIBC_2.29 addmntent F
 GLIBC_2.29 addseverity F
 GLIBC_2.29 adjtime F
 GLIBC_2.29 adjtimex F
+GLIBC_2.29 aio_init F
 GLIBC_2.29 alarm F
 GLIBC_2.29 aligned_alloc F
 GLIBC_2.29 alphasort F
@@ -2367,6 +2368,7 @@  GLIBC_2.34 __wait3_time64 F
 GLIBC_2.34 __wait4_time64 F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
 GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
index 60400954a3..640230cfc0 100644
--- a/sysdeps/unix/sysv/linux/csky/librt.abilist
+++ b/sysdeps/unix/sysv/linux/csky/librt.abilist
@@ -5,7 +5,6 @@  GLIBC_2.29 aio_error F
 GLIBC_2.29 aio_error64 F
 GLIBC_2.29 aio_fsync F
 GLIBC_2.29 aio_fsync64 F
-GLIBC_2.29 aio_init F
 GLIBC_2.29 aio_read F
 GLIBC_2.29 aio_read64 F
 GLIBC_2.29 aio_return F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 125f8a269a..ede6bee0cd 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -3,6 +3,7 @@  GLIBC_2.0 dlclose F
 GLIBC_2.0 dlerror F
 GLIBC_2.0 dlopen F
 GLIBC_2.0 dlsym F
+GLIBC_2.1 aio_init F
 GLIBC_2.1 dlopen F
 GLIBC_2.1 dlvsym F
 GLIBC_2.10 __cxa_at_quick_exit F
@@ -2321,6 +2322,7 @@  GLIBC_2.34 __wait3_time64 F
 GLIBC_2.34 __wait4_time64 F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
 GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
index 6ac4f0597e..0114c42067 100644
--- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
@@ -4,7 +4,6 @@  GLIBC_2.1 aio_error F
 GLIBC_2.1 aio_error64 F
 GLIBC_2.1 aio_fsync F
 GLIBC_2.1 aio_fsync64 F
-GLIBC_2.1 aio_init F
 GLIBC_2.1 aio_read F
 GLIBC_2.1 aio_read64 F
 GLIBC_2.1 aio_return F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 517753bdd1..17063aaaf9 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -1475,6 +1475,7 @@  GLIBC_2.1 _sys_errlist D 0x1f4
 GLIBC_2.1 _sys_nerr D 0x4
 GLIBC_2.1 _sys_siglist D 0x100
 GLIBC_2.1 addseverity F
+GLIBC_2.1 aio_init F
 GLIBC_2.1 alphasort64 F
 GLIBC_2.1 argp_err_exit_status D 0x4
 GLIBC_2.1 argp_error F
@@ -2505,6 +2506,7 @@  GLIBC_2.34 __wait3_time64 F
 GLIBC_2.34 __wait4_time64 F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
 GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
index 6ac4f0597e..0114c42067 100644
--- a/sysdeps/unix/sysv/linux/i386/librt.abilist
+++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
@@ -4,7 +4,6 @@  GLIBC_2.1 aio_error F
 GLIBC_2.1 aio_error64 F
 GLIBC_2.1 aio_fsync F
 GLIBC_2.1 aio_fsync64 F
-GLIBC_2.1 aio_init F
 GLIBC_2.1 aio_read F
 GLIBC_2.1 aio_read64 F
 GLIBC_2.1 aio_return F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 23d0928360..4991b80dd1 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -3,6 +3,7 @@  GLIBC_2.0 dlclose F
 GLIBC_2.0 dlerror F
 GLIBC_2.0 dlopen F
 GLIBC_2.0 dlsym F
+GLIBC_2.1 aio_init F
 GLIBC_2.1 dlopen F
 GLIBC_2.1 dlvsym F
 GLIBC_2.10 __cxa_at_quick_exit F
@@ -2281,6 +2282,7 @@  GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
 GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
index fa7f54dd55..2c97c02f21 100644
--- a/sysdeps/unix/sysv/linux/ia64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/librt.abilist
@@ -4,7 +4,6 @@  GLIBC_2.1 aio_error F
 GLIBC_2.1 aio_error64 F
 GLIBC_2.1 aio_fsync F
 GLIBC_2.1 aio_fsync64 F
-GLIBC_2.1 aio_init F
 GLIBC_2.1 aio_read F
 GLIBC_2.1 aio_read64 F
 GLIBC_2.1 aio_return F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index dd5fb50b18..c1d7edf1f9 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -279,6 +279,7 @@  GLIBC_2.34 __wait3_time64 F
 GLIBC_2.34 __wait4_time64 F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
 GLIBC_2.34 cnd_destroy F
@@ -969,6 +970,7 @@  GLIBC_2.4 addseverity F
 GLIBC_2.4 adjtime F
 GLIBC_2.4 adjtimex F
 GLIBC_2.4 advance F
+GLIBC_2.4 aio_init F
 GLIBC_2.4 alarm F
 GLIBC_2.4 alphasort F
 GLIBC_2.4 alphasort64 F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
index 278da67f77..3aa50aa219 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -9,7 +9,6 @@  GLIBC_2.4 aio_error F
 GLIBC_2.4 aio_error64 F
 GLIBC_2.4 aio_fsync F
 GLIBC_2.4 aio_fsync64 F
-GLIBC_2.4 aio_init F
 GLIBC_2.4 aio_read F
 GLIBC_2.4 aio_read64 F
 GLIBC_2.4 aio_return F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index cb1d553361..725280a9db 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -1473,6 +1473,7 @@  GLIBC_2.1 _sys_errlist D 0x1f4
 GLIBC_2.1 _sys_nerr D 0x4
 GLIBC_2.1 _sys_siglist D 0x100
 GLIBC_2.1 addseverity F
+GLIBC_2.1 aio_init F
 GLIBC_2.1 alphasort64 F
 GLIBC_2.1 argp_err_exit_status D 0x4
 GLIBC_2.1 argp_error F
@@ -2448,6 +2449,7 @@  GLIBC_2.34 __wait3_time64 F
 GLIBC_2.34 __wait4_time64 F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
 GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
index 6ac4f0597e..0114c42067 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
@@ -4,7 +4,6 @@  GLIBC_2.1 aio_error F
 GLIBC_2.1 aio_error64 F
 GLIBC_2.1 aio_fsync F
 GLIBC_2.1 aio_fsync64 F
-GLIBC_2.1 aio_init F
 GLIBC_2.1 aio_read F
 GLIBC_2.1 aio_read64 F
 GLIBC_2.1 aio_return F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 6a20a6fdf2..fe9a9c2f09 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -591,6 +591,7 @@  GLIBC_2.18 addseverity F
 GLIBC_2.18 adjtime F
 GLIBC_2.18 adjtimex F
 GLIBC_2.18 advance F
+GLIBC_2.18 aio_init F
 GLIBC_2.18 alarm F
 GLIBC_2.18 aligned_alloc F
 GLIBC_2.18 alphasort F
@@ -2418,6 +2419,7 @@  GLIBC_2.34 __wait3_time64 F
 GLIBC_2.34 __wait4_time64 F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
 GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
index a14deaabdb..679050b4b7 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
@@ -5,7 +5,6 @@  GLIBC_2.18 aio_error F
 GLIBC_2.18 aio_error64 F
 GLIBC_2.18 aio_fsync F
 GLIBC_2.18 aio_fsync64 F
-GLIBC_2.18 aio_init F
 GLIBC_2.18 aio_read F
 GLIBC_2.18 aio_read64 F
 GLIBC_2.18 aio_return F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 4c21cbb64d..8db8d27e29 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -591,6 +591,7 @@  GLIBC_2.18 addseverity F
 GLIBC_2.18 adjtime F
 GLIBC_2.18 adjtimex F
 GLIBC_2.18 advance F
+GLIBC_2.18 aio_init F
 GLIBC_2.18 alarm F
 GLIBC_2.18 aligned_alloc F
 GLIBC_2.18 alphasort F
@@ -2415,6 +2416,7 @@  GLIBC_2.34 __wait3_time64 F
 GLIBC_2.34 __wait4_time64 F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
 GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
index a14deaabdb..679050b4b7 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
@@ -5,7 +5,6 @@  GLIBC_2.18 aio_error F
 GLIBC_2.18 aio_error64 F
 GLIBC_2.18 aio_fsync F
 GLIBC_2.18 aio_fsync64 F
-GLIBC_2.18 aio_init F
 GLIBC_2.18 aio_read F
 GLIBC_2.18 aio_read64 F
 GLIBC_2.18 aio_return F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index f83ba2f780..b6cd21ace7 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -1651,6 +1651,7 @@  GLIBC_2.2 _sys_nerr D 0x4
 GLIBC_2.2 _sys_siglist D 0x100
 GLIBC_2.2 _test_and_set F
 GLIBC_2.2 addseverity F
+GLIBC_2.2 aio_init F
 GLIBC_2.2 alphasort64 F
 GLIBC_2.2 argp_err_exit_status D 0x4
 GLIBC_2.2 argp_error F
@@ -2413,6 +2414,7 @@  GLIBC_2.34 __wait3_time64 F
 GLIBC_2.34 __wait4_time64 F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
 GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
index 2c212d29d0..617d124234 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
@@ -4,7 +4,6 @@  GLIBC_2.2 aio_error F
 GLIBC_2.2 aio_error64 F
 GLIBC_2.2 aio_fsync F
 GLIBC_2.2 aio_fsync64 F
-GLIBC_2.2 aio_init F
 GLIBC_2.2 aio_read F
 GLIBC_2.2 aio_read64 F
 GLIBC_2.2 aio_return F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 347bbddb94..65d0dcbe04 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -1649,6 +1649,7 @@  GLIBC_2.2 _sys_nerr D 0x4
 GLIBC_2.2 _sys_siglist D 0x100
 GLIBC_2.2 _test_and_set F
 GLIBC_2.2 addseverity F
+GLIBC_2.2 aio_init F
 GLIBC_2.2 alphasort64 F
 GLIBC_2.2 argp_err_exit_status D 0x4
 GLIBC_2.2 argp_error F
@@ -2411,6 +2412,7 @@  GLIBC_2.34 __wait3_time64 F
 GLIBC_2.34 __wait4_time64 F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
 GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 26b7ab529b..a2b2e09a63 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -1650,6 +1650,7 @@  GLIBC_2.2 _sys_nerr D 0x4
 GLIBC_2.2 _sys_siglist D 0x100
 GLIBC_2.2 _test_and_set F
 GLIBC_2.2 addseverity F
+GLIBC_2.2 aio_init F
 GLIBC_2.2 alphasort64 F
 GLIBC_2.2 argp_err_exit_status D 0x4
 GLIBC_2.2 argp_error F
@@ -2419,6 +2420,7 @@  GLIBC_2.34 __wait3_time64 F
 GLIBC_2.34 __wait4_time64 F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
 GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
index 2c212d29d0..617d124234 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
@@ -4,7 +4,6 @@  GLIBC_2.2 aio_error F
 GLIBC_2.2 aio_error64 F
 GLIBC_2.2 aio_fsync F
 GLIBC_2.2 aio_fsync64 F
-GLIBC_2.2 aio_init F
 GLIBC_2.2 aio_read F
 GLIBC_2.2 aio_read64 F
 GLIBC_2.2 aio_return F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index e667b0e553..78b96a7119 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -1646,6 +1646,7 @@  GLIBC_2.2 _sys_nerr D 0x4
 GLIBC_2.2 _sys_siglist D 0x200
 GLIBC_2.2 _test_and_set F
 GLIBC_2.2 addseverity F
+GLIBC_2.2 aio_init F
 GLIBC_2.2 alphasort64 F
 GLIBC_2.2 argp_err_exit_status D 0x4
 GLIBC_2.2 argp_error F
@@ -2337,6 +2338,7 @@  GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
 GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
index 2c7d661e56..40749a395c 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
@@ -4,7 +4,6 @@  GLIBC_2.2 aio_error F
 GLIBC_2.2 aio_error64 F
 GLIBC_2.2 aio_fsync F
 GLIBC_2.2 aio_fsync64 F
-GLIBC_2.2 aio_init F
 GLIBC_2.2 aio_read F
 GLIBC_2.2 aio_read64 F
 GLIBC_2.2 aio_return F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 89a1cc7da6..98943b6041 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -633,6 +633,7 @@  GLIBC_2.21 addseverity F
 GLIBC_2.21 adjtime F
 GLIBC_2.21 adjtimex F
 GLIBC_2.21 advance F
+GLIBC_2.21 aio_init F
 GLIBC_2.21 alarm F
 GLIBC_2.21 aligned_alloc F
 GLIBC_2.21 alphasort F
@@ -2457,6 +2458,7 @@  GLIBC_2.34 __wait3_time64 F
 GLIBC_2.34 __wait4_time64 F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
 GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
index f600881b44..de354a6bb8 100644
--- a/sysdeps/unix/sysv/linux/nios2/librt.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/librt.abilist
@@ -5,7 +5,6 @@  GLIBC_2.21 aio_error F
 GLIBC_2.21 aio_error64 F
 GLIBC_2.21 aio_fsync F
 GLIBC_2.21 aio_fsync64 F
-GLIBC_2.21 aio_init F
 GLIBC_2.21 aio_read F
 GLIBC_2.21 aio_read64 F
 GLIBC_2.21 aio_return F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index f364c5219e..f5d5c03eb3 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -1480,6 +1480,7 @@  GLIBC_2.1 _sys_errlist D 0x1f4
 GLIBC_2.1 _sys_nerr D 0x4
 GLIBC_2.1 _sys_siglist D 0x100
 GLIBC_2.1 addseverity F
+GLIBC_2.1 aio_init F
 GLIBC_2.1 alphasort64 F
 GLIBC_2.1 argp_err_exit_status D 0x4
 GLIBC_2.1 argp_error F
@@ -2475,6 +2476,7 @@  GLIBC_2.34 __wait3_time64 F
 GLIBC_2.34 __wait4_time64 F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
 GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
index 6ac4f0597e..0114c42067 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
@@ -4,7 +4,6 @@  GLIBC_2.1 aio_error F
 GLIBC_2.1 aio_error64 F
 GLIBC_2.1 aio_fsync F
 GLIBC_2.1 aio_fsync64 F
-GLIBC_2.1 aio_init F
 GLIBC_2.1 aio_read F
 GLIBC_2.1 aio_read64 F
 GLIBC_2.1 aio_return F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index f5bcc78afe..6e99869e4c 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -1480,6 +1480,7 @@  GLIBC_2.1 _sys_errlist D 0x1f4
 GLIBC_2.1 _sys_nerr D 0x4
 GLIBC_2.1 _sys_siglist D 0x100
 GLIBC_2.1 addseverity F
+GLIBC_2.1 aio_init F
 GLIBC_2.1 alphasort64 F
 GLIBC_2.1 argp_err_exit_status D 0x4
 GLIBC_2.1 argp_error F
@@ -2508,6 +2509,7 @@  GLIBC_2.34 __wait3_time64 F
 GLIBC_2.34 __wait4_time64 F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
 GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 6032716053..205768e241 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -633,6 +633,7 @@  GLIBC_2.3 addseverity F
 GLIBC_2.3 adjtime F
 GLIBC_2.3 adjtimex F
 GLIBC_2.3 advance F
+GLIBC_2.3 aio_init F
 GLIBC_2.3 alarm F
 GLIBC_2.3 alphasort F
 GLIBC_2.3 alphasort64 F
@@ -2245,6 +2246,7 @@  GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
 GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
index b3c7afb461..3607639c50 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
@@ -4,7 +4,6 @@  GLIBC_2.3 aio_error F
 GLIBC_2.3 aio_error64 F
 GLIBC_2.3 aio_fsync F
 GLIBC_2.3 aio_fsync64 F
-GLIBC_2.3 aio_init F
 GLIBC_2.3 aio_read F
 GLIBC_2.3 aio_read64 F
 GLIBC_2.3 aio_return F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 8c5494e1dc..fccca7ccc6 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -677,6 +677,7 @@  GLIBC_2.17 addseverity F
 GLIBC_2.17 adjtime F
 GLIBC_2.17 adjtimex F
 GLIBC_2.17 advance F
+GLIBC_2.17 aio_init F
 GLIBC_2.17 alarm F
 GLIBC_2.17 aligned_alloc F
 GLIBC_2.17 alphasort F
@@ -2544,6 +2545,7 @@  GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
 GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
index c41e0e675b..66dc3e4457 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
@@ -5,7 +5,6 @@  GLIBC_2.17 aio_error F
 GLIBC_2.17 aio_error64 F
 GLIBC_2.17 aio_fsync F
 GLIBC_2.17 aio_fsync64 F
-GLIBC_2.17 aio_init F
 GLIBC_2.17 aio_read F
 GLIBC_2.17 aio_read64 F
 GLIBC_2.17 aio_return F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index d7db279c1e..1de14d1195 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -544,6 +544,7 @@  GLIBC_2.33 addmntent F
 GLIBC_2.33 addseverity F
 GLIBC_2.33 adjtime F
 GLIBC_2.33 adjtimex F
+GLIBC_2.33 aio_init F
 GLIBC_2.33 alarm F
 GLIBC_2.33 aligned_alloc F
 GLIBC_2.33 alphasort F
@@ -2109,6 +2110,7 @@  GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
 GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
index c03b8a741e..c588e04ae0 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
@@ -5,7 +5,6 @@  GLIBC_2.33 aio_error F
 GLIBC_2.33 aio_error64 F
 GLIBC_2.33 aio_fsync F
 GLIBC_2.33 aio_fsync64 F
-GLIBC_2.33 aio_init F
 GLIBC_2.33 aio_read F
 GLIBC_2.33 aio_read64 F
 GLIBC_2.33 aio_return F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index ef03dc0f9e..fd243b77de 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -570,6 +570,7 @@  GLIBC_2.27 addmntent F
 GLIBC_2.27 addseverity F
 GLIBC_2.27 adjtime F
 GLIBC_2.27 adjtimex F
+GLIBC_2.27 aio_init F
 GLIBC_2.27 alarm F
 GLIBC_2.27 aligned_alloc F
 GLIBC_2.27 alphasort F
@@ -2309,6 +2310,7 @@  GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
 GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
index 3cc7884927..4be13a5327 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
@@ -5,7 +5,6 @@  GLIBC_2.27 aio_error F
 GLIBC_2.27 aio_error64 F
 GLIBC_2.27 aio_fsync F
 GLIBC_2.27 aio_fsync64 F
-GLIBC_2.27 aio_init F
 GLIBC_2.27 aio_read F
 GLIBC_2.27 aio_read64 F
 GLIBC_2.27 aio_return F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 9118cb68ec..5a9ccc644b 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -1472,6 +1472,7 @@  GLIBC_2.1 _sys_errlist D 0x1f4
 GLIBC_2.1 _sys_nerr D 0x4
 GLIBC_2.1 _sys_siglist D 0x100
 GLIBC_2.1 addseverity F
+GLIBC_2.1 aio_init F
 GLIBC_2.1 alphasort64 F
 GLIBC_2.1 argp_err_exit_status D 0x4
 GLIBC_2.1 argp_error F
@@ -2473,6 +2474,7 @@  GLIBC_2.34 __wait3_time64 F
 GLIBC_2.34 __wait4_time64 F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
 GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
index 6ac4f0597e..0114c42067 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
@@ -4,7 +4,6 @@  GLIBC_2.1 aio_error F
 GLIBC_2.1 aio_error64 F
 GLIBC_2.1 aio_fsync F
 GLIBC_2.1 aio_fsync64 F
-GLIBC_2.1 aio_init F
 GLIBC_2.1 aio_read F
 GLIBC_2.1 aio_read64 F
 GLIBC_2.1 aio_return F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 66c01bd7e7..4b336dcbae 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -570,6 +570,7 @@  GLIBC_2.2 addseverity F
 GLIBC_2.2 adjtime F
 GLIBC_2.2 adjtimex F
 GLIBC_2.2 advance F
+GLIBC_2.2 aio_init F
 GLIBC_2.2 alarm F
 GLIBC_2.2 alphasort F
 GLIBC_2.2 alphasort64 F
@@ -2282,6 +2283,7 @@  GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
 GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
index 80735b140b..97673a21d4 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
@@ -4,7 +4,6 @@  GLIBC_2.2 aio_error F
 GLIBC_2.2 aio_error64 F
 GLIBC_2.2 aio_fsync F
 GLIBC_2.2 aio_fsync64 F
-GLIBC_2.2 aio_init F
 GLIBC_2.2 aio_read F
 GLIBC_2.2 aio_read64 F
 GLIBC_2.2 aio_return F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index c40eb412c2..702fc7cd1c 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -7,6 +7,7 @@  GLIBC_2.0 dlclose F
 GLIBC_2.0 dlerror F
 GLIBC_2.0 dlopen F
 GLIBC_2.0 dlsym F
+GLIBC_2.1 aio_init F
 GLIBC_2.1 dlopen F
 GLIBC_2.1 dlvsym F
 GLIBC_2.10 __cxa_at_quick_exit F
@@ -2328,6 +2329,7 @@  GLIBC_2.34 __wait3_time64 F
 GLIBC_2.34 __wait4_time64 F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
 GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
index 6ac4f0597e..0114c42067 100644
--- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
@@ -4,7 +4,6 @@  GLIBC_2.1 aio_error F
 GLIBC_2.1 aio_error64 F
 GLIBC_2.1 aio_fsync F
 GLIBC_2.1 aio_fsync64 F
-GLIBC_2.1 aio_init F
 GLIBC_2.1 aio_read F
 GLIBC_2.1 aio_read64 F
 GLIBC_2.1 aio_return F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 1412d33835..cca5fe2265 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -7,6 +7,7 @@  GLIBC_2.0 dlclose F
 GLIBC_2.0 dlerror F
 GLIBC_2.0 dlopen F
 GLIBC_2.0 dlsym F
+GLIBC_2.1 aio_init F
 GLIBC_2.1 dlopen F
 GLIBC_2.1 dlvsym F
 GLIBC_2.10 __cxa_at_quick_exit F
@@ -2325,6 +2326,7 @@  GLIBC_2.34 __wait3_time64 F
 GLIBC_2.34 __wait4_time64 F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
 GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
index 6ac4f0597e..0114c42067 100644
--- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
@@ -4,7 +4,6 @@  GLIBC_2.1 aio_error F
 GLIBC_2.1 aio_error64 F
 GLIBC_2.1 aio_fsync F
 GLIBC_2.1 aio_fsync64 F
-GLIBC_2.1 aio_init F
 GLIBC_2.1 aio_read F
 GLIBC_2.1 aio_read64 F
 GLIBC_2.1 aio_return F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 7b55d34753..937efaaba4 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -1474,6 +1474,7 @@  GLIBC_2.1 _sys_errlist D 0x1fc
 GLIBC_2.1 _sys_nerr D 0x4
 GLIBC_2.1 _sys_siglist D 0x100
 GLIBC_2.1 addseverity F
+GLIBC_2.1 aio_init F
 GLIBC_2.1 alphasort64 F
 GLIBC_2.1 argp_err_exit_status D 0x4
 GLIBC_2.1 argp_error F
@@ -2466,6 +2467,7 @@  GLIBC_2.34 __wait3_time64 F
 GLIBC_2.34 __wait4_time64 F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
 GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
index 100bd4fb76..e4e4569d81 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
@@ -4,7 +4,6 @@  GLIBC_2.1 aio_error F
 GLIBC_2.1 aio_error64 F
 GLIBC_2.1 aio_fsync F
 GLIBC_2.1 aio_fsync64 F
-GLIBC_2.1 aio_init F
 GLIBC_2.1 aio_read F
 GLIBC_2.1 aio_read64 F
 GLIBC_2.1 aio_return F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index cfd5f38864..47f96b1480 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -7,6 +7,7 @@  GLIBC_2.0 dlclose F
 GLIBC_2.0 dlerror F
 GLIBC_2.0 dlopen F
 GLIBC_2.0 dlsym F
+GLIBC_2.1 aio_init F
 GLIBC_2.1 dlopen F
 GLIBC_2.1 dlvsym F
 GLIBC_2.10 __cxa_at_quick_exit F
@@ -2302,6 +2303,7 @@  GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
 GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
index c4985067f7..94f5ca8b6f 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
@@ -4,7 +4,6 @@  GLIBC_2.1 aio_error F
 GLIBC_2.1 aio_error64 F
 GLIBC_2.1 aio_fsync F
 GLIBC_2.1 aio_fsync64 F
-GLIBC_2.1 aio_init F
 GLIBC_2.1 aio_read F
 GLIBC_2.1 aio_read64 F
 GLIBC_2.1 aio_return F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 17be05f14f..4ff62311e9 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -559,6 +559,7 @@  GLIBC_2.2.5 addseverity F
 GLIBC_2.2.5 adjtime F
 GLIBC_2.2.5 adjtimex F
 GLIBC_2.2.5 advance F
+GLIBC_2.2.5 aio_init F
 GLIBC_2.2.5 alarm F
 GLIBC_2.2.5 alphasort F
 GLIBC_2.2.5 alphasort64 F
@@ -2260,6 +2261,7 @@  GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
 GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
index a3da4f8e6e..bac8c74b5f 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
@@ -4,7 +4,6 @@  GLIBC_2.2.5 aio_error F
 GLIBC_2.2.5 aio_error64 F
 GLIBC_2.2.5 aio_fsync F
 GLIBC_2.2.5 aio_fsync64 F
-GLIBC_2.2.5 aio_init F
 GLIBC_2.2.5 aio_read F
 GLIBC_2.2.5 aio_read64 F
 GLIBC_2.2.5 aio_return F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index a9db18906b..e34873201d 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -592,6 +592,7 @@  GLIBC_2.16 addseverity F
 GLIBC_2.16 adjtime F
 GLIBC_2.16 adjtimex F
 GLIBC_2.16 advance F
+GLIBC_2.16 aio_init F
 GLIBC_2.16 alarm F
 GLIBC_2.16 aligned_alloc F
 GLIBC_2.16 alphasort F
@@ -2363,6 +2364,7 @@  GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
 GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
index a0069d137b..2e432fe7d6 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
@@ -5,7 +5,6 @@  GLIBC_2.16 aio_error F
 GLIBC_2.16 aio_error64 F
 GLIBC_2.16 aio_fsync F
 GLIBC_2.16 aio_fsync64 F
-GLIBC_2.16 aio_init F
 GLIBC_2.16 aio_read F
 GLIBC_2.16 aio_read64 F
 GLIBC_2.16 aio_return F