[15/35] Linux: Move aio_read, aio_read64 into libc

Message ID b793ca2c480c28fb6dcd1456ff05814d1864c043.1622761828.git.fweimer@redhat.com
State Superseded
Delegated to: Adhemerval Zanella Netto
Headers
Series Linux: Move librt into libc |

Checks

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

Commit Message

Florian Weimer June 3, 2021, 11:16 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 ++
 .../unix/sysv/linux/mips/mips64/librt.abilist |  2 -
 .../sysv/linux/mips/mips64/n32/libc.abilist   |  4 ++
 .../sysv/linux/mips/mips64/n64/libc.abilist   |  4 ++
 sysdeps/unix/sysv/linux/nios2/libc.abilist    |  4 ++
 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 -
 67 files changed, 185 insertions(+), 76 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
  

Patch

diff --git a/rt/Makefile b/rt/Makefile
index a8d9ef7d18..9372fbc100 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 c8d6f0deda..eaf9b0976f 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
@@ -2360,6 +2362,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 3dc95a54f7..3284cc7f34 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
@@ -2455,6 +2457,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 0391848260..8577b14ad3 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
@@ -2119,6 +2121,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 ba86272d7e..625ee667e3 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -207,6 +207,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
@@ -917,6 +919,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 14a2ef9d59..1b717f254d 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -1,5 +1,3 @@ 
-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 221549e103..3dcecd838b 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -204,6 +204,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
@@ -914,6 +916,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 14a2ef9d59..1b717f254d 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -1,5 +1,3 @@ 
-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 cb8da82bfd..b8bd7d5fa1 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
@@ -2303,6 +2305,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 17ca6c5342..457f9debe6 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 424d496daa..c740a0dbf0 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
@@ -2257,6 +2259,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 57ff2fb6b5..decc08762e 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 a740412d24..6f55f0cf86 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
@@ -2441,6 +2443,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 57ff2fb6b5..decc08762e 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 c38e449fed..56b02ca57f 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
@@ -2293,6 +2295,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 ba5c89d5a0..b2d37e273e 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -208,6 +208,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
@@ -905,6 +907,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 14a2ef9d59..1b717f254d 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -1,5 +1,3 @@ 
-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 941c3acd5e..fe3b59b149 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
@@ -2384,6 +2386,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 57ff2fb6b5..decc08762e 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 92221a8a6a..900a746b57 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
@@ -2354,6 +2356,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 391cc68456..6f0c3e8d85 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 4452e387f8..e71ea0c415 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
@@ -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/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
index 391cc68456..6f0c3e8d85 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 1ee605dd66..f611855cbc 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
@@ -2349,6 +2351,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 848a39faae..6c94c34024 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 99e171def4..a6e671f1a9 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
@@ -2347,6 +2349,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/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
index 848a39faae..6c94c34024 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/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/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 79b7a173a4..9ee47a0326 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
@@ -2355,6 +2357,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/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 6132f8ec4c..9b6472a730 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
@@ -2349,6 +2351,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/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index ad3f2d37c9..4a1dc57844 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
@@ -2393,6 +2395,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 e38236b56c..e56abf0e35 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 fc8351ee69..71483dab4c 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
@@ -2411,6 +2413,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 57ff2fb6b5..decc08762e 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 f07cdf4d36..783a066f16 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
@@ -2444,6 +2446,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 9bae232cc5..4dc88f7a12 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
@@ -2257,6 +2259,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 5f82539e80..1a0c35ec91 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
@@ -2556,6 +2558,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 4a3e053a61..14826bd89d 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
@@ -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/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 b1691a2db6..ccc5710cf0 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
@@ -2321,6 +2323,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 2a63ac491c..0ef5c9f63d 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
@@ -2409,6 +2411,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 57ff2fb6b5..decc08762e 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 ac68fb5c62..f8a810b521 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
@@ -2294,6 +2296,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 c7e721edab..205086b90f 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
@@ -2264,6 +2266,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 57ff2fb6b5..decc08762e 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 f919d8b939..816bd19400 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
@@ -2261,6 +2263,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 57ff2fb6b5..decc08762e 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 64fb6aaa88..d74b04d5b5 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
@@ -2404,6 +2406,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 1bb92a6ad8..8e45a7572e 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 e5002c509e..273635024f 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
@@ -2316,6 +2318,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 98f8000a05..bb3779c66a 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
@@ -2272,6 +2274,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 cd1d4aeb88..6cec697516 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
@@ -2375,6 +2377,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