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