diff mbox series

[11/34] Linux: Move aio_cancel, aio_cancel64 into libc

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

Checks

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

Commit Message

Florian Weimer June 17, 2021, 6:57 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 +++
 .../sysv/linux/mips/mips64/n32/libc.abilist   |  4 +++
 .../sysv/linux/mips/mips64/n32/librt.abilist  |  2 --
 .../sysv/linux/mips/mips64/n64/libc.abilist   |  4 +++
 .../sysv/linux/mips/mips64/n64/librt.abilist  |  2 --
 sysdeps/unix/sysv/linux/nios2/libc.abilist    |  4 +++
 sysdeps/unix/sysv/linux/nios2/librt.abilist   |  2 --
 .../linux/powerpc/powerpc32/fpu/libc.abilist  |  4 +++
 .../linux/powerpc/powerpc32/librt.abilist     |  2 --
 .../powerpc/powerpc32/nofpu/libc.abilist      |  4 +++
 .../linux/powerpc/powerpc64/be/libc.abilist   |  4 +++
 .../linux/powerpc/powerpc64/be/librt.abilist  |  2 --
 .../linux/powerpc/powerpc64/le/libc.abilist   |  4 +++
 .../linux/powerpc/powerpc64/le/librt.abilist  |  2 --
 .../unix/sysv/linux/riscv/rv32/libc.abilist   |  4 +++
 .../unix/sysv/linux/riscv/rv32/librt.abilist  |  2 --
 .../unix/sysv/linux/riscv/rv64/libc.abilist   |  4 +++
 .../unix/sysv/linux/riscv/rv64/librt.abilist  |  2 --
 .../unix/sysv/linux/s390/s390-32/libc.abilist |  4 +++
 .../sysv/linux/s390/s390-32/librt.abilist     |  2 --
 .../unix/sysv/linux/s390/s390-64/libc.abilist |  4 +++
 .../sysv/linux/s390/s390-64/librt.abilist     |  2 --
 sysdeps/unix/sysv/linux/sh/be/libc.abilist    |  4 +++
 sysdeps/unix/sysv/linux/sh/be/librt.abilist   |  2 --
 sysdeps/unix/sysv/linux/sh/le/libc.abilist    |  4 +++
 sysdeps/unix/sysv/linux/sh/le/librt.abilist   |  2 --
 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 --
 72 files changed, 284 insertions(+), 103 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

Comments

Adhemerval Zanella June 23, 2021, 5:26 p.m. UTC | #1
On 17/06/2021 15:57, Florian Weimer via Libc-alpha wrote:
> 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.

LGTM, thanks.

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

> ---
>  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 +++
>  .../sysv/linux/mips/mips64/n32/libc.abilist   |  4 +++
>  .../sysv/linux/mips/mips64/n32/librt.abilist  |  2 --
>  .../sysv/linux/mips/mips64/n64/libc.abilist   |  4 +++
>  .../sysv/linux/mips/mips64/n64/librt.abilist  |  2 --
>  sysdeps/unix/sysv/linux/nios2/libc.abilist    |  4 +++
>  sysdeps/unix/sysv/linux/nios2/librt.abilist   |  2 --
>  .../linux/powerpc/powerpc32/fpu/libc.abilist  |  4 +++
>  .../linux/powerpc/powerpc32/librt.abilist     |  2 --
>  .../powerpc/powerpc32/nofpu/libc.abilist      |  4 +++
>  .../linux/powerpc/powerpc64/be/libc.abilist   |  4 +++
>  .../linux/powerpc/powerpc64/be/librt.abilist  |  2 --
>  .../linux/powerpc/powerpc64/le/libc.abilist   |  4 +++
>  .../linux/powerpc/powerpc64/le/librt.abilist  |  2 --
>  .../unix/sysv/linux/riscv/rv32/libc.abilist   |  4 +++
>  .../unix/sysv/linux/riscv/rv32/librt.abilist  |  2 --
>  .../unix/sysv/linux/riscv/rv64/libc.abilist   |  4 +++
>  .../unix/sysv/linux/riscv/rv64/librt.abilist  |  2 --
>  .../unix/sysv/linux/s390/s390-32/libc.abilist |  4 +++
>  .../sysv/linux/s390/s390-32/librt.abilist     |  2 --
>  .../unix/sysv/linux/s390/s390-64/libc.abilist |  4 +++
>  .../sysv/linux/s390/s390-64/librt.abilist     |  2 --
>  sysdeps/unix/sysv/linux/sh/be/libc.abilist    |  4 +++
>  sysdeps/unix/sysv/linux/sh/be/librt.abilist   |  2 --
>  sysdeps/unix/sysv/linux/sh/le/libc.abilist    |  4 +++
>  sysdeps/unix/sysv/linux/sh/le/librt.abilist   |  2 --
>  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 --
>  72 files changed, 284 insertions(+), 103 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 --git a/rt/Makefile b/rt/Makefile
> index ada87c845e..5534b4c9b3 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 \

Ok.

> 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;

Ok.

> 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

Ok.

> 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

Ok.

> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index 1bc4ffccce..b0ead487fe 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
> @@ -2349,6 +2351,8 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_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

Ok.

> 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.

Ok.

> 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

Ok.

> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index 5f3bebef8c..0d621c3185 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
> @@ -2442,6 +2446,8 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_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


Ok.


> 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

Ok.

> 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 24d3a3673c..ce4d40c70f 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
> @@ -2108,6 +2110,8 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_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 582aa645c0..85526095ec 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -278,6 +278,8 @@ GLIBC_2.34 __wait3_time64 F
>  GLIBC_2.34 __wait4_time64 F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_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
> @@ -982,6 +984,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 3aa50aa219..f13a5f43f2 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> @@ -3,8 +3,6 @@ GLIBC_2.34 __mq_timedreceive_time64 F
>  GLIBC_2.34 __mq_timedsend_time64 F
>  GLIBC_2.34 __timer_gettime64 F
>  GLIBC_2.34 __timer_settime64 F
> -GLIBC_2.4 aio_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 400eae9ab0..d721446d49 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -275,6 +275,8 @@ GLIBC_2.34 __wait3_time64 F
>  GLIBC_2.34 __wait4_time64 F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_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
> @@ -979,6 +981,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 3aa50aa219..f13a5f43f2 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> @@ -3,8 +3,6 @@ GLIBC_2.34 __mq_timedreceive_time64 F
>  GLIBC_2.34 __mq_timedsend_time64 F
>  GLIBC_2.34 __timer_gettime64 F
>  GLIBC_2.34 __timer_settime64 F
> -GLIBC_2.4 aio_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 4cd189d5db..912b71d360 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
> @@ -2368,6 +2370,8 @@ GLIBC_2.34 __wait3_time64 F
>  GLIBC_2.34 __wait4_time64 F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_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 640230cfc0..3834cf1838 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 ede6bee0cd..b1392524cd 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
> @@ -2322,6 +2324,8 @@ GLIBC_2.34 __wait3_time64 F
>  GLIBC_2.34 __wait4_time64 F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_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 0114c42067..172d23f5c9 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 17063aaaf9..89c0531bff 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
> @@ -2506,6 +2508,8 @@ GLIBC_2.34 __wait3_time64 F
>  GLIBC_2.34 __wait4_time64 F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_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 0114c42067..172d23f5c9 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 4991b80dd1..69454c38aa 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
> @@ -2282,6 +2284,8 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_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 c1d7edf1f9..aab8d3a3dc 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -279,6 +279,8 @@ GLIBC_2.34 __wait3_time64 F
>  GLIBC_2.34 __wait4_time64 F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_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
> @@ -970,6 +972,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 3aa50aa219..f13a5f43f2 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> @@ -3,8 +3,6 @@ GLIBC_2.34 __mq_timedreceive_time64 F
>  GLIBC_2.34 __mq_timedsend_time64 F
>  GLIBC_2.34 __timer_gettime64 F
>  GLIBC_2.34 __timer_settime64 F
> -GLIBC_2.4 aio_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 725280a9db..8308c4e15b 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
> @@ -2449,6 +2451,8 @@ GLIBC_2.34 __wait3_time64 F
>  GLIBC_2.34 __wait4_time64 F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_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 0114c42067..172d23f5c9 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 fe9a9c2f09..ed3bbb44ac 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
> @@ -2419,6 +2421,8 @@ GLIBC_2.34 __wait3_time64 F
>  GLIBC_2.34 __wait4_time64 F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_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 679050b4b7..276c6eab44 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 8db8d27e29..909b471383 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
> @@ -2416,6 +2418,8 @@ GLIBC_2.34 __wait3_time64 F
>  GLIBC_2.34 __wait4_time64 F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_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 679050b4b7..276c6eab44 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 b6cd21ace7..c5569a40ad 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
> @@ -2414,6 +2416,8 @@ GLIBC_2.34 __wait3_time64 F
>  GLIBC_2.34 __wait4_time64 F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_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 617d124234..d8544013dd 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 65d0dcbe04..56163ef271 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
> @@ -2412,6 +2414,8 @@ GLIBC_2.34 __wait3_time64 F
>  GLIBC_2.34 __wait4_time64 F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_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/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index a2b2e09a63..da4a1dc99e 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
> @@ -2420,6 +2422,8 @@ GLIBC_2.34 __wait3_time64 F
>  GLIBC_2.34 __wait4_time64 F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_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/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> index 617d124234..d8544013dd 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.2 aio_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/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index 78b96a7119..1843d27812 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
> @@ -2338,6 +2340,8 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_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/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> index 40749a395c..c9e82563c1 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.2 aio_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/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index 98943b6041..c0f6dcf1e3 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
> @@ -2458,6 +2460,8 @@ GLIBC_2.34 __wait3_time64 F
>  GLIBC_2.34 __wait4_time64 F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_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 de354a6bb8..1edad5b4cb 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 f5d5c03eb3..130ab63a59 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
> @@ -2476,6 +2478,8 @@ GLIBC_2.34 __wait3_time64 F
>  GLIBC_2.34 __wait4_time64 F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_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 0114c42067..172d23f5c9 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 6e99869e4c..1b83ce1f6e 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
> @@ -2509,6 +2511,8 @@ GLIBC_2.34 __wait3_time64 F
>  GLIBC_2.34 __wait4_time64 F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_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 205768e241..a24bd98fbe 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
> @@ -2246,6 +2248,8 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_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 fccca7ccc6..bd0b3dd94f 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
> @@ -2545,6 +2547,8 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_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 1de14d1195..b1d1dac1b6 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
> @@ -2110,6 +2112,8 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_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 fd243b77de..2acb65c58c 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
> @@ -2310,6 +2312,8 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_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 5a9ccc644b..36b5ff2685 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
> @@ -2474,6 +2476,8 @@ GLIBC_2.34 __wait3_time64 F
>  GLIBC_2.34 __wait4_time64 F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_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 0114c42067..172d23f5c9 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 4b336dcbae..ed2a90f013 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
> @@ -2283,6 +2285,8 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_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 702fc7cd1c..b8eb5d98d7 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
> @@ -2329,6 +2331,8 @@ GLIBC_2.34 __wait3_time64 F
>  GLIBC_2.34 __wait4_time64 F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_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 0114c42067..172d23f5c9 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 cca5fe2265..5f4efe2398 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
> @@ -2326,6 +2328,8 @@ GLIBC_2.34 __wait3_time64 F
>  GLIBC_2.34 __wait4_time64 F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_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 0114c42067..172d23f5c9 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


Ok.

> 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;
>    }
>  }

Ok.

> 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


Ok.

> 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


Ok.

> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index 937efaaba4..82439ec5c4 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
> @@ -2467,6 +2471,8 @@ GLIBC_2.34 __wait3_time64 F
>  GLIBC_2.34 __wait4_time64 F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_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 e4e4569d81..61cc93c180 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 47f96b1480..8868399fce 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
> @@ -2303,6 +2307,8 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_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 4ff62311e9..9ee8856769 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
> @@ -2261,6 +2263,8 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_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 e34873201d..beac8c71ba 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
> @@ -2364,6 +2366,8 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
>  GLIBC_2.34 __pthread_unwind_next F
>  GLIBC_2.34 _pthread_cleanup_pop F
>  GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_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
> 

Ok.
diff mbox series

Patch

diff --git a/rt/Makefile b/rt/Makefile
index ada87c845e..5534b4c9b3 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 1bc4ffccce..b0ead487fe 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
@@ -2349,6 +2351,8 @@  GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_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 5f3bebef8c..0d621c3185 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
@@ -2442,6 +2446,8 @@  GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_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 24d3a3673c..ce4d40c70f 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
@@ -2108,6 +2110,8 @@  GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_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 582aa645c0..85526095ec 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -278,6 +278,8 @@  GLIBC_2.34 __wait3_time64 F
 GLIBC_2.34 __wait4_time64 F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_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
@@ -982,6 +984,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 3aa50aa219..f13a5f43f2 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -3,8 +3,6 @@  GLIBC_2.34 __mq_timedreceive_time64 F
 GLIBC_2.34 __mq_timedsend_time64 F
 GLIBC_2.34 __timer_gettime64 F
 GLIBC_2.34 __timer_settime64 F
-GLIBC_2.4 aio_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 400eae9ab0..d721446d49 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -275,6 +275,8 @@  GLIBC_2.34 __wait3_time64 F
 GLIBC_2.34 __wait4_time64 F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_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
@@ -979,6 +981,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 3aa50aa219..f13a5f43f2 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -3,8 +3,6 @@  GLIBC_2.34 __mq_timedreceive_time64 F
 GLIBC_2.34 __mq_timedsend_time64 F
 GLIBC_2.34 __timer_gettime64 F
 GLIBC_2.34 __timer_settime64 F
-GLIBC_2.4 aio_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 4cd189d5db..912b71d360 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
@@ -2368,6 +2370,8 @@  GLIBC_2.34 __wait3_time64 F
 GLIBC_2.34 __wait4_time64 F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_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 640230cfc0..3834cf1838 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 ede6bee0cd..b1392524cd 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
@@ -2322,6 +2324,8 @@  GLIBC_2.34 __wait3_time64 F
 GLIBC_2.34 __wait4_time64 F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_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 0114c42067..172d23f5c9 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 17063aaaf9..89c0531bff 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
@@ -2506,6 +2508,8 @@  GLIBC_2.34 __wait3_time64 F
 GLIBC_2.34 __wait4_time64 F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_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 0114c42067..172d23f5c9 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 4991b80dd1..69454c38aa 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
@@ -2282,6 +2284,8 @@  GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_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 c1d7edf1f9..aab8d3a3dc 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -279,6 +279,8 @@  GLIBC_2.34 __wait3_time64 F
 GLIBC_2.34 __wait4_time64 F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_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
@@ -970,6 +972,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 3aa50aa219..f13a5f43f2 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -3,8 +3,6 @@  GLIBC_2.34 __mq_timedreceive_time64 F
 GLIBC_2.34 __mq_timedsend_time64 F
 GLIBC_2.34 __timer_gettime64 F
 GLIBC_2.34 __timer_settime64 F
-GLIBC_2.4 aio_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 725280a9db..8308c4e15b 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
@@ -2449,6 +2451,8 @@  GLIBC_2.34 __wait3_time64 F
 GLIBC_2.34 __wait4_time64 F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_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 0114c42067..172d23f5c9 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 fe9a9c2f09..ed3bbb44ac 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
@@ -2419,6 +2421,8 @@  GLIBC_2.34 __wait3_time64 F
 GLIBC_2.34 __wait4_time64 F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_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 679050b4b7..276c6eab44 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 8db8d27e29..909b471383 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
@@ -2416,6 +2418,8 @@  GLIBC_2.34 __wait3_time64 F
 GLIBC_2.34 __wait4_time64 F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_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 679050b4b7..276c6eab44 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 b6cd21ace7..c5569a40ad 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
@@ -2414,6 +2416,8 @@  GLIBC_2.34 __wait3_time64 F
 GLIBC_2.34 __wait4_time64 F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_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 617d124234..d8544013dd 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 65d0dcbe04..56163ef271 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
@@ -2412,6 +2414,8 @@  GLIBC_2.34 __wait3_time64 F
 GLIBC_2.34 __wait4_time64 F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_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/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index a2b2e09a63..da4a1dc99e 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
@@ -2420,6 +2422,8 @@  GLIBC_2.34 __wait3_time64 F
 GLIBC_2.34 __wait4_time64 F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_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/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
index 617d124234..d8544013dd 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
@@ -1,5 +1,3 @@ 
-GLIBC_2.2 aio_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/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 78b96a7119..1843d27812 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
@@ -2338,6 +2340,8 @@  GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_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/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
index 40749a395c..c9e82563c1 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
@@ -1,5 +1,3 @@ 
-GLIBC_2.2 aio_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/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 98943b6041..c0f6dcf1e3 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
@@ -2458,6 +2460,8 @@  GLIBC_2.34 __wait3_time64 F
 GLIBC_2.34 __wait4_time64 F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_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 de354a6bb8..1edad5b4cb 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 f5d5c03eb3..130ab63a59 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
@@ -2476,6 +2478,8 @@  GLIBC_2.34 __wait3_time64 F
 GLIBC_2.34 __wait4_time64 F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_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 0114c42067..172d23f5c9 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 6e99869e4c..1b83ce1f6e 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
@@ -2509,6 +2511,8 @@  GLIBC_2.34 __wait3_time64 F
 GLIBC_2.34 __wait4_time64 F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_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 205768e241..a24bd98fbe 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
@@ -2246,6 +2248,8 @@  GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_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 fccca7ccc6..bd0b3dd94f 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
@@ -2545,6 +2547,8 @@  GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_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 1de14d1195..b1d1dac1b6 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
@@ -2110,6 +2112,8 @@  GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_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 fd243b77de..2acb65c58c 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
@@ -2310,6 +2312,8 @@  GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_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 5a9ccc644b..36b5ff2685 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
@@ -2474,6 +2476,8 @@  GLIBC_2.34 __wait3_time64 F
 GLIBC_2.34 __wait4_time64 F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_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 0114c42067..172d23f5c9 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 4b336dcbae..ed2a90f013 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
@@ -2283,6 +2285,8 @@  GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_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 702fc7cd1c..b8eb5d98d7 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
@@ -2329,6 +2331,8 @@  GLIBC_2.34 __wait3_time64 F
 GLIBC_2.34 __wait4_time64 F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_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 0114c42067..172d23f5c9 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 cca5fe2265..5f4efe2398 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
@@ -2326,6 +2328,8 @@  GLIBC_2.34 __wait3_time64 F
 GLIBC_2.34 __wait4_time64 F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_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 0114c42067..172d23f5c9 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 937efaaba4..82439ec5c4 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
@@ -2467,6 +2471,8 @@  GLIBC_2.34 __wait3_time64 F
 GLIBC_2.34 __wait4_time64 F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_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 e4e4569d81..61cc93c180 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 47f96b1480..8868399fce 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
@@ -2303,6 +2307,8 @@  GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_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 4ff62311e9..9ee8856769 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
@@ -2261,6 +2263,8 @@  GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_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 e34873201d..beac8c71ba 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
@@ -2364,6 +2366,8 @@  GLIBC_2.34 __pthread_unregister_cancel_restore F
 GLIBC_2.34 __pthread_unwind_next F
 GLIBC_2.34 _pthread_cleanup_pop F
 GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_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