[10/34] Linux: Move aio_init from librt into libc
Checks
Context |
Check |
Description |
dj/TryBot-apply_patch |
success
|
Patch applied to master at the time it was sent
|
Commit Message
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
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, ¶m);
> + __pthread_getschedparam (__pthread_self (), &policy, ¶m);
> 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, ¶m);
> + __pthread_getschedparam (self, &policy, ¶m);
>
> 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, ¶m);
> + __pthread_setschedparam (self, policy, ¶m);
> }
>
> /* 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.
@@ -70,4 +70,5 @@ __pthread_getschedparam (pthread_t threadid, int *policy,
return result;
}
+libc_hidden_def (__pthread_getschedparam)
strong_alias (__pthread_getschedparam, pthread_getschedparam)
@@ -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 \
@@ -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;
@@ -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, ¶m);
+ __pthread_getschedparam (__pthread_self (), &policy, ¶m);
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, ¶m);
+ __pthread_getschedparam (self, &policy, ¶m);
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, ¶m);
+ __pthread_setschedparam (self, policy, ¶m);
}
/* 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 */
@@ -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
@@ -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)
@@ -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 */
@@ -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)
@@ -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,
@@ -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
@@ -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
@@ -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
@@ -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)
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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