diff mbox series

[12/35] Linux: Move aio_cancel, aio_cancel64 into libc

Message ID e10ffd0d6d743c9fe70b1c921e46c2e21b007cda.1622761828.git.fweimer@redhat.com
State New
Headers show
Series Linux: Move librt into libc | expand

Commit Message

Florian Weimer June 3, 2021, 11:15 p.m. UTC
The symbols were moved using scripts/move-symbol-to-libc.py.

A version placeholder symbol is needed on alpha and sparc because
of the additional symbols formerly at version GLIBC_2.3.
---
 rt/Makefile                                   |  5 +++-
 rt/Versions                                   |  6 ++++
 rt/aio_cancel.c                               | 28 ++++++++++++------
 rt/librt-compat.c                             | 29 +++++++++++++++++++
 sysdeps/unix/sysv/linux/aarch64/libc.abilist  |  4 +++
 sysdeps/unix/sysv/linux/aarch64/librt.abilist |  2 --
 sysdeps/unix/sysv/linux/alpha/Versions        | 13 +++++++--
 sysdeps/unix/sysv/linux/alpha/aio_cancel.c    | 22 +++++++-------
 sysdeps/unix/sysv/linux/alpha/libc.abilist    |  6 ++++
 sysdeps/unix/sysv/linux/alpha/librt-compat.c  | 24 +++++++++++++++
 sysdeps/unix/sysv/linux/alpha/librt.abilist   |  5 +---
 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 --
 sysdeps/unix/sysv/linux/sparc/Versions        | 11 ++++---
 sysdeps/unix/sysv/linux/sparc/aio_cancel.c    | 22 +++++++-------
 sysdeps/unix/sysv/linux/sparc/librt-compat.c  | 24 +++++++++++++++
 .../sysv/linux/sparc/sparc32/libc.abilist     |  6 ++++
 .../sysv/linux/sparc/sparc32/librt.abilist    |  5 +---
 .../sysv/linux/sparc/sparc64/libc.abilist     |  6 ++++
 .../sysv/linux/sparc/sparc64/librt.abilist    |  5 +---
 .../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 --
 71 files changed, 284 insertions(+), 101 deletions(-)
 create mode 100644 rt/librt-compat.c
 create mode 100644 sysdeps/unix/sysv/linux/alpha/librt-compat.c
 create mode 100644 sysdeps/unix/sysv/linux/sparc/librt-compat.c
diff mbox series

Patch

diff --git a/rt/Makefile b/rt/Makefile
index f6f7900a29..0ea824ebe8 100644
--- a/rt/Makefile
+++ b/rt/Makefile
@@ -29,7 +29,6 @@  routines = \
   shm_unlink \
 
 librt-routines = \
-  aio_cancel \
   aio_error \
   aio_fsync \
   aio_read \
@@ -38,6 +37,7 @@  librt-routines = \
   aio_suspend \
   aio_write \
   aio_write64 \
+  librt-compat \
   lio_listio \
   lio_listio64 \
   mq_close \
@@ -56,7 +56,10 @@  librt-routines = \
   timer_gettime \
   timer_settime \
 
+librt-shared-only-routines = librt-compat
+
 $(librt-routines-var) += \
+  aio_cancel \
   aio_misc \
   aio_notify \
   aio_sigqueue \
diff --git a/rt/Versions b/rt/Versions
index 2e991a9d93..402a1188e7 100644
--- a/rt/Versions
+++ b/rt/Versions
@@ -2,6 +2,8 @@  libc {
   GLIBC_2.1 {
 %if PTHREAD_IN_LIBC
     aio_init;
+    aio_cancel;
+    aio_cancel64;
 %endif
   }
   GLIBC_2.2 {
@@ -10,6 +12,8 @@  libc {
   }
   GLIBC_2.34 {
 %if PTHREAD_IN_LIBC
+    aio_cancel;
+    aio_cancel64;
     aio_init;
 %endif
     shm_open;
@@ -31,8 +35,10 @@  libc {
 }
 librt {
   GLIBC_2.1 {
+%if !PTHREAD_IN_LIBC
     aio_cancel;
     aio_cancel64;
+%endif
     aio_error;
     aio_error64;
     aio_fsync;
diff --git a/rt/aio_cancel.c b/rt/aio_cancel.c
index 63fd88f36c..5934205199 100644
--- a/rt/aio_cancel.c
+++ b/rt/aio_cancel.c
@@ -35,23 +35,24 @@ 
 #include <fcntl.h>
 
 #include <aio_misc.h>
+#include <pthreadP.h>
 
 
 int
-aio_cancel (int fildes, struct aiocb *aiocbp)
+__aio_cancel (int fildes, struct aiocb *aiocbp)
 {
   struct requestlist *req = NULL;
   int result = AIO_ALLDONE;
 
   /* If fildes is invalid, error. */
-  if (fcntl (fildes, F_GETFL) < 0)
+  if (__fcntl (fildes, F_GETFL) < 0)
     {
       __set_errno (EBADF);
       return -1;
     }
 
   /* Request the mutex.  */
-  pthread_mutex_lock (&__aio_requests_mutex);
+  __pthread_mutex_lock (&__aio_requests_mutex);
 
   /* We are asked to cancel a specific AIO request.  */
   if (aiocbp != NULL)
@@ -60,7 +61,7 @@  aio_cancel (int fildes, struct aiocb *aiocbp)
 	 to look for the request block.  */
       if (aiocbp->aio_fildes != fildes)
 	{
-	  pthread_mutex_unlock (&__aio_requests_mutex);
+	  __pthread_mutex_unlock (&__aio_requests_mutex);
 	  __set_errno (EINVAL);
 	  return -1;
 	}
@@ -73,7 +74,7 @@  aio_cancel (int fildes, struct aiocb *aiocbp)
 	  if (req == NULL)
 	    {
 	    not_found:
-	      pthread_mutex_unlock (&__aio_requests_mutex);
+	      __pthread_mutex_unlock (&__aio_requests_mutex);
 	      __set_errno (EINVAL);
 	      return -1;
 	    }
@@ -147,11 +148,20 @@  aio_cancel (int fildes, struct aiocb *aiocbp)
     }
 
   /* Release the mutex.  */
-  pthread_mutex_unlock (&__aio_requests_mutex);
+  __pthread_mutex_unlock (&__aio_requests_mutex);
 
   return result;
 }
-
-#ifndef aio_cancel
-weak_alias (aio_cancel, aio_cancel64)
+#if PTHREAD_IN_LIBC
+# ifndef __aio_cancel
+versioned_symbol (libc, __aio_cancel, aio_cancel, GLIBC_2_34);
+versioned_symbol (libc, __aio_cancel, aio_cancel64, GLIBC_2_34);
+#  if OTHER_SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_34)
+compat_symbol (librt, __aio_cancel, aio_cancel, GLIBC_2_1);
+compat_symbol (librt, __aio_cancel, aio_cancel64, GLIBC_2_1);
+#  endif
+# endif /* __aio_cancel */
+#else /* !PTHREAD_IN_LIBC */
+strong_alias (__aio_cancel, aio_cancel)
+weak_alias (__aio_cancel, aio_cancel64)
 #endif
diff --git a/rt/librt-compat.c b/rt/librt-compat.c
new file mode 100644
index 0000000000..7e5f1db940
--- /dev/null
+++ b/rt/librt-compat.c
@@ -0,0 +1,29 @@ 
+/* Placeholder definitions to pull in removed symbol versions.
+   Copyright (C) 2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#if PTHREAD_IN_LIBC
+# include <shlib-compat.h>
+# include <sys/cdefs.h>
+
+void
+attribute_compat_text_section
+__attribute_used__
+__librt_version_placeholder_1 (void)
+{
+}
+#endif
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 9771dec2d9..d9a45228b8 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -589,6 +589,8 @@  GLIBC_2.17 addseverity F
 GLIBC_2.17 adjtime F
 GLIBC_2.17 adjtimex F
 GLIBC_2.17 advance F
+GLIBC_2.17 aio_cancel F
+GLIBC_2.17 aio_cancel64 F
 GLIBC_2.17 aio_init F
 GLIBC_2.17 alarm F
 GLIBC_2.17 aligned_alloc F
@@ -2347,6 +2349,8 @@  GLIBC_2.34 __pthread_register_cancel_defer F
 GLIBC_2.34 __pthread_unregister_cancel F
 GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
 GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
index 66dc3e4457..0f3a79e3a4 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_cancel F
-GLIBC_2.17 aio_cancel64 F
 GLIBC_2.17 aio_error F
 GLIBC_2.17 aio_error64 F
 GLIBC_2.17 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/alpha/Versions b/sysdeps/unix/sysv/linux/alpha/Versions
index b113cb60e4..db6116a890 100644
--- a/sysdeps/unix/sysv/linux/alpha/Versions
+++ b/sysdeps/unix/sysv/linux/alpha/Versions
@@ -62,7 +62,12 @@  libc {
     wordexp;
   }
   GLIBC_2.3 {
-    _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
+    _sys_errlist;
+    _sys_nerr;
+    aio_cancel64;
+    aio_cancel;
+    sys_errlist;
+    sys_nerr;
   }
   GLIBC_2.3.3 {
     # Changed PTHREAD_STACK_MIN.
@@ -81,6 +86,9 @@  libc {
   GLIBC_2.27 {
     getrlimit; setrlimit; getrlimit64; setrlimit64;
   }
+  GLIBC_2.34 {
+    aio_cancel64;
+  }
   GLIBC_PRIVATE {
     __libc_alpha_cache_shape;
   }
@@ -92,8 +100,7 @@  ld {
 }
 librt {
   GLIBC_2.3 {
-    # AIO functions.
-    aio_cancel; aio_cancel64;
+    __librt_version_placeholder;
   }
   GLIBC_2.3.3 {
     # Changed timer_t.
diff --git a/sysdeps/unix/sysv/linux/alpha/aio_cancel.c b/sysdeps/unix/sysv/linux/alpha/aio_cancel.c
index 9f69b080ed..6e4352a9a4 100644
--- a/sysdeps/unix/sysv/linux/alpha/aio_cancel.c
+++ b/sysdeps/unix/sysv/linux/alpha/aio_cancel.c
@@ -8,26 +8,28 @@ 
 extern __typeof (aio_cancel) __new_aio_cancel;
 extern __typeof (aio_cancel) __old_aio_cancel;
 
-#define aio_cancel	__new_aio_cancel
+#define __aio_cancel	__new_aio_cancel
 
 #include <rt/aio_cancel.c>
 
-#undef aio_cancel
-strong_alias (__new_aio_cancel, __new_aio_cancel64);
-versioned_symbol (librt, __new_aio_cancel, aio_cancel, GLIBC_2_3);
-versioned_symbol (librt, __new_aio_cancel64, aio_cancel64, GLIBC_2_3);
+#undef __aio_cancel
+versioned_symbol (libc, __new_aio_cancel, aio_cancel, GLIBC_2_34);
+versioned_symbol (libc, __new_aio_cancel, aio_cancel64, GLIBC_2_34);
+#if OTHER_SHLIB_COMPAT (librt, GLIBC_2_3, GLIBC_2_34)
+compat_symbol (librt, __new_aio_cancel, aio_cancel, GLIBC_2_3);
+compat_symbol (librt, __new_aio_cancel, aio_cancel64, GLIBC_2_3);
+#endif
 
-#if SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_3)
+#if OTHER_SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_3)
 
 #undef ECANCELED
-#define aio_cancel	__old_aio_cancel
+#define __aio_cancel	__old_aio_cancel
 #define ECANCELED	125
 
 #include <rt/aio_cancel.c>
 
-#undef aio_cancel
-strong_alias (__old_aio_cancel, __old_aio_cancel64);
+#undef __aio_cancel
 compat_symbol (librt, __old_aio_cancel, aio_cancel, GLIBC_2_1);
-compat_symbol (librt, __old_aio_cancel64, aio_cancel64, GLIBC_2_1);
+compat_symbol (librt, __old_aio_cancel, aio_cancel64, GLIBC_2_1);
 
 #endif
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index eb606a5ace..d7a8dbb2f6 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -1502,6 +1502,8 @@  GLIBC_2.1 _sys_siglist D 0x200
 GLIBC_2.1 addseverity F
 GLIBC_2.1 adjtime F
 GLIBC_2.1 adjtimex F
+GLIBC_2.1 aio_cancel F
+GLIBC_2.1 aio_cancel64 F
 GLIBC_2.1 aio_init F
 GLIBC_2.1 alphasort64 F
 GLIBC_2.1 argp_err_exit_status D 0x4
@@ -2202,6 +2204,8 @@  GLIBC_2.3 __uselocale F
 GLIBC_2.3 __wcsftime_l F
 GLIBC_2.3 _sys_errlist D 0x420
 GLIBC_2.3 _sys_nerr D 0x4
+GLIBC_2.3 aio_cancel F
+GLIBC_2.3 aio_cancel64 F
 GLIBC_2.3 duplocale F
 GLIBC_2.3 fgetxattr F
 GLIBC_2.3 flistxattr F
@@ -2440,6 +2444,8 @@  GLIBC_2.34 __pthread_register_cancel_defer F
 GLIBC_2.34 __pthread_unregister_cancel F
 GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
 GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/alpha/librt-compat.c b/sysdeps/unix/sysv/linux/alpha/librt-compat.c
new file mode 100644
index 0000000000..96e92e1637
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/librt-compat.c
@@ -0,0 +1,24 @@ 
+/* Placeholder definitions to pull in removed symbol versions.  alpha version.
+   Copyright (C) 2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#include <rt/librt-compat.c>
+
+#if SHLIB_COMPAT (librt, GLIBC_2_3, GLIBC_2_34)
+compat_symbol (librt, __librt_version_placeholder_1,
+               __librt_version_placeholder, GLIBC_2_3);
+#endif
diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
index 94f5ca8b6f..c7e49f9a98 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_cancel F
-GLIBC_2.1 aio_cancel64 F
 GLIBC_2.1 aio_error F
 GLIBC_2.1 aio_error64 F
 GLIBC_2.1 aio_fsync F
@@ -19,8 +17,7 @@  GLIBC_2.2 timer_delete F
 GLIBC_2.2 timer_getoverrun F
 GLIBC_2.2 timer_gettime F
 GLIBC_2.2 timer_settime F
-GLIBC_2.3 aio_cancel F
-GLIBC_2.3 aio_cancel64 F
+GLIBC_2.3 __librt_version_placeholder F
 GLIBC_2.3.3 timer_create F
 GLIBC_2.3.3 timer_delete F
 GLIBC_2.3.3 timer_getoverrun F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 30ba5ad683..22b501ea2b 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -550,6 +550,8 @@  GLIBC_2.32 addmntent F
 GLIBC_2.32 addseverity F
 GLIBC_2.32 adjtime F
 GLIBC_2.32 adjtimex F
+GLIBC_2.32 aio_cancel F
+GLIBC_2.32 aio_cancel64 F
 GLIBC_2.32 aio_init F
 GLIBC_2.32 alarm F
 GLIBC_2.32 aligned_alloc F
@@ -2106,6 +2108,8 @@  GLIBC_2.34 __pthread_register_cancel_defer F
 GLIBC_2.34 __pthread_unregister_cancel F
 GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
 GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
index e53772e428..ca2aac8d45 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_cancel F
-GLIBC_2.32 aio_cancel64 F
 GLIBC_2.32 aio_error F
 GLIBC_2.32 aio_error64 F
 GLIBC_2.32 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index aec5cc13d4..1eb18fc392 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -200,6 +200,8 @@  GLIBC_2.34 __pthread_register_cancel_defer F
 GLIBC_2.34 __pthread_unregister_cancel F
 GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
 GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
@@ -904,6 +906,8 @@  GLIBC_2.4 addseverity F
 GLIBC_2.4 adjtime F
 GLIBC_2.4 adjtimex F
 GLIBC_2.4 advance F
+GLIBC_2.4 aio_cancel F
+GLIBC_2.4 aio_cancel64 F
 GLIBC_2.4 aio_init F
 GLIBC_2.4 alarm F
 GLIBC_2.4 alphasort F
diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
index 739573ba0d..216950b6c1 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_cancel F
-GLIBC_2.4 aio_cancel64 F
 GLIBC_2.4 aio_error F
 GLIBC_2.4 aio_error64 F
 GLIBC_2.4 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index dad3c2028f..97d104e75d 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -197,6 +197,8 @@  GLIBC_2.34 __pthread_register_cancel_defer F
 GLIBC_2.34 __pthread_unregister_cancel F
 GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
 GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
@@ -901,6 +903,8 @@  GLIBC_2.4 addseverity F
 GLIBC_2.4 adjtime F
 GLIBC_2.4 adjtimex F
 GLIBC_2.4 advance F
+GLIBC_2.4 aio_cancel F
+GLIBC_2.4 aio_cancel64 F
 GLIBC_2.4 aio_init F
 GLIBC_2.4 alarm F
 GLIBC_2.4 alphasort F
diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
index 739573ba0d..216950b6c1 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_cancel F
-GLIBC_2.4 aio_cancel64 F
 GLIBC_2.4 aio_error F
 GLIBC_2.4 aio_error64 F
 GLIBC_2.4 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index b294ade233..d74047a014 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -564,6 +564,8 @@  GLIBC_2.29 addmntent F
 GLIBC_2.29 addseverity F
 GLIBC_2.29 adjtime F
 GLIBC_2.29 adjtimex F
+GLIBC_2.29 aio_cancel F
+GLIBC_2.29 aio_cancel64 F
 GLIBC_2.29 aio_init F
 GLIBC_2.29 alarm F
 GLIBC_2.29 aligned_alloc F
@@ -2290,6 +2292,8 @@  GLIBC_2.34 __pthread_register_cancel_defer F
 GLIBC_2.34 __pthread_unregister_cancel F
 GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
 GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
index 26dcba0488..2d13281a1f 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_cancel F
-GLIBC_2.29 aio_cancel64 F
 GLIBC_2.29 aio_error F
 GLIBC_2.29 aio_error64 F
 GLIBC_2.29 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 3794805eea..46e9b50a10 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -3,6 +3,8 @@  GLIBC_2.0 dlclose F
 GLIBC_2.0 dlerror F
 GLIBC_2.0 dlopen F
 GLIBC_2.0 dlsym F
+GLIBC_2.1 aio_cancel F
+GLIBC_2.1 aio_cancel64 F
 GLIBC_2.1 aio_init F
 GLIBC_2.1 dlopen F
 GLIBC_2.1 dlvsym F
@@ -2244,6 +2246,8 @@  GLIBC_2.34 __pthread_register_cancel_defer F
 GLIBC_2.34 __pthread_unregister_cancel F
 GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
 GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
index 5668fd660c..9c7f42e69d 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_cancel F
-GLIBC_2.1 aio_cancel64 F
 GLIBC_2.1 aio_error F
 GLIBC_2.1 aio_error64 F
 GLIBC_2.1 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 3c4d4e03ee..9417531a3a 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -1475,6 +1475,8 @@  GLIBC_2.1 _sys_errlist D 0x1f4
 GLIBC_2.1 _sys_nerr D 0x4
 GLIBC_2.1 _sys_siglist D 0x100
 GLIBC_2.1 addseverity F
+GLIBC_2.1 aio_cancel F
+GLIBC_2.1 aio_cancel64 F
 GLIBC_2.1 aio_init F
 GLIBC_2.1 alphasort64 F
 GLIBC_2.1 argp_err_exit_status D 0x4
@@ -2428,6 +2430,8 @@  GLIBC_2.34 __pthread_register_cancel_defer F
 GLIBC_2.34 __pthread_unregister_cancel F
 GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
 GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
index 5668fd660c..9c7f42e69d 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_cancel F
-GLIBC_2.1 aio_cancel64 F
 GLIBC_2.1 aio_error F
 GLIBC_2.1 aio_error64 F
 GLIBC_2.1 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 5557ac1330..dab468ed14 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -3,6 +3,8 @@  GLIBC_2.0 dlclose F
 GLIBC_2.0 dlerror F
 GLIBC_2.0 dlopen F
 GLIBC_2.0 dlsym F
+GLIBC_2.1 aio_cancel F
+GLIBC_2.1 aio_cancel64 F
 GLIBC_2.1 aio_init F
 GLIBC_2.1 dlopen F
 GLIBC_2.1 dlvsym F
@@ -2280,6 +2282,8 @@  GLIBC_2.34 __pthread_register_cancel_defer F
 GLIBC_2.34 __pthread_unregister_cancel F
 GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
 GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
index 2c97c02f21..cfe45b0383 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_cancel F
-GLIBC_2.1 aio_cancel64 F
 GLIBC_2.1 aio_error F
 GLIBC_2.1 aio_error64 F
 GLIBC_2.1 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index bd922aa71a..3376822cb8 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -201,6 +201,8 @@  GLIBC_2.34 __pthread_register_cancel_defer F
 GLIBC_2.34 __pthread_unregister_cancel F
 GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
 GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
@@ -892,6 +894,8 @@  GLIBC_2.4 addseverity F
 GLIBC_2.4 adjtime F
 GLIBC_2.4 adjtimex F
 GLIBC_2.4 advance F
+GLIBC_2.4 aio_cancel F
+GLIBC_2.4 aio_cancel64 F
 GLIBC_2.4 aio_init F
 GLIBC_2.4 alarm F
 GLIBC_2.4 alphasort F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
index 739573ba0d..216950b6c1 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_cancel F
-GLIBC_2.4 aio_cancel64 F
 GLIBC_2.4 aio_error F
 GLIBC_2.4 aio_error64 F
 GLIBC_2.4 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 30f26f4875..647dbd8445 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -1473,6 +1473,8 @@  GLIBC_2.1 _sys_errlist D 0x1f4
 GLIBC_2.1 _sys_nerr D 0x4
 GLIBC_2.1 _sys_siglist D 0x100
 GLIBC_2.1 addseverity F
+GLIBC_2.1 aio_cancel F
+GLIBC_2.1 aio_cancel64 F
 GLIBC_2.1 aio_init F
 GLIBC_2.1 alphasort64 F
 GLIBC_2.1 argp_err_exit_status D 0x4
@@ -2371,6 +2373,8 @@  GLIBC_2.34 __pthread_register_cancel_defer F
 GLIBC_2.34 __pthread_unregister_cancel F
 GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
 GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
index 5668fd660c..9c7f42e69d 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_cancel F
-GLIBC_2.1 aio_cancel64 F
 GLIBC_2.1 aio_error F
 GLIBC_2.1 aio_error64 F
 GLIBC_2.1 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 3731d5340e..741775f9af 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -591,6 +591,8 @@  GLIBC_2.18 addseverity F
 GLIBC_2.18 adjtime F
 GLIBC_2.18 adjtimex F
 GLIBC_2.18 advance F
+GLIBC_2.18 aio_cancel F
+GLIBC_2.18 aio_cancel64 F
 GLIBC_2.18 aio_init F
 GLIBC_2.18 alarm F
 GLIBC_2.18 aligned_alloc F
@@ -2341,6 +2343,8 @@  GLIBC_2.34 __pthread_register_cancel_defer F
 GLIBC_2.34 __pthread_unregister_cancel F
 GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
 GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
index 6eb17cedbc..867c912709 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_cancel F
-GLIBC_2.18 aio_cancel64 F
 GLIBC_2.18 aio_error F
 GLIBC_2.18 aio_error64 F
 GLIBC_2.18 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index b14b9ba0e5..e5d1aaad59 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -591,6 +591,8 @@  GLIBC_2.18 addseverity F
 GLIBC_2.18 adjtime F
 GLIBC_2.18 adjtimex F
 GLIBC_2.18 advance F
+GLIBC_2.18 aio_cancel F
+GLIBC_2.18 aio_cancel64 F
 GLIBC_2.18 aio_init F
 GLIBC_2.18 alarm F
 GLIBC_2.18 aligned_alloc F
@@ -2338,6 +2340,8 @@  GLIBC_2.34 __pthread_register_cancel_defer F
 GLIBC_2.34 __pthread_unregister_cancel F
 GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
 GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
index 6eb17cedbc..867c912709 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_cancel F
-GLIBC_2.18 aio_cancel64 F
 GLIBC_2.18 aio_error F
 GLIBC_2.18 aio_error64 F
 GLIBC_2.18 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 11f60b0399..a081b0e93e 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -1651,6 +1651,8 @@  GLIBC_2.2 _sys_nerr D 0x4
 GLIBC_2.2 _sys_siglist D 0x100
 GLIBC_2.2 _test_and_set F
 GLIBC_2.2 addseverity F
+GLIBC_2.2 aio_cancel F
+GLIBC_2.2 aio_cancel64 F
 GLIBC_2.2 aio_init F
 GLIBC_2.2 alphasort64 F
 GLIBC_2.2 argp_err_exit_status D 0x4
@@ -2336,6 +2338,8 @@  GLIBC_2.34 __pthread_register_cancel_defer F
 GLIBC_2.34 __pthread_unregister_cancel F
 GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
 GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
index 40749a395c..c9e82563c1 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_cancel F
-GLIBC_2.2 aio_cancel64 F
 GLIBC_2.2 aio_error F
 GLIBC_2.2 aio_error64 F
 GLIBC_2.2 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index de2cb5fb4d..d86a4d79cf 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -1649,6 +1649,8 @@  GLIBC_2.2 _sys_nerr D 0x4
 GLIBC_2.2 _sys_siglist D 0x100
 GLIBC_2.2 _test_and_set F
 GLIBC_2.2 addseverity F
+GLIBC_2.2 aio_cancel F
+GLIBC_2.2 aio_cancel64 F
 GLIBC_2.2 aio_init F
 GLIBC_2.2 alphasort64 F
 GLIBC_2.2 argp_err_exit_status D 0x4
@@ -2334,6 +2336,8 @@  GLIBC_2.34 __pthread_register_cancel_defer F
 GLIBC_2.34 __pthread_unregister_cancel F
 GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
 GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
index 40749a395c..c9e82563c1 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_cancel F
-GLIBC_2.2 aio_cancel64 F
 GLIBC_2.2 aio_error F
 GLIBC_2.2 aio_error64 F
 GLIBC_2.2 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 5e76f90af3..bd9c354b2a 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -1650,6 +1650,8 @@  GLIBC_2.2 _sys_nerr D 0x4
 GLIBC_2.2 _sys_siglist D 0x100
 GLIBC_2.2 _test_and_set F
 GLIBC_2.2 addseverity F
+GLIBC_2.2 aio_cancel F
+GLIBC_2.2 aio_cancel64 F
 GLIBC_2.2 aio_init F
 GLIBC_2.2 alphasort64 F
 GLIBC_2.2 argp_err_exit_status D 0x4
@@ -2342,6 +2344,8 @@  GLIBC_2.34 __pthread_register_cancel_defer F
 GLIBC_2.34 __pthread_unregister_cancel F
 GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
 GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 4e1fedf92e..de45c2d3b6 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -1646,6 +1646,8 @@  GLIBC_2.2 _sys_nerr D 0x4
 GLIBC_2.2 _sys_siglist D 0x200
 GLIBC_2.2 _test_and_set F
 GLIBC_2.2 addseverity F
+GLIBC_2.2 aio_cancel F
+GLIBC_2.2 aio_cancel64 F
 GLIBC_2.2 aio_init F
 GLIBC_2.2 alphasort64 F
 GLIBC_2.2 argp_err_exit_status D 0x4
@@ -2336,6 +2338,8 @@  GLIBC_2.34 __pthread_register_cancel_defer F
 GLIBC_2.34 __pthread_unregister_cancel F
 GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
 GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index e88575f475..2e3b269283 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -633,6 +633,8 @@  GLIBC_2.21 addseverity F
 GLIBC_2.21 adjtime F
 GLIBC_2.21 adjtimex F
 GLIBC_2.21 advance F
+GLIBC_2.21 aio_cancel F
+GLIBC_2.21 aio_cancel64 F
 GLIBC_2.21 aio_init F
 GLIBC_2.21 alarm F
 GLIBC_2.21 aligned_alloc F
@@ -2380,6 +2382,8 @@  GLIBC_2.34 __pthread_register_cancel_defer F
 GLIBC_2.34 __pthread_unregister_cancel F
 GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
 GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
index f626834a28..bcdf31b913 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_cancel F
-GLIBC_2.21 aio_cancel64 F
 GLIBC_2.21 aio_error F
 GLIBC_2.21 aio_error64 F
 GLIBC_2.21 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index cbb206812d..5e4042229d 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -1480,6 +1480,8 @@  GLIBC_2.1 _sys_errlist D 0x1f4
 GLIBC_2.1 _sys_nerr D 0x4
 GLIBC_2.1 _sys_siglist D 0x100
 GLIBC_2.1 addseverity F
+GLIBC_2.1 aio_cancel F
+GLIBC_2.1 aio_cancel64 F
 GLIBC_2.1 aio_init F
 GLIBC_2.1 alphasort64 F
 GLIBC_2.1 argp_err_exit_status D 0x4
@@ -2398,6 +2400,8 @@  GLIBC_2.34 __pthread_register_cancel_defer F
 GLIBC_2.34 __pthread_unregister_cancel F
 GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
 GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
index 5668fd660c..9c7f42e69d 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_cancel F
-GLIBC_2.1 aio_cancel64 F
 GLIBC_2.1 aio_error F
 GLIBC_2.1 aio_error64 F
 GLIBC_2.1 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index bc37392916..5eb4991123 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -1480,6 +1480,8 @@  GLIBC_2.1 _sys_errlist D 0x1f4
 GLIBC_2.1 _sys_nerr D 0x4
 GLIBC_2.1 _sys_siglist D 0x100
 GLIBC_2.1 addseverity F
+GLIBC_2.1 aio_cancel F
+GLIBC_2.1 aio_cancel64 F
 GLIBC_2.1 aio_init F
 GLIBC_2.1 alphasort64 F
 GLIBC_2.1 argp_err_exit_status D 0x4
@@ -2431,6 +2433,8 @@  GLIBC_2.34 __pthread_register_cancel_defer F
 GLIBC_2.34 __pthread_unregister_cancel F
 GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
 GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 6054621b47..f475d03e11 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -633,6 +633,8 @@  GLIBC_2.3 addseverity F
 GLIBC_2.3 adjtime F
 GLIBC_2.3 adjtimex F
 GLIBC_2.3 advance F
+GLIBC_2.3 aio_cancel F
+GLIBC_2.3 aio_cancel64 F
 GLIBC_2.3 aio_init F
 GLIBC_2.3 alarm F
 GLIBC_2.3 alphasort F
@@ -2244,6 +2246,8 @@  GLIBC_2.34 __pthread_register_cancel_defer F
 GLIBC_2.34 __pthread_unregister_cancel F
 GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
 GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
index 3607639c50..1943e645ed 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_cancel F
-GLIBC_2.3 aio_cancel64 F
 GLIBC_2.3 aio_error F
 GLIBC_2.3 aio_error64 F
 GLIBC_2.3 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 49f5140023..c324cb8f92 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -677,6 +677,8 @@  GLIBC_2.17 addseverity F
 GLIBC_2.17 adjtime F
 GLIBC_2.17 adjtimex F
 GLIBC_2.17 advance F
+GLIBC_2.17 aio_cancel F
+GLIBC_2.17 aio_cancel64 F
 GLIBC_2.17 aio_init F
 GLIBC_2.17 alarm F
 GLIBC_2.17 aligned_alloc F
@@ -2543,6 +2545,8 @@  GLIBC_2.34 __pthread_register_cancel_defer F
 GLIBC_2.34 __pthread_unregister_cancel F
 GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
 GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
index 66dc3e4457..0f3a79e3a4 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_cancel F
-GLIBC_2.17 aio_cancel64 F
 GLIBC_2.17 aio_error F
 GLIBC_2.17 aio_error64 F
 GLIBC_2.17 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 5347a99441..939e61bb67 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -544,6 +544,8 @@  GLIBC_2.33 addmntent F
 GLIBC_2.33 addseverity F
 GLIBC_2.33 adjtime F
 GLIBC_2.33 adjtimex F
+GLIBC_2.33 aio_cancel F
+GLIBC_2.33 aio_cancel64 F
 GLIBC_2.33 aio_init F
 GLIBC_2.33 alarm F
 GLIBC_2.33 aligned_alloc F
@@ -2108,6 +2110,8 @@  GLIBC_2.34 __pthread_register_cancel_defer F
 GLIBC_2.34 __pthread_unregister_cancel F
 GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
 GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
index c588e04ae0..3a0bb5db43 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_cancel F
-GLIBC_2.33 aio_cancel64 F
 GLIBC_2.33 aio_error F
 GLIBC_2.33 aio_error64 F
 GLIBC_2.33 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index ef2bd64a0c..8d34e34e38 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -570,6 +570,8 @@  GLIBC_2.27 addmntent F
 GLIBC_2.27 addseverity F
 GLIBC_2.27 adjtime F
 GLIBC_2.27 adjtimex F
+GLIBC_2.27 aio_cancel F
+GLIBC_2.27 aio_cancel64 F
 GLIBC_2.27 aio_init F
 GLIBC_2.27 alarm F
 GLIBC_2.27 aligned_alloc F
@@ -2308,6 +2310,8 @@  GLIBC_2.34 __pthread_register_cancel_defer F
 GLIBC_2.34 __pthread_unregister_cancel F
 GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
 GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
index 4be13a5327..7f78e1b461 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_cancel F
-GLIBC_2.27 aio_cancel64 F
 GLIBC_2.27 aio_error F
 GLIBC_2.27 aio_error64 F
 GLIBC_2.27 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 5da99f41d1..97f20d7152 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -1472,6 +1472,8 @@  GLIBC_2.1 _sys_errlist D 0x1f4
 GLIBC_2.1 _sys_nerr D 0x4
 GLIBC_2.1 _sys_siglist D 0x100
 GLIBC_2.1 addseverity F
+GLIBC_2.1 aio_cancel F
+GLIBC_2.1 aio_cancel64 F
 GLIBC_2.1 aio_init F
 GLIBC_2.1 alphasort64 F
 GLIBC_2.1 argp_err_exit_status D 0x4
@@ -2396,6 +2398,8 @@  GLIBC_2.34 __pthread_register_cancel_defer F
 GLIBC_2.34 __pthread_unregister_cancel F
 GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
 GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
index 5668fd660c..9c7f42e69d 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_cancel F
-GLIBC_2.1 aio_cancel64 F
 GLIBC_2.1 aio_error F
 GLIBC_2.1 aio_error64 F
 GLIBC_2.1 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 7582590fc7..c9c74df986 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -570,6 +570,8 @@  GLIBC_2.2 addseverity F
 GLIBC_2.2 adjtime F
 GLIBC_2.2 adjtimex F
 GLIBC_2.2 advance F
+GLIBC_2.2 aio_cancel F
+GLIBC_2.2 aio_cancel64 F
 GLIBC_2.2 aio_init F
 GLIBC_2.2 alarm F
 GLIBC_2.2 alphasort F
@@ -2281,6 +2283,8 @@  GLIBC_2.34 __pthread_register_cancel_defer F
 GLIBC_2.34 __pthread_unregister_cancel F
 GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
 GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
index 97673a21d4..7948f84cec 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_cancel F
-GLIBC_2.2 aio_cancel64 F
 GLIBC_2.2 aio_error F
 GLIBC_2.2 aio_error64 F
 GLIBC_2.2 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 429fa14f73..07241a3bba 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -7,6 +7,8 @@  GLIBC_2.0 dlclose F
 GLIBC_2.0 dlerror F
 GLIBC_2.0 dlopen F
 GLIBC_2.0 dlsym F
+GLIBC_2.1 aio_cancel F
+GLIBC_2.1 aio_cancel64 F
 GLIBC_2.1 aio_init F
 GLIBC_2.1 dlopen F
 GLIBC_2.1 dlvsym F
@@ -2251,6 +2253,8 @@  GLIBC_2.34 __pthread_register_cancel_defer F
 GLIBC_2.34 __pthread_unregister_cancel F
 GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
 GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
index 5668fd660c..9c7f42e69d 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_cancel F
-GLIBC_2.1 aio_cancel64 F
 GLIBC_2.1 aio_error F
 GLIBC_2.1 aio_error64 F
 GLIBC_2.1 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 1d1d227771..6c53ff3b36 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -7,6 +7,8 @@  GLIBC_2.0 dlclose F
 GLIBC_2.0 dlerror F
 GLIBC_2.0 dlopen F
 GLIBC_2.0 dlsym F
+GLIBC_2.1 aio_cancel F
+GLIBC_2.1 aio_cancel64 F
 GLIBC_2.1 aio_init F
 GLIBC_2.1 dlopen F
 GLIBC_2.1 dlvsym F
@@ -2248,6 +2250,8 @@  GLIBC_2.34 __pthread_register_cancel_defer F
 GLIBC_2.34 __pthread_unregister_cancel F
 GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
 GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
index 5668fd660c..9c7f42e69d 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_cancel F
-GLIBC_2.1 aio_cancel64 F
 GLIBC_2.1 aio_error F
 GLIBC_2.1 aio_error64 F
 GLIBC_2.1 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/sparc/Versions b/sysdeps/unix/sysv/linux/sparc/Versions
index f1027603a4..f127bdf0b8 100644
--- a/sysdeps/unix/sysv/linux/sparc/Versions
+++ b/sysdeps/unix/sysv/linux/sparc/Versions
@@ -6,7 +6,12 @@  libc {
     _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
   }
   GLIBC_2.3 {
-    _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
+    _sys_errlist;
+    _sys_nerr;
+    aio_cancel64;
+    aio_cancel;
+    sys_errlist;
+    sys_nerr;
   }
   GLIBC_2.3.3 {
     # Changed PTHREAD_STACK_MIN.
@@ -29,10 +34,8 @@  libc {
     __vdso_clock_gettime;
   }
 }
-
 librt {
   GLIBC_2.3 {
-    # AIO functions.
-    aio_cancel; aio_cancel64;
+    __librt_version_placeholder;
   }
 }
diff --git a/sysdeps/unix/sysv/linux/sparc/aio_cancel.c b/sysdeps/unix/sysv/linux/sparc/aio_cancel.c
index 9f69b080ed..6e4352a9a4 100644
--- a/sysdeps/unix/sysv/linux/sparc/aio_cancel.c
+++ b/sysdeps/unix/sysv/linux/sparc/aio_cancel.c
@@ -8,26 +8,28 @@ 
 extern __typeof (aio_cancel) __new_aio_cancel;
 extern __typeof (aio_cancel) __old_aio_cancel;
 
-#define aio_cancel	__new_aio_cancel
+#define __aio_cancel	__new_aio_cancel
 
 #include <rt/aio_cancel.c>
 
-#undef aio_cancel
-strong_alias (__new_aio_cancel, __new_aio_cancel64);
-versioned_symbol (librt, __new_aio_cancel, aio_cancel, GLIBC_2_3);
-versioned_symbol (librt, __new_aio_cancel64, aio_cancel64, GLIBC_2_3);
+#undef __aio_cancel
+versioned_symbol (libc, __new_aio_cancel, aio_cancel, GLIBC_2_34);
+versioned_symbol (libc, __new_aio_cancel, aio_cancel64, GLIBC_2_34);
+#if OTHER_SHLIB_COMPAT (librt, GLIBC_2_3, GLIBC_2_34)
+compat_symbol (librt, __new_aio_cancel, aio_cancel, GLIBC_2_3);
+compat_symbol (librt, __new_aio_cancel, aio_cancel64, GLIBC_2_3);
+#endif
 
-#if SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_3)
+#if OTHER_SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_3)
 
 #undef ECANCELED
-#define aio_cancel	__old_aio_cancel
+#define __aio_cancel	__old_aio_cancel
 #define ECANCELED	125
 
 #include <rt/aio_cancel.c>
 
-#undef aio_cancel
-strong_alias (__old_aio_cancel, __old_aio_cancel64);
+#undef __aio_cancel
 compat_symbol (librt, __old_aio_cancel, aio_cancel, GLIBC_2_1);
-compat_symbol (librt, __old_aio_cancel64, aio_cancel64, GLIBC_2_1);
+compat_symbol (librt, __old_aio_cancel, aio_cancel64, GLIBC_2_1);
 
 #endif
diff --git a/sysdeps/unix/sysv/linux/sparc/librt-compat.c b/sysdeps/unix/sysv/linux/sparc/librt-compat.c
new file mode 100644
index 0000000000..a3862ba127
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/librt-compat.c
@@ -0,0 +1,24 @@ 
+/* Placeholder definitions to pull in removed symbol versions.  sparc version.
+   Copyright (C) 2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#include <rt/librt-compat.c>
+
+#if SHLIB_COMPAT (librt, GLIBC_2_3, GLIBC_2_34)
+compat_symbol (librt, __librt_version_placeholder_1,
+               __librt_version_placeholder, GLIBC_2_3);
+#endif
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index cc29540151..b2413a6c4a 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -1474,6 +1474,8 @@  GLIBC_2.1 _sys_errlist D 0x1fc
 GLIBC_2.1 _sys_nerr D 0x4
 GLIBC_2.1 _sys_siglist D 0x100
 GLIBC_2.1 addseverity F
+GLIBC_2.1 aio_cancel F
+GLIBC_2.1 aio_cancel64 F
 GLIBC_2.1 aio_init F
 GLIBC_2.1 alphasort64 F
 GLIBC_2.1 argp_err_exit_status D 0x4
@@ -2165,6 +2167,8 @@  GLIBC_2.3 __uselocale F
 GLIBC_2.3 __wcsftime_l F
 GLIBC_2.3 _sys_errlist D 0x200
 GLIBC_2.3 _sys_nerr D 0x4
+GLIBC_2.3 aio_cancel F
+GLIBC_2.3 aio_cancel64 F
 GLIBC_2.3 duplocale F
 GLIBC_2.3 fgetxattr F
 GLIBC_2.3 flistxattr F
@@ -2389,6 +2393,8 @@  GLIBC_2.34 __pthread_register_cancel_defer F
 GLIBC_2.34 __pthread_unregister_cancel F
 GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
 GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
index c9d92e6d1a..e00686e679 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_cancel F
-GLIBC_2.1 aio_cancel64 F
 GLIBC_2.1 aio_error F
 GLIBC_2.1 aio_error64 F
 GLIBC_2.1 aio_fsync F
@@ -19,8 +17,7 @@  GLIBC_2.2 timer_delete F
 GLIBC_2.2 timer_getoverrun F
 GLIBC_2.2 timer_gettime F
 GLIBC_2.2 timer_settime F
-GLIBC_2.3 aio_cancel F
-GLIBC_2.3 aio_cancel64 F
+GLIBC_2.3 __librt_version_placeholder F
 GLIBC_2.3.4 mq_close F
 GLIBC_2.3.4 mq_getattr F
 GLIBC_2.3.4 mq_notify F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index a9c67ea157..69b05f17b2 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -7,6 +7,8 @@  GLIBC_2.0 dlclose F
 GLIBC_2.0 dlerror F
 GLIBC_2.0 dlopen F
 GLIBC_2.0 dlsym F
+GLIBC_2.1 aio_cancel F
+GLIBC_2.1 aio_cancel64 F
 GLIBC_2.1 aio_init F
 GLIBC_2.1 dlopen F
 GLIBC_2.1 dlvsym F
@@ -2091,6 +2093,8 @@  GLIBC_2.3 __uselocale F
 GLIBC_2.3 __wcsftime_l F
 GLIBC_2.3 _sys_errlist D 0x400
 GLIBC_2.3 _sys_nerr D 0x4
+GLIBC_2.3 aio_cancel F
+GLIBC_2.3 aio_cancel64 F
 GLIBC_2.3 duplocale F
 GLIBC_2.3 fgetxattr F
 GLIBC_2.3 flistxattr F
@@ -2301,6 +2305,8 @@  GLIBC_2.34 __pthread_register_cancel_defer F
 GLIBC_2.34 __pthread_unregister_cancel F
 GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
 GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
index 94f5ca8b6f..c7e49f9a98 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_cancel F
-GLIBC_2.1 aio_cancel64 F
 GLIBC_2.1 aio_error F
 GLIBC_2.1 aio_error64 F
 GLIBC_2.1 aio_fsync F
@@ -19,8 +17,7 @@  GLIBC_2.2 timer_delete F
 GLIBC_2.2 timer_getoverrun F
 GLIBC_2.2 timer_gettime F
 GLIBC_2.2 timer_settime F
-GLIBC_2.3 aio_cancel F
-GLIBC_2.3 aio_cancel64 F
+GLIBC_2.3 __librt_version_placeholder F
 GLIBC_2.3.3 timer_create F
 GLIBC_2.3.3 timer_delete F
 GLIBC_2.3.3 timer_getoverrun F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index e340fbc8dd..bcb7d29a0f 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -559,6 +559,8 @@  GLIBC_2.2.5 addseverity F
 GLIBC_2.2.5 adjtime F
 GLIBC_2.2.5 adjtimex F
 GLIBC_2.2.5 advance F
+GLIBC_2.2.5 aio_cancel F
+GLIBC_2.2.5 aio_cancel64 F
 GLIBC_2.2.5 aio_init F
 GLIBC_2.2.5 alarm F
 GLIBC_2.2.5 alphasort F
@@ -2259,6 +2261,8 @@  GLIBC_2.34 __pthread_register_cancel_defer F
 GLIBC_2.34 __pthread_unregister_cancel F
 GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
 GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
index bac8c74b5f..1853412bcc 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_cancel F
-GLIBC_2.2.5 aio_cancel64 F
 GLIBC_2.2.5 aio_error F
 GLIBC_2.2.5 aio_error64 F
 GLIBC_2.2.5 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 9e488ae963..bfb215dd72 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -592,6 +592,8 @@  GLIBC_2.16 addseverity F
 GLIBC_2.16 adjtime F
 GLIBC_2.16 adjtimex F
 GLIBC_2.16 advance F
+GLIBC_2.16 aio_cancel F
+GLIBC_2.16 aio_cancel64 F
 GLIBC_2.16 aio_init F
 GLIBC_2.16 alarm F
 GLIBC_2.16 aligned_alloc F
@@ -2362,6 +2364,8 @@  GLIBC_2.34 __pthread_register_cancel_defer F
 GLIBC_2.34 __pthread_unregister_cancel F
 GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
 GLIBC_2.34 aio_init F
 GLIBC_2.34 call_once F
 GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
index 2e432fe7d6..310b1bf338 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_cancel F
-GLIBC_2.16 aio_cancel64 F
 GLIBC_2.16 aio_error F
 GLIBC_2.16 aio_error64 F
 GLIBC_2.16 aio_fsync F