diff mbox series

[14/34] Linux: Move aio_read, aio_read64 into libc

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

Checks

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

Commit Message

Florian Weimer June 17, 2021, 6:58 p.m. UTC
Both symbols have to be moved at the same time because they
are intertwined for __WORDSIZE == 64.  The treatment of this case
is also changed to match more closely how the other files suppress
the declaration of the *64 identifier.

The symbols were moved using scripts/move-symbol-to-libc.py.
---
 rt/Makefile                                   |  4 +-
 rt/Versions                                   |  6 ++-
 rt/aio_read.c                                 | 37 +++++++++++++++++--
 rt/aio_read64.c                               | 20 ++++++++--
 sysdeps/unix/sysv/linux/aarch64/libc.abilist  |  4 ++
 sysdeps/unix/sysv/linux/aarch64/librt.abilist |  2 -
 sysdeps/unix/sysv/linux/alpha/libc.abilist    |  4 ++
 sysdeps/unix/sysv/linux/alpha/librt.abilist   |  2 -
 sysdeps/unix/sysv/linux/arc/libc.abilist      |  4 ++
 sysdeps/unix/sysv/linux/arc/librt.abilist     |  2 -
 sysdeps/unix/sysv/linux/arm/be/libc.abilist   |  4 ++
 sysdeps/unix/sysv/linux/arm/be/librt.abilist  |  2 -
 sysdeps/unix/sysv/linux/arm/le/libc.abilist   |  4 ++
 sysdeps/unix/sysv/linux/arm/le/librt.abilist  |  2 -
 sysdeps/unix/sysv/linux/csky/libc.abilist     |  4 ++
 sysdeps/unix/sysv/linux/csky/librt.abilist    |  2 -
 sysdeps/unix/sysv/linux/hppa/libc.abilist     |  4 ++
 sysdeps/unix/sysv/linux/hppa/librt.abilist    |  2 -
 sysdeps/unix/sysv/linux/i386/libc.abilist     |  4 ++
 sysdeps/unix/sysv/linux/i386/librt.abilist    |  2 -
 sysdeps/unix/sysv/linux/ia64/libc.abilist     |  4 ++
 sysdeps/unix/sysv/linux/ia64/librt.abilist    |  2 -
 .../sysv/linux/m68k/coldfire/libc.abilist     |  4 ++
 .../sysv/linux/m68k/coldfire/librt.abilist    |  2 -
 .../unix/sysv/linux/m68k/m680x0/libc.abilist  |  4 ++
 .../unix/sysv/linux/m68k/m680x0/librt.abilist |  2 -
 .../sysv/linux/microblaze/be/libc.abilist     |  4 ++
 .../sysv/linux/microblaze/be/librt.abilist    |  2 -
 .../sysv/linux/microblaze/le/libc.abilist     |  4 ++
 .../sysv/linux/microblaze/le/librt.abilist    |  2 -
 .../sysv/linux/mips/mips32/fpu/libc.abilist   |  4 ++
 .../unix/sysv/linux/mips/mips32/librt.abilist |  2 -
 .../sysv/linux/mips/mips32/nofpu/libc.abilist |  4 ++
 .../sysv/linux/mips/mips64/n32/libc.abilist   |  4 ++
 .../sysv/linux/mips/mips64/n32/librt.abilist  |  2 -
 .../sysv/linux/mips/mips64/n64/libc.abilist   |  4 ++
 .../sysv/linux/mips/mips64/n64/librt.abilist  |  2 -
 sysdeps/unix/sysv/linux/nios2/libc.abilist    |  4 ++
 sysdeps/unix/sysv/linux/nios2/librt.abilist   |  2 -
 .../linux/powerpc/powerpc32/fpu/libc.abilist  |  4 ++
 .../linux/powerpc/powerpc32/librt.abilist     |  2 -
 .../powerpc/powerpc32/nofpu/libc.abilist      |  4 ++
 .../linux/powerpc/powerpc64/be/libc.abilist   |  4 ++
 .../linux/powerpc/powerpc64/be/librt.abilist  |  2 -
 .../linux/powerpc/powerpc64/le/libc.abilist   |  4 ++
 .../linux/powerpc/powerpc64/le/librt.abilist  |  2 -
 .../unix/sysv/linux/riscv/rv32/libc.abilist   |  4 ++
 .../unix/sysv/linux/riscv/rv32/librt.abilist  |  2 -
 .../unix/sysv/linux/riscv/rv64/libc.abilist   |  4 ++
 .../unix/sysv/linux/riscv/rv64/librt.abilist  |  2 -
 .../unix/sysv/linux/s390/s390-32/libc.abilist |  4 ++
 .../sysv/linux/s390/s390-32/librt.abilist     |  2 -
 .../unix/sysv/linux/s390/s390-64/libc.abilist |  4 ++
 .../sysv/linux/s390/s390-64/librt.abilist     |  2 -
 sysdeps/unix/sysv/linux/sh/be/libc.abilist    |  4 ++
 sysdeps/unix/sysv/linux/sh/be/librt.abilist   |  2 -
 sysdeps/unix/sysv/linux/sh/le/libc.abilist    |  4 ++
 sysdeps/unix/sysv/linux/sh/le/librt.abilist   |  2 -
 .../sysv/linux/sparc/sparc32/libc.abilist     |  4 ++
 .../sysv/linux/sparc/sparc32/librt.abilist    |  2 -
 .../sysv/linux/sparc/sparc64/libc.abilist     |  4 ++
 .../sysv/linux/sparc/sparc64/librt.abilist    |  2 -
 .../unix/sysv/linux/wordsize-64/aio_read.c    |  7 ----
 .../unix/sysv/linux/wordsize-64/aio_read64.c  |  1 -
 .../unix/sysv/linux/x86_64/64/libc.abilist    |  4 ++
 .../unix/sysv/linux/x86_64/64/librt.abilist   |  2 -
 .../unix/sysv/linux/x86_64/x32/libc.abilist   |  4 ++
 .../unix/sysv/linux/x86_64/x32/librt.abilist  |  2 -
 68 files changed, 185 insertions(+), 78 deletions(-)
 delete mode 100644 sysdeps/unix/sysv/linux/wordsize-64/aio_read.c
 delete mode 100644 sysdeps/unix/sysv/linux/wordsize-64/aio_read64.c

Comments

Adhemerval Zanella June 23, 2021, 5:51 p.m. UTC | #1
On 17/06/2021 15:58, Florian Weimer via Libc-alpha wrote:
> Both symbols have to be moved at the same time because they
> are intertwined for __WORDSIZE == 64.  The treatment of this case
> is also changed to match more closely how the other files suppress
> the declaration of the *64 identifier.

As a side note, I think __WORDSIZE is not reall correct here since
we not have 32-bit architecture that only defines 64-bit off_t.
This will incur in a double implementation that would be essentially
the same, it should not be an error but I think we should fix it
eventually.

> 
> The symbols were moved using scripts/move-symbol-to-libc.py.

LGTM, thanks.  Just a nit below.

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

> ---
>  rt/Makefile                                   |  4 +-
>  rt/Versions                                   |  6 ++-
>  rt/aio_read.c                                 | 37 +++++++++++++++++--
>  rt/aio_read64.c                               | 20 ++++++++--
>  sysdeps/unix/sysv/linux/aarch64/libc.abilist  |  4 ++
>  sysdeps/unix/sysv/linux/aarch64/librt.abilist |  2 -
>  sysdeps/unix/sysv/linux/alpha/libc.abilist    |  4 ++
>  sysdeps/unix/sysv/linux/alpha/librt.abilist   |  2 -
>  sysdeps/unix/sysv/linux/arc/libc.abilist      |  4 ++
>  sysdeps/unix/sysv/linux/arc/librt.abilist     |  2 -
>  sysdeps/unix/sysv/linux/arm/be/libc.abilist   |  4 ++
>  sysdeps/unix/sysv/linux/arm/be/librt.abilist  |  2 -
>  sysdeps/unix/sysv/linux/arm/le/libc.abilist   |  4 ++
>  sysdeps/unix/sysv/linux/arm/le/librt.abilist  |  2 -
>  sysdeps/unix/sysv/linux/csky/libc.abilist     |  4 ++
>  sysdeps/unix/sysv/linux/csky/librt.abilist    |  2 -
>  sysdeps/unix/sysv/linux/hppa/libc.abilist     |  4 ++
>  sysdeps/unix/sysv/linux/hppa/librt.abilist    |  2 -
>  sysdeps/unix/sysv/linux/i386/libc.abilist     |  4 ++
>  sysdeps/unix/sysv/linux/i386/librt.abilist    |  2 -
>  sysdeps/unix/sysv/linux/ia64/libc.abilist     |  4 ++
>  sysdeps/unix/sysv/linux/ia64/librt.abilist    |  2 -
>  .../sysv/linux/m68k/coldfire/libc.abilist     |  4 ++
>  .../sysv/linux/m68k/coldfire/librt.abilist    |  2 -
>  .../unix/sysv/linux/m68k/m680x0/libc.abilist  |  4 ++
>  .../unix/sysv/linux/m68k/m680x0/librt.abilist |  2 -
>  .../sysv/linux/microblaze/be/libc.abilist     |  4 ++
>  .../sysv/linux/microblaze/be/librt.abilist    |  2 -
>  .../sysv/linux/microblaze/le/libc.abilist     |  4 ++
>  .../sysv/linux/microblaze/le/librt.abilist    |  2 -
>  .../sysv/linux/mips/mips32/fpu/libc.abilist   |  4 ++
>  .../unix/sysv/linux/mips/mips32/librt.abilist |  2 -
>  .../sysv/linux/mips/mips32/nofpu/libc.abilist |  4 ++
>  .../sysv/linux/mips/mips64/n32/libc.abilist   |  4 ++
>  .../sysv/linux/mips/mips64/n32/librt.abilist  |  2 -
>  .../sysv/linux/mips/mips64/n64/libc.abilist   |  4 ++
>  .../sysv/linux/mips/mips64/n64/librt.abilist  |  2 -
>  sysdeps/unix/sysv/linux/nios2/libc.abilist    |  4 ++
>  sysdeps/unix/sysv/linux/nios2/librt.abilist   |  2 -
>  .../linux/powerpc/powerpc32/fpu/libc.abilist  |  4 ++
>  .../linux/powerpc/powerpc32/librt.abilist     |  2 -
>  .../powerpc/powerpc32/nofpu/libc.abilist      |  4 ++
>  .../linux/powerpc/powerpc64/be/libc.abilist   |  4 ++
>  .../linux/powerpc/powerpc64/be/librt.abilist  |  2 -
>  .../linux/powerpc/powerpc64/le/libc.abilist   |  4 ++
>  .../linux/powerpc/powerpc64/le/librt.abilist  |  2 -
>  .../unix/sysv/linux/riscv/rv32/libc.abilist   |  4 ++
>  .../unix/sysv/linux/riscv/rv32/librt.abilist  |  2 -
>  .../unix/sysv/linux/riscv/rv64/libc.abilist   |  4 ++
>  .../unix/sysv/linux/riscv/rv64/librt.abilist  |  2 -
>  .../unix/sysv/linux/s390/s390-32/libc.abilist |  4 ++
>  .../sysv/linux/s390/s390-32/librt.abilist     |  2 -
>  .../unix/sysv/linux/s390/s390-64/libc.abilist |  4 ++
>  .../sysv/linux/s390/s390-64/librt.abilist     |  2 -
>  sysdeps/unix/sysv/linux/sh/be/libc.abilist    |  4 ++
>  sysdeps/unix/sysv/linux/sh/be/librt.abilist   |  2 -
>  sysdeps/unix/sysv/linux/sh/le/libc.abilist    |  4 ++
>  sysdeps/unix/sysv/linux/sh/le/librt.abilist   |  2 -
>  .../sysv/linux/sparc/sparc32/libc.abilist     |  4 ++
>  .../sysv/linux/sparc/sparc32/librt.abilist    |  2 -
>  .../sysv/linux/sparc/sparc64/libc.abilist     |  4 ++
>  .../sysv/linux/sparc/sparc64/librt.abilist    |  2 -
>  .../unix/sysv/linux/wordsize-64/aio_read.c    |  7 ----
>  .../unix/sysv/linux/wordsize-64/aio_read64.c  |  1 -
>  .../unix/sysv/linux/x86_64/64/libc.abilist    |  4 ++
>  .../unix/sysv/linux/x86_64/64/librt.abilist   |  2 -
>  .../unix/sysv/linux/x86_64/x32/libc.abilist   |  4 ++
>  .../unix/sysv/linux/x86_64/x32/librt.abilist  |  2 -
>  68 files changed, 185 insertions(+), 78 deletions(-)
>  delete mode 100644 sysdeps/unix/sysv/linux/wordsize-64/aio_read.c
>  delete mode 100644 sysdeps/unix/sysv/linux/wordsize-64/aio_read64.c
> 
> diff --git a/rt/Makefile b/rt/Makefile
> index ca8c818a25..f080be56d5 100644
> --- a/rt/Makefile
> +++ b/rt/Makefile
> @@ -29,8 +29,6 @@ routines = \
>    shm_unlink \
>  
>  librt-routines = \
> -  aio_read \
> -  aio_read64 \
>    aio_return \
>    aio_suspend \
>    aio_write \
> @@ -62,6 +60,8 @@ $(librt-routines-var) += \
>    aio_fsync \
>    aio_misc \
>    aio_notify \
> +  aio_read \
> +  aio_read64 \
>    aio_sigqueue \
>  
>  tests := tst-shm tst-timer tst-timer2 \

Ok.

> diff --git a/rt/Versions b/rt/Versions
> index 1a0aa77fd0..6db40bebc4 100644
> --- a/rt/Versions
> +++ b/rt/Versions
> @@ -8,6 +8,8 @@ libc {
>      aio_error64;
>      aio_fsync;
>      aio_fsync64;
> +    aio_read;
> +    aio_read64;
>  %endif
>    }
>    GLIBC_2.2 {
> @@ -23,6 +25,8 @@ libc {
>      aio_error64;
>      aio_fsync;
>      aio_fsync64;
> +    aio_read;
> +    aio_read64;
>  %endif
>      shm_open;
>      shm_unlink;
> @@ -51,9 +55,9 @@ librt {
>      aio_fsync;
>      aio_fsync64;
>      aio_init;
> -%endif
>      aio_read;
>      aio_read64;
> +%endif
>      aio_return;
>      aio_return64;
>      aio_suspend;
__WORDSIZE

> diff --git a/rt/aio_read.c b/rt/aio_read.c
> index 4698e48b1c..1b7a7fcfa9 100644
> --- a/rt/aio_read.c
> +++ b/rt/aio_read.c
> @@ -17,14 +17,45 @@
>     License along with the GNU C Library; if not, see
>     <https://www.gnu.org/licenses/>.  */
>  
> -#include <aio.h>
> +#include <bits/wordsize.h>
> +#if __WORDSIZE == 64
> +/* We use an UGLY hack to prevent gcc from finding us cheating.  The
> +   implementation of aio_read and aio_read64 are identical and so
> +   we want to avoid code duplication by using aliases.  But gcc sees
> +   the different parameter lists and prints a warning.  We define here
> +   a function so that aio_read64 has no prototype.  */

I think there is no need to replicate this comment anymore, this 'hack'
is used on multiple places (LFS).

> +# define aio_read64 XXX
> +# include <aio.h>
> +/* And undo the hack.  */
> +# undef aio_read64
> +#else
> +# include <aio.h>
> +#endif
>  
>  #include <aio_misc.h>
> -
> +#include <shlib-compat.h>
>  
>  int
> -aio_read (struct aiocb *aiocbp)
> +__aio_read (struct aiocb *aiocbp)
>  {
>    return (__aio_enqueue_request ((aiocb_union *) aiocbp, LIO_READ) == NULL
>  	  ? -1 : 0);
>  }
> +
> +#if PTHREAD_IN_LIBC
> +versioned_symbol (libc, __aio_read, aio_read, GLIBC_2_34);
> +# if __WORDSIZE == 64
> +versioned_symbol (libc, __aio_read, aio_read64, GLIBC_2_34);
> +# endif
> +# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_34)
> +compat_symbol (librt, __aio_read, aio_read, GLIBC_2_1);
> +#  if __WORDSIZE == 64
> +compat_symbol (librt, __aio_read, aio_read64, GLIBC_2_1);
> +#  endif
> +# endif
> +#else /* !PTHREAD_IN_LIBC */
> +strong_alias (__aio_read, aio_read)
> +# if __WORDSIZE == 64
> +weak_alias (__aio_read, aio_read64)
> +#endif
> +#endif  /* !PTHREAD_IN_LIBC */

Ok.

> diff --git a/rt/aio_read64.c b/rt/aio_read64.c
> index 26b9b0b380..3aa169fbf3 100644
> --- a/rt/aio_read64.c
> +++ b/rt/aio_read64.c
> @@ -17,14 +17,26 @@
>     License along with the GNU C Library; if not, see
>     <https://www.gnu.org/licenses/>.  */
>  
> -#include <aio.h>
> -
> -#include <aio_misc.h>
> +#include <bits/wordsize.h>
> +#if __WORDSIZE != 64
>  
> +# include <aio.h>
> +# include <aio_misc.h>
> +# include <shlib-compat.h>
>  
>  int
> -aio_read64 (struct aiocb64 *aiocbp)
> +__aio_read64 (struct aiocb64 *aiocbp)
>  {
>    return (__aio_enqueue_request ((aiocb_union *) aiocbp, LIO_READ64) == NULL
>  	  ? -1 : 0);
>  }
> +
> +# if PTHREAD_IN_LIBC
> +versioned_symbol (libc, __aio_read64, aio_read64, GLIBC_2_34);
> +#  if OTHER_SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_34)
> +compat_symbol (librt, __aio_read64, aio_read64, GLIBC_2_1);
> +#  endif
> +# else /* !PTHREAD_IN_LIBC */
> +strong_alias (__aio_read64, aio_read64)
> +# endif
> +#endif /* __WORDSIZE != 64 */
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index cf141fdf08..d210f88f0e 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -596,6 +596,8 @@ 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 alarm F
>  GLIBC_2.17 aligned_alloc F
>  GLIBC_2.17 alphasort F
> @@ -2362,6 +2364,8 @@ GLIBC_2.34 aio_error64 F
>  GLIBC_2.34 aio_fsync F
>  GLIBC_2.34 aio_fsync64 F
>  GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 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 1519e07346..58a853230e 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> @@ -1,6 +1,4 @@
>  GLIBC_2.17 __mq_open_2 F
> -GLIBC_2.17 aio_read F
> -GLIBC_2.17 aio_read64 F
>  GLIBC_2.17 aio_return F
>  GLIBC_2.17 aio_return64 F
>  GLIBC_2.17 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index 8d58f3ea87..08ea11c9fe 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -1509,6 +1509,8 @@ 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 alphasort64 F
>  GLIBC_2.1 argp_err_exit_status D 0x4
>  GLIBC_2.1 argp_error F
> @@ -2457,6 +2459,8 @@ GLIBC_2.34 aio_error64 F
>  GLIBC_2.34 aio_fsync F
>  GLIBC_2.34 aio_fsync64 F
>  GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 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 f4dd36f97b..2afa483191 100644
> --- a/sysdeps/unix/sysv/linux/alpha/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.1 aio_read F
> -GLIBC_2.1 aio_read64 F
>  GLIBC_2.1 aio_return F
>  GLIBC_2.1 aio_return64 F
>  GLIBC_2.1 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index 7579936aca..817c4c6ff0 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -557,6 +557,8 @@ 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 alarm F
>  GLIBC_2.32 aligned_alloc F
>  GLIBC_2.32 alphasort F
> @@ -2121,6 +2123,8 @@ GLIBC_2.34 aio_error64 F
>  GLIBC_2.34 aio_fsync F
>  GLIBC_2.34 aio_fsync64 F
>  GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 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 15b9acf33c..e49be2ff36 100644
> --- a/sysdeps/unix/sysv/linux/arc/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/librt.abilist
> @@ -1,6 +1,4 @@
>  GLIBC_2.32 __mq_open_2 F
> -GLIBC_2.32 aio_read F
> -GLIBC_2.32 aio_read64 F
>  GLIBC_2.32 aio_return F
>  GLIBC_2.32 aio_return64 F
>  GLIBC_2.32 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index 566d18d20a..0be92527af 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -285,6 +285,8 @@ GLIBC_2.34 aio_error64 F
>  GLIBC_2.34 aio_fsync F
>  GLIBC_2.34 aio_fsync64 F
>  GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 F
>  GLIBC_2.34 call_once F
>  GLIBC_2.34 cnd_broadcast F
>  GLIBC_2.34 cnd_destroy F
> @@ -995,6 +997,8 @@ 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 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 1fa78d6811..9a68bb887b 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> @@ -3,8 +3,6 @@ GLIBC_2.34 __mq_timedreceive_time64 F
>  GLIBC_2.34 __mq_timedsend_time64 F
>  GLIBC_2.34 __timer_gettime64 F
>  GLIBC_2.34 __timer_settime64 F
> -GLIBC_2.4 aio_read F
> -GLIBC_2.4 aio_read64 F
>  GLIBC_2.4 aio_return F
>  GLIBC_2.4 aio_return64 F
>  GLIBC_2.4 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index 40da72fe92..615b37769a 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -282,6 +282,8 @@ GLIBC_2.34 aio_error64 F
>  GLIBC_2.34 aio_fsync F
>  GLIBC_2.34 aio_fsync64 F
>  GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 F
>  GLIBC_2.34 call_once F
>  GLIBC_2.34 cnd_broadcast F
>  GLIBC_2.34 cnd_destroy F
> @@ -992,6 +994,8 @@ 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 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 1fa78d6811..9a68bb887b 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> @@ -3,8 +3,6 @@ GLIBC_2.34 __mq_timedreceive_time64 F
>  GLIBC_2.34 __mq_timedsend_time64 F
>  GLIBC_2.34 __timer_gettime64 F
>  GLIBC_2.34 __timer_settime64 F
> -GLIBC_2.4 aio_read F
> -GLIBC_2.4 aio_read64 F
>  GLIBC_2.4 aio_return F
>  GLIBC_2.4 aio_return64 F
>  GLIBC_2.4 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index b0e1eab37e..e77bb5b57b 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -571,6 +571,8 @@ 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 alarm F
>  GLIBC_2.29 aligned_alloc F
>  GLIBC_2.29 alphasort F
> @@ -2381,6 +2383,8 @@ GLIBC_2.34 aio_error64 F
>  GLIBC_2.34 aio_fsync F
>  GLIBC_2.34 aio_fsync64 F
>  GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 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 9c3edc9f2f..93475f5bd5 100644
> --- a/sysdeps/unix/sysv/linux/csky/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/librt.abilist
> @@ -1,6 +1,4 @@
>  GLIBC_2.29 __mq_open_2 F
> -GLIBC_2.29 aio_read F
> -GLIBC_2.29 aio_read64 F
>  GLIBC_2.29 aio_return F
>  GLIBC_2.29 aio_return64 F
>  GLIBC_2.29 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index 463b498665..12704a350a 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -10,6 +10,8 @@ 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 dlopen F
>  GLIBC_2.1 dlvsym F
>  GLIBC_2.10 __cxa_at_quick_exit F
> @@ -2335,6 +2337,8 @@ GLIBC_2.34 aio_error64 F
>  GLIBC_2.34 aio_fsync F
>  GLIBC_2.34 aio_fsync64 F
>  GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 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 8ac375872c..0402dcddcc 100644
> --- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.1 aio_read F
> -GLIBC_2.1 aio_read64 F
>  GLIBC_2.1 aio_return F
>  GLIBC_2.1 aio_return64 F
>  GLIBC_2.1 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index 2015282000..67d1fbcade 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -1482,6 +1482,8 @@ 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 alphasort64 F
>  GLIBC_2.1 argp_err_exit_status D 0x4
>  GLIBC_2.1 argp_error F
> @@ -2519,6 +2521,8 @@ GLIBC_2.34 aio_error64 F
>  GLIBC_2.34 aio_fsync F
>  GLIBC_2.34 aio_fsync64 F
>  GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 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 8ac375872c..0402dcddcc 100644
> --- a/sysdeps/unix/sysv/linux/i386/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.1 aio_read F
> -GLIBC_2.1 aio_read64 F
>  GLIBC_2.1 aio_return F
>  GLIBC_2.1 aio_return64 F
>  GLIBC_2.1 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index f83ba75cac..83d6bbfdf2 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -10,6 +10,8 @@ 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 dlopen F
>  GLIBC_2.1 dlvsym F
>  GLIBC_2.10 __cxa_at_quick_exit F
> @@ -2295,6 +2297,8 @@ GLIBC_2.34 aio_error64 F
>  GLIBC_2.34 aio_fsync F
>  GLIBC_2.34 aio_fsync64 F
>  GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 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 38dd6dfb53..152692a5a6 100644
> --- a/sysdeps/unix/sysv/linux/ia64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.1 aio_read F
> -GLIBC_2.1 aio_read64 F
>  GLIBC_2.1 aio_return F
>  GLIBC_2.1 aio_return64 F
>  GLIBC_2.1 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index a0ca9ddc48..537df59369 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -286,6 +286,8 @@ GLIBC_2.34 aio_error64 F
>  GLIBC_2.34 aio_fsync F
>  GLIBC_2.34 aio_fsync64 F
>  GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 F
>  GLIBC_2.34 call_once F
>  GLIBC_2.34 cnd_broadcast F
>  GLIBC_2.34 cnd_destroy F
> @@ -983,6 +985,8 @@ 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 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 1fa78d6811..9a68bb887b 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> @@ -3,8 +3,6 @@ GLIBC_2.34 __mq_timedreceive_time64 F
>  GLIBC_2.34 __mq_timedsend_time64 F
>  GLIBC_2.34 __timer_gettime64 F
>  GLIBC_2.34 __timer_settime64 F
> -GLIBC_2.4 aio_read F
> -GLIBC_2.4 aio_read64 F
>  GLIBC_2.4 aio_return F
>  GLIBC_2.4 aio_return64 F
>  GLIBC_2.4 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index bef73ca536..fefee687b2 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -1480,6 +1480,8 @@ 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 alphasort64 F
>  GLIBC_2.1 argp_err_exit_status D 0x4
>  GLIBC_2.1 argp_error F
> @@ -2462,6 +2464,8 @@ GLIBC_2.34 aio_error64 F
>  GLIBC_2.34 aio_fsync F
>  GLIBC_2.34 aio_fsync64 F
>  GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 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 8ac375872c..0402dcddcc 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.1 aio_read F
> -GLIBC_2.1 aio_read64 F
>  GLIBC_2.1 aio_return F
>  GLIBC_2.1 aio_return64 F
>  GLIBC_2.1 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index 1f2c7f0fd9..635b62cd31 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -598,6 +598,8 @@ 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 alarm F
>  GLIBC_2.18 aligned_alloc F
>  GLIBC_2.18 alphasort F
> @@ -2432,6 +2434,8 @@ GLIBC_2.34 aio_error64 F
>  GLIBC_2.34 aio_fsync F
>  GLIBC_2.34 aio_fsync64 F
>  GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 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 87eeccd69c..34f5bc3964 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> @@ -1,6 +1,4 @@
>  GLIBC_2.18 __mq_open_2 F
> -GLIBC_2.18 aio_read F
> -GLIBC_2.18 aio_read64 F
>  GLIBC_2.18 aio_return F
>  GLIBC_2.18 aio_return64 F
>  GLIBC_2.18 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index 191db5f985..cce81d50da 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -598,6 +598,8 @@ 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 alarm F
>  GLIBC_2.18 aligned_alloc F
>  GLIBC_2.18 alphasort F
> @@ -2429,6 +2431,8 @@ GLIBC_2.34 aio_error64 F
>  GLIBC_2.34 aio_fsync F
>  GLIBC_2.34 aio_fsync64 F
>  GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 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 87eeccd69c..34f5bc3964 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> @@ -1,6 +1,4 @@
>  GLIBC_2.18 __mq_open_2 F
> -GLIBC_2.18 aio_read F
> -GLIBC_2.18 aio_read64 F
>  GLIBC_2.18 aio_return F
>  GLIBC_2.18 aio_return64 F
>  GLIBC_2.18 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index 5eb630a9f5..d4e0f597ba 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -1658,6 +1658,8 @@ 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 alphasort64 F
>  GLIBC_2.2 argp_err_exit_status D 0x4
>  GLIBC_2.2 argp_error F
> @@ -2427,6 +2429,8 @@ GLIBC_2.34 aio_error64 F
>  GLIBC_2.34 aio_fsync F
>  GLIBC_2.34 aio_fsync64 F
>  GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 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 9e2c283942..d886f0376c 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.2 aio_read F
> -GLIBC_2.2 aio_read64 F
>  GLIBC_2.2 aio_return F
>  GLIBC_2.2 aio_return64 F
>  GLIBC_2.2 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index a1b8e02ca4..757c40c34c 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -1656,6 +1656,8 @@ 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 alphasort64 F
>  GLIBC_2.2 argp_err_exit_status D 0x4
>  GLIBC_2.2 argp_error F
> @@ -2425,6 +2427,8 @@ GLIBC_2.34 aio_error64 F
>  GLIBC_2.34 aio_fsync F
>  GLIBC_2.34 aio_fsync64 F
>  GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 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 dd33f448b7..d1c919b14f 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -1657,6 +1657,8 @@ 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 alphasort64 F
>  GLIBC_2.2 argp_err_exit_status D 0x4
>  GLIBC_2.2 argp_error F
> @@ -2433,6 +2435,8 @@ GLIBC_2.34 aio_error64 F
>  GLIBC_2.34 aio_fsync F
>  GLIBC_2.34 aio_fsync64 F
>  GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 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 9e2c283942..d886f0376c 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.2 aio_read F
> -GLIBC_2.2 aio_read64 F
>  GLIBC_2.2 aio_return F
>  GLIBC_2.2 aio_return64 F
>  GLIBC_2.2 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index efda95dd32..6c3dd08461 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -1653,6 +1653,8 @@ 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 alphasort64 F
>  GLIBC_2.2 argp_err_exit_status D 0x4
>  GLIBC_2.2 argp_error F
> @@ -2351,6 +2353,8 @@ GLIBC_2.34 aio_error64 F
>  GLIBC_2.34 aio_fsync F
>  GLIBC_2.34 aio_fsync64 F
>  GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 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 848a39faae..6c94c34024 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.2 aio_read F
> -GLIBC_2.2 aio_read64 F
>  GLIBC_2.2 aio_return F
>  GLIBC_2.2 aio_return64 F
>  GLIBC_2.2 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index e2739a9145..160e1d491e 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -640,6 +640,8 @@ 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 alarm F
>  GLIBC_2.21 aligned_alloc F
>  GLIBC_2.21 alphasort F
> @@ -2471,6 +2473,8 @@ GLIBC_2.34 aio_error64 F
>  GLIBC_2.34 aio_fsync F
>  GLIBC_2.34 aio_fsync64 F
>  GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 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 24472cb04f..7d197b8c5d 100644
> --- a/sysdeps/unix/sysv/linux/nios2/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/librt.abilist
> @@ -1,6 +1,4 @@
>  GLIBC_2.21 __mq_open_2 F
> -GLIBC_2.21 aio_read F
> -GLIBC_2.21 aio_read64 F
>  GLIBC_2.21 aio_return F
>  GLIBC_2.21 aio_return64 F
>  GLIBC_2.21 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index 6c816268cd..2923d162e0 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -1487,6 +1487,8 @@ 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 alphasort64 F
>  GLIBC_2.1 argp_err_exit_status D 0x4
>  GLIBC_2.1 argp_error F
> @@ -2489,6 +2491,8 @@ GLIBC_2.34 aio_error64 F
>  GLIBC_2.34 aio_fsync F
>  GLIBC_2.34 aio_fsync64 F
>  GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 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 8ac375872c..0402dcddcc 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.1 aio_read F
> -GLIBC_2.1 aio_read64 F
>  GLIBC_2.1 aio_return F
>  GLIBC_2.1 aio_return64 F
>  GLIBC_2.1 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index 03dadcef85..b6feabe5e4 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -1487,6 +1487,8 @@ 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 alphasort64 F
>  GLIBC_2.1 argp_err_exit_status D 0x4
>  GLIBC_2.1 argp_error F
> @@ -2522,6 +2524,8 @@ GLIBC_2.34 aio_error64 F
>  GLIBC_2.34 aio_fsync F
>  GLIBC_2.34 aio_fsync64 F
>  GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 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 c355eb4607..b149e31698 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -640,6 +640,8 @@ 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 alarm F
>  GLIBC_2.3 alphasort F
>  GLIBC_2.3 alphasort64 F
> @@ -2259,6 +2261,8 @@ GLIBC_2.34 aio_error64 F
>  GLIBC_2.34 aio_fsync F
>  GLIBC_2.34 aio_fsync64 F
>  GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 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 951344a6ef..d0ddb7852e 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.3 aio_read F
> -GLIBC_2.3 aio_read64 F
>  GLIBC_2.3 aio_return F
>  GLIBC_2.3 aio_return64 F
>  GLIBC_2.3 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index abe39f4a96..607abc7f32 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -684,6 +684,8 @@ 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 alarm F
>  GLIBC_2.17 aligned_alloc F
>  GLIBC_2.17 alphasort F
> @@ -2558,6 +2560,8 @@ GLIBC_2.34 aio_error64 F
>  GLIBC_2.34 aio_fsync F
>  GLIBC_2.34 aio_fsync64 F
>  GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 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 1519e07346..58a853230e 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> @@ -1,6 +1,4 @@
>  GLIBC_2.17 __mq_open_2 F
> -GLIBC_2.17 aio_read F
> -GLIBC_2.17 aio_read64 F
>  GLIBC_2.17 aio_return F
>  GLIBC_2.17 aio_return64 F
>  GLIBC_2.17 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index 585c9b7cf7..de26c22e23 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -551,6 +551,8 @@ 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 alarm F
>  GLIBC_2.33 aligned_alloc F
>  GLIBC_2.33 alphasort F
> @@ -2123,6 +2125,8 @@ GLIBC_2.34 aio_error64 F
>  GLIBC_2.34 aio_fsync F
>  GLIBC_2.34 aio_fsync64 F
>  GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 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 8e30efa6a1..8e15ebe652 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> @@ -1,6 +1,4 @@
>  GLIBC_2.33 __mq_open_2 F
> -GLIBC_2.33 aio_read F
> -GLIBC_2.33 aio_read64 F
>  GLIBC_2.33 aio_return F
>  GLIBC_2.33 aio_return64 F
>  GLIBC_2.33 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index d8aa40cb34..d0ca205432 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -577,6 +577,8 @@ 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 alarm F
>  GLIBC_2.27 aligned_alloc F
>  GLIBC_2.27 alphasort F
> @@ -2323,6 +2325,8 @@ GLIBC_2.34 aio_error64 F
>  GLIBC_2.34 aio_fsync F
>  GLIBC_2.34 aio_fsync64 F
>  GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 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 7145c7d249..fe48c3cfea 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> @@ -1,6 +1,4 @@
>  GLIBC_2.27 __mq_open_2 F
> -GLIBC_2.27 aio_read F
> -GLIBC_2.27 aio_read64 F
>  GLIBC_2.27 aio_return F
>  GLIBC_2.27 aio_return64 F
>  GLIBC_2.27 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index 52a7d18745..a773148442 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -1479,6 +1479,8 @@ 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 alphasort64 F
>  GLIBC_2.1 argp_err_exit_status D 0x4
>  GLIBC_2.1 argp_error F
> @@ -2487,6 +2489,8 @@ GLIBC_2.34 aio_error64 F
>  GLIBC_2.34 aio_fsync F
>  GLIBC_2.34 aio_fsync64 F
>  GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 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 8ac375872c..0402dcddcc 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.1 aio_read F
> -GLIBC_2.1 aio_read64 F
>  GLIBC_2.1 aio_return F
>  GLIBC_2.1 aio_return64 F
>  GLIBC_2.1 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index 1078e94135..14899f40f7 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -577,6 +577,8 @@ 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 alarm F
>  GLIBC_2.2 alphasort F
>  GLIBC_2.2 alphasort64 F
> @@ -2296,6 +2298,8 @@ GLIBC_2.34 aio_error64 F
>  GLIBC_2.34 aio_fsync F
>  GLIBC_2.34 aio_fsync64 F
>  GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 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 0396a04bd2..a65683ca9d 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.2 aio_read F
> -GLIBC_2.2 aio_read64 F
>  GLIBC_2.2 aio_return F
>  GLIBC_2.2 aio_return64 F
>  GLIBC_2.2 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index 90c2a79d6e..a255e3eeac 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -14,6 +14,8 @@ 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 dlopen F
>  GLIBC_2.1 dlvsym F
>  GLIBC_2.10 __cxa_at_quick_exit F
> @@ -2342,6 +2344,8 @@ GLIBC_2.34 aio_error64 F
>  GLIBC_2.34 aio_fsync F
>  GLIBC_2.34 aio_fsync64 F
>  GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 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 8ac375872c..0402dcddcc 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.1 aio_read F
> -GLIBC_2.1 aio_read64 F
>  GLIBC_2.1 aio_return F
>  GLIBC_2.1 aio_return64 F
>  GLIBC_2.1 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index a624e97cab..45c49ba662 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -14,6 +14,8 @@ 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 dlopen F
>  GLIBC_2.1 dlvsym F
>  GLIBC_2.10 __cxa_at_quick_exit F
> @@ -2339,6 +2341,8 @@ GLIBC_2.34 aio_error64 F
>  GLIBC_2.34 aio_fsync F
>  GLIBC_2.34 aio_fsync64 F
>  GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 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 8ac375872c..0402dcddcc 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.1 aio_read F
> -GLIBC_2.1 aio_read64 F
>  GLIBC_2.1 aio_return F
>  GLIBC_2.1 aio_return64 F
>  GLIBC_2.1 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index c65022cdd9..07a68d78e3 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -1481,6 +1481,8 @@ 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 alphasort64 F
>  GLIBC_2.1 argp_err_exit_status D 0x4
>  GLIBC_2.1 argp_error F
> @@ -2482,6 +2484,8 @@ GLIBC_2.34 aio_error64 F
>  GLIBC_2.34 aio_fsync F
>  GLIBC_2.34 aio_fsync64 F
>  GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 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 183e0cbf21..2202b8ef5f 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.1 aio_read F
> -GLIBC_2.1 aio_read64 F
>  GLIBC_2.1 aio_return F
>  GLIBC_2.1 aio_return64 F
>  GLIBC_2.1 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index 5e90b1e6f7..8b549e7efc 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -14,6 +14,8 @@ 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 dlopen F
>  GLIBC_2.1 dlvsym F
>  GLIBC_2.10 __cxa_at_quick_exit F
> @@ -2318,6 +2320,8 @@ GLIBC_2.34 aio_error64 F
>  GLIBC_2.34 aio_fsync F
>  GLIBC_2.34 aio_fsync64 F
>  GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 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 f4dd36f97b..2afa483191 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.1 aio_read F
> -GLIBC_2.1 aio_read64 F
>  GLIBC_2.1 aio_return F
>  GLIBC_2.1 aio_return64 F
>  GLIBC_2.1 aio_suspend F

__WORDSIZE

> diff --git a/sysdeps/unix/sysv/linux/wordsize-64/aio_read.c b/sysdeps/unix/sysv/linux/wordsize-64/aio_read.c
> deleted file mode 100644
> index 8310b484d0..0000000000
> --- a/sysdeps/unix/sysv/linux/wordsize-64/aio_read.c
> +++ /dev/null
> @@ -1,7 +0,0 @@
> -#define aio_read64 __renamed_aio_read64
> -
> -#include <rt/aio_read.c>
> -
> -#undef aio_read64
> -
> -weak_alias (aio_read, aio_read64)

Ok.

> diff --git a/sysdeps/unix/sysv/linux/wordsize-64/aio_read64.c b/sysdeps/unix/sysv/linux/wordsize-64/aio_read64.c
> deleted file mode 100644
> index 6a6a102c8d..0000000000
> --- a/sysdeps/unix/sysv/linux/wordsize-64/aio_read64.c
> +++ /dev/null
> @@ -1 +0,0 @@
> -/* Defined in aio_read.c.  */

Ok.

> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index 3911e41a47..e8d70016a6 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -566,6 +566,8 @@ 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 alarm F
>  GLIBC_2.2.5 alphasort F
>  GLIBC_2.2.5 alphasort64 F
> @@ -2274,6 +2276,8 @@ GLIBC_2.34 aio_error64 F
>  GLIBC_2.34 aio_fsync F
>  GLIBC_2.34 aio_fsync64 F
>  GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 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 f1cce35e0a..e9d2aeb05b 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.2.5 aio_read F
> -GLIBC_2.2.5 aio_read64 F
>  GLIBC_2.2.5 aio_return F
>  GLIBC_2.2.5 aio_return64 F
>  GLIBC_2.2.5 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index bae6dd505b..40921d5579 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -599,6 +599,8 @@ 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 alarm F
>  GLIBC_2.16 aligned_alloc F
>  GLIBC_2.16 alphasort F
> @@ -2377,6 +2379,8 @@ GLIBC_2.34 aio_error64 F
>  GLIBC_2.34 aio_fsync F
>  GLIBC_2.34 aio_fsync64 F
>  GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 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 acaa63d92f..bbd0f42caa 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> @@ -1,6 +1,4 @@
>  GLIBC_2.16 __mq_open_2 F
> -GLIBC_2.16 aio_read F
> -GLIBC_2.16 aio_read64 F
>  GLIBC_2.16 aio_return F
>  GLIBC_2.16 aio_return64 F
>  GLIBC_2.16 aio_suspend F
> 
Ok.
Florian Weimer June 25, 2021, 9:53 a.m. UTC | #2
* Adhemerval Zanella:

>> diff --git a/rt/Versions b/rt/Versions
>> index 1a0aa77fd0..6db40bebc4 100644
>> --- a/rt/Versions
>> +++ b/rt/Versions
>> @@ -8,6 +8,8 @@ libc {
>>      aio_error64;
>>      aio_fsync;
>>      aio_fsync64;
>> +    aio_read;
>> +    aio_read64;
>>  %endif
>>    }
>>    GLIBC_2.2 {
>> @@ -23,6 +25,8 @@ libc {
>>      aio_error64;
>>      aio_fsync;
>>      aio_fsync64;
>> +    aio_read;
>> +    aio_read64;
>>  %endif
>>      shm_open;
>>      shm_unlink;
>> @@ -51,9 +55,9 @@ librt {
>>      aio_fsync;
>>      aio_fsync64;
>>      aio_init;
>> -%endif
>>      aio_read;
>>      aio_read64;
>> +%endif
>>      aio_return;
>>      aio_return64;
>>      aio_suspend;
> __WORDSIZE

>> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
>> index f4dd36f97b..2afa483191 100644
>> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
>> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
>> @@ -1,5 +1,3 @@
>> -GLIBC_2.1 aio_read F
>> -GLIBC_2.1 aio_read64 F
>>  GLIBC_2.1 aio_return F
>>  GLIBC_2.1 aio_return64 F
>>  GLIBC_2.1 aio_suspend F
>
> __WORDSIZE

Sorry, what do you mean by these two comments?

Thanks,
Florian
Adhemerval Zanella June 25, 2021, 12:36 p.m. UTC | #3
On 25/06/2021 06:53, Florian Weimer wrote:
> * Adhemerval Zanella:
> 
>>> diff --git a/rt/Versions b/rt/Versions
>>> index 1a0aa77fd0..6db40bebc4 100644
>>> --- a/rt/Versions
>>> +++ b/rt/Versions
>>> @@ -8,6 +8,8 @@ libc {
>>>      aio_error64;
>>>      aio_fsync;
>>>      aio_fsync64;
>>> +    aio_read;
>>> +    aio_read64;
>>>  %endif
>>>    }
>>>    GLIBC_2.2 {
>>> @@ -23,6 +25,8 @@ libc {
>>>      aio_error64;
>>>      aio_fsync;
>>>      aio_fsync64;
>>> +    aio_read;
>>> +    aio_read64;
>>>  %endif
>>>      shm_open;
>>>      shm_unlink;
>>> @@ -51,9 +55,9 @@ librt {
>>>      aio_fsync;
>>>      aio_fsync64;
>>>      aio_init;
>>> -%endif
>>>      aio_read;
>>>      aio_read64;
>>> +%endif
>>>      aio_return;
>>>      aio_return64;
>>>      aio_suspend;
>> __WORDSIZE
> 
>>> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
>>> index f4dd36f97b..2afa483191 100644
>>> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
>>> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
>>> @@ -1,5 +1,3 @@
>>> -GLIBC_2.1 aio_read F
>>> -GLIBC_2.1 aio_read64 F
>>>  GLIBC_2.1 aio_return F
>>>  GLIBC_2.1 aio_return64 F
>>>  GLIBC_2.1 aio_suspend F
>>
>> __WORDSIZE
> 

My mistake here, it should be 'Ok'.
diff mbox series

Patch

diff --git a/rt/Makefile b/rt/Makefile
index ca8c818a25..f080be56d5 100644
--- a/rt/Makefile
+++ b/rt/Makefile
@@ -29,8 +29,6 @@  routines = \
   shm_unlink \
 
 librt-routines = \
-  aio_read \
-  aio_read64 \
   aio_return \
   aio_suspend \
   aio_write \
@@ -62,6 +60,8 @@  $(librt-routines-var) += \
   aio_fsync \
   aio_misc \
   aio_notify \
+  aio_read \
+  aio_read64 \
   aio_sigqueue \
 
 tests := tst-shm tst-timer tst-timer2 \
diff --git a/rt/Versions b/rt/Versions
index 1a0aa77fd0..6db40bebc4 100644
--- a/rt/Versions
+++ b/rt/Versions
@@ -8,6 +8,8 @@  libc {
     aio_error64;
     aio_fsync;
     aio_fsync64;
+    aio_read;
+    aio_read64;
 %endif
   }
   GLIBC_2.2 {
@@ -23,6 +25,8 @@  libc {
     aio_error64;
     aio_fsync;
     aio_fsync64;
+    aio_read;
+    aio_read64;
 %endif
     shm_open;
     shm_unlink;
@@ -51,9 +55,9 @@  librt {
     aio_fsync;
     aio_fsync64;
     aio_init;
-%endif
     aio_read;
     aio_read64;
+%endif
     aio_return;
     aio_return64;
     aio_suspend;
diff --git a/rt/aio_read.c b/rt/aio_read.c
index 4698e48b1c..1b7a7fcfa9 100644
--- a/rt/aio_read.c
+++ b/rt/aio_read.c
@@ -17,14 +17,45 @@ 
    License along with the GNU C Library; if not, see
    <https://www.gnu.org/licenses/>.  */
 
-#include <aio.h>
+#include <bits/wordsize.h>
+#if __WORDSIZE == 64
+/* We use an UGLY hack to prevent gcc from finding us cheating.  The
+   implementation of aio_read and aio_read64 are identical and so
+   we want to avoid code duplication by using aliases.  But gcc sees
+   the different parameter lists and prints a warning.  We define here
+   a function so that aio_read64 has no prototype.  */
+# define aio_read64 XXX
+# include <aio.h>
+/* And undo the hack.  */
+# undef aio_read64
+#else
+# include <aio.h>
+#endif
 
 #include <aio_misc.h>
-
+#include <shlib-compat.h>
 
 int
-aio_read (struct aiocb *aiocbp)
+__aio_read (struct aiocb *aiocbp)
 {
   return (__aio_enqueue_request ((aiocb_union *) aiocbp, LIO_READ) == NULL
 	  ? -1 : 0);
 }
+
+#if PTHREAD_IN_LIBC
+versioned_symbol (libc, __aio_read, aio_read, GLIBC_2_34);
+# if __WORDSIZE == 64
+versioned_symbol (libc, __aio_read, aio_read64, GLIBC_2_34);
+# endif
+# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_34)
+compat_symbol (librt, __aio_read, aio_read, GLIBC_2_1);
+#  if __WORDSIZE == 64
+compat_symbol (librt, __aio_read, aio_read64, GLIBC_2_1);
+#  endif
+# endif
+#else /* !PTHREAD_IN_LIBC */
+strong_alias (__aio_read, aio_read)
+# if __WORDSIZE == 64
+weak_alias (__aio_read, aio_read64)
+#endif
+#endif  /* !PTHREAD_IN_LIBC */
diff --git a/rt/aio_read64.c b/rt/aio_read64.c
index 26b9b0b380..3aa169fbf3 100644
--- a/rt/aio_read64.c
+++ b/rt/aio_read64.c
@@ -17,14 +17,26 @@ 
    License along with the GNU C Library; if not, see
    <https://www.gnu.org/licenses/>.  */
 
-#include <aio.h>
-
-#include <aio_misc.h>
+#include <bits/wordsize.h>
+#if __WORDSIZE != 64
 
+# include <aio.h>
+# include <aio_misc.h>
+# include <shlib-compat.h>
 
 int
-aio_read64 (struct aiocb64 *aiocbp)
+__aio_read64 (struct aiocb64 *aiocbp)
 {
   return (__aio_enqueue_request ((aiocb_union *) aiocbp, LIO_READ64) == NULL
 	  ? -1 : 0);
 }
+
+# if PTHREAD_IN_LIBC
+versioned_symbol (libc, __aio_read64, aio_read64, GLIBC_2_34);
+#  if OTHER_SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_34)
+compat_symbol (librt, __aio_read64, aio_read64, GLIBC_2_1);
+#  endif
+# else /* !PTHREAD_IN_LIBC */
+strong_alias (__aio_read64, aio_read64)
+# endif
+#endif /* __WORDSIZE != 64 */
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index cf141fdf08..d210f88f0e 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -596,6 +596,8 @@  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 alarm F
 GLIBC_2.17 aligned_alloc F
 GLIBC_2.17 alphasort F
@@ -2362,6 +2364,8 @@  GLIBC_2.34 aio_error64 F
 GLIBC_2.34 aio_fsync F
 GLIBC_2.34 aio_fsync64 F
 GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 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 1519e07346..58a853230e 100644
--- a/sysdeps/unix/sysv/linux/aarch64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
@@ -1,6 +1,4 @@ 
 GLIBC_2.17 __mq_open_2 F
-GLIBC_2.17 aio_read F
-GLIBC_2.17 aio_read64 F
 GLIBC_2.17 aio_return F
 GLIBC_2.17 aio_return64 F
 GLIBC_2.17 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 8d58f3ea87..08ea11c9fe 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -1509,6 +1509,8 @@  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 alphasort64 F
 GLIBC_2.1 argp_err_exit_status D 0x4
 GLIBC_2.1 argp_error F
@@ -2457,6 +2459,8 @@  GLIBC_2.34 aio_error64 F
 GLIBC_2.34 aio_fsync F
 GLIBC_2.34 aio_fsync64 F
 GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 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 f4dd36f97b..2afa483191 100644
--- a/sysdeps/unix/sysv/linux/alpha/librt.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist
@@ -1,5 +1,3 @@ 
-GLIBC_2.1 aio_read F
-GLIBC_2.1 aio_read64 F
 GLIBC_2.1 aio_return F
 GLIBC_2.1 aio_return64 F
 GLIBC_2.1 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 7579936aca..817c4c6ff0 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -557,6 +557,8 @@  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 alarm F
 GLIBC_2.32 aligned_alloc F
 GLIBC_2.32 alphasort F
@@ -2121,6 +2123,8 @@  GLIBC_2.34 aio_error64 F
 GLIBC_2.34 aio_fsync F
 GLIBC_2.34 aio_fsync64 F
 GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 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 15b9acf33c..e49be2ff36 100644
--- a/sysdeps/unix/sysv/linux/arc/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arc/librt.abilist
@@ -1,6 +1,4 @@ 
 GLIBC_2.32 __mq_open_2 F
-GLIBC_2.32 aio_read F
-GLIBC_2.32 aio_read64 F
 GLIBC_2.32 aio_return F
 GLIBC_2.32 aio_return64 F
 GLIBC_2.32 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 566d18d20a..0be92527af 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -285,6 +285,8 @@  GLIBC_2.34 aio_error64 F
 GLIBC_2.34 aio_fsync F
 GLIBC_2.34 aio_fsync64 F
 GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
 GLIBC_2.34 cnd_destroy F
@@ -995,6 +997,8 @@  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 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 1fa78d6811..9a68bb887b 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -3,8 +3,6 @@  GLIBC_2.34 __mq_timedreceive_time64 F
 GLIBC_2.34 __mq_timedsend_time64 F
 GLIBC_2.34 __timer_gettime64 F
 GLIBC_2.34 __timer_settime64 F
-GLIBC_2.4 aio_read F
-GLIBC_2.4 aio_read64 F
 GLIBC_2.4 aio_return F
 GLIBC_2.4 aio_return64 F
 GLIBC_2.4 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 40da72fe92..615b37769a 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -282,6 +282,8 @@  GLIBC_2.34 aio_error64 F
 GLIBC_2.34 aio_fsync F
 GLIBC_2.34 aio_fsync64 F
 GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
 GLIBC_2.34 cnd_destroy F
@@ -992,6 +994,8 @@  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 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 1fa78d6811..9a68bb887b 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -3,8 +3,6 @@  GLIBC_2.34 __mq_timedreceive_time64 F
 GLIBC_2.34 __mq_timedsend_time64 F
 GLIBC_2.34 __timer_gettime64 F
 GLIBC_2.34 __timer_settime64 F
-GLIBC_2.4 aio_read F
-GLIBC_2.4 aio_read64 F
 GLIBC_2.4 aio_return F
 GLIBC_2.4 aio_return64 F
 GLIBC_2.4 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index b0e1eab37e..e77bb5b57b 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -571,6 +571,8 @@  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 alarm F
 GLIBC_2.29 aligned_alloc F
 GLIBC_2.29 alphasort F
@@ -2381,6 +2383,8 @@  GLIBC_2.34 aio_error64 F
 GLIBC_2.34 aio_fsync F
 GLIBC_2.34 aio_fsync64 F
 GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 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 9c3edc9f2f..93475f5bd5 100644
--- a/sysdeps/unix/sysv/linux/csky/librt.abilist
+++ b/sysdeps/unix/sysv/linux/csky/librt.abilist
@@ -1,6 +1,4 @@ 
 GLIBC_2.29 __mq_open_2 F
-GLIBC_2.29 aio_read F
-GLIBC_2.29 aio_read64 F
 GLIBC_2.29 aio_return F
 GLIBC_2.29 aio_return64 F
 GLIBC_2.29 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 463b498665..12704a350a 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -10,6 +10,8 @@  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 dlopen F
 GLIBC_2.1 dlvsym F
 GLIBC_2.10 __cxa_at_quick_exit F
@@ -2335,6 +2337,8 @@  GLIBC_2.34 aio_error64 F
 GLIBC_2.34 aio_fsync F
 GLIBC_2.34 aio_fsync64 F
 GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 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 8ac375872c..0402dcddcc 100644
--- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
@@ -1,5 +1,3 @@ 
-GLIBC_2.1 aio_read F
-GLIBC_2.1 aio_read64 F
 GLIBC_2.1 aio_return F
 GLIBC_2.1 aio_return64 F
 GLIBC_2.1 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 2015282000..67d1fbcade 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -1482,6 +1482,8 @@  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 alphasort64 F
 GLIBC_2.1 argp_err_exit_status D 0x4
 GLIBC_2.1 argp_error F
@@ -2519,6 +2521,8 @@  GLIBC_2.34 aio_error64 F
 GLIBC_2.34 aio_fsync F
 GLIBC_2.34 aio_fsync64 F
 GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 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 8ac375872c..0402dcddcc 100644
--- a/sysdeps/unix/sysv/linux/i386/librt.abilist
+++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
@@ -1,5 +1,3 @@ 
-GLIBC_2.1 aio_read F
-GLIBC_2.1 aio_read64 F
 GLIBC_2.1 aio_return F
 GLIBC_2.1 aio_return64 F
 GLIBC_2.1 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index f83ba75cac..83d6bbfdf2 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -10,6 +10,8 @@  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 dlopen F
 GLIBC_2.1 dlvsym F
 GLIBC_2.10 __cxa_at_quick_exit F
@@ -2295,6 +2297,8 @@  GLIBC_2.34 aio_error64 F
 GLIBC_2.34 aio_fsync F
 GLIBC_2.34 aio_fsync64 F
 GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 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 38dd6dfb53..152692a5a6 100644
--- a/sysdeps/unix/sysv/linux/ia64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/librt.abilist
@@ -1,5 +1,3 @@ 
-GLIBC_2.1 aio_read F
-GLIBC_2.1 aio_read64 F
 GLIBC_2.1 aio_return F
 GLIBC_2.1 aio_return64 F
 GLIBC_2.1 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index a0ca9ddc48..537df59369 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -286,6 +286,8 @@  GLIBC_2.34 aio_error64 F
 GLIBC_2.34 aio_fsync F
 GLIBC_2.34 aio_fsync64 F
 GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
 GLIBC_2.34 cnd_destroy F
@@ -983,6 +985,8 @@  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 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 1fa78d6811..9a68bb887b 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -3,8 +3,6 @@  GLIBC_2.34 __mq_timedreceive_time64 F
 GLIBC_2.34 __mq_timedsend_time64 F
 GLIBC_2.34 __timer_gettime64 F
 GLIBC_2.34 __timer_settime64 F
-GLIBC_2.4 aio_read F
-GLIBC_2.4 aio_read64 F
 GLIBC_2.4 aio_return F
 GLIBC_2.4 aio_return64 F
 GLIBC_2.4 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index bef73ca536..fefee687b2 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -1480,6 +1480,8 @@  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 alphasort64 F
 GLIBC_2.1 argp_err_exit_status D 0x4
 GLIBC_2.1 argp_error F
@@ -2462,6 +2464,8 @@  GLIBC_2.34 aio_error64 F
 GLIBC_2.34 aio_fsync F
 GLIBC_2.34 aio_fsync64 F
 GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 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 8ac375872c..0402dcddcc 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
@@ -1,5 +1,3 @@ 
-GLIBC_2.1 aio_read F
-GLIBC_2.1 aio_read64 F
 GLIBC_2.1 aio_return F
 GLIBC_2.1 aio_return64 F
 GLIBC_2.1 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 1f2c7f0fd9..635b62cd31 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -598,6 +598,8 @@  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 alarm F
 GLIBC_2.18 aligned_alloc F
 GLIBC_2.18 alphasort F
@@ -2432,6 +2434,8 @@  GLIBC_2.34 aio_error64 F
 GLIBC_2.34 aio_fsync F
 GLIBC_2.34 aio_fsync64 F
 GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 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 87eeccd69c..34f5bc3964 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
@@ -1,6 +1,4 @@ 
 GLIBC_2.18 __mq_open_2 F
-GLIBC_2.18 aio_read F
-GLIBC_2.18 aio_read64 F
 GLIBC_2.18 aio_return F
 GLIBC_2.18 aio_return64 F
 GLIBC_2.18 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 191db5f985..cce81d50da 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -598,6 +598,8 @@  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 alarm F
 GLIBC_2.18 aligned_alloc F
 GLIBC_2.18 alphasort F
@@ -2429,6 +2431,8 @@  GLIBC_2.34 aio_error64 F
 GLIBC_2.34 aio_fsync F
 GLIBC_2.34 aio_fsync64 F
 GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 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 87eeccd69c..34f5bc3964 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
@@ -1,6 +1,4 @@ 
 GLIBC_2.18 __mq_open_2 F
-GLIBC_2.18 aio_read F
-GLIBC_2.18 aio_read64 F
 GLIBC_2.18 aio_return F
 GLIBC_2.18 aio_return64 F
 GLIBC_2.18 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 5eb630a9f5..d4e0f597ba 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -1658,6 +1658,8 @@  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 alphasort64 F
 GLIBC_2.2 argp_err_exit_status D 0x4
 GLIBC_2.2 argp_error F
@@ -2427,6 +2429,8 @@  GLIBC_2.34 aio_error64 F
 GLIBC_2.34 aio_fsync F
 GLIBC_2.34 aio_fsync64 F
 GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 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 9e2c283942..d886f0376c 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
@@ -1,5 +1,3 @@ 
-GLIBC_2.2 aio_read F
-GLIBC_2.2 aio_read64 F
 GLIBC_2.2 aio_return F
 GLIBC_2.2 aio_return64 F
 GLIBC_2.2 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index a1b8e02ca4..757c40c34c 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -1656,6 +1656,8 @@  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 alphasort64 F
 GLIBC_2.2 argp_err_exit_status D 0x4
 GLIBC_2.2 argp_error F
@@ -2425,6 +2427,8 @@  GLIBC_2.34 aio_error64 F
 GLIBC_2.34 aio_fsync F
 GLIBC_2.34 aio_fsync64 F
 GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 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 dd33f448b7..d1c919b14f 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -1657,6 +1657,8 @@  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 alphasort64 F
 GLIBC_2.2 argp_err_exit_status D 0x4
 GLIBC_2.2 argp_error F
@@ -2433,6 +2435,8 @@  GLIBC_2.34 aio_error64 F
 GLIBC_2.34 aio_fsync F
 GLIBC_2.34 aio_fsync64 F
 GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 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 9e2c283942..d886f0376c 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
@@ -1,5 +1,3 @@ 
-GLIBC_2.2 aio_read F
-GLIBC_2.2 aio_read64 F
 GLIBC_2.2 aio_return F
 GLIBC_2.2 aio_return64 F
 GLIBC_2.2 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index efda95dd32..6c3dd08461 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -1653,6 +1653,8 @@  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 alphasort64 F
 GLIBC_2.2 argp_err_exit_status D 0x4
 GLIBC_2.2 argp_error F
@@ -2351,6 +2353,8 @@  GLIBC_2.34 aio_error64 F
 GLIBC_2.34 aio_fsync F
 GLIBC_2.34 aio_fsync64 F
 GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 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 848a39faae..6c94c34024 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
@@ -1,5 +1,3 @@ 
-GLIBC_2.2 aio_read F
-GLIBC_2.2 aio_read64 F
 GLIBC_2.2 aio_return F
 GLIBC_2.2 aio_return64 F
 GLIBC_2.2 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index e2739a9145..160e1d491e 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -640,6 +640,8 @@  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 alarm F
 GLIBC_2.21 aligned_alloc F
 GLIBC_2.21 alphasort F
@@ -2471,6 +2473,8 @@  GLIBC_2.34 aio_error64 F
 GLIBC_2.34 aio_fsync F
 GLIBC_2.34 aio_fsync64 F
 GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 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 24472cb04f..7d197b8c5d 100644
--- a/sysdeps/unix/sysv/linux/nios2/librt.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/librt.abilist
@@ -1,6 +1,4 @@ 
 GLIBC_2.21 __mq_open_2 F
-GLIBC_2.21 aio_read F
-GLIBC_2.21 aio_read64 F
 GLIBC_2.21 aio_return F
 GLIBC_2.21 aio_return64 F
 GLIBC_2.21 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 6c816268cd..2923d162e0 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -1487,6 +1487,8 @@  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 alphasort64 F
 GLIBC_2.1 argp_err_exit_status D 0x4
 GLIBC_2.1 argp_error F
@@ -2489,6 +2491,8 @@  GLIBC_2.34 aio_error64 F
 GLIBC_2.34 aio_fsync F
 GLIBC_2.34 aio_fsync64 F
 GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 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 8ac375872c..0402dcddcc 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
@@ -1,5 +1,3 @@ 
-GLIBC_2.1 aio_read F
-GLIBC_2.1 aio_read64 F
 GLIBC_2.1 aio_return F
 GLIBC_2.1 aio_return64 F
 GLIBC_2.1 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 03dadcef85..b6feabe5e4 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -1487,6 +1487,8 @@  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 alphasort64 F
 GLIBC_2.1 argp_err_exit_status D 0x4
 GLIBC_2.1 argp_error F
@@ -2522,6 +2524,8 @@  GLIBC_2.34 aio_error64 F
 GLIBC_2.34 aio_fsync F
 GLIBC_2.34 aio_fsync64 F
 GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 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 c355eb4607..b149e31698 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -640,6 +640,8 @@  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 alarm F
 GLIBC_2.3 alphasort F
 GLIBC_2.3 alphasort64 F
@@ -2259,6 +2261,8 @@  GLIBC_2.34 aio_error64 F
 GLIBC_2.34 aio_fsync F
 GLIBC_2.34 aio_fsync64 F
 GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 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 951344a6ef..d0ddb7852e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
@@ -1,5 +1,3 @@ 
-GLIBC_2.3 aio_read F
-GLIBC_2.3 aio_read64 F
 GLIBC_2.3 aio_return F
 GLIBC_2.3 aio_return64 F
 GLIBC_2.3 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index abe39f4a96..607abc7f32 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -684,6 +684,8 @@  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 alarm F
 GLIBC_2.17 aligned_alloc F
 GLIBC_2.17 alphasort F
@@ -2558,6 +2560,8 @@  GLIBC_2.34 aio_error64 F
 GLIBC_2.34 aio_fsync F
 GLIBC_2.34 aio_fsync64 F
 GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 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 1519e07346..58a853230e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
@@ -1,6 +1,4 @@ 
 GLIBC_2.17 __mq_open_2 F
-GLIBC_2.17 aio_read F
-GLIBC_2.17 aio_read64 F
 GLIBC_2.17 aio_return F
 GLIBC_2.17 aio_return64 F
 GLIBC_2.17 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 585c9b7cf7..de26c22e23 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -551,6 +551,8 @@  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 alarm F
 GLIBC_2.33 aligned_alloc F
 GLIBC_2.33 alphasort F
@@ -2123,6 +2125,8 @@  GLIBC_2.34 aio_error64 F
 GLIBC_2.34 aio_fsync F
 GLIBC_2.34 aio_fsync64 F
 GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 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 8e30efa6a1..8e15ebe652 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
@@ -1,6 +1,4 @@ 
 GLIBC_2.33 __mq_open_2 F
-GLIBC_2.33 aio_read F
-GLIBC_2.33 aio_read64 F
 GLIBC_2.33 aio_return F
 GLIBC_2.33 aio_return64 F
 GLIBC_2.33 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index d8aa40cb34..d0ca205432 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -577,6 +577,8 @@  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 alarm F
 GLIBC_2.27 aligned_alloc F
 GLIBC_2.27 alphasort F
@@ -2323,6 +2325,8 @@  GLIBC_2.34 aio_error64 F
 GLIBC_2.34 aio_fsync F
 GLIBC_2.34 aio_fsync64 F
 GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 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 7145c7d249..fe48c3cfea 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
@@ -1,6 +1,4 @@ 
 GLIBC_2.27 __mq_open_2 F
-GLIBC_2.27 aio_read F
-GLIBC_2.27 aio_read64 F
 GLIBC_2.27 aio_return F
 GLIBC_2.27 aio_return64 F
 GLIBC_2.27 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 52a7d18745..a773148442 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -1479,6 +1479,8 @@  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 alphasort64 F
 GLIBC_2.1 argp_err_exit_status D 0x4
 GLIBC_2.1 argp_error F
@@ -2487,6 +2489,8 @@  GLIBC_2.34 aio_error64 F
 GLIBC_2.34 aio_fsync F
 GLIBC_2.34 aio_fsync64 F
 GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 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 8ac375872c..0402dcddcc 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
@@ -1,5 +1,3 @@ 
-GLIBC_2.1 aio_read F
-GLIBC_2.1 aio_read64 F
 GLIBC_2.1 aio_return F
 GLIBC_2.1 aio_return64 F
 GLIBC_2.1 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 1078e94135..14899f40f7 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -577,6 +577,8 @@  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 alarm F
 GLIBC_2.2 alphasort F
 GLIBC_2.2 alphasort64 F
@@ -2296,6 +2298,8 @@  GLIBC_2.34 aio_error64 F
 GLIBC_2.34 aio_fsync F
 GLIBC_2.34 aio_fsync64 F
 GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 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 0396a04bd2..a65683ca9d 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
@@ -1,5 +1,3 @@ 
-GLIBC_2.2 aio_read F
-GLIBC_2.2 aio_read64 F
 GLIBC_2.2 aio_return F
 GLIBC_2.2 aio_return64 F
 GLIBC_2.2 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 90c2a79d6e..a255e3eeac 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -14,6 +14,8 @@  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 dlopen F
 GLIBC_2.1 dlvsym F
 GLIBC_2.10 __cxa_at_quick_exit F
@@ -2342,6 +2344,8 @@  GLIBC_2.34 aio_error64 F
 GLIBC_2.34 aio_fsync F
 GLIBC_2.34 aio_fsync64 F
 GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 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 8ac375872c..0402dcddcc 100644
--- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
@@ -1,5 +1,3 @@ 
-GLIBC_2.1 aio_read F
-GLIBC_2.1 aio_read64 F
 GLIBC_2.1 aio_return F
 GLIBC_2.1 aio_return64 F
 GLIBC_2.1 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index a624e97cab..45c49ba662 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -14,6 +14,8 @@  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 dlopen F
 GLIBC_2.1 dlvsym F
 GLIBC_2.10 __cxa_at_quick_exit F
@@ -2339,6 +2341,8 @@  GLIBC_2.34 aio_error64 F
 GLIBC_2.34 aio_fsync F
 GLIBC_2.34 aio_fsync64 F
 GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 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 8ac375872c..0402dcddcc 100644
--- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
@@ -1,5 +1,3 @@ 
-GLIBC_2.1 aio_read F
-GLIBC_2.1 aio_read64 F
 GLIBC_2.1 aio_return F
 GLIBC_2.1 aio_return64 F
 GLIBC_2.1 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index c65022cdd9..07a68d78e3 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -1481,6 +1481,8 @@  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 alphasort64 F
 GLIBC_2.1 argp_err_exit_status D 0x4
 GLIBC_2.1 argp_error F
@@ -2482,6 +2484,8 @@  GLIBC_2.34 aio_error64 F
 GLIBC_2.34 aio_fsync F
 GLIBC_2.34 aio_fsync64 F
 GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 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 183e0cbf21..2202b8ef5f 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
@@ -1,5 +1,3 @@ 
-GLIBC_2.1 aio_read F
-GLIBC_2.1 aio_read64 F
 GLIBC_2.1 aio_return F
 GLIBC_2.1 aio_return64 F
 GLIBC_2.1 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 5e90b1e6f7..8b549e7efc 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -14,6 +14,8 @@  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 dlopen F
 GLIBC_2.1 dlvsym F
 GLIBC_2.10 __cxa_at_quick_exit F
@@ -2318,6 +2320,8 @@  GLIBC_2.34 aio_error64 F
 GLIBC_2.34 aio_fsync F
 GLIBC_2.34 aio_fsync64 F
 GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 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 f4dd36f97b..2afa483191 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
@@ -1,5 +1,3 @@ 
-GLIBC_2.1 aio_read F
-GLIBC_2.1 aio_read64 F
 GLIBC_2.1 aio_return F
 GLIBC_2.1 aio_return64 F
 GLIBC_2.1 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/wordsize-64/aio_read.c b/sysdeps/unix/sysv/linux/wordsize-64/aio_read.c
deleted file mode 100644
index 8310b484d0..0000000000
--- a/sysdeps/unix/sysv/linux/wordsize-64/aio_read.c
+++ /dev/null
@@ -1,7 +0,0 @@ 
-#define aio_read64 __renamed_aio_read64
-
-#include <rt/aio_read.c>
-
-#undef aio_read64
-
-weak_alias (aio_read, aio_read64)
diff --git a/sysdeps/unix/sysv/linux/wordsize-64/aio_read64.c b/sysdeps/unix/sysv/linux/wordsize-64/aio_read64.c
deleted file mode 100644
index 6a6a102c8d..0000000000
--- a/sysdeps/unix/sysv/linux/wordsize-64/aio_read64.c
+++ /dev/null
@@ -1 +0,0 @@ 
-/* Defined in aio_read.c.  */
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 3911e41a47..e8d70016a6 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -566,6 +566,8 @@  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 alarm F
 GLIBC_2.2.5 alphasort F
 GLIBC_2.2.5 alphasort64 F
@@ -2274,6 +2276,8 @@  GLIBC_2.34 aio_error64 F
 GLIBC_2.34 aio_fsync F
 GLIBC_2.34 aio_fsync64 F
 GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 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 f1cce35e0a..e9d2aeb05b 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
@@ -1,5 +1,3 @@ 
-GLIBC_2.2.5 aio_read F
-GLIBC_2.2.5 aio_read64 F
 GLIBC_2.2.5 aio_return F
 GLIBC_2.2.5 aio_return64 F
 GLIBC_2.2.5 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index bae6dd505b..40921d5579 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -599,6 +599,8 @@  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 alarm F
 GLIBC_2.16 aligned_alloc F
 GLIBC_2.16 alphasort F
@@ -2377,6 +2379,8 @@  GLIBC_2.34 aio_error64 F
 GLIBC_2.34 aio_fsync F
 GLIBC_2.34 aio_fsync64 F
 GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 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 acaa63d92f..bbd0f42caa 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
@@ -1,6 +1,4 @@ 
 GLIBC_2.16 __mq_open_2 F
-GLIBC_2.16 aio_read F
-GLIBC_2.16 aio_read64 F
 GLIBC_2.16 aio_return F
 GLIBC_2.16 aio_return64 F
 GLIBC_2.16 aio_suspend F