* [PATCH 01/34] rt: Lexicographically sort Versions file; librt-routines in Makefile
2021-06-17 18:56 [PATCH v2 00/34] Move librt into libc Florian Weimer
@ 2021-06-17 18:56 ` Florian Weimer
2021-06-17 18:56 ` [PATCH 02/34] Fix librt-routines-var issues for !PTHREAD_IN_LIBC Florian Weimer
` (33 subsequent siblings)
34 siblings, 0 replies; 72+ messages in thread
From: Florian Weimer @ 2021-06-17 18:56 UTC (permalink / raw)
To: libc-alpha
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
---
rt/Makefile | 46 ++++++++++++++++++++++++++++++++--------------
rt/Versions | 45 +++++++++++++++++++++++++++++++++------------
2 files changed, 65 insertions(+), 26 deletions(-)
diff --git a/rt/Makefile b/rt/Makefile
index 797f2da51e..b0d887202d 100644
--- a/rt/Makefile
+++ b/rt/Makefile
@@ -24,20 +24,38 @@ include ../Makeconfig
headers := aio.h mqueue.h bits/mqueue.h bits/mqueue2.h
-aio-routines := aio_cancel aio_error aio_fsync aio_misc aio_read \
- aio_read64 aio_return aio_suspend aio_write \
- aio_write64 lio_listio lio_listio64 aio_sigqueue \
- aio_notify
-timer-routines := timer_create timer_delete timer_getoverr \
- timer_gettime timer_settime
-shm-routines := shm_open shm_unlink
-mq-routines := mq_open mq_close mq_unlink mq_getattr mq_setattr \
- mq_notify mq_send mq_receive mq_timedsend \
- mq_timedreceive
-
-librt-routines = $(aio-routines) \
- $(timer-routines) \
- $(shm-routines) $(mq-routines)
+librt-routines = \
+ aio_cancel \
+ aio_error \
+ aio_fsync \
+ aio_misc \
+ aio_notify \
+ aio_read \
+ aio_read64 \
+ aio_return \
+ aio_sigqueue \
+ aio_suspend \
+ aio_write \
+ aio_write64 \
+ lio_listio \
+ lio_listio64 \
+ mq_close \
+ mq_getattr \
+ mq_notify \
+ mq_open \
+ mq_receive \
+ mq_send \
+ mq_setattr \
+ mq_timedreceive \
+ mq_timedsend \
+ mq_unlink \
+ shm_open \
+ shm_unlink \
+ timer_create \
+ timer_delete \
+ timer_getoverr \
+ timer_gettime \
+ timer_settime \
$(librt-routines-var) = \
diff --git a/rt/Versions b/rt/Versions
index 84d1345420..f151f85ef6 100644
--- a/rt/Versions
+++ b/rt/Versions
@@ -1,22 +1,43 @@
librt {
GLIBC_2.1 {
- # AIO functions.
- aio_cancel; aio_cancel64; aio_error; aio_error64; aio_fsync; aio_fsync64;
- aio_init; aio_read; aio_read64; aio_return; aio_return64; aio_suspend;
- aio_suspend64; aio_write; aio_write64; lio_listio; lio_listio64;
+ aio_cancel;
+ aio_cancel64;
+ aio_error;
+ aio_error64;
+ aio_fsync;
+ aio_fsync64;
+ aio_init;
+ aio_read;
+ aio_read64;
+ aio_return;
+ aio_return64;
+ aio_suspend;
+ aio_suspend64;
+ aio_write;
+ aio_write64;
+ lio_listio;
+ lio_listio64;
}
GLIBC_2.2 {
- # s*
- shm_open; shm_unlink;
-
- # t*
- timer_create; timer_delete; timer_getoverrun; timer_gettime;
+ shm_open;
+ shm_unlink;
+ timer_create;
+ timer_delete;
+ timer_getoverrun;
+ timer_gettime;
timer_settime;
}
GLIBC_2.3.4 {
- # m*
- mq_open; mq_close; mq_unlink; mq_getattr; mq_setattr;
- mq_notify; mq_send; mq_receive; mq_timedsend; mq_timedreceive;
+ mq_close;
+ mq_getattr;
+ mq_notify;
+ mq_open;
+ mq_receive;
+ mq_send;
+ mq_setattr;
+ mq_timedreceive;
+ mq_timedsend;
+ mq_unlink;
}
GLIBC_2.7 {
__mq_open_2;
--
2.31.1
^ permalink raw reply [flat|nested] 72+ messages in thread
* [PATCH 02/34] Fix librt-routines-var issues for !PTHREAD_IN_LIBC
2021-06-17 18:56 [PATCH v2 00/34] Move librt into libc Florian Weimer
2021-06-17 18:56 ` [PATCH 01/34] rt: Lexicographically sort Versions file; librt-routines in Makefile Florian Weimer
@ 2021-06-17 18:56 ` Florian Weimer
2021-06-17 18:56 ` [PATCH 03/34] rt: Replace generic stub of shm_open with the posix version Florian Weimer
` (32 subsequent siblings)
34 siblings, 0 replies; 72+ messages in thread
From: Florian Weimer @ 2021-06-17 18:56 UTC (permalink / raw)
To: libc-alpha
The variable name was incorrect, and the existing librt-routines
variable needs to be augmented (not assigned) in rt/Makefile.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
---
Makeconfig | 2 +-
rt/Makefile | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/Makeconfig b/Makeconfig
index 6482a43025..407df9e6a1 100644
--- a/Makeconfig
+++ b/Makeconfig
@@ -1344,7 +1344,7 @@ libpthread-routines-var = routines
librt-routines-var = routines
else
libpthread-routines-var = libpthread-routines
-librt-routines-var = libpthread-routines
+librt-routines-var = librt-routines
endif
# A sysdeps Makeconfig fragment may set libc-reentrant to yes.
diff --git a/rt/Makefile b/rt/Makefile
index b0d887202d..47bc594dee 100644
--- a/rt/Makefile
+++ b/rt/Makefile
@@ -57,7 +57,7 @@ librt-routines = \
timer_gettime \
timer_settime \
-$(librt-routines-var) = \
+$(librt-routines-var) += \
tests := tst-shm tst-timer tst-timer2 \
tst-aio tst-aio64 tst-aio2 tst-aio3 tst-aio4 tst-aio5 tst-aio6 \
--
2.31.1
^ permalink raw reply [flat|nested] 72+ messages in thread
* [PATCH 03/34] rt: Replace generic stub of shm_open with the posix version
2021-06-17 18:56 [PATCH v2 00/34] Move librt into libc Florian Weimer
2021-06-17 18:56 ` [PATCH 01/34] rt: Lexicographically sort Versions file; librt-routines in Makefile Florian Weimer
2021-06-17 18:56 ` [PATCH 02/34] Fix librt-routines-var issues for !PTHREAD_IN_LIBC Florian Weimer
@ 2021-06-17 18:56 ` Florian Weimer
2021-06-17 18:57 ` [PATCH 04/34] rt: Replace generic stub of shm_unlink " Florian Weimer
` (31 subsequent siblings)
34 siblings, 0 replies; 72+ messages in thread
From: Florian Weimer @ 2021-06-17 18:56 UTC (permalink / raw)
To: libc-alpha
Result of: git mv -f sysdeps/posix/shm_open.c rt
and manual removal of the _POSIX_MAPPED_FILES preprocessor condition.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
---
rt/shm_open.c | 34 ++++++++++++++++++----
sysdeps/posix/shm_open.c | 62 ----------------------------------------
2 files changed, 29 insertions(+), 67 deletions(-)
delete mode 100644 sysdeps/posix/shm_open.c
diff --git a/rt/shm_open.c b/rt/shm_open.c
index e2bd25978a..a89aac4102 100644
--- a/rt/shm_open.c
+++ b/rt/shm_open.c
@@ -1,4 +1,5 @@
-/* Copyright (C) 2000-2021 Free Software Foundation, Inc.
+/* shm_open -- open a POSIX shared memory object. Generic POSIX file version.
+ Copyright (C) 2001-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
@@ -16,13 +17,36 @@
<https://www.gnu.org/licenses/>. */
#include <errno.h>
-#include <sys/mman.h>
+#include <fcntl.h>
+#include <pthread.h>
+#include <shm-directory.h>
+#include <unistd.h>
/* Open shared memory object. */
int
shm_open (const char *name, int oflag, mode_t mode)
{
- __set_errno (ENOSYS);
- return -1;
+ struct shmdir_name dirname;
+ if (__shm_get_name (&dirname, name, false) != 0)
+ {
+ __set_errno (EINVAL);
+ return -1;
+ }
+
+ oflag |= O_NOFOLLOW | O_CLOEXEC;
+
+ /* Disable asynchronous cancellation. */
+ int state;
+ pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, &state);
+
+ int fd = open (dirname.name, oflag, mode);
+ if (fd == -1 && __glibc_unlikely (errno == EISDIR))
+ /* It might be better to fold this error with EINVAL since
+ directory names are just another example for unsuitable shared
+ object names and the standard does not mention EISDIR. */
+ __set_errno (EINVAL);
+
+ pthread_setcancelstate (state, NULL);
+
+ return fd;
}
-stub_warning (shm_open)
diff --git a/sysdeps/posix/shm_open.c b/sysdeps/posix/shm_open.c
deleted file mode 100644
index 1817c52f7f..0000000000
--- a/sysdeps/posix/shm_open.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/* shm_open -- open a POSIX shared memory object. Generic POSIX file version.
- Copyright (C) 2001-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 <unistd.h>
-
-#if ! _POSIX_MAPPED_FILES
-
-# include <rt/shm_open.c>
-
-#else
-
-# include <errno.h>
-# include <fcntl.h>
-# include <pthread.h>
-# include <shm-directory.h>
-
-
-/* Open shared memory object. */
-int
-shm_open (const char *name, int oflag, mode_t mode)
-{
- struct shmdir_name dirname;
- if (__shm_get_name (&dirname, name, false) != 0)
- {
- __set_errno (EINVAL);
- return -1;
- }
-
- oflag |= O_NOFOLLOW | O_CLOEXEC;
-
- /* Disable asynchronous cancellation. */
- int state;
- pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, &state);
-
- int fd = open (dirname.name, oflag, mode);
- if (fd == -1 && __glibc_unlikely (errno == EISDIR))
- /* It might be better to fold this error with EINVAL since
- directory names are just another example for unsuitable shared
- object names and the standard does not mention EISDIR. */
- __set_errno (EINVAL);
-
- pthread_setcancelstate (state, NULL);
-
- return fd;
-}
-
-#endif /* _POSIX_MAPPED_FILES */
--
2.31.1
^ permalink raw reply [flat|nested] 72+ messages in thread
* [PATCH 04/34] rt: Replace generic stub of shm_unlink with the posix version
2021-06-17 18:56 [PATCH v2 00/34] Move librt into libc Florian Weimer
` (2 preceding siblings ...)
2021-06-17 18:56 ` [PATCH 03/34] rt: Replace generic stub of shm_open with the posix version Florian Weimer
@ 2021-06-17 18:57 ` Florian Weimer
2021-06-17 18:57 ` [PATCH 05/34] rt: Move shm_open into libc Florian Weimer
` (30 subsequent siblings)
34 siblings, 0 replies; 72+ messages in thread
From: Florian Weimer @ 2021-06-17 18:57 UTC (permalink / raw)
To: libc-alpha
Result of: git mv -f sysdeps/posix/shm_unlink.c rt
and manual removal of the _POSIX_MAPPED_FILES preprocessor condition.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
---
rt/shm_unlink.c | 21 +++++++++++++----
sysdeps/posix/shm_unlink.c | 48 --------------------------------------
2 files changed, 16 insertions(+), 53 deletions(-)
delete mode 100644 sysdeps/posix/shm_unlink.c
diff --git a/rt/shm_unlink.c b/rt/shm_unlink.c
index 27c10d9dee..a5af5ac147 100644
--- a/rt/shm_unlink.c
+++ b/rt/shm_unlink.c
@@ -1,4 +1,5 @@
-/* Copyright (C) 2000-2021 Free Software Foundation, Inc.
+/* shm_unlink -- remove a POSIX shared memory object. Generic POSIX version.
+ Copyright (C) 2001-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
@@ -16,13 +17,23 @@
<https://www.gnu.org/licenses/>. */
#include <errno.h>
-#include <sys/mman.h>
+#include <shm-directory.h>
+#include <string.h>
+#include <unistd.h>
/* Remove shared memory object. */
int
shm_unlink (const char *name)
{
- __set_errno (ENOSYS);
- return -1;
+ struct shmdir_name dirname;
+ if (__shm_get_name (&dirname, name, false) != 0)
+ {
+ __set_errno (ENOENT);
+ return -1;
+ }
+
+ int result = unlink (dirname.name);
+ if (result < 0 && errno == EPERM)
+ __set_errno (EACCES);
+ return result;
}
-stub_warning (shm_unlink)
diff --git a/sysdeps/posix/shm_unlink.c b/sysdeps/posix/shm_unlink.c
deleted file mode 100644
index c90b854c78..0000000000
--- a/sysdeps/posix/shm_unlink.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* shm_unlink -- remove a POSIX shared memory object. Generic POSIX version.
- Copyright (C) 2001-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 <unistd.h>
-
-#if ! _POSIX_MAPPED_FILES
-#include <rt/shm_unlink.c>
-
-#else
-
-#include <errno.h>
-#include <string.h>
-#include <shm-directory.h>
-
-
-/* Remove shared memory object. */
-int
-shm_unlink (const char *name)
-{
- struct shmdir_name dirname;
- if (__shm_get_name (&dirname, name, false) != 0)
- {
- __set_errno (ENOENT);
- return -1;
- }
-
- int result = unlink (dirname.name);
- if (result < 0 && errno == EPERM)
- __set_errno (EACCES);
- return result;
-}
-
-#endif
--
2.31.1
^ permalink raw reply [flat|nested] 72+ messages in thread
* [PATCH 05/34] rt: Move shm_open into libc
2021-06-17 18:56 [PATCH v2 00/34] Move librt into libc Florian Weimer
` (3 preceding siblings ...)
2021-06-17 18:57 ` [PATCH 04/34] rt: Replace generic stub of shm_unlink " Florian Weimer
@ 2021-06-17 18:57 ` Florian Weimer
2021-06-17 18:57 ` [PATCH 06/34] rt: Move shm_unlink " Florian Weimer
` (29 subsequent siblings)
34 siblings, 0 replies; 72+ messages in thread
From: Florian Weimer @ 2021-06-17 18:57 UTC (permalink / raw)
To: libc-alpha
This function has no dependency on libpthread, so the move is also
applied to Hurd.
To avoid localplt failures, use __open64_nocancel instead of
pthread_setcancelstate and open.
The symbol was moved using scripts/move-symbol-to-libc.py.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
---
rt/Makefile | 4 +++-
rt/Versions | 9 ++++++++-
rt/shm_open.c | 17 +++++++++--------
sysdeps/mach/hurd/i386/libc.abilist | 2 ++
sysdeps/mach/hurd/i386/librt.abilist | 1 -
sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/aarch64/librt.abilist | 1 -
sysdeps/unix/sysv/linux/alpha/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/alpha/librt.abilist | 1 -
sysdeps/unix/sysv/linux/arc/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/arc/librt.abilist | 1 -
sysdeps/unix/sysv/linux/arm/be/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/arm/be/librt.abilist | 1 -
sysdeps/unix/sysv/linux/arm/le/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/arm/le/librt.abilist | 1 -
sysdeps/unix/sysv/linux/csky/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/csky/librt.abilist | 1 -
sysdeps/unix/sysv/linux/hppa/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/hppa/librt.abilist | 1 -
sysdeps/unix/sysv/linux/i386/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/i386/librt.abilist | 1 -
sysdeps/unix/sysv/linux/ia64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/ia64/librt.abilist | 1 -
.../unix/sysv/linux/m68k/coldfire/libc.abilist | 2 ++
.../unix/sysv/linux/m68k/coldfire/librt.abilist | 1 -
.../unix/sysv/linux/m68k/m680x0/libc.abilist | 2 ++
.../unix/sysv/linux/m68k/m680x0/librt.abilist | 1 -
.../unix/sysv/linux/microblaze/be/libc.abilist | 2 ++
.../unix/sysv/linux/microblaze/be/librt.abilist | 1 -
.../unix/sysv/linux/microblaze/le/libc.abilist | 2 ++
.../unix/sysv/linux/microblaze/le/librt.abilist | 1 -
.../sysv/linux/mips/mips32/fpu/libc.abilist | 2 ++
.../unix/sysv/linux/mips/mips32/librt.abilist | 1 -
.../sysv/linux/mips/mips32/nofpu/libc.abilist | 2 ++
.../sysv/linux/mips/mips64/n32/libc.abilist | 2 ++
.../sysv/linux/mips/mips64/n32/librt.abilist | 1 -
.../sysv/linux/mips/mips64/n64/libc.abilist | 2 ++
.../sysv/linux/mips/mips64/n64/librt.abilist | 1 -
sysdeps/unix/sysv/linux/nios2/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/nios2/librt.abilist | 1 -
.../linux/powerpc/powerpc32/fpu/libc.abilist | 2 ++
.../sysv/linux/powerpc/powerpc32/librt.abilist | 1 -
.../linux/powerpc/powerpc32/nofpu/libc.abilist | 2 ++
.../linux/powerpc/powerpc64/be/libc.abilist | 2 ++
.../linux/powerpc/powerpc64/be/librt.abilist | 1 -
.../linux/powerpc/powerpc64/le/libc.abilist | 2 ++
.../linux/powerpc/powerpc64/le/librt.abilist | 1 -
sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist | 2 ++
.../unix/sysv/linux/riscv/rv32/librt.abilist | 1 -
sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist | 2 ++
.../unix/sysv/linux/riscv/rv64/librt.abilist | 1 -
.../unix/sysv/linux/s390/s390-32/libc.abilist | 2 ++
.../unix/sysv/linux/s390/s390-32/librt.abilist | 1 -
.../unix/sysv/linux/s390/s390-64/libc.abilist | 2 ++
.../unix/sysv/linux/s390/s390-64/librt.abilist | 1 -
sysdeps/unix/sysv/linux/sh/be/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/sh/be/librt.abilist | 1 -
sysdeps/unix/sysv/linux/sh/le/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/sh/le/librt.abilist | 1 -
.../unix/sysv/linux/sparc/sparc32/libc.abilist | 2 ++
.../unix/sysv/linux/sparc/sparc32/librt.abilist | 1 -
.../unix/sysv/linux/sparc/sparc64/libc.abilist | 2 ++
.../unix/sysv/linux/sparc/sparc64/librt.abilist | 1 -
sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/x86_64/64/librt.abilist | 1 -
sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 2 ++
.../unix/sysv/linux/x86_64/x32/librt.abilist | 1 -
67 files changed, 86 insertions(+), 41 deletions(-)
diff --git a/rt/Makefile b/rt/Makefile
index 47bc594dee..ba141c82f2 100644
--- a/rt/Makefile
+++ b/rt/Makefile
@@ -24,6 +24,9 @@ include ../Makeconfig
headers := aio.h mqueue.h bits/mqueue.h bits/mqueue2.h
+routines = \
+ shm_open \
+
librt-routines = \
aio_cancel \
aio_error \
@@ -49,7 +52,6 @@ librt-routines = \
mq_timedreceive \
mq_timedsend \
mq_unlink \
- shm_open \
shm_unlink \
timer_create \
timer_delete \
diff --git a/rt/Versions b/rt/Versions
index f151f85ef6..e1d208eeb3 100644
--- a/rt/Versions
+++ b/rt/Versions
@@ -1,3 +1,11 @@
+libc {
+ GLIBC_2.2 {
+ shm_open;
+ }
+ GLIBC_2.34 {
+ shm_open;
+ }
+}
librt {
GLIBC_2.1 {
aio_cancel;
@@ -19,7 +27,6 @@ librt {
lio_listio64;
}
GLIBC_2.2 {
- shm_open;
shm_unlink;
timer_create;
timer_delete;
diff --git a/rt/shm_open.c b/rt/shm_open.c
index a89aac4102..40eb8902a8 100644
--- a/rt/shm_open.c
+++ b/rt/shm_open.c
@@ -18,13 +18,15 @@
#include <errno.h>
#include <fcntl.h>
+#include <not-cancel.h>
#include <pthread.h>
+#include <shlib-compat.h>
#include <shm-directory.h>
#include <unistd.h>
/* Open shared memory object. */
int
-shm_open (const char *name, int oflag, mode_t mode)
+__shm_open (const char *name, int oflag, mode_t mode)
{
struct shmdir_name dirname;
if (__shm_get_name (&dirname, name, false) != 0)
@@ -35,18 +37,17 @@ shm_open (const char *name, int oflag, mode_t mode)
oflag |= O_NOFOLLOW | O_CLOEXEC;
- /* Disable asynchronous cancellation. */
- int state;
- pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, &state);
-
- int fd = open (dirname.name, oflag, mode);
+ int fd = __open64_nocancel (dirname.name, oflag, mode);
if (fd == -1 && __glibc_unlikely (errno == EISDIR))
/* It might be better to fold this error with EINVAL since
directory names are just another example for unsuitable shared
object names and the standard does not mention EISDIR. */
__set_errno (EINVAL);
- pthread_setcancelstate (state, NULL);
-
return fd;
}
+versioned_symbol (libc, __shm_open, shm_open, GLIBC_2_34);
+
+#if OTHER_SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libc, __shm_open, shm_open, GLIBC_2_2);
+#endif
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index f651989962..f1e529f087 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -1566,6 +1566,7 @@ GLIBC_2.2.6 setutxent F
GLIBC_2.2.6 setvbuf F
GLIBC_2.2.6 sgetspent F
GLIBC_2.2.6 sgetspent_r F
+GLIBC_2.2.6 shm_open F
GLIBC_2.2.6 shmat F
GLIBC_2.2.6 shmctl F
GLIBC_2.2.6 shmdt F
@@ -2226,6 +2227,7 @@ GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
+GLIBC_2.34 shm_open F
GLIBC_2.34 timespec_getres F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
diff --git a/sysdeps/mach/hurd/i386/librt.abilist b/sysdeps/mach/hurd/i386/librt.abilist
index 3726e41f06..efee87f824 100644
--- a/sysdeps/mach/hurd/i386/librt.abilist
+++ b/sysdeps/mach/hurd/i386/librt.abilist
@@ -15,7 +15,6 @@ GLIBC_2.2.6 aio_write F
GLIBC_2.2.6 aio_write64 F
GLIBC_2.2.6 lio_listio F
GLIBC_2.2.6 lio_listio64 F
-GLIBC_2.2.6 shm_open F
GLIBC_2.2.6 shm_unlink F
GLIBC_2.2.6 timer_create F
GLIBC_2.2.6 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index ad4c83787d..f228fc17c3 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -1783,6 +1783,7 @@ GLIBC_2.17 sgetsgent F
GLIBC_2.17 sgetsgent_r F
GLIBC_2.17 sgetspent F
GLIBC_2.17 sgetspent_r F
+GLIBC_2.17 shm_open F
GLIBC_2.17 shmat F
GLIBC_2.17 shmctl F
GLIBC_2.17 shmdt F
@@ -2465,6 +2466,7 @@ GLIBC_2.34 sem_timedwait F
GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
index 5e81c82a25..7ebb55d15e 100644
--- a/sysdeps/unix/sysv/linux/aarch64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
@@ -26,7 +26,6 @@ GLIBC_2.17 mq_setattr F
GLIBC_2.17 mq_timedreceive F
GLIBC_2.17 mq_timedsend F
GLIBC_2.17 mq_unlink F
-GLIBC_2.17 shm_open F
GLIBC_2.17 shm_unlink F
GLIBC_2.17 timer_create F
GLIBC_2.17 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 30dfd0baa1..5b90ab838a 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -2067,6 +2067,7 @@ GLIBC_2.2 rresvport_af F
GLIBC_2.2 ruserok_af F
GLIBC_2.2 sem_timedwait F
GLIBC_2.2 semctl F
+GLIBC_2.2 shm_open F
GLIBC_2.2 shmctl F
GLIBC_2.2 svc_getreq_common F
GLIBC_2.2 svc_getreq_poll F
@@ -2558,6 +2559,7 @@ GLIBC_2.34 sem_timedwait F
GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
index 71f86e03ce..bfa53df5cc 100644
--- a/sysdeps/unix/sysv/linux/alpha/librt.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist
@@ -15,7 +15,6 @@ GLIBC_2.1 aio_write F
GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
GLIBC_2.1 lio_listio64 F
-GLIBC_2.2 shm_open F
GLIBC_2.2 shm_unlink F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 72ff8c5bdc..00a294c22a 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1728,6 +1728,7 @@ GLIBC_2.32 sgetsgent F
GLIBC_2.32 sgetsgent_r F
GLIBC_2.32 sgetspent F
GLIBC_2.32 sgetspent_r F
+GLIBC_2.32 shm_open F
GLIBC_2.32 shmat F
GLIBC_2.32 shmctl F
GLIBC_2.32 shmdt F
@@ -2224,6 +2225,7 @@ GLIBC_2.34 sem_timedwait F
GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
index fda2b20c01..febfd3320f 100644
--- a/sysdeps/unix/sysv/linux/arc/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arc/librt.abilist
@@ -26,7 +26,6 @@ GLIBC_2.32 mq_setattr F
GLIBC_2.32 mq_timedreceive F
GLIBC_2.32 mq_timedsend F
GLIBC_2.32 mq_unlink F
-GLIBC_2.32 shm_open F
GLIBC_2.32 shm_unlink F
GLIBC_2.32 timer_create F
GLIBC_2.32 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 4c870e6abb..f056f72b77 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -397,6 +397,7 @@ GLIBC_2.34 sem_timedwait F
GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
@@ -2101,6 +2102,7 @@ GLIBC_2.4 setvbuf F
GLIBC_2.4 setxattr F
GLIBC_2.4 sgetspent F
GLIBC_2.4 sgetspent_r F
+GLIBC_2.4 shm_open F
GLIBC_2.4 shmat F
GLIBC_2.4 shmctl F
GLIBC_2.4 shmdt F
diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
index 8cb1ed626c..2c7735e023 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -30,7 +30,6 @@ GLIBC_2.4 mq_setattr F
GLIBC_2.4 mq_timedreceive F
GLIBC_2.4 mq_timedsend F
GLIBC_2.4 mq_unlink F
-GLIBC_2.4 shm_open F
GLIBC_2.4 shm_unlink F
GLIBC_2.4 timer_create F
GLIBC_2.4 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 1f0dbc990a..45751a3796 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -394,6 +394,7 @@ GLIBC_2.34 sem_timedwait F
GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
@@ -2098,6 +2099,7 @@ GLIBC_2.4 setvbuf F
GLIBC_2.4 setxattr F
GLIBC_2.4 sgetspent F
GLIBC_2.4 sgetspent_r F
+GLIBC_2.4 shm_open F
GLIBC_2.4 shmat F
GLIBC_2.4 shmctl F
GLIBC_2.4 shmdt F
diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
index 8cb1ed626c..2c7735e023 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -30,7 +30,6 @@ GLIBC_2.4 mq_setattr F
GLIBC_2.4 mq_timedreceive F
GLIBC_2.4 mq_timedsend F
GLIBC_2.4 mq_unlink F
-GLIBC_2.4 shm_open F
GLIBC_2.4 shm_unlink F
GLIBC_2.4 timer_create F
GLIBC_2.4 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 9756eaeccf..cd0c551a53 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -1788,6 +1788,7 @@ GLIBC_2.29 sgetsgent F
GLIBC_2.29 sgetsgent_r F
GLIBC_2.29 sgetspent F
GLIBC_2.29 sgetspent_r F
+GLIBC_2.29 shm_open F
GLIBC_2.29 shmat F
GLIBC_2.29 shmctl F
GLIBC_2.29 shmdt F
@@ -2484,6 +2485,7 @@ GLIBC_2.34 sem_timedwait F
GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
index b60deca65a..397141f226 100644
--- a/sysdeps/unix/sysv/linux/csky/librt.abilist
+++ b/sysdeps/unix/sysv/linux/csky/librt.abilist
@@ -26,7 +26,6 @@ GLIBC_2.29 mq_setattr F
GLIBC_2.29 mq_timedreceive F
GLIBC_2.29 mq_timedsend F
GLIBC_2.29 mq_unlink F
-GLIBC_2.29 shm_open F
GLIBC_2.29 shm_unlink F
GLIBC_2.29 timer_create F
GLIBC_2.29 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index e78cb54597..6492ea8a6a 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -1555,6 +1555,7 @@ GLIBC_2.2 setutxent F
GLIBC_2.2 setvbuf F
GLIBC_2.2 sgetspent F
GLIBC_2.2 sgetspent_r F
+GLIBC_2.2 shm_open F
GLIBC_2.2 shmat F
GLIBC_2.2 shmctl F
GLIBC_2.2 shmdt F
@@ -2438,6 +2439,7 @@ GLIBC_2.34 sem_timedwait F
GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
index 463a88a1df..9330ab2679 100644
--- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
@@ -15,7 +15,6 @@ GLIBC_2.1 aio_write F
GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
GLIBC_2.1 lio_listio64 F
-GLIBC_2.2 shm_open F
GLIBC_2.2 shm_unlink F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index d1583a5465..64e357202e 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -2080,6 +2080,7 @@ GLIBC_2.2 scandir64 F
GLIBC_2.2 sem_timedwait F
GLIBC_2.2 semctl F
GLIBC_2.2 setrlimit F
+GLIBC_2.2 shm_open F
GLIBC_2.2 shmctl F
GLIBC_2.2 svc_getreq_common F
GLIBC_2.2 svc_getreq_poll F
@@ -2622,6 +2623,7 @@ GLIBC_2.34 sem_timedwait F
GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
index 463a88a1df..9330ab2679 100644
--- a/sysdeps/unix/sysv/linux/i386/librt.abilist
+++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
@@ -15,7 +15,6 @@ GLIBC_2.1 aio_write F
GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
GLIBC_2.1 lio_listio64 F
-GLIBC_2.2 shm_open F
GLIBC_2.2 shm_unlink F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 4a608b5d29..2d2a33196d 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -1576,6 +1576,7 @@ GLIBC_2.2 setutxent F
GLIBC_2.2 setvbuf F
GLIBC_2.2 sgetspent F
GLIBC_2.2 sgetspent_r F
+GLIBC_2.2 shm_open F
GLIBC_2.2 shmat F
GLIBC_2.2 shmctl F
GLIBC_2.2 shmdt F
@@ -2398,6 +2399,7 @@ GLIBC_2.34 sem_timedwait F
GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
index 08384c9065..31af578b45 100644
--- a/sysdeps/unix/sysv/linux/ia64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/librt.abilist
@@ -15,7 +15,6 @@ GLIBC_2.1 aio_write F
GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
GLIBC_2.1 lio_listio64 F
-GLIBC_2.2 shm_open F
GLIBC_2.2 shm_unlink F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 72db6c699b..868964dc1a 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -398,6 +398,7 @@ GLIBC_2.34 sem_timedwait F
GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
@@ -2081,6 +2082,7 @@ GLIBC_2.4 setvbuf F
GLIBC_2.4 setxattr F
GLIBC_2.4 sgetspent F
GLIBC_2.4 sgetspent_r F
+GLIBC_2.4 shm_open F
GLIBC_2.4 shmat F
GLIBC_2.4 shmctl F
GLIBC_2.4 shmdt F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
index 8cb1ed626c..2c7735e023 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -30,7 +30,6 @@ GLIBC_2.4 mq_setattr F
GLIBC_2.4 mq_timedreceive F
GLIBC_2.4 mq_timedsend F
GLIBC_2.4 mq_unlink F
-GLIBC_2.4 shm_open F
GLIBC_2.4 shm_unlink F
GLIBC_2.4 timer_create F
GLIBC_2.4 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index bd4166dbb1..2dbaa0e4cd 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2036,6 +2036,7 @@ GLIBC_2.2 scandir64 F
GLIBC_2.2 sem_timedwait F
GLIBC_2.2 semctl F
GLIBC_2.2 setrlimit F
+GLIBC_2.2 shm_open F
GLIBC_2.2 shmctl F
GLIBC_2.2 svc_getreq_common F
GLIBC_2.2 svc_getreq_poll F
@@ -2565,6 +2566,7 @@ GLIBC_2.34 sem_timedwait F
GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
index 463a88a1df..9330ab2679 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
@@ -15,7 +15,6 @@ GLIBC_2.1 aio_write F
GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
GLIBC_2.1 lio_listio64 F
-GLIBC_2.2 shm_open F
GLIBC_2.2 shm_unlink F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 83a6edae67..afdb458987 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -1787,6 +1787,7 @@ GLIBC_2.18 sgetsgent F
GLIBC_2.18 sgetsgent_r F
GLIBC_2.18 sgetspent F
GLIBC_2.18 sgetspent_r F
+GLIBC_2.18 shm_open F
GLIBC_2.18 shmat F
GLIBC_2.18 shmctl F
GLIBC_2.18 shmdt F
@@ -2535,6 +2536,7 @@ GLIBC_2.34 sem_timedwait F
GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
index 1b8fc10087..e4b9a630af 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
@@ -26,7 +26,6 @@ GLIBC_2.18 mq_setattr F
GLIBC_2.18 mq_timedreceive F
GLIBC_2.18 mq_timedsend F
GLIBC_2.18 mq_unlink F
-GLIBC_2.18 shm_open F
GLIBC_2.18 shm_unlink F
GLIBC_2.18 timer_create F
GLIBC_2.18 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index accdc16e0c..054410b405 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -1787,6 +1787,7 @@ GLIBC_2.18 sgetsgent F
GLIBC_2.18 sgetsgent_r F
GLIBC_2.18 sgetspent F
GLIBC_2.18 sgetspent_r F
+GLIBC_2.18 shm_open F
GLIBC_2.18 shmat F
GLIBC_2.18 shmctl F
GLIBC_2.18 shmdt F
@@ -2532,6 +2533,7 @@ GLIBC_2.34 sem_timedwait F
GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
index 1b8fc10087..e4b9a630af 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
@@ -26,7 +26,6 @@ GLIBC_2.18 mq_setattr F
GLIBC_2.18 mq_timedreceive F
GLIBC_2.18 mq_timedsend F
GLIBC_2.18 mq_unlink F
-GLIBC_2.18 shm_open F
GLIBC_2.18 shm_unlink F
GLIBC_2.18 timer_create F
GLIBC_2.18 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 26149e7d3c..c39eec99ee 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -1942,6 +1942,7 @@ GLIBC_2.2 semctl F
GLIBC_2.2 sendfile F
GLIBC_2.2 setrlimit64 F
GLIBC_2.2 setutxent F
+GLIBC_2.2 shm_open F
GLIBC_2.2 shmctl F
GLIBC_2.2 sighold F
GLIBC_2.2 sigignore F
@@ -2530,6 +2531,7 @@ GLIBC_2.34 sem_timedwait F
GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
index c4dd28e3b2..b187230f59 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
@@ -15,7 +15,6 @@ GLIBC_2.2 aio_write F
GLIBC_2.2 aio_write64 F
GLIBC_2.2 lio_listio F
GLIBC_2.2 lio_listio64 F
-GLIBC_2.2 shm_open F
GLIBC_2.2 shm_unlink F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 8f9b7f088d..0344199ff9 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -1940,6 +1940,7 @@ GLIBC_2.2 semctl F
GLIBC_2.2 sendfile F
GLIBC_2.2 setrlimit64 F
GLIBC_2.2 setutxent F
+GLIBC_2.2 shm_open F
GLIBC_2.2 shmctl F
GLIBC_2.2 sighold F
GLIBC_2.2 sigignore F
@@ -2528,6 +2529,7 @@ GLIBC_2.34 sem_timedwait F
GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 57500f91ce..8f7783cb26 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -1939,6 +1939,7 @@ GLIBC_2.2 sem_wait F
GLIBC_2.2 sendfile F
GLIBC_2.2 setrlimit64 F
GLIBC_2.2 setutxent F
+GLIBC_2.2 shm_open F
GLIBC_2.2 sighold F
GLIBC_2.2 sigignore F
GLIBC_2.2 sigqueue F
@@ -2536,6 +2537,7 @@ GLIBC_2.34 sem_timedwait F
GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
index c4dd28e3b2..b187230f59 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
@@ -15,7 +15,6 @@ GLIBC_2.2 aio_write F
GLIBC_2.2 aio_write64 F
GLIBC_2.2 lio_listio F
GLIBC_2.2 lio_listio64 F
-GLIBC_2.2 shm_open F
GLIBC_2.2 shm_unlink F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 485a0121dd..494829a95d 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -1935,6 +1935,7 @@ GLIBC_2.2 sem_wait F
GLIBC_2.2 sendfile F
GLIBC_2.2 setrlimit64 F
GLIBC_2.2 setutxent F
+GLIBC_2.2 shm_open F
GLIBC_2.2 sighold F
GLIBC_2.2 sigignore F
GLIBC_2.2 sigqueue F
@@ -2454,6 +2455,7 @@ GLIBC_2.34 sem_timedwait F
GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
index 1539c1cef9..e62ed45d14 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
@@ -15,7 +15,6 @@ GLIBC_2.2 aio_write F
GLIBC_2.2 aio_write64 F
GLIBC_2.2 lio_listio F
GLIBC_2.2 lio_listio64 F
-GLIBC_2.2 shm_open F
GLIBC_2.2 shm_unlink F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index d07e736980..15236167e9 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -1830,6 +1830,7 @@ GLIBC_2.21 sgetsgent F
GLIBC_2.21 sgetsgent_r F
GLIBC_2.21 sgetspent F
GLIBC_2.21 sgetspent_r F
+GLIBC_2.21 shm_open F
GLIBC_2.21 shmat F
GLIBC_2.21 shmctl F
GLIBC_2.21 shmdt F
@@ -2574,6 +2575,7 @@ GLIBC_2.34 sem_timedwait F
GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
index 2458614125..d9db8e1781 100644
--- a/sysdeps/unix/sysv/linux/nios2/librt.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/librt.abilist
@@ -26,7 +26,6 @@ GLIBC_2.21 mq_setattr F
GLIBC_2.21 mq_timedreceive F
GLIBC_2.21 mq_timedsend F
GLIBC_2.21 mq_unlink F
-GLIBC_2.21 shm_open F
GLIBC_2.21 shm_unlink F
GLIBC_2.21 timer_create F
GLIBC_2.21 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 5a87b36192..5bfa644345 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -2041,6 +2041,7 @@ GLIBC_2.2 scandir64 F
GLIBC_2.2 sem_timedwait F
GLIBC_2.2 semctl F
GLIBC_2.2 setrlimit F
+GLIBC_2.2 shm_open F
GLIBC_2.2 shmctl F
GLIBC_2.2 svc_getreq_common F
GLIBC_2.2 svc_getreq_poll F
@@ -2592,6 +2593,7 @@ GLIBC_2.34 sem_timedwait F
GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
index 463a88a1df..9330ab2679 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
@@ -15,7 +15,6 @@ GLIBC_2.1 aio_write F
GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
GLIBC_2.1 lio_listio64 F
-GLIBC_2.2 shm_open F
GLIBC_2.2 shm_unlink F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 413bb1d87a..4d2899b97b 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -2045,6 +2045,7 @@ GLIBC_2.2 scandir64 F
GLIBC_2.2 sem_timedwait F
GLIBC_2.2 semctl F
GLIBC_2.2 setrlimit F
+GLIBC_2.2 shm_open F
GLIBC_2.2 shmctl F
GLIBC_2.2 svc_getreq_common F
GLIBC_2.2 svc_getreq_poll F
@@ -2625,6 +2626,7 @@ GLIBC_2.34 sem_timedwait F
GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 3ff4d977f7..1b03a7b2b2 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -1684,6 +1684,7 @@ GLIBC_2.3 setvbuf F
GLIBC_2.3 setxattr F
GLIBC_2.3 sgetspent F
GLIBC_2.3 sgetspent_r F
+GLIBC_2.3 shm_open F
GLIBC_2.3 shmat F
GLIBC_2.3 shmctl F
GLIBC_2.3 shmdt F
@@ -2362,6 +2363,7 @@ GLIBC_2.34 sem_timedwait F
GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
index 6a5bd96963..ce776089f4 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
@@ -15,7 +15,6 @@ GLIBC_2.3 aio_write F
GLIBC_2.3 aio_write64 F
GLIBC_2.3 lio_listio F
GLIBC_2.3 lio_listio64 F
-GLIBC_2.3 shm_open F
GLIBC_2.3 shm_unlink F
GLIBC_2.3 timer_create F
GLIBC_2.3 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index c2c5c605ac..e69840ef13 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -1871,6 +1871,7 @@ GLIBC_2.17 sgetsgent F
GLIBC_2.17 sgetsgent_r F
GLIBC_2.17 sgetspent F
GLIBC_2.17 sgetspent_r F
+GLIBC_2.17 shm_open F
GLIBC_2.17 shmat F
GLIBC_2.17 shmctl F
GLIBC_2.17 shmdt F
@@ -2661,6 +2662,7 @@ GLIBC_2.34 sem_timedwait F
GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
index 5e81c82a25..7ebb55d15e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
@@ -26,7 +26,6 @@ GLIBC_2.17 mq_setattr F
GLIBC_2.17 mq_timedreceive F
GLIBC_2.17 mq_timedsend F
GLIBC_2.17 mq_unlink F
-GLIBC_2.17 shm_open F
GLIBC_2.17 shm_unlink F
GLIBC_2.17 timer_create F
GLIBC_2.17 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 2abe414bda..77e707990b 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1730,6 +1730,7 @@ GLIBC_2.33 sgetsgent F
GLIBC_2.33 sgetsgent_r F
GLIBC_2.33 sgetspent F
GLIBC_2.33 sgetspent_r F
+GLIBC_2.33 shm_open F
GLIBC_2.33 shmat F
GLIBC_2.33 shmctl F
GLIBC_2.33 shmdt F
@@ -2226,6 +2227,7 @@ GLIBC_2.34 sem_timedwait F
GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
index 8a3f5ed516..1af45783f0 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
@@ -26,7 +26,6 @@ GLIBC_2.33 mq_setattr F
GLIBC_2.33 mq_timedreceive F
GLIBC_2.33 mq_timedsend F
GLIBC_2.33 mq_unlink F
-GLIBC_2.33 shm_open F
GLIBC_2.33 shm_unlink F
GLIBC_2.33 timer_create F
GLIBC_2.33 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 947fc8072d..5eb837832d 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -1777,6 +1777,7 @@ GLIBC_2.27 sgetsgent F
GLIBC_2.27 sgetsgent_r F
GLIBC_2.27 sgetspent F
GLIBC_2.27 sgetspent_r F
+GLIBC_2.27 shm_open F
GLIBC_2.27 shmat F
GLIBC_2.27 shmctl F
GLIBC_2.27 shmdt F
@@ -2426,6 +2427,7 @@ GLIBC_2.34 sem_timedwait F
GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
index bfd262ecc5..51c05877bd 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
@@ -26,7 +26,6 @@ GLIBC_2.27 mq_setattr F
GLIBC_2.27 mq_timedreceive F
GLIBC_2.27 mq_timedsend F
GLIBC_2.27 mq_unlink F
-GLIBC_2.27 shm_open F
GLIBC_2.27 shm_unlink F
GLIBC_2.27 timer_create F
GLIBC_2.27 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 1da934084c..05e5ff3519 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -2039,6 +2039,7 @@ GLIBC_2.2 scandir64 F
GLIBC_2.2 sem_timedwait F
GLIBC_2.2 semctl F
GLIBC_2.2 setrlimit F
+GLIBC_2.2 shm_open F
GLIBC_2.2 shmctl F
GLIBC_2.2 svc_getreq_common F
GLIBC_2.2 svc_getreq_poll F
@@ -2590,6 +2591,7 @@ GLIBC_2.34 sem_timedwait F
GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
index 463a88a1df..9330ab2679 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
@@ -15,7 +15,6 @@ GLIBC_2.1 aio_write F
GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
GLIBC_2.1 lio_listio64 F
-GLIBC_2.2 shm_open F
GLIBC_2.2 shm_unlink F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 084b419cf6..bad0a9e3f9 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -1572,6 +1572,7 @@ GLIBC_2.2 setutxent F
GLIBC_2.2 setvbuf F
GLIBC_2.2 sgetspent F
GLIBC_2.2 sgetspent_r F
+GLIBC_2.2 shm_open F
GLIBC_2.2 shmat F
GLIBC_2.2 shmctl F
GLIBC_2.2 shmdt F
@@ -2399,6 +2400,7 @@ GLIBC_2.34 sem_timedwait F
GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
index 5905498a48..269e72621b 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
@@ -15,7 +15,6 @@ GLIBC_2.2 aio_write F
GLIBC_2.2 aio_write64 F
GLIBC_2.2 lio_listio F
GLIBC_2.2 lio_listio64 F
-GLIBC_2.2 shm_open F
GLIBC_2.2 shm_unlink F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 240e315a05..e7b48728bb 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -1559,6 +1559,7 @@ GLIBC_2.2 setutxent F
GLIBC_2.2 setvbuf F
GLIBC_2.2 sgetspent F
GLIBC_2.2 sgetspent_r F
+GLIBC_2.2 shm_open F
GLIBC_2.2 shmat F
GLIBC_2.2 shmctl F
GLIBC_2.2 shmdt F
@@ -2445,6 +2446,7 @@ GLIBC_2.34 sem_timedwait F
GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
index 463a88a1df..9330ab2679 100644
--- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
@@ -15,7 +15,6 @@ GLIBC_2.1 aio_write F
GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
GLIBC_2.1 lio_listio64 F
-GLIBC_2.2 shm_open F
GLIBC_2.2 shm_unlink F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index c8b6e4745e..60c84522df 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -1559,6 +1559,7 @@ GLIBC_2.2 setutxent F
GLIBC_2.2 setvbuf F
GLIBC_2.2 sgetspent F
GLIBC_2.2 sgetspent_r F
+GLIBC_2.2 shm_open F
GLIBC_2.2 shmat F
GLIBC_2.2 shmctl F
GLIBC_2.2 shmdt F
@@ -2442,6 +2443,7 @@ GLIBC_2.34 sem_timedwait F
GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
index 463a88a1df..9330ab2679 100644
--- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
@@ -15,7 +15,6 @@ GLIBC_2.1 aio_write F
GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
GLIBC_2.1 lio_listio64 F
-GLIBC_2.2 shm_open F
GLIBC_2.2 shm_unlink F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 3ed972b8c9..4efddd8db9 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -2034,6 +2034,7 @@ GLIBC_2.2 ruserok_af F
GLIBC_2.2 scandir64 F
GLIBC_2.2 sem_timedwait F
GLIBC_2.2 semctl F
+GLIBC_2.2 shm_open F
GLIBC_2.2 shmctl F
GLIBC_2.2 svc_getreq_common F
GLIBC_2.2 svc_getreq_poll F
@@ -2583,6 +2584,7 @@ GLIBC_2.34 sem_timedwait F
GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
index fb2769e87b..fa286246e4 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
@@ -15,7 +15,6 @@ GLIBC_2.1 aio_write F
GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
GLIBC_2.1 lio_listio64 F
-GLIBC_2.2 shm_open F
GLIBC_2.2 shm_unlink F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 27b3443394..b19426e2e3 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -1602,6 +1602,7 @@ GLIBC_2.2 setutxent F
GLIBC_2.2 setvbuf F
GLIBC_2.2 sgetspent F
GLIBC_2.2 sgetspent_r F
+GLIBC_2.2 shm_open F
GLIBC_2.2 shmat F
GLIBC_2.2 shmctl F
GLIBC_2.2 shmdt F
@@ -2419,6 +2420,7 @@ GLIBC_2.34 sem_timedwait F
GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
index 71f86e03ce..bfa53df5cc 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
@@ -15,7 +15,6 @@ GLIBC_2.1 aio_write F
GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
GLIBC_2.1 lio_listio64 F
-GLIBC_2.2 shm_open F
GLIBC_2.2 shm_unlink F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 2e5c5957b0..e73bc2acea 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -1569,6 +1569,7 @@ GLIBC_2.2.5 setutxent F
GLIBC_2.2.5 setvbuf F
GLIBC_2.2.5 sgetspent F
GLIBC_2.2.5 sgetspent_r F
+GLIBC_2.2.5 shm_open F
GLIBC_2.2.5 shmat F
GLIBC_2.2.5 shmctl F
GLIBC_2.2.5 shmdt F
@@ -2377,6 +2378,7 @@ GLIBC_2.34 sem_timedwait F
GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
index 95e3f22daa..ec08fcfcb2 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
@@ -15,7 +15,6 @@ GLIBC_2.2.5 aio_write F
GLIBC_2.2.5 aio_write64 F
GLIBC_2.2.5 lio_listio F
GLIBC_2.2.5 lio_listio64 F
-GLIBC_2.2.5 shm_open F
GLIBC_2.2.5 shm_unlink F
GLIBC_2.2.5 timer_create F
GLIBC_2.2.5 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 0b0d1ac43f..4116101975 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -1789,6 +1789,7 @@ GLIBC_2.16 sgetsgent F
GLIBC_2.16 sgetsgent_r F
GLIBC_2.16 sgetspent F
GLIBC_2.16 sgetspent_r F
+GLIBC_2.16 shm_open F
GLIBC_2.16 shmat F
GLIBC_2.16 shmctl F
GLIBC_2.16 shmdt F
@@ -2480,6 +2481,7 @@ GLIBC_2.34 sem_timedwait F
GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
+GLIBC_2.34 shm_open F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
index 66969fb9ab..1e40b05c29 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
@@ -26,7 +26,6 @@ GLIBC_2.16 mq_setattr F
GLIBC_2.16 mq_timedreceive F
GLIBC_2.16 mq_timedsend F
GLIBC_2.16 mq_unlink F
-GLIBC_2.16 shm_open F
GLIBC_2.16 shm_unlink F
GLIBC_2.16 timer_create F
GLIBC_2.16 timer_delete F
--
2.31.1
^ permalink raw reply [flat|nested] 72+ messages in thread
* [PATCH 06/34] rt: Move shm_unlink into libc
2021-06-17 18:56 [PATCH v2 00/34] Move librt into libc Florian Weimer
` (4 preceding siblings ...)
2021-06-17 18:57 ` [PATCH 05/34] rt: Move shm_open into libc Florian Weimer
@ 2021-06-17 18:57 ` Florian Weimer
2021-06-17 18:57 ` [PATCH 07/34] rt: Move generic implementation from sysdeps/pthread to rt Florian Weimer
` (28 subsequent siblings)
34 siblings, 0 replies; 72+ messages in thread
From: Florian Weimer @ 2021-06-17 18:57 UTC (permalink / raw)
To: libc-alpha
This function has no dependency on libpthread, so the move is also
applied to Hurd.
The symbol was moved using scripts/move-symbol-to-libc.py.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
---
rt/Makefile | 2 +-
rt/Versions | 3 ++-
rt/shm_unlink.c | 10 ++++++++--
sysdeps/mach/hurd/i386/libc.abilist | 2 ++
sysdeps/mach/hurd/i386/librt.abilist | 1 -
sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/aarch64/librt.abilist | 1 -
sysdeps/unix/sysv/linux/alpha/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/alpha/librt.abilist | 1 -
sysdeps/unix/sysv/linux/arc/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/arc/librt.abilist | 1 -
sysdeps/unix/sysv/linux/arm/be/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/arm/be/librt.abilist | 1 -
sysdeps/unix/sysv/linux/arm/le/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/arm/le/librt.abilist | 1 -
sysdeps/unix/sysv/linux/csky/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/csky/librt.abilist | 1 -
sysdeps/unix/sysv/linux/hppa/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/hppa/librt.abilist | 1 -
sysdeps/unix/sysv/linux/i386/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/i386/librt.abilist | 1 -
sysdeps/unix/sysv/linux/ia64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/ia64/librt.abilist | 1 -
sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist | 1 -
sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist | 1 -
sysdeps/unix/sysv/linux/microblaze/be/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/microblaze/be/librt.abilist | 1 -
sysdeps/unix/sysv/linux/microblaze/le/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/microblaze/le/librt.abilist | 1 -
sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/mips/mips32/librt.abilist | 1 -
sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist | 1 -
sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist | 1 -
sysdeps/unix/sysv/linux/nios2/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/nios2/librt.abilist | 1 -
.../unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist | 2 ++
.../unix/sysv/linux/powerpc/powerpc32/librt.abilist | 1 -
.../sysv/linux/powerpc/powerpc32/nofpu/libc.abilist | 2 ++
.../unix/sysv/linux/powerpc/powerpc64/be/libc.abilist | 2 ++
.../unix/sysv/linux/powerpc/powerpc64/be/librt.abilist | 1 -
.../unix/sysv/linux/powerpc/powerpc64/le/libc.abilist | 2 ++
.../unix/sysv/linux/powerpc/powerpc64/le/librt.abilist | 1 -
sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist | 1 -
sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist | 1 -
sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist | 1 -
sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist | 1 -
sysdeps/unix/sysv/linux/sh/be/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/sh/be/librt.abilist | 1 -
sysdeps/unix/sysv/linux/sh/le/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/sh/le/librt.abilist | 1 -
sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist | 1 -
sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist | 1 -
sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/x86_64/64/librt.abilist | 1 -
sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist | 1 -
67 files changed, 77 insertions(+), 35 deletions(-)
diff --git a/rt/Makefile b/rt/Makefile
index ba141c82f2..329db09c32 100644
--- a/rt/Makefile
+++ b/rt/Makefile
@@ -26,6 +26,7 @@ headers := aio.h mqueue.h bits/mqueue.h bits/mqueue2.h
routines = \
shm_open \
+ shm_unlink \
librt-routines = \
aio_cancel \
@@ -52,7 +53,6 @@ librt-routines = \
mq_timedreceive \
mq_timedsend \
mq_unlink \
- shm_unlink \
timer_create \
timer_delete \
timer_getoverr \
diff --git a/rt/Versions b/rt/Versions
index e1d208eeb3..309486be1e 100644
--- a/rt/Versions
+++ b/rt/Versions
@@ -1,9 +1,11 @@
libc {
GLIBC_2.2 {
shm_open;
+ shm_unlink;
}
GLIBC_2.34 {
shm_open;
+ shm_unlink;
}
}
librt {
@@ -27,7 +29,6 @@ librt {
lio_listio64;
}
GLIBC_2.2 {
- shm_unlink;
timer_create;
timer_delete;
timer_getoverrun;
diff --git a/rt/shm_unlink.c b/rt/shm_unlink.c
index a5af5ac147..85e9360e4c 100644
--- a/rt/shm_unlink.c
+++ b/rt/shm_unlink.c
@@ -17,13 +17,14 @@
<https://www.gnu.org/licenses/>. */
#include <errno.h>
+#include <shlib-compat.h>
#include <shm-directory.h>
#include <string.h>
#include <unistd.h>
/* Remove shared memory object. */
int
-shm_unlink (const char *name)
+__shm_unlink (const char *name)
{
struct shmdir_name dirname;
if (__shm_get_name (&dirname, name, false) != 0)
@@ -32,8 +33,13 @@ shm_unlink (const char *name)
return -1;
}
- int result = unlink (dirname.name);
+ int result = __unlink (dirname.name);
if (result < 0 && errno == EPERM)
__set_errno (EACCES);
return result;
}
+versioned_symbol (libc, __shm_unlink, shm_unlink, GLIBC_2_34);
+
+#if OTHER_SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libc, __shm_unlink, shm_unlink, GLIBC_2_2);
+#endif
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index f1e529f087..c3232ba32e 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -1567,6 +1567,7 @@ GLIBC_2.2.6 setvbuf F
GLIBC_2.2.6 sgetspent F
GLIBC_2.2.6 sgetspent_r F
GLIBC_2.2.6 shm_open F
+GLIBC_2.2.6 shm_unlink F
GLIBC_2.2.6 shmat F
GLIBC_2.2.6 shmctl F
GLIBC_2.2.6 shmdt F
@@ -2228,6 +2229,7 @@ GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
GLIBC_2.34 shm_open F
+GLIBC_2.34 shm_unlink F
GLIBC_2.34 timespec_getres F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
diff --git a/sysdeps/mach/hurd/i386/librt.abilist b/sysdeps/mach/hurd/i386/librt.abilist
index efee87f824..022e10b897 100644
--- a/sysdeps/mach/hurd/i386/librt.abilist
+++ b/sysdeps/mach/hurd/i386/librt.abilist
@@ -15,7 +15,6 @@ GLIBC_2.2.6 aio_write F
GLIBC_2.2.6 aio_write64 F
GLIBC_2.2.6 lio_listio F
GLIBC_2.2.6 lio_listio64 F
-GLIBC_2.2.6 shm_unlink F
GLIBC_2.2.6 timer_create F
GLIBC_2.2.6 timer_delete F
GLIBC_2.2.6 timer_getoverrun F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index f228fc17c3..42e240e284 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -1784,6 +1784,7 @@ GLIBC_2.17 sgetsgent_r F
GLIBC_2.17 sgetspent F
GLIBC_2.17 sgetspent_r F
GLIBC_2.17 shm_open F
+GLIBC_2.17 shm_unlink F
GLIBC_2.17 shmat F
GLIBC_2.17 shmctl F
GLIBC_2.17 shmdt F
@@ -2467,6 +2468,7 @@ GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
GLIBC_2.34 shm_open F
+GLIBC_2.34 shm_unlink F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
index 7ebb55d15e..c41e0e675b 100644
--- a/sysdeps/unix/sysv/linux/aarch64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
@@ -26,7 +26,6 @@ GLIBC_2.17 mq_setattr F
GLIBC_2.17 mq_timedreceive F
GLIBC_2.17 mq_timedsend F
GLIBC_2.17 mq_unlink F
-GLIBC_2.17 shm_unlink F
GLIBC_2.17 timer_create F
GLIBC_2.17 timer_delete F
GLIBC_2.17 timer_getoverrun F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 5b90ab838a..fad54555dc 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -2068,6 +2068,7 @@ GLIBC_2.2 ruserok_af F
GLIBC_2.2 sem_timedwait F
GLIBC_2.2 semctl F
GLIBC_2.2 shm_open F
+GLIBC_2.2 shm_unlink F
GLIBC_2.2 shmctl F
GLIBC_2.2 svc_getreq_common F
GLIBC_2.2 svc_getreq_poll F
@@ -2560,6 +2561,7 @@ GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
GLIBC_2.34 shm_open F
+GLIBC_2.34 shm_unlink F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
index bfa53df5cc..c4985067f7 100644
--- a/sysdeps/unix/sysv/linux/alpha/librt.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist
@@ -15,7 +15,6 @@ GLIBC_2.1 aio_write F
GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
GLIBC_2.1 lio_listio64 F
-GLIBC_2.2 shm_unlink F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 00a294c22a..907716ec39 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1729,6 +1729,7 @@ GLIBC_2.32 sgetsgent_r F
GLIBC_2.32 sgetspent F
GLIBC_2.32 sgetspent_r F
GLIBC_2.32 shm_open F
+GLIBC_2.32 shm_unlink F
GLIBC_2.32 shmat F
GLIBC_2.32 shmctl F
GLIBC_2.32 shmdt F
@@ -2226,6 +2227,7 @@ GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
GLIBC_2.34 shm_open F
+GLIBC_2.34 shm_unlink F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
index febfd3320f..7ee0b6d324 100644
--- a/sysdeps/unix/sysv/linux/arc/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arc/librt.abilist
@@ -26,7 +26,6 @@ GLIBC_2.32 mq_setattr F
GLIBC_2.32 mq_timedreceive F
GLIBC_2.32 mq_timedsend F
GLIBC_2.32 mq_unlink F
-GLIBC_2.32 shm_unlink F
GLIBC_2.32 timer_create F
GLIBC_2.32 timer_delete F
GLIBC_2.32 timer_getoverrun F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index f056f72b77..50f987a429 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -398,6 +398,7 @@ GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
GLIBC_2.34 shm_open F
+GLIBC_2.34 shm_unlink F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
@@ -2103,6 +2104,7 @@ GLIBC_2.4 setxattr F
GLIBC_2.4 sgetspent F
GLIBC_2.4 sgetspent_r F
GLIBC_2.4 shm_open F
+GLIBC_2.4 shm_unlink F
GLIBC_2.4 shmat F
GLIBC_2.4 shmctl F
GLIBC_2.4 shmdt F
diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
index 2c7735e023..278da67f77 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -30,7 +30,6 @@ GLIBC_2.4 mq_setattr F
GLIBC_2.4 mq_timedreceive F
GLIBC_2.4 mq_timedsend F
GLIBC_2.4 mq_unlink F
-GLIBC_2.4 shm_unlink F
GLIBC_2.4 timer_create F
GLIBC_2.4 timer_delete F
GLIBC_2.4 timer_getoverrun F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 45751a3796..bf9038af84 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -395,6 +395,7 @@ GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
GLIBC_2.34 shm_open F
+GLIBC_2.34 shm_unlink F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
@@ -2100,6 +2101,7 @@ GLIBC_2.4 setxattr F
GLIBC_2.4 sgetspent F
GLIBC_2.4 sgetspent_r F
GLIBC_2.4 shm_open F
+GLIBC_2.4 shm_unlink F
GLIBC_2.4 shmat F
GLIBC_2.4 shmctl F
GLIBC_2.4 shmdt F
diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
index 2c7735e023..278da67f77 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -30,7 +30,6 @@ GLIBC_2.4 mq_setattr F
GLIBC_2.4 mq_timedreceive F
GLIBC_2.4 mq_timedsend F
GLIBC_2.4 mq_unlink F
-GLIBC_2.4 shm_unlink F
GLIBC_2.4 timer_create F
GLIBC_2.4 timer_delete F
GLIBC_2.4 timer_getoverrun F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index cd0c551a53..afb91f6f43 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -1789,6 +1789,7 @@ GLIBC_2.29 sgetsgent_r F
GLIBC_2.29 sgetspent F
GLIBC_2.29 sgetspent_r F
GLIBC_2.29 shm_open F
+GLIBC_2.29 shm_unlink F
GLIBC_2.29 shmat F
GLIBC_2.29 shmctl F
GLIBC_2.29 shmdt F
@@ -2486,6 +2487,7 @@ GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
GLIBC_2.34 shm_open F
+GLIBC_2.34 shm_unlink F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
index 397141f226..60400954a3 100644
--- a/sysdeps/unix/sysv/linux/csky/librt.abilist
+++ b/sysdeps/unix/sysv/linux/csky/librt.abilist
@@ -26,7 +26,6 @@ GLIBC_2.29 mq_setattr F
GLIBC_2.29 mq_timedreceive F
GLIBC_2.29 mq_timedsend F
GLIBC_2.29 mq_unlink F
-GLIBC_2.29 shm_unlink F
GLIBC_2.29 timer_create F
GLIBC_2.29 timer_delete F
GLIBC_2.29 timer_getoverrun F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 6492ea8a6a..125f8a269a 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -1556,6 +1556,7 @@ GLIBC_2.2 setvbuf F
GLIBC_2.2 sgetspent F
GLIBC_2.2 sgetspent_r F
GLIBC_2.2 shm_open F
+GLIBC_2.2 shm_unlink F
GLIBC_2.2 shmat F
GLIBC_2.2 shmctl F
GLIBC_2.2 shmdt F
@@ -2440,6 +2441,7 @@ GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
GLIBC_2.34 shm_open F
+GLIBC_2.34 shm_unlink F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
index 9330ab2679..6ac4f0597e 100644
--- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
@@ -15,7 +15,6 @@ GLIBC_2.1 aio_write F
GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
GLIBC_2.1 lio_listio64 F
-GLIBC_2.2 shm_unlink F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 64e357202e..517753bdd1 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -2081,6 +2081,7 @@ GLIBC_2.2 sem_timedwait F
GLIBC_2.2 semctl F
GLIBC_2.2 setrlimit F
GLIBC_2.2 shm_open F
+GLIBC_2.2 shm_unlink F
GLIBC_2.2 shmctl F
GLIBC_2.2 svc_getreq_common F
GLIBC_2.2 svc_getreq_poll F
@@ -2624,6 +2625,7 @@ GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
GLIBC_2.34 shm_open F
+GLIBC_2.34 shm_unlink F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
index 9330ab2679..6ac4f0597e 100644
--- a/sysdeps/unix/sysv/linux/i386/librt.abilist
+++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
@@ -15,7 +15,6 @@ GLIBC_2.1 aio_write F
GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
GLIBC_2.1 lio_listio64 F
-GLIBC_2.2 shm_unlink F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 2d2a33196d..23d0928360 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -1577,6 +1577,7 @@ GLIBC_2.2 setvbuf F
GLIBC_2.2 sgetspent F
GLIBC_2.2 sgetspent_r F
GLIBC_2.2 shm_open F
+GLIBC_2.2 shm_unlink F
GLIBC_2.2 shmat F
GLIBC_2.2 shmctl F
GLIBC_2.2 shmdt F
@@ -2400,6 +2401,7 @@ GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
GLIBC_2.34 shm_open F
+GLIBC_2.34 shm_unlink F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
index 31af578b45..fa7f54dd55 100644
--- a/sysdeps/unix/sysv/linux/ia64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/librt.abilist
@@ -15,7 +15,6 @@ GLIBC_2.1 aio_write F
GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
GLIBC_2.1 lio_listio64 F
-GLIBC_2.2 shm_unlink F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 868964dc1a..dd5fb50b18 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -399,6 +399,7 @@ GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
GLIBC_2.34 shm_open F
+GLIBC_2.34 shm_unlink F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
@@ -2083,6 +2084,7 @@ GLIBC_2.4 setxattr F
GLIBC_2.4 sgetspent F
GLIBC_2.4 sgetspent_r F
GLIBC_2.4 shm_open F
+GLIBC_2.4 shm_unlink F
GLIBC_2.4 shmat F
GLIBC_2.4 shmctl F
GLIBC_2.4 shmdt F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
index 2c7735e023..278da67f77 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -30,7 +30,6 @@ GLIBC_2.4 mq_setattr F
GLIBC_2.4 mq_timedreceive F
GLIBC_2.4 mq_timedsend F
GLIBC_2.4 mq_unlink F
-GLIBC_2.4 shm_unlink F
GLIBC_2.4 timer_create F
GLIBC_2.4 timer_delete F
GLIBC_2.4 timer_getoverrun F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 2dbaa0e4cd..cb1d553361 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2037,6 +2037,7 @@ GLIBC_2.2 sem_timedwait F
GLIBC_2.2 semctl F
GLIBC_2.2 setrlimit F
GLIBC_2.2 shm_open F
+GLIBC_2.2 shm_unlink F
GLIBC_2.2 shmctl F
GLIBC_2.2 svc_getreq_common F
GLIBC_2.2 svc_getreq_poll F
@@ -2567,6 +2568,7 @@ GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
GLIBC_2.34 shm_open F
+GLIBC_2.34 shm_unlink F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
index 9330ab2679..6ac4f0597e 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
@@ -15,7 +15,6 @@ GLIBC_2.1 aio_write F
GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
GLIBC_2.1 lio_listio64 F
-GLIBC_2.2 shm_unlink F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index afdb458987..6a20a6fdf2 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -1788,6 +1788,7 @@ GLIBC_2.18 sgetsgent_r F
GLIBC_2.18 sgetspent F
GLIBC_2.18 sgetspent_r F
GLIBC_2.18 shm_open F
+GLIBC_2.18 shm_unlink F
GLIBC_2.18 shmat F
GLIBC_2.18 shmctl F
GLIBC_2.18 shmdt F
@@ -2537,6 +2538,7 @@ GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
GLIBC_2.34 shm_open F
+GLIBC_2.34 shm_unlink F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
index e4b9a630af..a14deaabdb 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
@@ -26,7 +26,6 @@ GLIBC_2.18 mq_setattr F
GLIBC_2.18 mq_timedreceive F
GLIBC_2.18 mq_timedsend F
GLIBC_2.18 mq_unlink F
-GLIBC_2.18 shm_unlink F
GLIBC_2.18 timer_create F
GLIBC_2.18 timer_delete F
GLIBC_2.18 timer_getoverrun F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 054410b405..4c21cbb64d 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -1788,6 +1788,7 @@ GLIBC_2.18 sgetsgent_r F
GLIBC_2.18 sgetspent F
GLIBC_2.18 sgetspent_r F
GLIBC_2.18 shm_open F
+GLIBC_2.18 shm_unlink F
GLIBC_2.18 shmat F
GLIBC_2.18 shmctl F
GLIBC_2.18 shmdt F
@@ -2534,6 +2535,7 @@ GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
GLIBC_2.34 shm_open F
+GLIBC_2.34 shm_unlink F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
index e4b9a630af..a14deaabdb 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
@@ -26,7 +26,6 @@ GLIBC_2.18 mq_setattr F
GLIBC_2.18 mq_timedreceive F
GLIBC_2.18 mq_timedsend F
GLIBC_2.18 mq_unlink F
-GLIBC_2.18 shm_unlink F
GLIBC_2.18 timer_create F
GLIBC_2.18 timer_delete F
GLIBC_2.18 timer_getoverrun F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index c39eec99ee..f83ba2f780 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -1943,6 +1943,7 @@ GLIBC_2.2 sendfile F
GLIBC_2.2 setrlimit64 F
GLIBC_2.2 setutxent F
GLIBC_2.2 shm_open F
+GLIBC_2.2 shm_unlink F
GLIBC_2.2 shmctl F
GLIBC_2.2 sighold F
GLIBC_2.2 sigignore F
@@ -2532,6 +2533,7 @@ GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
GLIBC_2.34 shm_open F
+GLIBC_2.34 shm_unlink F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
index b187230f59..2c212d29d0 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
@@ -15,7 +15,6 @@ GLIBC_2.2 aio_write F
GLIBC_2.2 aio_write64 F
GLIBC_2.2 lio_listio F
GLIBC_2.2 lio_listio64 F
-GLIBC_2.2 shm_unlink F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 0344199ff9..347bbddb94 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -1941,6 +1941,7 @@ GLIBC_2.2 sendfile F
GLIBC_2.2 setrlimit64 F
GLIBC_2.2 setutxent F
GLIBC_2.2 shm_open F
+GLIBC_2.2 shm_unlink F
GLIBC_2.2 shmctl F
GLIBC_2.2 sighold F
GLIBC_2.2 sigignore F
@@ -2530,6 +2531,7 @@ GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
GLIBC_2.34 shm_open F
+GLIBC_2.34 shm_unlink F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 8f7783cb26..26b7ab529b 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -1940,6 +1940,7 @@ GLIBC_2.2 sendfile F
GLIBC_2.2 setrlimit64 F
GLIBC_2.2 setutxent F
GLIBC_2.2 shm_open F
+GLIBC_2.2 shm_unlink F
GLIBC_2.2 sighold F
GLIBC_2.2 sigignore F
GLIBC_2.2 sigqueue F
@@ -2538,6 +2539,7 @@ GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
GLIBC_2.34 shm_open F
+GLIBC_2.34 shm_unlink F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
index b187230f59..2c212d29d0 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
@@ -15,7 +15,6 @@ GLIBC_2.2 aio_write F
GLIBC_2.2 aio_write64 F
GLIBC_2.2 lio_listio F
GLIBC_2.2 lio_listio64 F
-GLIBC_2.2 shm_unlink F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 494829a95d..e667b0e553 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -1936,6 +1936,7 @@ GLIBC_2.2 sendfile F
GLIBC_2.2 setrlimit64 F
GLIBC_2.2 setutxent F
GLIBC_2.2 shm_open F
+GLIBC_2.2 shm_unlink F
GLIBC_2.2 sighold F
GLIBC_2.2 sigignore F
GLIBC_2.2 sigqueue F
@@ -2456,6 +2457,7 @@ GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
GLIBC_2.34 shm_open F
+GLIBC_2.34 shm_unlink F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
index e62ed45d14..2c7d661e56 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
@@ -15,7 +15,6 @@ GLIBC_2.2 aio_write F
GLIBC_2.2 aio_write64 F
GLIBC_2.2 lio_listio F
GLIBC_2.2 lio_listio64 F
-GLIBC_2.2 shm_unlink F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 15236167e9..89a1cc7da6 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -1831,6 +1831,7 @@ GLIBC_2.21 sgetsgent_r F
GLIBC_2.21 sgetspent F
GLIBC_2.21 sgetspent_r F
GLIBC_2.21 shm_open F
+GLIBC_2.21 shm_unlink F
GLIBC_2.21 shmat F
GLIBC_2.21 shmctl F
GLIBC_2.21 shmdt F
@@ -2576,6 +2577,7 @@ GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
GLIBC_2.34 shm_open F
+GLIBC_2.34 shm_unlink F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
index d9db8e1781..f600881b44 100644
--- a/sysdeps/unix/sysv/linux/nios2/librt.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/librt.abilist
@@ -26,7 +26,6 @@ GLIBC_2.21 mq_setattr F
GLIBC_2.21 mq_timedreceive F
GLIBC_2.21 mq_timedsend F
GLIBC_2.21 mq_unlink F
-GLIBC_2.21 shm_unlink F
GLIBC_2.21 timer_create F
GLIBC_2.21 timer_delete F
GLIBC_2.21 timer_getoverrun F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 5bfa644345..f364c5219e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -2042,6 +2042,7 @@ GLIBC_2.2 sem_timedwait F
GLIBC_2.2 semctl F
GLIBC_2.2 setrlimit F
GLIBC_2.2 shm_open F
+GLIBC_2.2 shm_unlink F
GLIBC_2.2 shmctl F
GLIBC_2.2 svc_getreq_common F
GLIBC_2.2 svc_getreq_poll F
@@ -2594,6 +2595,7 @@ GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
GLIBC_2.34 shm_open F
+GLIBC_2.34 shm_unlink F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
index 9330ab2679..6ac4f0597e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
@@ -15,7 +15,6 @@ GLIBC_2.1 aio_write F
GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
GLIBC_2.1 lio_listio64 F
-GLIBC_2.2 shm_unlink F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 4d2899b97b..f5bcc78afe 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -2046,6 +2046,7 @@ GLIBC_2.2 sem_timedwait F
GLIBC_2.2 semctl F
GLIBC_2.2 setrlimit F
GLIBC_2.2 shm_open F
+GLIBC_2.2 shm_unlink F
GLIBC_2.2 shmctl F
GLIBC_2.2 svc_getreq_common F
GLIBC_2.2 svc_getreq_poll F
@@ -2627,6 +2628,7 @@ GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
GLIBC_2.34 shm_open F
+GLIBC_2.34 shm_unlink F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 1b03a7b2b2..6032716053 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -1685,6 +1685,7 @@ GLIBC_2.3 setxattr F
GLIBC_2.3 sgetspent F
GLIBC_2.3 sgetspent_r F
GLIBC_2.3 shm_open F
+GLIBC_2.3 shm_unlink F
GLIBC_2.3 shmat F
GLIBC_2.3 shmctl F
GLIBC_2.3 shmdt F
@@ -2364,6 +2365,7 @@ GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
GLIBC_2.34 shm_open F
+GLIBC_2.34 shm_unlink F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
index ce776089f4..b3c7afb461 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
@@ -15,7 +15,6 @@ GLIBC_2.3 aio_write F
GLIBC_2.3 aio_write64 F
GLIBC_2.3 lio_listio F
GLIBC_2.3 lio_listio64 F
-GLIBC_2.3 shm_unlink F
GLIBC_2.3 timer_create F
GLIBC_2.3 timer_delete F
GLIBC_2.3 timer_getoverrun F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index e69840ef13..8c5494e1dc 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -1872,6 +1872,7 @@ GLIBC_2.17 sgetsgent_r F
GLIBC_2.17 sgetspent F
GLIBC_2.17 sgetspent_r F
GLIBC_2.17 shm_open F
+GLIBC_2.17 shm_unlink F
GLIBC_2.17 shmat F
GLIBC_2.17 shmctl F
GLIBC_2.17 shmdt F
@@ -2663,6 +2664,7 @@ GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
GLIBC_2.34 shm_open F
+GLIBC_2.34 shm_unlink F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
index 7ebb55d15e..c41e0e675b 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
@@ -26,7 +26,6 @@ GLIBC_2.17 mq_setattr F
GLIBC_2.17 mq_timedreceive F
GLIBC_2.17 mq_timedsend F
GLIBC_2.17 mq_unlink F
-GLIBC_2.17 shm_unlink F
GLIBC_2.17 timer_create F
GLIBC_2.17 timer_delete F
GLIBC_2.17 timer_getoverrun F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 77e707990b..d7db279c1e 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1731,6 +1731,7 @@ GLIBC_2.33 sgetsgent_r F
GLIBC_2.33 sgetspent F
GLIBC_2.33 sgetspent_r F
GLIBC_2.33 shm_open F
+GLIBC_2.33 shm_unlink F
GLIBC_2.33 shmat F
GLIBC_2.33 shmctl F
GLIBC_2.33 shmdt F
@@ -2228,6 +2229,7 @@ GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
GLIBC_2.34 shm_open F
+GLIBC_2.34 shm_unlink F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
index 1af45783f0..c03b8a741e 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
@@ -26,7 +26,6 @@ GLIBC_2.33 mq_setattr F
GLIBC_2.33 mq_timedreceive F
GLIBC_2.33 mq_timedsend F
GLIBC_2.33 mq_unlink F
-GLIBC_2.33 shm_unlink F
GLIBC_2.33 timer_create F
GLIBC_2.33 timer_delete F
GLIBC_2.33 timer_getoverrun F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 5eb837832d..ef03dc0f9e 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -1778,6 +1778,7 @@ GLIBC_2.27 sgetsgent_r F
GLIBC_2.27 sgetspent F
GLIBC_2.27 sgetspent_r F
GLIBC_2.27 shm_open F
+GLIBC_2.27 shm_unlink F
GLIBC_2.27 shmat F
GLIBC_2.27 shmctl F
GLIBC_2.27 shmdt F
@@ -2428,6 +2429,7 @@ GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
GLIBC_2.34 shm_open F
+GLIBC_2.34 shm_unlink F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
index 51c05877bd..3cc7884927 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
@@ -26,7 +26,6 @@ GLIBC_2.27 mq_setattr F
GLIBC_2.27 mq_timedreceive F
GLIBC_2.27 mq_timedsend F
GLIBC_2.27 mq_unlink F
-GLIBC_2.27 shm_unlink F
GLIBC_2.27 timer_create F
GLIBC_2.27 timer_delete F
GLIBC_2.27 timer_getoverrun F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 05e5ff3519..9118cb68ec 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -2040,6 +2040,7 @@ GLIBC_2.2 sem_timedwait F
GLIBC_2.2 semctl F
GLIBC_2.2 setrlimit F
GLIBC_2.2 shm_open F
+GLIBC_2.2 shm_unlink F
GLIBC_2.2 shmctl F
GLIBC_2.2 svc_getreq_common F
GLIBC_2.2 svc_getreq_poll F
@@ -2592,6 +2593,7 @@ GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
GLIBC_2.34 shm_open F
+GLIBC_2.34 shm_unlink F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
index 9330ab2679..6ac4f0597e 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
@@ -15,7 +15,6 @@ GLIBC_2.1 aio_write F
GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
GLIBC_2.1 lio_listio64 F
-GLIBC_2.2 shm_unlink F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index bad0a9e3f9..66c01bd7e7 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -1573,6 +1573,7 @@ GLIBC_2.2 setvbuf F
GLIBC_2.2 sgetspent F
GLIBC_2.2 sgetspent_r F
GLIBC_2.2 shm_open F
+GLIBC_2.2 shm_unlink F
GLIBC_2.2 shmat F
GLIBC_2.2 shmctl F
GLIBC_2.2 shmdt F
@@ -2401,6 +2402,7 @@ GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
GLIBC_2.34 shm_open F
+GLIBC_2.34 shm_unlink F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
index 269e72621b..80735b140b 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
@@ -15,7 +15,6 @@ GLIBC_2.2 aio_write F
GLIBC_2.2 aio_write64 F
GLIBC_2.2 lio_listio F
GLIBC_2.2 lio_listio64 F
-GLIBC_2.2 shm_unlink F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index e7b48728bb..c40eb412c2 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -1560,6 +1560,7 @@ GLIBC_2.2 setvbuf F
GLIBC_2.2 sgetspent F
GLIBC_2.2 sgetspent_r F
GLIBC_2.2 shm_open F
+GLIBC_2.2 shm_unlink F
GLIBC_2.2 shmat F
GLIBC_2.2 shmctl F
GLIBC_2.2 shmdt F
@@ -2447,6 +2448,7 @@ GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
GLIBC_2.34 shm_open F
+GLIBC_2.34 shm_unlink F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
index 9330ab2679..6ac4f0597e 100644
--- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
@@ -15,7 +15,6 @@ GLIBC_2.1 aio_write F
GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
GLIBC_2.1 lio_listio64 F
-GLIBC_2.2 shm_unlink F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 60c84522df..1412d33835 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -1560,6 +1560,7 @@ GLIBC_2.2 setvbuf F
GLIBC_2.2 sgetspent F
GLIBC_2.2 sgetspent_r F
GLIBC_2.2 shm_open F
+GLIBC_2.2 shm_unlink F
GLIBC_2.2 shmat F
GLIBC_2.2 shmctl F
GLIBC_2.2 shmdt F
@@ -2444,6 +2445,7 @@ GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
GLIBC_2.34 shm_open F
+GLIBC_2.34 shm_unlink F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
index 9330ab2679..6ac4f0597e 100644
--- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
@@ -15,7 +15,6 @@ GLIBC_2.1 aio_write F
GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
GLIBC_2.1 lio_listio64 F
-GLIBC_2.2 shm_unlink F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 4efddd8db9..7b55d34753 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -2035,6 +2035,7 @@ GLIBC_2.2 scandir64 F
GLIBC_2.2 sem_timedwait F
GLIBC_2.2 semctl F
GLIBC_2.2 shm_open F
+GLIBC_2.2 shm_unlink F
GLIBC_2.2 shmctl F
GLIBC_2.2 svc_getreq_common F
GLIBC_2.2 svc_getreq_poll F
@@ -2585,6 +2586,7 @@ GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
GLIBC_2.34 shm_open F
+GLIBC_2.34 shm_unlink F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
index fa286246e4..100bd4fb76 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
@@ -15,7 +15,6 @@ GLIBC_2.1 aio_write F
GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
GLIBC_2.1 lio_listio64 F
-GLIBC_2.2 shm_unlink F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index b19426e2e3..cfd5f38864 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -1603,6 +1603,7 @@ GLIBC_2.2 setvbuf F
GLIBC_2.2 sgetspent F
GLIBC_2.2 sgetspent_r F
GLIBC_2.2 shm_open F
+GLIBC_2.2 shm_unlink F
GLIBC_2.2 shmat F
GLIBC_2.2 shmctl F
GLIBC_2.2 shmdt F
@@ -2421,6 +2422,7 @@ GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
GLIBC_2.34 shm_open F
+GLIBC_2.34 shm_unlink F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
index bfa53df5cc..c4985067f7 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
@@ -15,7 +15,6 @@ GLIBC_2.1 aio_write F
GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
GLIBC_2.1 lio_listio64 F
-GLIBC_2.2 shm_unlink F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
GLIBC_2.2 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 e73bc2acea..17be05f14f 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -1570,6 +1570,7 @@ GLIBC_2.2.5 setvbuf F
GLIBC_2.2.5 sgetspent F
GLIBC_2.2.5 sgetspent_r F
GLIBC_2.2.5 shm_open F
+GLIBC_2.2.5 shm_unlink F
GLIBC_2.2.5 shmat F
GLIBC_2.2.5 shmctl F
GLIBC_2.2.5 shmdt F
@@ -2379,6 +2380,7 @@ GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
GLIBC_2.34 shm_open F
+GLIBC_2.34 shm_unlink F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
index ec08fcfcb2..a3da4f8e6e 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
@@ -15,7 +15,6 @@ GLIBC_2.2.5 aio_write F
GLIBC_2.2.5 aio_write64 F
GLIBC_2.2.5 lio_listio F
GLIBC_2.2.5 lio_listio64 F
-GLIBC_2.2.5 shm_unlink F
GLIBC_2.2.5 timer_create F
GLIBC_2.2.5 timer_delete F
GLIBC_2.2.5 timer_getoverrun F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 4116101975..a9db18906b 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -1790,6 +1790,7 @@ GLIBC_2.16 sgetsgent_r F
GLIBC_2.16 sgetspent F
GLIBC_2.16 sgetspent_r F
GLIBC_2.16 shm_open F
+GLIBC_2.16 shm_unlink F
GLIBC_2.16 shmat F
GLIBC_2.16 shmctl F
GLIBC_2.16 shmdt F
@@ -2482,6 +2483,7 @@ GLIBC_2.34 sem_trywait F
GLIBC_2.34 sem_unlink F
GLIBC_2.34 sem_wait F
GLIBC_2.34 shm_open F
+GLIBC_2.34 shm_unlink F
GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
index 1e40b05c29..a0069d137b 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
@@ -26,7 +26,6 @@ GLIBC_2.16 mq_setattr F
GLIBC_2.16 mq_timedreceive F
GLIBC_2.16 mq_timedsend F
GLIBC_2.16 mq_unlink F
-GLIBC_2.16 shm_unlink F
GLIBC_2.16 timer_create F
GLIBC_2.16 timer_delete F
GLIBC_2.16 timer_getoverrun F
--
2.31.1
^ permalink raw reply [flat|nested] 72+ messages in thread
* [PATCH 07/34] rt: Move generic implementation from sysdeps/pthread to rt
2021-06-17 18:56 [PATCH v2 00/34] Move librt into libc Florian Weimer
` (5 preceding siblings ...)
2021-06-17 18:57 ` [PATCH 06/34] rt: Move shm_unlink " Florian Weimer
@ 2021-06-17 18:57 ` Florian Weimer
2021-06-21 18:37 ` Adhemerval Zanella
2021-06-17 18:57 ` [PATCH 08/34] nptl: Move pthreadP.h into sysdeps directory Florian Weimer
` (27 subsequent siblings)
34 siblings, 1 reply; 72+ messages in thread
From: Florian Weimer @ 2021-06-17 18:57 UTC (permalink / raw)
To: libc-alpha
The pthread-based implementation is the generic one. Replacing
the stubs makes it clear that they do not have to be adjusted for
the libpthread move.
Result of:
git mv -f sysdeps/pthread/aio_misc.h sysdeps/generic/
git mv sysdeps/pthread/timer_routines.c sysdeps/htl/
git mv -f sysdeps/pthread/{aio,lio,timer}_*.c rt/
Followed by manual adjustment of the #include paths in
sysdeps/unix/sysv/linux/wordsize-64, and a move of the version
definitions formerly in sysdeps/pthread/Versions.
---
rt/Versions | 4 +
rt/aio_cancel.c | 129 +++-
rt/aio_error.c | 12 +-
rt/aio_fsync.c | 26 +-
rt/aio_misc.c | 699 ++++++++++++++++-
rt/aio_notify.c | 144 +++-
rt/aio_read.c | 18 +-
rt/aio_read64.c | 32 +-
rt/aio_suspend.c | 237 +++++-
rt/aio_write.c | 18 +-
rt/aio_write64.c | 32 +-
rt/lio_listio.c | 236 +++++-
rt/lio_listio64.c | 33 +-
rt/timer_create.c | 156 +++-
rt/timer_delete.c | 58 +-
rt/timer_getoverr.c | 33 +-
rt/timer_gettime.c | 64 +-
rt/timer_settime.c | 120 ++-
sysdeps/generic/aio_misc.h | 83 +-
sysdeps/{pthread => htl}/timer_routines.c | 0
sysdeps/pthread/Versions | 5 -
sysdeps/pthread/aio_cancel.c | 157 ----
sysdeps/pthread/aio_error.c | 48 --
sysdeps/pthread/aio_fsync.c | 57 --
sysdeps/pthread/aio_misc.c | 721 ------------------
sysdeps/pthread/aio_misc.h | 122 ---
sysdeps/pthread/aio_notify.c | 157 ----
sysdeps/pthread/aio_read.c | 30 -
sysdeps/pthread/aio_read64.c | 30 -
sysdeps/pthread/aio_suspend.c | 263 -------
sysdeps/pthread/aio_write.c | 30 -
sysdeps/pthread/aio_write64.c | 30 -
sysdeps/pthread/lio_listio.c | 248 ------
sysdeps/pthread/lio_listio64.c | 33 -
sysdeps/pthread/timer_create.c | 166 ----
sysdeps/pthread/timer_delete.c | 68 --
sysdeps/pthread/timer_getoverr.c | 43 --
sysdeps/pthread/timer_gettime.c | 74 --
sysdeps/pthread/timer_settime.c | 131 ----
sysdeps/unix/sysv/linux/alpha/aio_cancel.c | 4 +-
sysdeps/unix/sysv/linux/sparc/aio_cancel.c | 4 +-
.../unix/sysv/linux/wordsize-64/aio_read.c | 2 +-
.../unix/sysv/linux/wordsize-64/aio_write.c | 2 +-
.../unix/sysv/linux/wordsize-64/lio_listio.c | 2 +-
44 files changed, 2017 insertions(+), 2544 deletions(-)
rename sysdeps/{pthread => htl}/timer_routines.c (100%)
delete mode 100644 sysdeps/pthread/Versions
delete mode 100644 sysdeps/pthread/aio_cancel.c
delete mode 100644 sysdeps/pthread/aio_error.c
delete mode 100644 sysdeps/pthread/aio_fsync.c
delete mode 100644 sysdeps/pthread/aio_misc.c
delete mode 100644 sysdeps/pthread/aio_misc.h
delete mode 100644 sysdeps/pthread/aio_notify.c
delete mode 100644 sysdeps/pthread/aio_read.c
delete mode 100644 sysdeps/pthread/aio_read64.c
delete mode 100644 sysdeps/pthread/aio_suspend.c
delete mode 100644 sysdeps/pthread/aio_write.c
delete mode 100644 sysdeps/pthread/aio_write64.c
delete mode 100644 sysdeps/pthread/lio_listio.c
delete mode 100644 sysdeps/pthread/lio_listio64.c
delete mode 100644 sysdeps/pthread/timer_create.c
delete mode 100644 sysdeps/pthread/timer_delete.c
delete mode 100644 sysdeps/pthread/timer_getoverr.c
delete mode 100644 sysdeps/pthread/timer_gettime.c
delete mode 100644 sysdeps/pthread/timer_settime.c
diff --git a/rt/Versions b/rt/Versions
index 309486be1e..26c6d1ac63 100644
--- a/rt/Versions
+++ b/rt/Versions
@@ -47,6 +47,10 @@ librt {
mq_timedsend;
mq_unlink;
}
+ GLIBC_2.4 {
+ lio_listio;
+ lio_listio64;
+ }
GLIBC_2.7 {
__mq_open_2;
}
diff --git a/rt/aio_cancel.c b/rt/aio_cancel.c
index dba1e45044..63fd88f36c 100644
--- a/rt/aio_cancel.c
+++ b/rt/aio_cancel.c
@@ -1,6 +1,7 @@
-/* Cancel requests associated with given file descriptor. Stub version.
- Copyright (C) 2001-2021 Free Software Foundation, Inc.
+/* Cancel requests associated with given file descriptor.
+ Copyright (C) 1997-2021 Free Software Foundation, Inc.
This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -22,21 +23,135 @@
we want to avoid code duplication by using aliases. But gcc sees
the different parameter lists and prints a warning. We define here
a function so that aio_cancel64 has no prototype. */
+#ifndef aio_cancel
#define aio_cancel64 XXX
#include <aio.h>
/* And undo the hack. */
#undef aio_cancel64
+#endif
+#include <assert.h>
#include <errno.h>
+#include <fcntl.h>
+
+#include <aio_misc.h>
+
int
aio_cancel (int fildes, struct aiocb *aiocbp)
{
- __set_errno (ENOSYS);
- return -1;
+ struct requestlist *req = NULL;
+ int result = AIO_ALLDONE;
+
+ /* If fildes is invalid, error. */
+ if (fcntl (fildes, F_GETFL) < 0)
+ {
+ __set_errno (EBADF);
+ return -1;
+ }
+
+ /* Request the mutex. */
+ pthread_mutex_lock (&__aio_requests_mutex);
+
+ /* We are asked to cancel a specific AIO request. */
+ if (aiocbp != NULL)
+ {
+ /* If the AIO request is not for this descriptor it has no value
+ to look for the request block. */
+ if (aiocbp->aio_fildes != fildes)
+ {
+ pthread_mutex_unlock (&__aio_requests_mutex);
+ __set_errno (EINVAL);
+ return -1;
+ }
+ else if (aiocbp->__error_code == EINPROGRESS)
+ {
+ struct requestlist *last = NULL;
+
+ req = __aio_find_req_fd (fildes);
+
+ if (req == NULL)
+ {
+ not_found:
+ pthread_mutex_unlock (&__aio_requests_mutex);
+ __set_errno (EINVAL);
+ return -1;
+ }
+
+ while (req->aiocbp != (aiocb_union *) aiocbp)
+ {
+ last = req;
+ req = req->next_prio;
+ if (req == NULL)
+ goto not_found;
+ }
+
+ /* Don't remove the entry if a thread is already working on it. */
+ if (req->running == allocated)
+ {
+ result = AIO_NOTCANCELED;
+ req = NULL;
+ }
+ else
+ {
+ /* We can remove the entry. */
+ __aio_remove_request (last, req, 0);
+
+ result = AIO_CANCELED;
+
+ req->next_prio = NULL;
+ }
+ }
+ }
+ else
+ {
+ /* Find the beginning of the list of all requests for this
+ desriptor. */
+ req = __aio_find_req_fd (fildes);
+
+ /* If any request is worked on by a thread it must be the first.
+ So either we can delete all requests or all but the first. */
+ if (req != NULL)
+ {
+ if (req->running == allocated)
+ {
+ struct requestlist *old = req;
+ req = req->next_prio;
+ old->next_prio = NULL;
+
+ result = AIO_NOTCANCELED;
+
+ if (req != NULL)
+ __aio_remove_request (old, req, 1);
+ }
+ else
+ {
+ result = AIO_CANCELED;
+
+ /* We can remove the entry. */
+ __aio_remove_request (NULL, req, 1);
+ }
+ }
+ }
+
+ /* Mark requests as canceled and send signal. */
+ while (req != NULL)
+ {
+ struct requestlist *old = req;
+ assert (req->running == yes || req->running == queued);
+ req->aiocbp->aiocb.__error_code = ECANCELED;
+ req->aiocbp->aiocb.__return_value = -1;
+ __aio_notify (req);
+ req = req->next_prio;
+ __aio_free_request (old);
+ }
+
+ /* Release the mutex. */
+ pthread_mutex_unlock (&__aio_requests_mutex);
+
+ return result;
}
+#ifndef aio_cancel
weak_alias (aio_cancel, aio_cancel64)
-
-stub_warning (aio_cancel)
-stub_warning (aio_cancel64)
+#endif
diff --git a/rt/aio_error.c b/rt/aio_error.c
index 730b64b5e9..ed664ae0ef 100644
--- a/rt/aio_error.c
+++ b/rt/aio_error.c
@@ -28,11 +28,21 @@
/* And undo the hack. */
#undef aio_error64
+#include <aio_misc.h>
+
int
aio_error (const struct aiocb *aiocbp)
{
- return aiocbp->__error_code;
+ int ret;
+
+ /* Acquire the mutex to make sure all operations for this request are
+ complete. */
+ pthread_mutex_lock(&__aio_requests_mutex);
+ ret = aiocbp->__error_code;
+ pthread_mutex_unlock(&__aio_requests_mutex);
+
+ return ret;
}
weak_alias (aio_error, aio_error64)
diff --git a/rt/aio_fsync.c b/rt/aio_fsync.c
index 86727246f8..5a52e2fec0 100644
--- a/rt/aio_fsync.c
+++ b/rt/aio_fsync.c
@@ -1,6 +1,7 @@
-/* Synchronize I/O in given file descriptor. Stub version.
- Copyright (C) 2001-2021 Free Software Foundation, Inc.
+/* Synchronize I/O in given file descriptor.
+ Copyright (C) 1997-2021 Free Software Foundation, Inc.
This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -26,24 +27,31 @@
#include <aio.h>
/* And undo the hack. */
#undef aio_fsync64
-
#include <errno.h>
#include <fcntl.h>
+#include <aio_misc.h>
+
+
int
aio_fsync (int op, struct aiocb *aiocbp)
{
- if (op != O_SYNC && op != O_DSYNC)
+ if (op != O_DSYNC && __builtin_expect (op != O_SYNC, 0))
{
__set_errno (EINVAL);
return -1;
}
- __set_errno (ENOSYS);
- return -1;
+ /* Verify that this is an open file descriptor. */
+ if (__glibc_unlikely (fcntl (aiocbp->aio_fildes, F_GETFL) == -1))
+ {
+ __set_errno (EBADF);
+ return -1;
+ }
+
+ return (__aio_enqueue_request ((aiocb_union *) aiocbp,
+ op == O_SYNC ? LIO_SYNC : LIO_DSYNC) == NULL
+ ? -1 : 0);
}
weak_alias (aio_fsync, aio_fsync64)
-
-stub_warning (aio_fsync)
-stub_warning (aio_fsync64)
diff --git a/rt/aio_misc.c b/rt/aio_misc.c
index 2332f3ed53..b95f07d9d3 100644
--- a/rt/aio_misc.c
+++ b/rt/aio_misc.c
@@ -1,6 +1,7 @@
-/* Handle general operations. Stub version.
- Copyright (C) 2001-2021 Free Software Foundation, Inc.
+/* Handle general operations.
+ Copyright (C) 1997-2021 Free Software Foundation, Inc.
This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -17,12 +18,704 @@
<https://www.gnu.org/licenses/>. */
#include <aio.h>
+#include <assert.h>
+#include <errno.h>
+#include <limits.h>
+#include <pthread.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/param.h>
+#include <sys/stat.h>
+#include <sys/time.h>
#include <aio_misc.h>
-/* This file is for internal code needed by the aio_* implementation. */
+#ifndef aio_create_helper_thread
+# define aio_create_helper_thread __aio_create_helper_thread
+extern inline int
+__aio_create_helper_thread (pthread_t *threadp, void *(*tf) (void *), void *arg)
+{
+ pthread_attr_t attr;
+
+ /* Make sure the thread is created detached. */
+ pthread_attr_init (&attr);
+ pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
+
+ int ret = pthread_create (threadp, &attr, tf, arg);
+
+ (void) pthread_attr_destroy (&attr);
+ return ret;
+}
+#endif
+
+static void add_request_to_runlist (struct requestlist *newrequest);
+
+/* Pool of request list entries. */
+static struct requestlist **pool;
+
+/* Number of total and allocated pool entries. */
+static size_t pool_max_size;
+static size_t pool_size;
+
+/* We implement a two dimensional array but allocate each row separately.
+ The macro below determines how many entries should be used per row.
+ It should better be a power of two. */
+#define ENTRIES_PER_ROW 32
+
+/* How many rows we allocate at once. */
+#define ROWS_STEP 8
+
+/* List of available entries. */
+static struct requestlist *freelist;
+
+/* List of request waiting to be processed. */
+static struct requestlist *runlist;
+
+/* Structure list of all currently processed requests. */
+static struct requestlist *requests;
+
+/* Number of threads currently running. */
+static int nthreads;
+
+/* Number of threads waiting for work to arrive. */
+static int idle_thread_count;
+
+
+/* These are the values used to optimize the use of AIO. The user can
+ overwrite them by using the `aio_init' function. */
+static struct aioinit optim =
+{
+ 20, /* int aio_threads; Maximal number of threads. */
+ 64, /* int aio_num; Number of expected simultaneous requests. */
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 0
+};
+
+
+/* Since the list is global we need a mutex protecting it. */
+pthread_mutex_t __aio_requests_mutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
+
+/* When you add a request to the list and there are idle threads present,
+ you signal this condition variable. When a thread finishes work, it waits
+ on this condition variable for a time before it actually exits. */
+pthread_cond_t __aio_new_request_notification = PTHREAD_COND_INITIALIZER;
+
+
+/* Functions to handle request list pool. */
+static struct requestlist *
+get_elem (void)
+{
+ struct requestlist *result;
+
+ if (freelist == NULL)
+ {
+ struct requestlist *new_row;
+ int cnt;
+
+ assert (sizeof (struct aiocb) == sizeof (struct aiocb64));
+
+ if (pool_size + 1 >= pool_max_size)
+ {
+ size_t new_max_size = pool_max_size + ROWS_STEP;
+ struct requestlist **new_tab;
+
+ new_tab = (struct requestlist **)
+ realloc (pool, new_max_size * sizeof (struct requestlist *));
+
+ if (new_tab == NULL)
+ return NULL;
+
+ pool_max_size = new_max_size;
+ pool = new_tab;
+ }
+
+ /* Allocate the new row. */
+ cnt = pool_size == 0 ? optim.aio_num : ENTRIES_PER_ROW;
+ new_row = (struct requestlist *) calloc (cnt,
+ sizeof (struct requestlist));
+ if (new_row == NULL)
+ return NULL;
+
+ pool[pool_size++] = new_row;
+
+ /* Put all the new entries in the freelist. */
+ do
+ {
+ new_row->next_prio = freelist;
+ freelist = new_row++;
+ }
+ while (--cnt > 0);
+ }
+
+ result = freelist;
+ freelist = freelist->next_prio;
+
+ return result;
+}
+
+
+void
+__aio_free_request (struct requestlist *elem)
+{
+ elem->running = no;
+ elem->next_prio = freelist;
+ freelist = elem;
+}
+
+
+struct requestlist *
+__aio_find_req (aiocb_union *elem)
+{
+ struct requestlist *runp = requests;
+ int fildes = elem->aiocb.aio_fildes;
+
+ while (runp != NULL && runp->aiocbp->aiocb.aio_fildes < fildes)
+ runp = runp->next_fd;
+
+ if (runp != NULL)
+ {
+ if (runp->aiocbp->aiocb.aio_fildes != fildes)
+ runp = NULL;
+ else
+ while (runp != NULL && runp->aiocbp != elem)
+ runp = runp->next_prio;
+ }
+
+ return runp;
+}
+
+
+struct requestlist *
+__aio_find_req_fd (int fildes)
+{
+ struct requestlist *runp = requests;
+
+ while (runp != NULL && runp->aiocbp->aiocb.aio_fildes < fildes)
+ runp = runp->next_fd;
+
+ return (runp != NULL && runp->aiocbp->aiocb.aio_fildes == fildes
+ ? runp : NULL);
+}
+
+
+void
+__aio_remove_request (struct requestlist *last, struct requestlist *req,
+ int all)
+{
+ assert (req->running == yes || req->running == queued
+ || req->running == done);
+
+ if (last != NULL)
+ last->next_prio = all ? NULL : req->next_prio;
+ else
+ {
+ if (all || req->next_prio == NULL)
+ {
+ if (req->last_fd != NULL)
+ req->last_fd->next_fd = req->next_fd;
+ else
+ requests = req->next_fd;
+ if (req->next_fd != NULL)
+ req->next_fd->last_fd = req->last_fd;
+ }
+ else
+ {
+ if (req->last_fd != NULL)
+ req->last_fd->next_fd = req->next_prio;
+ else
+ requests = req->next_prio;
+
+ if (req->next_fd != NULL)
+ req->next_fd->last_fd = req->next_prio;
+
+ req->next_prio->last_fd = req->last_fd;
+ req->next_prio->next_fd = req->next_fd;
+
+ /* Mark this entry as runnable. */
+ req->next_prio->running = yes;
+ }
+
+ if (req->running == yes)
+ {
+ struct requestlist *runp = runlist;
+
+ last = NULL;
+ while (runp != NULL)
+ {
+ if (runp == req)
+ {
+ if (last == NULL)
+ runlist = runp->next_run;
+ else
+ last->next_run = runp->next_run;
+ break;
+ }
+ last = runp;
+ runp = runp->next_run;
+ }
+ }
+ }
+}
+
+
+/* The thread handler. */
+static void *handle_fildes_io (void *arg);
+
+
+/* User optimization. */
void
__aio_init (const struct aioinit *init)
{
+ /* Get the mutex. */
+ pthread_mutex_lock (&__aio_requests_mutex);
+
+ /* Only allow writing new values if the table is not yet allocated. */
+ if (pool == NULL)
+ {
+ optim.aio_threads = init->aio_threads < 1 ? 1 : init->aio_threads;
+ assert (powerof2 (ENTRIES_PER_ROW));
+ optim.aio_num = (init->aio_num < ENTRIES_PER_ROW
+ ? ENTRIES_PER_ROW
+ : init->aio_num & ~(ENTRIES_PER_ROW - 1));
+ }
+
+ if (init->aio_idle_time != 0)
+ optim.aio_idle_time = init->aio_idle_time;
+
+ /* Release the mutex. */
+ pthread_mutex_unlock (&__aio_requests_mutex);
}
weak_alias (__aio_init, aio_init)
+
+
+/* The main function of the async I/O handling. It enqueues requests
+ and if necessary starts and handles threads. */
+struct requestlist *
+__aio_enqueue_request (aiocb_union *aiocbp, int operation)
+{
+ int result = 0;
+ int policy, prio;
+ struct sched_param param;
+ struct requestlist *last, *runp, *newp;
+ int running = no;
+
+ if (operation == LIO_SYNC || operation == LIO_DSYNC)
+ aiocbp->aiocb.aio_reqprio = 0;
+ else if (aiocbp->aiocb.aio_reqprio < 0
+#ifdef AIO_PRIO_DELTA_MAX
+ || aiocbp->aiocb.aio_reqprio > AIO_PRIO_DELTA_MAX
+#endif
+ )
+ {
+ /* Invalid priority value. */
+ __set_errno (EINVAL);
+ aiocbp->aiocb.__error_code = EINVAL;
+ aiocbp->aiocb.__return_value = -1;
+ return NULL;
+ }
+
+ /* Compute priority for this request. */
+ pthread_getschedparam (pthread_self (), &policy, ¶m);
+ prio = param.sched_priority - aiocbp->aiocb.aio_reqprio;
+
+ /* Get the mutex. */
+ pthread_mutex_lock (&__aio_requests_mutex);
+
+ last = NULL;
+ runp = requests;
+ /* First look whether the current file descriptor is currently
+ worked with. */
+ while (runp != NULL
+ && runp->aiocbp->aiocb.aio_fildes < aiocbp->aiocb.aio_fildes)
+ {
+ last = runp;
+ runp = runp->next_fd;
+ }
+
+ /* Get a new element for the waiting list. */
+ newp = get_elem ();
+ if (newp == NULL)
+ {
+ pthread_mutex_unlock (&__aio_requests_mutex);
+ __set_errno (EAGAIN);
+ return NULL;
+ }
+ newp->aiocbp = aiocbp;
+ newp->waiting = NULL;
+
+ aiocbp->aiocb.__abs_prio = prio;
+ aiocbp->aiocb.__policy = policy;
+ aiocbp->aiocb.aio_lio_opcode = operation;
+ aiocbp->aiocb.__error_code = EINPROGRESS;
+ aiocbp->aiocb.__return_value = 0;
+
+ if (runp != NULL
+ && runp->aiocbp->aiocb.aio_fildes == aiocbp->aiocb.aio_fildes)
+ {
+ /* The current file descriptor is worked on. It makes no sense
+ to start another thread since this new thread would fight
+ with the running thread for the resources. But we also cannot
+ say that the thread processing this desriptor shall immediately
+ after finishing the current job process this request if there
+ are other threads in the running queue which have a higher
+ priority. */
+
+ /* Simply enqueue it after the running one according to the
+ priority. */
+ last = NULL;
+ while (runp->next_prio != NULL
+ && runp->next_prio->aiocbp->aiocb.__abs_prio >= prio)
+ {
+ last = runp;
+ runp = runp->next_prio;
+ }
+
+ newp->next_prio = runp->next_prio;
+ runp->next_prio = newp;
+
+ running = queued;
+ }
+ else
+ {
+ running = yes;
+ /* Enqueue this request for a new descriptor. */
+ if (last == NULL)
+ {
+ newp->last_fd = NULL;
+ newp->next_fd = requests;
+ if (requests != NULL)
+ requests->last_fd = newp;
+ requests = newp;
+ }
+ else
+ {
+ newp->next_fd = last->next_fd;
+ newp->last_fd = last;
+ last->next_fd = newp;
+ if (newp->next_fd != NULL)
+ newp->next_fd->last_fd = newp;
+ }
+
+ newp->next_prio = NULL;
+ last = NULL;
+ }
+
+ if (running == yes)
+ {
+ /* We try to create a new thread for this file descriptor. The
+ function which gets called will handle all available requests
+ for this descriptor and when all are processed it will
+ terminate.
+
+ If no new thread can be created or if the specified limit of
+ threads for AIO is reached we queue the request. */
+
+ /* See if we need to and are able to create a thread. */
+ if (nthreads < optim.aio_threads && idle_thread_count == 0)
+ {
+ pthread_t thid;
+
+ running = newp->running = allocated;
+
+ /* Now try to start a thread. */
+ result = aio_create_helper_thread (&thid, handle_fildes_io, newp);
+ if (result == 0)
+ /* We managed to enqueue the request. All errors which can
+ happen now can be recognized by calls to `aio_return' and
+ `aio_error'. */
+ ++nthreads;
+ else
+ {
+ /* Reset the running flag. The new request is not running. */
+ running = newp->running = yes;
+
+ if (nthreads == 0)
+ {
+ /* We cannot create a thread in the moment and there is
+ also no thread running. This is a problem. `errno' is
+ set to EAGAIN if this is only a temporary problem. */
+ __aio_remove_request (last, newp, 0);
+ }
+ else
+ result = 0;
+ }
+ }
+ }
+
+ /* Enqueue the request in the run queue if it is not yet running. */
+ if (running == yes && result == 0)
+ {
+ add_request_to_runlist (newp);
+
+ /* If there is a thread waiting for work, then let it know that we
+ have just given it something to do. */
+ if (idle_thread_count > 0)
+ pthread_cond_signal (&__aio_new_request_notification);
+ }
+
+ if (result == 0)
+ newp->running = running;
+ else
+ {
+ /* Something went wrong. */
+ __aio_free_request (newp);
+ aiocbp->aiocb.__error_code = result;
+ __set_errno (result);
+ newp = NULL;
+ }
+
+ /* Release the mutex. */
+ pthread_mutex_unlock (&__aio_requests_mutex);
+
+ return newp;
+}
+
+
+static void *
+handle_fildes_io (void *arg)
+{
+ pthread_t self = pthread_self ();
+ struct sched_param param;
+ struct requestlist *runp = (struct requestlist *) arg;
+ aiocb_union *aiocbp;
+ int policy;
+ int fildes;
+
+ pthread_getschedparam (self, &policy, ¶m);
+
+ do
+ {
+ /* If runp is NULL, then we were created to service the work queue
+ in general, not to handle any particular request. In that case we
+ skip the "do work" stuff on the first pass, and go directly to the
+ "get work off the work queue" part of this loop, which is near the
+ end. */
+ if (runp == NULL)
+ pthread_mutex_lock (&__aio_requests_mutex);
+ else
+ {
+ /* Hopefully this request is marked as running. */
+ assert (runp->running == allocated);
+
+ /* Update our variables. */
+ aiocbp = runp->aiocbp;
+ fildes = aiocbp->aiocb.aio_fildes;
+
+ /* Change the priority to the requested value (if necessary). */
+ if (aiocbp->aiocb.__abs_prio != param.sched_priority
+ || aiocbp->aiocb.__policy != policy)
+ {
+ param.sched_priority = aiocbp->aiocb.__abs_prio;
+ policy = aiocbp->aiocb.__policy;
+ pthread_setschedparam (self, policy, ¶m);
+ }
+
+ /* Process request pointed to by RUNP. We must not be disturbed
+ by signals. */
+ if ((aiocbp->aiocb.aio_lio_opcode & 127) == LIO_READ)
+ {
+ if (sizeof (off_t) != sizeof (off64_t)
+ && aiocbp->aiocb.aio_lio_opcode & 128)
+ aiocbp->aiocb.__return_value =
+ TEMP_FAILURE_RETRY (__pread64 (fildes, (void *)
+ aiocbp->aiocb64.aio_buf,
+ aiocbp->aiocb64.aio_nbytes,
+ aiocbp->aiocb64.aio_offset));
+ else
+ aiocbp->aiocb.__return_value =
+ TEMP_FAILURE_RETRY (__libc_pread (fildes,
+ (void *)
+ aiocbp->aiocb.aio_buf,
+ aiocbp->aiocb.aio_nbytes,
+ aiocbp->aiocb.aio_offset));
+
+ if (aiocbp->aiocb.__return_value == -1 && errno == ESPIPE)
+ /* The Linux kernel is different from others. It returns
+ ESPIPE if using pread on a socket. Other platforms
+ simply ignore the offset parameter and behave like
+ read. */
+ aiocbp->aiocb.__return_value =
+ TEMP_FAILURE_RETRY (read (fildes,
+ (void *) aiocbp->aiocb64.aio_buf,
+ aiocbp->aiocb64.aio_nbytes));
+ }
+ else if ((aiocbp->aiocb.aio_lio_opcode & 127) == LIO_WRITE)
+ {
+ if (sizeof (off_t) != sizeof (off64_t)
+ && aiocbp->aiocb.aio_lio_opcode & 128)
+ aiocbp->aiocb.__return_value =
+ TEMP_FAILURE_RETRY (__pwrite64 (fildes, (const void *)
+ aiocbp->aiocb64.aio_buf,
+ aiocbp->aiocb64.aio_nbytes,
+ aiocbp->aiocb64.aio_offset));
+ else
+ aiocbp->aiocb.__return_value =
+ TEMP_FAILURE_RETRY (__libc_pwrite (fildes, (const void *)
+ aiocbp->aiocb.aio_buf,
+ aiocbp->aiocb.aio_nbytes,
+ aiocbp->aiocb.aio_offset));
+
+ if (aiocbp->aiocb.__return_value == -1 && errno == ESPIPE)
+ /* The Linux kernel is different from others. It returns
+ ESPIPE if using pwrite on a socket. Other platforms
+ simply ignore the offset parameter and behave like
+ write. */
+ aiocbp->aiocb.__return_value =
+ TEMP_FAILURE_RETRY (write (fildes,
+ (void *) aiocbp->aiocb64.aio_buf,
+ aiocbp->aiocb64.aio_nbytes));
+ }
+ else if (aiocbp->aiocb.aio_lio_opcode == LIO_DSYNC)
+ aiocbp->aiocb.__return_value =
+ TEMP_FAILURE_RETRY (fdatasync (fildes));
+ else if (aiocbp->aiocb.aio_lio_opcode == LIO_SYNC)
+ aiocbp->aiocb.__return_value =
+ TEMP_FAILURE_RETRY (fsync (fildes));
+ else
+ {
+ /* This is an invalid opcode. */
+ aiocbp->aiocb.__return_value = -1;
+ __set_errno (EINVAL);
+ }
+
+ /* Get the mutex. */
+ pthread_mutex_lock (&__aio_requests_mutex);
+
+ if (aiocbp->aiocb.__return_value == -1)
+ aiocbp->aiocb.__error_code = errno;
+ else
+ aiocbp->aiocb.__error_code = 0;
+
+ /* Send the signal to notify about finished processing of the
+ request. */
+ __aio_notify (runp);
+
+ /* For debugging purposes we reset the running flag of the
+ finished request. */
+ assert (runp->running == allocated);
+ runp->running = done;
+
+ /* Now dequeue the current request. */
+ __aio_remove_request (NULL, runp, 0);
+ if (runp->next_prio != NULL)
+ add_request_to_runlist (runp->next_prio);
+
+ /* Free the old element. */
+ __aio_free_request (runp);
+ }
+
+ runp = runlist;
+
+ /* If the runlist is empty, then we sleep for a while, waiting for
+ something to arrive in it. */
+ if (runp == NULL && optim.aio_idle_time >= 0)
+ {
+ struct timespec now;
+ struct timespec wakeup_time;
+
+ ++idle_thread_count;
+ __clock_gettime (CLOCK_REALTIME, &now);
+ wakeup_time.tv_sec = now.tv_sec + optim.aio_idle_time;
+ wakeup_time.tv_nsec = now.tv_nsec;
+ if (wakeup_time.tv_nsec >= 1000000000)
+ {
+ wakeup_time.tv_nsec -= 1000000000;
+ ++wakeup_time.tv_sec;
+ }
+ pthread_cond_timedwait (&__aio_new_request_notification,
+ &__aio_requests_mutex,
+ &wakeup_time);
+ --idle_thread_count;
+ runp = runlist;
+ }
+
+ if (runp == NULL)
+ --nthreads;
+ else
+ {
+ assert (runp->running == yes);
+ runp->running = allocated;
+ runlist = runp->next_run;
+
+ /* If we have a request to process, and there's still another in
+ the run list, then we need to either wake up or create a new
+ thread to service the request that is still in the run list. */
+ if (runlist != NULL)
+ {
+ /* There are at least two items in the work queue to work on.
+ If there are other idle threads, then we should wake them
+ up for these other work elements; otherwise, we should try
+ to create a new thread. */
+ if (idle_thread_count > 0)
+ pthread_cond_signal (&__aio_new_request_notification);
+ else if (nthreads < optim.aio_threads)
+ {
+ pthread_t thid;
+ pthread_attr_t attr;
+
+ /* Make sure the thread is created detached. */
+ pthread_attr_init (&attr);
+ pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
+
+ /* Now try to start a thread. If we fail, no big deal,
+ because we know that there is at least one thread (us)
+ that is working on AIO operations. */
+ if (pthread_create (&thid, &attr, handle_fildes_io, NULL)
+ == 0)
+ ++nthreads;
+ }
+ }
+ }
+
+ /* Release the mutex. */
+ pthread_mutex_unlock (&__aio_requests_mutex);
+ }
+ while (runp != NULL);
+
+ return NULL;
+}
+
+
+/* Free allocated resources. */
+libc_freeres_fn (free_res)
+{
+ size_t row;
+
+ for (row = 0; row < pool_max_size; ++row)
+ free (pool[row]);
+
+ free (pool);
+}
+
+
+/* Add newrequest to the runlist. The __abs_prio flag of newrequest must
+ be correctly set to do this. Also, you had better set newrequest's
+ "running" flag to "yes" before you release your lock or you'll throw an
+ assertion. */
+static void
+add_request_to_runlist (struct requestlist *newrequest)
+{
+ int prio = newrequest->aiocbp->aiocb.__abs_prio;
+ struct requestlist *runp;
+
+ if (runlist == NULL || runlist->aiocbp->aiocb.__abs_prio < prio)
+ {
+ newrequest->next_run = runlist;
+ runlist = newrequest;
+ }
+ else
+ {
+ runp = runlist;
+
+ while (runp->next_run != NULL
+ && runp->next_run->aiocbp->aiocb.__abs_prio >= prio)
+ runp = runp->next_run;
+
+ newrequest->next_run = runp->next_run;
+ runp->next_run = newrequest;
+ }
+}
diff --git a/rt/aio_notify.c b/rt/aio_notify.c
index 9d51fd9c5e..a8d61503d8 100644
--- a/rt/aio_notify.c
+++ b/rt/aio_notify.c
@@ -1,6 +1,7 @@
-/* Notify initiator of AIO request. Stub version.
- Copyright (C) 2001-2021 Free Software Foundation, Inc.
+/* Notify initiator of AIO request.
+ Copyright (C) 1997-2021 Free Software Foundation, Inc.
This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -16,8 +17,141 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <aio.h>
+#include <errno.h>
+#include <pthread.h>
+#include <stdlib.h>
+#include <unistd.h>
#include <aio_misc.h>
+#include <signal.h>
-/* This file contains only internal functions used by
- the particular aio_* implementation code. */
+#ifndef aio_start_notify_thread
+# define aio_start_notify_thread() do { } while (0)
+#endif
+
+struct notify_func
+ {
+ void (*func) (sigval_t);
+ sigval_t value;
+ };
+
+static void *
+notify_func_wrapper (void *arg)
+{
+ aio_start_notify_thread ();
+ struct notify_func *const n = arg;
+ void (*func) (sigval_t) = n->func;
+ sigval_t value = n->value;
+ free (n);
+ (*func) (value);
+ return NULL;
+}
+
+
+int
+__aio_notify_only (struct sigevent *sigev)
+{
+ int result = 0;
+
+ /* Send the signal to notify about finished processing of the request. */
+ if (__glibc_unlikely (sigev->sigev_notify == SIGEV_THREAD))
+ {
+ /* We have to start a thread. */
+ pthread_t tid;
+ pthread_attr_t attr, *pattr;
+
+ pattr = (pthread_attr_t *) sigev->sigev_notify_attributes;
+ if (pattr == NULL)
+ {
+ pthread_attr_init (&attr);
+ pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
+ pattr = &attr;
+ }
+
+ /* SIGEV may be freed as soon as we return, so we cannot let the
+ notification thread use that pointer. Even though a sigval_t is
+ only one word and the same size as a void *, we cannot just pass
+ the value through pthread_create as the argument and have the new
+ thread run the user's function directly, because on some machines
+ the calling convention for a union like sigval_t is different from
+ that for a pointer type like void *. */
+ struct notify_func *nf = malloc (sizeof *nf);
+ if (nf == NULL)
+ result = -1;
+ else
+ {
+ nf->func = sigev->sigev_notify_function;
+ nf->value = sigev->sigev_value;
+ if (pthread_create (&tid, pattr, notify_func_wrapper, nf) < 0)
+ {
+ free (nf);
+ result = -1;
+ }
+ }
+ }
+ else if (sigev->sigev_notify == SIGEV_SIGNAL)
+ {
+ /* We have to send a signal. */
+#if _POSIX_REALTIME_SIGNALS > 0
+ /* Note that the standard gives us the option of using a plain
+ non-queuing signal here when SA_SIGINFO is not set for the signal. */
+ if (__aio_sigqueue (sigev->sigev_signo, sigev->sigev_value, getpid ())
+ < 0)
+ result = -1;
+#else
+ /* There are no queued signals on this system at all. */
+ result = raise (sigev->sigev_signo);
+#endif
+ }
+
+ return result;
+}
+
+
+void
+__aio_notify (struct requestlist *req)
+{
+ struct waitlist *waitlist;
+ struct aiocb *aiocbp = &req->aiocbp->aiocb;
+
+ if (__aio_notify_only (&aiocbp->aio_sigevent) != 0)
+ {
+ /* XXX What shall we do if already an error is set by
+ read/write/fsync? */
+ aiocbp->__error_code = errno;
+ aiocbp->__return_value = -1;
+ }
+
+ /* Now also notify possibly waiting threads. */
+ waitlist = req->waiting;
+ while (waitlist != NULL)
+ {
+ struct waitlist *next = waitlist->next;
+
+ if (waitlist->sigevp == NULL)
+ {
+ if (waitlist->result != NULL && aiocbp->__return_value == -1)
+ *waitlist->result = -1;
+
+#ifdef DONT_NEED_AIO_MISC_COND
+ AIO_MISC_NOTIFY (waitlist);
+#else
+ /* Decrement the counter. */
+ --*waitlist->counterp;
+
+ pthread_cond_signal (waitlist->cond);
+#endif
+ }
+ else
+ /* This is part of an asynchronous `lio_listio' operation. If
+ this request is the last one, send the signal. */
+ if (--*waitlist->counterp == 0)
+ {
+ __aio_notify_only (waitlist->sigevp);
+ /* This is tricky. See lio_listio.c for the reason why
+ this works. */
+ free ((void *) waitlist->counterp);
+ }
+
+ waitlist = next;
+ }
+}
diff --git a/rt/aio_read.c b/rt/aio_read.c
index fcd5acea8e..4698e48b1c 100644
--- a/rt/aio_read.c
+++ b/rt/aio_read.c
@@ -1,6 +1,7 @@
-/* Asynchronous read. Stub version.
- Copyright (C) 2001-2021 Free Software Foundation, Inc.
+/* Asynchronous read.
+ Copyright (C) 1997-2021 Free Software Foundation, Inc.
This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -17,18 +18,13 @@
<https://www.gnu.org/licenses/>. */
#include <aio.h>
-#include <errno.h>
-#ifdef BE_AIO64
-#define aiocb aiocb64
-#define aio_read aio_read64
-#endif
+#include <aio_misc.h>
+
int
aio_read (struct aiocb *aiocbp)
{
- __set_errno (ENOSYS);
- return -1;
+ return (__aio_enqueue_request ((aiocb_union *) aiocbp, LIO_READ) == NULL
+ ? -1 : 0);
}
-
-stub_warning (aio_read)
diff --git a/rt/aio_read64.c b/rt/aio_read64.c
index e9994aefcb..26b9b0b380 100644
--- a/rt/aio_read64.c
+++ b/rt/aio_read64.c
@@ -1,2 +1,30 @@
-#define BE_AIO64
-#include <aio_read.c>
+/* Asynchronous read, 64bit offset version.
+ Copyright (C) 1997-2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+ 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 <aio.h>
+
+#include <aio_misc.h>
+
+
+int
+aio_read64 (struct aiocb64 *aiocbp)
+{
+ return (__aio_enqueue_request ((aiocb_union *) aiocbp, LIO_READ64) == NULL
+ ? -1 : 0);
+}
diff --git a/rt/aio_suspend.c b/rt/aio_suspend.c
index 32f5f7e742..6fd5b1bee2 100644
--- a/rt/aio_suspend.c
+++ b/rt/aio_suspend.c
@@ -1,6 +1,7 @@
-/* Suspend until termination of a requests. Stub version.
- Copyright (C) 2001-2021 Free Software Foundation, Inc.
+/* Suspend until termination of a requests.
+ Copyright (C) 1997-2021 Free Software Foundation, Inc.
This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -27,18 +28,236 @@
/* And undo the hack. */
#undef aio_suspend64
+#include <assert.h>
#include <errno.h>
+#include <stdbool.h>
+#include <stdlib.h>
#include <sys/time.h>
+#include <libc-lock.h>
+#include <aio_misc.h>
+
+
+struct clparam
+{
+ const struct aiocb *const *list;
+ struct waitlist *waitlist;
+ struct requestlist **requestlist;
+#ifndef DONT_NEED_AIO_MISC_COND
+ pthread_cond_t *cond;
+#endif
+ int nent;
+};
+
+
+static void
+cleanup (void *arg)
+{
+#ifdef DONT_NEED_AIO_MISC_COND
+ /* Acquire the mutex. If pthread_cond_*wait is used this would
+ happen implicitly. */
+ pthread_mutex_lock (&__aio_requests_mutex);
+#endif
+
+ const struct clparam *param = (const struct clparam *) arg;
+
+ /* Now remove the entry in the waiting list for all requests
+ which didn't terminate. */
+ int cnt = param->nent;
+ while (cnt-- > 0)
+ if (param->list[cnt] != NULL
+ && param->list[cnt]->__error_code == EINPROGRESS)
+ {
+ struct waitlist **listp;
+
+ assert (param->requestlist[cnt] != NULL);
+
+ /* There is the chance that we cannot find our entry anymore. This
+ could happen if the request terminated and restarted again. */
+ listp = ¶m->requestlist[cnt]->waiting;
+ while (*listp != NULL && *listp != ¶m->waitlist[cnt])
+ listp = &(*listp)->next;
+
+ if (*listp != NULL)
+ *listp = (*listp)->next;
+ }
+
+#ifndef DONT_NEED_AIO_MISC_COND
+ /* Release the conditional variable. */
+ (void) pthread_cond_destroy (param->cond);
+#endif
+
+ /* Release the mutex. */
+ pthread_mutex_unlock (&__aio_requests_mutex);
+}
+
+#ifdef DONT_NEED_AIO_MISC_COND
+static int
+__attribute__ ((noinline))
+do_aio_misc_wait (unsigned int *cntr, const struct __timespec64 *timeout)
+{
+ int result = 0;
+
+ AIO_MISC_WAIT (result, *cntr, timeout, 1);
+
+ return result;
+}
+#endif
int
-aio_suspend (const struct aiocb *const list[], int nent,
- const struct timespec *timeout)
+__aio_suspend_time64 (const struct aiocb *const list[], int nent,
+ const struct __timespec64 *timeout)
{
- __set_errno (ENOSYS);
- return -1;
+ if (__glibc_unlikely (nent < 0))
+ {
+ __set_errno (EINVAL);
+ return -1;
+ }
+
+ struct waitlist waitlist[nent];
+ struct requestlist *requestlist[nent];
+#ifndef DONT_NEED_AIO_MISC_COND
+ pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
+#endif
+ int cnt;
+ bool any = false;
+ int result = 0;
+ unsigned int cntr = 1;
+
+ /* Request the mutex. */
+ pthread_mutex_lock (&__aio_requests_mutex);
+
+ /* There is not yet a finished request. Signal the request that
+ we are working for it. */
+ for (cnt = 0; cnt < nent; ++cnt)
+ if (list[cnt] != NULL)
+ {
+ if (list[cnt]->__error_code == EINPROGRESS)
+ {
+ requestlist[cnt] = __aio_find_req ((aiocb_union *) list[cnt]);
+
+ if (requestlist[cnt] != NULL)
+ {
+#ifndef DONT_NEED_AIO_MISC_COND
+ waitlist[cnt].cond = &cond;
+#endif
+ waitlist[cnt].result = NULL;
+ waitlist[cnt].next = requestlist[cnt]->waiting;
+ waitlist[cnt].counterp = &cntr;
+ waitlist[cnt].sigevp = NULL;
+ requestlist[cnt]->waiting = &waitlist[cnt];
+ any = true;
+ }
+ else
+ /* We will never suspend. */
+ break;
+ }
+ else
+ /* We will never suspend. */
+ break;
+ }
+
+ struct __timespec64 ts;
+ if (timeout != NULL)
+ {
+ __clock_gettime64 (CLOCK_MONOTONIC, &ts);
+ ts.tv_sec += timeout->tv_sec;
+ ts.tv_nsec += timeout->tv_nsec;
+ if (ts.tv_nsec >= 1000000000)
+ {
+ ts.tv_nsec -= 1000000000;
+ ts.tv_sec++;
+ }
+ }
+
+ /* Only if none of the entries is NULL or finished to be wait. */
+ if (cnt == nent && any)
+ {
+ struct clparam clparam =
+ {
+ .list = list,
+ .waitlist = waitlist,
+ .requestlist = requestlist,
+#ifndef DONT_NEED_AIO_MISC_COND
+ .cond = &cond,
+#endif
+ .nent = nent
+ };
+
+ pthread_cleanup_push (cleanup, &clparam);
+
+#ifdef DONT_NEED_AIO_MISC_COND
+ result = do_aio_misc_wait (&cntr, timeout == NULL ? NULL : &ts);
+#else
+ struct timespec ts32 = valid_timespec64_to_timespec (ts);
+ result = pthread_cond_timedwait (&cond, &__aio_requests_mutex,
+ timeout == NULL ? NULL : &ts32);
+#endif
+
+ pthread_cleanup_pop (0);
+ }
+
+ /* Now remove the entry in the waiting list for all requests
+ which didn't terminate. */
+ while (cnt-- > 0)
+ if (list[cnt] != NULL && list[cnt]->__error_code == EINPROGRESS)
+ {
+ struct waitlist **listp;
+
+ assert (requestlist[cnt] != NULL);
+
+ /* There is the chance that we cannot find our entry anymore. This
+ could happen if the request terminated and restarted again. */
+ listp = &requestlist[cnt]->waiting;
+ while (*listp != NULL && *listp != &waitlist[cnt])
+ listp = &(*listp)->next;
+
+ if (*listp != NULL)
+ *listp = (*listp)->next;
+ }
+
+#ifndef DONT_NEED_AIO_MISC_COND
+ /* Release the conditional variable. */
+ if (__glibc_unlikely (pthread_cond_destroy (&cond) != 0))
+ /* This must never happen. */
+ abort ();
+#endif
+
+ if (result != 0)
+ {
+#ifndef DONT_NEED_AIO_MISC_COND
+ /* An error occurred. Possibly it's ETIMEDOUT. We have to translate
+ the timeout error report of `pthread_cond_timedwait' to the
+ form expected from `aio_suspend'. */
+ if (result == ETIMEDOUT)
+ __set_errno (EAGAIN);
+ else
+#endif
+ __set_errno (result);
+
+ result = -1;
+ }
+
+ /* Release the mutex. */
+ pthread_mutex_unlock (&__aio_requests_mutex);
+
+ return result;
}
-weak_alias (aio_suspend, aio_suspend64)
-stub_warning (aio_suspend)
-stub_warning (aio_suspend64)
+#if __TIMESIZE != 64
+librt_hidden_def (__aio_suspend_time64)
+
+int
+__aio_suspend (const struct aiocb *const list[], int nent,
+ const struct timespec *timeout)
+{
+ struct __timespec64 ts64;
+
+ if (timeout != NULL)
+ ts64 = valid_timespec_to_timespec64 (*timeout);
+
+ return __aio_suspend_time64 (list, nent, timeout != NULL ? &ts64 : NULL);
+}
+#endif
+weak_alias (__aio_suspend, aio_suspend)
+weak_alias (aio_suspend, aio_suspend64)
diff --git a/rt/aio_write.c b/rt/aio_write.c
index 18a338e094..ea55f0dbbc 100644
--- a/rt/aio_write.c
+++ b/rt/aio_write.c
@@ -1,6 +1,7 @@
-/* Asynchronous write. Stub version.
- Copyright (C) 2001-2021 Free Software Foundation, Inc.
+/* Asynchronous write.
+ Copyright (C) 1997-2021 Free Software Foundation, Inc.
This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -17,18 +18,13 @@
<https://www.gnu.org/licenses/>. */
#include <aio.h>
-#include <errno.h>
-#ifdef BE_AIO64
-#define aiocb aiocb64
-#define aio_write aio_write64
-#endif
+#include <aio_misc.h>
+
int
aio_write (struct aiocb *aiocbp)
{
- __set_errno (ENOSYS);
- return -1;
+ return (__aio_enqueue_request ((aiocb_union *) aiocbp, LIO_WRITE) == NULL
+ ? -1 : 0);
}
-
-stub_warning (aio_write)
diff --git a/rt/aio_write64.c b/rt/aio_write64.c
index 88d5c001ce..bd6dd316be 100644
--- a/rt/aio_write64.c
+++ b/rt/aio_write64.c
@@ -1,2 +1,30 @@
-#define BE_AIO64
-#include <aio_write.c>
+/* Asynchronous write, 64bit offset version.
+ Copyright (C) 1997-2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+ 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 <aio.h>
+
+#include <aio_misc.h>
+
+
+int
+aio_write64 (struct aiocb64 *aiocbp)
+{
+ return (__aio_enqueue_request ((aiocb_union *) aiocbp, LIO_WRITE64) == NULL
+ ? -1 : 0);
+}
diff --git a/rt/lio_listio.c b/rt/lio_listio.c
index db4ce68afc..2cab3c2254 100644
--- a/rt/lio_listio.c
+++ b/rt/lio_listio.c
@@ -1,6 +1,7 @@
-/* Enqueue a list of read or write requests. Stub version.
- Copyright (C) 2001-2021 Free Software Foundation, Inc.
+/* Enqueue and list of read or write requests.
+ Copyright (C) 1997-2021 Free Software Foundation, Inc.
This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -16,25 +17,232 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
+#ifndef lio_listio
#include <aio.h>
+#include <assert.h>
#include <errno.h>
+#include <stdlib.h>
+#include <unistd.h>
-#ifdef BE_AIO64
-#define lio_listio lio_listio64
-#define aiocb aiocb64
-#define aio_read aio_read64
-#define aio_write aio_write64
-#define aio_suspend aio_suspend64
+#include <aio_misc.h>
+
+#define LIO_OPCODE_BASE 0
+#endif
+
+#include <shlib-compat.h>
+
+
+/* We need this special structure to handle asynchronous I/O. */
+struct async_waitlist
+ {
+ unsigned int counter;
+ struct sigevent sigev;
+ struct waitlist list[0];
+ };
+
+
+/* The code in glibc 2.1 to glibc 2.4 issued only one event when all
+ requests submitted with lio_listio finished. The existing practice
+ is to issue events for the individual requests as well. This is
+ what the new code does. */
+#if SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_4)
+# define LIO_MODE(mode) ((mode) & 127)
+# define NO_INDIVIDUAL_EVENT_P(mode) ((mode) & 128)
+#else
+# define LIO_MODE(mode) mode
+# define NO_INDIVIDUAL_EVENT_P(mode) 0
+#endif
+
+
+static int
+lio_listio_internal (int mode, struct aiocb *const list[], int nent,
+ struct sigevent *sig)
+{
+ struct sigevent defsigev;
+ struct requestlist *requests[nent];
+ int cnt;
+ volatile unsigned int total = 0;
+ int result = 0;
+
+ if (sig == NULL)
+ {
+ defsigev.sigev_notify = SIGEV_NONE;
+ sig = &defsigev;
+ }
+
+ /* Request the mutex. */
+ pthread_mutex_lock (&__aio_requests_mutex);
+
+ /* Now we can enqueue all requests. Since we already acquired the
+ mutex the enqueue function need not do this. */
+ for (cnt = 0; cnt < nent; ++cnt)
+ if (list[cnt] != NULL && list[cnt]->aio_lio_opcode != LIO_NOP)
+ {
+ if (NO_INDIVIDUAL_EVENT_P (mode))
+ list[cnt]->aio_sigevent.sigev_notify = SIGEV_NONE;
+
+ requests[cnt] = __aio_enqueue_request ((aiocb_union *) list[cnt],
+ (list[cnt]->aio_lio_opcode
+ | LIO_OPCODE_BASE));
+
+ if (requests[cnt] != NULL)
+ /* Successfully enqueued. */
+ ++total;
+ else
+ /* Signal that we've seen an error. `errno' and the error code
+ of the aiocb will tell more. */
+ result = -1;
+ }
+ else
+ requests[cnt] = NULL;
+
+ if (total == 0)
+ {
+ /* We don't have anything to do except signalling if we work
+ asynchronously. */
+
+ /* Release the mutex. We do this before raising a signal since the
+ signal handler might do a `siglongjmp' and then the mutex is
+ locked forever. */
+ pthread_mutex_unlock (&__aio_requests_mutex);
+
+ if (LIO_MODE (mode) == LIO_NOWAIT)
+ __aio_notify_only (sig);
+
+ return result;
+ }
+ else if (LIO_MODE (mode) == LIO_WAIT)
+ {
+#ifndef DONT_NEED_AIO_MISC_COND
+ pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
+ int oldstate;
+#endif
+ struct waitlist waitlist[nent];
+
+ total = 0;
+ for (cnt = 0; cnt < nent; ++cnt)
+ {
+ assert (requests[cnt] == NULL || list[cnt] != NULL);
+
+ if (requests[cnt] != NULL && list[cnt]->aio_lio_opcode != LIO_NOP)
+ {
+#ifndef DONT_NEED_AIO_MISC_COND
+ waitlist[cnt].cond = &cond;
#endif
+ waitlist[cnt].result = &result;
+ waitlist[cnt].next = requests[cnt]->waiting;
+ waitlist[cnt].counterp = &total;
+ waitlist[cnt].sigevp = NULL;
+ requests[cnt]->waiting = &waitlist[cnt];
+ ++total;
+ }
+ }
+#ifdef DONT_NEED_AIO_MISC_COND
+ AIO_MISC_WAIT (result, total, NULL, 0);
+#else
+ /* Since `pthread_cond_wait'/`pthread_cond_timedwait' are cancellation
+ points we must be careful. We added entries to the waiting lists
+ which we must remove. So defer cancellation for now. */
+ pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, &oldstate);
+ while (total > 0)
+ pthread_cond_wait (&cond, &__aio_requests_mutex);
+
+ /* Now it's time to restore the cancellation state. */
+ pthread_setcancelstate (oldstate, NULL);
+
+ /* Release the conditional variable. */
+ if (pthread_cond_destroy (&cond) != 0)
+ /* This must never happen. */
+ abort ();
+#endif
+
+ /* If any of the I/O requests failed, return -1 and set errno. */
+ if (result != 0)
+ {
+ __set_errno (result == EINTR ? EINTR : EIO);
+ result = -1;
+ }
+ }
+ else
+ {
+ struct async_waitlist *waitlist;
+
+ waitlist = (struct async_waitlist *)
+ malloc (sizeof (struct async_waitlist)
+ + (nent * sizeof (struct waitlist)));
+
+ if (waitlist == NULL)
+ {
+ __set_errno (EAGAIN);
+ result = -1;
+ }
+ else
+ {
+ total = 0;
+
+ for (cnt = 0; cnt < nent; ++cnt)
+ {
+ assert (requests[cnt] == NULL || list[cnt] != NULL);
+
+ if (requests[cnt] != NULL
+ && list[cnt]->aio_lio_opcode != LIO_NOP)
+ {
+#ifndef DONT_NEED_AIO_MISC_COND
+ waitlist->list[cnt].cond = NULL;
+#endif
+ waitlist->list[cnt].result = NULL;
+ waitlist->list[cnt].next = requests[cnt]->waiting;
+ waitlist->list[cnt].counterp = &waitlist->counter;
+ waitlist->list[cnt].sigevp = &waitlist->sigev;
+ requests[cnt]->waiting = &waitlist->list[cnt];
+ ++total;
+ }
+ }
+
+ waitlist->counter = total;
+ waitlist->sigev = *sig;
+ }
+ }
+
+ /* Release the mutex. */
+ pthread_mutex_unlock (&__aio_requests_mutex);
+
+ return result;
+}
+
+
+#if SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_4)
int
-lio_listio (int mode,
- struct aiocb *const list[], int nent,
- struct sigevent *sig)
+attribute_compat_text_section
+__lio_listio_21 (int mode, struct aiocb *const list[], int nent,
+ struct sigevent *sig)
{
- __set_errno (ENOSYS);
- return -1;
+ /* Check arguments. */
+ if (mode != LIO_WAIT && mode != LIO_NOWAIT)
+ {
+ __set_errno (EINVAL);
+ return -1;
+ }
+
+ return lio_listio_internal (mode | LIO_NO_INDIVIDUAL_EVENT, list, nent, sig);
}
+compat_symbol (librt, __lio_listio_21, lio_listio, GLIBC_2_1);
+#endif
-stub_warning (lio_listio)
+
+int
+__lio_listio_item_notify (int mode, struct aiocb *const list[], int nent,
+ struct sigevent *sig)
+{
+ /* Check arguments. */
+ if (mode != LIO_WAIT && mode != LIO_NOWAIT)
+ {
+ __set_errno (EINVAL);
+ return -1;
+ }
+
+ return lio_listio_internal (mode, list, nent, sig);
+}
+versioned_symbol (librt, __lio_listio_item_notify, lio_listio, GLIBC_2_4);
diff --git a/rt/lio_listio64.c b/rt/lio_listio64.c
index 35a571c685..111c883a2f 100644
--- a/rt/lio_listio64.c
+++ b/rt/lio_listio64.c
@@ -1,2 +1,33 @@
-#define BE_AIO64
+/* Enqueue and list of read or write requests, 64bit offset version.
+ Copyright (C) 1997-2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+ 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 <aio.h>
+#include <assert.h>
+#include <errno.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#include <aio_misc.h>
+
+#define lio_listio lio_listio64
+#define __lio_listio_21 __lio_listio64_21
+#define __lio_listio_item_notify __lio_listio64_item_notify
+#define aiocb aiocb64
+#define LIO_OPCODE_BASE 128
#include <lio_listio.c>
diff --git a/rt/timer_create.c b/rt/timer_create.c
index 79d4d18317..2808f5b32b 100644
--- a/rt/timer_create.c
+++ b/rt/timer_create.c
@@ -1,10 +1,11 @@
-/* Copyright (C) 1999-2021 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2021 Free Software Foundation, Inc.
This file is part of the GNU C Library.
+ Contributed by Kaz Kylheku <kaz@ashi.footprints.net>.
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.
+ 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
@@ -12,17 +13,154 @@
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/>. */
+ License along with the GNU C Library; see the file COPYING.LIB. If
+ not, see <https://www.gnu.org/licenses/>. */
#include <errno.h>
+#include <signal.h>
+#include <pthread.h>
#include <time.h>
+#include <unistd.h>
+
+#include "posix-timer.h"
+
/* Create new per-process timer using CLOCK. */
int
timer_create (clockid_t clock_id, struct sigevent *evp, timer_t *timerid)
{
- __set_errno (ENOSYS);
- return -1;
+ int retval = -1;
+ struct timer_node *newtimer = NULL;
+ struct thread_node *thread = NULL;
+
+ if (0
+#if defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0
+ || clock_id == CLOCK_PROCESS_CPUTIME_ID
+#endif
+#if defined _POSIX_THREAD_CPUTIME && _POSIX_THREAD_CPUTIME >= 0
+ || clock_id == CLOCK_THREAD_CPUTIME_ID
+#endif
+ )
+ {
+ /* We don't allow timers for CPU clocks. At least not in the
+ moment. */
+ __set_errno (ENOTSUP);
+ return -1;
+ }
+
+ if (clock_id != CLOCK_REALTIME)
+ {
+ __set_errno (EINVAL);
+ return -1;
+ }
+
+ pthread_once (&__timer_init_once_control, __timer_init_once);
+
+ if (__timer_init_failed)
+ {
+ __set_errno (ENOMEM);
+ return -1;
+ }
+
+ pthread_mutex_lock (&__timer_mutex);
+
+ newtimer = __timer_alloc ();
+ if (__glibc_unlikely (newtimer == NULL))
+ {
+ __set_errno (EAGAIN);
+ goto unlock_bail;
+ }
+
+ if (evp != NULL)
+ newtimer->event = *evp;
+ else
+ {
+ newtimer->event.sigev_notify = SIGEV_SIGNAL;
+ newtimer->event.sigev_signo = SIGALRM;
+ newtimer->event.sigev_value.sival_ptr = newtimer;
+ newtimer->event.sigev_notify_function = 0;
+ }
+
+ newtimer->event.sigev_notify_attributes = &newtimer->attr;
+ newtimer->creator_pid = getpid ();
+
+ switch (__builtin_expect (newtimer->event.sigev_notify, SIGEV_SIGNAL))
+ {
+ case SIGEV_NONE:
+ case SIGEV_SIGNAL:
+ /* We have a global thread for delivering timed signals.
+ If it is not running, try to start it up. */
+ thread = &__timer_signal_thread_rclk;
+ if (! thread->exists)
+ {
+ if (__builtin_expect (__timer_thread_start (thread),
+ 1) < 0)
+ {
+ __set_errno (EAGAIN);
+ goto unlock_bail;
+ }
+ }
+ break;
+
+ case SIGEV_THREAD:
+ /* Copy over thread attributes or set up default ones. */
+ if (evp->sigev_notify_attributes)
+ newtimer->attr = *(pthread_attr_t *) evp->sigev_notify_attributes;
+ else
+ pthread_attr_init (&newtimer->attr);
+
+ /* Ensure thread attributes call for deatched thread. */
+ pthread_attr_setdetachstate (&newtimer->attr, PTHREAD_CREATE_DETACHED);
+
+ /* Try to find existing thread having the right attributes. */
+ thread = __timer_thread_find_matching (&newtimer->attr, clock_id);
+
+ /* If no existing thread has these attributes, try to allocate one. */
+ if (thread == NULL)
+ thread = __timer_thread_alloc (&newtimer->attr, clock_id);
+
+ /* Out of luck; no threads are available. */
+ if (__glibc_unlikely (thread == NULL))
+ {
+ __set_errno (EAGAIN);
+ goto unlock_bail;
+ }
+
+ /* If the thread is not running already, try to start it. */
+ if (! thread->exists
+ && __builtin_expect (! __timer_thread_start (thread), 0))
+ {
+ __set_errno (EAGAIN);
+ goto unlock_bail;
+ }
+ break;
+
+ default:
+ __set_errno (EINVAL);
+ goto unlock_bail;
+ }
+
+ newtimer->clock = clock_id;
+ newtimer->abstime = 0;
+ newtimer->armed = 0;
+ newtimer->thread = thread;
+
+ *timerid = timer_ptr2id (newtimer);
+ retval = 0;
+
+ if (__builtin_expect (retval, 0) == -1)
+ {
+ unlock_bail:
+ if (thread != NULL)
+ __timer_thread_dealloc (thread);
+ if (newtimer != NULL)
+ {
+ timer_delref (newtimer);
+ __timer_dealloc (newtimer);
+ }
+ }
+
+ pthread_mutex_unlock (&__timer_mutex);
+
+ return retval;
}
-stub_warning (timer_create)
diff --git a/rt/timer_delete.c b/rt/timer_delete.c
index 71da429e8b..c6f6d9743d 100644
--- a/rt/timer_delete.c
+++ b/rt/timer_delete.c
@@ -1,10 +1,11 @@
-/* Copyright (C) 1999-2021 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2021 Free Software Foundation, Inc.
This file is part of the GNU C Library.
+ Contributed by Kaz Kylheku <kaz@ashi.footprints.net>.
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.
+ 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
@@ -12,17 +13,56 @@
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/>. */
+ License along with the GNU C Library; see the file COPYING.LIB. If
+ not, see <https://www.gnu.org/licenses/>. */
+#include <assert.h>
#include <errno.h>
+#include <pthread.h>
#include <time.h>
+#include "posix-timer.h"
+
+
/* Delete timer TIMERID. */
int
timer_delete (timer_t timerid)
{
- __set_errno (ENOSYS);
- return -1;
+ struct timer_node *timer;
+ int retval = -1;
+
+ pthread_mutex_lock (&__timer_mutex);
+
+ timer = timer_id2ptr (timerid);
+ if (! timer_valid (timer))
+ /* Invalid timer ID or the timer is not in use. */
+ __set_errno (EINVAL);
+ else
+ {
+ if (timer->armed && timer->thread != NULL)
+ {
+ struct thread_node *thread = timer->thread;
+ assert (thread != NULL);
+
+ /* If thread is cancelled while waiting for handler to terminate,
+ the mutex is unlocked and timer_delete is aborted. */
+ pthread_cleanup_push (__timer_mutex_cancel_handler, &__timer_mutex);
+
+ /* If timer is currently being serviced, wait for it to finish. */
+ while (thread->current_timer == timer)
+ pthread_cond_wait (&thread->cond, &__timer_mutex);
+
+ pthread_cleanup_pop (0);
+ }
+
+ /* Remove timer from whatever queue it may be on and deallocate it. */
+ timer->inuse = TIMER_DELETED;
+ list_unlink_ip (&timer->links);
+ timer_delref (timer);
+ retval = 0;
+ }
+
+ pthread_mutex_unlock (&__timer_mutex);
+
+ return retval;
}
-stub_warning (timer_delete)
diff --git a/rt/timer_getoverr.c b/rt/timer_getoverr.c
index 3680ba687f..c1952f80c6 100644
--- a/rt/timer_getoverr.c
+++ b/rt/timer_getoverr.c
@@ -1,10 +1,11 @@
-/* Copyright (C) 1999-2021 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2021 Free Software Foundation, Inc.
This file is part of the GNU C Library.
+ Contributed by Kaz Kylheku <kaz@ashi.footprints.net>.
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.
+ 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
@@ -12,17 +13,31 @@
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/>. */
+ License along with the GNU C Library; see the file COPYING.LIB. If
+ not, see <https://www.gnu.org/licenses/>. */
#include <errno.h>
+#include <pthread.h>
#include <time.h>
+#include "posix-timer.h"
+
+
/* Get expiration overrun for timer TIMERID. */
int
timer_getoverrun (timer_t timerid)
{
- __set_errno (ENOSYS);
- return -1;
+ struct timer_node *timer;
+ int retval = -1;
+
+ pthread_mutex_lock (&__timer_mutex);
+
+ if (! timer_valid (timer = timer_id2ptr (timerid)))
+ __set_errno (EINVAL);
+ else
+ retval = timer->overrun_count;
+
+ pthread_mutex_unlock (&__timer_mutex);
+
+ return retval;
}
-stub_warning (timer_getoverrun)
diff --git a/rt/timer_gettime.c b/rt/timer_gettime.c
index 7bd94386a4..dd3b4a6281 100644
--- a/rt/timer_gettime.c
+++ b/rt/timer_gettime.c
@@ -1,10 +1,11 @@
-/* Copyright (C) 1999-2021 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2021 Free Software Foundation, Inc.
This file is part of the GNU C Library.
+ Contributed by Kaz Kylheku <kaz@ashi.footprints.net>.
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.
+ 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
@@ -12,17 +13,62 @@
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/>. */
+ License along with the GNU C Library; see the file COPYING.LIB. If
+ not, see <https://www.gnu.org/licenses/>. */
#include <errno.h>
+#include <pthread.h>
#include <time.h>
+#include "posix-timer.h"
+
+
/* Get current value of timer TIMERID and store it in VLAUE. */
int
timer_gettime (timer_t timerid, struct itimerspec *value)
{
- __set_errno (ENOSYS);
- return -1;
+ struct timer_node *timer;
+ struct timespec now, expiry;
+ int retval = -1, armed = 0, valid;
+ clock_t clock = 0;
+
+ pthread_mutex_lock (&__timer_mutex);
+
+ timer = timer_id2ptr (timerid);
+ valid = timer_valid (timer);
+
+ if (valid) {
+ armed = timer->armed;
+ expiry = timer->expirytime;
+ clock = timer->clock;
+ value->it_interval = timer->value.it_interval;
+ }
+
+ pthread_mutex_unlock (&__timer_mutex);
+
+ if (valid)
+ {
+ if (armed)
+ {
+ __clock_gettime (clock, &now);
+ if (timespec_compare (&now, &expiry) < 0)
+ timespec_sub (&value->it_value, &expiry, &now);
+ else
+ {
+ value->it_value.tv_sec = 0;
+ value->it_value.tv_nsec = 0;
+ }
+ }
+ else
+ {
+ value->it_value.tv_sec = 0;
+ value->it_value.tv_nsec = 0;
+ }
+
+ retval = 0;
+ }
+ else
+ __set_errno (EINVAL);
+
+ return retval;
}
-stub_warning (timer_gettime)
diff --git a/rt/timer_settime.c b/rt/timer_settime.c
index cde0e742fc..c05adf166f 100644
--- a/rt/timer_settime.c
+++ b/rt/timer_settime.c
@@ -1,10 +1,11 @@
-/* Copyright (C) 1999-2021 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2021 Free Software Foundation, Inc.
This file is part of the GNU C Library.
+ Contributed by Kaz Kylheku <kaz@ashi.footprints.net>.
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.
+ 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
@@ -12,18 +13,119 @@
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/>. */
+ License along with the GNU C Library; see the file COPYING.LIB. If
+ not, see <https://www.gnu.org/licenses/>. */
#include <errno.h>
+#include <pthread.h>
#include <time.h>
+#include "posix-timer.h"
+
+
/* Set timer TIMERID to VALUE, returning old value in OVLAUE. */
int
timer_settime (timer_t timerid, int flags, const struct itimerspec *value,
struct itimerspec *ovalue)
{
- __set_errno (ENOSYS);
- return -1;
+ struct timer_node *timer;
+ struct thread_node *thread = NULL;
+ struct timespec now;
+ int have_now = 0, need_wakeup = 0;
+ int retval = -1;
+
+ timer = timer_id2ptr (timerid);
+ if (timer == NULL)
+ {
+ __set_errno (EINVAL);
+ goto bail;
+ }
+
+ if (! valid_nanoseconds (value->it_interval.tv_nsec)
+ || ! valid_nanoseconds (value->it_value.tv_nsec))
+ {
+ __set_errno (EINVAL);
+ goto bail;
+ }
+
+ /* Will need to know current time since this is a relative timer;
+ might as well make the system call outside of the lock now! */
+
+ if ((flags & TIMER_ABSTIME) == 0)
+ {
+ __clock_gettime (timer->clock, &now);
+ have_now = 1;
+ }
+
+ pthread_mutex_lock (&__timer_mutex);
+ timer_addref (timer);
+
+ /* One final check of timer validity; this one is possible only
+ until we have the mutex, because it accesses the inuse flag. */
+
+ if (! timer_valid(timer))
+ {
+ __set_errno (EINVAL);
+ goto unlock_bail;
+ }
+
+ if (ovalue != NULL)
+ {
+ ovalue->it_interval = timer->value.it_interval;
+
+ if (timer->armed)
+ {
+ if (! have_now)
+ {
+ pthread_mutex_unlock (&__timer_mutex);
+ __clock_gettime (timer->clock, &now);
+ have_now = 1;
+ pthread_mutex_lock (&__timer_mutex);
+ timer_addref (timer);
+ }
+
+ timespec_sub (&ovalue->it_value, &timer->expirytime, &now);
+ }
+ else
+ {
+ ovalue->it_value.tv_sec = 0;
+ ovalue->it_value.tv_nsec = 0;
+ }
+ }
+
+ timer->value = *value;
+
+ list_unlink_ip (&timer->links);
+ timer->armed = 0;
+
+ thread = timer->thread;
+
+ /* A value of { 0, 0 } causes the timer to be stopped. */
+ if (value->it_value.tv_sec != 0
+ || __builtin_expect (value->it_value.tv_nsec != 0, 1))
+ {
+ if ((flags & TIMER_ABSTIME) != 0)
+ /* The user specified the expiration time. */
+ timer->expirytime = value->it_value;
+ else
+ timespec_add (&timer->expirytime, &now, &value->it_value);
+
+ /* Only need to wake up the thread if timer is inserted
+ at the head of the queue. */
+ if (thread != NULL)
+ need_wakeup = __timer_thread_queue_timer (thread, timer);
+ timer->armed = 1;
+ }
+
+ retval = 0;
+
+unlock_bail:
+ timer_delref (timer);
+ pthread_mutex_unlock (&__timer_mutex);
+
+bail:
+ if (thread != NULL && need_wakeup)
+ __timer_thread_wakeup (thread);
+
+ return retval;
}
-stub_warning (timer_settime)
diff --git a/sysdeps/generic/aio_misc.h b/sysdeps/generic/aio_misc.h
index 1307d822a0..e23524cffe 100644
--- a/sysdeps/generic/aio_misc.h
+++ b/sysdeps/generic/aio_misc.h
@@ -1,5 +1,4 @@
-/* Internal declarations for <aio.h> functions implementation. Stub version.
- Copyright (C) 2001-2021 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -20,17 +19,19 @@
#define _AIO_MISC_H 1
#include <aio.h>
+#include <pthread.h>
/* Extend the operation enum. */
enum
{
- LIO_DSYNC = LIO_READ + 1,
+ LIO_DSYNC = LIO_NOP + 1,
LIO_SYNC,
LIO_READ64 = LIO_READ | 128,
LIO_WRITE64 = LIO_WRITE | 128
};
+
/* Union of the two request types. */
typedef union
{
@@ -39,9 +40,83 @@ typedef union
} aiocb_union;
+/* Used to synchronize. */
+struct waitlist
+ {
+ struct waitlist *next;
+
+ /* The next two fields is used in synchronous `lio_listio' operations. */
+#ifndef DONT_NEED_AIO_MISC_COND
+ pthread_cond_t *cond;
+#endif
+ int *result;
+
+ volatile unsigned int *counterp;
+ /* The next field is used in asynchronous `lio_listio' operations. */
+ struct sigevent *sigevp;
+ };
+
+
+/* Status of a request. */
+enum
+{
+ no,
+ queued,
+ yes,
+ allocated,
+ done
+};
+
+
+/* Used to queue requests.. */
+struct requestlist
+ {
+ int running;
+
+ struct requestlist *last_fd;
+ struct requestlist *next_fd;
+ struct requestlist *next_prio;
+ struct requestlist *next_run;
+
+ /* Pointer to the actual data. */
+ aiocb_union *aiocbp;
+
+ /* List of waiting processes. */
+ struct waitlist *waiting;
+ };
+
+
+/* Lock for global I/O list of requests. */
+extern pthread_mutex_t __aio_requests_mutex attribute_hidden;
+
+
+/* Enqueue request. */
+extern struct requestlist *__aio_enqueue_request (aiocb_union *aiocbp,
+ int operation)
+ attribute_hidden;
+
+/* Find request entry for given AIO control block. */
+extern struct requestlist *__aio_find_req (aiocb_union *elem) attribute_hidden;
+
+/* Find request entry for given file descriptor. */
+extern struct requestlist *__aio_find_req_fd (int fildes) attribute_hidden;
+
+/* Remove request from the list. */
+extern void __aio_remove_request (struct requestlist *last,
+ struct requestlist *req, int all)
+ attribute_hidden;
+
+/* Release the entry for the request. */
+extern void __aio_free_request (struct requestlist *req) attribute_hidden;
+
+/* Notify initiator of request and tell this everybody listening. */
+extern void __aio_notify (struct requestlist *req) attribute_hidden;
+
+/* Notify initiator of request. */
+extern int __aio_notify_only (struct sigevent *sigev) attribute_hidden;
+
/* Send the signal. */
extern int __aio_sigqueue (int sig, const union sigval val, pid_t caller_pid)
attribute_hidden;
-
#endif /* aio_misc.h */
diff --git a/sysdeps/pthread/timer_routines.c b/sysdeps/htl/timer_routines.c
similarity index 100%
rename from sysdeps/pthread/timer_routines.c
rename to sysdeps/htl/timer_routines.c
diff --git a/sysdeps/pthread/Versions b/sysdeps/pthread/Versions
deleted file mode 100644
index a71cffbed4..0000000000
--- a/sysdeps/pthread/Versions
+++ /dev/null
@@ -1,5 +0,0 @@
-librt {
- GLIBC_2.4 {
- lio_listio; lio_listio64;
- }
-}
diff --git a/sysdeps/pthread/aio_cancel.c b/sysdeps/pthread/aio_cancel.c
deleted file mode 100644
index 63fd88f36c..0000000000
--- a/sysdeps/pthread/aio_cancel.c
+++ /dev/null
@@ -1,157 +0,0 @@
-/* Cancel requests associated with given file descriptor.
- Copyright (C) 1997-2021 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
-
- 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/>. */
-
-
-/* We use an UGLY hack to prevent gcc from finding us cheating. The
- implementation of aio_cancel and aio_cancel64 are identical and so
- we want to avoid code duplication by using aliases. But gcc sees
- the different parameter lists and prints a warning. We define here
- a function so that aio_cancel64 has no prototype. */
-#ifndef aio_cancel
-#define aio_cancel64 XXX
-#include <aio.h>
-/* And undo the hack. */
-#undef aio_cancel64
-#endif
-
-#include <assert.h>
-#include <errno.h>
-#include <fcntl.h>
-
-#include <aio_misc.h>
-
-
-int
-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)
- {
- __set_errno (EBADF);
- return -1;
- }
-
- /* Request the mutex. */
- pthread_mutex_lock (&__aio_requests_mutex);
-
- /* We are asked to cancel a specific AIO request. */
- if (aiocbp != NULL)
- {
- /* If the AIO request is not for this descriptor it has no value
- to look for the request block. */
- if (aiocbp->aio_fildes != fildes)
- {
- pthread_mutex_unlock (&__aio_requests_mutex);
- __set_errno (EINVAL);
- return -1;
- }
- else if (aiocbp->__error_code == EINPROGRESS)
- {
- struct requestlist *last = NULL;
-
- req = __aio_find_req_fd (fildes);
-
- if (req == NULL)
- {
- not_found:
- pthread_mutex_unlock (&__aio_requests_mutex);
- __set_errno (EINVAL);
- return -1;
- }
-
- while (req->aiocbp != (aiocb_union *) aiocbp)
- {
- last = req;
- req = req->next_prio;
- if (req == NULL)
- goto not_found;
- }
-
- /* Don't remove the entry if a thread is already working on it. */
- if (req->running == allocated)
- {
- result = AIO_NOTCANCELED;
- req = NULL;
- }
- else
- {
- /* We can remove the entry. */
- __aio_remove_request (last, req, 0);
-
- result = AIO_CANCELED;
-
- req->next_prio = NULL;
- }
- }
- }
- else
- {
- /* Find the beginning of the list of all requests for this
- desriptor. */
- req = __aio_find_req_fd (fildes);
-
- /* If any request is worked on by a thread it must be the first.
- So either we can delete all requests or all but the first. */
- if (req != NULL)
- {
- if (req->running == allocated)
- {
- struct requestlist *old = req;
- req = req->next_prio;
- old->next_prio = NULL;
-
- result = AIO_NOTCANCELED;
-
- if (req != NULL)
- __aio_remove_request (old, req, 1);
- }
- else
- {
- result = AIO_CANCELED;
-
- /* We can remove the entry. */
- __aio_remove_request (NULL, req, 1);
- }
- }
- }
-
- /* Mark requests as canceled and send signal. */
- while (req != NULL)
- {
- struct requestlist *old = req;
- assert (req->running == yes || req->running == queued);
- req->aiocbp->aiocb.__error_code = ECANCELED;
- req->aiocbp->aiocb.__return_value = -1;
- __aio_notify (req);
- req = req->next_prio;
- __aio_free_request (old);
- }
-
- /* Release the mutex. */
- pthread_mutex_unlock (&__aio_requests_mutex);
-
- return result;
-}
-
-#ifndef aio_cancel
-weak_alias (aio_cancel, aio_cancel64)
-#endif
diff --git a/sysdeps/pthread/aio_error.c b/sysdeps/pthread/aio_error.c
deleted file mode 100644
index ed664ae0ef..0000000000
--- a/sysdeps/pthread/aio_error.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Return error status of asynchronous I/O request.
- Copyright (C) 1997-2021 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
-
- 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/>. */
-
-
-/* We use an UGLY hack to prevent gcc from finding us cheating. The
- implementation of aio_error and aio_error64 are identical and so
- we want to avoid code duplication by using aliases. But gcc sees
- the different parameter lists and prints a warning. We define here
- a function so that aio_error64 has no prototype. */
-#define aio_error64 XXX
-#include <aio.h>
-/* And undo the hack. */
-#undef aio_error64
-
-#include <aio_misc.h>
-
-
-int
-aio_error (const struct aiocb *aiocbp)
-{
- int ret;
-
- /* Acquire the mutex to make sure all operations for this request are
- complete. */
- pthread_mutex_lock(&__aio_requests_mutex);
- ret = aiocbp->__error_code;
- pthread_mutex_unlock(&__aio_requests_mutex);
-
- return ret;
-}
-
-weak_alias (aio_error, aio_error64)
diff --git a/sysdeps/pthread/aio_fsync.c b/sysdeps/pthread/aio_fsync.c
deleted file mode 100644
index 5a52e2fec0..0000000000
--- a/sysdeps/pthread/aio_fsync.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/* Synchronize I/O in given file descriptor.
- Copyright (C) 1997-2021 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
-
- 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/>. */
-
-
-/* We use an UGLY hack to prevent gcc from finding us cheating. The
- implementation of aio_fsync and aio_fsync64 are identical and so
- we want to avoid code duplication by using aliases. But gcc sees
- the different parameter lists and prints a warning. We define here
- a function so that aio_fsync64 has no prototype. */
-#define aio_fsync64 XXX
-#include <aio.h>
-/* And undo the hack. */
-#undef aio_fsync64
-#include <errno.h>
-#include <fcntl.h>
-
-#include <aio_misc.h>
-
-
-int
-aio_fsync (int op, struct aiocb *aiocbp)
-{
- if (op != O_DSYNC && __builtin_expect (op != O_SYNC, 0))
- {
- __set_errno (EINVAL);
- return -1;
- }
-
- /* Verify that this is an open file descriptor. */
- if (__glibc_unlikely (fcntl (aiocbp->aio_fildes, F_GETFL) == -1))
- {
- __set_errno (EBADF);
- return -1;
- }
-
- return (__aio_enqueue_request ((aiocb_union *) aiocbp,
- op == O_SYNC ? LIO_SYNC : LIO_DSYNC) == NULL
- ? -1 : 0);
-}
-
-weak_alias (aio_fsync, aio_fsync64)
diff --git a/sysdeps/pthread/aio_misc.c b/sysdeps/pthread/aio_misc.c
deleted file mode 100644
index b95f07d9d3..0000000000
--- a/sysdeps/pthread/aio_misc.c
+++ /dev/null
@@ -1,721 +0,0 @@
-/* Handle general operations.
- Copyright (C) 1997-2021 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
-
- 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 <aio.h>
-#include <assert.h>
-#include <errno.h>
-#include <limits.h>
-#include <pthread.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/param.h>
-#include <sys/stat.h>
-#include <sys/time.h>
-#include <aio_misc.h>
-
-#ifndef aio_create_helper_thread
-# define aio_create_helper_thread __aio_create_helper_thread
-
-extern inline int
-__aio_create_helper_thread (pthread_t *threadp, void *(*tf) (void *), void *arg)
-{
- pthread_attr_t attr;
-
- /* Make sure the thread is created detached. */
- pthread_attr_init (&attr);
- pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
-
- int ret = pthread_create (threadp, &attr, tf, arg);
-
- (void) pthread_attr_destroy (&attr);
- return ret;
-}
-#endif
-
-static void add_request_to_runlist (struct requestlist *newrequest);
-
-/* Pool of request list entries. */
-static struct requestlist **pool;
-
-/* Number of total and allocated pool entries. */
-static size_t pool_max_size;
-static size_t pool_size;
-
-/* We implement a two dimensional array but allocate each row separately.
- The macro below determines how many entries should be used per row.
- It should better be a power of two. */
-#define ENTRIES_PER_ROW 32
-
-/* How many rows we allocate at once. */
-#define ROWS_STEP 8
-
-/* List of available entries. */
-static struct requestlist *freelist;
-
-/* List of request waiting to be processed. */
-static struct requestlist *runlist;
-
-/* Structure list of all currently processed requests. */
-static struct requestlist *requests;
-
-/* Number of threads currently running. */
-static int nthreads;
-
-/* Number of threads waiting for work to arrive. */
-static int idle_thread_count;
-
-
-/* These are the values used to optimize the use of AIO. The user can
- overwrite them by using the `aio_init' function. */
-static struct aioinit optim =
-{
- 20, /* int aio_threads; Maximal number of threads. */
- 64, /* int aio_num; Number of expected simultaneous requests. */
- 0,
- 0,
- 0,
- 0,
- 1,
- 0
-};
-
-
-/* Since the list is global we need a mutex protecting it. */
-pthread_mutex_t __aio_requests_mutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
-
-/* When you add a request to the list and there are idle threads present,
- you signal this condition variable. When a thread finishes work, it waits
- on this condition variable for a time before it actually exits. */
-pthread_cond_t __aio_new_request_notification = PTHREAD_COND_INITIALIZER;
-
-
-/* Functions to handle request list pool. */
-static struct requestlist *
-get_elem (void)
-{
- struct requestlist *result;
-
- if (freelist == NULL)
- {
- struct requestlist *new_row;
- int cnt;
-
- assert (sizeof (struct aiocb) == sizeof (struct aiocb64));
-
- if (pool_size + 1 >= pool_max_size)
- {
- size_t new_max_size = pool_max_size + ROWS_STEP;
- struct requestlist **new_tab;
-
- new_tab = (struct requestlist **)
- realloc (pool, new_max_size * sizeof (struct requestlist *));
-
- if (new_tab == NULL)
- return NULL;
-
- pool_max_size = new_max_size;
- pool = new_tab;
- }
-
- /* Allocate the new row. */
- cnt = pool_size == 0 ? optim.aio_num : ENTRIES_PER_ROW;
- new_row = (struct requestlist *) calloc (cnt,
- sizeof (struct requestlist));
- if (new_row == NULL)
- return NULL;
-
- pool[pool_size++] = new_row;
-
- /* Put all the new entries in the freelist. */
- do
- {
- new_row->next_prio = freelist;
- freelist = new_row++;
- }
- while (--cnt > 0);
- }
-
- result = freelist;
- freelist = freelist->next_prio;
-
- return result;
-}
-
-
-void
-__aio_free_request (struct requestlist *elem)
-{
- elem->running = no;
- elem->next_prio = freelist;
- freelist = elem;
-}
-
-
-struct requestlist *
-__aio_find_req (aiocb_union *elem)
-{
- struct requestlist *runp = requests;
- int fildes = elem->aiocb.aio_fildes;
-
- while (runp != NULL && runp->aiocbp->aiocb.aio_fildes < fildes)
- runp = runp->next_fd;
-
- if (runp != NULL)
- {
- if (runp->aiocbp->aiocb.aio_fildes != fildes)
- runp = NULL;
- else
- while (runp != NULL && runp->aiocbp != elem)
- runp = runp->next_prio;
- }
-
- return runp;
-}
-
-
-struct requestlist *
-__aio_find_req_fd (int fildes)
-{
- struct requestlist *runp = requests;
-
- while (runp != NULL && runp->aiocbp->aiocb.aio_fildes < fildes)
- runp = runp->next_fd;
-
- return (runp != NULL && runp->aiocbp->aiocb.aio_fildes == fildes
- ? runp : NULL);
-}
-
-
-void
-__aio_remove_request (struct requestlist *last, struct requestlist *req,
- int all)
-{
- assert (req->running == yes || req->running == queued
- || req->running == done);
-
- if (last != NULL)
- last->next_prio = all ? NULL : req->next_prio;
- else
- {
- if (all || req->next_prio == NULL)
- {
- if (req->last_fd != NULL)
- req->last_fd->next_fd = req->next_fd;
- else
- requests = req->next_fd;
- if (req->next_fd != NULL)
- req->next_fd->last_fd = req->last_fd;
- }
- else
- {
- if (req->last_fd != NULL)
- req->last_fd->next_fd = req->next_prio;
- else
- requests = req->next_prio;
-
- if (req->next_fd != NULL)
- req->next_fd->last_fd = req->next_prio;
-
- req->next_prio->last_fd = req->last_fd;
- req->next_prio->next_fd = req->next_fd;
-
- /* Mark this entry as runnable. */
- req->next_prio->running = yes;
- }
-
- if (req->running == yes)
- {
- struct requestlist *runp = runlist;
-
- last = NULL;
- while (runp != NULL)
- {
- if (runp == req)
- {
- if (last == NULL)
- runlist = runp->next_run;
- else
- last->next_run = runp->next_run;
- break;
- }
- last = runp;
- runp = runp->next_run;
- }
- }
- }
-}
-
-
-/* The thread handler. */
-static void *handle_fildes_io (void *arg);
-
-
-/* User optimization. */
-void
-__aio_init (const struct aioinit *init)
-{
- /* Get the mutex. */
- pthread_mutex_lock (&__aio_requests_mutex);
-
- /* Only allow writing new values if the table is not yet allocated. */
- if (pool == NULL)
- {
- optim.aio_threads = init->aio_threads < 1 ? 1 : init->aio_threads;
- assert (powerof2 (ENTRIES_PER_ROW));
- optim.aio_num = (init->aio_num < ENTRIES_PER_ROW
- ? ENTRIES_PER_ROW
- : init->aio_num & ~(ENTRIES_PER_ROW - 1));
- }
-
- if (init->aio_idle_time != 0)
- optim.aio_idle_time = init->aio_idle_time;
-
- /* Release the mutex. */
- pthread_mutex_unlock (&__aio_requests_mutex);
-}
-weak_alias (__aio_init, aio_init)
-
-
-/* The main function of the async I/O handling. It enqueues requests
- and if necessary starts and handles threads. */
-struct requestlist *
-__aio_enqueue_request (aiocb_union *aiocbp, int operation)
-{
- int result = 0;
- int policy, prio;
- struct sched_param param;
- struct requestlist *last, *runp, *newp;
- int running = no;
-
- if (operation == LIO_SYNC || operation == LIO_DSYNC)
- aiocbp->aiocb.aio_reqprio = 0;
- else if (aiocbp->aiocb.aio_reqprio < 0
-#ifdef AIO_PRIO_DELTA_MAX
- || aiocbp->aiocb.aio_reqprio > AIO_PRIO_DELTA_MAX
-#endif
- )
- {
- /* Invalid priority value. */
- __set_errno (EINVAL);
- aiocbp->aiocb.__error_code = EINVAL;
- aiocbp->aiocb.__return_value = -1;
- return NULL;
- }
-
- /* Compute priority for this request. */
- pthread_getschedparam (pthread_self (), &policy, ¶m);
- prio = param.sched_priority - aiocbp->aiocb.aio_reqprio;
-
- /* Get the mutex. */
- pthread_mutex_lock (&__aio_requests_mutex);
-
- last = NULL;
- runp = requests;
- /* First look whether the current file descriptor is currently
- worked with. */
- while (runp != NULL
- && runp->aiocbp->aiocb.aio_fildes < aiocbp->aiocb.aio_fildes)
- {
- last = runp;
- runp = runp->next_fd;
- }
-
- /* Get a new element for the waiting list. */
- newp = get_elem ();
- if (newp == NULL)
- {
- pthread_mutex_unlock (&__aio_requests_mutex);
- __set_errno (EAGAIN);
- return NULL;
- }
- newp->aiocbp = aiocbp;
- newp->waiting = NULL;
-
- aiocbp->aiocb.__abs_prio = prio;
- aiocbp->aiocb.__policy = policy;
- aiocbp->aiocb.aio_lio_opcode = operation;
- aiocbp->aiocb.__error_code = EINPROGRESS;
- aiocbp->aiocb.__return_value = 0;
-
- if (runp != NULL
- && runp->aiocbp->aiocb.aio_fildes == aiocbp->aiocb.aio_fildes)
- {
- /* The current file descriptor is worked on. It makes no sense
- to start another thread since this new thread would fight
- with the running thread for the resources. But we also cannot
- say that the thread processing this desriptor shall immediately
- after finishing the current job process this request if there
- are other threads in the running queue which have a higher
- priority. */
-
- /* Simply enqueue it after the running one according to the
- priority. */
- last = NULL;
- while (runp->next_prio != NULL
- && runp->next_prio->aiocbp->aiocb.__abs_prio >= prio)
- {
- last = runp;
- runp = runp->next_prio;
- }
-
- newp->next_prio = runp->next_prio;
- runp->next_prio = newp;
-
- running = queued;
- }
- else
- {
- running = yes;
- /* Enqueue this request for a new descriptor. */
- if (last == NULL)
- {
- newp->last_fd = NULL;
- newp->next_fd = requests;
- if (requests != NULL)
- requests->last_fd = newp;
- requests = newp;
- }
- else
- {
- newp->next_fd = last->next_fd;
- newp->last_fd = last;
- last->next_fd = newp;
- if (newp->next_fd != NULL)
- newp->next_fd->last_fd = newp;
- }
-
- newp->next_prio = NULL;
- last = NULL;
- }
-
- if (running == yes)
- {
- /* We try to create a new thread for this file descriptor. The
- function which gets called will handle all available requests
- for this descriptor and when all are processed it will
- terminate.
-
- If no new thread can be created or if the specified limit of
- threads for AIO is reached we queue the request. */
-
- /* See if we need to and are able to create a thread. */
- if (nthreads < optim.aio_threads && idle_thread_count == 0)
- {
- pthread_t thid;
-
- running = newp->running = allocated;
-
- /* Now try to start a thread. */
- result = aio_create_helper_thread (&thid, handle_fildes_io, newp);
- if (result == 0)
- /* We managed to enqueue the request. All errors which can
- happen now can be recognized by calls to `aio_return' and
- `aio_error'. */
- ++nthreads;
- else
- {
- /* Reset the running flag. The new request is not running. */
- running = newp->running = yes;
-
- if (nthreads == 0)
- {
- /* We cannot create a thread in the moment and there is
- also no thread running. This is a problem. `errno' is
- set to EAGAIN if this is only a temporary problem. */
- __aio_remove_request (last, newp, 0);
- }
- else
- result = 0;
- }
- }
- }
-
- /* Enqueue the request in the run queue if it is not yet running. */
- if (running == yes && result == 0)
- {
- add_request_to_runlist (newp);
-
- /* If there is a thread waiting for work, then let it know that we
- have just given it something to do. */
- if (idle_thread_count > 0)
- pthread_cond_signal (&__aio_new_request_notification);
- }
-
- if (result == 0)
- newp->running = running;
- else
- {
- /* Something went wrong. */
- __aio_free_request (newp);
- aiocbp->aiocb.__error_code = result;
- __set_errno (result);
- newp = NULL;
- }
-
- /* Release the mutex. */
- pthread_mutex_unlock (&__aio_requests_mutex);
-
- return newp;
-}
-
-
-static void *
-handle_fildes_io (void *arg)
-{
- pthread_t self = pthread_self ();
- struct sched_param param;
- struct requestlist *runp = (struct requestlist *) arg;
- aiocb_union *aiocbp;
- int policy;
- int fildes;
-
- pthread_getschedparam (self, &policy, ¶m);
-
- do
- {
- /* If runp is NULL, then we were created to service the work queue
- in general, not to handle any particular request. In that case we
- skip the "do work" stuff on the first pass, and go directly to the
- "get work off the work queue" part of this loop, which is near the
- end. */
- if (runp == NULL)
- pthread_mutex_lock (&__aio_requests_mutex);
- else
- {
- /* Hopefully this request is marked as running. */
- assert (runp->running == allocated);
-
- /* Update our variables. */
- aiocbp = runp->aiocbp;
- fildes = aiocbp->aiocb.aio_fildes;
-
- /* Change the priority to the requested value (if necessary). */
- if (aiocbp->aiocb.__abs_prio != param.sched_priority
- || aiocbp->aiocb.__policy != policy)
- {
- param.sched_priority = aiocbp->aiocb.__abs_prio;
- policy = aiocbp->aiocb.__policy;
- pthread_setschedparam (self, policy, ¶m);
- }
-
- /* Process request pointed to by RUNP. We must not be disturbed
- by signals. */
- if ((aiocbp->aiocb.aio_lio_opcode & 127) == LIO_READ)
- {
- if (sizeof (off_t) != sizeof (off64_t)
- && aiocbp->aiocb.aio_lio_opcode & 128)
- aiocbp->aiocb.__return_value =
- TEMP_FAILURE_RETRY (__pread64 (fildes, (void *)
- aiocbp->aiocb64.aio_buf,
- aiocbp->aiocb64.aio_nbytes,
- aiocbp->aiocb64.aio_offset));
- else
- aiocbp->aiocb.__return_value =
- TEMP_FAILURE_RETRY (__libc_pread (fildes,
- (void *)
- aiocbp->aiocb.aio_buf,
- aiocbp->aiocb.aio_nbytes,
- aiocbp->aiocb.aio_offset));
-
- if (aiocbp->aiocb.__return_value == -1 && errno == ESPIPE)
- /* The Linux kernel is different from others. It returns
- ESPIPE if using pread on a socket. Other platforms
- simply ignore the offset parameter and behave like
- read. */
- aiocbp->aiocb.__return_value =
- TEMP_FAILURE_RETRY (read (fildes,
- (void *) aiocbp->aiocb64.aio_buf,
- aiocbp->aiocb64.aio_nbytes));
- }
- else if ((aiocbp->aiocb.aio_lio_opcode & 127) == LIO_WRITE)
- {
- if (sizeof (off_t) != sizeof (off64_t)
- && aiocbp->aiocb.aio_lio_opcode & 128)
- aiocbp->aiocb.__return_value =
- TEMP_FAILURE_RETRY (__pwrite64 (fildes, (const void *)
- aiocbp->aiocb64.aio_buf,
- aiocbp->aiocb64.aio_nbytes,
- aiocbp->aiocb64.aio_offset));
- else
- aiocbp->aiocb.__return_value =
- TEMP_FAILURE_RETRY (__libc_pwrite (fildes, (const void *)
- aiocbp->aiocb.aio_buf,
- aiocbp->aiocb.aio_nbytes,
- aiocbp->aiocb.aio_offset));
-
- if (aiocbp->aiocb.__return_value == -1 && errno == ESPIPE)
- /* The Linux kernel is different from others. It returns
- ESPIPE if using pwrite on a socket. Other platforms
- simply ignore the offset parameter and behave like
- write. */
- aiocbp->aiocb.__return_value =
- TEMP_FAILURE_RETRY (write (fildes,
- (void *) aiocbp->aiocb64.aio_buf,
- aiocbp->aiocb64.aio_nbytes));
- }
- else if (aiocbp->aiocb.aio_lio_opcode == LIO_DSYNC)
- aiocbp->aiocb.__return_value =
- TEMP_FAILURE_RETRY (fdatasync (fildes));
- else if (aiocbp->aiocb.aio_lio_opcode == LIO_SYNC)
- aiocbp->aiocb.__return_value =
- TEMP_FAILURE_RETRY (fsync (fildes));
- else
- {
- /* This is an invalid opcode. */
- aiocbp->aiocb.__return_value = -1;
- __set_errno (EINVAL);
- }
-
- /* Get the mutex. */
- pthread_mutex_lock (&__aio_requests_mutex);
-
- if (aiocbp->aiocb.__return_value == -1)
- aiocbp->aiocb.__error_code = errno;
- else
- aiocbp->aiocb.__error_code = 0;
-
- /* Send the signal to notify about finished processing of the
- request. */
- __aio_notify (runp);
-
- /* For debugging purposes we reset the running flag of the
- finished request. */
- assert (runp->running == allocated);
- runp->running = done;
-
- /* Now dequeue the current request. */
- __aio_remove_request (NULL, runp, 0);
- if (runp->next_prio != NULL)
- add_request_to_runlist (runp->next_prio);
-
- /* Free the old element. */
- __aio_free_request (runp);
- }
-
- runp = runlist;
-
- /* If the runlist is empty, then we sleep for a while, waiting for
- something to arrive in it. */
- if (runp == NULL && optim.aio_idle_time >= 0)
- {
- struct timespec now;
- struct timespec wakeup_time;
-
- ++idle_thread_count;
- __clock_gettime (CLOCK_REALTIME, &now);
- wakeup_time.tv_sec = now.tv_sec + optim.aio_idle_time;
- wakeup_time.tv_nsec = now.tv_nsec;
- if (wakeup_time.tv_nsec >= 1000000000)
- {
- wakeup_time.tv_nsec -= 1000000000;
- ++wakeup_time.tv_sec;
- }
- pthread_cond_timedwait (&__aio_new_request_notification,
- &__aio_requests_mutex,
- &wakeup_time);
- --idle_thread_count;
- runp = runlist;
- }
-
- if (runp == NULL)
- --nthreads;
- else
- {
- assert (runp->running == yes);
- runp->running = allocated;
- runlist = runp->next_run;
-
- /* If we have a request to process, and there's still another in
- the run list, then we need to either wake up or create a new
- thread to service the request that is still in the run list. */
- if (runlist != NULL)
- {
- /* There are at least two items in the work queue to work on.
- If there are other idle threads, then we should wake them
- up for these other work elements; otherwise, we should try
- to create a new thread. */
- if (idle_thread_count > 0)
- pthread_cond_signal (&__aio_new_request_notification);
- else if (nthreads < optim.aio_threads)
- {
- pthread_t thid;
- pthread_attr_t attr;
-
- /* Make sure the thread is created detached. */
- pthread_attr_init (&attr);
- pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
-
- /* Now try to start a thread. If we fail, no big deal,
- because we know that there is at least one thread (us)
- that is working on AIO operations. */
- if (pthread_create (&thid, &attr, handle_fildes_io, NULL)
- == 0)
- ++nthreads;
- }
- }
- }
-
- /* Release the mutex. */
- pthread_mutex_unlock (&__aio_requests_mutex);
- }
- while (runp != NULL);
-
- return NULL;
-}
-
-
-/* Free allocated resources. */
-libc_freeres_fn (free_res)
-{
- size_t row;
-
- for (row = 0; row < pool_max_size; ++row)
- free (pool[row]);
-
- free (pool);
-}
-
-
-/* Add newrequest to the runlist. The __abs_prio flag of newrequest must
- be correctly set to do this. Also, you had better set newrequest's
- "running" flag to "yes" before you release your lock or you'll throw an
- assertion. */
-static void
-add_request_to_runlist (struct requestlist *newrequest)
-{
- int prio = newrequest->aiocbp->aiocb.__abs_prio;
- struct requestlist *runp;
-
- if (runlist == NULL || runlist->aiocbp->aiocb.__abs_prio < prio)
- {
- newrequest->next_run = runlist;
- runlist = newrequest;
- }
- else
- {
- runp = runlist;
-
- while (runp->next_run != NULL
- && runp->next_run->aiocbp->aiocb.__abs_prio >= prio)
- runp = runp->next_run;
-
- newrequest->next_run = runp->next_run;
- runp->next_run = newrequest;
- }
-}
diff --git a/sysdeps/pthread/aio_misc.h b/sysdeps/pthread/aio_misc.h
deleted file mode 100644
index e23524cffe..0000000000
--- a/sysdeps/pthread/aio_misc.h
+++ /dev/null
@@ -1,122 +0,0 @@
-/* Copyright (C) 1997-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/>. */
-
-#ifndef _AIO_MISC_H
-#define _AIO_MISC_H 1
-
-#include <aio.h>
-#include <pthread.h>
-
-
-/* Extend the operation enum. */
-enum
-{
- LIO_DSYNC = LIO_NOP + 1,
- LIO_SYNC,
- LIO_READ64 = LIO_READ | 128,
- LIO_WRITE64 = LIO_WRITE | 128
-};
-
-
-/* Union of the two request types. */
-typedef union
- {
- struct aiocb aiocb;
- struct aiocb64 aiocb64;
- } aiocb_union;
-
-
-/* Used to synchronize. */
-struct waitlist
- {
- struct waitlist *next;
-
- /* The next two fields is used in synchronous `lio_listio' operations. */
-#ifndef DONT_NEED_AIO_MISC_COND
- pthread_cond_t *cond;
-#endif
- int *result;
-
- volatile unsigned int *counterp;
- /* The next field is used in asynchronous `lio_listio' operations. */
- struct sigevent *sigevp;
- };
-
-
-/* Status of a request. */
-enum
-{
- no,
- queued,
- yes,
- allocated,
- done
-};
-
-
-/* Used to queue requests.. */
-struct requestlist
- {
- int running;
-
- struct requestlist *last_fd;
- struct requestlist *next_fd;
- struct requestlist *next_prio;
- struct requestlist *next_run;
-
- /* Pointer to the actual data. */
- aiocb_union *aiocbp;
-
- /* List of waiting processes. */
- struct waitlist *waiting;
- };
-
-
-/* Lock for global I/O list of requests. */
-extern pthread_mutex_t __aio_requests_mutex attribute_hidden;
-
-
-/* Enqueue request. */
-extern struct requestlist *__aio_enqueue_request (aiocb_union *aiocbp,
- int operation)
- attribute_hidden;
-
-/* Find request entry for given AIO control block. */
-extern struct requestlist *__aio_find_req (aiocb_union *elem) attribute_hidden;
-
-/* Find request entry for given file descriptor. */
-extern struct requestlist *__aio_find_req_fd (int fildes) attribute_hidden;
-
-/* Remove request from the list. */
-extern void __aio_remove_request (struct requestlist *last,
- struct requestlist *req, int all)
- attribute_hidden;
-
-/* Release the entry for the request. */
-extern void __aio_free_request (struct requestlist *req) attribute_hidden;
-
-/* Notify initiator of request and tell this everybody listening. */
-extern void __aio_notify (struct requestlist *req) attribute_hidden;
-
-/* Notify initiator of request. */
-extern int __aio_notify_only (struct sigevent *sigev) attribute_hidden;
-
-/* Send the signal. */
-extern int __aio_sigqueue (int sig, const union sigval val, pid_t caller_pid)
- attribute_hidden;
-
-#endif /* aio_misc.h */
diff --git a/sysdeps/pthread/aio_notify.c b/sysdeps/pthread/aio_notify.c
deleted file mode 100644
index a8d61503d8..0000000000
--- a/sysdeps/pthread/aio_notify.c
+++ /dev/null
@@ -1,157 +0,0 @@
-/* Notify initiator of AIO request.
- Copyright (C) 1997-2021 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
-
- 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 <errno.h>
-#include <pthread.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <aio_misc.h>
-#include <signal.h>
-
-#ifndef aio_start_notify_thread
-# define aio_start_notify_thread() do { } while (0)
-#endif
-
-struct notify_func
- {
- void (*func) (sigval_t);
- sigval_t value;
- };
-
-static void *
-notify_func_wrapper (void *arg)
-{
- aio_start_notify_thread ();
- struct notify_func *const n = arg;
- void (*func) (sigval_t) = n->func;
- sigval_t value = n->value;
- free (n);
- (*func) (value);
- return NULL;
-}
-
-
-int
-__aio_notify_only (struct sigevent *sigev)
-{
- int result = 0;
-
- /* Send the signal to notify about finished processing of the request. */
- if (__glibc_unlikely (sigev->sigev_notify == SIGEV_THREAD))
- {
- /* We have to start a thread. */
- pthread_t tid;
- pthread_attr_t attr, *pattr;
-
- pattr = (pthread_attr_t *) sigev->sigev_notify_attributes;
- if (pattr == NULL)
- {
- pthread_attr_init (&attr);
- pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
- pattr = &attr;
- }
-
- /* SIGEV may be freed as soon as we return, so we cannot let the
- notification thread use that pointer. Even though a sigval_t is
- only one word and the same size as a void *, we cannot just pass
- the value through pthread_create as the argument and have the new
- thread run the user's function directly, because on some machines
- the calling convention for a union like sigval_t is different from
- that for a pointer type like void *. */
- struct notify_func *nf = malloc (sizeof *nf);
- if (nf == NULL)
- result = -1;
- else
- {
- nf->func = sigev->sigev_notify_function;
- nf->value = sigev->sigev_value;
- if (pthread_create (&tid, pattr, notify_func_wrapper, nf) < 0)
- {
- free (nf);
- result = -1;
- }
- }
- }
- else if (sigev->sigev_notify == SIGEV_SIGNAL)
- {
- /* We have to send a signal. */
-#if _POSIX_REALTIME_SIGNALS > 0
- /* Note that the standard gives us the option of using a plain
- non-queuing signal here when SA_SIGINFO is not set for the signal. */
- if (__aio_sigqueue (sigev->sigev_signo, sigev->sigev_value, getpid ())
- < 0)
- result = -1;
-#else
- /* There are no queued signals on this system at all. */
- result = raise (sigev->sigev_signo);
-#endif
- }
-
- return result;
-}
-
-
-void
-__aio_notify (struct requestlist *req)
-{
- struct waitlist *waitlist;
- struct aiocb *aiocbp = &req->aiocbp->aiocb;
-
- if (__aio_notify_only (&aiocbp->aio_sigevent) != 0)
- {
- /* XXX What shall we do if already an error is set by
- read/write/fsync? */
- aiocbp->__error_code = errno;
- aiocbp->__return_value = -1;
- }
-
- /* Now also notify possibly waiting threads. */
- waitlist = req->waiting;
- while (waitlist != NULL)
- {
- struct waitlist *next = waitlist->next;
-
- if (waitlist->sigevp == NULL)
- {
- if (waitlist->result != NULL && aiocbp->__return_value == -1)
- *waitlist->result = -1;
-
-#ifdef DONT_NEED_AIO_MISC_COND
- AIO_MISC_NOTIFY (waitlist);
-#else
- /* Decrement the counter. */
- --*waitlist->counterp;
-
- pthread_cond_signal (waitlist->cond);
-#endif
- }
- else
- /* This is part of an asynchronous `lio_listio' operation. If
- this request is the last one, send the signal. */
- if (--*waitlist->counterp == 0)
- {
- __aio_notify_only (waitlist->sigevp);
- /* This is tricky. See lio_listio.c for the reason why
- this works. */
- free ((void *) waitlist->counterp);
- }
-
- waitlist = next;
- }
-}
diff --git a/sysdeps/pthread/aio_read.c b/sysdeps/pthread/aio_read.c
deleted file mode 100644
index 4698e48b1c..0000000000
--- a/sysdeps/pthread/aio_read.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Asynchronous read.
- Copyright (C) 1997-2021 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
-
- 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 <aio.h>
-
-#include <aio_misc.h>
-
-
-int
-aio_read (struct aiocb *aiocbp)
-{
- return (__aio_enqueue_request ((aiocb_union *) aiocbp, LIO_READ) == NULL
- ? -1 : 0);
-}
diff --git a/sysdeps/pthread/aio_read64.c b/sysdeps/pthread/aio_read64.c
deleted file mode 100644
index 26b9b0b380..0000000000
--- a/sysdeps/pthread/aio_read64.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Asynchronous read, 64bit offset version.
- Copyright (C) 1997-2021 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
-
- 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 <aio.h>
-
-#include <aio_misc.h>
-
-
-int
-aio_read64 (struct aiocb64 *aiocbp)
-{
- return (__aio_enqueue_request ((aiocb_union *) aiocbp, LIO_READ64) == NULL
- ? -1 : 0);
-}
diff --git a/sysdeps/pthread/aio_suspend.c b/sysdeps/pthread/aio_suspend.c
deleted file mode 100644
index 6fd5b1bee2..0000000000
--- a/sysdeps/pthread/aio_suspend.c
+++ /dev/null
@@ -1,263 +0,0 @@
-/* Suspend until termination of a requests.
- Copyright (C) 1997-2021 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
-
- 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/>. */
-
-
-/* We use an UGLY hack to prevent gcc from finding us cheating. The
- implementations of aio_suspend and aio_suspend64 are identical and so
- we want to avoid code duplication by using aliases. But gcc sees
- the different parameter lists and prints a warning. We define here
- a function so that aio_suspend64 has no prototype. */
-#define aio_suspend64 XXX
-#include <aio.h>
-/* And undo the hack. */
-#undef aio_suspend64
-
-#include <assert.h>
-#include <errno.h>
-#include <stdbool.h>
-#include <stdlib.h>
-#include <sys/time.h>
-
-#include <libc-lock.h>
-#include <aio_misc.h>
-
-
-struct clparam
-{
- const struct aiocb *const *list;
- struct waitlist *waitlist;
- struct requestlist **requestlist;
-#ifndef DONT_NEED_AIO_MISC_COND
- pthread_cond_t *cond;
-#endif
- int nent;
-};
-
-
-static void
-cleanup (void *arg)
-{
-#ifdef DONT_NEED_AIO_MISC_COND
- /* Acquire the mutex. If pthread_cond_*wait is used this would
- happen implicitly. */
- pthread_mutex_lock (&__aio_requests_mutex);
-#endif
-
- const struct clparam *param = (const struct clparam *) arg;
-
- /* Now remove the entry in the waiting list for all requests
- which didn't terminate. */
- int cnt = param->nent;
- while (cnt-- > 0)
- if (param->list[cnt] != NULL
- && param->list[cnt]->__error_code == EINPROGRESS)
- {
- struct waitlist **listp;
-
- assert (param->requestlist[cnt] != NULL);
-
- /* There is the chance that we cannot find our entry anymore. This
- could happen if the request terminated and restarted again. */
- listp = ¶m->requestlist[cnt]->waiting;
- while (*listp != NULL && *listp != ¶m->waitlist[cnt])
- listp = &(*listp)->next;
-
- if (*listp != NULL)
- *listp = (*listp)->next;
- }
-
-#ifndef DONT_NEED_AIO_MISC_COND
- /* Release the conditional variable. */
- (void) pthread_cond_destroy (param->cond);
-#endif
-
- /* Release the mutex. */
- pthread_mutex_unlock (&__aio_requests_mutex);
-}
-
-#ifdef DONT_NEED_AIO_MISC_COND
-static int
-__attribute__ ((noinline))
-do_aio_misc_wait (unsigned int *cntr, const struct __timespec64 *timeout)
-{
- int result = 0;
-
- AIO_MISC_WAIT (result, *cntr, timeout, 1);
-
- return result;
-}
-#endif
-
-int
-__aio_suspend_time64 (const struct aiocb *const list[], int nent,
- const struct __timespec64 *timeout)
-{
- if (__glibc_unlikely (nent < 0))
- {
- __set_errno (EINVAL);
- return -1;
- }
-
- struct waitlist waitlist[nent];
- struct requestlist *requestlist[nent];
-#ifndef DONT_NEED_AIO_MISC_COND
- pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
-#endif
- int cnt;
- bool any = false;
- int result = 0;
- unsigned int cntr = 1;
-
- /* Request the mutex. */
- pthread_mutex_lock (&__aio_requests_mutex);
-
- /* There is not yet a finished request. Signal the request that
- we are working for it. */
- for (cnt = 0; cnt < nent; ++cnt)
- if (list[cnt] != NULL)
- {
- if (list[cnt]->__error_code == EINPROGRESS)
- {
- requestlist[cnt] = __aio_find_req ((aiocb_union *) list[cnt]);
-
- if (requestlist[cnt] != NULL)
- {
-#ifndef DONT_NEED_AIO_MISC_COND
- waitlist[cnt].cond = &cond;
-#endif
- waitlist[cnt].result = NULL;
- waitlist[cnt].next = requestlist[cnt]->waiting;
- waitlist[cnt].counterp = &cntr;
- waitlist[cnt].sigevp = NULL;
- requestlist[cnt]->waiting = &waitlist[cnt];
- any = true;
- }
- else
- /* We will never suspend. */
- break;
- }
- else
- /* We will never suspend. */
- break;
- }
-
- struct __timespec64 ts;
- if (timeout != NULL)
- {
- __clock_gettime64 (CLOCK_MONOTONIC, &ts);
- ts.tv_sec += timeout->tv_sec;
- ts.tv_nsec += timeout->tv_nsec;
- if (ts.tv_nsec >= 1000000000)
- {
- ts.tv_nsec -= 1000000000;
- ts.tv_sec++;
- }
- }
-
- /* Only if none of the entries is NULL or finished to be wait. */
- if (cnt == nent && any)
- {
- struct clparam clparam =
- {
- .list = list,
- .waitlist = waitlist,
- .requestlist = requestlist,
-#ifndef DONT_NEED_AIO_MISC_COND
- .cond = &cond,
-#endif
- .nent = nent
- };
-
- pthread_cleanup_push (cleanup, &clparam);
-
-#ifdef DONT_NEED_AIO_MISC_COND
- result = do_aio_misc_wait (&cntr, timeout == NULL ? NULL : &ts);
-#else
- struct timespec ts32 = valid_timespec64_to_timespec (ts);
- result = pthread_cond_timedwait (&cond, &__aio_requests_mutex,
- timeout == NULL ? NULL : &ts32);
-#endif
-
- pthread_cleanup_pop (0);
- }
-
- /* Now remove the entry in the waiting list for all requests
- which didn't terminate. */
- while (cnt-- > 0)
- if (list[cnt] != NULL && list[cnt]->__error_code == EINPROGRESS)
- {
- struct waitlist **listp;
-
- assert (requestlist[cnt] != NULL);
-
- /* There is the chance that we cannot find our entry anymore. This
- could happen if the request terminated and restarted again. */
- listp = &requestlist[cnt]->waiting;
- while (*listp != NULL && *listp != &waitlist[cnt])
- listp = &(*listp)->next;
-
- if (*listp != NULL)
- *listp = (*listp)->next;
- }
-
-#ifndef DONT_NEED_AIO_MISC_COND
- /* Release the conditional variable. */
- if (__glibc_unlikely (pthread_cond_destroy (&cond) != 0))
- /* This must never happen. */
- abort ();
-#endif
-
- if (result != 0)
- {
-#ifndef DONT_NEED_AIO_MISC_COND
- /* An error occurred. Possibly it's ETIMEDOUT. We have to translate
- the timeout error report of `pthread_cond_timedwait' to the
- form expected from `aio_suspend'. */
- if (result == ETIMEDOUT)
- __set_errno (EAGAIN);
- else
-#endif
- __set_errno (result);
-
- result = -1;
- }
-
- /* Release the mutex. */
- pthread_mutex_unlock (&__aio_requests_mutex);
-
- return result;
-}
-
-#if __TIMESIZE != 64
-librt_hidden_def (__aio_suspend_time64)
-
-int
-__aio_suspend (const struct aiocb *const list[], int nent,
- const struct timespec *timeout)
-{
- struct __timespec64 ts64;
-
- if (timeout != NULL)
- ts64 = valid_timespec_to_timespec64 (*timeout);
-
- return __aio_suspend_time64 (list, nent, timeout != NULL ? &ts64 : NULL);
-}
-#endif
-weak_alias (__aio_suspend, aio_suspend)
-weak_alias (aio_suspend, aio_suspend64)
diff --git a/sysdeps/pthread/aio_write.c b/sysdeps/pthread/aio_write.c
deleted file mode 100644
index ea55f0dbbc..0000000000
--- a/sysdeps/pthread/aio_write.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Asynchronous write.
- Copyright (C) 1997-2021 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
-
- 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 <aio.h>
-
-#include <aio_misc.h>
-
-
-int
-aio_write (struct aiocb *aiocbp)
-{
- return (__aio_enqueue_request ((aiocb_union *) aiocbp, LIO_WRITE) == NULL
- ? -1 : 0);
-}
diff --git a/sysdeps/pthread/aio_write64.c b/sysdeps/pthread/aio_write64.c
deleted file mode 100644
index bd6dd316be..0000000000
--- a/sysdeps/pthread/aio_write64.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Asynchronous write, 64bit offset version.
- Copyright (C) 1997-2021 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
-
- 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 <aio.h>
-
-#include <aio_misc.h>
-
-
-int
-aio_write64 (struct aiocb64 *aiocbp)
-{
- return (__aio_enqueue_request ((aiocb_union *) aiocbp, LIO_WRITE64) == NULL
- ? -1 : 0);
-}
diff --git a/sysdeps/pthread/lio_listio.c b/sysdeps/pthread/lio_listio.c
deleted file mode 100644
index 2cab3c2254..0000000000
--- a/sysdeps/pthread/lio_listio.c
+++ /dev/null
@@ -1,248 +0,0 @@
-/* Enqueue and list of read or write requests.
- Copyright (C) 1997-2021 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
-
- 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/>. */
-
-#ifndef lio_listio
-#include <aio.h>
-#include <assert.h>
-#include <errno.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-#include <aio_misc.h>
-
-#define LIO_OPCODE_BASE 0
-#endif
-
-#include <shlib-compat.h>
-
-
-/* We need this special structure to handle asynchronous I/O. */
-struct async_waitlist
- {
- unsigned int counter;
- struct sigevent sigev;
- struct waitlist list[0];
- };
-
-
-/* The code in glibc 2.1 to glibc 2.4 issued only one event when all
- requests submitted with lio_listio finished. The existing practice
- is to issue events for the individual requests as well. This is
- what the new code does. */
-#if SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_4)
-# define LIO_MODE(mode) ((mode) & 127)
-# define NO_INDIVIDUAL_EVENT_P(mode) ((mode) & 128)
-#else
-# define LIO_MODE(mode) mode
-# define NO_INDIVIDUAL_EVENT_P(mode) 0
-#endif
-
-
-static int
-lio_listio_internal (int mode, struct aiocb *const list[], int nent,
- struct sigevent *sig)
-{
- struct sigevent defsigev;
- struct requestlist *requests[nent];
- int cnt;
- volatile unsigned int total = 0;
- int result = 0;
-
- if (sig == NULL)
- {
- defsigev.sigev_notify = SIGEV_NONE;
- sig = &defsigev;
- }
-
- /* Request the mutex. */
- pthread_mutex_lock (&__aio_requests_mutex);
-
- /* Now we can enqueue all requests. Since we already acquired the
- mutex the enqueue function need not do this. */
- for (cnt = 0; cnt < nent; ++cnt)
- if (list[cnt] != NULL && list[cnt]->aio_lio_opcode != LIO_NOP)
- {
- if (NO_INDIVIDUAL_EVENT_P (mode))
- list[cnt]->aio_sigevent.sigev_notify = SIGEV_NONE;
-
- requests[cnt] = __aio_enqueue_request ((aiocb_union *) list[cnt],
- (list[cnt]->aio_lio_opcode
- | LIO_OPCODE_BASE));
-
- if (requests[cnt] != NULL)
- /* Successfully enqueued. */
- ++total;
- else
- /* Signal that we've seen an error. `errno' and the error code
- of the aiocb will tell more. */
- result = -1;
- }
- else
- requests[cnt] = NULL;
-
- if (total == 0)
- {
- /* We don't have anything to do except signalling if we work
- asynchronously. */
-
- /* Release the mutex. We do this before raising a signal since the
- signal handler might do a `siglongjmp' and then the mutex is
- locked forever. */
- pthread_mutex_unlock (&__aio_requests_mutex);
-
- if (LIO_MODE (mode) == LIO_NOWAIT)
- __aio_notify_only (sig);
-
- return result;
- }
- else if (LIO_MODE (mode) == LIO_WAIT)
- {
-#ifndef DONT_NEED_AIO_MISC_COND
- pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
- int oldstate;
-#endif
- struct waitlist waitlist[nent];
-
- total = 0;
- for (cnt = 0; cnt < nent; ++cnt)
- {
- assert (requests[cnt] == NULL || list[cnt] != NULL);
-
- if (requests[cnt] != NULL && list[cnt]->aio_lio_opcode != LIO_NOP)
- {
-#ifndef DONT_NEED_AIO_MISC_COND
- waitlist[cnt].cond = &cond;
-#endif
- waitlist[cnt].result = &result;
- waitlist[cnt].next = requests[cnt]->waiting;
- waitlist[cnt].counterp = &total;
- waitlist[cnt].sigevp = NULL;
- requests[cnt]->waiting = &waitlist[cnt];
- ++total;
- }
- }
-
-#ifdef DONT_NEED_AIO_MISC_COND
- AIO_MISC_WAIT (result, total, NULL, 0);
-#else
- /* Since `pthread_cond_wait'/`pthread_cond_timedwait' are cancellation
- points we must be careful. We added entries to the waiting lists
- which we must remove. So defer cancellation for now. */
- pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, &oldstate);
-
- while (total > 0)
- pthread_cond_wait (&cond, &__aio_requests_mutex);
-
- /* Now it's time to restore the cancellation state. */
- pthread_setcancelstate (oldstate, NULL);
-
- /* Release the conditional variable. */
- if (pthread_cond_destroy (&cond) != 0)
- /* This must never happen. */
- abort ();
-#endif
-
- /* If any of the I/O requests failed, return -1 and set errno. */
- if (result != 0)
- {
- __set_errno (result == EINTR ? EINTR : EIO);
- result = -1;
- }
- }
- else
- {
- struct async_waitlist *waitlist;
-
- waitlist = (struct async_waitlist *)
- malloc (sizeof (struct async_waitlist)
- + (nent * sizeof (struct waitlist)));
-
- if (waitlist == NULL)
- {
- __set_errno (EAGAIN);
- result = -1;
- }
- else
- {
- total = 0;
-
- for (cnt = 0; cnt < nent; ++cnt)
- {
- assert (requests[cnt] == NULL || list[cnt] != NULL);
-
- if (requests[cnt] != NULL
- && list[cnt]->aio_lio_opcode != LIO_NOP)
- {
-#ifndef DONT_NEED_AIO_MISC_COND
- waitlist->list[cnt].cond = NULL;
-#endif
- waitlist->list[cnt].result = NULL;
- waitlist->list[cnt].next = requests[cnt]->waiting;
- waitlist->list[cnt].counterp = &waitlist->counter;
- waitlist->list[cnt].sigevp = &waitlist->sigev;
- requests[cnt]->waiting = &waitlist->list[cnt];
- ++total;
- }
- }
-
- waitlist->counter = total;
- waitlist->sigev = *sig;
- }
- }
-
- /* Release the mutex. */
- pthread_mutex_unlock (&__aio_requests_mutex);
-
- return result;
-}
-
-
-#if SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_4)
-int
-attribute_compat_text_section
-__lio_listio_21 (int mode, struct aiocb *const list[], int nent,
- struct sigevent *sig)
-{
- /* Check arguments. */
- if (mode != LIO_WAIT && mode != LIO_NOWAIT)
- {
- __set_errno (EINVAL);
- return -1;
- }
-
- return lio_listio_internal (mode | LIO_NO_INDIVIDUAL_EVENT, list, nent, sig);
-}
-compat_symbol (librt, __lio_listio_21, lio_listio, GLIBC_2_1);
-#endif
-
-
-int
-__lio_listio_item_notify (int mode, struct aiocb *const list[], int nent,
- struct sigevent *sig)
-{
- /* Check arguments. */
- if (mode != LIO_WAIT && mode != LIO_NOWAIT)
- {
- __set_errno (EINVAL);
- return -1;
- }
-
- return lio_listio_internal (mode, list, nent, sig);
-}
-versioned_symbol (librt, __lio_listio_item_notify, lio_listio, GLIBC_2_4);
diff --git a/sysdeps/pthread/lio_listio64.c b/sysdeps/pthread/lio_listio64.c
deleted file mode 100644
index 111c883a2f..0000000000
--- a/sysdeps/pthread/lio_listio64.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Enqueue and list of read or write requests, 64bit offset version.
- Copyright (C) 1997-2021 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
-
- 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 <aio.h>
-#include <assert.h>
-#include <errno.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-#include <aio_misc.h>
-
-#define lio_listio lio_listio64
-#define __lio_listio_21 __lio_listio64_21
-#define __lio_listio_item_notify __lio_listio64_item_notify
-#define aiocb aiocb64
-#define LIO_OPCODE_BASE 128
-#include <lio_listio.c>
diff --git a/sysdeps/pthread/timer_create.c b/sysdeps/pthread/timer_create.c
deleted file mode 100644
index 2808f5b32b..0000000000
--- a/sysdeps/pthread/timer_create.c
+++ /dev/null
@@ -1,166 +0,0 @@
-/* Copyright (C) 2000-2021 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Kaz Kylheku <kaz@ashi.footprints.net>.
-
- 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; see the file COPYING.LIB. If
- not, see <https://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <signal.h>
-#include <pthread.h>
-#include <time.h>
-#include <unistd.h>
-
-#include "posix-timer.h"
-
-
-/* Create new per-process timer using CLOCK. */
-int
-timer_create (clockid_t clock_id, struct sigevent *evp, timer_t *timerid)
-{
- int retval = -1;
- struct timer_node *newtimer = NULL;
- struct thread_node *thread = NULL;
-
- if (0
-#if defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0
- || clock_id == CLOCK_PROCESS_CPUTIME_ID
-#endif
-#if defined _POSIX_THREAD_CPUTIME && _POSIX_THREAD_CPUTIME >= 0
- || clock_id == CLOCK_THREAD_CPUTIME_ID
-#endif
- )
- {
- /* We don't allow timers for CPU clocks. At least not in the
- moment. */
- __set_errno (ENOTSUP);
- return -1;
- }
-
- if (clock_id != CLOCK_REALTIME)
- {
- __set_errno (EINVAL);
- return -1;
- }
-
- pthread_once (&__timer_init_once_control, __timer_init_once);
-
- if (__timer_init_failed)
- {
- __set_errno (ENOMEM);
- return -1;
- }
-
- pthread_mutex_lock (&__timer_mutex);
-
- newtimer = __timer_alloc ();
- if (__glibc_unlikely (newtimer == NULL))
- {
- __set_errno (EAGAIN);
- goto unlock_bail;
- }
-
- if (evp != NULL)
- newtimer->event = *evp;
- else
- {
- newtimer->event.sigev_notify = SIGEV_SIGNAL;
- newtimer->event.sigev_signo = SIGALRM;
- newtimer->event.sigev_value.sival_ptr = newtimer;
- newtimer->event.sigev_notify_function = 0;
- }
-
- newtimer->event.sigev_notify_attributes = &newtimer->attr;
- newtimer->creator_pid = getpid ();
-
- switch (__builtin_expect (newtimer->event.sigev_notify, SIGEV_SIGNAL))
- {
- case SIGEV_NONE:
- case SIGEV_SIGNAL:
- /* We have a global thread for delivering timed signals.
- If it is not running, try to start it up. */
- thread = &__timer_signal_thread_rclk;
- if (! thread->exists)
- {
- if (__builtin_expect (__timer_thread_start (thread),
- 1) < 0)
- {
- __set_errno (EAGAIN);
- goto unlock_bail;
- }
- }
- break;
-
- case SIGEV_THREAD:
- /* Copy over thread attributes or set up default ones. */
- if (evp->sigev_notify_attributes)
- newtimer->attr = *(pthread_attr_t *) evp->sigev_notify_attributes;
- else
- pthread_attr_init (&newtimer->attr);
-
- /* Ensure thread attributes call for deatched thread. */
- pthread_attr_setdetachstate (&newtimer->attr, PTHREAD_CREATE_DETACHED);
-
- /* Try to find existing thread having the right attributes. */
- thread = __timer_thread_find_matching (&newtimer->attr, clock_id);
-
- /* If no existing thread has these attributes, try to allocate one. */
- if (thread == NULL)
- thread = __timer_thread_alloc (&newtimer->attr, clock_id);
-
- /* Out of luck; no threads are available. */
- if (__glibc_unlikely (thread == NULL))
- {
- __set_errno (EAGAIN);
- goto unlock_bail;
- }
-
- /* If the thread is not running already, try to start it. */
- if (! thread->exists
- && __builtin_expect (! __timer_thread_start (thread), 0))
- {
- __set_errno (EAGAIN);
- goto unlock_bail;
- }
- break;
-
- default:
- __set_errno (EINVAL);
- goto unlock_bail;
- }
-
- newtimer->clock = clock_id;
- newtimer->abstime = 0;
- newtimer->armed = 0;
- newtimer->thread = thread;
-
- *timerid = timer_ptr2id (newtimer);
- retval = 0;
-
- if (__builtin_expect (retval, 0) == -1)
- {
- unlock_bail:
- if (thread != NULL)
- __timer_thread_dealloc (thread);
- if (newtimer != NULL)
- {
- timer_delref (newtimer);
- __timer_dealloc (newtimer);
- }
- }
-
- pthread_mutex_unlock (&__timer_mutex);
-
- return retval;
-}
diff --git a/sysdeps/pthread/timer_delete.c b/sysdeps/pthread/timer_delete.c
deleted file mode 100644
index c6f6d9743d..0000000000
--- a/sysdeps/pthread/timer_delete.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/* Copyright (C) 2000-2021 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Kaz Kylheku <kaz@ashi.footprints.net>.
-
- 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; see the file COPYING.LIB. If
- not, see <https://www.gnu.org/licenses/>. */
-
-#include <assert.h>
-#include <errno.h>
-#include <pthread.h>
-#include <time.h>
-
-#include "posix-timer.h"
-
-
-/* Delete timer TIMERID. */
-int
-timer_delete (timer_t timerid)
-{
- struct timer_node *timer;
- int retval = -1;
-
- pthread_mutex_lock (&__timer_mutex);
-
- timer = timer_id2ptr (timerid);
- if (! timer_valid (timer))
- /* Invalid timer ID or the timer is not in use. */
- __set_errno (EINVAL);
- else
- {
- if (timer->armed && timer->thread != NULL)
- {
- struct thread_node *thread = timer->thread;
- assert (thread != NULL);
-
- /* If thread is cancelled while waiting for handler to terminate,
- the mutex is unlocked and timer_delete is aborted. */
- pthread_cleanup_push (__timer_mutex_cancel_handler, &__timer_mutex);
-
- /* If timer is currently being serviced, wait for it to finish. */
- while (thread->current_timer == timer)
- pthread_cond_wait (&thread->cond, &__timer_mutex);
-
- pthread_cleanup_pop (0);
- }
-
- /* Remove timer from whatever queue it may be on and deallocate it. */
- timer->inuse = TIMER_DELETED;
- list_unlink_ip (&timer->links);
- timer_delref (timer);
- retval = 0;
- }
-
- pthread_mutex_unlock (&__timer_mutex);
-
- return retval;
-}
diff --git a/sysdeps/pthread/timer_getoverr.c b/sysdeps/pthread/timer_getoverr.c
deleted file mode 100644
index c1952f80c6..0000000000
--- a/sysdeps/pthread/timer_getoverr.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Copyright (C) 2000-2021 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Kaz Kylheku <kaz@ashi.footprints.net>.
-
- 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; see the file COPYING.LIB. If
- not, see <https://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <time.h>
-
-#include "posix-timer.h"
-
-
-/* Get expiration overrun for timer TIMERID. */
-int
-timer_getoverrun (timer_t timerid)
-{
- struct timer_node *timer;
- int retval = -1;
-
- pthread_mutex_lock (&__timer_mutex);
-
- if (! timer_valid (timer = timer_id2ptr (timerid)))
- __set_errno (EINVAL);
- else
- retval = timer->overrun_count;
-
- pthread_mutex_unlock (&__timer_mutex);
-
- return retval;
-}
diff --git a/sysdeps/pthread/timer_gettime.c b/sysdeps/pthread/timer_gettime.c
deleted file mode 100644
index dd3b4a6281..0000000000
--- a/sysdeps/pthread/timer_gettime.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/* Copyright (C) 2000-2021 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Kaz Kylheku <kaz@ashi.footprints.net>.
-
- 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; see the file COPYING.LIB. If
- not, see <https://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <time.h>
-
-#include "posix-timer.h"
-
-
-/* Get current value of timer TIMERID and store it in VLAUE. */
-int
-timer_gettime (timer_t timerid, struct itimerspec *value)
-{
- struct timer_node *timer;
- struct timespec now, expiry;
- int retval = -1, armed = 0, valid;
- clock_t clock = 0;
-
- pthread_mutex_lock (&__timer_mutex);
-
- timer = timer_id2ptr (timerid);
- valid = timer_valid (timer);
-
- if (valid) {
- armed = timer->armed;
- expiry = timer->expirytime;
- clock = timer->clock;
- value->it_interval = timer->value.it_interval;
- }
-
- pthread_mutex_unlock (&__timer_mutex);
-
- if (valid)
- {
- if (armed)
- {
- __clock_gettime (clock, &now);
- if (timespec_compare (&now, &expiry) < 0)
- timespec_sub (&value->it_value, &expiry, &now);
- else
- {
- value->it_value.tv_sec = 0;
- value->it_value.tv_nsec = 0;
- }
- }
- else
- {
- value->it_value.tv_sec = 0;
- value->it_value.tv_nsec = 0;
- }
-
- retval = 0;
- }
- else
- __set_errno (EINVAL);
-
- return retval;
-}
diff --git a/sysdeps/pthread/timer_settime.c b/sysdeps/pthread/timer_settime.c
deleted file mode 100644
index c05adf166f..0000000000
--- a/sysdeps/pthread/timer_settime.c
+++ /dev/null
@@ -1,131 +0,0 @@
-/* Copyright (C) 2000-2021 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Kaz Kylheku <kaz@ashi.footprints.net>.
-
- 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; see the file COPYING.LIB. If
- not, see <https://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include <time.h>
-
-#include "posix-timer.h"
-
-
-/* Set timer TIMERID to VALUE, returning old value in OVLAUE. */
-int
-timer_settime (timer_t timerid, int flags, const struct itimerspec *value,
- struct itimerspec *ovalue)
-{
- struct timer_node *timer;
- struct thread_node *thread = NULL;
- struct timespec now;
- int have_now = 0, need_wakeup = 0;
- int retval = -1;
-
- timer = timer_id2ptr (timerid);
- if (timer == NULL)
- {
- __set_errno (EINVAL);
- goto bail;
- }
-
- if (! valid_nanoseconds (value->it_interval.tv_nsec)
- || ! valid_nanoseconds (value->it_value.tv_nsec))
- {
- __set_errno (EINVAL);
- goto bail;
- }
-
- /* Will need to know current time since this is a relative timer;
- might as well make the system call outside of the lock now! */
-
- if ((flags & TIMER_ABSTIME) == 0)
- {
- __clock_gettime (timer->clock, &now);
- have_now = 1;
- }
-
- pthread_mutex_lock (&__timer_mutex);
- timer_addref (timer);
-
- /* One final check of timer validity; this one is possible only
- until we have the mutex, because it accesses the inuse flag. */
-
- if (! timer_valid(timer))
- {
- __set_errno (EINVAL);
- goto unlock_bail;
- }
-
- if (ovalue != NULL)
- {
- ovalue->it_interval = timer->value.it_interval;
-
- if (timer->armed)
- {
- if (! have_now)
- {
- pthread_mutex_unlock (&__timer_mutex);
- __clock_gettime (timer->clock, &now);
- have_now = 1;
- pthread_mutex_lock (&__timer_mutex);
- timer_addref (timer);
- }
-
- timespec_sub (&ovalue->it_value, &timer->expirytime, &now);
- }
- else
- {
- ovalue->it_value.tv_sec = 0;
- ovalue->it_value.tv_nsec = 0;
- }
- }
-
- timer->value = *value;
-
- list_unlink_ip (&timer->links);
- timer->armed = 0;
-
- thread = timer->thread;
-
- /* A value of { 0, 0 } causes the timer to be stopped. */
- if (value->it_value.tv_sec != 0
- || __builtin_expect (value->it_value.tv_nsec != 0, 1))
- {
- if ((flags & TIMER_ABSTIME) != 0)
- /* The user specified the expiration time. */
- timer->expirytime = value->it_value;
- else
- timespec_add (&timer->expirytime, &now, &value->it_value);
-
- /* Only need to wake up the thread if timer is inserted
- at the head of the queue. */
- if (thread != NULL)
- need_wakeup = __timer_thread_queue_timer (thread, timer);
- timer->armed = 1;
- }
-
- retval = 0;
-
-unlock_bail:
- timer_delref (timer);
- pthread_mutex_unlock (&__timer_mutex);
-
-bail:
- if (thread != NULL && need_wakeup)
- __timer_thread_wakeup (thread);
-
- return retval;
-}
diff --git a/sysdeps/unix/sysv/linux/alpha/aio_cancel.c b/sysdeps/unix/sysv/linux/alpha/aio_cancel.c
index 0d6da82919..9f69b080ed 100644
--- a/sysdeps/unix/sysv/linux/alpha/aio_cancel.c
+++ b/sysdeps/unix/sysv/linux/alpha/aio_cancel.c
@@ -10,7 +10,7 @@ extern __typeof (aio_cancel) __old_aio_cancel;
#define aio_cancel __new_aio_cancel
-#include <sysdeps/pthread/aio_cancel.c>
+#include <rt/aio_cancel.c>
#undef aio_cancel
strong_alias (__new_aio_cancel, __new_aio_cancel64);
@@ -23,7 +23,7 @@ versioned_symbol (librt, __new_aio_cancel64, aio_cancel64, GLIBC_2_3);
#define aio_cancel __old_aio_cancel
#define ECANCELED 125
-#include <sysdeps/pthread/aio_cancel.c>
+#include <rt/aio_cancel.c>
#undef aio_cancel
strong_alias (__old_aio_cancel, __old_aio_cancel64);
diff --git a/sysdeps/unix/sysv/linux/sparc/aio_cancel.c b/sysdeps/unix/sysv/linux/sparc/aio_cancel.c
index 0d6da82919..9f69b080ed 100644
--- a/sysdeps/unix/sysv/linux/sparc/aio_cancel.c
+++ b/sysdeps/unix/sysv/linux/sparc/aio_cancel.c
@@ -10,7 +10,7 @@ extern __typeof (aio_cancel) __old_aio_cancel;
#define aio_cancel __new_aio_cancel
-#include <sysdeps/pthread/aio_cancel.c>
+#include <rt/aio_cancel.c>
#undef aio_cancel
strong_alias (__new_aio_cancel, __new_aio_cancel64);
@@ -23,7 +23,7 @@ versioned_symbol (librt, __new_aio_cancel64, aio_cancel64, GLIBC_2_3);
#define aio_cancel __old_aio_cancel
#define ECANCELED 125
-#include <sysdeps/pthread/aio_cancel.c>
+#include <rt/aio_cancel.c>
#undef aio_cancel
strong_alias (__old_aio_cancel, __old_aio_cancel64);
diff --git a/sysdeps/unix/sysv/linux/wordsize-64/aio_read.c b/sysdeps/unix/sysv/linux/wordsize-64/aio_read.c
index d10fc4320b..8310b484d0 100644
--- a/sysdeps/unix/sysv/linux/wordsize-64/aio_read.c
+++ b/sysdeps/unix/sysv/linux/wordsize-64/aio_read.c
@@ -1,6 +1,6 @@
#define aio_read64 __renamed_aio_read64
-#include "../../../../pthread/aio_read.c"
+#include <rt/aio_read.c>
#undef aio_read64
diff --git a/sysdeps/unix/sysv/linux/wordsize-64/aio_write.c b/sysdeps/unix/sysv/linux/wordsize-64/aio_write.c
index b0fb469cb2..60d242f88f 100644
--- a/sysdeps/unix/sysv/linux/wordsize-64/aio_write.c
+++ b/sysdeps/unix/sysv/linux/wordsize-64/aio_write.c
@@ -1,6 +1,6 @@
#define aio_write64 __renamed_aio_write64
-#include "../../../../pthread/aio_write.c"
+#include <rt/aio_write.c>
#undef aio_write64
diff --git a/sysdeps/unix/sysv/linux/wordsize-64/lio_listio.c b/sysdeps/unix/sysv/linux/wordsize-64/lio_listio.c
index 25ee5a3507..be9fe7a9c7 100644
--- a/sysdeps/unix/sysv/linux/wordsize-64/lio_listio.c
+++ b/sysdeps/unix/sysv/linux/wordsize-64/lio_listio.c
@@ -1,6 +1,6 @@
#define lio_listio64 __renamed_lio_listio64
-#include "../../../../pthread/lio_listio.c"
+#include <rt/lio_listio.c>
#undef lio_listio64
--
2.31.1
^ permalink raw reply [flat|nested] 72+ messages in thread
* Re: [PATCH 07/34] rt: Move generic implementation from sysdeps/pthread to rt
2021-06-17 18:57 ` [PATCH 07/34] rt: Move generic implementation from sysdeps/pthread to rt Florian Weimer
@ 2021-06-21 18:37 ` Adhemerval Zanella
0 siblings, 0 replies; 72+ messages in thread
From: Adhemerval Zanella @ 2021-06-21 18:37 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 17/06/2021 15:57, Florian Weimer via Libc-alpha wrote:
> The pthread-based implementation is the generic one. Replacing
> the stubs makes it clear that they do not have to be adjusted for
> the libpthread move.
>
> Result of:
>
> git mv -f sysdeps/pthread/aio_misc.h sysdeps/generic/
> git mv sysdeps/pthread/timer_routines.c sysdeps/htl/
> git mv -f sysdeps/pthread/{aio,lio,timer}_*.c rt/
>
> Followed by manual adjustment of the #include paths in
> sysdeps/unix/sysv/linux/wordsize-64, and a move of the version
> definitions formerly in sysdeps/pthread/Versions.
LGTM, thanks.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> ---
> rt/Versions | 4 +
> rt/aio_cancel.c | 129 +++-
> rt/aio_error.c | 12 +-
> rt/aio_fsync.c | 26 +-
> rt/aio_misc.c | 699 ++++++++++++++++-
> rt/aio_notify.c | 144 +++-
> rt/aio_read.c | 18 +-
> rt/aio_read64.c | 32 +-
> rt/aio_suspend.c | 237 +++++-
> rt/aio_write.c | 18 +-
> rt/aio_write64.c | 32 +-
> rt/lio_listio.c | 236 +++++-
> rt/lio_listio64.c | 33 +-
> rt/timer_create.c | 156 +++-
> rt/timer_delete.c | 58 +-
> rt/timer_getoverr.c | 33 +-
> rt/timer_gettime.c | 64 +-
> rt/timer_settime.c | 120 ++-
> sysdeps/generic/aio_misc.h | 83 +-
> sysdeps/{pthread => htl}/timer_routines.c | 0
> sysdeps/pthread/Versions | 5 -
> sysdeps/pthread/aio_cancel.c | 157 ----
> sysdeps/pthread/aio_error.c | 48 --
> sysdeps/pthread/aio_fsync.c | 57 --
> sysdeps/pthread/aio_misc.c | 721 ------------------
> sysdeps/pthread/aio_misc.h | 122 ---
> sysdeps/pthread/aio_notify.c | 157 ----
> sysdeps/pthread/aio_read.c | 30 -
> sysdeps/pthread/aio_read64.c | 30 -
> sysdeps/pthread/aio_suspend.c | 263 -------
> sysdeps/pthread/aio_write.c | 30 -
> sysdeps/pthread/aio_write64.c | 30 -
> sysdeps/pthread/lio_listio.c | 248 ------
> sysdeps/pthread/lio_listio64.c | 33 -
> sysdeps/pthread/timer_create.c | 166 ----
> sysdeps/pthread/timer_delete.c | 68 --
> sysdeps/pthread/timer_getoverr.c | 43 --
> sysdeps/pthread/timer_gettime.c | 74 --
> sysdeps/pthread/timer_settime.c | 131 ----
> sysdeps/unix/sysv/linux/alpha/aio_cancel.c | 4 +-
> sysdeps/unix/sysv/linux/sparc/aio_cancel.c | 4 +-
> .../unix/sysv/linux/wordsize-64/aio_read.c | 2 +-
> .../unix/sysv/linux/wordsize-64/aio_write.c | 2 +-
> .../unix/sysv/linux/wordsize-64/lio_listio.c | 2 +-
> 44 files changed, 2017 insertions(+), 2544 deletions(-)
> rename sysdeps/{pthread => htl}/timer_routines.c (100%)
> delete mode 100644 sysdeps/pthread/Versions
> delete mode 100644 sysdeps/pthread/aio_cancel.c
> delete mode 100644 sysdeps/pthread/aio_error.c
> delete mode 100644 sysdeps/pthread/aio_fsync.c
> delete mode 100644 sysdeps/pthread/aio_misc.c
> delete mode 100644 sysdeps/pthread/aio_misc.h
> delete mode 100644 sysdeps/pthread/aio_notify.c
> delete mode 100644 sysdeps/pthread/aio_read.c
> delete mode 100644 sysdeps/pthread/aio_read64.c
> delete mode 100644 sysdeps/pthread/aio_suspend.c
> delete mode 100644 sysdeps/pthread/aio_write.c
> delete mode 100644 sysdeps/pthread/aio_write64.c
> delete mode 100644 sysdeps/pthread/lio_listio.c
> delete mode 100644 sysdeps/pthread/lio_listio64.c
> delete mode 100644 sysdeps/pthread/timer_create.c
> delete mode 100644 sysdeps/pthread/timer_delete.c
> delete mode 100644 sysdeps/pthread/timer_getoverr.c
> delete mode 100644 sysdeps/pthread/timer_gettime.c
> delete mode 100644 sysdeps/pthread/timer_settime.c
>
> diff --git a/rt/Versions b/rt/Versions
> index 309486be1e..26c6d1ac63 100644
> --- a/rt/Versions
> +++ b/rt/Versions
> @@ -47,6 +47,10 @@ librt {
> mq_timedsend;
> mq_unlink;
> }
> + GLIBC_2.4 {
> + lio_listio;
> + lio_listio64;
> + }
> GLIBC_2.7 {
> __mq_open_2;
> }
Ok.
> diff --git a/rt/aio_cancel.c b/rt/aio_cancel.c
> index dba1e45044..63fd88f36c 100644
> --- a/rt/aio_cancel.c
> +++ b/rt/aio_cancel.c
> @@ -1,6 +1,7 @@
> -/* Cancel requests associated with given file descriptor. Stub version.
> - Copyright (C) 2001-2021 Free Software Foundation, Inc.
> +/* Cancel requests associated with given file descriptor.
> + Copyright (C) 1997-2021 Free Software Foundation, Inc.
> This file is part of the GNU C Library.
> + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
>
> The GNU C Library is free software; you can redistribute it and/or
> modify it under the terms of the GNU Lesser General Public
> @@ -22,21 +23,135 @@
> we want to avoid code duplication by using aliases. But gcc sees
> the different parameter lists and prints a warning. We define here
> a function so that aio_cancel64 has no prototype. */
> +#ifndef aio_cancel
> #define aio_cancel64 XXX
> #include <aio.h>
> /* And undo the hack. */
> #undef aio_cancel64
> +#endif
>
> +#include <assert.h>
> #include <errno.h>
> +#include <fcntl.h>
> +
> +#include <aio_misc.h>
> +
>
> int
> aio_cancel (int fildes, struct aiocb *aiocbp)
> {
> - __set_errno (ENOSYS);
> - return -1;
> + struct requestlist *req = NULL;
> + int result = AIO_ALLDONE;
> +
> + /* If fildes is invalid, error. */
> + if (fcntl (fildes, F_GETFL) < 0)
> + {
> + __set_errno (EBADF);
> + return -1;
> + }
> +
> + /* Request the mutex. */
> + pthread_mutex_lock (&__aio_requests_mutex);
> +
> + /* We are asked to cancel a specific AIO request. */
> + if (aiocbp != NULL)
> + {
> + /* If the AIO request is not for this descriptor it has no value
> + to look for the request block. */
> + if (aiocbp->aio_fildes != fildes)
> + {
> + pthread_mutex_unlock (&__aio_requests_mutex);
> + __set_errno (EINVAL);
> + return -1;
> + }
> + else if (aiocbp->__error_code == EINPROGRESS)
> + {
> + struct requestlist *last = NULL;
> +
> + req = __aio_find_req_fd (fildes);
> +
> + if (req == NULL)
> + {
> + not_found:
> + pthread_mutex_unlock (&__aio_requests_mutex);
> + __set_errno (EINVAL);
> + return -1;
> + }
> +
> + while (req->aiocbp != (aiocb_union *) aiocbp)
> + {
> + last = req;
> + req = req->next_prio;
> + if (req == NULL)
> + goto not_found;
> + }
> +
> + /* Don't remove the entry if a thread is already working on it. */
> + if (req->running == allocated)
> + {
> + result = AIO_NOTCANCELED;
> + req = NULL;
> + }
> + else
> + {
> + /* We can remove the entry. */
> + __aio_remove_request (last, req, 0);
> +
> + result = AIO_CANCELED;
> +
> + req->next_prio = NULL;
> + }
> + }
> + }
> + else
> + {
> + /* Find the beginning of the list of all requests for this
> + desriptor. */
> + req = __aio_find_req_fd (fildes);
> +
> + /* If any request is worked on by a thread it must be the first.
> + So either we can delete all requests or all but the first. */
> + if (req != NULL)
> + {
> + if (req->running == allocated)
> + {
> + struct requestlist *old = req;
> + req = req->next_prio;
> + old->next_prio = NULL;
> +
> + result = AIO_NOTCANCELED;
> +
> + if (req != NULL)
> + __aio_remove_request (old, req, 1);
> + }
> + else
> + {
> + result = AIO_CANCELED;
> +
> + /* We can remove the entry. */
> + __aio_remove_request (NULL, req, 1);
> + }
> + }
> + }
> +
> + /* Mark requests as canceled and send signal. */
> + while (req != NULL)
> + {
> + struct requestlist *old = req;
> + assert (req->running == yes || req->running == queued);
> + req->aiocbp->aiocb.__error_code = ECANCELED;
> + req->aiocbp->aiocb.__return_value = -1;
> + __aio_notify (req);
> + req = req->next_prio;
> + __aio_free_request (old);
> + }
> +
> + /* Release the mutex. */
> + pthread_mutex_unlock (&__aio_requests_mutex);
> +
> + return result;
> }
>
> +#ifndef aio_cancel
> weak_alias (aio_cancel, aio_cancel64)
> -
> -stub_warning (aio_cancel)
> -stub_warning (aio_cancel64)
> +#endif
Ok.
> diff --git a/rt/aio_error.c b/rt/aio_error.c
> index 730b64b5e9..ed664ae0ef 100644
> --- a/rt/aio_error.c
> +++ b/rt/aio_error.c
> @@ -28,11 +28,21 @@
> /* And undo the hack. */
> #undef aio_error64
>
> +#include <aio_misc.h>
> +
>
> int
> aio_error (const struct aiocb *aiocbp)
> {
> - return aiocbp->__error_code;
> + int ret;
> +
> + /* Acquire the mutex to make sure all operations for this request are
> + complete. */
> + pthread_mutex_lock(&__aio_requests_mutex);
> + ret = aiocbp->__error_code;
> + pthread_mutex_unlock(&__aio_requests_mutex);
> +
> + return ret;
> }
>
> weak_alias (aio_error, aio_error64)
Ok.
> diff --git a/rt/aio_fsync.c b/rt/aio_fsync.c
> index 86727246f8..5a52e2fec0 100644
> --- a/rt/aio_fsync.c
> +++ b/rt/aio_fsync.c
> @@ -1,6 +1,7 @@
> -/* Synchronize I/O in given file descriptor. Stub version.
> - Copyright (C) 2001-2021 Free Software Foundation, Inc.
> +/* Synchronize I/O in given file descriptor.
> + Copyright (C) 1997-2021 Free Software Foundation, Inc.
> This file is part of the GNU C Library.
> + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
>
> The GNU C Library is free software; you can redistribute it and/or
> modify it under the terms of the GNU Lesser General Public
> @@ -26,24 +27,31 @@
> #include <aio.h>
> /* And undo the hack. */
> #undef aio_fsync64
> -
> #include <errno.h>
> #include <fcntl.h>
>
> +#include <aio_misc.h>
> +
> +
> int
> aio_fsync (int op, struct aiocb *aiocbp)
> {
> - if (op != O_SYNC && op != O_DSYNC)
> + if (op != O_DSYNC && __builtin_expect (op != O_SYNC, 0))
> {
> __set_errno (EINVAL);
> return -1;
> }
>
> - __set_errno (ENOSYS);
> - return -1;
> + /* Verify that this is an open file descriptor. */
> + if (__glibc_unlikely (fcntl (aiocbp->aio_fildes, F_GETFL) == -1))
> + {
> + __set_errno (EBADF);
> + return -1;
> + }
> +
> + return (__aio_enqueue_request ((aiocb_union *) aiocbp,
> + op == O_SYNC ? LIO_SYNC : LIO_DSYNC) == NULL
> + ? -1 : 0);
> }
>
> weak_alias (aio_fsync, aio_fsync64)
> -
> -stub_warning (aio_fsync)
> -stub_warning (aio_fsync64)
Ok.
> diff --git a/rt/aio_misc.c b/rt/aio_misc.c
> index 2332f3ed53..b95f07d9d3 100644
> --- a/rt/aio_misc.c
> +++ b/rt/aio_misc.c
> @@ -1,6 +1,7 @@
> -/* Handle general operations. Stub version.
> - Copyright (C) 2001-2021 Free Software Foundation, Inc.
> +/* Handle general operations.
> + Copyright (C) 1997-2021 Free Software Foundation, Inc.
> This file is part of the GNU C Library.
> + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
>
> The GNU C Library is free software; you can redistribute it and/or
> modify it under the terms of the GNU Lesser General Public
> @@ -17,12 +18,704 @@
> <https://www.gnu.org/licenses/>. */
>
> #include <aio.h>
> +#include <assert.h>
> +#include <errno.h>
> +#include <limits.h>
> +#include <pthread.h>
> +#include <stdlib.h>
> +#include <unistd.h>
> +#include <sys/param.h>
> +#include <sys/stat.h>
> +#include <sys/time.h>
> #include <aio_misc.h>
>
> -/* This file is for internal code needed by the aio_* implementation. */
> +#ifndef aio_create_helper_thread
> +# define aio_create_helper_thread __aio_create_helper_thread
>
> +extern inline int
> +__aio_create_helper_thread (pthread_t *threadp, void *(*tf) (void *), void *arg)
> +{
> + pthread_attr_t attr;
> +
> + /* Make sure the thread is created detached. */
> + pthread_attr_init (&attr);
> + pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
> +
> + int ret = pthread_create (threadp, &attr, tf, arg);
> +
> + (void) pthread_attr_destroy (&attr);
> + return ret;
> +}
> +#endif
> +
> +static void add_request_to_runlist (struct requestlist *newrequest);
> +
> +/* Pool of request list entries. */
> +static struct requestlist **pool;
> +
> +/* Number of total and allocated pool entries. */
> +static size_t pool_max_size;
> +static size_t pool_size;
> +
> +/* We implement a two dimensional array but allocate each row separately.
> + The macro below determines how many entries should be used per row.
> + It should better be a power of two. */
> +#define ENTRIES_PER_ROW 32
> +
> +/* How many rows we allocate at once. */
> +#define ROWS_STEP 8
> +
> +/* List of available entries. */
> +static struct requestlist *freelist;
> +
> +/* List of request waiting to be processed. */
> +static struct requestlist *runlist;
> +
> +/* Structure list of all currently processed requests. */
> +static struct requestlist *requests;
> +
> +/* Number of threads currently running. */
> +static int nthreads;
> +
> +/* Number of threads waiting for work to arrive. */
> +static int idle_thread_count;
> +
> +
> +/* These are the values used to optimize the use of AIO. The user can
> + overwrite them by using the `aio_init' function. */
> +static struct aioinit optim =
> +{
> + 20, /* int aio_threads; Maximal number of threads. */
> + 64, /* int aio_num; Number of expected simultaneous requests. */
> + 0,
> + 0,
> + 0,
> + 0,
> + 1,
> + 0
> +};
> +
> +
> +/* Since the list is global we need a mutex protecting it. */
> +pthread_mutex_t __aio_requests_mutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
> +
> +/* When you add a request to the list and there are idle threads present,
> + you signal this condition variable. When a thread finishes work, it waits
> + on this condition variable for a time before it actually exits. */
> +pthread_cond_t __aio_new_request_notification = PTHREAD_COND_INITIALIZER;
> +
> +
> +/* Functions to handle request list pool. */
> +static struct requestlist *
> +get_elem (void)
> +{
> + struct requestlist *result;
> +
> + if (freelist == NULL)
> + {
> + struct requestlist *new_row;
> + int cnt;
> +
> + assert (sizeof (struct aiocb) == sizeof (struct aiocb64));
> +
> + if (pool_size + 1 >= pool_max_size)
> + {
> + size_t new_max_size = pool_max_size + ROWS_STEP;
> + struct requestlist **new_tab;
> +
> + new_tab = (struct requestlist **)
> + realloc (pool, new_max_size * sizeof (struct requestlist *));
> +
> + if (new_tab == NULL)
> + return NULL;
> +
> + pool_max_size = new_max_size;
> + pool = new_tab;
> + }
> +
> + /* Allocate the new row. */
> + cnt = pool_size == 0 ? optim.aio_num : ENTRIES_PER_ROW;
> + new_row = (struct requestlist *) calloc (cnt,
> + sizeof (struct requestlist));
> + if (new_row == NULL)
> + return NULL;
> +
> + pool[pool_size++] = new_row;
> +
> + /* Put all the new entries in the freelist. */
> + do
> + {
> + new_row->next_prio = freelist;
> + freelist = new_row++;
> + }
> + while (--cnt > 0);
> + }
> +
> + result = freelist;
> + freelist = freelist->next_prio;
> +
> + return result;
> +}
> +
> +
> +void
> +__aio_free_request (struct requestlist *elem)
> +{
> + elem->running = no;
> + elem->next_prio = freelist;
> + freelist = elem;
> +}
> +
> +
> +struct requestlist *
> +__aio_find_req (aiocb_union *elem)
> +{
> + struct requestlist *runp = requests;
> + int fildes = elem->aiocb.aio_fildes;
> +
> + while (runp != NULL && runp->aiocbp->aiocb.aio_fildes < fildes)
> + runp = runp->next_fd;
> +
> + if (runp != NULL)
> + {
> + if (runp->aiocbp->aiocb.aio_fildes != fildes)
> + runp = NULL;
> + else
> + while (runp != NULL && runp->aiocbp != elem)
> + runp = runp->next_prio;
> + }
> +
> + return runp;
> +}
> +
> +
> +struct requestlist *
> +__aio_find_req_fd (int fildes)
> +{
> + struct requestlist *runp = requests;
> +
> + while (runp != NULL && runp->aiocbp->aiocb.aio_fildes < fildes)
> + runp = runp->next_fd;
> +
> + return (runp != NULL && runp->aiocbp->aiocb.aio_fildes == fildes
> + ? runp : NULL);
> +}
> +
> +
> +void
> +__aio_remove_request (struct requestlist *last, struct requestlist *req,
> + int all)
> +{
> + assert (req->running == yes || req->running == queued
> + || req->running == done);
> +
> + if (last != NULL)
> + last->next_prio = all ? NULL : req->next_prio;
> + else
> + {
> + if (all || req->next_prio == NULL)
> + {
> + if (req->last_fd != NULL)
> + req->last_fd->next_fd = req->next_fd;
> + else
> + requests = req->next_fd;
> + if (req->next_fd != NULL)
> + req->next_fd->last_fd = req->last_fd;
> + }
> + else
> + {
> + if (req->last_fd != NULL)
> + req->last_fd->next_fd = req->next_prio;
> + else
> + requests = req->next_prio;
> +
> + if (req->next_fd != NULL)
> + req->next_fd->last_fd = req->next_prio;
> +
> + req->next_prio->last_fd = req->last_fd;
> + req->next_prio->next_fd = req->next_fd;
> +
> + /* Mark this entry as runnable. */
> + req->next_prio->running = yes;
> + }
> +
> + if (req->running == yes)
> + {
> + struct requestlist *runp = runlist;
> +
> + last = NULL;
> + while (runp != NULL)
> + {
> + if (runp == req)
> + {
> + if (last == NULL)
> + runlist = runp->next_run;
> + else
> + last->next_run = runp->next_run;
> + break;
> + }
> + last = runp;
> + runp = runp->next_run;
> + }
> + }
> + }
> +}
> +
> +
> +/* The thread handler. */
> +static void *handle_fildes_io (void *arg);
> +
> +
> +/* User optimization. */
> void
> __aio_init (const struct aioinit *init)
> {
> + /* Get the mutex. */
> + pthread_mutex_lock (&__aio_requests_mutex);
> +
> + /* Only allow writing new values if the table is not yet allocated. */
> + if (pool == NULL)
> + {
> + optim.aio_threads = init->aio_threads < 1 ? 1 : init->aio_threads;
> + assert (powerof2 (ENTRIES_PER_ROW));
> + optim.aio_num = (init->aio_num < ENTRIES_PER_ROW
> + ? ENTRIES_PER_ROW
> + : init->aio_num & ~(ENTRIES_PER_ROW - 1));
> + }
> +
> + if (init->aio_idle_time != 0)
> + optim.aio_idle_time = init->aio_idle_time;
> +
> + /* Release the mutex. */
> + pthread_mutex_unlock (&__aio_requests_mutex);
> }
> weak_alias (__aio_init, aio_init)
> +
> +
> +/* The main function of the async I/O handling. It enqueues requests
> + and if necessary starts and handles threads. */
> +struct requestlist *
> +__aio_enqueue_request (aiocb_union *aiocbp, int operation)
> +{
> + int result = 0;
> + int policy, prio;
> + struct sched_param param;
> + struct requestlist *last, *runp, *newp;
> + int running = no;
> +
> + if (operation == LIO_SYNC || operation == LIO_DSYNC)
> + aiocbp->aiocb.aio_reqprio = 0;
> + else if (aiocbp->aiocb.aio_reqprio < 0
> +#ifdef AIO_PRIO_DELTA_MAX
> + || aiocbp->aiocb.aio_reqprio > AIO_PRIO_DELTA_MAX
> +#endif
> + )
> + {
> + /* Invalid priority value. */
> + __set_errno (EINVAL);
> + aiocbp->aiocb.__error_code = EINVAL;
> + aiocbp->aiocb.__return_value = -1;
> + return NULL;
> + }
> +
> + /* Compute priority for this request. */
> + pthread_getschedparam (pthread_self (), &policy, ¶m);
> + prio = param.sched_priority - aiocbp->aiocb.aio_reqprio;
> +
> + /* Get the mutex. */
> + pthread_mutex_lock (&__aio_requests_mutex);
> +
> + last = NULL;
> + runp = requests;
> + /* First look whether the current file descriptor is currently
> + worked with. */
> + while (runp != NULL
> + && runp->aiocbp->aiocb.aio_fildes < aiocbp->aiocb.aio_fildes)
> + {
> + last = runp;
> + runp = runp->next_fd;
> + }
> +
> + /* Get a new element for the waiting list. */
> + newp = get_elem ();
> + if (newp == NULL)
> + {
> + pthread_mutex_unlock (&__aio_requests_mutex);
> + __set_errno (EAGAIN);
> + return NULL;
> + }
> + newp->aiocbp = aiocbp;
> + newp->waiting = NULL;
> +
> + aiocbp->aiocb.__abs_prio = prio;
> + aiocbp->aiocb.__policy = policy;
> + aiocbp->aiocb.aio_lio_opcode = operation;
> + aiocbp->aiocb.__error_code = EINPROGRESS;
> + aiocbp->aiocb.__return_value = 0;
> +
> + if (runp != NULL
> + && runp->aiocbp->aiocb.aio_fildes == aiocbp->aiocb.aio_fildes)
> + {
> + /* The current file descriptor is worked on. It makes no sense
> + to start another thread since this new thread would fight
> + with the running thread for the resources. But we also cannot
> + say that the thread processing this desriptor shall immediately
> + after finishing the current job process this request if there
> + are other threads in the running queue which have a higher
> + priority. */
> +
> + /* Simply enqueue it after the running one according to the
> + priority. */
> + last = NULL;
> + while (runp->next_prio != NULL
> + && runp->next_prio->aiocbp->aiocb.__abs_prio >= prio)
> + {
> + last = runp;
> + runp = runp->next_prio;
> + }
> +
> + newp->next_prio = runp->next_prio;
> + runp->next_prio = newp;
> +
> + running = queued;
> + }
> + else
> + {
> + running = yes;
> + /* Enqueue this request for a new descriptor. */
> + if (last == NULL)
> + {
> + newp->last_fd = NULL;
> + newp->next_fd = requests;
> + if (requests != NULL)
> + requests->last_fd = newp;
> + requests = newp;
> + }
> + else
> + {
> + newp->next_fd = last->next_fd;
> + newp->last_fd = last;
> + last->next_fd = newp;
> + if (newp->next_fd != NULL)
> + newp->next_fd->last_fd = newp;
> + }
> +
> + newp->next_prio = NULL;
> + last = NULL;
> + }
> +
> + if (running == yes)
> + {
> + /* We try to create a new thread for this file descriptor. The
> + function which gets called will handle all available requests
> + for this descriptor and when all are processed it will
> + terminate.
> +
> + If no new thread can be created or if the specified limit of
> + threads for AIO is reached we queue the request. */
> +
> + /* See if we need to and are able to create a thread. */
> + if (nthreads < optim.aio_threads && idle_thread_count == 0)
> + {
> + pthread_t thid;
> +
> + running = newp->running = allocated;
> +
> + /* Now try to start a thread. */
> + result = aio_create_helper_thread (&thid, handle_fildes_io, newp);
> + if (result == 0)
> + /* We managed to enqueue the request. All errors which can
> + happen now can be recognized by calls to `aio_return' and
> + `aio_error'. */
> + ++nthreads;
> + else
> + {
> + /* Reset the running flag. The new request is not running. */
> + running = newp->running = yes;
> +
> + if (nthreads == 0)
> + {
> + /* We cannot create a thread in the moment and there is
> + also no thread running. This is a problem. `errno' is
> + set to EAGAIN if this is only a temporary problem. */
> + __aio_remove_request (last, newp, 0);
> + }
> + else
> + result = 0;
> + }
> + }
> + }
> +
> + /* Enqueue the request in the run queue if it is not yet running. */
> + if (running == yes && result == 0)
> + {
> + add_request_to_runlist (newp);
> +
> + /* If there is a thread waiting for work, then let it know that we
> + have just given it something to do. */
> + if (idle_thread_count > 0)
> + pthread_cond_signal (&__aio_new_request_notification);
> + }
> +
> + if (result == 0)
> + newp->running = running;
> + else
> + {
> + /* Something went wrong. */
> + __aio_free_request (newp);
> + aiocbp->aiocb.__error_code = result;
> + __set_errno (result);
> + newp = NULL;
> + }
> +
> + /* Release the mutex. */
> + pthread_mutex_unlock (&__aio_requests_mutex);
> +
> + return newp;
> +}
> +
> +
> +static void *
> +handle_fildes_io (void *arg)
> +{
> + pthread_t self = pthread_self ();
> + struct sched_param param;
> + struct requestlist *runp = (struct requestlist *) arg;
> + aiocb_union *aiocbp;
> + int policy;
> + int fildes;
> +
> + pthread_getschedparam (self, &policy, ¶m);
> +
> + do
> + {
> + /* If runp is NULL, then we were created to service the work queue
> + in general, not to handle any particular request. In that case we
> + skip the "do work" stuff on the first pass, and go directly to the
> + "get work off the work queue" part of this loop, which is near the
> + end. */
> + if (runp == NULL)
> + pthread_mutex_lock (&__aio_requests_mutex);
> + else
> + {
> + /* Hopefully this request is marked as running. */
> + assert (runp->running == allocated);
> +
> + /* Update our variables. */
> + aiocbp = runp->aiocbp;
> + fildes = aiocbp->aiocb.aio_fildes;
> +
> + /* Change the priority to the requested value (if necessary). */
> + if (aiocbp->aiocb.__abs_prio != param.sched_priority
> + || aiocbp->aiocb.__policy != policy)
> + {
> + param.sched_priority = aiocbp->aiocb.__abs_prio;
> + policy = aiocbp->aiocb.__policy;
> + pthread_setschedparam (self, policy, ¶m);
> + }
> +
> + /* Process request pointed to by RUNP. We must not be disturbed
> + by signals. */
> + if ((aiocbp->aiocb.aio_lio_opcode & 127) == LIO_READ)
> + {
> + if (sizeof (off_t) != sizeof (off64_t)
> + && aiocbp->aiocb.aio_lio_opcode & 128)
> + aiocbp->aiocb.__return_value =
> + TEMP_FAILURE_RETRY (__pread64 (fildes, (void *)
> + aiocbp->aiocb64.aio_buf,
> + aiocbp->aiocb64.aio_nbytes,
> + aiocbp->aiocb64.aio_offset));
> + else
> + aiocbp->aiocb.__return_value =
> + TEMP_FAILURE_RETRY (__libc_pread (fildes,
> + (void *)
> + aiocbp->aiocb.aio_buf,
> + aiocbp->aiocb.aio_nbytes,
> + aiocbp->aiocb.aio_offset));
> +
> + if (aiocbp->aiocb.__return_value == -1 && errno == ESPIPE)
> + /* The Linux kernel is different from others. It returns
> + ESPIPE if using pread on a socket. Other platforms
> + simply ignore the offset parameter and behave like
> + read. */
> + aiocbp->aiocb.__return_value =
> + TEMP_FAILURE_RETRY (read (fildes,
> + (void *) aiocbp->aiocb64.aio_buf,
> + aiocbp->aiocb64.aio_nbytes));
> + }
> + else if ((aiocbp->aiocb.aio_lio_opcode & 127) == LIO_WRITE)
> + {
> + if (sizeof (off_t) != sizeof (off64_t)
> + && aiocbp->aiocb.aio_lio_opcode & 128)
> + aiocbp->aiocb.__return_value =
> + TEMP_FAILURE_RETRY (__pwrite64 (fildes, (const void *)
> + aiocbp->aiocb64.aio_buf,
> + aiocbp->aiocb64.aio_nbytes,
> + aiocbp->aiocb64.aio_offset));
> + else
> + aiocbp->aiocb.__return_value =
> + TEMP_FAILURE_RETRY (__libc_pwrite (fildes, (const void *)
> + aiocbp->aiocb.aio_buf,
> + aiocbp->aiocb.aio_nbytes,
> + aiocbp->aiocb.aio_offset));
> +
> + if (aiocbp->aiocb.__return_value == -1 && errno == ESPIPE)
> + /* The Linux kernel is different from others. It returns
> + ESPIPE if using pwrite on a socket. Other platforms
> + simply ignore the offset parameter and behave like
> + write. */
> + aiocbp->aiocb.__return_value =
> + TEMP_FAILURE_RETRY (write (fildes,
> + (void *) aiocbp->aiocb64.aio_buf,
> + aiocbp->aiocb64.aio_nbytes));
> + }
> + else if (aiocbp->aiocb.aio_lio_opcode == LIO_DSYNC)
> + aiocbp->aiocb.__return_value =
> + TEMP_FAILURE_RETRY (fdatasync (fildes));
> + else if (aiocbp->aiocb.aio_lio_opcode == LIO_SYNC)
> + aiocbp->aiocb.__return_value =
> + TEMP_FAILURE_RETRY (fsync (fildes));
> + else
> + {
> + /* This is an invalid opcode. */
> + aiocbp->aiocb.__return_value = -1;
> + __set_errno (EINVAL);
> + }
> +
> + /* Get the mutex. */
> + pthread_mutex_lock (&__aio_requests_mutex);
> +
> + if (aiocbp->aiocb.__return_value == -1)
> + aiocbp->aiocb.__error_code = errno;
> + else
> + aiocbp->aiocb.__error_code = 0;
> +
> + /* Send the signal to notify about finished processing of the
> + request. */
> + __aio_notify (runp);
> +
> + /* For debugging purposes we reset the running flag of the
> + finished request. */
> + assert (runp->running == allocated);
> + runp->running = done;
> +
> + /* Now dequeue the current request. */
> + __aio_remove_request (NULL, runp, 0);
> + if (runp->next_prio != NULL)
> + add_request_to_runlist (runp->next_prio);
> +
> + /* Free the old element. */
> + __aio_free_request (runp);
> + }
> +
> + runp = runlist;
> +
> + /* If the runlist is empty, then we sleep for a while, waiting for
> + something to arrive in it. */
> + if (runp == NULL && optim.aio_idle_time >= 0)
> + {
> + struct timespec now;
> + struct timespec wakeup_time;
> +
> + ++idle_thread_count;
> + __clock_gettime (CLOCK_REALTIME, &now);
> + wakeup_time.tv_sec = now.tv_sec + optim.aio_idle_time;
> + wakeup_time.tv_nsec = now.tv_nsec;
> + if (wakeup_time.tv_nsec >= 1000000000)
> + {
> + wakeup_time.tv_nsec -= 1000000000;
> + ++wakeup_time.tv_sec;
> + }
> + pthread_cond_timedwait (&__aio_new_request_notification,
> + &__aio_requests_mutex,
> + &wakeup_time);
> + --idle_thread_count;
> + runp = runlist;
> + }
> +
> + if (runp == NULL)
> + --nthreads;
> + else
> + {
> + assert (runp->running == yes);
> + runp->running = allocated;
> + runlist = runp->next_run;
> +
> + /* If we have a request to process, and there's still another in
> + the run list, then we need to either wake up or create a new
> + thread to service the request that is still in the run list. */
> + if (runlist != NULL)
> + {
> + /* There are at least two items in the work queue to work on.
> + If there are other idle threads, then we should wake them
> + up for these other work elements; otherwise, we should try
> + to create a new thread. */
> + if (idle_thread_count > 0)
> + pthread_cond_signal (&__aio_new_request_notification);
> + else if (nthreads < optim.aio_threads)
> + {
> + pthread_t thid;
> + pthread_attr_t attr;
> +
> + /* Make sure the thread is created detached. */
> + pthread_attr_init (&attr);
> + pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
> +
> + /* Now try to start a thread. If we fail, no big deal,
> + because we know that there is at least one thread (us)
> + that is working on AIO operations. */
> + if (pthread_create (&thid, &attr, handle_fildes_io, NULL)
> + == 0)
> + ++nthreads;
> + }
> + }
> + }
> +
> + /* Release the mutex. */
> + pthread_mutex_unlock (&__aio_requests_mutex);
> + }
> + while (runp != NULL);
> +
> + return NULL;
> +}
> +
> +
> +/* Free allocated resources. */
> +libc_freeres_fn (free_res)
> +{
> + size_t row;
> +
> + for (row = 0; row < pool_max_size; ++row)
> + free (pool[row]);
> +
> + free (pool);
> +}
> +
> +
> +/* Add newrequest to the runlist. The __abs_prio flag of newrequest must
> + be correctly set to do this. Also, you had better set newrequest's
> + "running" flag to "yes" before you release your lock or you'll throw an
> + assertion. */
> +static void
> +add_request_to_runlist (struct requestlist *newrequest)
> +{
> + int prio = newrequest->aiocbp->aiocb.__abs_prio;
> + struct requestlist *runp;
> +
> + if (runlist == NULL || runlist->aiocbp->aiocb.__abs_prio < prio)
> + {
> + newrequest->next_run = runlist;
> + runlist = newrequest;
> + }
> + else
> + {
> + runp = runlist;
> +
> + while (runp->next_run != NULL
> + && runp->next_run->aiocbp->aiocb.__abs_prio >= prio)
> + runp = runp->next_run;
> +
> + newrequest->next_run = runp->next_run;
> + runp->next_run = newrequest;
> + }
> +}
Ok.
> diff --git a/rt/aio_notify.c b/rt/aio_notify.c
> index 9d51fd9c5e..a8d61503d8 100644
> --- a/rt/aio_notify.c
> +++ b/rt/aio_notify.c
> @@ -1,6 +1,7 @@
> -/* Notify initiator of AIO request. Stub version.
> - Copyright (C) 2001-2021 Free Software Foundation, Inc.
> +/* Notify initiator of AIO request.
> + Copyright (C) 1997-2021 Free Software Foundation, Inc.
> This file is part of the GNU C Library.
> + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
>
> The GNU C Library is free software; you can redistribute it and/or
> modify it under the terms of the GNU Lesser General Public
> @@ -16,8 +17,141 @@
> License along with the GNU C Library; if not, see
> <https://www.gnu.org/licenses/>. */
>
> -#include <aio.h>
> +#include <errno.h>
> +#include <pthread.h>
> +#include <stdlib.h>
> +#include <unistd.h>
> #include <aio_misc.h>
> +#include <signal.h>
>
> -/* This file contains only internal functions used by
> - the particular aio_* implementation code. */
> +#ifndef aio_start_notify_thread
> +# define aio_start_notify_thread() do { } while (0)
> +#endif
> +
> +struct notify_func
> + {
> + void (*func) (sigval_t);
> + sigval_t value;
> + };
> +
> +static void *
> +notify_func_wrapper (void *arg)
> +{
> + aio_start_notify_thread ();
> + struct notify_func *const n = arg;
> + void (*func) (sigval_t) = n->func;
> + sigval_t value = n->value;
> + free (n);
> + (*func) (value);
> + return NULL;
> +}
> +
> +
> +int
> +__aio_notify_only (struct sigevent *sigev)
> +{
> + int result = 0;
> +
> + /* Send the signal to notify about finished processing of the request. */
> + if (__glibc_unlikely (sigev->sigev_notify == SIGEV_THREAD))
> + {
> + /* We have to start a thread. */
> + pthread_t tid;
> + pthread_attr_t attr, *pattr;
> +
> + pattr = (pthread_attr_t *) sigev->sigev_notify_attributes;
> + if (pattr == NULL)
> + {
> + pthread_attr_init (&attr);
> + pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
> + pattr = &attr;
> + }
> +
> + /* SIGEV may be freed as soon as we return, so we cannot let the
> + notification thread use that pointer. Even though a sigval_t is
> + only one word and the same size as a void *, we cannot just pass
> + the value through pthread_create as the argument and have the new
> + thread run the user's function directly, because on some machines
> + the calling convention for a union like sigval_t is different from
> + that for a pointer type like void *. */
> + struct notify_func *nf = malloc (sizeof *nf);
> + if (nf == NULL)
> + result = -1;
> + else
> + {
> + nf->func = sigev->sigev_notify_function;
> + nf->value = sigev->sigev_value;
> + if (pthread_create (&tid, pattr, notify_func_wrapper, nf) < 0)
> + {
> + free (nf);
> + result = -1;
> + }
> + }
> + }
> + else if (sigev->sigev_notify == SIGEV_SIGNAL)
> + {
> + /* We have to send a signal. */
> +#if _POSIX_REALTIME_SIGNALS > 0
> + /* Note that the standard gives us the option of using a plain
> + non-queuing signal here when SA_SIGINFO is not set for the signal. */
> + if (__aio_sigqueue (sigev->sigev_signo, sigev->sigev_value, getpid ())
> + < 0)
> + result = -1;
> +#else
> + /* There are no queued signals on this system at all. */
> + result = raise (sigev->sigev_signo);
> +#endif
> + }
> +
> + return result;
> +}
> +
> +
> +void
> +__aio_notify (struct requestlist *req)
> +{
> + struct waitlist *waitlist;
> + struct aiocb *aiocbp = &req->aiocbp->aiocb;
> +
> + if (__aio_notify_only (&aiocbp->aio_sigevent) != 0)
> + {
> + /* XXX What shall we do if already an error is set by
> + read/write/fsync? */
> + aiocbp->__error_code = errno;
> + aiocbp->__return_value = -1;
> + }
> +
> + /* Now also notify possibly waiting threads. */
> + waitlist = req->waiting;
> + while (waitlist != NULL)
> + {
> + struct waitlist *next = waitlist->next;
> +
> + if (waitlist->sigevp == NULL)
> + {
> + if (waitlist->result != NULL && aiocbp->__return_value == -1)
> + *waitlist->result = -1;
> +
> +#ifdef DONT_NEED_AIO_MISC_COND
> + AIO_MISC_NOTIFY (waitlist);
> +#else
> + /* Decrement the counter. */
> + --*waitlist->counterp;
> +
> + pthread_cond_signal (waitlist->cond);
> +#endif
> + }
> + else
> + /* This is part of an asynchronous `lio_listio' operation. If
> + this request is the last one, send the signal. */
> + if (--*waitlist->counterp == 0)
> + {
> + __aio_notify_only (waitlist->sigevp);
> + /* This is tricky. See lio_listio.c for the reason why
> + this works. */
> + free ((void *) waitlist->counterp);
> + }
> +
> + waitlist = next;
> + }
> +}
> diff --git a/rt/aio_read.c b/rt/aio_read.c
> index fcd5acea8e..4698e48b1c 100644
> --- a/rt/aio_read.c
> +++ b/rt/aio_read.c
> @@ -1,6 +1,7 @@
> -/* Asynchronous read. Stub version.
> - Copyright (C) 2001-2021 Free Software Foundation, Inc.
> +/* Asynchronous read.
> + Copyright (C) 1997-2021 Free Software Foundation, Inc.
> This file is part of the GNU C Library.
> + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
>
> The GNU C Library is free software; you can redistribute it and/or
> modify it under the terms of the GNU Lesser General Public
> @@ -17,18 +18,13 @@
> <https://www.gnu.org/licenses/>. */
>
> #include <aio.h>
> -#include <errno.h>
>
> -#ifdef BE_AIO64
> -#define aiocb aiocb64
> -#define aio_read aio_read64
> -#endif
> +#include <aio_misc.h>
> +
>
> int
> aio_read (struct aiocb *aiocbp)
> {
> - __set_errno (ENOSYS);
> - return -1;
> + return (__aio_enqueue_request ((aiocb_union *) aiocbp, LIO_READ) == NULL
> + ? -1 : 0);
> }
> -
> -stub_warning (aio_read)
Ok.
> diff --git a/rt/aio_read64.c b/rt/aio_read64.c
> index e9994aefcb..26b9b0b380 100644
> --- a/rt/aio_read64.c
> +++ b/rt/aio_read64.c
> @@ -1,2 +1,30 @@
> -#define BE_AIO64
> -#include <aio_read.c>
> +/* Asynchronous read, 64bit offset version.
> + Copyright (C) 1997-2021 Free Software Foundation, Inc.
> + This file is part of the GNU C Library.
> + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
> +
> + 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 <aio.h>
> +
> +#include <aio_misc.h>
> +
> +
> +int
> +aio_read64 (struct aiocb64 *aiocbp)
> +{
> + return (__aio_enqueue_request ((aiocb_union *) aiocbp, LIO_READ64) == NULL
> + ? -1 : 0);
> +}
Ok.
> diff --git a/rt/aio_suspend.c b/rt/aio_suspend.c
> index 32f5f7e742..6fd5b1bee2 100644
> --- a/rt/aio_suspend.c
> +++ b/rt/aio_suspend.c
> @@ -1,6 +1,7 @@
> -/* Suspend until termination of a requests. Stub version.
> - Copyright (C) 2001-2021 Free Software Foundation, Inc.
> +/* Suspend until termination of a requests.
> + Copyright (C) 1997-2021 Free Software Foundation, Inc.
> This file is part of the GNU C Library.
> + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
>
> The GNU C Library is free software; you can redistribute it and/or
> modify it under the terms of the GNU Lesser General Public
> @@ -27,18 +28,236 @@
> /* And undo the hack. */
> #undef aio_suspend64
>
> +#include <assert.h>
> #include <errno.h>
> +#include <stdbool.h>
> +#include <stdlib.h>
> #include <sys/time.h>
>
> +#include <libc-lock.h>
> +#include <aio_misc.h>
> +
> +
> +struct clparam
> +{
> + const struct aiocb *const *list;
> + struct waitlist *waitlist;
> + struct requestlist **requestlist;
> +#ifndef DONT_NEED_AIO_MISC_COND
> + pthread_cond_t *cond;
> +#endif
> + int nent;
> +};
> +
> +
> +static void
> +cleanup (void *arg)
> +{
> +#ifdef DONT_NEED_AIO_MISC_COND
> + /* Acquire the mutex. If pthread_cond_*wait is used this would
> + happen implicitly. */
> + pthread_mutex_lock (&__aio_requests_mutex);
> +#endif
> +
> + const struct clparam *param = (const struct clparam *) arg;
> +
> + /* Now remove the entry in the waiting list for all requests
> + which didn't terminate. */
> + int cnt = param->nent;
> + while (cnt-- > 0)
> + if (param->list[cnt] != NULL
> + && param->list[cnt]->__error_code == EINPROGRESS)
> + {
> + struct waitlist **listp;
> +
> + assert (param->requestlist[cnt] != NULL);
> +
> + /* There is the chance that we cannot find our entry anymore. This
> + could happen if the request terminated and restarted again. */
> + listp = ¶m->requestlist[cnt]->waiting;
> + while (*listp != NULL && *listp != ¶m->waitlist[cnt])
> + listp = &(*listp)->next;
> +
> + if (*listp != NULL)
> + *listp = (*listp)->next;
> + }
> +
> +#ifndef DONT_NEED_AIO_MISC_COND
> + /* Release the conditional variable. */
> + (void) pthread_cond_destroy (param->cond);
> +#endif
> +
> + /* Release the mutex. */
> + pthread_mutex_unlock (&__aio_requests_mutex);
> +}
> +
> +#ifdef DONT_NEED_AIO_MISC_COND
> +static int
> +__attribute__ ((noinline))
> +do_aio_misc_wait (unsigned int *cntr, const struct __timespec64 *timeout)
> +{
> + int result = 0;
> +
> + AIO_MISC_WAIT (result, *cntr, timeout, 1);
> +
> + return result;
> +}
> +#endif
>
> int
> -aio_suspend (const struct aiocb *const list[], int nent,
> - const struct timespec *timeout)
> +__aio_suspend_time64 (const struct aiocb *const list[], int nent,
> + const struct __timespec64 *timeout)
> {
> - __set_errno (ENOSYS);
> - return -1;
> + if (__glibc_unlikely (nent < 0))
> + {
> + __set_errno (EINVAL);
> + return -1;
> + }
> +
> + struct waitlist waitlist[nent];
> + struct requestlist *requestlist[nent];
> +#ifndef DONT_NEED_AIO_MISC_COND
> + pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
> +#endif
> + int cnt;
> + bool any = false;
> + int result = 0;
> + unsigned int cntr = 1;
> +
> + /* Request the mutex. */
> + pthread_mutex_lock (&__aio_requests_mutex);
> +
> + /* There is not yet a finished request. Signal the request that
> + we are working for it. */
> + for (cnt = 0; cnt < nent; ++cnt)
> + if (list[cnt] != NULL)
> + {
> + if (list[cnt]->__error_code == EINPROGRESS)
> + {
> + requestlist[cnt] = __aio_find_req ((aiocb_union *) list[cnt]);
> +
> + if (requestlist[cnt] != NULL)
> + {
> +#ifndef DONT_NEED_AIO_MISC_COND
> + waitlist[cnt].cond = &cond;
> +#endif
> + waitlist[cnt].result = NULL;
> + waitlist[cnt].next = requestlist[cnt]->waiting;
> + waitlist[cnt].counterp = &cntr;
> + waitlist[cnt].sigevp = NULL;
> + requestlist[cnt]->waiting = &waitlist[cnt];
> + any = true;
> + }
> + else
> + /* We will never suspend. */
> + break;
> + }
> + else
> + /* We will never suspend. */
> + break;
> + }
> +
> + struct __timespec64 ts;
> + if (timeout != NULL)
> + {
> + __clock_gettime64 (CLOCK_MONOTONIC, &ts);
> + ts.tv_sec += timeout->tv_sec;
> + ts.tv_nsec += timeout->tv_nsec;
> + if (ts.tv_nsec >= 1000000000)
> + {
> + ts.tv_nsec -= 1000000000;
> + ts.tv_sec++;
> + }
> + }
> +
> + /* Only if none of the entries is NULL or finished to be wait. */
> + if (cnt == nent && any)
> + {
> + struct clparam clparam =
> + {
> + .list = list,
> + .waitlist = waitlist,
> + .requestlist = requestlist,
> +#ifndef DONT_NEED_AIO_MISC_COND
> + .cond = &cond,
> +#endif
> + .nent = nent
> + };
> +
> + pthread_cleanup_push (cleanup, &clparam);
> +
> +#ifdef DONT_NEED_AIO_MISC_COND
> + result = do_aio_misc_wait (&cntr, timeout == NULL ? NULL : &ts);
> +#else
> + struct timespec ts32 = valid_timespec64_to_timespec (ts);
> + result = pthread_cond_timedwait (&cond, &__aio_requests_mutex,
> + timeout == NULL ? NULL : &ts32);
> +#endif
> +
> + pthread_cleanup_pop (0);
> + }
> +
> + /* Now remove the entry in the waiting list for all requests
> + which didn't terminate. */
> + while (cnt-- > 0)
> + if (list[cnt] != NULL && list[cnt]->__error_code == EINPROGRESS)
> + {
> + struct waitlist **listp;
> +
> + assert (requestlist[cnt] != NULL);
> +
> + /* There is the chance that we cannot find our entry anymore. This
> + could happen if the request terminated and restarted again. */
> + listp = &requestlist[cnt]->waiting;
> + while (*listp != NULL && *listp != &waitlist[cnt])
> + listp = &(*listp)->next;
> +
> + if (*listp != NULL)
> + *listp = (*listp)->next;
> + }
> +
> +#ifndef DONT_NEED_AIO_MISC_COND
> + /* Release the conditional variable. */
> + if (__glibc_unlikely (pthread_cond_destroy (&cond) != 0))
> + /* This must never happen. */
> + abort ();
> +#endif
> +
> + if (result != 0)
> + {
> +#ifndef DONT_NEED_AIO_MISC_COND
> + /* An error occurred. Possibly it's ETIMEDOUT. We have to translate
> + the timeout error report of `pthread_cond_timedwait' to the
> + form expected from `aio_suspend'. */
> + if (result == ETIMEDOUT)
> + __set_errno (EAGAIN);
> + else
> +#endif
> + __set_errno (result);
> +
> + result = -1;
> + }
> +
> + /* Release the mutex. */
> + pthread_mutex_unlock (&__aio_requests_mutex);
> +
> + return result;
> }
> -weak_alias (aio_suspend, aio_suspend64)
>
> -stub_warning (aio_suspend)
> -stub_warning (aio_suspend64)
> +#if __TIMESIZE != 64
> +librt_hidden_def (__aio_suspend_time64)
> +
> +int
> +__aio_suspend (const struct aiocb *const list[], int nent,
> + const struct timespec *timeout)
> +{
> + struct __timespec64 ts64;
> +
> + if (timeout != NULL)
> + ts64 = valid_timespec_to_timespec64 (*timeout);
> +
> + return __aio_suspend_time64 (list, nent, timeout != NULL ? &ts64 : NULL);
> +}
> +#endif
> +weak_alias (__aio_suspend, aio_suspend)
> +weak_alias (aio_suspend, aio_suspend64)
Ok.
> diff --git a/rt/aio_write.c b/rt/aio_write.c
> index 18a338e094..ea55f0dbbc 100644
> --- a/rt/aio_write.c
> +++ b/rt/aio_write.c
> @@ -1,6 +1,7 @@
> -/* Asynchronous write. Stub version.
> - Copyright (C) 2001-2021 Free Software Foundation, Inc.
> +/* Asynchronous write.
> + Copyright (C) 1997-2021 Free Software Foundation, Inc.
> This file is part of the GNU C Library.
> + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
>
> The GNU C Library is free software; you can redistribute it and/or
> modify it under the terms of the GNU Lesser General Public
> @@ -17,18 +18,13 @@
> <https://www.gnu.org/licenses/>. */
>
> #include <aio.h>
> -#include <errno.h>
>
> -#ifdef BE_AIO64
> -#define aiocb aiocb64
> -#define aio_write aio_write64
> -#endif
> +#include <aio_misc.h>
> +
>
> int
> aio_write (struct aiocb *aiocbp)
> {
> - __set_errno (ENOSYS);
> - return -1;
> + return (__aio_enqueue_request ((aiocb_union *) aiocbp, LIO_WRITE) == NULL
> + ? -1 : 0);
> }
> -
> -stub_warning (aio_write)
Ok.
> diff --git a/rt/aio_write64.c b/rt/aio_write64.c
> index 88d5c001ce..bd6dd316be 100644
> --- a/rt/aio_write64.c
> +++ b/rt/aio_write64.c
> @@ -1,2 +1,30 @@
> -#define BE_AIO64
> -#include <aio_write.c>
> +/* Asynchronous write, 64bit offset version.
> + Copyright (C) 1997-2021 Free Software Foundation, Inc.
> + This file is part of the GNU C Library.
> + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
> +
> + 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 <aio.h>
> +
> +#include <aio_misc.h>
> +
> +
> +int
> +aio_write64 (struct aiocb64 *aiocbp)
> +{
> + return (__aio_enqueue_request ((aiocb_union *) aiocbp, LIO_WRITE64) == NULL
> + ? -1 : 0);
> +}
Ok.
> diff --git a/rt/lio_listio.c b/rt/lio_listio.c
> index db4ce68afc..2cab3c2254 100644
> --- a/rt/lio_listio.c
> +++ b/rt/lio_listio.c
> @@ -1,6 +1,7 @@
> -/* Enqueue a list of read or write requests. Stub version.
> - Copyright (C) 2001-2021 Free Software Foundation, Inc.
> +/* Enqueue and list of read or write requests.
> + Copyright (C) 1997-2021 Free Software Foundation, Inc.
> This file is part of the GNU C Library.
> + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
>
> The GNU C Library is free software; you can redistribute it and/or
> modify it under the terms of the GNU Lesser General Public
> @@ -16,25 +17,232 @@
> License along with the GNU C Library; if not, see
> <https://www.gnu.org/licenses/>. */
>
> +#ifndef lio_listio
> #include <aio.h>
> +#include <assert.h>
> #include <errno.h>
> +#include <stdlib.h>
> +#include <unistd.h>
>
> -#ifdef BE_AIO64
> -#define lio_listio lio_listio64
> -#define aiocb aiocb64
> -#define aio_read aio_read64
> -#define aio_write aio_write64
> -#define aio_suspend aio_suspend64
> +#include <aio_misc.h>
> +
> +#define LIO_OPCODE_BASE 0
> +#endif
> +
> +#include <shlib-compat.h>
> +
> +
> +/* We need this special structure to handle asynchronous I/O. */
> +struct async_waitlist
> + {
> + unsigned int counter;
> + struct sigevent sigev;
> + struct waitlist list[0];
> + };
> +
> +
> +/* The code in glibc 2.1 to glibc 2.4 issued only one event when all
> + requests submitted with lio_listio finished. The existing practice
> + is to issue events for the individual requests as well. This is
> + what the new code does. */
> +#if SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_4)
> +# define LIO_MODE(mode) ((mode) & 127)
> +# define NO_INDIVIDUAL_EVENT_P(mode) ((mode) & 128)
> +#else
> +# define LIO_MODE(mode) mode
> +# define NO_INDIVIDUAL_EVENT_P(mode) 0
> +#endif
> +
> +
> +static int
> +lio_listio_internal (int mode, struct aiocb *const list[], int nent,
> + struct sigevent *sig)
> +{
> + struct sigevent defsigev;
> + struct requestlist *requests[nent];
> + int cnt;
> + volatile unsigned int total = 0;
> + int result = 0;
> +
> + if (sig == NULL)
> + {
> + defsigev.sigev_notify = SIGEV_NONE;
> + sig = &defsigev;
> + }
> +
> + /* Request the mutex. */
> + pthread_mutex_lock (&__aio_requests_mutex);
> +
> + /* Now we can enqueue all requests. Since we already acquired the
> + mutex the enqueue function need not do this. */
> + for (cnt = 0; cnt < nent; ++cnt)
> + if (list[cnt] != NULL && list[cnt]->aio_lio_opcode != LIO_NOP)
> + {
> + if (NO_INDIVIDUAL_EVENT_P (mode))
> + list[cnt]->aio_sigevent.sigev_notify = SIGEV_NONE;
> +
> + requests[cnt] = __aio_enqueue_request ((aiocb_union *) list[cnt],
> + (list[cnt]->aio_lio_opcode
> + | LIO_OPCODE_BASE));
> +
> + if (requests[cnt] != NULL)
> + /* Successfully enqueued. */
> + ++total;
> + else
> + /* Signal that we've seen an error. `errno' and the error code
> + of the aiocb will tell more. */
> + result = -1;
> + }
> + else
> + requests[cnt] = NULL;
> +
> + if (total == 0)
> + {
> + /* We don't have anything to do except signalling if we work
> + asynchronously. */
> +
> + /* Release the mutex. We do this before raising a signal since the
> + signal handler might do a `siglongjmp' and then the mutex is
> + locked forever. */
> + pthread_mutex_unlock (&__aio_requests_mutex);
> +
> + if (LIO_MODE (mode) == LIO_NOWAIT)
> + __aio_notify_only (sig);
> +
> + return result;
> + }
> + else if (LIO_MODE (mode) == LIO_WAIT)
> + {
> +#ifndef DONT_NEED_AIO_MISC_COND
> + pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
> + int oldstate;
> +#endif
> + struct waitlist waitlist[nent];
> +
> + total = 0;
> + for (cnt = 0; cnt < nent; ++cnt)
> + {
> + assert (requests[cnt] == NULL || list[cnt] != NULL);
> +
> + if (requests[cnt] != NULL && list[cnt]->aio_lio_opcode != LIO_NOP)
> + {
> +#ifndef DONT_NEED_AIO_MISC_COND
> + waitlist[cnt].cond = &cond;
> #endif
> + waitlist[cnt].result = &result;
> + waitlist[cnt].next = requests[cnt]->waiting;
> + waitlist[cnt].counterp = &total;
> + waitlist[cnt].sigevp = NULL;
> + requests[cnt]->waiting = &waitlist[cnt];
> + ++total;
> + }
> + }
>
> +#ifdef DONT_NEED_AIO_MISC_COND
> + AIO_MISC_WAIT (result, total, NULL, 0);
> +#else
> + /* Since `pthread_cond_wait'/`pthread_cond_timedwait' are cancellation
> + points we must be careful. We added entries to the waiting lists
> + which we must remove. So defer cancellation for now. */
> + pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, &oldstate);
>
> + while (total > 0)
> + pthread_cond_wait (&cond, &__aio_requests_mutex);
> +
> + /* Now it's time to restore the cancellation state. */
> + pthread_setcancelstate (oldstate, NULL);
> +
> + /* Release the conditional variable. */
> + if (pthread_cond_destroy (&cond) != 0)
> + /* This must never happen. */
> + abort ();
> +#endif
> +
> + /* If any of the I/O requests failed, return -1 and set errno. */
> + if (result != 0)
> + {
> + __set_errno (result == EINTR ? EINTR : EIO);
> + result = -1;
> + }
> + }
> + else
> + {
> + struct async_waitlist *waitlist;
> +
> + waitlist = (struct async_waitlist *)
> + malloc (sizeof (struct async_waitlist)
> + + (nent * sizeof (struct waitlist)));
> +
> + if (waitlist == NULL)
> + {
> + __set_errno (EAGAIN);
> + result = -1;
> + }
> + else
> + {
> + total = 0;
> +
> + for (cnt = 0; cnt < nent; ++cnt)
> + {
> + assert (requests[cnt] == NULL || list[cnt] != NULL);
> +
> + if (requests[cnt] != NULL
> + && list[cnt]->aio_lio_opcode != LIO_NOP)
> + {
> +#ifndef DONT_NEED_AIO_MISC_COND
> + waitlist->list[cnt].cond = NULL;
> +#endif
> + waitlist->list[cnt].result = NULL;
> + waitlist->list[cnt].next = requests[cnt]->waiting;
> + waitlist->list[cnt].counterp = &waitlist->counter;
> + waitlist->list[cnt].sigevp = &waitlist->sigev;
> + requests[cnt]->waiting = &waitlist->list[cnt];
> + ++total;
> + }
> + }
> +
> + waitlist->counter = total;
> + waitlist->sigev = *sig;
> + }
> + }
> +
> + /* Release the mutex. */
> + pthread_mutex_unlock (&__aio_requests_mutex);
> +
> + return result;
> +}
> +
> +
> +#if SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_4)
> int
> -lio_listio (int mode,
> - struct aiocb *const list[], int nent,
> - struct sigevent *sig)
> +attribute_compat_text_section
> +__lio_listio_21 (int mode, struct aiocb *const list[], int nent,
> + struct sigevent *sig)
> {
> - __set_errno (ENOSYS);
> - return -1;
> + /* Check arguments. */
> + if (mode != LIO_WAIT && mode != LIO_NOWAIT)
> + {
> + __set_errno (EINVAL);
> + return -1;
> + }
> +
> + return lio_listio_internal (mode | LIO_NO_INDIVIDUAL_EVENT, list, nent, sig);
> }
> +compat_symbol (librt, __lio_listio_21, lio_listio, GLIBC_2_1);
> +#endif
>
> -stub_warning (lio_listio)
> +
> +int
> +__lio_listio_item_notify (int mode, struct aiocb *const list[], int nent,
> + struct sigevent *sig)
> +{
> + /* Check arguments. */
> + if (mode != LIO_WAIT && mode != LIO_NOWAIT)
> + {
> + __set_errno (EINVAL);
> + return -1;
> + }
> +
> + return lio_listio_internal (mode, list, nent, sig);
> +}
> +versioned_symbol (librt, __lio_listio_item_notify, lio_listio, GLIBC_2_4);
Ok.
> diff --git a/rt/lio_listio64.c b/rt/lio_listio64.c
> index 35a571c685..111c883a2f 100644
> --- a/rt/lio_listio64.c
> +++ b/rt/lio_listio64.c
> @@ -1,2 +1,33 @@
> -#define BE_AIO64
> +/* Enqueue and list of read or write requests, 64bit offset version.
> + Copyright (C) 1997-2021 Free Software Foundation, Inc.
> + This file is part of the GNU C Library.
> + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
> +
> + 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 <aio.h>
> +#include <assert.h>
> +#include <errno.h>
> +#include <stdlib.h>
> +#include <unistd.h>
> +
> +#include <aio_misc.h>
> +
> +#define lio_listio lio_listio64
> +#define __lio_listio_21 __lio_listio64_21
> +#define __lio_listio_item_notify __lio_listio64_item_notify
> +#define aiocb aiocb64
> +#define LIO_OPCODE_BASE 128
> #include <lio_listio.c>
> diff --git a/rt/timer_create.c b/rt/timer_create.c
> index 79d4d18317..2808f5b32b 100644
> --- a/rt/timer_create.c
> +++ b/rt/timer_create.c
> @@ -1,10 +1,11 @@
> -/* Copyright (C) 1999-2021 Free Software Foundation, Inc.
> +/* Copyright (C) 2000-2021 Free Software Foundation, Inc.
> This file is part of the GNU C Library.
> + Contributed by Kaz Kylheku <kaz@ashi.footprints.net>.
>
> 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.
> + 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
> @@ -12,17 +13,154 @@
> 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/>. */
> + License along with the GNU C Library; see the file COPYING.LIB. If
> + not, see <https://www.gnu.org/licenses/>. */
>
> #include <errno.h>
> +#include <signal.h>
> +#include <pthread.h>
> #include <time.h>
> +#include <unistd.h>
> +
> +#include "posix-timer.h"
> +
>
> /* Create new per-process timer using CLOCK. */
> int
> timer_create (clockid_t clock_id, struct sigevent *evp, timer_t *timerid)
> {
> - __set_errno (ENOSYS);
> - return -1;
> + int retval = -1;
> + struct timer_node *newtimer = NULL;
> + struct thread_node *thread = NULL;
> +
> + if (0
> +#if defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0
> + || clock_id == CLOCK_PROCESS_CPUTIME_ID
> +#endif
> +#if defined _POSIX_THREAD_CPUTIME && _POSIX_THREAD_CPUTIME >= 0
> + || clock_id == CLOCK_THREAD_CPUTIME_ID
> +#endif
> + )
> + {
> + /* We don't allow timers for CPU clocks. At least not in the
> + moment. */
> + __set_errno (ENOTSUP);
> + return -1;
> + }
> +
> + if (clock_id != CLOCK_REALTIME)
> + {
> + __set_errno (EINVAL);
> + return -1;
> + }
> +
> + pthread_once (&__timer_init_once_control, __timer_init_once);
> +
> + if (__timer_init_failed)
> + {
> + __set_errno (ENOMEM);
> + return -1;
> + }
> +
> + pthread_mutex_lock (&__timer_mutex);
> +
> + newtimer = __timer_alloc ();
> + if (__glibc_unlikely (newtimer == NULL))
> + {
> + __set_errno (EAGAIN);
> + goto unlock_bail;
> + }
> +
> + if (evp != NULL)
> + newtimer->event = *evp;
> + else
> + {
> + newtimer->event.sigev_notify = SIGEV_SIGNAL;
> + newtimer->event.sigev_signo = SIGALRM;
> + newtimer->event.sigev_value.sival_ptr = newtimer;
> + newtimer->event.sigev_notify_function = 0;
> + }
> +
> + newtimer->event.sigev_notify_attributes = &newtimer->attr;
> + newtimer->creator_pid = getpid ();
> +
> + switch (__builtin_expect (newtimer->event.sigev_notify, SIGEV_SIGNAL))
> + {
> + case SIGEV_NONE:
> + case SIGEV_SIGNAL:
> + /* We have a global thread for delivering timed signals.
> + If it is not running, try to start it up. */
> + thread = &__timer_signal_thread_rclk;
> + if (! thread->exists)
> + {
> + if (__builtin_expect (__timer_thread_start (thread),
> + 1) < 0)
> + {
> + __set_errno (EAGAIN);
> + goto unlock_bail;
> + }
> + }
> + break;
> +
> + case SIGEV_THREAD:
> + /* Copy over thread attributes or set up default ones. */
> + if (evp->sigev_notify_attributes)
> + newtimer->attr = *(pthread_attr_t *) evp->sigev_notify_attributes;
> + else
> + pthread_attr_init (&newtimer->attr);
> +
> + /* Ensure thread attributes call for deatched thread. */
> + pthread_attr_setdetachstate (&newtimer->attr, PTHREAD_CREATE_DETACHED);
> +
> + /* Try to find existing thread having the right attributes. */
> + thread = __timer_thread_find_matching (&newtimer->attr, clock_id);
> +
> + /* If no existing thread has these attributes, try to allocate one. */
> + if (thread == NULL)
> + thread = __timer_thread_alloc (&newtimer->attr, clock_id);
> +
> + /* Out of luck; no threads are available. */
> + if (__glibc_unlikely (thread == NULL))
> + {
> + __set_errno (EAGAIN);
> + goto unlock_bail;
> + }
> +
> + /* If the thread is not running already, try to start it. */
> + if (! thread->exists
> + && __builtin_expect (! __timer_thread_start (thread), 0))
> + {
> + __set_errno (EAGAIN);
> + goto unlock_bail;
> + }
> + break;
> +
> + default:
> + __set_errno (EINVAL);
> + goto unlock_bail;
> + }
> +
> + newtimer->clock = clock_id;
> + newtimer->abstime = 0;
> + newtimer->armed = 0;
> + newtimer->thread = thread;
> +
> + *timerid = timer_ptr2id (newtimer);
> + retval = 0;
> +
> + if (__builtin_expect (retval, 0) == -1)
> + {
> + unlock_bail:
> + if (thread != NULL)
> + __timer_thread_dealloc (thread);
> + if (newtimer != NULL)
> + {
> + timer_delref (newtimer);
> + __timer_dealloc (newtimer);
> + }
> + }
> +
> + pthread_mutex_unlock (&__timer_mutex);
> +
> + return retval;
> }
> -stub_warning (timer_create)
Ok.
> diff --git a/rt/timer_delete.c b/rt/timer_delete.c
> index 71da429e8b..c6f6d9743d 100644
> --- a/rt/timer_delete.c
> +++ b/rt/timer_delete.c
> @@ -1,10 +1,11 @@
> -/* Copyright (C) 1999-2021 Free Software Foundation, Inc.
> +/* Copyright (C) 2000-2021 Free Software Foundation, Inc.
> This file is part of the GNU C Library.
> + Contributed by Kaz Kylheku <kaz@ashi.footprints.net>.
>
> 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.
> + 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
> @@ -12,17 +13,56 @@
> 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/>. */
> + License along with the GNU C Library; see the file COPYING.LIB. If
> + not, see <https://www.gnu.org/licenses/>. */
>
> +#include <assert.h>
> #include <errno.h>
> +#include <pthread.h>
> #include <time.h>
>
> +#include "posix-timer.h"
> +
> +
> /* Delete timer TIMERID. */
> int
> timer_delete (timer_t timerid)
> {
> - __set_errno (ENOSYS);
> - return -1;
> + struct timer_node *timer;
> + int retval = -1;
> +
> + pthread_mutex_lock (&__timer_mutex);
> +
> + timer = timer_id2ptr (timerid);
> + if (! timer_valid (timer))
> + /* Invalid timer ID or the timer is not in use. */
> + __set_errno (EINVAL);
> + else
> + {
> + if (timer->armed && timer->thread != NULL)
> + {
> + struct thread_node *thread = timer->thread;
> + assert (thread != NULL);
> +
> + /* If thread is cancelled while waiting for handler to terminate,
> + the mutex is unlocked and timer_delete is aborted. */
> + pthread_cleanup_push (__timer_mutex_cancel_handler, &__timer_mutex);
> +
> + /* If timer is currently being serviced, wait for it to finish. */
> + while (thread->current_timer == timer)
> + pthread_cond_wait (&thread->cond, &__timer_mutex);
> +
> + pthread_cleanup_pop (0);
> + }
> +
> + /* Remove timer from whatever queue it may be on and deallocate it. */
> + timer->inuse = TIMER_DELETED;
> + list_unlink_ip (&timer->links);
> + timer_delref (timer);
> + retval = 0;
> + }
> +
> + pthread_mutex_unlock (&__timer_mutex);
> +
> + return retval;
> }
> -stub_warning (timer_delete)
Ok.
> diff --git a/rt/timer_getoverr.c b/rt/timer_getoverr.c
> index 3680ba687f..c1952f80c6 100644
> --- a/rt/timer_getoverr.c
> +++ b/rt/timer_getoverr.c
> @@ -1,10 +1,11 @@
> -/* Copyright (C) 1999-2021 Free Software Foundation, Inc.
> +/* Copyright (C) 2000-2021 Free Software Foundation, Inc.
> This file is part of the GNU C Library.
> + Contributed by Kaz Kylheku <kaz@ashi.footprints.net>.
>
> 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.
> + 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
> @@ -12,17 +13,31 @@
> 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/>. */
> + License along with the GNU C Library; see the file COPYING.LIB. If
> + not, see <https://www.gnu.org/licenses/>. */
>
> #include <errno.h>
> +#include <pthread.h>
> #include <time.h>
>
> +#include "posix-timer.h"
> +
> +
> /* Get expiration overrun for timer TIMERID. */
> int
> timer_getoverrun (timer_t timerid)
> {
> - __set_errno (ENOSYS);
> - return -1;
> + struct timer_node *timer;
> + int retval = -1;
> +
> + pthread_mutex_lock (&__timer_mutex);
> +
> + if (! timer_valid (timer = timer_id2ptr (timerid)))
> + __set_errno (EINVAL);
> + else
> + retval = timer->overrun_count;
> +
> + pthread_mutex_unlock (&__timer_mutex);
> +
> + return retval;
> }
> -stub_warning (timer_getoverrun)
Ok.
> diff --git a/rt/timer_gettime.c b/rt/timer_gettime.c
> index 7bd94386a4..dd3b4a6281 100644
> --- a/rt/timer_gettime.c
> +++ b/rt/timer_gettime.c
> @@ -1,10 +1,11 @@
> -/* Copyright (C) 1999-2021 Free Software Foundation, Inc.
> +/* Copyright (C) 2000-2021 Free Software Foundation, Inc.
> This file is part of the GNU C Library.
> + Contributed by Kaz Kylheku <kaz@ashi.footprints.net>.
>
> 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.
> + 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
> @@ -12,17 +13,62 @@
> 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/>. */
> + License along with the GNU C Library; see the file COPYING.LIB. If
> + not, see <https://www.gnu.org/licenses/>. */
>
> #include <errno.h>
> +#include <pthread.h>
> #include <time.h>
>
> +#include "posix-timer.h"
> +
> +
> /* Get current value of timer TIMERID and store it in VLAUE. */
> int
> timer_gettime (timer_t timerid, struct itimerspec *value)
> {
> - __set_errno (ENOSYS);
> - return -1;
> + struct timer_node *timer;
> + struct timespec now, expiry;
> + int retval = -1, armed = 0, valid;
> + clock_t clock = 0;
> +
> + pthread_mutex_lock (&__timer_mutex);
> +
> + timer = timer_id2ptr (timerid);
> + valid = timer_valid (timer);
> +
> + if (valid) {
> + armed = timer->armed;
> + expiry = timer->expirytime;
> + clock = timer->clock;
> + value->it_interval = timer->value.it_interval;
> + }
> +
> + pthread_mutex_unlock (&__timer_mutex);
> +
> + if (valid)
> + {
> + if (armed)
> + {
> + __clock_gettime (clock, &now);
> + if (timespec_compare (&now, &expiry) < 0)
> + timespec_sub (&value->it_value, &expiry, &now);
> + else
> + {
> + value->it_value.tv_sec = 0;
> + value->it_value.tv_nsec = 0;
> + }
> + }
> + else
> + {
> + value->it_value.tv_sec = 0;
> + value->it_value.tv_nsec = 0;
> + }
> +
> + retval = 0;
> + }
> + else
> + __set_errno (EINVAL);
> +
> + return retval;
> }
> -stub_warning (timer_gettime)
Ok.
> diff --git a/rt/timer_settime.c b/rt/timer_settime.c
> index cde0e742fc..c05adf166f 100644
> --- a/rt/timer_settime.c
> +++ b/rt/timer_settime.c
> @@ -1,10 +1,11 @@
> -/* Copyright (C) 1999-2021 Free Software Foundation, Inc.
> +/* Copyright (C) 2000-2021 Free Software Foundation, Inc.
> This file is part of the GNU C Library.
> + Contributed by Kaz Kylheku <kaz@ashi.footprints.net>.
>
> 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.
> + 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
> @@ -12,18 +13,119 @@
> 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/>. */
> + License along with the GNU C Library; see the file COPYING.LIB. If
> + not, see <https://www.gnu.org/licenses/>. */
>
> #include <errno.h>
> +#include <pthread.h>
> #include <time.h>
>
> +#include "posix-timer.h"
> +
> +
> /* Set timer TIMERID to VALUE, returning old value in OVLAUE. */
> int
> timer_settime (timer_t timerid, int flags, const struct itimerspec *value,
> struct itimerspec *ovalue)
> {
> - __set_errno (ENOSYS);
> - return -1;
> + struct timer_node *timer;
> + struct thread_node *thread = NULL;
> + struct timespec now;
> + int have_now = 0, need_wakeup = 0;
> + int retval = -1;
> +
> + timer = timer_id2ptr (timerid);
> + if (timer == NULL)
> + {
> + __set_errno (EINVAL);
> + goto bail;
> + }
> +
> + if (! valid_nanoseconds (value->it_interval.tv_nsec)
> + || ! valid_nanoseconds (value->it_value.tv_nsec))
> + {
> + __set_errno (EINVAL);
> + goto bail;
> + }
> +
> + /* Will need to know current time since this is a relative timer;
> + might as well make the system call outside of the lock now! */
> +
> + if ((flags & TIMER_ABSTIME) == 0)
> + {
> + __clock_gettime (timer->clock, &now);
> + have_now = 1;
> + }
> +
> + pthread_mutex_lock (&__timer_mutex);
> + timer_addref (timer);
> +
> + /* One final check of timer validity; this one is possible only
> + until we have the mutex, because it accesses the inuse flag. */
> +
> + if (! timer_valid(timer))
> + {
> + __set_errno (EINVAL);
> + goto unlock_bail;
> + }
> +
> + if (ovalue != NULL)
> + {
> + ovalue->it_interval = timer->value.it_interval;
> +
> + if (timer->armed)
> + {
> + if (! have_now)
> + {
> + pthread_mutex_unlock (&__timer_mutex);
> + __clock_gettime (timer->clock, &now);
> + have_now = 1;
> + pthread_mutex_lock (&__timer_mutex);
> + timer_addref (timer);
> + }
> +
> + timespec_sub (&ovalue->it_value, &timer->expirytime, &now);
> + }
> + else
> + {
> + ovalue->it_value.tv_sec = 0;
> + ovalue->it_value.tv_nsec = 0;
> + }
> + }
> +
> + timer->value = *value;
> +
> + list_unlink_ip (&timer->links);
> + timer->armed = 0;
> +
> + thread = timer->thread;
> +
> + /* A value of { 0, 0 } causes the timer to be stopped. */
> + if (value->it_value.tv_sec != 0
> + || __builtin_expect (value->it_value.tv_nsec != 0, 1))
> + {
> + if ((flags & TIMER_ABSTIME) != 0)
> + /* The user specified the expiration time. */
> + timer->expirytime = value->it_value;
> + else
> + timespec_add (&timer->expirytime, &now, &value->it_value);
> +
> + /* Only need to wake up the thread if timer is inserted
> + at the head of the queue. */
> + if (thread != NULL)
> + need_wakeup = __timer_thread_queue_timer (thread, timer);
> + timer->armed = 1;
> + }
> +
> + retval = 0;
> +
> +unlock_bail:
> + timer_delref (timer);
> + pthread_mutex_unlock (&__timer_mutex);
> +
> +bail:
> + if (thread != NULL && need_wakeup)
> + __timer_thread_wakeup (thread);
> +
> + return retval;
> }
> -stub_warning (timer_settime)
Ok.
> diff --git a/sysdeps/generic/aio_misc.h b/sysdeps/generic/aio_misc.h
> index 1307d822a0..e23524cffe 100644
> --- a/sysdeps/generic/aio_misc.h
> +++ b/sysdeps/generic/aio_misc.h
> @@ -1,5 +1,4 @@
> -/* Internal declarations for <aio.h> functions implementation. Stub version.
> - Copyright (C) 2001-2021 Free Software Foundation, Inc.
> +/* Copyright (C) 1997-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
> @@ -20,17 +19,19 @@
> #define _AIO_MISC_H 1
>
> #include <aio.h>
> +#include <pthread.h>
>
>
> /* Extend the operation enum. */
> enum
> {
> - LIO_DSYNC = LIO_READ + 1,
> + LIO_DSYNC = LIO_NOP + 1,
> LIO_SYNC,
> LIO_READ64 = LIO_READ | 128,
> LIO_WRITE64 = LIO_WRITE | 128
> };
>
> +
> /* Union of the two request types. */
> typedef union
> {
> @@ -39,9 +40,83 @@ typedef union
> } aiocb_union;
>
>
> +/* Used to synchronize. */
> +struct waitlist
> + {
> + struct waitlist *next;
> +
> + /* The next two fields is used in synchronous `lio_listio' operations. */
> +#ifndef DONT_NEED_AIO_MISC_COND
> + pthread_cond_t *cond;
> +#endif
> + int *result;
> +
> + volatile unsigned int *counterp;
> + /* The next field is used in asynchronous `lio_listio' operations. */
> + struct sigevent *sigevp;
> + };
> +
> +
> +/* Status of a request. */
> +enum
> +{
> + no,
> + queued,
> + yes,
> + allocated,
> + done
> +};
> +
> +
> +/* Used to queue requests.. */
> +struct requestlist
> + {
> + int running;
> +
> + struct requestlist *last_fd;
> + struct requestlist *next_fd;
> + struct requestlist *next_prio;
> + struct requestlist *next_run;
> +
> + /* Pointer to the actual data. */
> + aiocb_union *aiocbp;
> +
> + /* List of waiting processes. */
> + struct waitlist *waiting;
> + };
> +
> +
> +/* Lock for global I/O list of requests. */
> +extern pthread_mutex_t __aio_requests_mutex attribute_hidden;
> +
> +
> +/* Enqueue request. */
> +extern struct requestlist *__aio_enqueue_request (aiocb_union *aiocbp,
> + int operation)
> + attribute_hidden;
> +
> +/* Find request entry for given AIO control block. */
> +extern struct requestlist *__aio_find_req (aiocb_union *elem) attribute_hidden;
> +
> +/* Find request entry for given file descriptor. */
> +extern struct requestlist *__aio_find_req_fd (int fildes) attribute_hidden;
> +
> +/* Remove request from the list. */
> +extern void __aio_remove_request (struct requestlist *last,
> + struct requestlist *req, int all)
> + attribute_hidden;
> +
> +/* Release the entry for the request. */
> +extern void __aio_free_request (struct requestlist *req) attribute_hidden;
> +
> +/* Notify initiator of request and tell this everybody listening. */
> +extern void __aio_notify (struct requestlist *req) attribute_hidden;
> +
> +/* Notify initiator of request. */
> +extern int __aio_notify_only (struct sigevent *sigev) attribute_hidden;
> +
> /* Send the signal. */
> extern int __aio_sigqueue (int sig, const union sigval val, pid_t caller_pid)
> attribute_hidden;
>
> -
> #endif /* aio_misc.h */
Ok.
> diff --git a/sysdeps/pthread/timer_routines.c b/sysdeps/htl/timer_routines.c
> similarity index 100%
> rename from sysdeps/pthread/timer_routines.c
> rename to sysdeps/htl/timer_routines.c
> diff --git a/sysdeps/pthread/Versions b/sysdeps/pthread/Versions
> deleted file mode 100644
> index a71cffbed4..0000000000
> --- a/sysdeps/pthread/Versions
> +++ /dev/null
> @@ -1,5 +0,0 @@
> -librt {
> - GLIBC_2.4 {
> - lio_listio; lio_listio64;
> - }
> -}
Ok.
> diff --git a/sysdeps/pthread/aio_cancel.c b/sysdeps/pthread/aio_cancel.c
> deleted file mode 100644
> index 63fd88f36c..0000000000
> --- a/sysdeps/pthread/aio_cancel.c
> +++ /dev/null
> @@ -1,157 +0,0 @@
> -/* Cancel requests associated with given file descriptor.
> - Copyright (C) 1997-2021 Free Software Foundation, Inc.
> - This file is part of the GNU C Library.
> - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
> -
> - 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/>. */
> -
> -
> -/* We use an UGLY hack to prevent gcc from finding us cheating. The
> - implementation of aio_cancel and aio_cancel64 are identical and so
> - we want to avoid code duplication by using aliases. But gcc sees
> - the different parameter lists and prints a warning. We define here
> - a function so that aio_cancel64 has no prototype. */
> -#ifndef aio_cancel
> -#define aio_cancel64 XXX
> -#include <aio.h>
> -/* And undo the hack. */
> -#undef aio_cancel64
> -#endif
> -
> -#include <assert.h>
> -#include <errno.h>
> -#include <fcntl.h>
> -
> -#include <aio_misc.h>
> -
> -
> -int
> -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)
> - {
> - __set_errno (EBADF);
> - return -1;
> - }
> -
> - /* Request the mutex. */
> - pthread_mutex_lock (&__aio_requests_mutex);
> -
> - /* We are asked to cancel a specific AIO request. */
> - if (aiocbp != NULL)
> - {
> - /* If the AIO request is not for this descriptor it has no value
> - to look for the request block. */
> - if (aiocbp->aio_fildes != fildes)
> - {
> - pthread_mutex_unlock (&__aio_requests_mutex);
> - __set_errno (EINVAL);
> - return -1;
> - }
> - else if (aiocbp->__error_code == EINPROGRESS)
> - {
> - struct requestlist *last = NULL;
> -
> - req = __aio_find_req_fd (fildes);
> -
> - if (req == NULL)
> - {
> - not_found:
> - pthread_mutex_unlock (&__aio_requests_mutex);
> - __set_errno (EINVAL);
> - return -1;
> - }
> -
> - while (req->aiocbp != (aiocb_union *) aiocbp)
> - {
> - last = req;
> - req = req->next_prio;
> - if (req == NULL)
> - goto not_found;
> - }
> -
> - /* Don't remove the entry if a thread is already working on it. */
> - if (req->running == allocated)
> - {
> - result = AIO_NOTCANCELED;
> - req = NULL;
> - }
> - else
> - {
> - /* We can remove the entry. */
> - __aio_remove_request (last, req, 0);
> -
> - result = AIO_CANCELED;
> -
> - req->next_prio = NULL;
> - }
> - }
> - }
> - else
> - {
> - /* Find the beginning of the list of all requests for this
> - desriptor. */
> - req = __aio_find_req_fd (fildes);
> -
> - /* If any request is worked on by a thread it must be the first.
> - So either we can delete all requests or all but the first. */
> - if (req != NULL)
> - {
> - if (req->running == allocated)
> - {
> - struct requestlist *old = req;
> - req = req->next_prio;
> - old->next_prio = NULL;
> -
> - result = AIO_NOTCANCELED;
> -
> - if (req != NULL)
> - __aio_remove_request (old, req, 1);
> - }
> - else
> - {
> - result = AIO_CANCELED;
> -
> - /* We can remove the entry. */
> - __aio_remove_request (NULL, req, 1);
> - }
> - }
> - }
> -
> - /* Mark requests as canceled and send signal. */
> - while (req != NULL)
> - {
> - struct requestlist *old = req;
> - assert (req->running == yes || req->running == queued);
> - req->aiocbp->aiocb.__error_code = ECANCELED;
> - req->aiocbp->aiocb.__return_value = -1;
> - __aio_notify (req);
> - req = req->next_prio;
> - __aio_free_request (old);
> - }
> -
> - /* Release the mutex. */
> - pthread_mutex_unlock (&__aio_requests_mutex);
> -
> - return result;
> -}
> -
> -#ifndef aio_cancel
> -weak_alias (aio_cancel, aio_cancel64)
> -#endif
Ok.
> diff --git a/sysdeps/pthread/aio_error.c b/sysdeps/pthread/aio_error.c
> deleted file mode 100644
> index ed664ae0ef..0000000000
> --- a/sysdeps/pthread/aio_error.c
> +++ /dev/null
> @@ -1,48 +0,0 @@
> -/* Return error status of asynchronous I/O request.
> - Copyright (C) 1997-2021 Free Software Foundation, Inc.
> - This file is part of the GNU C Library.
> - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
> -
> - 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/>. */
> -
> -
> -/* We use an UGLY hack to prevent gcc from finding us cheating. The
> - implementation of aio_error and aio_error64 are identical and so
> - we want to avoid code duplication by using aliases. But gcc sees
> - the different parameter lists and prints a warning. We define here
> - a function so that aio_error64 has no prototype. */
> -#define aio_error64 XXX
> -#include <aio.h>
> -/* And undo the hack. */
> -#undef aio_error64
> -
> -#include <aio_misc.h>
> -
> -
> -int
> -aio_error (const struct aiocb *aiocbp)
> -{
> - int ret;
> -
> - /* Acquire the mutex to make sure all operations for this request are
> - complete. */
> - pthread_mutex_lock(&__aio_requests_mutex);
> - ret = aiocbp->__error_code;
> - pthread_mutex_unlock(&__aio_requests_mutex);
> -
> - return ret;
> -}
> -
> -weak_alias (aio_error, aio_error64)
Ok.
> diff --git a/sysdeps/pthread/aio_fsync.c b/sysdeps/pthread/aio_fsync.c
> deleted file mode 100644
> index 5a52e2fec0..0000000000
> --- a/sysdeps/pthread/aio_fsync.c
> +++ /dev/null
> @@ -1,57 +0,0 @@
> -/* Synchronize I/O in given file descriptor.
> - Copyright (C) 1997-2021 Free Software Foundation, Inc.
> - This file is part of the GNU C Library.
> - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
> -
> - 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/>. */
> -
> -
> -/* We use an UGLY hack to prevent gcc from finding us cheating. The
> - implementation of aio_fsync and aio_fsync64 are identical and so
> - we want to avoid code duplication by using aliases. But gcc sees
> - the different parameter lists and prints a warning. We define here
> - a function so that aio_fsync64 has no prototype. */
> -#define aio_fsync64 XXX
> -#include <aio.h>
> -/* And undo the hack. */
> -#undef aio_fsync64
> -#include <errno.h>
> -#include <fcntl.h>
> -
> -#include <aio_misc.h>
> -
> -
> -int
> -aio_fsync (int op, struct aiocb *aiocbp)
> -{
> - if (op != O_DSYNC && __builtin_expect (op != O_SYNC, 0))
> - {
> - __set_errno (EINVAL);
> - return -1;
> - }
> -
> - /* Verify that this is an open file descriptor. */
> - if (__glibc_unlikely (fcntl (aiocbp->aio_fildes, F_GETFL) == -1))
> - {
> - __set_errno (EBADF);
> - return -1;
> - }
> -
> - return (__aio_enqueue_request ((aiocb_union *) aiocbp,
> - op == O_SYNC ? LIO_SYNC : LIO_DSYNC) == NULL
> - ? -1 : 0);
> -}
> -
> -weak_alias (aio_fsync, aio_fsync64)
Ok.
> diff --git a/sysdeps/pthread/aio_misc.c b/sysdeps/pthread/aio_misc.c
> deleted file mode 100644
> index b95f07d9d3..0000000000
> --- a/sysdeps/pthread/aio_misc.c
> +++ /dev/null
> @@ -1,721 +0,0 @@
> -/* Handle general operations.
> - Copyright (C) 1997-2021 Free Software Foundation, Inc.
> - This file is part of the GNU C Library.
> - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
> -
> - 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 <aio.h>
> -#include <assert.h>
> -#include <errno.h>
> -#include <limits.h>
> -#include <pthread.h>
> -#include <stdlib.h>
> -#include <unistd.h>
> -#include <sys/param.h>
> -#include <sys/stat.h>
> -#include <sys/time.h>
> -#include <aio_misc.h>
> -
> -#ifndef aio_create_helper_thread
> -# define aio_create_helper_thread __aio_create_helper_thread
> -
> -extern inline int
> -__aio_create_helper_thread (pthread_t *threadp, void *(*tf) (void *), void *arg)
> -{
> - pthread_attr_t attr;
> -
> - /* Make sure the thread is created detached. */
> - pthread_attr_init (&attr);
> - pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
> -
> - int ret = pthread_create (threadp, &attr, tf, arg);
> -
> - (void) pthread_attr_destroy (&attr);
> - return ret;
> -}
> -#endif
> -
> -static void add_request_to_runlist (struct requestlist *newrequest);
> -
> -/* Pool of request list entries. */
> -static struct requestlist **pool;
> -
> -/* Number of total and allocated pool entries. */
> -static size_t pool_max_size;
> -static size_t pool_size;
> -
> -/* We implement a two dimensional array but allocate each row separately.
> - The macro below determines how many entries should be used per row.
> - It should better be a power of two. */
> -#define ENTRIES_PER_ROW 32
> -
> -/* How many rows we allocate at once. */
> -#define ROWS_STEP 8
> -
> -/* List of available entries. */
> -static struct requestlist *freelist;
> -
> -/* List of request waiting to be processed. */
> -static struct requestlist *runlist;
> -
> -/* Structure list of all currently processed requests. */
> -static struct requestlist *requests;
> -
> -/* Number of threads currently running. */
> -static int nthreads;
> -
> -/* Number of threads waiting for work to arrive. */
> -static int idle_thread_count;
> -
> -
> -/* These are the values used to optimize the use of AIO. The user can
> - overwrite them by using the `aio_init' function. */
> -static struct aioinit optim =
> -{
> - 20, /* int aio_threads; Maximal number of threads. */
> - 64, /* int aio_num; Number of expected simultaneous requests. */
> - 0,
> - 0,
> - 0,
> - 0,
> - 1,
> - 0
> -};
> -
> -
> -/* Since the list is global we need a mutex protecting it. */
> -pthread_mutex_t __aio_requests_mutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
> -
> -/* When you add a request to the list and there are idle threads present,
> - you signal this condition variable. When a thread finishes work, it waits
> - on this condition variable for a time before it actually exits. */
> -pthread_cond_t __aio_new_request_notification = PTHREAD_COND_INITIALIZER;
> -
> -
> -/* Functions to handle request list pool. */
> -static struct requestlist *
> -get_elem (void)
> -{
> - struct requestlist *result;
> -
> - if (freelist == NULL)
> - {
> - struct requestlist *new_row;
> - int cnt;
> -
> - assert (sizeof (struct aiocb) == sizeof (struct aiocb64));
> -
> - if (pool_size + 1 >= pool_max_size)
> - {
> - size_t new_max_size = pool_max_size + ROWS_STEP;
> - struct requestlist **new_tab;
> -
> - new_tab = (struct requestlist **)
> - realloc (pool, new_max_size * sizeof (struct requestlist *));
> -
> - if (new_tab == NULL)
> - return NULL;
> -
> - pool_max_size = new_max_size;
> - pool = new_tab;
> - }
> -
> - /* Allocate the new row. */
> - cnt = pool_size == 0 ? optim.aio_num : ENTRIES_PER_ROW;
> - new_row = (struct requestlist *) calloc (cnt,
> - sizeof (struct requestlist));
> - if (new_row == NULL)
> - return NULL;
> -
> - pool[pool_size++] = new_row;
> -
> - /* Put all the new entries in the freelist. */
> - do
> - {
> - new_row->next_prio = freelist;
> - freelist = new_row++;
> - }
> - while (--cnt > 0);
> - }
> -
> - result = freelist;
> - freelist = freelist->next_prio;
> -
> - return result;
> -}
> -
> -
> -void
> -__aio_free_request (struct requestlist *elem)
> -{
> - elem->running = no;
> - elem->next_prio = freelist;
> - freelist = elem;
> -}
> -
> -
> -struct requestlist *
> -__aio_find_req (aiocb_union *elem)
> -{
> - struct requestlist *runp = requests;
> - int fildes = elem->aiocb.aio_fildes;
> -
> - while (runp != NULL && runp->aiocbp->aiocb.aio_fildes < fildes)
> - runp = runp->next_fd;
> -
> - if (runp != NULL)
> - {
> - if (runp->aiocbp->aiocb.aio_fildes != fildes)
> - runp = NULL;
> - else
> - while (runp != NULL && runp->aiocbp != elem)
> - runp = runp->next_prio;
> - }
> -
> - return runp;
> -}
> -
> -
> -struct requestlist *
> -__aio_find_req_fd (int fildes)
> -{
> - struct requestlist *runp = requests;
> -
> - while (runp != NULL && runp->aiocbp->aiocb.aio_fildes < fildes)
> - runp = runp->next_fd;
> -
> - return (runp != NULL && runp->aiocbp->aiocb.aio_fildes == fildes
> - ? runp : NULL);
> -}
> -
> -
> -void
> -__aio_remove_request (struct requestlist *last, struct requestlist *req,
> - int all)
> -{
> - assert (req->running == yes || req->running == queued
> - || req->running == done);
> -
> - if (last != NULL)
> - last->next_prio = all ? NULL : req->next_prio;
> - else
> - {
> - if (all || req->next_prio == NULL)
> - {
> - if (req->last_fd != NULL)
> - req->last_fd->next_fd = req->next_fd;
> - else
> - requests = req->next_fd;
> - if (req->next_fd != NULL)
> - req->next_fd->last_fd = req->last_fd;
> - }
> - else
> - {
> - if (req->last_fd != NULL)
> - req->last_fd->next_fd = req->next_prio;
> - else
> - requests = req->next_prio;
> -
> - if (req->next_fd != NULL)
> - req->next_fd->last_fd = req->next_prio;
> -
> - req->next_prio->last_fd = req->last_fd;
> - req->next_prio->next_fd = req->next_fd;
> -
> - /* Mark this entry as runnable. */
> - req->next_prio->running = yes;
> - }
> -
> - if (req->running == yes)
> - {
> - struct requestlist *runp = runlist;
> -
> - last = NULL;
> - while (runp != NULL)
> - {
> - if (runp == req)
> - {
> - if (last == NULL)
> - runlist = runp->next_run;
> - else
> - last->next_run = runp->next_run;
> - break;
> - }
> - last = runp;
> - runp = runp->next_run;
> - }
> - }
> - }
> -}
> -
> -
> -/* The thread handler. */
> -static void *handle_fildes_io (void *arg);
> -
> -
> -/* User optimization. */
> -void
> -__aio_init (const struct aioinit *init)
> -{
> - /* Get the mutex. */
> - pthread_mutex_lock (&__aio_requests_mutex);
> -
> - /* Only allow writing new values if the table is not yet allocated. */
> - if (pool == NULL)
> - {
> - optim.aio_threads = init->aio_threads < 1 ? 1 : init->aio_threads;
> - assert (powerof2 (ENTRIES_PER_ROW));
> - optim.aio_num = (init->aio_num < ENTRIES_PER_ROW
> - ? ENTRIES_PER_ROW
> - : init->aio_num & ~(ENTRIES_PER_ROW - 1));
> - }
> -
> - if (init->aio_idle_time != 0)
> - optim.aio_idle_time = init->aio_idle_time;
> -
> - /* Release the mutex. */
> - pthread_mutex_unlock (&__aio_requests_mutex);
> -}
> -weak_alias (__aio_init, aio_init)
> -
> -
> -/* The main function of the async I/O handling. It enqueues requests
> - and if necessary starts and handles threads. */
> -struct requestlist *
> -__aio_enqueue_request (aiocb_union *aiocbp, int operation)
> -{
> - int result = 0;
> - int policy, prio;
> - struct sched_param param;
> - struct requestlist *last, *runp, *newp;
> - int running = no;
> -
> - if (operation == LIO_SYNC || operation == LIO_DSYNC)
> - aiocbp->aiocb.aio_reqprio = 0;
> - else if (aiocbp->aiocb.aio_reqprio < 0
> -#ifdef AIO_PRIO_DELTA_MAX
> - || aiocbp->aiocb.aio_reqprio > AIO_PRIO_DELTA_MAX
> -#endif
> - )
> - {
> - /* Invalid priority value. */
> - __set_errno (EINVAL);
> - aiocbp->aiocb.__error_code = EINVAL;
> - aiocbp->aiocb.__return_value = -1;
> - return NULL;
> - }
> -
> - /* Compute priority for this request. */
> - pthread_getschedparam (pthread_self (), &policy, ¶m);
> - prio = param.sched_priority - aiocbp->aiocb.aio_reqprio;
> -
> - /* Get the mutex. */
> - pthread_mutex_lock (&__aio_requests_mutex);
> -
> - last = NULL;
> - runp = requests;
> - /* First look whether the current file descriptor is currently
> - worked with. */
> - while (runp != NULL
> - && runp->aiocbp->aiocb.aio_fildes < aiocbp->aiocb.aio_fildes)
> - {
> - last = runp;
> - runp = runp->next_fd;
> - }
> -
> - /* Get a new element for the waiting list. */
> - newp = get_elem ();
> - if (newp == NULL)
> - {
> - pthread_mutex_unlock (&__aio_requests_mutex);
> - __set_errno (EAGAIN);
> - return NULL;
> - }
> - newp->aiocbp = aiocbp;
> - newp->waiting = NULL;
> -
> - aiocbp->aiocb.__abs_prio = prio;
> - aiocbp->aiocb.__policy = policy;
> - aiocbp->aiocb.aio_lio_opcode = operation;
> - aiocbp->aiocb.__error_code = EINPROGRESS;
> - aiocbp->aiocb.__return_value = 0;
> -
> - if (runp != NULL
> - && runp->aiocbp->aiocb.aio_fildes == aiocbp->aiocb.aio_fildes)
> - {
> - /* The current file descriptor is worked on. It makes no sense
> - to start another thread since this new thread would fight
> - with the running thread for the resources. But we also cannot
> - say that the thread processing this desriptor shall immediately
> - after finishing the current job process this request if there
> - are other threads in the running queue which have a higher
> - priority. */
> -
> - /* Simply enqueue it after the running one according to the
> - priority. */
> - last = NULL;
> - while (runp->next_prio != NULL
> - && runp->next_prio->aiocbp->aiocb.__abs_prio >= prio)
> - {
> - last = runp;
> - runp = runp->next_prio;
> - }
> -
> - newp->next_prio = runp->next_prio;
> - runp->next_prio = newp;
> -
> - running = queued;
> - }
> - else
> - {
> - running = yes;
> - /* Enqueue this request for a new descriptor. */
> - if (last == NULL)
> - {
> - newp->last_fd = NULL;
> - newp->next_fd = requests;
> - if (requests != NULL)
> - requests->last_fd = newp;
> - requests = newp;
> - }
> - else
> - {
> - newp->next_fd = last->next_fd;
> - newp->last_fd = last;
> - last->next_fd = newp;
> - if (newp->next_fd != NULL)
> - newp->next_fd->last_fd = newp;
> - }
> -
> - newp->next_prio = NULL;
> - last = NULL;
> - }
> -
> - if (running == yes)
> - {
> - /* We try to create a new thread for this file descriptor. The
> - function which gets called will handle all available requests
> - for this descriptor and when all are processed it will
> - terminate.
> -
> - If no new thread can be created or if the specified limit of
> - threads for AIO is reached we queue the request. */
> -
> - /* See if we need to and are able to create a thread. */
> - if (nthreads < optim.aio_threads && idle_thread_count == 0)
> - {
> - pthread_t thid;
> -
> - running = newp->running = allocated;
> -
> - /* Now try to start a thread. */
> - result = aio_create_helper_thread (&thid, handle_fildes_io, newp);
> - if (result == 0)
> - /* We managed to enqueue the request. All errors which can
> - happen now can be recognized by calls to `aio_return' and
> - `aio_error'. */
> - ++nthreads;
> - else
> - {
> - /* Reset the running flag. The new request is not running. */
> - running = newp->running = yes;
> -
> - if (nthreads == 0)
> - {
> - /* We cannot create a thread in the moment and there is
> - also no thread running. This is a problem. `errno' is
> - set to EAGAIN if this is only a temporary problem. */
> - __aio_remove_request (last, newp, 0);
> - }
> - else
> - result = 0;
> - }
> - }
> - }
> -
> - /* Enqueue the request in the run queue if it is not yet running. */
> - if (running == yes && result == 0)
> - {
> - add_request_to_runlist (newp);
> -
> - /* If there is a thread waiting for work, then let it know that we
> - have just given it something to do. */
> - if (idle_thread_count > 0)
> - pthread_cond_signal (&__aio_new_request_notification);
> - }
> -
> - if (result == 0)
> - newp->running = running;
> - else
> - {
> - /* Something went wrong. */
> - __aio_free_request (newp);
> - aiocbp->aiocb.__error_code = result;
> - __set_errno (result);
> - newp = NULL;
> - }
> -
> - /* Release the mutex. */
> - pthread_mutex_unlock (&__aio_requests_mutex);
> -
> - return newp;
> -}
> -
> -
> -static void *
> -handle_fildes_io (void *arg)
> -{
> - pthread_t self = pthread_self ();
> - struct sched_param param;
> - struct requestlist *runp = (struct requestlist *) arg;
> - aiocb_union *aiocbp;
> - int policy;
> - int fildes;
> -
> - pthread_getschedparam (self, &policy, ¶m);
> -
> - do
> - {
> - /* If runp is NULL, then we were created to service the work queue
> - in general, not to handle any particular request. In that case we
> - skip the "do work" stuff on the first pass, and go directly to the
> - "get work off the work queue" part of this loop, which is near the
> - end. */
> - if (runp == NULL)
> - pthread_mutex_lock (&__aio_requests_mutex);
> - else
> - {
> - /* Hopefully this request is marked as running. */
> - assert (runp->running == allocated);
> -
> - /* Update our variables. */
> - aiocbp = runp->aiocbp;
> - fildes = aiocbp->aiocb.aio_fildes;
> -
> - /* Change the priority to the requested value (if necessary). */
> - if (aiocbp->aiocb.__abs_prio != param.sched_priority
> - || aiocbp->aiocb.__policy != policy)
> - {
> - param.sched_priority = aiocbp->aiocb.__abs_prio;
> - policy = aiocbp->aiocb.__policy;
> - pthread_setschedparam (self, policy, ¶m);
> - }
> -
> - /* Process request pointed to by RUNP. We must not be disturbed
> - by signals. */
> - if ((aiocbp->aiocb.aio_lio_opcode & 127) == LIO_READ)
> - {
> - if (sizeof (off_t) != sizeof (off64_t)
> - && aiocbp->aiocb.aio_lio_opcode & 128)
> - aiocbp->aiocb.__return_value =
> - TEMP_FAILURE_RETRY (__pread64 (fildes, (void *)
> - aiocbp->aiocb64.aio_buf,
> - aiocbp->aiocb64.aio_nbytes,
> - aiocbp->aiocb64.aio_offset));
> - else
> - aiocbp->aiocb.__return_value =
> - TEMP_FAILURE_RETRY (__libc_pread (fildes,
> - (void *)
> - aiocbp->aiocb.aio_buf,
> - aiocbp->aiocb.aio_nbytes,
> - aiocbp->aiocb.aio_offset));
> -
> - if (aiocbp->aiocb.__return_value == -1 && errno == ESPIPE)
> - /* The Linux kernel is different from others. It returns
> - ESPIPE if using pread on a socket. Other platforms
> - simply ignore the offset parameter and behave like
> - read. */
> - aiocbp->aiocb.__return_value =
> - TEMP_FAILURE_RETRY (read (fildes,
> - (void *) aiocbp->aiocb64.aio_buf,
> - aiocbp->aiocb64.aio_nbytes));
> - }
> - else if ((aiocbp->aiocb.aio_lio_opcode & 127) == LIO_WRITE)
> - {
> - if (sizeof (off_t) != sizeof (off64_t)
> - && aiocbp->aiocb.aio_lio_opcode & 128)
> - aiocbp->aiocb.__return_value =
> - TEMP_FAILURE_RETRY (__pwrite64 (fildes, (const void *)
> - aiocbp->aiocb64.aio_buf,
> - aiocbp->aiocb64.aio_nbytes,
> - aiocbp->aiocb64.aio_offset));
> - else
> - aiocbp->aiocb.__return_value =
> - TEMP_FAILURE_RETRY (__libc_pwrite (fildes, (const void *)
> - aiocbp->aiocb.aio_buf,
> - aiocbp->aiocb.aio_nbytes,
> - aiocbp->aiocb.aio_offset));
> -
> - if (aiocbp->aiocb.__return_value == -1 && errno == ESPIPE)
> - /* The Linux kernel is different from others. It returns
> - ESPIPE if using pwrite on a socket. Other platforms
> - simply ignore the offset parameter and behave like
> - write. */
> - aiocbp->aiocb.__return_value =
> - TEMP_FAILURE_RETRY (write (fildes,
> - (void *) aiocbp->aiocb64.aio_buf,
> - aiocbp->aiocb64.aio_nbytes));
> - }
> - else if (aiocbp->aiocb.aio_lio_opcode == LIO_DSYNC)
> - aiocbp->aiocb.__return_value =
> - TEMP_FAILURE_RETRY (fdatasync (fildes));
> - else if (aiocbp->aiocb.aio_lio_opcode == LIO_SYNC)
> - aiocbp->aiocb.__return_value =
> - TEMP_FAILURE_RETRY (fsync (fildes));
> - else
> - {
> - /* This is an invalid opcode. */
> - aiocbp->aiocb.__return_value = -1;
> - __set_errno (EINVAL);
> - }
> -
> - /* Get the mutex. */
> - pthread_mutex_lock (&__aio_requests_mutex);
> -
> - if (aiocbp->aiocb.__return_value == -1)
> - aiocbp->aiocb.__error_code = errno;
> - else
> - aiocbp->aiocb.__error_code = 0;
> -
> - /* Send the signal to notify about finished processing of the
> - request. */
> - __aio_notify (runp);
> -
> - /* For debugging purposes we reset the running flag of the
> - finished request. */
> - assert (runp->running == allocated);
> - runp->running = done;
> -
> - /* Now dequeue the current request. */
> - __aio_remove_request (NULL, runp, 0);
> - if (runp->next_prio != NULL)
> - add_request_to_runlist (runp->next_prio);
> -
> - /* Free the old element. */
> - __aio_free_request (runp);
> - }
> -
> - runp = runlist;
> -
> - /* If the runlist is empty, then we sleep for a while, waiting for
> - something to arrive in it. */
> - if (runp == NULL && optim.aio_idle_time >= 0)
> - {
> - struct timespec now;
> - struct timespec wakeup_time;
> -
> - ++idle_thread_count;
> - __clock_gettime (CLOCK_REALTIME, &now);
> - wakeup_time.tv_sec = now.tv_sec + optim.aio_idle_time;
> - wakeup_time.tv_nsec = now.tv_nsec;
> - if (wakeup_time.tv_nsec >= 1000000000)
> - {
> - wakeup_time.tv_nsec -= 1000000000;
> - ++wakeup_time.tv_sec;
> - }
> - pthread_cond_timedwait (&__aio_new_request_notification,
> - &__aio_requests_mutex,
> - &wakeup_time);
> - --idle_thread_count;
> - runp = runlist;
> - }
> -
> - if (runp == NULL)
> - --nthreads;
> - else
> - {
> - assert (runp->running == yes);
> - runp->running = allocated;
> - runlist = runp->next_run;
> -
> - /* If we have a request to process, and there's still another in
> - the run list, then we need to either wake up or create a new
> - thread to service the request that is still in the run list. */
> - if (runlist != NULL)
> - {
> - /* There are at least two items in the work queue to work on.
> - If there are other idle threads, then we should wake them
> - up for these other work elements; otherwise, we should try
> - to create a new thread. */
> - if (idle_thread_count > 0)
> - pthread_cond_signal (&__aio_new_request_notification);
> - else if (nthreads < optim.aio_threads)
> - {
> - pthread_t thid;
> - pthread_attr_t attr;
> -
> - /* Make sure the thread is created detached. */
> - pthread_attr_init (&attr);
> - pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
> -
> - /* Now try to start a thread. If we fail, no big deal,
> - because we know that there is at least one thread (us)
> - that is working on AIO operations. */
> - if (pthread_create (&thid, &attr, handle_fildes_io, NULL)
> - == 0)
> - ++nthreads;
> - }
> - }
> - }
> -
> - /* Release the mutex. */
> - pthread_mutex_unlock (&__aio_requests_mutex);
> - }
> - while (runp != NULL);
> -
> - return NULL;
> -}
> -
> -
> -/* Free allocated resources. */
> -libc_freeres_fn (free_res)
> -{
> - size_t row;
> -
> - for (row = 0; row < pool_max_size; ++row)
> - free (pool[row]);
> -
> - free (pool);
> -}
> -
> -
> -/* Add newrequest to the runlist. The __abs_prio flag of newrequest must
> - be correctly set to do this. Also, you had better set newrequest's
> - "running" flag to "yes" before you release your lock or you'll throw an
> - assertion. */
> -static void
> -add_request_to_runlist (struct requestlist *newrequest)
> -{
> - int prio = newrequest->aiocbp->aiocb.__abs_prio;
> - struct requestlist *runp;
> -
> - if (runlist == NULL || runlist->aiocbp->aiocb.__abs_prio < prio)
> - {
> - newrequest->next_run = runlist;
> - runlist = newrequest;
> - }
> - else
> - {
> - runp = runlist;
> -
> - while (runp->next_run != NULL
> - && runp->next_run->aiocbp->aiocb.__abs_prio >= prio)
> - runp = runp->next_run;
> -
> - newrequest->next_run = runp->next_run;
> - runp->next_run = newrequest;
> - }
> -}
> diff --git a/sysdeps/pthread/aio_misc.h b/sysdeps/pthread/aio_misc.h
> deleted file mode 100644
> index e23524cffe..0000000000
> --- a/sysdeps/pthread/aio_misc.h
> +++ /dev/null
> @@ -1,122 +0,0 @@
> -/* Copyright (C) 1997-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/>. */
> -
> -#ifndef _AIO_MISC_H
> -#define _AIO_MISC_H 1
> -
> -#include <aio.h>
> -#include <pthread.h>
> -
> -
> -/* Extend the operation enum. */
> -enum
> -{
> - LIO_DSYNC = LIO_NOP + 1,
> - LIO_SYNC,
> - LIO_READ64 = LIO_READ | 128,
> - LIO_WRITE64 = LIO_WRITE | 128
> -};
> -
> -
> -/* Union of the two request types. */
> -typedef union
> - {
> - struct aiocb aiocb;
> - struct aiocb64 aiocb64;
> - } aiocb_union;
> -
> -
> -/* Used to synchronize. */
> -struct waitlist
> - {
> - struct waitlist *next;
> -
> - /* The next two fields is used in synchronous `lio_listio' operations. */
> -#ifndef DONT_NEED_AIO_MISC_COND
> - pthread_cond_t *cond;
> -#endif
> - int *result;
> -
> - volatile unsigned int *counterp;
> - /* The next field is used in asynchronous `lio_listio' operations. */
> - struct sigevent *sigevp;
> - };
> -
> -
> -/* Status of a request. */
> -enum
> -{
> - no,
> - queued,
> - yes,
> - allocated,
> - done
> -};
> -
> -
> -/* Used to queue requests.. */
> -struct requestlist
> - {
> - int running;
> -
> - struct requestlist *last_fd;
> - struct requestlist *next_fd;
> - struct requestlist *next_prio;
> - struct requestlist *next_run;
> -
> - /* Pointer to the actual data. */
> - aiocb_union *aiocbp;
> -
> - /* List of waiting processes. */
> - struct waitlist *waiting;
> - };
> -
> -
> -/* Lock for global I/O list of requests. */
> -extern pthread_mutex_t __aio_requests_mutex attribute_hidden;
> -
> -
> -/* Enqueue request. */
> -extern struct requestlist *__aio_enqueue_request (aiocb_union *aiocbp,
> - int operation)
> - attribute_hidden;
> -
> -/* Find request entry for given AIO control block. */
> -extern struct requestlist *__aio_find_req (aiocb_union *elem) attribute_hidden;
> -
> -/* Find request entry for given file descriptor. */
> -extern struct requestlist *__aio_find_req_fd (int fildes) attribute_hidden;
> -
> -/* Remove request from the list. */
> -extern void __aio_remove_request (struct requestlist *last,
> - struct requestlist *req, int all)
> - attribute_hidden;
> -
> -/* Release the entry for the request. */
> -extern void __aio_free_request (struct requestlist *req) attribute_hidden;
> -
> -/* Notify initiator of request and tell this everybody listening. */
> -extern void __aio_notify (struct requestlist *req) attribute_hidden;
> -
> -/* Notify initiator of request. */
> -extern int __aio_notify_only (struct sigevent *sigev) attribute_hidden;
> -
> -/* Send the signal. */
> -extern int __aio_sigqueue (int sig, const union sigval val, pid_t caller_pid)
> - attribute_hidden;
> -
> -#endif /* aio_misc.h */
> diff --git a/sysdeps/pthread/aio_notify.c b/sysdeps/pthread/aio_notify.c
> deleted file mode 100644
> index a8d61503d8..0000000000
> --- a/sysdeps/pthread/aio_notify.c
> +++ /dev/null
> @@ -1,157 +0,0 @@
> -/* Notify initiator of AIO request.
> - Copyright (C) 1997-2021 Free Software Foundation, Inc.
> - This file is part of the GNU C Library.
> - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
> -
> - 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 <errno.h>
> -#include <pthread.h>
> -#include <stdlib.h>
> -#include <unistd.h>
> -#include <aio_misc.h>
> -#include <signal.h>
> -
> -#ifndef aio_start_notify_thread
> -# define aio_start_notify_thread() do { } while (0)
> -#endif
> -
> -struct notify_func
> - {
> - void (*func) (sigval_t);
> - sigval_t value;
> - };
> -
> -static void *
> -notify_func_wrapper (void *arg)
> -{
> - aio_start_notify_thread ();
> - struct notify_func *const n = arg;
> - void (*func) (sigval_t) = n->func;
> - sigval_t value = n->value;
> - free (n);
> - (*func) (value);
> - return NULL;
> -}
> -
> -
> -int
> -__aio_notify_only (struct sigevent *sigev)
> -{
> - int result = 0;
> -
> - /* Send the signal to notify about finished processing of the request. */
> - if (__glibc_unlikely (sigev->sigev_notify == SIGEV_THREAD))
> - {
> - /* We have to start a thread. */
> - pthread_t tid;
> - pthread_attr_t attr, *pattr;
> -
> - pattr = (pthread_attr_t *) sigev->sigev_notify_attributes;
> - if (pattr == NULL)
> - {
> - pthread_attr_init (&attr);
> - pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
> - pattr = &attr;
> - }
> -
> - /* SIGEV may be freed as soon as we return, so we cannot let the
> - notification thread use that pointer. Even though a sigval_t is
> - only one word and the same size as a void *, we cannot just pass
> - the value through pthread_create as the argument and have the new
> - thread run the user's function directly, because on some machines
> - the calling convention for a union like sigval_t is different from
> - that for a pointer type like void *. */
> - struct notify_func *nf = malloc (sizeof *nf);
> - if (nf == NULL)
> - result = -1;
> - else
> - {
> - nf->func = sigev->sigev_notify_function;
> - nf->value = sigev->sigev_value;
> - if (pthread_create (&tid, pattr, notify_func_wrapper, nf) < 0)
> - {
> - free (nf);
> - result = -1;
> - }
> - }
> - }
> - else if (sigev->sigev_notify == SIGEV_SIGNAL)
> - {
> - /* We have to send a signal. */
> -#if _POSIX_REALTIME_SIGNALS > 0
> - /* Note that the standard gives us the option of using a plain
> - non-queuing signal here when SA_SIGINFO is not set for the signal. */
> - if (__aio_sigqueue (sigev->sigev_signo, sigev->sigev_value, getpid ())
> - < 0)
> - result = -1;
> -#else
> - /* There are no queued signals on this system at all. */
> - result = raise (sigev->sigev_signo);
> -#endif
> - }
> -
> - return result;
> -}
> -
> -
> -void
> -__aio_notify (struct requestlist *req)
> -{
> - struct waitlist *waitlist;
> - struct aiocb *aiocbp = &req->aiocbp->aiocb;
> -
> - if (__aio_notify_only (&aiocbp->aio_sigevent) != 0)
> - {
> - /* XXX What shall we do if already an error is set by
> - read/write/fsync? */
> - aiocbp->__error_code = errno;
> - aiocbp->__return_value = -1;
> - }
> -
> - /* Now also notify possibly waiting threads. */
> - waitlist = req->waiting;
> - while (waitlist != NULL)
> - {
> - struct waitlist *next = waitlist->next;
> -
> - if (waitlist->sigevp == NULL)
> - {
> - if (waitlist->result != NULL && aiocbp->__return_value == -1)
> - *waitlist->result = -1;
> -
> -#ifdef DONT_NEED_AIO_MISC_COND
> - AIO_MISC_NOTIFY (waitlist);
> -#else
> - /* Decrement the counter. */
> - --*waitlist->counterp;
> -
> - pthread_cond_signal (waitlist->cond);
> -#endif
> - }
> - else
> - /* This is part of an asynchronous `lio_listio' operation. If
> - this request is the last one, send the signal. */
> - if (--*waitlist->counterp == 0)
> - {
> - __aio_notify_only (waitlist->sigevp);
> - /* This is tricky. See lio_listio.c for the reason why
> - this works. */
> - free ((void *) waitlist->counterp);
> - }
> -
> - waitlist = next;
> - }
> -}
> diff --git a/sysdeps/pthread/aio_read.c b/sysdeps/pthread/aio_read.c
> deleted file mode 100644
> index 4698e48b1c..0000000000
> --- a/sysdeps/pthread/aio_read.c
> +++ /dev/null
> @@ -1,30 +0,0 @@
> -/* Asynchronous read.
> - Copyright (C) 1997-2021 Free Software Foundation, Inc.
> - This file is part of the GNU C Library.
> - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
> -
> - 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 <aio.h>
> -
> -#include <aio_misc.h>
> -
> -
> -int
> -aio_read (struct aiocb *aiocbp)
> -{
> - return (__aio_enqueue_request ((aiocb_union *) aiocbp, LIO_READ) == NULL
> - ? -1 : 0);
> -}
> diff --git a/sysdeps/pthread/aio_read64.c b/sysdeps/pthread/aio_read64.c
> deleted file mode 100644
> index 26b9b0b380..0000000000
> --- a/sysdeps/pthread/aio_read64.c
> +++ /dev/null
> @@ -1,30 +0,0 @@
> -/* Asynchronous read, 64bit offset version.
> - Copyright (C) 1997-2021 Free Software Foundation, Inc.
> - This file is part of the GNU C Library.
> - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
> -
> - 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 <aio.h>
> -
> -#include <aio_misc.h>
> -
> -
> -int
> -aio_read64 (struct aiocb64 *aiocbp)
> -{
> - return (__aio_enqueue_request ((aiocb_union *) aiocbp, LIO_READ64) == NULL
> - ? -1 : 0);
> -}
> diff --git a/sysdeps/pthread/aio_suspend.c b/sysdeps/pthread/aio_suspend.c
> deleted file mode 100644
> index 6fd5b1bee2..0000000000
> --- a/sysdeps/pthread/aio_suspend.c
> +++ /dev/null
> @@ -1,263 +0,0 @@
> -/* Suspend until termination of a requests.
> - Copyright (C) 1997-2021 Free Software Foundation, Inc.
> - This file is part of the GNU C Library.
> - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
> -
> - 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/>. */
> -
> -
> -/* We use an UGLY hack to prevent gcc from finding us cheating. The
> - implementations of aio_suspend and aio_suspend64 are identical and so
> - we want to avoid code duplication by using aliases. But gcc sees
> - the different parameter lists and prints a warning. We define here
> - a function so that aio_suspend64 has no prototype. */
> -#define aio_suspend64 XXX
> -#include <aio.h>
> -/* And undo the hack. */
> -#undef aio_suspend64
> -
> -#include <assert.h>
> -#include <errno.h>
> -#include <stdbool.h>
> -#include <stdlib.h>
> -#include <sys/time.h>
> -
> -#include <libc-lock.h>
> -#include <aio_misc.h>
> -
> -
> -struct clparam
> -{
> - const struct aiocb *const *list;
> - struct waitlist *waitlist;
> - struct requestlist **requestlist;
> -#ifndef DONT_NEED_AIO_MISC_COND
> - pthread_cond_t *cond;
> -#endif
> - int nent;
> -};
> -
> -
> -static void
> -cleanup (void *arg)
> -{
> -#ifdef DONT_NEED_AIO_MISC_COND
> - /* Acquire the mutex. If pthread_cond_*wait is used this would
> - happen implicitly. */
> - pthread_mutex_lock (&__aio_requests_mutex);
> -#endif
> -
> - const struct clparam *param = (const struct clparam *) arg;
> -
> - /* Now remove the entry in the waiting list for all requests
> - which didn't terminate. */
> - int cnt = param->nent;
> - while (cnt-- > 0)
> - if (param->list[cnt] != NULL
> - && param->list[cnt]->__error_code == EINPROGRESS)
> - {
> - struct waitlist **listp;
> -
> - assert (param->requestlist[cnt] != NULL);
> -
> - /* There is the chance that we cannot find our entry anymore. This
> - could happen if the request terminated and restarted again. */
> - listp = ¶m->requestlist[cnt]->waiting;
> - while (*listp != NULL && *listp != ¶m->waitlist[cnt])
> - listp = &(*listp)->next;
> -
> - if (*listp != NULL)
> - *listp = (*listp)->next;
> - }
> -
> -#ifndef DONT_NEED_AIO_MISC_COND
> - /* Release the conditional variable. */
> - (void) pthread_cond_destroy (param->cond);
> -#endif
> -
> - /* Release the mutex. */
> - pthread_mutex_unlock (&__aio_requests_mutex);
> -}
> -
> -#ifdef DONT_NEED_AIO_MISC_COND
> -static int
> -__attribute__ ((noinline))
> -do_aio_misc_wait (unsigned int *cntr, const struct __timespec64 *timeout)
> -{
> - int result = 0;
> -
> - AIO_MISC_WAIT (result, *cntr, timeout, 1);
> -
> - return result;
> -}
> -#endif
> -
> -int
> -__aio_suspend_time64 (const struct aiocb *const list[], int nent,
> - const struct __timespec64 *timeout)
> -{
> - if (__glibc_unlikely (nent < 0))
> - {
> - __set_errno (EINVAL);
> - return -1;
> - }
> -
> - struct waitlist waitlist[nent];
> - struct requestlist *requestlist[nent];
> -#ifndef DONT_NEED_AIO_MISC_COND
> - pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
> -#endif
> - int cnt;
> - bool any = false;
> - int result = 0;
> - unsigned int cntr = 1;
> -
> - /* Request the mutex. */
> - pthread_mutex_lock (&__aio_requests_mutex);
> -
> - /* There is not yet a finished request. Signal the request that
> - we are working for it. */
> - for (cnt = 0; cnt < nent; ++cnt)
> - if (list[cnt] != NULL)
> - {
> - if (list[cnt]->__error_code == EINPROGRESS)
> - {
> - requestlist[cnt] = __aio_find_req ((aiocb_union *) list[cnt]);
> -
> - if (requestlist[cnt] != NULL)
> - {
> -#ifndef DONT_NEED_AIO_MISC_COND
> - waitlist[cnt].cond = &cond;
> -#endif
> - waitlist[cnt].result = NULL;
> - waitlist[cnt].next = requestlist[cnt]->waiting;
> - waitlist[cnt].counterp = &cntr;
> - waitlist[cnt].sigevp = NULL;
> - requestlist[cnt]->waiting = &waitlist[cnt];
> - any = true;
> - }
> - else
> - /* We will never suspend. */
> - break;
> - }
> - else
> - /* We will never suspend. */
> - break;
> - }
> -
> - struct __timespec64 ts;
> - if (timeout != NULL)
> - {
> - __clock_gettime64 (CLOCK_MONOTONIC, &ts);
> - ts.tv_sec += timeout->tv_sec;
> - ts.tv_nsec += timeout->tv_nsec;
> - if (ts.tv_nsec >= 1000000000)
> - {
> - ts.tv_nsec -= 1000000000;
> - ts.tv_sec++;
> - }
> - }
> -
> - /* Only if none of the entries is NULL or finished to be wait. */
> - if (cnt == nent && any)
> - {
> - struct clparam clparam =
> - {
> - .list = list,
> - .waitlist = waitlist,
> - .requestlist = requestlist,
> -#ifndef DONT_NEED_AIO_MISC_COND
> - .cond = &cond,
> -#endif
> - .nent = nent
> - };
> -
> - pthread_cleanup_push (cleanup, &clparam);
> -
> -#ifdef DONT_NEED_AIO_MISC_COND
> - result = do_aio_misc_wait (&cntr, timeout == NULL ? NULL : &ts);
> -#else
> - struct timespec ts32 = valid_timespec64_to_timespec (ts);
> - result = pthread_cond_timedwait (&cond, &__aio_requests_mutex,
> - timeout == NULL ? NULL : &ts32);
> -#endif
> -
> - pthread_cleanup_pop (0);
> - }
> -
> - /* Now remove the entry in the waiting list for all requests
> - which didn't terminate. */
> - while (cnt-- > 0)
> - if (list[cnt] != NULL && list[cnt]->__error_code == EINPROGRESS)
> - {
> - struct waitlist **listp;
> -
> - assert (requestlist[cnt] != NULL);
> -
> - /* There is the chance that we cannot find our entry anymore. This
> - could happen if the request terminated and restarted again. */
> - listp = &requestlist[cnt]->waiting;
> - while (*listp != NULL && *listp != &waitlist[cnt])
> - listp = &(*listp)->next;
> -
> - if (*listp != NULL)
> - *listp = (*listp)->next;
> - }
> -
> -#ifndef DONT_NEED_AIO_MISC_COND
> - /* Release the conditional variable. */
> - if (__glibc_unlikely (pthread_cond_destroy (&cond) != 0))
> - /* This must never happen. */
> - abort ();
> -#endif
> -
> - if (result != 0)
> - {
> -#ifndef DONT_NEED_AIO_MISC_COND
> - /* An error occurred. Possibly it's ETIMEDOUT. We have to translate
> - the timeout error report of `pthread_cond_timedwait' to the
> - form expected from `aio_suspend'. */
> - if (result == ETIMEDOUT)
> - __set_errno (EAGAIN);
> - else
> -#endif
> - __set_errno (result);
> -
> - result = -1;
> - }
> -
> - /* Release the mutex. */
> - pthread_mutex_unlock (&__aio_requests_mutex);
> -
> - return result;
> -}
> -
> -#if __TIMESIZE != 64
> -librt_hidden_def (__aio_suspend_time64)
> -
> -int
> -__aio_suspend (const struct aiocb *const list[], int nent,
> - const struct timespec *timeout)
> -{
> - struct __timespec64 ts64;
> -
> - if (timeout != NULL)
> - ts64 = valid_timespec_to_timespec64 (*timeout);
> -
> - return __aio_suspend_time64 (list, nent, timeout != NULL ? &ts64 : NULL);
> -}
> -#endif
> -weak_alias (__aio_suspend, aio_suspend)
> -weak_alias (aio_suspend, aio_suspend64)
> diff --git a/sysdeps/pthread/aio_write.c b/sysdeps/pthread/aio_write.c
> deleted file mode 100644
> index ea55f0dbbc..0000000000
> --- a/sysdeps/pthread/aio_write.c
> +++ /dev/null
> @@ -1,30 +0,0 @@
> -/* Asynchronous write.
> - Copyright (C) 1997-2021 Free Software Foundation, Inc.
> - This file is part of the GNU C Library.
> - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
> -
> - 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 <aio.h>
> -
> -#include <aio_misc.h>
> -
> -
> -int
> -aio_write (struct aiocb *aiocbp)
> -{
> - return (__aio_enqueue_request ((aiocb_union *) aiocbp, LIO_WRITE) == NULL
> - ? -1 : 0);
> -}
> diff --git a/sysdeps/pthread/aio_write64.c b/sysdeps/pthread/aio_write64.c
> deleted file mode 100644
> index bd6dd316be..0000000000
> --- a/sysdeps/pthread/aio_write64.c
> +++ /dev/null
> @@ -1,30 +0,0 @@
> -/* Asynchronous write, 64bit offset version.
> - Copyright (C) 1997-2021 Free Software Foundation, Inc.
> - This file is part of the GNU C Library.
> - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
> -
> - 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 <aio.h>
> -
> -#include <aio_misc.h>
> -
> -
> -int
> -aio_write64 (struct aiocb64 *aiocbp)
> -{
> - return (__aio_enqueue_request ((aiocb_union *) aiocbp, LIO_WRITE64) == NULL
> - ? -1 : 0);
> -}
> diff --git a/sysdeps/pthread/lio_listio.c b/sysdeps/pthread/lio_listio.c
> deleted file mode 100644
> index 2cab3c2254..0000000000
> --- a/sysdeps/pthread/lio_listio.c
> +++ /dev/null
> @@ -1,248 +0,0 @@
> -/* Enqueue and list of read or write requests.
> - Copyright (C) 1997-2021 Free Software Foundation, Inc.
> - This file is part of the GNU C Library.
> - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
> -
> - 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/>. */
> -
> -#ifndef lio_listio
> -#include <aio.h>
> -#include <assert.h>
> -#include <errno.h>
> -#include <stdlib.h>
> -#include <unistd.h>
> -
> -#include <aio_misc.h>
> -
> -#define LIO_OPCODE_BASE 0
> -#endif
> -
> -#include <shlib-compat.h>
> -
> -
> -/* We need this special structure to handle asynchronous I/O. */
> -struct async_waitlist
> - {
> - unsigned int counter;
> - struct sigevent sigev;
> - struct waitlist list[0];
> - };
> -
> -
> -/* The code in glibc 2.1 to glibc 2.4 issued only one event when all
> - requests submitted with lio_listio finished. The existing practice
> - is to issue events for the individual requests as well. This is
> - what the new code does. */
> -#if SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_4)
> -# define LIO_MODE(mode) ((mode) & 127)
> -# define NO_INDIVIDUAL_EVENT_P(mode) ((mode) & 128)
> -#else
> -# define LIO_MODE(mode) mode
> -# define NO_INDIVIDUAL_EVENT_P(mode) 0
> -#endif
> -
> -
> -static int
> -lio_listio_internal (int mode, struct aiocb *const list[], int nent,
> - struct sigevent *sig)
> -{
> - struct sigevent defsigev;
> - struct requestlist *requests[nent];
> - int cnt;
> - volatile unsigned int total = 0;
> - int result = 0;
> -
> - if (sig == NULL)
> - {
> - defsigev.sigev_notify = SIGEV_NONE;
> - sig = &defsigev;
> - }
> -
> - /* Request the mutex. */
> - pthread_mutex_lock (&__aio_requests_mutex);
> -
> - /* Now we can enqueue all requests. Since we already acquired the
> - mutex the enqueue function need not do this. */
> - for (cnt = 0; cnt < nent; ++cnt)
> - if (list[cnt] != NULL && list[cnt]->aio_lio_opcode != LIO_NOP)
> - {
> - if (NO_INDIVIDUAL_EVENT_P (mode))
> - list[cnt]->aio_sigevent.sigev_notify = SIGEV_NONE;
> -
> - requests[cnt] = __aio_enqueue_request ((aiocb_union *) list[cnt],
> - (list[cnt]->aio_lio_opcode
> - | LIO_OPCODE_BASE));
> -
> - if (requests[cnt] != NULL)
> - /* Successfully enqueued. */
> - ++total;
> - else
> - /* Signal that we've seen an error. `errno' and the error code
> - of the aiocb will tell more. */
> - result = -1;
> - }
> - else
> - requests[cnt] = NULL;
> -
> - if (total == 0)
> - {
> - /* We don't have anything to do except signalling if we work
> - asynchronously. */
> -
> - /* Release the mutex. We do this before raising a signal since the
> - signal handler might do a `siglongjmp' and then the mutex is
> - locked forever. */
> - pthread_mutex_unlock (&__aio_requests_mutex);
> -
> - if (LIO_MODE (mode) == LIO_NOWAIT)
> - __aio_notify_only (sig);
> -
> - return result;
> - }
> - else if (LIO_MODE (mode) == LIO_WAIT)
> - {
> -#ifndef DONT_NEED_AIO_MISC_COND
> - pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
> - int oldstate;
> -#endif
> - struct waitlist waitlist[nent];
> -
> - total = 0;
> - for (cnt = 0; cnt < nent; ++cnt)
> - {
> - assert (requests[cnt] == NULL || list[cnt] != NULL);
> -
> - if (requests[cnt] != NULL && list[cnt]->aio_lio_opcode != LIO_NOP)
> - {
> -#ifndef DONT_NEED_AIO_MISC_COND
> - waitlist[cnt].cond = &cond;
> -#endif
> - waitlist[cnt].result = &result;
> - waitlist[cnt].next = requests[cnt]->waiting;
> - waitlist[cnt].counterp = &total;
> - waitlist[cnt].sigevp = NULL;
> - requests[cnt]->waiting = &waitlist[cnt];
> - ++total;
> - }
> - }
> -
> -#ifdef DONT_NEED_AIO_MISC_COND
> - AIO_MISC_WAIT (result, total, NULL, 0);
> -#else
> - /* Since `pthread_cond_wait'/`pthread_cond_timedwait' are cancellation
> - points we must be careful. We added entries to the waiting lists
> - which we must remove. So defer cancellation for now. */
> - pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, &oldstate);
> -
> - while (total > 0)
> - pthread_cond_wait (&cond, &__aio_requests_mutex);
> -
> - /* Now it's time to restore the cancellation state. */
> - pthread_setcancelstate (oldstate, NULL);
> -
> - /* Release the conditional variable. */
> - if (pthread_cond_destroy (&cond) != 0)
> - /* This must never happen. */
> - abort ();
> -#endif
> -
> - /* If any of the I/O requests failed, return -1 and set errno. */
> - if (result != 0)
> - {
> - __set_errno (result == EINTR ? EINTR : EIO);
> - result = -1;
> - }
> - }
> - else
> - {
> - struct async_waitlist *waitlist;
> -
> - waitlist = (struct async_waitlist *)
> - malloc (sizeof (struct async_waitlist)
> - + (nent * sizeof (struct waitlist)));
> -
> - if (waitlist == NULL)
> - {
> - __set_errno (EAGAIN);
> - result = -1;
> - }
> - else
> - {
> - total = 0;
> -
> - for (cnt = 0; cnt < nent; ++cnt)
> - {
> - assert (requests[cnt] == NULL || list[cnt] != NULL);
> -
> - if (requests[cnt] != NULL
> - && list[cnt]->aio_lio_opcode != LIO_NOP)
> - {
> -#ifndef DONT_NEED_AIO_MISC_COND
> - waitlist->list[cnt].cond = NULL;
> -#endif
> - waitlist->list[cnt].result = NULL;
> - waitlist->list[cnt].next = requests[cnt]->waiting;
> - waitlist->list[cnt].counterp = &waitlist->counter;
> - waitlist->list[cnt].sigevp = &waitlist->sigev;
> - requests[cnt]->waiting = &waitlist->list[cnt];
> - ++total;
> - }
> - }
> -
> - waitlist->counter = total;
> - waitlist->sigev = *sig;
> - }
> - }
> -
> - /* Release the mutex. */
> - pthread_mutex_unlock (&__aio_requests_mutex);
> -
> - return result;
> -}
> -
> -
> -#if SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_4)
> -int
> -attribute_compat_text_section
> -__lio_listio_21 (int mode, struct aiocb *const list[], int nent,
> - struct sigevent *sig)
> -{
> - /* Check arguments. */
> - if (mode != LIO_WAIT && mode != LIO_NOWAIT)
> - {
> - __set_errno (EINVAL);
> - return -1;
> - }
> -
> - return lio_listio_internal (mode | LIO_NO_INDIVIDUAL_EVENT, list, nent, sig);
> -}
> -compat_symbol (librt, __lio_listio_21, lio_listio, GLIBC_2_1);
> -#endif
> -
> -
> -int
> -__lio_listio_item_notify (int mode, struct aiocb *const list[], int nent,
> - struct sigevent *sig)
> -{
> - /* Check arguments. */
> - if (mode != LIO_WAIT && mode != LIO_NOWAIT)
> - {
> - __set_errno (EINVAL);
> - return -1;
> - }
> -
> - return lio_listio_internal (mode, list, nent, sig);
> -}
> -versioned_symbol (librt, __lio_listio_item_notify, lio_listio, GLIBC_2_4);
> diff --git a/sysdeps/pthread/lio_listio64.c b/sysdeps/pthread/lio_listio64.c
> deleted file mode 100644
> index 111c883a2f..0000000000
> --- a/sysdeps/pthread/lio_listio64.c
> +++ /dev/null
> @@ -1,33 +0,0 @@
> -/* Enqueue and list of read or write requests, 64bit offset version.
> - Copyright (C) 1997-2021 Free Software Foundation, Inc.
> - This file is part of the GNU C Library.
> - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
> -
> - 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 <aio.h>
> -#include <assert.h>
> -#include <errno.h>
> -#include <stdlib.h>
> -#include <unistd.h>
> -
> -#include <aio_misc.h>
> -
> -#define lio_listio lio_listio64
> -#define __lio_listio_21 __lio_listio64_21
> -#define __lio_listio_item_notify __lio_listio64_item_notify
> -#define aiocb aiocb64
> -#define LIO_OPCODE_BASE 128
> -#include <lio_listio.c>
> diff --git a/sysdeps/pthread/timer_create.c b/sysdeps/pthread/timer_create.c
> deleted file mode 100644
> index 2808f5b32b..0000000000
> --- a/sysdeps/pthread/timer_create.c
> +++ /dev/null
> @@ -1,166 +0,0 @@
> -/* Copyright (C) 2000-2021 Free Software Foundation, Inc.
> - This file is part of the GNU C Library.
> - Contributed by Kaz Kylheku <kaz@ashi.footprints.net>.
> -
> - 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; see the file COPYING.LIB. If
> - not, see <https://www.gnu.org/licenses/>. */
> -
> -#include <errno.h>
> -#include <signal.h>
> -#include <pthread.h>
> -#include <time.h>
> -#include <unistd.h>
> -
> -#include "posix-timer.h"
> -
> -
> -/* Create new per-process timer using CLOCK. */
> -int
> -timer_create (clockid_t clock_id, struct sigevent *evp, timer_t *timerid)
> -{
> - int retval = -1;
> - struct timer_node *newtimer = NULL;
> - struct thread_node *thread = NULL;
> -
> - if (0
> -#if defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0
> - || clock_id == CLOCK_PROCESS_CPUTIME_ID
> -#endif
> -#if defined _POSIX_THREAD_CPUTIME && _POSIX_THREAD_CPUTIME >= 0
> - || clock_id == CLOCK_THREAD_CPUTIME_ID
> -#endif
> - )
> - {
> - /* We don't allow timers for CPU clocks. At least not in the
> - moment. */
> - __set_errno (ENOTSUP);
> - return -1;
> - }
> -
> - if (clock_id != CLOCK_REALTIME)
> - {
> - __set_errno (EINVAL);
> - return -1;
> - }
> -
> - pthread_once (&__timer_init_once_control, __timer_init_once);
> -
> - if (__timer_init_failed)
> - {
> - __set_errno (ENOMEM);
> - return -1;
> - }
> -
> - pthread_mutex_lock (&__timer_mutex);
> -
> - newtimer = __timer_alloc ();
> - if (__glibc_unlikely (newtimer == NULL))
> - {
> - __set_errno (EAGAIN);
> - goto unlock_bail;
> - }
> -
> - if (evp != NULL)
> - newtimer->event = *evp;
> - else
> - {
> - newtimer->event.sigev_notify = SIGEV_SIGNAL;
> - newtimer->event.sigev_signo = SIGALRM;
> - newtimer->event.sigev_value.sival_ptr = newtimer;
> - newtimer->event.sigev_notify_function = 0;
> - }
> -
> - newtimer->event.sigev_notify_attributes = &newtimer->attr;
> - newtimer->creator_pid = getpid ();
> -
> - switch (__builtin_expect (newtimer->event.sigev_notify, SIGEV_SIGNAL))
> - {
> - case SIGEV_NONE:
> - case SIGEV_SIGNAL:
> - /* We have a global thread for delivering timed signals.
> - If it is not running, try to start it up. */
> - thread = &__timer_signal_thread_rclk;
> - if (! thread->exists)
> - {
> - if (__builtin_expect (__timer_thread_start (thread),
> - 1) < 0)
> - {
> - __set_errno (EAGAIN);
> - goto unlock_bail;
> - }
> - }
> - break;
> -
> - case SIGEV_THREAD:
> - /* Copy over thread attributes or set up default ones. */
> - if (evp->sigev_notify_attributes)
> - newtimer->attr = *(pthread_attr_t *) evp->sigev_notify_attributes;
> - else
> - pthread_attr_init (&newtimer->attr);
> -
> - /* Ensure thread attributes call for deatched thread. */
> - pthread_attr_setdetachstate (&newtimer->attr, PTHREAD_CREATE_DETACHED);
> -
> - /* Try to find existing thread having the right attributes. */
> - thread = __timer_thread_find_matching (&newtimer->attr, clock_id);
> -
> - /* If no existing thread has these attributes, try to allocate one. */
> - if (thread == NULL)
> - thread = __timer_thread_alloc (&newtimer->attr, clock_id);
> -
> - /* Out of luck; no threads are available. */
> - if (__glibc_unlikely (thread == NULL))
> - {
> - __set_errno (EAGAIN);
> - goto unlock_bail;
> - }
> -
> - /* If the thread is not running already, try to start it. */
> - if (! thread->exists
> - && __builtin_expect (! __timer_thread_start (thread), 0))
> - {
> - __set_errno (EAGAIN);
> - goto unlock_bail;
> - }
> - break;
> -
> - default:
> - __set_errno (EINVAL);
> - goto unlock_bail;
> - }
> -
> - newtimer->clock = clock_id;
> - newtimer->abstime = 0;
> - newtimer->armed = 0;
> - newtimer->thread = thread;
> -
> - *timerid = timer_ptr2id (newtimer);
> - retval = 0;
> -
> - if (__builtin_expect (retval, 0) == -1)
> - {
> - unlock_bail:
> - if (thread != NULL)
> - __timer_thread_dealloc (thread);
> - if (newtimer != NULL)
> - {
> - timer_delref (newtimer);
> - __timer_dealloc (newtimer);
> - }
> - }
> -
> - pthread_mutex_unlock (&__timer_mutex);
> -
> - return retval;
> -}
> diff --git a/sysdeps/pthread/timer_delete.c b/sysdeps/pthread/timer_delete.c
> deleted file mode 100644
> index c6f6d9743d..0000000000
> --- a/sysdeps/pthread/timer_delete.c
> +++ /dev/null
> @@ -1,68 +0,0 @@
> -/* Copyright (C) 2000-2021 Free Software Foundation, Inc.
> - This file is part of the GNU C Library.
> - Contributed by Kaz Kylheku <kaz@ashi.footprints.net>.
> -
> - 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; see the file COPYING.LIB. If
> - not, see <https://www.gnu.org/licenses/>. */
> -
> -#include <assert.h>
> -#include <errno.h>
> -#include <pthread.h>
> -#include <time.h>
> -
> -#include "posix-timer.h"
> -
> -
> -/* Delete timer TIMERID. */
> -int
> -timer_delete (timer_t timerid)
> -{
> - struct timer_node *timer;
> - int retval = -1;
> -
> - pthread_mutex_lock (&__timer_mutex);
> -
> - timer = timer_id2ptr (timerid);
> - if (! timer_valid (timer))
> - /* Invalid timer ID or the timer is not in use. */
> - __set_errno (EINVAL);
> - else
> - {
> - if (timer->armed && timer->thread != NULL)
> - {
> - struct thread_node *thread = timer->thread;
> - assert (thread != NULL);
> -
> - /* If thread is cancelled while waiting for handler to terminate,
> - the mutex is unlocked and timer_delete is aborted. */
> - pthread_cleanup_push (__timer_mutex_cancel_handler, &__timer_mutex);
> -
> - /* If timer is currently being serviced, wait for it to finish. */
> - while (thread->current_timer == timer)
> - pthread_cond_wait (&thread->cond, &__timer_mutex);
> -
> - pthread_cleanup_pop (0);
> - }
> -
> - /* Remove timer from whatever queue it may be on and deallocate it. */
> - timer->inuse = TIMER_DELETED;
> - list_unlink_ip (&timer->links);
> - timer_delref (timer);
> - retval = 0;
> - }
> -
> - pthread_mutex_unlock (&__timer_mutex);
> -
> - return retval;
> -}
> diff --git a/sysdeps/pthread/timer_getoverr.c b/sysdeps/pthread/timer_getoverr.c
> deleted file mode 100644
> index c1952f80c6..0000000000
> --- a/sysdeps/pthread/timer_getoverr.c
> +++ /dev/null
> @@ -1,43 +0,0 @@
> -/* Copyright (C) 2000-2021 Free Software Foundation, Inc.
> - This file is part of the GNU C Library.
> - Contributed by Kaz Kylheku <kaz@ashi.footprints.net>.
> -
> - 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; see the file COPYING.LIB. If
> - not, see <https://www.gnu.org/licenses/>. */
> -
> -#include <errno.h>
> -#include <pthread.h>
> -#include <time.h>
> -
> -#include "posix-timer.h"
> -
> -
> -/* Get expiration overrun for timer TIMERID. */
> -int
> -timer_getoverrun (timer_t timerid)
> -{
> - struct timer_node *timer;
> - int retval = -1;
> -
> - pthread_mutex_lock (&__timer_mutex);
> -
> - if (! timer_valid (timer = timer_id2ptr (timerid)))
> - __set_errno (EINVAL);
> - else
> - retval = timer->overrun_count;
> -
> - pthread_mutex_unlock (&__timer_mutex);
> -
> - return retval;
> -}
> diff --git a/sysdeps/pthread/timer_gettime.c b/sysdeps/pthread/timer_gettime.c
> deleted file mode 100644
> index dd3b4a6281..0000000000
> --- a/sysdeps/pthread/timer_gettime.c
> +++ /dev/null
> @@ -1,74 +0,0 @@
> -/* Copyright (C) 2000-2021 Free Software Foundation, Inc.
> - This file is part of the GNU C Library.
> - Contributed by Kaz Kylheku <kaz@ashi.footprints.net>.
> -
> - 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; see the file COPYING.LIB. If
> - not, see <https://www.gnu.org/licenses/>. */
> -
> -#include <errno.h>
> -#include <pthread.h>
> -#include <time.h>
> -
> -#include "posix-timer.h"
> -
> -
> -/* Get current value of timer TIMERID and store it in VLAUE. */
> -int
> -timer_gettime (timer_t timerid, struct itimerspec *value)
> -{
> - struct timer_node *timer;
> - struct timespec now, expiry;
> - int retval = -1, armed = 0, valid;
> - clock_t clock = 0;
> -
> - pthread_mutex_lock (&__timer_mutex);
> -
> - timer = timer_id2ptr (timerid);
> - valid = timer_valid (timer);
> -
> - if (valid) {
> - armed = timer->armed;
> - expiry = timer->expirytime;
> - clock = timer->clock;
> - value->it_interval = timer->value.it_interval;
> - }
> -
> - pthread_mutex_unlock (&__timer_mutex);
> -
> - if (valid)
> - {
> - if (armed)
> - {
> - __clock_gettime (clock, &now);
> - if (timespec_compare (&now, &expiry) < 0)
> - timespec_sub (&value->it_value, &expiry, &now);
> - else
> - {
> - value->it_value.tv_sec = 0;
> - value->it_value.tv_nsec = 0;
> - }
> - }
> - else
> - {
> - value->it_value.tv_sec = 0;
> - value->it_value.tv_nsec = 0;
> - }
> -
> - retval = 0;
> - }
> - else
> - __set_errno (EINVAL);
> -
> - return retval;
> -}
> diff --git a/sysdeps/pthread/timer_settime.c b/sysdeps/pthread/timer_settime.c
> deleted file mode 100644
> index c05adf166f..0000000000
> --- a/sysdeps/pthread/timer_settime.c
> +++ /dev/null
> @@ -1,131 +0,0 @@
> -/* Copyright (C) 2000-2021 Free Software Foundation, Inc.
> - This file is part of the GNU C Library.
> - Contributed by Kaz Kylheku <kaz@ashi.footprints.net>.
> -
> - 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; see the file COPYING.LIB. If
> - not, see <https://www.gnu.org/licenses/>. */
> -
> -#include <errno.h>
> -#include <pthread.h>
> -#include <time.h>
> -
> -#include "posix-timer.h"
> -
> -
> -/* Set timer TIMERID to VALUE, returning old value in OVLAUE. */
> -int
> -timer_settime (timer_t timerid, int flags, const struct itimerspec *value,
> - struct itimerspec *ovalue)
> -{
> - struct timer_node *timer;
> - struct thread_node *thread = NULL;
> - struct timespec now;
> - int have_now = 0, need_wakeup = 0;
> - int retval = -1;
> -
> - timer = timer_id2ptr (timerid);
> - if (timer == NULL)
> - {
> - __set_errno (EINVAL);
> - goto bail;
> - }
> -
> - if (! valid_nanoseconds (value->it_interval.tv_nsec)
> - || ! valid_nanoseconds (value->it_value.tv_nsec))
> - {
> - __set_errno (EINVAL);
> - goto bail;
> - }
> -
> - /* Will need to know current time since this is a relative timer;
> - might as well make the system call outside of the lock now! */
> -
> - if ((flags & TIMER_ABSTIME) == 0)
> - {
> - __clock_gettime (timer->clock, &now);
> - have_now = 1;
> - }
> -
> - pthread_mutex_lock (&__timer_mutex);
> - timer_addref (timer);
> -
> - /* One final check of timer validity; this one is possible only
> - until we have the mutex, because it accesses the inuse flag. */
> -
> - if (! timer_valid(timer))
> - {
> - __set_errno (EINVAL);
> - goto unlock_bail;
> - }
> -
> - if (ovalue != NULL)
> - {
> - ovalue->it_interval = timer->value.it_interval;
> -
> - if (timer->armed)
> - {
> - if (! have_now)
> - {
> - pthread_mutex_unlock (&__timer_mutex);
> - __clock_gettime (timer->clock, &now);
> - have_now = 1;
> - pthread_mutex_lock (&__timer_mutex);
> - timer_addref (timer);
> - }
> -
> - timespec_sub (&ovalue->it_value, &timer->expirytime, &now);
> - }
> - else
> - {
> - ovalue->it_value.tv_sec = 0;
> - ovalue->it_value.tv_nsec = 0;
> - }
> - }
> -
> - timer->value = *value;
> -
> - list_unlink_ip (&timer->links);
> - timer->armed = 0;
> -
> - thread = timer->thread;
> -
> - /* A value of { 0, 0 } causes the timer to be stopped. */
> - if (value->it_value.tv_sec != 0
> - || __builtin_expect (value->it_value.tv_nsec != 0, 1))
> - {
> - if ((flags & TIMER_ABSTIME) != 0)
> - /* The user specified the expiration time. */
> - timer->expirytime = value->it_value;
> - else
> - timespec_add (&timer->expirytime, &now, &value->it_value);
> -
> - /* Only need to wake up the thread if timer is inserted
> - at the head of the queue. */
> - if (thread != NULL)
> - need_wakeup = __timer_thread_queue_timer (thread, timer);
> - timer->armed = 1;
> - }
> -
> - retval = 0;
> -
> -unlock_bail:
> - timer_delref (timer);
> - pthread_mutex_unlock (&__timer_mutex);
> -
> -bail:
> - if (thread != NULL && need_wakeup)
> - __timer_thread_wakeup (thread);
> -
> - return retval;
> -}
Ok.
> diff --git a/sysdeps/unix/sysv/linux/alpha/aio_cancel.c b/sysdeps/unix/sysv/linux/alpha/aio_cancel.c
> index 0d6da82919..9f69b080ed 100644
> --- a/sysdeps/unix/sysv/linux/alpha/aio_cancel.c
> +++ b/sysdeps/unix/sysv/linux/alpha/aio_cancel.c
> @@ -10,7 +10,7 @@ extern __typeof (aio_cancel) __old_aio_cancel;
>
> #define aio_cancel __new_aio_cancel
>
> -#include <sysdeps/pthread/aio_cancel.c>
> +#include <rt/aio_cancel.c>
>
> #undef aio_cancel
> strong_alias (__new_aio_cancel, __new_aio_cancel64);
Ok.
> @@ -23,7 +23,7 @@ versioned_symbol (librt, __new_aio_cancel64, aio_cancel64, GLIBC_2_3);
> #define aio_cancel __old_aio_cancel
> #define ECANCELED 125
>
> -#include <sysdeps/pthread/aio_cancel.c>
> +#include <rt/aio_cancel.c>
>
> #undef aio_cancel
> strong_alias (__old_aio_cancel, __old_aio_cancel64);
Ok.
> diff --git a/sysdeps/unix/sysv/linux/sparc/aio_cancel.c b/sysdeps/unix/sysv/linux/sparc/aio_cancel.c
> index 0d6da82919..9f69b080ed 100644
> --- a/sysdeps/unix/sysv/linux/sparc/aio_cancel.c
> +++ b/sysdeps/unix/sysv/linux/sparc/aio_cancel.c
> @@ -10,7 +10,7 @@ extern __typeof (aio_cancel) __old_aio_cancel;
>
> #define aio_cancel __new_aio_cancel
>
> -#include <sysdeps/pthread/aio_cancel.c>
> +#include <rt/aio_cancel.c>
>
> #undef aio_cancel
> strong_alias (__new_aio_cancel, __new_aio_cancel64);
Ok.
> @@ -23,7 +23,7 @@ versioned_symbol (librt, __new_aio_cancel64, aio_cancel64, GLIBC_2_3);
> #define aio_cancel __old_aio_cancel
> #define ECANCELED 125
>
> -#include <sysdeps/pthread/aio_cancel.c>
> +#include <rt/aio_cancel.c>
>
> #undef aio_cancel
> strong_alias (__old_aio_cancel, __old_aio_cancel64);
Ok.
> diff --git a/sysdeps/unix/sysv/linux/wordsize-64/aio_read.c b/sysdeps/unix/sysv/linux/wordsize-64/aio_read.c
> index d10fc4320b..8310b484d0 100644
> --- a/sysdeps/unix/sysv/linux/wordsize-64/aio_read.c
> +++ b/sysdeps/unix/sysv/linux/wordsize-64/aio_read.c
> @@ -1,6 +1,6 @@
> #define aio_read64 __renamed_aio_read64
>
> -#include "../../../../pthread/aio_read.c"
> +#include <rt/aio_read.c>
>
> #undef aio_read64
>
Ok.
> diff --git a/sysdeps/unix/sysv/linux/wordsize-64/aio_write.c b/sysdeps/unix/sysv/linux/wordsize-64/aio_write.c
> index b0fb469cb2..60d242f88f 100644
> --- a/sysdeps/unix/sysv/linux/wordsize-64/aio_write.c
> +++ b/sysdeps/unix/sysv/linux/wordsize-64/aio_write.c
> @@ -1,6 +1,6 @@
> #define aio_write64 __renamed_aio_write64
>
> -#include "../../../../pthread/aio_write.c"
> +#include <rt/aio_write.c>
>
> #undef aio_write64
>
Ok.
> diff --git a/sysdeps/unix/sysv/linux/wordsize-64/lio_listio.c b/sysdeps/unix/sysv/linux/wordsize-64/lio_listio.c
> index 25ee5a3507..be9fe7a9c7 100644
> --- a/sysdeps/unix/sysv/linux/wordsize-64/lio_listio.c
> +++ b/sysdeps/unix/sysv/linux/wordsize-64/lio_listio.c
> @@ -1,6 +1,6 @@
> #define lio_listio64 __renamed_lio_listio64
>
> -#include "../../../../pthread/lio_listio.c"
> +#include <rt/lio_listio.c>
>
> #undef lio_listio64
>
>
Ok.
^ permalink raw reply [flat|nested] 72+ messages in thread
* [PATCH 08/34] nptl: Move pthreadP.h into sysdeps directory
2021-06-17 18:56 [PATCH v2 00/34] Move librt into libc Florian Weimer
` (6 preceding siblings ...)
2021-06-17 18:57 ` [PATCH 07/34] rt: Move generic implementation from sysdeps/pthread to rt Florian Weimer
@ 2021-06-17 18:57 ` Florian Weimer
2021-06-22 0:57 ` Adhemerval Zanella
2021-06-17 18:57 ` [PATCH 09/34] Add hidden prototypes for fsync, fdatasync Florian Weimer
` (26 subsequent siblings)
34 siblings, 1 reply; 72+ messages in thread
From: Florian Weimer @ 2021-06-17 18:57 UTC (permalink / raw)
To: libc-alpha
This mirrors the situation on Hurd. These directories are on
the include search part, so #include <pthreadP.h> works after this
change on both Hurd and nptl.
---
nptl_db/thread_dbP.h | 2 +-
sysdeps/nptl/aio_misc.h | 2 +-
sysdeps/nptl/dl-tls_init_tp.c | 2 +-
sysdeps/nptl/fork.c | 2 +-
sysdeps/nptl/gai_misc.h | 2 +-
sysdeps/nptl/jmp-unwind.c | 2 +-
sysdeps/nptl/libc-lockP.h | 2 +-
sysdeps/nptl/libc_start_call_main.h | 2 +-
{nptl => sysdeps/nptl}/pthreadP.h | 2 +-
sysdeps/nptl/pthread_early_init.h | 2 +-
sysdeps/nptl/setxid.h | 2 +-
sysdeps/posix/spawni.c | 2 +-
sysdeps/unix/sysv/linux/dl-execstack.c | 2 +-
sysdeps/unix/sysv/linux/mq_notify.c | 2 +-
sysdeps/unix/sysv/linux/s390/jmp-unwind.c | 2 +-
sysdeps/unix/sysv/linux/sigprocmask.c | 2 +-
sysdeps/unix/sysv/linux/spawni.c | 2 +-
sysdeps/unix/sysv/linux/timer_create.c | 2 +-
sysdeps/unix/sysv/linux/timer_routines.c | 2 +-
sysdeps/unix/sysv/linux/tls-internal.h | 2 +-
sysdeps/unix/sysv/linux/x86/longjmp.c | 2 +-
21 files changed, 21 insertions(+), 21 deletions(-)
rename {nptl => sysdeps/nptl}/pthreadP.h (99%)
diff --git a/nptl_db/thread_dbP.h b/nptl_db/thread_dbP.h
index 712fa3aeb6..7e7d1d5535 100644
--- a/nptl_db/thread_dbP.h
+++ b/nptl_db/thread_dbP.h
@@ -27,7 +27,7 @@
#include <assert.h>
#include "proc_service.h"
#include "thread_db.h"
-#include "../nptl/pthreadP.h" /* This is for *_BITMASK only. */
+#include <pthreadP.h> /* This is for *_BITMASK only. */
#include <list.h>
#include <gnu/lib-names.h>
#include <libc-diag.h>
diff --git a/sysdeps/nptl/aio_misc.h b/sysdeps/nptl/aio_misc.h
index 3e9b8929b2..a5c439fab5 100644
--- a/sysdeps/nptl/aio_misc.h
+++ b/sysdeps/nptl/aio_misc.h
@@ -21,7 +21,7 @@
correct aio_suspend and lio_listio implementations. */
#include <assert.h>
-#include <nptl/pthreadP.h>
+#include <pthreadP.h>
#include <futex-internal.h>
#define DONT_NEED_AIO_MISC_COND 1
diff --git a/sysdeps/nptl/dl-tls_init_tp.c b/sysdeps/nptl/dl-tls_init_tp.c
index b7b3bb1cdb..c3349dd14c 100644
--- a/sysdeps/nptl/dl-tls_init_tp.c
+++ b/sysdeps/nptl/dl-tls_init_tp.c
@@ -19,7 +19,7 @@
#include <kernel-features.h>
#include <ldsodefs.h>
#include <list.h>
-#include <nptl/pthreadP.h>
+#include <pthreadP.h>
#include <tls.h>
#ifndef __ASSUME_SET_ROBUST_LIST
diff --git a/sysdeps/nptl/fork.c b/sysdeps/nptl/fork.c
index 062b01265a..39ab797612 100644
--- a/sysdeps/nptl/fork.c
+++ b/sysdeps/nptl/fork.c
@@ -27,7 +27,7 @@
#include <ldsodefs.h>
#include <stdio-lock.h>
#include <atomic.h>
-#include <nptl/pthreadP.h>
+#include <pthreadP.h>
#include <register-atfork.h>
#include <arch-fork.h>
#include <futex-internal.h>
diff --git a/sysdeps/nptl/gai_misc.h b/sysdeps/nptl/gai_misc.h
index 82948fdf96..36bf27523d 100644
--- a/sysdeps/nptl/gai_misc.h
+++ b/sysdeps/nptl/gai_misc.h
@@ -22,7 +22,7 @@
#include <assert.h>
#include <signal.h>
-#include <nptl/pthreadP.h>
+#include <pthreadP.h>
#include <futex-internal.h>
#define DONT_NEED_GAI_MISC_COND 1
diff --git a/sysdeps/nptl/jmp-unwind.c b/sysdeps/nptl/jmp-unwind.c
index 96c4862c74..5254c16b81 100644
--- a/sysdeps/nptl/jmp-unwind.c
+++ b/sysdeps/nptl/jmp-unwind.c
@@ -19,7 +19,7 @@
#include <setjmp.h>
#include <stddef.h>
#include <libc-lock.h>
-#include <nptl/pthreadP.h>
+#include <pthreadP.h>
void
_longjmp_unwind (jmp_buf env, int val)
diff --git a/sysdeps/nptl/libc-lockP.h b/sysdeps/nptl/libc-lockP.h
index ec7b02bbdd..ef88a3e533 100644
--- a/sysdeps/nptl/libc-lockP.h
+++ b/sysdeps/nptl/libc-lockP.h
@@ -36,7 +36,7 @@
#if IS_IN (libpthread)
/* This gets us the declarations of the __pthread_* internal names,
and hidden_proto for them. */
-# include <nptl/pthreadP.h>
+# include <pthreadP.h>
#endif
/* Mutex type. */
diff --git a/sysdeps/nptl/libc_start_call_main.h b/sysdeps/nptl/libc_start_call_main.h
index b56bf34325..06d72c1e38 100644
--- a/sysdeps/nptl/libc_start_call_main.h
+++ b/sysdeps/nptl/libc_start_call_main.h
@@ -17,7 +17,7 @@
<https://www.gnu.org/licenses/>. */
#include <atomic.h>
-#include <nptl/pthreadP.h>
+#include <pthreadP.h>
_Noreturn static void
__libc_start_call_main (int (*main) (int, char **, char ** MAIN_AUXVEC_DECL),
diff --git a/nptl/pthreadP.h b/sysdeps/nptl/pthreadP.h
similarity index 99%
rename from nptl/pthreadP.h
rename to sysdeps/nptl/pthreadP.h
index 675d1de753..ca96ff073b 100644
--- a/nptl/pthreadP.h
+++ b/sysdeps/nptl/pthreadP.h
@@ -25,7 +25,7 @@
#include <setjmp.h>
#include <stdbool.h>
#include <sys/syscall.h>
-#include "descr.h"
+#include <nptl/descr.h>
#include <tls.h>
#include <lowlevellock.h>
#include <stackinfo.h>
diff --git a/sysdeps/nptl/pthread_early_init.h b/sysdeps/nptl/pthread_early_init.h
index 5b49ce39c2..89774c1477 100644
--- a/sysdeps/nptl/pthread_early_init.h
+++ b/sysdeps/nptl/pthread_early_init.h
@@ -20,7 +20,7 @@
#define _PTHREAD_EARLY_INIT_H 1
#include <nptl/nptl-stack.h>
-#include <nptl/pthreadP.h>
+#include <pthreadP.h>
#include <pthread_mutex_conf.h>
#include <sys/resource.h>
diff --git a/sysdeps/nptl/setxid.h b/sysdeps/nptl/setxid.h
index 8b49d11550..e90367bf02 100644
--- a/sysdeps/nptl/setxid.h
+++ b/sysdeps/nptl/setxid.h
@@ -15,7 +15,7 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <nptl/pthreadP.h>
+#include <pthreadP.h>
#include <sys/single_threaded.h>
#include <sysdep.h>
diff --git a/sysdeps/posix/spawni.c b/sysdeps/posix/spawni.c
index a649788668..fe3b5bb7f6 100644
--- a/sysdeps/posix/spawni.c
+++ b/sysdeps/posix/spawni.c
@@ -28,7 +28,7 @@
#include <not-cancel.h>
#include <local-setxid.h>
#include <shlib-compat.h>
-#include <nptl/pthreadP.h>
+#include <pthreadP.h>
#include <dl-sysdep.h>
#include <libc-pointer-arith.h>
#include <ldsodefs.h>
diff --git a/sysdeps/unix/sysv/linux/dl-execstack.c b/sysdeps/unix/sysv/linux/dl-execstack.c
index e2449d1890..6598c90357 100644
--- a/sysdeps/unix/sysv/linux/dl-execstack.c
+++ b/sysdeps/unix/sysv/linux/dl-execstack.c
@@ -20,7 +20,7 @@
#include <ldsodefs.h>
#include <libintl.h>
#include <list.h>
-#include <nptl/pthreadP.h>
+#include <pthreadP.h>
#include <stackinfo.h>
#include <stdbool.h>
#include <sys/mman.h>
diff --git a/sysdeps/unix/sysv/linux/mq_notify.c b/sysdeps/unix/sysv/linux/mq_notify.c
index 6f46d29d1d..e22850a910 100644
--- a/sysdeps/unix/sysv/linux/mq_notify.c
+++ b/sysdeps/unix/sysv/linux/mq_notify.c
@@ -28,7 +28,7 @@
#include <unistd.h>
#include <sys/socket.h>
#include <not-cancel.h>
-#include <nptl/pthreadP.h>
+#include <pthreadP.h>
/* Defined in the kernel headers: */
diff --git a/sysdeps/unix/sysv/linux/s390/jmp-unwind.c b/sysdeps/unix/sysv/linux/s390/jmp-unwind.c
index 8e0399a3e9..5fbca71f5b 100644
--- a/sysdeps/unix/sysv/linux/s390/jmp-unwind.c
+++ b/sysdeps/unix/sysv/linux/s390/jmp-unwind.c
@@ -19,7 +19,7 @@
#include <setjmp.h>
#include <stddef.h>
#include <libc-lock.h>
-#include <nptl/pthreadP.h>
+#include <pthreadP.h>
void
_longjmp_unwind (jmp_buf env, int val)
diff --git a/sysdeps/unix/sysv/linux/sigprocmask.c b/sysdeps/unix/sysv/linux/sigprocmask.c
index 9dfd8076d1..eeec05d037 100644
--- a/sysdeps/unix/sysv/linux/sigprocmask.c
+++ b/sysdeps/unix/sysv/linux/sigprocmask.c
@@ -16,7 +16,7 @@
<https://www.gnu.org/licenses/>. */
#include <signal.h>
-#include <nptl/pthreadP.h> /* SIGCANCEL, SIGSETXID */
+#include <pthreadP.h> /* SIGCANCEL, SIGSETXID */
/* Get and/or change the set of blocked signals. */
int
diff --git a/sysdeps/unix/sysv/linux/spawni.c b/sysdeps/unix/sysv/linux/spawni.c
index 501f8fbccd..3b435e6c86 100644
--- a/sysdeps/unix/sysv/linux/spawni.c
+++ b/sysdeps/unix/sysv/linux/spawni.c
@@ -27,7 +27,7 @@
#include <not-cancel.h>
#include <local-setxid.h>
#include <shlib-compat.h>
-#include <nptl/pthreadP.h>
+#include <pthreadP.h>
#include <dl-sysdep.h>
#include <libc-pointer-arith.h>
#include <ldsodefs.h>
diff --git a/sysdeps/unix/sysv/linux/timer_create.c b/sysdeps/unix/sysv/linux/timer_create.c
index 37de98fde4..1ea0086487 100644
--- a/sysdeps/unix/sysv/linux/timer_create.c
+++ b/sysdeps/unix/sysv/linux/timer_create.c
@@ -24,7 +24,7 @@
#include <time.h>
#include <sysdep.h>
#include <internaltypes.h>
-#include <nptl/pthreadP.h>
+#include <pthreadP.h>
#include "kernel-posix-timers.h"
#include "kernel-posix-cpu-timers.h"
diff --git a/sysdeps/unix/sysv/linux/timer_routines.c b/sysdeps/unix/sysv/linux/timer_routines.c
index 60e60e0098..4098da8a5f 100644
--- a/sysdeps/unix/sysv/linux/timer_routines.c
+++ b/sysdeps/unix/sysv/linux/timer_routines.c
@@ -21,7 +21,7 @@
#include <signal.h>
#include <stdbool.h>
#include <sysdep-cancel.h>
-#include <nptl/pthreadP.h>
+#include <pthreadP.h>
#include "kernel-posix-timers.h"
diff --git a/sysdeps/unix/sysv/linux/tls-internal.h b/sysdeps/unix/sysv/linux/tls-internal.h
index 40798a5dcc..17128136dd 100644
--- a/sysdeps/unix/sysv/linux/tls-internal.h
+++ b/sysdeps/unix/sysv/linux/tls-internal.h
@@ -20,7 +20,7 @@
#define _TLS_INTERNAL_H 1
#include <stdlib.h>
-#include <nptl/pthreadP.h>
+#include <pthreadP.h>
static inline struct tls_internal_t *
__glibc_tls_internal (void)
diff --git a/sysdeps/unix/sysv/linux/x86/longjmp.c b/sysdeps/unix/sysv/linux/x86/longjmp.c
index 1cc8b8dfad..25e2af7685 100644
--- a/sysdeps/unix/sysv/linux/x86/longjmp.c
+++ b/sysdeps/unix/sysv/linux/x86/longjmp.c
@@ -18,7 +18,7 @@
#include <sysdeps/x86/longjmp.c>
-#include <nptl/pthreadP.h>
+#include <pthreadP.h>
#include <jmp_buf-ssp.h>
#ifdef __x86_64__
--
2.31.1
^ permalink raw reply [flat|nested] 72+ messages in thread
* Re: [PATCH 08/34] nptl: Move pthreadP.h into sysdeps directory
2021-06-17 18:57 ` [PATCH 08/34] nptl: Move pthreadP.h into sysdeps directory Florian Weimer
@ 2021-06-22 0:57 ` Adhemerval Zanella
0 siblings, 0 replies; 72+ messages in thread
From: Adhemerval Zanella @ 2021-06-22 0:57 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 17/06/2021 15:57, Florian Weimer via Libc-alpha wrote:
> This mirrors the situation on Hurd. These directories are on
> the include search part, so #include <pthreadP.h> works after this
> change on both Hurd and npt
Nice change, is is really awkward to keep using nptl/pthreadP or keep
adding some extra hacks to include it outside nptl.
LGTM, thanks.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> ---
> nptl_db/thread_dbP.h | 2 +-
> sysdeps/nptl/aio_misc.h | 2 +-
> sysdeps/nptl/dl-tls_init_tp.c | 2 +-
> sysdeps/nptl/fork.c | 2 +-
> sysdeps/nptl/gai_misc.h | 2 +-
> sysdeps/nptl/jmp-unwind.c | 2 +-
> sysdeps/nptl/libc-lockP.h | 2 +-
> sysdeps/nptl/libc_start_call_main.h | 2 +-
> {nptl => sysdeps/nptl}/pthreadP.h | 2 +-
> sysdeps/nptl/pthread_early_init.h | 2 +-
> sysdeps/nptl/setxid.h | 2 +-
> sysdeps/posix/spawni.c | 2 +-
> sysdeps/unix/sysv/linux/dl-execstack.c | 2 +-
> sysdeps/unix/sysv/linux/mq_notify.c | 2 +-
> sysdeps/unix/sysv/linux/s390/jmp-unwind.c | 2 +-
> sysdeps/unix/sysv/linux/sigprocmask.c | 2 +-
> sysdeps/unix/sysv/linux/spawni.c | 2 +-
> sysdeps/unix/sysv/linux/timer_create.c | 2 +-
> sysdeps/unix/sysv/linux/timer_routines.c | 2 +-
> sysdeps/unix/sysv/linux/tls-internal.h | 2 +-
> sysdeps/unix/sysv/linux/x86/longjmp.c | 2 +-
> 21 files changed, 21 insertions(+), 21 deletions(-)
> rename {nptl => sysdeps/nptl}/pthreadP.h (99%)
>
> diff --git a/nptl_db/thread_dbP.h b/nptl_db/thread_dbP.h
> index 712fa3aeb6..7e7d1d5535 100644
> --- a/nptl_db/thread_dbP.h
> +++ b/nptl_db/thread_dbP.h
> @@ -27,7 +27,7 @@
> #include <assert.h>
> #include "proc_service.h"
> #include "thread_db.h"
> -#include "../nptl/pthreadP.h" /* This is for *_BITMASK only. */
> +#include <pthreadP.h> /* This is for *_BITMASK only. */
> #include <list.h>
> #include <gnu/lib-names.h>
> #include <libc-diag.h>
Ok.
> diff --git a/sysdeps/nptl/aio_misc.h b/sysdeps/nptl/aio_misc.h
> index 3e9b8929b2..a5c439fab5 100644
> --- a/sysdeps/nptl/aio_misc.h
> +++ b/sysdeps/nptl/aio_misc.h
> @@ -21,7 +21,7 @@
> correct aio_suspend and lio_listio implementations. */
>
> #include <assert.h>
> -#include <nptl/pthreadP.h>
> +#include <pthreadP.h>
> #include <futex-internal.h>
>
> #define DONT_NEED_AIO_MISC_COND 1
Ok.
> diff --git a/sysdeps/nptl/dl-tls_init_tp.c b/sysdeps/nptl/dl-tls_init_tp.c
> index b7b3bb1cdb..c3349dd14c 100644
> --- a/sysdeps/nptl/dl-tls_init_tp.c
> +++ b/sysdeps/nptl/dl-tls_init_tp.c
> @@ -19,7 +19,7 @@
> #include <kernel-features.h>
> #include <ldsodefs.h>
> #include <list.h>
> -#include <nptl/pthreadP.h>
> +#include <pthreadP.h>
> #include <tls.h>
>
> #ifndef __ASSUME_SET_ROBUST_LIST
Ok.
> diff --git a/sysdeps/nptl/fork.c b/sysdeps/nptl/fork.c
> index 062b01265a..39ab797612 100644
> --- a/sysdeps/nptl/fork.c
> +++ b/sysdeps/nptl/fork.c
> @@ -27,7 +27,7 @@
> #include <ldsodefs.h>
> #include <stdio-lock.h>
> #include <atomic.h>
> -#include <nptl/pthreadP.h>
> +#include <pthreadP.h>
> #include <register-atfork.h>
> #include <arch-fork.h>
> #include <futex-internal.h>
Ok.
> diff --git a/sysdeps/nptl/gai_misc.h b/sysdeps/nptl/gai_misc.h
> index 82948fdf96..36bf27523d 100644
> --- a/sysdeps/nptl/gai_misc.h
> +++ b/sysdeps/nptl/gai_misc.h
> @@ -22,7 +22,7 @@
>
> #include <assert.h>
> #include <signal.h>
> -#include <nptl/pthreadP.h>
> +#include <pthreadP.h>
> #include <futex-internal.h>
>
> #define DONT_NEED_GAI_MISC_COND 1
Ok.
> diff --git a/sysdeps/nptl/jmp-unwind.c b/sysdeps/nptl/jmp-unwind.c
> index 96c4862c74..5254c16b81 100644
> --- a/sysdeps/nptl/jmp-unwind.c
> +++ b/sysdeps/nptl/jmp-unwind.c
> @@ -19,7 +19,7 @@
> #include <setjmp.h>
> #include <stddef.h>
> #include <libc-lock.h>
> -#include <nptl/pthreadP.h>
> +#include <pthreadP.h>
>
> void
> _longjmp_unwind (jmp_buf env, int val)
Ok.
> diff --git a/sysdeps/nptl/libc-lockP.h b/sysdeps/nptl/libc-lockP.h
> index ec7b02bbdd..ef88a3e533 100644
> --- a/sysdeps/nptl/libc-lockP.h
> +++ b/sysdeps/nptl/libc-lockP.h
> @@ -36,7 +36,7 @@
> #if IS_IN (libpthread)
> /* This gets us the declarations of the __pthread_* internal names,
> and hidden_proto for them. */
> -# include <nptl/pthreadP.h>
> +# include <pthreadP.h>
> #endif
>
> /* Mutex type. */
Ok.
> diff --git a/sysdeps/nptl/libc_start_call_main.h b/sysdeps/nptl/libc_start_call_main.h
> index b56bf34325..06d72c1e38 100644
> --- a/sysdeps/nptl/libc_start_call_main.h
> +++ b/sysdeps/nptl/libc_start_call_main.h
> @@ -17,7 +17,7 @@
> <https://www.gnu.org/licenses/>. */
>
> #include <atomic.h>
> -#include <nptl/pthreadP.h>
> +#include <pthreadP.h>
>
> _Noreturn static void
> __libc_start_call_main (int (*main) (int, char **, char ** MAIN_AUXVEC_DECL),
Ok.
> diff --git a/nptl/pthreadP.h b/sysdeps/nptl/pthreadP.h
> similarity index 99%
> rename from nptl/pthreadP.h
> rename to sysdeps/nptl/pthreadP.h
> index 675d1de753..ca96ff073b 100644
> --- a/nptl/pthreadP.h
> +++ b/sysdeps/nptl/pthreadP.h
> @@ -25,7 +25,7 @@
> #include <setjmp.h>
> #include <stdbool.h>
> #include <sys/syscall.h>
> -#include "descr.h"
> +#include <nptl/descr.h>
> #include <tls.h>
> #include <lowlevellock.h>
> #include <stackinfo.h>
Ok.
> diff --git a/sysdeps/nptl/pthread_early_init.h b/sysdeps/nptl/pthread_early_init.h
> index 5b49ce39c2..89774c1477 100644
> --- a/sysdeps/nptl/pthread_early_init.h
> +++ b/sysdeps/nptl/pthread_early_init.h
> @@ -20,7 +20,7 @@
> #define _PTHREAD_EARLY_INIT_H 1
>
> #include <nptl/nptl-stack.h>
> -#include <nptl/pthreadP.h>
> +#include <pthreadP.h>
> #include <pthread_mutex_conf.h>
> #include <sys/resource.h>
>
Ok.
> diff --git a/sysdeps/nptl/setxid.h b/sysdeps/nptl/setxid.h
> index 8b49d11550..e90367bf02 100644
> --- a/sysdeps/nptl/setxid.h
> +++ b/sysdeps/nptl/setxid.h
> @@ -15,7 +15,7 @@
> License along with the GNU C Library; if not, see
> <https://www.gnu.org/licenses/>. */
>
> -#include <nptl/pthreadP.h>
> +#include <pthreadP.h>
> #include <sys/single_threaded.h>
> #include <sysdep.h>
>
Ok.
> diff --git a/sysdeps/posix/spawni.c b/sysdeps/posix/spawni.c
> index a649788668..fe3b5bb7f6 100644
> --- a/sysdeps/posix/spawni.c
> +++ b/sysdeps/posix/spawni.c
> @@ -28,7 +28,7 @@
> #include <not-cancel.h>
> #include <local-setxid.h>
> #include <shlib-compat.h>
> -#include <nptl/pthreadP.h>
> +#include <pthreadP.h>
> #include <dl-sysdep.h>
> #include <libc-pointer-arith.h>
> #include <ldsodefs.h>
Ok.
> diff --git a/sysdeps/unix/sysv/linux/dl-execstack.c b/sysdeps/unix/sysv/linux/dl-execstack.c
> index e2449d1890..6598c90357 100644
> --- a/sysdeps/unix/sysv/linux/dl-execstack.c
> +++ b/sysdeps/unix/sysv/linux/dl-execstack.c
> @@ -20,7 +20,7 @@
> #include <ldsodefs.h>
> #include <libintl.h>
> #include <list.h>
> -#include <nptl/pthreadP.h>
> +#include <pthreadP.h>
> #include <stackinfo.h>
> #include <stdbool.h>
> #include <sys/mman.h>
Ok.
> diff --git a/sysdeps/unix/sysv/linux/mq_notify.c b/sysdeps/unix/sysv/linux/mq_notify.c
> index 6f46d29d1d..e22850a910 100644
> --- a/sysdeps/unix/sysv/linux/mq_notify.c
> +++ b/sysdeps/unix/sysv/linux/mq_notify.c
> @@ -28,7 +28,7 @@
> #include <unistd.h>
> #include <sys/socket.h>
> #include <not-cancel.h>
> -#include <nptl/pthreadP.h>
> +#include <pthreadP.h>
>
>
> /* Defined in the kernel headers: */
Ok.
> diff --git a/sysdeps/unix/sysv/linux/s390/jmp-unwind.c b/sysdeps/unix/sysv/linux/s390/jmp-unwind.c
> index 8e0399a3e9..5fbca71f5b 100644
> --- a/sysdeps/unix/sysv/linux/s390/jmp-unwind.c
> +++ b/sysdeps/unix/sysv/linux/s390/jmp-unwind.c
> @@ -19,7 +19,7 @@
> #include <setjmp.h>
> #include <stddef.h>
> #include <libc-lock.h>
> -#include <nptl/pthreadP.h>
> +#include <pthreadP.h>
>
> void
> _longjmp_unwind (jmp_buf env, int val)
Ok.
> diff --git a/sysdeps/unix/sysv/linux/sigprocmask.c b/sysdeps/unix/sysv/linux/sigprocmask.c
> index 9dfd8076d1..eeec05d037 100644
> --- a/sysdeps/unix/sysv/linux/sigprocmask.c
> +++ b/sysdeps/unix/sysv/linux/sigprocmask.c
> @@ -16,7 +16,7 @@
> <https://www.gnu.org/licenses/>. */
>
> #include <signal.h>
> -#include <nptl/pthreadP.h> /* SIGCANCEL, SIGSETXID */
> +#include <pthreadP.h> /* SIGCANCEL, SIGSETXID */
>
> /* Get and/or change the set of blocked signals. */
> int
Ok.
> diff --git a/sysdeps/unix/sysv/linux/spawni.c b/sysdeps/unix/sysv/linux/spawni.c
> index 501f8fbccd..3b435e6c86 100644
> --- a/sysdeps/unix/sysv/linux/spawni.c
> +++ b/sysdeps/unix/sysv/linux/spawni.c
> @@ -27,7 +27,7 @@
> #include <not-cancel.h>
> #include <local-setxid.h>
> #include <shlib-compat.h>
> -#include <nptl/pthreadP.h>
> +#include <pthreadP.h>
> #include <dl-sysdep.h>
> #include <libc-pointer-arith.h>
> #include <ldsodefs.h>
Ok.
> diff --git a/sysdeps/unix/sysv/linux/timer_create.c b/sysdeps/unix/sysv/linux/timer_create.c
> index 37de98fde4..1ea0086487 100644
> --- a/sysdeps/unix/sysv/linux/timer_create.c
> +++ b/sysdeps/unix/sysv/linux/timer_create.c
> @@ -24,7 +24,7 @@
> #include <time.h>
> #include <sysdep.h>
> #include <internaltypes.h>
> -#include <nptl/pthreadP.h>
> +#include <pthreadP.h>
> #include "kernel-posix-timers.h"
> #include "kernel-posix-cpu-timers.h"
>
Ok.
> diff --git a/sysdeps/unix/sysv/linux/timer_routines.c b/sysdeps/unix/sysv/linux/timer_routines.c
> index 60e60e0098..4098da8a5f 100644
> --- a/sysdeps/unix/sysv/linux/timer_routines.c
> +++ b/sysdeps/unix/sysv/linux/timer_routines.c
> @@ -21,7 +21,7 @@
> #include <signal.h>
> #include <stdbool.h>
> #include <sysdep-cancel.h>
> -#include <nptl/pthreadP.h>
> +#include <pthreadP.h>
> #include "kernel-posix-timers.h"
>
>
Ok.
> diff --git a/sysdeps/unix/sysv/linux/tls-internal.h b/sysdeps/unix/sysv/linux/tls-internal.h
> index 40798a5dcc..17128136dd 100644
> --- a/sysdeps/unix/sysv/linux/tls-internal.h
> +++ b/sysdeps/unix/sysv/linux/tls-internal.h
> @@ -20,7 +20,7 @@
> #define _TLS_INTERNAL_H 1
>
> #include <stdlib.h>
> -#include <nptl/pthreadP.h>
> +#include <pthreadP.h>
>
> static inline struct tls_internal_t *
> __glibc_tls_internal (void)
Ok.
> diff --git a/sysdeps/unix/sysv/linux/x86/longjmp.c b/sysdeps/unix/sysv/linux/x86/longjmp.c
> index 1cc8b8dfad..25e2af7685 100644
> --- a/sysdeps/unix/sysv/linux/x86/longjmp.c
> +++ b/sysdeps/unix/sysv/linux/x86/longjmp.c
> @@ -18,7 +18,7 @@
>
> #include <sysdeps/x86/longjmp.c>
>
> -#include <nptl/pthreadP.h>
> +#include <pthreadP.h>
> #include <jmp_buf-ssp.h>
>
> #ifdef __x86_64__
>
Ok.
^ permalink raw reply [flat|nested] 72+ messages in thread
* [PATCH 09/34] Add hidden prototypes for fsync, fdatasync
2021-06-17 18:56 [PATCH v2 00/34] Move librt into libc Florian Weimer
` (7 preceding siblings ...)
2021-06-17 18:57 ` [PATCH 08/34] nptl: Move pthreadP.h into sysdeps directory Florian Weimer
@ 2021-06-17 18:57 ` Florian Weimer
2021-06-22 0:58 ` Adhemerval Zanella
2021-06-17 18:57 ` [PATCH 10/34] Linux: Move aio_init from librt into libc Florian Weimer
` (25 subsequent siblings)
34 siblings, 1 reply; 72+ messages in thread
From: Florian Weimer @ 2021-06-17 18:57 UTC (permalink / raw)
To: libc-alpha
---
include/unistd.h | 2 ++
misc/fdatasync.c | 1 +
misc/fsync.c | 2 +-
sysdeps/mach/hurd/fdatasync.c | 1 +
sysdeps/mach/hurd/fsync.c | 1 +
sysdeps/unix/sysv/linux/fdatasync.c | 1 +
sysdeps/unix/sysv/linux/fsync.c | 1 +
7 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/include/unistd.h b/include/unistd.h
index 8ed8b1ea4b..34872d8b41 100644
--- a/include/unistd.h
+++ b/include/unistd.h
@@ -25,6 +25,8 @@ libc_hidden_proto (seteuid)
libc_hidden_proto (setegid)
libc_hidden_proto (tcgetpgrp)
libc_hidden_proto (readlinkat)
+libc_hidden_proto (fsync)
+libc_hidden_proto (fdatasync)
/* Now define the internal interfaces. */
extern int __access (const char *__name, int __type);
diff --git a/misc/fdatasync.c b/misc/fdatasync.c
index 28474812ca..c776978bba 100644
--- a/misc/fdatasync.c
+++ b/misc/fdatasync.c
@@ -25,3 +25,4 @@ fdatasync (int fildes)
{
return fsync (fildes);
}
+libc_hidden_def (fdatasync)
diff --git a/misc/fsync.c b/misc/fsync.c
index e1c37c6016..1961dd0cb2 100644
--- a/misc/fsync.c
+++ b/misc/fsync.c
@@ -25,6 +25,6 @@ fsync (int fd)
__set_errno (ENOSYS);
return -1;
}
-
+libc_hidden_def (fsync)
stub_warning (fsync)
diff --git a/sysdeps/mach/hurd/fdatasync.c b/sysdeps/mach/hurd/fdatasync.c
index 0be8072e7f..68df551016 100644
--- a/sysdeps/mach/hurd/fdatasync.c
+++ b/sysdeps/mach/hurd/fdatasync.c
@@ -41,3 +41,4 @@ fdatasync (int fd)
}
return 0;
}
+libc_hidden_def (fdatasync)
diff --git a/sysdeps/mach/hurd/fsync.c b/sysdeps/mach/hurd/fsync.c
index ef04ee97f9..c1d560f293 100644
--- a/sysdeps/mach/hurd/fsync.c
+++ b/sysdeps/mach/hurd/fsync.c
@@ -41,3 +41,4 @@ fsync (int fd)
}
return 0;
}
+libc_hidden_def (fsync)
diff --git a/sysdeps/unix/sysv/linux/fdatasync.c b/sysdeps/unix/sysv/linux/fdatasync.c
index 84c07f212e..12fb3c13e5 100644
--- a/sysdeps/unix/sysv/linux/fdatasync.c
+++ b/sysdeps/unix/sysv/linux/fdatasync.c
@@ -27,3 +27,4 @@ fdatasync (int fd)
{
return SYSCALL_CANCEL (fdatasync, fd);
}
+libc_hidden_def (fdatasync)
diff --git a/sysdeps/unix/sysv/linux/fsync.c b/sysdeps/unix/sysv/linux/fsync.c
index 234bb0049f..e4b5c8c342 100644
--- a/sysdeps/unix/sysv/linux/fsync.c
+++ b/sysdeps/unix/sysv/linux/fsync.c
@@ -26,3 +26,4 @@ fsync (int fd)
{
return SYSCALL_CANCEL (fsync, fd);
}
+libc_hidden_def (fsync)
--
2.31.1
^ permalink raw reply [flat|nested] 72+ messages in thread
* Re: [PATCH 09/34] Add hidden prototypes for fsync, fdatasync
2021-06-17 18:57 ` [PATCH 09/34] Add hidden prototypes for fsync, fdatasync Florian Weimer
@ 2021-06-22 0:58 ` Adhemerval Zanella
0 siblings, 0 replies; 72+ messages in thread
From: Adhemerval Zanella @ 2021-06-22 0:58 UTC (permalink / raw)
To: libc-alpha, Florian Weimer
LGTM, thanks.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
On 17/06/2021 15:57, Florian Weimer via Libc-alpha wrote:
> ---
> include/unistd.h | 2 ++
> misc/fdatasync.c | 1 +
> misc/fsync.c | 2 +-
> sysdeps/mach/hurd/fdatasync.c | 1 +
> sysdeps/mach/hurd/fsync.c | 1 +
> sysdeps/unix/sysv/linux/fdatasync.c | 1 +
> sysdeps/unix/sysv/linux/fsync.c | 1 +
> 7 files changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/include/unistd.h b/include/unistd.h
> index 8ed8b1ea4b..34872d8b41 100644
> --- a/include/unistd.h
> +++ b/include/unistd.h
> @@ -25,6 +25,8 @@ libc_hidden_proto (seteuid)
> libc_hidden_proto (setegid)
> libc_hidden_proto (tcgetpgrp)
> libc_hidden_proto (readlinkat)
> +libc_hidden_proto (fsync)
> +libc_hidden_proto (fdatasync)
>
> /* Now define the internal interfaces. */
Ok.
> extern int __access (const char *__name, int __type);
> diff --git a/misc/fdatasync.c b/misc/fdatasync.c
> index 28474812ca..c776978bba 100644
> --- a/misc/fdatasync.c
> +++ b/misc/fdatasync.c
> @@ -25,3 +25,4 @@ fdatasync (int fildes)
> {
> return fsync (fildes);
> }
> +libc_hidden_def (fdatasync)
Ok.
> diff --git a/misc/fsync.c b/misc/fsync.c
> index e1c37c6016..1961dd0cb2 100644
> --- a/misc/fsync.c
> +++ b/misc/fsync.c
> @@ -25,6 +25,6 @@ fsync (int fd)
> __set_errno (ENOSYS);
> return -1;
> }
> -
> +libc_hidden_def (fsync)
>
> stub_warning (fsync)
Ok.
> diff --git a/sysdeps/mach/hurd/fdatasync.c b/sysdeps/mach/hurd/fdatasync.c
> index 0be8072e7f..68df551016 100644
> --- a/sysdeps/mach/hurd/fdatasync.c
> +++ b/sysdeps/mach/hurd/fdatasync.c
> @@ -41,3 +41,4 @@ fdatasync (int fd)
> }
> return 0;
> }
> +libc_hidden_def (fdatasync)
Ok.
> diff --git a/sysdeps/mach/hurd/fsync.c b/sysdeps/mach/hurd/fsync.c
> index ef04ee97f9..c1d560f293 100644
> --- a/sysdeps/mach/hurd/fsync.c
> +++ b/sysdeps/mach/hurd/fsync.c
> @@ -41,3 +41,4 @@ fsync (int fd)
> }
> return 0;
> }
> +libc_hidden_def (fsync)
Ok.
> diff --git a/sysdeps/unix/sysv/linux/fdatasync.c b/sysdeps/unix/sysv/linux/fdatasync.c
> index 84c07f212e..12fb3c13e5 100644
> --- a/sysdeps/unix/sysv/linux/fdatasync.c
> +++ b/sysdeps/unix/sysv/linux/fdatasync.c
> @@ -27,3 +27,4 @@ fdatasync (int fd)
> {
> return SYSCALL_CANCEL (fdatasync, fd);
> }
> +libc_hidden_def (fdatasync)
Ok.
> diff --git a/sysdeps/unix/sysv/linux/fsync.c b/sysdeps/unix/sysv/linux/fsync.c
> index 234bb0049f..e4b5c8c342 100644
> --- a/sysdeps/unix/sysv/linux/fsync.c
> +++ b/sysdeps/unix/sysv/linux/fsync.c
> @@ -26,3 +26,4 @@ fsync (int fd)
> {
> return SYSCALL_CANCEL (fsync, fd);
> }
> +libc_hidden_def (fsync)
>
Ok.
^ permalink raw reply [flat|nested] 72+ messages in thread
* [PATCH 10/34] Linux: Move aio_init from librt into libc
2021-06-17 18:56 [PATCH v2 00/34] Move librt into libc Florian Weimer
` (8 preceding siblings ...)
2021-06-17 18:57 ` [PATCH 09/34] Add hidden prototypes for fsync, fdatasync Florian Weimer
@ 2021-06-17 18:57 ` Florian Weimer
2021-06-23 13:22 ` Adhemerval Zanella
2021-06-17 18:57 ` [PATCH 11/34] Linux: Move aio_cancel, aio_cancel64 " Florian Weimer
` (24 subsequent siblings)
34 siblings, 1 reply; 72+ messages in thread
From: Florian Weimer @ 2021-06-17 18:57 UTC (permalink / raw)
To: libc-alpha
This commit also moves the aio_misc and aio_sigquue helper,
so GLIBC_PRIVATE exports need to be added.
The symbol was moved using scripts/move-symbol-to-libc.py.
---
nptl/pthread_getschedparam.c | 1 +
rt/Makefile | 6 +-
rt/Versions | 23 ++++
rt/aio_misc.c | 107 ++++++++++++------
rt/aio_notify.c | 21 +++-
rt/aio_sigqueue.c | 2 +-
sysdeps/generic/aio_misc.h | 43 +++++--
sysdeps/nptl/aio_misc.h | 4 +-
sysdeps/nptl/pthreadP.h | 1 +
sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 +
sysdeps/unix/sysv/linux/aarch64/librt.abilist | 1 -
sysdeps/unix/sysv/linux/aio_misc.h | 10 +-
sysdeps/unix/sysv/linux/aio_sigqueue.c | 3 +-
sysdeps/unix/sysv/linux/alpha/libc.abilist | 2 +
sysdeps/unix/sysv/linux/alpha/librt.abilist | 1 -
sysdeps/unix/sysv/linux/arc/libc.abilist | 2 +
sysdeps/unix/sysv/linux/arc/librt.abilist | 1 -
sysdeps/unix/sysv/linux/arm/be/libc.abilist | 2 +
sysdeps/unix/sysv/linux/arm/be/librt.abilist | 1 -
sysdeps/unix/sysv/linux/arm/le/libc.abilist | 2 +
sysdeps/unix/sysv/linux/arm/le/librt.abilist | 1 -
sysdeps/unix/sysv/linux/csky/libc.abilist | 2 +
sysdeps/unix/sysv/linux/csky/librt.abilist | 1 -
sysdeps/unix/sysv/linux/hppa/libc.abilist | 2 +
sysdeps/unix/sysv/linux/hppa/librt.abilist | 1 -
sysdeps/unix/sysv/linux/i386/libc.abilist | 2 +
sysdeps/unix/sysv/linux/i386/librt.abilist | 1 -
sysdeps/unix/sysv/linux/ia64/libc.abilist | 2 +
sysdeps/unix/sysv/linux/ia64/librt.abilist | 1 -
.../sysv/linux/m68k/coldfire/libc.abilist | 2 +
.../sysv/linux/m68k/coldfire/librt.abilist | 1 -
.../unix/sysv/linux/m68k/m680x0/libc.abilist | 2 +
.../unix/sysv/linux/m68k/m680x0/librt.abilist | 1 -
.../sysv/linux/microblaze/be/libc.abilist | 2 +
.../sysv/linux/microblaze/be/librt.abilist | 1 -
.../sysv/linux/microblaze/le/libc.abilist | 2 +
.../sysv/linux/microblaze/le/librt.abilist | 1 -
.../sysv/linux/mips/mips32/fpu/libc.abilist | 2 +
.../unix/sysv/linux/mips/mips32/librt.abilist | 1 -
.../sysv/linux/mips/mips32/nofpu/libc.abilist | 2 +
.../sysv/linux/mips/mips64/n32/libc.abilist | 2 +
.../sysv/linux/mips/mips64/n32/librt.abilist | 1 -
.../sysv/linux/mips/mips64/n64/libc.abilist | 2 +
.../sysv/linux/mips/mips64/n64/librt.abilist | 1 -
sysdeps/unix/sysv/linux/nios2/libc.abilist | 2 +
sysdeps/unix/sysv/linux/nios2/librt.abilist | 1 -
.../linux/powerpc/powerpc32/fpu/libc.abilist | 2 +
.../linux/powerpc/powerpc32/librt.abilist | 1 -
.../powerpc/powerpc32/nofpu/libc.abilist | 2 +
.../linux/powerpc/powerpc64/be/libc.abilist | 2 +
.../linux/powerpc/powerpc64/be/librt.abilist | 1 -
.../linux/powerpc/powerpc64/le/libc.abilist | 2 +
.../linux/powerpc/powerpc64/le/librt.abilist | 1 -
.../unix/sysv/linux/riscv/rv32/libc.abilist | 2 +
.../unix/sysv/linux/riscv/rv32/librt.abilist | 1 -
.../unix/sysv/linux/riscv/rv64/libc.abilist | 2 +
.../unix/sysv/linux/riscv/rv64/librt.abilist | 1 -
.../unix/sysv/linux/s390/s390-32/libc.abilist | 2 +
.../sysv/linux/s390/s390-32/librt.abilist | 1 -
.../unix/sysv/linux/s390/s390-64/libc.abilist | 2 +
.../sysv/linux/s390/s390-64/librt.abilist | 1 -
sysdeps/unix/sysv/linux/sh/be/libc.abilist | 2 +
sysdeps/unix/sysv/linux/sh/be/librt.abilist | 1 -
sysdeps/unix/sysv/linux/sh/le/libc.abilist | 2 +
sysdeps/unix/sysv/linux/sh/le/librt.abilist | 1 -
.../sysv/linux/sparc/sparc32/libc.abilist | 2 +
.../sysv/linux/sparc/sparc32/librt.abilist | 1 -
.../sysv/linux/sparc/sparc64/libc.abilist | 2 +
.../sysv/linux/sparc/sparc64/librt.abilist | 1 -
.../unix/sysv/linux/x86_64/64/libc.abilist | 2 +
.../unix/sysv/linux/x86_64/64/librt.abilist | 1 -
.../unix/sysv/linux/x86_64/x32/libc.abilist | 2 +
.../unix/sysv/linux/x86_64/x32/librt.abilist | 1 -
73 files changed, 222 insertions(+), 93 deletions(-)
diff --git a/nptl/pthread_getschedparam.c b/nptl/pthread_getschedparam.c
index a69ed8d8c3..94316cf897 100644
--- a/nptl/pthread_getschedparam.c
+++ b/nptl/pthread_getschedparam.c
@@ -70,4 +70,5 @@ __pthread_getschedparam (pthread_t threadid, int *policy,
return result;
}
+libc_hidden_def (__pthread_getschedparam)
strong_alias (__pthread_getschedparam, pthread_getschedparam)
diff --git a/rt/Makefile b/rt/Makefile
index 329db09c32..ada87c845e 100644
--- a/rt/Makefile
+++ b/rt/Makefile
@@ -32,12 +32,9 @@ librt-routines = \
aio_cancel \
aio_error \
aio_fsync \
- aio_misc \
- aio_notify \
aio_read \
aio_read64 \
aio_return \
- aio_sigqueue \
aio_suspend \
aio_write \
aio_write64 \
@@ -60,6 +57,9 @@ librt-routines = \
timer_settime \
$(librt-routines-var) += \
+ aio_misc \
+ aio_notify \
+ aio_sigqueue \
tests := tst-shm tst-timer tst-timer2 \
tst-aio tst-aio64 tst-aio2 tst-aio3 tst-aio4 tst-aio5 tst-aio6 \
diff --git a/rt/Versions b/rt/Versions
index 26c6d1ac63..2e991a9d93 100644
--- a/rt/Versions
+++ b/rt/Versions
@@ -1,12 +1,33 @@
libc {
+ GLIBC_2.1 {
+%if PTHREAD_IN_LIBC
+ aio_init;
+%endif
+ }
GLIBC_2.2 {
shm_open;
shm_unlink;
}
GLIBC_2.34 {
+%if PTHREAD_IN_LIBC
+ aio_init;
+%endif
shm_open;
shm_unlink;
}
+%if PTHREAD_IN_LIBC
+ GLIBC_PRIVATE {
+ __aio_enqueue_request;
+ __aio_find_req;
+ __aio_find_req_fd;
+ __aio_free_request;
+ __aio_notify;
+ __aio_notify_only;
+ __aio_remove_request;
+ __aio_requests_mutex;
+ __aio_sigqueue;
+ }
+%endif
}
librt {
GLIBC_2.1 {
@@ -16,7 +37,9 @@ librt {
aio_error64;
aio_fsync;
aio_fsync64;
+%if !PTHREAD_IN_LIBC
aio_init;
+%endif
aio_read;
aio_read64;
aio_return;
diff --git a/rt/aio_misc.c b/rt/aio_misc.c
index b95f07d9d3..d9be8ac33d 100644
--- a/rt/aio_misc.c
+++ b/rt/aio_misc.c
@@ -21,7 +21,7 @@
#include <assert.h>
#include <errno.h>
#include <limits.h>
-#include <pthread.h>
+#include <pthreadP.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/param.h>
@@ -29,6 +29,20 @@
#include <sys/time.h>
#include <aio_misc.h>
+#if !PTHREAD_IN_LIBC
+/* The available function names differ outside of libc. (In libc, we
+ need to use hidden aliases to avoid the PLT.) */
+# define __pread __libc_pread
+# define __pthread_attr_destroy pthread_attr_destroy
+# define __pthread_attr_init pthread_attr_init
+# define __pthread_attr_setdetachstate pthread_attr_setdetachstate
+# define __pthread_cond_signal pthread_cond_signal
+# define __pthread_cond_timedwait pthread_cond_timedwait
+# define __pthread_getschedparam pthread_getschedparam
+# define __pthread_setschedparam pthread_setschedparam
+# define __pwrite __libc_pwrite
+#endif
+
#ifndef aio_create_helper_thread
# define aio_create_helper_thread __aio_create_helper_thread
@@ -38,12 +52,12 @@ __aio_create_helper_thread (pthread_t *threadp, void *(*tf) (void *), void *arg)
pthread_attr_t attr;
/* Make sure the thread is created detached. */
- pthread_attr_init (&attr);
- pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
+ __pthread_attr_init (&attr);
+ __pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
- int ret = pthread_create (threadp, &attr, tf, arg);
+ int ret = __pthread_create (threadp, &attr, tf, arg);
- (void) pthread_attr_destroy (&attr);
+ (void) __pthread_attr_destroy (&attr);
return ret;
}
#endif
@@ -271,7 +285,7 @@ void
__aio_init (const struct aioinit *init)
{
/* Get the mutex. */
- pthread_mutex_lock (&__aio_requests_mutex);
+ __pthread_mutex_lock (&__aio_requests_mutex);
/* Only allow writing new values if the table is not yet allocated. */
if (pool == NULL)
@@ -287,9 +301,8 @@ __aio_init (const struct aioinit *init)
optim.aio_idle_time = init->aio_idle_time;
/* Release the mutex. */
- pthread_mutex_unlock (&__aio_requests_mutex);
+ __pthread_mutex_unlock (&__aio_requests_mutex);
}
-weak_alias (__aio_init, aio_init)
/* The main function of the async I/O handling. It enqueues requests
@@ -319,11 +332,11 @@ __aio_enqueue_request (aiocb_union *aiocbp, int operation)
}
/* Compute priority for this request. */
- pthread_getschedparam (pthread_self (), &policy, ¶m);
+ __pthread_getschedparam (__pthread_self (), &policy, ¶m);
prio = param.sched_priority - aiocbp->aiocb.aio_reqprio;
/* Get the mutex. */
- pthread_mutex_lock (&__aio_requests_mutex);
+ __pthread_mutex_lock (&__aio_requests_mutex);
last = NULL;
runp = requests;
@@ -340,7 +353,7 @@ __aio_enqueue_request (aiocb_union *aiocbp, int operation)
newp = get_elem ();
if (newp == NULL)
{
- pthread_mutex_unlock (&__aio_requests_mutex);
+ __pthread_mutex_unlock (&__aio_requests_mutex);
__set_errno (EAGAIN);
return NULL;
}
@@ -454,7 +467,7 @@ __aio_enqueue_request (aiocb_union *aiocbp, int operation)
/* If there is a thread waiting for work, then let it know that we
have just given it something to do. */
if (idle_thread_count > 0)
- pthread_cond_signal (&__aio_new_request_notification);
+ __pthread_cond_signal (&__aio_new_request_notification);
}
if (result == 0)
@@ -469,7 +482,7 @@ __aio_enqueue_request (aiocb_union *aiocbp, int operation)
}
/* Release the mutex. */
- pthread_mutex_unlock (&__aio_requests_mutex);
+ __pthread_mutex_unlock (&__aio_requests_mutex);
return newp;
}
@@ -478,14 +491,14 @@ __aio_enqueue_request (aiocb_union *aiocbp, int operation)
static void *
handle_fildes_io (void *arg)
{
- pthread_t self = pthread_self ();
+ pthread_t self = __pthread_self ();
struct sched_param param;
struct requestlist *runp = (struct requestlist *) arg;
aiocb_union *aiocbp;
int policy;
int fildes;
- pthread_getschedparam (self, &policy, ¶m);
+ __pthread_getschedparam (self, &policy, ¶m);
do
{
@@ -495,7 +508,7 @@ handle_fildes_io (void *arg)
"get work off the work queue" part of this loop, which is near the
end. */
if (runp == NULL)
- pthread_mutex_lock (&__aio_requests_mutex);
+ __pthread_mutex_lock (&__aio_requests_mutex);
else
{
/* Hopefully this request is marked as running. */
@@ -511,7 +524,7 @@ handle_fildes_io (void *arg)
{
param.sched_priority = aiocbp->aiocb.__abs_prio;
policy = aiocbp->aiocb.__policy;
- pthread_setschedparam (self, policy, ¶m);
+ __pthread_setschedparam (self, policy, ¶m);
}
/* Process request pointed to by RUNP. We must not be disturbed
@@ -527,11 +540,11 @@ handle_fildes_io (void *arg)
aiocbp->aiocb64.aio_offset));
else
aiocbp->aiocb.__return_value =
- TEMP_FAILURE_RETRY (__libc_pread (fildes,
- (void *)
- aiocbp->aiocb.aio_buf,
- aiocbp->aiocb.aio_nbytes,
- aiocbp->aiocb.aio_offset));
+ TEMP_FAILURE_RETRY (__pread (fildes,
+ (void *)
+ aiocbp->aiocb.aio_buf,
+ aiocbp->aiocb.aio_nbytes,
+ aiocbp->aiocb.aio_offset));
if (aiocbp->aiocb.__return_value == -1 && errno == ESPIPE)
/* The Linux kernel is different from others. It returns
@@ -554,10 +567,10 @@ handle_fildes_io (void *arg)
aiocbp->aiocb64.aio_offset));
else
aiocbp->aiocb.__return_value =
- TEMP_FAILURE_RETRY (__libc_pwrite (fildes, (const void *)
- aiocbp->aiocb.aio_buf,
- aiocbp->aiocb.aio_nbytes,
- aiocbp->aiocb.aio_offset));
+ TEMP_FAILURE_RETRY (__pwrite (fildes, (const void *)
+ aiocbp->aiocb.aio_buf,
+ aiocbp->aiocb.aio_nbytes,
+ aiocbp->aiocb.aio_offset));
if (aiocbp->aiocb.__return_value == -1 && errno == ESPIPE)
/* The Linux kernel is different from others. It returns
@@ -583,7 +596,7 @@ handle_fildes_io (void *arg)
}
/* Get the mutex. */
- pthread_mutex_lock (&__aio_requests_mutex);
+ __pthread_mutex_lock (&__aio_requests_mutex);
if (aiocbp->aiocb.__return_value == -1)
aiocbp->aiocb.__error_code = errno;
@@ -626,9 +639,9 @@ handle_fildes_io (void *arg)
wakeup_time.tv_nsec -= 1000000000;
++wakeup_time.tv_sec;
}
- pthread_cond_timedwait (&__aio_new_request_notification,
- &__aio_requests_mutex,
- &wakeup_time);
+ __pthread_cond_timedwait (&__aio_new_request_notification,
+ &__aio_requests_mutex,
+ &wakeup_time);
--idle_thread_count;
runp = runlist;
}
@@ -651,20 +664,21 @@ handle_fildes_io (void *arg)
up for these other work elements; otherwise, we should try
to create a new thread. */
if (idle_thread_count > 0)
- pthread_cond_signal (&__aio_new_request_notification);
+ __pthread_cond_signal (&__aio_new_request_notification);
else if (nthreads < optim.aio_threads)
{
pthread_t thid;
pthread_attr_t attr;
/* Make sure the thread is created detached. */
- pthread_attr_init (&attr);
- pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
+ __pthread_attr_init (&attr);
+ __pthread_attr_setdetachstate (&attr,
+ PTHREAD_CREATE_DETACHED);
/* Now try to start a thread. If we fail, no big deal,
because we know that there is at least one thread (us)
that is working on AIO operations. */
- if (pthread_create (&thid, &attr, handle_fildes_io, NULL)
+ if (__pthread_create (&thid, &attr, handle_fildes_io, NULL)
== 0)
++nthreads;
}
@@ -672,7 +686,7 @@ handle_fildes_io (void *arg)
}
/* Release the mutex. */
- pthread_mutex_unlock (&__aio_requests_mutex);
+ __pthread_mutex_unlock (&__aio_requests_mutex);
}
while (runp != NULL);
@@ -719,3 +733,26 @@ add_request_to_runlist (struct requestlist *newrequest)
runp->next_run = newrequest;
}
}
+
+#if PTHREAD_IN_LIBC
+libc_hidden_data_def (__aio_requests_mutex)
+libc_hidden_def (__aio_enqueue_request)
+libc_hidden_def (__aio_find_req)
+libc_hidden_def (__aio_find_req_fd)
+libc_hidden_def (__aio_free_request)
+libc_hidden_def (__aio_remove_request)
+
+versioned_symbol (libc, __aio_init, aio_init, GLIBC_2_34);
+# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_34)
+compat_symbol (librt, __aio_init, aio_init, GLIBC_2_1);
+# endif
+
+#else /* !PTHREAD_IN_LIBC */
+librt_hidden_data_def (__aio_requests_mutex)
+librt_hidden_def (__aio_enqueue_request)
+librt_hidden_def (__aio_find_req)
+librt_hidden_def (__aio_find_req_fd)
+librt_hidden_def (__aio_free_request)
+librt_hidden_def (__aio_remove_request)
+weak_alias (__aio_init, aio_init)
+#endif /* !PTHREAD_IN_LIBC */
diff --git a/rt/aio_notify.c b/rt/aio_notify.c
index a8d61503d8..432000e34b 100644
--- a/rt/aio_notify.c
+++ b/rt/aio_notify.c
@@ -18,12 +18,17 @@
<https://www.gnu.org/licenses/>. */
#include <errno.h>
-#include <pthread.h>
+#include <pthreadP.h>
#include <stdlib.h>
#include <unistd.h>
#include <aio_misc.h>
#include <signal.h>
+#if !PTHREAD_IN_LIBC
+# define __pthread_attr_init pthread_attr_init
+# define __pthread_attr_setdetachstate pthread_attr_setdetachstate
+#endif
+
#ifndef aio_start_notify_thread
# define aio_start_notify_thread() do { } while (0)
#endif
@@ -62,8 +67,8 @@ __aio_notify_only (struct sigevent *sigev)
pattr = (pthread_attr_t *) sigev->sigev_notify_attributes;
if (pattr == NULL)
{
- pthread_attr_init (&attr);
- pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
+ __pthread_attr_init (&attr);
+ __pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
pattr = &attr;
}
@@ -81,7 +86,7 @@ __aio_notify_only (struct sigevent *sigev)
{
nf->func = sigev->sigev_notify_function;
nf->value = sigev->sigev_value;
- if (pthread_create (&tid, pattr, notify_func_wrapper, nf) < 0)
+ if (__pthread_create (&tid, pattr, notify_func_wrapper, nf) < 0)
{
free (nf);
result = -1;
@@ -155,3 +160,11 @@ __aio_notify (struct requestlist *req)
waitlist = next;
}
}
+
+#if PTHREAD_IN_LIBC
+libc_hidden_def (__aio_notify)
+libc_hidden_def (__aio_notify_only)
+#else
+librt_hidden_def (__aio_notify)
+librt_hidden_def (__aio_notify_only)
+#endif
diff --git a/rt/aio_sigqueue.c b/rt/aio_sigqueue.c
index 2f7da00ad3..0ad95ae04c 100644
--- a/rt/aio_sigqueue.c
+++ b/rt/aio_sigqueue.c
@@ -28,5 +28,5 @@ __aio_sigqueue (int sig, const union sigval val, pid_t caller_pid)
__set_errno (ENOSYS);
return -1;
}
-
+librt_hidden_def (__aio_sigqueue)
stub_warning (__aio_sigqueue)
diff --git a/sysdeps/generic/aio_misc.h b/sysdeps/generic/aio_misc.h
index e23524cffe..d9bff36e50 100644
--- a/sysdeps/generic/aio_misc.h
+++ b/sysdeps/generic/aio_misc.h
@@ -87,36 +87,55 @@ struct requestlist
/* Lock for global I/O list of requests. */
-extern pthread_mutex_t __aio_requests_mutex attribute_hidden;
+extern pthread_mutex_t __aio_requests_mutex;
/* Enqueue request. */
extern struct requestlist *__aio_enqueue_request (aiocb_union *aiocbp,
- int operation)
- attribute_hidden;
+ int operation);
/* Find request entry for given AIO control block. */
-extern struct requestlist *__aio_find_req (aiocb_union *elem) attribute_hidden;
+extern struct requestlist *__aio_find_req (aiocb_union *elem);
/* Find request entry for given file descriptor. */
-extern struct requestlist *__aio_find_req_fd (int fildes) attribute_hidden;
+extern struct requestlist *__aio_find_req_fd (int fildes);
/* Remove request from the list. */
extern void __aio_remove_request (struct requestlist *last,
- struct requestlist *req, int all)
- attribute_hidden;
+ struct requestlist *req, int all);
/* Release the entry for the request. */
-extern void __aio_free_request (struct requestlist *req) attribute_hidden;
+extern void __aio_free_request (struct requestlist *req);
/* Notify initiator of request and tell this everybody listening. */
-extern void __aio_notify (struct requestlist *req) attribute_hidden;
+extern void __aio_notify (struct requestlist *req);
/* Notify initiator of request. */
-extern int __aio_notify_only (struct sigevent *sigev) attribute_hidden;
+extern int __aio_notify_only (struct sigevent *sigev);
/* Send the signal. */
-extern int __aio_sigqueue (int sig, const union sigval val, pid_t caller_pid)
- attribute_hidden;
+extern int __aio_sigqueue (int sig, const union sigval val, pid_t caller_pid);
+
+#if PTHREAD_IN_LIBC
+libc_hidden_proto (__aio_enqueue_request)
+libc_hidden_proto (__aio_find_req)
+libc_hidden_proto (__aio_find_req_fd)
+libc_hidden_proto (__aio_free_request)
+libc_hidden_proto (__aio_notify)
+libc_hidden_proto (__aio_notify_only)
+libc_hidden_proto (__aio_remove_request)
+libc_hidden_proto (__aio_requests_mutex)
+libc_hidden_proto (__aio_sigqueue)
+#else
+librt_hidden_proto (__aio_enqueue_request)
+librt_hidden_proto (__aio_find_req)
+librt_hidden_proto (__aio_find_req_fd)
+librt_hidden_proto (__aio_free_request)
+librt_hidden_proto (__aio_notify)
+librt_hidden_proto (__aio_notify_only)
+librt_hidden_proto (__aio_remove_request)
+librt_hidden_proto (__aio_requests_mutex)
+librt_hidden_proto (__aio_sigqueue)
+#endif
#endif /* aio_misc.h */
diff --git a/sysdeps/nptl/aio_misc.h b/sysdeps/nptl/aio_misc.h
index a5c439fab5..d85f9c2fef 100644
--- a/sysdeps/nptl/aio_misc.h
+++ b/sysdeps/nptl/aio_misc.h
@@ -39,7 +39,7 @@
\
if (oldval != 0) \
{ \
- pthread_mutex_unlock (&__aio_requests_mutex); \
+ __pthread_mutex_unlock (&__aio_requests_mutex); \
\
int status; \
do \
@@ -67,7 +67,7 @@
else \
assert (status == 0 || status == EAGAIN); \
\
- pthread_mutex_lock (&__aio_requests_mutex); \
+ __pthread_mutex_lock (&__aio_requests_mutex); \
} \
} while (0)
diff --git a/sysdeps/nptl/pthreadP.h b/sysdeps/nptl/pthreadP.h
index ca96ff073b..374657a2fd 100644
--- a/sysdeps/nptl/pthreadP.h
+++ b/sysdeps/nptl/pthreadP.h
@@ -337,6 +337,7 @@ libc_hidden_proto (__pthread_get_minstack)
/* Namespace save aliases. */
extern int __pthread_getschedparam (pthread_t thread_id, int *policy,
struct sched_param *param);
+libc_hidden_proto (__pthread_getschedparam)
extern int __pthread_setschedparam (pthread_t thread_id, int policy,
const struct sched_param *param);
extern int __pthread_mutex_init (pthread_mutex_t *__mutex,
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 42e240e284..1bc4ffccce 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -589,6 +589,7 @@ GLIBC_2.17 addseverity F
GLIBC_2.17 adjtime F
GLIBC_2.17 adjtimex F
GLIBC_2.17 advance F
+GLIBC_2.17 aio_init F
GLIBC_2.17 alarm F
GLIBC_2.17 aligned_alloc F
GLIBC_2.17 alphasort F
@@ -2348,6 +2349,7 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 _pthread_cleanup_pop F
GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
index c41e0e675b..66dc3e4457 100644
--- a/sysdeps/unix/sysv/linux/aarch64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
@@ -5,7 +5,6 @@ GLIBC_2.17 aio_error F
GLIBC_2.17 aio_error64 F
GLIBC_2.17 aio_fsync F
GLIBC_2.17 aio_fsync64 F
-GLIBC_2.17 aio_init F
GLIBC_2.17 aio_read F
GLIBC_2.17 aio_read64 F
GLIBC_2.17 aio_return F
diff --git a/sysdeps/unix/sysv/linux/aio_misc.h b/sysdeps/unix/sysv/linux/aio_misc.h
index a661cee203..79907544dc 100644
--- a/sysdeps/unix/sysv/linux/aio_misc.h
+++ b/sysdeps/unix/sysv/linux/aio_misc.h
@@ -42,11 +42,11 @@ __aio_create_helper_thread (pthread_t *threadp, void *(*tf) (void *),
pthread_attr_t attr;
/* Make sure the thread is created detached. */
- pthread_attr_init (&attr);
- pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
+ __pthread_attr_init (&attr);
+ __pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
/* The helper thread needs only very little resources. */
- (void) pthread_attr_setstacksize (&attr, __pthread_get_minstack (&attr));
+ (void) __pthread_attr_setstacksize (&attr, __pthread_get_minstack (&attr));
/* Block all signals in the helper thread. To do this thoroughly we
temporarily have to block all signals here. */
@@ -56,13 +56,13 @@ __aio_create_helper_thread (pthread_t *threadp, void *(*tf) (void *),
INTERNAL_SYSCALL_CALL (rt_sigprocmask, SIG_SETMASK, &ss, &oss,
__NSIG_BYTES);
- int ret = pthread_create (threadp, &attr, tf, arg);
+ int ret = __pthread_create (threadp, &attr, tf, arg);
/* Restore the signal mask. */
INTERNAL_SYSCALL_CALL (rt_sigprocmask, SIG_SETMASK, &oss, NULL,
__NSIG_BYTES);
- (void) pthread_attr_destroy (&attr);
+ (void) __pthread_attr_destroy (&attr);
return ret;
}
#endif
diff --git a/sysdeps/unix/sysv/linux/aio_sigqueue.c b/sysdeps/unix/sysv/linux/aio_sigqueue.c
index 398d7a2f1f..bd0da6e763 100644
--- a/sysdeps/unix/sysv/linux/aio_sigqueue.c
+++ b/sysdeps/unix/sysv/linux/aio_sigqueue.c
@@ -39,8 +39,9 @@ __aio_sigqueue (int sig, const union sigval val, pid_t caller_pid)
info.si_signo = sig;
info.si_code = SI_ASYNCIO;
info.si_pid = caller_pid;
- info.si_uid = getuid ();
+ info.si_uid = __getuid ();
info.si_value = val;
return INLINE_SYSCALL (rt_sigqueueinfo, 3, info.si_pid, sig, &info);
}
+libc_hidden_def (__aio_sigqueue)
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index fad54555dc..5f3bebef8c 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -1502,6 +1502,7 @@ GLIBC_2.1 _sys_siglist D 0x200
GLIBC_2.1 addseverity F
GLIBC_2.1 adjtime F
GLIBC_2.1 adjtimex F
+GLIBC_2.1 aio_init F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
GLIBC_2.1 argp_error F
@@ -2441,6 +2442,7 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 _pthread_cleanup_pop F
GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
index c4985067f7..94f5ca8b6f 100644
--- a/sysdeps/unix/sysv/linux/alpha/librt.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist
@@ -4,7 +4,6 @@ GLIBC_2.1 aio_error F
GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
GLIBC_2.1 aio_fsync64 F
-GLIBC_2.1 aio_init F
GLIBC_2.1 aio_read F
GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 907716ec39..24d3a3673c 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -550,6 +550,7 @@ GLIBC_2.32 addmntent F
GLIBC_2.32 addseverity F
GLIBC_2.32 adjtime F
GLIBC_2.32 adjtimex F
+GLIBC_2.32 aio_init F
GLIBC_2.32 alarm F
GLIBC_2.32 aligned_alloc F
GLIBC_2.32 alphasort F
@@ -2107,6 +2108,7 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 _pthread_cleanup_pop F
GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
index 7ee0b6d324..e53772e428 100644
--- a/sysdeps/unix/sysv/linux/arc/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arc/librt.abilist
@@ -5,7 +5,6 @@ GLIBC_2.32 aio_error F
GLIBC_2.32 aio_error64 F
GLIBC_2.32 aio_fsync F
GLIBC_2.32 aio_fsync64 F
-GLIBC_2.32 aio_init F
GLIBC_2.32 aio_read F
GLIBC_2.32 aio_read64 F
GLIBC_2.32 aio_return F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 50f987a429..582aa645c0 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -278,6 +278,7 @@ GLIBC_2.34 __wait3_time64 F
GLIBC_2.34 __wait4_time64 F
GLIBC_2.34 _pthread_cleanup_pop F
GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
@@ -981,6 +982,7 @@ GLIBC_2.4 addseverity F
GLIBC_2.4 adjtime F
GLIBC_2.4 adjtimex F
GLIBC_2.4 advance F
+GLIBC_2.4 aio_init F
GLIBC_2.4 alarm F
GLIBC_2.4 alphasort F
GLIBC_2.4 alphasort64 F
diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
index 278da67f77..3aa50aa219 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -9,7 +9,6 @@ GLIBC_2.4 aio_error F
GLIBC_2.4 aio_error64 F
GLIBC_2.4 aio_fsync F
GLIBC_2.4 aio_fsync64 F
-GLIBC_2.4 aio_init F
GLIBC_2.4 aio_read F
GLIBC_2.4 aio_read64 F
GLIBC_2.4 aio_return F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index bf9038af84..400eae9ab0 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -275,6 +275,7 @@ GLIBC_2.34 __wait3_time64 F
GLIBC_2.34 __wait4_time64 F
GLIBC_2.34 _pthread_cleanup_pop F
GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
@@ -978,6 +979,7 @@ GLIBC_2.4 addseverity F
GLIBC_2.4 adjtime F
GLIBC_2.4 adjtimex F
GLIBC_2.4 advance F
+GLIBC_2.4 aio_init F
GLIBC_2.4 alarm F
GLIBC_2.4 alphasort F
GLIBC_2.4 alphasort64 F
diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
index 278da67f77..3aa50aa219 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -9,7 +9,6 @@ GLIBC_2.4 aio_error F
GLIBC_2.4 aio_error64 F
GLIBC_2.4 aio_fsync F
GLIBC_2.4 aio_fsync64 F
-GLIBC_2.4 aio_init F
GLIBC_2.4 aio_read F
GLIBC_2.4 aio_read64 F
GLIBC_2.4 aio_return F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index afb91f6f43..4cd189d5db 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -564,6 +564,7 @@ GLIBC_2.29 addmntent F
GLIBC_2.29 addseverity F
GLIBC_2.29 adjtime F
GLIBC_2.29 adjtimex F
+GLIBC_2.29 aio_init F
GLIBC_2.29 alarm F
GLIBC_2.29 aligned_alloc F
GLIBC_2.29 alphasort F
@@ -2367,6 +2368,7 @@ GLIBC_2.34 __wait3_time64 F
GLIBC_2.34 __wait4_time64 F
GLIBC_2.34 _pthread_cleanup_pop F
GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
index 60400954a3..640230cfc0 100644
--- a/sysdeps/unix/sysv/linux/csky/librt.abilist
+++ b/sysdeps/unix/sysv/linux/csky/librt.abilist
@@ -5,7 +5,6 @@ GLIBC_2.29 aio_error F
GLIBC_2.29 aio_error64 F
GLIBC_2.29 aio_fsync F
GLIBC_2.29 aio_fsync64 F
-GLIBC_2.29 aio_init F
GLIBC_2.29 aio_read F
GLIBC_2.29 aio_read64 F
GLIBC_2.29 aio_return F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 125f8a269a..ede6bee0cd 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -3,6 +3,7 @@ GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
GLIBC_2.0 dlopen F
GLIBC_2.0 dlsym F
+GLIBC_2.1 aio_init F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.10 __cxa_at_quick_exit F
@@ -2321,6 +2322,7 @@ GLIBC_2.34 __wait3_time64 F
GLIBC_2.34 __wait4_time64 F
GLIBC_2.34 _pthread_cleanup_pop F
GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
index 6ac4f0597e..0114c42067 100644
--- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
@@ -4,7 +4,6 @@ GLIBC_2.1 aio_error F
GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
GLIBC_2.1 aio_fsync64 F
-GLIBC_2.1 aio_init F
GLIBC_2.1 aio_read F
GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 517753bdd1..17063aaaf9 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -1475,6 +1475,7 @@ GLIBC_2.1 _sys_errlist D 0x1f4
GLIBC_2.1 _sys_nerr D 0x4
GLIBC_2.1 _sys_siglist D 0x100
GLIBC_2.1 addseverity F
+GLIBC_2.1 aio_init F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
GLIBC_2.1 argp_error F
@@ -2505,6 +2506,7 @@ GLIBC_2.34 __wait3_time64 F
GLIBC_2.34 __wait4_time64 F
GLIBC_2.34 _pthread_cleanup_pop F
GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
index 6ac4f0597e..0114c42067 100644
--- a/sysdeps/unix/sysv/linux/i386/librt.abilist
+++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
@@ -4,7 +4,6 @@ GLIBC_2.1 aio_error F
GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
GLIBC_2.1 aio_fsync64 F
-GLIBC_2.1 aio_init F
GLIBC_2.1 aio_read F
GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 23d0928360..4991b80dd1 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -3,6 +3,7 @@ GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
GLIBC_2.0 dlopen F
GLIBC_2.0 dlsym F
+GLIBC_2.1 aio_init F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.10 __cxa_at_quick_exit F
@@ -2281,6 +2282,7 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 _pthread_cleanup_pop F
GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
index fa7f54dd55..2c97c02f21 100644
--- a/sysdeps/unix/sysv/linux/ia64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/librt.abilist
@@ -4,7 +4,6 @@ GLIBC_2.1 aio_error F
GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
GLIBC_2.1 aio_fsync64 F
-GLIBC_2.1 aio_init F
GLIBC_2.1 aio_read F
GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index dd5fb50b18..c1d7edf1f9 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -279,6 +279,7 @@ GLIBC_2.34 __wait3_time64 F
GLIBC_2.34 __wait4_time64 F
GLIBC_2.34 _pthread_cleanup_pop F
GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
@@ -969,6 +970,7 @@ GLIBC_2.4 addseverity F
GLIBC_2.4 adjtime F
GLIBC_2.4 adjtimex F
GLIBC_2.4 advance F
+GLIBC_2.4 aio_init F
GLIBC_2.4 alarm F
GLIBC_2.4 alphasort F
GLIBC_2.4 alphasort64 F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
index 278da67f77..3aa50aa219 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -9,7 +9,6 @@ GLIBC_2.4 aio_error F
GLIBC_2.4 aio_error64 F
GLIBC_2.4 aio_fsync F
GLIBC_2.4 aio_fsync64 F
-GLIBC_2.4 aio_init F
GLIBC_2.4 aio_read F
GLIBC_2.4 aio_read64 F
GLIBC_2.4 aio_return F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index cb1d553361..725280a9db 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -1473,6 +1473,7 @@ GLIBC_2.1 _sys_errlist D 0x1f4
GLIBC_2.1 _sys_nerr D 0x4
GLIBC_2.1 _sys_siglist D 0x100
GLIBC_2.1 addseverity F
+GLIBC_2.1 aio_init F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
GLIBC_2.1 argp_error F
@@ -2448,6 +2449,7 @@ GLIBC_2.34 __wait3_time64 F
GLIBC_2.34 __wait4_time64 F
GLIBC_2.34 _pthread_cleanup_pop F
GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
index 6ac4f0597e..0114c42067 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
@@ -4,7 +4,6 @@ GLIBC_2.1 aio_error F
GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
GLIBC_2.1 aio_fsync64 F
-GLIBC_2.1 aio_init F
GLIBC_2.1 aio_read F
GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 6a20a6fdf2..fe9a9c2f09 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -591,6 +591,7 @@ GLIBC_2.18 addseverity F
GLIBC_2.18 adjtime F
GLIBC_2.18 adjtimex F
GLIBC_2.18 advance F
+GLIBC_2.18 aio_init F
GLIBC_2.18 alarm F
GLIBC_2.18 aligned_alloc F
GLIBC_2.18 alphasort F
@@ -2418,6 +2419,7 @@ GLIBC_2.34 __wait3_time64 F
GLIBC_2.34 __wait4_time64 F
GLIBC_2.34 _pthread_cleanup_pop F
GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
index a14deaabdb..679050b4b7 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
@@ -5,7 +5,6 @@ GLIBC_2.18 aio_error F
GLIBC_2.18 aio_error64 F
GLIBC_2.18 aio_fsync F
GLIBC_2.18 aio_fsync64 F
-GLIBC_2.18 aio_init F
GLIBC_2.18 aio_read F
GLIBC_2.18 aio_read64 F
GLIBC_2.18 aio_return F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 4c21cbb64d..8db8d27e29 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -591,6 +591,7 @@ GLIBC_2.18 addseverity F
GLIBC_2.18 adjtime F
GLIBC_2.18 adjtimex F
GLIBC_2.18 advance F
+GLIBC_2.18 aio_init F
GLIBC_2.18 alarm F
GLIBC_2.18 aligned_alloc F
GLIBC_2.18 alphasort F
@@ -2415,6 +2416,7 @@ GLIBC_2.34 __wait3_time64 F
GLIBC_2.34 __wait4_time64 F
GLIBC_2.34 _pthread_cleanup_pop F
GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
index a14deaabdb..679050b4b7 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
@@ -5,7 +5,6 @@ GLIBC_2.18 aio_error F
GLIBC_2.18 aio_error64 F
GLIBC_2.18 aio_fsync F
GLIBC_2.18 aio_fsync64 F
-GLIBC_2.18 aio_init F
GLIBC_2.18 aio_read F
GLIBC_2.18 aio_read64 F
GLIBC_2.18 aio_return F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index f83ba2f780..b6cd21ace7 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -1651,6 +1651,7 @@ GLIBC_2.2 _sys_nerr D 0x4
GLIBC_2.2 _sys_siglist D 0x100
GLIBC_2.2 _test_and_set F
GLIBC_2.2 addseverity F
+GLIBC_2.2 aio_init F
GLIBC_2.2 alphasort64 F
GLIBC_2.2 argp_err_exit_status D 0x4
GLIBC_2.2 argp_error F
@@ -2413,6 +2414,7 @@ GLIBC_2.34 __wait3_time64 F
GLIBC_2.34 __wait4_time64 F
GLIBC_2.34 _pthread_cleanup_pop F
GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
index 2c212d29d0..617d124234 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
@@ -4,7 +4,6 @@ GLIBC_2.2 aio_error F
GLIBC_2.2 aio_error64 F
GLIBC_2.2 aio_fsync F
GLIBC_2.2 aio_fsync64 F
-GLIBC_2.2 aio_init F
GLIBC_2.2 aio_read F
GLIBC_2.2 aio_read64 F
GLIBC_2.2 aio_return F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 347bbddb94..65d0dcbe04 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -1649,6 +1649,7 @@ GLIBC_2.2 _sys_nerr D 0x4
GLIBC_2.2 _sys_siglist D 0x100
GLIBC_2.2 _test_and_set F
GLIBC_2.2 addseverity F
+GLIBC_2.2 aio_init F
GLIBC_2.2 alphasort64 F
GLIBC_2.2 argp_err_exit_status D 0x4
GLIBC_2.2 argp_error F
@@ -2411,6 +2412,7 @@ GLIBC_2.34 __wait3_time64 F
GLIBC_2.34 __wait4_time64 F
GLIBC_2.34 _pthread_cleanup_pop F
GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 26b7ab529b..a2b2e09a63 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -1650,6 +1650,7 @@ GLIBC_2.2 _sys_nerr D 0x4
GLIBC_2.2 _sys_siglist D 0x100
GLIBC_2.2 _test_and_set F
GLIBC_2.2 addseverity F
+GLIBC_2.2 aio_init F
GLIBC_2.2 alphasort64 F
GLIBC_2.2 argp_err_exit_status D 0x4
GLIBC_2.2 argp_error F
@@ -2419,6 +2420,7 @@ GLIBC_2.34 __wait3_time64 F
GLIBC_2.34 __wait4_time64 F
GLIBC_2.34 _pthread_cleanup_pop F
GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
index 2c212d29d0..617d124234 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
@@ -4,7 +4,6 @@ GLIBC_2.2 aio_error F
GLIBC_2.2 aio_error64 F
GLIBC_2.2 aio_fsync F
GLIBC_2.2 aio_fsync64 F
-GLIBC_2.2 aio_init F
GLIBC_2.2 aio_read F
GLIBC_2.2 aio_read64 F
GLIBC_2.2 aio_return F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index e667b0e553..78b96a7119 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -1646,6 +1646,7 @@ GLIBC_2.2 _sys_nerr D 0x4
GLIBC_2.2 _sys_siglist D 0x200
GLIBC_2.2 _test_and_set F
GLIBC_2.2 addseverity F
+GLIBC_2.2 aio_init F
GLIBC_2.2 alphasort64 F
GLIBC_2.2 argp_err_exit_status D 0x4
GLIBC_2.2 argp_error F
@@ -2337,6 +2338,7 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 _pthread_cleanup_pop F
GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
index 2c7d661e56..40749a395c 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
@@ -4,7 +4,6 @@ GLIBC_2.2 aio_error F
GLIBC_2.2 aio_error64 F
GLIBC_2.2 aio_fsync F
GLIBC_2.2 aio_fsync64 F
-GLIBC_2.2 aio_init F
GLIBC_2.2 aio_read F
GLIBC_2.2 aio_read64 F
GLIBC_2.2 aio_return F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 89a1cc7da6..98943b6041 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -633,6 +633,7 @@ GLIBC_2.21 addseverity F
GLIBC_2.21 adjtime F
GLIBC_2.21 adjtimex F
GLIBC_2.21 advance F
+GLIBC_2.21 aio_init F
GLIBC_2.21 alarm F
GLIBC_2.21 aligned_alloc F
GLIBC_2.21 alphasort F
@@ -2457,6 +2458,7 @@ GLIBC_2.34 __wait3_time64 F
GLIBC_2.34 __wait4_time64 F
GLIBC_2.34 _pthread_cleanup_pop F
GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
index f600881b44..de354a6bb8 100644
--- a/sysdeps/unix/sysv/linux/nios2/librt.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/librt.abilist
@@ -5,7 +5,6 @@ GLIBC_2.21 aio_error F
GLIBC_2.21 aio_error64 F
GLIBC_2.21 aio_fsync F
GLIBC_2.21 aio_fsync64 F
-GLIBC_2.21 aio_init F
GLIBC_2.21 aio_read F
GLIBC_2.21 aio_read64 F
GLIBC_2.21 aio_return F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index f364c5219e..f5d5c03eb3 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -1480,6 +1480,7 @@ GLIBC_2.1 _sys_errlist D 0x1f4
GLIBC_2.1 _sys_nerr D 0x4
GLIBC_2.1 _sys_siglist D 0x100
GLIBC_2.1 addseverity F
+GLIBC_2.1 aio_init F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
GLIBC_2.1 argp_error F
@@ -2475,6 +2476,7 @@ GLIBC_2.34 __wait3_time64 F
GLIBC_2.34 __wait4_time64 F
GLIBC_2.34 _pthread_cleanup_pop F
GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
index 6ac4f0597e..0114c42067 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
@@ -4,7 +4,6 @@ GLIBC_2.1 aio_error F
GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
GLIBC_2.1 aio_fsync64 F
-GLIBC_2.1 aio_init F
GLIBC_2.1 aio_read F
GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index f5bcc78afe..6e99869e4c 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -1480,6 +1480,7 @@ GLIBC_2.1 _sys_errlist D 0x1f4
GLIBC_2.1 _sys_nerr D 0x4
GLIBC_2.1 _sys_siglist D 0x100
GLIBC_2.1 addseverity F
+GLIBC_2.1 aio_init F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
GLIBC_2.1 argp_error F
@@ -2508,6 +2509,7 @@ GLIBC_2.34 __wait3_time64 F
GLIBC_2.34 __wait4_time64 F
GLIBC_2.34 _pthread_cleanup_pop F
GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 6032716053..205768e241 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -633,6 +633,7 @@ GLIBC_2.3 addseverity F
GLIBC_2.3 adjtime F
GLIBC_2.3 adjtimex F
GLIBC_2.3 advance F
+GLIBC_2.3 aio_init F
GLIBC_2.3 alarm F
GLIBC_2.3 alphasort F
GLIBC_2.3 alphasort64 F
@@ -2245,6 +2246,7 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 _pthread_cleanup_pop F
GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
index b3c7afb461..3607639c50 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
@@ -4,7 +4,6 @@ GLIBC_2.3 aio_error F
GLIBC_2.3 aio_error64 F
GLIBC_2.3 aio_fsync F
GLIBC_2.3 aio_fsync64 F
-GLIBC_2.3 aio_init F
GLIBC_2.3 aio_read F
GLIBC_2.3 aio_read64 F
GLIBC_2.3 aio_return F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 8c5494e1dc..fccca7ccc6 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -677,6 +677,7 @@ GLIBC_2.17 addseverity F
GLIBC_2.17 adjtime F
GLIBC_2.17 adjtimex F
GLIBC_2.17 advance F
+GLIBC_2.17 aio_init F
GLIBC_2.17 alarm F
GLIBC_2.17 aligned_alloc F
GLIBC_2.17 alphasort F
@@ -2544,6 +2545,7 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 _pthread_cleanup_pop F
GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
index c41e0e675b..66dc3e4457 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
@@ -5,7 +5,6 @@ GLIBC_2.17 aio_error F
GLIBC_2.17 aio_error64 F
GLIBC_2.17 aio_fsync F
GLIBC_2.17 aio_fsync64 F
-GLIBC_2.17 aio_init F
GLIBC_2.17 aio_read F
GLIBC_2.17 aio_read64 F
GLIBC_2.17 aio_return F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index d7db279c1e..1de14d1195 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -544,6 +544,7 @@ GLIBC_2.33 addmntent F
GLIBC_2.33 addseverity F
GLIBC_2.33 adjtime F
GLIBC_2.33 adjtimex F
+GLIBC_2.33 aio_init F
GLIBC_2.33 alarm F
GLIBC_2.33 aligned_alloc F
GLIBC_2.33 alphasort F
@@ -2109,6 +2110,7 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 _pthread_cleanup_pop F
GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
index c03b8a741e..c588e04ae0 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
@@ -5,7 +5,6 @@ GLIBC_2.33 aio_error F
GLIBC_2.33 aio_error64 F
GLIBC_2.33 aio_fsync F
GLIBC_2.33 aio_fsync64 F
-GLIBC_2.33 aio_init F
GLIBC_2.33 aio_read F
GLIBC_2.33 aio_read64 F
GLIBC_2.33 aio_return F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index ef03dc0f9e..fd243b77de 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -570,6 +570,7 @@ GLIBC_2.27 addmntent F
GLIBC_2.27 addseverity F
GLIBC_2.27 adjtime F
GLIBC_2.27 adjtimex F
+GLIBC_2.27 aio_init F
GLIBC_2.27 alarm F
GLIBC_2.27 aligned_alloc F
GLIBC_2.27 alphasort F
@@ -2309,6 +2310,7 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 _pthread_cleanup_pop F
GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
index 3cc7884927..4be13a5327 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
@@ -5,7 +5,6 @@ GLIBC_2.27 aio_error F
GLIBC_2.27 aio_error64 F
GLIBC_2.27 aio_fsync F
GLIBC_2.27 aio_fsync64 F
-GLIBC_2.27 aio_init F
GLIBC_2.27 aio_read F
GLIBC_2.27 aio_read64 F
GLIBC_2.27 aio_return F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 9118cb68ec..5a9ccc644b 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -1472,6 +1472,7 @@ GLIBC_2.1 _sys_errlist D 0x1f4
GLIBC_2.1 _sys_nerr D 0x4
GLIBC_2.1 _sys_siglist D 0x100
GLIBC_2.1 addseverity F
+GLIBC_2.1 aio_init F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
GLIBC_2.1 argp_error F
@@ -2473,6 +2474,7 @@ GLIBC_2.34 __wait3_time64 F
GLIBC_2.34 __wait4_time64 F
GLIBC_2.34 _pthread_cleanup_pop F
GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
index 6ac4f0597e..0114c42067 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
@@ -4,7 +4,6 @@ GLIBC_2.1 aio_error F
GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
GLIBC_2.1 aio_fsync64 F
-GLIBC_2.1 aio_init F
GLIBC_2.1 aio_read F
GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 66c01bd7e7..4b336dcbae 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -570,6 +570,7 @@ GLIBC_2.2 addseverity F
GLIBC_2.2 adjtime F
GLIBC_2.2 adjtimex F
GLIBC_2.2 advance F
+GLIBC_2.2 aio_init F
GLIBC_2.2 alarm F
GLIBC_2.2 alphasort F
GLIBC_2.2 alphasort64 F
@@ -2282,6 +2283,7 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 _pthread_cleanup_pop F
GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
index 80735b140b..97673a21d4 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
@@ -4,7 +4,6 @@ GLIBC_2.2 aio_error F
GLIBC_2.2 aio_error64 F
GLIBC_2.2 aio_fsync F
GLIBC_2.2 aio_fsync64 F
-GLIBC_2.2 aio_init F
GLIBC_2.2 aio_read F
GLIBC_2.2 aio_read64 F
GLIBC_2.2 aio_return F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index c40eb412c2..702fc7cd1c 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -7,6 +7,7 @@ GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
GLIBC_2.0 dlopen F
GLIBC_2.0 dlsym F
+GLIBC_2.1 aio_init F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.10 __cxa_at_quick_exit F
@@ -2328,6 +2329,7 @@ GLIBC_2.34 __wait3_time64 F
GLIBC_2.34 __wait4_time64 F
GLIBC_2.34 _pthread_cleanup_pop F
GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
index 6ac4f0597e..0114c42067 100644
--- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
@@ -4,7 +4,6 @@ GLIBC_2.1 aio_error F
GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
GLIBC_2.1 aio_fsync64 F
-GLIBC_2.1 aio_init F
GLIBC_2.1 aio_read F
GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 1412d33835..cca5fe2265 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -7,6 +7,7 @@ GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
GLIBC_2.0 dlopen F
GLIBC_2.0 dlsym F
+GLIBC_2.1 aio_init F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.10 __cxa_at_quick_exit F
@@ -2325,6 +2326,7 @@ GLIBC_2.34 __wait3_time64 F
GLIBC_2.34 __wait4_time64 F
GLIBC_2.34 _pthread_cleanup_pop F
GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
index 6ac4f0597e..0114c42067 100644
--- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
@@ -4,7 +4,6 @@ GLIBC_2.1 aio_error F
GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
GLIBC_2.1 aio_fsync64 F
-GLIBC_2.1 aio_init F
GLIBC_2.1 aio_read F
GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 7b55d34753..937efaaba4 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -1474,6 +1474,7 @@ GLIBC_2.1 _sys_errlist D 0x1fc
GLIBC_2.1 _sys_nerr D 0x4
GLIBC_2.1 _sys_siglist D 0x100
GLIBC_2.1 addseverity F
+GLIBC_2.1 aio_init F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
GLIBC_2.1 argp_error F
@@ -2466,6 +2467,7 @@ GLIBC_2.34 __wait3_time64 F
GLIBC_2.34 __wait4_time64 F
GLIBC_2.34 _pthread_cleanup_pop F
GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
index 100bd4fb76..e4e4569d81 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
@@ -4,7 +4,6 @@ GLIBC_2.1 aio_error F
GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
GLIBC_2.1 aio_fsync64 F
-GLIBC_2.1 aio_init F
GLIBC_2.1 aio_read F
GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index cfd5f38864..47f96b1480 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -7,6 +7,7 @@ GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
GLIBC_2.0 dlopen F
GLIBC_2.0 dlsym F
+GLIBC_2.1 aio_init F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.10 __cxa_at_quick_exit F
@@ -2302,6 +2303,7 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 _pthread_cleanup_pop F
GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
index c4985067f7..94f5ca8b6f 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
@@ -4,7 +4,6 @@ GLIBC_2.1 aio_error F
GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
GLIBC_2.1 aio_fsync64 F
-GLIBC_2.1 aio_init F
GLIBC_2.1 aio_read F
GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 17be05f14f..4ff62311e9 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -559,6 +559,7 @@ GLIBC_2.2.5 addseverity F
GLIBC_2.2.5 adjtime F
GLIBC_2.2.5 adjtimex F
GLIBC_2.2.5 advance F
+GLIBC_2.2.5 aio_init F
GLIBC_2.2.5 alarm F
GLIBC_2.2.5 alphasort F
GLIBC_2.2.5 alphasort64 F
@@ -2260,6 +2261,7 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 _pthread_cleanup_pop F
GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
index a3da4f8e6e..bac8c74b5f 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
@@ -4,7 +4,6 @@ GLIBC_2.2.5 aio_error F
GLIBC_2.2.5 aio_error64 F
GLIBC_2.2.5 aio_fsync F
GLIBC_2.2.5 aio_fsync64 F
-GLIBC_2.2.5 aio_init F
GLIBC_2.2.5 aio_read F
GLIBC_2.2.5 aio_read64 F
GLIBC_2.2.5 aio_return F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index a9db18906b..e34873201d 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -592,6 +592,7 @@ GLIBC_2.16 addseverity F
GLIBC_2.16 adjtime F
GLIBC_2.16 adjtimex F
GLIBC_2.16 advance F
+GLIBC_2.16 aio_init F
GLIBC_2.16 alarm F
GLIBC_2.16 aligned_alloc F
GLIBC_2.16 alphasort F
@@ -2363,6 +2364,7 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 _pthread_cleanup_pop F
GLIBC_2.34 _pthread_cleanup_push F
+GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
index a0069d137b..2e432fe7d6 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
@@ -5,7 +5,6 @@ GLIBC_2.16 aio_error F
GLIBC_2.16 aio_error64 F
GLIBC_2.16 aio_fsync F
GLIBC_2.16 aio_fsync64 F
-GLIBC_2.16 aio_init F
GLIBC_2.16 aio_read F
GLIBC_2.16 aio_read64 F
GLIBC_2.16 aio_return F
--
2.31.1
^ permalink raw reply [flat|nested] 72+ messages in thread
* Re: [PATCH 10/34] Linux: Move aio_init from librt into libc
2021-06-17 18:57 ` [PATCH 10/34] Linux: Move aio_init from librt into libc Florian Weimer
@ 2021-06-23 13:22 ` Adhemerval Zanella
0 siblings, 0 replies; 72+ messages in thread
From: Adhemerval Zanella @ 2021-06-23 13:22 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 17/06/2021 15:57, Florian Weimer via Libc-alpha wrote:
> This commit also moves the aio_misc and aio_sigquue helper,
> so GLIBC_PRIVATE exports need to be added.
>
> The symbol was moved using scripts/move-symbol-to-libc.py.
LGTM, only a small nit below.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> ---
> nptl/pthread_getschedparam.c | 1 +
> rt/Makefile | 6 +-
> rt/Versions | 23 ++++
> rt/aio_misc.c | 107 ++++++++++++------
> rt/aio_notify.c | 21 +++-
> rt/aio_sigqueue.c | 2 +-
> sysdeps/generic/aio_misc.h | 43 +++++--
> sysdeps/nptl/aio_misc.h | 4 +-
> sysdeps/nptl/pthreadP.h | 1 +
> sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/aarch64/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/aio_misc.h | 10 +-
> sysdeps/unix/sysv/linux/aio_sigqueue.c | 3 +-
> sysdeps/unix/sysv/linux/alpha/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/alpha/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/arc/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/arc/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/arm/be/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/arm/be/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/arm/le/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/arm/le/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/csky/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/csky/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/hppa/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/hppa/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/i386/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/i386/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/ia64/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/ia64/librt.abilist | 1 -
> .../sysv/linux/m68k/coldfire/libc.abilist | 2 +
> .../sysv/linux/m68k/coldfire/librt.abilist | 1 -
> .../unix/sysv/linux/m68k/m680x0/libc.abilist | 2 +
> .../unix/sysv/linux/m68k/m680x0/librt.abilist | 1 -
> .../sysv/linux/microblaze/be/libc.abilist | 2 +
> .../sysv/linux/microblaze/be/librt.abilist | 1 -
> .../sysv/linux/microblaze/le/libc.abilist | 2 +
> .../sysv/linux/microblaze/le/librt.abilist | 1 -
> .../sysv/linux/mips/mips32/fpu/libc.abilist | 2 +
> .../unix/sysv/linux/mips/mips32/librt.abilist | 1 -
> .../sysv/linux/mips/mips32/nofpu/libc.abilist | 2 +
> .../sysv/linux/mips/mips64/n32/libc.abilist | 2 +
> .../sysv/linux/mips/mips64/n32/librt.abilist | 1 -
> .../sysv/linux/mips/mips64/n64/libc.abilist | 2 +
> .../sysv/linux/mips/mips64/n64/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/nios2/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/nios2/librt.abilist | 1 -
> .../linux/powerpc/powerpc32/fpu/libc.abilist | 2 +
> .../linux/powerpc/powerpc32/librt.abilist | 1 -
> .../powerpc/powerpc32/nofpu/libc.abilist | 2 +
> .../linux/powerpc/powerpc64/be/libc.abilist | 2 +
> .../linux/powerpc/powerpc64/be/librt.abilist | 1 -
> .../linux/powerpc/powerpc64/le/libc.abilist | 2 +
> .../linux/powerpc/powerpc64/le/librt.abilist | 1 -
> .../unix/sysv/linux/riscv/rv32/libc.abilist | 2 +
> .../unix/sysv/linux/riscv/rv32/librt.abilist | 1 -
> .../unix/sysv/linux/riscv/rv64/libc.abilist | 2 +
> .../unix/sysv/linux/riscv/rv64/librt.abilist | 1 -
> .../unix/sysv/linux/s390/s390-32/libc.abilist | 2 +
> .../sysv/linux/s390/s390-32/librt.abilist | 1 -
> .../unix/sysv/linux/s390/s390-64/libc.abilist | 2 +
> .../sysv/linux/s390/s390-64/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/sh/be/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/sh/be/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/sh/le/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/sh/le/librt.abilist | 1 -
> .../sysv/linux/sparc/sparc32/libc.abilist | 2 +
> .../sysv/linux/sparc/sparc32/librt.abilist | 1 -
> .../sysv/linux/sparc/sparc64/libc.abilist | 2 +
> .../sysv/linux/sparc/sparc64/librt.abilist | 1 -
> .../unix/sysv/linux/x86_64/64/libc.abilist | 2 +
> .../unix/sysv/linux/x86_64/64/librt.abilist | 1 -
> .../unix/sysv/linux/x86_64/x32/libc.abilist | 2 +
> .../unix/sysv/linux/x86_64/x32/librt.abilist | 1 -
> 73 files changed, 222 insertions(+), 93 deletions(-)
>
> diff --git a/nptl/pthread_getschedparam.c b/nptl/pthread_getschedparam.c
> index a69ed8d8c3..94316cf897 100644
> --- a/nptl/pthread_getschedparam.c
> +++ b/nptl/pthread_getschedparam.c
> @@ -70,4 +70,5 @@ __pthread_getschedparam (pthread_t threadid, int *policy,
>
> return result;
> }
> +libc_hidden_def (__pthread_getschedparam)
> strong_alias (__pthread_getschedparam, pthread_getschedparam)
Ok.
> diff --git a/rt/Makefile b/rt/Makefile
> index 329db09c32..ada87c845e 100644
> --- a/rt/Makefile
> +++ b/rt/Makefile
> @@ -32,12 +32,9 @@ librt-routines = \
> aio_cancel \
> aio_error \
> aio_fsync \
> - aio_misc \
> - aio_notify \
> aio_read \
> aio_read64 \
> aio_return \
> - aio_sigqueue \
> aio_suspend \
> aio_write \
> aio_write64 \
> @@ -60,6 +57,9 @@ librt-routines = \
> timer_settime \
>
> $(librt-routines-var) += \
> + aio_misc \
> + aio_notify \
> + aio_sigqueue \
>
> tests := tst-shm tst-timer tst-timer2 \
> tst-aio tst-aio64 tst-aio2 tst-aio3 tst-aio4 tst-aio5 tst-aio6 \
Ok.
> diff --git a/rt/Versions b/rt/Versions
> index 26c6d1ac63..2e991a9d93 100644
> --- a/rt/Versions
> +++ b/rt/Versions
> @@ -1,12 +1,33 @@
> libc {
> + GLIBC_2.1 {
> +%if PTHREAD_IN_LIBC
> + aio_init;
> +%endif
> + }
> GLIBC_2.2 {
> shm_open;
> shm_unlink;
> }
> GLIBC_2.34 {
> +%if PTHREAD_IN_LIBC
> + aio_init;
> +%endif
> shm_open;
> shm_unlink;
> }
> +%if PTHREAD_IN_LIBC
> + GLIBC_PRIVATE {
> + __aio_enqueue_request;
> + __aio_find_req;
> + __aio_find_req_fd;
> + __aio_free_request;
> + __aio_notify;
> + __aio_notify_only;
> + __aio_remove_request;
> + __aio_requests_mutex;
> + __aio_sigqueue;
> + }
> +%endif
> }
> librt {
> GLIBC_2.1 {
> @@ -16,7 +37,9 @@ librt {
> aio_error64;
> aio_fsync;
> aio_fsync64;
> +%if !PTHREAD_IN_LIBC
> aio_init;
> +%endif
> aio_read;
> aio_read64;
> aio_return;
Ok.
> diff --git a/rt/aio_misc.c b/rt/aio_misc.c
> index b95f07d9d3..d9be8ac33d 100644
> --- a/rt/aio_misc.c
> +++ b/rt/aio_misc.c
> @@ -21,7 +21,7 @@
> #include <assert.h>
> #include <errno.h>
> #include <limits.h>
> -#include <pthread.h>
> +#include <pthreadP.h>
> #include <stdlib.h>
> #include <unistd.h>
> #include <sys/param.h>
> @@ -29,6 +29,20 @@
> #include <sys/time.h>
> #include <aio_misc.h>
>
> +#if !PTHREAD_IN_LIBC
> +/* The available function names differ outside of libc. (In libc, we
> + need to use hidden aliases to avoid the PLT.) */
> +# define __pread __libc_pread
> +# define __pthread_attr_destroy pthread_attr_destroy
> +# define __pthread_attr_init pthread_attr_init
> +# define __pthread_attr_setdetachstate pthread_attr_setdetachstate
> +# define __pthread_cond_signal pthread_cond_signal
> +# define __pthread_cond_timedwait pthread_cond_timedwait
> +# define __pthread_getschedparam pthread_getschedparam
> +# define __pthread_setschedparam pthread_setschedparam
> +# define __pwrite __libc_pwrite
> +#endif
> +
> #ifndef aio_create_helper_thread
> # define aio_create_helper_thread __aio_create_helper_thread
>
Ok.
> @@ -38,12 +52,12 @@ __aio_create_helper_thread (pthread_t *threadp, void *(*tf) (void *), void *arg)
> pthread_attr_t attr;
>
> /* Make sure the thread is created detached. */
> - pthread_attr_init (&attr);
> - pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
> + __pthread_attr_init (&attr);
> + __pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
>
> - int ret = pthread_create (threadp, &attr, tf, arg);
> + int ret = __pthread_create (threadp, &attr, tf, arg);
>
> - (void) pthread_attr_destroy (&attr);
> + (void) __pthread_attr_destroy (&attr);
> return ret;
> }
> #endif
> @@ -271,7 +285,7 @@ void
> __aio_init (const struct aioinit *init)
> {
> /* Get the mutex. */
> - pthread_mutex_lock (&__aio_requests_mutex);
> + __pthread_mutex_lock (&__aio_requests_mutex);
>
> /* Only allow writing new values if the table is not yet allocated. */
> if (pool == NULL)
> @@ -287,9 +301,8 @@ __aio_init (const struct aioinit *init)
> optim.aio_idle_time = init->aio_idle_time;
>
> /* Release the mutex. */
> - pthread_mutex_unlock (&__aio_requests_mutex);
> + __pthread_mutex_unlock (&__aio_requests_mutex);
> }
> -weak_alias (__aio_init, aio_init)
>
>
> /* The main function of the async I/O handling. It enqueues requests
Ok.
> @@ -319,11 +332,11 @@ __aio_enqueue_request (aiocb_union *aiocbp, int operation)
> }
>
> /* Compute priority for this request. */
> - pthread_getschedparam (pthread_self (), &policy, ¶m);
> + __pthread_getschedparam (__pthread_self (), &policy, ¶m);
> prio = param.sched_priority - aiocbp->aiocb.aio_reqprio;
>
> /* Get the mutex. */
> - pthread_mutex_lock (&__aio_requests_mutex);
> + __pthread_mutex_lock (&__aio_requests_mutex);
>
> last = NULL;
> runp = requests;
> @@ -340,7 +353,7 @@ __aio_enqueue_request (aiocb_union *aiocbp, int operation)
> newp = get_elem ();
> if (newp == NULL)
> {
> - pthread_mutex_unlock (&__aio_requests_mutex);
> + __pthread_mutex_unlock (&__aio_requests_mutex);
> __set_errno (EAGAIN);
> return NULL;
> }
> @@ -454,7 +467,7 @@ __aio_enqueue_request (aiocb_union *aiocbp, int operation)
> /* If there is a thread waiting for work, then let it know that we
> have just given it something to do. */
> if (idle_thread_count > 0)
> - pthread_cond_signal (&__aio_new_request_notification);
> + __pthread_cond_signal (&__aio_new_request_notification);
> }
>
> if (result == 0)
> @@ -469,7 +482,7 @@ __aio_enqueue_request (aiocb_union *aiocbp, int operation)
> }
>
> /* Release the mutex. */
> - pthread_mutex_unlock (&__aio_requests_mutex);
> + __pthread_mutex_unlock (&__aio_requests_mutex);
>
> return newp;
> }
Ok.
> @@ -478,14 +491,14 @@ __aio_enqueue_request (aiocb_union *aiocbp, int operation)
> static void *
> handle_fildes_io (void *arg)
> {
> - pthread_t self = pthread_self ();
> + pthread_t self = __pthread_self ();
> struct sched_param param;
> struct requestlist *runp = (struct requestlist *) arg;
> aiocb_union *aiocbp;
> int policy;
> int fildes;
>
> - pthread_getschedparam (self, &policy, ¶m);
> + __pthread_getschedparam (self, &policy, ¶m);
>
> do
> {
> @@ -495,7 +508,7 @@ handle_fildes_io (void *arg)
> "get work off the work queue" part of this loop, which is near the
> end. */
> if (runp == NULL)
> - pthread_mutex_lock (&__aio_requests_mutex);
> + __pthread_mutex_lock (&__aio_requests_mutex);
> else
> {
> /* Hopefully this request is marked as running. */
> @@ -511,7 +524,7 @@ handle_fildes_io (void *arg)
> {
> param.sched_priority = aiocbp->aiocb.__abs_prio;
> policy = aiocbp->aiocb.__policy;
> - pthread_setschedparam (self, policy, ¶m);
> + __pthread_setschedparam (self, policy, ¶m);
> }
>
> /* Process request pointed to by RUNP. We must not be disturbed
> @@ -527,11 +540,11 @@ handle_fildes_io (void *arg)
> aiocbp->aiocb64.aio_offset));
> else
> aiocbp->aiocb.__return_value =
> - TEMP_FAILURE_RETRY (__libc_pread (fildes,
> - (void *)
> - aiocbp->aiocb.aio_buf,
> - aiocbp->aiocb.aio_nbytes,
> - aiocbp->aiocb.aio_offset));
> + TEMP_FAILURE_RETRY (__pread (fildes,
> + (void *)
> + aiocbp->aiocb.aio_buf,
> + aiocbp->aiocb.aio_nbytes,
> + aiocbp->aiocb.aio_offset));
>
> if (aiocbp->aiocb.__return_value == -1 && errno == ESPIPE)
> /* The Linux kernel is different from others. It returns
Ok.
> @@ -554,10 +567,10 @@ handle_fildes_io (void *arg)
> aiocbp->aiocb64.aio_offset));
> else
> aiocbp->aiocb.__return_value =
> - TEMP_FAILURE_RETRY (__libc_pwrite (fildes, (const void *)
> - aiocbp->aiocb.aio_buf,
> - aiocbp->aiocb.aio_nbytes,
> - aiocbp->aiocb.aio_offset));
> + TEMP_FAILURE_RETRY (__pwrite (fildes, (const void *)
> + aiocbp->aiocb.aio_buf,
> + aiocbp->aiocb.aio_nbytes,
> + aiocbp->aiocb.aio_offset));
>
> if (aiocbp->aiocb.__return_value == -1 && errno == ESPIPE)
> /* The Linux kernel is different from others. It returns
> @@ -583,7 +596,7 @@ handle_fildes_io (void *arg)
> }
>
> /* Get the mutex. */
> - pthread_mutex_lock (&__aio_requests_mutex);
> + __pthread_mutex_lock (&__aio_requests_mutex);
>
> if (aiocbp->aiocb.__return_value == -1)
> aiocbp->aiocb.__error_code = errno;
> @@ -626,9 +639,9 @@ handle_fildes_io (void *arg)
> wakeup_time.tv_nsec -= 1000000000;
> ++wakeup_time.tv_sec;
> }
> - pthread_cond_timedwait (&__aio_new_request_notification,
> - &__aio_requests_mutex,
> - &wakeup_time);
> + __pthread_cond_timedwait (&__aio_new_request_notification,
> + &__aio_requests_mutex,
> + &wakeup_time);
> --idle_thread_count;
> runp = runlist;
> }
> @@ -651,20 +664,21 @@ handle_fildes_io (void *arg)
> up for these other work elements; otherwise, we should try
> to create a new thread. */
> if (idle_thread_count > 0)
> - pthread_cond_signal (&__aio_new_request_notification);
> + __pthread_cond_signal (&__aio_new_request_notification);
> else if (nthreads < optim.aio_threads)
> {
> pthread_t thid;
> pthread_attr_t attr;
>
> /* Make sure the thread is created detached. */
> - pthread_attr_init (&attr);
> - pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
> + __pthread_attr_init (&attr);
> + __pthread_attr_setdetachstate (&attr,
> + PTHREAD_CREATE_DETACHED);
>
> /* Now try to start a thread. If we fail, no big deal,
> because we know that there is at least one thread (us)
> that is working on AIO operations. */
> - if (pthread_create (&thid, &attr, handle_fildes_io, NULL)
> + if (__pthread_create (&thid, &attr, handle_fildes_io, NULL)
> == 0)
> ++nthreads;
> }
> @@ -672,7 +686,7 @@ handle_fildes_io (void *arg)
> }
>
> /* Release the mutex. */
> - pthread_mutex_unlock (&__aio_requests_mutex);
> + __pthread_mutex_unlock (&__aio_requests_mutex);
> }
> while (runp != NULL);
>
> @@ -719,3 +733,26 @@ add_request_to_runlist (struct requestlist *newrequest)
> runp->next_run = newrequest;
> }
> }
> +
Ok.
> +#if PTHREAD_IN_LIBC
> +libc_hidden_data_def (__aio_requests_mutex)
> +libc_hidden_def (__aio_enqueue_request)
> +libc_hidden_def (__aio_find_req)
> +libc_hidden_def (__aio_find_req_fd)
> +libc_hidden_def (__aio_free_request)
> +libc_hidden_def (__aio_remove_request)
> +
> +versioned_symbol (libc, __aio_init, aio_init, GLIBC_2_34);
> +# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_34)
> +compat_symbol (librt, __aio_init, aio_init, GLIBC_2_1);
> +# endif
> +
> +#else /* !PTHREAD_IN_LIBC */
> +librt_hidden_data_def (__aio_requests_mutex)
> +librt_hidden_def (__aio_enqueue_request)
> +librt_hidden_def (__aio_find_req)
> +librt_hidden_def (__aio_find_req_fd)
> +librt_hidden_def (__aio_free_request)
> +librt_hidden_def (__aio_remove_request)
> +weak_alias (__aio_init, aio_init)
> +#endif /* !PTHREAD_IN_LIBC */
Ok.
> diff --git a/rt/aio_notify.c b/rt/aio_notify.c
> index a8d61503d8..432000e34b 100644
> --- a/rt/aio_notify.c
> +++ b/rt/aio_notify.c
> @@ -18,12 +18,17 @@
> <https://www.gnu.org/licenses/>. */
>
> #include <errno.h>
> -#include <pthread.h>
> +#include <pthreadP.h>
> #include <stdlib.h>
> #include <unistd.h>
> #include <aio_misc.h>
> #include <signal.h>
>
> +#if !PTHREAD_IN_LIBC
> +# define __pthread_attr_init pthread_attr_init
> +# define __pthread_attr_setdetachstate pthread_attr_setdetachstate
> +#endif
> +
> #ifndef aio_start_notify_thread
> # define aio_start_notify_thread() do { } while (0)
> #endif
> @@ -62,8 +67,8 @@ __aio_notify_only (struct sigevent *sigev)
> pattr = (pthread_attr_t *) sigev->sigev_notify_attributes;
> if (pattr == NULL)
> {
> - pthread_attr_init (&attr);
> - pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
> + __pthread_attr_init (&attr);
> + __pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
> pattr = &attr;
> }
>
> @@ -81,7 +86,7 @@ __aio_notify_only (struct sigevent *sigev)
> {
> nf->func = sigev->sigev_notify_function;
> nf->value = sigev->sigev_value;
> - if (pthread_create (&tid, pattr, notify_func_wrapper, nf) < 0)
> + if (__pthread_create (&tid, pattr, notify_func_wrapper, nf) < 0)
> {
> free (nf);
> result = -1;
> @@ -155,3 +160,11 @@ __aio_notify (struct requestlist *req)
> waitlist = next;
> }
> }
> +
> +#if PTHREAD_IN_LIBC
> +libc_hidden_def (__aio_notify)
> +libc_hidden_def (__aio_notify_only)
> +#else
> +librt_hidden_def (__aio_notify)
> +librt_hidden_def (__aio_notify_only)
> +#endif
Ok.
> diff --git a/rt/aio_sigqueue.c b/rt/aio_sigqueue.c
> index 2f7da00ad3..0ad95ae04c 100644
> --- a/rt/aio_sigqueue.c
> +++ b/rt/aio_sigqueue.c
> @@ -28,5 +28,5 @@ __aio_sigqueue (int sig, const union sigval val, pid_t caller_pid)
> __set_errno (ENOSYS);
> return -1;
> }
> -
> +librt_hidden_def (__aio_sigqueue)
> stub_warning (__aio_sigqueue)
Ok.
> diff --git a/sysdeps/generic/aio_misc.h b/sysdeps/generic/aio_misc.h
> index e23524cffe..d9bff36e50 100644
> --- a/sysdeps/generic/aio_misc.h
> +++ b/sysdeps/generic/aio_misc.h
> @@ -87,36 +87,55 @@ struct requestlist
>
>
> /* Lock for global I/O list of requests. */
> -extern pthread_mutex_t __aio_requests_mutex attribute_hidden;
> +extern pthread_mutex_t __aio_requests_mutex;
>
>
> /* Enqueue request. */
> extern struct requestlist *__aio_enqueue_request (aiocb_union *aiocbp,
> - int operation)
> - attribute_hidden;
> + int operation);
>
> /* Find request entry for given AIO control block. */
> -extern struct requestlist *__aio_find_req (aiocb_union *elem) attribute_hidden;
> +extern struct requestlist *__aio_find_req (aiocb_union *elem);
>
> /* Find request entry for given file descriptor. */
> -extern struct requestlist *__aio_find_req_fd (int fildes) attribute_hidden;
> +extern struct requestlist *__aio_find_req_fd (int fildes);
>
> /* Remove request from the list. */
> extern void __aio_remove_request (struct requestlist *last,
> - struct requestlist *req, int all)
> - attribute_hidden;
> + struct requestlist *req, int all);
>
> /* Release the entry for the request. */
> -extern void __aio_free_request (struct requestlist *req) attribute_hidden;
> +extern void __aio_free_request (struct requestlist *req);
>
> /* Notify initiator of request and tell this everybody listening. */
> -extern void __aio_notify (struct requestlist *req) attribute_hidden;
> +extern void __aio_notify (struct requestlist *req);
>
> /* Notify initiator of request. */
> -extern int __aio_notify_only (struct sigevent *sigev) attribute_hidden;
> +extern int __aio_notify_only (struct sigevent *sigev);
>
> /* Send the signal. */
> -extern int __aio_sigqueue (int sig, const union sigval val, pid_t caller_pid)
> - attribute_hidden;
> +extern int __aio_sigqueue (int sig, const union sigval val, pid_t caller_pid);
> +
> +#if PTHREAD_IN_LIBC
> +libc_hidden_proto (__aio_enqueue_request)
> +libc_hidden_proto (__aio_find_req)
> +libc_hidden_proto (__aio_find_req_fd)
> +libc_hidden_proto (__aio_free_request)
> +libc_hidden_proto (__aio_notify)
> +libc_hidden_proto (__aio_notify_only)
> +libc_hidden_proto (__aio_remove_request)
> +libc_hidden_proto (__aio_requests_mutex)
> +libc_hidden_proto (__aio_sigqueue)
> +#else
> +librt_hidden_proto (__aio_enqueue_request)
> +librt_hidden_proto (__aio_find_req)
> +librt_hidden_proto (__aio_find_req_fd)
> +librt_hidden_proto (__aio_free_request)
> +librt_hidden_proto (__aio_notify)
> +librt_hidden_proto (__aio_notify_only)
> +librt_hidden_proto (__aio_remove_request)
> +librt_hidden_proto (__aio_requests_mutex)
> +librt_hidden_proto (__aio_sigqueue)
> +#endif
>
> #endif /* aio_misc.h */
> diff --git a/sysdeps/nptl/aio_misc.h b/sysdeps/nptl/aio_misc.h
> index a5c439fab5..d85f9c2fef 100644
> --- a/sysdeps/nptl/aio_misc.h
> +++ b/sysdeps/nptl/aio_misc.h
> @@ -39,7 +39,7 @@
> \
> if (oldval != 0) \
> { \
> - pthread_mutex_unlock (&__aio_requests_mutex); \
> + __pthread_mutex_unlock (&__aio_requests_mutex); \
> \
> int status; \
> do \
> @@ -67,7 +67,7 @@
> else \
> assert (status == 0 || status == EAGAIN); \
> \
> - pthread_mutex_lock (&__aio_requests_mutex); \
> + __pthread_mutex_lock (&__aio_requests_mutex); \
> } \
> } while (0)
>
Ok.
> diff --git a/sysdeps/nptl/pthreadP.h b/sysdeps/nptl/pthreadP.h
> index ca96ff073b..374657a2fd 100644
> --- a/sysdeps/nptl/pthreadP.h
> +++ b/sysdeps/nptl/pthreadP.h
> @@ -337,6 +337,7 @@ libc_hidden_proto (__pthread_get_minstack)
> /* Namespace save aliases. */
> extern int __pthread_getschedparam (pthread_t thread_id, int *policy,
> struct sched_param *param);
> +libc_hidden_proto (__pthread_getschedparam)
> extern int __pthread_setschedparam (pthread_t thread_id, int policy,
> const struct sched_param *param);
> extern int __pthread_mutex_init (pthread_mutex_t *__mutex,
Ok.
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index 42e240e284..1bc4ffccce 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -589,6 +589,7 @@ GLIBC_2.17 addseverity F
> GLIBC_2.17 adjtime F
> GLIBC_2.17 adjtimex F
> GLIBC_2.17 advance F
> +GLIBC_2.17 aio_init F
> GLIBC_2.17 alarm F
> GLIBC_2.17 aligned_alloc F
> GLIBC_2.17 alphasort F
> @@ -2348,6 +2349,7 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
> GLIBC_2.34 __pthread_unwind_next F
> GLIBC_2.34 _pthread_cleanup_pop F
> GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> index c41e0e675b..66dc3e4457 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> @@ -5,7 +5,6 @@ GLIBC_2.17 aio_error F
> GLIBC_2.17 aio_error64 F
> GLIBC_2.17 aio_fsync F
> GLIBC_2.17 aio_fsync64 F
> -GLIBC_2.17 aio_init F
> GLIBC_2.17 aio_read F
> GLIBC_2.17 aio_read64 F
> GLIBC_2.17 aio_return F
Ok.
> diff --git a/sysdeps/unix/sysv/linux/aio_misc.h b/sysdeps/unix/sysv/linux/aio_misc.h
> index a661cee203..79907544dc 100644
> --- a/sysdeps/unix/sysv/linux/aio_misc.h
> +++ b/sysdeps/unix/sysv/linux/aio_misc.h
> @@ -42,11 +42,11 @@ __aio_create_helper_thread (pthread_t *threadp, void *(*tf) (void *),
> pthread_attr_t attr;
>
> /* Make sure the thread is created detached. */
> - pthread_attr_init (&attr);
> - pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
> + __pthread_attr_init (&attr);
> + __pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
>
> /* The helper thread needs only very little resources. */
> - (void) pthread_attr_setstacksize (&attr, __pthread_get_minstack (&attr));
> + (void) __pthread_attr_setstacksize (&attr, __pthread_get_minstack (&attr));
I think there is no need the extra cast here.
>
> /* Block all signals in the helper thread. To do this thoroughly we
> temporarily have to block all signals here. */
> @@ -56,13 +56,13 @@ __aio_create_helper_thread (pthread_t *threadp, void *(*tf) (void *),
> INTERNAL_SYSCALL_CALL (rt_sigprocmask, SIG_SETMASK, &ss, &oss,
> __NSIG_BYTES);
>
> - int ret = pthread_create (threadp, &attr, tf, arg);
> + int ret = __pthread_create (threadp, &attr, tf, arg);
>
> /* Restore the signal mask. */
> INTERNAL_SYSCALL_CALL (rt_sigprocmask, SIG_SETMASK, &oss, NULL,
> __NSIG_BYTES);
>
> - (void) pthread_attr_destroy (&attr);
> + (void) __pthread_attr_destroy (&attr);
> return ret;
> }
> #endif
Ok.
> diff --git a/sysdeps/unix/sysv/linux/aio_sigqueue.c b/sysdeps/unix/sysv/linux/aio_sigqueue.c
> index 398d7a2f1f..bd0da6e763 100644
> --- a/sysdeps/unix/sysv/linux/aio_sigqueue.c
> +++ b/sysdeps/unix/sysv/linux/aio_sigqueue.c
> @@ -39,8 +39,9 @@ __aio_sigqueue (int sig, const union sigval val, pid_t caller_pid)
> info.si_signo = sig;
> info.si_code = SI_ASYNCIO;
> info.si_pid = caller_pid;
> - info.si_uid = getuid ();
> + info.si_uid = __getuid ();
> info.si_value = val;
>
> return INLINE_SYSCALL (rt_sigqueueinfo, 3, info.si_pid, sig, &info);
> }
> +libc_hidden_def (__aio_sigqueue)
Ok.
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index fad54555dc..5f3bebef8c 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -1502,6 +1502,7 @@ GLIBC_2.1 _sys_siglist D 0x200
> GLIBC_2.1 addseverity F
> GLIBC_2.1 adjtime F
> GLIBC_2.1 adjtimex F
> +GLIBC_2.1 aio_init F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> GLIBC_2.1 argp_error F
> @@ -2441,6 +2442,7 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
> GLIBC_2.34 __pthread_unwind_next F
> GLIBC_2.34 _pthread_cleanup_pop F
> GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
> index c4985067f7..94f5ca8b6f 100644
> --- a/sysdeps/unix/sysv/linux/alpha/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.1 aio_error F
> GLIBC_2.1 aio_error64 F
> GLIBC_2.1 aio_fsync F
> GLIBC_2.1 aio_fsync64 F
> -GLIBC_2.1 aio_init F
> GLIBC_2.1 aio_read F
> GLIBC_2.1 aio_read64 F
> GLIBC_2.1 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index 907716ec39..24d3a3673c 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -550,6 +550,7 @@ GLIBC_2.32 addmntent F
> GLIBC_2.32 addseverity F
> GLIBC_2.32 adjtime F
> GLIBC_2.32 adjtimex F
> +GLIBC_2.32 aio_init F
> GLIBC_2.32 alarm F
> GLIBC_2.32 aligned_alloc F
> GLIBC_2.32 alphasort F
> @@ -2107,6 +2108,7 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
> GLIBC_2.34 __pthread_unwind_next F
> GLIBC_2.34 _pthread_cleanup_pop F
> GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
> index 7ee0b6d324..e53772e428 100644
> --- a/sysdeps/unix/sysv/linux/arc/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/librt.abilist
> @@ -5,7 +5,6 @@ GLIBC_2.32 aio_error F
> GLIBC_2.32 aio_error64 F
> GLIBC_2.32 aio_fsync F
> GLIBC_2.32 aio_fsync64 F
> -GLIBC_2.32 aio_init F
> GLIBC_2.32 aio_read F
> GLIBC_2.32 aio_read64 F
> GLIBC_2.32 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index 50f987a429..582aa645c0 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -278,6 +278,7 @@ GLIBC_2.34 __wait3_time64 F
> GLIBC_2.34 __wait4_time64 F
> GLIBC_2.34 _pthread_cleanup_pop F
> GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> @@ -981,6 +982,7 @@ GLIBC_2.4 addseverity F
> GLIBC_2.4 adjtime F
> GLIBC_2.4 adjtimex F
> GLIBC_2.4 advance F
> +GLIBC_2.4 aio_init F
> GLIBC_2.4 alarm F
> GLIBC_2.4 alphasort F
> GLIBC_2.4 alphasort64 F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> index 278da67f77..3aa50aa219 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> @@ -9,7 +9,6 @@ GLIBC_2.4 aio_error F
> GLIBC_2.4 aio_error64 F
> GLIBC_2.4 aio_fsync F
> GLIBC_2.4 aio_fsync64 F
> -GLIBC_2.4 aio_init F
> GLIBC_2.4 aio_read F
> GLIBC_2.4 aio_read64 F
> GLIBC_2.4 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index bf9038af84..400eae9ab0 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -275,6 +275,7 @@ GLIBC_2.34 __wait3_time64 F
> GLIBC_2.34 __wait4_time64 F
> GLIBC_2.34 _pthread_cleanup_pop F
> GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> @@ -978,6 +979,7 @@ GLIBC_2.4 addseverity F
> GLIBC_2.4 adjtime F
> GLIBC_2.4 adjtimex F
> GLIBC_2.4 advance F
> +GLIBC_2.4 aio_init F
> GLIBC_2.4 alarm F
> GLIBC_2.4 alphasort F
> GLIBC_2.4 alphasort64 F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> index 278da67f77..3aa50aa219 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> @@ -9,7 +9,6 @@ GLIBC_2.4 aio_error F
> GLIBC_2.4 aio_error64 F
> GLIBC_2.4 aio_fsync F
> GLIBC_2.4 aio_fsync64 F
> -GLIBC_2.4 aio_init F
> GLIBC_2.4 aio_read F
> GLIBC_2.4 aio_read64 F
> GLIBC_2.4 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index afb91f6f43..4cd189d5db 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -564,6 +564,7 @@ GLIBC_2.29 addmntent F
> GLIBC_2.29 addseverity F
> GLIBC_2.29 adjtime F
> GLIBC_2.29 adjtimex F
> +GLIBC_2.29 aio_init F
> GLIBC_2.29 alarm F
> GLIBC_2.29 aligned_alloc F
> GLIBC_2.29 alphasort F
> @@ -2367,6 +2368,7 @@ GLIBC_2.34 __wait3_time64 F
> GLIBC_2.34 __wait4_time64 F
> GLIBC_2.34 _pthread_cleanup_pop F
> GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
> index 60400954a3..640230cfc0 100644
> --- a/sysdeps/unix/sysv/linux/csky/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/librt.abilist
> @@ -5,7 +5,6 @@ GLIBC_2.29 aio_error F
> GLIBC_2.29 aio_error64 F
> GLIBC_2.29 aio_fsync F
> GLIBC_2.29 aio_fsync64 F
> -GLIBC_2.29 aio_init F
> GLIBC_2.29 aio_read F
> GLIBC_2.29 aio_read64 F
> GLIBC_2.29 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index 125f8a269a..ede6bee0cd 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -3,6 +3,7 @@ GLIBC_2.0 dlclose F
> GLIBC_2.0 dlerror F
> GLIBC_2.0 dlopen F
> GLIBC_2.0 dlsym F
> +GLIBC_2.1 aio_init F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.10 __cxa_at_quick_exit F
> @@ -2321,6 +2322,7 @@ GLIBC_2.34 __wait3_time64 F
> GLIBC_2.34 __wait4_time64 F
> GLIBC_2.34 _pthread_cleanup_pop F
> GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
> index 6ac4f0597e..0114c42067 100644
> --- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.1 aio_error F
> GLIBC_2.1 aio_error64 F
> GLIBC_2.1 aio_fsync F
> GLIBC_2.1 aio_fsync64 F
> -GLIBC_2.1 aio_init F
> GLIBC_2.1 aio_read F
> GLIBC_2.1 aio_read64 F
> GLIBC_2.1 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index 517753bdd1..17063aaaf9 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -1475,6 +1475,7 @@ GLIBC_2.1 _sys_errlist D 0x1f4
> GLIBC_2.1 _sys_nerr D 0x4
> GLIBC_2.1 _sys_siglist D 0x100
> GLIBC_2.1 addseverity F
> +GLIBC_2.1 aio_init F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> GLIBC_2.1 argp_error F
> @@ -2505,6 +2506,7 @@ GLIBC_2.34 __wait3_time64 F
> GLIBC_2.34 __wait4_time64 F
> GLIBC_2.34 _pthread_cleanup_pop F
> GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
> index 6ac4f0597e..0114c42067 100644
> --- a/sysdeps/unix/sysv/linux/i386/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.1 aio_error F
> GLIBC_2.1 aio_error64 F
> GLIBC_2.1 aio_fsync F
> GLIBC_2.1 aio_fsync64 F
> -GLIBC_2.1 aio_init F
> GLIBC_2.1 aio_read F
> GLIBC_2.1 aio_read64 F
> GLIBC_2.1 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index 23d0928360..4991b80dd1 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -3,6 +3,7 @@ GLIBC_2.0 dlclose F
> GLIBC_2.0 dlerror F
> GLIBC_2.0 dlopen F
> GLIBC_2.0 dlsym F
> +GLIBC_2.1 aio_init F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.10 __cxa_at_quick_exit F
> @@ -2281,6 +2282,7 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
> GLIBC_2.34 __pthread_unwind_next F
> GLIBC_2.34 _pthread_cleanup_pop F
> GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
> index fa7f54dd55..2c97c02f21 100644
> --- a/sysdeps/unix/sysv/linux/ia64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.1 aio_error F
> GLIBC_2.1 aio_error64 F
> GLIBC_2.1 aio_fsync F
> GLIBC_2.1 aio_fsync64 F
> -GLIBC_2.1 aio_init F
> GLIBC_2.1 aio_read F
> GLIBC_2.1 aio_read64 F
> GLIBC_2.1 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index dd5fb50b18..c1d7edf1f9 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -279,6 +279,7 @@ GLIBC_2.34 __wait3_time64 F
> GLIBC_2.34 __wait4_time64 F
> GLIBC_2.34 _pthread_cleanup_pop F
> GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> @@ -969,6 +970,7 @@ GLIBC_2.4 addseverity F
> GLIBC_2.4 adjtime F
> GLIBC_2.4 adjtimex F
> GLIBC_2.4 advance F
> +GLIBC_2.4 aio_init F
> GLIBC_2.4 alarm F
> GLIBC_2.4 alphasort F
> GLIBC_2.4 alphasort64 F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> index 278da67f77..3aa50aa219 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> @@ -9,7 +9,6 @@ GLIBC_2.4 aio_error F
> GLIBC_2.4 aio_error64 F
> GLIBC_2.4 aio_fsync F
> GLIBC_2.4 aio_fsync64 F
> -GLIBC_2.4 aio_init F
> GLIBC_2.4 aio_read F
> GLIBC_2.4 aio_read64 F
> GLIBC_2.4 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index cb1d553361..725280a9db 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -1473,6 +1473,7 @@ GLIBC_2.1 _sys_errlist D 0x1f4
> GLIBC_2.1 _sys_nerr D 0x4
> GLIBC_2.1 _sys_siglist D 0x100
> GLIBC_2.1 addseverity F
> +GLIBC_2.1 aio_init F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> GLIBC_2.1 argp_error F
> @@ -2448,6 +2449,7 @@ GLIBC_2.34 __wait3_time64 F
> GLIBC_2.34 __wait4_time64 F
> GLIBC_2.34 _pthread_cleanup_pop F
> GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> index 6ac4f0597e..0114c42067 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.1 aio_error F
> GLIBC_2.1 aio_error64 F
> GLIBC_2.1 aio_fsync F
> GLIBC_2.1 aio_fsync64 F
> -GLIBC_2.1 aio_init F
> GLIBC_2.1 aio_read F
> GLIBC_2.1 aio_read64 F
> GLIBC_2.1 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index 6a20a6fdf2..fe9a9c2f09 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -591,6 +591,7 @@ GLIBC_2.18 addseverity F
> GLIBC_2.18 adjtime F
> GLIBC_2.18 adjtimex F
> GLIBC_2.18 advance F
> +GLIBC_2.18 aio_init F
> GLIBC_2.18 alarm F
> GLIBC_2.18 aligned_alloc F
> GLIBC_2.18 alphasort F
> @@ -2418,6 +2419,7 @@ GLIBC_2.34 __wait3_time64 F
> GLIBC_2.34 __wait4_time64 F
> GLIBC_2.34 _pthread_cleanup_pop F
> GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> index a14deaabdb..679050b4b7 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> @@ -5,7 +5,6 @@ GLIBC_2.18 aio_error F
> GLIBC_2.18 aio_error64 F
> GLIBC_2.18 aio_fsync F
> GLIBC_2.18 aio_fsync64 F
> -GLIBC_2.18 aio_init F
> GLIBC_2.18 aio_read F
> GLIBC_2.18 aio_read64 F
> GLIBC_2.18 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index 4c21cbb64d..8db8d27e29 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -591,6 +591,7 @@ GLIBC_2.18 addseverity F
> GLIBC_2.18 adjtime F
> GLIBC_2.18 adjtimex F
> GLIBC_2.18 advance F
> +GLIBC_2.18 aio_init F
> GLIBC_2.18 alarm F
> GLIBC_2.18 aligned_alloc F
> GLIBC_2.18 alphasort F
> @@ -2415,6 +2416,7 @@ GLIBC_2.34 __wait3_time64 F
> GLIBC_2.34 __wait4_time64 F
> GLIBC_2.34 _pthread_cleanup_pop F
> GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> index a14deaabdb..679050b4b7 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> @@ -5,7 +5,6 @@ GLIBC_2.18 aio_error F
> GLIBC_2.18 aio_error64 F
> GLIBC_2.18 aio_fsync F
> GLIBC_2.18 aio_fsync64 F
> -GLIBC_2.18 aio_init F
> GLIBC_2.18 aio_read F
> GLIBC_2.18 aio_read64 F
> GLIBC_2.18 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index f83ba2f780..b6cd21ace7 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -1651,6 +1651,7 @@ GLIBC_2.2 _sys_nerr D 0x4
> GLIBC_2.2 _sys_siglist D 0x100
> GLIBC_2.2 _test_and_set F
> GLIBC_2.2 addseverity F
> +GLIBC_2.2 aio_init F
> GLIBC_2.2 alphasort64 F
> GLIBC_2.2 argp_err_exit_status D 0x4
> GLIBC_2.2 argp_error F
> @@ -2413,6 +2414,7 @@ GLIBC_2.34 __wait3_time64 F
> GLIBC_2.34 __wait4_time64 F
> GLIBC_2.34 _pthread_cleanup_pop F
> GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> index 2c212d29d0..617d124234 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.2 aio_error F
> GLIBC_2.2 aio_error64 F
> GLIBC_2.2 aio_fsync F
> GLIBC_2.2 aio_fsync64 F
> -GLIBC_2.2 aio_init F
> GLIBC_2.2 aio_read F
> GLIBC_2.2 aio_read64 F
> GLIBC_2.2 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index 347bbddb94..65d0dcbe04 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -1649,6 +1649,7 @@ GLIBC_2.2 _sys_nerr D 0x4
> GLIBC_2.2 _sys_siglist D 0x100
> GLIBC_2.2 _test_and_set F
> GLIBC_2.2 addseverity F
> +GLIBC_2.2 aio_init F
> GLIBC_2.2 alphasort64 F
> GLIBC_2.2 argp_err_exit_status D 0x4
> GLIBC_2.2 argp_error F
> @@ -2411,6 +2412,7 @@ GLIBC_2.34 __wait3_time64 F
> GLIBC_2.34 __wait4_time64 F
> GLIBC_2.34 _pthread_cleanup_pop F
> GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index 26b7ab529b..a2b2e09a63 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -1650,6 +1650,7 @@ GLIBC_2.2 _sys_nerr D 0x4
> GLIBC_2.2 _sys_siglist D 0x100
> GLIBC_2.2 _test_and_set F
> GLIBC_2.2 addseverity F
> +GLIBC_2.2 aio_init F
> GLIBC_2.2 alphasort64 F
> GLIBC_2.2 argp_err_exit_status D 0x4
> GLIBC_2.2 argp_error F
> @@ -2419,6 +2420,7 @@ GLIBC_2.34 __wait3_time64 F
> GLIBC_2.34 __wait4_time64 F
> GLIBC_2.34 _pthread_cleanup_pop F
> GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> index 2c212d29d0..617d124234 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.2 aio_error F
> GLIBC_2.2 aio_error64 F
> GLIBC_2.2 aio_fsync F
> GLIBC_2.2 aio_fsync64 F
> -GLIBC_2.2 aio_init F
> GLIBC_2.2 aio_read F
> GLIBC_2.2 aio_read64 F
> GLIBC_2.2 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index e667b0e553..78b96a7119 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -1646,6 +1646,7 @@ GLIBC_2.2 _sys_nerr D 0x4
> GLIBC_2.2 _sys_siglist D 0x200
> GLIBC_2.2 _test_and_set F
> GLIBC_2.2 addseverity F
> +GLIBC_2.2 aio_init F
> GLIBC_2.2 alphasort64 F
> GLIBC_2.2 argp_err_exit_status D 0x4
> GLIBC_2.2 argp_error F
> @@ -2337,6 +2338,7 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
> GLIBC_2.34 __pthread_unwind_next F
> GLIBC_2.34 _pthread_cleanup_pop F
> GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> index 2c7d661e56..40749a395c 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.2 aio_error F
> GLIBC_2.2 aio_error64 F
> GLIBC_2.2 aio_fsync F
> GLIBC_2.2 aio_fsync64 F
> -GLIBC_2.2 aio_init F
> GLIBC_2.2 aio_read F
> GLIBC_2.2 aio_read64 F
> GLIBC_2.2 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index 89a1cc7da6..98943b6041 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -633,6 +633,7 @@ GLIBC_2.21 addseverity F
> GLIBC_2.21 adjtime F
> GLIBC_2.21 adjtimex F
> GLIBC_2.21 advance F
> +GLIBC_2.21 aio_init F
> GLIBC_2.21 alarm F
> GLIBC_2.21 aligned_alloc F
> GLIBC_2.21 alphasort F
> @@ -2457,6 +2458,7 @@ GLIBC_2.34 __wait3_time64 F
> GLIBC_2.34 __wait4_time64 F
> GLIBC_2.34 _pthread_cleanup_pop F
> GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
> index f600881b44..de354a6bb8 100644
> --- a/sysdeps/unix/sysv/linux/nios2/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/librt.abilist
> @@ -5,7 +5,6 @@ GLIBC_2.21 aio_error F
> GLIBC_2.21 aio_error64 F
> GLIBC_2.21 aio_fsync F
> GLIBC_2.21 aio_fsync64 F
> -GLIBC_2.21 aio_init F
> GLIBC_2.21 aio_read F
> GLIBC_2.21 aio_read64 F
> GLIBC_2.21 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index f364c5219e..f5d5c03eb3 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -1480,6 +1480,7 @@ GLIBC_2.1 _sys_errlist D 0x1f4
> GLIBC_2.1 _sys_nerr D 0x4
> GLIBC_2.1 _sys_siglist D 0x100
> GLIBC_2.1 addseverity F
> +GLIBC_2.1 aio_init F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> GLIBC_2.1 argp_error F
> @@ -2475,6 +2476,7 @@ GLIBC_2.34 __wait3_time64 F
> GLIBC_2.34 __wait4_time64 F
> GLIBC_2.34 _pthread_cleanup_pop F
> GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> index 6ac4f0597e..0114c42067 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.1 aio_error F
> GLIBC_2.1 aio_error64 F
> GLIBC_2.1 aio_fsync F
> GLIBC_2.1 aio_fsync64 F
> -GLIBC_2.1 aio_init F
> GLIBC_2.1 aio_read F
> GLIBC_2.1 aio_read64 F
> GLIBC_2.1 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index f5bcc78afe..6e99869e4c 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -1480,6 +1480,7 @@ GLIBC_2.1 _sys_errlist D 0x1f4
> GLIBC_2.1 _sys_nerr D 0x4
> GLIBC_2.1 _sys_siglist D 0x100
> GLIBC_2.1 addseverity F
> +GLIBC_2.1 aio_init F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> GLIBC_2.1 argp_error F
> @@ -2508,6 +2509,7 @@ GLIBC_2.34 __wait3_time64 F
> GLIBC_2.34 __wait4_time64 F
> GLIBC_2.34 _pthread_cleanup_pop F
> GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index 6032716053..205768e241 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -633,6 +633,7 @@ GLIBC_2.3 addseverity F
> GLIBC_2.3 adjtime F
> GLIBC_2.3 adjtimex F
> GLIBC_2.3 advance F
> +GLIBC_2.3 aio_init F
> GLIBC_2.3 alarm F
> GLIBC_2.3 alphasort F
> GLIBC_2.3 alphasort64 F
> @@ -2245,6 +2246,7 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
> GLIBC_2.34 __pthread_unwind_next F
> GLIBC_2.34 _pthread_cleanup_pop F
> GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> index b3c7afb461..3607639c50 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.3 aio_error F
> GLIBC_2.3 aio_error64 F
> GLIBC_2.3 aio_fsync F
> GLIBC_2.3 aio_fsync64 F
> -GLIBC_2.3 aio_init F
> GLIBC_2.3 aio_read F
> GLIBC_2.3 aio_read64 F
> GLIBC_2.3 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index 8c5494e1dc..fccca7ccc6 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -677,6 +677,7 @@ GLIBC_2.17 addseverity F
> GLIBC_2.17 adjtime F
> GLIBC_2.17 adjtimex F
> GLIBC_2.17 advance F
> +GLIBC_2.17 aio_init F
> GLIBC_2.17 alarm F
> GLIBC_2.17 aligned_alloc F
> GLIBC_2.17 alphasort F
> @@ -2544,6 +2545,7 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
> GLIBC_2.34 __pthread_unwind_next F
> GLIBC_2.34 _pthread_cleanup_pop F
> GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> index c41e0e675b..66dc3e4457 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> @@ -5,7 +5,6 @@ GLIBC_2.17 aio_error F
> GLIBC_2.17 aio_error64 F
> GLIBC_2.17 aio_fsync F
> GLIBC_2.17 aio_fsync64 F
> -GLIBC_2.17 aio_init F
> GLIBC_2.17 aio_read F
> GLIBC_2.17 aio_read64 F
> GLIBC_2.17 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index d7db279c1e..1de14d1195 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -544,6 +544,7 @@ GLIBC_2.33 addmntent F
> GLIBC_2.33 addseverity F
> GLIBC_2.33 adjtime F
> GLIBC_2.33 adjtimex F
> +GLIBC_2.33 aio_init F
> GLIBC_2.33 alarm F
> GLIBC_2.33 aligned_alloc F
> GLIBC_2.33 alphasort F
> @@ -2109,6 +2110,7 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
> GLIBC_2.34 __pthread_unwind_next F
> GLIBC_2.34 _pthread_cleanup_pop F
> GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> index c03b8a741e..c588e04ae0 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> @@ -5,7 +5,6 @@ GLIBC_2.33 aio_error F
> GLIBC_2.33 aio_error64 F
> GLIBC_2.33 aio_fsync F
> GLIBC_2.33 aio_fsync64 F
> -GLIBC_2.33 aio_init F
> GLIBC_2.33 aio_read F
> GLIBC_2.33 aio_read64 F
> GLIBC_2.33 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index ef03dc0f9e..fd243b77de 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -570,6 +570,7 @@ GLIBC_2.27 addmntent F
> GLIBC_2.27 addseverity F
> GLIBC_2.27 adjtime F
> GLIBC_2.27 adjtimex F
> +GLIBC_2.27 aio_init F
> GLIBC_2.27 alarm F
> GLIBC_2.27 aligned_alloc F
> GLIBC_2.27 alphasort F
> @@ -2309,6 +2310,7 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
> GLIBC_2.34 __pthread_unwind_next F
> GLIBC_2.34 _pthread_cleanup_pop F
> GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> index 3cc7884927..4be13a5327 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> @@ -5,7 +5,6 @@ GLIBC_2.27 aio_error F
> GLIBC_2.27 aio_error64 F
> GLIBC_2.27 aio_fsync F
> GLIBC_2.27 aio_fsync64 F
> -GLIBC_2.27 aio_init F
> GLIBC_2.27 aio_read F
> GLIBC_2.27 aio_read64 F
> GLIBC_2.27 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index 9118cb68ec..5a9ccc644b 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -1472,6 +1472,7 @@ GLIBC_2.1 _sys_errlist D 0x1f4
> GLIBC_2.1 _sys_nerr D 0x4
> GLIBC_2.1 _sys_siglist D 0x100
> GLIBC_2.1 addseverity F
> +GLIBC_2.1 aio_init F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> GLIBC_2.1 argp_error F
> @@ -2473,6 +2474,7 @@ GLIBC_2.34 __wait3_time64 F
> GLIBC_2.34 __wait4_time64 F
> GLIBC_2.34 _pthread_cleanup_pop F
> GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> index 6ac4f0597e..0114c42067 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.1 aio_error F
> GLIBC_2.1 aio_error64 F
> GLIBC_2.1 aio_fsync F
> GLIBC_2.1 aio_fsync64 F
> -GLIBC_2.1 aio_init F
> GLIBC_2.1 aio_read F
> GLIBC_2.1 aio_read64 F
> GLIBC_2.1 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index 66c01bd7e7..4b336dcbae 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -570,6 +570,7 @@ GLIBC_2.2 addseverity F
> GLIBC_2.2 adjtime F
> GLIBC_2.2 adjtimex F
> GLIBC_2.2 advance F
> +GLIBC_2.2 aio_init F
> GLIBC_2.2 alarm F
> GLIBC_2.2 alphasort F
> GLIBC_2.2 alphasort64 F
> @@ -2282,6 +2283,7 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
> GLIBC_2.34 __pthread_unwind_next F
> GLIBC_2.34 _pthread_cleanup_pop F
> GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> index 80735b140b..97673a21d4 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.2 aio_error F
> GLIBC_2.2 aio_error64 F
> GLIBC_2.2 aio_fsync F
> GLIBC_2.2 aio_fsync64 F
> -GLIBC_2.2 aio_init F
> GLIBC_2.2 aio_read F
> GLIBC_2.2 aio_read64 F
> GLIBC_2.2 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index c40eb412c2..702fc7cd1c 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -7,6 +7,7 @@ GLIBC_2.0 dlclose F
> GLIBC_2.0 dlerror F
> GLIBC_2.0 dlopen F
> GLIBC_2.0 dlsym F
> +GLIBC_2.1 aio_init F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.10 __cxa_at_quick_exit F
> @@ -2328,6 +2329,7 @@ GLIBC_2.34 __wait3_time64 F
> GLIBC_2.34 __wait4_time64 F
> GLIBC_2.34 _pthread_cleanup_pop F
> GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> index 6ac4f0597e..0114c42067 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.1 aio_error F
> GLIBC_2.1 aio_error64 F
> GLIBC_2.1 aio_fsync F
> GLIBC_2.1 aio_fsync64 F
> -GLIBC_2.1 aio_init F
> GLIBC_2.1 aio_read F
> GLIBC_2.1 aio_read64 F
> GLIBC_2.1 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index 1412d33835..cca5fe2265 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -7,6 +7,7 @@ GLIBC_2.0 dlclose F
> GLIBC_2.0 dlerror F
> GLIBC_2.0 dlopen F
> GLIBC_2.0 dlsym F
> +GLIBC_2.1 aio_init F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.10 __cxa_at_quick_exit F
> @@ -2325,6 +2326,7 @@ GLIBC_2.34 __wait3_time64 F
> GLIBC_2.34 __wait4_time64 F
> GLIBC_2.34 _pthread_cleanup_pop F
> GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> index 6ac4f0597e..0114c42067 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.1 aio_error F
> GLIBC_2.1 aio_error64 F
> GLIBC_2.1 aio_fsync F
> GLIBC_2.1 aio_fsync64 F
> -GLIBC_2.1 aio_init F
> GLIBC_2.1 aio_read F
> GLIBC_2.1 aio_read64 F
> GLIBC_2.1 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index 7b55d34753..937efaaba4 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -1474,6 +1474,7 @@ GLIBC_2.1 _sys_errlist D 0x1fc
> GLIBC_2.1 _sys_nerr D 0x4
> GLIBC_2.1 _sys_siglist D 0x100
> GLIBC_2.1 addseverity F
> +GLIBC_2.1 aio_init F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> GLIBC_2.1 argp_error F
> @@ -2466,6 +2467,7 @@ GLIBC_2.34 __wait3_time64 F
> GLIBC_2.34 __wait4_time64 F
> GLIBC_2.34 _pthread_cleanup_pop F
> GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> index 100bd4fb76..e4e4569d81 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.1 aio_error F
> GLIBC_2.1 aio_error64 F
> GLIBC_2.1 aio_fsync F
> GLIBC_2.1 aio_fsync64 F
> -GLIBC_2.1 aio_init F
> GLIBC_2.1 aio_read F
> GLIBC_2.1 aio_read64 F
> GLIBC_2.1 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index cfd5f38864..47f96b1480 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -7,6 +7,7 @@ GLIBC_2.0 dlclose F
> GLIBC_2.0 dlerror F
> GLIBC_2.0 dlopen F
> GLIBC_2.0 dlsym F
> +GLIBC_2.1 aio_init F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.10 __cxa_at_quick_exit F
> @@ -2302,6 +2303,7 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
> GLIBC_2.34 __pthread_unwind_next F
> GLIBC_2.34 _pthread_cleanup_pop F
> GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> index c4985067f7..94f5ca8b6f 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.1 aio_error F
> GLIBC_2.1 aio_error64 F
> GLIBC_2.1 aio_fsync F
> GLIBC_2.1 aio_fsync64 F
> -GLIBC_2.1 aio_init F
> GLIBC_2.1 aio_read F
> GLIBC_2.1 aio_read64 F
> GLIBC_2.1 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index 17be05f14f..4ff62311e9 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -559,6 +559,7 @@ GLIBC_2.2.5 addseverity F
> GLIBC_2.2.5 adjtime F
> GLIBC_2.2.5 adjtimex F
> GLIBC_2.2.5 advance F
> +GLIBC_2.2.5 aio_init F
> GLIBC_2.2.5 alarm F
> GLIBC_2.2.5 alphasort F
> GLIBC_2.2.5 alphasort64 F
> @@ -2260,6 +2261,7 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
> GLIBC_2.34 __pthread_unwind_next F
> GLIBC_2.34 _pthread_cleanup_pop F
> GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> index a3da4f8e6e..bac8c74b5f 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.2.5 aio_error F
> GLIBC_2.2.5 aio_error64 F
> GLIBC_2.2.5 aio_fsync F
> GLIBC_2.2.5 aio_fsync64 F
> -GLIBC_2.2.5 aio_init F
> GLIBC_2.2.5 aio_read F
> GLIBC_2.2.5 aio_read64 F
> GLIBC_2.2.5 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index a9db18906b..e34873201d 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -592,6 +592,7 @@ GLIBC_2.16 addseverity F
> GLIBC_2.16 adjtime F
> GLIBC_2.16 adjtimex F
> GLIBC_2.16 advance F
> +GLIBC_2.16 aio_init F
> GLIBC_2.16 alarm F
> GLIBC_2.16 aligned_alloc F
> GLIBC_2.16 alphasort F
> @@ -2363,6 +2364,7 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
> GLIBC_2.34 __pthread_unwind_next F
> GLIBC_2.34 _pthread_cleanup_pop F
> GLIBC_2.34 _pthread_cleanup_push F
> +GLIBC_2.34 aio_init F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> index a0069d137b..2e432fe7d6 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> @@ -5,7 +5,6 @@ GLIBC_2.16 aio_error F
> GLIBC_2.16 aio_error64 F
> GLIBC_2.16 aio_fsync F
> GLIBC_2.16 aio_fsync64 F
> -GLIBC_2.16 aio_init F
> GLIBC_2.16 aio_read F
> GLIBC_2.16 aio_read64 F
> GLIBC_2.16 aio_return F
>
Ok.
^ permalink raw reply [flat|nested] 72+ messages in thread
* [PATCH 11/34] Linux: Move aio_cancel, aio_cancel64 into libc
2021-06-17 18:56 [PATCH v2 00/34] Move librt into libc Florian Weimer
` (9 preceding siblings ...)
2021-06-17 18:57 ` [PATCH 10/34] Linux: Move aio_init from librt into libc Florian Weimer
@ 2021-06-17 18:57 ` Florian Weimer
2021-06-23 17:26 ` Adhemerval Zanella
2021-06-17 18:57 ` [PATCH 12/34] Linux: Move aio_error, aio_error64 " Florian Weimer
` (23 subsequent siblings)
34 siblings, 1 reply; 72+ messages in thread
From: Florian Weimer @ 2021-06-17 18:57 UTC (permalink / raw)
To: libc-alpha
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
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
--
2.31.1
^ permalink raw reply [flat|nested] 72+ messages in thread
* Re: [PATCH 11/34] Linux: Move aio_cancel, aio_cancel64 into libc
2021-06-17 18:57 ` [PATCH 11/34] Linux: Move aio_cancel, aio_cancel64 " Florian Weimer
@ 2021-06-23 17:26 ` Adhemerval Zanella
0 siblings, 0 replies; 72+ messages in thread
From: Adhemerval Zanella @ 2021-06-23 17:26 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
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.
^ permalink raw reply [flat|nested] 72+ messages in thread
* [PATCH 12/34] Linux: Move aio_error, aio_error64 into libc
2021-06-17 18:56 [PATCH v2 00/34] Move librt into libc Florian Weimer
` (10 preceding siblings ...)
2021-06-17 18:57 ` [PATCH 11/34] Linux: Move aio_cancel, aio_cancel64 " Florian Weimer
@ 2021-06-17 18:57 ` Florian Weimer
2021-06-23 17:43 ` Adhemerval Zanella
2021-06-17 18:57 ` [PATCH 13/34] Linux: Move aio_fsync, aio_fsync64 " Florian Weimer
` (22 subsequent siblings)
34 siblings, 1 reply; 72+ messages in thread
From: Florian Weimer @ 2021-06-17 18:57 UTC (permalink / raw)
To: libc-alpha
The symbols were moved using scripts/move-symbol-to-libc.py.
---
rt/Makefile | 2 +-
rt/Versions | 6 +++++-
rt/aio_error.c | 21 ++++++++++++++-----
sysdeps/unix/sysv/linux/aarch64/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/aarch64/librt.abilist | 2 --
sysdeps/unix/sysv/linux/alpha/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/alpha/librt.abilist | 2 --
sysdeps/unix/sysv/linux/arc/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/arc/librt.abilist | 2 --
sysdeps/unix/sysv/linux/arm/be/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/arm/be/librt.abilist | 2 --
sysdeps/unix/sysv/linux/arm/le/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/arm/le/librt.abilist | 2 --
sysdeps/unix/sysv/linux/csky/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/csky/librt.abilist | 2 --
sysdeps/unix/sysv/linux/hppa/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/hppa/librt.abilist | 2 --
sysdeps/unix/sysv/linux/i386/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/i386/librt.abilist | 2 --
sysdeps/unix/sysv/linux/ia64/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/ia64/librt.abilist | 2 --
.../sysv/linux/m68k/coldfire/libc.abilist | 4 ++++
.../sysv/linux/m68k/coldfire/librt.abilist | 2 --
.../unix/sysv/linux/m68k/m680x0/libc.abilist | 4 ++++
.../unix/sysv/linux/m68k/m680x0/librt.abilist | 2 --
.../sysv/linux/microblaze/be/libc.abilist | 4 ++++
.../sysv/linux/microblaze/be/librt.abilist | 2 --
.../sysv/linux/microblaze/le/libc.abilist | 4 ++++
.../sysv/linux/microblaze/le/librt.abilist | 2 --
.../sysv/linux/mips/mips32/fpu/libc.abilist | 4 ++++
.../unix/sysv/linux/mips/mips32/librt.abilist | 2 --
.../sysv/linux/mips/mips32/nofpu/libc.abilist | 4 ++++
.../sysv/linux/mips/mips64/n32/libc.abilist | 4 ++++
.../sysv/linux/mips/mips64/n32/librt.abilist | 2 --
.../sysv/linux/mips/mips64/n64/libc.abilist | 4 ++++
.../sysv/linux/mips/mips64/n64/librt.abilist | 2 --
sysdeps/unix/sysv/linux/nios2/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/nios2/librt.abilist | 2 --
.../linux/powerpc/powerpc32/fpu/libc.abilist | 4 ++++
.../linux/powerpc/powerpc32/librt.abilist | 2 --
.../powerpc/powerpc32/nofpu/libc.abilist | 4 ++++
.../linux/powerpc/powerpc64/be/libc.abilist | 4 ++++
.../linux/powerpc/powerpc64/be/librt.abilist | 2 --
.../linux/powerpc/powerpc64/le/libc.abilist | 4 ++++
.../linux/powerpc/powerpc64/le/librt.abilist | 2 --
.../unix/sysv/linux/riscv/rv32/libc.abilist | 4 ++++
.../unix/sysv/linux/riscv/rv32/librt.abilist | 2 --
.../unix/sysv/linux/riscv/rv64/libc.abilist | 4 ++++
.../unix/sysv/linux/riscv/rv64/librt.abilist | 2 --
.../unix/sysv/linux/s390/s390-32/libc.abilist | 4 ++++
.../sysv/linux/s390/s390-32/librt.abilist | 2 --
.../unix/sysv/linux/s390/s390-64/libc.abilist | 4 ++++
.../sysv/linux/s390/s390-64/librt.abilist | 2 --
sysdeps/unix/sysv/linux/sh/be/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/sh/be/librt.abilist | 2 --
sysdeps/unix/sysv/linux/sh/le/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/sh/le/librt.abilist | 2 --
.../sysv/linux/sparc/sparc32/libc.abilist | 4 ++++
.../sysv/linux/sparc/sparc32/librt.abilist | 2 --
.../sysv/linux/sparc/sparc64/libc.abilist | 4 ++++
.../sysv/linux/sparc/sparc64/librt.abilist | 2 --
.../unix/sysv/linux/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 --
65 files changed, 150 insertions(+), 67 deletions(-)
diff --git a/rt/Makefile b/rt/Makefile
index 5534b4c9b3..1b36886dd6 100644
--- a/rt/Makefile
+++ b/rt/Makefile
@@ -29,7 +29,6 @@ routines = \
shm_unlink \
librt-routines = \
- aio_error \
aio_fsync \
aio_read \
aio_read64 \
@@ -60,6 +59,7 @@ librt-shared-only-routines = librt-compat
$(librt-routines-var) += \
aio_cancel \
+ aio_error \
aio_misc \
aio_notify \
aio_sigqueue \
diff --git a/rt/Versions b/rt/Versions
index 402a1188e7..aae1d3c47d 100644
--- a/rt/Versions
+++ b/rt/Versions
@@ -4,6 +4,8 @@ libc {
aio_init;
aio_cancel;
aio_cancel64;
+ aio_error;
+ aio_error64;
%endif
}
GLIBC_2.2 {
@@ -15,6 +17,8 @@ libc {
aio_cancel;
aio_cancel64;
aio_init;
+ aio_error;
+ aio_error64;
%endif
shm_open;
shm_unlink;
@@ -38,9 +42,9 @@ librt {
%if !PTHREAD_IN_LIBC
aio_cancel;
aio_cancel64;
-%endif
aio_error;
aio_error64;
+%endif
aio_fsync;
aio_fsync64;
%if !PTHREAD_IN_LIBC
diff --git a/rt/aio_error.c b/rt/aio_error.c
index ed664ae0ef..ae5a1f8cc5 100644
--- a/rt/aio_error.c
+++ b/rt/aio_error.c
@@ -29,20 +29,31 @@
#undef aio_error64
#include <aio_misc.h>
-
+#include <pthreadP.h>
+#include <shlib-compat.h>
int
-aio_error (const struct aiocb *aiocbp)
+__aio_error (const struct aiocb *aiocbp)
{
int ret;
/* Acquire the mutex to make sure all operations for this request are
complete. */
- pthread_mutex_lock(&__aio_requests_mutex);
+ __pthread_mutex_lock(&__aio_requests_mutex);
ret = aiocbp->__error_code;
- pthread_mutex_unlock(&__aio_requests_mutex);
+ __pthread_mutex_unlock(&__aio_requests_mutex);
return ret;
}
-weak_alias (aio_error, aio_error64)
+#if PTHREAD_IN_LIBC
+versioned_symbol (libc, __aio_error, aio_error, GLIBC_2_34);
+versioned_symbol (libc, __aio_error, aio_error64, GLIBC_2_34);
+# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_34)
+compat_symbol (librt, __aio_error, aio_error, GLIBC_2_1);
+compat_symbol (librt, __aio_error, aio_error64, GLIBC_2_1);
+# endif
+#else /* !PTHREAD_IN_LIBC */
+strong_alias (__aio_error, aio_error)
+weak_alias (__aio_error, aio_error64)
+#endif /* !PTHREAD_IN_LIBC */
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index b0ead487fe..e19168ddc5 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -591,6 +591,8 @@ 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_error F
+GLIBC_2.17 aio_error64 F
GLIBC_2.17 aio_init F
GLIBC_2.17 alarm F
GLIBC_2.17 aligned_alloc F
@@ -2353,6 +2355,8 @@ 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_error F
+GLIBC_2.34 aio_error64 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 0f3a79e3a4..39e753fdde 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_error F
-GLIBC_2.17 aio_error64 F
GLIBC_2.17 aio_fsync F
GLIBC_2.17 aio_fsync64 F
GLIBC_2.17 aio_read F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 0d621c3185..4efbbef2dc 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -1504,6 +1504,8 @@ 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_error F
+GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
@@ -2448,6 +2450,8 @@ 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_error F
+GLIBC_2.34 aio_error64 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.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
index c7e49f9a98..09ba914d65 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_error F
-GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_read F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index ce4d40c70f..60fec8ba00 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -552,6 +552,8 @@ 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_error F
+GLIBC_2.32 aio_error64 F
GLIBC_2.32 aio_init F
GLIBC_2.32 alarm F
GLIBC_2.32 aligned_alloc F
@@ -2112,6 +2114,8 @@ 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_error F
+GLIBC_2.34 aio_error64 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 ca2aac8d45..678bd29799 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_error F
-GLIBC_2.32 aio_error64 F
GLIBC_2.32 aio_fsync F
GLIBC_2.32 aio_fsync64 F
GLIBC_2.32 aio_read F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 85526095ec..1810ff85ca 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -280,6 +280,8 @@ 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_error F
+GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
@@ -986,6 +988,8 @@ 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_error F
+GLIBC_2.4 aio_error64 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 f13a5f43f2..07178bcea0 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_error F
-GLIBC_2.4 aio_error64 F
GLIBC_2.4 aio_fsync F
GLIBC_2.4 aio_fsync64 F
GLIBC_2.4 aio_read F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index d721446d49..5f6c562a90 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -277,6 +277,8 @@ 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_error F
+GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
@@ -983,6 +985,8 @@ 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_error F
+GLIBC_2.4 aio_error64 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 f13a5f43f2..07178bcea0 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_error F
-GLIBC_2.4 aio_error64 F
GLIBC_2.4 aio_fsync F
GLIBC_2.4 aio_fsync64 F
GLIBC_2.4 aio_read F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 912b71d360..b8e78b1016 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -566,6 +566,8 @@ 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_error F
+GLIBC_2.29 aio_error64 F
GLIBC_2.29 aio_init F
GLIBC_2.29 alarm F
GLIBC_2.29 aligned_alloc F
@@ -2372,6 +2374,8 @@ 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_error F
+GLIBC_2.34 aio_error64 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 3834cf1838..e39a91e633 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_error F
-GLIBC_2.29 aio_error64 F
GLIBC_2.29 aio_fsync F
GLIBC_2.29 aio_fsync64 F
GLIBC_2.29 aio_read F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index b1392524cd..34516ba43e 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -5,6 +5,8 @@ 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_error F
+GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
@@ -2326,6 +2328,8 @@ 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_error F
+GLIBC_2.34 aio_error64 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 172d23f5c9..07dbd9a87b 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_error F
-GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_read F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 89c0531bff..f4035eed4a 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -1477,6 +1477,8 @@ 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_error F
+GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
@@ -2510,6 +2512,8 @@ 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_error F
+GLIBC_2.34 aio_error64 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 172d23f5c9..07dbd9a87b 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_error F
-GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_read F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 69454c38aa..3f6a281098 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -5,6 +5,8 @@ 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_error F
+GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
@@ -2286,6 +2288,8 @@ 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_error F
+GLIBC_2.34 aio_error64 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 cfe45b0383..68b34cf0f6 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_error F
-GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_read F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index aab8d3a3dc..3c017951e3 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -281,6 +281,8 @@ 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_error F
+GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
@@ -974,6 +976,8 @@ 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_error F
+GLIBC_2.4 aio_error64 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 f13a5f43f2..07178bcea0 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_error F
-GLIBC_2.4 aio_error64 F
GLIBC_2.4 aio_fsync F
GLIBC_2.4 aio_fsync64 F
GLIBC_2.4 aio_read F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 8308c4e15b..6922e2ae69 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -1475,6 +1475,8 @@ 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_error F
+GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
@@ -2453,6 +2455,8 @@ 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_error F
+GLIBC_2.34 aio_error64 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 172d23f5c9..07dbd9a87b 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_error F
-GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_read F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index ed3bbb44ac..315c73587e 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -593,6 +593,8 @@ 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_error F
+GLIBC_2.18 aio_error64 F
GLIBC_2.18 aio_init F
GLIBC_2.18 alarm F
GLIBC_2.18 aligned_alloc F
@@ -2423,6 +2425,8 @@ 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_error F
+GLIBC_2.34 aio_error64 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 276c6eab44..e9e0c0a91f 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_error F
-GLIBC_2.18 aio_error64 F
GLIBC_2.18 aio_fsync F
GLIBC_2.18 aio_fsync64 F
GLIBC_2.18 aio_read F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 909b471383..ce2a4eca6d 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -593,6 +593,8 @@ 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_error F
+GLIBC_2.18 aio_error64 F
GLIBC_2.18 aio_init F
GLIBC_2.18 alarm F
GLIBC_2.18 aligned_alloc F
@@ -2420,6 +2422,8 @@ 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_error F
+GLIBC_2.34 aio_error64 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 276c6eab44..e9e0c0a91f 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_error F
-GLIBC_2.18 aio_error64 F
GLIBC_2.18 aio_fsync F
GLIBC_2.18 aio_fsync64 F
GLIBC_2.18 aio_read F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index c5569a40ad..83ea40ad7f 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -1653,6 +1653,8 @@ 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_error F
+GLIBC_2.2 aio_error64 F
GLIBC_2.2 aio_init F
GLIBC_2.2 alphasort64 F
GLIBC_2.2 argp_err_exit_status D 0x4
@@ -2418,6 +2420,8 @@ 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_error F
+GLIBC_2.34 aio_error64 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 d8544013dd..f84f4e8cf2 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_error F
-GLIBC_2.2 aio_error64 F
GLIBC_2.2 aio_fsync F
GLIBC_2.2 aio_fsync64 F
GLIBC_2.2 aio_read F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 56163ef271..e3a34b81a5 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -1651,6 +1651,8 @@ 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_error F
+GLIBC_2.2 aio_error64 F
GLIBC_2.2 aio_init F
GLIBC_2.2 alphasort64 F
GLIBC_2.2 argp_err_exit_status D 0x4
@@ -2416,6 +2418,8 @@ 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_error F
+GLIBC_2.34 aio_error64 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 da4a1dc99e..a60151e94c 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -1652,6 +1652,8 @@ 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_error F
+GLIBC_2.2 aio_error64 F
GLIBC_2.2 aio_init F
GLIBC_2.2 alphasort64 F
GLIBC_2.2 argp_err_exit_status D 0x4
@@ -2424,6 +2426,8 @@ 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_error F
+GLIBC_2.34 aio_error64 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 d8544013dd..f84f4e8cf2 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_error F
-GLIBC_2.2 aio_error64 F
GLIBC_2.2 aio_fsync F
GLIBC_2.2 aio_fsync64 F
GLIBC_2.2 aio_read F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 1843d27812..d9d5dfc258 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -1648,6 +1648,8 @@ 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_error F
+GLIBC_2.2 aio_error64 F
GLIBC_2.2 aio_init F
GLIBC_2.2 alphasort64 F
GLIBC_2.2 argp_err_exit_status D 0x4
@@ -2342,6 +2344,8 @@ GLIBC_2.34 _pthread_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_error F
+GLIBC_2.34 aio_error64 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 c9e82563c1..fbd1bb1039 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_error F
-GLIBC_2.2 aio_error64 F
GLIBC_2.2 aio_fsync F
GLIBC_2.2 aio_fsync64 F
GLIBC_2.2 aio_read F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index c0f6dcf1e3..11b8d3d035 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -635,6 +635,8 @@ 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_error F
+GLIBC_2.21 aio_error64 F
GLIBC_2.21 aio_init F
GLIBC_2.21 alarm F
GLIBC_2.21 aligned_alloc F
@@ -2462,6 +2464,8 @@ 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_error F
+GLIBC_2.34 aio_error64 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 1edad5b4cb..5da84ad590 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_error F
-GLIBC_2.21 aio_error64 F
GLIBC_2.21 aio_fsync F
GLIBC_2.21 aio_fsync64 F
GLIBC_2.21 aio_read F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 130ab63a59..53bfeff0c8 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -1482,6 +1482,8 @@ 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_error F
+GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
@@ -2480,6 +2482,8 @@ 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_error F
+GLIBC_2.34 aio_error64 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 172d23f5c9..07dbd9a87b 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_error F
-GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_read F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 1b83ce1f6e..354a8c5e1e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -1482,6 +1482,8 @@ 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_error F
+GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
@@ -2513,6 +2515,8 @@ 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_error F
+GLIBC_2.34 aio_error64 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 a24bd98fbe..3c82273e63 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -635,6 +635,8 @@ 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_error F
+GLIBC_2.3 aio_error64 F
GLIBC_2.3 aio_init F
GLIBC_2.3 alarm F
GLIBC_2.3 alphasort F
@@ -2250,6 +2252,8 @@ 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_error F
+GLIBC_2.34 aio_error64 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 1943e645ed..66926097e0 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_error F
-GLIBC_2.3 aio_error64 F
GLIBC_2.3 aio_fsync F
GLIBC_2.3 aio_fsync64 F
GLIBC_2.3 aio_read F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index bd0b3dd94f..0d9d8ed602 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -679,6 +679,8 @@ 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_error F
+GLIBC_2.17 aio_error64 F
GLIBC_2.17 aio_init F
GLIBC_2.17 alarm F
GLIBC_2.17 aligned_alloc F
@@ -2549,6 +2551,8 @@ 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_error F
+GLIBC_2.34 aio_error64 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 0f3a79e3a4..39e753fdde 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_error F
-GLIBC_2.17 aio_error64 F
GLIBC_2.17 aio_fsync F
GLIBC_2.17 aio_fsync64 F
GLIBC_2.17 aio_read F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index b1d1dac1b6..4ff01efcca 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -546,6 +546,8 @@ 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_error F
+GLIBC_2.33 aio_error64 F
GLIBC_2.33 aio_init F
GLIBC_2.33 alarm F
GLIBC_2.33 aligned_alloc F
@@ -2114,6 +2116,8 @@ 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_error F
+GLIBC_2.34 aio_error64 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 3a0bb5db43..be604bb966 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_error F
-GLIBC_2.33 aio_error64 F
GLIBC_2.33 aio_fsync F
GLIBC_2.33 aio_fsync64 F
GLIBC_2.33 aio_read F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 2acb65c58c..cdcc2fe800 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -572,6 +572,8 @@ 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_error F
+GLIBC_2.27 aio_error64 F
GLIBC_2.27 aio_init F
GLIBC_2.27 alarm F
GLIBC_2.27 aligned_alloc F
@@ -2314,6 +2316,8 @@ 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_error F
+GLIBC_2.34 aio_error64 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 7f78e1b461..541ef4aa42 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_error F
-GLIBC_2.27 aio_error64 F
GLIBC_2.27 aio_fsync F
GLIBC_2.27 aio_fsync64 F
GLIBC_2.27 aio_read F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 36b5ff2685..3372cb7340 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -1474,6 +1474,8 @@ 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_error F
+GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
@@ -2478,6 +2480,8 @@ 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_error F
+GLIBC_2.34 aio_error64 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 172d23f5c9..07dbd9a87b 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_error F
-GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_read F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index ed2a90f013..a7e74a0d44 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -572,6 +572,8 @@ 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_error F
+GLIBC_2.2 aio_error64 F
GLIBC_2.2 aio_init F
GLIBC_2.2 alarm F
GLIBC_2.2 alphasort F
@@ -2287,6 +2289,8 @@ 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_error F
+GLIBC_2.34 aio_error64 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 7948f84cec..40a823f6de 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_error F
-GLIBC_2.2 aio_error64 F
GLIBC_2.2 aio_fsync F
GLIBC_2.2 aio_fsync64 F
GLIBC_2.2 aio_read F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index b8eb5d98d7..c856450c1f 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -9,6 +9,8 @@ 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_error F
+GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
@@ -2333,6 +2335,8 @@ 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_error F
+GLIBC_2.34 aio_error64 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 172d23f5c9..07dbd9a87b 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_error F
-GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_read F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 5f4efe2398..459119e6de 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -9,6 +9,8 @@ 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_error F
+GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
@@ -2330,6 +2332,8 @@ 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_error F
+GLIBC_2.34 aio_error64 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 172d23f5c9..07dbd9a87b 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_error F
-GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_read F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 82439ec5c4..c78e328a0f 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -1476,6 +1476,8 @@ 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_error F
+GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
@@ -2473,6 +2475,8 @@ 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_error F
+GLIBC_2.34 aio_error64 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 61cc93c180..e6990a5c82 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_error F
-GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_read F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 8868399fce..3b4ef5f093 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -9,6 +9,8 @@ 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_error F
+GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
@@ -2309,6 +2311,8 @@ 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_error F
+GLIBC_2.34 aio_error64 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 c7e49f9a98..09ba914d65 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_error F
-GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_read F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 9ee8856769..1d6e7030fc 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -561,6 +561,8 @@ 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_error F
+GLIBC_2.2.5 aio_error64 F
GLIBC_2.2.5 aio_init F
GLIBC_2.2.5 alarm F
GLIBC_2.2.5 alphasort F
@@ -2265,6 +2267,8 @@ 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_error F
+GLIBC_2.34 aio_error64 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 1853412bcc..ef23d67e9d 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_error F
-GLIBC_2.2.5 aio_error64 F
GLIBC_2.2.5 aio_fsync F
GLIBC_2.2.5 aio_fsync64 F
GLIBC_2.2.5 aio_read F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index beac8c71ba..1480d7ada7 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -594,6 +594,8 @@ 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_error F
+GLIBC_2.16 aio_error64 F
GLIBC_2.16 aio_init F
GLIBC_2.16 alarm F
GLIBC_2.16 aligned_alloc F
@@ -2368,6 +2370,8 @@ 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_error F
+GLIBC_2.34 aio_error64 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 310b1bf338..629dd4fd75 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_error F
-GLIBC_2.16 aio_error64 F
GLIBC_2.16 aio_fsync F
GLIBC_2.16 aio_fsync64 F
GLIBC_2.16 aio_read F
--
2.31.1
^ permalink raw reply [flat|nested] 72+ messages in thread
* Re: [PATCH 12/34] Linux: Move aio_error, aio_error64 into libc
2021-06-17 18:57 ` [PATCH 12/34] Linux: Move aio_error, aio_error64 " Florian Weimer
@ 2021-06-23 17:43 ` Adhemerval Zanella
0 siblings, 0 replies; 72+ messages in thread
From: Adhemerval Zanella @ 2021-06-23 17:43 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 17/06/2021 15:57, Florian Weimer via Libc-alpha wrote:
> The symbols were moved using scripts/move-symbol-to-libc.py.
LGTM, thanks. Just a small nit below.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> ---
> rt/Makefile | 2 +-
> rt/Versions | 6 +++++-
> rt/aio_error.c | 21 ++++++++++++++-----
> sysdeps/unix/sysv/linux/aarch64/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/aarch64/librt.abilist | 2 --
> sysdeps/unix/sysv/linux/alpha/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/alpha/librt.abilist | 2 --
> sysdeps/unix/sysv/linux/arc/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/arc/librt.abilist | 2 --
> sysdeps/unix/sysv/linux/arm/be/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/arm/be/librt.abilist | 2 --
> sysdeps/unix/sysv/linux/arm/le/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/arm/le/librt.abilist | 2 --
> sysdeps/unix/sysv/linux/csky/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/csky/librt.abilist | 2 --
> sysdeps/unix/sysv/linux/hppa/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/hppa/librt.abilist | 2 --
> sysdeps/unix/sysv/linux/i386/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/i386/librt.abilist | 2 --
> sysdeps/unix/sysv/linux/ia64/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/ia64/librt.abilist | 2 --
> .../sysv/linux/m68k/coldfire/libc.abilist | 4 ++++
> .../sysv/linux/m68k/coldfire/librt.abilist | 2 --
> .../unix/sysv/linux/m68k/m680x0/libc.abilist | 4 ++++
> .../unix/sysv/linux/m68k/m680x0/librt.abilist | 2 --
> .../sysv/linux/microblaze/be/libc.abilist | 4 ++++
> .../sysv/linux/microblaze/be/librt.abilist | 2 --
> .../sysv/linux/microblaze/le/libc.abilist | 4 ++++
> .../sysv/linux/microblaze/le/librt.abilist | 2 --
> .../sysv/linux/mips/mips32/fpu/libc.abilist | 4 ++++
> .../unix/sysv/linux/mips/mips32/librt.abilist | 2 --
> .../sysv/linux/mips/mips32/nofpu/libc.abilist | 4 ++++
> .../sysv/linux/mips/mips64/n32/libc.abilist | 4 ++++
> .../sysv/linux/mips/mips64/n32/librt.abilist | 2 --
> .../sysv/linux/mips/mips64/n64/libc.abilist | 4 ++++
> .../sysv/linux/mips/mips64/n64/librt.abilist | 2 --
> sysdeps/unix/sysv/linux/nios2/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/nios2/librt.abilist | 2 --
> .../linux/powerpc/powerpc32/fpu/libc.abilist | 4 ++++
> .../linux/powerpc/powerpc32/librt.abilist | 2 --
> .../powerpc/powerpc32/nofpu/libc.abilist | 4 ++++
> .../linux/powerpc/powerpc64/be/libc.abilist | 4 ++++
> .../linux/powerpc/powerpc64/be/librt.abilist | 2 --
> .../linux/powerpc/powerpc64/le/libc.abilist | 4 ++++
> .../linux/powerpc/powerpc64/le/librt.abilist | 2 --
> .../unix/sysv/linux/riscv/rv32/libc.abilist | 4 ++++
> .../unix/sysv/linux/riscv/rv32/librt.abilist | 2 --
> .../unix/sysv/linux/riscv/rv64/libc.abilist | 4 ++++
> .../unix/sysv/linux/riscv/rv64/librt.abilist | 2 --
> .../unix/sysv/linux/s390/s390-32/libc.abilist | 4 ++++
> .../sysv/linux/s390/s390-32/librt.abilist | 2 --
> .../unix/sysv/linux/s390/s390-64/libc.abilist | 4 ++++
> .../sysv/linux/s390/s390-64/librt.abilist | 2 --
> sysdeps/unix/sysv/linux/sh/be/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/sh/be/librt.abilist | 2 --
> sysdeps/unix/sysv/linux/sh/le/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/sh/le/librt.abilist | 2 --
> .../sysv/linux/sparc/sparc32/libc.abilist | 4 ++++
> .../sysv/linux/sparc/sparc32/librt.abilist | 2 --
> .../sysv/linux/sparc/sparc64/libc.abilist | 4 ++++
> .../sysv/linux/sparc/sparc64/librt.abilist | 2 --
> .../unix/sysv/linux/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 --
> 65 files changed, 150 insertions(+), 67 deletions(-)
>
> diff --git a/rt/Makefile b/rt/Makefile
> index 5534b4c9b3..1b36886dd6 100644
> --- a/rt/Makefile
> +++ b/rt/Makefile
> @@ -29,7 +29,6 @@ routines = \
> shm_unlink \
>
> librt-routines = \
> - aio_error \
> aio_fsync \
> aio_read \
> aio_read64 \
> @@ -60,6 +59,7 @@ librt-shared-only-routines = librt-compat
>
> $(librt-routines-var) += \
> aio_cancel \
> + aio_error \
> aio_misc \
> aio_notify \
> aio_sigqueue \
Ok
> diff --git a/rt/Versions b/rt/Versions
> index 402a1188e7..aae1d3c47d 100644
> --- a/rt/Versions
> +++ b/rt/Versions
> @@ -4,6 +4,8 @@ libc {
> aio_init;
> aio_cancel;
> aio_cancel64;
> + aio_error;
> + aio_error64;
> %endif
> }
> GLIBC_2.2 {
> @@ -15,6 +17,8 @@ libc {
> aio_cancel;
> aio_cancel64;
> aio_init;
> + aio_error;
> + aio_error64;
> %endif
> shm_open;
> shm_unlink;
> @@ -38,9 +42,9 @@ librt {
> %if !PTHREAD_IN_LIBC
> aio_cancel;
> aio_cancel64;
> -%endif
> aio_error;
> aio_error64;
> +%endif
> aio_fsync;
> aio_fsync64;
> %if !PTHREAD_IN_LIBC
Ok
> diff --git a/rt/aio_error.c b/rt/aio_error.c
> index ed664ae0ef..ae5a1f8cc5 100644
> --- a/rt/aio_error.c
> +++ b/rt/aio_error.c
> @@ -29,20 +29,31 @@
> #undef aio_error64
>
> #include <aio_misc.h>
> -
> +#include <pthreadP.h>
> +#include <shlib-compat.h>
>
> int
> -aio_error (const struct aiocb *aiocbp)
> +__aio_error (const struct aiocb *aiocbp)
> {
> int ret;
>
> /* Acquire the mutex to make sure all operations for this request are
> complete. */
> - pthread_mutex_lock(&__aio_requests_mutex);
> + __pthread_mutex_lock(&__aio_requests_mutex);
> ret = aiocbp->__error_code;
> - pthread_mutex_unlock(&__aio_requests_mutex);
> + __pthread_mutex_unlock(&__aio_requests_mutex);
>
> return ret;
> }
>
Space before '('.
> -weak_alias (aio_error, aio_error64)
> +#if PTHREAD_IN_LIBC
> +versioned_symbol (libc, __aio_error, aio_error, GLIBC_2_34);
> +versioned_symbol (libc, __aio_error, aio_error64, GLIBC_2_34);
> +# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_34)
> +compat_symbol (librt, __aio_error, aio_error, GLIBC_2_1);
> +compat_symbol (librt, __aio_error, aio_error64, GLIBC_2_1);
> +# endif
> +#else /* !PTHREAD_IN_LIBC */
> +strong_alias (__aio_error, aio_error)
> +weak_alias (__aio_error, aio_error64)
> +#endif /* !PTHREAD_IN_LIBC */
Ok
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index b0ead487fe..e19168ddc5 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -591,6 +591,8 @@ 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_error F
> +GLIBC_2.17 aio_error64 F
> GLIBC_2.17 aio_init F
> GLIBC_2.17 alarm F
> GLIBC_2.17 aligned_alloc F
> @@ -2353,6 +2355,8 @@ 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_error F
> +GLIBC_2.34 aio_error64 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 0f3a79e3a4..39e753fdde 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_error F
> -GLIBC_2.17 aio_error64 F
> GLIBC_2.17 aio_fsync F
> GLIBC_2.17 aio_fsync64 F
> GLIBC_2.17 aio_read F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index 0d621c3185..4efbbef2dc 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -1504,6 +1504,8 @@ 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_error F
> +GLIBC_2.1 aio_error64 F
> GLIBC_2.1 aio_init F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> @@ -2448,6 +2450,8 @@ 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_error F
> +GLIBC_2.34 aio_error64 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.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
> index c7e49f9a98..09ba914d65 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_error F
> -GLIBC_2.1 aio_error64 F
> GLIBC_2.1 aio_fsync F
> GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_read F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index ce4d40c70f..60fec8ba00 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -552,6 +552,8 @@ 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_error F
> +GLIBC_2.32 aio_error64 F
> GLIBC_2.32 aio_init F
> GLIBC_2.32 alarm F
> GLIBC_2.32 aligned_alloc F
> @@ -2112,6 +2114,8 @@ 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_error F
> +GLIBC_2.34 aio_error64 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 ca2aac8d45..678bd29799 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_error F
> -GLIBC_2.32 aio_error64 F
> GLIBC_2.32 aio_fsync F
> GLIBC_2.32 aio_fsync64 F
> GLIBC_2.32 aio_read F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index 85526095ec..1810ff85ca 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -280,6 +280,8 @@ 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_error F
> +GLIBC_2.34 aio_error64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> @@ -986,6 +988,8 @@ 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_error F
> +GLIBC_2.4 aio_error64 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 f13a5f43f2..07178bcea0 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_error F
> -GLIBC_2.4 aio_error64 F
> GLIBC_2.4 aio_fsync F
> GLIBC_2.4 aio_fsync64 F
> GLIBC_2.4 aio_read F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index d721446d49..5f6c562a90 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -277,6 +277,8 @@ 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_error F
> +GLIBC_2.34 aio_error64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> @@ -983,6 +985,8 @@ 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_error F
> +GLIBC_2.4 aio_error64 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 f13a5f43f2..07178bcea0 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_error F
> -GLIBC_2.4 aio_error64 F
> GLIBC_2.4 aio_fsync F
> GLIBC_2.4 aio_fsync64 F
> GLIBC_2.4 aio_read F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index 912b71d360..b8e78b1016 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -566,6 +566,8 @@ 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_error F
> +GLIBC_2.29 aio_error64 F
> GLIBC_2.29 aio_init F
> GLIBC_2.29 alarm F
> GLIBC_2.29 aligned_alloc F
> @@ -2372,6 +2374,8 @@ 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_error F
> +GLIBC_2.34 aio_error64 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 3834cf1838..e39a91e633 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_error F
> -GLIBC_2.29 aio_error64 F
> GLIBC_2.29 aio_fsync F
> GLIBC_2.29 aio_fsync64 F
> GLIBC_2.29 aio_read F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index b1392524cd..34516ba43e 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -5,6 +5,8 @@ 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_error F
> +GLIBC_2.1 aio_error64 F
> GLIBC_2.1 aio_init F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> @@ -2326,6 +2328,8 @@ 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_error F
> +GLIBC_2.34 aio_error64 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 172d23f5c9..07dbd9a87b 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_error F
> -GLIBC_2.1 aio_error64 F
> GLIBC_2.1 aio_fsync F
> GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_read F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index 89c0531bff..f4035eed4a 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -1477,6 +1477,8 @@ 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_error F
> +GLIBC_2.1 aio_error64 F
> GLIBC_2.1 aio_init F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> @@ -2510,6 +2512,8 @@ 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_error F
> +GLIBC_2.34 aio_error64 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 172d23f5c9..07dbd9a87b 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_error F
> -GLIBC_2.1 aio_error64 F
> GLIBC_2.1 aio_fsync F
> GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_read F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index 69454c38aa..3f6a281098 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -5,6 +5,8 @@ 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_error F
> +GLIBC_2.1 aio_error64 F
> GLIBC_2.1 aio_init F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> @@ -2286,6 +2288,8 @@ 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_error F
> +GLIBC_2.34 aio_error64 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 cfe45b0383..68b34cf0f6 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_error F
> -GLIBC_2.1 aio_error64 F
> GLIBC_2.1 aio_fsync F
> GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_read F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index aab8d3a3dc..3c017951e3 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -281,6 +281,8 @@ 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_error F
> +GLIBC_2.34 aio_error64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> @@ -974,6 +976,8 @@ 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_error F
> +GLIBC_2.4 aio_error64 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 f13a5f43f2..07178bcea0 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_error F
> -GLIBC_2.4 aio_error64 F
> GLIBC_2.4 aio_fsync F
> GLIBC_2.4 aio_fsync64 F
> GLIBC_2.4 aio_read F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index 8308c4e15b..6922e2ae69 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -1475,6 +1475,8 @@ 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_error F
> +GLIBC_2.1 aio_error64 F
> GLIBC_2.1 aio_init F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> @@ -2453,6 +2455,8 @@ 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_error F
> +GLIBC_2.34 aio_error64 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 172d23f5c9..07dbd9a87b 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_error F
> -GLIBC_2.1 aio_error64 F
> GLIBC_2.1 aio_fsync F
> GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_read F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index ed3bbb44ac..315c73587e 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -593,6 +593,8 @@ 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_error F
> +GLIBC_2.18 aio_error64 F
> GLIBC_2.18 aio_init F
> GLIBC_2.18 alarm F
> GLIBC_2.18 aligned_alloc F
> @@ -2423,6 +2425,8 @@ 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_error F
> +GLIBC_2.34 aio_error64 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 276c6eab44..e9e0c0a91f 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_error F
> -GLIBC_2.18 aio_error64 F
> GLIBC_2.18 aio_fsync F
> GLIBC_2.18 aio_fsync64 F
> GLIBC_2.18 aio_read F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index 909b471383..ce2a4eca6d 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -593,6 +593,8 @@ 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_error F
> +GLIBC_2.18 aio_error64 F
> GLIBC_2.18 aio_init F
> GLIBC_2.18 alarm F
> GLIBC_2.18 aligned_alloc F
> @@ -2420,6 +2422,8 @@ 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_error F
> +GLIBC_2.34 aio_error64 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 276c6eab44..e9e0c0a91f 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_error F
> -GLIBC_2.18 aio_error64 F
> GLIBC_2.18 aio_fsync F
> GLIBC_2.18 aio_fsync64 F
> GLIBC_2.18 aio_read F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index c5569a40ad..83ea40ad7f 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -1653,6 +1653,8 @@ 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_error F
> +GLIBC_2.2 aio_error64 F
> GLIBC_2.2 aio_init F
> GLIBC_2.2 alphasort64 F
> GLIBC_2.2 argp_err_exit_status D 0x4
> @@ -2418,6 +2420,8 @@ 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_error F
> +GLIBC_2.34 aio_error64 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 d8544013dd..f84f4e8cf2 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_error F
> -GLIBC_2.2 aio_error64 F
> GLIBC_2.2 aio_fsync F
> GLIBC_2.2 aio_fsync64 F
> GLIBC_2.2 aio_read F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index 56163ef271..e3a34b81a5 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -1651,6 +1651,8 @@ 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_error F
> +GLIBC_2.2 aio_error64 F
> GLIBC_2.2 aio_init F
> GLIBC_2.2 alphasort64 F
> GLIBC_2.2 argp_err_exit_status D 0x4
> @@ -2416,6 +2418,8 @@ 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_error F
> +GLIBC_2.34 aio_error64 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 da4a1dc99e..a60151e94c 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -1652,6 +1652,8 @@ 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_error F
> +GLIBC_2.2 aio_error64 F
> GLIBC_2.2 aio_init F
> GLIBC_2.2 alphasort64 F
> GLIBC_2.2 argp_err_exit_status D 0x4
> @@ -2424,6 +2426,8 @@ 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_error F
> +GLIBC_2.34 aio_error64 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 d8544013dd..f84f4e8cf2 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_error F
> -GLIBC_2.2 aio_error64 F
> GLIBC_2.2 aio_fsync F
> GLIBC_2.2 aio_fsync64 F
> GLIBC_2.2 aio_read F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index 1843d27812..d9d5dfc258 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -1648,6 +1648,8 @@ 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_error F
> +GLIBC_2.2 aio_error64 F
> GLIBC_2.2 aio_init F
> GLIBC_2.2 alphasort64 F
> GLIBC_2.2 argp_err_exit_status D 0x4
> @@ -2342,6 +2344,8 @@ GLIBC_2.34 _pthread_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_error F
> +GLIBC_2.34 aio_error64 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 c9e82563c1..fbd1bb1039 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_error F
> -GLIBC_2.2 aio_error64 F
> GLIBC_2.2 aio_fsync F
> GLIBC_2.2 aio_fsync64 F
> GLIBC_2.2 aio_read F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index c0f6dcf1e3..11b8d3d035 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -635,6 +635,8 @@ 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_error F
> +GLIBC_2.21 aio_error64 F
> GLIBC_2.21 aio_init F
> GLIBC_2.21 alarm F
> GLIBC_2.21 aligned_alloc F
> @@ -2462,6 +2464,8 @@ 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_error F
> +GLIBC_2.34 aio_error64 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 1edad5b4cb..5da84ad590 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_error F
> -GLIBC_2.21 aio_error64 F
> GLIBC_2.21 aio_fsync F
> GLIBC_2.21 aio_fsync64 F
> GLIBC_2.21 aio_read F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index 130ab63a59..53bfeff0c8 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -1482,6 +1482,8 @@ 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_error F
> +GLIBC_2.1 aio_error64 F
> GLIBC_2.1 aio_init F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> @@ -2480,6 +2482,8 @@ 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_error F
> +GLIBC_2.34 aio_error64 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 172d23f5c9..07dbd9a87b 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_error F
> -GLIBC_2.1 aio_error64 F
> GLIBC_2.1 aio_fsync F
> GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_read F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index 1b83ce1f6e..354a8c5e1e 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -1482,6 +1482,8 @@ 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_error F
> +GLIBC_2.1 aio_error64 F
> GLIBC_2.1 aio_init F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> @@ -2513,6 +2515,8 @@ 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_error F
> +GLIBC_2.34 aio_error64 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 a24bd98fbe..3c82273e63 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -635,6 +635,8 @@ 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_error F
> +GLIBC_2.3 aio_error64 F
> GLIBC_2.3 aio_init F
> GLIBC_2.3 alarm F
> GLIBC_2.3 alphasort F
> @@ -2250,6 +2252,8 @@ 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_error F
> +GLIBC_2.34 aio_error64 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 1943e645ed..66926097e0 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_error F
> -GLIBC_2.3 aio_error64 F
> GLIBC_2.3 aio_fsync F
> GLIBC_2.3 aio_fsync64 F
> GLIBC_2.3 aio_read F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index bd0b3dd94f..0d9d8ed602 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -679,6 +679,8 @@ 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_error F
> +GLIBC_2.17 aio_error64 F
> GLIBC_2.17 aio_init F
> GLIBC_2.17 alarm F
> GLIBC_2.17 aligned_alloc F
> @@ -2549,6 +2551,8 @@ 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_error F
> +GLIBC_2.34 aio_error64 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 0f3a79e3a4..39e753fdde 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_error F
> -GLIBC_2.17 aio_error64 F
> GLIBC_2.17 aio_fsync F
> GLIBC_2.17 aio_fsync64 F
> GLIBC_2.17 aio_read F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index b1d1dac1b6..4ff01efcca 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -546,6 +546,8 @@ 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_error F
> +GLIBC_2.33 aio_error64 F
> GLIBC_2.33 aio_init F
> GLIBC_2.33 alarm F
> GLIBC_2.33 aligned_alloc F
> @@ -2114,6 +2116,8 @@ 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_error F
> +GLIBC_2.34 aio_error64 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 3a0bb5db43..be604bb966 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_error F
> -GLIBC_2.33 aio_error64 F
> GLIBC_2.33 aio_fsync F
> GLIBC_2.33 aio_fsync64 F
> GLIBC_2.33 aio_read F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index 2acb65c58c..cdcc2fe800 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -572,6 +572,8 @@ 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_error F
> +GLIBC_2.27 aio_error64 F
> GLIBC_2.27 aio_init F
> GLIBC_2.27 alarm F
> GLIBC_2.27 aligned_alloc F
> @@ -2314,6 +2316,8 @@ 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_error F
> +GLIBC_2.34 aio_error64 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 7f78e1b461..541ef4aa42 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_error F
> -GLIBC_2.27 aio_error64 F
> GLIBC_2.27 aio_fsync F
> GLIBC_2.27 aio_fsync64 F
> GLIBC_2.27 aio_read F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index 36b5ff2685..3372cb7340 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -1474,6 +1474,8 @@ 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_error F
> +GLIBC_2.1 aio_error64 F
> GLIBC_2.1 aio_init F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> @@ -2478,6 +2480,8 @@ 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_error F
> +GLIBC_2.34 aio_error64 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 172d23f5c9..07dbd9a87b 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_error F
> -GLIBC_2.1 aio_error64 F
> GLIBC_2.1 aio_fsync F
> GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_read F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index ed2a90f013..a7e74a0d44 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -572,6 +572,8 @@ 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_error F
> +GLIBC_2.2 aio_error64 F
> GLIBC_2.2 aio_init F
> GLIBC_2.2 alarm F
> GLIBC_2.2 alphasort F
> @@ -2287,6 +2289,8 @@ 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_error F
> +GLIBC_2.34 aio_error64 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 7948f84cec..40a823f6de 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_error F
> -GLIBC_2.2 aio_error64 F
> GLIBC_2.2 aio_fsync F
> GLIBC_2.2 aio_fsync64 F
> GLIBC_2.2 aio_read F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index b8eb5d98d7..c856450c1f 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -9,6 +9,8 @@ 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_error F
> +GLIBC_2.1 aio_error64 F
> GLIBC_2.1 aio_init F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> @@ -2333,6 +2335,8 @@ 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_error F
> +GLIBC_2.34 aio_error64 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 172d23f5c9..07dbd9a87b 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_error F
> -GLIBC_2.1 aio_error64 F
> GLIBC_2.1 aio_fsync F
> GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_read F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index 5f4efe2398..459119e6de 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -9,6 +9,8 @@ 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_error F
> +GLIBC_2.1 aio_error64 F
> GLIBC_2.1 aio_init F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> @@ -2330,6 +2332,8 @@ 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_error F
> +GLIBC_2.34 aio_error64 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 172d23f5c9..07dbd9a87b 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_error F
> -GLIBC_2.1 aio_error64 F
> GLIBC_2.1 aio_fsync F
> GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_read F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index 82439ec5c4..c78e328a0f 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -1476,6 +1476,8 @@ 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_error F
> +GLIBC_2.1 aio_error64 F
> GLIBC_2.1 aio_init F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> @@ -2473,6 +2475,8 @@ 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_error F
> +GLIBC_2.34 aio_error64 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 61cc93c180..e6990a5c82 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_error F
> -GLIBC_2.1 aio_error64 F
> GLIBC_2.1 aio_fsync F
> GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_read F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index 8868399fce..3b4ef5f093 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -9,6 +9,8 @@ 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_error F
> +GLIBC_2.1 aio_error64 F
> GLIBC_2.1 aio_init F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> @@ -2309,6 +2311,8 @@ 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_error F
> +GLIBC_2.34 aio_error64 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 c7e49f9a98..09ba914d65 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_error F
> -GLIBC_2.1 aio_error64 F
> GLIBC_2.1 aio_fsync F
> GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_read F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index 9ee8856769..1d6e7030fc 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -561,6 +561,8 @@ 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_error F
> +GLIBC_2.2.5 aio_error64 F
> GLIBC_2.2.5 aio_init F
> GLIBC_2.2.5 alarm F
> GLIBC_2.2.5 alphasort F
> @@ -2265,6 +2267,8 @@ 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_error F
> +GLIBC_2.34 aio_error64 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 1853412bcc..ef23d67e9d 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_error F
> -GLIBC_2.2.5 aio_error64 F
> GLIBC_2.2.5 aio_fsync F
> GLIBC_2.2.5 aio_fsync64 F
> GLIBC_2.2.5 aio_read F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index beac8c71ba..1480d7ada7 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -594,6 +594,8 @@ 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_error F
> +GLIBC_2.16 aio_error64 F
> GLIBC_2.16 aio_init F
> GLIBC_2.16 alarm F
> GLIBC_2.16 aligned_alloc F
> @@ -2368,6 +2370,8 @@ 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_error F
> +GLIBC_2.34 aio_error64 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 310b1bf338..629dd4fd75 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_error F
> -GLIBC_2.16 aio_error64 F
> GLIBC_2.16 aio_fsync F
> GLIBC_2.16 aio_fsync64 F
> GLIBC_2.16 aio_read F
>
Ok
^ permalink raw reply [flat|nested] 72+ messages in thread
* [PATCH 13/34] Linux: Move aio_fsync, aio_fsync64 into libc
2021-06-17 18:56 [PATCH v2 00/34] Move librt into libc Florian Weimer
` (11 preceding siblings ...)
2021-06-17 18:57 ` [PATCH 12/34] Linux: Move aio_error, aio_error64 " Florian Weimer
@ 2021-06-17 18:57 ` Florian Weimer
2021-06-23 17:46 ` Adhemerval Zanella
2021-06-17 18:58 ` [PATCH 14/34] Linux: Move aio_read, aio_read64 " Florian Weimer
` (21 subsequent siblings)
34 siblings, 1 reply; 72+ messages in thread
From: Florian Weimer @ 2021-06-17 18:57 UTC (permalink / raw)
To: libc-alpha
The symbols were moved using scripts/move-symbol-to-libc.py.
---
rt/Makefile | 2 +-
rt/Versions | 6 ++++--
rt/aio_fsync.c | 18 ++++++++++++++----
sysdeps/unix/sysv/linux/aarch64/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/aarch64/librt.abilist | 2 --
sysdeps/unix/sysv/linux/alpha/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/alpha/librt.abilist | 2 --
sysdeps/unix/sysv/linux/arc/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/arc/librt.abilist | 2 --
sysdeps/unix/sysv/linux/arm/be/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/arm/be/librt.abilist | 2 --
sysdeps/unix/sysv/linux/arm/le/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/arm/le/librt.abilist | 2 --
sysdeps/unix/sysv/linux/csky/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/csky/librt.abilist | 2 --
sysdeps/unix/sysv/linux/hppa/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/hppa/librt.abilist | 2 --
sysdeps/unix/sysv/linux/i386/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/i386/librt.abilist | 2 --
sysdeps/unix/sysv/linux/ia64/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/ia64/librt.abilist | 2 --
.../unix/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 --
.../unix/sysv/linux/microblaze/be/libc.abilist | 4 ++++
.../sysv/linux/microblaze/be/librt.abilist | 2 --
.../unix/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 ++++
.../sysv/linux/powerpc/powerpc32/librt.abilist | 2 --
.../linux/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 ++++
.../unix/sysv/linux/s390/s390-32/librt.abilist | 2 --
.../unix/sysv/linux/s390/s390-64/libc.abilist | 4 ++++
.../unix/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 --
.../unix/sysv/linux/sparc/sparc32/libc.abilist | 4 ++++
.../sysv/linux/sparc/sparc32/librt.abilist | 2 --
.../unix/sysv/linux/sparc/sparc64/libc.abilist | 4 ++++
.../sysv/linux/sparc/sparc64/librt.abilist | 2 --
sysdeps/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 --
65 files changed, 147 insertions(+), 67 deletions(-)
diff --git a/rt/Makefile b/rt/Makefile
index 1b36886dd6..ca8c818a25 100644
--- a/rt/Makefile
+++ b/rt/Makefile
@@ -29,7 +29,6 @@ routines = \
shm_unlink \
librt-routines = \
- aio_fsync \
aio_read \
aio_read64 \
aio_return \
@@ -60,6 +59,7 @@ librt-shared-only-routines = librt-compat
$(librt-routines-var) += \
aio_cancel \
aio_error \
+ aio_fsync \
aio_misc \
aio_notify \
aio_sigqueue \
diff --git a/rt/Versions b/rt/Versions
index aae1d3c47d..1a0aa77fd0 100644
--- a/rt/Versions
+++ b/rt/Versions
@@ -6,6 +6,8 @@ libc {
aio_cancel64;
aio_error;
aio_error64;
+ aio_fsync;
+ aio_fsync64;
%endif
}
GLIBC_2.2 {
@@ -19,6 +21,8 @@ libc {
aio_init;
aio_error;
aio_error64;
+ aio_fsync;
+ aio_fsync64;
%endif
shm_open;
shm_unlink;
@@ -44,10 +48,8 @@ librt {
aio_cancel64;
aio_error;
aio_error64;
-%endif
aio_fsync;
aio_fsync64;
-%if !PTHREAD_IN_LIBC
aio_init;
%endif
aio_read;
diff --git a/rt/aio_fsync.c b/rt/aio_fsync.c
index 5a52e2fec0..73b906a1e2 100644
--- a/rt/aio_fsync.c
+++ b/rt/aio_fsync.c
@@ -31,10 +31,10 @@
#include <fcntl.h>
#include <aio_misc.h>
-
+#include <shlib-compat.h>
int
-aio_fsync (int op, struct aiocb *aiocbp)
+__aio_fsync (int op, struct aiocb *aiocbp)
{
if (op != O_DSYNC && __builtin_expect (op != O_SYNC, 0))
{
@@ -43,7 +43,7 @@ aio_fsync (int op, struct aiocb *aiocbp)
}
/* Verify that this is an open file descriptor. */
- if (__glibc_unlikely (fcntl (aiocbp->aio_fildes, F_GETFL) == -1))
+ if (__glibc_unlikely (__fcntl (aiocbp->aio_fildes, F_GETFL) == -1))
{
__set_errno (EBADF);
return -1;
@@ -54,4 +54,14 @@ aio_fsync (int op, struct aiocb *aiocbp)
? -1 : 0);
}
-weak_alias (aio_fsync, aio_fsync64)
+#if PTHREAD_IN_LIBC
+versioned_symbol (libc, __aio_fsync, aio_fsync, GLIBC_2_34);
+versioned_symbol (libc, __aio_fsync, aio_fsync64, GLIBC_2_34);
+# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_34)
+compat_symbol (librt, __aio_fsync, aio_fsync, GLIBC_2_1);
+compat_symbol (librt, __aio_fsync, aio_fsync64, GLIBC_2_1);
+# endif
+#else /* !PTHREAD_IN_LIBC */
+strong_alias (__aio_fsync, aio_fsync)
+weak_alias (__aio_fsync, aio_fsync64)
+#endif /* !PTHREAD_IN_LIBC */
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index e19168ddc5..cf141fdf08 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -593,6 +593,8 @@ 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
+GLIBC_2.17 aio_fsync64 F
GLIBC_2.17 aio_init F
GLIBC_2.17 alarm F
GLIBC_2.17 aligned_alloc F
@@ -2357,6 +2359,8 @@ GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_error F
GLIBC_2.34 aio_error64 F
+GLIBC_2.34 aio_fsync F
+GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 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 39e753fdde..1519e07346 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_fsync F
-GLIBC_2.17 aio_fsync64 F
GLIBC_2.17 aio_read F
GLIBC_2.17 aio_read64 F
GLIBC_2.17 aio_return F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 4efbbef2dc..8d58f3ea87 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -1506,6 +1506,8 @@ 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
+GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
@@ -2452,6 +2454,8 @@ GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_error F
GLIBC_2.34 aio_error64 F
+GLIBC_2.34 aio_fsync F
+GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
index 09ba914d65..f4dd36f97b 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_fsync F
-GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_read F
GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 60fec8ba00..7579936aca 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -554,6 +554,8 @@ 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
+GLIBC_2.32 aio_fsync64 F
GLIBC_2.32 aio_init F
GLIBC_2.32 alarm F
GLIBC_2.32 aligned_alloc F
@@ -2116,6 +2118,8 @@ GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_error F
GLIBC_2.34 aio_error64 F
+GLIBC_2.34 aio_fsync F
+GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 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 678bd29799..15b9acf33c 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_fsync F
-GLIBC_2.32 aio_fsync64 F
GLIBC_2.32 aio_read F
GLIBC_2.32 aio_read64 F
GLIBC_2.32 aio_return F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 1810ff85ca..566d18d20a 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -282,6 +282,8 @@ GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_error F
GLIBC_2.34 aio_error64 F
+GLIBC_2.34 aio_fsync F
+GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
@@ -990,6 +992,8 @@ 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
+GLIBC_2.4 aio_fsync64 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 07178bcea0..1fa78d6811 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_fsync F
-GLIBC_2.4 aio_fsync64 F
GLIBC_2.4 aio_read F
GLIBC_2.4 aio_read64 F
GLIBC_2.4 aio_return F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 5f6c562a90..40da72fe92 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -279,6 +279,8 @@ GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_error F
GLIBC_2.34 aio_error64 F
+GLIBC_2.34 aio_fsync F
+GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
@@ -987,6 +989,8 @@ 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
+GLIBC_2.4 aio_fsync64 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 07178bcea0..1fa78d6811 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_fsync F
-GLIBC_2.4 aio_fsync64 F
GLIBC_2.4 aio_read F
GLIBC_2.4 aio_read64 F
GLIBC_2.4 aio_return F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index b8e78b1016..b0e1eab37e 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -568,6 +568,8 @@ 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
+GLIBC_2.29 aio_fsync64 F
GLIBC_2.29 aio_init F
GLIBC_2.29 alarm F
GLIBC_2.29 aligned_alloc F
@@ -2376,6 +2378,8 @@ GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_error F
GLIBC_2.34 aio_error64 F
+GLIBC_2.34 aio_fsync F
+GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 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 e39a91e633..9c3edc9f2f 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_fsync F
-GLIBC_2.29 aio_fsync64 F
GLIBC_2.29 aio_read F
GLIBC_2.29 aio_read64 F
GLIBC_2.29 aio_return F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 34516ba43e..463b498665 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -7,6 +7,8 @@ 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
+GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
@@ -2330,6 +2332,8 @@ GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_error F
GLIBC_2.34 aio_error64 F
+GLIBC_2.34 aio_fsync F
+GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 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 07dbd9a87b..8ac375872c 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_fsync F
-GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_read F
GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index f4035eed4a..2015282000 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -1479,6 +1479,8 @@ 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
+GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
@@ -2514,6 +2516,8 @@ GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_error F
GLIBC_2.34 aio_error64 F
+GLIBC_2.34 aio_fsync F
+GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 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 07dbd9a87b..8ac375872c 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_fsync F
-GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_read F
GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 3f6a281098..f83ba75cac 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -7,6 +7,8 @@ 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
+GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
@@ -2290,6 +2292,8 @@ GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_error F
GLIBC_2.34 aio_error64 F
+GLIBC_2.34 aio_fsync F
+GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 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 68b34cf0f6..38dd6dfb53 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_fsync F
-GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_read F
GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 3c017951e3..a0ca9ddc48 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -283,6 +283,8 @@ GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_error F
GLIBC_2.34 aio_error64 F
+GLIBC_2.34 aio_fsync F
+GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
@@ -978,6 +980,8 @@ 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
+GLIBC_2.4 aio_fsync64 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 07178bcea0..1fa78d6811 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_fsync F
-GLIBC_2.4 aio_fsync64 F
GLIBC_2.4 aio_read F
GLIBC_2.4 aio_read64 F
GLIBC_2.4 aio_return F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 6922e2ae69..bef73ca536 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -1477,6 +1477,8 @@ 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
+GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
@@ -2457,6 +2459,8 @@ GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_error F
GLIBC_2.34 aio_error64 F
+GLIBC_2.34 aio_fsync F
+GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 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 07dbd9a87b..8ac375872c 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_fsync F
-GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_read F
GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 315c73587e..1f2c7f0fd9 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -595,6 +595,8 @@ 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
+GLIBC_2.18 aio_fsync64 F
GLIBC_2.18 aio_init F
GLIBC_2.18 alarm F
GLIBC_2.18 aligned_alloc F
@@ -2427,6 +2429,8 @@ GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_error F
GLIBC_2.34 aio_error64 F
+GLIBC_2.34 aio_fsync F
+GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 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 e9e0c0a91f..87eeccd69c 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_fsync F
-GLIBC_2.18 aio_fsync64 F
GLIBC_2.18 aio_read F
GLIBC_2.18 aio_read64 F
GLIBC_2.18 aio_return F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index ce2a4eca6d..191db5f985 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -595,6 +595,8 @@ 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
+GLIBC_2.18 aio_fsync64 F
GLIBC_2.18 aio_init F
GLIBC_2.18 alarm F
GLIBC_2.18 aligned_alloc F
@@ -2424,6 +2426,8 @@ GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_error F
GLIBC_2.34 aio_error64 F
+GLIBC_2.34 aio_fsync F
+GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 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 e9e0c0a91f..87eeccd69c 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_fsync F
-GLIBC_2.18 aio_fsync64 F
GLIBC_2.18 aio_read F
GLIBC_2.18 aio_read64 F
GLIBC_2.18 aio_return F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 83ea40ad7f..5eb630a9f5 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -1655,6 +1655,8 @@ 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
+GLIBC_2.2 aio_fsync64 F
GLIBC_2.2 aio_init F
GLIBC_2.2 alphasort64 F
GLIBC_2.2 argp_err_exit_status D 0x4
@@ -2422,6 +2424,8 @@ GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_error F
GLIBC_2.34 aio_error64 F
+GLIBC_2.34 aio_fsync F
+GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 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 f84f4e8cf2..9e2c283942 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_fsync F
-GLIBC_2.2 aio_fsync64 F
GLIBC_2.2 aio_read F
GLIBC_2.2 aio_read64 F
GLIBC_2.2 aio_return F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index e3a34b81a5..a1b8e02ca4 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -1653,6 +1653,8 @@ 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
+GLIBC_2.2 aio_fsync64 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 aio_cancel F
GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_error F
GLIBC_2.34 aio_error64 F
+GLIBC_2.34 aio_fsync F
+GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 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 a60151e94c..dd33f448b7 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -1654,6 +1654,8 @@ 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
+GLIBC_2.2 aio_fsync64 F
GLIBC_2.2 aio_init F
GLIBC_2.2 alphasort64 F
GLIBC_2.2 argp_err_exit_status D 0x4
@@ -2428,6 +2430,8 @@ GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_error F
GLIBC_2.34 aio_error64 F
+GLIBC_2.34 aio_fsync F
+GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 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 f84f4e8cf2..9e2c283942 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_fsync F
-GLIBC_2.2 aio_fsync64 F
GLIBC_2.2 aio_read F
GLIBC_2.2 aio_read64 F
GLIBC_2.2 aio_return F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index d9d5dfc258..efda95dd32 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -1650,6 +1650,8 @@ 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
+GLIBC_2.2 aio_fsync64 F
GLIBC_2.2 aio_init F
GLIBC_2.2 alphasort64 F
GLIBC_2.2 argp_err_exit_status D 0x4
@@ -2346,6 +2348,8 @@ GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_error F
GLIBC_2.34 aio_error64 F
+GLIBC_2.34 aio_fsync F
+GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 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 fbd1bb1039..848a39faae 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_fsync F
-GLIBC_2.2 aio_fsync64 F
GLIBC_2.2 aio_read F
GLIBC_2.2 aio_read64 F
GLIBC_2.2 aio_return F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 11b8d3d035..e2739a9145 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -637,6 +637,8 @@ 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
+GLIBC_2.21 aio_fsync64 F
GLIBC_2.21 aio_init F
GLIBC_2.21 alarm F
GLIBC_2.21 aligned_alloc F
@@ -2466,6 +2468,8 @@ GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_error F
GLIBC_2.34 aio_error64 F
+GLIBC_2.34 aio_fsync F
+GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 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 5da84ad590..24472cb04f 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_fsync F
-GLIBC_2.21 aio_fsync64 F
GLIBC_2.21 aio_read F
GLIBC_2.21 aio_read64 F
GLIBC_2.21 aio_return F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 53bfeff0c8..6c816268cd 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -1484,6 +1484,8 @@ 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
+GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
@@ -2484,6 +2486,8 @@ GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_error F
GLIBC_2.34 aio_error64 F
+GLIBC_2.34 aio_fsync F
+GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 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 07dbd9a87b..8ac375872c 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_fsync F
-GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_read F
GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 354a8c5e1e..03dadcef85 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -1484,6 +1484,8 @@ 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
+GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
@@ -2517,6 +2519,8 @@ GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_error F
GLIBC_2.34 aio_error64 F
+GLIBC_2.34 aio_fsync F
+GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 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 3c82273e63..c355eb4607 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -637,6 +637,8 @@ 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
+GLIBC_2.3 aio_fsync64 F
GLIBC_2.3 aio_init F
GLIBC_2.3 alarm F
GLIBC_2.3 alphasort F
@@ -2254,6 +2256,8 @@ GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_error F
GLIBC_2.34 aio_error64 F
+GLIBC_2.34 aio_fsync F
+GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 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 66926097e0..951344a6ef 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_fsync F
-GLIBC_2.3 aio_fsync64 F
GLIBC_2.3 aio_read F
GLIBC_2.3 aio_read64 F
GLIBC_2.3 aio_return F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 0d9d8ed602..abe39f4a96 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -681,6 +681,8 @@ 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
+GLIBC_2.17 aio_fsync64 F
GLIBC_2.17 aio_init F
GLIBC_2.17 alarm F
GLIBC_2.17 aligned_alloc F
@@ -2553,6 +2555,8 @@ GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_error F
GLIBC_2.34 aio_error64 F
+GLIBC_2.34 aio_fsync F
+GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 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 39e753fdde..1519e07346 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_fsync F
-GLIBC_2.17 aio_fsync64 F
GLIBC_2.17 aio_read F
GLIBC_2.17 aio_read64 F
GLIBC_2.17 aio_return F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 4ff01efcca..585c9b7cf7 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -548,6 +548,8 @@ 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
+GLIBC_2.33 aio_fsync64 F
GLIBC_2.33 aio_init F
GLIBC_2.33 alarm F
GLIBC_2.33 aligned_alloc F
@@ -2118,6 +2120,8 @@ GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_error F
GLIBC_2.34 aio_error64 F
+GLIBC_2.34 aio_fsync F
+GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 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 be604bb966..8e30efa6a1 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_fsync F
-GLIBC_2.33 aio_fsync64 F
GLIBC_2.33 aio_read F
GLIBC_2.33 aio_read64 F
GLIBC_2.33 aio_return F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index cdcc2fe800..d8aa40cb34 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -574,6 +574,8 @@ 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
+GLIBC_2.27 aio_fsync64 F
GLIBC_2.27 aio_init F
GLIBC_2.27 alarm F
GLIBC_2.27 aligned_alloc F
@@ -2318,6 +2320,8 @@ GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_error F
GLIBC_2.34 aio_error64 F
+GLIBC_2.34 aio_fsync F
+GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 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 541ef4aa42..7145c7d249 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_fsync F
-GLIBC_2.27 aio_fsync64 F
GLIBC_2.27 aio_read F
GLIBC_2.27 aio_read64 F
GLIBC_2.27 aio_return F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 3372cb7340..52a7d18745 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -1476,6 +1476,8 @@ 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
+GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
@@ -2482,6 +2484,8 @@ GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_error F
GLIBC_2.34 aio_error64 F
+GLIBC_2.34 aio_fsync F
+GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 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 07dbd9a87b..8ac375872c 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_fsync F
-GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_read F
GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index a7e74a0d44..1078e94135 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -574,6 +574,8 @@ 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
+GLIBC_2.2 aio_fsync64 F
GLIBC_2.2 aio_init F
GLIBC_2.2 alarm F
GLIBC_2.2 alphasort F
@@ -2291,6 +2293,8 @@ GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_error F
GLIBC_2.34 aio_error64 F
+GLIBC_2.34 aio_fsync F
+GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 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 40a823f6de..0396a04bd2 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_fsync F
-GLIBC_2.2 aio_fsync64 F
GLIBC_2.2 aio_read F
GLIBC_2.2 aio_read64 F
GLIBC_2.2 aio_return F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index c856450c1f..90c2a79d6e 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -11,6 +11,8 @@ 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
+GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
@@ -2337,6 +2339,8 @@ GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_error F
GLIBC_2.34 aio_error64 F
+GLIBC_2.34 aio_fsync F
+GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 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 07dbd9a87b..8ac375872c 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_fsync F
-GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_read F
GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 459119e6de..a624e97cab 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -11,6 +11,8 @@ 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
+GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
@@ -2334,6 +2336,8 @@ GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_error F
GLIBC_2.34 aio_error64 F
+GLIBC_2.34 aio_fsync F
+GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 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 07dbd9a87b..8ac375872c 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_fsync F
-GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_read F
GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index c78e328a0f..c65022cdd9 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -1478,6 +1478,8 @@ 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
+GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
@@ -2477,6 +2479,8 @@ GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_error F
GLIBC_2.34 aio_error64 F
+GLIBC_2.34 aio_fsync F
+GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 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 e6990a5c82..183e0cbf21 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_fsync F
-GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_read F
GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 3b4ef5f093..5e90b1e6f7 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -11,6 +11,8 @@ 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
+GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
@@ -2313,6 +2315,8 @@ GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_error F
GLIBC_2.34 aio_error64 F
+GLIBC_2.34 aio_fsync F
+GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 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 09ba914d65..f4dd36f97b 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_fsync F
-GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_read F
GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 1d6e7030fc..3911e41a47 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -563,6 +563,8 @@ 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
+GLIBC_2.2.5 aio_fsync64 F
GLIBC_2.2.5 aio_init F
GLIBC_2.2.5 alarm F
GLIBC_2.2.5 alphasort F
@@ -2269,6 +2271,8 @@ GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_error F
GLIBC_2.34 aio_error64 F
+GLIBC_2.34 aio_fsync F
+GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 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 ef23d67e9d..f1cce35e0a 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_fsync F
-GLIBC_2.2.5 aio_fsync64 F
GLIBC_2.2.5 aio_read F
GLIBC_2.2.5 aio_read64 F
GLIBC_2.2.5 aio_return F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 1480d7ada7..bae6dd505b 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -596,6 +596,8 @@ 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
+GLIBC_2.16 aio_fsync64 F
GLIBC_2.16 aio_init F
GLIBC_2.16 alarm F
GLIBC_2.16 aligned_alloc F
@@ -2372,6 +2374,8 @@ GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_error F
GLIBC_2.34 aio_error64 F
+GLIBC_2.34 aio_fsync F
+GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 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 629dd4fd75..acaa63d92f 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_fsync F
-GLIBC_2.16 aio_fsync64 F
GLIBC_2.16 aio_read F
GLIBC_2.16 aio_read64 F
GLIBC_2.16 aio_return F
--
2.31.1
^ permalink raw reply [flat|nested] 72+ messages in thread
* Re: [PATCH 13/34] Linux: Move aio_fsync, aio_fsync64 into libc
2021-06-17 18:57 ` [PATCH 13/34] Linux: Move aio_fsync, aio_fsync64 " Florian Weimer
@ 2021-06-23 17:46 ` Adhemerval Zanella
0 siblings, 0 replies; 72+ messages in thread
From: Adhemerval Zanella @ 2021-06-23 17:46 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 17/06/2021 15:57, Florian Weimer via Libc-alpha wrote:
> The symbols were moved using scripts/move-symbol-to-libc.py.
LGTM, thanks.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> ---
> rt/Makefile | 2 +-
> rt/Versions | 6 ++++--
> rt/aio_fsync.c | 18 ++++++++++++++----
> sysdeps/unix/sysv/linux/aarch64/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/aarch64/librt.abilist | 2 --
> sysdeps/unix/sysv/linux/alpha/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/alpha/librt.abilist | 2 --
> sysdeps/unix/sysv/linux/arc/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/arc/librt.abilist | 2 --
> sysdeps/unix/sysv/linux/arm/be/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/arm/be/librt.abilist | 2 --
> sysdeps/unix/sysv/linux/arm/le/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/arm/le/librt.abilist | 2 --
> sysdeps/unix/sysv/linux/csky/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/csky/librt.abilist | 2 --
> sysdeps/unix/sysv/linux/hppa/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/hppa/librt.abilist | 2 --
> sysdeps/unix/sysv/linux/i386/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/i386/librt.abilist | 2 --
> sysdeps/unix/sysv/linux/ia64/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/ia64/librt.abilist | 2 --
> .../unix/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 --
> .../unix/sysv/linux/microblaze/be/libc.abilist | 4 ++++
> .../sysv/linux/microblaze/be/librt.abilist | 2 --
> .../unix/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 ++++
> .../sysv/linux/powerpc/powerpc32/librt.abilist | 2 --
> .../linux/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 ++++
> .../unix/sysv/linux/s390/s390-32/librt.abilist | 2 --
> .../unix/sysv/linux/s390/s390-64/libc.abilist | 4 ++++
> .../unix/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 --
> .../unix/sysv/linux/sparc/sparc32/libc.abilist | 4 ++++
> .../sysv/linux/sparc/sparc32/librt.abilist | 2 --
> .../unix/sysv/linux/sparc/sparc64/libc.abilist | 4 ++++
> .../sysv/linux/sparc/sparc64/librt.abilist | 2 --
> sysdeps/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 --
> 65 files changed, 147 insertions(+), 67 deletions(-)
>
> diff --git a/rt/Makefile b/rt/Makefile
> index 1b36886dd6..ca8c818a25 100644
> --- a/rt/Makefile
> +++ b/rt/Makefile
> @@ -29,7 +29,6 @@ routines = \
> shm_unlink \
>
> librt-routines = \
> - aio_fsync \
> aio_read \
> aio_read64 \
> aio_return \
> @@ -60,6 +59,7 @@ librt-shared-only-routines = librt-compat
> $(librt-routines-var) += \
> aio_cancel \
> aio_error \
> + aio_fsync \
> aio_misc \
> aio_notify \
> aio_sigqueue \
Ok.
> diff --git a/rt/Versions b/rt/Versions
> index aae1d3c47d..1a0aa77fd0 100644
> --- a/rt/Versions
> +++ b/rt/Versions
> @@ -6,6 +6,8 @@ libc {
> aio_cancel64;
> aio_error;
> aio_error64;
> + aio_fsync;
> + aio_fsync64;
> %endif
> }
> GLIBC_2.2 {
> @@ -19,6 +21,8 @@ libc {
> aio_init;
> aio_error;
> aio_error64;
> + aio_fsync;
> + aio_fsync64;
> %endif
> shm_open;
> shm_unlink;
> @@ -44,10 +48,8 @@ librt {
> aio_cancel64;
> aio_error;
> aio_error64;
> -%endif
> aio_fsync;
> aio_fsync64;
> -%if !PTHREAD_IN_LIBC
> aio_init;
> %endif
> aio_read;
Ok.
> diff --git a/rt/aio_fsync.c b/rt/aio_fsync.c
> index 5a52e2fec0..73b906a1e2 100644
> --- a/rt/aio_fsync.c
> +++ b/rt/aio_fsync.c
> @@ -31,10 +31,10 @@
> #include <fcntl.h>
>
> #include <aio_misc.h>
> -
> +#include <shlib-compat.h>
>
> int
> -aio_fsync (int op, struct aiocb *aiocbp)
> +__aio_fsync (int op, struct aiocb *aiocbp)
> {
> if (op != O_DSYNC && __builtin_expect (op != O_SYNC, 0))
> {
> @@ -43,7 +43,7 @@ aio_fsync (int op, struct aiocb *aiocbp)
> }
>
> /* Verify that this is an open file descriptor. */
> - if (__glibc_unlikely (fcntl (aiocbp->aio_fildes, F_GETFL) == -1))
> + if (__glibc_unlikely (__fcntl (aiocbp->aio_fildes, F_GETFL) == -1))
> {
> __set_errno (EBADF);
> return -1;
> @@ -54,4 +54,14 @@ aio_fsync (int op, struct aiocb *aiocbp)
> ? -1 : 0);
> }
>
> -weak_alias (aio_fsync, aio_fsync64)
> +#if PTHREAD_IN_LIBC
> +versioned_symbol (libc, __aio_fsync, aio_fsync, GLIBC_2_34);
> +versioned_symbol (libc, __aio_fsync, aio_fsync64, GLIBC_2_34);
> +# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_34)
> +compat_symbol (librt, __aio_fsync, aio_fsync, GLIBC_2_1);
> +compat_symbol (librt, __aio_fsync, aio_fsync64, GLIBC_2_1);
> +# endif
> +#else /* !PTHREAD_IN_LIBC */
> +strong_alias (__aio_fsync, aio_fsync)
> +weak_alias (__aio_fsync, aio_fsync64)
> +#endif /* !PTHREAD_IN_LIBC */
Ok.
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index e19168ddc5..cf141fdf08 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -593,6 +593,8 @@ 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
> +GLIBC_2.17 aio_fsync64 F
> GLIBC_2.17 aio_init F
> GLIBC_2.17 alarm F
> GLIBC_2.17 aligned_alloc F
> @@ -2357,6 +2359,8 @@ GLIBC_2.34 aio_cancel F
> GLIBC_2.34 aio_cancel64 F
> GLIBC_2.34 aio_error F
> GLIBC_2.34 aio_error64 F
> +GLIBC_2.34 aio_fsync F
> +GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 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 39e753fdde..1519e07346 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_fsync F
> -GLIBC_2.17 aio_fsync64 F
> GLIBC_2.17 aio_read F
> GLIBC_2.17 aio_read64 F
> GLIBC_2.17 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index 4efbbef2dc..8d58f3ea87 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -1506,6 +1506,8 @@ 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
> +GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_init F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> @@ -2452,6 +2454,8 @@ GLIBC_2.34 aio_cancel F
> GLIBC_2.34 aio_cancel64 F
> GLIBC_2.34 aio_error F
> GLIBC_2.34 aio_error64 F
> +GLIBC_2.34 aio_fsync F
> +GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
> index 09ba914d65..f4dd36f97b 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_fsync F
> -GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_read F
> GLIBC_2.1 aio_read64 F
> GLIBC_2.1 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index 60fec8ba00..7579936aca 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -554,6 +554,8 @@ 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
> +GLIBC_2.32 aio_fsync64 F
> GLIBC_2.32 aio_init F
> GLIBC_2.32 alarm F
> GLIBC_2.32 aligned_alloc F
> @@ -2116,6 +2118,8 @@ GLIBC_2.34 aio_cancel F
> GLIBC_2.34 aio_cancel64 F
> GLIBC_2.34 aio_error F
> GLIBC_2.34 aio_error64 F
> +GLIBC_2.34 aio_fsync F
> +GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 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 678bd29799..15b9acf33c 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_fsync F
> -GLIBC_2.32 aio_fsync64 F
> GLIBC_2.32 aio_read F
> GLIBC_2.32 aio_read64 F
> GLIBC_2.32 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index 1810ff85ca..566d18d20a 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -282,6 +282,8 @@ GLIBC_2.34 aio_cancel F
> GLIBC_2.34 aio_cancel64 F
> GLIBC_2.34 aio_error F
> GLIBC_2.34 aio_error64 F
> +GLIBC_2.34 aio_fsync F
> +GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> @@ -990,6 +992,8 @@ 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
> +GLIBC_2.4 aio_fsync64 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 07178bcea0..1fa78d6811 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_fsync F
> -GLIBC_2.4 aio_fsync64 F
> GLIBC_2.4 aio_read F
> GLIBC_2.4 aio_read64 F
> GLIBC_2.4 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index 5f6c562a90..40da72fe92 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -279,6 +279,8 @@ GLIBC_2.34 aio_cancel F
> GLIBC_2.34 aio_cancel64 F
> GLIBC_2.34 aio_error F
> GLIBC_2.34 aio_error64 F
> +GLIBC_2.34 aio_fsync F
> +GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> @@ -987,6 +989,8 @@ 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
> +GLIBC_2.4 aio_fsync64 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 07178bcea0..1fa78d6811 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_fsync F
> -GLIBC_2.4 aio_fsync64 F
> GLIBC_2.4 aio_read F
> GLIBC_2.4 aio_read64 F
> GLIBC_2.4 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index b8e78b1016..b0e1eab37e 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -568,6 +568,8 @@ 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
> +GLIBC_2.29 aio_fsync64 F
> GLIBC_2.29 aio_init F
> GLIBC_2.29 alarm F
> GLIBC_2.29 aligned_alloc F
> @@ -2376,6 +2378,8 @@ GLIBC_2.34 aio_cancel F
> GLIBC_2.34 aio_cancel64 F
> GLIBC_2.34 aio_error F
> GLIBC_2.34 aio_error64 F
> +GLIBC_2.34 aio_fsync F
> +GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 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 e39a91e633..9c3edc9f2f 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_fsync F
> -GLIBC_2.29 aio_fsync64 F
> GLIBC_2.29 aio_read F
> GLIBC_2.29 aio_read64 F
> GLIBC_2.29 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index 34516ba43e..463b498665 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -7,6 +7,8 @@ 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
> +GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_init F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> @@ -2330,6 +2332,8 @@ GLIBC_2.34 aio_cancel F
> GLIBC_2.34 aio_cancel64 F
> GLIBC_2.34 aio_error F
> GLIBC_2.34 aio_error64 F
> +GLIBC_2.34 aio_fsync F
> +GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 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 07dbd9a87b..8ac375872c 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_fsync F
> -GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_read F
> GLIBC_2.1 aio_read64 F
> GLIBC_2.1 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index f4035eed4a..2015282000 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -1479,6 +1479,8 @@ 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
> +GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_init F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> @@ -2514,6 +2516,8 @@ GLIBC_2.34 aio_cancel F
> GLIBC_2.34 aio_cancel64 F
> GLIBC_2.34 aio_error F
> GLIBC_2.34 aio_error64 F
> +GLIBC_2.34 aio_fsync F
> +GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 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 07dbd9a87b..8ac375872c 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_fsync F
> -GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_read F
> GLIBC_2.1 aio_read64 F
> GLIBC_2.1 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index 3f6a281098..f83ba75cac 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -7,6 +7,8 @@ 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
> +GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_init F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> @@ -2290,6 +2292,8 @@ GLIBC_2.34 aio_cancel F
> GLIBC_2.34 aio_cancel64 F
> GLIBC_2.34 aio_error F
> GLIBC_2.34 aio_error64 F
> +GLIBC_2.34 aio_fsync F
> +GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 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 68b34cf0f6..38dd6dfb53 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_fsync F
> -GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_read F
> GLIBC_2.1 aio_read64 F
> GLIBC_2.1 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index 3c017951e3..a0ca9ddc48 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -283,6 +283,8 @@ GLIBC_2.34 aio_cancel F
> GLIBC_2.34 aio_cancel64 F
> GLIBC_2.34 aio_error F
> GLIBC_2.34 aio_error64 F
> +GLIBC_2.34 aio_fsync F
> +GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> @@ -978,6 +980,8 @@ 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
> +GLIBC_2.4 aio_fsync64 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 07178bcea0..1fa78d6811 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_fsync F
> -GLIBC_2.4 aio_fsync64 F
> GLIBC_2.4 aio_read F
> GLIBC_2.4 aio_read64 F
> GLIBC_2.4 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index 6922e2ae69..bef73ca536 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -1477,6 +1477,8 @@ 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
> +GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_init F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> @@ -2457,6 +2459,8 @@ GLIBC_2.34 aio_cancel F
> GLIBC_2.34 aio_cancel64 F
> GLIBC_2.34 aio_error F
> GLIBC_2.34 aio_error64 F
> +GLIBC_2.34 aio_fsync F
> +GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 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 07dbd9a87b..8ac375872c 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_fsync F
> -GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_read F
> GLIBC_2.1 aio_read64 F
> GLIBC_2.1 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index 315c73587e..1f2c7f0fd9 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -595,6 +595,8 @@ 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
> +GLIBC_2.18 aio_fsync64 F
> GLIBC_2.18 aio_init F
> GLIBC_2.18 alarm F
> GLIBC_2.18 aligned_alloc F
> @@ -2427,6 +2429,8 @@ GLIBC_2.34 aio_cancel F
> GLIBC_2.34 aio_cancel64 F
> GLIBC_2.34 aio_error F
> GLIBC_2.34 aio_error64 F
> +GLIBC_2.34 aio_fsync F
> +GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 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 e9e0c0a91f..87eeccd69c 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_fsync F
> -GLIBC_2.18 aio_fsync64 F
> GLIBC_2.18 aio_read F
> GLIBC_2.18 aio_read64 F
> GLIBC_2.18 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index ce2a4eca6d..191db5f985 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -595,6 +595,8 @@ 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
> +GLIBC_2.18 aio_fsync64 F
> GLIBC_2.18 aio_init F
> GLIBC_2.18 alarm F
> GLIBC_2.18 aligned_alloc F
> @@ -2424,6 +2426,8 @@ GLIBC_2.34 aio_cancel F
> GLIBC_2.34 aio_cancel64 F
> GLIBC_2.34 aio_error F
> GLIBC_2.34 aio_error64 F
> +GLIBC_2.34 aio_fsync F
> +GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 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 e9e0c0a91f..87eeccd69c 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_fsync F
> -GLIBC_2.18 aio_fsync64 F
> GLIBC_2.18 aio_read F
> GLIBC_2.18 aio_read64 F
> GLIBC_2.18 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index 83ea40ad7f..5eb630a9f5 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -1655,6 +1655,8 @@ 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
> +GLIBC_2.2 aio_fsync64 F
> GLIBC_2.2 aio_init F
> GLIBC_2.2 alphasort64 F
> GLIBC_2.2 argp_err_exit_status D 0x4
> @@ -2422,6 +2424,8 @@ GLIBC_2.34 aio_cancel F
> GLIBC_2.34 aio_cancel64 F
> GLIBC_2.34 aio_error F
> GLIBC_2.34 aio_error64 F
> +GLIBC_2.34 aio_fsync F
> +GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 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 f84f4e8cf2..9e2c283942 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_fsync F
> -GLIBC_2.2 aio_fsync64 F
> GLIBC_2.2 aio_read F
> GLIBC_2.2 aio_read64 F
> GLIBC_2.2 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index e3a34b81a5..a1b8e02ca4 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -1653,6 +1653,8 @@ 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
> +GLIBC_2.2 aio_fsync64 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 aio_cancel F
> GLIBC_2.34 aio_cancel64 F
> GLIBC_2.34 aio_error F
> GLIBC_2.34 aio_error64 F
> +GLIBC_2.34 aio_fsync F
> +GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 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 a60151e94c..dd33f448b7 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -1654,6 +1654,8 @@ 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
> +GLIBC_2.2 aio_fsync64 F
> GLIBC_2.2 aio_init F
> GLIBC_2.2 alphasort64 F
> GLIBC_2.2 argp_err_exit_status D 0x4
> @@ -2428,6 +2430,8 @@ GLIBC_2.34 aio_cancel F
> GLIBC_2.34 aio_cancel64 F
> GLIBC_2.34 aio_error F
> GLIBC_2.34 aio_error64 F
> +GLIBC_2.34 aio_fsync F
> +GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 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 f84f4e8cf2..9e2c283942 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_fsync F
> -GLIBC_2.2 aio_fsync64 F
> GLIBC_2.2 aio_read F
> GLIBC_2.2 aio_read64 F
> GLIBC_2.2 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index d9d5dfc258..efda95dd32 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -1650,6 +1650,8 @@ 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
> +GLIBC_2.2 aio_fsync64 F
> GLIBC_2.2 aio_init F
> GLIBC_2.2 alphasort64 F
> GLIBC_2.2 argp_err_exit_status D 0x4
> @@ -2346,6 +2348,8 @@ GLIBC_2.34 aio_cancel F
> GLIBC_2.34 aio_cancel64 F
> GLIBC_2.34 aio_error F
> GLIBC_2.34 aio_error64 F
> +GLIBC_2.34 aio_fsync F
> +GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 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 fbd1bb1039..848a39faae 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_fsync F
> -GLIBC_2.2 aio_fsync64 F
> GLIBC_2.2 aio_read F
> GLIBC_2.2 aio_read64 F
> GLIBC_2.2 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index 11b8d3d035..e2739a9145 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -637,6 +637,8 @@ 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
> +GLIBC_2.21 aio_fsync64 F
> GLIBC_2.21 aio_init F
> GLIBC_2.21 alarm F
> GLIBC_2.21 aligned_alloc F
> @@ -2466,6 +2468,8 @@ GLIBC_2.34 aio_cancel F
> GLIBC_2.34 aio_cancel64 F
> GLIBC_2.34 aio_error F
> GLIBC_2.34 aio_error64 F
> +GLIBC_2.34 aio_fsync F
> +GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 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 5da84ad590..24472cb04f 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_fsync F
> -GLIBC_2.21 aio_fsync64 F
> GLIBC_2.21 aio_read F
> GLIBC_2.21 aio_read64 F
> GLIBC_2.21 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index 53bfeff0c8..6c816268cd 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -1484,6 +1484,8 @@ 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
> +GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_init F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> @@ -2484,6 +2486,8 @@ GLIBC_2.34 aio_cancel F
> GLIBC_2.34 aio_cancel64 F
> GLIBC_2.34 aio_error F
> GLIBC_2.34 aio_error64 F
> +GLIBC_2.34 aio_fsync F
> +GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 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 07dbd9a87b..8ac375872c 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_fsync F
> -GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_read F
> GLIBC_2.1 aio_read64 F
> GLIBC_2.1 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index 354a8c5e1e..03dadcef85 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -1484,6 +1484,8 @@ 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
> +GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_init F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> @@ -2517,6 +2519,8 @@ GLIBC_2.34 aio_cancel F
> GLIBC_2.34 aio_cancel64 F
> GLIBC_2.34 aio_error F
> GLIBC_2.34 aio_error64 F
> +GLIBC_2.34 aio_fsync F
> +GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 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 3c82273e63..c355eb4607 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -637,6 +637,8 @@ 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
> +GLIBC_2.3 aio_fsync64 F
> GLIBC_2.3 aio_init F
> GLIBC_2.3 alarm F
> GLIBC_2.3 alphasort F
> @@ -2254,6 +2256,8 @@ GLIBC_2.34 aio_cancel F
> GLIBC_2.34 aio_cancel64 F
> GLIBC_2.34 aio_error F
> GLIBC_2.34 aio_error64 F
> +GLIBC_2.34 aio_fsync F
> +GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 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 66926097e0..951344a6ef 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_fsync F
> -GLIBC_2.3 aio_fsync64 F
> GLIBC_2.3 aio_read F
> GLIBC_2.3 aio_read64 F
> GLIBC_2.3 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index 0d9d8ed602..abe39f4a96 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -681,6 +681,8 @@ 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
> +GLIBC_2.17 aio_fsync64 F
> GLIBC_2.17 aio_init F
> GLIBC_2.17 alarm F
> GLIBC_2.17 aligned_alloc F
> @@ -2553,6 +2555,8 @@ GLIBC_2.34 aio_cancel F
> GLIBC_2.34 aio_cancel64 F
> GLIBC_2.34 aio_error F
> GLIBC_2.34 aio_error64 F
> +GLIBC_2.34 aio_fsync F
> +GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 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 39e753fdde..1519e07346 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_fsync F
> -GLIBC_2.17 aio_fsync64 F
> GLIBC_2.17 aio_read F
> GLIBC_2.17 aio_read64 F
> GLIBC_2.17 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index 4ff01efcca..585c9b7cf7 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -548,6 +548,8 @@ 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
> +GLIBC_2.33 aio_fsync64 F
> GLIBC_2.33 aio_init F
> GLIBC_2.33 alarm F
> GLIBC_2.33 aligned_alloc F
> @@ -2118,6 +2120,8 @@ GLIBC_2.34 aio_cancel F
> GLIBC_2.34 aio_cancel64 F
> GLIBC_2.34 aio_error F
> GLIBC_2.34 aio_error64 F
> +GLIBC_2.34 aio_fsync F
> +GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 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 be604bb966..8e30efa6a1 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_fsync F
> -GLIBC_2.33 aio_fsync64 F
> GLIBC_2.33 aio_read F
> GLIBC_2.33 aio_read64 F
> GLIBC_2.33 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index cdcc2fe800..d8aa40cb34 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -574,6 +574,8 @@ 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
> +GLIBC_2.27 aio_fsync64 F
> GLIBC_2.27 aio_init F
> GLIBC_2.27 alarm F
> GLIBC_2.27 aligned_alloc F
> @@ -2318,6 +2320,8 @@ GLIBC_2.34 aio_cancel F
> GLIBC_2.34 aio_cancel64 F
> GLIBC_2.34 aio_error F
> GLIBC_2.34 aio_error64 F
> +GLIBC_2.34 aio_fsync F
> +GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 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 541ef4aa42..7145c7d249 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_fsync F
> -GLIBC_2.27 aio_fsync64 F
> GLIBC_2.27 aio_read F
> GLIBC_2.27 aio_read64 F
> GLIBC_2.27 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index 3372cb7340..52a7d18745 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -1476,6 +1476,8 @@ 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
> +GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_init F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> @@ -2482,6 +2484,8 @@ GLIBC_2.34 aio_cancel F
> GLIBC_2.34 aio_cancel64 F
> GLIBC_2.34 aio_error F
> GLIBC_2.34 aio_error64 F
> +GLIBC_2.34 aio_fsync F
> +GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 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 07dbd9a87b..8ac375872c 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_fsync F
> -GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_read F
> GLIBC_2.1 aio_read64 F
> GLIBC_2.1 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index a7e74a0d44..1078e94135 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -574,6 +574,8 @@ 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
> +GLIBC_2.2 aio_fsync64 F
> GLIBC_2.2 aio_init F
> GLIBC_2.2 alarm F
> GLIBC_2.2 alphasort F
> @@ -2291,6 +2293,8 @@ GLIBC_2.34 aio_cancel F
> GLIBC_2.34 aio_cancel64 F
> GLIBC_2.34 aio_error F
> GLIBC_2.34 aio_error64 F
> +GLIBC_2.34 aio_fsync F
> +GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 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 40a823f6de..0396a04bd2 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_fsync F
> -GLIBC_2.2 aio_fsync64 F
> GLIBC_2.2 aio_read F
> GLIBC_2.2 aio_read64 F
> GLIBC_2.2 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index c856450c1f..90c2a79d6e 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -11,6 +11,8 @@ 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
> +GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_init F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> @@ -2337,6 +2339,8 @@ GLIBC_2.34 aio_cancel F
> GLIBC_2.34 aio_cancel64 F
> GLIBC_2.34 aio_error F
> GLIBC_2.34 aio_error64 F
> +GLIBC_2.34 aio_fsync F
> +GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 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 07dbd9a87b..8ac375872c 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_fsync F
> -GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_read F
> GLIBC_2.1 aio_read64 F
> GLIBC_2.1 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index 459119e6de..a624e97cab 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -11,6 +11,8 @@ 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
> +GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_init F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> @@ -2334,6 +2336,8 @@ GLIBC_2.34 aio_cancel F
> GLIBC_2.34 aio_cancel64 F
> GLIBC_2.34 aio_error F
> GLIBC_2.34 aio_error64 F
> +GLIBC_2.34 aio_fsync F
> +GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 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 07dbd9a87b..8ac375872c 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_fsync F
> -GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_read F
> GLIBC_2.1 aio_read64 F
> GLIBC_2.1 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index c78e328a0f..c65022cdd9 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -1478,6 +1478,8 @@ 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
> +GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_init F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> @@ -2477,6 +2479,8 @@ GLIBC_2.34 aio_cancel F
> GLIBC_2.34 aio_cancel64 F
> GLIBC_2.34 aio_error F
> GLIBC_2.34 aio_error64 F
> +GLIBC_2.34 aio_fsync F
> +GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 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 e6990a5c82..183e0cbf21 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_fsync F
> -GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_read F
> GLIBC_2.1 aio_read64 F
> GLIBC_2.1 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index 3b4ef5f093..5e90b1e6f7 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -11,6 +11,8 @@ 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
> +GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_init F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> @@ -2313,6 +2315,8 @@ GLIBC_2.34 aio_cancel F
> GLIBC_2.34 aio_cancel64 F
> GLIBC_2.34 aio_error F
> GLIBC_2.34 aio_error64 F
> +GLIBC_2.34 aio_fsync F
> +GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 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 09ba914d65..f4dd36f97b 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_fsync F
> -GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_read F
> GLIBC_2.1 aio_read64 F
> GLIBC_2.1 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index 1d6e7030fc..3911e41a47 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -563,6 +563,8 @@ 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
> +GLIBC_2.2.5 aio_fsync64 F
> GLIBC_2.2.5 aio_init F
> GLIBC_2.2.5 alarm F
> GLIBC_2.2.5 alphasort F
> @@ -2269,6 +2271,8 @@ GLIBC_2.34 aio_cancel F
> GLIBC_2.34 aio_cancel64 F
> GLIBC_2.34 aio_error F
> GLIBC_2.34 aio_error64 F
> +GLIBC_2.34 aio_fsync F
> +GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 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 ef23d67e9d..f1cce35e0a 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_fsync F
> -GLIBC_2.2.5 aio_fsync64 F
> GLIBC_2.2.5 aio_read F
> GLIBC_2.2.5 aio_read64 F
> GLIBC_2.2.5 aio_return F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index 1480d7ada7..bae6dd505b 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -596,6 +596,8 @@ 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
> +GLIBC_2.16 aio_fsync64 F
> GLIBC_2.16 aio_init F
> GLIBC_2.16 alarm F
> GLIBC_2.16 aligned_alloc F
> @@ -2372,6 +2374,8 @@ GLIBC_2.34 aio_cancel F
> GLIBC_2.34 aio_cancel64 F
> GLIBC_2.34 aio_error F
> GLIBC_2.34 aio_error64 F
> +GLIBC_2.34 aio_fsync F
> +GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 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 629dd4fd75..acaa63d92f 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_fsync F
> -GLIBC_2.16 aio_fsync64 F
> GLIBC_2.16 aio_read F
> GLIBC_2.16 aio_read64 F
> GLIBC_2.16 aio_return F
>
Ok.
^ permalink raw reply [flat|nested] 72+ messages in thread
* [PATCH 14/34] Linux: Move aio_read, aio_read64 into libc
2021-06-17 18:56 [PATCH v2 00/34] Move librt into libc Florian Weimer
` (12 preceding siblings ...)
2021-06-17 18:57 ` [PATCH 13/34] Linux: Move aio_fsync, aio_fsync64 " Florian Weimer
@ 2021-06-17 18:58 ` Florian Weimer
2021-06-23 17:51 ` Adhemerval Zanella
2021-06-17 18:58 ` [PATCH 15/34] Linux: Move aio_return, aio_return64 " Florian Weimer
` (20 subsequent siblings)
34 siblings, 1 reply; 72+ messages in thread
From: Florian Weimer @ 2021-06-17 18:58 UTC (permalink / raw)
To: libc-alpha
Both symbols have to be moved at the same time because they
are intertwined for __WORDSIZE == 64. The treatment of this case
is also changed to match more closely how the other files suppress
the declaration of the *64 identifier.
The symbols were moved using scripts/move-symbol-to-libc.py.
---
rt/Makefile | 4 +-
rt/Versions | 6 ++-
rt/aio_read.c | 37 +++++++++++++++++--
rt/aio_read64.c | 20 ++++++++--
sysdeps/unix/sysv/linux/aarch64/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/aarch64/librt.abilist | 2 -
sysdeps/unix/sysv/linux/alpha/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/alpha/librt.abilist | 2 -
sysdeps/unix/sysv/linux/arc/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/arc/librt.abilist | 2 -
sysdeps/unix/sysv/linux/arm/be/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/arm/be/librt.abilist | 2 -
sysdeps/unix/sysv/linux/arm/le/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/arm/le/librt.abilist | 2 -
sysdeps/unix/sysv/linux/csky/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/csky/librt.abilist | 2 -
sysdeps/unix/sysv/linux/hppa/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/hppa/librt.abilist | 2 -
sysdeps/unix/sysv/linux/i386/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/i386/librt.abilist | 2 -
sysdeps/unix/sysv/linux/ia64/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/ia64/librt.abilist | 2 -
.../sysv/linux/m68k/coldfire/libc.abilist | 4 ++
.../sysv/linux/m68k/coldfire/librt.abilist | 2 -
.../unix/sysv/linux/m68k/m680x0/libc.abilist | 4 ++
.../unix/sysv/linux/m68k/m680x0/librt.abilist | 2 -
.../sysv/linux/microblaze/be/libc.abilist | 4 ++
.../sysv/linux/microblaze/be/librt.abilist | 2 -
.../sysv/linux/microblaze/le/libc.abilist | 4 ++
.../sysv/linux/microblaze/le/librt.abilist | 2 -
.../sysv/linux/mips/mips32/fpu/libc.abilist | 4 ++
.../unix/sysv/linux/mips/mips32/librt.abilist | 2 -
.../sysv/linux/mips/mips32/nofpu/libc.abilist | 4 ++
.../sysv/linux/mips/mips64/n32/libc.abilist | 4 ++
.../sysv/linux/mips/mips64/n32/librt.abilist | 2 -
.../sysv/linux/mips/mips64/n64/libc.abilist | 4 ++
.../sysv/linux/mips/mips64/n64/librt.abilist | 2 -
sysdeps/unix/sysv/linux/nios2/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/nios2/librt.abilist | 2 -
.../linux/powerpc/powerpc32/fpu/libc.abilist | 4 ++
.../linux/powerpc/powerpc32/librt.abilist | 2 -
.../powerpc/powerpc32/nofpu/libc.abilist | 4 ++
.../linux/powerpc/powerpc64/be/libc.abilist | 4 ++
.../linux/powerpc/powerpc64/be/librt.abilist | 2 -
.../linux/powerpc/powerpc64/le/libc.abilist | 4 ++
.../linux/powerpc/powerpc64/le/librt.abilist | 2 -
.../unix/sysv/linux/riscv/rv32/libc.abilist | 4 ++
.../unix/sysv/linux/riscv/rv32/librt.abilist | 2 -
.../unix/sysv/linux/riscv/rv64/libc.abilist | 4 ++
.../unix/sysv/linux/riscv/rv64/librt.abilist | 2 -
.../unix/sysv/linux/s390/s390-32/libc.abilist | 4 ++
.../sysv/linux/s390/s390-32/librt.abilist | 2 -
.../unix/sysv/linux/s390/s390-64/libc.abilist | 4 ++
.../sysv/linux/s390/s390-64/librt.abilist | 2 -
sysdeps/unix/sysv/linux/sh/be/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/sh/be/librt.abilist | 2 -
sysdeps/unix/sysv/linux/sh/le/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/sh/le/librt.abilist | 2 -
.../sysv/linux/sparc/sparc32/libc.abilist | 4 ++
.../sysv/linux/sparc/sparc32/librt.abilist | 2 -
.../sysv/linux/sparc/sparc64/libc.abilist | 4 ++
.../sysv/linux/sparc/sparc64/librt.abilist | 2 -
.../unix/sysv/linux/wordsize-64/aio_read.c | 7 ----
.../unix/sysv/linux/wordsize-64/aio_read64.c | 1 -
.../unix/sysv/linux/x86_64/64/libc.abilist | 4 ++
.../unix/sysv/linux/x86_64/64/librt.abilist | 2 -
.../unix/sysv/linux/x86_64/x32/libc.abilist | 4 ++
.../unix/sysv/linux/x86_64/x32/librt.abilist | 2 -
68 files changed, 185 insertions(+), 78 deletions(-)
delete mode 100644 sysdeps/unix/sysv/linux/wordsize-64/aio_read.c
delete mode 100644 sysdeps/unix/sysv/linux/wordsize-64/aio_read64.c
diff --git a/rt/Makefile b/rt/Makefile
index ca8c818a25..f080be56d5 100644
--- a/rt/Makefile
+++ b/rt/Makefile
@@ -29,8 +29,6 @@ routines = \
shm_unlink \
librt-routines = \
- aio_read \
- aio_read64 \
aio_return \
aio_suspend \
aio_write \
@@ -62,6 +60,8 @@ $(librt-routines-var) += \
aio_fsync \
aio_misc \
aio_notify \
+ aio_read \
+ aio_read64 \
aio_sigqueue \
tests := tst-shm tst-timer tst-timer2 \
diff --git a/rt/Versions b/rt/Versions
index 1a0aa77fd0..6db40bebc4 100644
--- a/rt/Versions
+++ b/rt/Versions
@@ -8,6 +8,8 @@ libc {
aio_error64;
aio_fsync;
aio_fsync64;
+ aio_read;
+ aio_read64;
%endif
}
GLIBC_2.2 {
@@ -23,6 +25,8 @@ libc {
aio_error64;
aio_fsync;
aio_fsync64;
+ aio_read;
+ aio_read64;
%endif
shm_open;
shm_unlink;
@@ -51,9 +55,9 @@ librt {
aio_fsync;
aio_fsync64;
aio_init;
-%endif
aio_read;
aio_read64;
+%endif
aio_return;
aio_return64;
aio_suspend;
diff --git a/rt/aio_read.c b/rt/aio_read.c
index 4698e48b1c..1b7a7fcfa9 100644
--- a/rt/aio_read.c
+++ b/rt/aio_read.c
@@ -17,14 +17,45 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <aio.h>
+#include <bits/wordsize.h>
+#if __WORDSIZE == 64
+/* We use an UGLY hack to prevent gcc from finding us cheating. The
+ implementation of aio_read and aio_read64 are identical and so
+ we want to avoid code duplication by using aliases. But gcc sees
+ the different parameter lists and prints a warning. We define here
+ a function so that aio_read64 has no prototype. */
+# define aio_read64 XXX
+# include <aio.h>
+/* And undo the hack. */
+# undef aio_read64
+#else
+# include <aio.h>
+#endif
#include <aio_misc.h>
-
+#include <shlib-compat.h>
int
-aio_read (struct aiocb *aiocbp)
+__aio_read (struct aiocb *aiocbp)
{
return (__aio_enqueue_request ((aiocb_union *) aiocbp, LIO_READ) == NULL
? -1 : 0);
}
+
+#if PTHREAD_IN_LIBC
+versioned_symbol (libc, __aio_read, aio_read, GLIBC_2_34);
+# if __WORDSIZE == 64
+versioned_symbol (libc, __aio_read, aio_read64, GLIBC_2_34);
+# endif
+# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_34)
+compat_symbol (librt, __aio_read, aio_read, GLIBC_2_1);
+# if __WORDSIZE == 64
+compat_symbol (librt, __aio_read, aio_read64, GLIBC_2_1);
+# endif
+# endif
+#else /* !PTHREAD_IN_LIBC */
+strong_alias (__aio_read, aio_read)
+# if __WORDSIZE == 64
+weak_alias (__aio_read, aio_read64)
+#endif
+#endif /* !PTHREAD_IN_LIBC */
diff --git a/rt/aio_read64.c b/rt/aio_read64.c
index 26b9b0b380..3aa169fbf3 100644
--- a/rt/aio_read64.c
+++ b/rt/aio_read64.c
@@ -17,14 +17,26 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <aio.h>
-
-#include <aio_misc.h>
+#include <bits/wordsize.h>
+#if __WORDSIZE != 64
+# include <aio.h>
+# include <aio_misc.h>
+# include <shlib-compat.h>
int
-aio_read64 (struct aiocb64 *aiocbp)
+__aio_read64 (struct aiocb64 *aiocbp)
{
return (__aio_enqueue_request ((aiocb_union *) aiocbp, LIO_READ64) == NULL
? -1 : 0);
}
+
+# if PTHREAD_IN_LIBC
+versioned_symbol (libc, __aio_read64, aio_read64, GLIBC_2_34);
+# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_34)
+compat_symbol (librt, __aio_read64, aio_read64, GLIBC_2_1);
+# endif
+# else /* !PTHREAD_IN_LIBC */
+strong_alias (__aio_read64, aio_read64)
+# endif
+#endif /* __WORDSIZE != 64 */
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index cf141fdf08..d210f88f0e 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -596,6 +596,8 @@ GLIBC_2.17 aio_error64 F
GLIBC_2.17 aio_fsync F
GLIBC_2.17 aio_fsync64 F
GLIBC_2.17 aio_init F
+GLIBC_2.17 aio_read F
+GLIBC_2.17 aio_read64 F
GLIBC_2.17 alarm F
GLIBC_2.17 aligned_alloc F
GLIBC_2.17 alphasort F
@@ -2362,6 +2364,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
index 1519e07346..58a853230e 100644
--- a/sysdeps/unix/sysv/linux/aarch64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
@@ -1,6 +1,4 @@
GLIBC_2.17 __mq_open_2 F
-GLIBC_2.17 aio_read F
-GLIBC_2.17 aio_read64 F
GLIBC_2.17 aio_return F
GLIBC_2.17 aio_return64 F
GLIBC_2.17 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 8d58f3ea87..08ea11c9fe 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -1509,6 +1509,8 @@ GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
+GLIBC_2.1 aio_read F
+GLIBC_2.1 aio_read64 F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
GLIBC_2.1 argp_error F
@@ -2457,6 +2459,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
index f4dd36f97b..2afa483191 100644
--- a/sysdeps/unix/sysv/linux/alpha/librt.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.1 aio_read F
-GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
GLIBC_2.1 aio_return64 F
GLIBC_2.1 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 7579936aca..817c4c6ff0 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -557,6 +557,8 @@ GLIBC_2.32 aio_error64 F
GLIBC_2.32 aio_fsync F
GLIBC_2.32 aio_fsync64 F
GLIBC_2.32 aio_init F
+GLIBC_2.32 aio_read F
+GLIBC_2.32 aio_read64 F
GLIBC_2.32 alarm F
GLIBC_2.32 aligned_alloc F
GLIBC_2.32 alphasort F
@@ -2121,6 +2123,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
index 15b9acf33c..e49be2ff36 100644
--- a/sysdeps/unix/sysv/linux/arc/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arc/librt.abilist
@@ -1,6 +1,4 @@
GLIBC_2.32 __mq_open_2 F
-GLIBC_2.32 aio_read F
-GLIBC_2.32 aio_read64 F
GLIBC_2.32 aio_return F
GLIBC_2.32 aio_return64 F
GLIBC_2.32 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 566d18d20a..0be92527af 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -285,6 +285,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
@@ -995,6 +997,8 @@ GLIBC_2.4 aio_error64 F
GLIBC_2.4 aio_fsync F
GLIBC_2.4 aio_fsync64 F
GLIBC_2.4 aio_init F
+GLIBC_2.4 aio_read F
+GLIBC_2.4 aio_read64 F
GLIBC_2.4 alarm F
GLIBC_2.4 alphasort F
GLIBC_2.4 alphasort64 F
diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
index 1fa78d6811..9a68bb887b 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -3,8 +3,6 @@ GLIBC_2.34 __mq_timedreceive_time64 F
GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
-GLIBC_2.4 aio_read F
-GLIBC_2.4 aio_read64 F
GLIBC_2.4 aio_return F
GLIBC_2.4 aio_return64 F
GLIBC_2.4 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 40da72fe92..615b37769a 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -282,6 +282,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
@@ -992,6 +994,8 @@ GLIBC_2.4 aio_error64 F
GLIBC_2.4 aio_fsync F
GLIBC_2.4 aio_fsync64 F
GLIBC_2.4 aio_init F
+GLIBC_2.4 aio_read F
+GLIBC_2.4 aio_read64 F
GLIBC_2.4 alarm F
GLIBC_2.4 alphasort F
GLIBC_2.4 alphasort64 F
diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
index 1fa78d6811..9a68bb887b 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -3,8 +3,6 @@ GLIBC_2.34 __mq_timedreceive_time64 F
GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
-GLIBC_2.4 aio_read F
-GLIBC_2.4 aio_read64 F
GLIBC_2.4 aio_return F
GLIBC_2.4 aio_return64 F
GLIBC_2.4 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index b0e1eab37e..e77bb5b57b 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -571,6 +571,8 @@ GLIBC_2.29 aio_error64 F
GLIBC_2.29 aio_fsync F
GLIBC_2.29 aio_fsync64 F
GLIBC_2.29 aio_init F
+GLIBC_2.29 aio_read F
+GLIBC_2.29 aio_read64 F
GLIBC_2.29 alarm F
GLIBC_2.29 aligned_alloc F
GLIBC_2.29 alphasort F
@@ -2381,6 +2383,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
index 9c3edc9f2f..93475f5bd5 100644
--- a/sysdeps/unix/sysv/linux/csky/librt.abilist
+++ b/sysdeps/unix/sysv/linux/csky/librt.abilist
@@ -1,6 +1,4 @@
GLIBC_2.29 __mq_open_2 F
-GLIBC_2.29 aio_read F
-GLIBC_2.29 aio_read64 F
GLIBC_2.29 aio_return F
GLIBC_2.29 aio_return64 F
GLIBC_2.29 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 463b498665..12704a350a 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -10,6 +10,8 @@ GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
+GLIBC_2.1 aio_read F
+GLIBC_2.1 aio_read64 F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.10 __cxa_at_quick_exit F
@@ -2335,6 +2337,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
index 8ac375872c..0402dcddcc 100644
--- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.1 aio_read F
-GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
GLIBC_2.1 aio_return64 F
GLIBC_2.1 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 2015282000..67d1fbcade 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -1482,6 +1482,8 @@ GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
+GLIBC_2.1 aio_read F
+GLIBC_2.1 aio_read64 F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
GLIBC_2.1 argp_error F
@@ -2519,6 +2521,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
index 8ac375872c..0402dcddcc 100644
--- a/sysdeps/unix/sysv/linux/i386/librt.abilist
+++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.1 aio_read F
-GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
GLIBC_2.1 aio_return64 F
GLIBC_2.1 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index f83ba75cac..83d6bbfdf2 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -10,6 +10,8 @@ GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
+GLIBC_2.1 aio_read F
+GLIBC_2.1 aio_read64 F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.10 __cxa_at_quick_exit F
@@ -2295,6 +2297,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
index 38dd6dfb53..152692a5a6 100644
--- a/sysdeps/unix/sysv/linux/ia64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.1 aio_read F
-GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
GLIBC_2.1 aio_return64 F
GLIBC_2.1 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index a0ca9ddc48..537df59369 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -286,6 +286,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
@@ -983,6 +985,8 @@ GLIBC_2.4 aio_error64 F
GLIBC_2.4 aio_fsync F
GLIBC_2.4 aio_fsync64 F
GLIBC_2.4 aio_init F
+GLIBC_2.4 aio_read F
+GLIBC_2.4 aio_read64 F
GLIBC_2.4 alarm F
GLIBC_2.4 alphasort F
GLIBC_2.4 alphasort64 F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
index 1fa78d6811..9a68bb887b 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -3,8 +3,6 @@ GLIBC_2.34 __mq_timedreceive_time64 F
GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
-GLIBC_2.4 aio_read F
-GLIBC_2.4 aio_read64 F
GLIBC_2.4 aio_return F
GLIBC_2.4 aio_return64 F
GLIBC_2.4 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index bef73ca536..fefee687b2 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -1480,6 +1480,8 @@ GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
+GLIBC_2.1 aio_read F
+GLIBC_2.1 aio_read64 F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
GLIBC_2.1 argp_error F
@@ -2462,6 +2464,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
index 8ac375872c..0402dcddcc 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.1 aio_read F
-GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
GLIBC_2.1 aio_return64 F
GLIBC_2.1 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 1f2c7f0fd9..635b62cd31 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -598,6 +598,8 @@ GLIBC_2.18 aio_error64 F
GLIBC_2.18 aio_fsync F
GLIBC_2.18 aio_fsync64 F
GLIBC_2.18 aio_init F
+GLIBC_2.18 aio_read F
+GLIBC_2.18 aio_read64 F
GLIBC_2.18 alarm F
GLIBC_2.18 aligned_alloc F
GLIBC_2.18 alphasort F
@@ -2432,6 +2434,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
index 87eeccd69c..34f5bc3964 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
@@ -1,6 +1,4 @@
GLIBC_2.18 __mq_open_2 F
-GLIBC_2.18 aio_read F
-GLIBC_2.18 aio_read64 F
GLIBC_2.18 aio_return F
GLIBC_2.18 aio_return64 F
GLIBC_2.18 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 191db5f985..cce81d50da 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -598,6 +598,8 @@ GLIBC_2.18 aio_error64 F
GLIBC_2.18 aio_fsync F
GLIBC_2.18 aio_fsync64 F
GLIBC_2.18 aio_init F
+GLIBC_2.18 aio_read F
+GLIBC_2.18 aio_read64 F
GLIBC_2.18 alarm F
GLIBC_2.18 aligned_alloc F
GLIBC_2.18 alphasort F
@@ -2429,6 +2431,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
index 87eeccd69c..34f5bc3964 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
@@ -1,6 +1,4 @@
GLIBC_2.18 __mq_open_2 F
-GLIBC_2.18 aio_read F
-GLIBC_2.18 aio_read64 F
GLIBC_2.18 aio_return F
GLIBC_2.18 aio_return64 F
GLIBC_2.18 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 5eb630a9f5..d4e0f597ba 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -1658,6 +1658,8 @@ GLIBC_2.2 aio_error64 F
GLIBC_2.2 aio_fsync F
GLIBC_2.2 aio_fsync64 F
GLIBC_2.2 aio_init F
+GLIBC_2.2 aio_read F
+GLIBC_2.2 aio_read64 F
GLIBC_2.2 alphasort64 F
GLIBC_2.2 argp_err_exit_status D 0x4
GLIBC_2.2 argp_error F
@@ -2427,6 +2429,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
index 9e2c283942..d886f0376c 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.2 aio_read F
-GLIBC_2.2 aio_read64 F
GLIBC_2.2 aio_return F
GLIBC_2.2 aio_return64 F
GLIBC_2.2 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index a1b8e02ca4..757c40c34c 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -1656,6 +1656,8 @@ GLIBC_2.2 aio_error64 F
GLIBC_2.2 aio_fsync F
GLIBC_2.2 aio_fsync64 F
GLIBC_2.2 aio_init F
+GLIBC_2.2 aio_read F
+GLIBC_2.2 aio_read64 F
GLIBC_2.2 alphasort64 F
GLIBC_2.2 argp_err_exit_status D 0x4
GLIBC_2.2 argp_error F
@@ -2425,6 +2427,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index dd33f448b7..d1c919b14f 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -1657,6 +1657,8 @@ GLIBC_2.2 aio_error64 F
GLIBC_2.2 aio_fsync F
GLIBC_2.2 aio_fsync64 F
GLIBC_2.2 aio_init F
+GLIBC_2.2 aio_read F
+GLIBC_2.2 aio_read64 F
GLIBC_2.2 alphasort64 F
GLIBC_2.2 argp_err_exit_status D 0x4
GLIBC_2.2 argp_error F
@@ -2433,6 +2435,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
index 9e2c283942..d886f0376c 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.2 aio_read F
-GLIBC_2.2 aio_read64 F
GLIBC_2.2 aio_return F
GLIBC_2.2 aio_return64 F
GLIBC_2.2 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index efda95dd32..6c3dd08461 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -1653,6 +1653,8 @@ GLIBC_2.2 aio_error64 F
GLIBC_2.2 aio_fsync F
GLIBC_2.2 aio_fsync64 F
GLIBC_2.2 aio_init F
+GLIBC_2.2 aio_read F
+GLIBC_2.2 aio_read64 F
GLIBC_2.2 alphasort64 F
GLIBC_2.2 argp_err_exit_status D 0x4
GLIBC_2.2 argp_error F
@@ -2351,6 +2353,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
index 848a39faae..6c94c34024 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.2 aio_read F
-GLIBC_2.2 aio_read64 F
GLIBC_2.2 aio_return F
GLIBC_2.2 aio_return64 F
GLIBC_2.2 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index e2739a9145..160e1d491e 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -640,6 +640,8 @@ GLIBC_2.21 aio_error64 F
GLIBC_2.21 aio_fsync F
GLIBC_2.21 aio_fsync64 F
GLIBC_2.21 aio_init F
+GLIBC_2.21 aio_read F
+GLIBC_2.21 aio_read64 F
GLIBC_2.21 alarm F
GLIBC_2.21 aligned_alloc F
GLIBC_2.21 alphasort F
@@ -2471,6 +2473,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
index 24472cb04f..7d197b8c5d 100644
--- a/sysdeps/unix/sysv/linux/nios2/librt.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/librt.abilist
@@ -1,6 +1,4 @@
GLIBC_2.21 __mq_open_2 F
-GLIBC_2.21 aio_read F
-GLIBC_2.21 aio_read64 F
GLIBC_2.21 aio_return F
GLIBC_2.21 aio_return64 F
GLIBC_2.21 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 6c816268cd..2923d162e0 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -1487,6 +1487,8 @@ GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
+GLIBC_2.1 aio_read F
+GLIBC_2.1 aio_read64 F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
GLIBC_2.1 argp_error F
@@ -2489,6 +2491,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
index 8ac375872c..0402dcddcc 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.1 aio_read F
-GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
GLIBC_2.1 aio_return64 F
GLIBC_2.1 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 03dadcef85..b6feabe5e4 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -1487,6 +1487,8 @@ GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
+GLIBC_2.1 aio_read F
+GLIBC_2.1 aio_read64 F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
GLIBC_2.1 argp_error F
@@ -2522,6 +2524,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index c355eb4607..b149e31698 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -640,6 +640,8 @@ GLIBC_2.3 aio_error64 F
GLIBC_2.3 aio_fsync F
GLIBC_2.3 aio_fsync64 F
GLIBC_2.3 aio_init F
+GLIBC_2.3 aio_read F
+GLIBC_2.3 aio_read64 F
GLIBC_2.3 alarm F
GLIBC_2.3 alphasort F
GLIBC_2.3 alphasort64 F
@@ -2259,6 +2261,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
index 951344a6ef..d0ddb7852e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.3 aio_read F
-GLIBC_2.3 aio_read64 F
GLIBC_2.3 aio_return F
GLIBC_2.3 aio_return64 F
GLIBC_2.3 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index abe39f4a96..607abc7f32 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -684,6 +684,8 @@ GLIBC_2.17 aio_error64 F
GLIBC_2.17 aio_fsync F
GLIBC_2.17 aio_fsync64 F
GLIBC_2.17 aio_init F
+GLIBC_2.17 aio_read F
+GLIBC_2.17 aio_read64 F
GLIBC_2.17 alarm F
GLIBC_2.17 aligned_alloc F
GLIBC_2.17 alphasort F
@@ -2558,6 +2560,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
index 1519e07346..58a853230e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
@@ -1,6 +1,4 @@
GLIBC_2.17 __mq_open_2 F
-GLIBC_2.17 aio_read F
-GLIBC_2.17 aio_read64 F
GLIBC_2.17 aio_return F
GLIBC_2.17 aio_return64 F
GLIBC_2.17 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 585c9b7cf7..de26c22e23 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -551,6 +551,8 @@ GLIBC_2.33 aio_error64 F
GLIBC_2.33 aio_fsync F
GLIBC_2.33 aio_fsync64 F
GLIBC_2.33 aio_init F
+GLIBC_2.33 aio_read F
+GLIBC_2.33 aio_read64 F
GLIBC_2.33 alarm F
GLIBC_2.33 aligned_alloc F
GLIBC_2.33 alphasort F
@@ -2123,6 +2125,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
index 8e30efa6a1..8e15ebe652 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
@@ -1,6 +1,4 @@
GLIBC_2.33 __mq_open_2 F
-GLIBC_2.33 aio_read F
-GLIBC_2.33 aio_read64 F
GLIBC_2.33 aio_return F
GLIBC_2.33 aio_return64 F
GLIBC_2.33 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index d8aa40cb34..d0ca205432 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -577,6 +577,8 @@ GLIBC_2.27 aio_error64 F
GLIBC_2.27 aio_fsync F
GLIBC_2.27 aio_fsync64 F
GLIBC_2.27 aio_init F
+GLIBC_2.27 aio_read F
+GLIBC_2.27 aio_read64 F
GLIBC_2.27 alarm F
GLIBC_2.27 aligned_alloc F
GLIBC_2.27 alphasort F
@@ -2323,6 +2325,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
index 7145c7d249..fe48c3cfea 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
@@ -1,6 +1,4 @@
GLIBC_2.27 __mq_open_2 F
-GLIBC_2.27 aio_read F
-GLIBC_2.27 aio_read64 F
GLIBC_2.27 aio_return F
GLIBC_2.27 aio_return64 F
GLIBC_2.27 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 52a7d18745..a773148442 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -1479,6 +1479,8 @@ GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
+GLIBC_2.1 aio_read F
+GLIBC_2.1 aio_read64 F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
GLIBC_2.1 argp_error F
@@ -2487,6 +2489,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
index 8ac375872c..0402dcddcc 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.1 aio_read F
-GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
GLIBC_2.1 aio_return64 F
GLIBC_2.1 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 1078e94135..14899f40f7 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -577,6 +577,8 @@ GLIBC_2.2 aio_error64 F
GLIBC_2.2 aio_fsync F
GLIBC_2.2 aio_fsync64 F
GLIBC_2.2 aio_init F
+GLIBC_2.2 aio_read F
+GLIBC_2.2 aio_read64 F
GLIBC_2.2 alarm F
GLIBC_2.2 alphasort F
GLIBC_2.2 alphasort64 F
@@ -2296,6 +2298,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
index 0396a04bd2..a65683ca9d 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.2 aio_read F
-GLIBC_2.2 aio_read64 F
GLIBC_2.2 aio_return F
GLIBC_2.2 aio_return64 F
GLIBC_2.2 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 90c2a79d6e..a255e3eeac 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -14,6 +14,8 @@ GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
+GLIBC_2.1 aio_read F
+GLIBC_2.1 aio_read64 F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.10 __cxa_at_quick_exit F
@@ -2342,6 +2344,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
index 8ac375872c..0402dcddcc 100644
--- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.1 aio_read F
-GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
GLIBC_2.1 aio_return64 F
GLIBC_2.1 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index a624e97cab..45c49ba662 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -14,6 +14,8 @@ GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
+GLIBC_2.1 aio_read F
+GLIBC_2.1 aio_read64 F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.10 __cxa_at_quick_exit F
@@ -2339,6 +2341,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
index 8ac375872c..0402dcddcc 100644
--- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.1 aio_read F
-GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
GLIBC_2.1 aio_return64 F
GLIBC_2.1 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index c65022cdd9..07a68d78e3 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -1481,6 +1481,8 @@ GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
+GLIBC_2.1 aio_read F
+GLIBC_2.1 aio_read64 F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
GLIBC_2.1 argp_error F
@@ -2482,6 +2484,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
index 183e0cbf21..2202b8ef5f 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.1 aio_read F
-GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
GLIBC_2.1 aio_return64 F
GLIBC_2.1 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 5e90b1e6f7..8b549e7efc 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -14,6 +14,8 @@ GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
+GLIBC_2.1 aio_read F
+GLIBC_2.1 aio_read64 F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.10 __cxa_at_quick_exit F
@@ -2318,6 +2320,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
index f4dd36f97b..2afa483191 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.1 aio_read F
-GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
GLIBC_2.1 aio_return64 F
GLIBC_2.1 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/wordsize-64/aio_read.c b/sysdeps/unix/sysv/linux/wordsize-64/aio_read.c
deleted file mode 100644
index 8310b484d0..0000000000
--- a/sysdeps/unix/sysv/linux/wordsize-64/aio_read.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#define aio_read64 __renamed_aio_read64
-
-#include <rt/aio_read.c>
-
-#undef aio_read64
-
-weak_alias (aio_read, aio_read64)
diff --git a/sysdeps/unix/sysv/linux/wordsize-64/aio_read64.c b/sysdeps/unix/sysv/linux/wordsize-64/aio_read64.c
deleted file mode 100644
index 6a6a102c8d..0000000000
--- a/sysdeps/unix/sysv/linux/wordsize-64/aio_read64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* Defined in aio_read.c. */
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 3911e41a47..e8d70016a6 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -566,6 +566,8 @@ GLIBC_2.2.5 aio_error64 F
GLIBC_2.2.5 aio_fsync F
GLIBC_2.2.5 aio_fsync64 F
GLIBC_2.2.5 aio_init F
+GLIBC_2.2.5 aio_read F
+GLIBC_2.2.5 aio_read64 F
GLIBC_2.2.5 alarm F
GLIBC_2.2.5 alphasort F
GLIBC_2.2.5 alphasort64 F
@@ -2274,6 +2276,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
index f1cce35e0a..e9d2aeb05b 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.2.5 aio_read F
-GLIBC_2.2.5 aio_read64 F
GLIBC_2.2.5 aio_return F
GLIBC_2.2.5 aio_return64 F
GLIBC_2.2.5 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index bae6dd505b..40921d5579 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -599,6 +599,8 @@ GLIBC_2.16 aio_error64 F
GLIBC_2.16 aio_fsync F
GLIBC_2.16 aio_fsync64 F
GLIBC_2.16 aio_init F
+GLIBC_2.16 aio_read F
+GLIBC_2.16 aio_read64 F
GLIBC_2.16 alarm F
GLIBC_2.16 aligned_alloc F
GLIBC_2.16 alphasort F
@@ -2377,6 +2379,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
index acaa63d92f..bbd0f42caa 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
@@ -1,6 +1,4 @@
GLIBC_2.16 __mq_open_2 F
-GLIBC_2.16 aio_read F
-GLIBC_2.16 aio_read64 F
GLIBC_2.16 aio_return F
GLIBC_2.16 aio_return64 F
GLIBC_2.16 aio_suspend F
--
2.31.1
^ permalink raw reply [flat|nested] 72+ messages in thread
* Re: [PATCH 14/34] Linux: Move aio_read, aio_read64 into libc
2021-06-17 18:58 ` [PATCH 14/34] Linux: Move aio_read, aio_read64 " Florian Weimer
@ 2021-06-23 17:51 ` Adhemerval Zanella
2021-06-25 9:53 ` Florian Weimer
0 siblings, 1 reply; 72+ messages in thread
From: Adhemerval Zanella @ 2021-06-23 17:51 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 17/06/2021 15:58, Florian Weimer via Libc-alpha wrote:
> Both symbols have to be moved at the same time because they
> are intertwined for __WORDSIZE == 64. The treatment of this case
> is also changed to match more closely how the other files suppress
> the declaration of the *64 identifier.
As a side note, I think __WORDSIZE is not reall correct here since
we not have 32-bit architecture that only defines 64-bit off_t.
This will incur in a double implementation that would be essentially
the same, it should not be an error but I think we should fix it
eventually.
>
> The symbols were moved using scripts/move-symbol-to-libc.py.
LGTM, thanks. Just a nit below.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> ---
> rt/Makefile | 4 +-
> rt/Versions | 6 ++-
> rt/aio_read.c | 37 +++++++++++++++++--
> rt/aio_read64.c | 20 ++++++++--
> sysdeps/unix/sysv/linux/aarch64/libc.abilist | 4 ++
> sysdeps/unix/sysv/linux/aarch64/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/alpha/libc.abilist | 4 ++
> sysdeps/unix/sysv/linux/alpha/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/arc/libc.abilist | 4 ++
> sysdeps/unix/sysv/linux/arc/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/arm/be/libc.abilist | 4 ++
> sysdeps/unix/sysv/linux/arm/be/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/arm/le/libc.abilist | 4 ++
> sysdeps/unix/sysv/linux/arm/le/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/csky/libc.abilist | 4 ++
> sysdeps/unix/sysv/linux/csky/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/hppa/libc.abilist | 4 ++
> sysdeps/unix/sysv/linux/hppa/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/i386/libc.abilist | 4 ++
> sysdeps/unix/sysv/linux/i386/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/ia64/libc.abilist | 4 ++
> sysdeps/unix/sysv/linux/ia64/librt.abilist | 2 -
> .../sysv/linux/m68k/coldfire/libc.abilist | 4 ++
> .../sysv/linux/m68k/coldfire/librt.abilist | 2 -
> .../unix/sysv/linux/m68k/m680x0/libc.abilist | 4 ++
> .../unix/sysv/linux/m68k/m680x0/librt.abilist | 2 -
> .../sysv/linux/microblaze/be/libc.abilist | 4 ++
> .../sysv/linux/microblaze/be/librt.abilist | 2 -
> .../sysv/linux/microblaze/le/libc.abilist | 4 ++
> .../sysv/linux/microblaze/le/librt.abilist | 2 -
> .../sysv/linux/mips/mips32/fpu/libc.abilist | 4 ++
> .../unix/sysv/linux/mips/mips32/librt.abilist | 2 -
> .../sysv/linux/mips/mips32/nofpu/libc.abilist | 4 ++
> .../sysv/linux/mips/mips64/n32/libc.abilist | 4 ++
> .../sysv/linux/mips/mips64/n32/librt.abilist | 2 -
> .../sysv/linux/mips/mips64/n64/libc.abilist | 4 ++
> .../sysv/linux/mips/mips64/n64/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/nios2/libc.abilist | 4 ++
> sysdeps/unix/sysv/linux/nios2/librt.abilist | 2 -
> .../linux/powerpc/powerpc32/fpu/libc.abilist | 4 ++
> .../linux/powerpc/powerpc32/librt.abilist | 2 -
> .../powerpc/powerpc32/nofpu/libc.abilist | 4 ++
> .../linux/powerpc/powerpc64/be/libc.abilist | 4 ++
> .../linux/powerpc/powerpc64/be/librt.abilist | 2 -
> .../linux/powerpc/powerpc64/le/libc.abilist | 4 ++
> .../linux/powerpc/powerpc64/le/librt.abilist | 2 -
> .../unix/sysv/linux/riscv/rv32/libc.abilist | 4 ++
> .../unix/sysv/linux/riscv/rv32/librt.abilist | 2 -
> .../unix/sysv/linux/riscv/rv64/libc.abilist | 4 ++
> .../unix/sysv/linux/riscv/rv64/librt.abilist | 2 -
> .../unix/sysv/linux/s390/s390-32/libc.abilist | 4 ++
> .../sysv/linux/s390/s390-32/librt.abilist | 2 -
> .../unix/sysv/linux/s390/s390-64/libc.abilist | 4 ++
> .../sysv/linux/s390/s390-64/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/sh/be/libc.abilist | 4 ++
> sysdeps/unix/sysv/linux/sh/be/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/sh/le/libc.abilist | 4 ++
> sysdeps/unix/sysv/linux/sh/le/librt.abilist | 2 -
> .../sysv/linux/sparc/sparc32/libc.abilist | 4 ++
> .../sysv/linux/sparc/sparc32/librt.abilist | 2 -
> .../sysv/linux/sparc/sparc64/libc.abilist | 4 ++
> .../sysv/linux/sparc/sparc64/librt.abilist | 2 -
> .../unix/sysv/linux/wordsize-64/aio_read.c | 7 ----
> .../unix/sysv/linux/wordsize-64/aio_read64.c | 1 -
> .../unix/sysv/linux/x86_64/64/libc.abilist | 4 ++
> .../unix/sysv/linux/x86_64/64/librt.abilist | 2 -
> .../unix/sysv/linux/x86_64/x32/libc.abilist | 4 ++
> .../unix/sysv/linux/x86_64/x32/librt.abilist | 2 -
> 68 files changed, 185 insertions(+), 78 deletions(-)
> delete mode 100644 sysdeps/unix/sysv/linux/wordsize-64/aio_read.c
> delete mode 100644 sysdeps/unix/sysv/linux/wordsize-64/aio_read64.c
>
> diff --git a/rt/Makefile b/rt/Makefile
> index ca8c818a25..f080be56d5 100644
> --- a/rt/Makefile
> +++ b/rt/Makefile
> @@ -29,8 +29,6 @@ routines = \
> shm_unlink \
>
> librt-routines = \
> - aio_read \
> - aio_read64 \
> aio_return \
> aio_suspend \
> aio_write \
> @@ -62,6 +60,8 @@ $(librt-routines-var) += \
> aio_fsync \
> aio_misc \
> aio_notify \
> + aio_read \
> + aio_read64 \
> aio_sigqueue \
>
> tests := tst-shm tst-timer tst-timer2 \
Ok.
> diff --git a/rt/Versions b/rt/Versions
> index 1a0aa77fd0..6db40bebc4 100644
> --- a/rt/Versions
> +++ b/rt/Versions
> @@ -8,6 +8,8 @@ libc {
> aio_error64;
> aio_fsync;
> aio_fsync64;
> + aio_read;
> + aio_read64;
> %endif
> }
> GLIBC_2.2 {
> @@ -23,6 +25,8 @@ libc {
> aio_error64;
> aio_fsync;
> aio_fsync64;
> + aio_read;
> + aio_read64;
> %endif
> shm_open;
> shm_unlink;
> @@ -51,9 +55,9 @@ librt {
> aio_fsync;
> aio_fsync64;
> aio_init;
> -%endif
> aio_read;
> aio_read64;
> +%endif
> aio_return;
> aio_return64;
> aio_suspend;
__WORDSIZE
> diff --git a/rt/aio_read.c b/rt/aio_read.c
> index 4698e48b1c..1b7a7fcfa9 100644
> --- a/rt/aio_read.c
> +++ b/rt/aio_read.c
> @@ -17,14 +17,45 @@
> License along with the GNU C Library; if not, see
> <https://www.gnu.org/licenses/>. */
>
> -#include <aio.h>
> +#include <bits/wordsize.h>
> +#if __WORDSIZE == 64
> +/* We use an UGLY hack to prevent gcc from finding us cheating. The
> + implementation of aio_read and aio_read64 are identical and so
> + we want to avoid code duplication by using aliases. But gcc sees
> + the different parameter lists and prints a warning. We define here
> + a function so that aio_read64 has no prototype. */
I think there is no need to replicate this comment anymore, this 'hack'
is used on multiple places (LFS).
> +# define aio_read64 XXX
> +# include <aio.h>
> +/* And undo the hack. */
> +# undef aio_read64
> +#else
> +# include <aio.h>
> +#endif
>
> #include <aio_misc.h>
> -
> +#include <shlib-compat.h>
>
> int
> -aio_read (struct aiocb *aiocbp)
> +__aio_read (struct aiocb *aiocbp)
> {
> return (__aio_enqueue_request ((aiocb_union *) aiocbp, LIO_READ) == NULL
> ? -1 : 0);
> }
> +
> +#if PTHREAD_IN_LIBC
> +versioned_symbol (libc, __aio_read, aio_read, GLIBC_2_34);
> +# if __WORDSIZE == 64
> +versioned_symbol (libc, __aio_read, aio_read64, GLIBC_2_34);
> +# endif
> +# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_34)
> +compat_symbol (librt, __aio_read, aio_read, GLIBC_2_1);
> +# if __WORDSIZE == 64
> +compat_symbol (librt, __aio_read, aio_read64, GLIBC_2_1);
> +# endif
> +# endif
> +#else /* !PTHREAD_IN_LIBC */
> +strong_alias (__aio_read, aio_read)
> +# if __WORDSIZE == 64
> +weak_alias (__aio_read, aio_read64)
> +#endif
> +#endif /* !PTHREAD_IN_LIBC */
Ok.
> diff --git a/rt/aio_read64.c b/rt/aio_read64.c
> index 26b9b0b380..3aa169fbf3 100644
> --- a/rt/aio_read64.c
> +++ b/rt/aio_read64.c
> @@ -17,14 +17,26 @@
> License along with the GNU C Library; if not, see
> <https://www.gnu.org/licenses/>. */
>
> -#include <aio.h>
> -
> -#include <aio_misc.h>
> +#include <bits/wordsize.h>
> +#if __WORDSIZE != 64
>
> +# include <aio.h>
> +# include <aio_misc.h>
> +# include <shlib-compat.h>
>
> int
> -aio_read64 (struct aiocb64 *aiocbp)
> +__aio_read64 (struct aiocb64 *aiocbp)
> {
> return (__aio_enqueue_request ((aiocb_union *) aiocbp, LIO_READ64) == NULL
> ? -1 : 0);
> }
> +
> +# if PTHREAD_IN_LIBC
> +versioned_symbol (libc, __aio_read64, aio_read64, GLIBC_2_34);
> +# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_34)
> +compat_symbol (librt, __aio_read64, aio_read64, GLIBC_2_1);
> +# endif
> +# else /* !PTHREAD_IN_LIBC */
> +strong_alias (__aio_read64, aio_read64)
> +# endif
> +#endif /* __WORDSIZE != 64 */
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index cf141fdf08..d210f88f0e 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -596,6 +596,8 @@ GLIBC_2.17 aio_error64 F
> GLIBC_2.17 aio_fsync F
> GLIBC_2.17 aio_fsync64 F
> GLIBC_2.17 aio_init F
> +GLIBC_2.17 aio_read F
> +GLIBC_2.17 aio_read64 F
> GLIBC_2.17 alarm F
> GLIBC_2.17 aligned_alloc F
> GLIBC_2.17 alphasort F
> @@ -2362,6 +2364,8 @@ GLIBC_2.34 aio_error64 F
> GLIBC_2.34 aio_fsync F
> GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> index 1519e07346..58a853230e 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> @@ -1,6 +1,4 @@
> GLIBC_2.17 __mq_open_2 F
> -GLIBC_2.17 aio_read F
> -GLIBC_2.17 aio_read64 F
> GLIBC_2.17 aio_return F
> GLIBC_2.17 aio_return64 F
> GLIBC_2.17 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index 8d58f3ea87..08ea11c9fe 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -1509,6 +1509,8 @@ GLIBC_2.1 aio_error64 F
> GLIBC_2.1 aio_fsync F
> GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_init F
> +GLIBC_2.1 aio_read F
> +GLIBC_2.1 aio_read64 F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> GLIBC_2.1 argp_error F
> @@ -2457,6 +2459,8 @@ GLIBC_2.34 aio_error64 F
> GLIBC_2.34 aio_fsync F
> GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
> index f4dd36f97b..2afa483191 100644
> --- a/sysdeps/unix/sysv/linux/alpha/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.1 aio_read F
> -GLIBC_2.1 aio_read64 F
> GLIBC_2.1 aio_return F
> GLIBC_2.1 aio_return64 F
> GLIBC_2.1 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index 7579936aca..817c4c6ff0 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -557,6 +557,8 @@ GLIBC_2.32 aio_error64 F
> GLIBC_2.32 aio_fsync F
> GLIBC_2.32 aio_fsync64 F
> GLIBC_2.32 aio_init F
> +GLIBC_2.32 aio_read F
> +GLIBC_2.32 aio_read64 F
> GLIBC_2.32 alarm F
> GLIBC_2.32 aligned_alloc F
> GLIBC_2.32 alphasort F
> @@ -2121,6 +2123,8 @@ GLIBC_2.34 aio_error64 F
> GLIBC_2.34 aio_fsync F
> GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
> index 15b9acf33c..e49be2ff36 100644
> --- a/sysdeps/unix/sysv/linux/arc/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/librt.abilist
> @@ -1,6 +1,4 @@
> GLIBC_2.32 __mq_open_2 F
> -GLIBC_2.32 aio_read F
> -GLIBC_2.32 aio_read64 F
> GLIBC_2.32 aio_return F
> GLIBC_2.32 aio_return64 F
> GLIBC_2.32 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index 566d18d20a..0be92527af 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -285,6 +285,8 @@ GLIBC_2.34 aio_error64 F
> GLIBC_2.34 aio_fsync F
> GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> @@ -995,6 +997,8 @@ GLIBC_2.4 aio_error64 F
> GLIBC_2.4 aio_fsync F
> GLIBC_2.4 aio_fsync64 F
> GLIBC_2.4 aio_init F
> +GLIBC_2.4 aio_read F
> +GLIBC_2.4 aio_read64 F
> GLIBC_2.4 alarm F
> GLIBC_2.4 alphasort F
> GLIBC_2.4 alphasort64 F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> index 1fa78d6811..9a68bb887b 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> @@ -3,8 +3,6 @@ GLIBC_2.34 __mq_timedreceive_time64 F
> GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> -GLIBC_2.4 aio_read F
> -GLIBC_2.4 aio_read64 F
> GLIBC_2.4 aio_return F
> GLIBC_2.4 aio_return64 F
> GLIBC_2.4 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index 40da72fe92..615b37769a 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -282,6 +282,8 @@ GLIBC_2.34 aio_error64 F
> GLIBC_2.34 aio_fsync F
> GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> @@ -992,6 +994,8 @@ GLIBC_2.4 aio_error64 F
> GLIBC_2.4 aio_fsync F
> GLIBC_2.4 aio_fsync64 F
> GLIBC_2.4 aio_init F
> +GLIBC_2.4 aio_read F
> +GLIBC_2.4 aio_read64 F
> GLIBC_2.4 alarm F
> GLIBC_2.4 alphasort F
> GLIBC_2.4 alphasort64 F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> index 1fa78d6811..9a68bb887b 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> @@ -3,8 +3,6 @@ GLIBC_2.34 __mq_timedreceive_time64 F
> GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> -GLIBC_2.4 aio_read F
> -GLIBC_2.4 aio_read64 F
> GLIBC_2.4 aio_return F
> GLIBC_2.4 aio_return64 F
> GLIBC_2.4 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index b0e1eab37e..e77bb5b57b 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -571,6 +571,8 @@ GLIBC_2.29 aio_error64 F
> GLIBC_2.29 aio_fsync F
> GLIBC_2.29 aio_fsync64 F
> GLIBC_2.29 aio_init F
> +GLIBC_2.29 aio_read F
> +GLIBC_2.29 aio_read64 F
> GLIBC_2.29 alarm F
> GLIBC_2.29 aligned_alloc F
> GLIBC_2.29 alphasort F
> @@ -2381,6 +2383,8 @@ GLIBC_2.34 aio_error64 F
> GLIBC_2.34 aio_fsync F
> GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
> index 9c3edc9f2f..93475f5bd5 100644
> --- a/sysdeps/unix/sysv/linux/csky/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/librt.abilist
> @@ -1,6 +1,4 @@
> GLIBC_2.29 __mq_open_2 F
> -GLIBC_2.29 aio_read F
> -GLIBC_2.29 aio_read64 F
> GLIBC_2.29 aio_return F
> GLIBC_2.29 aio_return64 F
> GLIBC_2.29 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index 463b498665..12704a350a 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -10,6 +10,8 @@ GLIBC_2.1 aio_error64 F
> GLIBC_2.1 aio_fsync F
> GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_init F
> +GLIBC_2.1 aio_read F
> +GLIBC_2.1 aio_read64 F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.10 __cxa_at_quick_exit F
> @@ -2335,6 +2337,8 @@ GLIBC_2.34 aio_error64 F
> GLIBC_2.34 aio_fsync F
> GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
> index 8ac375872c..0402dcddcc 100644
> --- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.1 aio_read F
> -GLIBC_2.1 aio_read64 F
> GLIBC_2.1 aio_return F
> GLIBC_2.1 aio_return64 F
> GLIBC_2.1 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index 2015282000..67d1fbcade 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -1482,6 +1482,8 @@ GLIBC_2.1 aio_error64 F
> GLIBC_2.1 aio_fsync F
> GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_init F
> +GLIBC_2.1 aio_read F
> +GLIBC_2.1 aio_read64 F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> GLIBC_2.1 argp_error F
> @@ -2519,6 +2521,8 @@ GLIBC_2.34 aio_error64 F
> GLIBC_2.34 aio_fsync F
> GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
> index 8ac375872c..0402dcddcc 100644
> --- a/sysdeps/unix/sysv/linux/i386/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.1 aio_read F
> -GLIBC_2.1 aio_read64 F
> GLIBC_2.1 aio_return F
> GLIBC_2.1 aio_return64 F
> GLIBC_2.1 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index f83ba75cac..83d6bbfdf2 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -10,6 +10,8 @@ GLIBC_2.1 aio_error64 F
> GLIBC_2.1 aio_fsync F
> GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_init F
> +GLIBC_2.1 aio_read F
> +GLIBC_2.1 aio_read64 F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.10 __cxa_at_quick_exit F
> @@ -2295,6 +2297,8 @@ GLIBC_2.34 aio_error64 F
> GLIBC_2.34 aio_fsync F
> GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
> index 38dd6dfb53..152692a5a6 100644
> --- a/sysdeps/unix/sysv/linux/ia64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.1 aio_read F
> -GLIBC_2.1 aio_read64 F
> GLIBC_2.1 aio_return F
> GLIBC_2.1 aio_return64 F
> GLIBC_2.1 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index a0ca9ddc48..537df59369 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -286,6 +286,8 @@ GLIBC_2.34 aio_error64 F
> GLIBC_2.34 aio_fsync F
> GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> @@ -983,6 +985,8 @@ GLIBC_2.4 aio_error64 F
> GLIBC_2.4 aio_fsync F
> GLIBC_2.4 aio_fsync64 F
> GLIBC_2.4 aio_init F
> +GLIBC_2.4 aio_read F
> +GLIBC_2.4 aio_read64 F
> GLIBC_2.4 alarm F
> GLIBC_2.4 alphasort F
> GLIBC_2.4 alphasort64 F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> index 1fa78d6811..9a68bb887b 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> @@ -3,8 +3,6 @@ GLIBC_2.34 __mq_timedreceive_time64 F
> GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> -GLIBC_2.4 aio_read F
> -GLIBC_2.4 aio_read64 F
> GLIBC_2.4 aio_return F
> GLIBC_2.4 aio_return64 F
> GLIBC_2.4 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index bef73ca536..fefee687b2 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -1480,6 +1480,8 @@ GLIBC_2.1 aio_error64 F
> GLIBC_2.1 aio_fsync F
> GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_init F
> +GLIBC_2.1 aio_read F
> +GLIBC_2.1 aio_read64 F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> GLIBC_2.1 argp_error F
> @@ -2462,6 +2464,8 @@ GLIBC_2.34 aio_error64 F
> GLIBC_2.34 aio_fsync F
> GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> index 8ac375872c..0402dcddcc 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.1 aio_read F
> -GLIBC_2.1 aio_read64 F
> GLIBC_2.1 aio_return F
> GLIBC_2.1 aio_return64 F
> GLIBC_2.1 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index 1f2c7f0fd9..635b62cd31 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -598,6 +598,8 @@ GLIBC_2.18 aio_error64 F
> GLIBC_2.18 aio_fsync F
> GLIBC_2.18 aio_fsync64 F
> GLIBC_2.18 aio_init F
> +GLIBC_2.18 aio_read F
> +GLIBC_2.18 aio_read64 F
> GLIBC_2.18 alarm F
> GLIBC_2.18 aligned_alloc F
> GLIBC_2.18 alphasort F
> @@ -2432,6 +2434,8 @@ GLIBC_2.34 aio_error64 F
> GLIBC_2.34 aio_fsync F
> GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> index 87eeccd69c..34f5bc3964 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> @@ -1,6 +1,4 @@
> GLIBC_2.18 __mq_open_2 F
> -GLIBC_2.18 aio_read F
> -GLIBC_2.18 aio_read64 F
> GLIBC_2.18 aio_return F
> GLIBC_2.18 aio_return64 F
> GLIBC_2.18 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index 191db5f985..cce81d50da 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -598,6 +598,8 @@ GLIBC_2.18 aio_error64 F
> GLIBC_2.18 aio_fsync F
> GLIBC_2.18 aio_fsync64 F
> GLIBC_2.18 aio_init F
> +GLIBC_2.18 aio_read F
> +GLIBC_2.18 aio_read64 F
> GLIBC_2.18 alarm F
> GLIBC_2.18 aligned_alloc F
> GLIBC_2.18 alphasort F
> @@ -2429,6 +2431,8 @@ GLIBC_2.34 aio_error64 F
> GLIBC_2.34 aio_fsync F
> GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> index 87eeccd69c..34f5bc3964 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> @@ -1,6 +1,4 @@
> GLIBC_2.18 __mq_open_2 F
> -GLIBC_2.18 aio_read F
> -GLIBC_2.18 aio_read64 F
> GLIBC_2.18 aio_return F
> GLIBC_2.18 aio_return64 F
> GLIBC_2.18 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index 5eb630a9f5..d4e0f597ba 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -1658,6 +1658,8 @@ GLIBC_2.2 aio_error64 F
> GLIBC_2.2 aio_fsync F
> GLIBC_2.2 aio_fsync64 F
> GLIBC_2.2 aio_init F
> +GLIBC_2.2 aio_read F
> +GLIBC_2.2 aio_read64 F
> GLIBC_2.2 alphasort64 F
> GLIBC_2.2 argp_err_exit_status D 0x4
> GLIBC_2.2 argp_error F
> @@ -2427,6 +2429,8 @@ GLIBC_2.34 aio_error64 F
> GLIBC_2.34 aio_fsync F
> GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> index 9e2c283942..d886f0376c 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.2 aio_read F
> -GLIBC_2.2 aio_read64 F
> GLIBC_2.2 aio_return F
> GLIBC_2.2 aio_return64 F
> GLIBC_2.2 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index a1b8e02ca4..757c40c34c 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -1656,6 +1656,8 @@ GLIBC_2.2 aio_error64 F
> GLIBC_2.2 aio_fsync F
> GLIBC_2.2 aio_fsync64 F
> GLIBC_2.2 aio_init F
> +GLIBC_2.2 aio_read F
> +GLIBC_2.2 aio_read64 F
> GLIBC_2.2 alphasort64 F
> GLIBC_2.2 argp_err_exit_status D 0x4
> GLIBC_2.2 argp_error F
> @@ -2425,6 +2427,8 @@ GLIBC_2.34 aio_error64 F
> GLIBC_2.34 aio_fsync F
> GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index dd33f448b7..d1c919b14f 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -1657,6 +1657,8 @@ GLIBC_2.2 aio_error64 F
> GLIBC_2.2 aio_fsync F
> GLIBC_2.2 aio_fsync64 F
> GLIBC_2.2 aio_init F
> +GLIBC_2.2 aio_read F
> +GLIBC_2.2 aio_read64 F
> GLIBC_2.2 alphasort64 F
> GLIBC_2.2 argp_err_exit_status D 0x4
> GLIBC_2.2 argp_error F
> @@ -2433,6 +2435,8 @@ GLIBC_2.34 aio_error64 F
> GLIBC_2.34 aio_fsync F
> GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> index 9e2c283942..d886f0376c 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.2 aio_read F
> -GLIBC_2.2 aio_read64 F
> GLIBC_2.2 aio_return F
> GLIBC_2.2 aio_return64 F
> GLIBC_2.2 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index efda95dd32..6c3dd08461 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -1653,6 +1653,8 @@ GLIBC_2.2 aio_error64 F
> GLIBC_2.2 aio_fsync F
> GLIBC_2.2 aio_fsync64 F
> GLIBC_2.2 aio_init F
> +GLIBC_2.2 aio_read F
> +GLIBC_2.2 aio_read64 F
> GLIBC_2.2 alphasort64 F
> GLIBC_2.2 argp_err_exit_status D 0x4
> GLIBC_2.2 argp_error F
> @@ -2351,6 +2353,8 @@ GLIBC_2.34 aio_error64 F
> GLIBC_2.34 aio_fsync F
> GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> index 848a39faae..6c94c34024 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.2 aio_read F
> -GLIBC_2.2 aio_read64 F
> GLIBC_2.2 aio_return F
> GLIBC_2.2 aio_return64 F
> GLIBC_2.2 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index e2739a9145..160e1d491e 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -640,6 +640,8 @@ GLIBC_2.21 aio_error64 F
> GLIBC_2.21 aio_fsync F
> GLIBC_2.21 aio_fsync64 F
> GLIBC_2.21 aio_init F
> +GLIBC_2.21 aio_read F
> +GLIBC_2.21 aio_read64 F
> GLIBC_2.21 alarm F
> GLIBC_2.21 aligned_alloc F
> GLIBC_2.21 alphasort F
> @@ -2471,6 +2473,8 @@ GLIBC_2.34 aio_error64 F
> GLIBC_2.34 aio_fsync F
> GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
> index 24472cb04f..7d197b8c5d 100644
> --- a/sysdeps/unix/sysv/linux/nios2/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/librt.abilist
> @@ -1,6 +1,4 @@
> GLIBC_2.21 __mq_open_2 F
> -GLIBC_2.21 aio_read F
> -GLIBC_2.21 aio_read64 F
> GLIBC_2.21 aio_return F
> GLIBC_2.21 aio_return64 F
> GLIBC_2.21 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index 6c816268cd..2923d162e0 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -1487,6 +1487,8 @@ GLIBC_2.1 aio_error64 F
> GLIBC_2.1 aio_fsync F
> GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_init F
> +GLIBC_2.1 aio_read F
> +GLIBC_2.1 aio_read64 F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> GLIBC_2.1 argp_error F
> @@ -2489,6 +2491,8 @@ GLIBC_2.34 aio_error64 F
> GLIBC_2.34 aio_fsync F
> GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> index 8ac375872c..0402dcddcc 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.1 aio_read F
> -GLIBC_2.1 aio_read64 F
> GLIBC_2.1 aio_return F
> GLIBC_2.1 aio_return64 F
> GLIBC_2.1 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index 03dadcef85..b6feabe5e4 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -1487,6 +1487,8 @@ GLIBC_2.1 aio_error64 F
> GLIBC_2.1 aio_fsync F
> GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_init F
> +GLIBC_2.1 aio_read F
> +GLIBC_2.1 aio_read64 F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> GLIBC_2.1 argp_error F
> @@ -2522,6 +2524,8 @@ GLIBC_2.34 aio_error64 F
> GLIBC_2.34 aio_fsync F
> GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index c355eb4607..b149e31698 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -640,6 +640,8 @@ GLIBC_2.3 aio_error64 F
> GLIBC_2.3 aio_fsync F
> GLIBC_2.3 aio_fsync64 F
> GLIBC_2.3 aio_init F
> +GLIBC_2.3 aio_read F
> +GLIBC_2.3 aio_read64 F
> GLIBC_2.3 alarm F
> GLIBC_2.3 alphasort F
> GLIBC_2.3 alphasort64 F
> @@ -2259,6 +2261,8 @@ GLIBC_2.34 aio_error64 F
> GLIBC_2.34 aio_fsync F
> GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> index 951344a6ef..d0ddb7852e 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.3 aio_read F
> -GLIBC_2.3 aio_read64 F
> GLIBC_2.3 aio_return F
> GLIBC_2.3 aio_return64 F
> GLIBC_2.3 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index abe39f4a96..607abc7f32 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -684,6 +684,8 @@ GLIBC_2.17 aio_error64 F
> GLIBC_2.17 aio_fsync F
> GLIBC_2.17 aio_fsync64 F
> GLIBC_2.17 aio_init F
> +GLIBC_2.17 aio_read F
> +GLIBC_2.17 aio_read64 F
> GLIBC_2.17 alarm F
> GLIBC_2.17 aligned_alloc F
> GLIBC_2.17 alphasort F
> @@ -2558,6 +2560,8 @@ GLIBC_2.34 aio_error64 F
> GLIBC_2.34 aio_fsync F
> GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> index 1519e07346..58a853230e 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> @@ -1,6 +1,4 @@
> GLIBC_2.17 __mq_open_2 F
> -GLIBC_2.17 aio_read F
> -GLIBC_2.17 aio_read64 F
> GLIBC_2.17 aio_return F
> GLIBC_2.17 aio_return64 F
> GLIBC_2.17 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index 585c9b7cf7..de26c22e23 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -551,6 +551,8 @@ GLIBC_2.33 aio_error64 F
> GLIBC_2.33 aio_fsync F
> GLIBC_2.33 aio_fsync64 F
> GLIBC_2.33 aio_init F
> +GLIBC_2.33 aio_read F
> +GLIBC_2.33 aio_read64 F
> GLIBC_2.33 alarm F
> GLIBC_2.33 aligned_alloc F
> GLIBC_2.33 alphasort F
> @@ -2123,6 +2125,8 @@ GLIBC_2.34 aio_error64 F
> GLIBC_2.34 aio_fsync F
> GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> index 8e30efa6a1..8e15ebe652 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> @@ -1,6 +1,4 @@
> GLIBC_2.33 __mq_open_2 F
> -GLIBC_2.33 aio_read F
> -GLIBC_2.33 aio_read64 F
> GLIBC_2.33 aio_return F
> GLIBC_2.33 aio_return64 F
> GLIBC_2.33 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index d8aa40cb34..d0ca205432 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -577,6 +577,8 @@ GLIBC_2.27 aio_error64 F
> GLIBC_2.27 aio_fsync F
> GLIBC_2.27 aio_fsync64 F
> GLIBC_2.27 aio_init F
> +GLIBC_2.27 aio_read F
> +GLIBC_2.27 aio_read64 F
> GLIBC_2.27 alarm F
> GLIBC_2.27 aligned_alloc F
> GLIBC_2.27 alphasort F
> @@ -2323,6 +2325,8 @@ GLIBC_2.34 aio_error64 F
> GLIBC_2.34 aio_fsync F
> GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> index 7145c7d249..fe48c3cfea 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> @@ -1,6 +1,4 @@
> GLIBC_2.27 __mq_open_2 F
> -GLIBC_2.27 aio_read F
> -GLIBC_2.27 aio_read64 F
> GLIBC_2.27 aio_return F
> GLIBC_2.27 aio_return64 F
> GLIBC_2.27 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index 52a7d18745..a773148442 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -1479,6 +1479,8 @@ GLIBC_2.1 aio_error64 F
> GLIBC_2.1 aio_fsync F
> GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_init F
> +GLIBC_2.1 aio_read F
> +GLIBC_2.1 aio_read64 F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> GLIBC_2.1 argp_error F
> @@ -2487,6 +2489,8 @@ GLIBC_2.34 aio_error64 F
> GLIBC_2.34 aio_fsync F
> GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> index 8ac375872c..0402dcddcc 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.1 aio_read F
> -GLIBC_2.1 aio_read64 F
> GLIBC_2.1 aio_return F
> GLIBC_2.1 aio_return64 F
> GLIBC_2.1 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index 1078e94135..14899f40f7 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -577,6 +577,8 @@ GLIBC_2.2 aio_error64 F
> GLIBC_2.2 aio_fsync F
> GLIBC_2.2 aio_fsync64 F
> GLIBC_2.2 aio_init F
> +GLIBC_2.2 aio_read F
> +GLIBC_2.2 aio_read64 F
> GLIBC_2.2 alarm F
> GLIBC_2.2 alphasort F
> GLIBC_2.2 alphasort64 F
> @@ -2296,6 +2298,8 @@ GLIBC_2.34 aio_error64 F
> GLIBC_2.34 aio_fsync F
> GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> index 0396a04bd2..a65683ca9d 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.2 aio_read F
> -GLIBC_2.2 aio_read64 F
> GLIBC_2.2 aio_return F
> GLIBC_2.2 aio_return64 F
> GLIBC_2.2 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index 90c2a79d6e..a255e3eeac 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -14,6 +14,8 @@ GLIBC_2.1 aio_error64 F
> GLIBC_2.1 aio_fsync F
> GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_init F
> +GLIBC_2.1 aio_read F
> +GLIBC_2.1 aio_read64 F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.10 __cxa_at_quick_exit F
> @@ -2342,6 +2344,8 @@ GLIBC_2.34 aio_error64 F
> GLIBC_2.34 aio_fsync F
> GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> index 8ac375872c..0402dcddcc 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.1 aio_read F
> -GLIBC_2.1 aio_read64 F
> GLIBC_2.1 aio_return F
> GLIBC_2.1 aio_return64 F
> GLIBC_2.1 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index a624e97cab..45c49ba662 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -14,6 +14,8 @@ GLIBC_2.1 aio_error64 F
> GLIBC_2.1 aio_fsync F
> GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_init F
> +GLIBC_2.1 aio_read F
> +GLIBC_2.1 aio_read64 F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.10 __cxa_at_quick_exit F
> @@ -2339,6 +2341,8 @@ GLIBC_2.34 aio_error64 F
> GLIBC_2.34 aio_fsync F
> GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> index 8ac375872c..0402dcddcc 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.1 aio_read F
> -GLIBC_2.1 aio_read64 F
> GLIBC_2.1 aio_return F
> GLIBC_2.1 aio_return64 F
> GLIBC_2.1 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index c65022cdd9..07a68d78e3 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -1481,6 +1481,8 @@ GLIBC_2.1 aio_error64 F
> GLIBC_2.1 aio_fsync F
> GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_init F
> +GLIBC_2.1 aio_read F
> +GLIBC_2.1 aio_read64 F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> GLIBC_2.1 argp_error F
> @@ -2482,6 +2484,8 @@ GLIBC_2.34 aio_error64 F
> GLIBC_2.34 aio_fsync F
> GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> index 183e0cbf21..2202b8ef5f 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.1 aio_read F
> -GLIBC_2.1 aio_read64 F
> GLIBC_2.1 aio_return F
> GLIBC_2.1 aio_return64 F
> GLIBC_2.1 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index 5e90b1e6f7..8b549e7efc 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -14,6 +14,8 @@ GLIBC_2.1 aio_error64 F
> GLIBC_2.1 aio_fsync F
> GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_init F
> +GLIBC_2.1 aio_read F
> +GLIBC_2.1 aio_read64 F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.10 __cxa_at_quick_exit F
> @@ -2318,6 +2320,8 @@ GLIBC_2.34 aio_error64 F
> GLIBC_2.34 aio_fsync F
> GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> index f4dd36f97b..2afa483191 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.1 aio_read F
> -GLIBC_2.1 aio_read64 F
> GLIBC_2.1 aio_return F
> GLIBC_2.1 aio_return64 F
> GLIBC_2.1 aio_suspend F
__WORDSIZE
> diff --git a/sysdeps/unix/sysv/linux/wordsize-64/aio_read.c b/sysdeps/unix/sysv/linux/wordsize-64/aio_read.c
> deleted file mode 100644
> index 8310b484d0..0000000000
> --- a/sysdeps/unix/sysv/linux/wordsize-64/aio_read.c
> +++ /dev/null
> @@ -1,7 +0,0 @@
> -#define aio_read64 __renamed_aio_read64
> -
> -#include <rt/aio_read.c>
> -
> -#undef aio_read64
> -
> -weak_alias (aio_read, aio_read64)
Ok.
> diff --git a/sysdeps/unix/sysv/linux/wordsize-64/aio_read64.c b/sysdeps/unix/sysv/linux/wordsize-64/aio_read64.c
> deleted file mode 100644
> index 6a6a102c8d..0000000000
> --- a/sysdeps/unix/sysv/linux/wordsize-64/aio_read64.c
> +++ /dev/null
> @@ -1 +0,0 @@
> -/* Defined in aio_read.c. */
Ok.
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index 3911e41a47..e8d70016a6 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -566,6 +566,8 @@ GLIBC_2.2.5 aio_error64 F
> GLIBC_2.2.5 aio_fsync F
> GLIBC_2.2.5 aio_fsync64 F
> GLIBC_2.2.5 aio_init F
> +GLIBC_2.2.5 aio_read F
> +GLIBC_2.2.5 aio_read64 F
> GLIBC_2.2.5 alarm F
> GLIBC_2.2.5 alphasort F
> GLIBC_2.2.5 alphasort64 F
> @@ -2274,6 +2276,8 @@ GLIBC_2.34 aio_error64 F
> GLIBC_2.34 aio_fsync F
> GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> index f1cce35e0a..e9d2aeb05b 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.2.5 aio_read F
> -GLIBC_2.2.5 aio_read64 F
> GLIBC_2.2.5 aio_return F
> GLIBC_2.2.5 aio_return64 F
> GLIBC_2.2.5 aio_suspend F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index bae6dd505b..40921d5579 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -599,6 +599,8 @@ GLIBC_2.16 aio_error64 F
> GLIBC_2.16 aio_fsync F
> GLIBC_2.16 aio_fsync64 F
> GLIBC_2.16 aio_init F
> +GLIBC_2.16 aio_read F
> +GLIBC_2.16 aio_read64 F
> GLIBC_2.16 alarm F
> GLIBC_2.16 aligned_alloc F
> GLIBC_2.16 alphasort F
> @@ -2377,6 +2379,8 @@ GLIBC_2.34 aio_error64 F
> GLIBC_2.34 aio_fsync F
> GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> +GLIBC_2.34 aio_read F
> +GLIBC_2.34 aio_read64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> index acaa63d92f..bbd0f42caa 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> @@ -1,6 +1,4 @@
> GLIBC_2.16 __mq_open_2 F
> -GLIBC_2.16 aio_read F
> -GLIBC_2.16 aio_read64 F
> GLIBC_2.16 aio_return F
> GLIBC_2.16 aio_return64 F
> GLIBC_2.16 aio_suspend F
>
Ok.
^ permalink raw reply [flat|nested] 72+ messages in thread
* Re: [PATCH 14/34] Linux: Move aio_read, aio_read64 into libc
2021-06-23 17:51 ` Adhemerval Zanella
@ 2021-06-25 9:53 ` Florian Weimer
2021-06-25 12:36 ` Adhemerval Zanella
0 siblings, 1 reply; 72+ messages in thread
From: Florian Weimer @ 2021-06-25 9:53 UTC (permalink / raw)
To: Adhemerval Zanella; +Cc: libc-alpha
* Adhemerval Zanella:
>> diff --git a/rt/Versions b/rt/Versions
>> index 1a0aa77fd0..6db40bebc4 100644
>> --- a/rt/Versions
>> +++ b/rt/Versions
>> @@ -8,6 +8,8 @@ libc {
>> aio_error64;
>> aio_fsync;
>> aio_fsync64;
>> + aio_read;
>> + aio_read64;
>> %endif
>> }
>> GLIBC_2.2 {
>> @@ -23,6 +25,8 @@ libc {
>> aio_error64;
>> aio_fsync;
>> aio_fsync64;
>> + aio_read;
>> + aio_read64;
>> %endif
>> shm_open;
>> shm_unlink;
>> @@ -51,9 +55,9 @@ librt {
>> aio_fsync;
>> aio_fsync64;
>> aio_init;
>> -%endif
>> aio_read;
>> aio_read64;
>> +%endif
>> aio_return;
>> aio_return64;
>> aio_suspend;
> __WORDSIZE
>> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
>> index f4dd36f97b..2afa483191 100644
>> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
>> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
>> @@ -1,5 +1,3 @@
>> -GLIBC_2.1 aio_read F
>> -GLIBC_2.1 aio_read64 F
>> GLIBC_2.1 aio_return F
>> GLIBC_2.1 aio_return64 F
>> GLIBC_2.1 aio_suspend F
>
> __WORDSIZE
Sorry, what do you mean by these two comments?
Thanks,
Florian
^ permalink raw reply [flat|nested] 72+ messages in thread
* Re: [PATCH 14/34] Linux: Move aio_read, aio_read64 into libc
2021-06-25 9:53 ` Florian Weimer
@ 2021-06-25 12:36 ` Adhemerval Zanella
0 siblings, 0 replies; 72+ messages in thread
From: Adhemerval Zanella @ 2021-06-25 12:36 UTC (permalink / raw)
To: Florian Weimer; +Cc: libc-alpha
On 25/06/2021 06:53, Florian Weimer wrote:
> * Adhemerval Zanella:
>
>>> diff --git a/rt/Versions b/rt/Versions
>>> index 1a0aa77fd0..6db40bebc4 100644
>>> --- a/rt/Versions
>>> +++ b/rt/Versions
>>> @@ -8,6 +8,8 @@ libc {
>>> aio_error64;
>>> aio_fsync;
>>> aio_fsync64;
>>> + aio_read;
>>> + aio_read64;
>>> %endif
>>> }
>>> GLIBC_2.2 {
>>> @@ -23,6 +25,8 @@ libc {
>>> aio_error64;
>>> aio_fsync;
>>> aio_fsync64;
>>> + aio_read;
>>> + aio_read64;
>>> %endif
>>> shm_open;
>>> shm_unlink;
>>> @@ -51,9 +55,9 @@ librt {
>>> aio_fsync;
>>> aio_fsync64;
>>> aio_init;
>>> -%endif
>>> aio_read;
>>> aio_read64;
>>> +%endif
>>> aio_return;
>>> aio_return64;
>>> aio_suspend;
>> __WORDSIZE
>
>>> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
>>> index f4dd36f97b..2afa483191 100644
>>> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
>>> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
>>> @@ -1,5 +1,3 @@
>>> -GLIBC_2.1 aio_read F
>>> -GLIBC_2.1 aio_read64 F
>>> GLIBC_2.1 aio_return F
>>> GLIBC_2.1 aio_return64 F
>>> GLIBC_2.1 aio_suspend F
>>
>> __WORDSIZE
>
My mistake here, it should be 'Ok'.
^ permalink raw reply [flat|nested] 72+ messages in thread
* [PATCH 15/34] Linux: Move aio_return, aio_return64 into libc
2021-06-17 18:56 [PATCH v2 00/34] Move librt into libc Florian Weimer
` (13 preceding siblings ...)
2021-06-17 18:58 ` [PATCH 14/34] Linux: Move aio_read, aio_read64 " Florian Weimer
@ 2021-06-17 18:58 ` Florian Weimer
2021-06-23 19:44 ` Adhemerval Zanella
2021-06-17 18:58 ` [PATCH 16/34] Linux: Move aio_suspend, aio_suspend64, __aio_suspend_time64 to libc Florian Weimer
` (19 subsequent siblings)
34 siblings, 1 reply; 72+ messages in thread
From: Florian Weimer @ 2021-06-17 18:58 UTC (permalink / raw)
To: libc-alpha
The symbols were moved using scripts/move-symbol-to-libc.py.
---
rt/Makefile | 2 +-
rt/Versions | 6 +++++-
rt/aio_return.c | 15 +++++++++++++--
sysdeps/unix/sysv/linux/aarch64/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/aarch64/librt.abilist | 2 --
sysdeps/unix/sysv/linux/alpha/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/alpha/librt.abilist | 2 --
sysdeps/unix/sysv/linux/arc/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/arc/librt.abilist | 2 --
sysdeps/unix/sysv/linux/arm/be/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/arm/be/librt.abilist | 2 --
sysdeps/unix/sysv/linux/arm/le/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/arm/le/librt.abilist | 2 --
sysdeps/unix/sysv/linux/csky/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/csky/librt.abilist | 2 --
sysdeps/unix/sysv/linux/hppa/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/hppa/librt.abilist | 2 --
sysdeps/unix/sysv/linux/i386/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/i386/librt.abilist | 2 --
sysdeps/unix/sysv/linux/ia64/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/ia64/librt.abilist | 2 --
.../unix/sysv/linux/m68k/coldfire/libc.abilist | 4 ++++
.../unix/sysv/linux/m68k/coldfire/librt.abilist | 2 --
sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist | 2 --
.../unix/sysv/linux/microblaze/be/libc.abilist | 4 ++++
.../unix/sysv/linux/microblaze/be/librt.abilist | 2 --
.../unix/sysv/linux/microblaze/le/libc.abilist | 4 ++++
.../unix/sysv/linux/microblaze/le/librt.abilist | 2 --
.../unix/sysv/linux/mips/mips32/fpu/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/mips/mips32/librt.abilist | 2 --
.../sysv/linux/mips/mips32/nofpu/libc.abilist | 4 ++++
.../unix/sysv/linux/mips/mips64/n32/libc.abilist | 4 ++++
.../unix/sysv/linux/mips/mips64/n32/librt.abilist | 2 --
.../unix/sysv/linux/mips/mips64/n64/libc.abilist | 4 ++++
.../unix/sysv/linux/mips/mips64/n64/librt.abilist | 2 --
sysdeps/unix/sysv/linux/nios2/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/nios2/librt.abilist | 2 --
.../sysv/linux/powerpc/powerpc32/fpu/libc.abilist | 4 ++++
.../sysv/linux/powerpc/powerpc32/librt.abilist | 2 --
.../linux/powerpc/powerpc32/nofpu/libc.abilist | 4 ++++
.../sysv/linux/powerpc/powerpc64/be/libc.abilist | 4 ++++
.../sysv/linux/powerpc/powerpc64/be/librt.abilist | 2 --
.../sysv/linux/powerpc/powerpc64/le/libc.abilist | 4 ++++
.../sysv/linux/powerpc/powerpc64/le/librt.abilist | 2 --
sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist | 2 --
sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist | 2 --
sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist | 4 ++++
.../unix/sysv/linux/s390/s390-32/librt.abilist | 2 --
sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist | 4 ++++
.../unix/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 --
.../unix/sysv/linux/sparc/sparc32/libc.abilist | 4 ++++
.../unix/sysv/linux/sparc/sparc32/librt.abilist | 2 --
.../unix/sysv/linux/sparc/sparc64/libc.abilist | 4 ++++
.../unix/sysv/linux/sparc/sparc64/librt.abilist | 2 --
sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/x86_64/64/librt.abilist | 2 --
sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist | 2 --
65 files changed, 147 insertions(+), 64 deletions(-)
diff --git a/rt/Makefile b/rt/Makefile
index f080be56d5..810599a736 100644
--- a/rt/Makefile
+++ b/rt/Makefile
@@ -29,7 +29,6 @@ routines = \
shm_unlink \
librt-routines = \
- aio_return \
aio_suspend \
aio_write \
aio_write64 \
@@ -62,6 +61,7 @@ $(librt-routines-var) += \
aio_notify \
aio_read \
aio_read64 \
+ aio_return \
aio_sigqueue \
tests := tst-shm tst-timer tst-timer2 \
diff --git a/rt/Versions b/rt/Versions
index 6db40bebc4..0780dc8400 100644
--- a/rt/Versions
+++ b/rt/Versions
@@ -10,6 +10,8 @@ libc {
aio_fsync64;
aio_read;
aio_read64;
+ aio_return;
+ aio_return64;
%endif
}
GLIBC_2.2 {
@@ -27,6 +29,8 @@ libc {
aio_fsync64;
aio_read;
aio_read64;
+ aio_return;
+ aio_return64;
%endif
shm_open;
shm_unlink;
@@ -57,9 +61,9 @@ librt {
aio_init;
aio_read;
aio_read64;
-%endif
aio_return;
aio_return64;
+%endif
aio_suspend;
aio_suspend64;
aio_write;
diff --git a/rt/aio_return.c b/rt/aio_return.c
index cc50719dcb..a7a0b141d2 100644
--- a/rt/aio_return.c
+++ b/rt/aio_return.c
@@ -28,11 +28,22 @@
/* And undo the hack. */
#undef aio_return64
+#include <shlib-compat.h>
ssize_t
-aio_return (struct aiocb *aiocbp)
+__aio_return (struct aiocb *aiocbp)
{
return aiocbp->__return_value;
}
-weak_alias (aio_return, aio_return64)
+#if PTHREAD_IN_LIBC
+versioned_symbol (libc, __aio_return, aio_return, GLIBC_2_34);
+versioned_symbol (libc, __aio_return, aio_return64, GLIBC_2_34);
+# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_34)
+compat_symbol (librt, __aio_return, aio_return, GLIBC_2_1);
+compat_symbol (librt, __aio_return, aio_return64, GLIBC_2_1);
+# endif
+#else /* !PTHREAD_IN_LIBC */
+strong_alias (__aio_return, aio_return)
+weak_alias (__aio_return, aio_return64)
+#endif
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index d210f88f0e..79405d26e9 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -598,6 +598,8 @@ GLIBC_2.17 aio_fsync64 F
GLIBC_2.17 aio_init F
GLIBC_2.17 aio_read F
GLIBC_2.17 aio_read64 F
+GLIBC_2.17 aio_return F
+GLIBC_2.17 aio_return64 F
GLIBC_2.17 alarm F
GLIBC_2.17 aligned_alloc F
GLIBC_2.17 alphasort F
@@ -2366,6 +2368,8 @@ GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
+GLIBC_2.34 aio_return F
+GLIBC_2.34 aio_return64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
index 58a853230e..451560dc87 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_return F
-GLIBC_2.17 aio_return64 F
GLIBC_2.17 aio_suspend F
GLIBC_2.17 aio_suspend64 F
GLIBC_2.17 aio_write F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 08ea11c9fe..f6fa8966f8 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -1511,6 +1511,8 @@ GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 aio_read F
GLIBC_2.1 aio_read64 F
+GLIBC_2.1 aio_return F
+GLIBC_2.1 aio_return64 F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
GLIBC_2.1 argp_error F
@@ -2461,6 +2463,8 @@ GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
+GLIBC_2.34 aio_return F
+GLIBC_2.34 aio_return64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
index 2afa483191..90a66e4a4b 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_return F
-GLIBC_2.1 aio_return64 F
GLIBC_2.1 aio_suspend F
GLIBC_2.1 aio_suspend64 F
GLIBC_2.1 aio_write F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 817c4c6ff0..a5c1df7eaf 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -559,6 +559,8 @@ GLIBC_2.32 aio_fsync64 F
GLIBC_2.32 aio_init F
GLIBC_2.32 aio_read F
GLIBC_2.32 aio_read64 F
+GLIBC_2.32 aio_return F
+GLIBC_2.32 aio_return64 F
GLIBC_2.32 alarm F
GLIBC_2.32 aligned_alloc F
GLIBC_2.32 alphasort F
@@ -2125,6 +2127,8 @@ GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
+GLIBC_2.34 aio_return F
+GLIBC_2.34 aio_return64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
index e49be2ff36..9cac9c759b 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_return F
-GLIBC_2.32 aio_return64 F
GLIBC_2.32 aio_suspend F
GLIBC_2.32 aio_suspend64 F
GLIBC_2.32 aio_write F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 0be92527af..1928717cfd 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -287,6 +287,8 @@ GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
+GLIBC_2.34 aio_return F
+GLIBC_2.34 aio_return64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
@@ -999,6 +1001,8 @@ GLIBC_2.4 aio_fsync64 F
GLIBC_2.4 aio_init F
GLIBC_2.4 aio_read F
GLIBC_2.4 aio_read64 F
+GLIBC_2.4 aio_return F
+GLIBC_2.4 aio_return64 F
GLIBC_2.4 alarm F
GLIBC_2.4 alphasort F
GLIBC_2.4 alphasort64 F
diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
index 9a68bb887b..05957aae03 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_return F
-GLIBC_2.4 aio_return64 F
GLIBC_2.4 aio_suspend F
GLIBC_2.4 aio_suspend64 F
GLIBC_2.4 aio_write F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 615b37769a..bee5d9f757 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -284,6 +284,8 @@ GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
+GLIBC_2.34 aio_return F
+GLIBC_2.34 aio_return64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
@@ -996,6 +998,8 @@ GLIBC_2.4 aio_fsync64 F
GLIBC_2.4 aio_init F
GLIBC_2.4 aio_read F
GLIBC_2.4 aio_read64 F
+GLIBC_2.4 aio_return F
+GLIBC_2.4 aio_return64 F
GLIBC_2.4 alarm F
GLIBC_2.4 alphasort F
GLIBC_2.4 alphasort64 F
diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
index 9a68bb887b..05957aae03 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_return F
-GLIBC_2.4 aio_return64 F
GLIBC_2.4 aio_suspend F
GLIBC_2.4 aio_suspend64 F
GLIBC_2.4 aio_write F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index e77bb5b57b..753f54085a 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -573,6 +573,8 @@ GLIBC_2.29 aio_fsync64 F
GLIBC_2.29 aio_init F
GLIBC_2.29 aio_read F
GLIBC_2.29 aio_read64 F
+GLIBC_2.29 aio_return F
+GLIBC_2.29 aio_return64 F
GLIBC_2.29 alarm F
GLIBC_2.29 aligned_alloc F
GLIBC_2.29 alphasort F
@@ -2385,6 +2387,8 @@ GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
+GLIBC_2.34 aio_return F
+GLIBC_2.34 aio_return64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
index 93475f5bd5..74fc5621d6 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_return F
-GLIBC_2.29 aio_return64 F
GLIBC_2.29 aio_suspend F
GLIBC_2.29 aio_suspend64 F
GLIBC_2.29 aio_write F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 12704a350a..4a96fcfb39 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -12,6 +12,8 @@ GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 aio_read F
GLIBC_2.1 aio_read64 F
+GLIBC_2.1 aio_return F
+GLIBC_2.1 aio_return64 F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.10 __cxa_at_quick_exit F
@@ -2339,6 +2341,8 @@ GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
+GLIBC_2.34 aio_return F
+GLIBC_2.34 aio_return64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
index 0402dcddcc..4cae24e768 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_return F
-GLIBC_2.1 aio_return64 F
GLIBC_2.1 aio_suspend F
GLIBC_2.1 aio_suspend64 F
GLIBC_2.1 aio_write F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 67d1fbcade..b704bf4756 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -1484,6 +1484,8 @@ GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 aio_read F
GLIBC_2.1 aio_read64 F
+GLIBC_2.1 aio_return F
+GLIBC_2.1 aio_return64 F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
GLIBC_2.1 argp_error F
@@ -2523,6 +2525,8 @@ GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
+GLIBC_2.34 aio_return F
+GLIBC_2.34 aio_return64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
index 0402dcddcc..4cae24e768 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_return F
-GLIBC_2.1 aio_return64 F
GLIBC_2.1 aio_suspend F
GLIBC_2.1 aio_suspend64 F
GLIBC_2.1 aio_write F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 83d6bbfdf2..08bea0c72f 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -12,6 +12,8 @@ GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 aio_read F
GLIBC_2.1 aio_read64 F
+GLIBC_2.1 aio_return F
+GLIBC_2.1 aio_return64 F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.10 __cxa_at_quick_exit F
@@ -2299,6 +2301,8 @@ GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
+GLIBC_2.34 aio_return F
+GLIBC_2.34 aio_return64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
index 152692a5a6..ac9f293b6b 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_return F
-GLIBC_2.1 aio_return64 F
GLIBC_2.1 aio_suspend F
GLIBC_2.1 aio_suspend64 F
GLIBC_2.1 aio_write F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 537df59369..187672fa76 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -288,6 +288,8 @@ GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
+GLIBC_2.34 aio_return F
+GLIBC_2.34 aio_return64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
@@ -987,6 +989,8 @@ GLIBC_2.4 aio_fsync64 F
GLIBC_2.4 aio_init F
GLIBC_2.4 aio_read F
GLIBC_2.4 aio_read64 F
+GLIBC_2.4 aio_return F
+GLIBC_2.4 aio_return64 F
GLIBC_2.4 alarm F
GLIBC_2.4 alphasort F
GLIBC_2.4 alphasort64 F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
index 9a68bb887b..05957aae03 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_return F
-GLIBC_2.4 aio_return64 F
GLIBC_2.4 aio_suspend F
GLIBC_2.4 aio_suspend64 F
GLIBC_2.4 aio_write F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index fefee687b2..379779793c 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -1482,6 +1482,8 @@ GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 aio_read F
GLIBC_2.1 aio_read64 F
+GLIBC_2.1 aio_return F
+GLIBC_2.1 aio_return64 F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
GLIBC_2.1 argp_error F
@@ -2466,6 +2468,8 @@ GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
+GLIBC_2.34 aio_return F
+GLIBC_2.34 aio_return64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
index 0402dcddcc..4cae24e768 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_return F
-GLIBC_2.1 aio_return64 F
GLIBC_2.1 aio_suspend F
GLIBC_2.1 aio_suspend64 F
GLIBC_2.1 aio_write F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 635b62cd31..2fce5d9138 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -600,6 +600,8 @@ GLIBC_2.18 aio_fsync64 F
GLIBC_2.18 aio_init F
GLIBC_2.18 aio_read F
GLIBC_2.18 aio_read64 F
+GLIBC_2.18 aio_return F
+GLIBC_2.18 aio_return64 F
GLIBC_2.18 alarm F
GLIBC_2.18 aligned_alloc F
GLIBC_2.18 alphasort F
@@ -2436,6 +2438,8 @@ GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
+GLIBC_2.34 aio_return F
+GLIBC_2.34 aio_return64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
index 34f5bc3964..1503d19eae 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_return F
-GLIBC_2.18 aio_return64 F
GLIBC_2.18 aio_suspend F
GLIBC_2.18 aio_suspend64 F
GLIBC_2.18 aio_write F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index cce81d50da..6c3cd2a9e3 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -600,6 +600,8 @@ GLIBC_2.18 aio_fsync64 F
GLIBC_2.18 aio_init F
GLIBC_2.18 aio_read F
GLIBC_2.18 aio_read64 F
+GLIBC_2.18 aio_return F
+GLIBC_2.18 aio_return64 F
GLIBC_2.18 alarm F
GLIBC_2.18 aligned_alloc F
GLIBC_2.18 alphasort F
@@ -2433,6 +2435,8 @@ GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
+GLIBC_2.34 aio_return F
+GLIBC_2.34 aio_return64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
index 34f5bc3964..1503d19eae 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_return F
-GLIBC_2.18 aio_return64 F
GLIBC_2.18 aio_suspend F
GLIBC_2.18 aio_suspend64 F
GLIBC_2.18 aio_write F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index d4e0f597ba..46aa64baaa 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -1660,6 +1660,8 @@ GLIBC_2.2 aio_fsync64 F
GLIBC_2.2 aio_init F
GLIBC_2.2 aio_read F
GLIBC_2.2 aio_read64 F
+GLIBC_2.2 aio_return F
+GLIBC_2.2 aio_return64 F
GLIBC_2.2 alphasort64 F
GLIBC_2.2 argp_err_exit_status D 0x4
GLIBC_2.2 argp_error F
@@ -2431,6 +2433,8 @@ GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
+GLIBC_2.34 aio_return F
+GLIBC_2.34 aio_return64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
index d886f0376c..2b7c3cabec 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_return F
-GLIBC_2.2 aio_return64 F
GLIBC_2.2 aio_suspend F
GLIBC_2.2 aio_suspend64 F
GLIBC_2.2 aio_write F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 757c40c34c..169b386cc1 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -1658,6 +1658,8 @@ GLIBC_2.2 aio_fsync64 F
GLIBC_2.2 aio_init F
GLIBC_2.2 aio_read F
GLIBC_2.2 aio_read64 F
+GLIBC_2.2 aio_return F
+GLIBC_2.2 aio_return64 F
GLIBC_2.2 alphasort64 F
GLIBC_2.2 argp_err_exit_status D 0x4
GLIBC_2.2 argp_error F
@@ -2429,6 +2431,8 @@ GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
+GLIBC_2.34 aio_return F
+GLIBC_2.34 aio_return64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index d1c919b14f..ad52c15c3e 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -1659,6 +1659,8 @@ GLIBC_2.2 aio_fsync64 F
GLIBC_2.2 aio_init F
GLIBC_2.2 aio_read F
GLIBC_2.2 aio_read64 F
+GLIBC_2.2 aio_return F
+GLIBC_2.2 aio_return64 F
GLIBC_2.2 alphasort64 F
GLIBC_2.2 argp_err_exit_status D 0x4
GLIBC_2.2 argp_error F
@@ -2437,6 +2439,8 @@ GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
+GLIBC_2.34 aio_return F
+GLIBC_2.34 aio_return64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
index d886f0376c..2b7c3cabec 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_return F
-GLIBC_2.2 aio_return64 F
GLIBC_2.2 aio_suspend F
GLIBC_2.2 aio_suspend64 F
GLIBC_2.2 aio_write F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 6c3dd08461..16a67a0d6d 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -1655,6 +1655,8 @@ GLIBC_2.2 aio_fsync64 F
GLIBC_2.2 aio_init F
GLIBC_2.2 aio_read F
GLIBC_2.2 aio_read64 F
+GLIBC_2.2 aio_return F
+GLIBC_2.2 aio_return64 F
GLIBC_2.2 alphasort64 F
GLIBC_2.2 argp_err_exit_status D 0x4
GLIBC_2.2 argp_error F
@@ -2355,6 +2357,8 @@ GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
+GLIBC_2.34 aio_return F
+GLIBC_2.34 aio_return64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
index 6c94c34024..293b92eaec 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_return F
-GLIBC_2.2 aio_return64 F
GLIBC_2.2 aio_suspend F
GLIBC_2.2 aio_suspend64 F
GLIBC_2.2 aio_write F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 160e1d491e..3567fa8efc 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -642,6 +642,8 @@ GLIBC_2.21 aio_fsync64 F
GLIBC_2.21 aio_init F
GLIBC_2.21 aio_read F
GLIBC_2.21 aio_read64 F
+GLIBC_2.21 aio_return F
+GLIBC_2.21 aio_return64 F
GLIBC_2.21 alarm F
GLIBC_2.21 aligned_alloc F
GLIBC_2.21 alphasort F
@@ -2475,6 +2477,8 @@ GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
+GLIBC_2.34 aio_return F
+GLIBC_2.34 aio_return64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
index 7d197b8c5d..b63036c526 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_return F
-GLIBC_2.21 aio_return64 F
GLIBC_2.21 aio_suspend F
GLIBC_2.21 aio_suspend64 F
GLIBC_2.21 aio_write F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 2923d162e0..0b393c0a5a 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -1489,6 +1489,8 @@ GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 aio_read F
GLIBC_2.1 aio_read64 F
+GLIBC_2.1 aio_return F
+GLIBC_2.1 aio_return64 F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
GLIBC_2.1 argp_error F
@@ -2493,6 +2495,8 @@ GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
+GLIBC_2.34 aio_return F
+GLIBC_2.34 aio_return64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
index 0402dcddcc..4cae24e768 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_return F
-GLIBC_2.1 aio_return64 F
GLIBC_2.1 aio_suspend F
GLIBC_2.1 aio_suspend64 F
GLIBC_2.1 aio_write F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index b6feabe5e4..0bc73512d3 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -1489,6 +1489,8 @@ GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 aio_read F
GLIBC_2.1 aio_read64 F
+GLIBC_2.1 aio_return F
+GLIBC_2.1 aio_return64 F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
GLIBC_2.1 argp_error F
@@ -2526,6 +2528,8 @@ GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
+GLIBC_2.34 aio_return F
+GLIBC_2.34 aio_return64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index b149e31698..22d277a32e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -642,6 +642,8 @@ GLIBC_2.3 aio_fsync64 F
GLIBC_2.3 aio_init F
GLIBC_2.3 aio_read F
GLIBC_2.3 aio_read64 F
+GLIBC_2.3 aio_return F
+GLIBC_2.3 aio_return64 F
GLIBC_2.3 alarm F
GLIBC_2.3 alphasort F
GLIBC_2.3 alphasort64 F
@@ -2263,6 +2265,8 @@ GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
+GLIBC_2.34 aio_return F
+GLIBC_2.34 aio_return64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
index d0ddb7852e..b98e7cf9de 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_return F
-GLIBC_2.3 aio_return64 F
GLIBC_2.3 aio_suspend F
GLIBC_2.3 aio_suspend64 F
GLIBC_2.3 aio_write F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 607abc7f32..15b0f5e367 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -686,6 +686,8 @@ GLIBC_2.17 aio_fsync64 F
GLIBC_2.17 aio_init F
GLIBC_2.17 aio_read F
GLIBC_2.17 aio_read64 F
+GLIBC_2.17 aio_return F
+GLIBC_2.17 aio_return64 F
GLIBC_2.17 alarm F
GLIBC_2.17 aligned_alloc F
GLIBC_2.17 alphasort F
@@ -2562,6 +2564,8 @@ GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
+GLIBC_2.34 aio_return F
+GLIBC_2.34 aio_return64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
index 58a853230e..451560dc87 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_return F
-GLIBC_2.17 aio_return64 F
GLIBC_2.17 aio_suspend F
GLIBC_2.17 aio_suspend64 F
GLIBC_2.17 aio_write F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index de26c22e23..6003434931 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -553,6 +553,8 @@ GLIBC_2.33 aio_fsync64 F
GLIBC_2.33 aio_init F
GLIBC_2.33 aio_read F
GLIBC_2.33 aio_read64 F
+GLIBC_2.33 aio_return F
+GLIBC_2.33 aio_return64 F
GLIBC_2.33 alarm F
GLIBC_2.33 aligned_alloc F
GLIBC_2.33 alphasort F
@@ -2127,6 +2129,8 @@ GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
+GLIBC_2.34 aio_return F
+GLIBC_2.34 aio_return64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
index 8e15ebe652..dc23391407 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_return F
-GLIBC_2.33 aio_return64 F
GLIBC_2.33 aio_suspend F
GLIBC_2.33 aio_suspend64 F
GLIBC_2.33 aio_write F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index d0ca205432..5041f05217 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -579,6 +579,8 @@ GLIBC_2.27 aio_fsync64 F
GLIBC_2.27 aio_init F
GLIBC_2.27 aio_read F
GLIBC_2.27 aio_read64 F
+GLIBC_2.27 aio_return F
+GLIBC_2.27 aio_return64 F
GLIBC_2.27 alarm F
GLIBC_2.27 aligned_alloc F
GLIBC_2.27 alphasort F
@@ -2327,6 +2329,8 @@ GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
+GLIBC_2.34 aio_return F
+GLIBC_2.34 aio_return64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
index fe48c3cfea..5f1cecd612 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_return F
-GLIBC_2.27 aio_return64 F
GLIBC_2.27 aio_suspend F
GLIBC_2.27 aio_suspend64 F
GLIBC_2.27 aio_write F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index a773148442..ed6c511cc9 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -1481,6 +1481,8 @@ GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 aio_read F
GLIBC_2.1 aio_read64 F
+GLIBC_2.1 aio_return F
+GLIBC_2.1 aio_return64 F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
GLIBC_2.1 argp_error F
@@ -2491,6 +2493,8 @@ GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
+GLIBC_2.34 aio_return F
+GLIBC_2.34 aio_return64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
index 0402dcddcc..4cae24e768 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_return F
-GLIBC_2.1 aio_return64 F
GLIBC_2.1 aio_suspend F
GLIBC_2.1 aio_suspend64 F
GLIBC_2.1 aio_write F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 14899f40f7..9f1e31574e 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -579,6 +579,8 @@ GLIBC_2.2 aio_fsync64 F
GLIBC_2.2 aio_init F
GLIBC_2.2 aio_read F
GLIBC_2.2 aio_read64 F
+GLIBC_2.2 aio_return F
+GLIBC_2.2 aio_return64 F
GLIBC_2.2 alarm F
GLIBC_2.2 alphasort F
GLIBC_2.2 alphasort64 F
@@ -2300,6 +2302,8 @@ GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
+GLIBC_2.34 aio_return F
+GLIBC_2.34 aio_return64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
index a65683ca9d..2442ed5222 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_return F
-GLIBC_2.2 aio_return64 F
GLIBC_2.2 aio_suspend F
GLIBC_2.2 aio_suspend64 F
GLIBC_2.2 aio_write F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index a255e3eeac..b9e583fa88 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -16,6 +16,8 @@ GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 aio_read F
GLIBC_2.1 aio_read64 F
+GLIBC_2.1 aio_return F
+GLIBC_2.1 aio_return64 F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.10 __cxa_at_quick_exit F
@@ -2346,6 +2348,8 @@ GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
+GLIBC_2.34 aio_return F
+GLIBC_2.34 aio_return64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
index 0402dcddcc..4cae24e768 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_return F
-GLIBC_2.1 aio_return64 F
GLIBC_2.1 aio_suspend F
GLIBC_2.1 aio_suspend64 F
GLIBC_2.1 aio_write F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 45c49ba662..2f737fadb8 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -16,6 +16,8 @@ GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 aio_read F
GLIBC_2.1 aio_read64 F
+GLIBC_2.1 aio_return F
+GLIBC_2.1 aio_return64 F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.10 __cxa_at_quick_exit F
@@ -2343,6 +2345,8 @@ GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
+GLIBC_2.34 aio_return F
+GLIBC_2.34 aio_return64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
index 0402dcddcc..4cae24e768 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_return F
-GLIBC_2.1 aio_return64 F
GLIBC_2.1 aio_suspend F
GLIBC_2.1 aio_suspend64 F
GLIBC_2.1 aio_write F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 07a68d78e3..f4c87b4fa9 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -1483,6 +1483,8 @@ GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 aio_read F
GLIBC_2.1 aio_read64 F
+GLIBC_2.1 aio_return F
+GLIBC_2.1 aio_return64 F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
GLIBC_2.1 argp_error F
@@ -2486,6 +2488,8 @@ GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
+GLIBC_2.34 aio_return F
+GLIBC_2.34 aio_return64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
index 2202b8ef5f..6061373aae 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_return F
-GLIBC_2.1 aio_return64 F
GLIBC_2.1 aio_suspend F
GLIBC_2.1 aio_suspend64 F
GLIBC_2.1 aio_write F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 8b549e7efc..03acd40463 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -16,6 +16,8 @@ GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 aio_read F
GLIBC_2.1 aio_read64 F
+GLIBC_2.1 aio_return F
+GLIBC_2.1 aio_return64 F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.10 __cxa_at_quick_exit F
@@ -2322,6 +2324,8 @@ GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
+GLIBC_2.34 aio_return F
+GLIBC_2.34 aio_return64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
index 2afa483191..90a66e4a4b 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_return F
-GLIBC_2.1 aio_return64 F
GLIBC_2.1 aio_suspend F
GLIBC_2.1 aio_suspend64 F
GLIBC_2.1 aio_write F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index e8d70016a6..f81fe5301d 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -568,6 +568,8 @@ GLIBC_2.2.5 aio_fsync64 F
GLIBC_2.2.5 aio_init F
GLIBC_2.2.5 aio_read F
GLIBC_2.2.5 aio_read64 F
+GLIBC_2.2.5 aio_return F
+GLIBC_2.2.5 aio_return64 F
GLIBC_2.2.5 alarm F
GLIBC_2.2.5 alphasort F
GLIBC_2.2.5 alphasort64 F
@@ -2278,6 +2280,8 @@ GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
+GLIBC_2.34 aio_return F
+GLIBC_2.34 aio_return64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
index e9d2aeb05b..62fe3da2cb 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_return F
-GLIBC_2.2.5 aio_return64 F
GLIBC_2.2.5 aio_suspend F
GLIBC_2.2.5 aio_suspend64 F
GLIBC_2.2.5 aio_write F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 40921d5579..45d74a3958 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -601,6 +601,8 @@ GLIBC_2.16 aio_fsync64 F
GLIBC_2.16 aio_init F
GLIBC_2.16 aio_read F
GLIBC_2.16 aio_read64 F
+GLIBC_2.16 aio_return F
+GLIBC_2.16 aio_return64 F
GLIBC_2.16 alarm F
GLIBC_2.16 aligned_alloc F
GLIBC_2.16 alphasort F
@@ -2381,6 +2383,8 @@ GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
+GLIBC_2.34 aio_return F
+GLIBC_2.34 aio_return64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
index bbd0f42caa..a531990038 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_return F
-GLIBC_2.16 aio_return64 F
GLIBC_2.16 aio_suspend F
GLIBC_2.16 aio_suspend64 F
GLIBC_2.16 aio_write F
--
2.31.1
^ permalink raw reply [flat|nested] 72+ messages in thread
* Re: [PATCH 15/34] Linux: Move aio_return, aio_return64 into libc
2021-06-17 18:58 ` [PATCH 15/34] Linux: Move aio_return, aio_return64 " Florian Weimer
@ 2021-06-23 19:44 ` Adhemerval Zanella
0 siblings, 0 replies; 72+ messages in thread
From: Adhemerval Zanella @ 2021-06-23 19:44 UTC (permalink / raw)
To: libc-alpha, Florian Weimer
On 17/06/2021 15:58, Florian Weimer via Libc-alpha wrote:
> The symbols were moved using scripts/move-symbol-to-libc.py.
LGTM, thanks.
Reviewed-by: Adhemerva Zanella <adhemerval.zanella@linaro.org>
> ---
> rt/Makefile | 2 +-
> rt/Versions | 6 +++++-
> rt/aio_return.c | 15 +++++++++++++--
> sysdeps/unix/sysv/linux/aarch64/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/aarch64/librt.abilist | 2 --
> sysdeps/unix/sysv/linux/alpha/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/alpha/librt.abilist | 2 --
> sysdeps/unix/sysv/linux/arc/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/arc/librt.abilist | 2 --
> sysdeps/unix/sysv/linux/arm/be/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/arm/be/librt.abilist | 2 --
> sysdeps/unix/sysv/linux/arm/le/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/arm/le/librt.abilist | 2 --
> sysdeps/unix/sysv/linux/csky/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/csky/librt.abilist | 2 --
> sysdeps/unix/sysv/linux/hppa/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/hppa/librt.abilist | 2 --
> sysdeps/unix/sysv/linux/i386/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/i386/librt.abilist | 2 --
> sysdeps/unix/sysv/linux/ia64/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/ia64/librt.abilist | 2 --
> .../unix/sysv/linux/m68k/coldfire/libc.abilist | 4 ++++
> .../unix/sysv/linux/m68k/coldfire/librt.abilist | 2 --
> sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist | 2 --
> .../unix/sysv/linux/microblaze/be/libc.abilist | 4 ++++
> .../unix/sysv/linux/microblaze/be/librt.abilist | 2 --
> .../unix/sysv/linux/microblaze/le/libc.abilist | 4 ++++
> .../unix/sysv/linux/microblaze/le/librt.abilist | 2 --
> .../unix/sysv/linux/mips/mips32/fpu/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/mips/mips32/librt.abilist | 2 --
> .../sysv/linux/mips/mips32/nofpu/libc.abilist | 4 ++++
> .../unix/sysv/linux/mips/mips64/n32/libc.abilist | 4 ++++
> .../unix/sysv/linux/mips/mips64/n32/librt.abilist | 2 --
> .../unix/sysv/linux/mips/mips64/n64/libc.abilist | 4 ++++
> .../unix/sysv/linux/mips/mips64/n64/librt.abilist | 2 --
> sysdeps/unix/sysv/linux/nios2/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/nios2/librt.abilist | 2 --
> .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist | 4 ++++
> .../sysv/linux/powerpc/powerpc32/librt.abilist | 2 --
> .../linux/powerpc/powerpc32/nofpu/libc.abilist | 4 ++++
> .../sysv/linux/powerpc/powerpc64/be/libc.abilist | 4 ++++
> .../sysv/linux/powerpc/powerpc64/be/librt.abilist | 2 --
> .../sysv/linux/powerpc/powerpc64/le/libc.abilist | 4 ++++
> .../sysv/linux/powerpc/powerpc64/le/librt.abilist | 2 --
> sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist | 2 --
> sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist | 2 --
> sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist | 4 ++++
> .../unix/sysv/linux/s390/s390-32/librt.abilist | 2 --
> sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist | 4 ++++
> .../unix/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 --
> .../unix/sysv/linux/sparc/sparc32/libc.abilist | 4 ++++
> .../unix/sysv/linux/sparc/sparc32/librt.abilist | 2 --
> .../unix/sysv/linux/sparc/sparc64/libc.abilist | 4 ++++
> .../unix/sysv/linux/sparc/sparc64/librt.abilist | 2 --
> sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/x86_64/64/librt.abilist | 2 --
> sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist | 2 --
> 65 files changed, 147 insertions(+), 64 deletions(-)
>
> diff --git a/rt/Makefile b/rt/Makefile
> index f080be56d5..810599a736 100644
> --- a/rt/Makefile
> +++ b/rt/Makefile
> @@ -29,7 +29,6 @@ routines = \
> shm_unlink \
>
> librt-routines = \
> - aio_return \
> aio_suspend \
> aio_write \
> aio_write64 \
> @@ -62,6 +61,7 @@ $(librt-routines-var) += \
> aio_notify \
> aio_read \
> aio_read64 \
> + aio_return \
> aio_sigqueue \
>
> tests := tst-shm tst-timer tst-timer2 \
Ok.
> diff --git a/rt/Versions b/rt/Versions
> index 6db40bebc4..0780dc8400 100644
> --- a/rt/Versions
> +++ b/rt/Versions
> @@ -10,6 +10,8 @@ libc {
> aio_fsync64;
> aio_read;
> aio_read64;
> + aio_return;
> + aio_return64;
> %endif
> }
> GLIBC_2.2 {
> @@ -27,6 +29,8 @@ libc {
> aio_fsync64;
> aio_read;
> aio_read64;
> + aio_return;
> + aio_return64;
> %endif
> shm_open;
> shm_unlink;
> @@ -57,9 +61,9 @@ librt {
> aio_init;
> aio_read;
> aio_read64;
> -%endif
> aio_return;
> aio_return64;
> +%endif
> aio_suspend;
> aio_suspend64;
> aio_write;
Ok.
> diff --git a/rt/aio_return.c b/rt/aio_return.c
> index cc50719dcb..a7a0b141d2 100644
> --- a/rt/aio_return.c
> +++ b/rt/aio_return.c
> @@ -28,11 +28,22 @@
> /* And undo the hack. */
> #undef aio_return64
>
> +#include <shlib-compat.h>
>
> ssize_t
> -aio_return (struct aiocb *aiocbp)
> +__aio_return (struct aiocb *aiocbp)
> {
> return aiocbp->__return_value;
> }
>
> -weak_alias (aio_return, aio_return64)
> +#if PTHREAD_IN_LIBC
> +versioned_symbol (libc, __aio_return, aio_return, GLIBC_2_34);
> +versioned_symbol (libc, __aio_return, aio_return64, GLIBC_2_34);
> +# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_34)
> +compat_symbol (librt, __aio_return, aio_return, GLIBC_2_1);
> +compat_symbol (librt, __aio_return, aio_return64, GLIBC_2_1);
> +# endif
> +#else /* !PTHREAD_IN_LIBC */
> +strong_alias (__aio_return, aio_return)
> +weak_alias (__aio_return, aio_return64)
> +#endif
Ok.
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index d210f88f0e..79405d26e9 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -598,6 +598,8 @@ GLIBC_2.17 aio_fsync64 F
> GLIBC_2.17 aio_init F
> GLIBC_2.17 aio_read F
> GLIBC_2.17 aio_read64 F
> +GLIBC_2.17 aio_return F
> +GLIBC_2.17 aio_return64 F
> GLIBC_2.17 alarm F
> GLIBC_2.17 aligned_alloc F
> GLIBC_2.17 alphasort F
> @@ -2366,6 +2368,8 @@ GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> +GLIBC_2.34 aio_return F
> +GLIBC_2.34 aio_return64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> index 58a853230e..451560dc87 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_return F
> -GLIBC_2.17 aio_return64 F
> GLIBC_2.17 aio_suspend F
> GLIBC_2.17 aio_suspend64 F
> GLIBC_2.17 aio_write F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index 08ea11c9fe..f6fa8966f8 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -1511,6 +1511,8 @@ GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_init F
> GLIBC_2.1 aio_read F
> GLIBC_2.1 aio_read64 F
> +GLIBC_2.1 aio_return F
> +GLIBC_2.1 aio_return64 F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> GLIBC_2.1 argp_error F
> @@ -2461,6 +2463,8 @@ GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> +GLIBC_2.34 aio_return F
> +GLIBC_2.34 aio_return64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
> index 2afa483191..90a66e4a4b 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_return F
> -GLIBC_2.1 aio_return64 F
> GLIBC_2.1 aio_suspend F
> GLIBC_2.1 aio_suspend64 F
> GLIBC_2.1 aio_write F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index 817c4c6ff0..a5c1df7eaf 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -559,6 +559,8 @@ GLIBC_2.32 aio_fsync64 F
> GLIBC_2.32 aio_init F
> GLIBC_2.32 aio_read F
> GLIBC_2.32 aio_read64 F
> +GLIBC_2.32 aio_return F
> +GLIBC_2.32 aio_return64 F
> GLIBC_2.32 alarm F
> GLIBC_2.32 aligned_alloc F
> GLIBC_2.32 alphasort F
> @@ -2125,6 +2127,8 @@ GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> +GLIBC_2.34 aio_return F
> +GLIBC_2.34 aio_return64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
> index e49be2ff36..9cac9c759b 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_return F
> -GLIBC_2.32 aio_return64 F
> GLIBC_2.32 aio_suspend F
> GLIBC_2.32 aio_suspend64 F
> GLIBC_2.32 aio_write F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index 0be92527af..1928717cfd 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -287,6 +287,8 @@ GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> +GLIBC_2.34 aio_return F
> +GLIBC_2.34 aio_return64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> @@ -999,6 +1001,8 @@ GLIBC_2.4 aio_fsync64 F
> GLIBC_2.4 aio_init F
> GLIBC_2.4 aio_read F
> GLIBC_2.4 aio_read64 F
> +GLIBC_2.4 aio_return F
> +GLIBC_2.4 aio_return64 F
> GLIBC_2.4 alarm F
> GLIBC_2.4 alphasort F
> GLIBC_2.4 alphasort64 F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> index 9a68bb887b..05957aae03 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_return F
> -GLIBC_2.4 aio_return64 F
> GLIBC_2.4 aio_suspend F
> GLIBC_2.4 aio_suspend64 F
> GLIBC_2.4 aio_write F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index 615b37769a..bee5d9f757 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -284,6 +284,8 @@ GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> +GLIBC_2.34 aio_return F
> +GLIBC_2.34 aio_return64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> @@ -996,6 +998,8 @@ GLIBC_2.4 aio_fsync64 F
> GLIBC_2.4 aio_init F
> GLIBC_2.4 aio_read F
> GLIBC_2.4 aio_read64 F
> +GLIBC_2.4 aio_return F
> +GLIBC_2.4 aio_return64 F
> GLIBC_2.4 alarm F
> GLIBC_2.4 alphasort F
> GLIBC_2.4 alphasort64 F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> index 9a68bb887b..05957aae03 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_return F
> -GLIBC_2.4 aio_return64 F
> GLIBC_2.4 aio_suspend F
> GLIBC_2.4 aio_suspend64 F
> GLIBC_2.4 aio_write F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index e77bb5b57b..753f54085a 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -573,6 +573,8 @@ GLIBC_2.29 aio_fsync64 F
> GLIBC_2.29 aio_init F
> GLIBC_2.29 aio_read F
> GLIBC_2.29 aio_read64 F
> +GLIBC_2.29 aio_return F
> +GLIBC_2.29 aio_return64 F
> GLIBC_2.29 alarm F
> GLIBC_2.29 aligned_alloc F
> GLIBC_2.29 alphasort F
> @@ -2385,6 +2387,8 @@ GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> +GLIBC_2.34 aio_return F
> +GLIBC_2.34 aio_return64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
> index 93475f5bd5..74fc5621d6 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_return F
> -GLIBC_2.29 aio_return64 F
> GLIBC_2.29 aio_suspend F
> GLIBC_2.29 aio_suspend64 F
> GLIBC_2.29 aio_write F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index 12704a350a..4a96fcfb39 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -12,6 +12,8 @@ GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_init F
> GLIBC_2.1 aio_read F
> GLIBC_2.1 aio_read64 F
> +GLIBC_2.1 aio_return F
> +GLIBC_2.1 aio_return64 F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.10 __cxa_at_quick_exit F
> @@ -2339,6 +2341,8 @@ GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> +GLIBC_2.34 aio_return F
> +GLIBC_2.34 aio_return64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
> index 0402dcddcc..4cae24e768 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_return F
> -GLIBC_2.1 aio_return64 F
> GLIBC_2.1 aio_suspend F
> GLIBC_2.1 aio_suspend64 F
> GLIBC_2.1 aio_write F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index 67d1fbcade..b704bf4756 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -1484,6 +1484,8 @@ GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_init F
> GLIBC_2.1 aio_read F
> GLIBC_2.1 aio_read64 F
> +GLIBC_2.1 aio_return F
> +GLIBC_2.1 aio_return64 F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> GLIBC_2.1 argp_error F
> @@ -2523,6 +2525,8 @@ GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> +GLIBC_2.34 aio_return F
> +GLIBC_2.34 aio_return64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
> index 0402dcddcc..4cae24e768 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_return F
> -GLIBC_2.1 aio_return64 F
> GLIBC_2.1 aio_suspend F
> GLIBC_2.1 aio_suspend64 F
> GLIBC_2.1 aio_write F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index 83d6bbfdf2..08bea0c72f 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -12,6 +12,8 @@ GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_init F
> GLIBC_2.1 aio_read F
> GLIBC_2.1 aio_read64 F
> +GLIBC_2.1 aio_return F
> +GLIBC_2.1 aio_return64 F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.10 __cxa_at_quick_exit F
> @@ -2299,6 +2301,8 @@ GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> +GLIBC_2.34 aio_return F
> +GLIBC_2.34 aio_return64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
> index 152692a5a6..ac9f293b6b 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_return F
> -GLIBC_2.1 aio_return64 F
> GLIBC_2.1 aio_suspend F
> GLIBC_2.1 aio_suspend64 F
> GLIBC_2.1 aio_write F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index 537df59369..187672fa76 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -288,6 +288,8 @@ GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> +GLIBC_2.34 aio_return F
> +GLIBC_2.34 aio_return64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> @@ -987,6 +989,8 @@ GLIBC_2.4 aio_fsync64 F
> GLIBC_2.4 aio_init F
> GLIBC_2.4 aio_read F
> GLIBC_2.4 aio_read64 F
> +GLIBC_2.4 aio_return F
> +GLIBC_2.4 aio_return64 F
> GLIBC_2.4 alarm F
> GLIBC_2.4 alphasort F
> GLIBC_2.4 alphasort64 F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> index 9a68bb887b..05957aae03 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_return F
> -GLIBC_2.4 aio_return64 F
> GLIBC_2.4 aio_suspend F
> GLIBC_2.4 aio_suspend64 F
> GLIBC_2.4 aio_write F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index fefee687b2..379779793c 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -1482,6 +1482,8 @@ GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_init F
> GLIBC_2.1 aio_read F
> GLIBC_2.1 aio_read64 F
> +GLIBC_2.1 aio_return F
> +GLIBC_2.1 aio_return64 F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> GLIBC_2.1 argp_error F
> @@ -2466,6 +2468,8 @@ GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> +GLIBC_2.34 aio_return F
> +GLIBC_2.34 aio_return64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> index 0402dcddcc..4cae24e768 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_return F
> -GLIBC_2.1 aio_return64 F
> GLIBC_2.1 aio_suspend F
> GLIBC_2.1 aio_suspend64 F
> GLIBC_2.1 aio_write F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index 635b62cd31..2fce5d9138 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -600,6 +600,8 @@ GLIBC_2.18 aio_fsync64 F
> GLIBC_2.18 aio_init F
> GLIBC_2.18 aio_read F
> GLIBC_2.18 aio_read64 F
> +GLIBC_2.18 aio_return F
> +GLIBC_2.18 aio_return64 F
> GLIBC_2.18 alarm F
> GLIBC_2.18 aligned_alloc F
> GLIBC_2.18 alphasort F
> @@ -2436,6 +2438,8 @@ GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> +GLIBC_2.34 aio_return F
> +GLIBC_2.34 aio_return64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> index 34f5bc3964..1503d19eae 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_return F
> -GLIBC_2.18 aio_return64 F
> GLIBC_2.18 aio_suspend F
> GLIBC_2.18 aio_suspend64 F
> GLIBC_2.18 aio_write F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index cce81d50da..6c3cd2a9e3 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -600,6 +600,8 @@ GLIBC_2.18 aio_fsync64 F
> GLIBC_2.18 aio_init F
> GLIBC_2.18 aio_read F
> GLIBC_2.18 aio_read64 F
> +GLIBC_2.18 aio_return F
> +GLIBC_2.18 aio_return64 F
> GLIBC_2.18 alarm F
> GLIBC_2.18 aligned_alloc F
> GLIBC_2.18 alphasort F
> @@ -2433,6 +2435,8 @@ GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> +GLIBC_2.34 aio_return F
> +GLIBC_2.34 aio_return64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> index 34f5bc3964..1503d19eae 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_return F
> -GLIBC_2.18 aio_return64 F
> GLIBC_2.18 aio_suspend F
> GLIBC_2.18 aio_suspend64 F
> GLIBC_2.18 aio_write F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index d4e0f597ba..46aa64baaa 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -1660,6 +1660,8 @@ GLIBC_2.2 aio_fsync64 F
> GLIBC_2.2 aio_init F
> GLIBC_2.2 aio_read F
> GLIBC_2.2 aio_read64 F
> +GLIBC_2.2 aio_return F
> +GLIBC_2.2 aio_return64 F
> GLIBC_2.2 alphasort64 F
> GLIBC_2.2 argp_err_exit_status D 0x4
> GLIBC_2.2 argp_error F
> @@ -2431,6 +2433,8 @@ GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> +GLIBC_2.34 aio_return F
> +GLIBC_2.34 aio_return64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> index d886f0376c..2b7c3cabec 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_return F
> -GLIBC_2.2 aio_return64 F
> GLIBC_2.2 aio_suspend F
> GLIBC_2.2 aio_suspend64 F
> GLIBC_2.2 aio_write F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index 757c40c34c..169b386cc1 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -1658,6 +1658,8 @@ GLIBC_2.2 aio_fsync64 F
> GLIBC_2.2 aio_init F
> GLIBC_2.2 aio_read F
> GLIBC_2.2 aio_read64 F
> +GLIBC_2.2 aio_return F
> +GLIBC_2.2 aio_return64 F
> GLIBC_2.2 alphasort64 F
> GLIBC_2.2 argp_err_exit_status D 0x4
> GLIBC_2.2 argp_error F
> @@ -2429,6 +2431,8 @@ GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> +GLIBC_2.34 aio_return F
> +GLIBC_2.34 aio_return64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index d1c919b14f..ad52c15c3e 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -1659,6 +1659,8 @@ GLIBC_2.2 aio_fsync64 F
> GLIBC_2.2 aio_init F
> GLIBC_2.2 aio_read F
> GLIBC_2.2 aio_read64 F
> +GLIBC_2.2 aio_return F
> +GLIBC_2.2 aio_return64 F
> GLIBC_2.2 alphasort64 F
> GLIBC_2.2 argp_err_exit_status D 0x4
> GLIBC_2.2 argp_error F
> @@ -2437,6 +2439,8 @@ GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> +GLIBC_2.34 aio_return F
> +GLIBC_2.34 aio_return64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> index d886f0376c..2b7c3cabec 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_return F
> -GLIBC_2.2 aio_return64 F
> GLIBC_2.2 aio_suspend F
> GLIBC_2.2 aio_suspend64 F
> GLIBC_2.2 aio_write F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index 6c3dd08461..16a67a0d6d 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -1655,6 +1655,8 @@ GLIBC_2.2 aio_fsync64 F
> GLIBC_2.2 aio_init F
> GLIBC_2.2 aio_read F
> GLIBC_2.2 aio_read64 F
> +GLIBC_2.2 aio_return F
> +GLIBC_2.2 aio_return64 F
> GLIBC_2.2 alphasort64 F
> GLIBC_2.2 argp_err_exit_status D 0x4
> GLIBC_2.2 argp_error F
> @@ -2355,6 +2357,8 @@ GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> +GLIBC_2.34 aio_return F
> +GLIBC_2.34 aio_return64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> index 6c94c34024..293b92eaec 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_return F
> -GLIBC_2.2 aio_return64 F
> GLIBC_2.2 aio_suspend F
> GLIBC_2.2 aio_suspend64 F
> GLIBC_2.2 aio_write F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index 160e1d491e..3567fa8efc 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -642,6 +642,8 @@ GLIBC_2.21 aio_fsync64 F
> GLIBC_2.21 aio_init F
> GLIBC_2.21 aio_read F
> GLIBC_2.21 aio_read64 F
> +GLIBC_2.21 aio_return F
> +GLIBC_2.21 aio_return64 F
> GLIBC_2.21 alarm F
> GLIBC_2.21 aligned_alloc F
> GLIBC_2.21 alphasort F
> @@ -2475,6 +2477,8 @@ GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> +GLIBC_2.34 aio_return F
> +GLIBC_2.34 aio_return64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
> index 7d197b8c5d..b63036c526 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_return F
> -GLIBC_2.21 aio_return64 F
> GLIBC_2.21 aio_suspend F
> GLIBC_2.21 aio_suspend64 F
> GLIBC_2.21 aio_write F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index 2923d162e0..0b393c0a5a 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -1489,6 +1489,8 @@ GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_init F
> GLIBC_2.1 aio_read F
> GLIBC_2.1 aio_read64 F
> +GLIBC_2.1 aio_return F
> +GLIBC_2.1 aio_return64 F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> GLIBC_2.1 argp_error F
> @@ -2493,6 +2495,8 @@ GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> +GLIBC_2.34 aio_return F
> +GLIBC_2.34 aio_return64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> index 0402dcddcc..4cae24e768 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_return F
> -GLIBC_2.1 aio_return64 F
> GLIBC_2.1 aio_suspend F
> GLIBC_2.1 aio_suspend64 F
> GLIBC_2.1 aio_write F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index b6feabe5e4..0bc73512d3 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -1489,6 +1489,8 @@ GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_init F
> GLIBC_2.1 aio_read F
> GLIBC_2.1 aio_read64 F
> +GLIBC_2.1 aio_return F
> +GLIBC_2.1 aio_return64 F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> GLIBC_2.1 argp_error F
> @@ -2526,6 +2528,8 @@ GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> +GLIBC_2.34 aio_return F
> +GLIBC_2.34 aio_return64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index b149e31698..22d277a32e 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -642,6 +642,8 @@ GLIBC_2.3 aio_fsync64 F
> GLIBC_2.3 aio_init F
> GLIBC_2.3 aio_read F
> GLIBC_2.3 aio_read64 F
> +GLIBC_2.3 aio_return F
> +GLIBC_2.3 aio_return64 F
> GLIBC_2.3 alarm F
> GLIBC_2.3 alphasort F
> GLIBC_2.3 alphasort64 F
> @@ -2263,6 +2265,8 @@ GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> +GLIBC_2.34 aio_return F
> +GLIBC_2.34 aio_return64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> index d0ddb7852e..b98e7cf9de 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_return F
> -GLIBC_2.3 aio_return64 F
> GLIBC_2.3 aio_suspend F
> GLIBC_2.3 aio_suspend64 F
> GLIBC_2.3 aio_write F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index 607abc7f32..15b0f5e367 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -686,6 +686,8 @@ GLIBC_2.17 aio_fsync64 F
> GLIBC_2.17 aio_init F
> GLIBC_2.17 aio_read F
> GLIBC_2.17 aio_read64 F
> +GLIBC_2.17 aio_return F
> +GLIBC_2.17 aio_return64 F
> GLIBC_2.17 alarm F
> GLIBC_2.17 aligned_alloc F
> GLIBC_2.17 alphasort F
> @@ -2562,6 +2564,8 @@ GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> +GLIBC_2.34 aio_return F
> +GLIBC_2.34 aio_return64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> index 58a853230e..451560dc87 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_return F
> -GLIBC_2.17 aio_return64 F
> GLIBC_2.17 aio_suspend F
> GLIBC_2.17 aio_suspend64 F
> GLIBC_2.17 aio_write F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index de26c22e23..6003434931 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -553,6 +553,8 @@ GLIBC_2.33 aio_fsync64 F
> GLIBC_2.33 aio_init F
> GLIBC_2.33 aio_read F
> GLIBC_2.33 aio_read64 F
> +GLIBC_2.33 aio_return F
> +GLIBC_2.33 aio_return64 F
> GLIBC_2.33 alarm F
> GLIBC_2.33 aligned_alloc F
> GLIBC_2.33 alphasort F
> @@ -2127,6 +2129,8 @@ GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> +GLIBC_2.34 aio_return F
> +GLIBC_2.34 aio_return64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> index 8e15ebe652..dc23391407 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_return F
> -GLIBC_2.33 aio_return64 F
> GLIBC_2.33 aio_suspend F
> GLIBC_2.33 aio_suspend64 F
> GLIBC_2.33 aio_write F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index d0ca205432..5041f05217 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -579,6 +579,8 @@ GLIBC_2.27 aio_fsync64 F
> GLIBC_2.27 aio_init F
> GLIBC_2.27 aio_read F
> GLIBC_2.27 aio_read64 F
> +GLIBC_2.27 aio_return F
> +GLIBC_2.27 aio_return64 F
> GLIBC_2.27 alarm F
> GLIBC_2.27 aligned_alloc F
> GLIBC_2.27 alphasort F
> @@ -2327,6 +2329,8 @@ GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> +GLIBC_2.34 aio_return F
> +GLIBC_2.34 aio_return64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> index fe48c3cfea..5f1cecd612 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_return F
> -GLIBC_2.27 aio_return64 F
> GLIBC_2.27 aio_suspend F
> GLIBC_2.27 aio_suspend64 F
> GLIBC_2.27 aio_write F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index a773148442..ed6c511cc9 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -1481,6 +1481,8 @@ GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_init F
> GLIBC_2.1 aio_read F
> GLIBC_2.1 aio_read64 F
> +GLIBC_2.1 aio_return F
> +GLIBC_2.1 aio_return64 F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> GLIBC_2.1 argp_error F
> @@ -2491,6 +2493,8 @@ GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> +GLIBC_2.34 aio_return F
> +GLIBC_2.34 aio_return64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> index 0402dcddcc..4cae24e768 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_return F
> -GLIBC_2.1 aio_return64 F
> GLIBC_2.1 aio_suspend F
> GLIBC_2.1 aio_suspend64 F
> GLIBC_2.1 aio_write F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index 14899f40f7..9f1e31574e 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -579,6 +579,8 @@ GLIBC_2.2 aio_fsync64 F
> GLIBC_2.2 aio_init F
> GLIBC_2.2 aio_read F
> GLIBC_2.2 aio_read64 F
> +GLIBC_2.2 aio_return F
> +GLIBC_2.2 aio_return64 F
> GLIBC_2.2 alarm F
> GLIBC_2.2 alphasort F
> GLIBC_2.2 alphasort64 F
> @@ -2300,6 +2302,8 @@ GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> +GLIBC_2.34 aio_return F
> +GLIBC_2.34 aio_return64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> index a65683ca9d..2442ed5222 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_return F
> -GLIBC_2.2 aio_return64 F
> GLIBC_2.2 aio_suspend F
> GLIBC_2.2 aio_suspend64 F
> GLIBC_2.2 aio_write F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index a255e3eeac..b9e583fa88 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -16,6 +16,8 @@ GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_init F
> GLIBC_2.1 aio_read F
> GLIBC_2.1 aio_read64 F
> +GLIBC_2.1 aio_return F
> +GLIBC_2.1 aio_return64 F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.10 __cxa_at_quick_exit F
> @@ -2346,6 +2348,8 @@ GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> +GLIBC_2.34 aio_return F
> +GLIBC_2.34 aio_return64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> index 0402dcddcc..4cae24e768 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_return F
> -GLIBC_2.1 aio_return64 F
> GLIBC_2.1 aio_suspend F
> GLIBC_2.1 aio_suspend64 F
> GLIBC_2.1 aio_write F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index 45c49ba662..2f737fadb8 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -16,6 +16,8 @@ GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_init F
> GLIBC_2.1 aio_read F
> GLIBC_2.1 aio_read64 F
> +GLIBC_2.1 aio_return F
> +GLIBC_2.1 aio_return64 F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.10 __cxa_at_quick_exit F
> @@ -2343,6 +2345,8 @@ GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> +GLIBC_2.34 aio_return F
> +GLIBC_2.34 aio_return64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> index 0402dcddcc..4cae24e768 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_return F
> -GLIBC_2.1 aio_return64 F
> GLIBC_2.1 aio_suspend F
> GLIBC_2.1 aio_suspend64 F
> GLIBC_2.1 aio_write F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index 07a68d78e3..f4c87b4fa9 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -1483,6 +1483,8 @@ GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_init F
> GLIBC_2.1 aio_read F
> GLIBC_2.1 aio_read64 F
> +GLIBC_2.1 aio_return F
> +GLIBC_2.1 aio_return64 F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> GLIBC_2.1 argp_error F
> @@ -2486,6 +2488,8 @@ GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> +GLIBC_2.34 aio_return F
> +GLIBC_2.34 aio_return64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> index 2202b8ef5f..6061373aae 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_return F
> -GLIBC_2.1 aio_return64 F
> GLIBC_2.1 aio_suspend F
> GLIBC_2.1 aio_suspend64 F
> GLIBC_2.1 aio_write F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index 8b549e7efc..03acd40463 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -16,6 +16,8 @@ GLIBC_2.1 aio_fsync64 F
> GLIBC_2.1 aio_init F
> GLIBC_2.1 aio_read F
> GLIBC_2.1 aio_read64 F
> +GLIBC_2.1 aio_return F
> +GLIBC_2.1 aio_return64 F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.10 __cxa_at_quick_exit F
> @@ -2322,6 +2324,8 @@ GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> +GLIBC_2.34 aio_return F
> +GLIBC_2.34 aio_return64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> index 2afa483191..90a66e4a4b 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_return F
> -GLIBC_2.1 aio_return64 F
> GLIBC_2.1 aio_suspend F
> GLIBC_2.1 aio_suspend64 F
> GLIBC_2.1 aio_write F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index e8d70016a6..f81fe5301d 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -568,6 +568,8 @@ GLIBC_2.2.5 aio_fsync64 F
> GLIBC_2.2.5 aio_init F
> GLIBC_2.2.5 aio_read F
> GLIBC_2.2.5 aio_read64 F
> +GLIBC_2.2.5 aio_return F
> +GLIBC_2.2.5 aio_return64 F
> GLIBC_2.2.5 alarm F
> GLIBC_2.2.5 alphasort F
> GLIBC_2.2.5 alphasort64 F
> @@ -2278,6 +2280,8 @@ GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> +GLIBC_2.34 aio_return F
> +GLIBC_2.34 aio_return64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> index e9d2aeb05b..62fe3da2cb 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_return F
> -GLIBC_2.2.5 aio_return64 F
> GLIBC_2.2.5 aio_suspend F
> GLIBC_2.2.5 aio_suspend64 F
> GLIBC_2.2.5 aio_write F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index 40921d5579..45d74a3958 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -601,6 +601,8 @@ GLIBC_2.16 aio_fsync64 F
> GLIBC_2.16 aio_init F
> GLIBC_2.16 aio_read F
> GLIBC_2.16 aio_read64 F
> +GLIBC_2.16 aio_return F
> +GLIBC_2.16 aio_return64 F
> GLIBC_2.16 alarm F
> GLIBC_2.16 aligned_alloc F
> GLIBC_2.16 alphasort F
> @@ -2381,6 +2383,8 @@ GLIBC_2.34 aio_fsync64 F
> GLIBC_2.34 aio_init F
> GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> +GLIBC_2.34 aio_return F
> +GLIBC_2.34 aio_return64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> index bbd0f42caa..a531990038 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_return F
> -GLIBC_2.16 aio_return64 F
> GLIBC_2.16 aio_suspend F
> GLIBC_2.16 aio_suspend64 F
> GLIBC_2.16 aio_write F
>
Ok.
^ permalink raw reply [flat|nested] 72+ messages in thread
* [PATCH 16/34] Linux: Move aio_suspend, aio_suspend64, __aio_suspend_time64 to libc
2021-06-17 18:56 [PATCH v2 00/34] Move librt into libc Florian Weimer
` (14 preceding siblings ...)
2021-06-17 18:58 ` [PATCH 15/34] Linux: Move aio_return, aio_return64 " Florian Weimer
@ 2021-06-17 18:58 ` Florian Weimer
2021-06-23 19:52 ` Adhemerval Zanella
2021-06-17 18:58 ` [PATCH 17/34] Linux: Move aio_write, aio_write64 into libc Florian Weimer
` (18 subsequent siblings)
34 siblings, 1 reply; 72+ messages in thread
From: Florian Weimer @ 2021-06-17 18:58 UTC (permalink / raw)
To: libc-alpha
The symbols were moved using scripts/move-symbol-to-libc.py.
There is a minor oddity here: This is generic code shared with Hurd,
and Hurd does not have time64 support. This is why the
versioned_symbol export for __aio_suspend_time64 is restricted to
the PTHREAD_IN_LIBC code.
---
include/aio.h | 4 ++
rt/Makefile | 2 +-
rt/Versions | 6 ++-
rt/aio_suspend.c | 49 +++++++++++++++----
sysdeps/unix/sysv/linux/Versions | 2 +-
sysdeps/unix/sysv/linux/aarch64/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/aarch64/librt.abilist | 2 -
sysdeps/unix/sysv/linux/alpha/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/alpha/librt.abilist | 2 -
sysdeps/unix/sysv/linux/arc/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/arc/librt.abilist | 2 -
sysdeps/unix/sysv/linux/arm/be/libc.abilist | 5 ++
sysdeps/unix/sysv/linux/arm/be/librt.abilist | 3 --
sysdeps/unix/sysv/linux/arm/le/libc.abilist | 5 ++
sysdeps/unix/sysv/linux/arm/le/librt.abilist | 3 --
sysdeps/unix/sysv/linux/csky/libc.abilist | 5 ++
sysdeps/unix/sysv/linux/csky/librt.abilist | 3 --
sysdeps/unix/sysv/linux/hppa/libc.abilist | 5 ++
sysdeps/unix/sysv/linux/hppa/librt.abilist | 3 --
sysdeps/unix/sysv/linux/i386/libc.abilist | 5 ++
sysdeps/unix/sysv/linux/i386/librt.abilist | 3 --
sysdeps/unix/sysv/linux/ia64/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/ia64/librt.abilist | 2 -
.../sysv/linux/m68k/coldfire/libc.abilist | 5 ++
.../sysv/linux/m68k/coldfire/librt.abilist | 3 --
.../unix/sysv/linux/m68k/m680x0/libc.abilist | 5 ++
.../unix/sysv/linux/m68k/m680x0/librt.abilist | 3 --
.../sysv/linux/microblaze/be/libc.abilist | 5 ++
.../sysv/linux/microblaze/be/librt.abilist | 3 --
.../sysv/linux/microblaze/le/libc.abilist | 5 ++
.../sysv/linux/microblaze/le/librt.abilist | 3 --
.../sysv/linux/mips/mips32/fpu/libc.abilist | 5 ++
.../unix/sysv/linux/mips/mips32/librt.abilist | 3 --
.../sysv/linux/mips/mips32/nofpu/libc.abilist | 5 ++
.../sysv/linux/mips/mips64/n32/libc.abilist | 5 ++
.../sysv/linux/mips/mips64/n32/librt.abilist | 3 --
.../sysv/linux/mips/mips64/n64/libc.abilist | 4 ++
.../sysv/linux/mips/mips64/n64/librt.abilist | 2 -
sysdeps/unix/sysv/linux/nios2/libc.abilist | 5 ++
sysdeps/unix/sysv/linux/nios2/librt.abilist | 3 --
.../linux/powerpc/powerpc32/fpu/libc.abilist | 5 ++
.../linux/powerpc/powerpc32/librt.abilist | 3 --
.../powerpc/powerpc32/nofpu/libc.abilist | 5 ++
.../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 | 5 ++
.../sysv/linux/s390/s390-32/librt.abilist | 3 --
.../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 | 5 ++
sysdeps/unix/sysv/linux/sh/be/librt.abilist | 3 --
sysdeps/unix/sysv/linux/sh/le/libc.abilist | 5 ++
sysdeps/unix/sysv/linux/sh/le/librt.abilist | 3 --
.../sysv/linux/sparc/sparc32/libc.abilist | 5 ++
.../sysv/linux/sparc/sparc32/librt.abilist | 3 --
.../sysv/linux/sparc/sparc64/libc.abilist | 4 ++
.../sysv/linux/sparc/sparc64/librt.abilist | 2 -
.../unix/sysv/linux/x86_64/64/libc.abilist | 4 ++
.../unix/sysv/linux/x86_64/64/librt.abilist | 2 -
.../unix/sysv/linux/x86_64/x32/libc.abilist | 4 ++
.../unix/sysv/linux/x86_64/x32/librt.abilist | 2 -
67 files changed, 197 insertions(+), 90 deletions(-)
diff --git a/include/aio.h b/include/aio.h
index c7f4233310..5d67800aff 100644
--- a/include/aio.h
+++ b/include/aio.h
@@ -15,7 +15,11 @@ extern void __aio_init (const struct aioinit *__init);
# else
extern int __aio_suspend_time64 (const struct aiocb *const list[], int nent,
const struct __timespec64 *timeout);
+# if PTHREAD_IN_LIBC
+libc_hidden_proto (__aio_suspend_time64)
+# else
librt_hidden_proto (__aio_suspend_time64)
+#endif
# endif
#endif
diff --git a/rt/Makefile b/rt/Makefile
index 810599a736..b375d37ba2 100644
--- a/rt/Makefile
+++ b/rt/Makefile
@@ -29,7 +29,6 @@ routines = \
shm_unlink \
librt-routines = \
- aio_suspend \
aio_write \
aio_write64 \
librt-compat \
@@ -63,6 +62,7 @@ $(librt-routines-var) += \
aio_read64 \
aio_return \
aio_sigqueue \
+ aio_suspend \
tests := tst-shm tst-timer tst-timer2 \
tst-aio tst-aio64 tst-aio2 tst-aio3 tst-aio4 tst-aio5 tst-aio6 \
diff --git a/rt/Versions b/rt/Versions
index 0780dc8400..d54b9cc4bf 100644
--- a/rt/Versions
+++ b/rt/Versions
@@ -12,6 +12,8 @@ libc {
aio_read64;
aio_return;
aio_return64;
+ aio_suspend;
+ aio_suspend64;
%endif
}
GLIBC_2.2 {
@@ -31,6 +33,8 @@ libc {
aio_read64;
aio_return;
aio_return64;
+ aio_suspend;
+ aio_suspend64;
%endif
shm_open;
shm_unlink;
@@ -63,9 +67,9 @@ librt {
aio_read64;
aio_return;
aio_return64;
-%endif
aio_suspend;
aio_suspend64;
+%endif
aio_write;
aio_write64;
lio_listio;
diff --git a/rt/aio_suspend.c b/rt/aio_suspend.c
index 6fd5b1bee2..29f01d1023 100644
--- a/rt/aio_suspend.c
+++ b/rt/aio_suspend.c
@@ -36,6 +36,8 @@
#include <libc-lock.h>
#include <aio_misc.h>
+#include <pthreadP.h>
+#include <shlib-compat.h>
struct clparam
@@ -56,7 +58,7 @@ cleanup (void *arg)
#ifdef DONT_NEED_AIO_MISC_COND
/* Acquire the mutex. If pthread_cond_*wait is used this would
happen implicitly. */
- pthread_mutex_lock (&__aio_requests_mutex);
+ __pthread_mutex_lock (&__aio_requests_mutex);
#endif
const struct clparam *param = (const struct clparam *) arg;
@@ -88,7 +90,7 @@ cleanup (void *arg)
#endif
/* Release the mutex. */
- pthread_mutex_unlock (&__aio_requests_mutex);
+ __pthread_mutex_unlock (&__aio_requests_mutex);
}
#ifdef DONT_NEED_AIO_MISC_COND
@@ -105,7 +107,7 @@ do_aio_misc_wait (unsigned int *cntr, const struct __timespec64 *timeout)
#endif
int
-__aio_suspend_time64 (const struct aiocb *const list[], int nent,
+___aio_suspend_time64 (const struct aiocb *const list[], int nent,
const struct __timespec64 *timeout)
{
if (__glibc_unlikely (nent < 0))
@@ -125,7 +127,7 @@ __aio_suspend_time64 (const struct aiocb *const list[], int nent,
unsigned int cntr = 1;
/* Request the mutex. */
- pthread_mutex_lock (&__aio_requests_mutex);
+ __pthread_mutex_lock (&__aio_requests_mutex);
/* There is not yet a finished request. Signal the request that
we are working for it. */
@@ -184,7 +186,11 @@ __aio_suspend_time64 (const struct aiocb *const list[], int nent,
.nent = nent
};
- pthread_cleanup_push (cleanup, &clparam);
+#if PTHREAD_IN_LIBC
+ __libc_cleanup_region_start (1, cleanup, &clparam);
+#else
+ __pthread_cleanup_push (cleanup, &clparam);
+#endif
#ifdef DONT_NEED_AIO_MISC_COND
result = do_aio_misc_wait (&cntr, timeout == NULL ? NULL : &ts);
@@ -194,7 +200,11 @@ __aio_suspend_time64 (const struct aiocb *const list[], int nent,
timeout == NULL ? NULL : &ts32);
#endif
+#if PTHREAD_IN_LIBC
+ __libc_cleanup_region_end (0);
+#else
pthread_cleanup_pop (0);
+#endif
}
/* Now remove the entry in the waiting list for all requests
@@ -239,13 +249,22 @@ __aio_suspend_time64 (const struct aiocb *const list[], int nent,
}
/* Release the mutex. */
- pthread_mutex_unlock (&__aio_requests_mutex);
+ __pthread_mutex_unlock (&__aio_requests_mutex);
return result;
}
-#if __TIMESIZE != 64
-librt_hidden_def (__aio_suspend_time64)
+#if __TIMESIZE == 64
+strong_alias (___aio_suspend_time64, __aio_suspend)
+#else /* __TIMESIZE != 64 */
+# if PTHREAD_IN_LIBC
+libc_hidden_ver (___aio_suspend_time64, __aio_suspend_time64)
+/* The conditional is slightly wrong: PTHREAD_IN_LIBC is a stand-in
+ for whether time64 support is needed. */
+versioned_symbol (libc, ___aio_suspend_time64, __aio_suspend_time64, GLIBC_2_34);
+# else
+librt_hidden_ver (___aio_suspend_time64, __aio_suspend_time64)
+# endif
int
__aio_suspend (const struct aiocb *const list[], int nent,
@@ -258,6 +277,16 @@ __aio_suspend (const struct aiocb *const list[], int nent,
return __aio_suspend_time64 (list, nent, timeout != NULL ? &ts64 : NULL);
}
-#endif
+#endif /* __TIMESPEC64 != 64 */
+
+#if PTHREAD_IN_LIBC
+versioned_symbol (libc, __aio_suspend, aio_suspend, GLIBC_2_34);
+versioned_symbol (libc, __aio_suspend, aio_suspend64, GLIBC_2_34);
+# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_34)
+compat_symbol (librt, __aio_suspend, aio_suspend, GLIBC_2_1);
+compat_symbol (librt, __aio_suspend, aio_suspend64, GLIBC_2_1);
+# endif
+#else /* !PTHREAD_IN_LIBC */
weak_alias (__aio_suspend, aio_suspend)
-weak_alias (aio_suspend, aio_suspend64)
+weak_alias (__aio_suspend, aio_suspend64)
+#endif /* !PTHREAD_IN_LIBC */
diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions
index ea0b22d7af..f246a389e1 100644
--- a/sysdeps/unix/sysv/linux/Versions
+++ b/sysdeps/unix/sysv/linux/Versions
@@ -192,6 +192,7 @@ libc {
# 64-bit time_t support
__adjtime64;
___adjtimex64;
+ __aio_suspend_time64;
__clock_adjtime64;
__clock_getres64;
__clock_gettime64;
@@ -294,7 +295,6 @@ librt {
GLIBC_2.34 {
%ifdef TIME64_NON_DEFAULT
# 64-bit time_t support
- __aio_suspend_time64;
__mq_timedsend_time64;
__mq_timedreceive_time64;
__timer_gettime64;
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 79405d26e9..6c76d0df61 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -600,6 +600,8 @@ GLIBC_2.17 aio_read F
GLIBC_2.17 aio_read64 F
GLIBC_2.17 aio_return F
GLIBC_2.17 aio_return64 F
+GLIBC_2.17 aio_suspend F
+GLIBC_2.17 aio_suspend64 F
GLIBC_2.17 alarm F
GLIBC_2.17 aligned_alloc F
GLIBC_2.17 alphasort F
@@ -2370,6 +2372,8 @@ GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
+GLIBC_2.34 aio_suspend F
+GLIBC_2.34 aio_suspend64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
index 451560dc87..37ff014ed8 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_suspend F
-GLIBC_2.17 aio_suspend64 F
GLIBC_2.17 aio_write F
GLIBC_2.17 aio_write64 F
GLIBC_2.17 lio_listio F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index f6fa8966f8..e7f0e1b49a 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -1513,6 +1513,8 @@ GLIBC_2.1 aio_read F
GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
GLIBC_2.1 aio_return64 F
+GLIBC_2.1 aio_suspend F
+GLIBC_2.1 aio_suspend64 F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
GLIBC_2.1 argp_error F
@@ -2465,6 +2467,8 @@ GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
+GLIBC_2.34 aio_suspend F
+GLIBC_2.34 aio_suspend64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
index 90a66e4a4b..8a8fe654e0 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_suspend F
-GLIBC_2.1 aio_suspend64 F
GLIBC_2.1 aio_write F
GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index a5c1df7eaf..cf93d14e6f 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -561,6 +561,8 @@ GLIBC_2.32 aio_read F
GLIBC_2.32 aio_read64 F
GLIBC_2.32 aio_return F
GLIBC_2.32 aio_return64 F
+GLIBC_2.32 aio_suspend F
+GLIBC_2.32 aio_suspend64 F
GLIBC_2.32 alarm F
GLIBC_2.32 aligned_alloc F
GLIBC_2.32 alphasort F
@@ -2129,6 +2131,8 @@ GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
+GLIBC_2.34 aio_suspend F
+GLIBC_2.34 aio_suspend64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
index 9cac9c759b..4eb7de36e1 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_suspend F
-GLIBC_2.32 aio_suspend64 F
GLIBC_2.32 aio_write F
GLIBC_2.32 aio_write64 F
GLIBC_2.32 lio_listio F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 1928717cfd..9d9e4c6b73 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -192,6 +192,7 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 ___adjtimex64 F
GLIBC_2.34 __adjtime64 F
+GLIBC_2.34 __aio_suspend_time64 F
GLIBC_2.34 __clock_adjtime64 F
GLIBC_2.34 __clock_getres64 F
GLIBC_2.34 __clock_gettime64 F
@@ -289,6 +290,8 @@ GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
+GLIBC_2.34 aio_suspend F
+GLIBC_2.34 aio_suspend64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
@@ -1003,6 +1006,8 @@ GLIBC_2.4 aio_read F
GLIBC_2.4 aio_read64 F
GLIBC_2.4 aio_return F
GLIBC_2.4 aio_return64 F
+GLIBC_2.4 aio_suspend F
+GLIBC_2.4 aio_suspend64 F
GLIBC_2.4 alarm F
GLIBC_2.4 alphasort F
GLIBC_2.4 alphasort64 F
diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
index 05957aae03..7cb476c7b4 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -1,10 +1,7 @@
-GLIBC_2.34 __aio_suspend_time64 F
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_suspend F
-GLIBC_2.4 aio_suspend64 F
GLIBC_2.4 aio_write F
GLIBC_2.4 aio_write64 F
GLIBC_2.4 lio_listio F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index bee5d9f757..a195587b66 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -189,6 +189,7 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 ___adjtimex64 F
GLIBC_2.34 __adjtime64 F
+GLIBC_2.34 __aio_suspend_time64 F
GLIBC_2.34 __clock_adjtime64 F
GLIBC_2.34 __clock_getres64 F
GLIBC_2.34 __clock_gettime64 F
@@ -286,6 +287,8 @@ GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
+GLIBC_2.34 aio_suspend F
+GLIBC_2.34 aio_suspend64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
@@ -1000,6 +1003,8 @@ GLIBC_2.4 aio_read F
GLIBC_2.4 aio_read64 F
GLIBC_2.4 aio_return F
GLIBC_2.4 aio_return64 F
+GLIBC_2.4 aio_suspend F
+GLIBC_2.4 aio_suspend64 F
GLIBC_2.4 alarm F
GLIBC_2.4 alphasort F
GLIBC_2.4 alphasort64 F
diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
index 05957aae03..7cb476c7b4 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -1,10 +1,7 @@
-GLIBC_2.34 __aio_suspend_time64 F
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_suspend F
-GLIBC_2.4 aio_suspend64 F
GLIBC_2.4 aio_write F
GLIBC_2.4 aio_write64 F
GLIBC_2.4 lio_listio F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 753f54085a..1e3c73aa2d 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -575,6 +575,8 @@ GLIBC_2.29 aio_read F
GLIBC_2.29 aio_read64 F
GLIBC_2.29 aio_return F
GLIBC_2.29 aio_return64 F
+GLIBC_2.29 aio_suspend F
+GLIBC_2.29 aio_suspend64 F
GLIBC_2.29 alarm F
GLIBC_2.29 aligned_alloc F
GLIBC_2.29 alphasort F
@@ -2292,6 +2294,7 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 ___adjtimex64 F
GLIBC_2.34 __adjtime64 F
+GLIBC_2.34 __aio_suspend_time64 F
GLIBC_2.34 __clock_adjtime64 F
GLIBC_2.34 __clock_getres64 F
GLIBC_2.34 __clock_gettime64 F
@@ -2389,6 +2392,8 @@ GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
+GLIBC_2.34 aio_suspend F
+GLIBC_2.34 aio_suspend64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
index 74fc5621d6..fcc993f16f 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_suspend F
-GLIBC_2.29 aio_suspend64 F
GLIBC_2.29 aio_write F
GLIBC_2.29 aio_write64 F
GLIBC_2.29 lio_listio F
@@ -20,7 +18,6 @@ GLIBC_2.29 timer_delete F
GLIBC_2.29 timer_getoverrun F
GLIBC_2.29 timer_gettime F
GLIBC_2.29 timer_settime F
-GLIBC_2.34 __aio_suspend_time64 F
GLIBC_2.34 __mq_timedreceive_time64 F
GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __timer_gettime64 F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 4a96fcfb39..3e0ff7575e 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -14,6 +14,8 @@ GLIBC_2.1 aio_read F
GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
GLIBC_2.1 aio_return64 F
+GLIBC_2.1 aio_suspend F
+GLIBC_2.1 aio_suspend64 F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.10 __cxa_at_quick_exit F
@@ -2246,6 +2248,7 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 ___adjtimex64 F
GLIBC_2.34 __adjtime64 F
+GLIBC_2.34 __aio_suspend_time64 F
GLIBC_2.34 __clock_adjtime64 F
GLIBC_2.34 __clock_getres64 F
GLIBC_2.34 __clock_gettime64 F
@@ -2343,6 +2346,8 @@ GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
+GLIBC_2.34 aio_suspend F
+GLIBC_2.34 aio_suspend64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
index 4cae24e768..b9b9b71dba 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_suspend F
-GLIBC_2.1 aio_suspend64 F
GLIBC_2.1 aio_write F
GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
@@ -19,7 +17,6 @@ GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
-GLIBC_2.34 __aio_suspend_time64 F
GLIBC_2.34 __mq_timedreceive_time64 F
GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __timer_gettime64 F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index b704bf4756..54b5ee4649 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -1486,6 +1486,8 @@ GLIBC_2.1 aio_read F
GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
GLIBC_2.1 aio_return64 F
+GLIBC_2.1 aio_suspend F
+GLIBC_2.1 aio_suspend64 F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
GLIBC_2.1 argp_error F
@@ -2429,6 +2431,7 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 ___adjtimex64 F
GLIBC_2.34 __adjtime64 F
+GLIBC_2.34 __aio_suspend_time64 F
GLIBC_2.34 __clock_adjtime64 F
GLIBC_2.34 __clock_getres64 F
GLIBC_2.34 __clock_gettime64 F
@@ -2527,6 +2530,8 @@ GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
+GLIBC_2.34 aio_suspend F
+GLIBC_2.34 aio_suspend64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
index 4cae24e768..b9b9b71dba 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_suspend F
-GLIBC_2.1 aio_suspend64 F
GLIBC_2.1 aio_write F
GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
@@ -19,7 +17,6 @@ GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
-GLIBC_2.34 __aio_suspend_time64 F
GLIBC_2.34 __mq_timedreceive_time64 F
GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __timer_gettime64 F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 08bea0c72f..9aac5c8ff4 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -14,6 +14,8 @@ GLIBC_2.1 aio_read F
GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
GLIBC_2.1 aio_return64 F
+GLIBC_2.1 aio_suspend F
+GLIBC_2.1 aio_suspend64 F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.10 __cxa_at_quick_exit F
@@ -2303,6 +2305,8 @@ GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
+GLIBC_2.34 aio_suspend F
+GLIBC_2.34 aio_suspend64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
index ac9f293b6b..67435f760c 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_suspend F
-GLIBC_2.1 aio_suspend64 F
GLIBC_2.1 aio_write F
GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 187672fa76..87baa69dfe 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -193,6 +193,7 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 ___adjtimex64 F
GLIBC_2.34 __adjtime64 F
+GLIBC_2.34 __aio_suspend_time64 F
GLIBC_2.34 __clock_adjtime64 F
GLIBC_2.34 __clock_getres64 F
GLIBC_2.34 __clock_gettime64 F
@@ -290,6 +291,8 @@ GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
+GLIBC_2.34 aio_suspend F
+GLIBC_2.34 aio_suspend64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
@@ -991,6 +994,8 @@ GLIBC_2.4 aio_read F
GLIBC_2.4 aio_read64 F
GLIBC_2.4 aio_return F
GLIBC_2.4 aio_return64 F
+GLIBC_2.4 aio_suspend F
+GLIBC_2.4 aio_suspend64 F
GLIBC_2.4 alarm F
GLIBC_2.4 alphasort F
GLIBC_2.4 alphasort64 F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
index 05957aae03..7cb476c7b4 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -1,10 +1,7 @@
-GLIBC_2.34 __aio_suspend_time64 F
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_suspend F
-GLIBC_2.4 aio_suspend64 F
GLIBC_2.4 aio_write F
GLIBC_2.4 aio_write64 F
GLIBC_2.4 lio_listio F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 379779793c..68aa865da4 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -1484,6 +1484,8 @@ GLIBC_2.1 aio_read F
GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
GLIBC_2.1 aio_return64 F
+GLIBC_2.1 aio_suspend F
+GLIBC_2.1 aio_suspend64 F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
GLIBC_2.1 argp_error F
@@ -2373,6 +2375,7 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 ___adjtimex64 F
GLIBC_2.34 __adjtime64 F
+GLIBC_2.34 __aio_suspend_time64 F
GLIBC_2.34 __clock_adjtime64 F
GLIBC_2.34 __clock_getres64 F
GLIBC_2.34 __clock_gettime64 F
@@ -2470,6 +2473,8 @@ GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
+GLIBC_2.34 aio_suspend F
+GLIBC_2.34 aio_suspend64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
index 4cae24e768..b9b9b71dba 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_suspend F
-GLIBC_2.1 aio_suspend64 F
GLIBC_2.1 aio_write F
GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
@@ -19,7 +17,6 @@ GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
-GLIBC_2.34 __aio_suspend_time64 F
GLIBC_2.34 __mq_timedreceive_time64 F
GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __timer_gettime64 F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 2fce5d9138..19aef593f3 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -602,6 +602,8 @@ GLIBC_2.18 aio_read F
GLIBC_2.18 aio_read64 F
GLIBC_2.18 aio_return F
GLIBC_2.18 aio_return64 F
+GLIBC_2.18 aio_suspend F
+GLIBC_2.18 aio_suspend64 F
GLIBC_2.18 alarm F
GLIBC_2.18 aligned_alloc F
GLIBC_2.18 alphasort F
@@ -2343,6 +2345,7 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 ___adjtimex64 F
GLIBC_2.34 __adjtime64 F
+GLIBC_2.34 __aio_suspend_time64 F
GLIBC_2.34 __clock_adjtime64 F
GLIBC_2.34 __clock_getres64 F
GLIBC_2.34 __clock_gettime64 F
@@ -2440,6 +2443,8 @@ GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
+GLIBC_2.34 aio_suspend F
+GLIBC_2.34 aio_suspend64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
index 1503d19eae..06e862de52 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_suspend F
-GLIBC_2.18 aio_suspend64 F
GLIBC_2.18 aio_write F
GLIBC_2.18 aio_write64 F
GLIBC_2.18 lio_listio F
@@ -20,7 +18,6 @@ GLIBC_2.18 timer_delete F
GLIBC_2.18 timer_getoverrun F
GLIBC_2.18 timer_gettime F
GLIBC_2.18 timer_settime F
-GLIBC_2.34 __aio_suspend_time64 F
GLIBC_2.34 __mq_timedreceive_time64 F
GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __timer_gettime64 F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 6c3cd2a9e3..d5f26a2d9b 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -602,6 +602,8 @@ GLIBC_2.18 aio_read F
GLIBC_2.18 aio_read64 F
GLIBC_2.18 aio_return F
GLIBC_2.18 aio_return64 F
+GLIBC_2.18 aio_suspend F
+GLIBC_2.18 aio_suspend64 F
GLIBC_2.18 alarm F
GLIBC_2.18 aligned_alloc F
GLIBC_2.18 alphasort F
@@ -2340,6 +2342,7 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 ___adjtimex64 F
GLIBC_2.34 __adjtime64 F
+GLIBC_2.34 __aio_suspend_time64 F
GLIBC_2.34 __clock_adjtime64 F
GLIBC_2.34 __clock_getres64 F
GLIBC_2.34 __clock_gettime64 F
@@ -2437,6 +2440,8 @@ GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
+GLIBC_2.34 aio_suspend F
+GLIBC_2.34 aio_suspend64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
index 1503d19eae..06e862de52 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_suspend F
-GLIBC_2.18 aio_suspend64 F
GLIBC_2.18 aio_write F
GLIBC_2.18 aio_write64 F
GLIBC_2.18 lio_listio F
@@ -20,7 +18,6 @@ GLIBC_2.18 timer_delete F
GLIBC_2.18 timer_getoverrun F
GLIBC_2.18 timer_gettime F
GLIBC_2.18 timer_settime F
-GLIBC_2.34 __aio_suspend_time64 F
GLIBC_2.34 __mq_timedreceive_time64 F
GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __timer_gettime64 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 46aa64baaa..ba77980ef8 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -1662,6 +1662,8 @@ GLIBC_2.2 aio_read F
GLIBC_2.2 aio_read64 F
GLIBC_2.2 aio_return F
GLIBC_2.2 aio_return64 F
+GLIBC_2.2 aio_suspend F
+GLIBC_2.2 aio_suspend64 F
GLIBC_2.2 alphasort64 F
GLIBC_2.2 argp_err_exit_status D 0x4
GLIBC_2.2 argp_error F
@@ -2338,6 +2340,7 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 ___adjtimex64 F
GLIBC_2.34 __adjtime64 F
+GLIBC_2.34 __aio_suspend_time64 F
GLIBC_2.34 __clock_adjtime64 F
GLIBC_2.34 __clock_getres64 F
GLIBC_2.34 __clock_gettime64 F
@@ -2435,6 +2438,8 @@ GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
+GLIBC_2.34 aio_suspend F
+GLIBC_2.34 aio_suspend64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
index 2b7c3cabec..0a07f87ce9 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_suspend F
-GLIBC_2.2 aio_suspend64 F
GLIBC_2.2 aio_write F
GLIBC_2.2 aio_write64 F
GLIBC_2.2 lio_listio F
@@ -19,7 +17,6 @@ GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
-GLIBC_2.34 __aio_suspend_time64 F
GLIBC_2.34 __mq_timedreceive_time64 F
GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __timer_gettime64 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 169b386cc1..1e6c7a1eb3 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -1660,6 +1660,8 @@ GLIBC_2.2 aio_read F
GLIBC_2.2 aio_read64 F
GLIBC_2.2 aio_return F
GLIBC_2.2 aio_return64 F
+GLIBC_2.2 aio_suspend F
+GLIBC_2.2 aio_suspend64 F
GLIBC_2.2 alphasort64 F
GLIBC_2.2 argp_err_exit_status D 0x4
GLIBC_2.2 argp_error F
@@ -2336,6 +2338,7 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 ___adjtimex64 F
GLIBC_2.34 __adjtime64 F
+GLIBC_2.34 __aio_suspend_time64 F
GLIBC_2.34 __clock_adjtime64 F
GLIBC_2.34 __clock_getres64 F
GLIBC_2.34 __clock_gettime64 F
@@ -2433,6 +2436,8 @@ GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
+GLIBC_2.34 aio_suspend F
+GLIBC_2.34 aio_suspend64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index ad52c15c3e..fd731ffed0 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -1661,6 +1661,8 @@ GLIBC_2.2 aio_read F
GLIBC_2.2 aio_read64 F
GLIBC_2.2 aio_return F
GLIBC_2.2 aio_return64 F
+GLIBC_2.2 aio_suspend F
+GLIBC_2.2 aio_suspend64 F
GLIBC_2.2 alphasort64 F
GLIBC_2.2 argp_err_exit_status D 0x4
GLIBC_2.2 argp_error F
@@ -2344,6 +2346,7 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 ___adjtimex64 F
GLIBC_2.34 __adjtime64 F
+GLIBC_2.34 __aio_suspend_time64 F
GLIBC_2.34 __clock_adjtime64 F
GLIBC_2.34 __clock_getres64 F
GLIBC_2.34 __clock_gettime64 F
@@ -2441,6 +2444,8 @@ GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
+GLIBC_2.34 aio_suspend F
+GLIBC_2.34 aio_suspend64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
index 2b7c3cabec..0a07f87ce9 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_suspend F
-GLIBC_2.2 aio_suspend64 F
GLIBC_2.2 aio_write F
GLIBC_2.2 aio_write64 F
GLIBC_2.2 lio_listio F
@@ -19,7 +17,6 @@ GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
-GLIBC_2.34 __aio_suspend_time64 F
GLIBC_2.34 __mq_timedreceive_time64 F
GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __timer_gettime64 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 16a67a0d6d..9f82375689 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -1657,6 +1657,8 @@ GLIBC_2.2 aio_read F
GLIBC_2.2 aio_read64 F
GLIBC_2.2 aio_return F
GLIBC_2.2 aio_return64 F
+GLIBC_2.2 aio_suspend F
+GLIBC_2.2 aio_suspend64 F
GLIBC_2.2 alphasort64 F
GLIBC_2.2 argp_err_exit_status D 0x4
GLIBC_2.2 argp_error F
@@ -2359,6 +2361,8 @@ GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
+GLIBC_2.34 aio_suspend F
+GLIBC_2.34 aio_suspend64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
index 293b92eaec..7d7be4d9ec 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_suspend F
-GLIBC_2.2 aio_suspend64 F
GLIBC_2.2 aio_write F
GLIBC_2.2 aio_write64 F
GLIBC_2.2 lio_listio F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 3567fa8efc..77a0544dbf 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -644,6 +644,8 @@ GLIBC_2.21 aio_read F
GLIBC_2.21 aio_read64 F
GLIBC_2.21 aio_return F
GLIBC_2.21 aio_return64 F
+GLIBC_2.21 aio_suspend F
+GLIBC_2.21 aio_suspend64 F
GLIBC_2.21 alarm F
GLIBC_2.21 aligned_alloc F
GLIBC_2.21 alphasort F
@@ -2382,6 +2384,7 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 ___adjtimex64 F
GLIBC_2.34 __adjtime64 F
+GLIBC_2.34 __aio_suspend_time64 F
GLIBC_2.34 __clock_adjtime64 F
GLIBC_2.34 __clock_getres64 F
GLIBC_2.34 __clock_gettime64 F
@@ -2479,6 +2482,8 @@ GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
+GLIBC_2.34 aio_suspend F
+GLIBC_2.34 aio_suspend64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
index b63036c526..0db5142065 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_suspend F
-GLIBC_2.21 aio_suspend64 F
GLIBC_2.21 aio_write F
GLIBC_2.21 aio_write64 F
GLIBC_2.21 lio_listio F
@@ -20,7 +18,6 @@ GLIBC_2.21 timer_delete F
GLIBC_2.21 timer_getoverrun F
GLIBC_2.21 timer_gettime F
GLIBC_2.21 timer_settime F
-GLIBC_2.34 __aio_suspend_time64 F
GLIBC_2.34 __mq_timedreceive_time64 F
GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __timer_gettime64 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 0b393c0a5a..ed6f66c610 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -1491,6 +1491,8 @@ GLIBC_2.1 aio_read F
GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
GLIBC_2.1 aio_return64 F
+GLIBC_2.1 aio_suspend F
+GLIBC_2.1 aio_suspend64 F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
GLIBC_2.1 argp_error F
@@ -2400,6 +2402,7 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 ___adjtimex64 F
GLIBC_2.34 __adjtime64 F
+GLIBC_2.34 __aio_suspend_time64 F
GLIBC_2.34 __clock_adjtime64 F
GLIBC_2.34 __clock_getres64 F
GLIBC_2.34 __clock_gettime64 F
@@ -2497,6 +2500,8 @@ GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
+GLIBC_2.34 aio_suspend F
+GLIBC_2.34 aio_suspend64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
index 4cae24e768..b9b9b71dba 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_suspend F
-GLIBC_2.1 aio_suspend64 F
GLIBC_2.1 aio_write F
GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
@@ -19,7 +17,6 @@ GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
-GLIBC_2.34 __aio_suspend_time64 F
GLIBC_2.34 __mq_timedreceive_time64 F
GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __timer_gettime64 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 0bc73512d3..817530d12f 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -1491,6 +1491,8 @@ GLIBC_2.1 aio_read F
GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
GLIBC_2.1 aio_return64 F
+GLIBC_2.1 aio_suspend F
+GLIBC_2.1 aio_suspend64 F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
GLIBC_2.1 argp_error F
@@ -2433,6 +2435,7 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 ___adjtimex64 F
GLIBC_2.34 __adjtime64 F
+GLIBC_2.34 __aio_suspend_time64 F
GLIBC_2.34 __clock_adjtime64 F
GLIBC_2.34 __clock_getres64 F
GLIBC_2.34 __clock_gettime64 F
@@ -2530,6 +2533,8 @@ GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
+GLIBC_2.34 aio_suspend F
+GLIBC_2.34 aio_suspend64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 22d277a32e..40a27cfd26 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -644,6 +644,8 @@ GLIBC_2.3 aio_read F
GLIBC_2.3 aio_read64 F
GLIBC_2.3 aio_return F
GLIBC_2.3 aio_return64 F
+GLIBC_2.3 aio_suspend F
+GLIBC_2.3 aio_suspend64 F
GLIBC_2.3 alarm F
GLIBC_2.3 alphasort F
GLIBC_2.3 alphasort64 F
@@ -2267,6 +2269,8 @@ GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
+GLIBC_2.34 aio_suspend F
+GLIBC_2.34 aio_suspend64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
index b98e7cf9de..205c9536b4 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_suspend F
-GLIBC_2.3 aio_suspend64 F
GLIBC_2.3 aio_write F
GLIBC_2.3 aio_write64 F
GLIBC_2.3 lio_listio F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 15b0f5e367..208096bebf 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -688,6 +688,8 @@ GLIBC_2.17 aio_read F
GLIBC_2.17 aio_read64 F
GLIBC_2.17 aio_return F
GLIBC_2.17 aio_return64 F
+GLIBC_2.17 aio_suspend F
+GLIBC_2.17 aio_suspend64 F
GLIBC_2.17 alarm F
GLIBC_2.17 aligned_alloc F
GLIBC_2.17 alphasort F
@@ -2566,6 +2568,8 @@ GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
+GLIBC_2.34 aio_suspend F
+GLIBC_2.34 aio_suspend64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
index 451560dc87..37ff014ed8 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_suspend F
-GLIBC_2.17 aio_suspend64 F
GLIBC_2.17 aio_write F
GLIBC_2.17 aio_write64 F
GLIBC_2.17 lio_listio F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 6003434931..20b4b7c0ad 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -555,6 +555,8 @@ GLIBC_2.33 aio_read F
GLIBC_2.33 aio_read64 F
GLIBC_2.33 aio_return F
GLIBC_2.33 aio_return64 F
+GLIBC_2.33 aio_suspend F
+GLIBC_2.33 aio_suspend64 F
GLIBC_2.33 alarm F
GLIBC_2.33 aligned_alloc F
GLIBC_2.33 alphasort F
@@ -2131,6 +2133,8 @@ GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
+GLIBC_2.34 aio_suspend F
+GLIBC_2.34 aio_suspend64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
index dc23391407..51c25c849d 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_suspend F
-GLIBC_2.33 aio_suspend64 F
GLIBC_2.33 aio_write F
GLIBC_2.33 aio_write64 F
GLIBC_2.33 lio_listio F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 5041f05217..9675d2f767 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -581,6 +581,8 @@ GLIBC_2.27 aio_read F
GLIBC_2.27 aio_read64 F
GLIBC_2.27 aio_return F
GLIBC_2.27 aio_return64 F
+GLIBC_2.27 aio_suspend F
+GLIBC_2.27 aio_suspend64 F
GLIBC_2.27 alarm F
GLIBC_2.27 aligned_alloc F
GLIBC_2.27 alphasort F
@@ -2331,6 +2333,8 @@ GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
+GLIBC_2.34 aio_suspend F
+GLIBC_2.34 aio_suspend64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
index 5f1cecd612..7ccf2b6591 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_suspend F
-GLIBC_2.27 aio_suspend64 F
GLIBC_2.27 aio_write F
GLIBC_2.27 aio_write64 F
GLIBC_2.27 lio_listio F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index ed6c511cc9..3f64ebb9bd 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -1483,6 +1483,8 @@ GLIBC_2.1 aio_read F
GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
GLIBC_2.1 aio_return64 F
+GLIBC_2.1 aio_suspend F
+GLIBC_2.1 aio_suspend64 F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
GLIBC_2.1 argp_error F
@@ -2398,6 +2400,7 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 ___adjtimex64 F
GLIBC_2.34 __adjtime64 F
+GLIBC_2.34 __aio_suspend_time64 F
GLIBC_2.34 __clock_adjtime64 F
GLIBC_2.34 __clock_getres64 F
GLIBC_2.34 __clock_gettime64 F
@@ -2495,6 +2498,8 @@ GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
+GLIBC_2.34 aio_suspend F
+GLIBC_2.34 aio_suspend64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
index 4cae24e768..b9b9b71dba 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_suspend F
-GLIBC_2.1 aio_suspend64 F
GLIBC_2.1 aio_write F
GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
@@ -19,7 +17,6 @@ GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
-GLIBC_2.34 __aio_suspend_time64 F
GLIBC_2.34 __mq_timedreceive_time64 F
GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __timer_gettime64 F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 9f1e31574e..f727420c0a 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -581,6 +581,8 @@ GLIBC_2.2 aio_read F
GLIBC_2.2 aio_read64 F
GLIBC_2.2 aio_return F
GLIBC_2.2 aio_return64 F
+GLIBC_2.2 aio_suspend F
+GLIBC_2.2 aio_suspend64 F
GLIBC_2.2 alarm F
GLIBC_2.2 alphasort F
GLIBC_2.2 alphasort64 F
@@ -2304,6 +2306,8 @@ GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
+GLIBC_2.34 aio_suspend F
+GLIBC_2.34 aio_suspend64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
index 2442ed5222..15c2ca3e70 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_suspend F
-GLIBC_2.2 aio_suspend64 F
GLIBC_2.2 aio_write F
GLIBC_2.2 aio_write64 F
GLIBC_2.2 lio_listio F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index b9e583fa88..3aed85ad55 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -18,6 +18,8 @@ GLIBC_2.1 aio_read F
GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
GLIBC_2.1 aio_return64 F
+GLIBC_2.1 aio_suspend F
+GLIBC_2.1 aio_suspend64 F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.10 __cxa_at_quick_exit F
@@ -2253,6 +2255,7 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 ___adjtimex64 F
GLIBC_2.34 __adjtime64 F
+GLIBC_2.34 __aio_suspend_time64 F
GLIBC_2.34 __clock_adjtime64 F
GLIBC_2.34 __clock_getres64 F
GLIBC_2.34 __clock_gettime64 F
@@ -2350,6 +2353,8 @@ GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
+GLIBC_2.34 aio_suspend F
+GLIBC_2.34 aio_suspend64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
index 4cae24e768..b9b9b71dba 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_suspend F
-GLIBC_2.1 aio_suspend64 F
GLIBC_2.1 aio_write F
GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
@@ -19,7 +17,6 @@ GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
-GLIBC_2.34 __aio_suspend_time64 F
GLIBC_2.34 __mq_timedreceive_time64 F
GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __timer_gettime64 F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 2f737fadb8..eed02a7f07 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -18,6 +18,8 @@ GLIBC_2.1 aio_read F
GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
GLIBC_2.1 aio_return64 F
+GLIBC_2.1 aio_suspend F
+GLIBC_2.1 aio_suspend64 F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.10 __cxa_at_quick_exit F
@@ -2250,6 +2252,7 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 ___adjtimex64 F
GLIBC_2.34 __adjtime64 F
+GLIBC_2.34 __aio_suspend_time64 F
GLIBC_2.34 __clock_adjtime64 F
GLIBC_2.34 __clock_getres64 F
GLIBC_2.34 __clock_gettime64 F
@@ -2347,6 +2350,8 @@ GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
+GLIBC_2.34 aio_suspend F
+GLIBC_2.34 aio_suspend64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
index 4cae24e768..b9b9b71dba 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_suspend F
-GLIBC_2.1 aio_suspend64 F
GLIBC_2.1 aio_write F
GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
@@ -19,7 +17,6 @@ GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
-GLIBC_2.34 __aio_suspend_time64 F
GLIBC_2.34 __mq_timedreceive_time64 F
GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __timer_gettime64 F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index f4c87b4fa9..c627a8beb7 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -1485,6 +1485,8 @@ GLIBC_2.1 aio_read F
GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
GLIBC_2.1 aio_return64 F
+GLIBC_2.1 aio_suspend F
+GLIBC_2.1 aio_suspend64 F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
GLIBC_2.1 argp_error F
@@ -2393,6 +2395,7 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 ___adjtimex64 F
GLIBC_2.34 __adjtime64 F
+GLIBC_2.34 __aio_suspend_time64 F
GLIBC_2.34 __clock_adjtime64 F
GLIBC_2.34 __clock_getres64 F
GLIBC_2.34 __clock_gettime64 F
@@ -2490,6 +2493,8 @@ GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
+GLIBC_2.34 aio_suspend F
+GLIBC_2.34 aio_suspend64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
index 6061373aae..13fff57eb0 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_suspend F
-GLIBC_2.1 aio_suspend64 F
GLIBC_2.1 aio_write F
GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
@@ -20,7 +18,6 @@ GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
-GLIBC_2.34 __aio_suspend_time64 F
GLIBC_2.34 __mq_timedreceive_time64 F
GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __timer_gettime64 F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 03acd40463..574b4ef2c1 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -18,6 +18,8 @@ GLIBC_2.1 aio_read F
GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
GLIBC_2.1 aio_return64 F
+GLIBC_2.1 aio_suspend F
+GLIBC_2.1 aio_suspend64 F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.10 __cxa_at_quick_exit F
@@ -2326,6 +2328,8 @@ GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
+GLIBC_2.34 aio_suspend F
+GLIBC_2.34 aio_suspend64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
index 90a66e4a4b..8a8fe654e0 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_suspend F
-GLIBC_2.1 aio_suspend64 F
GLIBC_2.1 aio_write F
GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index f81fe5301d..6e3c1ce83b 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -570,6 +570,8 @@ GLIBC_2.2.5 aio_read F
GLIBC_2.2.5 aio_read64 F
GLIBC_2.2.5 aio_return F
GLIBC_2.2.5 aio_return64 F
+GLIBC_2.2.5 aio_suspend F
+GLIBC_2.2.5 aio_suspend64 F
GLIBC_2.2.5 alarm F
GLIBC_2.2.5 alphasort F
GLIBC_2.2.5 alphasort64 F
@@ -2282,6 +2284,8 @@ GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
+GLIBC_2.34 aio_suspend F
+GLIBC_2.34 aio_suspend64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
index 62fe3da2cb..c2e8ab87d0 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_suspend F
-GLIBC_2.2.5 aio_suspend64 F
GLIBC_2.2.5 aio_write F
GLIBC_2.2.5 aio_write64 F
GLIBC_2.2.5 lio_listio F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 45d74a3958..42376975e6 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -603,6 +603,8 @@ GLIBC_2.16 aio_read F
GLIBC_2.16 aio_read64 F
GLIBC_2.16 aio_return F
GLIBC_2.16 aio_return64 F
+GLIBC_2.16 aio_suspend F
+GLIBC_2.16 aio_suspend64 F
GLIBC_2.16 alarm F
GLIBC_2.16 aligned_alloc F
GLIBC_2.16 alphasort F
@@ -2385,6 +2387,8 @@ GLIBC_2.34 aio_read F
GLIBC_2.34 aio_read64 F
GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
+GLIBC_2.34 aio_suspend F
+GLIBC_2.34 aio_suspend64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
index a531990038..f7245c6716 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_suspend F
-GLIBC_2.16 aio_suspend64 F
GLIBC_2.16 aio_write F
GLIBC_2.16 aio_write64 F
GLIBC_2.16 lio_listio F
--
2.31.1
^ permalink raw reply [flat|nested] 72+ messages in thread
* Re: [PATCH 16/34] Linux: Move aio_suspend, aio_suspend64, __aio_suspend_time64 to libc
2021-06-17 18:58 ` [PATCH 16/34] Linux: Move aio_suspend, aio_suspend64, __aio_suspend_time64 to libc Florian Weimer
@ 2021-06-23 19:52 ` Adhemerval Zanella
2021-06-23 19:59 ` Florian Weimer
0 siblings, 1 reply; 72+ messages in thread
From: Adhemerval Zanella @ 2021-06-23 19:52 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 17/06/2021 15:58, Florian Weimer via Libc-alpha wrote:
> The symbols were moved using scripts/move-symbol-to-libc.py.
>
> There is a minor oddity here: This is generic code shared with Hurd,
> and Hurd does not have time64 support. This is why the
> versioned_symbol export for __aio_suspend_time64 is restricted to
> the PTHREAD_IN_LIBC code.
LGTM, thanks. Only a small question below.
Reviewed-by: Adhemerva Zanella <adhemerval.zanella@linaro.org>
> ---
> include/aio.h | 4 ++
> rt/Makefile | 2 +-
> rt/Versions | 6 ++-
> rt/aio_suspend.c | 49 +++++++++++++++----
> sysdeps/unix/sysv/linux/Versions | 2 +-
> sysdeps/unix/sysv/linux/aarch64/libc.abilist | 4 ++
> sysdeps/unix/sysv/linux/aarch64/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/alpha/libc.abilist | 4 ++
> sysdeps/unix/sysv/linux/alpha/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/arc/libc.abilist | 4 ++
> sysdeps/unix/sysv/linux/arc/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/arm/be/libc.abilist | 5 ++
> sysdeps/unix/sysv/linux/arm/be/librt.abilist | 3 --
> sysdeps/unix/sysv/linux/arm/le/libc.abilist | 5 ++
> sysdeps/unix/sysv/linux/arm/le/librt.abilist | 3 --
> sysdeps/unix/sysv/linux/csky/libc.abilist | 5 ++
> sysdeps/unix/sysv/linux/csky/librt.abilist | 3 --
> sysdeps/unix/sysv/linux/hppa/libc.abilist | 5 ++
> sysdeps/unix/sysv/linux/hppa/librt.abilist | 3 --
> sysdeps/unix/sysv/linux/i386/libc.abilist | 5 ++
> sysdeps/unix/sysv/linux/i386/librt.abilist | 3 --
> sysdeps/unix/sysv/linux/ia64/libc.abilist | 4 ++
> sysdeps/unix/sysv/linux/ia64/librt.abilist | 2 -
> .../sysv/linux/m68k/coldfire/libc.abilist | 5 ++
> .../sysv/linux/m68k/coldfire/librt.abilist | 3 --
> .../unix/sysv/linux/m68k/m680x0/libc.abilist | 5 ++
> .../unix/sysv/linux/m68k/m680x0/librt.abilist | 3 --
> .../sysv/linux/microblaze/be/libc.abilist | 5 ++
> .../sysv/linux/microblaze/be/librt.abilist | 3 --
> .../sysv/linux/microblaze/le/libc.abilist | 5 ++
> .../sysv/linux/microblaze/le/librt.abilist | 3 --
> .../sysv/linux/mips/mips32/fpu/libc.abilist | 5 ++
> .../unix/sysv/linux/mips/mips32/librt.abilist | 3 --
> .../sysv/linux/mips/mips32/nofpu/libc.abilist | 5 ++
> .../sysv/linux/mips/mips64/n32/libc.abilist | 5 ++
> .../sysv/linux/mips/mips64/n32/librt.abilist | 3 --
> .../sysv/linux/mips/mips64/n64/libc.abilist | 4 ++
> .../sysv/linux/mips/mips64/n64/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/nios2/libc.abilist | 5 ++
> sysdeps/unix/sysv/linux/nios2/librt.abilist | 3 --
> .../linux/powerpc/powerpc32/fpu/libc.abilist | 5 ++
> .../linux/powerpc/powerpc32/librt.abilist | 3 --
> .../powerpc/powerpc32/nofpu/libc.abilist | 5 ++
> .../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 | 5 ++
> .../sysv/linux/s390/s390-32/librt.abilist | 3 --
> .../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 | 5 ++
> sysdeps/unix/sysv/linux/sh/be/librt.abilist | 3 --
> sysdeps/unix/sysv/linux/sh/le/libc.abilist | 5 ++
> sysdeps/unix/sysv/linux/sh/le/librt.abilist | 3 --
> .../sysv/linux/sparc/sparc32/libc.abilist | 5 ++
> .../sysv/linux/sparc/sparc32/librt.abilist | 3 --
> .../sysv/linux/sparc/sparc64/libc.abilist | 4 ++
> .../sysv/linux/sparc/sparc64/librt.abilist | 2 -
> .../unix/sysv/linux/x86_64/64/libc.abilist | 4 ++
> .../unix/sysv/linux/x86_64/64/librt.abilist | 2 -
> .../unix/sysv/linux/x86_64/x32/libc.abilist | 4 ++
> .../unix/sysv/linux/x86_64/x32/librt.abilist | 2 -
> 67 files changed, 197 insertions(+), 90 deletions(-)
>
> diff --git a/include/aio.h b/include/aio.h
> index c7f4233310..5d67800aff 100644
> --- a/include/aio.h
> +++ b/include/aio.h
> @@ -15,7 +15,11 @@ extern void __aio_init (const struct aioinit *__init);
> # else
> extern int __aio_suspend_time64 (const struct aiocb *const list[], int nent,
> const struct __timespec64 *timeout);
> +# if PTHREAD_IN_LIBC
> +libc_hidden_proto (__aio_suspend_time64)
> +# else
> librt_hidden_proto (__aio_suspend_time64)
> +#endif
> # endif
> #endif
>
Ok.
> diff --git a/rt/Makefile b/rt/Makefile
> index 810599a736..b375d37ba2 100644
> --- a/rt/Makefile
> +++ b/rt/Makefile
> @@ -29,7 +29,6 @@ routines = \
> shm_unlink \
>
> librt-routines = \
> - aio_suspend \
> aio_write \
> aio_write64 \
> librt-compat \
> @@ -63,6 +62,7 @@ $(librt-routines-var) += \
> aio_read64 \
> aio_return \
> aio_sigqueue \
> + aio_suspend \
>
> tests := tst-shm tst-timer tst-timer2 \
> tst-aio tst-aio64 tst-aio2 tst-aio3 tst-aio4 tst-aio5 tst-aio6 \
Ok.
> diff --git a/rt/Versions b/rt/Versions
> index 0780dc8400..d54b9cc4bf 100644
> --- a/rt/Versions
> +++ b/rt/Versions
> @@ -12,6 +12,8 @@ libc {
> aio_read64;
> aio_return;
> aio_return64;
> + aio_suspend;
> + aio_suspend64;
> %endif
> }
> GLIBC_2.2 {
> @@ -31,6 +33,8 @@ libc {
> aio_read64;
> aio_return;
> aio_return64;
> + aio_suspend;
> + aio_suspend64;
> %endif
> shm_open;
> shm_unlink;
> @@ -63,9 +67,9 @@ librt {
> aio_read64;
> aio_return;
> aio_return64;
> -%endif
> aio_suspend;
> aio_suspend64;
> +%endif
> aio_write;
> aio_write64;
> lio_listio;
Ok.
> diff --git a/rt/aio_suspend.c b/rt/aio_suspend.c
> index 6fd5b1bee2..29f01d1023 100644
> --- a/rt/aio_suspend.c
> +++ b/rt/aio_suspend.c
> @@ -36,6 +36,8 @@
>
> #include <libc-lock.h>
> #include <aio_misc.h>
> +#include <pthreadP.h>
> +#include <shlib-compat.h>
>
>
> struct clparam
> @@ -56,7 +58,7 @@ cleanup (void *arg)
> #ifdef DONT_NEED_AIO_MISC_COND
> /* Acquire the mutex. If pthread_cond_*wait is used this would
> happen implicitly. */
> - pthread_mutex_lock (&__aio_requests_mutex);
> + __pthread_mutex_lock (&__aio_requests_mutex);
> #endif
>
> const struct clparam *param = (const struct clparam *) arg;
> @@ -88,7 +90,7 @@ cleanup (void *arg)
> #endif
>
> /* Release the mutex. */
> - pthread_mutex_unlock (&__aio_requests_mutex);
> + __pthread_mutex_unlock (&__aio_requests_mutex);
> }
>
> #ifdef DONT_NEED_AIO_MISC_COND
> @@ -105,7 +107,7 @@ do_aio_misc_wait (unsigned int *cntr, const struct __timespec64 *timeout)
> #endif
>
> int
> -__aio_suspend_time64 (const struct aiocb *const list[], int nent,
> +___aio_suspend_time64 (const struct aiocb *const list[], int nent,
> const struct __timespec64 *timeout)
> {
> if (__glibc_unlikely (nent < 0))
> @@ -125,7 +127,7 @@ __aio_suspend_time64 (const struct aiocb *const list[], int nent,
> unsigned int cntr = 1;
>
> /* Request the mutex. */
> - pthread_mutex_lock (&__aio_requests_mutex);
> + __pthread_mutex_lock (&__aio_requests_mutex);
>
> /* There is not yet a finished request. Signal the request that
> we are working for it. */
> @@ -184,7 +186,11 @@ __aio_suspend_time64 (const struct aiocb *const list[], int nent,
> .nent = nent
> };
>
> - pthread_cleanup_push (cleanup, &clparam);
> +#if PTHREAD_IN_LIBC
> + __libc_cleanup_region_start (1, cleanup, &clparam);
> +#else
> + __pthread_cleanup_push (cleanup, &clparam);
> +#endif
>
> #ifdef DONT_NEED_AIO_MISC_COND
> result = do_aio_misc_wait (&cntr, timeout == NULL ? NULL : &ts);
> @@ -194,7 +200,11 @@ __aio_suspend_time64 (const struct aiocb *const list[], int nent,
> timeout == NULL ? NULL : &ts32);
> #endif
>
> +#if PTHREAD_IN_LIBC
> + __libc_cleanup_region_end (0);
> +#else
> pthread_cleanup_pop (0);
> +#endif
> }
>
Ok. What prevents to use __libc_cleanup_region_start on Hurd as well here?
> /* Now remove the entry in the waiting list for all requests
> @@ -239,13 +249,22 @@ __aio_suspend_time64 (const struct aiocb *const list[], int nent,
> }
>
> /* Release the mutex. */
> - pthread_mutex_unlock (&__aio_requests_mutex);
> + __pthread_mutex_unlock (&__aio_requests_mutex);
>
> return result;
> }
>
> -#if __TIMESIZE != 64
> -librt_hidden_def (__aio_suspend_time64)
> +#if __TIMESIZE == 64
> +strong_alias (___aio_suspend_time64, __aio_suspend)
> +#else /* __TIMESIZE != 64 */
> +# if PTHREAD_IN_LIBC
> +libc_hidden_ver (___aio_suspend_time64, __aio_suspend_time64)
> +/* The conditional is slightly wrong: PTHREAD_IN_LIBC is a stand-in
> + for whether time64 support is needed. */
> +versioned_symbol (libc, ___aio_suspend_time64, __aio_suspend_time64, GLIBC_2_34);
> +# else
> +librt_hidden_ver (___aio_suspend_time64, __aio_suspend_time64)
> +# endif
>
> int
> __aio_suspend (const struct aiocb *const list[], int nent,
> @@ -258,6 +277,16 @@ __aio_suspend (const struct aiocb *const list[], int nent,
>
> return __aio_suspend_time64 (list, nent, timeout != NULL ? &ts64 : NULL);
> }
> -#endif
> +#endif /* __TIMESPEC64 != 64 */
> +
> +#if PTHREAD_IN_LIBC
> +versioned_symbol (libc, __aio_suspend, aio_suspend, GLIBC_2_34);
> +versioned_symbol (libc, __aio_suspend, aio_suspend64, GLIBC_2_34);
> +# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_34)
> +compat_symbol (librt, __aio_suspend, aio_suspend, GLIBC_2_1);
> +compat_symbol (librt, __aio_suspend, aio_suspend64, GLIBC_2_1);
> +# endif
> +#else /* !PTHREAD_IN_LIBC */
> weak_alias (__aio_suspend, aio_suspend)
> -weak_alias (aio_suspend, aio_suspend64)
> +weak_alias (__aio_suspend, aio_suspend64)
> +#endif /* !PTHREAD_IN_LIBC */
Ok.
> diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions
> index ea0b22d7af..f246a389e1 100644
> --- a/sysdeps/unix/sysv/linux/Versions
> +++ b/sysdeps/unix/sysv/linux/Versions
> @@ -192,6 +192,7 @@ libc {
> # 64-bit time_t support
> __adjtime64;
> ___adjtimex64;
> + __aio_suspend_time64;
> __clock_adjtime64;
> __clock_getres64;
> __clock_gettime64;
> @@ -294,7 +295,6 @@ librt {
> GLIBC_2.34 {
> %ifdef TIME64_NON_DEFAULT
> # 64-bit time_t support
> - __aio_suspend_time64;
> __mq_timedsend_time64;
> __mq_timedreceive_time64;
> __timer_gettime64;
Ok.
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index 79405d26e9..6c76d0df61 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -600,6 +600,8 @@ GLIBC_2.17 aio_read F
> GLIBC_2.17 aio_read64 F
> GLIBC_2.17 aio_return F
> GLIBC_2.17 aio_return64 F
> +GLIBC_2.17 aio_suspend F
> +GLIBC_2.17 aio_suspend64 F
> GLIBC_2.17 alarm F
> GLIBC_2.17 aligned_alloc F
> GLIBC_2.17 alphasort F
> @@ -2370,6 +2372,8 @@ GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> +GLIBC_2.34 aio_suspend F
> +GLIBC_2.34 aio_suspend64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> index 451560dc87..37ff014ed8 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_suspend F
> -GLIBC_2.17 aio_suspend64 F
> GLIBC_2.17 aio_write F
> GLIBC_2.17 aio_write64 F
> GLIBC_2.17 lio_listio F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index f6fa8966f8..e7f0e1b49a 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -1513,6 +1513,8 @@ GLIBC_2.1 aio_read F
> GLIBC_2.1 aio_read64 F
> GLIBC_2.1 aio_return F
> GLIBC_2.1 aio_return64 F
> +GLIBC_2.1 aio_suspend F
> +GLIBC_2.1 aio_suspend64 F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> GLIBC_2.1 argp_error F
> @@ -2465,6 +2467,8 @@ GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> +GLIBC_2.34 aio_suspend F
> +GLIBC_2.34 aio_suspend64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
> index 90a66e4a4b..8a8fe654e0 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_suspend F
> -GLIBC_2.1 aio_suspend64 F
> GLIBC_2.1 aio_write F
> GLIBC_2.1 aio_write64 F
> GLIBC_2.1 lio_listio F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index a5c1df7eaf..cf93d14e6f 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -561,6 +561,8 @@ GLIBC_2.32 aio_read F
> GLIBC_2.32 aio_read64 F
> GLIBC_2.32 aio_return F
> GLIBC_2.32 aio_return64 F
> +GLIBC_2.32 aio_suspend F
> +GLIBC_2.32 aio_suspend64 F
> GLIBC_2.32 alarm F
> GLIBC_2.32 aligned_alloc F
> GLIBC_2.32 alphasort F
> @@ -2129,6 +2131,8 @@ GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> +GLIBC_2.34 aio_suspend F
> +GLIBC_2.34 aio_suspend64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
> index 9cac9c759b..4eb7de36e1 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_suspend F
> -GLIBC_2.32 aio_suspend64 F
> GLIBC_2.32 aio_write F
> GLIBC_2.32 aio_write64 F
> GLIBC_2.32 lio_listio F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index 1928717cfd..9d9e4c6b73 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -192,6 +192,7 @@ GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.34 ___adjtimex64 F
> GLIBC_2.34 __adjtime64 F
> +GLIBC_2.34 __aio_suspend_time64 F
> GLIBC_2.34 __clock_adjtime64 F
> GLIBC_2.34 __clock_getres64 F
> GLIBC_2.34 __clock_gettime64 F
> @@ -289,6 +290,8 @@ GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> +GLIBC_2.34 aio_suspend F
> +GLIBC_2.34 aio_suspend64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> @@ -1003,6 +1006,8 @@ GLIBC_2.4 aio_read F
> GLIBC_2.4 aio_read64 F
> GLIBC_2.4 aio_return F
> GLIBC_2.4 aio_return64 F
> +GLIBC_2.4 aio_suspend F
> +GLIBC_2.4 aio_suspend64 F
> GLIBC_2.4 alarm F
> GLIBC_2.4 alphasort F
> GLIBC_2.4 alphasort64 F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> index 05957aae03..7cb476c7b4 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> @@ -1,10 +1,7 @@
> -GLIBC_2.34 __aio_suspend_time64 F
> 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_suspend F
> -GLIBC_2.4 aio_suspend64 F
> GLIBC_2.4 aio_write F
> GLIBC_2.4 aio_write64 F
> GLIBC_2.4 lio_listio F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index bee5d9f757..a195587b66 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -189,6 +189,7 @@ GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.34 ___adjtimex64 F
> GLIBC_2.34 __adjtime64 F
> +GLIBC_2.34 __aio_suspend_time64 F
> GLIBC_2.34 __clock_adjtime64 F
> GLIBC_2.34 __clock_getres64 F
> GLIBC_2.34 __clock_gettime64 F
> @@ -286,6 +287,8 @@ GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> +GLIBC_2.34 aio_suspend F
> +GLIBC_2.34 aio_suspend64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> @@ -1000,6 +1003,8 @@ GLIBC_2.4 aio_read F
> GLIBC_2.4 aio_read64 F
> GLIBC_2.4 aio_return F
> GLIBC_2.4 aio_return64 F
> +GLIBC_2.4 aio_suspend F
> +GLIBC_2.4 aio_suspend64 F
> GLIBC_2.4 alarm F
> GLIBC_2.4 alphasort F
> GLIBC_2.4 alphasort64 F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> index 05957aae03..7cb476c7b4 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> @@ -1,10 +1,7 @@
> -GLIBC_2.34 __aio_suspend_time64 F
> 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_suspend F
> -GLIBC_2.4 aio_suspend64 F
> GLIBC_2.4 aio_write F
> GLIBC_2.4 aio_write64 F
> GLIBC_2.4 lio_listio F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index 753f54085a..1e3c73aa2d 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -575,6 +575,8 @@ GLIBC_2.29 aio_read F
> GLIBC_2.29 aio_read64 F
> GLIBC_2.29 aio_return F
> GLIBC_2.29 aio_return64 F
> +GLIBC_2.29 aio_suspend F
> +GLIBC_2.29 aio_suspend64 F
> GLIBC_2.29 alarm F
> GLIBC_2.29 aligned_alloc F
> GLIBC_2.29 alphasort F
> @@ -2292,6 +2294,7 @@ GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.34 ___adjtimex64 F
> GLIBC_2.34 __adjtime64 F
> +GLIBC_2.34 __aio_suspend_time64 F
> GLIBC_2.34 __clock_adjtime64 F
> GLIBC_2.34 __clock_getres64 F
> GLIBC_2.34 __clock_gettime64 F
> @@ -2389,6 +2392,8 @@ GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> +GLIBC_2.34 aio_suspend F
> +GLIBC_2.34 aio_suspend64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
> index 74fc5621d6..fcc993f16f 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_suspend F
> -GLIBC_2.29 aio_suspend64 F
> GLIBC_2.29 aio_write F
> GLIBC_2.29 aio_write64 F
> GLIBC_2.29 lio_listio F
> @@ -20,7 +18,6 @@ GLIBC_2.29 timer_delete F
> GLIBC_2.29 timer_getoverrun F
> GLIBC_2.29 timer_gettime F
> GLIBC_2.29 timer_settime F
> -GLIBC_2.34 __aio_suspend_time64 F
> GLIBC_2.34 __mq_timedreceive_time64 F
> GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __timer_gettime64 F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index 4a96fcfb39..3e0ff7575e 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -14,6 +14,8 @@ GLIBC_2.1 aio_read F
> GLIBC_2.1 aio_read64 F
> GLIBC_2.1 aio_return F
> GLIBC_2.1 aio_return64 F
> +GLIBC_2.1 aio_suspend F
> +GLIBC_2.1 aio_suspend64 F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.10 __cxa_at_quick_exit F
> @@ -2246,6 +2248,7 @@ GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.34 ___adjtimex64 F
> GLIBC_2.34 __adjtime64 F
> +GLIBC_2.34 __aio_suspend_time64 F
> GLIBC_2.34 __clock_adjtime64 F
> GLIBC_2.34 __clock_getres64 F
> GLIBC_2.34 __clock_gettime64 F
> @@ -2343,6 +2346,8 @@ GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> +GLIBC_2.34 aio_suspend F
> +GLIBC_2.34 aio_suspend64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
> index 4cae24e768..b9b9b71dba 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_suspend F
> -GLIBC_2.1 aio_suspend64 F
> GLIBC_2.1 aio_write F
> GLIBC_2.1 aio_write64 F
> GLIBC_2.1 lio_listio F
> @@ -19,7 +17,6 @@ GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> -GLIBC_2.34 __aio_suspend_time64 F
> GLIBC_2.34 __mq_timedreceive_time64 F
> GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __timer_gettime64 F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index b704bf4756..54b5ee4649 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -1486,6 +1486,8 @@ GLIBC_2.1 aio_read F
> GLIBC_2.1 aio_read64 F
> GLIBC_2.1 aio_return F
> GLIBC_2.1 aio_return64 F
> +GLIBC_2.1 aio_suspend F
> +GLIBC_2.1 aio_suspend64 F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> GLIBC_2.1 argp_error F
> @@ -2429,6 +2431,7 @@ GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.34 ___adjtimex64 F
> GLIBC_2.34 __adjtime64 F
> +GLIBC_2.34 __aio_suspend_time64 F
> GLIBC_2.34 __clock_adjtime64 F
> GLIBC_2.34 __clock_getres64 F
> GLIBC_2.34 __clock_gettime64 F
> @@ -2527,6 +2530,8 @@ GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> +GLIBC_2.34 aio_suspend F
> +GLIBC_2.34 aio_suspend64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
> index 4cae24e768..b9b9b71dba 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_suspend F
> -GLIBC_2.1 aio_suspend64 F
> GLIBC_2.1 aio_write F
> GLIBC_2.1 aio_write64 F
> GLIBC_2.1 lio_listio F
> @@ -19,7 +17,6 @@ GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> -GLIBC_2.34 __aio_suspend_time64 F
> GLIBC_2.34 __mq_timedreceive_time64 F
> GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __timer_gettime64 F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index 08bea0c72f..9aac5c8ff4 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -14,6 +14,8 @@ GLIBC_2.1 aio_read F
> GLIBC_2.1 aio_read64 F
> GLIBC_2.1 aio_return F
> GLIBC_2.1 aio_return64 F
> +GLIBC_2.1 aio_suspend F
> +GLIBC_2.1 aio_suspend64 F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.10 __cxa_at_quick_exit F
> @@ -2303,6 +2305,8 @@ GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> +GLIBC_2.34 aio_suspend F
> +GLIBC_2.34 aio_suspend64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
> index ac9f293b6b..67435f760c 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_suspend F
> -GLIBC_2.1 aio_suspend64 F
> GLIBC_2.1 aio_write F
> GLIBC_2.1 aio_write64 F
> GLIBC_2.1 lio_listio F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index 187672fa76..87baa69dfe 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -193,6 +193,7 @@ GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.34 ___adjtimex64 F
> GLIBC_2.34 __adjtime64 F
> +GLIBC_2.34 __aio_suspend_time64 F
> GLIBC_2.34 __clock_adjtime64 F
> GLIBC_2.34 __clock_getres64 F
> GLIBC_2.34 __clock_gettime64 F
> @@ -290,6 +291,8 @@ GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> +GLIBC_2.34 aio_suspend F
> +GLIBC_2.34 aio_suspend64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> @@ -991,6 +994,8 @@ GLIBC_2.4 aio_read F
> GLIBC_2.4 aio_read64 F
> GLIBC_2.4 aio_return F
> GLIBC_2.4 aio_return64 F
> +GLIBC_2.4 aio_suspend F
> +GLIBC_2.4 aio_suspend64 F
> GLIBC_2.4 alarm F
> GLIBC_2.4 alphasort F
> GLIBC_2.4 alphasort64 F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> index 05957aae03..7cb476c7b4 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> @@ -1,10 +1,7 @@
> -GLIBC_2.34 __aio_suspend_time64 F
> 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_suspend F
> -GLIBC_2.4 aio_suspend64 F
> GLIBC_2.4 aio_write F
> GLIBC_2.4 aio_write64 F
> GLIBC_2.4 lio_listio F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index 379779793c..68aa865da4 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -1484,6 +1484,8 @@ GLIBC_2.1 aio_read F
> GLIBC_2.1 aio_read64 F
> GLIBC_2.1 aio_return F
> GLIBC_2.1 aio_return64 F
> +GLIBC_2.1 aio_suspend F
> +GLIBC_2.1 aio_suspend64 F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> GLIBC_2.1 argp_error F
> @@ -2373,6 +2375,7 @@ GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.34 ___adjtimex64 F
> GLIBC_2.34 __adjtime64 F
> +GLIBC_2.34 __aio_suspend_time64 F
> GLIBC_2.34 __clock_adjtime64 F
> GLIBC_2.34 __clock_getres64 F
> GLIBC_2.34 __clock_gettime64 F
> @@ -2470,6 +2473,8 @@ GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> +GLIBC_2.34 aio_suspend F
> +GLIBC_2.34 aio_suspend64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> index 4cae24e768..b9b9b71dba 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_suspend F
> -GLIBC_2.1 aio_suspend64 F
> GLIBC_2.1 aio_write F
> GLIBC_2.1 aio_write64 F
> GLIBC_2.1 lio_listio F
> @@ -19,7 +17,6 @@ GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> -GLIBC_2.34 __aio_suspend_time64 F
> GLIBC_2.34 __mq_timedreceive_time64 F
> GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __timer_gettime64 F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index 2fce5d9138..19aef593f3 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -602,6 +602,8 @@ GLIBC_2.18 aio_read F
> GLIBC_2.18 aio_read64 F
> GLIBC_2.18 aio_return F
> GLIBC_2.18 aio_return64 F
> +GLIBC_2.18 aio_suspend F
> +GLIBC_2.18 aio_suspend64 F
> GLIBC_2.18 alarm F
> GLIBC_2.18 aligned_alloc F
> GLIBC_2.18 alphasort F
> @@ -2343,6 +2345,7 @@ GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.34 ___adjtimex64 F
> GLIBC_2.34 __adjtime64 F
> +GLIBC_2.34 __aio_suspend_time64 F
> GLIBC_2.34 __clock_adjtime64 F
> GLIBC_2.34 __clock_getres64 F
> GLIBC_2.34 __clock_gettime64 F
> @@ -2440,6 +2443,8 @@ GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> +GLIBC_2.34 aio_suspend F
> +GLIBC_2.34 aio_suspend64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> index 1503d19eae..06e862de52 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_suspend F
> -GLIBC_2.18 aio_suspend64 F
> GLIBC_2.18 aio_write F
> GLIBC_2.18 aio_write64 F
> GLIBC_2.18 lio_listio F
> @@ -20,7 +18,6 @@ GLIBC_2.18 timer_delete F
> GLIBC_2.18 timer_getoverrun F
> GLIBC_2.18 timer_gettime F
> GLIBC_2.18 timer_settime F
> -GLIBC_2.34 __aio_suspend_time64 F
> GLIBC_2.34 __mq_timedreceive_time64 F
> GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __timer_gettime64 F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index 6c3cd2a9e3..d5f26a2d9b 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -602,6 +602,8 @@ GLIBC_2.18 aio_read F
> GLIBC_2.18 aio_read64 F
> GLIBC_2.18 aio_return F
> GLIBC_2.18 aio_return64 F
> +GLIBC_2.18 aio_suspend F
> +GLIBC_2.18 aio_suspend64 F
> GLIBC_2.18 alarm F
> GLIBC_2.18 aligned_alloc F
> GLIBC_2.18 alphasort F
> @@ -2340,6 +2342,7 @@ GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.34 ___adjtimex64 F
> GLIBC_2.34 __adjtime64 F
> +GLIBC_2.34 __aio_suspend_time64 F
> GLIBC_2.34 __clock_adjtime64 F
> GLIBC_2.34 __clock_getres64 F
> GLIBC_2.34 __clock_gettime64 F
> @@ -2437,6 +2440,8 @@ GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> +GLIBC_2.34 aio_suspend F
> +GLIBC_2.34 aio_suspend64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> index 1503d19eae..06e862de52 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_suspend F
> -GLIBC_2.18 aio_suspend64 F
> GLIBC_2.18 aio_write F
> GLIBC_2.18 aio_write64 F
> GLIBC_2.18 lio_listio F
> @@ -20,7 +18,6 @@ GLIBC_2.18 timer_delete F
> GLIBC_2.18 timer_getoverrun F
> GLIBC_2.18 timer_gettime F
> GLIBC_2.18 timer_settime F
> -GLIBC_2.34 __aio_suspend_time64 F
> GLIBC_2.34 __mq_timedreceive_time64 F
> GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __timer_gettime64 F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index 46aa64baaa..ba77980ef8 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -1662,6 +1662,8 @@ GLIBC_2.2 aio_read F
> GLIBC_2.2 aio_read64 F
> GLIBC_2.2 aio_return F
> GLIBC_2.2 aio_return64 F
> +GLIBC_2.2 aio_suspend F
> +GLIBC_2.2 aio_suspend64 F
> GLIBC_2.2 alphasort64 F
> GLIBC_2.2 argp_err_exit_status D 0x4
> GLIBC_2.2 argp_error F
> @@ -2338,6 +2340,7 @@ GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.34 ___adjtimex64 F
> GLIBC_2.34 __adjtime64 F
> +GLIBC_2.34 __aio_suspend_time64 F
> GLIBC_2.34 __clock_adjtime64 F
> GLIBC_2.34 __clock_getres64 F
> GLIBC_2.34 __clock_gettime64 F
> @@ -2435,6 +2438,8 @@ GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> +GLIBC_2.34 aio_suspend F
> +GLIBC_2.34 aio_suspend64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> index 2b7c3cabec..0a07f87ce9 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_suspend F
> -GLIBC_2.2 aio_suspend64 F
> GLIBC_2.2 aio_write F
> GLIBC_2.2 aio_write64 F
> GLIBC_2.2 lio_listio F
> @@ -19,7 +17,6 @@ GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> -GLIBC_2.34 __aio_suspend_time64 F
> GLIBC_2.34 __mq_timedreceive_time64 F
> GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __timer_gettime64 F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index 169b386cc1..1e6c7a1eb3 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -1660,6 +1660,8 @@ GLIBC_2.2 aio_read F
> GLIBC_2.2 aio_read64 F
> GLIBC_2.2 aio_return F
> GLIBC_2.2 aio_return64 F
> +GLIBC_2.2 aio_suspend F
> +GLIBC_2.2 aio_suspend64 F
> GLIBC_2.2 alphasort64 F
> GLIBC_2.2 argp_err_exit_status D 0x4
> GLIBC_2.2 argp_error F
> @@ -2336,6 +2338,7 @@ GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.34 ___adjtimex64 F
> GLIBC_2.34 __adjtime64 F
> +GLIBC_2.34 __aio_suspend_time64 F
> GLIBC_2.34 __clock_adjtime64 F
> GLIBC_2.34 __clock_getres64 F
> GLIBC_2.34 __clock_gettime64 F
> @@ -2433,6 +2436,8 @@ GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> +GLIBC_2.34 aio_suspend F
> +GLIBC_2.34 aio_suspend64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index ad52c15c3e..fd731ffed0 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -1661,6 +1661,8 @@ GLIBC_2.2 aio_read F
> GLIBC_2.2 aio_read64 F
> GLIBC_2.2 aio_return F
> GLIBC_2.2 aio_return64 F
> +GLIBC_2.2 aio_suspend F
> +GLIBC_2.2 aio_suspend64 F
> GLIBC_2.2 alphasort64 F
> GLIBC_2.2 argp_err_exit_status D 0x4
> GLIBC_2.2 argp_error F
> @@ -2344,6 +2346,7 @@ GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.34 ___adjtimex64 F
> GLIBC_2.34 __adjtime64 F
> +GLIBC_2.34 __aio_suspend_time64 F
> GLIBC_2.34 __clock_adjtime64 F
> GLIBC_2.34 __clock_getres64 F
> GLIBC_2.34 __clock_gettime64 F
> @@ -2441,6 +2444,8 @@ GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> +GLIBC_2.34 aio_suspend F
> +GLIBC_2.34 aio_suspend64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> index 2b7c3cabec..0a07f87ce9 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_suspend F
> -GLIBC_2.2 aio_suspend64 F
> GLIBC_2.2 aio_write F
> GLIBC_2.2 aio_write64 F
> GLIBC_2.2 lio_listio F
> @@ -19,7 +17,6 @@ GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> -GLIBC_2.34 __aio_suspend_time64 F
> GLIBC_2.34 __mq_timedreceive_time64 F
> GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __timer_gettime64 F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index 16a67a0d6d..9f82375689 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -1657,6 +1657,8 @@ GLIBC_2.2 aio_read F
> GLIBC_2.2 aio_read64 F
> GLIBC_2.2 aio_return F
> GLIBC_2.2 aio_return64 F
> +GLIBC_2.2 aio_suspend F
> +GLIBC_2.2 aio_suspend64 F
> GLIBC_2.2 alphasort64 F
> GLIBC_2.2 argp_err_exit_status D 0x4
> GLIBC_2.2 argp_error F
> @@ -2359,6 +2361,8 @@ GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> +GLIBC_2.34 aio_suspend F
> +GLIBC_2.34 aio_suspend64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> index 293b92eaec..7d7be4d9ec 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_suspend F
> -GLIBC_2.2 aio_suspend64 F
> GLIBC_2.2 aio_write F
> GLIBC_2.2 aio_write64 F
> GLIBC_2.2 lio_listio F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index 3567fa8efc..77a0544dbf 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -644,6 +644,8 @@ GLIBC_2.21 aio_read F
> GLIBC_2.21 aio_read64 F
> GLIBC_2.21 aio_return F
> GLIBC_2.21 aio_return64 F
> +GLIBC_2.21 aio_suspend F
> +GLIBC_2.21 aio_suspend64 F
> GLIBC_2.21 alarm F
> GLIBC_2.21 aligned_alloc F
> GLIBC_2.21 alphasort F
> @@ -2382,6 +2384,7 @@ GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.34 ___adjtimex64 F
> GLIBC_2.34 __adjtime64 F
> +GLIBC_2.34 __aio_suspend_time64 F
> GLIBC_2.34 __clock_adjtime64 F
> GLIBC_2.34 __clock_getres64 F
> GLIBC_2.34 __clock_gettime64 F
> @@ -2479,6 +2482,8 @@ GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> +GLIBC_2.34 aio_suspend F
> +GLIBC_2.34 aio_suspend64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
> index b63036c526..0db5142065 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_suspend F
> -GLIBC_2.21 aio_suspend64 F
> GLIBC_2.21 aio_write F
> GLIBC_2.21 aio_write64 F
> GLIBC_2.21 lio_listio F
> @@ -20,7 +18,6 @@ GLIBC_2.21 timer_delete F
> GLIBC_2.21 timer_getoverrun F
> GLIBC_2.21 timer_gettime F
> GLIBC_2.21 timer_settime F
> -GLIBC_2.34 __aio_suspend_time64 F
> GLIBC_2.34 __mq_timedreceive_time64 F
> GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __timer_gettime64 F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index 0b393c0a5a..ed6f66c610 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -1491,6 +1491,8 @@ GLIBC_2.1 aio_read F
> GLIBC_2.1 aio_read64 F
> GLIBC_2.1 aio_return F
> GLIBC_2.1 aio_return64 F
> +GLIBC_2.1 aio_suspend F
> +GLIBC_2.1 aio_suspend64 F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> GLIBC_2.1 argp_error F
> @@ -2400,6 +2402,7 @@ GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.34 ___adjtimex64 F
> GLIBC_2.34 __adjtime64 F
> +GLIBC_2.34 __aio_suspend_time64 F
> GLIBC_2.34 __clock_adjtime64 F
> GLIBC_2.34 __clock_getres64 F
> GLIBC_2.34 __clock_gettime64 F
> @@ -2497,6 +2500,8 @@ GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> +GLIBC_2.34 aio_suspend F
> +GLIBC_2.34 aio_suspend64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> index 4cae24e768..b9b9b71dba 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_suspend F
> -GLIBC_2.1 aio_suspend64 F
> GLIBC_2.1 aio_write F
> GLIBC_2.1 aio_write64 F
> GLIBC_2.1 lio_listio F
> @@ -19,7 +17,6 @@ GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> -GLIBC_2.34 __aio_suspend_time64 F
> GLIBC_2.34 __mq_timedreceive_time64 F
> GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __timer_gettime64 F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index 0bc73512d3..817530d12f 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -1491,6 +1491,8 @@ GLIBC_2.1 aio_read F
> GLIBC_2.1 aio_read64 F
> GLIBC_2.1 aio_return F
> GLIBC_2.1 aio_return64 F
> +GLIBC_2.1 aio_suspend F
> +GLIBC_2.1 aio_suspend64 F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> GLIBC_2.1 argp_error F
> @@ -2433,6 +2435,7 @@ GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.34 ___adjtimex64 F
> GLIBC_2.34 __adjtime64 F
> +GLIBC_2.34 __aio_suspend_time64 F
> GLIBC_2.34 __clock_adjtime64 F
> GLIBC_2.34 __clock_getres64 F
> GLIBC_2.34 __clock_gettime64 F
> @@ -2530,6 +2533,8 @@ GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> +GLIBC_2.34 aio_suspend F
> +GLIBC_2.34 aio_suspend64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index 22d277a32e..40a27cfd26 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -644,6 +644,8 @@ GLIBC_2.3 aio_read F
> GLIBC_2.3 aio_read64 F
> GLIBC_2.3 aio_return F
> GLIBC_2.3 aio_return64 F
> +GLIBC_2.3 aio_suspend F
> +GLIBC_2.3 aio_suspend64 F
> GLIBC_2.3 alarm F
> GLIBC_2.3 alphasort F
> GLIBC_2.3 alphasort64 F
> @@ -2267,6 +2269,8 @@ GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> +GLIBC_2.34 aio_suspend F
> +GLIBC_2.34 aio_suspend64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> index b98e7cf9de..205c9536b4 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_suspend F
> -GLIBC_2.3 aio_suspend64 F
> GLIBC_2.3 aio_write F
> GLIBC_2.3 aio_write64 F
> GLIBC_2.3 lio_listio F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index 15b0f5e367..208096bebf 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -688,6 +688,8 @@ GLIBC_2.17 aio_read F
> GLIBC_2.17 aio_read64 F
> GLIBC_2.17 aio_return F
> GLIBC_2.17 aio_return64 F
> +GLIBC_2.17 aio_suspend F
> +GLIBC_2.17 aio_suspend64 F
> GLIBC_2.17 alarm F
> GLIBC_2.17 aligned_alloc F
> GLIBC_2.17 alphasort F
> @@ -2566,6 +2568,8 @@ GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> +GLIBC_2.34 aio_suspend F
> +GLIBC_2.34 aio_suspend64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> index 451560dc87..37ff014ed8 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_suspend F
> -GLIBC_2.17 aio_suspend64 F
> GLIBC_2.17 aio_write F
> GLIBC_2.17 aio_write64 F
> GLIBC_2.17 lio_listio F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index 6003434931..20b4b7c0ad 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -555,6 +555,8 @@ GLIBC_2.33 aio_read F
> GLIBC_2.33 aio_read64 F
> GLIBC_2.33 aio_return F
> GLIBC_2.33 aio_return64 F
> +GLIBC_2.33 aio_suspend F
> +GLIBC_2.33 aio_suspend64 F
> GLIBC_2.33 alarm F
> GLIBC_2.33 aligned_alloc F
> GLIBC_2.33 alphasort F
> @@ -2131,6 +2133,8 @@ GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> +GLIBC_2.34 aio_suspend F
> +GLIBC_2.34 aio_suspend64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> index dc23391407..51c25c849d 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_suspend F
> -GLIBC_2.33 aio_suspend64 F
> GLIBC_2.33 aio_write F
> GLIBC_2.33 aio_write64 F
> GLIBC_2.33 lio_listio F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index 5041f05217..9675d2f767 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -581,6 +581,8 @@ GLIBC_2.27 aio_read F
> GLIBC_2.27 aio_read64 F
> GLIBC_2.27 aio_return F
> GLIBC_2.27 aio_return64 F
> +GLIBC_2.27 aio_suspend F
> +GLIBC_2.27 aio_suspend64 F
> GLIBC_2.27 alarm F
> GLIBC_2.27 aligned_alloc F
> GLIBC_2.27 alphasort F
> @@ -2331,6 +2333,8 @@ GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> +GLIBC_2.34 aio_suspend F
> +GLIBC_2.34 aio_suspend64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> index 5f1cecd612..7ccf2b6591 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_suspend F
> -GLIBC_2.27 aio_suspend64 F
> GLIBC_2.27 aio_write F
> GLIBC_2.27 aio_write64 F
> GLIBC_2.27 lio_listio F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index ed6c511cc9..3f64ebb9bd 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -1483,6 +1483,8 @@ GLIBC_2.1 aio_read F
> GLIBC_2.1 aio_read64 F
> GLIBC_2.1 aio_return F
> GLIBC_2.1 aio_return64 F
> +GLIBC_2.1 aio_suspend F
> +GLIBC_2.1 aio_suspend64 F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> GLIBC_2.1 argp_error F
> @@ -2398,6 +2400,7 @@ GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.34 ___adjtimex64 F
> GLIBC_2.34 __adjtime64 F
> +GLIBC_2.34 __aio_suspend_time64 F
> GLIBC_2.34 __clock_adjtime64 F
> GLIBC_2.34 __clock_getres64 F
> GLIBC_2.34 __clock_gettime64 F
> @@ -2495,6 +2498,8 @@ GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> +GLIBC_2.34 aio_suspend F
> +GLIBC_2.34 aio_suspend64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> index 4cae24e768..b9b9b71dba 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_suspend F
> -GLIBC_2.1 aio_suspend64 F
> GLIBC_2.1 aio_write F
> GLIBC_2.1 aio_write64 F
> GLIBC_2.1 lio_listio F
> @@ -19,7 +17,6 @@ GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> -GLIBC_2.34 __aio_suspend_time64 F
> GLIBC_2.34 __mq_timedreceive_time64 F
> GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __timer_gettime64 F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index 9f1e31574e..f727420c0a 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -581,6 +581,8 @@ GLIBC_2.2 aio_read F
> GLIBC_2.2 aio_read64 F
> GLIBC_2.2 aio_return F
> GLIBC_2.2 aio_return64 F
> +GLIBC_2.2 aio_suspend F
> +GLIBC_2.2 aio_suspend64 F
> GLIBC_2.2 alarm F
> GLIBC_2.2 alphasort F
> GLIBC_2.2 alphasort64 F
> @@ -2304,6 +2306,8 @@ GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> +GLIBC_2.34 aio_suspend F
> +GLIBC_2.34 aio_suspend64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> index 2442ed5222..15c2ca3e70 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_suspend F
> -GLIBC_2.2 aio_suspend64 F
> GLIBC_2.2 aio_write F
> GLIBC_2.2 aio_write64 F
> GLIBC_2.2 lio_listio F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index b9e583fa88..3aed85ad55 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -18,6 +18,8 @@ GLIBC_2.1 aio_read F
> GLIBC_2.1 aio_read64 F
> GLIBC_2.1 aio_return F
> GLIBC_2.1 aio_return64 F
> +GLIBC_2.1 aio_suspend F
> +GLIBC_2.1 aio_suspend64 F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.10 __cxa_at_quick_exit F
> @@ -2253,6 +2255,7 @@ GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.34 ___adjtimex64 F
> GLIBC_2.34 __adjtime64 F
> +GLIBC_2.34 __aio_suspend_time64 F
> GLIBC_2.34 __clock_adjtime64 F
> GLIBC_2.34 __clock_getres64 F
> GLIBC_2.34 __clock_gettime64 F
> @@ -2350,6 +2353,8 @@ GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> +GLIBC_2.34 aio_suspend F
> +GLIBC_2.34 aio_suspend64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> index 4cae24e768..b9b9b71dba 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_suspend F
> -GLIBC_2.1 aio_suspend64 F
> GLIBC_2.1 aio_write F
> GLIBC_2.1 aio_write64 F
> GLIBC_2.1 lio_listio F
> @@ -19,7 +17,6 @@ GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> -GLIBC_2.34 __aio_suspend_time64 F
> GLIBC_2.34 __mq_timedreceive_time64 F
> GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __timer_gettime64 F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index 2f737fadb8..eed02a7f07 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -18,6 +18,8 @@ GLIBC_2.1 aio_read F
> GLIBC_2.1 aio_read64 F
> GLIBC_2.1 aio_return F
> GLIBC_2.1 aio_return64 F
> +GLIBC_2.1 aio_suspend F
> +GLIBC_2.1 aio_suspend64 F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.10 __cxa_at_quick_exit F
> @@ -2250,6 +2252,7 @@ GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.34 ___adjtimex64 F
> GLIBC_2.34 __adjtime64 F
> +GLIBC_2.34 __aio_suspend_time64 F
> GLIBC_2.34 __clock_adjtime64 F
> GLIBC_2.34 __clock_getres64 F
> GLIBC_2.34 __clock_gettime64 F
> @@ -2347,6 +2350,8 @@ GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> +GLIBC_2.34 aio_suspend F
> +GLIBC_2.34 aio_suspend64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> index 4cae24e768..b9b9b71dba 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_suspend F
> -GLIBC_2.1 aio_suspend64 F
> GLIBC_2.1 aio_write F
> GLIBC_2.1 aio_write64 F
> GLIBC_2.1 lio_listio F
> @@ -19,7 +17,6 @@ GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> -GLIBC_2.34 __aio_suspend_time64 F
> GLIBC_2.34 __mq_timedreceive_time64 F
> GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __timer_gettime64 F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index f4c87b4fa9..c627a8beb7 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -1485,6 +1485,8 @@ GLIBC_2.1 aio_read F
> GLIBC_2.1 aio_read64 F
> GLIBC_2.1 aio_return F
> GLIBC_2.1 aio_return64 F
> +GLIBC_2.1 aio_suspend F
> +GLIBC_2.1 aio_suspend64 F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> GLIBC_2.1 argp_error F
> @@ -2393,6 +2395,7 @@ GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.34 ___adjtimex64 F
> GLIBC_2.34 __adjtime64 F
> +GLIBC_2.34 __aio_suspend_time64 F
> GLIBC_2.34 __clock_adjtime64 F
> GLIBC_2.34 __clock_getres64 F
> GLIBC_2.34 __clock_gettime64 F
> @@ -2490,6 +2493,8 @@ GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> +GLIBC_2.34 aio_suspend F
> +GLIBC_2.34 aio_suspend64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> index 6061373aae..13fff57eb0 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_suspend F
> -GLIBC_2.1 aio_suspend64 F
> GLIBC_2.1 aio_write F
> GLIBC_2.1 aio_write64 F
> GLIBC_2.1 lio_listio F
> @@ -20,7 +18,6 @@ GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> -GLIBC_2.34 __aio_suspend_time64 F
> GLIBC_2.34 __mq_timedreceive_time64 F
> GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __timer_gettime64 F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index 03acd40463..574b4ef2c1 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -18,6 +18,8 @@ GLIBC_2.1 aio_read F
> GLIBC_2.1 aio_read64 F
> GLIBC_2.1 aio_return F
> GLIBC_2.1 aio_return64 F
> +GLIBC_2.1 aio_suspend F
> +GLIBC_2.1 aio_suspend64 F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.10 __cxa_at_quick_exit F
> @@ -2326,6 +2328,8 @@ GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> +GLIBC_2.34 aio_suspend F
> +GLIBC_2.34 aio_suspend64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> index 90a66e4a4b..8a8fe654e0 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_suspend F
> -GLIBC_2.1 aio_suspend64 F
> GLIBC_2.1 aio_write F
> GLIBC_2.1 aio_write64 F
> GLIBC_2.1 lio_listio F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index f81fe5301d..6e3c1ce83b 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -570,6 +570,8 @@ GLIBC_2.2.5 aio_read F
> GLIBC_2.2.5 aio_read64 F
> GLIBC_2.2.5 aio_return F
> GLIBC_2.2.5 aio_return64 F
> +GLIBC_2.2.5 aio_suspend F
> +GLIBC_2.2.5 aio_suspend64 F
> GLIBC_2.2.5 alarm F
> GLIBC_2.2.5 alphasort F
> GLIBC_2.2.5 alphasort64 F
> @@ -2282,6 +2284,8 @@ GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> +GLIBC_2.34 aio_suspend F
> +GLIBC_2.34 aio_suspend64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> index 62fe3da2cb..c2e8ab87d0 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_suspend F
> -GLIBC_2.2.5 aio_suspend64 F
> GLIBC_2.2.5 aio_write F
> GLIBC_2.2.5 aio_write64 F
> GLIBC_2.2.5 lio_listio F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index 45d74a3958..42376975e6 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -603,6 +603,8 @@ GLIBC_2.16 aio_read F
> GLIBC_2.16 aio_read64 F
> GLIBC_2.16 aio_return F
> GLIBC_2.16 aio_return64 F
> +GLIBC_2.16 aio_suspend F
> +GLIBC_2.16 aio_suspend64 F
> GLIBC_2.16 alarm F
> GLIBC_2.16 aligned_alloc F
> GLIBC_2.16 alphasort F
> @@ -2385,6 +2387,8 @@ GLIBC_2.34 aio_read F
> GLIBC_2.34 aio_read64 F
> GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> +GLIBC_2.34 aio_suspend F
> +GLIBC_2.34 aio_suspend64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> index a531990038..f7245c6716 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_suspend F
> -GLIBC_2.16 aio_suspend64 F
> GLIBC_2.16 aio_write F
> GLIBC_2.16 aio_write64 F
> GLIBC_2.16 lio_listio F
>
Ok.
^ permalink raw reply [flat|nested] 72+ messages in thread
* Re: [PATCH 16/34] Linux: Move aio_suspend, aio_suspend64, __aio_suspend_time64 to libc
2021-06-23 19:52 ` Adhemerval Zanella
@ 2021-06-23 19:59 ` Florian Weimer
0 siblings, 0 replies; 72+ messages in thread
From: Florian Weimer @ 2021-06-23 19:59 UTC (permalink / raw)
To: Adhemerval Zanella; +Cc: libc-alpha
* Adhemerval Zanella:
>> - pthread_cleanup_push (cleanup, &clparam);
>> +#if PTHREAD_IN_LIBC
>> + __libc_cleanup_region_start (1, cleanup, &clparam);
>> +#else
>> + __pthread_cleanup_push (cleanup, &clparam);
>> +#endif
>>
>> #ifdef DONT_NEED_AIO_MISC_COND
>> result = do_aio_misc_wait (&cntr, timeout == NULL ? NULL : &ts);
>> @@ -194,7 +200,11 @@ __aio_suspend_time64 (const struct aiocb *const list[], int nent,
>> timeout == NULL ? NULL : &ts32);
>> #endif
>>
>> +#if PTHREAD_IN_LIBC
>> + __libc_cleanup_region_end (0);
>> +#else
>> pthread_cleanup_pop (0);
>> +#endif
>> }
>>
>
> Ok. What prevents to use __libc_cleanup_region_start on Hurd as well here?
I assumed that it would be available only within libc.
I have no way to test this on Hurd, which is why I wanted to keep the
original code.
Thanks,
Florian
^ permalink raw reply [flat|nested] 72+ messages in thread
* [PATCH 17/34] Linux: Move aio_write, aio_write64 into libc
2021-06-17 18:56 [PATCH v2 00/34] Move librt into libc Florian Weimer
` (15 preceding siblings ...)
2021-06-17 18:58 ` [PATCH 16/34] Linux: Move aio_suspend, aio_suspend64, __aio_suspend_time64 to libc Florian Weimer
@ 2021-06-17 18:58 ` Florian Weimer
2021-06-23 20:02 ` Adhemerval Zanella
2021-06-17 18:58 ` [PATCH 18/34] rt: Rework lio_listio implementation Florian Weimer
` (17 subsequent siblings)
34 siblings, 1 reply; 72+ messages in thread
From: Florian Weimer @ 2021-06-17 18:58 UTC (permalink / raw)
To: libc-alpha
Both symbols have to be moved at the same time because they
are intertwined for __WORDSIZE == 64. The treatment of this case
is also changed to match more closely how the other files suppress
the declaration of the *64 identifier.
The symbols were moved using scripts/move-symbol-to-libc.py.
---
rt/Makefile | 4 +-
rt/Versions | 6 ++-
rt/aio_write.c | 37 +++++++++++++++++--
rt/aio_write64.c | 22 ++++++++---
sysdeps/unix/sysv/linux/aarch64/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/aarch64/librt.abilist | 2 -
sysdeps/unix/sysv/linux/alpha/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/alpha/librt.abilist | 2 -
sysdeps/unix/sysv/linux/arc/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/arc/librt.abilist | 2 -
sysdeps/unix/sysv/linux/arm/be/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/arm/be/librt.abilist | 2 -
sysdeps/unix/sysv/linux/arm/le/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/arm/le/librt.abilist | 2 -
sysdeps/unix/sysv/linux/csky/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/csky/librt.abilist | 2 -
sysdeps/unix/sysv/linux/hppa/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/hppa/librt.abilist | 2 -
sysdeps/unix/sysv/linux/i386/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/i386/librt.abilist | 2 -
sysdeps/unix/sysv/linux/ia64/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/ia64/librt.abilist | 2 -
.../sysv/linux/m68k/coldfire/libc.abilist | 4 ++
.../sysv/linux/m68k/coldfire/librt.abilist | 2 -
.../unix/sysv/linux/m68k/m680x0/libc.abilist | 4 ++
.../unix/sysv/linux/m68k/m680x0/librt.abilist | 2 -
.../sysv/linux/microblaze/be/libc.abilist | 4 ++
.../sysv/linux/microblaze/be/librt.abilist | 2 -
.../sysv/linux/microblaze/le/libc.abilist | 4 ++
.../sysv/linux/microblaze/le/librt.abilist | 2 -
.../sysv/linux/mips/mips32/fpu/libc.abilist | 4 ++
.../unix/sysv/linux/mips/mips32/librt.abilist | 2 -
.../sysv/linux/mips/mips32/nofpu/libc.abilist | 4 ++
.../sysv/linux/mips/mips64/n32/libc.abilist | 4 ++
.../sysv/linux/mips/mips64/n32/librt.abilist | 2 -
.../sysv/linux/mips/mips64/n64/libc.abilist | 4 ++
.../sysv/linux/mips/mips64/n64/librt.abilist | 2 -
sysdeps/unix/sysv/linux/nios2/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/nios2/librt.abilist | 2 -
.../linux/powerpc/powerpc32/fpu/libc.abilist | 4 ++
.../linux/powerpc/powerpc32/librt.abilist | 2 -
.../powerpc/powerpc32/nofpu/libc.abilist | 4 ++
.../linux/powerpc/powerpc64/be/libc.abilist | 4 ++
.../linux/powerpc/powerpc64/be/librt.abilist | 2 -
.../linux/powerpc/powerpc64/le/libc.abilist | 4 ++
.../linux/powerpc/powerpc64/le/librt.abilist | 2 -
.../unix/sysv/linux/riscv/rv32/libc.abilist | 4 ++
.../unix/sysv/linux/riscv/rv32/librt.abilist | 2 -
.../unix/sysv/linux/riscv/rv64/libc.abilist | 4 ++
.../unix/sysv/linux/riscv/rv64/librt.abilist | 2 -
.../unix/sysv/linux/s390/s390-32/libc.abilist | 4 ++
.../sysv/linux/s390/s390-32/librt.abilist | 2 -
.../unix/sysv/linux/s390/s390-64/libc.abilist | 4 ++
.../sysv/linux/s390/s390-64/librt.abilist | 2 -
sysdeps/unix/sysv/linux/sh/be/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/sh/be/librt.abilist | 2 -
sysdeps/unix/sysv/linux/sh/le/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/sh/le/librt.abilist | 2 -
.../sysv/linux/sparc/sparc32/libc.abilist | 4 ++
.../sysv/linux/sparc/sparc32/librt.abilist | 2 -
.../sysv/linux/sparc/sparc64/libc.abilist | 4 ++
.../sysv/linux/sparc/sparc64/librt.abilist | 2 -
.../unix/sysv/linux/wordsize-64/aio_write.c | 7 ----
.../unix/sysv/linux/wordsize-64/aio_write64.c | 1 -
.../unix/sysv/linux/x86_64/64/libc.abilist | 4 ++
.../unix/sysv/linux/x86_64/64/librt.abilist | 2 -
.../unix/sysv/linux/x86_64/x32/libc.abilist | 4 ++
.../unix/sysv/linux/x86_64/x32/librt.abilist | 2 -
68 files changed, 186 insertions(+), 79 deletions(-)
delete mode 100644 sysdeps/unix/sysv/linux/wordsize-64/aio_write.c
delete mode 100644 sysdeps/unix/sysv/linux/wordsize-64/aio_write64.c
diff --git a/rt/Makefile b/rt/Makefile
index b375d37ba2..55ebfde457 100644
--- a/rt/Makefile
+++ b/rt/Makefile
@@ -29,8 +29,6 @@ routines = \
shm_unlink \
librt-routines = \
- aio_write \
- aio_write64 \
librt-compat \
lio_listio \
lio_listio64 \
@@ -63,6 +61,8 @@ $(librt-routines-var) += \
aio_return \
aio_sigqueue \
aio_suspend \
+ aio_write \
+ aio_write64 \
tests := tst-shm tst-timer tst-timer2 \
tst-aio tst-aio64 tst-aio2 tst-aio3 tst-aio4 tst-aio5 tst-aio6 \
diff --git a/rt/Versions b/rt/Versions
index d54b9cc4bf..f2b4ced257 100644
--- a/rt/Versions
+++ b/rt/Versions
@@ -14,6 +14,8 @@ libc {
aio_return64;
aio_suspend;
aio_suspend64;
+ aio_write;
+ aio_write64;
%endif
}
GLIBC_2.2 {
@@ -35,6 +37,8 @@ libc {
aio_return64;
aio_suspend;
aio_suspend64;
+ aio_write;
+ aio_write64;
%endif
shm_open;
shm_unlink;
@@ -69,9 +73,9 @@ librt {
aio_return64;
aio_suspend;
aio_suspend64;
-%endif
aio_write;
aio_write64;
+%endif
lio_listio;
lio_listio64;
}
diff --git a/rt/aio_write.c b/rt/aio_write.c
index ea55f0dbbc..ad50bc9282 100644
--- a/rt/aio_write.c
+++ b/rt/aio_write.c
@@ -17,14 +17,45 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <aio.h>
+#include <bits/wordsize.h>
+#if __WORDSIZE == 64
+/* We use an UGLY hack to prevent gcc from finding us cheating. The
+ implementation of aio_write and aio_write64 are identical and so
+ we want to avoid code duplication by using aliases. But gcc sees
+ the different parameter lists and prints a warning. We define here
+ a function so that aio_write64 has no prototype. */
+# define aio_write64 XXX
+# include <aio.h>
+/* And undo the hack. */
+# undef aio_write64
+#else
+# include <aio.h>
+#endif
#include <aio_misc.h>
-
+#include <shlib-compat.h>
int
-aio_write (struct aiocb *aiocbp)
+__aio_write (struct aiocb *aiocbp)
{
return (__aio_enqueue_request ((aiocb_union *) aiocbp, LIO_WRITE) == NULL
? -1 : 0);
}
+
+#if PTHREAD_IN_LIBC
+versioned_symbol (libc, __aio_write, aio_write, GLIBC_2_34);
+# if __WORDSIZE == 64
+versioned_symbol (libc, __aio_write, aio_write64, GLIBC_2_34);
+# endif
+# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_34)
+compat_symbol (librt, __aio_write, aio_write, GLIBC_2_1);
+# if __WORDSIZE == 64
+compat_symbol (librt, __aio_write, aio_write64, GLIBC_2_1);
+# endif
+# endif
+#else /* !PTHREAD_IN_LIBC */
+strong_alias (__aio_write, aio_write)
+# if __WORDSIZE == 64
+weak_alias (__aio_write, aio_write64)
+#endif
+#endif /* !PTHREAD_IN_LIBC */
diff --git a/rt/aio_write64.c b/rt/aio_write64.c
index bd6dd316be..5660fa5a41 100644
--- a/rt/aio_write64.c
+++ b/rt/aio_write64.c
@@ -1,4 +1,4 @@
-/* Asynchronous write, 64bit offset version.
+/* Asynchronous read, 64bit offset version.
Copyright (C) 1997-2021 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@@ -17,14 +17,26 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <aio.h>
-
-#include <aio_misc.h>
+#include <bits/wordsize.h>
+#if __WORDSIZE != 64
+# include <aio.h>
+# include <aio_misc.h>
+# include <shlib-compat.h>
int
-aio_write64 (struct aiocb64 *aiocbp)
+__aio_write64 (struct aiocb64 *aiocbp)
{
return (__aio_enqueue_request ((aiocb_union *) aiocbp, LIO_WRITE64) == NULL
? -1 : 0);
}
+
+# if PTHREAD_IN_LIBC
+versioned_symbol (libc, __aio_write64, aio_write64, GLIBC_2_34);
+# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_34)
+compat_symbol (librt, __aio_write64, aio_write64, GLIBC_2_1);
+# endif
+# else /* !PTHREAD_IN_LIBC */
+strong_alias (__aio_write64, aio_write64)
+# endif
+#endif /* __WORDSIZE != 64 */
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 6c76d0df61..880dc08ffa 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -602,6 +602,8 @@ GLIBC_2.17 aio_return F
GLIBC_2.17 aio_return64 F
GLIBC_2.17 aio_suspend F
GLIBC_2.17 aio_suspend64 F
+GLIBC_2.17 aio_write F
+GLIBC_2.17 aio_write64 F
GLIBC_2.17 alarm F
GLIBC_2.17 aligned_alloc F
GLIBC_2.17 alphasort F
@@ -2374,6 +2376,8 @@ GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
GLIBC_2.34 aio_suspend F
GLIBC_2.34 aio_suspend64 F
+GLIBC_2.34 aio_write F
+GLIBC_2.34 aio_write64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
index 37ff014ed8..66c645887e 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_write F
-GLIBC_2.17 aio_write64 F
GLIBC_2.17 lio_listio F
GLIBC_2.17 lio_listio64 F
GLIBC_2.17 mq_close F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index e7f0e1b49a..45ba500389 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -1515,6 +1515,8 @@ GLIBC_2.1 aio_return F
GLIBC_2.1 aio_return64 F
GLIBC_2.1 aio_suspend F
GLIBC_2.1 aio_suspend64 F
+GLIBC_2.1 aio_write F
+GLIBC_2.1 aio_write64 F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
GLIBC_2.1 argp_error F
@@ -2469,6 +2471,8 @@ GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
GLIBC_2.34 aio_suspend F
GLIBC_2.34 aio_suspend64 F
+GLIBC_2.34 aio_write F
+GLIBC_2.34 aio_write64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
index 8a8fe654e0..89a7344c1c 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_write F
-GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
GLIBC_2.1 lio_listio64 F
GLIBC_2.2 timer_create F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index cf93d14e6f..fdfe20796b 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -563,6 +563,8 @@ GLIBC_2.32 aio_return F
GLIBC_2.32 aio_return64 F
GLIBC_2.32 aio_suspend F
GLIBC_2.32 aio_suspend64 F
+GLIBC_2.32 aio_write F
+GLIBC_2.32 aio_write64 F
GLIBC_2.32 alarm F
GLIBC_2.32 aligned_alloc F
GLIBC_2.32 alphasort F
@@ -2133,6 +2135,8 @@ GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
GLIBC_2.34 aio_suspend F
GLIBC_2.34 aio_suspend64 F
+GLIBC_2.34 aio_write F
+GLIBC_2.34 aio_write64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
index 4eb7de36e1..780fb36a31 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_write F
-GLIBC_2.32 aio_write64 F
GLIBC_2.32 lio_listio F
GLIBC_2.32 lio_listio64 F
GLIBC_2.32 mq_close F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 9d9e4c6b73..8e6cb9ad9d 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -292,6 +292,8 @@ GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
GLIBC_2.34 aio_suspend F
GLIBC_2.34 aio_suspend64 F
+GLIBC_2.34 aio_write F
+GLIBC_2.34 aio_write64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
@@ -1008,6 +1010,8 @@ GLIBC_2.4 aio_return F
GLIBC_2.4 aio_return64 F
GLIBC_2.4 aio_suspend F
GLIBC_2.4 aio_suspend64 F
+GLIBC_2.4 aio_write F
+GLIBC_2.4 aio_write64 F
GLIBC_2.4 alarm F
GLIBC_2.4 alphasort F
GLIBC_2.4 alphasort64 F
diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
index 7cb476c7b4..5c655ba14e 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -2,8 +2,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_write F
-GLIBC_2.4 aio_write64 F
GLIBC_2.4 lio_listio F
GLIBC_2.4 lio_listio64 F
GLIBC_2.4 mq_close F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index a195587b66..58190af9e0 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -289,6 +289,8 @@ GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
GLIBC_2.34 aio_suspend F
GLIBC_2.34 aio_suspend64 F
+GLIBC_2.34 aio_write F
+GLIBC_2.34 aio_write64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
@@ -1005,6 +1007,8 @@ GLIBC_2.4 aio_return F
GLIBC_2.4 aio_return64 F
GLIBC_2.4 aio_suspend F
GLIBC_2.4 aio_suspend64 F
+GLIBC_2.4 aio_write F
+GLIBC_2.4 aio_write64 F
GLIBC_2.4 alarm F
GLIBC_2.4 alphasort F
GLIBC_2.4 alphasort64 F
diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
index 7cb476c7b4..5c655ba14e 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -2,8 +2,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_write F
-GLIBC_2.4 aio_write64 F
GLIBC_2.4 lio_listio F
GLIBC_2.4 lio_listio64 F
GLIBC_2.4 mq_close F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 1e3c73aa2d..4ebfe66490 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -577,6 +577,8 @@ GLIBC_2.29 aio_return F
GLIBC_2.29 aio_return64 F
GLIBC_2.29 aio_suspend F
GLIBC_2.29 aio_suspend64 F
+GLIBC_2.29 aio_write F
+GLIBC_2.29 aio_write64 F
GLIBC_2.29 alarm F
GLIBC_2.29 aligned_alloc F
GLIBC_2.29 alphasort F
@@ -2394,6 +2396,8 @@ GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
GLIBC_2.34 aio_suspend F
GLIBC_2.34 aio_suspend64 F
+GLIBC_2.34 aio_write F
+GLIBC_2.34 aio_write64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
index fcc993f16f..e8bf05dae6 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_write F
-GLIBC_2.29 aio_write64 F
GLIBC_2.29 lio_listio F
GLIBC_2.29 lio_listio64 F
GLIBC_2.29 mq_close F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 3e0ff7575e..685eab4532 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -16,6 +16,8 @@ GLIBC_2.1 aio_return F
GLIBC_2.1 aio_return64 F
GLIBC_2.1 aio_suspend F
GLIBC_2.1 aio_suspend64 F
+GLIBC_2.1 aio_write F
+GLIBC_2.1 aio_write64 F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.10 __cxa_at_quick_exit F
@@ -2348,6 +2350,8 @@ GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
GLIBC_2.34 aio_suspend F
GLIBC_2.34 aio_suspend64 F
+GLIBC_2.34 aio_write F
+GLIBC_2.34 aio_write64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
index b9b9b71dba..eb80c67c84 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_write F
-GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
GLIBC_2.1 lio_listio64 F
GLIBC_2.2 timer_create F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 54b5ee4649..19b2f11845 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -1488,6 +1488,8 @@ GLIBC_2.1 aio_return F
GLIBC_2.1 aio_return64 F
GLIBC_2.1 aio_suspend F
GLIBC_2.1 aio_suspend64 F
+GLIBC_2.1 aio_write F
+GLIBC_2.1 aio_write64 F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
GLIBC_2.1 argp_error F
@@ -2532,6 +2534,8 @@ GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
GLIBC_2.34 aio_suspend F
GLIBC_2.34 aio_suspend64 F
+GLIBC_2.34 aio_write F
+GLIBC_2.34 aio_write64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
index b9b9b71dba..eb80c67c84 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_write F
-GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
GLIBC_2.1 lio_listio64 F
GLIBC_2.2 timer_create F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 9aac5c8ff4..8d9f6ff3b6 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -16,6 +16,8 @@ GLIBC_2.1 aio_return F
GLIBC_2.1 aio_return64 F
GLIBC_2.1 aio_suspend F
GLIBC_2.1 aio_suspend64 F
+GLIBC_2.1 aio_write F
+GLIBC_2.1 aio_write64 F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.10 __cxa_at_quick_exit F
@@ -2307,6 +2309,8 @@ GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
GLIBC_2.34 aio_suspend F
GLIBC_2.34 aio_suspend64 F
+GLIBC_2.34 aio_write F
+GLIBC_2.34 aio_write64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
index 67435f760c..1eef73b204 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_write F
-GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
GLIBC_2.1 lio_listio64 F
GLIBC_2.2 timer_create F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 87baa69dfe..2ab4862211 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -293,6 +293,8 @@ GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
GLIBC_2.34 aio_suspend F
GLIBC_2.34 aio_suspend64 F
+GLIBC_2.34 aio_write F
+GLIBC_2.34 aio_write64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
@@ -996,6 +998,8 @@ GLIBC_2.4 aio_return F
GLIBC_2.4 aio_return64 F
GLIBC_2.4 aio_suspend F
GLIBC_2.4 aio_suspend64 F
+GLIBC_2.4 aio_write F
+GLIBC_2.4 aio_write64 F
GLIBC_2.4 alarm F
GLIBC_2.4 alphasort F
GLIBC_2.4 alphasort64 F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
index 7cb476c7b4..5c655ba14e 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -2,8 +2,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_write F
-GLIBC_2.4 aio_write64 F
GLIBC_2.4 lio_listio F
GLIBC_2.4 lio_listio64 F
GLIBC_2.4 mq_close F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 68aa865da4..f4ee74ce72 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -1486,6 +1486,8 @@ GLIBC_2.1 aio_return F
GLIBC_2.1 aio_return64 F
GLIBC_2.1 aio_suspend F
GLIBC_2.1 aio_suspend64 F
+GLIBC_2.1 aio_write F
+GLIBC_2.1 aio_write64 F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
GLIBC_2.1 argp_error F
@@ -2475,6 +2477,8 @@ GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
GLIBC_2.34 aio_suspend F
GLIBC_2.34 aio_suspend64 F
+GLIBC_2.34 aio_write F
+GLIBC_2.34 aio_write64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
index b9b9b71dba..eb80c67c84 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_write F
-GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
GLIBC_2.1 lio_listio64 F
GLIBC_2.2 timer_create F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 19aef593f3..d0dcf88270 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -604,6 +604,8 @@ GLIBC_2.18 aio_return F
GLIBC_2.18 aio_return64 F
GLIBC_2.18 aio_suspend F
GLIBC_2.18 aio_suspend64 F
+GLIBC_2.18 aio_write F
+GLIBC_2.18 aio_write64 F
GLIBC_2.18 alarm F
GLIBC_2.18 aligned_alloc F
GLIBC_2.18 alphasort F
@@ -2445,6 +2447,8 @@ GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
GLIBC_2.34 aio_suspend F
GLIBC_2.34 aio_suspend64 F
+GLIBC_2.34 aio_write F
+GLIBC_2.34 aio_write64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
index 06e862de52..5a24a449c8 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_write F
-GLIBC_2.18 aio_write64 F
GLIBC_2.18 lio_listio F
GLIBC_2.18 lio_listio64 F
GLIBC_2.18 mq_close F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index d5f26a2d9b..a5a1b7ddc4 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -604,6 +604,8 @@ GLIBC_2.18 aio_return F
GLIBC_2.18 aio_return64 F
GLIBC_2.18 aio_suspend F
GLIBC_2.18 aio_suspend64 F
+GLIBC_2.18 aio_write F
+GLIBC_2.18 aio_write64 F
GLIBC_2.18 alarm F
GLIBC_2.18 aligned_alloc F
GLIBC_2.18 alphasort F
@@ -2442,6 +2444,8 @@ GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
GLIBC_2.34 aio_suspend F
GLIBC_2.34 aio_suspend64 F
+GLIBC_2.34 aio_write F
+GLIBC_2.34 aio_write64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
index 06e862de52..5a24a449c8 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_write F
-GLIBC_2.18 aio_write64 F
GLIBC_2.18 lio_listio F
GLIBC_2.18 lio_listio64 F
GLIBC_2.18 mq_close F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index ba77980ef8..a6d55c9639 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -1664,6 +1664,8 @@ GLIBC_2.2 aio_return F
GLIBC_2.2 aio_return64 F
GLIBC_2.2 aio_suspend F
GLIBC_2.2 aio_suspend64 F
+GLIBC_2.2 aio_write F
+GLIBC_2.2 aio_write64 F
GLIBC_2.2 alphasort64 F
GLIBC_2.2 argp_err_exit_status D 0x4
GLIBC_2.2 argp_error F
@@ -2440,6 +2442,8 @@ GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
GLIBC_2.34 aio_suspend F
GLIBC_2.34 aio_suspend64 F
+GLIBC_2.34 aio_write F
+GLIBC_2.34 aio_write64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
index 0a07f87ce9..1d8e4643b5 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_write F
-GLIBC_2.2 aio_write64 F
GLIBC_2.2 lio_listio F
GLIBC_2.2 lio_listio64 F
GLIBC_2.2 timer_create F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 1e6c7a1eb3..4f72d3c617 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -1662,6 +1662,8 @@ GLIBC_2.2 aio_return F
GLIBC_2.2 aio_return64 F
GLIBC_2.2 aio_suspend F
GLIBC_2.2 aio_suspend64 F
+GLIBC_2.2 aio_write F
+GLIBC_2.2 aio_write64 F
GLIBC_2.2 alphasort64 F
GLIBC_2.2 argp_err_exit_status D 0x4
GLIBC_2.2 argp_error F
@@ -2438,6 +2440,8 @@ GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
GLIBC_2.34 aio_suspend F
GLIBC_2.34 aio_suspend64 F
+GLIBC_2.34 aio_write F
+GLIBC_2.34 aio_write64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index fd731ffed0..216e8fbe03 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -1663,6 +1663,8 @@ GLIBC_2.2 aio_return F
GLIBC_2.2 aio_return64 F
GLIBC_2.2 aio_suspend F
GLIBC_2.2 aio_suspend64 F
+GLIBC_2.2 aio_write F
+GLIBC_2.2 aio_write64 F
GLIBC_2.2 alphasort64 F
GLIBC_2.2 argp_err_exit_status D 0x4
GLIBC_2.2 argp_error F
@@ -2446,6 +2448,8 @@ GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
GLIBC_2.34 aio_suspend F
GLIBC_2.34 aio_suspend64 F
+GLIBC_2.34 aio_write F
+GLIBC_2.34 aio_write64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
index 0a07f87ce9..1d8e4643b5 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_write F
-GLIBC_2.2 aio_write64 F
GLIBC_2.2 lio_listio F
GLIBC_2.2 lio_listio64 F
GLIBC_2.2 timer_create F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 9f82375689..9671631450 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -1659,6 +1659,8 @@ GLIBC_2.2 aio_return F
GLIBC_2.2 aio_return64 F
GLIBC_2.2 aio_suspend F
GLIBC_2.2 aio_suspend64 F
+GLIBC_2.2 aio_write F
+GLIBC_2.2 aio_write64 F
GLIBC_2.2 alphasort64 F
GLIBC_2.2 argp_err_exit_status D 0x4
GLIBC_2.2 argp_error F
@@ -2363,6 +2365,8 @@ GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
GLIBC_2.34 aio_suspend F
GLIBC_2.34 aio_suspend64 F
+GLIBC_2.34 aio_write F
+GLIBC_2.34 aio_write64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
index 7d7be4d9ec..f2cda0ef51 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_write F
-GLIBC_2.2 aio_write64 F
GLIBC_2.2 lio_listio F
GLIBC_2.2 lio_listio64 F
GLIBC_2.2 timer_create F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 77a0544dbf..6d105407dd 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -646,6 +646,8 @@ GLIBC_2.21 aio_return F
GLIBC_2.21 aio_return64 F
GLIBC_2.21 aio_suspend F
GLIBC_2.21 aio_suspend64 F
+GLIBC_2.21 aio_write F
+GLIBC_2.21 aio_write64 F
GLIBC_2.21 alarm F
GLIBC_2.21 aligned_alloc F
GLIBC_2.21 alphasort F
@@ -2484,6 +2486,8 @@ GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
GLIBC_2.34 aio_suspend F
GLIBC_2.34 aio_suspend64 F
+GLIBC_2.34 aio_write F
+GLIBC_2.34 aio_write64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
index 0db5142065..dc18b0dc39 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_write F
-GLIBC_2.21 aio_write64 F
GLIBC_2.21 lio_listio F
GLIBC_2.21 lio_listio64 F
GLIBC_2.21 mq_close F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index ed6f66c610..783ce5aa8e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -1493,6 +1493,8 @@ GLIBC_2.1 aio_return F
GLIBC_2.1 aio_return64 F
GLIBC_2.1 aio_suspend F
GLIBC_2.1 aio_suspend64 F
+GLIBC_2.1 aio_write F
+GLIBC_2.1 aio_write64 F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
GLIBC_2.1 argp_error F
@@ -2502,6 +2504,8 @@ GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
GLIBC_2.34 aio_suspend F
GLIBC_2.34 aio_suspend64 F
+GLIBC_2.34 aio_write F
+GLIBC_2.34 aio_write64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
index b9b9b71dba..eb80c67c84 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_write F
-GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
GLIBC_2.1 lio_listio64 F
GLIBC_2.2 timer_create F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 817530d12f..badcc67295 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -1493,6 +1493,8 @@ GLIBC_2.1 aio_return F
GLIBC_2.1 aio_return64 F
GLIBC_2.1 aio_suspend F
GLIBC_2.1 aio_suspend64 F
+GLIBC_2.1 aio_write F
+GLIBC_2.1 aio_write64 F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
GLIBC_2.1 argp_error F
@@ -2535,6 +2537,8 @@ GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
GLIBC_2.34 aio_suspend F
GLIBC_2.34 aio_suspend64 F
+GLIBC_2.34 aio_write F
+GLIBC_2.34 aio_write64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 40a27cfd26..838b3323f1 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -646,6 +646,8 @@ GLIBC_2.3 aio_return F
GLIBC_2.3 aio_return64 F
GLIBC_2.3 aio_suspend F
GLIBC_2.3 aio_suspend64 F
+GLIBC_2.3 aio_write F
+GLIBC_2.3 aio_write64 F
GLIBC_2.3 alarm F
GLIBC_2.3 alphasort F
GLIBC_2.3 alphasort64 F
@@ -2271,6 +2273,8 @@ GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
GLIBC_2.34 aio_suspend F
GLIBC_2.34 aio_suspend64 F
+GLIBC_2.34 aio_write F
+GLIBC_2.34 aio_write64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
index 205c9536b4..dcbadb2a1b 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_write F
-GLIBC_2.3 aio_write64 F
GLIBC_2.3 lio_listio F
GLIBC_2.3 lio_listio64 F
GLIBC_2.3 timer_create F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 208096bebf..b51ebf0861 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -690,6 +690,8 @@ GLIBC_2.17 aio_return F
GLIBC_2.17 aio_return64 F
GLIBC_2.17 aio_suspend F
GLIBC_2.17 aio_suspend64 F
+GLIBC_2.17 aio_write F
+GLIBC_2.17 aio_write64 F
GLIBC_2.17 alarm F
GLIBC_2.17 aligned_alloc F
GLIBC_2.17 alphasort F
@@ -2570,6 +2572,8 @@ GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
GLIBC_2.34 aio_suspend F
GLIBC_2.34 aio_suspend64 F
+GLIBC_2.34 aio_write F
+GLIBC_2.34 aio_write64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
index 37ff014ed8..66c645887e 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_write F
-GLIBC_2.17 aio_write64 F
GLIBC_2.17 lio_listio F
GLIBC_2.17 lio_listio64 F
GLIBC_2.17 mq_close F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 20b4b7c0ad..caed7efe2b 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -557,6 +557,8 @@ GLIBC_2.33 aio_return F
GLIBC_2.33 aio_return64 F
GLIBC_2.33 aio_suspend F
GLIBC_2.33 aio_suspend64 F
+GLIBC_2.33 aio_write F
+GLIBC_2.33 aio_write64 F
GLIBC_2.33 alarm F
GLIBC_2.33 aligned_alloc F
GLIBC_2.33 alphasort F
@@ -2135,6 +2137,8 @@ GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
GLIBC_2.34 aio_suspend F
GLIBC_2.34 aio_suspend64 F
+GLIBC_2.34 aio_write F
+GLIBC_2.34 aio_write64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
index 51c25c849d..82f04551d5 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_write F
-GLIBC_2.33 aio_write64 F
GLIBC_2.33 lio_listio F
GLIBC_2.33 lio_listio64 F
GLIBC_2.33 mq_close F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 9675d2f767..e9574cf0e4 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -583,6 +583,8 @@ GLIBC_2.27 aio_return F
GLIBC_2.27 aio_return64 F
GLIBC_2.27 aio_suspend F
GLIBC_2.27 aio_suspend64 F
+GLIBC_2.27 aio_write F
+GLIBC_2.27 aio_write64 F
GLIBC_2.27 alarm F
GLIBC_2.27 aligned_alloc F
GLIBC_2.27 alphasort F
@@ -2335,6 +2337,8 @@ GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
GLIBC_2.34 aio_suspend F
GLIBC_2.34 aio_suspend64 F
+GLIBC_2.34 aio_write F
+GLIBC_2.34 aio_write64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
index 7ccf2b6591..044eace5c3 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_write F
-GLIBC_2.27 aio_write64 F
GLIBC_2.27 lio_listio F
GLIBC_2.27 lio_listio64 F
GLIBC_2.27 mq_close F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 3f64ebb9bd..28f002dcd8 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -1485,6 +1485,8 @@ GLIBC_2.1 aio_return F
GLIBC_2.1 aio_return64 F
GLIBC_2.1 aio_suspend F
GLIBC_2.1 aio_suspend64 F
+GLIBC_2.1 aio_write F
+GLIBC_2.1 aio_write64 F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
GLIBC_2.1 argp_error F
@@ -2500,6 +2502,8 @@ GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
GLIBC_2.34 aio_suspend F
GLIBC_2.34 aio_suspend64 F
+GLIBC_2.34 aio_write F
+GLIBC_2.34 aio_write64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
index b9b9b71dba..eb80c67c84 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_write F
-GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
GLIBC_2.1 lio_listio64 F
GLIBC_2.2 timer_create F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index f727420c0a..2d6d3fd601 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -583,6 +583,8 @@ GLIBC_2.2 aio_return F
GLIBC_2.2 aio_return64 F
GLIBC_2.2 aio_suspend F
GLIBC_2.2 aio_suspend64 F
+GLIBC_2.2 aio_write F
+GLIBC_2.2 aio_write64 F
GLIBC_2.2 alarm F
GLIBC_2.2 alphasort F
GLIBC_2.2 alphasort64 F
@@ -2308,6 +2310,8 @@ GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
GLIBC_2.34 aio_suspend F
GLIBC_2.34 aio_suspend64 F
+GLIBC_2.34 aio_write F
+GLIBC_2.34 aio_write64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
index 15c2ca3e70..03aed4d0f7 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_write F
-GLIBC_2.2 aio_write64 F
GLIBC_2.2 lio_listio F
GLIBC_2.2 lio_listio64 F
GLIBC_2.2 timer_create F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 3aed85ad55..327cc0812d 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -20,6 +20,8 @@ GLIBC_2.1 aio_return F
GLIBC_2.1 aio_return64 F
GLIBC_2.1 aio_suspend F
GLIBC_2.1 aio_suspend64 F
+GLIBC_2.1 aio_write F
+GLIBC_2.1 aio_write64 F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.10 __cxa_at_quick_exit F
@@ -2355,6 +2357,8 @@ GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
GLIBC_2.34 aio_suspend F
GLIBC_2.34 aio_suspend64 F
+GLIBC_2.34 aio_write F
+GLIBC_2.34 aio_write64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
index b9b9b71dba..eb80c67c84 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_write F
-GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
GLIBC_2.1 lio_listio64 F
GLIBC_2.2 timer_create F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index eed02a7f07..4993b24e22 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -20,6 +20,8 @@ GLIBC_2.1 aio_return F
GLIBC_2.1 aio_return64 F
GLIBC_2.1 aio_suspend F
GLIBC_2.1 aio_suspend64 F
+GLIBC_2.1 aio_write F
+GLIBC_2.1 aio_write64 F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.10 __cxa_at_quick_exit F
@@ -2352,6 +2354,8 @@ GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
GLIBC_2.34 aio_suspend F
GLIBC_2.34 aio_suspend64 F
+GLIBC_2.34 aio_write F
+GLIBC_2.34 aio_write64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
index b9b9b71dba..eb80c67c84 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_write F
-GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
GLIBC_2.1 lio_listio64 F
GLIBC_2.2 timer_create F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index c627a8beb7..e48e78079f 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -1487,6 +1487,8 @@ GLIBC_2.1 aio_return F
GLIBC_2.1 aio_return64 F
GLIBC_2.1 aio_suspend F
GLIBC_2.1 aio_suspend64 F
+GLIBC_2.1 aio_write F
+GLIBC_2.1 aio_write64 F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
GLIBC_2.1 argp_error F
@@ -2495,6 +2497,8 @@ GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
GLIBC_2.34 aio_suspend F
GLIBC_2.34 aio_suspend64 F
+GLIBC_2.34 aio_write F
+GLIBC_2.34 aio_write64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
index 13fff57eb0..3c39a8ba0a 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_write F
-GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
GLIBC_2.1 lio_listio64 F
GLIBC_2.2 timer_create F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 574b4ef2c1..85a4dfa37c 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -20,6 +20,8 @@ GLIBC_2.1 aio_return F
GLIBC_2.1 aio_return64 F
GLIBC_2.1 aio_suspend F
GLIBC_2.1 aio_suspend64 F
+GLIBC_2.1 aio_write F
+GLIBC_2.1 aio_write64 F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.10 __cxa_at_quick_exit F
@@ -2330,6 +2332,8 @@ GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
GLIBC_2.34 aio_suspend F
GLIBC_2.34 aio_suspend64 F
+GLIBC_2.34 aio_write F
+GLIBC_2.34 aio_write64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
index 8a8fe654e0..89a7344c1c 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_write F
-GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
GLIBC_2.1 lio_listio64 F
GLIBC_2.2 timer_create F
diff --git a/sysdeps/unix/sysv/linux/wordsize-64/aio_write.c b/sysdeps/unix/sysv/linux/wordsize-64/aio_write.c
deleted file mode 100644
index 60d242f88f..0000000000
--- a/sysdeps/unix/sysv/linux/wordsize-64/aio_write.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#define aio_write64 __renamed_aio_write64
-
-#include <rt/aio_write.c>
-
-#undef aio_write64
-
-weak_alias (aio_write, aio_write64)
diff --git a/sysdeps/unix/sysv/linux/wordsize-64/aio_write64.c b/sysdeps/unix/sysv/linux/wordsize-64/aio_write64.c
deleted file mode 100644
index ced07fa273..0000000000
--- a/sysdeps/unix/sysv/linux/wordsize-64/aio_write64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* Defined in aio_write.c. */
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 6e3c1ce83b..c95b54fad3 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -572,6 +572,8 @@ GLIBC_2.2.5 aio_return F
GLIBC_2.2.5 aio_return64 F
GLIBC_2.2.5 aio_suspend F
GLIBC_2.2.5 aio_suspend64 F
+GLIBC_2.2.5 aio_write F
+GLIBC_2.2.5 aio_write64 F
GLIBC_2.2.5 alarm F
GLIBC_2.2.5 alphasort F
GLIBC_2.2.5 alphasort64 F
@@ -2286,6 +2288,8 @@ GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
GLIBC_2.34 aio_suspend F
GLIBC_2.34 aio_suspend64 F
+GLIBC_2.34 aio_write F
+GLIBC_2.34 aio_write64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
index c2e8ab87d0..974a0bf943 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_write F
-GLIBC_2.2.5 aio_write64 F
GLIBC_2.2.5 lio_listio F
GLIBC_2.2.5 lio_listio64 F
GLIBC_2.2.5 timer_create F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 42376975e6..c543baf92b 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -605,6 +605,8 @@ GLIBC_2.16 aio_return F
GLIBC_2.16 aio_return64 F
GLIBC_2.16 aio_suspend F
GLIBC_2.16 aio_suspend64 F
+GLIBC_2.16 aio_write F
+GLIBC_2.16 aio_write64 F
GLIBC_2.16 alarm F
GLIBC_2.16 aligned_alloc F
GLIBC_2.16 alphasort F
@@ -2389,6 +2391,8 @@ GLIBC_2.34 aio_return F
GLIBC_2.34 aio_return64 F
GLIBC_2.34 aio_suspend F
GLIBC_2.34 aio_suspend64 F
+GLIBC_2.34 aio_write F
+GLIBC_2.34 aio_write64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
index f7245c6716..42f733844b 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_write F
-GLIBC_2.16 aio_write64 F
GLIBC_2.16 lio_listio F
GLIBC_2.16 lio_listio64 F
GLIBC_2.16 mq_close F
--
2.31.1
^ permalink raw reply [flat|nested] 72+ messages in thread
* Re: [PATCH 17/34] Linux: Move aio_write, aio_write64 into libc
2021-06-17 18:58 ` [PATCH 17/34] Linux: Move aio_write, aio_write64 into libc Florian Weimer
@ 2021-06-23 20:02 ` Adhemerval Zanella
0 siblings, 0 replies; 72+ messages in thread
From: Adhemerval Zanella @ 2021-06-23 20:02 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 17/06/2021 15:58, Florian Weimer via Libc-alpha wrote:
> Both symbols have to be moved at the same time because they
> are intertwined for __WORDSIZE == 64. The treatment of this case
> is also changed to match more closely how the other files suppress
> the declaration of the *64 identifier.
>
> The symbols were moved using scripts/move-symbol-to-libc.py.
LGTM, thanks.
Reviewed-by: Adhemerva Zanella <adhemerval.zanella@linaro.org>
> ---
> rt/Makefile | 4 +-
> rt/Versions | 6 ++-
> rt/aio_write.c | 37 +++++++++++++++++--
> rt/aio_write64.c | 22 ++++++++---
> sysdeps/unix/sysv/linux/aarch64/libc.abilist | 4 ++
> sysdeps/unix/sysv/linux/aarch64/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/alpha/libc.abilist | 4 ++
> sysdeps/unix/sysv/linux/alpha/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/arc/libc.abilist | 4 ++
> sysdeps/unix/sysv/linux/arc/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/arm/be/libc.abilist | 4 ++
> sysdeps/unix/sysv/linux/arm/be/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/arm/le/libc.abilist | 4 ++
> sysdeps/unix/sysv/linux/arm/le/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/csky/libc.abilist | 4 ++
> sysdeps/unix/sysv/linux/csky/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/hppa/libc.abilist | 4 ++
> sysdeps/unix/sysv/linux/hppa/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/i386/libc.abilist | 4 ++
> sysdeps/unix/sysv/linux/i386/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/ia64/libc.abilist | 4 ++
> sysdeps/unix/sysv/linux/ia64/librt.abilist | 2 -
> .../sysv/linux/m68k/coldfire/libc.abilist | 4 ++
> .../sysv/linux/m68k/coldfire/librt.abilist | 2 -
> .../unix/sysv/linux/m68k/m680x0/libc.abilist | 4 ++
> .../unix/sysv/linux/m68k/m680x0/librt.abilist | 2 -
> .../sysv/linux/microblaze/be/libc.abilist | 4 ++
> .../sysv/linux/microblaze/be/librt.abilist | 2 -
> .../sysv/linux/microblaze/le/libc.abilist | 4 ++
> .../sysv/linux/microblaze/le/librt.abilist | 2 -
> .../sysv/linux/mips/mips32/fpu/libc.abilist | 4 ++
> .../unix/sysv/linux/mips/mips32/librt.abilist | 2 -
> .../sysv/linux/mips/mips32/nofpu/libc.abilist | 4 ++
> .../sysv/linux/mips/mips64/n32/libc.abilist | 4 ++
> .../sysv/linux/mips/mips64/n32/librt.abilist | 2 -
> .../sysv/linux/mips/mips64/n64/libc.abilist | 4 ++
> .../sysv/linux/mips/mips64/n64/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/nios2/libc.abilist | 4 ++
> sysdeps/unix/sysv/linux/nios2/librt.abilist | 2 -
> .../linux/powerpc/powerpc32/fpu/libc.abilist | 4 ++
> .../linux/powerpc/powerpc32/librt.abilist | 2 -
> .../powerpc/powerpc32/nofpu/libc.abilist | 4 ++
> .../linux/powerpc/powerpc64/be/libc.abilist | 4 ++
> .../linux/powerpc/powerpc64/be/librt.abilist | 2 -
> .../linux/powerpc/powerpc64/le/libc.abilist | 4 ++
> .../linux/powerpc/powerpc64/le/librt.abilist | 2 -
> .../unix/sysv/linux/riscv/rv32/libc.abilist | 4 ++
> .../unix/sysv/linux/riscv/rv32/librt.abilist | 2 -
> .../unix/sysv/linux/riscv/rv64/libc.abilist | 4 ++
> .../unix/sysv/linux/riscv/rv64/librt.abilist | 2 -
> .../unix/sysv/linux/s390/s390-32/libc.abilist | 4 ++
> .../sysv/linux/s390/s390-32/librt.abilist | 2 -
> .../unix/sysv/linux/s390/s390-64/libc.abilist | 4 ++
> .../sysv/linux/s390/s390-64/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/sh/be/libc.abilist | 4 ++
> sysdeps/unix/sysv/linux/sh/be/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/sh/le/libc.abilist | 4 ++
> sysdeps/unix/sysv/linux/sh/le/librt.abilist | 2 -
> .../sysv/linux/sparc/sparc32/libc.abilist | 4 ++
> .../sysv/linux/sparc/sparc32/librt.abilist | 2 -
> .../sysv/linux/sparc/sparc64/libc.abilist | 4 ++
> .../sysv/linux/sparc/sparc64/librt.abilist | 2 -
> .../unix/sysv/linux/wordsize-64/aio_write.c | 7 ----
> .../unix/sysv/linux/wordsize-64/aio_write64.c | 1 -
> .../unix/sysv/linux/x86_64/64/libc.abilist | 4 ++
> .../unix/sysv/linux/x86_64/64/librt.abilist | 2 -
> .../unix/sysv/linux/x86_64/x32/libc.abilist | 4 ++
> .../unix/sysv/linux/x86_64/x32/librt.abilist | 2 -
> 68 files changed, 186 insertions(+), 79 deletions(-)
> delete mode 100644 sysdeps/unix/sysv/linux/wordsize-64/aio_write.c
> delete mode 100644 sysdeps/unix/sysv/linux/wordsize-64/aio_write64.c
>
> diff --git a/rt/Makefile b/rt/Makefile
> index b375d37ba2..55ebfde457 100644
> --- a/rt/Makefile
> +++ b/rt/Makefile
> @@ -29,8 +29,6 @@ routines = \
> shm_unlink \
>
> librt-routines = \
> - aio_write \
> - aio_write64 \
> librt-compat \
> lio_listio \
> lio_listio64 \
> @@ -63,6 +61,8 @@ $(librt-routines-var) += \
> aio_return \
> aio_sigqueue \
> aio_suspend \
> + aio_write \
> + aio_write64 \
>
> tests := tst-shm tst-timer tst-timer2 \
> tst-aio tst-aio64 tst-aio2 tst-aio3 tst-aio4 tst-aio5 tst-aio6 \
Ok.
> diff --git a/rt/Versions b/rt/Versions
> index d54b9cc4bf..f2b4ced257 100644
> --- a/rt/Versions
> +++ b/rt/Versions
> @@ -14,6 +14,8 @@ libc {
> aio_return64;
> aio_suspend;
> aio_suspend64;
> + aio_write;
> + aio_write64;
> %endif
> }
> GLIBC_2.2 {
> @@ -35,6 +37,8 @@ libc {
> aio_return64;
> aio_suspend;
> aio_suspend64;
> + aio_write;
> + aio_write64;
> %endif
> shm_open;
> shm_unlink;
> @@ -69,9 +73,9 @@ librt {
> aio_return64;
> aio_suspend;
> aio_suspend64;
> -%endif
> aio_write;
> aio_write64;
> +%endif
> lio_listio;
> lio_listio64;
> }
Ok.
> diff --git a/rt/aio_write.c b/rt/aio_write.c
> index ea55f0dbbc..ad50bc9282 100644
> --- a/rt/aio_write.c
> +++ b/rt/aio_write.c
> @@ -17,14 +17,45 @@
> License along with the GNU C Library; if not, see
> <https://www.gnu.org/licenses/>. */
>
> -#include <aio.h>
> +#include <bits/wordsize.h>
> +#if __WORDSIZE == 64
> +/* We use an UGLY hack to prevent gcc from finding us cheating. The
> + implementation of aio_write and aio_write64 are identical and so
> + we want to avoid code duplication by using aliases. But gcc sees
> + the different parameter lists and prints a warning. We define here
> + a function so that aio_write64 has no prototype. */
> +# define aio_write64 XXX
> +# include <aio.h>
> +/* And undo the hack. */
> +# undef aio_write64
> +#else
> +# include <aio.h>
> +#endif
>
> #include <aio_misc.h>
> -
> +#include <shlib-compat.h>
>
> int
> -aio_write (struct aiocb *aiocbp)
> +__aio_write (struct aiocb *aiocbp)
> {
> return (__aio_enqueue_request ((aiocb_union *) aiocbp, LIO_WRITE) == NULL
> ? -1 : 0);
> }
> +
> +#if PTHREAD_IN_LIBC
> +versioned_symbol (libc, __aio_write, aio_write, GLIBC_2_34);
> +# if __WORDSIZE == 64
> +versioned_symbol (libc, __aio_write, aio_write64, GLIBC_2_34);
> +# endif
> +# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_34)
> +compat_symbol (librt, __aio_write, aio_write, GLIBC_2_1);
> +# if __WORDSIZE == 64
> +compat_symbol (librt, __aio_write, aio_write64, GLIBC_2_1);
> +# endif
> +# endif
> +#else /* !PTHREAD_IN_LIBC */
> +strong_alias (__aio_write, aio_write)
> +# if __WORDSIZE == 64
> +weak_alias (__aio_write, aio_write64)
> +#endif
> +#endif /* !PTHREAD_IN_LIBC */
Ok.
> diff --git a/rt/aio_write64.c b/rt/aio_write64.c
> index bd6dd316be..5660fa5a41 100644
> --- a/rt/aio_write64.c
> +++ b/rt/aio_write64.c
> @@ -1,4 +1,4 @@
> -/* Asynchronous write, 64bit offset version.
> +/* Asynchronous read, 64bit offset version.
> Copyright (C) 1997-2021 Free Software Foundation, Inc.
> This file is part of the GNU C Library.
> Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
> @@ -17,14 +17,26 @@
> License along with the GNU C Library; if not, see
> <https://www.gnu.org/licenses/>. */
>
> -#include <aio.h>
> -
> -#include <aio_misc.h>
> +#include <bits/wordsize.h>
> +#if __WORDSIZE != 64
>
> +# include <aio.h>
> +# include <aio_misc.h>
> +# include <shlib-compat.h>
>
> int
> -aio_write64 (struct aiocb64 *aiocbp)
> +__aio_write64 (struct aiocb64 *aiocbp)
> {
> return (__aio_enqueue_request ((aiocb_union *) aiocbp, LIO_WRITE64) == NULL
> ? -1 : 0);
> }
> +
> +# if PTHREAD_IN_LIBC
> +versioned_symbol (libc, __aio_write64, aio_write64, GLIBC_2_34);
> +# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_34)
> +compat_symbol (librt, __aio_write64, aio_write64, GLIBC_2_1);
> +# endif
> +# else /* !PTHREAD_IN_LIBC */
> +strong_alias (__aio_write64, aio_write64)
> +# endif
> +#endif /* __WORDSIZE != 64 */
Ok.
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index 6c76d0df61..880dc08ffa 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -602,6 +602,8 @@ GLIBC_2.17 aio_return F
> GLIBC_2.17 aio_return64 F
> GLIBC_2.17 aio_suspend F
> GLIBC_2.17 aio_suspend64 F
> +GLIBC_2.17 aio_write F
> +GLIBC_2.17 aio_write64 F
> GLIBC_2.17 alarm F
> GLIBC_2.17 aligned_alloc F
> GLIBC_2.17 alphasort F
> @@ -2374,6 +2376,8 @@ GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> GLIBC_2.34 aio_suspend F
> GLIBC_2.34 aio_suspend64 F
> +GLIBC_2.34 aio_write F
> +GLIBC_2.34 aio_write64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> index 37ff014ed8..66c645887e 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_write F
> -GLIBC_2.17 aio_write64 F
> GLIBC_2.17 lio_listio F
> GLIBC_2.17 lio_listio64 F
> GLIBC_2.17 mq_close F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index e7f0e1b49a..45ba500389 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -1515,6 +1515,8 @@ GLIBC_2.1 aio_return F
> GLIBC_2.1 aio_return64 F
> GLIBC_2.1 aio_suspend F
> GLIBC_2.1 aio_suspend64 F
> +GLIBC_2.1 aio_write F
> +GLIBC_2.1 aio_write64 F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> GLIBC_2.1 argp_error F
> @@ -2469,6 +2471,8 @@ GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> GLIBC_2.34 aio_suspend F
> GLIBC_2.34 aio_suspend64 F
> +GLIBC_2.34 aio_write F
> +GLIBC_2.34 aio_write64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
> index 8a8fe654e0..89a7344c1c 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_write F
> -GLIBC_2.1 aio_write64 F
> GLIBC_2.1 lio_listio F
> GLIBC_2.1 lio_listio64 F
> GLIBC_2.2 timer_create F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index cf93d14e6f..fdfe20796b 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -563,6 +563,8 @@ GLIBC_2.32 aio_return F
> GLIBC_2.32 aio_return64 F
> GLIBC_2.32 aio_suspend F
> GLIBC_2.32 aio_suspend64 F
> +GLIBC_2.32 aio_write F
> +GLIBC_2.32 aio_write64 F
> GLIBC_2.32 alarm F
> GLIBC_2.32 aligned_alloc F
> GLIBC_2.32 alphasort F
> @@ -2133,6 +2135,8 @@ GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> GLIBC_2.34 aio_suspend F
> GLIBC_2.34 aio_suspend64 F
> +GLIBC_2.34 aio_write F
> +GLIBC_2.34 aio_write64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
> index 4eb7de36e1..780fb36a31 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_write F
> -GLIBC_2.32 aio_write64 F
> GLIBC_2.32 lio_listio F
> GLIBC_2.32 lio_listio64 F
> GLIBC_2.32 mq_close F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index 9d9e4c6b73..8e6cb9ad9d 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -292,6 +292,8 @@ GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> GLIBC_2.34 aio_suspend F
> GLIBC_2.34 aio_suspend64 F
> +GLIBC_2.34 aio_write F
> +GLIBC_2.34 aio_write64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> @@ -1008,6 +1010,8 @@ GLIBC_2.4 aio_return F
> GLIBC_2.4 aio_return64 F
> GLIBC_2.4 aio_suspend F
> GLIBC_2.4 aio_suspend64 F
> +GLIBC_2.4 aio_write F
> +GLIBC_2.4 aio_write64 F
> GLIBC_2.4 alarm F
> GLIBC_2.4 alphasort F
> GLIBC_2.4 alphasort64 F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> index 7cb476c7b4..5c655ba14e 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> @@ -2,8 +2,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_write F
> -GLIBC_2.4 aio_write64 F
> GLIBC_2.4 lio_listio F
> GLIBC_2.4 lio_listio64 F
> GLIBC_2.4 mq_close F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index a195587b66..58190af9e0 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -289,6 +289,8 @@ GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> GLIBC_2.34 aio_suspend F
> GLIBC_2.34 aio_suspend64 F
> +GLIBC_2.34 aio_write F
> +GLIBC_2.34 aio_write64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> @@ -1005,6 +1007,8 @@ GLIBC_2.4 aio_return F
> GLIBC_2.4 aio_return64 F
> GLIBC_2.4 aio_suspend F
> GLIBC_2.4 aio_suspend64 F
> +GLIBC_2.4 aio_write F
> +GLIBC_2.4 aio_write64 F
> GLIBC_2.4 alarm F
> GLIBC_2.4 alphasort F
> GLIBC_2.4 alphasort64 F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> index 7cb476c7b4..5c655ba14e 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> @@ -2,8 +2,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_write F
> -GLIBC_2.4 aio_write64 F
> GLIBC_2.4 lio_listio F
> GLIBC_2.4 lio_listio64 F
> GLIBC_2.4 mq_close F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index 1e3c73aa2d..4ebfe66490 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -577,6 +577,8 @@ GLIBC_2.29 aio_return F
> GLIBC_2.29 aio_return64 F
> GLIBC_2.29 aio_suspend F
> GLIBC_2.29 aio_suspend64 F
> +GLIBC_2.29 aio_write F
> +GLIBC_2.29 aio_write64 F
> GLIBC_2.29 alarm F
> GLIBC_2.29 aligned_alloc F
> GLIBC_2.29 alphasort F
> @@ -2394,6 +2396,8 @@ GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> GLIBC_2.34 aio_suspend F
> GLIBC_2.34 aio_suspend64 F
> +GLIBC_2.34 aio_write F
> +GLIBC_2.34 aio_write64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
> index fcc993f16f..e8bf05dae6 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_write F
> -GLIBC_2.29 aio_write64 F
> GLIBC_2.29 lio_listio F
> GLIBC_2.29 lio_listio64 F
> GLIBC_2.29 mq_close F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index 3e0ff7575e..685eab4532 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -16,6 +16,8 @@ GLIBC_2.1 aio_return F
> GLIBC_2.1 aio_return64 F
> GLIBC_2.1 aio_suspend F
> GLIBC_2.1 aio_suspend64 F
> +GLIBC_2.1 aio_write F
> +GLIBC_2.1 aio_write64 F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.10 __cxa_at_quick_exit F
> @@ -2348,6 +2350,8 @@ GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> GLIBC_2.34 aio_suspend F
> GLIBC_2.34 aio_suspend64 F
> +GLIBC_2.34 aio_write F
> +GLIBC_2.34 aio_write64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
> index b9b9b71dba..eb80c67c84 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_write F
> -GLIBC_2.1 aio_write64 F
> GLIBC_2.1 lio_listio F
> GLIBC_2.1 lio_listio64 F
> GLIBC_2.2 timer_create F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index 54b5ee4649..19b2f11845 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -1488,6 +1488,8 @@ GLIBC_2.1 aio_return F
> GLIBC_2.1 aio_return64 F
> GLIBC_2.1 aio_suspend F
> GLIBC_2.1 aio_suspend64 F
> +GLIBC_2.1 aio_write F
> +GLIBC_2.1 aio_write64 F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> GLIBC_2.1 argp_error F
> @@ -2532,6 +2534,8 @@ GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> GLIBC_2.34 aio_suspend F
> GLIBC_2.34 aio_suspend64 F
> +GLIBC_2.34 aio_write F
> +GLIBC_2.34 aio_write64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
> index b9b9b71dba..eb80c67c84 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_write F
> -GLIBC_2.1 aio_write64 F
> GLIBC_2.1 lio_listio F
> GLIBC_2.1 lio_listio64 F
> GLIBC_2.2 timer_create F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index 9aac5c8ff4..8d9f6ff3b6 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -16,6 +16,8 @@ GLIBC_2.1 aio_return F
> GLIBC_2.1 aio_return64 F
> GLIBC_2.1 aio_suspend F
> GLIBC_2.1 aio_suspend64 F
> +GLIBC_2.1 aio_write F
> +GLIBC_2.1 aio_write64 F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.10 __cxa_at_quick_exit F
> @@ -2307,6 +2309,8 @@ GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> GLIBC_2.34 aio_suspend F
> GLIBC_2.34 aio_suspend64 F
> +GLIBC_2.34 aio_write F
> +GLIBC_2.34 aio_write64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
> index 67435f760c..1eef73b204 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_write F
> -GLIBC_2.1 aio_write64 F
> GLIBC_2.1 lio_listio F
> GLIBC_2.1 lio_listio64 F
> GLIBC_2.2 timer_create F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index 87baa69dfe..2ab4862211 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -293,6 +293,8 @@ GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> GLIBC_2.34 aio_suspend F
> GLIBC_2.34 aio_suspend64 F
> +GLIBC_2.34 aio_write F
> +GLIBC_2.34 aio_write64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> @@ -996,6 +998,8 @@ GLIBC_2.4 aio_return F
> GLIBC_2.4 aio_return64 F
> GLIBC_2.4 aio_suspend F
> GLIBC_2.4 aio_suspend64 F
> +GLIBC_2.4 aio_write F
> +GLIBC_2.4 aio_write64 F
> GLIBC_2.4 alarm F
> GLIBC_2.4 alphasort F
> GLIBC_2.4 alphasort64 F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> index 7cb476c7b4..5c655ba14e 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> @@ -2,8 +2,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_write F
> -GLIBC_2.4 aio_write64 F
> GLIBC_2.4 lio_listio F
> GLIBC_2.4 lio_listio64 F
> GLIBC_2.4 mq_close F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index 68aa865da4..f4ee74ce72 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -1486,6 +1486,8 @@ GLIBC_2.1 aio_return F
> GLIBC_2.1 aio_return64 F
> GLIBC_2.1 aio_suspend F
> GLIBC_2.1 aio_suspend64 F
> +GLIBC_2.1 aio_write F
> +GLIBC_2.1 aio_write64 F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> GLIBC_2.1 argp_error F
> @@ -2475,6 +2477,8 @@ GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> GLIBC_2.34 aio_suspend F
> GLIBC_2.34 aio_suspend64 F
> +GLIBC_2.34 aio_write F
> +GLIBC_2.34 aio_write64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> index b9b9b71dba..eb80c67c84 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_write F
> -GLIBC_2.1 aio_write64 F
> GLIBC_2.1 lio_listio F
> GLIBC_2.1 lio_listio64 F
> GLIBC_2.2 timer_create F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index 19aef593f3..d0dcf88270 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -604,6 +604,8 @@ GLIBC_2.18 aio_return F
> GLIBC_2.18 aio_return64 F
> GLIBC_2.18 aio_suspend F
> GLIBC_2.18 aio_suspend64 F
> +GLIBC_2.18 aio_write F
> +GLIBC_2.18 aio_write64 F
> GLIBC_2.18 alarm F
> GLIBC_2.18 aligned_alloc F
> GLIBC_2.18 alphasort F
> @@ -2445,6 +2447,8 @@ GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> GLIBC_2.34 aio_suspend F
> GLIBC_2.34 aio_suspend64 F
> +GLIBC_2.34 aio_write F
> +GLIBC_2.34 aio_write64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> index 06e862de52..5a24a449c8 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_write F
> -GLIBC_2.18 aio_write64 F
> GLIBC_2.18 lio_listio F
> GLIBC_2.18 lio_listio64 F
> GLIBC_2.18 mq_close F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index d5f26a2d9b..a5a1b7ddc4 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -604,6 +604,8 @@ GLIBC_2.18 aio_return F
> GLIBC_2.18 aio_return64 F
> GLIBC_2.18 aio_suspend F
> GLIBC_2.18 aio_suspend64 F
> +GLIBC_2.18 aio_write F
> +GLIBC_2.18 aio_write64 F
> GLIBC_2.18 alarm F
> GLIBC_2.18 aligned_alloc F
> GLIBC_2.18 alphasort F
> @@ -2442,6 +2444,8 @@ GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> GLIBC_2.34 aio_suspend F
> GLIBC_2.34 aio_suspend64 F
> +GLIBC_2.34 aio_write F
> +GLIBC_2.34 aio_write64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> index 06e862de52..5a24a449c8 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_write F
> -GLIBC_2.18 aio_write64 F
> GLIBC_2.18 lio_listio F
> GLIBC_2.18 lio_listio64 F
> GLIBC_2.18 mq_close F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index ba77980ef8..a6d55c9639 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -1664,6 +1664,8 @@ GLIBC_2.2 aio_return F
> GLIBC_2.2 aio_return64 F
> GLIBC_2.2 aio_suspend F
> GLIBC_2.2 aio_suspend64 F
> +GLIBC_2.2 aio_write F
> +GLIBC_2.2 aio_write64 F
> GLIBC_2.2 alphasort64 F
> GLIBC_2.2 argp_err_exit_status D 0x4
> GLIBC_2.2 argp_error F
> @@ -2440,6 +2442,8 @@ GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> GLIBC_2.34 aio_suspend F
> GLIBC_2.34 aio_suspend64 F
> +GLIBC_2.34 aio_write F
> +GLIBC_2.34 aio_write64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> index 0a07f87ce9..1d8e4643b5 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_write F
> -GLIBC_2.2 aio_write64 F
> GLIBC_2.2 lio_listio F
> GLIBC_2.2 lio_listio64 F
> GLIBC_2.2 timer_create F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index 1e6c7a1eb3..4f72d3c617 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -1662,6 +1662,8 @@ GLIBC_2.2 aio_return F
> GLIBC_2.2 aio_return64 F
> GLIBC_2.2 aio_suspend F
> GLIBC_2.2 aio_suspend64 F
> +GLIBC_2.2 aio_write F
> +GLIBC_2.2 aio_write64 F
> GLIBC_2.2 alphasort64 F
> GLIBC_2.2 argp_err_exit_status D 0x4
> GLIBC_2.2 argp_error F
> @@ -2438,6 +2440,8 @@ GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> GLIBC_2.34 aio_suspend F
> GLIBC_2.34 aio_suspend64 F
> +GLIBC_2.34 aio_write F
> +GLIBC_2.34 aio_write64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index fd731ffed0..216e8fbe03 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -1663,6 +1663,8 @@ GLIBC_2.2 aio_return F
> GLIBC_2.2 aio_return64 F
> GLIBC_2.2 aio_suspend F
> GLIBC_2.2 aio_suspend64 F
> +GLIBC_2.2 aio_write F
> +GLIBC_2.2 aio_write64 F
> GLIBC_2.2 alphasort64 F
> GLIBC_2.2 argp_err_exit_status D 0x4
> GLIBC_2.2 argp_error F
> @@ -2446,6 +2448,8 @@ GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> GLIBC_2.34 aio_suspend F
> GLIBC_2.34 aio_suspend64 F
> +GLIBC_2.34 aio_write F
> +GLIBC_2.34 aio_write64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> index 0a07f87ce9..1d8e4643b5 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_write F
> -GLIBC_2.2 aio_write64 F
> GLIBC_2.2 lio_listio F
> GLIBC_2.2 lio_listio64 F
> GLIBC_2.2 timer_create F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index 9f82375689..9671631450 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -1659,6 +1659,8 @@ GLIBC_2.2 aio_return F
> GLIBC_2.2 aio_return64 F
> GLIBC_2.2 aio_suspend F
> GLIBC_2.2 aio_suspend64 F
> +GLIBC_2.2 aio_write F
> +GLIBC_2.2 aio_write64 F
> GLIBC_2.2 alphasort64 F
> GLIBC_2.2 argp_err_exit_status D 0x4
> GLIBC_2.2 argp_error F
> @@ -2363,6 +2365,8 @@ GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> GLIBC_2.34 aio_suspend F
> GLIBC_2.34 aio_suspend64 F
> +GLIBC_2.34 aio_write F
> +GLIBC_2.34 aio_write64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> index 7d7be4d9ec..f2cda0ef51 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_write F
> -GLIBC_2.2 aio_write64 F
> GLIBC_2.2 lio_listio F
> GLIBC_2.2 lio_listio64 F
> GLIBC_2.2 timer_create F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index 77a0544dbf..6d105407dd 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -646,6 +646,8 @@ GLIBC_2.21 aio_return F
> GLIBC_2.21 aio_return64 F
> GLIBC_2.21 aio_suspend F
> GLIBC_2.21 aio_suspend64 F
> +GLIBC_2.21 aio_write F
> +GLIBC_2.21 aio_write64 F
> GLIBC_2.21 alarm F
> GLIBC_2.21 aligned_alloc F
> GLIBC_2.21 alphasort F
> @@ -2484,6 +2486,8 @@ GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> GLIBC_2.34 aio_suspend F
> GLIBC_2.34 aio_suspend64 F
> +GLIBC_2.34 aio_write F
> +GLIBC_2.34 aio_write64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
> index 0db5142065..dc18b0dc39 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_write F
> -GLIBC_2.21 aio_write64 F
> GLIBC_2.21 lio_listio F
> GLIBC_2.21 lio_listio64 F
> GLIBC_2.21 mq_close F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index ed6f66c610..783ce5aa8e 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -1493,6 +1493,8 @@ GLIBC_2.1 aio_return F
> GLIBC_2.1 aio_return64 F
> GLIBC_2.1 aio_suspend F
> GLIBC_2.1 aio_suspend64 F
> +GLIBC_2.1 aio_write F
> +GLIBC_2.1 aio_write64 F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> GLIBC_2.1 argp_error F
> @@ -2502,6 +2504,8 @@ GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> GLIBC_2.34 aio_suspend F
> GLIBC_2.34 aio_suspend64 F
> +GLIBC_2.34 aio_write F
> +GLIBC_2.34 aio_write64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> index b9b9b71dba..eb80c67c84 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_write F
> -GLIBC_2.1 aio_write64 F
> GLIBC_2.1 lio_listio F
> GLIBC_2.1 lio_listio64 F
> GLIBC_2.2 timer_create F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index 817530d12f..badcc67295 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -1493,6 +1493,8 @@ GLIBC_2.1 aio_return F
> GLIBC_2.1 aio_return64 F
> GLIBC_2.1 aio_suspend F
> GLIBC_2.1 aio_suspend64 F
> +GLIBC_2.1 aio_write F
> +GLIBC_2.1 aio_write64 F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> GLIBC_2.1 argp_error F
> @@ -2535,6 +2537,8 @@ GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> GLIBC_2.34 aio_suspend F
> GLIBC_2.34 aio_suspend64 F
> +GLIBC_2.34 aio_write F
> +GLIBC_2.34 aio_write64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index 40a27cfd26..838b3323f1 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -646,6 +646,8 @@ GLIBC_2.3 aio_return F
> GLIBC_2.3 aio_return64 F
> GLIBC_2.3 aio_suspend F
> GLIBC_2.3 aio_suspend64 F
> +GLIBC_2.3 aio_write F
> +GLIBC_2.3 aio_write64 F
> GLIBC_2.3 alarm F
> GLIBC_2.3 alphasort F
> GLIBC_2.3 alphasort64 F
> @@ -2271,6 +2273,8 @@ GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> GLIBC_2.34 aio_suspend F
> GLIBC_2.34 aio_suspend64 F
> +GLIBC_2.34 aio_write F
> +GLIBC_2.34 aio_write64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> index 205c9536b4..dcbadb2a1b 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_write F
> -GLIBC_2.3 aio_write64 F
> GLIBC_2.3 lio_listio F
> GLIBC_2.3 lio_listio64 F
> GLIBC_2.3 timer_create F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index 208096bebf..b51ebf0861 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -690,6 +690,8 @@ GLIBC_2.17 aio_return F
> GLIBC_2.17 aio_return64 F
> GLIBC_2.17 aio_suspend F
> GLIBC_2.17 aio_suspend64 F
> +GLIBC_2.17 aio_write F
> +GLIBC_2.17 aio_write64 F
> GLIBC_2.17 alarm F
> GLIBC_2.17 aligned_alloc F
> GLIBC_2.17 alphasort F
> @@ -2570,6 +2572,8 @@ GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> GLIBC_2.34 aio_suspend F
> GLIBC_2.34 aio_suspend64 F
> +GLIBC_2.34 aio_write F
> +GLIBC_2.34 aio_write64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> index 37ff014ed8..66c645887e 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_write F
> -GLIBC_2.17 aio_write64 F
> GLIBC_2.17 lio_listio F
> GLIBC_2.17 lio_listio64 F
> GLIBC_2.17 mq_close F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index 20b4b7c0ad..caed7efe2b 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -557,6 +557,8 @@ GLIBC_2.33 aio_return F
> GLIBC_2.33 aio_return64 F
> GLIBC_2.33 aio_suspend F
> GLIBC_2.33 aio_suspend64 F
> +GLIBC_2.33 aio_write F
> +GLIBC_2.33 aio_write64 F
> GLIBC_2.33 alarm F
> GLIBC_2.33 aligned_alloc F
> GLIBC_2.33 alphasort F
> @@ -2135,6 +2137,8 @@ GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> GLIBC_2.34 aio_suspend F
> GLIBC_2.34 aio_suspend64 F
> +GLIBC_2.34 aio_write F
> +GLIBC_2.34 aio_write64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> index 51c25c849d..82f04551d5 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_write F
> -GLIBC_2.33 aio_write64 F
> GLIBC_2.33 lio_listio F
> GLIBC_2.33 lio_listio64 F
> GLIBC_2.33 mq_close F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index 9675d2f767..e9574cf0e4 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -583,6 +583,8 @@ GLIBC_2.27 aio_return F
> GLIBC_2.27 aio_return64 F
> GLIBC_2.27 aio_suspend F
> GLIBC_2.27 aio_suspend64 F
> +GLIBC_2.27 aio_write F
> +GLIBC_2.27 aio_write64 F
> GLIBC_2.27 alarm F
> GLIBC_2.27 aligned_alloc F
> GLIBC_2.27 alphasort F
> @@ -2335,6 +2337,8 @@ GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> GLIBC_2.34 aio_suspend F
> GLIBC_2.34 aio_suspend64 F
> +GLIBC_2.34 aio_write F
> +GLIBC_2.34 aio_write64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> index 7ccf2b6591..044eace5c3 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_write F
> -GLIBC_2.27 aio_write64 F
> GLIBC_2.27 lio_listio F
> GLIBC_2.27 lio_listio64 F
> GLIBC_2.27 mq_close F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index 3f64ebb9bd..28f002dcd8 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -1485,6 +1485,8 @@ GLIBC_2.1 aio_return F
> GLIBC_2.1 aio_return64 F
> GLIBC_2.1 aio_suspend F
> GLIBC_2.1 aio_suspend64 F
> +GLIBC_2.1 aio_write F
> +GLIBC_2.1 aio_write64 F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> GLIBC_2.1 argp_error F
> @@ -2500,6 +2502,8 @@ GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> GLIBC_2.34 aio_suspend F
> GLIBC_2.34 aio_suspend64 F
> +GLIBC_2.34 aio_write F
> +GLIBC_2.34 aio_write64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> index b9b9b71dba..eb80c67c84 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_write F
> -GLIBC_2.1 aio_write64 F
> GLIBC_2.1 lio_listio F
> GLIBC_2.1 lio_listio64 F
> GLIBC_2.2 timer_create F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index f727420c0a..2d6d3fd601 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -583,6 +583,8 @@ GLIBC_2.2 aio_return F
> GLIBC_2.2 aio_return64 F
> GLIBC_2.2 aio_suspend F
> GLIBC_2.2 aio_suspend64 F
> +GLIBC_2.2 aio_write F
> +GLIBC_2.2 aio_write64 F
> GLIBC_2.2 alarm F
> GLIBC_2.2 alphasort F
> GLIBC_2.2 alphasort64 F
> @@ -2308,6 +2310,8 @@ GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> GLIBC_2.34 aio_suspend F
> GLIBC_2.34 aio_suspend64 F
> +GLIBC_2.34 aio_write F
> +GLIBC_2.34 aio_write64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> index 15c2ca3e70..03aed4d0f7 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_write F
> -GLIBC_2.2 aio_write64 F
> GLIBC_2.2 lio_listio F
> GLIBC_2.2 lio_listio64 F
> GLIBC_2.2 timer_create F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index 3aed85ad55..327cc0812d 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -20,6 +20,8 @@ GLIBC_2.1 aio_return F
> GLIBC_2.1 aio_return64 F
> GLIBC_2.1 aio_suspend F
> GLIBC_2.1 aio_suspend64 F
> +GLIBC_2.1 aio_write F
> +GLIBC_2.1 aio_write64 F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.10 __cxa_at_quick_exit F
> @@ -2355,6 +2357,8 @@ GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> GLIBC_2.34 aio_suspend F
> GLIBC_2.34 aio_suspend64 F
> +GLIBC_2.34 aio_write F
> +GLIBC_2.34 aio_write64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> index b9b9b71dba..eb80c67c84 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_write F
> -GLIBC_2.1 aio_write64 F
> GLIBC_2.1 lio_listio F
> GLIBC_2.1 lio_listio64 F
> GLIBC_2.2 timer_create F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index eed02a7f07..4993b24e22 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -20,6 +20,8 @@ GLIBC_2.1 aio_return F
> GLIBC_2.1 aio_return64 F
> GLIBC_2.1 aio_suspend F
> GLIBC_2.1 aio_suspend64 F
> +GLIBC_2.1 aio_write F
> +GLIBC_2.1 aio_write64 F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.10 __cxa_at_quick_exit F
> @@ -2352,6 +2354,8 @@ GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> GLIBC_2.34 aio_suspend F
> GLIBC_2.34 aio_suspend64 F
> +GLIBC_2.34 aio_write F
> +GLIBC_2.34 aio_write64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> index b9b9b71dba..eb80c67c84 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_write F
> -GLIBC_2.1 aio_write64 F
> GLIBC_2.1 lio_listio F
> GLIBC_2.1 lio_listio64 F
> GLIBC_2.2 timer_create F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index c627a8beb7..e48e78079f 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -1487,6 +1487,8 @@ GLIBC_2.1 aio_return F
> GLIBC_2.1 aio_return64 F
> GLIBC_2.1 aio_suspend F
> GLIBC_2.1 aio_suspend64 F
> +GLIBC_2.1 aio_write F
> +GLIBC_2.1 aio_write64 F
> GLIBC_2.1 alphasort64 F
> GLIBC_2.1 argp_err_exit_status D 0x4
> GLIBC_2.1 argp_error F
> @@ -2495,6 +2497,8 @@ GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> GLIBC_2.34 aio_suspend F
> GLIBC_2.34 aio_suspend64 F
> +GLIBC_2.34 aio_write F
> +GLIBC_2.34 aio_write64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> index 13fff57eb0..3c39a8ba0a 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_write F
> -GLIBC_2.1 aio_write64 F
> GLIBC_2.1 lio_listio F
> GLIBC_2.1 lio_listio64 F
> GLIBC_2.2 timer_create F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index 574b4ef2c1..85a4dfa37c 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -20,6 +20,8 @@ GLIBC_2.1 aio_return F
> GLIBC_2.1 aio_return64 F
> GLIBC_2.1 aio_suspend F
> GLIBC_2.1 aio_suspend64 F
> +GLIBC_2.1 aio_write F
> +GLIBC_2.1 aio_write64 F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> GLIBC_2.10 __cxa_at_quick_exit F
> @@ -2330,6 +2332,8 @@ GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> GLIBC_2.34 aio_suspend F
> GLIBC_2.34 aio_suspend64 F
> +GLIBC_2.34 aio_write F
> +GLIBC_2.34 aio_write64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> index 8a8fe654e0..89a7344c1c 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_write F
> -GLIBC_2.1 aio_write64 F
> GLIBC_2.1 lio_listio F
> GLIBC_2.1 lio_listio64 F
> GLIBC_2.2 timer_create F
> diff --git a/sysdeps/unix/sysv/linux/wordsize-64/aio_write.c b/sysdeps/unix/sysv/linux/wordsize-64/aio_write.c
> deleted file mode 100644
> index 60d242f88f..0000000000
> --- a/sysdeps/unix/sysv/linux/wordsize-64/aio_write.c
> +++ /dev/null
> @@ -1,7 +0,0 @@
> -#define aio_write64 __renamed_aio_write64
> -
> -#include <rt/aio_write.c>
> -
> -#undef aio_write64
> -
> -weak_alias (aio_write, aio_write64)
> diff --git a/sysdeps/unix/sysv/linux/wordsize-64/aio_write64.c b/sysdeps/unix/sysv/linux/wordsize-64/aio_write64.c
> deleted file mode 100644
> index ced07fa273..0000000000
> --- a/sysdeps/unix/sysv/linux/wordsize-64/aio_write64.c
> +++ /dev/null
> @@ -1 +0,0 @@
> -/* Defined in aio_write.c. */
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index 6e3c1ce83b..c95b54fad3 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -572,6 +572,8 @@ GLIBC_2.2.5 aio_return F
> GLIBC_2.2.5 aio_return64 F
> GLIBC_2.2.5 aio_suspend F
> GLIBC_2.2.5 aio_suspend64 F
> +GLIBC_2.2.5 aio_write F
> +GLIBC_2.2.5 aio_write64 F
> GLIBC_2.2.5 alarm F
> GLIBC_2.2.5 alphasort F
> GLIBC_2.2.5 alphasort64 F
> @@ -2286,6 +2288,8 @@ GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> GLIBC_2.34 aio_suspend F
> GLIBC_2.34 aio_suspend64 F
> +GLIBC_2.34 aio_write F
> +GLIBC_2.34 aio_write64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> index c2e8ab87d0..974a0bf943 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_write F
> -GLIBC_2.2.5 aio_write64 F
> GLIBC_2.2.5 lio_listio F
> GLIBC_2.2.5 lio_listio64 F
> GLIBC_2.2.5 timer_create F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index 42376975e6..c543baf92b 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -605,6 +605,8 @@ GLIBC_2.16 aio_return F
> GLIBC_2.16 aio_return64 F
> GLIBC_2.16 aio_suspend F
> GLIBC_2.16 aio_suspend64 F
> +GLIBC_2.16 aio_write F
> +GLIBC_2.16 aio_write64 F
> GLIBC_2.16 alarm F
> GLIBC_2.16 aligned_alloc F
> GLIBC_2.16 alphasort F
> @@ -2389,6 +2391,8 @@ GLIBC_2.34 aio_return F
> GLIBC_2.34 aio_return64 F
> GLIBC_2.34 aio_suspend F
> GLIBC_2.34 aio_suspend64 F
> +GLIBC_2.34 aio_write F
> +GLIBC_2.34 aio_write64 F
> GLIBC_2.34 call_once F
> GLIBC_2.34 cnd_broadcast F
> GLIBC_2.34 cnd_destroy F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> index f7245c6716..42f733844b 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_write F
> -GLIBC_2.16 aio_write64 F
> GLIBC_2.16 lio_listio F
> GLIBC_2.16 lio_listio64 F
> GLIBC_2.16 mq_close F
>
Ok.
^ permalink raw reply [flat|nested] 72+ messages in thread
* [PATCH 18/34] rt: Rework lio_listio implementation
2021-06-17 18:56 [PATCH v2 00/34] Move librt into libc Florian Weimer
` (16 preceding siblings ...)
2021-06-17 18:58 ` [PATCH 17/34] Linux: Move aio_write, aio_write64 into libc Florian Weimer
@ 2021-06-17 18:58 ` Florian Weimer
2021-06-23 20:10 ` Adhemerval Zanella
2021-06-17 18:58 ` [PATCH 19/34] Linux: Move lio_listio, lio_listio64 from librt to libc Florian Weimer
` (16 subsequent siblings)
34 siblings, 1 reply; 72+ messages in thread
From: Florian Weimer @ 2021-06-17 18:58 UTC (permalink / raw)
To: libc-alpha
Move the common code into rt/lio_listio-common.c and include
the file in both rt/lio_listio.c and rt/lio_listio64.c. The common
code automatically defines both public symbols for __WORDSIZE == 64.
---
rt/lio_listio-common.c | 275 ++++++++++++++++++
rt/lio_listio.c | 235 +--------------
rt/lio_listio64.c | 27 +-
.../unix/sysv/linux/wordsize-64/lio_listio.c | 13 -
.../sysv/linux/wordsize-64/lio_listio64.c | 1 -
5 files changed, 292 insertions(+), 259 deletions(-)
create mode 100644 rt/lio_listio-common.c
delete mode 100644 sysdeps/unix/sysv/linux/wordsize-64/lio_listio.c
delete mode 100644 sysdeps/unix/sysv/linux/wordsize-64/lio_listio64.c
diff --git a/rt/lio_listio-common.c b/rt/lio_listio-common.c
new file mode 100644
index 0000000000..a85753823f
--- /dev/null
+++ b/rt/lio_listio-common.c
@@ -0,0 +1,275 @@
+/* Enqueue and list of read or write requests. Common code template.
+ Copyright (C) 1997-2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+ 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/>. */
+
+/* The following macros must be defined before including this file:
+
+ LIO_LISTIO The public symbol (lio_listio or lio_listio64).
+ AIOCB Struct tag used by LIO_LISTIO (aiocb or aiocb64).
+ LIO_LISTIO_OLD The internal symbol for the compat implementation.
+ LIO_LISTIO_NEW The internal symbol for the current implementation.
+ LIO_OPCODE_BASE Opcode shift for 64-bit version with 32-bit word size.
+
+ For __WORDSIZE == 64, LIO_LISTIO must always be lio_listio, and
+ lio_listio64 is automatically defined as well. */
+
+#include <bits/wordsize.h>
+#if __WORDSIZE == 64
+/* We use an UGLY hack to prevent gcc from finding us cheating. The
+ implementation of lio_listio and lio_listio64 are identical and so
+ we want to avoid code duplication by using aliases. But gcc sees
+ the different parameter lists and prints a warning. We define here
+ a function so that lio_listio64 has no prototype. */
+# define lio_listio64 XXX
+# include <aio.h>
+/* And undo the hack. */
+# undef lio_listio64
+#else
+# include <aio.h>
+#endif
+
+#include <assert.h>
+#include <errno.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#include <aio_misc.h>
+
+#include <shlib-compat.h>
+
+
+/* We need this special structure to handle asynchronous I/O. */
+struct async_waitlist
+ {
+ unsigned int counter;
+ struct sigevent sigev;
+ struct waitlist list[0];
+ };
+
+
+/* The code in glibc 2.1 to glibc 2.4 issued only one event when all
+ requests submitted with lio_listio finished. The existing practice
+ is to issue events for the individual requests as well. This is
+ what the new code does. */
+#if SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_4)
+# define LIO_MODE(mode) ((mode) & 127)
+# define NO_INDIVIDUAL_EVENT_P(mode) ((mode) & 128)
+#else
+# define LIO_MODE(mode) mode
+# define NO_INDIVIDUAL_EVENT_P(mode) 0
+#endif
+
+
+static int
+lio_listio_internal (int mode, struct AIOCB *const list[], int nent,
+ struct sigevent *sig)
+{
+ struct sigevent defsigev;
+ struct requestlist *requests[nent];
+ int cnt;
+ volatile unsigned int total = 0;
+ int result = 0;
+
+ if (sig == NULL)
+ {
+ defsigev.sigev_notify = SIGEV_NONE;
+ sig = &defsigev;
+ }
+
+ /* Request the mutex. */
+ pthread_mutex_lock (&__aio_requests_mutex);
+
+ /* Now we can enqueue all requests. Since we already acquired the
+ mutex the enqueue function need not do this. */
+ for (cnt = 0; cnt < nent; ++cnt)
+ if (list[cnt] != NULL && list[cnt]->aio_lio_opcode != LIO_NOP)
+ {
+ if (NO_INDIVIDUAL_EVENT_P (mode))
+ list[cnt]->aio_sigevent.sigev_notify = SIGEV_NONE;
+
+ requests[cnt] = __aio_enqueue_request ((aiocb_union *) list[cnt],
+ (list[cnt]->aio_lio_opcode
+ | LIO_OPCODE_BASE));
+
+ if (requests[cnt] != NULL)
+ /* Successfully enqueued. */
+ ++total;
+ else
+ /* Signal that we've seen an error. `errno' and the error code
+ of the aiocb will tell more. */
+ result = -1;
+ }
+ else
+ requests[cnt] = NULL;
+
+ if (total == 0)
+ {
+ /* We don't have anything to do except signalling if we work
+ asynchronously. */
+
+ /* Release the mutex. We do this before raising a signal since the
+ signal handler might do a `siglongjmp' and then the mutex is
+ locked forever. */
+ pthread_mutex_unlock (&__aio_requests_mutex);
+
+ if (LIO_MODE (mode) == LIO_NOWAIT)
+ __aio_notify_only (sig);
+
+ return result;
+ }
+ else if (LIO_MODE (mode) == LIO_WAIT)
+ {
+#ifndef DONT_NEED_AIO_MISC_COND
+ pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
+ int oldstate;
+#endif
+ struct waitlist waitlist[nent];
+
+ total = 0;
+ for (cnt = 0; cnt < nent; ++cnt)
+ {
+ assert (requests[cnt] == NULL || list[cnt] != NULL);
+
+ if (requests[cnt] != NULL && list[cnt]->aio_lio_opcode != LIO_NOP)
+ {
+#ifndef DONT_NEED_AIO_MISC_COND
+ waitlist[cnt].cond = &cond;
+#endif
+ waitlist[cnt].result = &result;
+ waitlist[cnt].next = requests[cnt]->waiting;
+ waitlist[cnt].counterp = &total;
+ waitlist[cnt].sigevp = NULL;
+ requests[cnt]->waiting = &waitlist[cnt];
+ ++total;
+ }
+ }
+
+#ifdef DONT_NEED_AIO_MISC_COND
+ AIO_MISC_WAIT (result, total, NULL, 0);
+#else
+ /* Since `pthread_cond_wait'/`pthread_cond_timedwait' are cancellation
+ points we must be careful. We added entries to the waiting lists
+ which we must remove. So defer cancellation for now. */
+ pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, &oldstate);
+
+ while (total > 0)
+ pthread_cond_wait (&cond, &__aio_requests_mutex);
+
+ /* Now it's time to restore the cancellation state. */
+ pthread_setcancelstate (oldstate, NULL);
+
+ /* Release the conditional variable. */
+ if (pthread_cond_destroy (&cond) != 0)
+ /* This must never happen. */
+ abort ();
+#endif
+
+ /* If any of the I/O requests failed, return -1 and set errno. */
+ if (result != 0)
+ {
+ __set_errno (result == EINTR ? EINTR : EIO);
+ result = -1;
+ }
+ }
+ else
+ {
+ struct async_waitlist *waitlist;
+
+ waitlist = (struct async_waitlist *)
+ malloc (sizeof (struct async_waitlist)
+ + (nent * sizeof (struct waitlist)));
+
+ if (waitlist == NULL)
+ {
+ __set_errno (EAGAIN);
+ result = -1;
+ }
+ else
+ {
+ total = 0;
+
+ for (cnt = 0; cnt < nent; ++cnt)
+ {
+ assert (requests[cnt] == NULL || list[cnt] != NULL);
+
+ if (requests[cnt] != NULL
+ && list[cnt]->aio_lio_opcode != LIO_NOP)
+ {
+#ifndef DONT_NEED_AIO_MISC_COND
+ waitlist->list[cnt].cond = NULL;
+#endif
+ waitlist->list[cnt].result = NULL;
+ waitlist->list[cnt].next = requests[cnt]->waiting;
+ waitlist->list[cnt].counterp = &waitlist->counter;
+ waitlist->list[cnt].sigevp = &waitlist->sigev;
+ requests[cnt]->waiting = &waitlist->list[cnt];
+ ++total;
+ }
+ }
+
+ waitlist->counter = total;
+ waitlist->sigev = *sig;
+ }
+ }
+
+ /* Release the mutex. */
+ pthread_mutex_unlock (&__aio_requests_mutex);
+
+ return result;
+}
+
+
+#if SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_4)
+int
+attribute_compat_text_section
+LIO_LISTIO_OLD (int mode, struct AIOCB *const list[], int nent,
+ struct sigevent *sig)
+{
+ /* Check arguments. */
+ if (mode != LIO_WAIT && mode != LIO_NOWAIT)
+ {
+ __set_errno (EINVAL);
+ return -1;
+ }
+
+ return lio_listio_internal (mode | LIO_NO_INDIVIDUAL_EVENT, list, nent, sig);
+}
+compat_symbol (librt, LIO_LISTIO_OLD, LIO_LISTIO, GLIBC_2_1);
+# if __WORDSIZE == 64
+compat_symbol (librt, LIO_LISTIO_OLD, lio_listio64, GLIBC_2_1);
+# endif
+#endif /* SHLIB_COMPAT */
+
+
+int
+LIO_LISTIO_NEW (int mode, struct AIOCB *const list[], int nent,
+ struct sigevent *sig)
+{
+ /* Check arguments. */
+ if (mode != LIO_WAIT && mode != LIO_NOWAIT)
+ {
+ __set_errno (EINVAL);
+ return -1;
+ }
+
+ return lio_listio_internal (mode, list, nent, sig);
+}
+versioned_symbol (librt, LIO_LISTIO_NEW, LIO_LISTIO, GLIBC_2_4);
+#if __WORDSIZE == 64
+versioned_symbol (librt, LIO_LISTIO_NEW, lio_listio64, GLIBC_2_4);
+#endif
diff --git a/rt/lio_listio.c b/rt/lio_listio.c
index 2cab3c2254..bcc3bb1393 100644
--- a/rt/lio_listio.c
+++ b/rt/lio_listio.c
@@ -1,7 +1,6 @@
/* Enqueue and list of read or write requests.
- Copyright (C) 1997-2021 Free Software Foundation, Inc.
+ Copyright (C) 2021 Free Software Foundation, Inc.
This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -17,232 +16,10 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#ifndef lio_listio
-#include <aio.h>
-#include <assert.h>
-#include <errno.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-#include <aio_misc.h>
-
+#define LIO_LISTIO lio_listio
+#define AIOCB aiocb
+#define LIO_LISTIO_OLD __lio_listio_21
+#define LIO_LISTIO_NEW __lio_listio_24
#define LIO_OPCODE_BASE 0
-#endif
-
-#include <shlib-compat.h>
-
-
-/* We need this special structure to handle asynchronous I/O. */
-struct async_waitlist
- {
- unsigned int counter;
- struct sigevent sigev;
- struct waitlist list[0];
- };
-
-
-/* The code in glibc 2.1 to glibc 2.4 issued only one event when all
- requests submitted with lio_listio finished. The existing practice
- is to issue events for the individual requests as well. This is
- what the new code does. */
-#if SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_4)
-# define LIO_MODE(mode) ((mode) & 127)
-# define NO_INDIVIDUAL_EVENT_P(mode) ((mode) & 128)
-#else
-# define LIO_MODE(mode) mode
-# define NO_INDIVIDUAL_EVENT_P(mode) 0
-#endif
-
-
-static int
-lio_listio_internal (int mode, struct aiocb *const list[], int nent,
- struct sigevent *sig)
-{
- struct sigevent defsigev;
- struct requestlist *requests[nent];
- int cnt;
- volatile unsigned int total = 0;
- int result = 0;
-
- if (sig == NULL)
- {
- defsigev.sigev_notify = SIGEV_NONE;
- sig = &defsigev;
- }
-
- /* Request the mutex. */
- pthread_mutex_lock (&__aio_requests_mutex);
-
- /* Now we can enqueue all requests. Since we already acquired the
- mutex the enqueue function need not do this. */
- for (cnt = 0; cnt < nent; ++cnt)
- if (list[cnt] != NULL && list[cnt]->aio_lio_opcode != LIO_NOP)
- {
- if (NO_INDIVIDUAL_EVENT_P (mode))
- list[cnt]->aio_sigevent.sigev_notify = SIGEV_NONE;
-
- requests[cnt] = __aio_enqueue_request ((aiocb_union *) list[cnt],
- (list[cnt]->aio_lio_opcode
- | LIO_OPCODE_BASE));
-
- if (requests[cnt] != NULL)
- /* Successfully enqueued. */
- ++total;
- else
- /* Signal that we've seen an error. `errno' and the error code
- of the aiocb will tell more. */
- result = -1;
- }
- else
- requests[cnt] = NULL;
-
- if (total == 0)
- {
- /* We don't have anything to do except signalling if we work
- asynchronously. */
-
- /* Release the mutex. We do this before raising a signal since the
- signal handler might do a `siglongjmp' and then the mutex is
- locked forever. */
- pthread_mutex_unlock (&__aio_requests_mutex);
-
- if (LIO_MODE (mode) == LIO_NOWAIT)
- __aio_notify_only (sig);
-
- return result;
- }
- else if (LIO_MODE (mode) == LIO_WAIT)
- {
-#ifndef DONT_NEED_AIO_MISC_COND
- pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
- int oldstate;
-#endif
- struct waitlist waitlist[nent];
-
- total = 0;
- for (cnt = 0; cnt < nent; ++cnt)
- {
- assert (requests[cnt] == NULL || list[cnt] != NULL);
-
- if (requests[cnt] != NULL && list[cnt]->aio_lio_opcode != LIO_NOP)
- {
-#ifndef DONT_NEED_AIO_MISC_COND
- waitlist[cnt].cond = &cond;
-#endif
- waitlist[cnt].result = &result;
- waitlist[cnt].next = requests[cnt]->waiting;
- waitlist[cnt].counterp = &total;
- waitlist[cnt].sigevp = NULL;
- requests[cnt]->waiting = &waitlist[cnt];
- ++total;
- }
- }
-
-#ifdef DONT_NEED_AIO_MISC_COND
- AIO_MISC_WAIT (result, total, NULL, 0);
-#else
- /* Since `pthread_cond_wait'/`pthread_cond_timedwait' are cancellation
- points we must be careful. We added entries to the waiting lists
- which we must remove. So defer cancellation for now. */
- pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, &oldstate);
-
- while (total > 0)
- pthread_cond_wait (&cond, &__aio_requests_mutex);
-
- /* Now it's time to restore the cancellation state. */
- pthread_setcancelstate (oldstate, NULL);
-
- /* Release the conditional variable. */
- if (pthread_cond_destroy (&cond) != 0)
- /* This must never happen. */
- abort ();
-#endif
-
- /* If any of the I/O requests failed, return -1 and set errno. */
- if (result != 0)
- {
- __set_errno (result == EINTR ? EINTR : EIO);
- result = -1;
- }
- }
- else
- {
- struct async_waitlist *waitlist;
-
- waitlist = (struct async_waitlist *)
- malloc (sizeof (struct async_waitlist)
- + (nent * sizeof (struct waitlist)));
-
- if (waitlist == NULL)
- {
- __set_errno (EAGAIN);
- result = -1;
- }
- else
- {
- total = 0;
-
- for (cnt = 0; cnt < nent; ++cnt)
- {
- assert (requests[cnt] == NULL || list[cnt] != NULL);
-
- if (requests[cnt] != NULL
- && list[cnt]->aio_lio_opcode != LIO_NOP)
- {
-#ifndef DONT_NEED_AIO_MISC_COND
- waitlist->list[cnt].cond = NULL;
-#endif
- waitlist->list[cnt].result = NULL;
- waitlist->list[cnt].next = requests[cnt]->waiting;
- waitlist->list[cnt].counterp = &waitlist->counter;
- waitlist->list[cnt].sigevp = &waitlist->sigev;
- requests[cnt]->waiting = &waitlist->list[cnt];
- ++total;
- }
- }
-
- waitlist->counter = total;
- waitlist->sigev = *sig;
- }
- }
-
- /* Release the mutex. */
- pthread_mutex_unlock (&__aio_requests_mutex);
-
- return result;
-}
-
-
-#if SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_4)
-int
-attribute_compat_text_section
-__lio_listio_21 (int mode, struct aiocb *const list[], int nent,
- struct sigevent *sig)
-{
- /* Check arguments. */
- if (mode != LIO_WAIT && mode != LIO_NOWAIT)
- {
- __set_errno (EINVAL);
- return -1;
- }
-
- return lio_listio_internal (mode | LIO_NO_INDIVIDUAL_EVENT, list, nent, sig);
-}
-compat_symbol (librt, __lio_listio_21, lio_listio, GLIBC_2_1);
-#endif
-
-
-int
-__lio_listio_item_notify (int mode, struct aiocb *const list[], int nent,
- struct sigevent *sig)
-{
- /* Check arguments. */
- if (mode != LIO_WAIT && mode != LIO_NOWAIT)
- {
- __set_errno (EINVAL);
- return -1;
- }
- return lio_listio_internal (mode, list, nent, sig);
-}
-versioned_symbol (librt, __lio_listio_item_notify, lio_listio, GLIBC_2_4);
+#include "lio_listio-common.c"
diff --git a/rt/lio_listio64.c b/rt/lio_listio64.c
index 111c883a2f..597bf733a2 100644
--- a/rt/lio_listio64.c
+++ b/rt/lio_listio64.c
@@ -1,7 +1,6 @@
-/* Enqueue and list of read or write requests, 64bit offset version.
- Copyright (C) 1997-2021 Free Software Foundation, Inc.
+/* Enqueue and list of read or write requests.
+ Copyright (C) 2021 Free Software Foundation, Inc.
This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -17,17 +16,13 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <aio.h>
-#include <assert.h>
-#include <errno.h>
-#include <stdlib.h>
-#include <unistd.h>
+#include <bits/wordsize.h>
+#if __WORDSIZE != 64
+# define AIOCB aiocb64
+# define LIO_LISTIO lio_listio64
+# define LIO_LISTIO_OLD __lio_listio64_21
+# define LIO_LISTIO_NEW __lio_listio64_24
+# define LIO_OPCODE_BASE 128
-#include <aio_misc.h>
-
-#define lio_listio lio_listio64
-#define __lio_listio_21 __lio_listio64_21
-#define __lio_listio_item_notify __lio_listio64_item_notify
-#define aiocb aiocb64
-#define LIO_OPCODE_BASE 128
-#include <lio_listio.c>
+# include "lio_listio-common.c"
+#endif
diff --git a/sysdeps/unix/sysv/linux/wordsize-64/lio_listio.c b/sysdeps/unix/sysv/linux/wordsize-64/lio_listio.c
deleted file mode 100644
index be9fe7a9c7..0000000000
--- a/sysdeps/unix/sysv/linux/wordsize-64/lio_listio.c
+++ /dev/null
@@ -1,13 +0,0 @@
-#define lio_listio64 __renamed_lio_listio64
-
-#include <rt/lio_listio.c>
-
-#undef lio_listio64
-
-#if SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_4)
-strong_alias (__lio_listio_21, __lio_listio64_21)
-compat_symbol (librt, __lio_listio64_21, lio_listio64, GLIBC_2_1);
-#endif
-
-strong_alias (__lio_listio_item_notify, __lio_listio64_item_notify)
-versioned_symbol (librt, __lio_listio64_item_notify, lio_listio64, GLIBC_2_4);
diff --git a/sysdeps/unix/sysv/linux/wordsize-64/lio_listio64.c b/sysdeps/unix/sysv/linux/wordsize-64/lio_listio64.c
deleted file mode 100644
index 1dabae3692..0000000000
--- a/sysdeps/unix/sysv/linux/wordsize-64/lio_listio64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* Defined in lio_listio.c. */
--
2.31.1
^ permalink raw reply [flat|nested] 72+ messages in thread
* Re: [PATCH 18/34] rt: Rework lio_listio implementation
2021-06-17 18:58 ` [PATCH 18/34] rt: Rework lio_listio implementation Florian Weimer
@ 2021-06-23 20:10 ` Adhemerval Zanella
0 siblings, 0 replies; 72+ messages in thread
From: Adhemerval Zanella @ 2021-06-23 20:10 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 17/06/2021 15:58, Florian Weimer via Libc-alpha wrote:
> Move the common code into rt/lio_listio-common.c and include
> the file in both rt/lio_listio.c and rt/lio_listio64.c. The common
> code automatically defines both public symbols for __WORDSIZE == 64.
LGTM, with a small nit below.
Reviewed-by: Adhemerva Zanella <adhemerval.zanella@linaro.org>
> ---
> rt/lio_listio-common.c | 275 ++++++++++++++++++
> rt/lio_listio.c | 235 +--------------
> rt/lio_listio64.c | 27 +-
> .../unix/sysv/linux/wordsize-64/lio_listio.c | 13 -
> .../sysv/linux/wordsize-64/lio_listio64.c | 1 -
> 5 files changed, 292 insertions(+), 259 deletions(-)
> create mode 100644 rt/lio_listio-common.c
> delete mode 100644 sysdeps/unix/sysv/linux/wordsize-64/lio_listio.c
> delete mode 100644 sysdeps/unix/sysv/linux/wordsize-64/lio_listio64.c
>
> diff --git a/rt/lio_listio-common.c b/rt/lio_listio-common.c
> new file mode 100644
> index 0000000000..a85753823f
> --- /dev/null
> +++ b/rt/lio_listio-common.c
> @@ -0,0 +1,275 @@
> +/* Enqueue and list of read or write requests. Common code template.
> + Copyright (C) 1997-2021 Free Software Foundation, Inc.
> + This file is part of the GNU C Library.
> + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
> +
> + 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/>. */
> +
> +/* The following macros must be defined before including this file:
> +
> + LIO_LISTIO The public symbol (lio_listio or lio_listio64).
> + AIOCB Struct tag used by LIO_LISTIO (aiocb or aiocb64).
> + LIO_LISTIO_OLD The internal symbol for the compat implementation.
> + LIO_LISTIO_NEW The internal symbol for the current implementation.
> + LIO_OPCODE_BASE Opcode shift for 64-bit version with 32-bit word size.
> +
> + For __WORDSIZE == 64, LIO_LISTIO must always be lio_listio, and
> + lio_listio64 is automatically defined as well. */
> +
> +#include <bits/wordsize.h>
> +#if __WORDSIZE == 64
> +/* We use an UGLY hack to prevent gcc from finding us cheating. The
> + implementation of lio_listio and lio_listio64 are identical and so
> + we want to avoid code duplication by using aliases. But gcc sees
> + the different parameter lists and prints a warning. We define here
> + a function so that lio_listio64 has no prototype. */
> +# define lio_listio64 XXX
> +# include <aio.h>
> +/* And undo the hack. */
> +# undef lio_listio64
> +#else
> +# include <aio.h>
> +#endif
> +
> +#include <assert.h>
> +#include <errno.h>
> +#include <stdlib.h>
> +#include <unistd.h>
> +
> +#include <aio_misc.h>
> +
> +#include <shlib-compat.h>
> +
> +
> +/* We need this special structure to handle asynchronous I/O. */
> +struct async_waitlist
> + {
> + unsigned int counter;
> + struct sigevent sigev;
> + struct waitlist list[0];
> + };
> +
> +
> +/* The code in glibc 2.1 to glibc 2.4 issued only one event when all
> + requests submitted with lio_listio finished. The existing practice
> + is to issue events for the individual requests as well. This is
> + what the new code does. */
> +#if SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_4)
> +# define LIO_MODE(mode) ((mode) & 127)
> +# define NO_INDIVIDUAL_EVENT_P(mode) ((mode) & 128)
> +#else
> +# define LIO_MODE(mode) mode
> +# define NO_INDIVIDUAL_EVENT_P(mode) 0
> +#endif
> +
> +
> +static int
> +lio_listio_internal (int mode, struct AIOCB *const list[], int nent,
> + struct sigevent *sig)
> +{
> + struct sigevent defsigev;
> + struct requestlist *requests[nent];
> + int cnt;
> + volatile unsigned int total = 0;
> + int result = 0;
> +
> + if (sig == NULL)
> + {
> + defsigev.sigev_notify = SIGEV_NONE;
> + sig = &defsigev;
> + }
> +
> + /* Request the mutex. */
> + pthread_mutex_lock (&__aio_requests_mutex);
> +
> + /* Now we can enqueue all requests. Since we already acquired the
> + mutex the enqueue function need not do this. */
> + for (cnt = 0; cnt < nent; ++cnt)
> + if (list[cnt] != NULL && list[cnt]->aio_lio_opcode != LIO_NOP)
> + {
> + if (NO_INDIVIDUAL_EVENT_P (mode))
> + list[cnt]->aio_sigevent.sigev_notify = SIGEV_NONE;
> +
> + requests[cnt] = __aio_enqueue_request ((aiocb_union *) list[cnt],
> + (list[cnt]->aio_lio_opcode
> + | LIO_OPCODE_BASE));
> +
> + if (requests[cnt] != NULL)
> + /* Successfully enqueued. */
> + ++total;
> + else
> + /* Signal that we've seen an error. `errno' and the error code
> + of the aiocb will tell more. */
> + result = -1;
> + }
> + else
> + requests[cnt] = NULL;
> +
> + if (total == 0)
> + {
> + /* We don't have anything to do except signalling if we work
> + asynchronously. */
> +
> + /* Release the mutex. We do this before raising a signal since the
> + signal handler might do a `siglongjmp' and then the mutex is
> + locked forever. */
> + pthread_mutex_unlock (&__aio_requests_mutex);
> +
> + if (LIO_MODE (mode) == LIO_NOWAIT)
> + __aio_notify_only (sig);
> +
> + return result;
> + }
> + else if (LIO_MODE (mode) == LIO_WAIT)
> + {
> +#ifndef DONT_NEED_AIO_MISC_COND
> + pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
> + int oldstate;
> +#endif
> + struct waitlist waitlist[nent];
> +
> + total = 0;
> + for (cnt = 0; cnt < nent; ++cnt)
> + {
> + assert (requests[cnt] == NULL || list[cnt] != NULL);
> +
> + if (requests[cnt] != NULL && list[cnt]->aio_lio_opcode != LIO_NOP)
> + {
> +#ifndef DONT_NEED_AIO_MISC_COND
> + waitlist[cnt].cond = &cond;
> +#endif
> + waitlist[cnt].result = &result;
> + waitlist[cnt].next = requests[cnt]->waiting;
> + waitlist[cnt].counterp = &total;
> + waitlist[cnt].sigevp = NULL;
> + requests[cnt]->waiting = &waitlist[cnt];
> + ++total;
> + }
> + }
> +
> +#ifdef DONT_NEED_AIO_MISC_COND
> + AIO_MISC_WAIT (result, total, NULL, 0);
> +#else
> + /* Since `pthread_cond_wait'/`pthread_cond_timedwait' are cancellation
> + points we must be careful. We added entries to the waiting lists
> + which we must remove. So defer cancellation for now. */
> + pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, &oldstate);
> +
> + while (total > 0)
> + pthread_cond_wait (&cond, &__aio_requests_mutex);
> +
> + /* Now it's time to restore the cancellation state. */
> + pthread_setcancelstate (oldstate, NULL);
> +
> + /* Release the conditional variable. */
> + if (pthread_cond_destroy (&cond) != 0)
> + /* This must never happen. */
> + abort ();
> +#endif
> +
> + /* If any of the I/O requests failed, return -1 and set errno. */
> + if (result != 0)
> + {
> + __set_errno (result == EINTR ? EINTR : EIO);
> + result = -1;
> + }
> + }
> + else
> + {
> + struct async_waitlist *waitlist;
> +
> + waitlist = (struct async_waitlist *)
> + malloc (sizeof (struct async_waitlist)
> + + (nent * sizeof (struct waitlist)));
> +
> + if (waitlist == NULL)
> + {
> + __set_errno (EAGAIN);
> + result = -1;
> + }
> + else
> + {
> + total = 0;
> +
> + for (cnt = 0; cnt < nent; ++cnt)
> + {
> + assert (requests[cnt] == NULL || list[cnt] != NULL);
> +
> + if (requests[cnt] != NULL
> + && list[cnt]->aio_lio_opcode != LIO_NOP)
> + {
> +#ifndef DONT_NEED_AIO_MISC_COND
> + waitlist->list[cnt].cond = NULL;
> +#endif
> + waitlist->list[cnt].result = NULL;
> + waitlist->list[cnt].next = requests[cnt]->waiting;
> + waitlist->list[cnt].counterp = &waitlist->counter;
> + waitlist->list[cnt].sigevp = &waitlist->sigev;
> + requests[cnt]->waiting = &waitlist->list[cnt];
> + ++total;
> + }
> + }
> +
> + waitlist->counter = total;
> + waitlist->sigev = *sig;
> + }
> + }
> +
> + /* Release the mutex. */
> + pthread_mutex_unlock (&__aio_requests_mutex);
> +
> + return result;
> +}
> +
> +
> +#if SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_4)
> +int
> +attribute_compat_text_section
> +LIO_LISTIO_OLD (int mode, struct AIOCB *const list[], int nent,
> + struct sigevent *sig)
> +{
> + /* Check arguments. */
> + if (mode != LIO_WAIT && mode != LIO_NOWAIT)
> + {
> + __set_errno (EINVAL);
> + return -1;
> + }
> +
> + return lio_listio_internal (mode | LIO_NO_INDIVIDUAL_EVENT, list, nent, sig);
> +}
> +compat_symbol (librt, LIO_LISTIO_OLD, LIO_LISTIO, GLIBC_2_1);
> +# if __WORDSIZE == 64
> +compat_symbol (librt, LIO_LISTIO_OLD, lio_listio64, GLIBC_2_1);
> +# endif
> +#endif /* SHLIB_COMPAT */
> +
> +
> +int
> +LIO_LISTIO_NEW (int mode, struct AIOCB *const list[], int nent,
> + struct sigevent *sig)
> +{
> + /* Check arguments. */
> + if (mode != LIO_WAIT && mode != LIO_NOWAIT)
> + {
> + __set_errno (EINVAL);
> + return -1;
> + }
> +
> + return lio_listio_internal (mode, list, nent, sig);
> +}
> +versioned_symbol (librt, LIO_LISTIO_NEW, LIO_LISTIO, GLIBC_2_4);
> +#if __WORDSIZE == 64
> +versioned_symbol (librt, LIO_LISTIO_NEW, lio_listio64, GLIBC_2_4);
> +#endif
Ok.
> diff --git a/rt/lio_listio.c b/rt/lio_listio.c
> index 2cab3c2254..bcc3bb1393 100644
> --- a/rt/lio_listio.c
> +++ b/rt/lio_listio.c
> @@ -1,7 +1,6 @@
> /* Enqueue and list of read or write requests.
> - Copyright (C) 1997-2021 Free Software Foundation, Inc.
> + Copyright (C) 2021 Free Software Foundation, Inc.
> This file is part of the GNU C Library.
> - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
>
> The GNU C Library is free software; you can redistribute it and/or
> modify it under the terms of the GNU Lesser General Public
> @@ -17,232 +16,10 @@
> License along with the GNU C Library; if not, see
> <https://www.gnu.org/licenses/>. */
>
> -#ifndef lio_listio
> -#include <aio.h>
> -#include <assert.h>
> -#include <errno.h>
> -#include <stdlib.h>
> -#include <unistd.h>
> -
> -#include <aio_misc.h>
> -
> +#define LIO_LISTIO lio_listio
> +#define AIOCB aiocb
> +#define LIO_LISTIO_OLD __lio_listio_21
> +#define LIO_LISTIO_NEW __lio_listio_24
> #define LIO_OPCODE_BASE 0
> -#endif
> -
> -#include <shlib-compat.h>
> -
> -
> -/* We need this special structure to handle asynchronous I/O. */
> -struct async_waitlist
> - {
> - unsigned int counter;
> - struct sigevent sigev;
> - struct waitlist list[0];
> - };
> -
> -
> -/* The code in glibc 2.1 to glibc 2.4 issued only one event when all
> - requests submitted with lio_listio finished. The existing practice
> - is to issue events for the individual requests as well. This is
> - what the new code does. */
> -#if SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_4)
> -# define LIO_MODE(mode) ((mode) & 127)
> -# define NO_INDIVIDUAL_EVENT_P(mode) ((mode) & 128)
> -#else
> -# define LIO_MODE(mode) mode
> -# define NO_INDIVIDUAL_EVENT_P(mode) 0
> -#endif
> -
> -
> -static int
> -lio_listio_internal (int mode, struct aiocb *const list[], int nent,
> - struct sigevent *sig)
> -{
> - struct sigevent defsigev;
> - struct requestlist *requests[nent];
> - int cnt;
> - volatile unsigned int total = 0;
> - int result = 0;
> -
> - if (sig == NULL)
> - {
> - defsigev.sigev_notify = SIGEV_NONE;
> - sig = &defsigev;
> - }
> -
> - /* Request the mutex. */
> - pthread_mutex_lock (&__aio_requests_mutex);
> -
> - /* Now we can enqueue all requests. Since we already acquired the
> - mutex the enqueue function need not do this. */
> - for (cnt = 0; cnt < nent; ++cnt)
> - if (list[cnt] != NULL && list[cnt]->aio_lio_opcode != LIO_NOP)
> - {
> - if (NO_INDIVIDUAL_EVENT_P (mode))
> - list[cnt]->aio_sigevent.sigev_notify = SIGEV_NONE;
> -
> - requests[cnt] = __aio_enqueue_request ((aiocb_union *) list[cnt],
> - (list[cnt]->aio_lio_opcode
> - | LIO_OPCODE_BASE));
> -
> - if (requests[cnt] != NULL)
> - /* Successfully enqueued. */
> - ++total;
> - else
> - /* Signal that we've seen an error. `errno' and the error code
> - of the aiocb will tell more. */
> - result = -1;
> - }
> - else
> - requests[cnt] = NULL;
> -
> - if (total == 0)
> - {
> - /* We don't have anything to do except signalling if we work
> - asynchronously. */
> -
> - /* Release the mutex. We do this before raising a signal since the
> - signal handler might do a `siglongjmp' and then the mutex is
> - locked forever. */
> - pthread_mutex_unlock (&__aio_requests_mutex);
> -
> - if (LIO_MODE (mode) == LIO_NOWAIT)
> - __aio_notify_only (sig);
> -
> - return result;
> - }
> - else if (LIO_MODE (mode) == LIO_WAIT)
> - {
> -#ifndef DONT_NEED_AIO_MISC_COND
> - pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
> - int oldstate;
> -#endif
> - struct waitlist waitlist[nent];
> -
> - total = 0;
> - for (cnt = 0; cnt < nent; ++cnt)
> - {
> - assert (requests[cnt] == NULL || list[cnt] != NULL);
> -
> - if (requests[cnt] != NULL && list[cnt]->aio_lio_opcode != LIO_NOP)
> - {
> -#ifndef DONT_NEED_AIO_MISC_COND
> - waitlist[cnt].cond = &cond;
> -#endif
> - waitlist[cnt].result = &result;
> - waitlist[cnt].next = requests[cnt]->waiting;
> - waitlist[cnt].counterp = &total;
> - waitlist[cnt].sigevp = NULL;
> - requests[cnt]->waiting = &waitlist[cnt];
> - ++total;
> - }
> - }
> -
> -#ifdef DONT_NEED_AIO_MISC_COND
> - AIO_MISC_WAIT (result, total, NULL, 0);
> -#else
> - /* Since `pthread_cond_wait'/`pthread_cond_timedwait' are cancellation
> - points we must be careful. We added entries to the waiting lists
> - which we must remove. So defer cancellation for now. */
> - pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, &oldstate);
> -
> - while (total > 0)
> - pthread_cond_wait (&cond, &__aio_requests_mutex);
> -
> - /* Now it's time to restore the cancellation state. */
> - pthread_setcancelstate (oldstate, NULL);
> -
> - /* Release the conditional variable. */
> - if (pthread_cond_destroy (&cond) != 0)
> - /* This must never happen. */
> - abort ();
> -#endif
> -
> - /* If any of the I/O requests failed, return -1 and set errno. */
> - if (result != 0)
> - {
> - __set_errno (result == EINTR ? EINTR : EIO);
> - result = -1;
> - }
> - }
> - else
> - {
> - struct async_waitlist *waitlist;
> -
> - waitlist = (struct async_waitlist *)
> - malloc (sizeof (struct async_waitlist)
> - + (nent * sizeof (struct waitlist)));
> -
> - if (waitlist == NULL)
> - {
> - __set_errno (EAGAIN);
> - result = -1;
> - }
> - else
> - {
> - total = 0;
> -
> - for (cnt = 0; cnt < nent; ++cnt)
> - {
> - assert (requests[cnt] == NULL || list[cnt] != NULL);
> -
> - if (requests[cnt] != NULL
> - && list[cnt]->aio_lio_opcode != LIO_NOP)
> - {
> -#ifndef DONT_NEED_AIO_MISC_COND
> - waitlist->list[cnt].cond = NULL;
> -#endif
> - waitlist->list[cnt].result = NULL;
> - waitlist->list[cnt].next = requests[cnt]->waiting;
> - waitlist->list[cnt].counterp = &waitlist->counter;
> - waitlist->list[cnt].sigevp = &waitlist->sigev;
> - requests[cnt]->waiting = &waitlist->list[cnt];
> - ++total;
> - }
> - }
> -
> - waitlist->counter = total;
> - waitlist->sigev = *sig;
> - }
> - }
> -
> - /* Release the mutex. */
> - pthread_mutex_unlock (&__aio_requests_mutex);
> -
> - return result;
> -}
> -
> -
> -#if SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_4)
> -int
> -attribute_compat_text_section
> -__lio_listio_21 (int mode, struct aiocb *const list[], int nent,
> - struct sigevent *sig)
> -{
> - /* Check arguments. */
> - if (mode != LIO_WAIT && mode != LIO_NOWAIT)
> - {
> - __set_errno (EINVAL);
> - return -1;
> - }
> -
> - return lio_listio_internal (mode | LIO_NO_INDIVIDUAL_EVENT, list, nent, sig);
> -}
> -compat_symbol (librt, __lio_listio_21, lio_listio, GLIBC_2_1);
> -#endif
> -
> -
> -int
> -__lio_listio_item_notify (int mode, struct aiocb *const list[], int nent,
> - struct sigevent *sig)
> -{
> - /* Check arguments. */
> - if (mode != LIO_WAIT && mode != LIO_NOWAIT)
> - {
> - __set_errno (EINVAL);
> - return -1;
> - }
>
> - return lio_listio_internal (mode, list, nent, sig);
> -}
> -versioned_symbol (librt, __lio_listio_item_notify, lio_listio, GLIBC_2_4);
> +#include "lio_listio-common.c"
Ok, but I would prefer to include the full path (<rt/lio_listio-common.c>).
> diff --git a/rt/lio_listio64.c b/rt/lio_listio64.c
> index 111c883a2f..597bf733a2 100644
> --- a/rt/lio_listio64.c
> +++ b/rt/lio_listio64.c
> @@ -1,7 +1,6 @@
> -/* Enqueue and list of read or write requests, 64bit offset version.
> - Copyright (C) 1997-2021 Free Software Foundation, Inc.
> +/* Enqueue and list of read or write requests.
> + Copyright (C) 2021 Free Software Foundation, Inc.
> This file is part of the GNU C Library.
> - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
>
> The GNU C Library is free software; you can redistribute it and/or
> modify it under the terms of the GNU Lesser General Public
> @@ -17,17 +16,13 @@
> License along with the GNU C Library; if not, see
> <https://www.gnu.org/licenses/>. */
>
> -#include <aio.h>
> -#include <assert.h>
> -#include <errno.h>
> -#include <stdlib.h>
> -#include <unistd.h>
> +#include <bits/wordsize.h>
> +#if __WORDSIZE != 64
> +# define AIOCB aiocb64
> +# define LIO_LISTIO lio_listio64
> +# define LIO_LISTIO_OLD __lio_listio64_21
> +# define LIO_LISTIO_NEW __lio_listio64_24
> +# define LIO_OPCODE_BASE 128
>
> -#include <aio_misc.h>
> -
> -#define lio_listio lio_listio64
> -#define __lio_listio_21 __lio_listio64_21
> -#define __lio_listio_item_notify __lio_listio64_item_notify
> -#define aiocb aiocb64
> -#define LIO_OPCODE_BASE 128
> -#include <lio_listio.c>
> +# include "lio_listio-common.c"
> +#endif
Ok.
> diff --git a/sysdeps/unix/sysv/linux/wordsize-64/lio_listio.c b/sysdeps/unix/sysv/linux/wordsize-64/lio_listio.c
> deleted file mode 100644
> index be9fe7a9c7..0000000000
> --- a/sysdeps/unix/sysv/linux/wordsize-64/lio_listio.c
> +++ /dev/null
> @@ -1,13 +0,0 @@
> -#define lio_listio64 __renamed_lio_listio64
> -
> -#include <rt/lio_listio.c>
> -
> -#undef lio_listio64
> -
> -#if SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_4)
> -strong_alias (__lio_listio_21, __lio_listio64_21)
> -compat_symbol (librt, __lio_listio64_21, lio_listio64, GLIBC_2_1);
> -#endif
> -
> -strong_alias (__lio_listio_item_notify, __lio_listio64_item_notify)
> -versioned_symbol (librt, __lio_listio64_item_notify, lio_listio64, GLIBC_2_4);
> diff --git a/sysdeps/unix/sysv/linux/wordsize-64/lio_listio64.c b/sysdeps/unix/sysv/linux/wordsize-64/lio_listio64.c
> deleted file mode 100644
> index 1dabae3692..0000000000
> --- a/sysdeps/unix/sysv/linux/wordsize-64/lio_listio64.c
> +++ /dev/null
> @@ -1 +0,0 @@
> -/* Defined in lio_listio.c. */
>
Ok.
^ permalink raw reply [flat|nested] 72+ messages in thread
* [PATCH 19/34] Linux: Move lio_listio, lio_listio64 from librt to libc
2021-06-17 18:56 [PATCH v2 00/34] Move librt into libc Florian Weimer
` (17 preceding siblings ...)
2021-06-17 18:58 ` [PATCH 18/34] rt: Rework lio_listio implementation Florian Weimer
@ 2021-06-17 18:58 ` Florian Weimer
2021-06-23 20:12 ` Adhemerval Zanella
2021-06-17 18:58 ` [PATCH 20/34] Linux: Move mq_close " Florian Weimer
` (15 subsequent siblings)
34 siblings, 1 reply; 72+ messages in thread
From: Florian Weimer @ 2021-06-17 18:58 UTC (permalink / raw)
To: libc-alpha
The symbols were moved using scripts/move-symbol-to-libc.py.
Placeholder symbols are needed on some architectures, to keep the
GLIBC_2.1 and GLIBC_2.4 symbol versions around.
---
rt/Makefile | 4 +--
rt/Versions | 20 +++++++++++--
rt/librt-compat.c | 12 ++++++++
rt/lio_listio-common.c | 29 ++++++++++++++-----
sysdeps/unix/sysv/linux/aarch64/libc.abilist | 4 +++
sysdeps/unix/sysv/linux/aarch64/librt.abilist | 2 --
sysdeps/unix/sysv/linux/alpha/libc.abilist | 6 ++++
sysdeps/unix/sysv/linux/alpha/librt.abilist | 6 ++--
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 | 6 ++++
sysdeps/unix/sysv/linux/hppa/librt.abilist | 6 ++--
sysdeps/unix/sysv/linux/i386/libc.abilist | 6 ++++
sysdeps/unix/sysv/linux/i386/librt.abilist | 6 ++--
sysdeps/unix/sysv/linux/ia64/libc.abilist | 6 ++++
sysdeps/unix/sysv/linux/ia64/librt.abilist | 6 ++--
.../sysv/linux/m68k/coldfire/libc.abilist | 4 +++
.../sysv/linux/m68k/coldfire/librt.abilist | 2 --
.../unix/sysv/linux/m68k/m680x0/libc.abilist | 6 ++++
.../unix/sysv/linux/m68k/m680x0/librt.abilist | 6 ++--
.../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 | 6 ++++
.../unix/sysv/linux/mips/mips32/librt.abilist | 5 +---
.../sysv/linux/mips/mips32/nofpu/libc.abilist | 6 ++++
.../sysv/linux/mips/mips64/n32/libc.abilist | 6 ++++
.../sysv/linux/mips/mips64/n32/librt.abilist | 5 +---
.../sysv/linux/mips/mips64/n64/libc.abilist | 6 ++++
.../sysv/linux/mips/mips64/n64/librt.abilist | 5 +---
sysdeps/unix/sysv/linux/nios2/libc.abilist | 4 +++
sysdeps/unix/sysv/linux/nios2/librt.abilist | 2 --
.../linux/powerpc/powerpc32/fpu/libc.abilist | 6 ++++
.../linux/powerpc/powerpc32/librt.abilist | 6 ++--
.../powerpc/powerpc32/nofpu/libc.abilist | 6 ++++
.../linux/powerpc/powerpc64/be/libc.abilist | 6 ++++
.../linux/powerpc/powerpc64/be/librt.abilist | 5 +---
.../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 | 6 ++++
.../sysv/linux/s390/s390-32/librt.abilist | 6 ++--
.../unix/sysv/linux/s390/s390-64/libc.abilist | 6 ++++
.../sysv/linux/s390/s390-64/librt.abilist | 5 +---
sysdeps/unix/sysv/linux/sh/be/libc.abilist | 6 ++++
sysdeps/unix/sysv/linux/sh/be/librt.abilist | 6 ++--
sysdeps/unix/sysv/linux/sh/le/libc.abilist | 6 ++++
sysdeps/unix/sysv/linux/sh/le/librt.abilist | 6 ++--
.../sysv/linux/sparc/sparc32/libc.abilist | 6 ++++
.../sysv/linux/sparc/sparc32/librt.abilist | 6 ++--
.../sysv/linux/sparc/sparc64/libc.abilist | 6 ++++
.../sysv/linux/sparc/sparc64/librt.abilist | 6 ++--
.../unix/sysv/linux/x86_64/64/libc.abilist | 6 ++++
.../unix/sysv/linux/x86_64/64/librt.abilist | 5 +---
.../unix/sysv/linux/x86_64/x32/libc.abilist | 4 +++
.../unix/sysv/linux/x86_64/x32/librt.abilist | 2 --
66 files changed, 248 insertions(+), 105 deletions(-)
diff --git a/rt/Makefile b/rt/Makefile
index 55ebfde457..edeb37fef3 100644
--- a/rt/Makefile
+++ b/rt/Makefile
@@ -30,8 +30,6 @@ routines = \
librt-routines = \
librt-compat \
- lio_listio \
- lio_listio64 \
mq_close \
mq_getattr \
mq_notify \
@@ -63,6 +61,8 @@ $(librt-routines-var) += \
aio_suspend \
aio_write \
aio_write64 \
+ lio_listio \
+ lio_listio64 \
tests := tst-shm tst-timer tst-timer2 \
tst-aio tst-aio64 tst-aio2 tst-aio3 tst-aio4 tst-aio5 tst-aio6 \
diff --git a/rt/Versions b/rt/Versions
index f2b4ced257..0565707456 100644
--- a/rt/Versions
+++ b/rt/Versions
@@ -16,12 +16,20 @@ libc {
aio_suspend64;
aio_write;
aio_write64;
+ lio_listio;
+ lio_listio64;
%endif
}
GLIBC_2.2 {
shm_open;
shm_unlink;
}
+ GLIBC_2.4 {
+%if PTHREAD_IN_LIBC
+ lio_listio;
+ lio_listio64;
+%endif
+ }
GLIBC_2.34 {
%if PTHREAD_IN_LIBC
aio_cancel;
@@ -39,6 +47,8 @@ libc {
aio_suspend64;
aio_write;
aio_write64;
+ lio_listio;
+ lio_listio64;
%endif
shm_open;
shm_unlink;
@@ -59,7 +69,9 @@ libc {
}
librt {
GLIBC_2.1 {
-%if !PTHREAD_IN_LIBC
+%if PTHREAD_IN_LIBC
+ __librt_version_placeholder;
+%else
aio_cancel;
aio_cancel64;
aio_error;
@@ -75,9 +87,9 @@ librt {
aio_suspend64;
aio_write;
aio_write64;
-%endif
lio_listio;
lio_listio64;
+%endif
}
GLIBC_2.2 {
timer_create;
@@ -99,8 +111,12 @@ librt {
mq_unlink;
}
GLIBC_2.4 {
+%if PTHREAD_IN_LIBC
+ __librt_version_placeholder;
+%else
lio_listio;
lio_listio64;
+%endif
}
GLIBC_2.7 {
__mq_open_2;
diff --git a/rt/librt-compat.c b/rt/librt-compat.c
index 7e5f1db940..23c87b0f3e 100644
--- a/rt/librt-compat.c
+++ b/rt/librt-compat.c
@@ -26,4 +26,16 @@ __attribute_used__
__librt_version_placeholder_1 (void)
{
}
+
+# if SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_2)
+compat_symbol (librt, __librt_version_placeholder_1,
+ __librt_version_placeholder, GLIBC_2_1);
+# endif
+
+# if SHLIB_COMPAT (librt, GLIBC_2_4, GLIBC_2_34) \
+ && ABI_librt_GLIBC_2_4 != ABI_librt_GLIBC_2_1
+compat_symbol (librt, __librt_version_placeholder_1,
+ __librt_version_placeholder, GLIBC_2_4);
+# endif
+
#endif
diff --git a/rt/lio_listio-common.c b/rt/lio_listio-common.c
index a85753823f..b149a64972 100644
--- a/rt/lio_listio-common.c
+++ b/rt/lio_listio-common.c
@@ -47,6 +47,7 @@
#include <errno.h>
#include <stdlib.h>
#include <unistd.h>
+#include <pthreadP.h>
#include <aio_misc.h>
@@ -92,7 +93,7 @@ lio_listio_internal (int mode, struct AIOCB *const list[], int nent,
}
/* Request the mutex. */
- pthread_mutex_lock (&__aio_requests_mutex);
+ __pthread_mutex_lock (&__aio_requests_mutex);
/* Now we can enqueue all requests. Since we already acquired the
mutex the enqueue function need not do this. */
@@ -125,7 +126,7 @@ lio_listio_internal (int mode, struct AIOCB *const list[], int nent,
/* Release the mutex. We do this before raising a signal since the
signal handler might do a `siglongjmp' and then the mutex is
locked forever. */
- pthread_mutex_unlock (&__aio_requests_mutex);
+ __pthread_mutex_unlock (&__aio_requests_mutex);
if (LIO_MODE (mode) == LIO_NOWAIT)
__aio_notify_only (sig);
@@ -228,13 +229,13 @@ lio_listio_internal (int mode, struct AIOCB *const list[], int nent,
}
/* Release the mutex. */
- pthread_mutex_unlock (&__aio_requests_mutex);
+ __pthread_mutex_unlock (&__aio_requests_mutex);
return result;
}
-#if SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_4)
+#if OTHER_SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_4)
int
attribute_compat_text_section
LIO_LISTIO_OLD (int mode, struct AIOCB *const list[], int nent,
@@ -253,7 +254,7 @@ compat_symbol (librt, LIO_LISTIO_OLD, LIO_LISTIO, GLIBC_2_1);
# if __WORDSIZE == 64
compat_symbol (librt, LIO_LISTIO_OLD, lio_listio64, GLIBC_2_1);
# endif
-#endif /* SHLIB_COMPAT */
+#endif /* OTHER_SHLIB_COMPAT */
int
@@ -269,7 +270,21 @@ LIO_LISTIO_NEW (int mode, struct AIOCB *const list[], int nent,
return lio_listio_internal (mode, list, nent, sig);
}
+
+#if PTHREAD_IN_LIBC
+versioned_symbol (libc, LIO_LISTIO_NEW, LIO_LISTIO, GLIBC_2_34);
+# if __WORDSIZE == 64
+versioned_symbol (libc, LIO_LISTIO_NEW, lio_listio64, GLIBC_2_34);
+# endif
+# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_4, GLIBC_2_34)
+compat_symbol (librt, LIO_LISTIO_NEW, LIO_LISTIO, GLIBC_2_4);
+# if __WORDSIZE == 64
+compat_symbol (librt, LIO_LISTIO_NEW, lio_listio64, GLIBC_2_4);
+# endif
+# endif /* OTHER_SHLIB_COMPAT */
+#else /* !PTHREAD_IN_LIBC */
versioned_symbol (librt, LIO_LISTIO_NEW, LIO_LISTIO, GLIBC_2_4);
-#if __WORDSIZE == 64
+# if __WORDSIZE == 64
versioned_symbol (librt, LIO_LISTIO_NEW, lio_listio64, GLIBC_2_4);
-#endif
+# endif
+#endif /* !PTHREAD_IN_LIBC */
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 880dc08ffa..18bbe0c86b 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -1268,6 +1268,8 @@ GLIBC_2.17 lfind F
GLIBC_2.17 lgetxattr F
GLIBC_2.17 link F
GLIBC_2.17 linkat F
+GLIBC_2.17 lio_listio F
+GLIBC_2.17 lio_listio64 F
GLIBC_2.17 listen F
GLIBC_2.17 listxattr F
GLIBC_2.17 llabs F
@@ -2395,6 +2397,8 @@ GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
+GLIBC_2.34 lio_listio F
+GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
index 66c645887e..21ca06cf25 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 lio_listio F
-GLIBC_2.17 lio_listio64 F
GLIBC_2.17 mq_close F
GLIBC_2.17 mq_getattr F
GLIBC_2.17 mq_notify F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 45ba500389..a7cea3adda 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -1617,6 +1617,8 @@ GLIBC_2.1 key_get_conv F
GLIBC_2.1 key_secretkey_is_set F
GLIBC_2.1 key_setnet F
GLIBC_2.1 key_setsecret F
+GLIBC_2.1 lio_listio F
+GLIBC_2.1 lio_listio64 F
GLIBC_2.1 lockf64 F
GLIBC_2.1 lseek64 F
GLIBC_2.1 makecontext F
@@ -2490,6 +2492,8 @@ GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
+GLIBC_2.34 lio_listio F
+GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
@@ -2775,6 +2779,8 @@ GLIBC_2.4 isinfl F
GLIBC_2.4 isnanl F
GLIBC_2.4 ldexpl F
GLIBC_2.4 linkat F
+GLIBC_2.4 lio_listio F
+GLIBC_2.4 lio_listio64 F
GLIBC_2.4 mkdirat F
GLIBC_2.4 mkfifoat F
GLIBC_2.4 modfl F
diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
index 89a7344c1c..2ae4408148 100644
--- a/sysdeps/unix/sysv/linux/alpha/librt.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist
@@ -1,5 +1,4 @@
-GLIBC_2.1 lio_listio F
-GLIBC_2.1 lio_listio64 F
+GLIBC_2.1 __librt_version_placeholder F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
@@ -21,6 +20,5 @@ GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
-GLIBC_2.4 lio_listio F
-GLIBC_2.4 lio_listio64 F
+GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __mq_open_2 F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index fdfe20796b..a296bd429d 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1203,6 +1203,8 @@ GLIBC_2.32 lfind F
GLIBC_2.32 lgetxattr F
GLIBC_2.32 link F
GLIBC_2.32 linkat F
+GLIBC_2.32 lio_listio F
+GLIBC_2.32 lio_listio64 F
GLIBC_2.32 listen F
GLIBC_2.32 listxattr F
GLIBC_2.32 llabs F
@@ -2154,6 +2156,8 @@ GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
+GLIBC_2.34 lio_listio F
+GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
index 780fb36a31..86b7d92191 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 lio_listio F
-GLIBC_2.32 lio_listio64 F
GLIBC_2.32 mq_close F
GLIBC_2.32 mq_getattr F
GLIBC_2.32 mq_notify F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 8e6cb9ad9d..5a11201a2c 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -311,6 +311,8 @@ GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
+GLIBC_2.34 lio_listio F
+GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
@@ -1643,6 +1645,8 @@ GLIBC_2.4 lfind F
GLIBC_2.4 lgetxattr F
GLIBC_2.4 link F
GLIBC_2.4 linkat F
+GLIBC_2.4 lio_listio F
+GLIBC_2.4 lio_listio64 F
GLIBC_2.4 listen F
GLIBC_2.4 listxattr F
GLIBC_2.4 llabs F
diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
index 5c655ba14e..17eaad197b 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -2,8 +2,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 lio_listio F
-GLIBC_2.4 lio_listio64 F
GLIBC_2.4 mq_close F
GLIBC_2.4 mq_getattr F
GLIBC_2.4 mq_notify F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 58190af9e0..ef6c2f934d 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -308,6 +308,8 @@ GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
+GLIBC_2.34 lio_listio F
+GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
@@ -1640,6 +1642,8 @@ GLIBC_2.4 lfind F
GLIBC_2.4 lgetxattr F
GLIBC_2.4 link F
GLIBC_2.4 linkat F
+GLIBC_2.4 lio_listio F
+GLIBC_2.4 lio_listio64 F
GLIBC_2.4 listen F
GLIBC_2.4 listxattr F
GLIBC_2.4 llabs F
diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
index 5c655ba14e..17eaad197b 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -2,8 +2,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 lio_listio F
-GLIBC_2.4 lio_listio64 F
GLIBC_2.4 mq_close F
GLIBC_2.4 mq_getattr F
GLIBC_2.4 mq_notify F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 4ebfe66490..ce475d4237 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -1258,6 +1258,8 @@ GLIBC_2.29 lfind F
GLIBC_2.29 lgetxattr F
GLIBC_2.29 link F
GLIBC_2.29 linkat F
+GLIBC_2.29 lio_listio F
+GLIBC_2.29 lio_listio64 F
GLIBC_2.29 listen F
GLIBC_2.29 listxattr F
GLIBC_2.29 llabs F
@@ -2415,6 +2417,8 @@ GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
+GLIBC_2.34 lio_listio F
+GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
index e8bf05dae6..b6dcc61492 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 lio_listio F
-GLIBC_2.29 lio_listio64 F
GLIBC_2.29 mq_close F
GLIBC_2.29 mq_getattr F
GLIBC_2.29 mq_notify F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 685eab4532..734c0b8832 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -20,6 +20,8 @@ GLIBC_2.1 aio_write F
GLIBC_2.1 aio_write64 F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
+GLIBC_2.1 lio_listio F
+GLIBC_2.1 lio_listio64 F
GLIBC_2.10 __cxa_at_quick_exit F
GLIBC_2.10 __posix_getopt F
GLIBC_2.10 accept4 F
@@ -2369,6 +2371,8 @@ GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
+GLIBC_2.34 lio_listio F
+GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
@@ -2545,6 +2549,8 @@ GLIBC_2.4 inotify_add_watch F
GLIBC_2.4 inotify_init F
GLIBC_2.4 inotify_rm_watch F
GLIBC_2.4 linkat F
+GLIBC_2.4 lio_listio F
+GLIBC_2.4 lio_listio64 F
GLIBC_2.4 mkdirat F
GLIBC_2.4 mkfifoat F
GLIBC_2.4 open_wmemstream F
diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
index eb80c67c84..4273983ece 100644
--- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
@@ -1,5 +1,4 @@
-GLIBC_2.1 lio_listio F
-GLIBC_2.1 lio_listio64 F
+GLIBC_2.1 __librt_version_placeholder F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
@@ -19,6 +18,5 @@ 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 lio_listio F
-GLIBC_2.4 lio_listio64 F
+GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __mq_open_2 F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 19b2f11845..796a5678a1 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -1584,6 +1584,8 @@ GLIBC_2.1 key_get_conv F
GLIBC_2.1 key_secretkey_is_set F
GLIBC_2.1 key_setnet F
GLIBC_2.1 key_setsecret F
+GLIBC_2.1 lio_listio F
+GLIBC_2.1 lio_listio64 F
GLIBC_2.1 lockf64 F
GLIBC_2.1 lseek64 F
GLIBC_2.1 makecontext F
@@ -2553,6 +2555,8 @@ GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
+GLIBC_2.34 lio_listio F
+GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
@@ -2729,6 +2733,8 @@ GLIBC_2.4 inotify_add_watch F
GLIBC_2.4 inotify_init F
GLIBC_2.4 inotify_rm_watch F
GLIBC_2.4 linkat F
+GLIBC_2.4 lio_listio F
+GLIBC_2.4 lio_listio64 F
GLIBC_2.4 mkdirat F
GLIBC_2.4 mkfifoat F
GLIBC_2.4 open_wmemstream F
diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
index eb80c67c84..4273983ece 100644
--- a/sysdeps/unix/sysv/linux/i386/librt.abilist
+++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
@@ -1,5 +1,4 @@
-GLIBC_2.1 lio_listio F
-GLIBC_2.1 lio_listio64 F
+GLIBC_2.1 __librt_version_placeholder F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
@@ -19,6 +18,5 @@ 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 lio_listio F
-GLIBC_2.4 lio_listio64 F
+GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __mq_open_2 F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 8d9f6ff3b6..36769154e3 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -20,6 +20,8 @@ GLIBC_2.1 aio_write F
GLIBC_2.1 aio_write64 F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
+GLIBC_2.1 lio_listio F
+GLIBC_2.1 lio_listio64 F
GLIBC_2.10 __cxa_at_quick_exit F
GLIBC_2.10 __posix_getopt F
GLIBC_2.10 accept4 F
@@ -2328,6 +2330,8 @@ GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
+GLIBC_2.34 lio_listio F
+GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
@@ -2504,6 +2508,8 @@ GLIBC_2.4 inotify_add_watch F
GLIBC_2.4 inotify_init F
GLIBC_2.4 inotify_rm_watch F
GLIBC_2.4 linkat F
+GLIBC_2.4 lio_listio F
+GLIBC_2.4 lio_listio64 F
GLIBC_2.4 mkdirat F
GLIBC_2.4 mkfifoat F
GLIBC_2.4 open_wmemstream F
diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
index 1eef73b204..41bcd0064a 100644
--- a/sysdeps/unix/sysv/linux/ia64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/librt.abilist
@@ -1,5 +1,4 @@
-GLIBC_2.1 lio_listio F
-GLIBC_2.1 lio_listio64 F
+GLIBC_2.1 __librt_version_placeholder F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
@@ -20,6 +19,5 @@ GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
-GLIBC_2.4 lio_listio F
-GLIBC_2.4 lio_listio64 F
+GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __mq_open_2 F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 2ab4862211..ace87cf64d 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -312,6 +312,8 @@ GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
+GLIBC_2.34 lio_listio F
+GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
@@ -1627,6 +1629,8 @@ GLIBC_2.4 lfind F
GLIBC_2.4 lgetxattr F
GLIBC_2.4 link F
GLIBC_2.4 linkat F
+GLIBC_2.4 lio_listio F
+GLIBC_2.4 lio_listio64 F
GLIBC_2.4 listen F
GLIBC_2.4 listxattr F
GLIBC_2.4 llabs F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
index 5c655ba14e..17eaad197b 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -2,8 +2,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 lio_listio F
-GLIBC_2.4 lio_listio64 F
GLIBC_2.4 mq_close F
GLIBC_2.4 mq_getattr F
GLIBC_2.4 mq_notify F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index f4ee74ce72..ac56d8aaec 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -1581,6 +1581,8 @@ GLIBC_2.1 key_get_conv F
GLIBC_2.1 key_secretkey_is_set F
GLIBC_2.1 key_setnet F
GLIBC_2.1 key_setsecret F
+GLIBC_2.1 lio_listio F
+GLIBC_2.1 lio_listio64 F
GLIBC_2.1 lockf64 F
GLIBC_2.1 lseek64 F
GLIBC_2.1 makecontext F
@@ -2496,6 +2498,8 @@ GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
+GLIBC_2.34 lio_listio F
+GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
@@ -2672,6 +2676,8 @@ GLIBC_2.4 inotify_add_watch F
GLIBC_2.4 inotify_init F
GLIBC_2.4 inotify_rm_watch F
GLIBC_2.4 linkat F
+GLIBC_2.4 lio_listio F
+GLIBC_2.4 lio_listio64 F
GLIBC_2.4 mkdirat F
GLIBC_2.4 mkfifoat F
GLIBC_2.4 open_wmemstream F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
index eb80c67c84..4273983ece 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
@@ -1,5 +1,4 @@
-GLIBC_2.1 lio_listio F
-GLIBC_2.1 lio_listio64 F
+GLIBC_2.1 __librt_version_placeholder F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
@@ -19,6 +18,5 @@ 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 lio_listio F
-GLIBC_2.4 lio_listio64 F
+GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __mq_open_2 F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index d0dcf88270..8383308b5d 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -1270,6 +1270,8 @@ GLIBC_2.18 lfind F
GLIBC_2.18 lgetxattr F
GLIBC_2.18 link F
GLIBC_2.18 linkat F
+GLIBC_2.18 lio_listio F
+GLIBC_2.18 lio_listio64 F
GLIBC_2.18 listen F
GLIBC_2.18 listxattr F
GLIBC_2.18 llabs F
@@ -2466,6 +2468,8 @@ GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
+GLIBC_2.34 lio_listio F
+GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
index 5a24a449c8..46388b39c0 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 lio_listio F
-GLIBC_2.18 lio_listio64 F
GLIBC_2.18 mq_close F
GLIBC_2.18 mq_getattr F
GLIBC_2.18 mq_notify F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index a5a1b7ddc4..0b3fedbfbb 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -1270,6 +1270,8 @@ GLIBC_2.18 lfind F
GLIBC_2.18 lgetxattr F
GLIBC_2.18 link F
GLIBC_2.18 linkat F
+GLIBC_2.18 lio_listio F
+GLIBC_2.18 lio_listio64 F
GLIBC_2.18 listen F
GLIBC_2.18 listxattr F
GLIBC_2.18 llabs F
@@ -2463,6 +2465,8 @@ GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
+GLIBC_2.34 lio_listio F
+GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
index 5a24a449c8..46388b39c0 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 lio_listio F
-GLIBC_2.18 lio_listio64 F
GLIBC_2.18 mq_close F
GLIBC_2.18 mq_getattr F
GLIBC_2.18 mq_notify F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index a6d55c9639..abcecd4913 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -1819,6 +1819,8 @@ GLIBC_2.2 key_get_conv F
GLIBC_2.2 key_secretkey_is_set F
GLIBC_2.2 key_setnet F
GLIBC_2.2 key_setsecret F
+GLIBC_2.2 lio_listio F
+GLIBC_2.2 lio_listio64 F
GLIBC_2.2 localeconv F
GLIBC_2.2 lockf64 F
GLIBC_2.2 lseek64 F
@@ -2461,6 +2463,8 @@ GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
+GLIBC_2.34 lio_listio F
+GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
@@ -2635,6 +2639,8 @@ GLIBC_2.4 inotify_add_watch F
GLIBC_2.4 inotify_init F
GLIBC_2.4 inotify_rm_watch F
GLIBC_2.4 linkat F
+GLIBC_2.4 lio_listio F
+GLIBC_2.4 lio_listio64 F
GLIBC_2.4 mkdirat F
GLIBC_2.4 mkfifoat F
GLIBC_2.4 open_wmemstream F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
index 1d8e4643b5..d6bf4d5458 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 lio_listio F
-GLIBC_2.2 lio_listio64 F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
@@ -19,6 +17,5 @@ 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 lio_listio F
-GLIBC_2.4 lio_listio64 F
+GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __mq_open_2 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 4f72d3c617..5f5b458364 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -1817,6 +1817,8 @@ GLIBC_2.2 key_get_conv F
GLIBC_2.2 key_secretkey_is_set F
GLIBC_2.2 key_setnet F
GLIBC_2.2 key_setsecret F
+GLIBC_2.2 lio_listio F
+GLIBC_2.2 lio_listio64 F
GLIBC_2.2 localeconv F
GLIBC_2.2 lockf64 F
GLIBC_2.2 lseek64 F
@@ -2459,6 +2461,8 @@ GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
+GLIBC_2.34 lio_listio F
+GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
@@ -2633,6 +2637,8 @@ GLIBC_2.4 inotify_add_watch F
GLIBC_2.4 inotify_init F
GLIBC_2.4 inotify_rm_watch F
GLIBC_2.4 linkat F
+GLIBC_2.4 lio_listio F
+GLIBC_2.4 lio_listio64 F
GLIBC_2.4 mkdirat F
GLIBC_2.4 mkfifoat F
GLIBC_2.4 open_wmemstream F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 216e8fbe03..8d0bafe8c2 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -1818,6 +1818,8 @@ GLIBC_2.2 key_get_conv F
GLIBC_2.2 key_secretkey_is_set F
GLIBC_2.2 key_setnet F
GLIBC_2.2 key_setsecret F
+GLIBC_2.2 lio_listio F
+GLIBC_2.2 lio_listio64 F
GLIBC_2.2 localeconv F
GLIBC_2.2 lockf64 F
GLIBC_2.2 lseek64 F
@@ -2467,6 +2469,8 @@ GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
+GLIBC_2.34 lio_listio F
+GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
@@ -2641,6 +2645,8 @@ GLIBC_2.4 inotify_add_watch F
GLIBC_2.4 inotify_init F
GLIBC_2.4 inotify_rm_watch F
GLIBC_2.4 linkat F
+GLIBC_2.4 lio_listio F
+GLIBC_2.4 lio_listio64 F
GLIBC_2.4 mkdirat F
GLIBC_2.4 mkfifoat F
GLIBC_2.4 open_wmemstream F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
index 1d8e4643b5..d6bf4d5458 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 lio_listio F
-GLIBC_2.2 lio_listio64 F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
@@ -19,6 +17,5 @@ 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 lio_listio F
-GLIBC_2.4 lio_listio64 F
+GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __mq_open_2 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 9671631450..f18bbf6955 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -1814,6 +1814,8 @@ GLIBC_2.2 key_get_conv F
GLIBC_2.2 key_secretkey_is_set F
GLIBC_2.2 key_setnet F
GLIBC_2.2 key_setsecret F
+GLIBC_2.2 lio_listio F
+GLIBC_2.2 lio_listio64 F
GLIBC_2.2 localeconv F
GLIBC_2.2 lockf64 F
GLIBC_2.2 lseek64 F
@@ -2384,6 +2386,8 @@ GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
+GLIBC_2.34 lio_listio F
+GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
@@ -2558,6 +2562,8 @@ GLIBC_2.4 inotify_add_watch F
GLIBC_2.4 inotify_init F
GLIBC_2.4 inotify_rm_watch F
GLIBC_2.4 linkat F
+GLIBC_2.4 lio_listio F
+GLIBC_2.4 lio_listio64 F
GLIBC_2.4 mkdirat F
GLIBC_2.4 mkfifoat F
GLIBC_2.4 open_wmemstream F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
index f2cda0ef51..cb685723d6 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 lio_listio F
-GLIBC_2.2 lio_listio64 F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
@@ -15,6 +13,5 @@ GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
-GLIBC_2.4 lio_listio F
-GLIBC_2.4 lio_listio64 F
+GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __mq_open_2 F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 6d105407dd..676719705b 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -1313,6 +1313,8 @@ GLIBC_2.21 lfind F
GLIBC_2.21 lgetxattr F
GLIBC_2.21 link F
GLIBC_2.21 linkat F
+GLIBC_2.21 lio_listio F
+GLIBC_2.21 lio_listio64 F
GLIBC_2.21 listen F
GLIBC_2.21 listxattr F
GLIBC_2.21 llabs F
@@ -2505,6 +2507,8 @@ GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
+GLIBC_2.34 lio_listio F
+GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
index dc18b0dc39..54780bf8a8 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 lio_listio F
-GLIBC_2.21 lio_listio64 F
GLIBC_2.21 mq_close F
GLIBC_2.21 mq_getattr F
GLIBC_2.21 mq_notify F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 783ce5aa8e..030d6bd5b5 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -1589,6 +1589,8 @@ GLIBC_2.1 key_get_conv F
GLIBC_2.1 key_secretkey_is_set F
GLIBC_2.1 key_setnet F
GLIBC_2.1 key_setsecret F
+GLIBC_2.1 lio_listio F
+GLIBC_2.1 lio_listio64 F
GLIBC_2.1 lockf64 F
GLIBC_2.1 lseek64 F
GLIBC_2.1 makecontext F
@@ -2523,6 +2525,8 @@ GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
+GLIBC_2.34 lio_listio F
+GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
@@ -2808,6 +2812,8 @@ GLIBC_2.4 isinfl F
GLIBC_2.4 isnanl F
GLIBC_2.4 ldexpl F
GLIBC_2.4 linkat F
+GLIBC_2.4 lio_listio F
+GLIBC_2.4 lio_listio64 F
GLIBC_2.4 mkdirat F
GLIBC_2.4 mkfifoat F
GLIBC_2.4 modfl F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
index eb80c67c84..4273983ece 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
@@ -1,5 +1,4 @@
-GLIBC_2.1 lio_listio F
-GLIBC_2.1 lio_listio64 F
+GLIBC_2.1 __librt_version_placeholder F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
@@ -19,6 +18,5 @@ 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 lio_listio F
-GLIBC_2.4 lio_listio64 F
+GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __mq_open_2 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index badcc67295..08f19201da 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -1589,6 +1589,8 @@ GLIBC_2.1 key_get_conv F
GLIBC_2.1 key_secretkey_is_set F
GLIBC_2.1 key_setnet F
GLIBC_2.1 key_setsecret F
+GLIBC_2.1 lio_listio F
+GLIBC_2.1 lio_listio64 F
GLIBC_2.1 lockf64 F
GLIBC_2.1 lseek64 F
GLIBC_2.1 makecontext F
@@ -2556,6 +2558,8 @@ GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
+GLIBC_2.34 lio_listio F
+GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
@@ -2853,6 +2857,8 @@ GLIBC_2.4 isinfl F
GLIBC_2.4 isnanl F
GLIBC_2.4 ldexpl F
GLIBC_2.4 linkat F
+GLIBC_2.4 lio_listio F
+GLIBC_2.4 lio_listio64 F
GLIBC_2.4 mkdirat F
GLIBC_2.4 mkfifoat F
GLIBC_2.4 modfl F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 838b3323f1..6bd167883f 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -1246,6 +1246,8 @@ GLIBC_2.3 ldiv F
GLIBC_2.3 lfind F
GLIBC_2.3 lgetxattr F
GLIBC_2.3 link F
+GLIBC_2.3 lio_listio F
+GLIBC_2.3 lio_listio64 F
GLIBC_2.3 listen F
GLIBC_2.3 listxattr F
GLIBC_2.3 llabs F
@@ -2292,6 +2294,8 @@ GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
+GLIBC_2.34 lio_listio F
+GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
@@ -2577,6 +2581,8 @@ GLIBC_2.4 isinfl F
GLIBC_2.4 isnanl F
GLIBC_2.4 ldexpl F
GLIBC_2.4 linkat F
+GLIBC_2.4 lio_listio F
+GLIBC_2.4 lio_listio64 F
GLIBC_2.4 mkdirat F
GLIBC_2.4 mkfifoat F
GLIBC_2.4 modfl F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
index dcbadb2a1b..9553ec7c29 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 lio_listio F
-GLIBC_2.3 lio_listio64 F
GLIBC_2.3 timer_create F
GLIBC_2.3 timer_delete F
GLIBC_2.3 timer_getoverrun F
@@ -20,6 +18,5 @@ GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
-GLIBC_2.4 lio_listio F
-GLIBC_2.4 lio_listio64 F
+GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __mq_open_2 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index b51ebf0861..62e5ddbca6 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -1356,6 +1356,8 @@ GLIBC_2.17 lfind F
GLIBC_2.17 lgetxattr F
GLIBC_2.17 link F
GLIBC_2.17 linkat F
+GLIBC_2.17 lio_listio F
+GLIBC_2.17 lio_listio64 F
GLIBC_2.17 listen F
GLIBC_2.17 listxattr F
GLIBC_2.17 llabs F
@@ -2591,6 +2593,8 @@ GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
+GLIBC_2.34 lio_listio F
+GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
index 66c645887e..21ca06cf25 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 lio_listio F
-GLIBC_2.17 lio_listio64 F
GLIBC_2.17 mq_close F
GLIBC_2.17 mq_getattr F
GLIBC_2.17 mq_notify F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index caed7efe2b..a05dbdce4e 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1200,6 +1200,8 @@ GLIBC_2.33 lfind F
GLIBC_2.33 lgetxattr F
GLIBC_2.33 link F
GLIBC_2.33 linkat F
+GLIBC_2.33 lio_listio F
+GLIBC_2.33 lio_listio64 F
GLIBC_2.33 listen F
GLIBC_2.33 listxattr F
GLIBC_2.33 llabs F
@@ -2156,6 +2158,8 @@ GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
+GLIBC_2.34 lio_listio F
+GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
index 82f04551d5..46954a5f42 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 lio_listio F
-GLIBC_2.33 lio_listio64 F
GLIBC_2.33 mq_close F
GLIBC_2.33 mq_getattr F
GLIBC_2.33 mq_notify F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index e9574cf0e4..db7cd82676 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -1254,6 +1254,8 @@ GLIBC_2.27 lfind F
GLIBC_2.27 lgetxattr F
GLIBC_2.27 link F
GLIBC_2.27 linkat F
+GLIBC_2.27 lio_listio F
+GLIBC_2.27 lio_listio64 F
GLIBC_2.27 listen F
GLIBC_2.27 listxattr F
GLIBC_2.27 llabs F
@@ -2356,6 +2358,8 @@ GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
+GLIBC_2.34 lio_listio F
+GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
index 044eace5c3..bf73abd7b8 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 lio_listio F
-GLIBC_2.27 lio_listio64 F
GLIBC_2.27 mq_close F
GLIBC_2.27 mq_getattr F
GLIBC_2.27 mq_notify F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 28f002dcd8..a88aa419eb 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -1581,6 +1581,8 @@ GLIBC_2.1 key_get_conv F
GLIBC_2.1 key_secretkey_is_set F
GLIBC_2.1 key_setnet F
GLIBC_2.1 key_setsecret F
+GLIBC_2.1 lio_listio F
+GLIBC_2.1 lio_listio64 F
GLIBC_2.1 lockf64 F
GLIBC_2.1 lseek64 F
GLIBC_2.1 makecontext F
@@ -2521,6 +2523,8 @@ GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
+GLIBC_2.34 lio_listio F
+GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
@@ -2806,6 +2810,8 @@ GLIBC_2.4 isinfl F
GLIBC_2.4 isnanl F
GLIBC_2.4 ldexpl F
GLIBC_2.4 linkat F
+GLIBC_2.4 lio_listio F
+GLIBC_2.4 lio_listio64 F
GLIBC_2.4 mkdirat F
GLIBC_2.4 mkfifoat F
GLIBC_2.4 modfl F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
index eb80c67c84..4273983ece 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
@@ -1,5 +1,4 @@
-GLIBC_2.1 lio_listio F
-GLIBC_2.1 lio_listio64 F
+GLIBC_2.1 __librt_version_placeholder F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
@@ -19,6 +18,5 @@ 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 lio_listio F
-GLIBC_2.4 lio_listio64 F
+GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __mq_open_2 F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 2d6d3fd601..70bc3a8be7 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -1145,6 +1145,8 @@ GLIBC_2.2 ldexpl F
GLIBC_2.2 ldiv F
GLIBC_2.2 lfind F
GLIBC_2.2 link F
+GLIBC_2.2 lio_listio F
+GLIBC_2.2 lio_listio64 F
GLIBC_2.2 listen F
GLIBC_2.2 llabs F
GLIBC_2.2 lldiv F
@@ -2329,6 +2331,8 @@ GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
+GLIBC_2.34 lio_listio F
+GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
@@ -2614,6 +2618,8 @@ GLIBC_2.4 isinfl F
GLIBC_2.4 isnanl F
GLIBC_2.4 ldexpl F
GLIBC_2.4 linkat F
+GLIBC_2.4 lio_listio F
+GLIBC_2.4 lio_listio64 F
GLIBC_2.4 mkdirat F
GLIBC_2.4 mkfifoat F
GLIBC_2.4 modfl F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
index 03aed4d0f7..0ed75b255b 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 lio_listio F
-GLIBC_2.2 lio_listio64 F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
@@ -20,6 +18,5 @@ GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
-GLIBC_2.4 lio_listio F
-GLIBC_2.4 lio_listio64 F
+GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __mq_open_2 F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 327cc0812d..851b8660b4 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -24,6 +24,8 @@ GLIBC_2.1 aio_write F
GLIBC_2.1 aio_write64 F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
+GLIBC_2.1 lio_listio F
+GLIBC_2.1 lio_listio64 F
GLIBC_2.10 __cxa_at_quick_exit F
GLIBC_2.10 __posix_getopt F
GLIBC_2.10 accept4 F
@@ -2376,6 +2378,8 @@ GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
+GLIBC_2.34 lio_listio F
+GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
@@ -2552,6 +2556,8 @@ GLIBC_2.4 inotify_add_watch F
GLIBC_2.4 inotify_init F
GLIBC_2.4 inotify_rm_watch F
GLIBC_2.4 linkat F
+GLIBC_2.4 lio_listio F
+GLIBC_2.4 lio_listio64 F
GLIBC_2.4 mkdirat F
GLIBC_2.4 mkfifoat F
GLIBC_2.4 open_wmemstream F
diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
index eb80c67c84..4273983ece 100644
--- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
@@ -1,5 +1,4 @@
-GLIBC_2.1 lio_listio F
-GLIBC_2.1 lio_listio64 F
+GLIBC_2.1 __librt_version_placeholder F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
@@ -19,6 +18,5 @@ 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 lio_listio F
-GLIBC_2.4 lio_listio64 F
+GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __mq_open_2 F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 4993b24e22..d8a75db6ed 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -24,6 +24,8 @@ GLIBC_2.1 aio_write F
GLIBC_2.1 aio_write64 F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
+GLIBC_2.1 lio_listio F
+GLIBC_2.1 lio_listio64 F
GLIBC_2.10 __cxa_at_quick_exit F
GLIBC_2.10 __posix_getopt F
GLIBC_2.10 accept4 F
@@ -2373,6 +2375,8 @@ GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
+GLIBC_2.34 lio_listio F
+GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
@@ -2549,6 +2553,8 @@ GLIBC_2.4 inotify_add_watch F
GLIBC_2.4 inotify_init F
GLIBC_2.4 inotify_rm_watch F
GLIBC_2.4 linkat F
+GLIBC_2.4 lio_listio F
+GLIBC_2.4 lio_listio64 F
GLIBC_2.4 mkdirat F
GLIBC_2.4 mkfifoat F
GLIBC_2.4 open_wmemstream F
diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
index eb80c67c84..4273983ece 100644
--- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
@@ -1,5 +1,4 @@
-GLIBC_2.1 lio_listio F
-GLIBC_2.1 lio_listio64 F
+GLIBC_2.1 __librt_version_placeholder F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
@@ -19,6 +18,5 @@ 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 lio_listio F
-GLIBC_2.4 lio_listio64 F
+GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __mq_open_2 F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index e48e78079f..853ebccd44 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -1582,6 +1582,8 @@ GLIBC_2.1 key_get_conv F
GLIBC_2.1 key_secretkey_is_set F
GLIBC_2.1 key_setnet F
GLIBC_2.1 key_setsecret F
+GLIBC_2.1 lio_listio F
+GLIBC_2.1 lio_listio64 F
GLIBC_2.1 lockf64 F
GLIBC_2.1 lseek64 F
GLIBC_2.1 makecontext F
@@ -2516,6 +2518,8 @@ GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
+GLIBC_2.34 lio_listio F
+GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
@@ -2827,6 +2831,8 @@ GLIBC_2.4 isinfl F
GLIBC_2.4 isnanl F
GLIBC_2.4 ldexpl F
GLIBC_2.4 linkat F
+GLIBC_2.4 lio_listio F
+GLIBC_2.4 lio_listio64 F
GLIBC_2.4 mkdirat F
GLIBC_2.4 mkfifoat F
GLIBC_2.4 modfl F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
index 3c39a8ba0a..39ae533414 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
@@ -1,5 +1,4 @@
-GLIBC_2.1 lio_listio F
-GLIBC_2.1 lio_listio64 F
+GLIBC_2.1 __librt_version_placeholder F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
@@ -20,6 +19,5 @@ 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 lio_listio F
-GLIBC_2.4 lio_listio64 F
+GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __mq_open_2 F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 85a4dfa37c..52fbd42f3e 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -24,6 +24,8 @@ GLIBC_2.1 aio_write F
GLIBC_2.1 aio_write64 F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
+GLIBC_2.1 lio_listio F
+GLIBC_2.1 lio_listio64 F
GLIBC_2.10 __cxa_at_quick_exit F
GLIBC_2.10 __posix_getopt F
GLIBC_2.10 accept4 F
@@ -2351,6 +2353,8 @@ GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
+GLIBC_2.34 lio_listio F
+GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
@@ -2527,6 +2531,8 @@ GLIBC_2.4 inotify_add_watch F
GLIBC_2.4 inotify_init F
GLIBC_2.4 inotify_rm_watch F
GLIBC_2.4 linkat F
+GLIBC_2.4 lio_listio F
+GLIBC_2.4 lio_listio64 F
GLIBC_2.4 mkdirat F
GLIBC_2.4 mkfifoat F
GLIBC_2.4 open_wmemstream F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
index 89a7344c1c..2ae4408148 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
@@ -1,5 +1,4 @@
-GLIBC_2.1 lio_listio F
-GLIBC_2.1 lio_listio64 F
+GLIBC_2.1 __librt_version_placeholder F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
@@ -21,6 +20,5 @@ GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
-GLIBC_2.4 lio_listio F
-GLIBC_2.4 lio_listio64 F
+GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __mq_open_2 F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index c95b54fad3..4afbd80fe4 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -1138,6 +1138,8 @@ GLIBC_2.2.5 ldexpl F
GLIBC_2.2.5 ldiv F
GLIBC_2.2.5 lfind F
GLIBC_2.2.5 link F
+GLIBC_2.2.5 lio_listio F
+GLIBC_2.2.5 lio_listio64 F
GLIBC_2.2.5 listen F
GLIBC_2.2.5 llabs F
GLIBC_2.2.5 lldiv F
@@ -2307,6 +2309,8 @@ GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
+GLIBC_2.34 lio_listio F
+GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
@@ -2483,6 +2487,8 @@ GLIBC_2.4 inotify_add_watch F
GLIBC_2.4 inotify_init F
GLIBC_2.4 inotify_rm_watch F
GLIBC_2.4 linkat F
+GLIBC_2.4 lio_listio F
+GLIBC_2.4 lio_listio64 F
GLIBC_2.4 mkdirat F
GLIBC_2.4 mkfifoat F
GLIBC_2.4 open_wmemstream F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
index 974a0bf943..c7f2721961 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 lio_listio F
-GLIBC_2.2.5 lio_listio64 F
GLIBC_2.2.5 timer_create F
GLIBC_2.2.5 timer_delete F
GLIBC_2.2.5 timer_getoverrun F
@@ -20,6 +18,5 @@ GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
-GLIBC_2.4 lio_listio F
-GLIBC_2.4 lio_listio64 F
+GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __mq_open_2 F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index c543baf92b..b48d936890 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -1274,6 +1274,8 @@ GLIBC_2.16 lfind F
GLIBC_2.16 lgetxattr F
GLIBC_2.16 link F
GLIBC_2.16 linkat F
+GLIBC_2.16 lio_listio F
+GLIBC_2.16 lio_listio64 F
GLIBC_2.16 listen F
GLIBC_2.16 listxattr F
GLIBC_2.16 llabs F
@@ -2410,6 +2412,8 @@ GLIBC_2.34 dlopen F
GLIBC_2.34 dlsym F
GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
+GLIBC_2.34 lio_listio F
+GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
index 42f733844b..f75c21efc1 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 lio_listio F
-GLIBC_2.16 lio_listio64 F
GLIBC_2.16 mq_close F
GLIBC_2.16 mq_getattr F
GLIBC_2.16 mq_notify F
--
2.31.1
^ permalink raw reply [flat|nested] 72+ messages in thread
* Re: [PATCH 19/34] Linux: Move lio_listio, lio_listio64 from librt to libc
2021-06-17 18:58 ` [PATCH 19/34] Linux: Move lio_listio, lio_listio64 from librt to libc Florian Weimer
@ 2021-06-23 20:12 ` Adhemerval Zanella
0 siblings, 0 replies; 72+ messages in thread
From: Adhemerval Zanella @ 2021-06-23 20:12 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 17/06/2021 15:58, Florian Weimer via Libc-alpha wrote:
> The symbols were moved using scripts/move-symbol-to-libc.py.
> Placeholder symbols are needed on some architectures, to keep the
> GLIBC_2.1 and GLIBC_2.4 symbol versions around.
LGTM, thanks.
Reviewed-by: Adhemerva Zanella <adhemerval.zanella@linaro.org>
> ---
> rt/Makefile | 4 +--
> rt/Versions | 20 +++++++++++--
> rt/librt-compat.c | 12 ++++++++
> rt/lio_listio-common.c | 29 ++++++++++++++-----
> sysdeps/unix/sysv/linux/aarch64/libc.abilist | 4 +++
> sysdeps/unix/sysv/linux/aarch64/librt.abilist | 2 --
> sysdeps/unix/sysv/linux/alpha/libc.abilist | 6 ++++
> sysdeps/unix/sysv/linux/alpha/librt.abilist | 6 ++--
> 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 | 6 ++++
> sysdeps/unix/sysv/linux/hppa/librt.abilist | 6 ++--
> sysdeps/unix/sysv/linux/i386/libc.abilist | 6 ++++
> sysdeps/unix/sysv/linux/i386/librt.abilist | 6 ++--
> sysdeps/unix/sysv/linux/ia64/libc.abilist | 6 ++++
> sysdeps/unix/sysv/linux/ia64/librt.abilist | 6 ++--
> .../sysv/linux/m68k/coldfire/libc.abilist | 4 +++
> .../sysv/linux/m68k/coldfire/librt.abilist | 2 --
> .../unix/sysv/linux/m68k/m680x0/libc.abilist | 6 ++++
> .../unix/sysv/linux/m68k/m680x0/librt.abilist | 6 ++--
> .../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 | 6 ++++
> .../unix/sysv/linux/mips/mips32/librt.abilist | 5 +---
> .../sysv/linux/mips/mips32/nofpu/libc.abilist | 6 ++++
> .../sysv/linux/mips/mips64/n32/libc.abilist | 6 ++++
> .../sysv/linux/mips/mips64/n32/librt.abilist | 5 +---
> .../sysv/linux/mips/mips64/n64/libc.abilist | 6 ++++
> .../sysv/linux/mips/mips64/n64/librt.abilist | 5 +---
> sysdeps/unix/sysv/linux/nios2/libc.abilist | 4 +++
> sysdeps/unix/sysv/linux/nios2/librt.abilist | 2 --
> .../linux/powerpc/powerpc32/fpu/libc.abilist | 6 ++++
> .../linux/powerpc/powerpc32/librt.abilist | 6 ++--
> .../powerpc/powerpc32/nofpu/libc.abilist | 6 ++++
> .../linux/powerpc/powerpc64/be/libc.abilist | 6 ++++
> .../linux/powerpc/powerpc64/be/librt.abilist | 5 +---
> .../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 | 6 ++++
> .../sysv/linux/s390/s390-32/librt.abilist | 6 ++--
> .../unix/sysv/linux/s390/s390-64/libc.abilist | 6 ++++
> .../sysv/linux/s390/s390-64/librt.abilist | 5 +---
> sysdeps/unix/sysv/linux/sh/be/libc.abilist | 6 ++++
> sysdeps/unix/sysv/linux/sh/be/librt.abilist | 6 ++--
> sysdeps/unix/sysv/linux/sh/le/libc.abilist | 6 ++++
> sysdeps/unix/sysv/linux/sh/le/librt.abilist | 6 ++--
> .../sysv/linux/sparc/sparc32/libc.abilist | 6 ++++
> .../sysv/linux/sparc/sparc32/librt.abilist | 6 ++--
> .../sysv/linux/sparc/sparc64/libc.abilist | 6 ++++
> .../sysv/linux/sparc/sparc64/librt.abilist | 6 ++--
> .../unix/sysv/linux/x86_64/64/libc.abilist | 6 ++++
> .../unix/sysv/linux/x86_64/64/librt.abilist | 5 +---
> .../unix/sysv/linux/x86_64/x32/libc.abilist | 4 +++
> .../unix/sysv/linux/x86_64/x32/librt.abilist | 2 --
> 66 files changed, 248 insertions(+), 105 deletions(-)
>
> diff --git a/rt/Makefile b/rt/Makefile
> index 55ebfde457..edeb37fef3 100644
> --- a/rt/Makefile
> +++ b/rt/Makefile
> @@ -30,8 +30,6 @@ routines = \
>
> librt-routines = \
> librt-compat \
> - lio_listio \
> - lio_listio64 \
> mq_close \
> mq_getattr \
> mq_notify \
> @@ -63,6 +61,8 @@ $(librt-routines-var) += \
> aio_suspend \
> aio_write \
> aio_write64 \
> + lio_listio \
> + lio_listio64 \
>
> tests := tst-shm tst-timer tst-timer2 \
> tst-aio tst-aio64 tst-aio2 tst-aio3 tst-aio4 tst-aio5 tst-aio6 \
Ok.
> diff --git a/rt/Versions b/rt/Versions
> index f2b4ced257..0565707456 100644
> --- a/rt/Versions
> +++ b/rt/Versions
> @@ -16,12 +16,20 @@ libc {
> aio_suspend64;
> aio_write;
> aio_write64;
> + lio_listio;
> + lio_listio64;
> %endif
> }
> GLIBC_2.2 {
> shm_open;
> shm_unlink;
> }
> + GLIBC_2.4 {
> +%if PTHREAD_IN_LIBC
> + lio_listio;
> + lio_listio64;
> +%endif
> + }
> GLIBC_2.34 {
> %if PTHREAD_IN_LIBC
> aio_cancel;
> @@ -39,6 +47,8 @@ libc {
> aio_suspend64;
> aio_write;
> aio_write64;
> + lio_listio;
> + lio_listio64;
> %endif
> shm_open;
> shm_unlink;
> @@ -59,7 +69,9 @@ libc {
> }
> librt {
> GLIBC_2.1 {
> -%if !PTHREAD_IN_LIBC
> +%if PTHREAD_IN_LIBC
> + __librt_version_placeholder;
> +%else
> aio_cancel;
> aio_cancel64;
> aio_error;
> @@ -75,9 +87,9 @@ librt {
> aio_suspend64;
> aio_write;
> aio_write64;
> -%endif
> lio_listio;
> lio_listio64;
> +%endif
> }
> GLIBC_2.2 {
> timer_create;
> @@ -99,8 +111,12 @@ librt {
> mq_unlink;
> }
> GLIBC_2.4 {
> +%if PTHREAD_IN_LIBC
> + __librt_version_placeholder;
> +%else
> lio_listio;
> lio_listio64;
> +%endif
> }
> GLIBC_2.7 {
> __mq_open_2;
Ok.
> diff --git a/rt/librt-compat.c b/rt/librt-compat.c
> index 7e5f1db940..23c87b0f3e 100644
> --- a/rt/librt-compat.c
> +++ b/rt/librt-compat.c
> @@ -26,4 +26,16 @@ __attribute_used__
> __librt_version_placeholder_1 (void)
> {
> }
> +
> +# if SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_2)
> +compat_symbol (librt, __librt_version_placeholder_1,
> + __librt_version_placeholder, GLIBC_2_1);
> +# endif
> +
> +# if SHLIB_COMPAT (librt, GLIBC_2_4, GLIBC_2_34) \
> + && ABI_librt_GLIBC_2_4 != ABI_librt_GLIBC_2_1
> +compat_symbol (librt, __librt_version_placeholder_1,
> + __librt_version_placeholder, GLIBC_2_4);
> +# endif
> +
> #endif
Ok.
> diff --git a/rt/lio_listio-common.c b/rt/lio_listio-common.c
> index a85753823f..b149a64972 100644
> --- a/rt/lio_listio-common.c
> +++ b/rt/lio_listio-common.c
> @@ -47,6 +47,7 @@
> #include <errno.h>
> #include <stdlib.h>
> #include <unistd.h>
> +#include <pthreadP.h>
>
> #include <aio_misc.h>
>
> @@ -92,7 +93,7 @@ lio_listio_internal (int mode, struct AIOCB *const list[], int nent,
> }
>
> /* Request the mutex. */
> - pthread_mutex_lock (&__aio_requests_mutex);
> + __pthread_mutex_lock (&__aio_requests_mutex);
>
> /* Now we can enqueue all requests. Since we already acquired the
> mutex the enqueue function need not do this. */
> @@ -125,7 +126,7 @@ lio_listio_internal (int mode, struct AIOCB *const list[], int nent,
> /* Release the mutex. We do this before raising a signal since the
> signal handler might do a `siglongjmp' and then the mutex is
> locked forever. */
> - pthread_mutex_unlock (&__aio_requests_mutex);
> + __pthread_mutex_unlock (&__aio_requests_mutex);
>
> if (LIO_MODE (mode) == LIO_NOWAIT)
> __aio_notify_only (sig);
> @@ -228,13 +229,13 @@ lio_listio_internal (int mode, struct AIOCB *const list[], int nent,
> }
>
> /* Release the mutex. */
> - pthread_mutex_unlock (&__aio_requests_mutex);
> + __pthread_mutex_unlock (&__aio_requests_mutex);
>
> return result;
> }
>
>
> -#if SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_4)
> +#if OTHER_SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_4)
> int
> attribute_compat_text_section
> LIO_LISTIO_OLD (int mode, struct AIOCB *const list[], int nent,
> @@ -253,7 +254,7 @@ compat_symbol (librt, LIO_LISTIO_OLD, LIO_LISTIO, GLIBC_2_1);
> # if __WORDSIZE == 64
> compat_symbol (librt, LIO_LISTIO_OLD, lio_listio64, GLIBC_2_1);
> # endif
> -#endif /* SHLIB_COMPAT */
> +#endif /* OTHER_SHLIB_COMPAT */
>
>
> int
> @@ -269,7 +270,21 @@ LIO_LISTIO_NEW (int mode, struct AIOCB *const list[], int nent,
>
> return lio_listio_internal (mode, list, nent, sig);
> }
> +
> +#if PTHREAD_IN_LIBC
> +versioned_symbol (libc, LIO_LISTIO_NEW, LIO_LISTIO, GLIBC_2_34);
> +# if __WORDSIZE == 64
> +versioned_symbol (libc, LIO_LISTIO_NEW, lio_listio64, GLIBC_2_34);
> +# endif
> +# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_4, GLIBC_2_34)
> +compat_symbol (librt, LIO_LISTIO_NEW, LIO_LISTIO, GLIBC_2_4);
> +# if __WORDSIZE == 64
> +compat_symbol (librt, LIO_LISTIO_NEW, lio_listio64, GLIBC_2_4);
> +# endif
> +# endif /* OTHER_SHLIB_COMPAT */
> +#else /* !PTHREAD_IN_LIBC */
> versioned_symbol (librt, LIO_LISTIO_NEW, LIO_LISTIO, GLIBC_2_4);
> -#if __WORDSIZE == 64
> +# if __WORDSIZE == 64
> versioned_symbol (librt, LIO_LISTIO_NEW, lio_listio64, GLIBC_2_4);
> -#endif
> +# endif
> +#endif /* !PTHREAD_IN_LIBC */
Ok.
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index 880dc08ffa..18bbe0c86b 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -1268,6 +1268,8 @@ GLIBC_2.17 lfind F
> GLIBC_2.17 lgetxattr F
> GLIBC_2.17 link F
> GLIBC_2.17 linkat F
> +GLIBC_2.17 lio_listio F
> +GLIBC_2.17 lio_listio64 F
> GLIBC_2.17 listen F
> GLIBC_2.17 listxattr F
> GLIBC_2.17 llabs F
> @@ -2395,6 +2397,8 @@ GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> +GLIBC_2.34 lio_listio F
> +GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> index 66c645887e..21ca06cf25 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 lio_listio F
> -GLIBC_2.17 lio_listio64 F
> GLIBC_2.17 mq_close F
> GLIBC_2.17 mq_getattr F
> GLIBC_2.17 mq_notify F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index 45ba500389..a7cea3adda 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -1617,6 +1617,8 @@ GLIBC_2.1 key_get_conv F
> GLIBC_2.1 key_secretkey_is_set F
> GLIBC_2.1 key_setnet F
> GLIBC_2.1 key_setsecret F
> +GLIBC_2.1 lio_listio F
> +GLIBC_2.1 lio_listio64 F
> GLIBC_2.1 lockf64 F
> GLIBC_2.1 lseek64 F
> GLIBC_2.1 makecontext F
> @@ -2490,6 +2492,8 @@ GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> +GLIBC_2.34 lio_listio F
> +GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> @@ -2775,6 +2779,8 @@ GLIBC_2.4 isinfl F
> GLIBC_2.4 isnanl F
> GLIBC_2.4 ldexpl F
> GLIBC_2.4 linkat F
> +GLIBC_2.4 lio_listio F
> +GLIBC_2.4 lio_listio64 F
> GLIBC_2.4 mkdirat F
> GLIBC_2.4 mkfifoat F
> GLIBC_2.4 modfl F
> diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
> index 89a7344c1c..2ae4408148 100644
> --- a/sysdeps/unix/sysv/linux/alpha/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist
> @@ -1,5 +1,4 @@
> -GLIBC_2.1 lio_listio F
> -GLIBC_2.1 lio_listio64 F
> +GLIBC_2.1 __librt_version_placeholder F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> GLIBC_2.2 timer_getoverrun F
> @@ -21,6 +20,5 @@ GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> -GLIBC_2.4 lio_listio F
> -GLIBC_2.4 lio_listio64 F
> +GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __mq_open_2 F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index fdfe20796b..a296bd429d 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -1203,6 +1203,8 @@ GLIBC_2.32 lfind F
> GLIBC_2.32 lgetxattr F
> GLIBC_2.32 link F
> GLIBC_2.32 linkat F
> +GLIBC_2.32 lio_listio F
> +GLIBC_2.32 lio_listio64 F
> GLIBC_2.32 listen F
> GLIBC_2.32 listxattr F
> GLIBC_2.32 llabs F
> @@ -2154,6 +2156,8 @@ GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> +GLIBC_2.34 lio_listio F
> +GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
> index 780fb36a31..86b7d92191 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 lio_listio F
> -GLIBC_2.32 lio_listio64 F
> GLIBC_2.32 mq_close F
> GLIBC_2.32 mq_getattr F
> GLIBC_2.32 mq_notify F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index 8e6cb9ad9d..5a11201a2c 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -311,6 +311,8 @@ GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> +GLIBC_2.34 lio_listio F
> +GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> @@ -1643,6 +1645,8 @@ GLIBC_2.4 lfind F
> GLIBC_2.4 lgetxattr F
> GLIBC_2.4 link F
> GLIBC_2.4 linkat F
> +GLIBC_2.4 lio_listio F
> +GLIBC_2.4 lio_listio64 F
> GLIBC_2.4 listen F
> GLIBC_2.4 listxattr F
> GLIBC_2.4 llabs F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> index 5c655ba14e..17eaad197b 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> @@ -2,8 +2,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 lio_listio F
> -GLIBC_2.4 lio_listio64 F
> GLIBC_2.4 mq_close F
> GLIBC_2.4 mq_getattr F
> GLIBC_2.4 mq_notify F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index 58190af9e0..ef6c2f934d 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -308,6 +308,8 @@ GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> +GLIBC_2.34 lio_listio F
> +GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> @@ -1640,6 +1642,8 @@ GLIBC_2.4 lfind F
> GLIBC_2.4 lgetxattr F
> GLIBC_2.4 link F
> GLIBC_2.4 linkat F
> +GLIBC_2.4 lio_listio F
> +GLIBC_2.4 lio_listio64 F
> GLIBC_2.4 listen F
> GLIBC_2.4 listxattr F
> GLIBC_2.4 llabs F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> index 5c655ba14e..17eaad197b 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> @@ -2,8 +2,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 lio_listio F
> -GLIBC_2.4 lio_listio64 F
> GLIBC_2.4 mq_close F
> GLIBC_2.4 mq_getattr F
> GLIBC_2.4 mq_notify F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index 4ebfe66490..ce475d4237 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -1258,6 +1258,8 @@ GLIBC_2.29 lfind F
> GLIBC_2.29 lgetxattr F
> GLIBC_2.29 link F
> GLIBC_2.29 linkat F
> +GLIBC_2.29 lio_listio F
> +GLIBC_2.29 lio_listio64 F
> GLIBC_2.29 listen F
> GLIBC_2.29 listxattr F
> GLIBC_2.29 llabs F
> @@ -2415,6 +2417,8 @@ GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> +GLIBC_2.34 lio_listio F
> +GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
> index e8bf05dae6..b6dcc61492 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 lio_listio F
> -GLIBC_2.29 lio_listio64 F
> GLIBC_2.29 mq_close F
> GLIBC_2.29 mq_getattr F
> GLIBC_2.29 mq_notify F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index 685eab4532..734c0b8832 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -20,6 +20,8 @@ GLIBC_2.1 aio_write F
> GLIBC_2.1 aio_write64 F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> +GLIBC_2.1 lio_listio F
> +GLIBC_2.1 lio_listio64 F
> GLIBC_2.10 __cxa_at_quick_exit F
> GLIBC_2.10 __posix_getopt F
> GLIBC_2.10 accept4 F
> @@ -2369,6 +2371,8 @@ GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> +GLIBC_2.34 lio_listio F
> +GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> @@ -2545,6 +2549,8 @@ GLIBC_2.4 inotify_add_watch F
> GLIBC_2.4 inotify_init F
> GLIBC_2.4 inotify_rm_watch F
> GLIBC_2.4 linkat F
> +GLIBC_2.4 lio_listio F
> +GLIBC_2.4 lio_listio64 F
> GLIBC_2.4 mkdirat F
> GLIBC_2.4 mkfifoat F
> GLIBC_2.4 open_wmemstream F
> diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
> index eb80c67c84..4273983ece 100644
> --- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
> @@ -1,5 +1,4 @@
> -GLIBC_2.1 lio_listio F
> -GLIBC_2.1 lio_listio64 F
> +GLIBC_2.1 __librt_version_placeholder F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> GLIBC_2.2 timer_getoverrun F
> @@ -19,6 +18,5 @@ 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 lio_listio F
> -GLIBC_2.4 lio_listio64 F
> +GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __mq_open_2 F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index 19b2f11845..796a5678a1 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -1584,6 +1584,8 @@ GLIBC_2.1 key_get_conv F
> GLIBC_2.1 key_secretkey_is_set F
> GLIBC_2.1 key_setnet F
> GLIBC_2.1 key_setsecret F
> +GLIBC_2.1 lio_listio F
> +GLIBC_2.1 lio_listio64 F
> GLIBC_2.1 lockf64 F
> GLIBC_2.1 lseek64 F
> GLIBC_2.1 makecontext F
> @@ -2553,6 +2555,8 @@ GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> +GLIBC_2.34 lio_listio F
> +GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> @@ -2729,6 +2733,8 @@ GLIBC_2.4 inotify_add_watch F
> GLIBC_2.4 inotify_init F
> GLIBC_2.4 inotify_rm_watch F
> GLIBC_2.4 linkat F
> +GLIBC_2.4 lio_listio F
> +GLIBC_2.4 lio_listio64 F
> GLIBC_2.4 mkdirat F
> GLIBC_2.4 mkfifoat F
> GLIBC_2.4 open_wmemstream F
> diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
> index eb80c67c84..4273983ece 100644
> --- a/sysdeps/unix/sysv/linux/i386/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
> @@ -1,5 +1,4 @@
> -GLIBC_2.1 lio_listio F
> -GLIBC_2.1 lio_listio64 F
> +GLIBC_2.1 __librt_version_placeholder F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> GLIBC_2.2 timer_getoverrun F
> @@ -19,6 +18,5 @@ 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 lio_listio F
> -GLIBC_2.4 lio_listio64 F
> +GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __mq_open_2 F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index 8d9f6ff3b6..36769154e3 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -20,6 +20,8 @@ GLIBC_2.1 aio_write F
> GLIBC_2.1 aio_write64 F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> +GLIBC_2.1 lio_listio F
> +GLIBC_2.1 lio_listio64 F
> GLIBC_2.10 __cxa_at_quick_exit F
> GLIBC_2.10 __posix_getopt F
> GLIBC_2.10 accept4 F
> @@ -2328,6 +2330,8 @@ GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> +GLIBC_2.34 lio_listio F
> +GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> @@ -2504,6 +2508,8 @@ GLIBC_2.4 inotify_add_watch F
> GLIBC_2.4 inotify_init F
> GLIBC_2.4 inotify_rm_watch F
> GLIBC_2.4 linkat F
> +GLIBC_2.4 lio_listio F
> +GLIBC_2.4 lio_listio64 F
> GLIBC_2.4 mkdirat F
> GLIBC_2.4 mkfifoat F
> GLIBC_2.4 open_wmemstream F
> diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
> index 1eef73b204..41bcd0064a 100644
> --- a/sysdeps/unix/sysv/linux/ia64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/librt.abilist
> @@ -1,5 +1,4 @@
> -GLIBC_2.1 lio_listio F
> -GLIBC_2.1 lio_listio64 F
> +GLIBC_2.1 __librt_version_placeholder F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> GLIBC_2.2 timer_getoverrun F
> @@ -20,6 +19,5 @@ GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> -GLIBC_2.4 lio_listio F
> -GLIBC_2.4 lio_listio64 F
> +GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __mq_open_2 F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index 2ab4862211..ace87cf64d 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -312,6 +312,8 @@ GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> +GLIBC_2.34 lio_listio F
> +GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> @@ -1627,6 +1629,8 @@ GLIBC_2.4 lfind F
> GLIBC_2.4 lgetxattr F
> GLIBC_2.4 link F
> GLIBC_2.4 linkat F
> +GLIBC_2.4 lio_listio F
> +GLIBC_2.4 lio_listio64 F
> GLIBC_2.4 listen F
> GLIBC_2.4 listxattr F
> GLIBC_2.4 llabs F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> index 5c655ba14e..17eaad197b 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> @@ -2,8 +2,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 lio_listio F
> -GLIBC_2.4 lio_listio64 F
> GLIBC_2.4 mq_close F
> GLIBC_2.4 mq_getattr F
> GLIBC_2.4 mq_notify F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index f4ee74ce72..ac56d8aaec 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -1581,6 +1581,8 @@ GLIBC_2.1 key_get_conv F
> GLIBC_2.1 key_secretkey_is_set F
> GLIBC_2.1 key_setnet F
> GLIBC_2.1 key_setsecret F
> +GLIBC_2.1 lio_listio F
> +GLIBC_2.1 lio_listio64 F
> GLIBC_2.1 lockf64 F
> GLIBC_2.1 lseek64 F
> GLIBC_2.1 makecontext F
> @@ -2496,6 +2498,8 @@ GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> +GLIBC_2.34 lio_listio F
> +GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> @@ -2672,6 +2676,8 @@ GLIBC_2.4 inotify_add_watch F
> GLIBC_2.4 inotify_init F
> GLIBC_2.4 inotify_rm_watch F
> GLIBC_2.4 linkat F
> +GLIBC_2.4 lio_listio F
> +GLIBC_2.4 lio_listio64 F
> GLIBC_2.4 mkdirat F
> GLIBC_2.4 mkfifoat F
> GLIBC_2.4 open_wmemstream F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> index eb80c67c84..4273983ece 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> @@ -1,5 +1,4 @@
> -GLIBC_2.1 lio_listio F
> -GLIBC_2.1 lio_listio64 F
> +GLIBC_2.1 __librt_version_placeholder F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> GLIBC_2.2 timer_getoverrun F
> @@ -19,6 +18,5 @@ 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 lio_listio F
> -GLIBC_2.4 lio_listio64 F
> +GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __mq_open_2 F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index d0dcf88270..8383308b5d 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -1270,6 +1270,8 @@ GLIBC_2.18 lfind F
> GLIBC_2.18 lgetxattr F
> GLIBC_2.18 link F
> GLIBC_2.18 linkat F
> +GLIBC_2.18 lio_listio F
> +GLIBC_2.18 lio_listio64 F
> GLIBC_2.18 listen F
> GLIBC_2.18 listxattr F
> GLIBC_2.18 llabs F
> @@ -2466,6 +2468,8 @@ GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> +GLIBC_2.34 lio_listio F
> +GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> index 5a24a449c8..46388b39c0 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 lio_listio F
> -GLIBC_2.18 lio_listio64 F
> GLIBC_2.18 mq_close F
> GLIBC_2.18 mq_getattr F
> GLIBC_2.18 mq_notify F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index a5a1b7ddc4..0b3fedbfbb 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -1270,6 +1270,8 @@ GLIBC_2.18 lfind F
> GLIBC_2.18 lgetxattr F
> GLIBC_2.18 link F
> GLIBC_2.18 linkat F
> +GLIBC_2.18 lio_listio F
> +GLIBC_2.18 lio_listio64 F
> GLIBC_2.18 listen F
> GLIBC_2.18 listxattr F
> GLIBC_2.18 llabs F
> @@ -2463,6 +2465,8 @@ GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> +GLIBC_2.34 lio_listio F
> +GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> index 5a24a449c8..46388b39c0 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 lio_listio F
> -GLIBC_2.18 lio_listio64 F
> GLIBC_2.18 mq_close F
> GLIBC_2.18 mq_getattr F
> GLIBC_2.18 mq_notify F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index a6d55c9639..abcecd4913 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -1819,6 +1819,8 @@ GLIBC_2.2 key_get_conv F
> GLIBC_2.2 key_secretkey_is_set F
> GLIBC_2.2 key_setnet F
> GLIBC_2.2 key_setsecret F
> +GLIBC_2.2 lio_listio F
> +GLIBC_2.2 lio_listio64 F
> GLIBC_2.2 localeconv F
> GLIBC_2.2 lockf64 F
> GLIBC_2.2 lseek64 F
> @@ -2461,6 +2463,8 @@ GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> +GLIBC_2.34 lio_listio F
> +GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> @@ -2635,6 +2639,8 @@ GLIBC_2.4 inotify_add_watch F
> GLIBC_2.4 inotify_init F
> GLIBC_2.4 inotify_rm_watch F
> GLIBC_2.4 linkat F
> +GLIBC_2.4 lio_listio F
> +GLIBC_2.4 lio_listio64 F
> GLIBC_2.4 mkdirat F
> GLIBC_2.4 mkfifoat F
> GLIBC_2.4 open_wmemstream F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> index 1d8e4643b5..d6bf4d5458 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 lio_listio F
> -GLIBC_2.2 lio_listio64 F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> GLIBC_2.2 timer_getoverrun F
> @@ -19,6 +17,5 @@ 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 lio_listio F
> -GLIBC_2.4 lio_listio64 F
> +GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __mq_open_2 F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index 4f72d3c617..5f5b458364 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -1817,6 +1817,8 @@ GLIBC_2.2 key_get_conv F
> GLIBC_2.2 key_secretkey_is_set F
> GLIBC_2.2 key_setnet F
> GLIBC_2.2 key_setsecret F
> +GLIBC_2.2 lio_listio F
> +GLIBC_2.2 lio_listio64 F
> GLIBC_2.2 localeconv F
> GLIBC_2.2 lockf64 F
> GLIBC_2.2 lseek64 F
> @@ -2459,6 +2461,8 @@ GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> +GLIBC_2.34 lio_listio F
> +GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> @@ -2633,6 +2637,8 @@ GLIBC_2.4 inotify_add_watch F
> GLIBC_2.4 inotify_init F
> GLIBC_2.4 inotify_rm_watch F
> GLIBC_2.4 linkat F
> +GLIBC_2.4 lio_listio F
> +GLIBC_2.4 lio_listio64 F
> GLIBC_2.4 mkdirat F
> GLIBC_2.4 mkfifoat F
> GLIBC_2.4 open_wmemstream F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index 216e8fbe03..8d0bafe8c2 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -1818,6 +1818,8 @@ GLIBC_2.2 key_get_conv F
> GLIBC_2.2 key_secretkey_is_set F
> GLIBC_2.2 key_setnet F
> GLIBC_2.2 key_setsecret F
> +GLIBC_2.2 lio_listio F
> +GLIBC_2.2 lio_listio64 F
> GLIBC_2.2 localeconv F
> GLIBC_2.2 lockf64 F
> GLIBC_2.2 lseek64 F
> @@ -2467,6 +2469,8 @@ GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> +GLIBC_2.34 lio_listio F
> +GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> @@ -2641,6 +2645,8 @@ GLIBC_2.4 inotify_add_watch F
> GLIBC_2.4 inotify_init F
> GLIBC_2.4 inotify_rm_watch F
> GLIBC_2.4 linkat F
> +GLIBC_2.4 lio_listio F
> +GLIBC_2.4 lio_listio64 F
> GLIBC_2.4 mkdirat F
> GLIBC_2.4 mkfifoat F
> GLIBC_2.4 open_wmemstream F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> index 1d8e4643b5..d6bf4d5458 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 lio_listio F
> -GLIBC_2.2 lio_listio64 F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> GLIBC_2.2 timer_getoverrun F
> @@ -19,6 +17,5 @@ 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 lio_listio F
> -GLIBC_2.4 lio_listio64 F
> +GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __mq_open_2 F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index 9671631450..f18bbf6955 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -1814,6 +1814,8 @@ GLIBC_2.2 key_get_conv F
> GLIBC_2.2 key_secretkey_is_set F
> GLIBC_2.2 key_setnet F
> GLIBC_2.2 key_setsecret F
> +GLIBC_2.2 lio_listio F
> +GLIBC_2.2 lio_listio64 F
> GLIBC_2.2 localeconv F
> GLIBC_2.2 lockf64 F
> GLIBC_2.2 lseek64 F
> @@ -2384,6 +2386,8 @@ GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> +GLIBC_2.34 lio_listio F
> +GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> @@ -2558,6 +2562,8 @@ GLIBC_2.4 inotify_add_watch F
> GLIBC_2.4 inotify_init F
> GLIBC_2.4 inotify_rm_watch F
> GLIBC_2.4 linkat F
> +GLIBC_2.4 lio_listio F
> +GLIBC_2.4 lio_listio64 F
> GLIBC_2.4 mkdirat F
> GLIBC_2.4 mkfifoat F
> GLIBC_2.4 open_wmemstream F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> index f2cda0ef51..cb685723d6 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 lio_listio F
> -GLIBC_2.2 lio_listio64 F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> GLIBC_2.2 timer_getoverrun F
> @@ -15,6 +13,5 @@ GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> -GLIBC_2.4 lio_listio F
> -GLIBC_2.4 lio_listio64 F
> +GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __mq_open_2 F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index 6d105407dd..676719705b 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -1313,6 +1313,8 @@ GLIBC_2.21 lfind F
> GLIBC_2.21 lgetxattr F
> GLIBC_2.21 link F
> GLIBC_2.21 linkat F
> +GLIBC_2.21 lio_listio F
> +GLIBC_2.21 lio_listio64 F
> GLIBC_2.21 listen F
> GLIBC_2.21 listxattr F
> GLIBC_2.21 llabs F
> @@ -2505,6 +2507,8 @@ GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> +GLIBC_2.34 lio_listio F
> +GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
> index dc18b0dc39..54780bf8a8 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 lio_listio F
> -GLIBC_2.21 lio_listio64 F
> GLIBC_2.21 mq_close F
> GLIBC_2.21 mq_getattr F
> GLIBC_2.21 mq_notify F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index 783ce5aa8e..030d6bd5b5 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -1589,6 +1589,8 @@ GLIBC_2.1 key_get_conv F
> GLIBC_2.1 key_secretkey_is_set F
> GLIBC_2.1 key_setnet F
> GLIBC_2.1 key_setsecret F
> +GLIBC_2.1 lio_listio F
> +GLIBC_2.1 lio_listio64 F
> GLIBC_2.1 lockf64 F
> GLIBC_2.1 lseek64 F
> GLIBC_2.1 makecontext F
> @@ -2523,6 +2525,8 @@ GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> +GLIBC_2.34 lio_listio F
> +GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> @@ -2808,6 +2812,8 @@ GLIBC_2.4 isinfl F
> GLIBC_2.4 isnanl F
> GLIBC_2.4 ldexpl F
> GLIBC_2.4 linkat F
> +GLIBC_2.4 lio_listio F
> +GLIBC_2.4 lio_listio64 F
> GLIBC_2.4 mkdirat F
> GLIBC_2.4 mkfifoat F
> GLIBC_2.4 modfl F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> index eb80c67c84..4273983ece 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> @@ -1,5 +1,4 @@
> -GLIBC_2.1 lio_listio F
> -GLIBC_2.1 lio_listio64 F
> +GLIBC_2.1 __librt_version_placeholder F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> GLIBC_2.2 timer_getoverrun F
> @@ -19,6 +18,5 @@ 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 lio_listio F
> -GLIBC_2.4 lio_listio64 F
> +GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __mq_open_2 F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index badcc67295..08f19201da 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -1589,6 +1589,8 @@ GLIBC_2.1 key_get_conv F
> GLIBC_2.1 key_secretkey_is_set F
> GLIBC_2.1 key_setnet F
> GLIBC_2.1 key_setsecret F
> +GLIBC_2.1 lio_listio F
> +GLIBC_2.1 lio_listio64 F
> GLIBC_2.1 lockf64 F
> GLIBC_2.1 lseek64 F
> GLIBC_2.1 makecontext F
> @@ -2556,6 +2558,8 @@ GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> +GLIBC_2.34 lio_listio F
> +GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> @@ -2853,6 +2857,8 @@ GLIBC_2.4 isinfl F
> GLIBC_2.4 isnanl F
> GLIBC_2.4 ldexpl F
> GLIBC_2.4 linkat F
> +GLIBC_2.4 lio_listio F
> +GLIBC_2.4 lio_listio64 F
> GLIBC_2.4 mkdirat F
> GLIBC_2.4 mkfifoat F
> GLIBC_2.4 modfl F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index 838b3323f1..6bd167883f 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -1246,6 +1246,8 @@ GLIBC_2.3 ldiv F
> GLIBC_2.3 lfind F
> GLIBC_2.3 lgetxattr F
> GLIBC_2.3 link F
> +GLIBC_2.3 lio_listio F
> +GLIBC_2.3 lio_listio64 F
> GLIBC_2.3 listen F
> GLIBC_2.3 listxattr F
> GLIBC_2.3 llabs F
> @@ -2292,6 +2294,8 @@ GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> +GLIBC_2.34 lio_listio F
> +GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> @@ -2577,6 +2581,8 @@ GLIBC_2.4 isinfl F
> GLIBC_2.4 isnanl F
> GLIBC_2.4 ldexpl F
> GLIBC_2.4 linkat F
> +GLIBC_2.4 lio_listio F
> +GLIBC_2.4 lio_listio64 F
> GLIBC_2.4 mkdirat F
> GLIBC_2.4 mkfifoat F
> GLIBC_2.4 modfl F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> index dcbadb2a1b..9553ec7c29 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 lio_listio F
> -GLIBC_2.3 lio_listio64 F
> GLIBC_2.3 timer_create F
> GLIBC_2.3 timer_delete F
> GLIBC_2.3 timer_getoverrun F
> @@ -20,6 +18,5 @@ GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> -GLIBC_2.4 lio_listio F
> -GLIBC_2.4 lio_listio64 F
> +GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __mq_open_2 F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index b51ebf0861..62e5ddbca6 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -1356,6 +1356,8 @@ GLIBC_2.17 lfind F
> GLIBC_2.17 lgetxattr F
> GLIBC_2.17 link F
> GLIBC_2.17 linkat F
> +GLIBC_2.17 lio_listio F
> +GLIBC_2.17 lio_listio64 F
> GLIBC_2.17 listen F
> GLIBC_2.17 listxattr F
> GLIBC_2.17 llabs F
> @@ -2591,6 +2593,8 @@ GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> +GLIBC_2.34 lio_listio F
> +GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> index 66c645887e..21ca06cf25 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 lio_listio F
> -GLIBC_2.17 lio_listio64 F
> GLIBC_2.17 mq_close F
> GLIBC_2.17 mq_getattr F
> GLIBC_2.17 mq_notify F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index caed7efe2b..a05dbdce4e 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -1200,6 +1200,8 @@ GLIBC_2.33 lfind F
> GLIBC_2.33 lgetxattr F
> GLIBC_2.33 link F
> GLIBC_2.33 linkat F
> +GLIBC_2.33 lio_listio F
> +GLIBC_2.33 lio_listio64 F
> GLIBC_2.33 listen F
> GLIBC_2.33 listxattr F
> GLIBC_2.33 llabs F
> @@ -2156,6 +2158,8 @@ GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> +GLIBC_2.34 lio_listio F
> +GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> index 82f04551d5..46954a5f42 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 lio_listio F
> -GLIBC_2.33 lio_listio64 F
> GLIBC_2.33 mq_close F
> GLIBC_2.33 mq_getattr F
> GLIBC_2.33 mq_notify F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index e9574cf0e4..db7cd82676 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -1254,6 +1254,8 @@ GLIBC_2.27 lfind F
> GLIBC_2.27 lgetxattr F
> GLIBC_2.27 link F
> GLIBC_2.27 linkat F
> +GLIBC_2.27 lio_listio F
> +GLIBC_2.27 lio_listio64 F
> GLIBC_2.27 listen F
> GLIBC_2.27 listxattr F
> GLIBC_2.27 llabs F
> @@ -2356,6 +2358,8 @@ GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> +GLIBC_2.34 lio_listio F
> +GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> index 044eace5c3..bf73abd7b8 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 lio_listio F
> -GLIBC_2.27 lio_listio64 F
> GLIBC_2.27 mq_close F
> GLIBC_2.27 mq_getattr F
> GLIBC_2.27 mq_notify F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index 28f002dcd8..a88aa419eb 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -1581,6 +1581,8 @@ GLIBC_2.1 key_get_conv F
> GLIBC_2.1 key_secretkey_is_set F
> GLIBC_2.1 key_setnet F
> GLIBC_2.1 key_setsecret F
> +GLIBC_2.1 lio_listio F
> +GLIBC_2.1 lio_listio64 F
> GLIBC_2.1 lockf64 F
> GLIBC_2.1 lseek64 F
> GLIBC_2.1 makecontext F
> @@ -2521,6 +2523,8 @@ GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> +GLIBC_2.34 lio_listio F
> +GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> @@ -2806,6 +2810,8 @@ GLIBC_2.4 isinfl F
> GLIBC_2.4 isnanl F
> GLIBC_2.4 ldexpl F
> GLIBC_2.4 linkat F
> +GLIBC_2.4 lio_listio F
> +GLIBC_2.4 lio_listio64 F
> GLIBC_2.4 mkdirat F
> GLIBC_2.4 mkfifoat F
> GLIBC_2.4 modfl F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> index eb80c67c84..4273983ece 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> @@ -1,5 +1,4 @@
> -GLIBC_2.1 lio_listio F
> -GLIBC_2.1 lio_listio64 F
> +GLIBC_2.1 __librt_version_placeholder F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> GLIBC_2.2 timer_getoverrun F
> @@ -19,6 +18,5 @@ 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 lio_listio F
> -GLIBC_2.4 lio_listio64 F
> +GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __mq_open_2 F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index 2d6d3fd601..70bc3a8be7 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -1145,6 +1145,8 @@ GLIBC_2.2 ldexpl F
> GLIBC_2.2 ldiv F
> GLIBC_2.2 lfind F
> GLIBC_2.2 link F
> +GLIBC_2.2 lio_listio F
> +GLIBC_2.2 lio_listio64 F
> GLIBC_2.2 listen F
> GLIBC_2.2 llabs F
> GLIBC_2.2 lldiv F
> @@ -2329,6 +2331,8 @@ GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> +GLIBC_2.34 lio_listio F
> +GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> @@ -2614,6 +2618,8 @@ GLIBC_2.4 isinfl F
> GLIBC_2.4 isnanl F
> GLIBC_2.4 ldexpl F
> GLIBC_2.4 linkat F
> +GLIBC_2.4 lio_listio F
> +GLIBC_2.4 lio_listio64 F
> GLIBC_2.4 mkdirat F
> GLIBC_2.4 mkfifoat F
> GLIBC_2.4 modfl F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> index 03aed4d0f7..0ed75b255b 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 lio_listio F
> -GLIBC_2.2 lio_listio64 F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> GLIBC_2.2 timer_getoverrun F
> @@ -20,6 +18,5 @@ GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> -GLIBC_2.4 lio_listio F
> -GLIBC_2.4 lio_listio64 F
> +GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __mq_open_2 F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index 327cc0812d..851b8660b4 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -24,6 +24,8 @@ GLIBC_2.1 aio_write F
> GLIBC_2.1 aio_write64 F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> +GLIBC_2.1 lio_listio F
> +GLIBC_2.1 lio_listio64 F
> GLIBC_2.10 __cxa_at_quick_exit F
> GLIBC_2.10 __posix_getopt F
> GLIBC_2.10 accept4 F
> @@ -2376,6 +2378,8 @@ GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> +GLIBC_2.34 lio_listio F
> +GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> @@ -2552,6 +2556,8 @@ GLIBC_2.4 inotify_add_watch F
> GLIBC_2.4 inotify_init F
> GLIBC_2.4 inotify_rm_watch F
> GLIBC_2.4 linkat F
> +GLIBC_2.4 lio_listio F
> +GLIBC_2.4 lio_listio64 F
> GLIBC_2.4 mkdirat F
> GLIBC_2.4 mkfifoat F
> GLIBC_2.4 open_wmemstream F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> index eb80c67c84..4273983ece 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> @@ -1,5 +1,4 @@
> -GLIBC_2.1 lio_listio F
> -GLIBC_2.1 lio_listio64 F
> +GLIBC_2.1 __librt_version_placeholder F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> GLIBC_2.2 timer_getoverrun F
> @@ -19,6 +18,5 @@ 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 lio_listio F
> -GLIBC_2.4 lio_listio64 F
> +GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __mq_open_2 F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index 4993b24e22..d8a75db6ed 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -24,6 +24,8 @@ GLIBC_2.1 aio_write F
> GLIBC_2.1 aio_write64 F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> +GLIBC_2.1 lio_listio F
> +GLIBC_2.1 lio_listio64 F
> GLIBC_2.10 __cxa_at_quick_exit F
> GLIBC_2.10 __posix_getopt F
> GLIBC_2.10 accept4 F
> @@ -2373,6 +2375,8 @@ GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> +GLIBC_2.34 lio_listio F
> +GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> @@ -2549,6 +2553,8 @@ GLIBC_2.4 inotify_add_watch F
> GLIBC_2.4 inotify_init F
> GLIBC_2.4 inotify_rm_watch F
> GLIBC_2.4 linkat F
> +GLIBC_2.4 lio_listio F
> +GLIBC_2.4 lio_listio64 F
> GLIBC_2.4 mkdirat F
> GLIBC_2.4 mkfifoat F
> GLIBC_2.4 open_wmemstream F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> index eb80c67c84..4273983ece 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> @@ -1,5 +1,4 @@
> -GLIBC_2.1 lio_listio F
> -GLIBC_2.1 lio_listio64 F
> +GLIBC_2.1 __librt_version_placeholder F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> GLIBC_2.2 timer_getoverrun F
> @@ -19,6 +18,5 @@ 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 lio_listio F
> -GLIBC_2.4 lio_listio64 F
> +GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __mq_open_2 F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index e48e78079f..853ebccd44 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -1582,6 +1582,8 @@ GLIBC_2.1 key_get_conv F
> GLIBC_2.1 key_secretkey_is_set F
> GLIBC_2.1 key_setnet F
> GLIBC_2.1 key_setsecret F
> +GLIBC_2.1 lio_listio F
> +GLIBC_2.1 lio_listio64 F
> GLIBC_2.1 lockf64 F
> GLIBC_2.1 lseek64 F
> GLIBC_2.1 makecontext F
> @@ -2516,6 +2518,8 @@ GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> +GLIBC_2.34 lio_listio F
> +GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> @@ -2827,6 +2831,8 @@ GLIBC_2.4 isinfl F
> GLIBC_2.4 isnanl F
> GLIBC_2.4 ldexpl F
> GLIBC_2.4 linkat F
> +GLIBC_2.4 lio_listio F
> +GLIBC_2.4 lio_listio64 F
> GLIBC_2.4 mkdirat F
> GLIBC_2.4 mkfifoat F
> GLIBC_2.4 modfl F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> index 3c39a8ba0a..39ae533414 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> @@ -1,5 +1,4 @@
> -GLIBC_2.1 lio_listio F
> -GLIBC_2.1 lio_listio64 F
> +GLIBC_2.1 __librt_version_placeholder F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> GLIBC_2.2 timer_getoverrun F
> @@ -20,6 +19,5 @@ 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 lio_listio F
> -GLIBC_2.4 lio_listio64 F
> +GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __mq_open_2 F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index 85a4dfa37c..52fbd42f3e 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -24,6 +24,8 @@ GLIBC_2.1 aio_write F
> GLIBC_2.1 aio_write64 F
> GLIBC_2.1 dlopen F
> GLIBC_2.1 dlvsym F
> +GLIBC_2.1 lio_listio F
> +GLIBC_2.1 lio_listio64 F
> GLIBC_2.10 __cxa_at_quick_exit F
> GLIBC_2.10 __posix_getopt F
> GLIBC_2.10 accept4 F
> @@ -2351,6 +2353,8 @@ GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> +GLIBC_2.34 lio_listio F
> +GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> @@ -2527,6 +2531,8 @@ GLIBC_2.4 inotify_add_watch F
> GLIBC_2.4 inotify_init F
> GLIBC_2.4 inotify_rm_watch F
> GLIBC_2.4 linkat F
> +GLIBC_2.4 lio_listio F
> +GLIBC_2.4 lio_listio64 F
> GLIBC_2.4 mkdirat F
> GLIBC_2.4 mkfifoat F
> GLIBC_2.4 open_wmemstream F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> index 89a7344c1c..2ae4408148 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> @@ -1,5 +1,4 @@
> -GLIBC_2.1 lio_listio F
> -GLIBC_2.1 lio_listio64 F
> +GLIBC_2.1 __librt_version_placeholder F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> GLIBC_2.2 timer_getoverrun F
> @@ -21,6 +20,5 @@ GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> -GLIBC_2.4 lio_listio F
> -GLIBC_2.4 lio_listio64 F
> +GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __mq_open_2 F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index c95b54fad3..4afbd80fe4 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -1138,6 +1138,8 @@ GLIBC_2.2.5 ldexpl F
> GLIBC_2.2.5 ldiv F
> GLIBC_2.2.5 lfind F
> GLIBC_2.2.5 link F
> +GLIBC_2.2.5 lio_listio F
> +GLIBC_2.2.5 lio_listio64 F
> GLIBC_2.2.5 listen F
> GLIBC_2.2.5 llabs F
> GLIBC_2.2.5 lldiv F
> @@ -2307,6 +2309,8 @@ GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> +GLIBC_2.34 lio_listio F
> +GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> @@ -2483,6 +2487,8 @@ GLIBC_2.4 inotify_add_watch F
> GLIBC_2.4 inotify_init F
> GLIBC_2.4 inotify_rm_watch F
> GLIBC_2.4 linkat F
> +GLIBC_2.4 lio_listio F
> +GLIBC_2.4 lio_listio64 F
> GLIBC_2.4 mkdirat F
> GLIBC_2.4 mkfifoat F
> GLIBC_2.4 open_wmemstream F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> index 974a0bf943..c7f2721961 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 lio_listio F
> -GLIBC_2.2.5 lio_listio64 F
> GLIBC_2.2.5 timer_create F
> GLIBC_2.2.5 timer_delete F
> GLIBC_2.2.5 timer_getoverrun F
> @@ -20,6 +18,5 @@ GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> -GLIBC_2.4 lio_listio F
> -GLIBC_2.4 lio_listio64 F
> +GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __mq_open_2 F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index c543baf92b..b48d936890 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -1274,6 +1274,8 @@ GLIBC_2.16 lfind F
> GLIBC_2.16 lgetxattr F
> GLIBC_2.16 link F
> GLIBC_2.16 linkat F
> +GLIBC_2.16 lio_listio F
> +GLIBC_2.16 lio_listio64 F
> GLIBC_2.16 listen F
> GLIBC_2.16 listxattr F
> GLIBC_2.16 llabs F
> @@ -2410,6 +2412,8 @@ GLIBC_2.34 dlopen F
> GLIBC_2.34 dlsym F
> GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> +GLIBC_2.34 lio_listio F
> +GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> index 42f733844b..f75c21efc1 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 lio_listio F
> -GLIBC_2.16 lio_listio64 F
> GLIBC_2.16 mq_close F
> GLIBC_2.16 mq_getattr F
> GLIBC_2.16 mq_notify F
>
Ok.
^ permalink raw reply [flat|nested] 72+ messages in thread
* [PATCH 20/34] Linux: Move mq_close from librt to libc
2021-06-17 18:56 [PATCH v2 00/34] Move librt into libc Florian Weimer
` (18 preceding siblings ...)
2021-06-17 18:58 ` [PATCH 19/34] Linux: Move lio_listio, lio_listio64 from librt to libc Florian Weimer
@ 2021-06-17 18:58 ` Florian Weimer
2021-06-24 14:00 ` Adhemerval Zanella
2021-06-17 18:58 ` [PATCH 21/34] Linux: Move mq_setattr " Florian Weimer
` (14 subsequent siblings)
34 siblings, 1 reply; 72+ messages in thread
From: Florian Weimer @ 2021-06-17 18:58 UTC (permalink / raw)
To: libc-alpha
The symbol was moved using scripts/move-symbol-to-libc.py.
---
rt/Makefile | 2 +-
rt/Versions | 8 ++++++++
sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/aarch64/librt.abilist | 1 -
sysdeps/unix/sysv/linux/alpha/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/alpha/librt.abilist | 1 -
sysdeps/unix/sysv/linux/arc/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/arc/librt.abilist | 1 -
sysdeps/unix/sysv/linux/arm/be/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/arm/be/librt.abilist | 1 -
sysdeps/unix/sysv/linux/arm/le/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/arm/le/librt.abilist | 1 -
sysdeps/unix/sysv/linux/csky/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/csky/librt.abilist | 1 -
sysdeps/unix/sysv/linux/hppa/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/hppa/librt.abilist | 1 -
sysdeps/unix/sysv/linux/i386/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/i386/librt.abilist | 1 -
sysdeps/unix/sysv/linux/ia64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/ia64/librt.abilist | 1 -
sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist | 1 -
sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist | 1 -
sysdeps/unix/sysv/linux/microblaze/be/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/microblaze/be/librt.abilist | 1 -
sysdeps/unix/sysv/linux/microblaze/le/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/microblaze/le/librt.abilist | 1 -
sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/mips/mips32/librt.abilist | 1 -
sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist | 1 -
sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist | 1 -
sysdeps/unix/sysv/linux/mq_close.c | 7 ++++++-
sysdeps/unix/sysv/linux/nios2/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/nios2/librt.abilist | 1 -
.../unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist | 1 -
.../unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist | 2 ++
.../unix/sysv/linux/powerpc/powerpc64/be/librt.abilist | 1 -
sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist | 2 ++
.../unix/sysv/linux/powerpc/powerpc64/le/librt.abilist | 1 -
sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist | 1 -
sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist | 1 -
sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist | 1 -
sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist | 1 -
sysdeps/unix/sysv/linux/sh/be/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/sh/be/librt.abilist | 1 -
sysdeps/unix/sysv/linux/sh/le/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/sh/le/librt.abilist | 1 -
sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist | 1 -
sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist | 1 -
sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/x86_64/64/librt.abilist | 1 -
sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist | 1 -
65 files changed, 79 insertions(+), 32 deletions(-)
diff --git a/rt/Makefile b/rt/Makefile
index edeb37fef3..4ac93b2365 100644
--- a/rt/Makefile
+++ b/rt/Makefile
@@ -30,7 +30,6 @@ routines = \
librt-routines = \
librt-compat \
- mq_close \
mq_getattr \
mq_notify \
mq_open \
@@ -63,6 +62,7 @@ $(librt-routines-var) += \
aio_write64 \
lio_listio \
lio_listio64 \
+ mq_close \
tests := tst-shm tst-timer tst-timer2 \
tst-aio tst-aio64 tst-aio2 tst-aio3 tst-aio4 tst-aio5 tst-aio6 \
diff --git a/rt/Versions b/rt/Versions
index 0565707456..d38b95b090 100644
--- a/rt/Versions
+++ b/rt/Versions
@@ -24,6 +24,11 @@ libc {
shm_open;
shm_unlink;
}
+ GLIBC_2.3.4 {
+%if PTHREAD_IN_LIBC
+ mq_close;
+%endif
+ }
GLIBC_2.4 {
%if PTHREAD_IN_LIBC
lio_listio;
@@ -49,6 +54,7 @@ libc {
aio_write64;
lio_listio;
lio_listio64;
+ mq_close;
%endif
shm_open;
shm_unlink;
@@ -99,7 +105,9 @@ librt {
timer_settime;
}
GLIBC_2.3.4 {
+%if !PTHREAD_IN_LIBC
mq_close;
+%endif
mq_getattr;
mq_notify;
mq_open;
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 18bbe0c86b..80390d58c5 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -1357,6 +1357,7 @@ GLIBC_2.17 monstartup F
GLIBC_2.17 mount F
GLIBC_2.17 mprobe F
GLIBC_2.17 mprotect F
+GLIBC_2.17 mq_close F
GLIBC_2.17 mrand48 F
GLIBC_2.17 mrand48_r F
GLIBC_2.17 mremap F
@@ -2399,6 +2400,7 @@ GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
+GLIBC_2.34 mq_close F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
index 21ca06cf25..0f95d65af6 100644
--- a/sysdeps/unix/sysv/linux/aarch64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
@@ -1,5 +1,4 @@
GLIBC_2.17 __mq_open_2 F
-GLIBC_2.17 mq_close F
GLIBC_2.17 mq_getattr F
GLIBC_2.17 mq_notify F
GLIBC_2.17 mq_open F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index a7cea3adda..02ab437a03 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -2392,6 +2392,7 @@ GLIBC_2.3.4 __xpg_strerror_r F
GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
+GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2494,6 +2495,7 @@ GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
+GLIBC_2.34 mq_close F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
index 2ae4408148..960db11285 100644
--- a/sysdeps/unix/sysv/linux/alpha/librt.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist
@@ -10,7 +10,6 @@ GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index a296bd429d..cc26e87959 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1288,6 +1288,7 @@ GLIBC_2.32 monstartup F
GLIBC_2.32 mount F
GLIBC_2.32 mprobe F
GLIBC_2.32 mprotect F
+GLIBC_2.32 mq_close F
GLIBC_2.32 mrand48 F
GLIBC_2.32 mrand48_r F
GLIBC_2.32 mremap F
@@ -2158,6 +2159,7 @@ GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
+GLIBC_2.34 mq_close F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
index 86b7d92191..8d99f1fd34 100644
--- a/sysdeps/unix/sysv/linux/arc/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arc/librt.abilist
@@ -1,5 +1,4 @@
GLIBC_2.32 __mq_open_2 F
-GLIBC_2.32 mq_close F
GLIBC_2.32 mq_getattr F
GLIBC_2.32 mq_notify F
GLIBC_2.32 mq_open F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 5a11201a2c..bf0e6dd046 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -313,6 +313,7 @@ GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
+GLIBC_2.34 mq_close F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
@@ -1726,6 +1727,7 @@ GLIBC_2.4 monstartup F
GLIBC_2.4 mount F
GLIBC_2.4 mprobe F
GLIBC_2.4 mprotect F
+GLIBC_2.4 mq_close F
GLIBC_2.4 mrand48 F
GLIBC_2.4 mrand48_r F
GLIBC_2.4 mremap F
diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
index 17eaad197b..a7a3efd732 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -2,7 +2,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 mq_close F
GLIBC_2.4 mq_getattr F
GLIBC_2.4 mq_notify F
GLIBC_2.4 mq_open F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index ef6c2f934d..69149e1e31 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -310,6 +310,7 @@ GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
+GLIBC_2.34 mq_close F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
@@ -1723,6 +1724,7 @@ GLIBC_2.4 monstartup F
GLIBC_2.4 mount F
GLIBC_2.4 mprobe F
GLIBC_2.4 mprotect F
+GLIBC_2.4 mq_close F
GLIBC_2.4 mrand48 F
GLIBC_2.4 mrand48_r F
GLIBC_2.4 mremap F
diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
index 17eaad197b..a7a3efd732 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -2,7 +2,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 mq_close F
GLIBC_2.4 mq_getattr F
GLIBC_2.4 mq_notify F
GLIBC_2.4 mq_open F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index ce475d4237..24a8e779ef 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -1343,6 +1343,7 @@ GLIBC_2.29 monstartup F
GLIBC_2.29 mount F
GLIBC_2.29 mprobe F
GLIBC_2.29 mprotect F
+GLIBC_2.29 mq_close F
GLIBC_2.29 mrand48 F
GLIBC_2.29 mrand48_r F
GLIBC_2.29 mremap F
@@ -2419,6 +2420,7 @@ GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
+GLIBC_2.34 mq_close F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
index b6dcc61492..f8439e803c 100644
--- a/sysdeps/unix/sysv/linux/csky/librt.abilist
+++ b/sysdeps/unix/sysv/linux/csky/librt.abilist
@@ -1,5 +1,4 @@
GLIBC_2.29 __mq_open_2 F
-GLIBC_2.29 mq_close F
GLIBC_2.29 mq_getattr F
GLIBC_2.29 mq_notify F
GLIBC_2.29 mq_open F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 734c0b8832..108624e7d0 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -2206,6 +2206,7 @@ GLIBC_2.3.4 __xpg_strerror_r F
GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
+GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2373,6 +2374,7 @@ GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
+GLIBC_2.34 mq_close F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
index 4273983ece..2830671cbd 100644
--- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
@@ -4,7 +4,6 @@ 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.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 796a5678a1..b261de5045 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -2387,6 +2387,7 @@ GLIBC_2.3.4 __xpg_strerror_r F
GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
+GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2557,6 +2558,7 @@ GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
+GLIBC_2.34 mq_close F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
index 4273983ece..2830671cbd 100644
--- a/sysdeps/unix/sysv/linux/i386/librt.abilist
+++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
@@ -4,7 +4,6 @@ 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.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 36769154e3..ae3d1362b4 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -2241,6 +2241,7 @@ GLIBC_2.3.4 __xpg_strerror_r F
GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
+GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2332,6 +2333,7 @@ GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
+GLIBC_2.34 mq_close F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
index 41bcd0064a..71fa79869e 100644
--- a/sysdeps/unix/sysv/linux/ia64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/librt.abilist
@@ -9,7 +9,6 @@ GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index ace87cf64d..719ad8c4cd 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -314,6 +314,7 @@ GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
+GLIBC_2.34 mq_close F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
@@ -1710,6 +1711,7 @@ GLIBC_2.4 monstartup F
GLIBC_2.4 mount F
GLIBC_2.4 mprobe F
GLIBC_2.4 mprotect F
+GLIBC_2.4 mq_close F
GLIBC_2.4 mrand48 F
GLIBC_2.4 mrand48_r F
GLIBC_2.4 mremap F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
index 17eaad197b..a7a3efd732 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -2,7 +2,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 mq_close F
GLIBC_2.4 mq_getattr F
GLIBC_2.4 mq_notify F
GLIBC_2.4 mq_open F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index ac56d8aaec..d9ebe5ff51 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2330,6 +2330,7 @@ GLIBC_2.3.4 __xpg_strerror_r F
GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
+GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2500,6 +2501,7 @@ GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
+GLIBC_2.34 mq_close F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
index 4273983ece..2830671cbd 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
@@ -4,7 +4,6 @@ GLIBC_2.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.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 8383308b5d..7baacb6ac0 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -1359,6 +1359,7 @@ GLIBC_2.18 monstartup F
GLIBC_2.18 mount F
GLIBC_2.18 mprobe F
GLIBC_2.18 mprotect F
+GLIBC_2.18 mq_close F
GLIBC_2.18 mrand48 F
GLIBC_2.18 mrand48_r F
GLIBC_2.18 mremap F
@@ -2470,6 +2471,7 @@ GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
+GLIBC_2.34 mq_close F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
index 46388b39c0..826842df14 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
@@ -1,5 +1,4 @@
GLIBC_2.18 __mq_open_2 F
-GLIBC_2.18 mq_close F
GLIBC_2.18 mq_getattr F
GLIBC_2.18 mq_notify F
GLIBC_2.18 mq_open F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 0b3fedbfbb..b7cf9054f5 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -1359,6 +1359,7 @@ GLIBC_2.18 monstartup F
GLIBC_2.18 mount F
GLIBC_2.18 mprobe F
GLIBC_2.18 mprotect F
+GLIBC_2.18 mq_close F
GLIBC_2.18 mrand48 F
GLIBC_2.18 mrand48_r F
GLIBC_2.18 mremap F
@@ -2467,6 +2468,7 @@ GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
+GLIBC_2.34 mq_close F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
index 46388b39c0..826842df14 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
@@ -1,5 +1,4 @@
GLIBC_2.18 __mq_open_2 F
-GLIBC_2.18 mq_close F
GLIBC_2.18 mq_getattr F
GLIBC_2.18 mq_notify F
GLIBC_2.18 mq_open F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index abcecd4913..0055c850c1 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -2298,6 +2298,7 @@ GLIBC_2.3.4 __xpg_strerror_r F
GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
+GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2465,6 +2466,7 @@ GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
+GLIBC_2.34 mq_close F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
index d6bf4d5458..b9908f3752 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
@@ -3,7 +3,6 @@ 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.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 5f5b458364..d1c756a5b6 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -2296,6 +2296,7 @@ GLIBC_2.3.4 __xpg_strerror_r F
GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
+GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2463,6 +2464,7 @@ GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
+GLIBC_2.34 mq_close F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 8d0bafe8c2..6a3275d75f 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -2304,6 +2304,7 @@ GLIBC_2.3.4 __xpg_strerror_r F
GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
+GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2471,6 +2472,7 @@ GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
+GLIBC_2.34 mq_close F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
index d6bf4d5458..b9908f3752 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
@@ -3,7 +3,6 @@ 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.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index f18bbf6955..026d6f0c34 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -2298,6 +2298,7 @@ GLIBC_2.3.4 __xpg_strerror_r F
GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
+GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2388,6 +2389,7 @@ GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
+GLIBC_2.34 mq_close F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
index cb685723d6..df7de1fd21 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
@@ -3,7 +3,6 @@ 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.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
diff --git a/sysdeps/unix/sysv/linux/mq_close.c b/sysdeps/unix/sysv/linux/mq_close.c
index 83a28fd8fe..b07db33fbb 100644
--- a/sysdeps/unix/sysv/linux/mq_close.c
+++ b/sysdeps/unix/sysv/linux/mq_close.c
@@ -18,11 +18,16 @@
#include <errno.h>
#include <mqueue.h>
#include <sysdep.h>
+#include <shlib-compat.h>
/* Removes the association between message queue descriptor MQDES and its
message queue. */
int
-mq_close (mqd_t mqdes)
+__mq_close (mqd_t mqdes)
{
return INLINE_SYSCALL (close, 1, mqdes);
}
+versioned_symbol (libc, __mq_close, mq_close, GLIBC_2_34);
+#if OTHER_SHLIB_COMPAT (librt, GLIBC_2_3_4, GLIBC_2_34)
+compat_symbol (libc, __mq_close, mq_close, GLIBC_2_3_4);
+#endif
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 676719705b..de7e07f62f 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -1402,6 +1402,7 @@ GLIBC_2.21 monstartup F
GLIBC_2.21 mount F
GLIBC_2.21 mprobe F
GLIBC_2.21 mprotect F
+GLIBC_2.21 mq_close F
GLIBC_2.21 mrand48 F
GLIBC_2.21 mrand48_r F
GLIBC_2.21 mremap F
@@ -2509,6 +2510,7 @@ GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
+GLIBC_2.34 mq_close F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
index 54780bf8a8..8d7a95d6ac 100644
--- a/sysdeps/unix/sysv/linux/nios2/librt.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/librt.abilist
@@ -1,5 +1,4 @@
GLIBC_2.21 __mq_open_2 F
-GLIBC_2.21 mq_close F
GLIBC_2.21 mq_getattr F
GLIBC_2.21 mq_notify F
GLIBC_2.21 mq_open F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 030d6bd5b5..11bca22288 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -2344,6 +2344,7 @@ GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 longjmp F
GLIBC_2.3.4 makecontext F
+GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2527,6 +2528,7 @@ GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
+GLIBC_2.34 mq_close F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
index 4273983ece..2830671cbd 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
@@ -4,7 +4,6 @@ GLIBC_2.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.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 08f19201da..23823f46cf 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -2377,6 +2377,7 @@ GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 longjmp F
GLIBC_2.3.4 makecontext F
+GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2560,6 +2561,7 @@ GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
+GLIBC_2.34 mq_close F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 6bd167883f..d4c732e826 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -2190,6 +2190,7 @@ GLIBC_2.3.4 getcontext F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 longjmp F
+GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2296,6 +2297,7 @@ GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
+GLIBC_2.34 mq_close F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
index 9553ec7c29..e20095d937 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
@@ -8,7 +8,6 @@ GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 62e5ddbca6..cf2f48704b 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -1445,6 +1445,7 @@ GLIBC_2.17 monstartup F
GLIBC_2.17 mount F
GLIBC_2.17 mprobe F
GLIBC_2.17 mprotect F
+GLIBC_2.17 mq_close F
GLIBC_2.17 mrand48 F
GLIBC_2.17 mrand48_r F
GLIBC_2.17 mremap F
@@ -2595,6 +2596,7 @@ GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
+GLIBC_2.34 mq_close F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
index 21ca06cf25..0f95d65af6 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
@@ -1,5 +1,4 @@
GLIBC_2.17 __mq_open_2 F
-GLIBC_2.17 mq_close F
GLIBC_2.17 mq_getattr F
GLIBC_2.17 mq_notify F
GLIBC_2.17 mq_open F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index a05dbdce4e..f731932abf 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1290,6 +1290,7 @@ GLIBC_2.33 monstartup F
GLIBC_2.33 mount F
GLIBC_2.33 mprobe F
GLIBC_2.33 mprotect F
+GLIBC_2.33 mq_close F
GLIBC_2.33 mrand48 F
GLIBC_2.33 mrand48_r F
GLIBC_2.33 mremap F
@@ -2160,6 +2161,7 @@ GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
+GLIBC_2.34 mq_close F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
index 46954a5f42..1b681c4f40 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
@@ -1,5 +1,4 @@
GLIBC_2.33 __mq_open_2 F
-GLIBC_2.33 mq_close F
GLIBC_2.33 mq_getattr F
GLIBC_2.33 mq_notify F
GLIBC_2.33 mq_open F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index db7cd82676..5dbfcd8d85 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -1340,6 +1340,7 @@ GLIBC_2.27 monstartup F
GLIBC_2.27 mount F
GLIBC_2.27 mprobe F
GLIBC_2.27 mprotect F
+GLIBC_2.27 mq_close F
GLIBC_2.27 mrand48 F
GLIBC_2.27 mrand48_r F
GLIBC_2.27 mremap F
@@ -2360,6 +2361,7 @@ GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
+GLIBC_2.34 mq_close F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
index bf73abd7b8..05a7e7ab00 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
@@ -1,5 +1,4 @@
GLIBC_2.27 __mq_open_2 F
-GLIBC_2.27 mq_close F
GLIBC_2.27 mq_getattr F
GLIBC_2.27 mq_notify F
GLIBC_2.27 mq_open F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index a88aa419eb..b84e794be5 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -2343,6 +2343,7 @@ GLIBC_2.3.4 __xpg_strerror_r F
GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
+GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2525,6 +2526,7 @@ GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
+GLIBC_2.34 mq_close F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
index 4273983ece..2830671cbd 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
@@ -4,7 +4,6 @@ GLIBC_2.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.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 70bc3a8be7..5e500fc41b 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -2231,6 +2231,7 @@ GLIBC_2.3.4 __xpg_strerror_r F
GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
+GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2333,6 +2334,7 @@ GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
+GLIBC_2.34 mq_close F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
index 0ed75b255b..eaf9985930 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
@@ -8,7 +8,6 @@ GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 851b8660b4..5eacb42a61 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -2210,6 +2210,7 @@ GLIBC_2.3.4 __xpg_strerror_r F
GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
+GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2380,6 +2381,7 @@ GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
+GLIBC_2.34 mq_close F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
index 4273983ece..2830671cbd 100644
--- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
@@ -4,7 +4,6 @@ GLIBC_2.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.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index d8a75db6ed..1e6e234774 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -2210,6 +2210,7 @@ GLIBC_2.3.4 __xpg_strerror_r F
GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
+GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2377,6 +2378,7 @@ GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
+GLIBC_2.34 mq_close F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
index 4273983ece..2830671cbd 100644
--- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
@@ -4,7 +4,6 @@ GLIBC_2.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.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 853ebccd44..c641491014 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -2341,6 +2341,7 @@ GLIBC_2.3.4 __xpg_strerror_r F
GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
+GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2520,6 +2521,7 @@ GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
+GLIBC_2.34 mq_close F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
index 39ae533414..d7bd3edad5 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
@@ -5,7 +5,6 @@ GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime 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
GLIBC_2.3.4 mq_open F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 52fbd42f3e..834aaa1cb6 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -2265,6 +2265,7 @@ GLIBC_2.3.4 __xpg_strerror_r F
GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
+GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2355,6 +2356,7 @@ GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
+GLIBC_2.34 mq_close F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
index 2ae4408148..960db11285 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
@@ -10,7 +10,6 @@ GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 4afbd80fe4..3f17a41c66 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -2219,6 +2219,7 @@ GLIBC_2.3.4 __xpg_strerror_r F
GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
+GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2311,6 +2312,7 @@ GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
+GLIBC_2.34 mq_close F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
index c7f2721961..6b8d77f1a7 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
@@ -8,7 +8,6 @@ GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index b48d936890..5ea3b75384 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -1364,6 +1364,7 @@ GLIBC_2.16 monstartup F
GLIBC_2.16 mount F
GLIBC_2.16 mprobe F
GLIBC_2.16 mprotect F
+GLIBC_2.16 mq_close F
GLIBC_2.16 mrand48 F
GLIBC_2.16 mrand48_r F
GLIBC_2.16 mremap F
@@ -2414,6 +2415,7 @@ GLIBC_2.34 dlvsym F
GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
+GLIBC_2.34 mq_close F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
index f75c21efc1..660f1de033 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
@@ -1,5 +1,4 @@
GLIBC_2.16 __mq_open_2 F
-GLIBC_2.16 mq_close F
GLIBC_2.16 mq_getattr F
GLIBC_2.16 mq_notify F
GLIBC_2.16 mq_open F
--
2.31.1
^ permalink raw reply [flat|nested] 72+ messages in thread
* Re: [PATCH 20/34] Linux: Move mq_close from librt to libc
2021-06-17 18:58 ` [PATCH 20/34] Linux: Move mq_close " Florian Weimer
@ 2021-06-24 14:00 ` Adhemerval Zanella
0 siblings, 0 replies; 72+ messages in thread
From: Adhemerval Zanella @ 2021-06-24 14:00 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 17/06/2021 15:58, Florian Weimer via Libc-alpha wrote:
> The symbol was moved using scripts/move-symbol-to-libc.py.
LGTM, thanks.
Reviewed-by: Adhemerva Zanella <adhemerval.zanella@linaro.org>
> ---
> rt/Makefile | 2 +-
> rt/Versions | 8 ++++++++
> sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/aarch64/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/alpha/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/alpha/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/arc/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/arc/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/arm/be/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/arm/be/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/arm/le/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/arm/le/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/csky/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/csky/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/hppa/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/hppa/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/i386/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/i386/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/ia64/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/ia64/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/microblaze/be/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/microblaze/be/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/microblaze/le/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/microblaze/le/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/mips/mips32/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/mq_close.c | 7 ++++++-
> sysdeps/unix/sysv/linux/nios2/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/nios2/librt.abilist | 1 -
> .../unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist | 1 -
> .../unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist | 2 ++
> .../unix/sysv/linux/powerpc/powerpc64/be/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist | 2 ++
> .../unix/sysv/linux/powerpc/powerpc64/le/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/sh/be/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/sh/be/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/sh/le/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/sh/le/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/x86_64/64/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist | 1 -
> 65 files changed, 79 insertions(+), 32 deletions(-)
>
> diff --git a/rt/Makefile b/rt/Makefile
> index edeb37fef3..4ac93b2365 100644
> --- a/rt/Makefile
> +++ b/rt/Makefile
> @@ -30,7 +30,6 @@ routines = \
>
> librt-routines = \
> librt-compat \
> - mq_close \
> mq_getattr \
> mq_notify \
> mq_open \
> @@ -63,6 +62,7 @@ $(librt-routines-var) += \
> aio_write64 \
> lio_listio \
> lio_listio64 \
> + mq_close \
>
> tests := tst-shm tst-timer tst-timer2 \
> tst-aio tst-aio64 tst-aio2 tst-aio3 tst-aio4 tst-aio5 tst-aio6 \
Ok.
> diff --git a/rt/Versions b/rt/Versions
> index 0565707456..d38b95b090 100644
> --- a/rt/Versions
> +++ b/rt/Versions
> @@ -24,6 +24,11 @@ libc {
> shm_open;
> shm_unlink;
> }
> + GLIBC_2.3.4 {
> +%if PTHREAD_IN_LIBC
> + mq_close;
> +%endif
> + }
> GLIBC_2.4 {
> %if PTHREAD_IN_LIBC
> lio_listio;
> @@ -49,6 +54,7 @@ libc {
> aio_write64;
> lio_listio;
> lio_listio64;
> + mq_close;
> %endif
> shm_open;
> shm_unlink;
> @@ -99,7 +105,9 @@ librt {
> timer_settime;
> }
> GLIBC_2.3.4 {
> +%if !PTHREAD_IN_LIBC
> mq_close;
> +%endif
> mq_getattr;
> mq_notify;
> mq_open;
Ok.
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index 18bbe0c86b..80390d58c5 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -1357,6 +1357,7 @@ GLIBC_2.17 monstartup F
> GLIBC_2.17 mount F
> GLIBC_2.17 mprobe F
> GLIBC_2.17 mprotect F
> +GLIBC_2.17 mq_close F
> GLIBC_2.17 mrand48 F
> GLIBC_2.17 mrand48_r F
> GLIBC_2.17 mremap F
> @@ -2399,6 +2400,7 @@ GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> +GLIBC_2.34 mq_close F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> index 21ca06cf25..0f95d65af6 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.17 __mq_open_2 F
> -GLIBC_2.17 mq_close F
> GLIBC_2.17 mq_getattr F
> GLIBC_2.17 mq_notify F
> GLIBC_2.17 mq_open F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index a7cea3adda..02ab437a03 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -2392,6 +2392,7 @@ GLIBC_2.3.4 __xpg_strerror_r F
> GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> +GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2494,6 +2495,7 @@ GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> +GLIBC_2.34 mq_close F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
> index 2ae4408148..960db11285 100644
> --- a/sysdeps/unix/sysv/linux/alpha/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist
> @@ -10,7 +10,6 @@ GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> -GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index a296bd429d..cc26e87959 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -1288,6 +1288,7 @@ GLIBC_2.32 monstartup F
> GLIBC_2.32 mount F
> GLIBC_2.32 mprobe F
> GLIBC_2.32 mprotect F
> +GLIBC_2.32 mq_close F
> GLIBC_2.32 mrand48 F
> GLIBC_2.32 mrand48_r F
> GLIBC_2.32 mremap F
> @@ -2158,6 +2159,7 @@ GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> +GLIBC_2.34 mq_close F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
> index 86b7d92191..8d99f1fd34 100644
> --- a/sysdeps/unix/sysv/linux/arc/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/librt.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.32 __mq_open_2 F
> -GLIBC_2.32 mq_close F
> GLIBC_2.32 mq_getattr F
> GLIBC_2.32 mq_notify F
> GLIBC_2.32 mq_open F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index 5a11201a2c..bf0e6dd046 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -313,6 +313,7 @@ GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> +GLIBC_2.34 mq_close F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> @@ -1726,6 +1727,7 @@ GLIBC_2.4 monstartup F
> GLIBC_2.4 mount F
> GLIBC_2.4 mprobe F
> GLIBC_2.4 mprotect F
> +GLIBC_2.4 mq_close F
> GLIBC_2.4 mrand48 F
> GLIBC_2.4 mrand48_r F
> GLIBC_2.4 mremap F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> index 17eaad197b..a7a3efd732 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> @@ -2,7 +2,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 mq_close F
> GLIBC_2.4 mq_getattr F
> GLIBC_2.4 mq_notify F
> GLIBC_2.4 mq_open F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index ef6c2f934d..69149e1e31 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -310,6 +310,7 @@ GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> +GLIBC_2.34 mq_close F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> @@ -1723,6 +1724,7 @@ GLIBC_2.4 monstartup F
> GLIBC_2.4 mount F
> GLIBC_2.4 mprobe F
> GLIBC_2.4 mprotect F
> +GLIBC_2.4 mq_close F
> GLIBC_2.4 mrand48 F
> GLIBC_2.4 mrand48_r F
> GLIBC_2.4 mremap F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> index 17eaad197b..a7a3efd732 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> @@ -2,7 +2,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 mq_close F
> GLIBC_2.4 mq_getattr F
> GLIBC_2.4 mq_notify F
> GLIBC_2.4 mq_open F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index ce475d4237..24a8e779ef 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -1343,6 +1343,7 @@ GLIBC_2.29 monstartup F
> GLIBC_2.29 mount F
> GLIBC_2.29 mprobe F
> GLIBC_2.29 mprotect F
> +GLIBC_2.29 mq_close F
> GLIBC_2.29 mrand48 F
> GLIBC_2.29 mrand48_r F
> GLIBC_2.29 mremap F
> @@ -2419,6 +2420,7 @@ GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> +GLIBC_2.34 mq_close F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
> index b6dcc61492..f8439e803c 100644
> --- a/sysdeps/unix/sysv/linux/csky/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/librt.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.29 __mq_open_2 F
> -GLIBC_2.29 mq_close F
> GLIBC_2.29 mq_getattr F
> GLIBC_2.29 mq_notify F
> GLIBC_2.29 mq_open F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index 734c0b8832..108624e7d0 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -2206,6 +2206,7 @@ GLIBC_2.3.4 __xpg_strerror_r F
> GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> +GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2373,6 +2374,7 @@ GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> +GLIBC_2.34 mq_close F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
> index 4273983ece..2830671cbd 100644
> --- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
> @@ -4,7 +4,6 @@ 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.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index 796a5678a1..b261de5045 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -2387,6 +2387,7 @@ GLIBC_2.3.4 __xpg_strerror_r F
> GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> +GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2557,6 +2558,7 @@ GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> +GLIBC_2.34 mq_close F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
> index 4273983ece..2830671cbd 100644
> --- a/sysdeps/unix/sysv/linux/i386/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
> @@ -4,7 +4,6 @@ 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.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index 36769154e3..ae3d1362b4 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -2241,6 +2241,7 @@ GLIBC_2.3.4 __xpg_strerror_r F
> GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> +GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2332,6 +2333,7 @@ GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> +GLIBC_2.34 mq_close F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
> index 41bcd0064a..71fa79869e 100644
> --- a/sysdeps/unix/sysv/linux/ia64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/librt.abilist
> @@ -9,7 +9,6 @@ GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> -GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index ace87cf64d..719ad8c4cd 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -314,6 +314,7 @@ GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> +GLIBC_2.34 mq_close F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> @@ -1710,6 +1711,7 @@ GLIBC_2.4 monstartup F
> GLIBC_2.4 mount F
> GLIBC_2.4 mprobe F
> GLIBC_2.4 mprotect F
> +GLIBC_2.4 mq_close F
> GLIBC_2.4 mrand48 F
> GLIBC_2.4 mrand48_r F
> GLIBC_2.4 mremap F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> index 17eaad197b..a7a3efd732 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> @@ -2,7 +2,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 mq_close F
> GLIBC_2.4 mq_getattr F
> GLIBC_2.4 mq_notify F
> GLIBC_2.4 mq_open F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index ac56d8aaec..d9ebe5ff51 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -2330,6 +2330,7 @@ GLIBC_2.3.4 __xpg_strerror_r F
> GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> +GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2500,6 +2501,7 @@ GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> +GLIBC_2.34 mq_close F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> index 4273983ece..2830671cbd 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.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.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index 8383308b5d..7baacb6ac0 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -1359,6 +1359,7 @@ GLIBC_2.18 monstartup F
> GLIBC_2.18 mount F
> GLIBC_2.18 mprobe F
> GLIBC_2.18 mprotect F
> +GLIBC_2.18 mq_close F
> GLIBC_2.18 mrand48 F
> GLIBC_2.18 mrand48_r F
> GLIBC_2.18 mremap F
> @@ -2470,6 +2471,7 @@ GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> +GLIBC_2.34 mq_close F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> index 46388b39c0..826842df14 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.18 __mq_open_2 F
> -GLIBC_2.18 mq_close F
> GLIBC_2.18 mq_getattr F
> GLIBC_2.18 mq_notify F
> GLIBC_2.18 mq_open F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index 0b3fedbfbb..b7cf9054f5 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -1359,6 +1359,7 @@ GLIBC_2.18 monstartup F
> GLIBC_2.18 mount F
> GLIBC_2.18 mprobe F
> GLIBC_2.18 mprotect F
> +GLIBC_2.18 mq_close F
> GLIBC_2.18 mrand48 F
> GLIBC_2.18 mrand48_r F
> GLIBC_2.18 mremap F
> @@ -2467,6 +2468,7 @@ GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> +GLIBC_2.34 mq_close F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> index 46388b39c0..826842df14 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.18 __mq_open_2 F
> -GLIBC_2.18 mq_close F
> GLIBC_2.18 mq_getattr F
> GLIBC_2.18 mq_notify F
> GLIBC_2.18 mq_open F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index abcecd4913..0055c850c1 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -2298,6 +2298,7 @@ GLIBC_2.3.4 __xpg_strerror_r F
> GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> +GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2465,6 +2466,7 @@ GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> +GLIBC_2.34 mq_close F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> index d6bf4d5458..b9908f3752 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> @@ -3,7 +3,6 @@ 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.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index 5f5b458364..d1c756a5b6 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -2296,6 +2296,7 @@ GLIBC_2.3.4 __xpg_strerror_r F
> GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> +GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2463,6 +2464,7 @@ GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> +GLIBC_2.34 mq_close F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index 8d0bafe8c2..6a3275d75f 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -2304,6 +2304,7 @@ GLIBC_2.3.4 __xpg_strerror_r F
> GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> +GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2471,6 +2472,7 @@ GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> +GLIBC_2.34 mq_close F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> index d6bf4d5458..b9908f3752 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> @@ -3,7 +3,6 @@ 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.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index f18bbf6955..026d6f0c34 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -2298,6 +2298,7 @@ GLIBC_2.3.4 __xpg_strerror_r F
> GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> +GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2388,6 +2389,7 @@ GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> +GLIBC_2.34 mq_close F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> index cb685723d6..df7de1fd21 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> @@ -3,7 +3,6 @@ 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.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
Ok.
> diff --git a/sysdeps/unix/sysv/linux/mq_close.c b/sysdeps/unix/sysv/linux/mq_close.c
> index 83a28fd8fe..b07db33fbb 100644
> --- a/sysdeps/unix/sysv/linux/mq_close.c
> +++ b/sysdeps/unix/sysv/linux/mq_close.c
> @@ -18,11 +18,16 @@
> #include <errno.h>
> #include <mqueue.h>
> #include <sysdep.h>
> +#include <shlib-compat.h>
>
> /* Removes the association between message queue descriptor MQDES and its
> message queue. */
> int
> -mq_close (mqd_t mqdes)
> +__mq_close (mqd_t mqdes)
> {
> return INLINE_SYSCALL (close, 1, mqdes);
> }
> +versioned_symbol (libc, __mq_close, mq_close, GLIBC_2_34);
> +#if OTHER_SHLIB_COMPAT (librt, GLIBC_2_3_4, GLIBC_2_34)
> +compat_symbol (libc, __mq_close, mq_close, GLIBC_2_3_4);
> +#endif
Ok.
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index 676719705b..de7e07f62f 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -1402,6 +1402,7 @@ GLIBC_2.21 monstartup F
> GLIBC_2.21 mount F
> GLIBC_2.21 mprobe F
> GLIBC_2.21 mprotect F
> +GLIBC_2.21 mq_close F
> GLIBC_2.21 mrand48 F
> GLIBC_2.21 mrand48_r F
> GLIBC_2.21 mremap F
> @@ -2509,6 +2510,7 @@ GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> +GLIBC_2.34 mq_close F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
> index 54780bf8a8..8d7a95d6ac 100644
> --- a/sysdeps/unix/sysv/linux/nios2/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/librt.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.21 __mq_open_2 F
> -GLIBC_2.21 mq_close F
> GLIBC_2.21 mq_getattr F
> GLIBC_2.21 mq_notify F
> GLIBC_2.21 mq_open F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index 030d6bd5b5..11bca22288 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -2344,6 +2344,7 @@ GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 longjmp F
> GLIBC_2.3.4 makecontext F
> +GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2527,6 +2528,7 @@ GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> +GLIBC_2.34 mq_close F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> index 4273983ece..2830671cbd 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.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.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index 08f19201da..23823f46cf 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -2377,6 +2377,7 @@ GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 longjmp F
> GLIBC_2.3.4 makecontext F
> +GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2560,6 +2561,7 @@ GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> +GLIBC_2.34 mq_close F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index 6bd167883f..d4c732e826 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -2190,6 +2190,7 @@ GLIBC_2.3.4 getcontext F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 longjmp F
> +GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2296,6 +2297,7 @@ GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> +GLIBC_2.34 mq_close F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> index 9553ec7c29..e20095d937 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> @@ -8,7 +8,6 @@ GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> -GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index 62e5ddbca6..cf2f48704b 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -1445,6 +1445,7 @@ GLIBC_2.17 monstartup F
> GLIBC_2.17 mount F
> GLIBC_2.17 mprobe F
> GLIBC_2.17 mprotect F
> +GLIBC_2.17 mq_close F
> GLIBC_2.17 mrand48 F
> GLIBC_2.17 mrand48_r F
> GLIBC_2.17 mremap F
> @@ -2595,6 +2596,7 @@ GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> +GLIBC_2.34 mq_close F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> index 21ca06cf25..0f95d65af6 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.17 __mq_open_2 F
> -GLIBC_2.17 mq_close F
> GLIBC_2.17 mq_getattr F
> GLIBC_2.17 mq_notify F
> GLIBC_2.17 mq_open F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index a05dbdce4e..f731932abf 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -1290,6 +1290,7 @@ GLIBC_2.33 monstartup F
> GLIBC_2.33 mount F
> GLIBC_2.33 mprobe F
> GLIBC_2.33 mprotect F
> +GLIBC_2.33 mq_close F
> GLIBC_2.33 mrand48 F
> GLIBC_2.33 mrand48_r F
> GLIBC_2.33 mremap F
> @@ -2160,6 +2161,7 @@ GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> +GLIBC_2.34 mq_close F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> index 46954a5f42..1b681c4f40 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.33 __mq_open_2 F
> -GLIBC_2.33 mq_close F
> GLIBC_2.33 mq_getattr F
> GLIBC_2.33 mq_notify F
> GLIBC_2.33 mq_open F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index db7cd82676..5dbfcd8d85 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -1340,6 +1340,7 @@ GLIBC_2.27 monstartup F
> GLIBC_2.27 mount F
> GLIBC_2.27 mprobe F
> GLIBC_2.27 mprotect F
> +GLIBC_2.27 mq_close F
> GLIBC_2.27 mrand48 F
> GLIBC_2.27 mrand48_r F
> GLIBC_2.27 mremap F
> @@ -2360,6 +2361,7 @@ GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> +GLIBC_2.34 mq_close F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> index bf73abd7b8..05a7e7ab00 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.27 __mq_open_2 F
> -GLIBC_2.27 mq_close F
> GLIBC_2.27 mq_getattr F
> GLIBC_2.27 mq_notify F
> GLIBC_2.27 mq_open F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index a88aa419eb..b84e794be5 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -2343,6 +2343,7 @@ GLIBC_2.3.4 __xpg_strerror_r F
> GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> +GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2525,6 +2526,7 @@ GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> +GLIBC_2.34 mq_close F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> index 4273983ece..2830671cbd 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.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.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index 70bc3a8be7..5e500fc41b 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -2231,6 +2231,7 @@ GLIBC_2.3.4 __xpg_strerror_r F
> GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> +GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2333,6 +2334,7 @@ GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> +GLIBC_2.34 mq_close F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> index 0ed75b255b..eaf9985930 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> @@ -8,7 +8,6 @@ GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> -GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index 851b8660b4..5eacb42a61 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -2210,6 +2210,7 @@ GLIBC_2.3.4 __xpg_strerror_r F
> GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> +GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2380,6 +2381,7 @@ GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> +GLIBC_2.34 mq_close F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> index 4273983ece..2830671cbd 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.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.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index d8a75db6ed..1e6e234774 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -2210,6 +2210,7 @@ GLIBC_2.3.4 __xpg_strerror_r F
> GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> +GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2377,6 +2378,7 @@ GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> +GLIBC_2.34 mq_close F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> index 4273983ece..2830671cbd 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.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.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index 853ebccd44..c641491014 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -2341,6 +2341,7 @@ GLIBC_2.3.4 __xpg_strerror_r F
> GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> +GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2520,6 +2521,7 @@ GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> +GLIBC_2.34 mq_close F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> index 39ae533414..d7bd3edad5 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> @@ -5,7 +5,6 @@ GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime 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
> GLIBC_2.3.4 mq_open F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index 52fbd42f3e..834aaa1cb6 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -2265,6 +2265,7 @@ GLIBC_2.3.4 __xpg_strerror_r F
> GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> +GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2355,6 +2356,7 @@ GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> +GLIBC_2.34 mq_close F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> index 2ae4408148..960db11285 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> @@ -10,7 +10,6 @@ GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> -GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index 4afbd80fe4..3f17a41c66 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -2219,6 +2219,7 @@ GLIBC_2.3.4 __xpg_strerror_r F
> GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> +GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2311,6 +2312,7 @@ GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> +GLIBC_2.34 mq_close F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> index c7f2721961..6b8d77f1a7 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> @@ -8,7 +8,6 @@ GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> -GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index b48d936890..5ea3b75384 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -1364,6 +1364,7 @@ GLIBC_2.16 monstartup F
> GLIBC_2.16 mount F
> GLIBC_2.16 mprobe F
> GLIBC_2.16 mprotect F
> +GLIBC_2.16 mq_close F
> GLIBC_2.16 mrand48 F
> GLIBC_2.16 mrand48_r F
> GLIBC_2.16 mremap F
> @@ -2414,6 +2415,7 @@ GLIBC_2.34 dlvsym F
> GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> +GLIBC_2.34 mq_close F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> index f75c21efc1..660f1de033 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.16 __mq_open_2 F
> -GLIBC_2.16 mq_close F
> GLIBC_2.16 mq_getattr F
> GLIBC_2.16 mq_notify F
> GLIBC_2.16 mq_open F
>
Ok.
^ permalink raw reply [flat|nested] 72+ messages in thread
* [PATCH 21/34] Linux: Move mq_setattr from librt to libc
2021-06-17 18:56 [PATCH v2 00/34] Move librt into libc Florian Weimer
` (19 preceding siblings ...)
2021-06-17 18:58 ` [PATCH 20/34] Linux: Move mq_close " Florian Weimer
@ 2021-06-17 18:58 ` Florian Weimer
2021-06-24 14:02 ` Adhemerval Zanella
2021-06-17 18:58 ` [PATCH 22/34] Linux: Move mq_getattr " Florian Weimer
` (13 subsequent siblings)
34 siblings, 1 reply; 72+ messages in thread
From: Florian Weimer @ 2021-06-17 18:58 UTC (permalink / raw)
To: libc-alpha
The symbol was moved using scripts/move-symbol-to-libc.py.
To introduce the proper symbol versioning, the implementation of
the system call wrapper us moved to a C file.
---
include/mqueue.h | 7 ++++
rt/Makefile | 2 +-
rt/Versions | 4 ++-
sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/aarch64/librt.abilist | 1 -
sysdeps/unix/sysv/linux/alpha/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/alpha/librt.abilist | 1 -
sysdeps/unix/sysv/linux/arc/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/arc/librt.abilist | 1 -
sysdeps/unix/sysv/linux/arm/be/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/arm/be/librt.abilist | 1 -
sysdeps/unix/sysv/linux/arm/le/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/arm/le/librt.abilist | 1 -
sysdeps/unix/sysv/linux/csky/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/csky/librt.abilist | 1 -
sysdeps/unix/sysv/linux/hppa/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/hppa/librt.abilist | 1 -
sysdeps/unix/sysv/linux/i386/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/i386/librt.abilist | 1 -
sysdeps/unix/sysv/linux/ia64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/ia64/librt.abilist | 1 -
.../sysv/linux/m68k/coldfire/libc.abilist | 2 ++
.../sysv/linux/m68k/coldfire/librt.abilist | 1 -
.../unix/sysv/linux/m68k/m680x0/libc.abilist | 2 ++
.../unix/sysv/linux/m68k/m680x0/librt.abilist | 1 -
.../sysv/linux/microblaze/be/libc.abilist | 2 ++
.../sysv/linux/microblaze/be/librt.abilist | 1 -
.../sysv/linux/microblaze/le/libc.abilist | 2 ++
.../sysv/linux/microblaze/le/librt.abilist | 1 -
.../sysv/linux/mips/mips32/fpu/libc.abilist | 2 ++
.../unix/sysv/linux/mips/mips32/librt.abilist | 1 -
.../sysv/linux/mips/mips32/nofpu/libc.abilist | 2 ++
.../sysv/linux/mips/mips64/n32/libc.abilist | 2 ++
.../sysv/linux/mips/mips64/n32/librt.abilist | 1 -
.../sysv/linux/mips/mips64/n64/libc.abilist | 2 ++
.../sysv/linux/mips/mips64/n64/librt.abilist | 1 -
sysdeps/unix/sysv/linux/mq_setattr.c | 33 +++++++++++++++++++
sysdeps/unix/sysv/linux/nios2/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/nios2/librt.abilist | 1 -
.../linux/powerpc/powerpc32/fpu/libc.abilist | 2 ++
.../linux/powerpc/powerpc32/librt.abilist | 1 -
.../powerpc/powerpc32/nofpu/libc.abilist | 2 ++
.../linux/powerpc/powerpc64/be/libc.abilist | 2 ++
.../linux/powerpc/powerpc64/be/librt.abilist | 1 -
.../linux/powerpc/powerpc64/le/libc.abilist | 2 ++
.../linux/powerpc/powerpc64/le/librt.abilist | 1 -
.../unix/sysv/linux/riscv/rv32/libc.abilist | 2 ++
.../unix/sysv/linux/riscv/rv32/librt.abilist | 1 -
.../unix/sysv/linux/riscv/rv64/libc.abilist | 2 ++
.../unix/sysv/linux/riscv/rv64/librt.abilist | 1 -
.../unix/sysv/linux/s390/s390-32/libc.abilist | 2 ++
.../sysv/linux/s390/s390-32/librt.abilist | 1 -
.../unix/sysv/linux/s390/s390-64/libc.abilist | 2 ++
.../sysv/linux/s390/s390-64/librt.abilist | 1 -
sysdeps/unix/sysv/linux/sh/be/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/sh/be/librt.abilist | 1 -
sysdeps/unix/sysv/linux/sh/le/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/sh/le/librt.abilist | 1 -
.../sysv/linux/sparc/sparc32/libc.abilist | 2 ++
.../sysv/linux/sparc/sparc32/librt.abilist | 1 -
.../sysv/linux/sparc/sparc64/libc.abilist | 2 ++
.../sysv/linux/sparc/sparc64/librt.abilist | 1 -
sysdeps/unix/sysv/linux/syscalls.list | 2 --
.../unix/sysv/linux/x86_64/64/libc.abilist | 2 ++
.../unix/sysv/linux/x86_64/64/librt.abilist | 1 -
.../unix/sysv/linux/x86_64/x32/libc.abilist | 2 ++
.../unix/sysv/linux/x86_64/x32/librt.abilist | 1 -
67 files changed, 108 insertions(+), 34 deletions(-)
create mode 100644 sysdeps/unix/sysv/linux/mq_setattr.c
diff --git a/include/mqueue.h b/include/mqueue.h
index 98e4596c22..008589f0fa 100644
--- a/include/mqueue.h
+++ b/include/mqueue.h
@@ -8,8 +8,15 @@ hidden_proto (__mq_timedsend)
hidden_proto (mq_timedreceive)
extern __typeof (mq_timedreceive) __mq_timedreceive __nonnull ((2, 5));
hidden_proto (__mq_timedreceive)
+# if !PTHREAD_IN_LIBC
hidden_proto (mq_setattr)
+# endif
+# endif /* IS_IN (librt) */
+
+# if PTHREAD_IN_LIBC
+libc_hidden_proto (mq_setattr)
# endif
+
#include <struct___timespec64.h>
#if __TIMESIZE == 64
# define __mq_timedsend_time64 __mq_timedsend
diff --git a/rt/Makefile b/rt/Makefile
index 4ac93b2365..67c4e74a56 100644
--- a/rt/Makefile
+++ b/rt/Makefile
@@ -35,7 +35,6 @@ librt-routines = \
mq_open \
mq_receive \
mq_send \
- mq_setattr \
mq_timedreceive \
mq_timedsend \
mq_unlink \
@@ -63,6 +62,7 @@ $(librt-routines-var) += \
lio_listio \
lio_listio64 \
mq_close \
+ mq_setattr \
tests := tst-shm tst-timer tst-timer2 \
tst-aio tst-aio64 tst-aio2 tst-aio3 tst-aio4 tst-aio5 tst-aio6 \
diff --git a/rt/Versions b/rt/Versions
index d38b95b090..01ac8cd0be 100644
--- a/rt/Versions
+++ b/rt/Versions
@@ -27,6 +27,7 @@ libc {
GLIBC_2.3.4 {
%if PTHREAD_IN_LIBC
mq_close;
+ mq_setattr;
%endif
}
GLIBC_2.4 {
@@ -55,6 +56,7 @@ libc {
lio_listio;
lio_listio64;
mq_close;
+ mq_setattr;
%endif
shm_open;
shm_unlink;
@@ -107,13 +109,13 @@ librt {
GLIBC_2.3.4 {
%if !PTHREAD_IN_LIBC
mq_close;
+ mq_setattr;
%endif
mq_getattr;
mq_notify;
mq_open;
mq_receive;
mq_send;
- mq_setattr;
mq_timedreceive;
mq_timedsend;
mq_unlink;
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 80390d58c5..4bc3bd5ffb 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -1358,6 +1358,7 @@ GLIBC_2.17 mount F
GLIBC_2.17 mprobe F
GLIBC_2.17 mprotect F
GLIBC_2.17 mq_close F
+GLIBC_2.17 mq_setattr F
GLIBC_2.17 mrand48 F
GLIBC_2.17 mrand48_r F
GLIBC_2.17 mremap F
@@ -2401,6 +2402,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
index 0f95d65af6..5577602ea8 100644
--- a/sysdeps/unix/sysv/linux/aarch64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
@@ -4,7 +4,6 @@ GLIBC_2.17 mq_notify F
GLIBC_2.17 mq_open F
GLIBC_2.17 mq_receive F
GLIBC_2.17 mq_send F
-GLIBC_2.17 mq_setattr F
GLIBC_2.17 mq_timedreceive F
GLIBC_2.17 mq_timedsend F
GLIBC_2.17 mq_unlink F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 02ab437a03..f991411721 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -2393,6 +2393,7 @@ GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
+GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2496,6 +2497,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
index 960db11285..59e770d345 100644
--- a/sysdeps/unix/sysv/linux/alpha/librt.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist
@@ -15,7 +15,6 @@ GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index cc26e87959..d71034a0a4 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1289,6 +1289,7 @@ GLIBC_2.32 mount F
GLIBC_2.32 mprobe F
GLIBC_2.32 mprotect F
GLIBC_2.32 mq_close F
+GLIBC_2.32 mq_setattr F
GLIBC_2.32 mrand48 F
GLIBC_2.32 mrand48_r F
GLIBC_2.32 mremap F
@@ -2160,6 +2161,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
index 8d99f1fd34..6d4a02edac 100644
--- a/sysdeps/unix/sysv/linux/arc/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arc/librt.abilist
@@ -4,7 +4,6 @@ GLIBC_2.32 mq_notify F
GLIBC_2.32 mq_open F
GLIBC_2.32 mq_receive F
GLIBC_2.32 mq_send F
-GLIBC_2.32 mq_setattr F
GLIBC_2.32 mq_timedreceive F
GLIBC_2.32 mq_timedsend F
GLIBC_2.32 mq_unlink F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index bf0e6dd046..753d824fb6 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -314,6 +314,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
@@ -1728,6 +1729,7 @@ GLIBC_2.4 mount F
GLIBC_2.4 mprobe F
GLIBC_2.4 mprotect F
GLIBC_2.4 mq_close F
+GLIBC_2.4 mq_setattr F
GLIBC_2.4 mrand48 F
GLIBC_2.4 mrand48_r F
GLIBC_2.4 mremap F
diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
index a7a3efd732..1e9b5a4dfb 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -7,7 +7,6 @@ GLIBC_2.4 mq_notify F
GLIBC_2.4 mq_open F
GLIBC_2.4 mq_receive F
GLIBC_2.4 mq_send F
-GLIBC_2.4 mq_setattr F
GLIBC_2.4 mq_timedreceive F
GLIBC_2.4 mq_timedsend F
GLIBC_2.4 mq_unlink F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 69149e1e31..a71fc473c5 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -311,6 +311,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
@@ -1725,6 +1726,7 @@ GLIBC_2.4 mount F
GLIBC_2.4 mprobe F
GLIBC_2.4 mprotect F
GLIBC_2.4 mq_close F
+GLIBC_2.4 mq_setattr F
GLIBC_2.4 mrand48 F
GLIBC_2.4 mrand48_r F
GLIBC_2.4 mremap F
diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
index a7a3efd732..1e9b5a4dfb 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -7,7 +7,6 @@ GLIBC_2.4 mq_notify F
GLIBC_2.4 mq_open F
GLIBC_2.4 mq_receive F
GLIBC_2.4 mq_send F
-GLIBC_2.4 mq_setattr F
GLIBC_2.4 mq_timedreceive F
GLIBC_2.4 mq_timedsend F
GLIBC_2.4 mq_unlink F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 24a8e779ef..924377d21d 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -1344,6 +1344,7 @@ GLIBC_2.29 mount F
GLIBC_2.29 mprobe F
GLIBC_2.29 mprotect F
GLIBC_2.29 mq_close F
+GLIBC_2.29 mq_setattr F
GLIBC_2.29 mrand48 F
GLIBC_2.29 mrand48_r F
GLIBC_2.29 mremap F
@@ -2421,6 +2422,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
index f8439e803c..5ded0dc421 100644
--- a/sysdeps/unix/sysv/linux/csky/librt.abilist
+++ b/sysdeps/unix/sysv/linux/csky/librt.abilist
@@ -4,7 +4,6 @@ GLIBC_2.29 mq_notify F
GLIBC_2.29 mq_open F
GLIBC_2.29 mq_receive F
GLIBC_2.29 mq_send F
-GLIBC_2.29 mq_setattr F
GLIBC_2.29 mq_timedreceive F
GLIBC_2.29 mq_timedsend F
GLIBC_2.29 mq_unlink F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 108624e7d0..df153c161d 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -2207,6 +2207,7 @@ GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
+GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2375,6 +2376,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
index 2830671cbd..73eb37021f 100644
--- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
@@ -9,7 +9,6 @@ GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index b261de5045..0dc4c677be 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -2388,6 +2388,7 @@ GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
+GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2559,6 +2560,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
index 2830671cbd..73eb37021f 100644
--- a/sysdeps/unix/sysv/linux/i386/librt.abilist
+++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
@@ -9,7 +9,6 @@ GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index ae3d1362b4..ddc9db0d2c 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -2242,6 +2242,7 @@ GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
+GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2334,6 +2335,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
index 71fa79869e..2e8a0d4c82 100644
--- a/sysdeps/unix/sysv/linux/ia64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/librt.abilist
@@ -14,7 +14,6 @@ GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 719ad8c4cd..2f078539d4 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -315,6 +315,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
@@ -1712,6 +1713,7 @@ GLIBC_2.4 mount F
GLIBC_2.4 mprobe F
GLIBC_2.4 mprotect F
GLIBC_2.4 mq_close F
+GLIBC_2.4 mq_setattr F
GLIBC_2.4 mrand48 F
GLIBC_2.4 mrand48_r F
GLIBC_2.4 mremap F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
index a7a3efd732..1e9b5a4dfb 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -7,7 +7,6 @@ GLIBC_2.4 mq_notify F
GLIBC_2.4 mq_open F
GLIBC_2.4 mq_receive F
GLIBC_2.4 mq_send F
-GLIBC_2.4 mq_setattr F
GLIBC_2.4 mq_timedreceive F
GLIBC_2.4 mq_timedsend F
GLIBC_2.4 mq_unlink F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index d9ebe5ff51..457001393e 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2331,6 +2331,7 @@ GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
+GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2502,6 +2503,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
index 2830671cbd..73eb37021f 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
@@ -9,7 +9,6 @@ GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 7baacb6ac0..e0cff30061 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -1360,6 +1360,7 @@ GLIBC_2.18 mount F
GLIBC_2.18 mprobe F
GLIBC_2.18 mprotect F
GLIBC_2.18 mq_close F
+GLIBC_2.18 mq_setattr F
GLIBC_2.18 mrand48 F
GLIBC_2.18 mrand48_r F
GLIBC_2.18 mremap F
@@ -2472,6 +2473,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
index 826842df14..c42d6f70be 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
@@ -4,7 +4,6 @@ GLIBC_2.18 mq_notify F
GLIBC_2.18 mq_open F
GLIBC_2.18 mq_receive F
GLIBC_2.18 mq_send F
-GLIBC_2.18 mq_setattr F
GLIBC_2.18 mq_timedreceive F
GLIBC_2.18 mq_timedsend F
GLIBC_2.18 mq_unlink F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index b7cf9054f5..697298a2bb 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -1360,6 +1360,7 @@ GLIBC_2.18 mount F
GLIBC_2.18 mprobe F
GLIBC_2.18 mprotect F
GLIBC_2.18 mq_close F
+GLIBC_2.18 mq_setattr F
GLIBC_2.18 mrand48 F
GLIBC_2.18 mrand48_r F
GLIBC_2.18 mremap F
@@ -2469,6 +2470,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
index 826842df14..c42d6f70be 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
@@ -4,7 +4,6 @@ GLIBC_2.18 mq_notify F
GLIBC_2.18 mq_open F
GLIBC_2.18 mq_receive F
GLIBC_2.18 mq_send F
-GLIBC_2.18 mq_setattr F
GLIBC_2.18 mq_timedreceive F
GLIBC_2.18 mq_timedsend F
GLIBC_2.18 mq_unlink F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 0055c850c1..529d002804 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -2299,6 +2299,7 @@ GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
+GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2467,6 +2468,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
index b9908f3752..66ace7f63f 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
@@ -8,7 +8,6 @@ GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index d1c756a5b6..14343fdd69 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -2297,6 +2297,7 @@ GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
+GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2465,6 +2466,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 6a3275d75f..af1379fcd5 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -2305,6 +2305,7 @@ GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
+GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2473,6 +2474,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
index b9908f3752..66ace7f63f 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
@@ -8,7 +8,6 @@ GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 026d6f0c34..ed0e42ddf4 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -2299,6 +2299,7 @@ GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
+GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2390,6 +2391,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
index df7de1fd21..6957efa4dd 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
@@ -8,7 +8,6 @@ GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
diff --git a/sysdeps/unix/sysv/linux/mq_setattr.c b/sysdeps/unix/sysv/linux/mq_setattr.c
new file mode 100644
index 0000000000..9631aa5da6
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mq_setattr.c
@@ -0,0 +1,33 @@
+/* mq_setattr system call wrapper.
+ 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 <mqueue.h>
+#include <shlib-compat.h>
+#include <sysdep.h>
+
+int
+__mq_setattr (mqd_t mqdes, const struct mq_attr *__restrict mqstat,
+ struct mq_attr *__restrict omqstat)
+{
+ return INLINE_SYSCALL_CALL (mq_getsetattr, mqdes, mqstat, omqstat);
+}
+versioned_symbol (libc, __mq_setattr, mq_setattr, GLIBC_2_34);
+libc_hidden_ver (__mq_setattr, mq_setattr)
+#if OTHER_SHLIB_COMPAT (librt, GLIBC_2_3_4, GLIBC_2_34)
+compat_symbol (librt, __mq_setattr, mq_setattr, GLIBC_2_3_4);
+#endif
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index de7e07f62f..53f30a93fa 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -1403,6 +1403,7 @@ GLIBC_2.21 mount F
GLIBC_2.21 mprobe F
GLIBC_2.21 mprotect F
GLIBC_2.21 mq_close F
+GLIBC_2.21 mq_setattr F
GLIBC_2.21 mrand48 F
GLIBC_2.21 mrand48_r F
GLIBC_2.21 mremap F
@@ -2511,6 +2512,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
index 8d7a95d6ac..c6d440aea4 100644
--- a/sysdeps/unix/sysv/linux/nios2/librt.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/librt.abilist
@@ -4,7 +4,6 @@ GLIBC_2.21 mq_notify F
GLIBC_2.21 mq_open F
GLIBC_2.21 mq_receive F
GLIBC_2.21 mq_send F
-GLIBC_2.21 mq_setattr F
GLIBC_2.21 mq_timedreceive F
GLIBC_2.21 mq_timedsend F
GLIBC_2.21 mq_unlink F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 11bca22288..eeb6d57f25 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -2345,6 +2345,7 @@ GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 longjmp F
GLIBC_2.3.4 makecontext F
GLIBC_2.3.4 mq_close F
+GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2529,6 +2530,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
index 2830671cbd..73eb37021f 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
@@ -9,7 +9,6 @@ GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 23823f46cf..afa5274916 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -2378,6 +2378,7 @@ GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 longjmp F
GLIBC_2.3.4 makecontext F
GLIBC_2.3.4 mq_close F
+GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2562,6 +2563,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index d4c732e826..a01854490b 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -2191,6 +2191,7 @@ GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 longjmp F
GLIBC_2.3.4 mq_close F
+GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2298,6 +2299,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
index e20095d937..0534a11718 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
@@ -13,7 +13,6 @@ GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index cf2f48704b..476ebab28f 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -1446,6 +1446,7 @@ GLIBC_2.17 mount F
GLIBC_2.17 mprobe F
GLIBC_2.17 mprotect F
GLIBC_2.17 mq_close F
+GLIBC_2.17 mq_setattr F
GLIBC_2.17 mrand48 F
GLIBC_2.17 mrand48_r F
GLIBC_2.17 mremap F
@@ -2597,6 +2598,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
index 0f95d65af6..5577602ea8 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
@@ -4,7 +4,6 @@ GLIBC_2.17 mq_notify F
GLIBC_2.17 mq_open F
GLIBC_2.17 mq_receive F
GLIBC_2.17 mq_send F
-GLIBC_2.17 mq_setattr F
GLIBC_2.17 mq_timedreceive F
GLIBC_2.17 mq_timedsend F
GLIBC_2.17 mq_unlink F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index f731932abf..48882415a6 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1291,6 +1291,7 @@ GLIBC_2.33 mount F
GLIBC_2.33 mprobe F
GLIBC_2.33 mprotect F
GLIBC_2.33 mq_close F
+GLIBC_2.33 mq_setattr F
GLIBC_2.33 mrand48 F
GLIBC_2.33 mrand48_r F
GLIBC_2.33 mremap F
@@ -2162,6 +2163,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
index 1b681c4f40..fc8a2d3353 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
@@ -4,7 +4,6 @@ GLIBC_2.33 mq_notify F
GLIBC_2.33 mq_open F
GLIBC_2.33 mq_receive F
GLIBC_2.33 mq_send F
-GLIBC_2.33 mq_setattr F
GLIBC_2.33 mq_timedreceive F
GLIBC_2.33 mq_timedsend F
GLIBC_2.33 mq_unlink F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 5dbfcd8d85..006d0c911d 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -1341,6 +1341,7 @@ GLIBC_2.27 mount F
GLIBC_2.27 mprobe F
GLIBC_2.27 mprotect F
GLIBC_2.27 mq_close F
+GLIBC_2.27 mq_setattr F
GLIBC_2.27 mrand48 F
GLIBC_2.27 mrand48_r F
GLIBC_2.27 mremap F
@@ -2362,6 +2363,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
index 05a7e7ab00..85c6dfae23 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
@@ -4,7 +4,6 @@ GLIBC_2.27 mq_notify F
GLIBC_2.27 mq_open F
GLIBC_2.27 mq_receive F
GLIBC_2.27 mq_send F
-GLIBC_2.27 mq_setattr F
GLIBC_2.27 mq_timedreceive F
GLIBC_2.27 mq_timedsend F
GLIBC_2.27 mq_unlink F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index b84e794be5..0f5a0ebb1c 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -2344,6 +2344,7 @@ GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
+GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2527,6 +2528,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
index 2830671cbd..73eb37021f 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
@@ -9,7 +9,6 @@ GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 5e500fc41b..4aa1a9fa74 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -2232,6 +2232,7 @@ GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
+GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2335,6 +2336,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
index eaf9985930..7bc6c2d4e6 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
@@ -13,7 +13,6 @@ GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 5eacb42a61..db1f29d905 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -2211,6 +2211,7 @@ GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
+GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2382,6 +2383,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
index 2830671cbd..73eb37021f 100644
--- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
@@ -9,7 +9,6 @@ GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 1e6e234774..961d2b66e0 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -2211,6 +2211,7 @@ GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
+GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2379,6 +2380,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
index 2830671cbd..73eb37021f 100644
--- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
@@ -9,7 +9,6 @@ GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index c641491014..d70c6499a8 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -2342,6 +2342,7 @@ GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
+GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2522,6 +2523,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
index d7bd3edad5..36b9ea794f 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
@@ -10,7 +10,6 @@ GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 834aaa1cb6..9f18195c9d 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -2266,6 +2266,7 @@ GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
+GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2357,6 +2358,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
index 960db11285..59e770d345 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
@@ -15,7 +15,6 @@ GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
diff --git a/sysdeps/unix/sysv/linux/syscalls.list b/sysdeps/unix/sysv/linux/syscalls.list
index 01ec2bfa95..62329abb49 100644
--- a/sysdeps/unix/sysv/linux/syscalls.list
+++ b/sysdeps/unix/sysv/linux/syscalls.list
@@ -86,8 +86,6 @@ removexattr - removexattr i:ss removexattr
lremovexattr - lremovexattr i:ss lremovexattr
fremovexattr - fremovexattr i:is fremovexattr
-mq_setattr - mq_getsetattr i:ipp mq_setattr
-
timerfd_create EXTRA timerfd_create i:ii timerfd_create
fanotify_init EXTRA fanotify_init i:ii fanotify_init
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 3f17a41c66..05c1f47233 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -2220,6 +2220,7 @@ GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
+GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2313,6 +2314,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
index 6b8d77f1a7..d7e5e48295 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
@@ -13,7 +13,6 @@ GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 5ea3b75384..b839033cde 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -1365,6 +1365,7 @@ GLIBC_2.16 mount F
GLIBC_2.16 mprobe F
GLIBC_2.16 mprotect F
GLIBC_2.16 mq_close F
+GLIBC_2.16 mq_setattr F
GLIBC_2.16 mrand48 F
GLIBC_2.16 mrand48_r F
GLIBC_2.16 mremap F
@@ -2416,6 +2417,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
index 660f1de033..24c03ebc8b 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
@@ -4,7 +4,6 @@ GLIBC_2.16 mq_notify F
GLIBC_2.16 mq_open F
GLIBC_2.16 mq_receive F
GLIBC_2.16 mq_send F
-GLIBC_2.16 mq_setattr F
GLIBC_2.16 mq_timedreceive F
GLIBC_2.16 mq_timedsend F
GLIBC_2.16 mq_unlink F
--
2.31.1
^ permalink raw reply [flat|nested] 72+ messages in thread
* Re: [PATCH 21/34] Linux: Move mq_setattr from librt to libc
2021-06-17 18:58 ` [PATCH 21/34] Linux: Move mq_setattr " Florian Weimer
@ 2021-06-24 14:02 ` Adhemerval Zanella
2021-06-25 10:02 ` Florian Weimer
0 siblings, 1 reply; 72+ messages in thread
From: Adhemerval Zanella @ 2021-06-24 14:02 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 17/06/2021 15:58, Florian Weimer via Libc-alpha wrote:
> The symbol was moved using scripts/move-symbol-to-libc.py.
>
> To introduce the proper symbol versioning, the implementation of
> the system call wrapper us moved to a C file.
LGTM, thanks.
Reviewed-by: Adhemerva Zanella <adhemerval.zanella@linaro.org>
> ---
> include/mqueue.h | 7 ++++
> rt/Makefile | 2 +-
> rt/Versions | 4 ++-
> sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/aarch64/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/alpha/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/alpha/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/arc/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/arc/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/arm/be/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/arm/be/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/arm/le/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/arm/le/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/csky/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/csky/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/hppa/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/hppa/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/i386/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/i386/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/ia64/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/ia64/librt.abilist | 1 -
> .../sysv/linux/m68k/coldfire/libc.abilist | 2 ++
> .../sysv/linux/m68k/coldfire/librt.abilist | 1 -
> .../unix/sysv/linux/m68k/m680x0/libc.abilist | 2 ++
> .../unix/sysv/linux/m68k/m680x0/librt.abilist | 1 -
> .../sysv/linux/microblaze/be/libc.abilist | 2 ++
> .../sysv/linux/microblaze/be/librt.abilist | 1 -
> .../sysv/linux/microblaze/le/libc.abilist | 2 ++
> .../sysv/linux/microblaze/le/librt.abilist | 1 -
> .../sysv/linux/mips/mips32/fpu/libc.abilist | 2 ++
> .../unix/sysv/linux/mips/mips32/librt.abilist | 1 -
> .../sysv/linux/mips/mips32/nofpu/libc.abilist | 2 ++
> .../sysv/linux/mips/mips64/n32/libc.abilist | 2 ++
> .../sysv/linux/mips/mips64/n32/librt.abilist | 1 -
> .../sysv/linux/mips/mips64/n64/libc.abilist | 2 ++
> .../sysv/linux/mips/mips64/n64/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/mq_setattr.c | 33 +++++++++++++++++++
> sysdeps/unix/sysv/linux/nios2/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/nios2/librt.abilist | 1 -
> .../linux/powerpc/powerpc32/fpu/libc.abilist | 2 ++
> .../linux/powerpc/powerpc32/librt.abilist | 1 -
> .../powerpc/powerpc32/nofpu/libc.abilist | 2 ++
> .../linux/powerpc/powerpc64/be/libc.abilist | 2 ++
> .../linux/powerpc/powerpc64/be/librt.abilist | 1 -
> .../linux/powerpc/powerpc64/le/libc.abilist | 2 ++
> .../linux/powerpc/powerpc64/le/librt.abilist | 1 -
> .../unix/sysv/linux/riscv/rv32/libc.abilist | 2 ++
> .../unix/sysv/linux/riscv/rv32/librt.abilist | 1 -
> .../unix/sysv/linux/riscv/rv64/libc.abilist | 2 ++
> .../unix/sysv/linux/riscv/rv64/librt.abilist | 1 -
> .../unix/sysv/linux/s390/s390-32/libc.abilist | 2 ++
> .../sysv/linux/s390/s390-32/librt.abilist | 1 -
> .../unix/sysv/linux/s390/s390-64/libc.abilist | 2 ++
> .../sysv/linux/s390/s390-64/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/sh/be/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/sh/be/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/sh/le/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/sh/le/librt.abilist | 1 -
> .../sysv/linux/sparc/sparc32/libc.abilist | 2 ++
> .../sysv/linux/sparc/sparc32/librt.abilist | 1 -
> .../sysv/linux/sparc/sparc64/libc.abilist | 2 ++
> .../sysv/linux/sparc/sparc64/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/syscalls.list | 2 --
> .../unix/sysv/linux/x86_64/64/libc.abilist | 2 ++
> .../unix/sysv/linux/x86_64/64/librt.abilist | 1 -
> .../unix/sysv/linux/x86_64/x32/libc.abilist | 2 ++
> .../unix/sysv/linux/x86_64/x32/librt.abilist | 1 -
> 67 files changed, 108 insertions(+), 34 deletions(-)
> create mode 100644 sysdeps/unix/sysv/linux/mq_setattr.c
>
> diff --git a/include/mqueue.h b/include/mqueue.h
> index 98e4596c22..008589f0fa 100644
> --- a/include/mqueue.h
> +++ b/include/mqueue.h
> @@ -8,8 +8,15 @@ hidden_proto (__mq_timedsend)
> hidden_proto (mq_timedreceive)
> extern __typeof (mq_timedreceive) __mq_timedreceive __nonnull ((2, 5));
> hidden_proto (__mq_timedreceive)
> +# if !PTHREAD_IN_LIBC
> hidden_proto (mq_setattr)
> +# endif
> +# endif /* IS_IN (librt) */
> +
> +# if PTHREAD_IN_LIBC
> +libc_hidden_proto (mq_setattr)
> # endif
> +
> #include <struct___timespec64.h>
> #if __TIMESIZE == 64
> # define __mq_timedsend_time64 __mq_timedsend
Ok.
> diff --git a/rt/Makefile b/rt/Makefile
> index 4ac93b2365..67c4e74a56 100644
> --- a/rt/Makefile
> +++ b/rt/Makefile
> @@ -35,7 +35,6 @@ librt-routines = \
> mq_open \
> mq_receive \
> mq_send \
> - mq_setattr \
> mq_timedreceive \
> mq_timedsend \
> mq_unlink \
> @@ -63,6 +62,7 @@ $(librt-routines-var) += \
> lio_listio \
> lio_listio64 \
> mq_close \
> + mq_setattr \
>
> tests := tst-shm tst-timer tst-timer2 \
> tst-aio tst-aio64 tst-aio2 tst-aio3 tst-aio4 tst-aio5 tst-aio6 \
Ok.
> diff --git a/rt/Versions b/rt/Versions
> index d38b95b090..01ac8cd0be 100644
> --- a/rt/Versions
> +++ b/rt/Versions
> @@ -27,6 +27,7 @@ libc {
> GLIBC_2.3.4 {
> %if PTHREAD_IN_LIBC
> mq_close;
> + mq_setattr;
> %endif
> }
> GLIBC_2.4 {
> @@ -55,6 +56,7 @@ libc {
> lio_listio;
> lio_listio64;
> mq_close;
> + mq_setattr;
> %endif
> shm_open;
> shm_unlink;
> @@ -107,13 +109,13 @@ librt {
> GLIBC_2.3.4 {
> %if !PTHREAD_IN_LIBC
> mq_close;
> + mq_setattr;
> %endif
> mq_getattr;
> mq_notify;
> mq_open;
> mq_receive;
> mq_send;
> - mq_setattr;
> mq_timedreceive;
> mq_timedsend;
> mq_unlink;
Ok.
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index 80390d58c5..4bc3bd5ffb 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -1358,6 +1358,7 @@ GLIBC_2.17 mount F
> GLIBC_2.17 mprobe F
> GLIBC_2.17 mprotect F
> GLIBC_2.17 mq_close F
> +GLIBC_2.17 mq_setattr F
> GLIBC_2.17 mrand48 F
> GLIBC_2.17 mrand48_r F
> GLIBC_2.17 mremap F
> @@ -2401,6 +2402,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> index 0f95d65af6..5577602ea8 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.17 mq_notify F
> GLIBC_2.17 mq_open F
> GLIBC_2.17 mq_receive F
> GLIBC_2.17 mq_send F
> -GLIBC_2.17 mq_setattr F
> GLIBC_2.17 mq_timedreceive F
> GLIBC_2.17 mq_timedsend F
> GLIBC_2.17 mq_unlink F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index 02ab437a03..f991411721 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -2393,6 +2393,7 @@ GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> +GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2496,6 +2497,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
> index 960db11285..59e770d345 100644
> --- a/sysdeps/unix/sysv/linux/alpha/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist
> @@ -15,7 +15,6 @@ GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> -GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index cc26e87959..d71034a0a4 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -1289,6 +1289,7 @@ GLIBC_2.32 mount F
> GLIBC_2.32 mprobe F
> GLIBC_2.32 mprotect F
> GLIBC_2.32 mq_close F
> +GLIBC_2.32 mq_setattr F
> GLIBC_2.32 mrand48 F
> GLIBC_2.32 mrand48_r F
> GLIBC_2.32 mremap F
> @@ -2160,6 +2161,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
> index 8d99f1fd34..6d4a02edac 100644
> --- a/sysdeps/unix/sysv/linux/arc/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.32 mq_notify F
> GLIBC_2.32 mq_open F
> GLIBC_2.32 mq_receive F
> GLIBC_2.32 mq_send F
> -GLIBC_2.32 mq_setattr F
> GLIBC_2.32 mq_timedreceive F
> GLIBC_2.32 mq_timedsend F
> GLIBC_2.32 mq_unlink F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index bf0e6dd046..753d824fb6 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -314,6 +314,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> @@ -1728,6 +1729,7 @@ GLIBC_2.4 mount F
> GLIBC_2.4 mprobe F
> GLIBC_2.4 mprotect F
> GLIBC_2.4 mq_close F
> +GLIBC_2.4 mq_setattr F
> GLIBC_2.4 mrand48 F
> GLIBC_2.4 mrand48_r F
> GLIBC_2.4 mremap F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> index a7a3efd732..1e9b5a4dfb 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> @@ -7,7 +7,6 @@ GLIBC_2.4 mq_notify F
> GLIBC_2.4 mq_open F
> GLIBC_2.4 mq_receive F
> GLIBC_2.4 mq_send F
> -GLIBC_2.4 mq_setattr F
> GLIBC_2.4 mq_timedreceive F
> GLIBC_2.4 mq_timedsend F
> GLIBC_2.4 mq_unlink F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index 69149e1e31..a71fc473c5 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -311,6 +311,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> @@ -1725,6 +1726,7 @@ GLIBC_2.4 mount F
> GLIBC_2.4 mprobe F
> GLIBC_2.4 mprotect F
> GLIBC_2.4 mq_close F
> +GLIBC_2.4 mq_setattr F
> GLIBC_2.4 mrand48 F
> GLIBC_2.4 mrand48_r F
> GLIBC_2.4 mremap F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> index a7a3efd732..1e9b5a4dfb 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> @@ -7,7 +7,6 @@ GLIBC_2.4 mq_notify F
> GLIBC_2.4 mq_open F
> GLIBC_2.4 mq_receive F
> GLIBC_2.4 mq_send F
> -GLIBC_2.4 mq_setattr F
> GLIBC_2.4 mq_timedreceive F
> GLIBC_2.4 mq_timedsend F
> GLIBC_2.4 mq_unlink F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index 24a8e779ef..924377d21d 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -1344,6 +1344,7 @@ GLIBC_2.29 mount F
> GLIBC_2.29 mprobe F
> GLIBC_2.29 mprotect F
> GLIBC_2.29 mq_close F
> +GLIBC_2.29 mq_setattr F
> GLIBC_2.29 mrand48 F
> GLIBC_2.29 mrand48_r F
> GLIBC_2.29 mremap F
> @@ -2421,6 +2422,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
> index f8439e803c..5ded0dc421 100644
> --- a/sysdeps/unix/sysv/linux/csky/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.29 mq_notify F
> GLIBC_2.29 mq_open F
> GLIBC_2.29 mq_receive F
> GLIBC_2.29 mq_send F
> -GLIBC_2.29 mq_setattr F
> GLIBC_2.29 mq_timedreceive F
> GLIBC_2.29 mq_timedsend F
> GLIBC_2.29 mq_unlink F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index 108624e7d0..df153c161d 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -2207,6 +2207,7 @@ GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> +GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2375,6 +2376,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
> index 2830671cbd..73eb37021f 100644
> --- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
> @@ -9,7 +9,6 @@ GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> -GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index b261de5045..0dc4c677be 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -2388,6 +2388,7 @@ GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> +GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2559,6 +2560,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
> index 2830671cbd..73eb37021f 100644
> --- a/sysdeps/unix/sysv/linux/i386/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
> @@ -9,7 +9,6 @@ GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> -GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index ae3d1362b4..ddc9db0d2c 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -2242,6 +2242,7 @@ GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> +GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2334,6 +2335,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
> index 71fa79869e..2e8a0d4c82 100644
> --- a/sysdeps/unix/sysv/linux/ia64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/librt.abilist
> @@ -14,7 +14,6 @@ GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> -GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index 719ad8c4cd..2f078539d4 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -315,6 +315,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> @@ -1712,6 +1713,7 @@ GLIBC_2.4 mount F
> GLIBC_2.4 mprobe F
> GLIBC_2.4 mprotect F
> GLIBC_2.4 mq_close F
> +GLIBC_2.4 mq_setattr F
> GLIBC_2.4 mrand48 F
> GLIBC_2.4 mrand48_r F
> GLIBC_2.4 mremap F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> index a7a3efd732..1e9b5a4dfb 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> @@ -7,7 +7,6 @@ GLIBC_2.4 mq_notify F
> GLIBC_2.4 mq_open F
> GLIBC_2.4 mq_receive F
> GLIBC_2.4 mq_send F
> -GLIBC_2.4 mq_setattr F
> GLIBC_2.4 mq_timedreceive F
> GLIBC_2.4 mq_timedsend F
> GLIBC_2.4 mq_unlink F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index d9ebe5ff51..457001393e 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -2331,6 +2331,7 @@ GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> +GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2502,6 +2503,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> index 2830671cbd..73eb37021f 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> @@ -9,7 +9,6 @@ GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> -GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index 7baacb6ac0..e0cff30061 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -1360,6 +1360,7 @@ GLIBC_2.18 mount F
> GLIBC_2.18 mprobe F
> GLIBC_2.18 mprotect F
> GLIBC_2.18 mq_close F
> +GLIBC_2.18 mq_setattr F
> GLIBC_2.18 mrand48 F
> GLIBC_2.18 mrand48_r F
> GLIBC_2.18 mremap F
> @@ -2472,6 +2473,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> index 826842df14..c42d6f70be 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.18 mq_notify F
> GLIBC_2.18 mq_open F
> GLIBC_2.18 mq_receive F
> GLIBC_2.18 mq_send F
> -GLIBC_2.18 mq_setattr F
> GLIBC_2.18 mq_timedreceive F
> GLIBC_2.18 mq_timedsend F
> GLIBC_2.18 mq_unlink F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index b7cf9054f5..697298a2bb 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -1360,6 +1360,7 @@ GLIBC_2.18 mount F
> GLIBC_2.18 mprobe F
> GLIBC_2.18 mprotect F
> GLIBC_2.18 mq_close F
> +GLIBC_2.18 mq_setattr F
> GLIBC_2.18 mrand48 F
> GLIBC_2.18 mrand48_r F
> GLIBC_2.18 mremap F
> @@ -2469,6 +2470,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> index 826842df14..c42d6f70be 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.18 mq_notify F
> GLIBC_2.18 mq_open F
> GLIBC_2.18 mq_receive F
> GLIBC_2.18 mq_send F
> -GLIBC_2.18 mq_setattr F
> GLIBC_2.18 mq_timedreceive F
> GLIBC_2.18 mq_timedsend F
> GLIBC_2.18 mq_unlink F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index 0055c850c1..529d002804 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -2299,6 +2299,7 @@ GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> +GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2467,6 +2468,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> index b9908f3752..66ace7f63f 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> @@ -8,7 +8,6 @@ GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> -GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index d1c756a5b6..14343fdd69 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -2297,6 +2297,7 @@ GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> +GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2465,6 +2466,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index 6a3275d75f..af1379fcd5 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -2305,6 +2305,7 @@ GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> +GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2473,6 +2474,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> index b9908f3752..66ace7f63f 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> @@ -8,7 +8,6 @@ GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> -GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index 026d6f0c34..ed0e42ddf4 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -2299,6 +2299,7 @@ GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> +GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2390,6 +2391,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> index df7de1fd21..6957efa4dd 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> @@ -8,7 +8,6 @@ GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> -GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
Ok.
> diff --git a/sysdeps/unix/sysv/linux/mq_setattr.c b/sysdeps/unix/sysv/linux/mq_setattr.c
> new file mode 100644
> index 0000000000..9631aa5da6
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/mq_setattr.c
> @@ -0,0 +1,33 @@
> +/* mq_setattr system call wrapper.
> + 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 <mqueue.h>
> +#include <shlib-compat.h>
> +#include <sysdep.h>
> +
> +int
> +__mq_setattr (mqd_t mqdes, const struct mq_attr *__restrict mqstat,
> + struct mq_attr *__restrict omqstat)
I think there is no need to use reserved identifiers here, so we can
use 'restrict' directly.
> +{
> + return INLINE_SYSCALL_CALL (mq_getsetattr, mqdes, mqstat, omqstat);
> +}
> +versioned_symbol (libc, __mq_setattr, mq_setattr, GLIBC_2_34);
> +libc_hidden_ver (__mq_setattr, mq_setattr)
> +#if OTHER_SHLIB_COMPAT (librt, GLIBC_2_3_4, GLIBC_2_34)
> +compat_symbol (librt, __mq_setattr, mq_setattr, GLIBC_2_3_4);
> +#endif
Ok.
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index de7e07f62f..53f30a93fa 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -1403,6 +1403,7 @@ GLIBC_2.21 mount F
> GLIBC_2.21 mprobe F
> GLIBC_2.21 mprotect F
> GLIBC_2.21 mq_close F
> +GLIBC_2.21 mq_setattr F
> GLIBC_2.21 mrand48 F
> GLIBC_2.21 mrand48_r F
> GLIBC_2.21 mremap F
> @@ -2511,6 +2512,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
> index 8d7a95d6ac..c6d440aea4 100644
> --- a/sysdeps/unix/sysv/linux/nios2/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.21 mq_notify F
> GLIBC_2.21 mq_open F
> GLIBC_2.21 mq_receive F
> GLIBC_2.21 mq_send F
> -GLIBC_2.21 mq_setattr F
> GLIBC_2.21 mq_timedreceive F
> GLIBC_2.21 mq_timedsend F
> GLIBC_2.21 mq_unlink F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index 11bca22288..eeb6d57f25 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -2345,6 +2345,7 @@ GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 longjmp F
> GLIBC_2.3.4 makecontext F
> GLIBC_2.3.4 mq_close F
> +GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2529,6 +2530,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> index 2830671cbd..73eb37021f 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> @@ -9,7 +9,6 @@ GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> -GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index 23823f46cf..afa5274916 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -2378,6 +2378,7 @@ GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 longjmp F
> GLIBC_2.3.4 makecontext F
> GLIBC_2.3.4 mq_close F
> +GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2562,6 +2563,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index d4c732e826..a01854490b 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -2191,6 +2191,7 @@ GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 longjmp F
> GLIBC_2.3.4 mq_close F
> +GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2298,6 +2299,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> index e20095d937..0534a11718 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> @@ -13,7 +13,6 @@ GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> -GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index cf2f48704b..476ebab28f 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -1446,6 +1446,7 @@ GLIBC_2.17 mount F
> GLIBC_2.17 mprobe F
> GLIBC_2.17 mprotect F
> GLIBC_2.17 mq_close F
> +GLIBC_2.17 mq_setattr F
> GLIBC_2.17 mrand48 F
> GLIBC_2.17 mrand48_r F
> GLIBC_2.17 mremap F
> @@ -2597,6 +2598,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> index 0f95d65af6..5577602ea8 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.17 mq_notify F
> GLIBC_2.17 mq_open F
> GLIBC_2.17 mq_receive F
> GLIBC_2.17 mq_send F
> -GLIBC_2.17 mq_setattr F
> GLIBC_2.17 mq_timedreceive F
> GLIBC_2.17 mq_timedsend F
> GLIBC_2.17 mq_unlink F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index f731932abf..48882415a6 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -1291,6 +1291,7 @@ GLIBC_2.33 mount F
> GLIBC_2.33 mprobe F
> GLIBC_2.33 mprotect F
> GLIBC_2.33 mq_close F
> +GLIBC_2.33 mq_setattr F
> GLIBC_2.33 mrand48 F
> GLIBC_2.33 mrand48_r F
> GLIBC_2.33 mremap F
> @@ -2162,6 +2163,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> index 1b681c4f40..fc8a2d3353 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.33 mq_notify F
> GLIBC_2.33 mq_open F
> GLIBC_2.33 mq_receive F
> GLIBC_2.33 mq_send F
> -GLIBC_2.33 mq_setattr F
> GLIBC_2.33 mq_timedreceive F
> GLIBC_2.33 mq_timedsend F
> GLIBC_2.33 mq_unlink F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index 5dbfcd8d85..006d0c911d 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -1341,6 +1341,7 @@ GLIBC_2.27 mount F
> GLIBC_2.27 mprobe F
> GLIBC_2.27 mprotect F
> GLIBC_2.27 mq_close F
> +GLIBC_2.27 mq_setattr F
> GLIBC_2.27 mrand48 F
> GLIBC_2.27 mrand48_r F
> GLIBC_2.27 mremap F
> @@ -2362,6 +2363,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> index 05a7e7ab00..85c6dfae23 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.27 mq_notify F
> GLIBC_2.27 mq_open F
> GLIBC_2.27 mq_receive F
> GLIBC_2.27 mq_send F
> -GLIBC_2.27 mq_setattr F
> GLIBC_2.27 mq_timedreceive F
> GLIBC_2.27 mq_timedsend F
> GLIBC_2.27 mq_unlink F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index b84e794be5..0f5a0ebb1c 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -2344,6 +2344,7 @@ GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> +GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2527,6 +2528,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> index 2830671cbd..73eb37021f 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> @@ -9,7 +9,6 @@ GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> -GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index 5e500fc41b..4aa1a9fa74 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -2232,6 +2232,7 @@ GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> +GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2335,6 +2336,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> index eaf9985930..7bc6c2d4e6 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> @@ -13,7 +13,6 @@ GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> -GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index 5eacb42a61..db1f29d905 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -2211,6 +2211,7 @@ GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> +GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2382,6 +2383,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> index 2830671cbd..73eb37021f 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> @@ -9,7 +9,6 @@ GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> -GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index 1e6e234774..961d2b66e0 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -2211,6 +2211,7 @@ GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> +GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2379,6 +2380,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> index 2830671cbd..73eb37021f 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> @@ -9,7 +9,6 @@ GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> -GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index c641491014..d70c6499a8 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -2342,6 +2342,7 @@ GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> +GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2522,6 +2523,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> index d7bd3edad5..36b9ea794f 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> @@ -10,7 +10,6 @@ GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> -GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index 834aaa1cb6..9f18195c9d 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -2266,6 +2266,7 @@ GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> +GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2357,6 +2358,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> index 960db11285..59e770d345 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> @@ -15,7 +15,6 @@ GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> -GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> diff --git a/sysdeps/unix/sysv/linux/syscalls.list b/sysdeps/unix/sysv/linux/syscalls.list
> index 01ec2bfa95..62329abb49 100644
> --- a/sysdeps/unix/sysv/linux/syscalls.list
> +++ b/sysdeps/unix/sysv/linux/syscalls.list
> @@ -86,8 +86,6 @@ removexattr - removexattr i:ss removexattr
> lremovexattr - lremovexattr i:ss lremovexattr
> fremovexattr - fremovexattr i:is fremovexattr
>
> -mq_setattr - mq_getsetattr i:ipp mq_setattr
> -
> timerfd_create EXTRA timerfd_create i:ii timerfd_create
>
> fanotify_init EXTRA fanotify_init i:ii fanotify_init
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index 3f17a41c66..05c1f47233 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -2220,6 +2220,7 @@ GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> +GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2313,6 +2314,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> index 6b8d77f1a7..d7e5e48295 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> @@ -13,7 +13,6 @@ GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> -GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index 5ea3b75384..b839033cde 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -1365,6 +1365,7 @@ GLIBC_2.16 mount F
> GLIBC_2.16 mprobe F
> GLIBC_2.16 mprotect F
> GLIBC_2.16 mq_close F
> +GLIBC_2.16 mq_setattr F
> GLIBC_2.16 mrand48 F
> GLIBC_2.16 mrand48_r F
> GLIBC_2.16 mremap F
> @@ -2416,6 +2417,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> index 660f1de033..24c03ebc8b 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.16 mq_notify F
> GLIBC_2.16 mq_open F
> GLIBC_2.16 mq_receive F
> GLIBC_2.16 mq_send F
> -GLIBC_2.16 mq_setattr F
> GLIBC_2.16 mq_timedreceive F
> GLIBC_2.16 mq_timedsend F
> GLIBC_2.16 mq_unlink F
>
Ok.
^ permalink raw reply [flat|nested] 72+ messages in thread
* Re: [PATCH 21/34] Linux: Move mq_setattr from librt to libc
2021-06-24 14:02 ` Adhemerval Zanella
@ 2021-06-25 10:02 ` Florian Weimer
0 siblings, 0 replies; 72+ messages in thread
From: Florian Weimer @ 2021-06-25 10:02 UTC (permalink / raw)
To: Adhemerval Zanella; +Cc: libc-alpha
* Adhemerval Zanella:
>> +int
>> +__mq_setattr (mqd_t mqdes, const struct mq_attr *__restrict mqstat,
>> + struct mq_attr *__restrict omqstat)
>
> I think there is no need to use reserved identifiers here, so we can
> use 'restrict' directly.
It's meaningless anyway given the function body, so I have removed it.
>> +{
>> + return INLINE_SYSCALL_CALL (mq_getsetattr, mqdes, mqstat, omqstat);
>> +}
Thanks,
Flroian
^ permalink raw reply [flat|nested] 72+ messages in thread
* [PATCH 22/34] Linux: Move mq_getattr from librt to libc
2021-06-17 18:56 [PATCH v2 00/34] Move librt into libc Florian Weimer
` (20 preceding siblings ...)
2021-06-17 18:58 ` [PATCH 21/34] Linux: Move mq_setattr " Florian Weimer
@ 2021-06-17 18:58 ` Florian Weimer
2021-06-24 14:02 ` Adhemerval Zanella
2021-06-17 18:58 ` [PATCH 23/34] Linux: Move mq_notify " Florian Weimer
` (12 subsequent siblings)
34 siblings, 1 reply; 72+ messages in thread
From: Florian Weimer @ 2021-06-17 18:58 UTC (permalink / raw)
To: libc-alpha
The symbol was moved using scripts/move-symbol-to-libc.py.
---
rt/Makefile | 2 +-
rt/Versions | 4 +++-
sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/aarch64/librt.abilist | 1 -
sysdeps/unix/sysv/linux/alpha/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/alpha/librt.abilist | 1 -
sysdeps/unix/sysv/linux/arc/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/arc/librt.abilist | 1 -
sysdeps/unix/sysv/linux/arm/be/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/arm/be/librt.abilist | 1 -
sysdeps/unix/sysv/linux/arm/le/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/arm/le/librt.abilist | 1 -
sysdeps/unix/sysv/linux/csky/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/csky/librt.abilist | 1 -
sysdeps/unix/sysv/linux/hppa/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/hppa/librt.abilist | 1 -
sysdeps/unix/sysv/linux/i386/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/i386/librt.abilist | 1 -
sysdeps/unix/sysv/linux/ia64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/ia64/librt.abilist | 1 -
sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist | 1 -
sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist | 1 -
sysdeps/unix/sysv/linux/microblaze/be/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/microblaze/be/librt.abilist | 1 -
sysdeps/unix/sysv/linux/microblaze/le/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/microblaze/le/librt.abilist | 1 -
sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/mips/mips32/librt.abilist | 1 -
sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist | 1 -
sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist | 1 -
sysdeps/unix/sysv/linux/mq_getattr.c | 8 +++++++-
sysdeps/unix/sysv/linux/nios2/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/nios2/librt.abilist | 1 -
.../unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist | 1 -
.../unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist | 2 ++
.../unix/sysv/linux/powerpc/powerpc64/be/librt.abilist | 1 -
sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist | 2 ++
.../unix/sysv/linux/powerpc/powerpc64/le/librt.abilist | 1 -
sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist | 1 -
sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist | 1 -
sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist | 1 -
sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist | 1 -
sysdeps/unix/sysv/linux/sh/be/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/sh/be/librt.abilist | 1 -
sysdeps/unix/sysv/linux/sh/le/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/sh/le/librt.abilist | 1 -
sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist | 1 -
sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist | 1 -
sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/x86_64/64/librt.abilist | 1 -
sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist | 1 -
65 files changed, 75 insertions(+), 33 deletions(-)
diff --git a/rt/Makefile b/rt/Makefile
index 67c4e74a56..e9b68f0274 100644
--- a/rt/Makefile
+++ b/rt/Makefile
@@ -30,7 +30,6 @@ routines = \
librt-routines = \
librt-compat \
- mq_getattr \
mq_notify \
mq_open \
mq_receive \
@@ -62,6 +61,7 @@ $(librt-routines-var) += \
lio_listio \
lio_listio64 \
mq_close \
+ mq_getattr \
mq_setattr \
tests := tst-shm tst-timer tst-timer2 \
diff --git a/rt/Versions b/rt/Versions
index 01ac8cd0be..38f23c16ef 100644
--- a/rt/Versions
+++ b/rt/Versions
@@ -27,6 +27,7 @@ libc {
GLIBC_2.3.4 {
%if PTHREAD_IN_LIBC
mq_close;
+ mq_getattr;
mq_setattr;
%endif
}
@@ -56,6 +57,7 @@ libc {
lio_listio;
lio_listio64;
mq_close;
+ mq_getattr;
mq_setattr;
%endif
shm_open;
@@ -109,9 +111,9 @@ librt {
GLIBC_2.3.4 {
%if !PTHREAD_IN_LIBC
mq_close;
+ mq_getattr;
mq_setattr;
%endif
- mq_getattr;
mq_notify;
mq_open;
mq_receive;
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 4bc3bd5ffb..c6b225527c 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -1358,6 +1358,7 @@ GLIBC_2.17 mount F
GLIBC_2.17 mprobe F
GLIBC_2.17 mprotect F
GLIBC_2.17 mq_close F
+GLIBC_2.17 mq_getattr F
GLIBC_2.17 mq_setattr F
GLIBC_2.17 mrand48 F
GLIBC_2.17 mrand48_r F
@@ -2402,6 +2403,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
index 5577602ea8..33b825d874 100644
--- a/sysdeps/unix/sysv/linux/aarch64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
@@ -1,5 +1,4 @@
GLIBC_2.17 __mq_open_2 F
-GLIBC_2.17 mq_getattr F
GLIBC_2.17 mq_notify F
GLIBC_2.17 mq_open F
GLIBC_2.17 mq_receive F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index f991411721..4930bfef60 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -2393,6 +2393,7 @@ GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
+GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2497,6 +2498,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
index 59e770d345..29f9030371 100644
--- a/sysdeps/unix/sysv/linux/alpha/librt.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist
@@ -10,7 +10,6 @@ GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index d71034a0a4..78a01ca136 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1289,6 +1289,7 @@ GLIBC_2.32 mount F
GLIBC_2.32 mprobe F
GLIBC_2.32 mprotect F
GLIBC_2.32 mq_close F
+GLIBC_2.32 mq_getattr F
GLIBC_2.32 mq_setattr F
GLIBC_2.32 mrand48 F
GLIBC_2.32 mrand48_r F
@@ -2161,6 +2162,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
index 6d4a02edac..4143924c8b 100644
--- a/sysdeps/unix/sysv/linux/arc/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arc/librt.abilist
@@ -1,5 +1,4 @@
GLIBC_2.32 __mq_open_2 F
-GLIBC_2.32 mq_getattr F
GLIBC_2.32 mq_notify F
GLIBC_2.32 mq_open F
GLIBC_2.32 mq_receive F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 753d824fb6..4ad531fb76 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -314,6 +314,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
@@ -1729,6 +1730,7 @@ GLIBC_2.4 mount F
GLIBC_2.4 mprobe F
GLIBC_2.4 mprotect F
GLIBC_2.4 mq_close F
+GLIBC_2.4 mq_getattr F
GLIBC_2.4 mq_setattr F
GLIBC_2.4 mrand48 F
GLIBC_2.4 mrand48_r F
diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
index 1e9b5a4dfb..ba9f5f6422 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -2,7 +2,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 mq_getattr F
GLIBC_2.4 mq_notify F
GLIBC_2.4 mq_open F
GLIBC_2.4 mq_receive F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index a71fc473c5..aae2e215f3 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -311,6 +311,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
@@ -1726,6 +1727,7 @@ GLIBC_2.4 mount F
GLIBC_2.4 mprobe F
GLIBC_2.4 mprotect F
GLIBC_2.4 mq_close F
+GLIBC_2.4 mq_getattr F
GLIBC_2.4 mq_setattr F
GLIBC_2.4 mrand48 F
GLIBC_2.4 mrand48_r F
diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
index 1e9b5a4dfb..ba9f5f6422 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -2,7 +2,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 mq_getattr F
GLIBC_2.4 mq_notify F
GLIBC_2.4 mq_open F
GLIBC_2.4 mq_receive F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 924377d21d..0bbe74a51a 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -1344,6 +1344,7 @@ GLIBC_2.29 mount F
GLIBC_2.29 mprobe F
GLIBC_2.29 mprotect F
GLIBC_2.29 mq_close F
+GLIBC_2.29 mq_getattr F
GLIBC_2.29 mq_setattr F
GLIBC_2.29 mrand48 F
GLIBC_2.29 mrand48_r F
@@ -2422,6 +2423,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
index 5ded0dc421..1ffc068f62 100644
--- a/sysdeps/unix/sysv/linux/csky/librt.abilist
+++ b/sysdeps/unix/sysv/linux/csky/librt.abilist
@@ -1,5 +1,4 @@
GLIBC_2.29 __mq_open_2 F
-GLIBC_2.29 mq_getattr F
GLIBC_2.29 mq_notify F
GLIBC_2.29 mq_open F
GLIBC_2.29 mq_receive F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index df153c161d..f96ed60028 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -2207,6 +2207,7 @@ GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
+GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2376,6 +2377,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
index 73eb37021f..d208e7b7a8 100644
--- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
@@ -4,7 +4,6 @@ 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.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 0dc4c677be..a724074718 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -2388,6 +2388,7 @@ GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
+GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2560,6 +2561,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
index 73eb37021f..d208e7b7a8 100644
--- a/sysdeps/unix/sysv/linux/i386/librt.abilist
+++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
@@ -4,7 +4,6 @@ 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.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index ddc9db0d2c..3b5c72f307 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -2242,6 +2242,7 @@ GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
+GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2335,6 +2336,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
index 2e8a0d4c82..38edc31e90 100644
--- a/sysdeps/unix/sysv/linux/ia64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/librt.abilist
@@ -9,7 +9,6 @@ GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 2f078539d4..85de809b2d 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -315,6 +315,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
@@ -1713,6 +1714,7 @@ GLIBC_2.4 mount F
GLIBC_2.4 mprobe F
GLIBC_2.4 mprotect F
GLIBC_2.4 mq_close F
+GLIBC_2.4 mq_getattr F
GLIBC_2.4 mq_setattr F
GLIBC_2.4 mrand48 F
GLIBC_2.4 mrand48_r F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
index 1e9b5a4dfb..ba9f5f6422 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -2,7 +2,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 mq_getattr F
GLIBC_2.4 mq_notify F
GLIBC_2.4 mq_open F
GLIBC_2.4 mq_receive F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 457001393e..a9abdfa950 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2331,6 +2331,7 @@ GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
+GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2503,6 +2504,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
index 73eb37021f..d208e7b7a8 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
@@ -4,7 +4,6 @@ GLIBC_2.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.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index e0cff30061..6bf22e63e3 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -1360,6 +1360,7 @@ GLIBC_2.18 mount F
GLIBC_2.18 mprobe F
GLIBC_2.18 mprotect F
GLIBC_2.18 mq_close F
+GLIBC_2.18 mq_getattr F
GLIBC_2.18 mq_setattr F
GLIBC_2.18 mrand48 F
GLIBC_2.18 mrand48_r F
@@ -2473,6 +2474,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
index c42d6f70be..a8bbeb6a20 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
@@ -1,5 +1,4 @@
GLIBC_2.18 __mq_open_2 F
-GLIBC_2.18 mq_getattr F
GLIBC_2.18 mq_notify F
GLIBC_2.18 mq_open F
GLIBC_2.18 mq_receive F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 697298a2bb..4e211638c9 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -1360,6 +1360,7 @@ GLIBC_2.18 mount F
GLIBC_2.18 mprobe F
GLIBC_2.18 mprotect F
GLIBC_2.18 mq_close F
+GLIBC_2.18 mq_getattr F
GLIBC_2.18 mq_setattr F
GLIBC_2.18 mrand48 F
GLIBC_2.18 mrand48_r F
@@ -2470,6 +2471,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
index c42d6f70be..a8bbeb6a20 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
@@ -1,5 +1,4 @@
GLIBC_2.18 __mq_open_2 F
-GLIBC_2.18 mq_getattr F
GLIBC_2.18 mq_notify F
GLIBC_2.18 mq_open F
GLIBC_2.18 mq_receive F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 529d002804..96d2e57a71 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -2299,6 +2299,7 @@ GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
+GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2468,6 +2469,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
index 66ace7f63f..7704fd1722 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
@@ -3,7 +3,6 @@ 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.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 14343fdd69..3f8736354d 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -2297,6 +2297,7 @@ GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
+GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2466,6 +2467,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index af1379fcd5..ab6ca602b9 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -2305,6 +2305,7 @@ GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
+GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2474,6 +2475,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
index 66ace7f63f..7704fd1722 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
@@ -3,7 +3,6 @@ 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.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index ed0e42ddf4..328abb0e02 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -2299,6 +2299,7 @@ GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
+GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2391,6 +2392,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
index 6957efa4dd..a249a4623f 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
@@ -3,7 +3,6 @@ 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.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
diff --git a/sysdeps/unix/sysv/linux/mq_getattr.c b/sysdeps/unix/sysv/linux/mq_getattr.c
index 629e661300..52e7ef30f9 100644
--- a/sysdeps/unix/sysv/linux/mq_getattr.c
+++ b/sysdeps/unix/sysv/linux/mq_getattr.c
@@ -19,10 +19,16 @@
#include <mqueue.h>
#include <stddef.h>
#include <sysdep.h>
+#include <shlib-compat.h>
/* Query status and attributes of message queue MQDES. */
int
-mq_getattr (mqd_t mqdes, struct mq_attr *mqstat)
+__mq_getattr (mqd_t mqdes, struct mq_attr *mqstat)
{
return mq_setattr (mqdes, NULL, mqstat);
}
+versioned_symbol (libc, __mq_getattr, mq_getattr, GLIBC_2_34);
+libc_hidden_ver (__mq_getattr, mq_getattr)
+#if OTHER_SHLIB_COMPAT (librt, GLIBC_2_3_4, GLIBC_2_34)
+compat_symbol (librt, __mq_getattr, mq_getattr, GLIBC_2_3_4);
+#endif
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 53f30a93fa..b8dd80465f 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -1403,6 +1403,7 @@ GLIBC_2.21 mount F
GLIBC_2.21 mprobe F
GLIBC_2.21 mprotect F
GLIBC_2.21 mq_close F
+GLIBC_2.21 mq_getattr F
GLIBC_2.21 mq_setattr F
GLIBC_2.21 mrand48 F
GLIBC_2.21 mrand48_r F
@@ -2512,6 +2513,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
index c6d440aea4..64a169169f 100644
--- a/sysdeps/unix/sysv/linux/nios2/librt.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/librt.abilist
@@ -1,5 +1,4 @@
GLIBC_2.21 __mq_open_2 F
-GLIBC_2.21 mq_getattr F
GLIBC_2.21 mq_notify F
GLIBC_2.21 mq_open F
GLIBC_2.21 mq_receive F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index eeb6d57f25..04a263f810 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -2345,6 +2345,7 @@ GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 longjmp F
GLIBC_2.3.4 makecontext F
GLIBC_2.3.4 mq_close F
+GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2530,6 +2531,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
index 73eb37021f..d208e7b7a8 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
@@ -4,7 +4,6 @@ GLIBC_2.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.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index afa5274916..9e8043323c 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -2378,6 +2378,7 @@ GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 longjmp F
GLIBC_2.3.4 makecontext F
GLIBC_2.3.4 mq_close F
+GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2563,6 +2564,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index a01854490b..21e7cb9a28 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -2191,6 +2191,7 @@ GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 longjmp F
GLIBC_2.3.4 mq_close F
+GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2299,6 +2300,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
index 0534a11718..073df9d157 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
@@ -8,7 +8,6 @@ GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 476ebab28f..5487741113 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -1446,6 +1446,7 @@ GLIBC_2.17 mount F
GLIBC_2.17 mprobe F
GLIBC_2.17 mprotect F
GLIBC_2.17 mq_close F
+GLIBC_2.17 mq_getattr F
GLIBC_2.17 mq_setattr F
GLIBC_2.17 mrand48 F
GLIBC_2.17 mrand48_r F
@@ -2598,6 +2599,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
index 5577602ea8..33b825d874 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
@@ -1,5 +1,4 @@
GLIBC_2.17 __mq_open_2 F
-GLIBC_2.17 mq_getattr F
GLIBC_2.17 mq_notify F
GLIBC_2.17 mq_open F
GLIBC_2.17 mq_receive F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 48882415a6..ac6d6b1200 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1291,6 +1291,7 @@ GLIBC_2.33 mount F
GLIBC_2.33 mprobe F
GLIBC_2.33 mprotect F
GLIBC_2.33 mq_close F
+GLIBC_2.33 mq_getattr F
GLIBC_2.33 mq_setattr F
GLIBC_2.33 mrand48 F
GLIBC_2.33 mrand48_r F
@@ -2163,6 +2164,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
index fc8a2d3353..86456a362e 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
@@ -1,5 +1,4 @@
GLIBC_2.33 __mq_open_2 F
-GLIBC_2.33 mq_getattr F
GLIBC_2.33 mq_notify F
GLIBC_2.33 mq_open F
GLIBC_2.33 mq_receive F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 006d0c911d..10607eff2d 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -1341,6 +1341,7 @@ GLIBC_2.27 mount F
GLIBC_2.27 mprobe F
GLIBC_2.27 mprotect F
GLIBC_2.27 mq_close F
+GLIBC_2.27 mq_getattr F
GLIBC_2.27 mq_setattr F
GLIBC_2.27 mrand48 F
GLIBC_2.27 mrand48_r F
@@ -2363,6 +2364,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
index 85c6dfae23..e9a7d2fe8a 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
@@ -1,5 +1,4 @@
GLIBC_2.27 __mq_open_2 F
-GLIBC_2.27 mq_getattr F
GLIBC_2.27 mq_notify F
GLIBC_2.27 mq_open F
GLIBC_2.27 mq_receive F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 0f5a0ebb1c..6fc716311f 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -2344,6 +2344,7 @@ GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
+GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2528,6 +2529,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
index 73eb37021f..d208e7b7a8 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
@@ -4,7 +4,6 @@ GLIBC_2.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.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 4aa1a9fa74..d8d502deb6 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -2232,6 +2232,7 @@ GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
+GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2336,6 +2337,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
index 7bc6c2d4e6..6df861ffb6 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
@@ -8,7 +8,6 @@ GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index db1f29d905..bbeb8d248b 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -2211,6 +2211,7 @@ GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
+GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2383,6 +2384,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
index 73eb37021f..d208e7b7a8 100644
--- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
@@ -4,7 +4,6 @@ GLIBC_2.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.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 961d2b66e0..1cbeb0474a 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -2211,6 +2211,7 @@ GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
+GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2380,6 +2381,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
index 73eb37021f..d208e7b7a8 100644
--- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
@@ -4,7 +4,6 @@ GLIBC_2.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.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index d70c6499a8..8d7b102a04 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -2342,6 +2342,7 @@ GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
+GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2523,6 +2524,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
index 36b9ea794f..2da8518d03 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
@@ -5,7 +5,6 @@ GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
GLIBC_2.3 __librt_version_placeholder F
-GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 9f18195c9d..66a6a37699 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -2266,6 +2266,7 @@ GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
+GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2358,6 +2359,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
index 59e770d345..29f9030371 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
@@ -10,7 +10,6 @@ GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 05c1f47233..44c6b63d14 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -2220,6 +2220,7 @@ GLIBC_2.3.4 dlmopen F
GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
+GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2314,6 +2315,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
index d7e5e48295..0efa2e11fa 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
@@ -8,7 +8,6 @@ GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index b839033cde..3dba64549e 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -1365,6 +1365,7 @@ GLIBC_2.16 mount F
GLIBC_2.16 mprobe F
GLIBC_2.16 mprotect F
GLIBC_2.16 mq_close F
+GLIBC_2.16 mq_getattr F
GLIBC_2.16 mq_setattr F
GLIBC_2.16 mrand48 F
GLIBC_2.16 mrand48_r F
@@ -2417,6 +2418,7 @@ GLIBC_2.34 execveat F
GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
+GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
index 24c03ebc8b..dc15c9057f 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
@@ -1,5 +1,4 @@
GLIBC_2.16 __mq_open_2 F
-GLIBC_2.16 mq_getattr F
GLIBC_2.16 mq_notify F
GLIBC_2.16 mq_open F
GLIBC_2.16 mq_receive F
--
2.31.1
^ permalink raw reply [flat|nested] 72+ messages in thread
* Re: [PATCH 22/34] Linux: Move mq_getattr from librt to libc
2021-06-17 18:58 ` [PATCH 22/34] Linux: Move mq_getattr " Florian Weimer
@ 2021-06-24 14:02 ` Adhemerval Zanella
0 siblings, 0 replies; 72+ messages in thread
From: Adhemerval Zanella @ 2021-06-24 14:02 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 17/06/2021 15:58, Florian Weimer via Libc-alpha wrote:
> The symbol was moved using scripts/move-symbol-to-libc.py.
LGTM, thanks.
Reviewed-by: Adhemerva Zanella <adhemerval.zanella@linaro.org>
> ---
> rt/Makefile | 2 +-
> rt/Versions | 4 +++-
> sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/aarch64/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/alpha/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/alpha/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/arc/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/arc/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/arm/be/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/arm/be/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/arm/le/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/arm/le/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/csky/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/csky/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/hppa/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/hppa/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/i386/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/i386/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/ia64/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/ia64/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/microblaze/be/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/microblaze/be/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/microblaze/le/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/microblaze/le/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/mips/mips32/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/mq_getattr.c | 8 +++++++-
> sysdeps/unix/sysv/linux/nios2/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/nios2/librt.abilist | 1 -
> .../unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist | 1 -
> .../unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist | 2 ++
> .../unix/sysv/linux/powerpc/powerpc64/be/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist | 2 ++
> .../unix/sysv/linux/powerpc/powerpc64/le/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/sh/be/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/sh/be/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/sh/le/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/sh/le/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/x86_64/64/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist | 1 -
> 65 files changed, 75 insertions(+), 33 deletions(-)
>
> diff --git a/rt/Makefile b/rt/Makefile
> index 67c4e74a56..e9b68f0274 100644
> --- a/rt/Makefile
> +++ b/rt/Makefile
> @@ -30,7 +30,6 @@ routines = \
>
> librt-routines = \
> librt-compat \
> - mq_getattr \
> mq_notify \
> mq_open \
> mq_receive \
> @@ -62,6 +61,7 @@ $(librt-routines-var) += \
> lio_listio \
> lio_listio64 \
> mq_close \
> + mq_getattr \
> mq_setattr \
>
> tests := tst-shm tst-timer tst-timer2 \
Ok.
> diff --git a/rt/Versions b/rt/Versions
> index 01ac8cd0be..38f23c16ef 100644
> --- a/rt/Versions
> +++ b/rt/Versions
> @@ -27,6 +27,7 @@ libc {
> GLIBC_2.3.4 {
> %if PTHREAD_IN_LIBC
> mq_close;
> + mq_getattr;
> mq_setattr;
> %endif
> }
> @@ -56,6 +57,7 @@ libc {
> lio_listio;
> lio_listio64;
> mq_close;
> + mq_getattr;
> mq_setattr;
> %endif
> shm_open;
> @@ -109,9 +111,9 @@ librt {
> GLIBC_2.3.4 {
> %if !PTHREAD_IN_LIBC
> mq_close;
> + mq_getattr;
> mq_setattr;
> %endif
> - mq_getattr;
> mq_notify;
> mq_open;
> mq_receive;
Ok.
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index 4bc3bd5ffb..c6b225527c 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -1358,6 +1358,7 @@ GLIBC_2.17 mount F
> GLIBC_2.17 mprobe F
> GLIBC_2.17 mprotect F
> GLIBC_2.17 mq_close F
> +GLIBC_2.17 mq_getattr F
> GLIBC_2.17 mq_setattr F
> GLIBC_2.17 mrand48 F
> GLIBC_2.17 mrand48_r F
> @@ -2402,6 +2403,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> index 5577602ea8..33b825d874 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.17 __mq_open_2 F
> -GLIBC_2.17 mq_getattr F
> GLIBC_2.17 mq_notify F
> GLIBC_2.17 mq_open F
> GLIBC_2.17 mq_receive F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index f991411721..4930bfef60 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -2393,6 +2393,7 @@ GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> +GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2497,6 +2498,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
> index 59e770d345..29f9030371 100644
> --- a/sysdeps/unix/sysv/linux/alpha/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist
> @@ -10,7 +10,6 @@ GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> -GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index d71034a0a4..78a01ca136 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -1289,6 +1289,7 @@ GLIBC_2.32 mount F
> GLIBC_2.32 mprobe F
> GLIBC_2.32 mprotect F
> GLIBC_2.32 mq_close F
> +GLIBC_2.32 mq_getattr F
> GLIBC_2.32 mq_setattr F
> GLIBC_2.32 mrand48 F
> GLIBC_2.32 mrand48_r F
> @@ -2161,6 +2162,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
> index 6d4a02edac..4143924c8b 100644
> --- a/sysdeps/unix/sysv/linux/arc/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/librt.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.32 __mq_open_2 F
> -GLIBC_2.32 mq_getattr F
> GLIBC_2.32 mq_notify F
> GLIBC_2.32 mq_open F
> GLIBC_2.32 mq_receive F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index 753d824fb6..4ad531fb76 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -314,6 +314,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> @@ -1729,6 +1730,7 @@ GLIBC_2.4 mount F
> GLIBC_2.4 mprobe F
> GLIBC_2.4 mprotect F
> GLIBC_2.4 mq_close F
> +GLIBC_2.4 mq_getattr F
> GLIBC_2.4 mq_setattr F
> GLIBC_2.4 mrand48 F
> GLIBC_2.4 mrand48_r F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> index 1e9b5a4dfb..ba9f5f6422 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> @@ -2,7 +2,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 mq_getattr F
> GLIBC_2.4 mq_notify F
> GLIBC_2.4 mq_open F
> GLIBC_2.4 mq_receive F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index a71fc473c5..aae2e215f3 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -311,6 +311,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> @@ -1726,6 +1727,7 @@ GLIBC_2.4 mount F
> GLIBC_2.4 mprobe F
> GLIBC_2.4 mprotect F
> GLIBC_2.4 mq_close F
> +GLIBC_2.4 mq_getattr F
> GLIBC_2.4 mq_setattr F
> GLIBC_2.4 mrand48 F
> GLIBC_2.4 mrand48_r F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> index 1e9b5a4dfb..ba9f5f6422 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> @@ -2,7 +2,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 mq_getattr F
> GLIBC_2.4 mq_notify F
> GLIBC_2.4 mq_open F
> GLIBC_2.4 mq_receive F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index 924377d21d..0bbe74a51a 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -1344,6 +1344,7 @@ GLIBC_2.29 mount F
> GLIBC_2.29 mprobe F
> GLIBC_2.29 mprotect F
> GLIBC_2.29 mq_close F
> +GLIBC_2.29 mq_getattr F
> GLIBC_2.29 mq_setattr F
> GLIBC_2.29 mrand48 F
> GLIBC_2.29 mrand48_r F
> @@ -2422,6 +2423,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
> index 5ded0dc421..1ffc068f62 100644
> --- a/sysdeps/unix/sysv/linux/csky/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/librt.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.29 __mq_open_2 F
> -GLIBC_2.29 mq_getattr F
> GLIBC_2.29 mq_notify F
> GLIBC_2.29 mq_open F
> GLIBC_2.29 mq_receive F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index df153c161d..f96ed60028 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -2207,6 +2207,7 @@ GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> +GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2376,6 +2377,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
> index 73eb37021f..d208e7b7a8 100644
> --- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
> @@ -4,7 +4,6 @@ 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.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index 0dc4c677be..a724074718 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -2388,6 +2388,7 @@ GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> +GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2560,6 +2561,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
> index 73eb37021f..d208e7b7a8 100644
> --- a/sysdeps/unix/sysv/linux/i386/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
> @@ -4,7 +4,6 @@ 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.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index ddc9db0d2c..3b5c72f307 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -2242,6 +2242,7 @@ GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> +GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2335,6 +2336,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
> index 2e8a0d4c82..38edc31e90 100644
> --- a/sysdeps/unix/sysv/linux/ia64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/librt.abilist
> @@ -9,7 +9,6 @@ GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> -GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index 2f078539d4..85de809b2d 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -315,6 +315,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> @@ -1713,6 +1714,7 @@ GLIBC_2.4 mount F
> GLIBC_2.4 mprobe F
> GLIBC_2.4 mprotect F
> GLIBC_2.4 mq_close F
> +GLIBC_2.4 mq_getattr F
> GLIBC_2.4 mq_setattr F
> GLIBC_2.4 mrand48 F
> GLIBC_2.4 mrand48_r F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> index 1e9b5a4dfb..ba9f5f6422 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> @@ -2,7 +2,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 mq_getattr F
> GLIBC_2.4 mq_notify F
> GLIBC_2.4 mq_open F
> GLIBC_2.4 mq_receive F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index 457001393e..a9abdfa950 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -2331,6 +2331,7 @@ GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> +GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2503,6 +2504,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> index 73eb37021f..d208e7b7a8 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.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.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index e0cff30061..6bf22e63e3 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -1360,6 +1360,7 @@ GLIBC_2.18 mount F
> GLIBC_2.18 mprobe F
> GLIBC_2.18 mprotect F
> GLIBC_2.18 mq_close F
> +GLIBC_2.18 mq_getattr F
> GLIBC_2.18 mq_setattr F
> GLIBC_2.18 mrand48 F
> GLIBC_2.18 mrand48_r F
> @@ -2473,6 +2474,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> index c42d6f70be..a8bbeb6a20 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.18 __mq_open_2 F
> -GLIBC_2.18 mq_getattr F
> GLIBC_2.18 mq_notify F
> GLIBC_2.18 mq_open F
> GLIBC_2.18 mq_receive F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index 697298a2bb..4e211638c9 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -1360,6 +1360,7 @@ GLIBC_2.18 mount F
> GLIBC_2.18 mprobe F
> GLIBC_2.18 mprotect F
> GLIBC_2.18 mq_close F
> +GLIBC_2.18 mq_getattr F
> GLIBC_2.18 mq_setattr F
> GLIBC_2.18 mrand48 F
> GLIBC_2.18 mrand48_r F
> @@ -2470,6 +2471,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> index c42d6f70be..a8bbeb6a20 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.18 __mq_open_2 F
> -GLIBC_2.18 mq_getattr F
> GLIBC_2.18 mq_notify F
> GLIBC_2.18 mq_open F
> GLIBC_2.18 mq_receive F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index 529d002804..96d2e57a71 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -2299,6 +2299,7 @@ GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> +GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2468,6 +2469,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> index 66ace7f63f..7704fd1722 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> @@ -3,7 +3,6 @@ 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.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index 14343fdd69..3f8736354d 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -2297,6 +2297,7 @@ GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> +GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2466,6 +2467,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index af1379fcd5..ab6ca602b9 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -2305,6 +2305,7 @@ GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> +GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2474,6 +2475,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> index 66ace7f63f..7704fd1722 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> @@ -3,7 +3,6 @@ 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.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index ed0e42ddf4..328abb0e02 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -2299,6 +2299,7 @@ GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> +GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2391,6 +2392,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> index 6957efa4dd..a249a4623f 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> @@ -3,7 +3,6 @@ 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.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
Ok.
> diff --git a/sysdeps/unix/sysv/linux/mq_getattr.c b/sysdeps/unix/sysv/linux/mq_getattr.c
> index 629e661300..52e7ef30f9 100644
> --- a/sysdeps/unix/sysv/linux/mq_getattr.c
> +++ b/sysdeps/unix/sysv/linux/mq_getattr.c
> @@ -19,10 +19,16 @@
> #include <mqueue.h>
> #include <stddef.h>
> #include <sysdep.h>
> +#include <shlib-compat.h>
>
> /* Query status and attributes of message queue MQDES. */
> int
> -mq_getattr (mqd_t mqdes, struct mq_attr *mqstat)
> +__mq_getattr (mqd_t mqdes, struct mq_attr *mqstat)
> {
> return mq_setattr (mqdes, NULL, mqstat);
> }
> +versioned_symbol (libc, __mq_getattr, mq_getattr, GLIBC_2_34);
> +libc_hidden_ver (__mq_getattr, mq_getattr)
> +#if OTHER_SHLIB_COMPAT (librt, GLIBC_2_3_4, GLIBC_2_34)
> +compat_symbol (librt, __mq_getattr, mq_getattr, GLIBC_2_3_4);
> +#endif
Ok.
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index 53f30a93fa..b8dd80465f 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -1403,6 +1403,7 @@ GLIBC_2.21 mount F
> GLIBC_2.21 mprobe F
> GLIBC_2.21 mprotect F
> GLIBC_2.21 mq_close F
> +GLIBC_2.21 mq_getattr F
> GLIBC_2.21 mq_setattr F
> GLIBC_2.21 mrand48 F
> GLIBC_2.21 mrand48_r F
> @@ -2512,6 +2513,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
> index c6d440aea4..64a169169f 100644
> --- a/sysdeps/unix/sysv/linux/nios2/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/librt.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.21 __mq_open_2 F
> -GLIBC_2.21 mq_getattr F
> GLIBC_2.21 mq_notify F
> GLIBC_2.21 mq_open F
> GLIBC_2.21 mq_receive F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index eeb6d57f25..04a263f810 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -2345,6 +2345,7 @@ GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 longjmp F
> GLIBC_2.3.4 makecontext F
> GLIBC_2.3.4 mq_close F
> +GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2530,6 +2531,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> index 73eb37021f..d208e7b7a8 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.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.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index afa5274916..9e8043323c 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -2378,6 +2378,7 @@ GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 longjmp F
> GLIBC_2.3.4 makecontext F
> GLIBC_2.3.4 mq_close F
> +GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2563,6 +2564,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index a01854490b..21e7cb9a28 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -2191,6 +2191,7 @@ GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 longjmp F
> GLIBC_2.3.4 mq_close F
> +GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2299,6 +2300,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> index 0534a11718..073df9d157 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> @@ -8,7 +8,6 @@ GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> -GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index 476ebab28f..5487741113 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -1446,6 +1446,7 @@ GLIBC_2.17 mount F
> GLIBC_2.17 mprobe F
> GLIBC_2.17 mprotect F
> GLIBC_2.17 mq_close F
> +GLIBC_2.17 mq_getattr F
> GLIBC_2.17 mq_setattr F
> GLIBC_2.17 mrand48 F
> GLIBC_2.17 mrand48_r F
> @@ -2598,6 +2599,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> index 5577602ea8..33b825d874 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.17 __mq_open_2 F
> -GLIBC_2.17 mq_getattr F
> GLIBC_2.17 mq_notify F
> GLIBC_2.17 mq_open F
> GLIBC_2.17 mq_receive F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index 48882415a6..ac6d6b1200 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -1291,6 +1291,7 @@ GLIBC_2.33 mount F
> GLIBC_2.33 mprobe F
> GLIBC_2.33 mprotect F
> GLIBC_2.33 mq_close F
> +GLIBC_2.33 mq_getattr F
> GLIBC_2.33 mq_setattr F
> GLIBC_2.33 mrand48 F
> GLIBC_2.33 mrand48_r F
> @@ -2163,6 +2164,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> index fc8a2d3353..86456a362e 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.33 __mq_open_2 F
> -GLIBC_2.33 mq_getattr F
> GLIBC_2.33 mq_notify F
> GLIBC_2.33 mq_open F
> GLIBC_2.33 mq_receive F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index 006d0c911d..10607eff2d 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -1341,6 +1341,7 @@ GLIBC_2.27 mount F
> GLIBC_2.27 mprobe F
> GLIBC_2.27 mprotect F
> GLIBC_2.27 mq_close F
> +GLIBC_2.27 mq_getattr F
> GLIBC_2.27 mq_setattr F
> GLIBC_2.27 mrand48 F
> GLIBC_2.27 mrand48_r F
> @@ -2363,6 +2364,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> index 85c6dfae23..e9a7d2fe8a 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.27 __mq_open_2 F
> -GLIBC_2.27 mq_getattr F
> GLIBC_2.27 mq_notify F
> GLIBC_2.27 mq_open F
> GLIBC_2.27 mq_receive F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index 0f5a0ebb1c..6fc716311f 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -2344,6 +2344,7 @@ GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> +GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2528,6 +2529,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> index 73eb37021f..d208e7b7a8 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.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.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index 4aa1a9fa74..d8d502deb6 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -2232,6 +2232,7 @@ GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> +GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2336,6 +2337,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> index 7bc6c2d4e6..6df861ffb6 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> @@ -8,7 +8,6 @@ GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> -GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index db1f29d905..bbeb8d248b 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -2211,6 +2211,7 @@ GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> +GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2383,6 +2384,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> index 73eb37021f..d208e7b7a8 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.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.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index 961d2b66e0..1cbeb0474a 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -2211,6 +2211,7 @@ GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> +GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2380,6 +2381,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> index 73eb37021f..d208e7b7a8 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.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.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index d70c6499a8..8d7b102a04 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -2342,6 +2342,7 @@ GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> +GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2523,6 +2524,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> index 36b9ea794f..2da8518d03 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> @@ -5,7 +5,6 @@ GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> GLIBC_2.3 __librt_version_placeholder F
> -GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index 9f18195c9d..66a6a37699 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -2266,6 +2266,7 @@ GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> +GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2358,6 +2359,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> index 59e770d345..29f9030371 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> @@ -10,7 +10,6 @@ GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> -GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index 05c1f47233..44c6b63d14 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -2220,6 +2220,7 @@ GLIBC_2.3.4 dlmopen F
> GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> +GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2314,6 +2315,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> index d7e5e48295..0efa2e11fa 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> @@ -8,7 +8,6 @@ GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> -GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index b839033cde..3dba64549e 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -1365,6 +1365,7 @@ GLIBC_2.16 mount F
> GLIBC_2.16 mprobe F
> GLIBC_2.16 mprotect F
> GLIBC_2.16 mq_close F
> +GLIBC_2.16 mq_getattr F
> GLIBC_2.16 mq_setattr F
> GLIBC_2.16 mrand48 F
> GLIBC_2.16 mrand48_r F
> @@ -2417,6 +2418,7 @@ GLIBC_2.34 execveat F
> GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> +GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> index 24c03ebc8b..dc15c9057f 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.16 __mq_open_2 F
> -GLIBC_2.16 mq_getattr F
> GLIBC_2.16 mq_notify F
> GLIBC_2.16 mq_open F
> GLIBC_2.16 mq_receive F
>
Ok.
^ permalink raw reply [flat|nested] 72+ messages in thread
* [PATCH 23/34] Linux: Move mq_notify from librt to libc
2021-06-17 18:56 [PATCH v2 00/34] Move librt into libc Florian Weimer
` (21 preceding siblings ...)
2021-06-17 18:58 ` [PATCH 22/34] Linux: Move mq_getattr " Florian Weimer
@ 2021-06-17 18:58 ` Florian Weimer
2021-06-24 14:05 ` Adhemerval Zanella
2021-06-17 18:59 ` [PATCH 24/34] Linux: Move mq_open, __mq_open_2 " Florian Weimer
` (11 subsequent siblings)
34 siblings, 1 reply; 72+ messages in thread
From: Florian Weimer @ 2021-06-17 18:58 UTC (permalink / raw)
To: libc-alpha
The symbol was moved using scripts/move-symbol-to-libc.py.
An explicit call from fork into the mq_notify implementation replaces
the previous use of pthread_atfork.
---
include/mqueue.h | 4 ++
include/pthread.h | 3 +
rt/Makefile | 2 +-
rt/Versions | 4 +-
sysdeps/nptl/fork.c | 3 +
sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 +
sysdeps/unix/sysv/linux/aarch64/librt.abilist | 1 -
sysdeps/unix/sysv/linux/alpha/libc.abilist | 2 +
sysdeps/unix/sysv/linux/alpha/librt.abilist | 1 -
sysdeps/unix/sysv/linux/arc/libc.abilist | 2 +
sysdeps/unix/sysv/linux/arc/librt.abilist | 1 -
sysdeps/unix/sysv/linux/arm/be/libc.abilist | 2 +
sysdeps/unix/sysv/linux/arm/be/librt.abilist | 1 -
sysdeps/unix/sysv/linux/arm/le/libc.abilist | 2 +
sysdeps/unix/sysv/linux/arm/le/librt.abilist | 1 -
sysdeps/unix/sysv/linux/csky/libc.abilist | 2 +
sysdeps/unix/sysv/linux/csky/librt.abilist | 1 -
sysdeps/unix/sysv/linux/hppa/libc.abilist | 2 +
sysdeps/unix/sysv/linux/hppa/librt.abilist | 1 -
sysdeps/unix/sysv/linux/i386/libc.abilist | 2 +
sysdeps/unix/sysv/linux/i386/librt.abilist | 1 -
sysdeps/unix/sysv/linux/ia64/libc.abilist | 2 +
sysdeps/unix/sysv/linux/ia64/librt.abilist | 1 -
.../sysv/linux/m68k/coldfire/libc.abilist | 2 +
.../sysv/linux/m68k/coldfire/librt.abilist | 1 -
.../unix/sysv/linux/m68k/m680x0/libc.abilist | 2 +
.../unix/sysv/linux/m68k/m680x0/librt.abilist | 1 -
.../sysv/linux/microblaze/be/libc.abilist | 2 +
.../sysv/linux/microblaze/be/librt.abilist | 1 -
.../sysv/linux/microblaze/le/libc.abilist | 2 +
.../sysv/linux/microblaze/le/librt.abilist | 1 -
.../sysv/linux/mips/mips32/fpu/libc.abilist | 2 +
.../unix/sysv/linux/mips/mips32/librt.abilist | 1 -
.../sysv/linux/mips/mips32/nofpu/libc.abilist | 2 +
.../sysv/linux/mips/mips64/n32/libc.abilist | 2 +
.../sysv/linux/mips/mips64/n32/librt.abilist | 1 -
.../sysv/linux/mips/mips64/n64/libc.abilist | 2 +
.../sysv/linux/mips/mips64/n64/librt.abilist | 1 -
sysdeps/unix/sysv/linux/mq_notify.c | 55 ++++++++-----------
sysdeps/unix/sysv/linux/nios2/libc.abilist | 2 +
sysdeps/unix/sysv/linux/nios2/librt.abilist | 1 -
.../linux/powerpc/powerpc32/fpu/libc.abilist | 2 +
.../linux/powerpc/powerpc32/librt.abilist | 1 -
.../powerpc/powerpc32/nofpu/libc.abilist | 2 +
.../linux/powerpc/powerpc64/be/libc.abilist | 2 +
.../linux/powerpc/powerpc64/be/librt.abilist | 1 -
.../linux/powerpc/powerpc64/le/libc.abilist | 2 +
.../linux/powerpc/powerpc64/le/librt.abilist | 1 -
.../unix/sysv/linux/riscv/rv32/libc.abilist | 2 +
.../unix/sysv/linux/riscv/rv32/librt.abilist | 1 -
.../unix/sysv/linux/riscv/rv64/libc.abilist | 2 +
.../unix/sysv/linux/riscv/rv64/librt.abilist | 1 -
.../unix/sysv/linux/s390/s390-32/libc.abilist | 2 +
.../sysv/linux/s390/s390-32/librt.abilist | 1 -
.../unix/sysv/linux/s390/s390-64/libc.abilist | 2 +
.../sysv/linux/s390/s390-64/librt.abilist | 1 -
sysdeps/unix/sysv/linux/sh/be/libc.abilist | 2 +
sysdeps/unix/sysv/linux/sh/be/librt.abilist | 1 -
sysdeps/unix/sysv/linux/sh/le/libc.abilist | 2 +
sysdeps/unix/sysv/linux/sh/le/librt.abilist | 1 -
.../sysv/linux/sparc/sparc32/libc.abilist | 2 +
.../sysv/linux/sparc/sparc32/librt.abilist | 1 -
.../sysv/linux/sparc/sparc64/libc.abilist | 2 +
.../sysv/linux/sparc/sparc64/librt.abilist | 1 -
.../unix/sysv/linux/x86_64/64/libc.abilist | 2 +
.../unix/sysv/linux/x86_64/64/librt.abilist | 1 -
.../unix/sysv/linux/x86_64/x32/libc.abilist | 2 +
.../unix/sysv/linux/x86_64/x32/librt.abilist | 1 -
68 files changed, 100 insertions(+), 65 deletions(-)
diff --git a/include/mqueue.h b/include/mqueue.h
index 008589f0fa..2c40c1e3fc 100644
--- a/include/mqueue.h
+++ b/include/mqueue.h
@@ -15,6 +15,10 @@ hidden_proto (mq_setattr)
# if PTHREAD_IN_LIBC
libc_hidden_proto (mq_setattr)
+
+/* Called from fork so that the new subprocess re-creates the
+ notification thread if necessary. */
+void __mq_notify_fork_subprocess (void) attribute_hidden;
# endif
#include <struct___timespec64.h>
diff --git a/include/pthread.h b/include/pthread.h
index 1158919247..819bf3f235 100644
--- a/include/pthread.h
+++ b/include/pthread.h
@@ -13,6 +13,9 @@ libc_hidden_proto (__pthread_barrier_init)
#endif
extern int __pthread_barrier_wait (pthread_barrier_t *__barrier)
__THROWNL __nonnull ((1));
+#if PTHREAD_IN_LIBC
+libc_hidden_proto (__pthread_barrier_wait)
+#endif
/* This function is called to initialize the pthread library. */
extern void __pthread_initialize (void) __attribute__ ((weak));
diff --git a/rt/Makefile b/rt/Makefile
index e9b68f0274..838e67b229 100644
--- a/rt/Makefile
+++ b/rt/Makefile
@@ -30,7 +30,6 @@ routines = \
librt-routines = \
librt-compat \
- mq_notify \
mq_open \
mq_receive \
mq_send \
@@ -62,6 +61,7 @@ $(librt-routines-var) += \
lio_listio64 \
mq_close \
mq_getattr \
+ mq_notify \
mq_setattr \
tests := tst-shm tst-timer tst-timer2 \
diff --git a/rt/Versions b/rt/Versions
index 38f23c16ef..b3c9bba9ff 100644
--- a/rt/Versions
+++ b/rt/Versions
@@ -28,6 +28,7 @@ libc {
%if PTHREAD_IN_LIBC
mq_close;
mq_getattr;
+ mq_notify;
mq_setattr;
%endif
}
@@ -58,6 +59,7 @@ libc {
lio_listio64;
mq_close;
mq_getattr;
+ mq_notify;
mq_setattr;
%endif
shm_open;
@@ -112,9 +114,9 @@ librt {
%if !PTHREAD_IN_LIBC
mq_close;
mq_getattr;
+ mq_notify;
mq_setattr;
%endif
- mq_notify;
mq_open;
mq_receive;
mq_send;
diff --git a/sysdeps/nptl/fork.c b/sysdeps/nptl/fork.c
index 39ab797612..d6a0996b79 100644
--- a/sysdeps/nptl/fork.c
+++ b/sysdeps/nptl/fork.c
@@ -36,6 +36,7 @@
#include <unwind-link.h>
#include <sys/single_threaded.h>
#include <list.h>
+#include <mqueue.h>
static void
fresetlockfiles (void)
@@ -229,6 +230,8 @@ __libc_fork (void)
/* Reset locks in the I/O code. */
_IO_list_resetlock ();
+ call_function_static_weak (__mq_notify_fork_subprocess);
+
call_function_static_weak (__nss_database_fork_subprocess,
&nss_database_data);
}
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index c6b225527c..98dd344aaf 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -1359,6 +1359,7 @@ GLIBC_2.17 mprobe F
GLIBC_2.17 mprotect F
GLIBC_2.17 mq_close F
GLIBC_2.17 mq_getattr F
+GLIBC_2.17 mq_notify F
GLIBC_2.17 mq_setattr F
GLIBC_2.17 mrand48 F
GLIBC_2.17 mrand48_r F
@@ -2404,6 +2405,7 @@ GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
+GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
index 33b825d874..6cab033b12 100644
--- a/sysdeps/unix/sysv/linux/aarch64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
@@ -1,5 +1,4 @@
GLIBC_2.17 __mq_open_2 F
-GLIBC_2.17 mq_notify F
GLIBC_2.17 mq_open F
GLIBC_2.17 mq_receive F
GLIBC_2.17 mq_send F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 4930bfef60..5026e54d51 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -2394,6 +2394,7 @@ GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
+GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2499,6 +2500,7 @@ GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
+GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
index 29f9030371..d85884d888 100644
--- a/sysdeps/unix/sysv/linux/alpha/librt.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist
@@ -10,7 +10,6 @@ GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 78a01ca136..f677395bd2 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1290,6 +1290,7 @@ GLIBC_2.32 mprobe F
GLIBC_2.32 mprotect F
GLIBC_2.32 mq_close F
GLIBC_2.32 mq_getattr F
+GLIBC_2.32 mq_notify F
GLIBC_2.32 mq_setattr F
GLIBC_2.32 mrand48 F
GLIBC_2.32 mrand48_r F
@@ -2163,6 +2164,7 @@ GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
+GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
index 4143924c8b..16864093a0 100644
--- a/sysdeps/unix/sysv/linux/arc/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arc/librt.abilist
@@ -1,5 +1,4 @@
GLIBC_2.32 __mq_open_2 F
-GLIBC_2.32 mq_notify F
GLIBC_2.32 mq_open F
GLIBC_2.32 mq_receive F
GLIBC_2.32 mq_send F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 4ad531fb76..38e6fc61d4 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -315,6 +315,7 @@ GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
+GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
@@ -1731,6 +1732,7 @@ GLIBC_2.4 mprobe F
GLIBC_2.4 mprotect F
GLIBC_2.4 mq_close F
GLIBC_2.4 mq_getattr F
+GLIBC_2.4 mq_notify F
GLIBC_2.4 mq_setattr F
GLIBC_2.4 mrand48 F
GLIBC_2.4 mrand48_r F
diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
index ba9f5f6422..6d3cb7c1fa 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -2,7 +2,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 mq_notify F
GLIBC_2.4 mq_open F
GLIBC_2.4 mq_receive F
GLIBC_2.4 mq_send F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index aae2e215f3..c31f58229a 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -312,6 +312,7 @@ GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
+GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
@@ -1728,6 +1729,7 @@ GLIBC_2.4 mprobe F
GLIBC_2.4 mprotect F
GLIBC_2.4 mq_close F
GLIBC_2.4 mq_getattr F
+GLIBC_2.4 mq_notify F
GLIBC_2.4 mq_setattr F
GLIBC_2.4 mrand48 F
GLIBC_2.4 mrand48_r F
diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
index ba9f5f6422..6d3cb7c1fa 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -2,7 +2,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 mq_notify F
GLIBC_2.4 mq_open F
GLIBC_2.4 mq_receive F
GLIBC_2.4 mq_send F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 0bbe74a51a..bd0cec183d 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -1345,6 +1345,7 @@ GLIBC_2.29 mprobe F
GLIBC_2.29 mprotect F
GLIBC_2.29 mq_close F
GLIBC_2.29 mq_getattr F
+GLIBC_2.29 mq_notify F
GLIBC_2.29 mq_setattr F
GLIBC_2.29 mrand48 F
GLIBC_2.29 mrand48_r F
@@ -2424,6 +2425,7 @@ GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
+GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
index 1ffc068f62..7c20548140 100644
--- a/sysdeps/unix/sysv/linux/csky/librt.abilist
+++ b/sysdeps/unix/sysv/linux/csky/librt.abilist
@@ -1,5 +1,4 @@
GLIBC_2.29 __mq_open_2 F
-GLIBC_2.29 mq_notify F
GLIBC_2.29 mq_open F
GLIBC_2.29 mq_receive F
GLIBC_2.29 mq_send F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index f96ed60028..e089d91a80 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -2208,6 +2208,7 @@ GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
+GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2378,6 +2379,7 @@ GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
+GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
index d208e7b7a8..c4164f4149 100644
--- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
@@ -4,7 +4,6 @@ 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.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index a724074718..d04f1e1a95 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -2389,6 +2389,7 @@ GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
+GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2562,6 +2563,7 @@ GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
+GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
index d208e7b7a8..c4164f4149 100644
--- a/sysdeps/unix/sysv/linux/i386/librt.abilist
+++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
@@ -4,7 +4,6 @@ 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.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 3b5c72f307..c7569a5138 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -2243,6 +2243,7 @@ GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
+GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2337,6 +2338,7 @@ GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
+GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
index 38edc31e90..1ec96c2786 100644
--- a/sysdeps/unix/sysv/linux/ia64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/librt.abilist
@@ -9,7 +9,6 @@ GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 85de809b2d..57139d935a 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -316,6 +316,7 @@ GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
+GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
@@ -1715,6 +1716,7 @@ GLIBC_2.4 mprobe F
GLIBC_2.4 mprotect F
GLIBC_2.4 mq_close F
GLIBC_2.4 mq_getattr F
+GLIBC_2.4 mq_notify F
GLIBC_2.4 mq_setattr F
GLIBC_2.4 mrand48 F
GLIBC_2.4 mrand48_r F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
index ba9f5f6422..6d3cb7c1fa 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -2,7 +2,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 mq_notify F
GLIBC_2.4 mq_open F
GLIBC_2.4 mq_receive F
GLIBC_2.4 mq_send F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index a9abdfa950..5fd9bf57ec 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2332,6 +2332,7 @@ GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
+GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2505,6 +2506,7 @@ GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
+GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
index d208e7b7a8..c4164f4149 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
@@ -4,7 +4,6 @@ GLIBC_2.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.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 6bf22e63e3..434b3f6844 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -1361,6 +1361,7 @@ GLIBC_2.18 mprobe F
GLIBC_2.18 mprotect F
GLIBC_2.18 mq_close F
GLIBC_2.18 mq_getattr F
+GLIBC_2.18 mq_notify F
GLIBC_2.18 mq_setattr F
GLIBC_2.18 mrand48 F
GLIBC_2.18 mrand48_r F
@@ -2475,6 +2476,7 @@ GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
+GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
index a8bbeb6a20..f82d9ba705 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
@@ -1,5 +1,4 @@
GLIBC_2.18 __mq_open_2 F
-GLIBC_2.18 mq_notify F
GLIBC_2.18 mq_open F
GLIBC_2.18 mq_receive F
GLIBC_2.18 mq_send F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 4e211638c9..1d97080a9c 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -1361,6 +1361,7 @@ GLIBC_2.18 mprobe F
GLIBC_2.18 mprotect F
GLIBC_2.18 mq_close F
GLIBC_2.18 mq_getattr F
+GLIBC_2.18 mq_notify F
GLIBC_2.18 mq_setattr F
GLIBC_2.18 mrand48 F
GLIBC_2.18 mrand48_r F
@@ -2472,6 +2473,7 @@ GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
+GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
index a8bbeb6a20..f82d9ba705 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
@@ -1,5 +1,4 @@
GLIBC_2.18 __mq_open_2 F
-GLIBC_2.18 mq_notify F
GLIBC_2.18 mq_open F
GLIBC_2.18 mq_receive F
GLIBC_2.18 mq_send F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 96d2e57a71..d43b66902d 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -2300,6 +2300,7 @@ GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
+GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2470,6 +2471,7 @@ GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
+GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
index 7704fd1722..12c3cbae0d 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
@@ -3,7 +3,6 @@ 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.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 3f8736354d..86dfc85225 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -2298,6 +2298,7 @@ GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
+GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2468,6 +2469,7 @@ GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
+GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index ab6ca602b9..3314c50b3c 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -2306,6 +2306,7 @@ GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
+GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2476,6 +2477,7 @@ GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
+GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
index 7704fd1722..12c3cbae0d 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
@@ -3,7 +3,6 @@ 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.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 328abb0e02..a23ebf24a8 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -2300,6 +2300,7 @@ GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
+GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2393,6 +2394,7 @@ GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
+GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
index a249a4623f..7afe4e83cf 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
@@ -3,7 +3,6 @@ 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.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
diff --git a/sysdeps/unix/sysv/linux/mq_notify.c b/sysdeps/unix/sysv/linux/mq_notify.c
index e22850a910..9a68d9534d 100644
--- a/sysdeps/unix/sysv/linux/mq_notify.c
+++ b/sysdeps/unix/sysv/linux/mq_notify.c
@@ -29,7 +29,7 @@
#include <sys/socket.h>
#include <not-cancel.h>
#include <pthreadP.h>
-
+#include <shlib-compat.h>
/* Defined in the kernel headers: */
#define NOTIFY_COOKIE_LEN 32 /* Length of the cookie used. */
@@ -75,7 +75,7 @@ change_sigmask (int how, sigset_t *oss)
{
sigset_t ss;
sigfillset (&ss);
- return pthread_sigmask (how, &ss, oss);
+ return __pthread_sigmask (how, &ss, oss);
}
@@ -93,7 +93,7 @@ notification_function (void *arg)
(void) __pthread_barrier_wait (¬ify_barrier);
/* Make the thread detached. */
- (void) pthread_detach (pthread_self ());
+ (void) __pthread_detach (__pthread_self ());
/* The parent thread has all signals blocked. This is probably a
bit surprising for this thread. So we unblock all of them. */
@@ -125,8 +125,8 @@ helper_thread (void *arg)
/* Just create the thread as instructed. There is no way to
report a problem with creating a thread. */
pthread_t th;
- if (__builtin_expect (pthread_create (&th, data.attr,
- notification_function, &data)
+ if (__builtin_expect (__pthread_create (&th, data.attr,
+ notification_function, &data)
== 0, 0))
/* Since we passed a pointer to DATA to the new thread we have
to wait until it is done with it. */
@@ -135,7 +135,7 @@ helper_thread (void *arg)
else if (data.raw[NOTIFY_COOKIE_LEN - 1] == NOTIFY_REMOVED)
{
/* The only state we keep is the copy of the thread attributes. */
- pthread_attr_destroy (data.attr);
+ __pthread_attr_destroy (data.attr);
free (data.attr);
}
}
@@ -143,8 +143,8 @@ helper_thread (void *arg)
}
-static void
-reset_once (void)
+void
+__mq_notify_fork_subprocess (void)
{
once = PTHREAD_ONCE_INIT;
}
@@ -172,10 +172,10 @@ init_mq_netlink (void)
{
/* Create the helper thread. */
pthread_attr_t attr;
- (void) pthread_attr_init (&attr);
- (void) pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
+ (void) __pthread_attr_init (&attr);
+ (void) __pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
/* We do not need much stack space, the bare minimum will be enough. */
- (void) pthread_attr_setstacksize (&attr, __pthread_get_minstack (&attr));
+ (void) __pthread_attr_setstacksize (&attr, __pthread_get_minstack (&attr));
/* Temporarily block all signals so that the newly created
thread inherits the mask. */
@@ -183,29 +183,13 @@ init_mq_netlink (void)
int have_no_oss = change_sigmask (SIG_BLOCK, &oss);
pthread_t th;
- err = pthread_create (&th, &attr, helper_thread, NULL);
+ err = __pthread_create (&th, &attr, helper_thread, NULL);
/* Reset the signal mask. */
if (!have_no_oss)
- pthread_sigmask (SIG_SETMASK, &oss, NULL);
-
- (void) pthread_attr_destroy (&attr);
+ __pthread_sigmask (SIG_SETMASK, &oss, NULL);
- if (err == 0)
- {
- static int added_atfork;
-
- if (added_atfork == 0
- && pthread_atfork (NULL, NULL, reset_once) != 0)
- {
- /* The child thread will call recv() which is a
- cancellation point. */
- (void) pthread_cancel (th);
- err = 1;
- }
- else
- added_atfork = 1;
- }
+ (void) __pthread_attr_destroy (&attr);
}
if (err != 0)
@@ -219,7 +203,7 @@ init_mq_netlink (void)
/* Register notification upon message arrival to an empty message queue
MQDES. */
int
-mq_notify (mqd_t mqdes, const struct sigevent *notification)
+__mq_notify (mqd_t mqdes, const struct sigevent *notification)
{
/* Make sure the type is correctly defined. */
assert (sizeof (union notify_data) == NOTIFY_COOKIE_LEN);
@@ -235,7 +219,7 @@ mq_notify (mqd_t mqdes, const struct sigevent *notification)
response. */
/* Initialize only once. */
- pthread_once (&once, init_mq_netlink);
+ __pthread_once (&once, init_mq_netlink);
/* If we cannot create the netlink socket we cannot provide
SIGEV_THREAD support. */
@@ -280,9 +264,14 @@ mq_notify (mqd_t mqdes, const struct sigevent *notification)
/* If it failed, free the allocated memory. */
if (retval != 0 && data.attr != NULL)
{
- pthread_attr_destroy (data.attr);
+ __pthread_attr_destroy (data.attr);
free (data.attr);
}
return retval;
}
+versioned_symbol (libc, __mq_notify, mq_notify, GLIBC_2_34);
+libc_hidden_ver (__mq_notify, mq_notify)
+#if OTHER_SHLIB_COMPAT (librt, GLIBC_2_3_4, GLIBC_2_34)
+compat_symbol (librt, __mq_notify, mq_notify, GLIBC_2_3_4);
+#endif
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index b8dd80465f..50b5f57efc 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -1404,6 +1404,7 @@ GLIBC_2.21 mprobe F
GLIBC_2.21 mprotect F
GLIBC_2.21 mq_close F
GLIBC_2.21 mq_getattr F
+GLIBC_2.21 mq_notify F
GLIBC_2.21 mq_setattr F
GLIBC_2.21 mrand48 F
GLIBC_2.21 mrand48_r F
@@ -2514,6 +2515,7 @@ GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
+GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
index 64a169169f..0ad1b47423 100644
--- a/sysdeps/unix/sysv/linux/nios2/librt.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/librt.abilist
@@ -1,5 +1,4 @@
GLIBC_2.21 __mq_open_2 F
-GLIBC_2.21 mq_notify F
GLIBC_2.21 mq_open F
GLIBC_2.21 mq_receive F
GLIBC_2.21 mq_send F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 04a263f810..c8b663ff2f 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -2346,6 +2346,7 @@ GLIBC_2.3.4 longjmp F
GLIBC_2.3.4 makecontext F
GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
+GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2532,6 +2533,7 @@ GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
+GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
index d208e7b7a8..c4164f4149 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
@@ -4,7 +4,6 @@ GLIBC_2.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.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 9e8043323c..551af732bb 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -2379,6 +2379,7 @@ GLIBC_2.3.4 longjmp F
GLIBC_2.3.4 makecontext F
GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
+GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2565,6 +2566,7 @@ GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
+GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 21e7cb9a28..a79b8863e1 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -2192,6 +2192,7 @@ GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 longjmp F
GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
+GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2301,6 +2302,7 @@ GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
+GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
index 073df9d157..a7117238c4 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
@@ -8,7 +8,6 @@ GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 5487741113..89293145e4 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -1447,6 +1447,7 @@ GLIBC_2.17 mprobe F
GLIBC_2.17 mprotect F
GLIBC_2.17 mq_close F
GLIBC_2.17 mq_getattr F
+GLIBC_2.17 mq_notify F
GLIBC_2.17 mq_setattr F
GLIBC_2.17 mrand48 F
GLIBC_2.17 mrand48_r F
@@ -2600,6 +2601,7 @@ GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
+GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
index 33b825d874..6cab033b12 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
@@ -1,5 +1,4 @@
GLIBC_2.17 __mq_open_2 F
-GLIBC_2.17 mq_notify F
GLIBC_2.17 mq_open F
GLIBC_2.17 mq_receive F
GLIBC_2.17 mq_send F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index ac6d6b1200..da03d7e3b4 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1292,6 +1292,7 @@ GLIBC_2.33 mprobe F
GLIBC_2.33 mprotect F
GLIBC_2.33 mq_close F
GLIBC_2.33 mq_getattr F
+GLIBC_2.33 mq_notify F
GLIBC_2.33 mq_setattr F
GLIBC_2.33 mrand48 F
GLIBC_2.33 mrand48_r F
@@ -2165,6 +2166,7 @@ GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
+GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
index 86456a362e..2877905086 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
@@ -1,5 +1,4 @@
GLIBC_2.33 __mq_open_2 F
-GLIBC_2.33 mq_notify F
GLIBC_2.33 mq_open F
GLIBC_2.33 mq_receive F
GLIBC_2.33 mq_send F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 10607eff2d..e1ff263953 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -1342,6 +1342,7 @@ GLIBC_2.27 mprobe F
GLIBC_2.27 mprotect F
GLIBC_2.27 mq_close F
GLIBC_2.27 mq_getattr F
+GLIBC_2.27 mq_notify F
GLIBC_2.27 mq_setattr F
GLIBC_2.27 mrand48 F
GLIBC_2.27 mrand48_r F
@@ -2365,6 +2366,7 @@ GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
+GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
index e9a7d2fe8a..79c4c5870f 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
@@ -1,5 +1,4 @@
GLIBC_2.27 __mq_open_2 F
-GLIBC_2.27 mq_notify F
GLIBC_2.27 mq_open F
GLIBC_2.27 mq_receive F
GLIBC_2.27 mq_send F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 6fc716311f..b1af366553 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -2345,6 +2345,7 @@ GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
+GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2530,6 +2531,7 @@ GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
+GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
index d208e7b7a8..c4164f4149 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
@@ -4,7 +4,6 @@ GLIBC_2.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.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index d8d502deb6..70322f5969 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -2233,6 +2233,7 @@ GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
+GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2338,6 +2339,7 @@ GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
+GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
index 6df861ffb6..7e2f744325 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
@@ -8,7 +8,6 @@ GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index bbeb8d248b..57dc4db1e7 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -2212,6 +2212,7 @@ GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
+GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2385,6 +2386,7 @@ GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
+GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
index d208e7b7a8..c4164f4149 100644
--- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
@@ -4,7 +4,6 @@ GLIBC_2.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.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 1cbeb0474a..d00a7d6034 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -2212,6 +2212,7 @@ GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
+GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2382,6 +2383,7 @@ GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
+GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
index d208e7b7a8..c4164f4149 100644
--- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
@@ -4,7 +4,6 @@ GLIBC_2.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.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 8d7b102a04..e25501e4c4 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -2343,6 +2343,7 @@ GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
+GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2525,6 +2526,7 @@ GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
+GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
index 2da8518d03..19e98aae24 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
@@ -5,7 +5,6 @@ GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
GLIBC_2.3 __librt_version_placeholder F
-GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 66a6a37699..cdec31d161 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -2267,6 +2267,7 @@ GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
+GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2360,6 +2361,7 @@ GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
+GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
index 29f9030371..d85884d888 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
@@ -10,7 +10,6 @@ GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 44c6b63d14..1f16f15c1b 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -2221,6 +2221,7 @@ GLIBC_2.3.4 getipv4sourcefilter F
GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
+GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2316,6 +2317,7 @@ GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
+GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
index 0efa2e11fa..139cf285ec 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
@@ -8,7 +8,6 @@ GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 3dba64549e..ac010952fe 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -1366,6 +1366,7 @@ GLIBC_2.16 mprobe F
GLIBC_2.16 mprotect F
GLIBC_2.16 mq_close F
GLIBC_2.16 mq_getattr F
+GLIBC_2.16 mq_notify F
GLIBC_2.16 mq_setattr F
GLIBC_2.16 mrand48 F
GLIBC_2.16 mrand48_r F
@@ -2419,6 +2420,7 @@ GLIBC_2.34 lio_listio F
GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
+GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
index dc15c9057f..db976a6c97 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
@@ -1,5 +1,4 @@
GLIBC_2.16 __mq_open_2 F
-GLIBC_2.16 mq_notify F
GLIBC_2.16 mq_open F
GLIBC_2.16 mq_receive F
GLIBC_2.16 mq_send F
--
2.31.1
^ permalink raw reply [flat|nested] 72+ messages in thread
* Re: [PATCH 23/34] Linux: Move mq_notify from librt to libc
2021-06-17 18:58 ` [PATCH 23/34] Linux: Move mq_notify " Florian Weimer
@ 2021-06-24 14:05 ` Adhemerval Zanella
2021-06-25 11:37 ` Florian Weimer
0 siblings, 1 reply; 72+ messages in thread
From: Adhemerval Zanella @ 2021-06-24 14:05 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 17/06/2021 15:58, Florian Weimer via Libc-alpha wrote:
> The symbol was moved using scripts/move-symbol-to-libc.py.
>
> An explicit call from fork into the mq_notify implementation replaces
> the previous use of pthread_atfork.
LGTM, thanks. Some minor nits below.
Reviewed-by: Adhemerva Zanella <adhemerval.zanella@linaro.org>
> ---
> include/mqueue.h | 4 ++
> include/pthread.h | 3 +
> rt/Makefile | 2 +-
> rt/Versions | 4 +-
> sysdeps/nptl/fork.c | 3 +
> sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/aarch64/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/alpha/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/alpha/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/arc/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/arc/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/arm/be/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/arm/be/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/arm/le/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/arm/le/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/csky/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/csky/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/hppa/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/hppa/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/i386/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/i386/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/ia64/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/ia64/librt.abilist | 1 -
> .../sysv/linux/m68k/coldfire/libc.abilist | 2 +
> .../sysv/linux/m68k/coldfire/librt.abilist | 1 -
> .../unix/sysv/linux/m68k/m680x0/libc.abilist | 2 +
> .../unix/sysv/linux/m68k/m680x0/librt.abilist | 1 -
> .../sysv/linux/microblaze/be/libc.abilist | 2 +
> .../sysv/linux/microblaze/be/librt.abilist | 1 -
> .../sysv/linux/microblaze/le/libc.abilist | 2 +
> .../sysv/linux/microblaze/le/librt.abilist | 1 -
> .../sysv/linux/mips/mips32/fpu/libc.abilist | 2 +
> .../unix/sysv/linux/mips/mips32/librt.abilist | 1 -
> .../sysv/linux/mips/mips32/nofpu/libc.abilist | 2 +
> .../sysv/linux/mips/mips64/n32/libc.abilist | 2 +
> .../sysv/linux/mips/mips64/n32/librt.abilist | 1 -
> .../sysv/linux/mips/mips64/n64/libc.abilist | 2 +
> .../sysv/linux/mips/mips64/n64/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/mq_notify.c | 55 ++++++++-----------
> sysdeps/unix/sysv/linux/nios2/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/nios2/librt.abilist | 1 -
> .../linux/powerpc/powerpc32/fpu/libc.abilist | 2 +
> .../linux/powerpc/powerpc32/librt.abilist | 1 -
> .../powerpc/powerpc32/nofpu/libc.abilist | 2 +
> .../linux/powerpc/powerpc64/be/libc.abilist | 2 +
> .../linux/powerpc/powerpc64/be/librt.abilist | 1 -
> .../linux/powerpc/powerpc64/le/libc.abilist | 2 +
> .../linux/powerpc/powerpc64/le/librt.abilist | 1 -
> .../unix/sysv/linux/riscv/rv32/libc.abilist | 2 +
> .../unix/sysv/linux/riscv/rv32/librt.abilist | 1 -
> .../unix/sysv/linux/riscv/rv64/libc.abilist | 2 +
> .../unix/sysv/linux/riscv/rv64/librt.abilist | 1 -
> .../unix/sysv/linux/s390/s390-32/libc.abilist | 2 +
> .../sysv/linux/s390/s390-32/librt.abilist | 1 -
> .../unix/sysv/linux/s390/s390-64/libc.abilist | 2 +
> .../sysv/linux/s390/s390-64/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/sh/be/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/sh/be/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/sh/le/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/sh/le/librt.abilist | 1 -
> .../sysv/linux/sparc/sparc32/libc.abilist | 2 +
> .../sysv/linux/sparc/sparc32/librt.abilist | 1 -
> .../sysv/linux/sparc/sparc64/libc.abilist | 2 +
> .../sysv/linux/sparc/sparc64/librt.abilist | 1 -
> .../unix/sysv/linux/x86_64/64/libc.abilist | 2 +
> .../unix/sysv/linux/x86_64/64/librt.abilist | 1 -
> .../unix/sysv/linux/x86_64/x32/libc.abilist | 2 +
> .../unix/sysv/linux/x86_64/x32/librt.abilist | 1 -
> 68 files changed, 100 insertions(+), 65 deletions(-)
>
> diff --git a/include/mqueue.h b/include/mqueue.h
> index 008589f0fa..2c40c1e3fc 100644
> --- a/include/mqueue.h
> +++ b/include/mqueue.h
> @@ -15,6 +15,10 @@ hidden_proto (mq_setattr)
>
> # if PTHREAD_IN_LIBC
> libc_hidden_proto (mq_setattr)
> +
> +/* Called from fork so that the new subprocess re-creates the
> + notification thread if necessary. */
> +void __mq_notify_fork_subprocess (void) attribute_hidden;
> # endif
>
> #include <struct___timespec64.h>
Ok.
> diff --git a/include/pthread.h b/include/pthread.h
> index 1158919247..819bf3f235 100644
> --- a/include/pthread.h
> +++ b/include/pthread.h
> @@ -13,6 +13,9 @@ libc_hidden_proto (__pthread_barrier_init)
> #endif
> extern int __pthread_barrier_wait (pthread_barrier_t *__barrier)
> __THROWNL __nonnull ((1));
> +#if PTHREAD_IN_LIBC
> +libc_hidden_proto (__pthread_barrier_wait)
> +#endif
>
> /* This function is called to initialize the pthread library. */
> extern void __pthread_initialize (void) __attribute__ ((weak));
Ok.
> diff --git a/rt/Makefile b/rt/Makefile
> index e9b68f0274..838e67b229 100644
> --- a/rt/Makefile
> +++ b/rt/Makefile
> @@ -30,7 +30,6 @@ routines = \
>
> librt-routines = \
> librt-compat \
> - mq_notify \
> mq_open \
> mq_receive \
> mq_send \
> @@ -62,6 +61,7 @@ $(librt-routines-var) += \
> lio_listio64 \
> mq_close \
> mq_getattr \
> + mq_notify \
> mq_setattr \
>
> tests := tst-shm tst-timer tst-timer2 \
Ok.
> diff --git a/rt/Versions b/rt/Versions
> index 38f23c16ef..b3c9bba9ff 100644
> --- a/rt/Versions
> +++ b/rt/Versions
> @@ -28,6 +28,7 @@ libc {
> %if PTHREAD_IN_LIBC
> mq_close;
> mq_getattr;
> + mq_notify;
> mq_setattr;
> %endif
> }
> @@ -58,6 +59,7 @@ libc {
> lio_listio64;
> mq_close;
> mq_getattr;
> + mq_notify;
> mq_setattr;
> %endif
> shm_open;
> @@ -112,9 +114,9 @@ librt {
> %if !PTHREAD_IN_LIBC
> mq_close;
> mq_getattr;
> + mq_notify;
> mq_setattr;
> %endif
> - mq_notify;
> mq_open;
> mq_receive;
> mq_send;
Ok.
> diff --git a/sysdeps/nptl/fork.c b/sysdeps/nptl/fork.c
> index 39ab797612..d6a0996b79 100644
> --- a/sysdeps/nptl/fork.c
> +++ b/sysdeps/nptl/fork.c
> @@ -36,6 +36,7 @@
> #include <unwind-link.h>
> #include <sys/single_threaded.h>
> #include <list.h>
> +#include <mqueue.h>
>
> static void
> fresetlockfiles (void)
> @@ -229,6 +230,8 @@ __libc_fork (void)
> /* Reset locks in the I/O code. */
> _IO_list_resetlock ();
>
> + call_function_static_weak (__mq_notify_fork_subprocess);
> +
> call_function_static_weak (__nss_database_fork_subprocess,
> &nss_database_data);
> }
Ok.
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index c6b225527c..98dd344aaf 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -1359,6 +1359,7 @@ GLIBC_2.17 mprobe F
> GLIBC_2.17 mprotect F
> GLIBC_2.17 mq_close F
> GLIBC_2.17 mq_getattr F
> +GLIBC_2.17 mq_notify F
> GLIBC_2.17 mq_setattr F
> GLIBC_2.17 mrand48 F
> GLIBC_2.17 mrand48_r F
> @@ -2404,6 +2405,7 @@ GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> +GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> index 33b825d874..6cab033b12 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.17 __mq_open_2 F
> -GLIBC_2.17 mq_notify F
> GLIBC_2.17 mq_open F
> GLIBC_2.17 mq_receive F
> GLIBC_2.17 mq_send F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index 4930bfef60..5026e54d51 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -2394,6 +2394,7 @@ GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> +GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2499,6 +2500,7 @@ GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> +GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
> index 29f9030371..d85884d888 100644
> --- a/sysdeps/unix/sysv/linux/alpha/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist
> @@ -10,7 +10,6 @@ GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> -GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index 78a01ca136..f677395bd2 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -1290,6 +1290,7 @@ GLIBC_2.32 mprobe F
> GLIBC_2.32 mprotect F
> GLIBC_2.32 mq_close F
> GLIBC_2.32 mq_getattr F
> +GLIBC_2.32 mq_notify F
> GLIBC_2.32 mq_setattr F
> GLIBC_2.32 mrand48 F
> GLIBC_2.32 mrand48_r F
> @@ -2163,6 +2164,7 @@ GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> +GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
> index 4143924c8b..16864093a0 100644
> --- a/sysdeps/unix/sysv/linux/arc/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/librt.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.32 __mq_open_2 F
> -GLIBC_2.32 mq_notify F
> GLIBC_2.32 mq_open F
> GLIBC_2.32 mq_receive F
> GLIBC_2.32 mq_send F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index 4ad531fb76..38e6fc61d4 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -315,6 +315,7 @@ GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> +GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> @@ -1731,6 +1732,7 @@ GLIBC_2.4 mprobe F
> GLIBC_2.4 mprotect F
> GLIBC_2.4 mq_close F
> GLIBC_2.4 mq_getattr F
> +GLIBC_2.4 mq_notify F
> GLIBC_2.4 mq_setattr F
> GLIBC_2.4 mrand48 F
> GLIBC_2.4 mrand48_r F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> index ba9f5f6422..6d3cb7c1fa 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> @@ -2,7 +2,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 mq_notify F
> GLIBC_2.4 mq_open F
> GLIBC_2.4 mq_receive F
> GLIBC_2.4 mq_send F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index aae2e215f3..c31f58229a 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -312,6 +312,7 @@ GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> +GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> @@ -1728,6 +1729,7 @@ GLIBC_2.4 mprobe F
> GLIBC_2.4 mprotect F
> GLIBC_2.4 mq_close F
> GLIBC_2.4 mq_getattr F
> +GLIBC_2.4 mq_notify F
> GLIBC_2.4 mq_setattr F
> GLIBC_2.4 mrand48 F
> GLIBC_2.4 mrand48_r F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> index ba9f5f6422..6d3cb7c1fa 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> @@ -2,7 +2,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 mq_notify F
> GLIBC_2.4 mq_open F
> GLIBC_2.4 mq_receive F
> GLIBC_2.4 mq_send F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index 0bbe74a51a..bd0cec183d 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -1345,6 +1345,7 @@ GLIBC_2.29 mprobe F
> GLIBC_2.29 mprotect F
> GLIBC_2.29 mq_close F
> GLIBC_2.29 mq_getattr F
> +GLIBC_2.29 mq_notify F
> GLIBC_2.29 mq_setattr F
> GLIBC_2.29 mrand48 F
> GLIBC_2.29 mrand48_r F
> @@ -2424,6 +2425,7 @@ GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> +GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
> index 1ffc068f62..7c20548140 100644
> --- a/sysdeps/unix/sysv/linux/csky/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/librt.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.29 __mq_open_2 F
> -GLIBC_2.29 mq_notify F
> GLIBC_2.29 mq_open F
> GLIBC_2.29 mq_receive F
> GLIBC_2.29 mq_send F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index f96ed60028..e089d91a80 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -2208,6 +2208,7 @@ GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> +GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2378,6 +2379,7 @@ GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> +GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
> index d208e7b7a8..c4164f4149 100644
> --- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
> @@ -4,7 +4,6 @@ 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.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index a724074718..d04f1e1a95 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -2389,6 +2389,7 @@ GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> +GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2562,6 +2563,7 @@ GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> +GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
> index d208e7b7a8..c4164f4149 100644
> --- a/sysdeps/unix/sysv/linux/i386/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
> @@ -4,7 +4,6 @@ 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.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index 3b5c72f307..c7569a5138 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -2243,6 +2243,7 @@ GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> +GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2337,6 +2338,7 @@ GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> +GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
> index 38edc31e90..1ec96c2786 100644
> --- a/sysdeps/unix/sysv/linux/ia64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/librt.abilist
> @@ -9,7 +9,6 @@ GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> -GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index 85de809b2d..57139d935a 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -316,6 +316,7 @@ GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> +GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> @@ -1715,6 +1716,7 @@ GLIBC_2.4 mprobe F
> GLIBC_2.4 mprotect F
> GLIBC_2.4 mq_close F
> GLIBC_2.4 mq_getattr F
> +GLIBC_2.4 mq_notify F
> GLIBC_2.4 mq_setattr F
> GLIBC_2.4 mrand48 F
> GLIBC_2.4 mrand48_r F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> index ba9f5f6422..6d3cb7c1fa 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> @@ -2,7 +2,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 mq_notify F
> GLIBC_2.4 mq_open F
> GLIBC_2.4 mq_receive F
> GLIBC_2.4 mq_send F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index a9abdfa950..5fd9bf57ec 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -2332,6 +2332,7 @@ GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> +GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2505,6 +2506,7 @@ GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> +GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> index d208e7b7a8..c4164f4149 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.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.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index 6bf22e63e3..434b3f6844 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -1361,6 +1361,7 @@ GLIBC_2.18 mprobe F
> GLIBC_2.18 mprotect F
> GLIBC_2.18 mq_close F
> GLIBC_2.18 mq_getattr F
> +GLIBC_2.18 mq_notify F
> GLIBC_2.18 mq_setattr F
> GLIBC_2.18 mrand48 F
> GLIBC_2.18 mrand48_r F
> @@ -2475,6 +2476,7 @@ GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> +GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> index a8bbeb6a20..f82d9ba705 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.18 __mq_open_2 F
> -GLIBC_2.18 mq_notify F
> GLIBC_2.18 mq_open F
> GLIBC_2.18 mq_receive F
> GLIBC_2.18 mq_send F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index 4e211638c9..1d97080a9c 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -1361,6 +1361,7 @@ GLIBC_2.18 mprobe F
> GLIBC_2.18 mprotect F
> GLIBC_2.18 mq_close F
> GLIBC_2.18 mq_getattr F
> +GLIBC_2.18 mq_notify F
> GLIBC_2.18 mq_setattr F
> GLIBC_2.18 mrand48 F
> GLIBC_2.18 mrand48_r F
> @@ -2472,6 +2473,7 @@ GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> +GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> index a8bbeb6a20..f82d9ba705 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.18 __mq_open_2 F
> -GLIBC_2.18 mq_notify F
> GLIBC_2.18 mq_open F
> GLIBC_2.18 mq_receive F
> GLIBC_2.18 mq_send F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index 96d2e57a71..d43b66902d 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -2300,6 +2300,7 @@ GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> +GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2470,6 +2471,7 @@ GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> +GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> index 7704fd1722..12c3cbae0d 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> @@ -3,7 +3,6 @@ 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.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index 3f8736354d..86dfc85225 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -2298,6 +2298,7 @@ GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> +GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2468,6 +2469,7 @@ GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> +GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index ab6ca602b9..3314c50b3c 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -2306,6 +2306,7 @@ GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> +GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2476,6 +2477,7 @@ GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> +GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> index 7704fd1722..12c3cbae0d 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> @@ -3,7 +3,6 @@ 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.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index 328abb0e02..a23ebf24a8 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -2300,6 +2300,7 @@ GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> +GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2393,6 +2394,7 @@ GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> +GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> index a249a4623f..7afe4e83cf 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> @@ -3,7 +3,6 @@ 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.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
Ok.
> diff --git a/sysdeps/unix/sysv/linux/mq_notify.c b/sysdeps/unix/sysv/linux/mq_notify.c
> index e22850a910..9a68d9534d 100644
> --- a/sysdeps/unix/sysv/linux/mq_notify.c
> +++ b/sysdeps/unix/sysv/linux/mq_notify.c
> @@ -29,7 +29,7 @@
> #include <sys/socket.h>
> #include <not-cancel.h>
> #include <pthreadP.h>
> -
> +#include <shlib-compat.h>
>
> /* Defined in the kernel headers: */
> #define NOTIFY_COOKIE_LEN 32 /* Length of the cookie used. */
> @@ -75,7 +75,7 @@ change_sigmask (int how, sigset_t *oss)
> {
> sigset_t ss;
> sigfillset (&ss);
> - return pthread_sigmask (how, &ss, oss);
> + return __pthread_sigmask (how, &ss, oss);
> }
>
>
Ok.
> @@ -93,7 +93,7 @@ notification_function (void *arg)
> (void) __pthread_barrier_wait (¬ify_barrier);
>
> /* Make the thread detached. */
> - (void) pthread_detach (pthread_self ());
> + (void) __pthread_detach (__pthread_self ());
>
No need the extra cast here.
> /* The parent thread has all signals blocked. This is probably a
> bit surprising for this thread. So we unblock all of them. */
> @@ -125,8 +125,8 @@ helper_thread (void *arg)
> /* Just create the thread as instructed. There is no way to
> report a problem with creating a thread. */
> pthread_t th;
> - if (__builtin_expect (pthread_create (&th, data.attr,
> - notification_function, &data)
> + if (__builtin_expect (__pthread_create (&th, data.attr,
> + notification_function, &data)
> == 0, 0))
> /* Since we passed a pointer to DATA to the new thread we have
> to wait until it is done with it. */
Use __glibc_likely.
> @@ -135,7 +135,7 @@ helper_thread (void *arg)
> else if (data.raw[NOTIFY_COOKIE_LEN - 1] == NOTIFY_REMOVED)
> {
> /* The only state we keep is the copy of the thread attributes. */
> - pthread_attr_destroy (data.attr);
> + __pthread_attr_destroy (data.attr);
> free (data.attr);
> }
> }
> @@ -143,8 +143,8 @@ helper_thread (void *arg)
> }
>
>
> -static void
> -reset_once (void)
> +void
> +__mq_notify_fork_subprocess (void)
> {
> once = PTHREAD_ONCE_INIT;
> }
> @@ -172,10 +172,10 @@ init_mq_netlink (void)
> {
> /* Create the helper thread. */
> pthread_attr_t attr;
> - (void) pthread_attr_init (&attr);
> - (void) pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
> + (void) __pthread_attr_init (&attr);
> + (void) __pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
> /* We do not need much stack space, the bare minimum will be enough. */
> - (void) pthread_attr_setstacksize (&attr, __pthread_get_minstack (&attr));
> + (void) __pthread_attr_setstacksize (&attr, __pthread_get_minstack (&attr));
>
> /* Temporarily block all signals so that the newly created
> thread inherits the mask. */
No need the casts here.
> @@ -183,29 +183,13 @@ init_mq_netlink (void)
> int have_no_oss = change_sigmask (SIG_BLOCK, &oss);
>
> pthread_t th;
> - err = pthread_create (&th, &attr, helper_thread, NULL);
> + err = __pthread_create (&th, &attr, helper_thread, NULL);
>
> /* Reset the signal mask. */
> if (!have_no_oss)
> - pthread_sigmask (SIG_SETMASK, &oss, NULL);
> -
> - (void) pthread_attr_destroy (&attr);
> + __pthread_sigmask (SIG_SETMASK, &oss, NULL);
>
> - if (err == 0)
> - {
> - static int added_atfork;
> -
> - if (added_atfork == 0
> - && pthread_atfork (NULL, NULL, reset_once) != 0)
> - {
> - /* The child thread will call recv() which is a
> - cancellation point. */
> - (void) pthread_cancel (th);
> - err = 1;
> - }
> - else
> - added_atfork = 1;
> - }
> + (void) __pthread_attr_destroy (&attr);
> }
>
> if (err != 0)
Ok.
> @@ -219,7 +203,7 @@ init_mq_netlink (void)
> /* Register notification upon message arrival to an empty message queue
> MQDES. */
> int
> -mq_notify (mqd_t mqdes, const struct sigevent *notification)
> +__mq_notify (mqd_t mqdes, const struct sigevent *notification)
> {
> /* Make sure the type is correctly defined. */
> assert (sizeof (union notify_data) == NOTIFY_COOKIE_LEN);
> @@ -235,7 +219,7 @@ mq_notify (mqd_t mqdes, const struct sigevent *notification)
> response. */
>
> /* Initialize only once. */
> - pthread_once (&once, init_mq_netlink);
> + __pthread_once (&once, init_mq_netlink);
>
> /* If we cannot create the netlink socket we cannot provide
> SIGEV_THREAD support. */
> @@ -280,9 +264,14 @@ mq_notify (mqd_t mqdes, const struct sigevent *notification)
> /* If it failed, free the allocated memory. */
> if (retval != 0 && data.attr != NULL)
> {
> - pthread_attr_destroy (data.attr);
> + __pthread_attr_destroy (data.attr);
> free (data.attr);
> }
>
> return retval;
> }
> +versioned_symbol (libc, __mq_notify, mq_notify, GLIBC_2_34);
> +libc_hidden_ver (__mq_notify, mq_notify)
> +#if OTHER_SHLIB_COMPAT (librt, GLIBC_2_3_4, GLIBC_2_34)
> +compat_symbol (librt, __mq_notify, mq_notify, GLIBC_2_3_4);
> +#endif
Ok.
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index b8dd80465f..50b5f57efc 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -1404,6 +1404,7 @@ GLIBC_2.21 mprobe F
> GLIBC_2.21 mprotect F
> GLIBC_2.21 mq_close F
> GLIBC_2.21 mq_getattr F
> +GLIBC_2.21 mq_notify F
> GLIBC_2.21 mq_setattr F
> GLIBC_2.21 mrand48 F
> GLIBC_2.21 mrand48_r F
> @@ -2514,6 +2515,7 @@ GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> +GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
> index 64a169169f..0ad1b47423 100644
> --- a/sysdeps/unix/sysv/linux/nios2/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/librt.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.21 __mq_open_2 F
> -GLIBC_2.21 mq_notify F
> GLIBC_2.21 mq_open F
> GLIBC_2.21 mq_receive F
> GLIBC_2.21 mq_send F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index 04a263f810..c8b663ff2f 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -2346,6 +2346,7 @@ GLIBC_2.3.4 longjmp F
> GLIBC_2.3.4 makecontext F
> GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> +GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2532,6 +2533,7 @@ GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> +GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> index d208e7b7a8..c4164f4149 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.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.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index 9e8043323c..551af732bb 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -2379,6 +2379,7 @@ GLIBC_2.3.4 longjmp F
> GLIBC_2.3.4 makecontext F
> GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> +GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2565,6 +2566,7 @@ GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> +GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index 21e7cb9a28..a79b8863e1 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -2192,6 +2192,7 @@ GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 longjmp F
> GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> +GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2301,6 +2302,7 @@ GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> +GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> index 073df9d157..a7117238c4 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> @@ -8,7 +8,6 @@ GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> -GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index 5487741113..89293145e4 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -1447,6 +1447,7 @@ GLIBC_2.17 mprobe F
> GLIBC_2.17 mprotect F
> GLIBC_2.17 mq_close F
> GLIBC_2.17 mq_getattr F
> +GLIBC_2.17 mq_notify F
> GLIBC_2.17 mq_setattr F
> GLIBC_2.17 mrand48 F
> GLIBC_2.17 mrand48_r F
> @@ -2600,6 +2601,7 @@ GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> +GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> index 33b825d874..6cab033b12 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.17 __mq_open_2 F
> -GLIBC_2.17 mq_notify F
> GLIBC_2.17 mq_open F
> GLIBC_2.17 mq_receive F
> GLIBC_2.17 mq_send F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index ac6d6b1200..da03d7e3b4 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -1292,6 +1292,7 @@ GLIBC_2.33 mprobe F
> GLIBC_2.33 mprotect F
> GLIBC_2.33 mq_close F
> GLIBC_2.33 mq_getattr F
> +GLIBC_2.33 mq_notify F
> GLIBC_2.33 mq_setattr F
> GLIBC_2.33 mrand48 F
> GLIBC_2.33 mrand48_r F
> @@ -2165,6 +2166,7 @@ GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> +GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> index 86456a362e..2877905086 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.33 __mq_open_2 F
> -GLIBC_2.33 mq_notify F
> GLIBC_2.33 mq_open F
> GLIBC_2.33 mq_receive F
> GLIBC_2.33 mq_send F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index 10607eff2d..e1ff263953 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -1342,6 +1342,7 @@ GLIBC_2.27 mprobe F
> GLIBC_2.27 mprotect F
> GLIBC_2.27 mq_close F
> GLIBC_2.27 mq_getattr F
> +GLIBC_2.27 mq_notify F
> GLIBC_2.27 mq_setattr F
> GLIBC_2.27 mrand48 F
> GLIBC_2.27 mrand48_r F
> @@ -2365,6 +2366,7 @@ GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> +GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> index e9a7d2fe8a..79c4c5870f 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.27 __mq_open_2 F
> -GLIBC_2.27 mq_notify F
> GLIBC_2.27 mq_open F
> GLIBC_2.27 mq_receive F
> GLIBC_2.27 mq_send F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index 6fc716311f..b1af366553 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -2345,6 +2345,7 @@ GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> +GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2530,6 +2531,7 @@ GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> +GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> index d208e7b7a8..c4164f4149 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.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.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index d8d502deb6..70322f5969 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -2233,6 +2233,7 @@ GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> +GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2338,6 +2339,7 @@ GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> +GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> index 6df861ffb6..7e2f744325 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> @@ -8,7 +8,6 @@ GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> -GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index bbeb8d248b..57dc4db1e7 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -2212,6 +2212,7 @@ GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> +GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2385,6 +2386,7 @@ GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> +GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> index d208e7b7a8..c4164f4149 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.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.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index 1cbeb0474a..d00a7d6034 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -2212,6 +2212,7 @@ GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> +GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2382,6 +2383,7 @@ GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> +GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> index d208e7b7a8..c4164f4149 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.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.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index 8d7b102a04..e25501e4c4 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -2343,6 +2343,7 @@ GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> +GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2525,6 +2526,7 @@ GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> +GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> index 2da8518d03..19e98aae24 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> @@ -5,7 +5,6 @@ GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> GLIBC_2.3 __librt_version_placeholder F
> -GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index 66a6a37699..cdec31d161 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -2267,6 +2267,7 @@ GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> +GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2360,6 +2361,7 @@ GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> +GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> index 29f9030371..d85884d888 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> @@ -10,7 +10,6 @@ GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> -GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index 44c6b63d14..1f16f15c1b 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -2221,6 +2221,7 @@ GLIBC_2.3.4 getipv4sourcefilter F
> GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> +GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2316,6 +2317,7 @@ GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> +GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> index 0efa2e11fa..139cf285ec 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> @@ -8,7 +8,6 @@ GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> -GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index 3dba64549e..ac010952fe 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -1366,6 +1366,7 @@ GLIBC_2.16 mprobe F
> GLIBC_2.16 mprotect F
> GLIBC_2.16 mq_close F
> GLIBC_2.16 mq_getattr F
> +GLIBC_2.16 mq_notify F
> GLIBC_2.16 mq_setattr F
> GLIBC_2.16 mrand48 F
> GLIBC_2.16 mrand48_r F
> @@ -2419,6 +2420,7 @@ GLIBC_2.34 lio_listio F
> GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> +GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> index dc15c9057f..db976a6c97 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.16 __mq_open_2 F
> -GLIBC_2.16 mq_notify F
> GLIBC_2.16 mq_open F
> GLIBC_2.16 mq_receive F
> GLIBC_2.16 mq_send F
>
Ok.
^ permalink raw reply [flat|nested] 72+ messages in thread
* Re: [PATCH 23/34] Linux: Move mq_notify from librt to libc
2021-06-24 14:05 ` Adhemerval Zanella
@ 2021-06-25 11:37 ` Florian Weimer
0 siblings, 0 replies; 72+ messages in thread
From: Florian Weimer @ 2021-06-25 11:37 UTC (permalink / raw)
To: Adhemerval Zanella; +Cc: libc-alpha
* Adhemerval Zanella:
>> /* The parent thread has all signals blocked. This is probably a
>> bit surprising for this thread. So we unblock all of them. */
>> @@ -125,8 +125,8 @@ helper_thread (void *arg)
>> /* Just create the thread as instructed. There is no way to
>> report a problem with creating a thread. */
>> pthread_t th;
>> - if (__builtin_expect (pthread_create (&th, data.attr,
>> - notification_function, &data)
>> + if (__builtin_expect (__pthread_create (&th, data.attr,
>> + notification_function, &data)
>> == 0, 0))
>> /* Since we passed a pointer to DATA to the new thread we have
>> to wait until it is done with it. */
>
> Use __glibc_likely.
The old code is equivalent to __glibc_unlikely, though. I'm just going
to remove it.
Thanks,
Florian
^ permalink raw reply [flat|nested] 72+ messages in thread
* [PATCH 24/34] Linux: Move mq_open, __mq_open_2 from librt to libc
2021-06-17 18:56 [PATCH v2 00/34] Move librt into libc Florian Weimer
` (22 preceding siblings ...)
2021-06-17 18:58 ` [PATCH 23/34] Linux: Move mq_notify " Florian Weimer
@ 2021-06-17 18:59 ` Florian Weimer
2021-06-24 14:07 ` Adhemerval Zanella
2021-06-17 18:59 ` [PATCH 25/34] Linux: Move mq_receive, mq_timedreceive, __mq_timedreceive_time64 " Florian Weimer
` (10 subsequent siblings)
34 siblings, 1 reply; 72+ messages in thread
From: Florian Weimer @ 2021-06-17 18:59 UTC (permalink / raw)
To: libc-alpha
The symbols were moved using scripts/move-symbol-to-libc.py.
A placeholder symbol is required to keep the GLIBC_2.7 version.
---
rt/Makefile | 2 +-
rt/Versions | 14 +++++++++++++-
rt/librt-compat.c | 6 ++++++
sysdeps/unix/sysv/linux/aarch64/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/aarch64/librt.abilist | 2 --
sysdeps/unix/sysv/linux/alpha/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/alpha/librt.abilist | 3 +--
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 | 3 +--
sysdeps/unix/sysv/linux/arm/le/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/arm/le/librt.abilist | 3 +--
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 | 3 +--
sysdeps/unix/sysv/linux/i386/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/i386/librt.abilist | 3 +--
sysdeps/unix/sysv/linux/ia64/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/ia64/librt.abilist | 3 +--
sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist | 4 ++++
.../unix/sysv/linux/m68k/coldfire/librt.abilist | 3 +--
sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist | 3 +--
sysdeps/unix/sysv/linux/microblaze/be/libc.abilist | 4 ++++
.../unix/sysv/linux/microblaze/be/librt.abilist | 2 --
sysdeps/unix/sysv/linux/microblaze/le/libc.abilist | 4 ++++
.../unix/sysv/linux/microblaze/le/librt.abilist | 2 --
.../unix/sysv/linux/mips/mips32/fpu/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/mips/mips32/librt.abilist | 3 +--
.../unix/sysv/linux/mips/mips32/nofpu/libc.abilist | 4 ++++
.../unix/sysv/linux/mips/mips64/n32/libc.abilist | 4 ++++
.../unix/sysv/linux/mips/mips64/n32/librt.abilist | 3 +--
.../unix/sysv/linux/mips/mips64/n64/libc.abilist | 4 ++++
.../unix/sysv/linux/mips/mips64/n64/librt.abilist | 3 +--
sysdeps/unix/sysv/linux/mq_open.c | 12 ++++++++++--
sysdeps/unix/sysv/linux/nios2/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/nios2/librt.abilist | 2 --
.../sysv/linux/powerpc/powerpc32/fpu/libc.abilist | 4 ++++
.../sysv/linux/powerpc/powerpc32/librt.abilist | 3 +--
.../linux/powerpc/powerpc32/nofpu/libc.abilist | 4 ++++
.../sysv/linux/powerpc/powerpc64/be/libc.abilist | 4 ++++
.../sysv/linux/powerpc/powerpc64/be/librt.abilist | 3 +--
.../sysv/linux/powerpc/powerpc64/le/libc.abilist | 4 ++++
.../sysv/linux/powerpc/powerpc64/le/librt.abilist | 2 --
sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist | 2 --
sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist | 2 --
sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist | 3 +--
sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist | 3 +--
sysdeps/unix/sysv/linux/sh/be/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/sh/be/librt.abilist | 3 +--
sysdeps/unix/sysv/linux/sh/le/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/sh/le/librt.abilist | 3 +--
sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist | 4 ++++
.../unix/sysv/linux/sparc/sparc32/librt.abilist | 3 +--
sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist | 4 ++++
.../unix/sysv/linux/sparc/sparc64/librt.abilist | 3 +--
sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/x86_64/64/librt.abilist | 3 +--
sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist | 2 --
66 files changed, 178 insertions(+), 64 deletions(-)
diff --git a/rt/Makefile b/rt/Makefile
index 838e67b229..f0b13b27ba 100644
--- a/rt/Makefile
+++ b/rt/Makefile
@@ -30,7 +30,6 @@ routines = \
librt-routines = \
librt-compat \
- mq_open \
mq_receive \
mq_send \
mq_timedreceive \
@@ -62,6 +61,7 @@ $(librt-routines-var) += \
mq_close \
mq_getattr \
mq_notify \
+ mq_open \
mq_setattr \
tests := tst-shm tst-timer tst-timer2 \
diff --git a/rt/Versions b/rt/Versions
index b3c9bba9ff..d28a7f6979 100644
--- a/rt/Versions
+++ b/rt/Versions
@@ -29,6 +29,7 @@ libc {
mq_close;
mq_getattr;
mq_notify;
+ mq_open;
mq_setattr;
%endif
}
@@ -36,10 +37,16 @@ libc {
%if PTHREAD_IN_LIBC
lio_listio;
lio_listio64;
+%endif
+ }
+ GLIBC_2.7 {
+%if PTHREAD_IN_LIBC
+ __mq_open_2;
%endif
}
GLIBC_2.34 {
%if PTHREAD_IN_LIBC
+ __mq_open_2;
aio_cancel;
aio_cancel64;
aio_init;
@@ -60,6 +67,7 @@ libc {
mq_close;
mq_getattr;
mq_notify;
+ mq_open;
mq_setattr;
%endif
shm_open;
@@ -115,9 +123,9 @@ librt {
mq_close;
mq_getattr;
mq_notify;
+ mq_open;
mq_setattr;
%endif
- mq_open;
mq_receive;
mq_send;
mq_timedreceive;
@@ -133,6 +141,10 @@ librt {
%endif
}
GLIBC_2.7 {
+%if PTHREAD_IN_LIBC
+ __librt_version_placeholder;
+%else
__mq_open_2;
+%endif
}
}
diff --git a/rt/librt-compat.c b/rt/librt-compat.c
index 23c87b0f3e..ef353acdd1 100644
--- a/rt/librt-compat.c
+++ b/rt/librt-compat.c
@@ -38,4 +38,10 @@ compat_symbol (librt, __librt_version_placeholder_1,
__librt_version_placeholder, GLIBC_2_4);
# endif
+# if SHLIB_COMPAT (librt, GLIBC_2_7, GLIBC_2_34) \
+ && ABI_librt_GLIBC_2_7 != ABI_librt_GLIBC_2_4
+compat_symbol (librt, __librt_version_placeholder_1,
+ __librt_version_placeholder, GLIBC_2_7);
+# endif
+
#endif
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 98dd344aaf..07f77027fc 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -306,6 +306,7 @@ GLIBC_2.17 __mempcpy_small F
GLIBC_2.17 __memset_chk F
GLIBC_2.17 __monstartup F
GLIBC_2.17 __morecore D 0x8
+GLIBC_2.17 __mq_open_2 F
GLIBC_2.17 __nanosleep F
GLIBC_2.17 __newlocale F
GLIBC_2.17 __nl_langinfo_l F
@@ -1360,6 +1361,7 @@ GLIBC_2.17 mprotect F
GLIBC_2.17 mq_close F
GLIBC_2.17 mq_getattr F
GLIBC_2.17 mq_notify F
+GLIBC_2.17 mq_open F
GLIBC_2.17 mq_setattr F
GLIBC_2.17 mrand48 F
GLIBC_2.17 mrand48_r F
@@ -2358,6 +2360,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_key_create F
GLIBC_2.34 __pthread_mutex_lock F
@@ -2406,6 +2409,7 @@ GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
+GLIBC_2.34 mq_open F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
index 6cab033b12..32327b9d62 100644
--- a/sysdeps/unix/sysv/linux/aarch64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.17 __mq_open_2 F
-GLIBC_2.17 mq_open F
GLIBC_2.17 mq_receive F
GLIBC_2.17 mq_send F
GLIBC_2.17 mq_timedreceive F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 5026e54d51..683b320ddc 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -2395,6 +2395,7 @@ GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
+GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2453,6 +2454,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_key_create F
GLIBC_2.34 __pthread_mutex_lock F
@@ -2501,6 +2503,7 @@ GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
+GLIBC_2.34 mq_open F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
@@ -2891,6 +2894,7 @@ GLIBC_2.7 __isoc99_vsscanf F
GLIBC_2.7 __isoc99_vswscanf F
GLIBC_2.7 __isoc99_vwscanf F
GLIBC_2.7 __isoc99_wscanf F
+GLIBC_2.7 __mq_open_2 F
GLIBC_2.7 __nldbl___isoc99_fscanf F
GLIBC_2.7 __nldbl___isoc99_fwscanf F
GLIBC_2.7 __nldbl___isoc99_scanf F
diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
index d85884d888..bd9a4111f3 100644
--- a/sysdeps/unix/sysv/linux/alpha/librt.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist
@@ -10,11 +10,10 @@ GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
GLIBC_2.4 __librt_version_placeholder F
-GLIBC_2.7 __mq_open_2 F
+GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index f677395bd2..0d73e4cf7a 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -300,6 +300,7 @@ GLIBC_2.32 __mempcpy_chk F
GLIBC_2.32 __memset_chk F
GLIBC_2.32 __monstartup F
GLIBC_2.32 __morecore D 0x4
+GLIBC_2.32 __mq_open_2 F
GLIBC_2.32 __nanosleep F
GLIBC_2.32 __newlocale F
GLIBC_2.32 __nl_langinfo_l F
@@ -1291,6 +1292,7 @@ GLIBC_2.32 mprotect F
GLIBC_2.32 mq_close F
GLIBC_2.32 mq_getattr F
GLIBC_2.32 mq_notify F
+GLIBC_2.32 mq_open F
GLIBC_2.32 mq_setattr F
GLIBC_2.32 mrand48 F
GLIBC_2.32 mrand48_r F
@@ -2117,6 +2119,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_key_create F
GLIBC_2.34 __pthread_mutex_lock F
@@ -2165,6 +2168,7 @@ GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
+GLIBC_2.34 mq_open F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
index 16864093a0..1ed03be8c1 100644
--- a/sysdeps/unix/sysv/linux/arc/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arc/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.32 __mq_open_2 F
-GLIBC_2.32 mq_open F
GLIBC_2.32 mq_receive F
GLIBC_2.32 mq_send F
GLIBC_2.32 mq_timedreceive F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 38e6fc61d4..351bba9289 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -226,6 +226,7 @@ GLIBC_2.34 __localtime64_r F
GLIBC_2.34 __lstat64_time64 F
GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
+GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -316,6 +317,7 @@ GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
+GLIBC_2.34 mq_open F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
@@ -1733,6 +1735,7 @@ GLIBC_2.4 mprotect F
GLIBC_2.4 mq_close F
GLIBC_2.4 mq_getattr F
GLIBC_2.4 mq_notify F
+GLIBC_2.4 mq_open F
GLIBC_2.4 mq_setattr F
GLIBC_2.4 mrand48 F
GLIBC_2.4 mrand48_r F
@@ -2604,6 +2607,7 @@ GLIBC_2.7 __isoc99_vsscanf F
GLIBC_2.7 __isoc99_vswscanf F
GLIBC_2.7 __isoc99_vwscanf F
GLIBC_2.7 __isoc99_wscanf F
+GLIBC_2.7 __mq_open_2 F
GLIBC_2.7 __open64_2 F
GLIBC_2.7 __open_2 F
GLIBC_2.7 __openat64_2 F
diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
index 6d3cb7c1fa..ecdfd60cdd 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -2,7 +2,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 mq_open F
GLIBC_2.4 mq_receive F
GLIBC_2.4 mq_send F
GLIBC_2.4 mq_timedreceive F
@@ -13,4 +12,4 @@ GLIBC_2.4 timer_delete F
GLIBC_2.4 timer_getoverrun F
GLIBC_2.4 timer_gettime F
GLIBC_2.4 timer_settime F
-GLIBC_2.7 __mq_open_2 F
+GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index c31f58229a..803e1a8bf9 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -223,6 +223,7 @@ GLIBC_2.34 __localtime64_r F
GLIBC_2.34 __lstat64_time64 F
GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
+GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -313,6 +314,7 @@ GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
+GLIBC_2.34 mq_open F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
@@ -1730,6 +1732,7 @@ GLIBC_2.4 mprotect F
GLIBC_2.4 mq_close F
GLIBC_2.4 mq_getattr F
GLIBC_2.4 mq_notify F
+GLIBC_2.4 mq_open F
GLIBC_2.4 mq_setattr F
GLIBC_2.4 mrand48 F
GLIBC_2.4 mrand48_r F
@@ -2601,6 +2604,7 @@ GLIBC_2.7 __isoc99_vsscanf F
GLIBC_2.7 __isoc99_vswscanf F
GLIBC_2.7 __isoc99_vwscanf F
GLIBC_2.7 __isoc99_wscanf F
+GLIBC_2.7 __mq_open_2 F
GLIBC_2.7 __open64_2 F
GLIBC_2.7 __open_2 F
GLIBC_2.7 __openat64_2 F
diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
index 6d3cb7c1fa..ecdfd60cdd 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -2,7 +2,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 mq_open F
GLIBC_2.4 mq_receive F
GLIBC_2.4 mq_send F
GLIBC_2.4 mq_timedreceive F
@@ -13,4 +12,4 @@ GLIBC_2.4 timer_delete F
GLIBC_2.4 timer_getoverrun F
GLIBC_2.4 timer_gettime F
GLIBC_2.4 timer_settime F
-GLIBC_2.7 __mq_open_2 F
+GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index bd0cec183d..5a257c5f7f 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -302,6 +302,7 @@ GLIBC_2.29 __mempcpy_chk F
GLIBC_2.29 __memset_chk F
GLIBC_2.29 __monstartup F
GLIBC_2.29 __morecore D 0x4
+GLIBC_2.29 __mq_open_2 F
GLIBC_2.29 __nanosleep F
GLIBC_2.29 __newlocale F
GLIBC_2.29 __nl_langinfo_l F
@@ -1346,6 +1347,7 @@ GLIBC_2.29 mprotect F
GLIBC_2.29 mq_close F
GLIBC_2.29 mq_getattr F
GLIBC_2.29 mq_notify F
+GLIBC_2.29 mq_open F
GLIBC_2.29 mq_setattr F
GLIBC_2.29 mrand48 F
GLIBC_2.29 mrand48_r F
@@ -2336,6 +2338,7 @@ GLIBC_2.34 __localtime64_r F
GLIBC_2.34 __lstat64_time64 F
GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
+GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2426,6 +2429,7 @@ GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
+GLIBC_2.34 mq_open F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
index 7c20548140..8e8822b999 100644
--- a/sysdeps/unix/sysv/linux/csky/librt.abilist
+++ b/sysdeps/unix/sysv/linux/csky/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.29 __mq_open_2 F
-GLIBC_2.29 mq_open F
GLIBC_2.29 mq_receive F
GLIBC_2.29 mq_send F
GLIBC_2.29 mq_timedreceive F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index e089d91a80..1d859308d7 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -2209,6 +2209,7 @@ GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
+GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2290,6 +2291,7 @@ GLIBC_2.34 __localtime64_r F
GLIBC_2.34 __lstat64_time64 F
GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
+GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2380,6 +2382,7 @@ GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
+GLIBC_2.34 mq_open F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
@@ -2619,6 +2622,7 @@ GLIBC_2.7 __isoc99_vsscanf F
GLIBC_2.7 __isoc99_vswscanf F
GLIBC_2.7 __isoc99_vwscanf F
GLIBC_2.7 __isoc99_wscanf F
+GLIBC_2.7 __mq_open_2 F
GLIBC_2.7 __open64_2 F
GLIBC_2.7 __open_2 F
GLIBC_2.7 __openat64_2 F
diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
index c4164f4149..bb9c1f9659 100644
--- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
@@ -4,7 +4,6 @@ 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.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_timedreceive F
@@ -15,4 +14,4 @@ GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
-GLIBC_2.7 __mq_open_2 F
+GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index d04f1e1a95..9b4f57689b 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -2390,6 +2390,7 @@ GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
+GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2474,6 +2475,7 @@ GLIBC_2.34 __localtime64_r F
GLIBC_2.34 __lstat64_time64 F
GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
+GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2564,6 +2566,7 @@ GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
+GLIBC_2.34 mq_open F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
@@ -2803,6 +2806,7 @@ GLIBC_2.7 __isoc99_vsscanf F
GLIBC_2.7 __isoc99_vswscanf F
GLIBC_2.7 __isoc99_vwscanf F
GLIBC_2.7 __isoc99_wscanf F
+GLIBC_2.7 __mq_open_2 F
GLIBC_2.7 __open64_2 F
GLIBC_2.7 __open_2 F
GLIBC_2.7 __openat64_2 F
diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
index c4164f4149..bb9c1f9659 100644
--- a/sysdeps/unix/sysv/linux/i386/librt.abilist
+++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
@@ -4,7 +4,6 @@ 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.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_timedreceive F
@@ -15,4 +14,4 @@ GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
-GLIBC_2.7 __mq_open_2 F
+GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index c7569a5138..9575d82f33 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -2244,6 +2244,7 @@ GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
+GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2291,6 +2292,7 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __isnanf128 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_key_create F
GLIBC_2.34 __pthread_mutex_lock F
@@ -2339,6 +2341,7 @@ GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
+GLIBC_2.34 mq_open F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
@@ -2578,6 +2581,7 @@ GLIBC_2.7 __isoc99_vsscanf F
GLIBC_2.7 __isoc99_vswscanf F
GLIBC_2.7 __isoc99_vwscanf F
GLIBC_2.7 __isoc99_wscanf F
+GLIBC_2.7 __mq_open_2 F
GLIBC_2.7 __open64_2 F
GLIBC_2.7 __open_2 F
GLIBC_2.7 __openat64_2 F
diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
index 1ec96c2786..8ecf898b30 100644
--- a/sysdeps/unix/sysv/linux/ia64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/librt.abilist
@@ -9,11 +9,10 @@ GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
GLIBC_2.4 __librt_version_placeholder F
-GLIBC_2.7 __mq_open_2 F
+GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 57139d935a..94903e9ff0 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -227,6 +227,7 @@ GLIBC_2.34 __localtime64_r F
GLIBC_2.34 __lstat64_time64 F
GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
+GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -317,6 +318,7 @@ GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
+GLIBC_2.34 mq_open F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
@@ -1717,6 +1719,7 @@ GLIBC_2.4 mprotect F
GLIBC_2.4 mq_close F
GLIBC_2.4 mq_getattr F
GLIBC_2.4 mq_notify F
+GLIBC_2.4 mq_open F
GLIBC_2.4 mq_setattr F
GLIBC_2.4 mrand48 F
GLIBC_2.4 mrand48_r F
@@ -2584,6 +2587,7 @@ GLIBC_2.7 __isoc99_vsscanf F
GLIBC_2.7 __isoc99_vswscanf F
GLIBC_2.7 __isoc99_vwscanf F
GLIBC_2.7 __isoc99_wscanf F
+GLIBC_2.7 __mq_open_2 F
GLIBC_2.7 __open64_2 F
GLIBC_2.7 __open_2 F
GLIBC_2.7 __openat64_2 F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
index 6d3cb7c1fa..ecdfd60cdd 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -2,7 +2,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 mq_open F
GLIBC_2.4 mq_receive F
GLIBC_2.4 mq_send F
GLIBC_2.4 mq_timedreceive F
@@ -13,4 +12,4 @@ GLIBC_2.4 timer_delete F
GLIBC_2.4 timer_getoverrun F
GLIBC_2.4 timer_gettime F
GLIBC_2.4 timer_settime F
-GLIBC_2.7 __mq_open_2 F
+GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 5fd9bf57ec..f2dddac46b 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2333,6 +2333,7 @@ GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
+GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2417,6 +2418,7 @@ GLIBC_2.34 __localtime64_r F
GLIBC_2.34 __lstat64_time64 F
GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
+GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2507,6 +2509,7 @@ GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
+GLIBC_2.34 mq_open F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
@@ -2746,6 +2749,7 @@ GLIBC_2.7 __isoc99_vsscanf F
GLIBC_2.7 __isoc99_vswscanf F
GLIBC_2.7 __isoc99_vwscanf F
GLIBC_2.7 __isoc99_wscanf F
+GLIBC_2.7 __mq_open_2 F
GLIBC_2.7 __open64_2 F
GLIBC_2.7 __open_2 F
GLIBC_2.7 __openat64_2 F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
index c4164f4149..bb9c1f9659 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
@@ -4,7 +4,6 @@ GLIBC_2.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.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_timedreceive F
@@ -15,4 +14,4 @@ GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
-GLIBC_2.7 __mq_open_2 F
+GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 434b3f6844..3c8638ef87 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -307,6 +307,7 @@ GLIBC_2.18 __mempcpy_small F
GLIBC_2.18 __memset_chk F
GLIBC_2.18 __monstartup F
GLIBC_2.18 __morecore D 0x4
+GLIBC_2.18 __mq_open_2 F
GLIBC_2.18 __nanosleep F
GLIBC_2.18 __newlocale F
GLIBC_2.18 __nl_langinfo_l F
@@ -1362,6 +1363,7 @@ GLIBC_2.18 mprotect F
GLIBC_2.18 mq_close F
GLIBC_2.18 mq_getattr F
GLIBC_2.18 mq_notify F
+GLIBC_2.18 mq_open F
GLIBC_2.18 mq_setattr F
GLIBC_2.18 mrand48 F
GLIBC_2.18 mrand48_r F
@@ -2387,6 +2389,7 @@ GLIBC_2.34 __localtime64_r F
GLIBC_2.34 __lstat64_time64 F
GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
+GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2477,6 +2480,7 @@ GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
+GLIBC_2.34 mq_open F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
index f82d9ba705..ce332a362d 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.18 __mq_open_2 F
-GLIBC_2.18 mq_open F
GLIBC_2.18 mq_receive F
GLIBC_2.18 mq_send F
GLIBC_2.18 mq_timedreceive F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 1d97080a9c..8eb98598cc 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -307,6 +307,7 @@ GLIBC_2.18 __mempcpy_small F
GLIBC_2.18 __memset_chk F
GLIBC_2.18 __monstartup F
GLIBC_2.18 __morecore D 0x4
+GLIBC_2.18 __mq_open_2 F
GLIBC_2.18 __nanosleep F
GLIBC_2.18 __newlocale F
GLIBC_2.18 __nl_langinfo_l F
@@ -1362,6 +1363,7 @@ GLIBC_2.18 mprotect F
GLIBC_2.18 mq_close F
GLIBC_2.18 mq_getattr F
GLIBC_2.18 mq_notify F
+GLIBC_2.18 mq_open F
GLIBC_2.18 mq_setattr F
GLIBC_2.18 mrand48 F
GLIBC_2.18 mrand48_r F
@@ -2384,6 +2386,7 @@ GLIBC_2.34 __localtime64_r F
GLIBC_2.34 __lstat64_time64 F
GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
+GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2474,6 +2477,7 @@ GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
+GLIBC_2.34 mq_open F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
index f82d9ba705..ce332a362d 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.18 __mq_open_2 F
-GLIBC_2.18 mq_open F
GLIBC_2.18 mq_receive F
GLIBC_2.18 mq_send F
GLIBC_2.18 mq_timedreceive F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index d43b66902d..fd796ad952 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -2301,6 +2301,7 @@ GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
+GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2382,6 +2383,7 @@ GLIBC_2.34 __localtime64_r F
GLIBC_2.34 __lstat64_time64 F
GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
+GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2472,6 +2474,7 @@ GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
+GLIBC_2.34 mq_open F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
@@ -2707,6 +2710,7 @@ GLIBC_2.7 __isoc99_vsscanf F
GLIBC_2.7 __isoc99_vswscanf F
GLIBC_2.7 __isoc99_vwscanf F
GLIBC_2.7 __isoc99_wscanf F
+GLIBC_2.7 __mq_open_2 F
GLIBC_2.7 __open64_2 F
GLIBC_2.7 __open_2 F
GLIBC_2.7 __openat64_2 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
index 12c3cbae0d..84b5002e71 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
@@ -3,7 +3,6 @@ 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.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_timedreceive F
@@ -14,4 +13,4 @@ GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
-GLIBC_2.7 __mq_open_2 F
+GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 86dfc85225..6b9092d313 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -2299,6 +2299,7 @@ GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
+GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2380,6 +2381,7 @@ GLIBC_2.34 __localtime64_r F
GLIBC_2.34 __lstat64_time64 F
GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
+GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2470,6 +2472,7 @@ GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
+GLIBC_2.34 mq_open F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
@@ -2705,6 +2708,7 @@ GLIBC_2.7 __isoc99_vsscanf F
GLIBC_2.7 __isoc99_vswscanf F
GLIBC_2.7 __isoc99_vwscanf F
GLIBC_2.7 __isoc99_wscanf F
+GLIBC_2.7 __mq_open_2 F
GLIBC_2.7 __open64_2 F
GLIBC_2.7 __open_2 F
GLIBC_2.7 __openat64_2 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 3314c50b3c..2be1e7d2dd 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -2307,6 +2307,7 @@ GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
+GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2388,6 +2389,7 @@ GLIBC_2.34 __localtime64_r F
GLIBC_2.34 __lstat64_time64 F
GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
+GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2478,6 +2480,7 @@ GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
+GLIBC_2.34 mq_open F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
@@ -2713,6 +2716,7 @@ GLIBC_2.7 __isoc99_vsscanf F
GLIBC_2.7 __isoc99_vswscanf F
GLIBC_2.7 __isoc99_vwscanf F
GLIBC_2.7 __isoc99_wscanf F
+GLIBC_2.7 __mq_open_2 F
GLIBC_2.7 __open64_2 F
GLIBC_2.7 __open_2 F
GLIBC_2.7 __openat64_2 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
index 12c3cbae0d..84b5002e71 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
@@ -3,7 +3,6 @@ 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.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_timedreceive F
@@ -14,4 +13,4 @@ GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
-GLIBC_2.7 __mq_open_2 F
+GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index a23ebf24a8..9569c4d8e7 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -2301,6 +2301,7 @@ GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
+GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2347,6 +2348,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_key_create F
GLIBC_2.34 __pthread_mutex_lock F
@@ -2395,6 +2397,7 @@ GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
+GLIBC_2.34 mq_open F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
@@ -2630,6 +2633,7 @@ GLIBC_2.7 __isoc99_vsscanf F
GLIBC_2.7 __isoc99_vswscanf F
GLIBC_2.7 __isoc99_vwscanf F
GLIBC_2.7 __isoc99_wscanf F
+GLIBC_2.7 __mq_open_2 F
GLIBC_2.7 __open64_2 F
GLIBC_2.7 __open_2 F
GLIBC_2.7 __openat64_2 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
index 7afe4e83cf..8862820283 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
@@ -3,11 +3,10 @@ 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.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
GLIBC_2.4 __librt_version_placeholder F
-GLIBC_2.7 __mq_open_2 F
+GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mq_open.c b/sysdeps/unix/sysv/linux/mq_open.c
index 667c5677e5..5464285ceb 100644
--- a/sysdeps/unix/sysv/linux/mq_open.c
+++ b/sysdeps/unix/sysv/linux/mq_open.c
@@ -21,6 +21,7 @@
#include <stddef.h>
#include <stdio.h>
#include <sysdep.h>
+#include <shlib-compat.h>
/* Establish connection between a process and a message queue NAME and
return message queue descriptor or (mqd_t) -1 on error. OFLAG determines
@@ -49,13 +50,20 @@ __mq_open (const char *name, int oflag, ...)
return INLINE_SYSCALL (mq_open, 4, name + 1, oflag, mode, attr);
}
-strong_alias (__mq_open, mq_open);
+versioned_symbol (libc, __mq_open, mq_open, GLIBC_2_34);
+#if OTHER_SHLIB_COMPAT (librt, GLIBC_2_3_4, GLIBC_2_34)
+compat_symbol (libc, __mq_open, mq_open, GLIBC_2_3_4);
+#endif
mqd_t
-__mq_open_2 (const char *name, int oflag)
+___mq_open_2 (const char *name, int oflag)
{
if (oflag & O_CREAT)
__fortify_fail ("invalid mq_open call: O_CREAT without mode and attr");
return __mq_open (name, oflag);
}
+versioned_symbol (libc, ___mq_open_2, __mq_open_2, GLIBC_2_34);
+#if OTHER_SHLIB_COMPAT (librt, GLIBC_2_7, GLIBC_2_34)
+compat_symbol (libc, ___mq_open_2, __mq_open_2, GLIBC_2_7);
+#endif
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 50b5f57efc..e9ed0ba4f7 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -338,6 +338,7 @@ GLIBC_2.21 __mempcpy_small F
GLIBC_2.21 __memset_chk F
GLIBC_2.21 __monstartup F
GLIBC_2.21 __morecore D 0x4
+GLIBC_2.21 __mq_open_2 F
GLIBC_2.21 __muldf3 F
GLIBC_2.21 __mulsf3 F
GLIBC_2.21 __nanosleep F
@@ -1405,6 +1406,7 @@ GLIBC_2.21 mprotect F
GLIBC_2.21 mq_close F
GLIBC_2.21 mq_getattr F
GLIBC_2.21 mq_notify F
+GLIBC_2.21 mq_open F
GLIBC_2.21 mq_setattr F
GLIBC_2.21 mrand48 F
GLIBC_2.21 mrand48_r F
@@ -2426,6 +2428,7 @@ GLIBC_2.34 __localtime64_r F
GLIBC_2.34 __lstat64_time64 F
GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
+GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2516,6 +2519,7 @@ GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
+GLIBC_2.34 mq_open F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
index 0ad1b47423..8139d54618 100644
--- a/sysdeps/unix/sysv/linux/nios2/librt.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.21 __mq_open_2 F
-GLIBC_2.21 mq_open F
GLIBC_2.21 mq_receive F
GLIBC_2.21 mq_send F
GLIBC_2.21 mq_timedreceive F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index c8b663ff2f..4ca163edbf 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -2347,6 +2347,7 @@ GLIBC_2.3.4 makecontext F
GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
+GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2444,6 +2445,7 @@ GLIBC_2.34 __localtime64_r F
GLIBC_2.34 __lstat64_time64 F
GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
+GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2534,6 +2536,7 @@ GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
+GLIBC_2.34 mq_open F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
@@ -2926,6 +2929,7 @@ GLIBC_2.7 __isoc99_vsscanf F
GLIBC_2.7 __isoc99_vswscanf F
GLIBC_2.7 __isoc99_vwscanf F
GLIBC_2.7 __isoc99_wscanf F
+GLIBC_2.7 __mq_open_2 F
GLIBC_2.7 __nldbl___isoc99_fscanf F
GLIBC_2.7 __nldbl___isoc99_fwscanf F
GLIBC_2.7 __nldbl___isoc99_scanf F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
index c4164f4149..bb9c1f9659 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
@@ -4,7 +4,6 @@ GLIBC_2.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.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_timedreceive F
@@ -15,4 +14,4 @@ GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
-GLIBC_2.7 __mq_open_2 F
+GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 551af732bb..ad4c8c6eb2 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -2380,6 +2380,7 @@ GLIBC_2.3.4 makecontext F
GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
+GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2477,6 +2478,7 @@ GLIBC_2.34 __localtime64_r F
GLIBC_2.34 __lstat64_time64 F
GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
+GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2567,6 +2569,7 @@ GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
+GLIBC_2.34 mq_open F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
@@ -2971,6 +2974,7 @@ GLIBC_2.7 __isoc99_vsscanf F
GLIBC_2.7 __isoc99_vswscanf F
GLIBC_2.7 __isoc99_vwscanf F
GLIBC_2.7 __isoc99_wscanf F
+GLIBC_2.7 __mq_open_2 F
GLIBC_2.7 __nldbl___isoc99_fscanf F
GLIBC_2.7 __nldbl___isoc99_fwscanf F
GLIBC_2.7 __nldbl___isoc99_scanf F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index a79b8863e1..dd3459a50a 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -2193,6 +2193,7 @@ GLIBC_2.3.4 longjmp F
GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
+GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2255,6 +2256,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_key_create F
GLIBC_2.34 __pthread_mutex_lock F
@@ -2303,6 +2305,7 @@ GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
+GLIBC_2.34 mq_open F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
@@ -2695,6 +2698,7 @@ GLIBC_2.7 __isoc99_vsscanf F
GLIBC_2.7 __isoc99_vswscanf F
GLIBC_2.7 __isoc99_vwscanf F
GLIBC_2.7 __isoc99_wscanf F
+GLIBC_2.7 __mq_open_2 F
GLIBC_2.7 __nldbl___isoc99_fscanf F
GLIBC_2.7 __nldbl___isoc99_fwscanf F
GLIBC_2.7 __nldbl___isoc99_scanf F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
index a7117238c4..11d78aed63 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
@@ -8,11 +8,10 @@ GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
GLIBC_2.4 __librt_version_placeholder F
-GLIBC_2.7 __mq_open_2 F
+GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 89293145e4..10293edbdc 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -305,6 +305,7 @@ GLIBC_2.17 __mempcpy_small F
GLIBC_2.17 __memset_chk F
GLIBC_2.17 __monstartup F
GLIBC_2.17 __morecore D 0x8
+GLIBC_2.17 __mq_open_2 F
GLIBC_2.17 __nanosleep F
GLIBC_2.17 __newlocale F
GLIBC_2.17 __nl_langinfo_l F
@@ -1448,6 +1449,7 @@ GLIBC_2.17 mprotect F
GLIBC_2.17 mq_close F
GLIBC_2.17 mq_getattr F
GLIBC_2.17 mq_notify F
+GLIBC_2.17 mq_open F
GLIBC_2.17 mq_setattr F
GLIBC_2.17 mrand48 F
GLIBC_2.17 mrand48_r F
@@ -2554,6 +2556,7 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __isnanf128 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_key_create F
GLIBC_2.34 __pthread_mutex_lock F
@@ -2602,6 +2605,7 @@ GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
+GLIBC_2.34 mq_open F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
index 6cab033b12..32327b9d62 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.17 __mq_open_2 F
-GLIBC_2.17 mq_open F
GLIBC_2.17 mq_receive F
GLIBC_2.17 mq_send F
GLIBC_2.17 mq_timedreceive F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index da03d7e3b4..eca2d49a2a 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -297,6 +297,7 @@ GLIBC_2.33 __mempcpy_chk F
GLIBC_2.33 __memset_chk F
GLIBC_2.33 __monstartup F
GLIBC_2.33 __morecore D 0x4
+GLIBC_2.33 __mq_open_2 F
GLIBC_2.33 __nanosleep F
GLIBC_2.33 __newlocale F
GLIBC_2.33 __nl_langinfo_l F
@@ -1293,6 +1294,7 @@ GLIBC_2.33 mprotect F
GLIBC_2.33 mq_close F
GLIBC_2.33 mq_getattr F
GLIBC_2.33 mq_notify F
+GLIBC_2.33 mq_open F
GLIBC_2.33 mq_setattr F
GLIBC_2.33 mrand48 F
GLIBC_2.33 mrand48_r F
@@ -2119,6 +2121,7 @@ GLIBC_2.33 write F
GLIBC_2.33 writev F
GLIBC_2.33 wscanf F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_key_create F
GLIBC_2.34 __pthread_mutex_lock F
@@ -2167,6 +2170,7 @@ GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
+GLIBC_2.34 mq_open F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
index 2877905086..8d0013bd08 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.33 __mq_open_2 F
-GLIBC_2.33 mq_open F
GLIBC_2.33 mq_receive F
GLIBC_2.33 mq_send F
GLIBC_2.33 mq_timedreceive F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index e1ff263953..46300e450e 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -306,6 +306,7 @@ GLIBC_2.27 __mempcpy_chk F
GLIBC_2.27 __memset_chk F
GLIBC_2.27 __monstartup F
GLIBC_2.27 __morecore D 0x8
+GLIBC_2.27 __mq_open_2 F
GLIBC_2.27 __nanosleep F
GLIBC_2.27 __newlocale F
GLIBC_2.27 __nl_langinfo_l F
@@ -1343,6 +1344,7 @@ GLIBC_2.27 mprotect F
GLIBC_2.27 mq_close F
GLIBC_2.27 mq_getattr F
GLIBC_2.27 mq_notify F
+GLIBC_2.27 mq_open F
GLIBC_2.27 mq_setattr F
GLIBC_2.27 mrand48 F
GLIBC_2.27 mrand48_r F
@@ -2319,6 +2321,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_key_create F
GLIBC_2.34 __pthread_mutex_lock F
@@ -2367,6 +2370,7 @@ GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
+GLIBC_2.34 mq_open F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
index 79c4c5870f..19f0d73de7 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.27 __mq_open_2 F
-GLIBC_2.27 mq_open F
GLIBC_2.27 mq_receive F
GLIBC_2.27 mq_send F
GLIBC_2.27 mq_timedreceive F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index b1af366553..b80a760c40 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -2346,6 +2346,7 @@ GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
+GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2442,6 +2443,7 @@ GLIBC_2.34 __localtime64_r F
GLIBC_2.34 __lstat64_time64 F
GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
+GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2532,6 +2534,7 @@ GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
+GLIBC_2.34 mq_open F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
@@ -2922,6 +2925,7 @@ GLIBC_2.7 __isoc99_vsscanf F
GLIBC_2.7 __isoc99_vswscanf F
GLIBC_2.7 __isoc99_vwscanf F
GLIBC_2.7 __isoc99_wscanf F
+GLIBC_2.7 __mq_open_2 F
GLIBC_2.7 __nldbl___isoc99_fscanf F
GLIBC_2.7 __nldbl___isoc99_fwscanf F
GLIBC_2.7 __nldbl___isoc99_scanf F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
index c4164f4149..bb9c1f9659 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
@@ -4,7 +4,6 @@ GLIBC_2.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.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_timedreceive F
@@ -15,4 +14,4 @@ GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
-GLIBC_2.7 __mq_open_2 F
+GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 70322f5969..093f116bc6 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -2234,6 +2234,7 @@ GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
+GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2292,6 +2293,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_key_create F
GLIBC_2.34 __pthread_mutex_lock F
@@ -2340,6 +2342,7 @@ GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
+GLIBC_2.34 mq_open F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
@@ -2730,6 +2733,7 @@ GLIBC_2.7 __isoc99_vsscanf F
GLIBC_2.7 __isoc99_vswscanf F
GLIBC_2.7 __isoc99_vwscanf F
GLIBC_2.7 __isoc99_wscanf F
+GLIBC_2.7 __mq_open_2 F
GLIBC_2.7 __nldbl___isoc99_fscanf F
GLIBC_2.7 __nldbl___isoc99_fwscanf F
GLIBC_2.7 __nldbl___isoc99_scanf F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
index 7e2f744325..c6cf36504c 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
@@ -8,11 +8,10 @@ GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
GLIBC_2.4 __librt_version_placeholder F
-GLIBC_2.7 __mq_open_2 F
+GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 57dc4db1e7..63ac43ca18 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -2213,6 +2213,7 @@ GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
+GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2297,6 +2298,7 @@ GLIBC_2.34 __localtime64_r F
GLIBC_2.34 __lstat64_time64 F
GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
+GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2387,6 +2389,7 @@ GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
+GLIBC_2.34 mq_open F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
@@ -2626,6 +2629,7 @@ GLIBC_2.7 __isoc99_vsscanf F
GLIBC_2.7 __isoc99_vswscanf F
GLIBC_2.7 __isoc99_vwscanf F
GLIBC_2.7 __isoc99_wscanf F
+GLIBC_2.7 __mq_open_2 F
GLIBC_2.7 __open64_2 F
GLIBC_2.7 __open_2 F
GLIBC_2.7 __openat64_2 F
diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
index c4164f4149..bb9c1f9659 100644
--- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
@@ -4,7 +4,6 @@ GLIBC_2.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.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_timedreceive F
@@ -15,4 +14,4 @@ GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
-GLIBC_2.7 __mq_open_2 F
+GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index d00a7d6034..483e612001 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -2213,6 +2213,7 @@ GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
+GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2294,6 +2295,7 @@ GLIBC_2.34 __localtime64_r F
GLIBC_2.34 __lstat64_time64 F
GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
+GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2384,6 +2386,7 @@ GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
+GLIBC_2.34 mq_open F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
@@ -2623,6 +2626,7 @@ GLIBC_2.7 __isoc99_vsscanf F
GLIBC_2.7 __isoc99_vswscanf F
GLIBC_2.7 __isoc99_vwscanf F
GLIBC_2.7 __isoc99_wscanf F
+GLIBC_2.7 __mq_open_2 F
GLIBC_2.7 __open64_2 F
GLIBC_2.7 __open_2 F
GLIBC_2.7 __openat64_2 F
diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
index c4164f4149..bb9c1f9659 100644
--- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
@@ -4,7 +4,6 @@ GLIBC_2.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.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_timedreceive F
@@ -15,4 +14,4 @@ GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
-GLIBC_2.7 __mq_open_2 F
+GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index e25501e4c4..9679915508 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -2344,6 +2344,7 @@ GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
+GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2437,6 +2438,7 @@ GLIBC_2.34 __localtime64_r F
GLIBC_2.34 __lstat64_time64 F
GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
+GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2527,6 +2529,7 @@ GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
+GLIBC_2.34 mq_open F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
@@ -2943,6 +2946,7 @@ GLIBC_2.7 __isoc99_vsscanf F
GLIBC_2.7 __isoc99_vswscanf F
GLIBC_2.7 __isoc99_vwscanf F
GLIBC_2.7 __isoc99_wscanf F
+GLIBC_2.7 __mq_open_2 F
GLIBC_2.7 __nldbl___isoc99_fscanf F
GLIBC_2.7 __nldbl___isoc99_fwscanf F
GLIBC_2.7 __nldbl___isoc99_scanf F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
index 19e98aae24..3d08073063 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
@@ -5,7 +5,6 @@ GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
GLIBC_2.3 __librt_version_placeholder F
-GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_timedreceive F
@@ -16,4 +15,4 @@ GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
-GLIBC_2.7 __mq_open_2 F
+GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index cdec31d161..59d1d2beef 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -2268,6 +2268,7 @@ GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
+GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2314,6 +2315,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_key_create F
GLIBC_2.34 __pthread_mutex_lock F
@@ -2362,6 +2364,7 @@ GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
+GLIBC_2.34 mq_open F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
@@ -2601,6 +2604,7 @@ GLIBC_2.7 __isoc99_vsscanf F
GLIBC_2.7 __isoc99_vswscanf F
GLIBC_2.7 __isoc99_vwscanf F
GLIBC_2.7 __isoc99_wscanf F
+GLIBC_2.7 __mq_open_2 F
GLIBC_2.7 __open64_2 F
GLIBC_2.7 __open_2 F
GLIBC_2.7 __openat64_2 F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
index d85884d888..bd9a4111f3 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
@@ -10,11 +10,10 @@ GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
GLIBC_2.4 __librt_version_placeholder F
-GLIBC_2.7 __mq_open_2 F
+GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 1f16f15c1b..699ddbb78d 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -2222,6 +2222,7 @@ GLIBC_2.3.4 getsourcefilter F
GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
+GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
@@ -2270,6 +2271,7 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __isnanf128 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_key_create F
GLIBC_2.34 __pthread_mutex_lock F
@@ -2318,6 +2320,7 @@ GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
+GLIBC_2.34 mq_open F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
@@ -2557,6 +2560,7 @@ GLIBC_2.7 __isoc99_vsscanf F
GLIBC_2.7 __isoc99_vswscanf F
GLIBC_2.7 __isoc99_vwscanf F
GLIBC_2.7 __isoc99_wscanf F
+GLIBC_2.7 __mq_open_2 F
GLIBC_2.7 __open64_2 F
GLIBC_2.7 __open_2 F
GLIBC_2.7 __openat64_2 F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
index 139cf285ec..161a731b3e 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
@@ -8,11 +8,10 @@ GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
GLIBC_2.4 __librt_version_placeholder F
-GLIBC_2.7 __mq_open_2 F
+GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index ac010952fe..6e069e92a6 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -307,6 +307,7 @@ GLIBC_2.16 __mempcpy_small F
GLIBC_2.16 __memset_chk F
GLIBC_2.16 __monstartup F
GLIBC_2.16 __morecore D 0x4
+GLIBC_2.16 __mq_open_2 F
GLIBC_2.16 __nanosleep F
GLIBC_2.16 __newlocale F
GLIBC_2.16 __nl_langinfo_l F
@@ -1367,6 +1368,7 @@ GLIBC_2.16 mprotect F
GLIBC_2.16 mq_close F
GLIBC_2.16 mq_getattr F
GLIBC_2.16 mq_notify F
+GLIBC_2.16 mq_open F
GLIBC_2.16 mq_setattr F
GLIBC_2.16 mrand48 F
GLIBC_2.16 mrand48_r F
@@ -2373,6 +2375,7 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __isnanf128 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_key_create F
GLIBC_2.34 __pthread_mutex_lock F
@@ -2421,6 +2424,7 @@ GLIBC_2.34 lio_listio64 F
GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
+GLIBC_2.34 mq_open F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
index db976a6c97..643cd58e36 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.16 __mq_open_2 F
-GLIBC_2.16 mq_open F
GLIBC_2.16 mq_receive F
GLIBC_2.16 mq_send F
GLIBC_2.16 mq_timedreceive F
--
2.31.1
^ permalink raw reply [flat|nested] 72+ messages in thread
* Re: [PATCH 24/34] Linux: Move mq_open, __mq_open_2 from librt to libc
2021-06-17 18:59 ` [PATCH 24/34] Linux: Move mq_open, __mq_open_2 " Florian Weimer
@ 2021-06-24 14:07 ` Adhemerval Zanella
0 siblings, 0 replies; 72+ messages in thread
From: Adhemerval Zanella @ 2021-06-24 14:07 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 17/06/2021 15:59, Florian Weimer via Libc-alpha wrote:
> The symbols were moved using scripts/move-symbol-to-libc.py.
> A placeholder symbol is required to keep the GLIBC_2.7 version.
LGTM, thanks.
Reviewed-by: Adhemerva Zanella <adhemerval.zanella@linaro.org>
> ---
> rt/Makefile | 2 +-
> rt/Versions | 14 +++++++++++++-
> rt/librt-compat.c | 6 ++++++
> sysdeps/unix/sysv/linux/aarch64/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/aarch64/librt.abilist | 2 --
> sysdeps/unix/sysv/linux/alpha/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/alpha/librt.abilist | 3 +--
> 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 | 3 +--
> sysdeps/unix/sysv/linux/arm/le/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/arm/le/librt.abilist | 3 +--
> 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 | 3 +--
> sysdeps/unix/sysv/linux/i386/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/i386/librt.abilist | 3 +--
> sysdeps/unix/sysv/linux/ia64/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/ia64/librt.abilist | 3 +--
> sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist | 4 ++++
> .../unix/sysv/linux/m68k/coldfire/librt.abilist | 3 +--
> sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist | 3 +--
> sysdeps/unix/sysv/linux/microblaze/be/libc.abilist | 4 ++++
> .../unix/sysv/linux/microblaze/be/librt.abilist | 2 --
> sysdeps/unix/sysv/linux/microblaze/le/libc.abilist | 4 ++++
> .../unix/sysv/linux/microblaze/le/librt.abilist | 2 --
> .../unix/sysv/linux/mips/mips32/fpu/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/mips/mips32/librt.abilist | 3 +--
> .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist | 4 ++++
> .../unix/sysv/linux/mips/mips64/n32/libc.abilist | 4 ++++
> .../unix/sysv/linux/mips/mips64/n32/librt.abilist | 3 +--
> .../unix/sysv/linux/mips/mips64/n64/libc.abilist | 4 ++++
> .../unix/sysv/linux/mips/mips64/n64/librt.abilist | 3 +--
> sysdeps/unix/sysv/linux/mq_open.c | 12 ++++++++++--
> sysdeps/unix/sysv/linux/nios2/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/nios2/librt.abilist | 2 --
> .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist | 4 ++++
> .../sysv/linux/powerpc/powerpc32/librt.abilist | 3 +--
> .../linux/powerpc/powerpc32/nofpu/libc.abilist | 4 ++++
> .../sysv/linux/powerpc/powerpc64/be/libc.abilist | 4 ++++
> .../sysv/linux/powerpc/powerpc64/be/librt.abilist | 3 +--
> .../sysv/linux/powerpc/powerpc64/le/libc.abilist | 4 ++++
> .../sysv/linux/powerpc/powerpc64/le/librt.abilist | 2 --
> sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist | 2 --
> sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist | 2 --
> sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist | 3 +--
> sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist | 3 +--
> sysdeps/unix/sysv/linux/sh/be/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/sh/be/librt.abilist | 3 +--
> sysdeps/unix/sysv/linux/sh/le/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/sh/le/librt.abilist | 3 +--
> sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist | 4 ++++
> .../unix/sysv/linux/sparc/sparc32/librt.abilist | 3 +--
> sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist | 4 ++++
> .../unix/sysv/linux/sparc/sparc64/librt.abilist | 3 +--
> sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/x86_64/64/librt.abilist | 3 +--
> sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 4 ++++
> sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist | 2 --
> 66 files changed, 178 insertions(+), 64 deletions(-)
>
> diff --git a/rt/Makefile b/rt/Makefile
> index 838e67b229..f0b13b27ba 100644
> --- a/rt/Makefile
> +++ b/rt/Makefile
> @@ -30,7 +30,6 @@ routines = \
>
> librt-routines = \
> librt-compat \
> - mq_open \
> mq_receive \
> mq_send \
> mq_timedreceive \
> @@ -62,6 +61,7 @@ $(librt-routines-var) += \
> mq_close \
> mq_getattr \
> mq_notify \
> + mq_open \
> mq_setattr \
>
> tests := tst-shm tst-timer tst-timer2 \
Ok.
> diff --git a/rt/Versions b/rt/Versions
> index b3c9bba9ff..d28a7f6979 100644
> --- a/rt/Versions
> +++ b/rt/Versions
> @@ -29,6 +29,7 @@ libc {
> mq_close;
> mq_getattr;
> mq_notify;
> + mq_open;
> mq_setattr;
> %endif
> }
> @@ -36,10 +37,16 @@ libc {
> %if PTHREAD_IN_LIBC
> lio_listio;
> lio_listio64;
> +%endif
> + }
> + GLIBC_2.7 {
> +%if PTHREAD_IN_LIBC
> + __mq_open_2;
> %endif
> }
> GLIBC_2.34 {
> %if PTHREAD_IN_LIBC
> + __mq_open_2;
> aio_cancel;
> aio_cancel64;
> aio_init;
> @@ -60,6 +67,7 @@ libc {
> mq_close;
> mq_getattr;
> mq_notify;
> + mq_open;
> mq_setattr;
> %endif
> shm_open;
> @@ -115,9 +123,9 @@ librt {
> mq_close;
> mq_getattr;
> mq_notify;
> + mq_open;
> mq_setattr;
> %endif
> - mq_open;
> mq_receive;
> mq_send;
> mq_timedreceive;
> @@ -133,6 +141,10 @@ librt {
> %endif
> }
> GLIBC_2.7 {
> +%if PTHREAD_IN_LIBC
> + __librt_version_placeholder;
> +%else
> __mq_open_2;
> +%endif
> }
> }
Ok.
> diff --git a/rt/librt-compat.c b/rt/librt-compat.c
> index 23c87b0f3e..ef353acdd1 100644
> --- a/rt/librt-compat.c
> +++ b/rt/librt-compat.c
> @@ -38,4 +38,10 @@ compat_symbol (librt, __librt_version_placeholder_1,
> __librt_version_placeholder, GLIBC_2_4);
> # endif
>
> +# if SHLIB_COMPAT (librt, GLIBC_2_7, GLIBC_2_34) \
> + && ABI_librt_GLIBC_2_7 != ABI_librt_GLIBC_2_4
> +compat_symbol (librt, __librt_version_placeholder_1,
> + __librt_version_placeholder, GLIBC_2_7);
> +# endif
> +
> #endif
Ok.
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index 98dd344aaf..07f77027fc 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -306,6 +306,7 @@ GLIBC_2.17 __mempcpy_small F
> GLIBC_2.17 __memset_chk F
> GLIBC_2.17 __monstartup F
> GLIBC_2.17 __morecore D 0x8
> +GLIBC_2.17 __mq_open_2 F
> GLIBC_2.17 __nanosleep F
> GLIBC_2.17 __newlocale F
> GLIBC_2.17 __nl_langinfo_l F
> @@ -1360,6 +1361,7 @@ GLIBC_2.17 mprotect F
> GLIBC_2.17 mq_close F
> GLIBC_2.17 mq_getattr F
> GLIBC_2.17 mq_notify F
> +GLIBC_2.17 mq_open F
> GLIBC_2.17 mq_setattr F
> GLIBC_2.17 mrand48 F
> GLIBC_2.17 mrand48_r F
> @@ -2358,6 +2360,7 @@ GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.34 __libc_start_main F
> +GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __pthread_cleanup_routine F
> GLIBC_2.34 __pthread_key_create F
> GLIBC_2.34 __pthread_mutex_lock F
> @@ -2406,6 +2409,7 @@ GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> +GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> index 6cab033b12..32327b9d62 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.17 __mq_open_2 F
> -GLIBC_2.17 mq_open F
> GLIBC_2.17 mq_receive F
> GLIBC_2.17 mq_send F
> GLIBC_2.17 mq_timedreceive F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index 5026e54d51..683b320ddc 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -2395,6 +2395,7 @@ GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> +GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2453,6 +2454,7 @@ GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.34 __libc_start_main F
> +GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __pthread_cleanup_routine F
> GLIBC_2.34 __pthread_key_create F
> GLIBC_2.34 __pthread_mutex_lock F
> @@ -2501,6 +2503,7 @@ GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> +GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> @@ -2891,6 +2894,7 @@ GLIBC_2.7 __isoc99_vsscanf F
> GLIBC_2.7 __isoc99_vswscanf F
> GLIBC_2.7 __isoc99_vwscanf F
> GLIBC_2.7 __isoc99_wscanf F
> +GLIBC_2.7 __mq_open_2 F
> GLIBC_2.7 __nldbl___isoc99_fscanf F
> GLIBC_2.7 __nldbl___isoc99_fwscanf F
> GLIBC_2.7 __nldbl___isoc99_scanf F
> diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
> index d85884d888..bd9a4111f3 100644
> --- a/sysdeps/unix/sysv/linux/alpha/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist
> @@ -10,11 +10,10 @@ GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> -GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> GLIBC_2.4 __librt_version_placeholder F
> -GLIBC_2.7 __mq_open_2 F
> +GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index f677395bd2..0d73e4cf7a 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -300,6 +300,7 @@ GLIBC_2.32 __mempcpy_chk F
> GLIBC_2.32 __memset_chk F
> GLIBC_2.32 __monstartup F
> GLIBC_2.32 __morecore D 0x4
> +GLIBC_2.32 __mq_open_2 F
> GLIBC_2.32 __nanosleep F
> GLIBC_2.32 __newlocale F
> GLIBC_2.32 __nl_langinfo_l F
> @@ -1291,6 +1292,7 @@ GLIBC_2.32 mprotect F
> GLIBC_2.32 mq_close F
> GLIBC_2.32 mq_getattr F
> GLIBC_2.32 mq_notify F
> +GLIBC_2.32 mq_open F
> GLIBC_2.32 mq_setattr F
> GLIBC_2.32 mrand48 F
> GLIBC_2.32 mrand48_r F
> @@ -2117,6 +2119,7 @@ GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.34 __libc_start_main F
> +GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __pthread_cleanup_routine F
> GLIBC_2.34 __pthread_key_create F
> GLIBC_2.34 __pthread_mutex_lock F
> @@ -2165,6 +2168,7 @@ GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> +GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
> index 16864093a0..1ed03be8c1 100644
> --- a/sysdeps/unix/sysv/linux/arc/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.32 __mq_open_2 F
> -GLIBC_2.32 mq_open F
> GLIBC_2.32 mq_receive F
> GLIBC_2.32 mq_send F
> GLIBC_2.32 mq_timedreceive F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index 38e6fc61d4..351bba9289 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -226,6 +226,7 @@ GLIBC_2.34 __localtime64_r F
> GLIBC_2.34 __lstat64_time64 F
> GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> +GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -316,6 +317,7 @@ GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> +GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> @@ -1733,6 +1735,7 @@ GLIBC_2.4 mprotect F
> GLIBC_2.4 mq_close F
> GLIBC_2.4 mq_getattr F
> GLIBC_2.4 mq_notify F
> +GLIBC_2.4 mq_open F
> GLIBC_2.4 mq_setattr F
> GLIBC_2.4 mrand48 F
> GLIBC_2.4 mrand48_r F
> @@ -2604,6 +2607,7 @@ GLIBC_2.7 __isoc99_vsscanf F
> GLIBC_2.7 __isoc99_vswscanf F
> GLIBC_2.7 __isoc99_vwscanf F
> GLIBC_2.7 __isoc99_wscanf F
> +GLIBC_2.7 __mq_open_2 F
> GLIBC_2.7 __open64_2 F
> GLIBC_2.7 __open_2 F
> GLIBC_2.7 __openat64_2 F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> index 6d3cb7c1fa..ecdfd60cdd 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> @@ -2,7 +2,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 mq_open F
> GLIBC_2.4 mq_receive F
> GLIBC_2.4 mq_send F
> GLIBC_2.4 mq_timedreceive F
> @@ -13,4 +12,4 @@ GLIBC_2.4 timer_delete F
> GLIBC_2.4 timer_getoverrun F
> GLIBC_2.4 timer_gettime F
> GLIBC_2.4 timer_settime F
> -GLIBC_2.7 __mq_open_2 F
> +GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index c31f58229a..803e1a8bf9 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -223,6 +223,7 @@ GLIBC_2.34 __localtime64_r F
> GLIBC_2.34 __lstat64_time64 F
> GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> +GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -313,6 +314,7 @@ GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> +GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> @@ -1730,6 +1732,7 @@ GLIBC_2.4 mprotect F
> GLIBC_2.4 mq_close F
> GLIBC_2.4 mq_getattr F
> GLIBC_2.4 mq_notify F
> +GLIBC_2.4 mq_open F
> GLIBC_2.4 mq_setattr F
> GLIBC_2.4 mrand48 F
> GLIBC_2.4 mrand48_r F
> @@ -2601,6 +2604,7 @@ GLIBC_2.7 __isoc99_vsscanf F
> GLIBC_2.7 __isoc99_vswscanf F
> GLIBC_2.7 __isoc99_vwscanf F
> GLIBC_2.7 __isoc99_wscanf F
> +GLIBC_2.7 __mq_open_2 F
> GLIBC_2.7 __open64_2 F
> GLIBC_2.7 __open_2 F
> GLIBC_2.7 __openat64_2 F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> index 6d3cb7c1fa..ecdfd60cdd 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> @@ -2,7 +2,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 mq_open F
> GLIBC_2.4 mq_receive F
> GLIBC_2.4 mq_send F
> GLIBC_2.4 mq_timedreceive F
> @@ -13,4 +12,4 @@ GLIBC_2.4 timer_delete F
> GLIBC_2.4 timer_getoverrun F
> GLIBC_2.4 timer_gettime F
> GLIBC_2.4 timer_settime F
> -GLIBC_2.7 __mq_open_2 F
> +GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index bd0cec183d..5a257c5f7f 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -302,6 +302,7 @@ GLIBC_2.29 __mempcpy_chk F
> GLIBC_2.29 __memset_chk F
> GLIBC_2.29 __monstartup F
> GLIBC_2.29 __morecore D 0x4
> +GLIBC_2.29 __mq_open_2 F
> GLIBC_2.29 __nanosleep F
> GLIBC_2.29 __newlocale F
> GLIBC_2.29 __nl_langinfo_l F
> @@ -1346,6 +1347,7 @@ GLIBC_2.29 mprotect F
> GLIBC_2.29 mq_close F
> GLIBC_2.29 mq_getattr F
> GLIBC_2.29 mq_notify F
> +GLIBC_2.29 mq_open F
> GLIBC_2.29 mq_setattr F
> GLIBC_2.29 mrand48 F
> GLIBC_2.29 mrand48_r F
> @@ -2336,6 +2338,7 @@ GLIBC_2.34 __localtime64_r F
> GLIBC_2.34 __lstat64_time64 F
> GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> +GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2426,6 +2429,7 @@ GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> +GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
> index 7c20548140..8e8822b999 100644
> --- a/sysdeps/unix/sysv/linux/csky/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.29 __mq_open_2 F
> -GLIBC_2.29 mq_open F
> GLIBC_2.29 mq_receive F
> GLIBC_2.29 mq_send F
> GLIBC_2.29 mq_timedreceive F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index e089d91a80..1d859308d7 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -2209,6 +2209,7 @@ GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> +GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2290,6 +2291,7 @@ GLIBC_2.34 __localtime64_r F
> GLIBC_2.34 __lstat64_time64 F
> GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> +GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2380,6 +2382,7 @@ GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> +GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> @@ -2619,6 +2622,7 @@ GLIBC_2.7 __isoc99_vsscanf F
> GLIBC_2.7 __isoc99_vswscanf F
> GLIBC_2.7 __isoc99_vwscanf F
> GLIBC_2.7 __isoc99_wscanf F
> +GLIBC_2.7 __mq_open_2 F
> GLIBC_2.7 __open64_2 F
> GLIBC_2.7 __open_2 F
> GLIBC_2.7 __openat64_2 F
> diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
> index c4164f4149..bb9c1f9659 100644
> --- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
> @@ -4,7 +4,6 @@ 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.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_timedreceive F
> @@ -15,4 +14,4 @@ GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> -GLIBC_2.7 __mq_open_2 F
> +GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index d04f1e1a95..9b4f57689b 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -2390,6 +2390,7 @@ GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> +GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2474,6 +2475,7 @@ GLIBC_2.34 __localtime64_r F
> GLIBC_2.34 __lstat64_time64 F
> GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> +GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2564,6 +2566,7 @@ GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> +GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> @@ -2803,6 +2806,7 @@ GLIBC_2.7 __isoc99_vsscanf F
> GLIBC_2.7 __isoc99_vswscanf F
> GLIBC_2.7 __isoc99_vwscanf F
> GLIBC_2.7 __isoc99_wscanf F
> +GLIBC_2.7 __mq_open_2 F
> GLIBC_2.7 __open64_2 F
> GLIBC_2.7 __open_2 F
> GLIBC_2.7 __openat64_2 F
> diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
> index c4164f4149..bb9c1f9659 100644
> --- a/sysdeps/unix/sysv/linux/i386/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
> @@ -4,7 +4,6 @@ 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.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_timedreceive F
> @@ -15,4 +14,4 @@ GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> -GLIBC_2.7 __mq_open_2 F
> +GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index c7569a5138..9575d82f33 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -2244,6 +2244,7 @@ GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> +GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2291,6 +2292,7 @@ GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.34 __isnanf128 F
> GLIBC_2.34 __libc_start_main F
> +GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __pthread_cleanup_routine F
> GLIBC_2.34 __pthread_key_create F
> GLIBC_2.34 __pthread_mutex_lock F
> @@ -2339,6 +2341,7 @@ GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> +GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> @@ -2578,6 +2581,7 @@ GLIBC_2.7 __isoc99_vsscanf F
> GLIBC_2.7 __isoc99_vswscanf F
> GLIBC_2.7 __isoc99_vwscanf F
> GLIBC_2.7 __isoc99_wscanf F
> +GLIBC_2.7 __mq_open_2 F
> GLIBC_2.7 __open64_2 F
> GLIBC_2.7 __open_2 F
> GLIBC_2.7 __openat64_2 F
> diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
> index 1ec96c2786..8ecf898b30 100644
> --- a/sysdeps/unix/sysv/linux/ia64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/librt.abilist
> @@ -9,11 +9,10 @@ GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> -GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> GLIBC_2.4 __librt_version_placeholder F
> -GLIBC_2.7 __mq_open_2 F
> +GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index 57139d935a..94903e9ff0 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -227,6 +227,7 @@ GLIBC_2.34 __localtime64_r F
> GLIBC_2.34 __lstat64_time64 F
> GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> +GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -317,6 +318,7 @@ GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> +GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> @@ -1717,6 +1719,7 @@ GLIBC_2.4 mprotect F
> GLIBC_2.4 mq_close F
> GLIBC_2.4 mq_getattr F
> GLIBC_2.4 mq_notify F
> +GLIBC_2.4 mq_open F
> GLIBC_2.4 mq_setattr F
> GLIBC_2.4 mrand48 F
> GLIBC_2.4 mrand48_r F
> @@ -2584,6 +2587,7 @@ GLIBC_2.7 __isoc99_vsscanf F
> GLIBC_2.7 __isoc99_vswscanf F
> GLIBC_2.7 __isoc99_vwscanf F
> GLIBC_2.7 __isoc99_wscanf F
> +GLIBC_2.7 __mq_open_2 F
> GLIBC_2.7 __open64_2 F
> GLIBC_2.7 __open_2 F
> GLIBC_2.7 __openat64_2 F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> index 6d3cb7c1fa..ecdfd60cdd 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> @@ -2,7 +2,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 mq_open F
> GLIBC_2.4 mq_receive F
> GLIBC_2.4 mq_send F
> GLIBC_2.4 mq_timedreceive F
> @@ -13,4 +12,4 @@ GLIBC_2.4 timer_delete F
> GLIBC_2.4 timer_getoverrun F
> GLIBC_2.4 timer_gettime F
> GLIBC_2.4 timer_settime F
> -GLIBC_2.7 __mq_open_2 F
> +GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index 5fd9bf57ec..f2dddac46b 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -2333,6 +2333,7 @@ GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> +GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2417,6 +2418,7 @@ GLIBC_2.34 __localtime64_r F
> GLIBC_2.34 __lstat64_time64 F
> GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> +GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2507,6 +2509,7 @@ GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> +GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> @@ -2746,6 +2749,7 @@ GLIBC_2.7 __isoc99_vsscanf F
> GLIBC_2.7 __isoc99_vswscanf F
> GLIBC_2.7 __isoc99_vwscanf F
> GLIBC_2.7 __isoc99_wscanf F
> +GLIBC_2.7 __mq_open_2 F
> GLIBC_2.7 __open64_2 F
> GLIBC_2.7 __open_2 F
> GLIBC_2.7 __openat64_2 F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> index c4164f4149..bb9c1f9659 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.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.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_timedreceive F
> @@ -15,4 +14,4 @@ GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> -GLIBC_2.7 __mq_open_2 F
> +GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index 434b3f6844..3c8638ef87 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -307,6 +307,7 @@ GLIBC_2.18 __mempcpy_small F
> GLIBC_2.18 __memset_chk F
> GLIBC_2.18 __monstartup F
> GLIBC_2.18 __morecore D 0x4
> +GLIBC_2.18 __mq_open_2 F
> GLIBC_2.18 __nanosleep F
> GLIBC_2.18 __newlocale F
> GLIBC_2.18 __nl_langinfo_l F
> @@ -1362,6 +1363,7 @@ GLIBC_2.18 mprotect F
> GLIBC_2.18 mq_close F
> GLIBC_2.18 mq_getattr F
> GLIBC_2.18 mq_notify F
> +GLIBC_2.18 mq_open F
> GLIBC_2.18 mq_setattr F
> GLIBC_2.18 mrand48 F
> GLIBC_2.18 mrand48_r F
> @@ -2387,6 +2389,7 @@ GLIBC_2.34 __localtime64_r F
> GLIBC_2.34 __lstat64_time64 F
> GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> +GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2477,6 +2480,7 @@ GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> +GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> index f82d9ba705..ce332a362d 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.18 __mq_open_2 F
> -GLIBC_2.18 mq_open F
> GLIBC_2.18 mq_receive F
> GLIBC_2.18 mq_send F
> GLIBC_2.18 mq_timedreceive F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index 1d97080a9c..8eb98598cc 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -307,6 +307,7 @@ GLIBC_2.18 __mempcpy_small F
> GLIBC_2.18 __memset_chk F
> GLIBC_2.18 __monstartup F
> GLIBC_2.18 __morecore D 0x4
> +GLIBC_2.18 __mq_open_2 F
> GLIBC_2.18 __nanosleep F
> GLIBC_2.18 __newlocale F
> GLIBC_2.18 __nl_langinfo_l F
> @@ -1362,6 +1363,7 @@ GLIBC_2.18 mprotect F
> GLIBC_2.18 mq_close F
> GLIBC_2.18 mq_getattr F
> GLIBC_2.18 mq_notify F
> +GLIBC_2.18 mq_open F
> GLIBC_2.18 mq_setattr F
> GLIBC_2.18 mrand48 F
> GLIBC_2.18 mrand48_r F
> @@ -2384,6 +2386,7 @@ GLIBC_2.34 __localtime64_r F
> GLIBC_2.34 __lstat64_time64 F
> GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> +GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2474,6 +2477,7 @@ GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> +GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> index f82d9ba705..ce332a362d 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.18 __mq_open_2 F
> -GLIBC_2.18 mq_open F
> GLIBC_2.18 mq_receive F
> GLIBC_2.18 mq_send F
> GLIBC_2.18 mq_timedreceive F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index d43b66902d..fd796ad952 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -2301,6 +2301,7 @@ GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> +GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2382,6 +2383,7 @@ GLIBC_2.34 __localtime64_r F
> GLIBC_2.34 __lstat64_time64 F
> GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> +GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2472,6 +2474,7 @@ GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> +GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> @@ -2707,6 +2710,7 @@ GLIBC_2.7 __isoc99_vsscanf F
> GLIBC_2.7 __isoc99_vswscanf F
> GLIBC_2.7 __isoc99_vwscanf F
> GLIBC_2.7 __isoc99_wscanf F
> +GLIBC_2.7 __mq_open_2 F
> GLIBC_2.7 __open64_2 F
> GLIBC_2.7 __open_2 F
> GLIBC_2.7 __openat64_2 F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> index 12c3cbae0d..84b5002e71 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> @@ -3,7 +3,6 @@ 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.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_timedreceive F
> @@ -14,4 +13,4 @@ GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> -GLIBC_2.7 __mq_open_2 F
> +GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index 86dfc85225..6b9092d313 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -2299,6 +2299,7 @@ GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> +GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2380,6 +2381,7 @@ GLIBC_2.34 __localtime64_r F
> GLIBC_2.34 __lstat64_time64 F
> GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> +GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2470,6 +2472,7 @@ GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> +GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> @@ -2705,6 +2708,7 @@ GLIBC_2.7 __isoc99_vsscanf F
> GLIBC_2.7 __isoc99_vswscanf F
> GLIBC_2.7 __isoc99_vwscanf F
> GLIBC_2.7 __isoc99_wscanf F
> +GLIBC_2.7 __mq_open_2 F
> GLIBC_2.7 __open64_2 F
> GLIBC_2.7 __open_2 F
> GLIBC_2.7 __openat64_2 F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index 3314c50b3c..2be1e7d2dd 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -2307,6 +2307,7 @@ GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> +GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2388,6 +2389,7 @@ GLIBC_2.34 __localtime64_r F
> GLIBC_2.34 __lstat64_time64 F
> GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> +GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2478,6 +2480,7 @@ GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> +GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> @@ -2713,6 +2716,7 @@ GLIBC_2.7 __isoc99_vsscanf F
> GLIBC_2.7 __isoc99_vswscanf F
> GLIBC_2.7 __isoc99_vwscanf F
> GLIBC_2.7 __isoc99_wscanf F
> +GLIBC_2.7 __mq_open_2 F
> GLIBC_2.7 __open64_2 F
> GLIBC_2.7 __open_2 F
> GLIBC_2.7 __openat64_2 F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> index 12c3cbae0d..84b5002e71 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> @@ -3,7 +3,6 @@ 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.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_timedreceive F
> @@ -14,4 +13,4 @@ GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> -GLIBC_2.7 __mq_open_2 F
> +GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index a23ebf24a8..9569c4d8e7 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -2301,6 +2301,7 @@ GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> +GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2347,6 +2348,7 @@ GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.34 __libc_start_main F
> +GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __pthread_cleanup_routine F
> GLIBC_2.34 __pthread_key_create F
> GLIBC_2.34 __pthread_mutex_lock F
> @@ -2395,6 +2397,7 @@ GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> +GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> @@ -2630,6 +2633,7 @@ GLIBC_2.7 __isoc99_vsscanf F
> GLIBC_2.7 __isoc99_vswscanf F
> GLIBC_2.7 __isoc99_vwscanf F
> GLIBC_2.7 __isoc99_wscanf F
> +GLIBC_2.7 __mq_open_2 F
> GLIBC_2.7 __open64_2 F
> GLIBC_2.7 __open_2 F
> GLIBC_2.7 __openat64_2 F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> index 7afe4e83cf..8862820283 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> @@ -3,11 +3,10 @@ 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.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> GLIBC_2.4 __librt_version_placeholder F
> -GLIBC_2.7 __mq_open_2 F
> +GLIBC_2.7 __librt_version_placeholder F
Ok.
> diff --git a/sysdeps/unix/sysv/linux/mq_open.c b/sysdeps/unix/sysv/linux/mq_open.c
> index 667c5677e5..5464285ceb 100644
> --- a/sysdeps/unix/sysv/linux/mq_open.c
> +++ b/sysdeps/unix/sysv/linux/mq_open.c
> @@ -21,6 +21,7 @@
> #include <stddef.h>
> #include <stdio.h>
> #include <sysdep.h>
> +#include <shlib-compat.h>
>
> /* Establish connection between a process and a message queue NAME and
> return message queue descriptor or (mqd_t) -1 on error. OFLAG determines
> @@ -49,13 +50,20 @@ __mq_open (const char *name, int oflag, ...)
>
> return INLINE_SYSCALL (mq_open, 4, name + 1, oflag, mode, attr);
> }
> -strong_alias (__mq_open, mq_open);
> +versioned_symbol (libc, __mq_open, mq_open, GLIBC_2_34);
> +#if OTHER_SHLIB_COMPAT (librt, GLIBC_2_3_4, GLIBC_2_34)
> +compat_symbol (libc, __mq_open, mq_open, GLIBC_2_3_4);
> +#endif
>
> mqd_t
> -__mq_open_2 (const char *name, int oflag)
> +___mq_open_2 (const char *name, int oflag)
> {
> if (oflag & O_CREAT)
> __fortify_fail ("invalid mq_open call: O_CREAT without mode and attr");
>
> return __mq_open (name, oflag);
> }
> +versioned_symbol (libc, ___mq_open_2, __mq_open_2, GLIBC_2_34);
> +#if OTHER_SHLIB_COMPAT (librt, GLIBC_2_7, GLIBC_2_34)
> +compat_symbol (libc, ___mq_open_2, __mq_open_2, GLIBC_2_7);
> +#endif
Ok.
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index 50b5f57efc..e9ed0ba4f7 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -338,6 +338,7 @@ GLIBC_2.21 __mempcpy_small F
> GLIBC_2.21 __memset_chk F
> GLIBC_2.21 __monstartup F
> GLIBC_2.21 __morecore D 0x4
> +GLIBC_2.21 __mq_open_2 F
> GLIBC_2.21 __muldf3 F
> GLIBC_2.21 __mulsf3 F
> GLIBC_2.21 __nanosleep F
> @@ -1405,6 +1406,7 @@ GLIBC_2.21 mprotect F
> GLIBC_2.21 mq_close F
> GLIBC_2.21 mq_getattr F
> GLIBC_2.21 mq_notify F
> +GLIBC_2.21 mq_open F
> GLIBC_2.21 mq_setattr F
> GLIBC_2.21 mrand48 F
> GLIBC_2.21 mrand48_r F
> @@ -2426,6 +2428,7 @@ GLIBC_2.34 __localtime64_r F
> GLIBC_2.34 __lstat64_time64 F
> GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> +GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2516,6 +2519,7 @@ GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> +GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
> index 0ad1b47423..8139d54618 100644
> --- a/sysdeps/unix/sysv/linux/nios2/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.21 __mq_open_2 F
> -GLIBC_2.21 mq_open F
> GLIBC_2.21 mq_receive F
> GLIBC_2.21 mq_send F
> GLIBC_2.21 mq_timedreceive F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index c8b663ff2f..4ca163edbf 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -2347,6 +2347,7 @@ GLIBC_2.3.4 makecontext F
> GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> +GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2444,6 +2445,7 @@ GLIBC_2.34 __localtime64_r F
> GLIBC_2.34 __lstat64_time64 F
> GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> +GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2534,6 +2536,7 @@ GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> +GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> @@ -2926,6 +2929,7 @@ GLIBC_2.7 __isoc99_vsscanf F
> GLIBC_2.7 __isoc99_vswscanf F
> GLIBC_2.7 __isoc99_vwscanf F
> GLIBC_2.7 __isoc99_wscanf F
> +GLIBC_2.7 __mq_open_2 F
> GLIBC_2.7 __nldbl___isoc99_fscanf F
> GLIBC_2.7 __nldbl___isoc99_fwscanf F
> GLIBC_2.7 __nldbl___isoc99_scanf F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> index c4164f4149..bb9c1f9659 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.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.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_timedreceive F
> @@ -15,4 +14,4 @@ GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> -GLIBC_2.7 __mq_open_2 F
> +GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index 551af732bb..ad4c8c6eb2 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -2380,6 +2380,7 @@ GLIBC_2.3.4 makecontext F
> GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> +GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2477,6 +2478,7 @@ GLIBC_2.34 __localtime64_r F
> GLIBC_2.34 __lstat64_time64 F
> GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> +GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2567,6 +2569,7 @@ GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> +GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> @@ -2971,6 +2974,7 @@ GLIBC_2.7 __isoc99_vsscanf F
> GLIBC_2.7 __isoc99_vswscanf F
> GLIBC_2.7 __isoc99_vwscanf F
> GLIBC_2.7 __isoc99_wscanf F
> +GLIBC_2.7 __mq_open_2 F
> GLIBC_2.7 __nldbl___isoc99_fscanf F
> GLIBC_2.7 __nldbl___isoc99_fwscanf F
> GLIBC_2.7 __nldbl___isoc99_scanf F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index a79b8863e1..dd3459a50a 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -2193,6 +2193,7 @@ GLIBC_2.3.4 longjmp F
> GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> +GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2255,6 +2256,7 @@ GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.34 __libc_start_main F
> +GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __pthread_cleanup_routine F
> GLIBC_2.34 __pthread_key_create F
> GLIBC_2.34 __pthread_mutex_lock F
> @@ -2303,6 +2305,7 @@ GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> +GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> @@ -2695,6 +2698,7 @@ GLIBC_2.7 __isoc99_vsscanf F
> GLIBC_2.7 __isoc99_vswscanf F
> GLIBC_2.7 __isoc99_vwscanf F
> GLIBC_2.7 __isoc99_wscanf F
> +GLIBC_2.7 __mq_open_2 F
> GLIBC_2.7 __nldbl___isoc99_fscanf F
> GLIBC_2.7 __nldbl___isoc99_fwscanf F
> GLIBC_2.7 __nldbl___isoc99_scanf F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> index a7117238c4..11d78aed63 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> @@ -8,11 +8,10 @@ GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> -GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> GLIBC_2.4 __librt_version_placeholder F
> -GLIBC_2.7 __mq_open_2 F
> +GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index 89293145e4..10293edbdc 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -305,6 +305,7 @@ GLIBC_2.17 __mempcpy_small F
> GLIBC_2.17 __memset_chk F
> GLIBC_2.17 __monstartup F
> GLIBC_2.17 __morecore D 0x8
> +GLIBC_2.17 __mq_open_2 F
> GLIBC_2.17 __nanosleep F
> GLIBC_2.17 __newlocale F
> GLIBC_2.17 __nl_langinfo_l F
> @@ -1448,6 +1449,7 @@ GLIBC_2.17 mprotect F
> GLIBC_2.17 mq_close F
> GLIBC_2.17 mq_getattr F
> GLIBC_2.17 mq_notify F
> +GLIBC_2.17 mq_open F
> GLIBC_2.17 mq_setattr F
> GLIBC_2.17 mrand48 F
> GLIBC_2.17 mrand48_r F
> @@ -2554,6 +2556,7 @@ GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.34 __isnanf128 F
> GLIBC_2.34 __libc_start_main F
> +GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __pthread_cleanup_routine F
> GLIBC_2.34 __pthread_key_create F
> GLIBC_2.34 __pthread_mutex_lock F
> @@ -2602,6 +2605,7 @@ GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> +GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> index 6cab033b12..32327b9d62 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.17 __mq_open_2 F
> -GLIBC_2.17 mq_open F
> GLIBC_2.17 mq_receive F
> GLIBC_2.17 mq_send F
> GLIBC_2.17 mq_timedreceive F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index da03d7e3b4..eca2d49a2a 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -297,6 +297,7 @@ GLIBC_2.33 __mempcpy_chk F
> GLIBC_2.33 __memset_chk F
> GLIBC_2.33 __monstartup F
> GLIBC_2.33 __morecore D 0x4
> +GLIBC_2.33 __mq_open_2 F
> GLIBC_2.33 __nanosleep F
> GLIBC_2.33 __newlocale F
> GLIBC_2.33 __nl_langinfo_l F
> @@ -1293,6 +1294,7 @@ GLIBC_2.33 mprotect F
> GLIBC_2.33 mq_close F
> GLIBC_2.33 mq_getattr F
> GLIBC_2.33 mq_notify F
> +GLIBC_2.33 mq_open F
> GLIBC_2.33 mq_setattr F
> GLIBC_2.33 mrand48 F
> GLIBC_2.33 mrand48_r F
> @@ -2119,6 +2121,7 @@ GLIBC_2.33 write F
> GLIBC_2.33 writev F
> GLIBC_2.33 wscanf F
> GLIBC_2.34 __libc_start_main F
> +GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __pthread_cleanup_routine F
> GLIBC_2.34 __pthread_key_create F
> GLIBC_2.34 __pthread_mutex_lock F
> @@ -2167,6 +2170,7 @@ GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> +GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> index 2877905086..8d0013bd08 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.33 __mq_open_2 F
> -GLIBC_2.33 mq_open F
> GLIBC_2.33 mq_receive F
> GLIBC_2.33 mq_send F
> GLIBC_2.33 mq_timedreceive F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index e1ff263953..46300e450e 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -306,6 +306,7 @@ GLIBC_2.27 __mempcpy_chk F
> GLIBC_2.27 __memset_chk F
> GLIBC_2.27 __monstartup F
> GLIBC_2.27 __morecore D 0x8
> +GLIBC_2.27 __mq_open_2 F
> GLIBC_2.27 __nanosleep F
> GLIBC_2.27 __newlocale F
> GLIBC_2.27 __nl_langinfo_l F
> @@ -1343,6 +1344,7 @@ GLIBC_2.27 mprotect F
> GLIBC_2.27 mq_close F
> GLIBC_2.27 mq_getattr F
> GLIBC_2.27 mq_notify F
> +GLIBC_2.27 mq_open F
> GLIBC_2.27 mq_setattr F
> GLIBC_2.27 mrand48 F
> GLIBC_2.27 mrand48_r F
> @@ -2319,6 +2321,7 @@ GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.34 __libc_start_main F
> +GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __pthread_cleanup_routine F
> GLIBC_2.34 __pthread_key_create F
> GLIBC_2.34 __pthread_mutex_lock F
> @@ -2367,6 +2370,7 @@ GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> +GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> index 79c4c5870f..19f0d73de7 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.27 __mq_open_2 F
> -GLIBC_2.27 mq_open F
> GLIBC_2.27 mq_receive F
> GLIBC_2.27 mq_send F
> GLIBC_2.27 mq_timedreceive F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index b1af366553..b80a760c40 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -2346,6 +2346,7 @@ GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> +GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2442,6 +2443,7 @@ GLIBC_2.34 __localtime64_r F
> GLIBC_2.34 __lstat64_time64 F
> GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> +GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2532,6 +2534,7 @@ GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> +GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> @@ -2922,6 +2925,7 @@ GLIBC_2.7 __isoc99_vsscanf F
> GLIBC_2.7 __isoc99_vswscanf F
> GLIBC_2.7 __isoc99_vwscanf F
> GLIBC_2.7 __isoc99_wscanf F
> +GLIBC_2.7 __mq_open_2 F
> GLIBC_2.7 __nldbl___isoc99_fscanf F
> GLIBC_2.7 __nldbl___isoc99_fwscanf F
> GLIBC_2.7 __nldbl___isoc99_scanf F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> index c4164f4149..bb9c1f9659 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.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.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_timedreceive F
> @@ -15,4 +14,4 @@ GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> -GLIBC_2.7 __mq_open_2 F
> +GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index 70322f5969..093f116bc6 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -2234,6 +2234,7 @@ GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> +GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2292,6 +2293,7 @@ GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.34 __libc_start_main F
> +GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __pthread_cleanup_routine F
> GLIBC_2.34 __pthread_key_create F
> GLIBC_2.34 __pthread_mutex_lock F
> @@ -2340,6 +2342,7 @@ GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> +GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> @@ -2730,6 +2733,7 @@ GLIBC_2.7 __isoc99_vsscanf F
> GLIBC_2.7 __isoc99_vswscanf F
> GLIBC_2.7 __isoc99_vwscanf F
> GLIBC_2.7 __isoc99_wscanf F
> +GLIBC_2.7 __mq_open_2 F
> GLIBC_2.7 __nldbl___isoc99_fscanf F
> GLIBC_2.7 __nldbl___isoc99_fwscanf F
> GLIBC_2.7 __nldbl___isoc99_scanf F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> index 7e2f744325..c6cf36504c 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> @@ -8,11 +8,10 @@ GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> -GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> GLIBC_2.4 __librt_version_placeholder F
> -GLIBC_2.7 __mq_open_2 F
> +GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index 57dc4db1e7..63ac43ca18 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -2213,6 +2213,7 @@ GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> +GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2297,6 +2298,7 @@ GLIBC_2.34 __localtime64_r F
> GLIBC_2.34 __lstat64_time64 F
> GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> +GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2387,6 +2389,7 @@ GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> +GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> @@ -2626,6 +2629,7 @@ GLIBC_2.7 __isoc99_vsscanf F
> GLIBC_2.7 __isoc99_vswscanf F
> GLIBC_2.7 __isoc99_vwscanf F
> GLIBC_2.7 __isoc99_wscanf F
> +GLIBC_2.7 __mq_open_2 F
> GLIBC_2.7 __open64_2 F
> GLIBC_2.7 __open_2 F
> GLIBC_2.7 __openat64_2 F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> index c4164f4149..bb9c1f9659 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.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.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_timedreceive F
> @@ -15,4 +14,4 @@ GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> -GLIBC_2.7 __mq_open_2 F
> +GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index d00a7d6034..483e612001 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -2213,6 +2213,7 @@ GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> +GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2294,6 +2295,7 @@ GLIBC_2.34 __localtime64_r F
> GLIBC_2.34 __lstat64_time64 F
> GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> +GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2384,6 +2386,7 @@ GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> +GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> @@ -2623,6 +2626,7 @@ GLIBC_2.7 __isoc99_vsscanf F
> GLIBC_2.7 __isoc99_vswscanf F
> GLIBC_2.7 __isoc99_vwscanf F
> GLIBC_2.7 __isoc99_wscanf F
> +GLIBC_2.7 __mq_open_2 F
> GLIBC_2.7 __open64_2 F
> GLIBC_2.7 __open_2 F
> GLIBC_2.7 __openat64_2 F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> index c4164f4149..bb9c1f9659 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.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.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_timedreceive F
> @@ -15,4 +14,4 @@ GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> -GLIBC_2.7 __mq_open_2 F
> +GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index e25501e4c4..9679915508 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -2344,6 +2344,7 @@ GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> +GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2437,6 +2438,7 @@ GLIBC_2.34 __localtime64_r F
> GLIBC_2.34 __lstat64_time64 F
> GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> +GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2527,6 +2529,7 @@ GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> +GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> @@ -2943,6 +2946,7 @@ GLIBC_2.7 __isoc99_vsscanf F
> GLIBC_2.7 __isoc99_vswscanf F
> GLIBC_2.7 __isoc99_vwscanf F
> GLIBC_2.7 __isoc99_wscanf F
> +GLIBC_2.7 __mq_open_2 F
> GLIBC_2.7 __nldbl___isoc99_fscanf F
> GLIBC_2.7 __nldbl___isoc99_fwscanf F
> GLIBC_2.7 __nldbl___isoc99_scanf F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> index 19e98aae24..3d08073063 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> @@ -5,7 +5,6 @@ GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> GLIBC_2.3 __librt_version_placeholder F
> -GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_timedreceive F
> @@ -16,4 +15,4 @@ GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> -GLIBC_2.7 __mq_open_2 F
> +GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index cdec31d161..59d1d2beef 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -2268,6 +2268,7 @@ GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> +GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2314,6 +2315,7 @@ GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.34 __libc_start_main F
> +GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __pthread_cleanup_routine F
> GLIBC_2.34 __pthread_key_create F
> GLIBC_2.34 __pthread_mutex_lock F
> @@ -2362,6 +2364,7 @@ GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> +GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> @@ -2601,6 +2604,7 @@ GLIBC_2.7 __isoc99_vsscanf F
> GLIBC_2.7 __isoc99_vswscanf F
> GLIBC_2.7 __isoc99_vwscanf F
> GLIBC_2.7 __isoc99_wscanf F
> +GLIBC_2.7 __mq_open_2 F
> GLIBC_2.7 __open64_2 F
> GLIBC_2.7 __open_2 F
> GLIBC_2.7 __openat64_2 F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> index d85884d888..bd9a4111f3 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> @@ -10,11 +10,10 @@ GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> -GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> GLIBC_2.4 __librt_version_placeholder F
> -GLIBC_2.7 __mq_open_2 F
> +GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index 1f16f15c1b..699ddbb78d 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -2222,6 +2222,7 @@ GLIBC_2.3.4 getsourcefilter F
> GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> +GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> @@ -2270,6 +2271,7 @@ GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.34 __isnanf128 F
> GLIBC_2.34 __libc_start_main F
> +GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __pthread_cleanup_routine F
> GLIBC_2.34 __pthread_key_create F
> GLIBC_2.34 __pthread_mutex_lock F
> @@ -2318,6 +2320,7 @@ GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> +GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> @@ -2557,6 +2560,7 @@ GLIBC_2.7 __isoc99_vsscanf F
> GLIBC_2.7 __isoc99_vswscanf F
> GLIBC_2.7 __isoc99_vwscanf F
> GLIBC_2.7 __isoc99_wscanf F
> +GLIBC_2.7 __mq_open_2 F
> GLIBC_2.7 __open64_2 F
> GLIBC_2.7 __open_2 F
> GLIBC_2.7 __openat64_2 F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> index 139cf285ec..161a731b3e 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> @@ -8,11 +8,10 @@ GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> -GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> GLIBC_2.4 __librt_version_placeholder F
> -GLIBC_2.7 __mq_open_2 F
> +GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index ac010952fe..6e069e92a6 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -307,6 +307,7 @@ GLIBC_2.16 __mempcpy_small F
> GLIBC_2.16 __memset_chk F
> GLIBC_2.16 __monstartup F
> GLIBC_2.16 __morecore D 0x4
> +GLIBC_2.16 __mq_open_2 F
> GLIBC_2.16 __nanosleep F
> GLIBC_2.16 __newlocale F
> GLIBC_2.16 __nl_langinfo_l F
> @@ -1367,6 +1368,7 @@ GLIBC_2.16 mprotect F
> GLIBC_2.16 mq_close F
> GLIBC_2.16 mq_getattr F
> GLIBC_2.16 mq_notify F
> +GLIBC_2.16 mq_open F
> GLIBC_2.16 mq_setattr F
> GLIBC_2.16 mrand48 F
> GLIBC_2.16 mrand48_r F
> @@ -2373,6 +2375,7 @@ GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.34 __isnanf128 F
> GLIBC_2.34 __libc_start_main F
> +GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __pthread_cleanup_routine F
> GLIBC_2.34 __pthread_key_create F
> GLIBC_2.34 __pthread_mutex_lock F
> @@ -2421,6 +2424,7 @@ GLIBC_2.34 lio_listio64 F
> GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> +GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> index db976a6c97..643cd58e36 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.16 __mq_open_2 F
> -GLIBC_2.16 mq_open F
> GLIBC_2.16 mq_receive F
> GLIBC_2.16 mq_send F
> GLIBC_2.16 mq_timedreceive F
>
Ok.
^ permalink raw reply [flat|nested] 72+ messages in thread
* [PATCH 25/34] Linux: Move mq_receive, mq_timedreceive, __mq_timedreceive_time64 to libc
2021-06-17 18:56 [PATCH v2 00/34] Move librt into libc Florian Weimer
` (23 preceding siblings ...)
2021-06-17 18:59 ` [PATCH 24/34] Linux: Move mq_open, __mq_open_2 " Florian Weimer
@ 2021-06-17 18:59 ` Florian Weimer
2021-06-24 14:14 ` Adhemerval Zanella
2021-06-17 18:59 ` [PATCH 26/34] Linux: Move mq_send, mq_timedsend, __mq_timedsend_time64 " Florian Weimer
` (9 subsequent siblings)
34 siblings, 1 reply; 72+ messages in thread
From: Florian Weimer @ 2021-06-17 18:59 UTC (permalink / raw)
To: libc-alpha
The symbols were moved using scripts/move-symbol-to-libc.py.
---
include/mqueue.h | 12 ++++--
rt/Makefile | 4 +-
rt/Versions | 8 +++-
sysdeps/unix/sysv/linux/Versions | 2 +-
sysdeps/unix/sysv/linux/aarch64/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/aarch64/librt.abilist | 2 -
sysdeps/unix/sysv/linux/alpha/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/alpha/librt.abilist | 2 -
sysdeps/unix/sysv/linux/arc/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/arc/librt.abilist | 2 -
sysdeps/unix/sysv/linux/arm/be/libc.abilist | 5 +++
sysdeps/unix/sysv/linux/arm/be/librt.abilist | 3 --
sysdeps/unix/sysv/linux/arm/le/libc.abilist | 5 +++
sysdeps/unix/sysv/linux/arm/le/librt.abilist | 3 --
sysdeps/unix/sysv/linux/csky/libc.abilist | 5 +++
sysdeps/unix/sysv/linux/csky/librt.abilist | 3 --
sysdeps/unix/sysv/linux/hppa/libc.abilist | 5 +++
sysdeps/unix/sysv/linux/hppa/librt.abilist | 3 --
sysdeps/unix/sysv/linux/i386/libc.abilist | 5 +++
sysdeps/unix/sysv/linux/i386/librt.abilist | 3 --
sysdeps/unix/sysv/linux/ia64/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/ia64/librt.abilist | 2 -
.../sysv/linux/m68k/coldfire/libc.abilist | 5 +++
.../sysv/linux/m68k/coldfire/librt.abilist | 3 --
.../unix/sysv/linux/m68k/m680x0/libc.abilist | 5 +++
.../unix/sysv/linux/m68k/m680x0/librt.abilist | 3 --
.../sysv/linux/microblaze/be/libc.abilist | 5 +++
.../sysv/linux/microblaze/be/librt.abilist | 3 --
.../sysv/linux/microblaze/le/libc.abilist | 5 +++
.../sysv/linux/microblaze/le/librt.abilist | 3 --
.../sysv/linux/mips/mips32/fpu/libc.abilist | 5 +++
.../unix/sysv/linux/mips/mips32/librt.abilist | 3 --
.../sysv/linux/mips/mips32/nofpu/libc.abilist | 5 +++
.../sysv/linux/mips/mips64/n32/libc.abilist | 5 +++
.../sysv/linux/mips/mips64/n32/librt.abilist | 3 --
.../sysv/linux/mips/mips64/n64/libc.abilist | 4 ++
.../sysv/linux/mips/mips64/n64/librt.abilist | 2 -
sysdeps/unix/sysv/linux/mq_receive.c | 9 ++++-
sysdeps/unix/sysv/linux/mq_timedreceive.c | 38 ++++++++++++++-----
sysdeps/unix/sysv/linux/nios2/libc.abilist | 5 +++
sysdeps/unix/sysv/linux/nios2/librt.abilist | 3 --
.../linux/powerpc/powerpc32/fpu/libc.abilist | 5 +++
.../linux/powerpc/powerpc32/librt.abilist | 3 --
.../powerpc/powerpc32/nofpu/libc.abilist | 5 +++
.../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 | 5 +++
.../sysv/linux/s390/s390-32/librt.abilist | 3 --
.../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 | 5 +++
sysdeps/unix/sysv/linux/sh/be/librt.abilist | 3 --
sysdeps/unix/sysv/linux/sh/le/libc.abilist | 5 +++
sysdeps/unix/sysv/linux/sh/le/librt.abilist | 3 --
.../sysv/linux/sparc/sparc32/libc.abilist | 5 +++
.../sysv/linux/sparc/sparc32/librt.abilist | 3 --
.../sysv/linux/sparc/sparc64/libc.abilist | 4 ++
.../sysv/linux/sparc/sparc64/librt.abilist | 2 -
.../unix/sysv/linux/x86_64/64/libc.abilist | 4 ++
.../unix/sysv/linux/x86_64/64/librt.abilist | 2 -
.../unix/sysv/linux/x86_64/x32/libc.abilist | 4 ++
.../unix/sysv/linux/x86_64/x32/librt.abilist | 2 -
68 files changed, 200 insertions(+), 97 deletions(-)
diff --git a/include/mqueue.h b/include/mqueue.h
index 2c40c1e3fc..8243a637d2 100644
--- a/include/mqueue.h
+++ b/include/mqueue.h
@@ -1,20 +1,22 @@
#include <rt/mqueue.h>
#ifndef _ISOMAC
+extern __typeof (mq_timedreceive) __mq_timedreceive __nonnull ((2, 5));
+
# if IS_IN (librt)
hidden_proto (mq_timedsend)
extern __typeof (mq_timedsend) __mq_timedsend __nonnull ((2, 5));
hidden_proto (__mq_timedsend)
-hidden_proto (mq_timedreceive)
-extern __typeof (mq_timedreceive) __mq_timedreceive __nonnull ((2, 5));
-hidden_proto (__mq_timedreceive)
# if !PTHREAD_IN_LIBC
hidden_proto (mq_setattr)
+hidden_proto (mq_timedreceive)
+hidden_proto (__mq_timedreceive)
# endif
# endif /* IS_IN (librt) */
# if PTHREAD_IN_LIBC
libc_hidden_proto (mq_setattr)
+libc_hidden_proto (__mq_timedreceive)
/* Called from fork so that the new subprocess re-creates the
notification thread if necessary. */
@@ -36,6 +38,10 @@ extern ssize_t __mq_timedreceive_time64 (mqd_t mqdes,
unsigned int *__restrict msg_prio,
const struct __timespec64 *__restrict
abs_timeout);
+# if PTHREAD_IN_LIBC
+libc_hidden_proto (__mq_timedreceive_time64)
+# else
librt_hidden_proto (__mq_timedreceive_time64)
+# endif
#endif
#endif
diff --git a/rt/Makefile b/rt/Makefile
index f0b13b27ba..a3182ac459 100644
--- a/rt/Makefile
+++ b/rt/Makefile
@@ -30,9 +30,7 @@ routines = \
librt-routines = \
librt-compat \
- mq_receive \
mq_send \
- mq_timedreceive \
mq_timedsend \
mq_unlink \
timer_create \
@@ -62,7 +60,9 @@ $(librt-routines-var) += \
mq_getattr \
mq_notify \
mq_open \
+ mq_receive \
mq_setattr \
+ mq_timedreceive \
tests := tst-shm tst-timer tst-timer2 \
tst-aio tst-aio64 tst-aio2 tst-aio3 tst-aio4 tst-aio5 tst-aio6 \
diff --git a/rt/Versions b/rt/Versions
index d28a7f6979..541106632e 100644
--- a/rt/Versions
+++ b/rt/Versions
@@ -30,7 +30,9 @@ libc {
mq_getattr;
mq_notify;
mq_open;
+ mq_receive;
mq_setattr;
+ mq_timedreceive;
%endif
}
GLIBC_2.4 {
@@ -68,7 +70,9 @@ libc {
mq_getattr;
mq_notify;
mq_open;
+ mq_receive;
mq_setattr;
+ mq_timedreceive;
%endif
shm_open;
shm_unlink;
@@ -124,11 +128,11 @@ librt {
mq_getattr;
mq_notify;
mq_open;
+ mq_receive;
mq_setattr;
+ mq_timedreceive;
%endif
- mq_receive;
mq_send;
- mq_timedreceive;
mq_timedsend;
mq_unlink;
}
diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions
index f246a389e1..cce7c56652 100644
--- a/sysdeps/unix/sysv/linux/Versions
+++ b/sysdeps/unix/sysv/linux/Versions
@@ -226,6 +226,7 @@ libc {
__lstat64_time64;
__lutimes64;
__mktime64;
+ __mq_timedreceive_time64;
__msgctl64;
__mtx_timedlock64;
__nanosleep64;
@@ -296,7 +297,6 @@ librt {
%ifdef TIME64_NON_DEFAULT
# 64-bit time_t support
__mq_timedsend_time64;
- __mq_timedreceive_time64;
__timer_gettime64;
__timer_settime64;
%endif
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 07f77027fc..cd9d4d91c5 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -1362,7 +1362,9 @@ GLIBC_2.17 mq_close F
GLIBC_2.17 mq_getattr F
GLIBC_2.17 mq_notify F
GLIBC_2.17 mq_open F
+GLIBC_2.17 mq_receive F
GLIBC_2.17 mq_setattr F
+GLIBC_2.17 mq_timedreceive F
GLIBC_2.17 mrand48 F
GLIBC_2.17 mrand48_r F
GLIBC_2.17 mremap F
@@ -2410,7 +2412,9 @@ GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
index 32327b9d62..1c3c05932e 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_receive F
GLIBC_2.17 mq_send F
-GLIBC_2.17 mq_timedreceive F
GLIBC_2.17 mq_timedsend F
GLIBC_2.17 mq_unlink F
GLIBC_2.17 timer_create F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 683b320ddc..7a894d983e 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -2396,7 +2396,9 @@ GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
+GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_setattr F
+GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2504,7 +2506,9 @@ GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
index bd9a4111f3..6eae7e9482 100644
--- a/sysdeps/unix/sysv/linux/alpha/librt.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist
@@ -10,9 +10,7 @@ GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 0d73e4cf7a..e3769a67f5 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1293,7 +1293,9 @@ GLIBC_2.32 mq_close F
GLIBC_2.32 mq_getattr F
GLIBC_2.32 mq_notify F
GLIBC_2.32 mq_open F
+GLIBC_2.32 mq_receive F
GLIBC_2.32 mq_setattr F
+GLIBC_2.32 mq_timedreceive F
GLIBC_2.32 mrand48 F
GLIBC_2.32 mrand48_r F
GLIBC_2.32 mremap F
@@ -2169,7 +2171,9 @@ GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
index 1ed03be8c1..7a861b1e76 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_receive F
GLIBC_2.32 mq_send F
-GLIBC_2.32 mq_timedreceive F
GLIBC_2.32 mq_timedsend F
GLIBC_2.32 mq_unlink F
GLIBC_2.32 timer_create F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 351bba9289..74ff1bc808 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -227,6 +227,7 @@ GLIBC_2.34 __lstat64_time64 F
GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
GLIBC_2.34 __mq_open_2 F
+GLIBC_2.34 __mq_timedreceive_time64 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -318,7 +319,9 @@ GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
@@ -1736,7 +1739,9 @@ GLIBC_2.4 mq_close F
GLIBC_2.4 mq_getattr F
GLIBC_2.4 mq_notify F
GLIBC_2.4 mq_open F
+GLIBC_2.4 mq_receive F
GLIBC_2.4 mq_setattr F
+GLIBC_2.4 mq_timedreceive F
GLIBC_2.4 mrand48 F
GLIBC_2.4 mrand48_r F
GLIBC_2.4 mremap F
diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
index ecdfd60cdd..ea840d42d1 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -1,10 +1,7 @@
-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 mq_receive F
GLIBC_2.4 mq_send F
-GLIBC_2.4 mq_timedreceive F
GLIBC_2.4 mq_timedsend F
GLIBC_2.4 mq_unlink F
GLIBC_2.4 timer_create F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 803e1a8bf9..04692b0d98 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -224,6 +224,7 @@ GLIBC_2.34 __lstat64_time64 F
GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
GLIBC_2.34 __mq_open_2 F
+GLIBC_2.34 __mq_timedreceive_time64 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -315,7 +316,9 @@ GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
@@ -1733,7 +1736,9 @@ GLIBC_2.4 mq_close F
GLIBC_2.4 mq_getattr F
GLIBC_2.4 mq_notify F
GLIBC_2.4 mq_open F
+GLIBC_2.4 mq_receive F
GLIBC_2.4 mq_setattr F
+GLIBC_2.4 mq_timedreceive F
GLIBC_2.4 mrand48 F
GLIBC_2.4 mrand48_r F
GLIBC_2.4 mremap F
diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
index ecdfd60cdd..ea840d42d1 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -1,10 +1,7 @@
-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 mq_receive F
GLIBC_2.4 mq_send F
-GLIBC_2.4 mq_timedreceive F
GLIBC_2.4 mq_timedsend F
GLIBC_2.4 mq_unlink F
GLIBC_2.4 timer_create F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 5a257c5f7f..e25f2637b6 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -1348,7 +1348,9 @@ GLIBC_2.29 mq_close F
GLIBC_2.29 mq_getattr F
GLIBC_2.29 mq_notify F
GLIBC_2.29 mq_open F
+GLIBC_2.29 mq_receive F
GLIBC_2.29 mq_setattr F
+GLIBC_2.29 mq_timedreceive F
GLIBC_2.29 mrand48 F
GLIBC_2.29 mrand48_r F
GLIBC_2.29 mremap F
@@ -2339,6 +2341,7 @@ GLIBC_2.34 __lstat64_time64 F
GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
GLIBC_2.34 __mq_open_2 F
+GLIBC_2.34 __mq_timedreceive_time64 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2430,7 +2433,9 @@ GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
index 8e8822b999..dadd5b921b 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_receive F
GLIBC_2.29 mq_send F
-GLIBC_2.29 mq_timedreceive F
GLIBC_2.29 mq_timedsend F
GLIBC_2.29 mq_unlink F
GLIBC_2.29 timer_create F
@@ -8,7 +6,6 @@ GLIBC_2.29 timer_delete F
GLIBC_2.29 timer_getoverrun F
GLIBC_2.29 timer_gettime F
GLIBC_2.29 timer_settime F
-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
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 1d859308d7..7ef275ce02 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -2210,7 +2210,9 @@ GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
+GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_setattr F
+GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2292,6 +2294,7 @@ GLIBC_2.34 __lstat64_time64 F
GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
GLIBC_2.34 __mq_open_2 F
+GLIBC_2.34 __mq_timedreceive_time64 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2383,7 +2386,9 @@ GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
index bb9c1f9659..9d26b1298c 100644
--- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
@@ -4,12 +4,9 @@ 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.4 mq_receive F
GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
-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
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 9b4f57689b..a584865427 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -2391,7 +2391,9 @@ GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
+GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_setattr F
+GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2476,6 +2478,7 @@ GLIBC_2.34 __lstat64_time64 F
GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
GLIBC_2.34 __mq_open_2 F
+GLIBC_2.34 __mq_timedreceive_time64 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2567,7 +2570,9 @@ GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
index bb9c1f9659..9d26b1298c 100644
--- a/sysdeps/unix/sysv/linux/i386/librt.abilist
+++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
@@ -4,12 +4,9 @@ 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.4 mq_receive F
GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
-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
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 9575d82f33..6e22d91a7f 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -2245,7 +2245,9 @@ GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
+GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_setattr F
+GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2342,7 +2344,9 @@ GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
index 8ecf898b30..eb4a5080e2 100644
--- a/sysdeps/unix/sysv/linux/ia64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/librt.abilist
@@ -9,9 +9,7 @@ GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 94903e9ff0..c6e168754f 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -228,6 +228,7 @@ GLIBC_2.34 __lstat64_time64 F
GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
GLIBC_2.34 __mq_open_2 F
+GLIBC_2.34 __mq_timedreceive_time64 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -319,7 +320,9 @@ GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
@@ -1720,7 +1723,9 @@ GLIBC_2.4 mq_close F
GLIBC_2.4 mq_getattr F
GLIBC_2.4 mq_notify F
GLIBC_2.4 mq_open F
+GLIBC_2.4 mq_receive F
GLIBC_2.4 mq_setattr F
+GLIBC_2.4 mq_timedreceive F
GLIBC_2.4 mrand48 F
GLIBC_2.4 mrand48_r F
GLIBC_2.4 mremap F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
index ecdfd60cdd..ea840d42d1 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -1,10 +1,7 @@
-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 mq_receive F
GLIBC_2.4 mq_send F
-GLIBC_2.4 mq_timedreceive F
GLIBC_2.4 mq_timedsend F
GLIBC_2.4 mq_unlink F
GLIBC_2.4 timer_create F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index f2dddac46b..ba3a4ace7b 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2334,7 +2334,9 @@ GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
+GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_setattr F
+GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2419,6 +2421,7 @@ GLIBC_2.34 __lstat64_time64 F
GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
GLIBC_2.34 __mq_open_2 F
+GLIBC_2.34 __mq_timedreceive_time64 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2510,7 +2513,9 @@ GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
index bb9c1f9659..9d26b1298c 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
@@ -4,12 +4,9 @@ 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.4 mq_receive F
GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
-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
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 3c8638ef87..1350543bce 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -1364,7 +1364,9 @@ GLIBC_2.18 mq_close F
GLIBC_2.18 mq_getattr F
GLIBC_2.18 mq_notify F
GLIBC_2.18 mq_open F
+GLIBC_2.18 mq_receive F
GLIBC_2.18 mq_setattr F
+GLIBC_2.18 mq_timedreceive F
GLIBC_2.18 mrand48 F
GLIBC_2.18 mrand48_r F
GLIBC_2.18 mremap F
@@ -2390,6 +2392,7 @@ GLIBC_2.34 __lstat64_time64 F
GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
GLIBC_2.34 __mq_open_2 F
+GLIBC_2.34 __mq_timedreceive_time64 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2481,7 +2484,9 @@ GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
index ce332a362d..8ddbc3a272 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_receive F
GLIBC_2.18 mq_send F
-GLIBC_2.18 mq_timedreceive F
GLIBC_2.18 mq_timedsend F
GLIBC_2.18 mq_unlink F
GLIBC_2.18 timer_create F
@@ -8,7 +6,6 @@ GLIBC_2.18 timer_delete F
GLIBC_2.18 timer_getoverrun F
GLIBC_2.18 timer_gettime F
GLIBC_2.18 timer_settime F
-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
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 8eb98598cc..10151508d3 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -1364,7 +1364,9 @@ GLIBC_2.18 mq_close F
GLIBC_2.18 mq_getattr F
GLIBC_2.18 mq_notify F
GLIBC_2.18 mq_open F
+GLIBC_2.18 mq_receive F
GLIBC_2.18 mq_setattr F
+GLIBC_2.18 mq_timedreceive F
GLIBC_2.18 mrand48 F
GLIBC_2.18 mrand48_r F
GLIBC_2.18 mremap F
@@ -2387,6 +2389,7 @@ GLIBC_2.34 __lstat64_time64 F
GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
GLIBC_2.34 __mq_open_2 F
+GLIBC_2.34 __mq_timedreceive_time64 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2478,7 +2481,9 @@ GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
index ce332a362d..8ddbc3a272 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_receive F
GLIBC_2.18 mq_send F
-GLIBC_2.18 mq_timedreceive F
GLIBC_2.18 mq_timedsend F
GLIBC_2.18 mq_unlink F
GLIBC_2.18 timer_create F
@@ -8,7 +6,6 @@ GLIBC_2.18 timer_delete F
GLIBC_2.18 timer_getoverrun F
GLIBC_2.18 timer_gettime F
GLIBC_2.18 timer_settime F
-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
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index fd796ad952..e3ebc66ae0 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -2302,7 +2302,9 @@ GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
+GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_setattr F
+GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2384,6 +2386,7 @@ GLIBC_2.34 __lstat64_time64 F
GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
GLIBC_2.34 __mq_open_2 F
+GLIBC_2.34 __mq_timedreceive_time64 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2475,7 +2478,9 @@ GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
index 84b5002e71..2cd12115d9 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
@@ -3,12 +3,9 @@ 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.4 mq_receive F
GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
-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
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 6b9092d313..e8d041106d 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -2300,7 +2300,9 @@ GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
+GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_setattr F
+GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2382,6 +2384,7 @@ GLIBC_2.34 __lstat64_time64 F
GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
GLIBC_2.34 __mq_open_2 F
+GLIBC_2.34 __mq_timedreceive_time64 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2473,7 +2476,9 @@ GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 2be1e7d2dd..b596c529c4 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -2308,7 +2308,9 @@ GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
+GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_setattr F
+GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2390,6 +2392,7 @@ GLIBC_2.34 __lstat64_time64 F
GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
GLIBC_2.34 __mq_open_2 F
+GLIBC_2.34 __mq_timedreceive_time64 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2481,7 +2484,9 @@ GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
index 84b5002e71..2cd12115d9 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
@@ -3,12 +3,9 @@ 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.4 mq_receive F
GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
-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
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 9569c4d8e7..af99fdad9c 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -2302,7 +2302,9 @@ GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
+GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_setattr F
+GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2398,7 +2400,9 @@ GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
index 8862820283..b5796aadb3 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
@@ -3,9 +3,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.4 mq_receive F
GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mq_receive.c b/sysdeps/unix/sysv/linux/mq_receive.c
index dd43d3a8e7..e9375a4cbc 100644
--- a/sysdeps/unix/sysv/linux/mq_receive.c
+++ b/sysdeps/unix/sysv/linux/mq_receive.c
@@ -17,14 +17,19 @@
#include <errno.h>
#include <mqueue.h>
+#include <shlib-compat.h>
#include <stddef.h>
#include <sysdep.h>
/* Receive the oldest from highest priority messages in message queue
MQDES. */
ssize_t
-mq_receive (mqd_t mqdes, char *msg_ptr, size_t msg_len,
- unsigned int *msg_prio)
+__mq_receive (mqd_t mqdes, char *msg_ptr, size_t msg_len,
+ unsigned int *msg_prio)
{
return __mq_timedreceive (mqdes, msg_ptr, msg_len, msg_prio, NULL);
}
+versioned_symbol (libc, __mq_receive, mq_receive, GLIBC_2_34);
+#if OTHER_SHLIB_COMPAT (librt, GLIBC_2_3_4, GLIBC_2_34)
+compat_symbol (librt, __mq_receive, mq_receive, GLIBC_2_3_4);
+#endif
diff --git a/sysdeps/unix/sysv/linux/mq_timedreceive.c b/sysdeps/unix/sysv/linux/mq_timedreceive.c
index eb948ccc18..14dcdde3e4 100644
--- a/sysdeps/unix/sysv/linux/mq_timedreceive.c
+++ b/sysdeps/unix/sysv/linux/mq_timedreceive.c
@@ -18,11 +18,12 @@
#include <mqueue.h>
#include <sysdep-cancel.h>
+#include <shlib-compat.h>
/* Receive the oldest from highest priority messages in message queue
MQDES, stop waiting if ABS_TIMEOUT expires. */
ssize_t
-__mq_timedreceive_time64 (mqd_t mqdes, char *__restrict msg_ptr, size_t msg_len,
+___mq_timedreceive_time64 (mqd_t mqdes, char *__restrict msg_ptr, size_t msg_len,
unsigned int *__restrict msg_prio,
const struct __timespec64 *__restrict abs_timeout)
{
@@ -55,13 +56,25 @@ __mq_timedreceive_time64 (mqd_t mqdes, char *__restrict msg_ptr, size_t msg_len,
return ret;
}
-#if __TIMESIZE != 64
-librt_hidden_def (__mq_timedreceive_time64)
+#if __TIMESIZE == 64
+versioned_symbol (libc, ___mq_timedreceive_time64, mq_timedreceive, GLIBC_2_34);
+libc_hidden_ver (___mq_timedreceive_time64, __mq_timedreceive)
+# ifndef SHARED
+strong_alias (___mq_timedreceive_time64, __mq_timedreceive)
+# endif
+# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_3_4, GLIBC_2_34)
+compat_symbol (librt, ___mq_timedreceive_time64, mq_timedreceive, GLIBC_2_3_4);
+# endif
+
+#else /* __TIMESIZE != 64 */
+libc_hidden_ver (___mq_timedreceive_time64, __mq_timedreceive_time64)
+versioned_symbol (libc, ___mq_timedreceive_time64, __mq_timedreceive_time64,
+ GLIBC_2_34);
ssize_t
-__mq_timedreceive (mqd_t mqdes, char *__restrict msg_ptr, size_t msg_len,
- unsigned int *__restrict msg_prio,
- const struct timespec *__restrict abs_timeout)
+___mq_timedreceive (mqd_t mqdes, char *__restrict msg_ptr, size_t msg_len,
+ unsigned int *__restrict msg_prio,
+ const struct timespec *__restrict abs_timeout)
{
struct __timespec64 ts64;
if (abs_timeout != NULL)
@@ -70,8 +83,13 @@ __mq_timedreceive (mqd_t mqdes, char *__restrict msg_ptr, size_t msg_len,
return __mq_timedreceive_time64 (mqdes, msg_ptr, msg_len, msg_prio,
abs_timeout != NULL ? &ts64 : NULL);
}
-#endif
+versioned_symbol (libc, ___mq_timedreceive, mq_timedreceive, GLIBC_2_34);
+libc_hidden_ver (___mq_timedreceive, __mq_timedreceive)
+# ifndef SHARED
+strong_alias (___mq_timedreceive, __mq_timedreceive)
+# endif
+# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_3_4, GLIBC_2_34)
+compat_symbol (librt, ___mq_timedreceive, mq_timedreceive, GLIBC_2_3_4);
+# endif
-hidden_def (__mq_timedreceive)
-weak_alias (__mq_timedreceive, mq_timedreceive)
-hidden_weak (mq_timedreceive)
+#endif /* __TIMESIZE != 64 */
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index e9ed0ba4f7..0c07cf2e80 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -1407,7 +1407,9 @@ GLIBC_2.21 mq_close F
GLIBC_2.21 mq_getattr F
GLIBC_2.21 mq_notify F
GLIBC_2.21 mq_open F
+GLIBC_2.21 mq_receive F
GLIBC_2.21 mq_setattr F
+GLIBC_2.21 mq_timedreceive F
GLIBC_2.21 mrand48 F
GLIBC_2.21 mrand48_r F
GLIBC_2.21 mremap F
@@ -2429,6 +2431,7 @@ GLIBC_2.34 __lstat64_time64 F
GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
GLIBC_2.34 __mq_open_2 F
+GLIBC_2.34 __mq_timedreceive_time64 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2520,7 +2523,9 @@ GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
index 8139d54618..7ea7b0a8f3 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_receive F
GLIBC_2.21 mq_send F
-GLIBC_2.21 mq_timedreceive F
GLIBC_2.21 mq_timedsend F
GLIBC_2.21 mq_unlink F
GLIBC_2.21 timer_create F
@@ -8,7 +6,6 @@ GLIBC_2.21 timer_delete F
GLIBC_2.21 timer_getoverrun F
GLIBC_2.21 timer_gettime F
GLIBC_2.21 timer_settime F
-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
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 4ca163edbf..4b3b448927 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -2348,7 +2348,9 @@ GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
+GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_setattr F
+GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2446,6 +2448,7 @@ GLIBC_2.34 __lstat64_time64 F
GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
GLIBC_2.34 __mq_open_2 F
+GLIBC_2.34 __mq_timedreceive_time64 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2537,7 +2540,9 @@ GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
index bb9c1f9659..9d26b1298c 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
@@ -4,12 +4,9 @@ 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.4 mq_receive F
GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
-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
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index ad4c8c6eb2..b3b90b8136 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -2381,7 +2381,9 @@ GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
+GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_setattr F
+GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2479,6 +2481,7 @@ GLIBC_2.34 __lstat64_time64 F
GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
GLIBC_2.34 __mq_open_2 F
+GLIBC_2.34 __mq_timedreceive_time64 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2570,7 +2573,9 @@ GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index dd3459a50a..1720d4da88 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -2194,7 +2194,9 @@ GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
+GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_setattr F
+GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2306,7 +2308,9 @@ GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
index 11d78aed63..3968e8e7cb 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
@@ -8,9 +8,7 @@ GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 10293edbdc..9a7d510295 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -1450,7 +1450,9 @@ GLIBC_2.17 mq_close F
GLIBC_2.17 mq_getattr F
GLIBC_2.17 mq_notify F
GLIBC_2.17 mq_open F
+GLIBC_2.17 mq_receive F
GLIBC_2.17 mq_setattr F
+GLIBC_2.17 mq_timedreceive F
GLIBC_2.17 mrand48 F
GLIBC_2.17 mrand48_r F
GLIBC_2.17 mremap F
@@ -2606,7 +2608,9 @@ GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
index 32327b9d62..1c3c05932e 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_receive F
GLIBC_2.17 mq_send F
-GLIBC_2.17 mq_timedreceive F
GLIBC_2.17 mq_timedsend F
GLIBC_2.17 mq_unlink F
GLIBC_2.17 timer_create F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index eca2d49a2a..80fea20f51 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1295,7 +1295,9 @@ GLIBC_2.33 mq_close F
GLIBC_2.33 mq_getattr F
GLIBC_2.33 mq_notify F
GLIBC_2.33 mq_open F
+GLIBC_2.33 mq_receive F
GLIBC_2.33 mq_setattr F
+GLIBC_2.33 mq_timedreceive F
GLIBC_2.33 mrand48 F
GLIBC_2.33 mrand48_r F
GLIBC_2.33 mremap F
@@ -2171,7 +2173,9 @@ GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
index 8d0013bd08..02e6e0d513 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_receive F
GLIBC_2.33 mq_send F
-GLIBC_2.33 mq_timedreceive F
GLIBC_2.33 mq_timedsend F
GLIBC_2.33 mq_unlink F
GLIBC_2.33 timer_create F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 46300e450e..b3ed38d911 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -1345,7 +1345,9 @@ GLIBC_2.27 mq_close F
GLIBC_2.27 mq_getattr F
GLIBC_2.27 mq_notify F
GLIBC_2.27 mq_open F
+GLIBC_2.27 mq_receive F
GLIBC_2.27 mq_setattr F
+GLIBC_2.27 mq_timedreceive F
GLIBC_2.27 mrand48 F
GLIBC_2.27 mrand48_r F
GLIBC_2.27 mremap F
@@ -2371,7 +2373,9 @@ GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
index 19f0d73de7..7cd66b1ff6 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_receive F
GLIBC_2.27 mq_send F
-GLIBC_2.27 mq_timedreceive F
GLIBC_2.27 mq_timedsend F
GLIBC_2.27 mq_unlink F
GLIBC_2.27 timer_create F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index b80a760c40..d9e415fa6d 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -2347,7 +2347,9 @@ GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
+GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_setattr F
+GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2444,6 +2446,7 @@ GLIBC_2.34 __lstat64_time64 F
GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
GLIBC_2.34 __mq_open_2 F
+GLIBC_2.34 __mq_timedreceive_time64 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2535,7 +2538,9 @@ GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
index bb9c1f9659..9d26b1298c 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
@@ -4,12 +4,9 @@ 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.4 mq_receive F
GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
-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
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 093f116bc6..dec539716c 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -2235,7 +2235,9 @@ GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
+GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_setattr F
+GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2343,7 +2345,9 @@ GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
index c6cf36504c..acaafa5f29 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
@@ -8,9 +8,7 @@ GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 63ac43ca18..ddc4e08f79 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -2214,7 +2214,9 @@ GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
+GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_setattr F
+GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2299,6 +2301,7 @@ GLIBC_2.34 __lstat64_time64 F
GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
GLIBC_2.34 __mq_open_2 F
+GLIBC_2.34 __mq_timedreceive_time64 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2390,7 +2393,9 @@ GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
index bb9c1f9659..9d26b1298c 100644
--- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
@@ -4,12 +4,9 @@ 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.4 mq_receive F
GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
-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
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 483e612001..553574f741 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -2214,7 +2214,9 @@ GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
+GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_setattr F
+GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2296,6 +2298,7 @@ GLIBC_2.34 __lstat64_time64 F
GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
GLIBC_2.34 __mq_open_2 F
+GLIBC_2.34 __mq_timedreceive_time64 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2387,7 +2390,9 @@ GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
index bb9c1f9659..9d26b1298c 100644
--- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
@@ -4,12 +4,9 @@ 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.4 mq_receive F
GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
-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
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 9679915508..3e68e78ca2 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -2345,7 +2345,9 @@ GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
+GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_setattr F
+GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2439,6 +2441,7 @@ GLIBC_2.34 __lstat64_time64 F
GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
GLIBC_2.34 __mq_open_2 F
+GLIBC_2.34 __mq_timedreceive_time64 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2530,7 +2533,9 @@ GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
index 3d08073063..ca31f9805a 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
@@ -5,12 +5,9 @@ GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
GLIBC_2.3 __librt_version_placeholder F
-GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
-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
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 59d1d2beef..5d21d25fb9 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -2269,7 +2269,9 @@ GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
+GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_setattr F
+GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2365,7 +2367,9 @@ GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
index bd9a4111f3..6eae7e9482 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
@@ -10,9 +10,7 @@ GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 699ddbb78d..08422b301d 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -2223,7 +2223,9 @@ GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
+GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_setattr F
+GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2321,7 +2323,9 @@ GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
index 161a731b3e..f61e3e7428 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
@@ -8,9 +8,7 @@ GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_receive F
GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 6e069e92a6..38f4c2105d 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -1369,7 +1369,9 @@ GLIBC_2.16 mq_close F
GLIBC_2.16 mq_getattr F
GLIBC_2.16 mq_notify F
GLIBC_2.16 mq_open F
+GLIBC_2.16 mq_receive F
GLIBC_2.16 mq_setattr F
+GLIBC_2.16 mq_timedreceive F
GLIBC_2.16 mrand48 F
GLIBC_2.16 mrand48_r F
GLIBC_2.16 mremap F
@@ -2425,7 +2427,9 @@ GLIBC_2.34 mq_close F
GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
index 643cd58e36..7e39929d27 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_receive F
GLIBC_2.16 mq_send F
-GLIBC_2.16 mq_timedreceive F
GLIBC_2.16 mq_timedsend F
GLIBC_2.16 mq_unlink F
GLIBC_2.16 timer_create F
--
2.31.1
^ permalink raw reply [flat|nested] 72+ messages in thread
* Re: [PATCH 25/34] Linux: Move mq_receive, mq_timedreceive, __mq_timedreceive_time64 to libc
2021-06-17 18:59 ` [PATCH 25/34] Linux: Move mq_receive, mq_timedreceive, __mq_timedreceive_time64 " Florian Weimer
@ 2021-06-24 14:14 ` Adhemerval Zanella
0 siblings, 0 replies; 72+ messages in thread
From: Adhemerval Zanella @ 2021-06-24 14:14 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 17/06/2021 15:59, Florian Weimer via Libc-alpha wrote:
> The symbols were moved using scripts/move-symbol-to-libc.py.
LGTM, thanks.
Reviewed-by: Adhemerva Zanella <adhemerval.zanella@linaro.org>
> ---
> include/mqueue.h | 12 ++++--
> rt/Makefile | 4 +-
> rt/Versions | 8 +++-
> sysdeps/unix/sysv/linux/Versions | 2 +-
> sysdeps/unix/sysv/linux/aarch64/libc.abilist | 4 ++
> sysdeps/unix/sysv/linux/aarch64/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/alpha/libc.abilist | 4 ++
> sysdeps/unix/sysv/linux/alpha/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/arc/libc.abilist | 4 ++
> sysdeps/unix/sysv/linux/arc/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/arm/be/libc.abilist | 5 +++
> sysdeps/unix/sysv/linux/arm/be/librt.abilist | 3 --
> sysdeps/unix/sysv/linux/arm/le/libc.abilist | 5 +++
> sysdeps/unix/sysv/linux/arm/le/librt.abilist | 3 --
> sysdeps/unix/sysv/linux/csky/libc.abilist | 5 +++
> sysdeps/unix/sysv/linux/csky/librt.abilist | 3 --
> sysdeps/unix/sysv/linux/hppa/libc.abilist | 5 +++
> sysdeps/unix/sysv/linux/hppa/librt.abilist | 3 --
> sysdeps/unix/sysv/linux/i386/libc.abilist | 5 +++
> sysdeps/unix/sysv/linux/i386/librt.abilist | 3 --
> sysdeps/unix/sysv/linux/ia64/libc.abilist | 4 ++
> sysdeps/unix/sysv/linux/ia64/librt.abilist | 2 -
> .../sysv/linux/m68k/coldfire/libc.abilist | 5 +++
> .../sysv/linux/m68k/coldfire/librt.abilist | 3 --
> .../unix/sysv/linux/m68k/m680x0/libc.abilist | 5 +++
> .../unix/sysv/linux/m68k/m680x0/librt.abilist | 3 --
> .../sysv/linux/microblaze/be/libc.abilist | 5 +++
> .../sysv/linux/microblaze/be/librt.abilist | 3 --
> .../sysv/linux/microblaze/le/libc.abilist | 5 +++
> .../sysv/linux/microblaze/le/librt.abilist | 3 --
> .../sysv/linux/mips/mips32/fpu/libc.abilist | 5 +++
> .../unix/sysv/linux/mips/mips32/librt.abilist | 3 --
> .../sysv/linux/mips/mips32/nofpu/libc.abilist | 5 +++
> .../sysv/linux/mips/mips64/n32/libc.abilist | 5 +++
> .../sysv/linux/mips/mips64/n32/librt.abilist | 3 --
> .../sysv/linux/mips/mips64/n64/libc.abilist | 4 ++
> .../sysv/linux/mips/mips64/n64/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/mq_receive.c | 9 ++++-
> sysdeps/unix/sysv/linux/mq_timedreceive.c | 38 ++++++++++++++-----
> sysdeps/unix/sysv/linux/nios2/libc.abilist | 5 +++
> sysdeps/unix/sysv/linux/nios2/librt.abilist | 3 --
> .../linux/powerpc/powerpc32/fpu/libc.abilist | 5 +++
> .../linux/powerpc/powerpc32/librt.abilist | 3 --
> .../powerpc/powerpc32/nofpu/libc.abilist | 5 +++
> .../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 | 5 +++
> .../sysv/linux/s390/s390-32/librt.abilist | 3 --
> .../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 | 5 +++
> sysdeps/unix/sysv/linux/sh/be/librt.abilist | 3 --
> sysdeps/unix/sysv/linux/sh/le/libc.abilist | 5 +++
> sysdeps/unix/sysv/linux/sh/le/librt.abilist | 3 --
> .../sysv/linux/sparc/sparc32/libc.abilist | 5 +++
> .../sysv/linux/sparc/sparc32/librt.abilist | 3 --
> .../sysv/linux/sparc/sparc64/libc.abilist | 4 ++
> .../sysv/linux/sparc/sparc64/librt.abilist | 2 -
> .../unix/sysv/linux/x86_64/64/libc.abilist | 4 ++
> .../unix/sysv/linux/x86_64/64/librt.abilist | 2 -
> .../unix/sysv/linux/x86_64/x32/libc.abilist | 4 ++
> .../unix/sysv/linux/x86_64/x32/librt.abilist | 2 -
> 68 files changed, 200 insertions(+), 97 deletions(-)
>
> diff --git a/include/mqueue.h b/include/mqueue.h
> index 2c40c1e3fc..8243a637d2 100644
> --- a/include/mqueue.h
> +++ b/include/mqueue.h
> @@ -1,20 +1,22 @@
> #include <rt/mqueue.h>
>
> #ifndef _ISOMAC
> +extern __typeof (mq_timedreceive) __mq_timedreceive __nonnull ((2, 5));
> +
> # if IS_IN (librt)
> hidden_proto (mq_timedsend)
> extern __typeof (mq_timedsend) __mq_timedsend __nonnull ((2, 5));
> hidden_proto (__mq_timedsend)
> -hidden_proto (mq_timedreceive)
> -extern __typeof (mq_timedreceive) __mq_timedreceive __nonnull ((2, 5));
> -hidden_proto (__mq_timedreceive)
> # if !PTHREAD_IN_LIBC
> hidden_proto (mq_setattr)
> +hidden_proto (mq_timedreceive)
> +hidden_proto (__mq_timedreceive)
> # endif
> # endif /* IS_IN (librt) */
>
> # if PTHREAD_IN_LIBC
> libc_hidden_proto (mq_setattr)
> +libc_hidden_proto (__mq_timedreceive)
>
> /* Called from fork so that the new subprocess re-creates the
> notification thread if necessary. */
> @@ -36,6 +38,10 @@ extern ssize_t __mq_timedreceive_time64 (mqd_t mqdes,
> unsigned int *__restrict msg_prio,
> const struct __timespec64 *__restrict
> abs_timeout);
> +# if PTHREAD_IN_LIBC
> +libc_hidden_proto (__mq_timedreceive_time64)
> +# else
> librt_hidden_proto (__mq_timedreceive_time64)
> +# endif
> #endif
> #endif
Ok.
> diff --git a/rt/Makefile b/rt/Makefile
> index f0b13b27ba..a3182ac459 100644
> --- a/rt/Makefile
> +++ b/rt/Makefile
> @@ -30,9 +30,7 @@ routines = \
>
> librt-routines = \
> librt-compat \
> - mq_receive \
> mq_send \
> - mq_timedreceive \
> mq_timedsend \
> mq_unlink \
> timer_create \
> @@ -62,7 +60,9 @@ $(librt-routines-var) += \
> mq_getattr \
> mq_notify \
> mq_open \
> + mq_receive \
> mq_setattr \
> + mq_timedreceive \
>
> tests := tst-shm tst-timer tst-timer2 \
> tst-aio tst-aio64 tst-aio2 tst-aio3 tst-aio4 tst-aio5 tst-aio6 \
Ok.
> diff --git a/rt/Versions b/rt/Versions
> index d28a7f6979..541106632e 100644
> --- a/rt/Versions
> +++ b/rt/Versions
> @@ -30,7 +30,9 @@ libc {
> mq_getattr;
> mq_notify;
> mq_open;
> + mq_receive;
> mq_setattr;
> + mq_timedreceive;
> %endif
> }
> GLIBC_2.4 {
> @@ -68,7 +70,9 @@ libc {
> mq_getattr;
> mq_notify;
> mq_open;
> + mq_receive;
> mq_setattr;
> + mq_timedreceive;
> %endif
> shm_open;
> shm_unlink;
> @@ -124,11 +128,11 @@ librt {
> mq_getattr;
> mq_notify;
> mq_open;
> + mq_receive;
> mq_setattr;
> + mq_timedreceive;
> %endif
> - mq_receive;
> mq_send;
> - mq_timedreceive;
> mq_timedsend;
> mq_unlink;
> }
Ok.
> diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions
> index f246a389e1..cce7c56652 100644
> --- a/sysdeps/unix/sysv/linux/Versions
> +++ b/sysdeps/unix/sysv/linux/Versions
> @@ -226,6 +226,7 @@ libc {
> __lstat64_time64;
> __lutimes64;
> __mktime64;
> + __mq_timedreceive_time64;
> __msgctl64;
> __mtx_timedlock64;
> __nanosleep64;
> @@ -296,7 +297,6 @@ librt {
> %ifdef TIME64_NON_DEFAULT
> # 64-bit time_t support
> __mq_timedsend_time64;
> - __mq_timedreceive_time64;
> __timer_gettime64;
> __timer_settime64;
> %endif
Ok.
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index 07f77027fc..cd9d4d91c5 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -1362,7 +1362,9 @@ GLIBC_2.17 mq_close F
> GLIBC_2.17 mq_getattr F
> GLIBC_2.17 mq_notify F
> GLIBC_2.17 mq_open F
> +GLIBC_2.17 mq_receive F
> GLIBC_2.17 mq_setattr F
> +GLIBC_2.17 mq_timedreceive F
> GLIBC_2.17 mrand48 F
> GLIBC_2.17 mrand48_r F
> GLIBC_2.17 mremap F
> @@ -2410,7 +2412,9 @@ GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> +GLIBC_2.34 mq_receive F
> GLIBC_2.34 mq_setattr F
> +GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> index 32327b9d62..1c3c05932e 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_receive F
> GLIBC_2.17 mq_send F
> -GLIBC_2.17 mq_timedreceive F
> GLIBC_2.17 mq_timedsend F
> GLIBC_2.17 mq_unlink F
> GLIBC_2.17 timer_create F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index 683b320ddc..7a894d983e 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -2396,7 +2396,9 @@ GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> +GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_setattr F
> +GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2504,7 +2506,9 @@ GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> +GLIBC_2.34 mq_receive F
> GLIBC_2.34 mq_setattr F
> +GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
> index bd9a4111f3..6eae7e9482 100644
> --- a/sysdeps/unix/sysv/linux/alpha/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist
> @@ -10,9 +10,7 @@ GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> -GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> -GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> GLIBC_2.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index 0d73e4cf7a..e3769a67f5 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -1293,7 +1293,9 @@ GLIBC_2.32 mq_close F
> GLIBC_2.32 mq_getattr F
> GLIBC_2.32 mq_notify F
> GLIBC_2.32 mq_open F
> +GLIBC_2.32 mq_receive F
> GLIBC_2.32 mq_setattr F
> +GLIBC_2.32 mq_timedreceive F
> GLIBC_2.32 mrand48 F
> GLIBC_2.32 mrand48_r F
> GLIBC_2.32 mremap F
> @@ -2169,7 +2171,9 @@ GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> +GLIBC_2.34 mq_receive F
> GLIBC_2.34 mq_setattr F
> +GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
> index 1ed03be8c1..7a861b1e76 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_receive F
> GLIBC_2.32 mq_send F
> -GLIBC_2.32 mq_timedreceive F
> GLIBC_2.32 mq_timedsend F
> GLIBC_2.32 mq_unlink F
> GLIBC_2.32 timer_create F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index 351bba9289..74ff1bc808 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -227,6 +227,7 @@ GLIBC_2.34 __lstat64_time64 F
> GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> GLIBC_2.34 __mq_open_2 F
> +GLIBC_2.34 __mq_timedreceive_time64 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -318,7 +319,9 @@ GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> +GLIBC_2.34 mq_receive F
> GLIBC_2.34 mq_setattr F
> +GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> @@ -1736,7 +1739,9 @@ GLIBC_2.4 mq_close F
> GLIBC_2.4 mq_getattr F
> GLIBC_2.4 mq_notify F
> GLIBC_2.4 mq_open F
> +GLIBC_2.4 mq_receive F
> GLIBC_2.4 mq_setattr F
> +GLIBC_2.4 mq_timedreceive F
> GLIBC_2.4 mrand48 F
> GLIBC_2.4 mrand48_r F
> GLIBC_2.4 mremap F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> index ecdfd60cdd..ea840d42d1 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> @@ -1,10 +1,7 @@
> -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 mq_receive F
> GLIBC_2.4 mq_send F
> -GLIBC_2.4 mq_timedreceive F
> GLIBC_2.4 mq_timedsend F
> GLIBC_2.4 mq_unlink F
> GLIBC_2.4 timer_create F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index 803e1a8bf9..04692b0d98 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -224,6 +224,7 @@ GLIBC_2.34 __lstat64_time64 F
> GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> GLIBC_2.34 __mq_open_2 F
> +GLIBC_2.34 __mq_timedreceive_time64 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -315,7 +316,9 @@ GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> +GLIBC_2.34 mq_receive F
> GLIBC_2.34 mq_setattr F
> +GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> @@ -1733,7 +1736,9 @@ GLIBC_2.4 mq_close F
> GLIBC_2.4 mq_getattr F
> GLIBC_2.4 mq_notify F
> GLIBC_2.4 mq_open F
> +GLIBC_2.4 mq_receive F
> GLIBC_2.4 mq_setattr F
> +GLIBC_2.4 mq_timedreceive F
> GLIBC_2.4 mrand48 F
> GLIBC_2.4 mrand48_r F
> GLIBC_2.4 mremap F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> index ecdfd60cdd..ea840d42d1 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> @@ -1,10 +1,7 @@
> -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 mq_receive F
> GLIBC_2.4 mq_send F
> -GLIBC_2.4 mq_timedreceive F
> GLIBC_2.4 mq_timedsend F
> GLIBC_2.4 mq_unlink F
> GLIBC_2.4 timer_create F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index 5a257c5f7f..e25f2637b6 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -1348,7 +1348,9 @@ GLIBC_2.29 mq_close F
> GLIBC_2.29 mq_getattr F
> GLIBC_2.29 mq_notify F
> GLIBC_2.29 mq_open F
> +GLIBC_2.29 mq_receive F
> GLIBC_2.29 mq_setattr F
> +GLIBC_2.29 mq_timedreceive F
> GLIBC_2.29 mrand48 F
> GLIBC_2.29 mrand48_r F
> GLIBC_2.29 mremap F
> @@ -2339,6 +2341,7 @@ GLIBC_2.34 __lstat64_time64 F
> GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> GLIBC_2.34 __mq_open_2 F
> +GLIBC_2.34 __mq_timedreceive_time64 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2430,7 +2433,9 @@ GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> +GLIBC_2.34 mq_receive F
> GLIBC_2.34 mq_setattr F
> +GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
> index 8e8822b999..dadd5b921b 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_receive F
> GLIBC_2.29 mq_send F
> -GLIBC_2.29 mq_timedreceive F
> GLIBC_2.29 mq_timedsend F
> GLIBC_2.29 mq_unlink F
> GLIBC_2.29 timer_create F
> @@ -8,7 +6,6 @@ GLIBC_2.29 timer_delete F
> GLIBC_2.29 timer_getoverrun F
> GLIBC_2.29 timer_gettime F
> GLIBC_2.29 timer_settime F
> -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
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index 1d859308d7..7ef275ce02 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -2210,7 +2210,9 @@ GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> +GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_setattr F
> +GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2292,6 +2294,7 @@ GLIBC_2.34 __lstat64_time64 F
> GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> GLIBC_2.34 __mq_open_2 F
> +GLIBC_2.34 __mq_timedreceive_time64 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2383,7 +2386,9 @@ GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> +GLIBC_2.34 mq_receive F
> GLIBC_2.34 mq_setattr F
> +GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
> index bb9c1f9659..9d26b1298c 100644
> --- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
> @@ -4,12 +4,9 @@ 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.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> -GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> -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
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index 9b4f57689b..a584865427 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -2391,7 +2391,9 @@ GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> +GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_setattr F
> +GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2476,6 +2478,7 @@ GLIBC_2.34 __lstat64_time64 F
> GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> GLIBC_2.34 __mq_open_2 F
> +GLIBC_2.34 __mq_timedreceive_time64 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2567,7 +2570,9 @@ GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> +GLIBC_2.34 mq_receive F
> GLIBC_2.34 mq_setattr F
> +GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
> index bb9c1f9659..9d26b1298c 100644
> --- a/sysdeps/unix/sysv/linux/i386/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
> @@ -4,12 +4,9 @@ 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.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> -GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> -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
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index 9575d82f33..6e22d91a7f 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -2245,7 +2245,9 @@ GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> +GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_setattr F
> +GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2342,7 +2344,9 @@ GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> +GLIBC_2.34 mq_receive F
> GLIBC_2.34 mq_setattr F
> +GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
> index 8ecf898b30..eb4a5080e2 100644
> --- a/sysdeps/unix/sysv/linux/ia64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/librt.abilist
> @@ -9,9 +9,7 @@ GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> -GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> -GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> GLIBC_2.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index 94903e9ff0..c6e168754f 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -228,6 +228,7 @@ GLIBC_2.34 __lstat64_time64 F
> GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> GLIBC_2.34 __mq_open_2 F
> +GLIBC_2.34 __mq_timedreceive_time64 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -319,7 +320,9 @@ GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> +GLIBC_2.34 mq_receive F
> GLIBC_2.34 mq_setattr F
> +GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> @@ -1720,7 +1723,9 @@ GLIBC_2.4 mq_close F
> GLIBC_2.4 mq_getattr F
> GLIBC_2.4 mq_notify F
> GLIBC_2.4 mq_open F
> +GLIBC_2.4 mq_receive F
> GLIBC_2.4 mq_setattr F
> +GLIBC_2.4 mq_timedreceive F
> GLIBC_2.4 mrand48 F
> GLIBC_2.4 mrand48_r F
> GLIBC_2.4 mremap F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> index ecdfd60cdd..ea840d42d1 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> @@ -1,10 +1,7 @@
> -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 mq_receive F
> GLIBC_2.4 mq_send F
> -GLIBC_2.4 mq_timedreceive F
> GLIBC_2.4 mq_timedsend F
> GLIBC_2.4 mq_unlink F
> GLIBC_2.4 timer_create F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index f2dddac46b..ba3a4ace7b 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -2334,7 +2334,9 @@ GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> +GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_setattr F
> +GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2419,6 +2421,7 @@ GLIBC_2.34 __lstat64_time64 F
> GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> GLIBC_2.34 __mq_open_2 F
> +GLIBC_2.34 __mq_timedreceive_time64 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2510,7 +2513,9 @@ GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> +GLIBC_2.34 mq_receive F
> GLIBC_2.34 mq_setattr F
> +GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> index bb9c1f9659..9d26b1298c 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> @@ -4,12 +4,9 @@ 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.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> -GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> -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
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index 3c8638ef87..1350543bce 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -1364,7 +1364,9 @@ GLIBC_2.18 mq_close F
> GLIBC_2.18 mq_getattr F
> GLIBC_2.18 mq_notify F
> GLIBC_2.18 mq_open F
> +GLIBC_2.18 mq_receive F
> GLIBC_2.18 mq_setattr F
> +GLIBC_2.18 mq_timedreceive F
> GLIBC_2.18 mrand48 F
> GLIBC_2.18 mrand48_r F
> GLIBC_2.18 mremap F
> @@ -2390,6 +2392,7 @@ GLIBC_2.34 __lstat64_time64 F
> GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> GLIBC_2.34 __mq_open_2 F
> +GLIBC_2.34 __mq_timedreceive_time64 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2481,7 +2484,9 @@ GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> +GLIBC_2.34 mq_receive F
> GLIBC_2.34 mq_setattr F
> +GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> index ce332a362d..8ddbc3a272 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_receive F
> GLIBC_2.18 mq_send F
> -GLIBC_2.18 mq_timedreceive F
> GLIBC_2.18 mq_timedsend F
> GLIBC_2.18 mq_unlink F
> GLIBC_2.18 timer_create F
> @@ -8,7 +6,6 @@ GLIBC_2.18 timer_delete F
> GLIBC_2.18 timer_getoverrun F
> GLIBC_2.18 timer_gettime F
> GLIBC_2.18 timer_settime F
> -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
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index 8eb98598cc..10151508d3 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -1364,7 +1364,9 @@ GLIBC_2.18 mq_close F
> GLIBC_2.18 mq_getattr F
> GLIBC_2.18 mq_notify F
> GLIBC_2.18 mq_open F
> +GLIBC_2.18 mq_receive F
> GLIBC_2.18 mq_setattr F
> +GLIBC_2.18 mq_timedreceive F
> GLIBC_2.18 mrand48 F
> GLIBC_2.18 mrand48_r F
> GLIBC_2.18 mremap F
> @@ -2387,6 +2389,7 @@ GLIBC_2.34 __lstat64_time64 F
> GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> GLIBC_2.34 __mq_open_2 F
> +GLIBC_2.34 __mq_timedreceive_time64 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2478,7 +2481,9 @@ GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> +GLIBC_2.34 mq_receive F
> GLIBC_2.34 mq_setattr F
> +GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> index ce332a362d..8ddbc3a272 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_receive F
> GLIBC_2.18 mq_send F
> -GLIBC_2.18 mq_timedreceive F
> GLIBC_2.18 mq_timedsend F
> GLIBC_2.18 mq_unlink F
> GLIBC_2.18 timer_create F
> @@ -8,7 +6,6 @@ GLIBC_2.18 timer_delete F
> GLIBC_2.18 timer_getoverrun F
> GLIBC_2.18 timer_gettime F
> GLIBC_2.18 timer_settime F
> -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
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index fd796ad952..e3ebc66ae0 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -2302,7 +2302,9 @@ GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> +GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_setattr F
> +GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2384,6 +2386,7 @@ GLIBC_2.34 __lstat64_time64 F
> GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> GLIBC_2.34 __mq_open_2 F
> +GLIBC_2.34 __mq_timedreceive_time64 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2475,7 +2478,9 @@ GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> +GLIBC_2.34 mq_receive F
> GLIBC_2.34 mq_setattr F
> +GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> index 84b5002e71..2cd12115d9 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> @@ -3,12 +3,9 @@ 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.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> -GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> -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
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index 6b9092d313..e8d041106d 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -2300,7 +2300,9 @@ GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> +GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_setattr F
> +GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2382,6 +2384,7 @@ GLIBC_2.34 __lstat64_time64 F
> GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> GLIBC_2.34 __mq_open_2 F
> +GLIBC_2.34 __mq_timedreceive_time64 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2473,7 +2476,9 @@ GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> +GLIBC_2.34 mq_receive F
> GLIBC_2.34 mq_setattr F
> +GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index 2be1e7d2dd..b596c529c4 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -2308,7 +2308,9 @@ GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> +GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_setattr F
> +GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2390,6 +2392,7 @@ GLIBC_2.34 __lstat64_time64 F
> GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> GLIBC_2.34 __mq_open_2 F
> +GLIBC_2.34 __mq_timedreceive_time64 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2481,7 +2484,9 @@ GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> +GLIBC_2.34 mq_receive F
> GLIBC_2.34 mq_setattr F
> +GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> index 84b5002e71..2cd12115d9 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> @@ -3,12 +3,9 @@ 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.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> -GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> -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
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index 9569c4d8e7..af99fdad9c 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -2302,7 +2302,9 @@ GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> +GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_setattr F
> +GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2398,7 +2400,9 @@ GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> +GLIBC_2.34 mq_receive F
> GLIBC_2.34 mq_setattr F
> +GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> index 8862820283..b5796aadb3 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> @@ -3,9 +3,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.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> -GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> GLIBC_2.4 __librt_version_placeholder F
Ok.
> diff --git a/sysdeps/unix/sysv/linux/mq_receive.c b/sysdeps/unix/sysv/linux/mq_receive.c
> index dd43d3a8e7..e9375a4cbc 100644
> --- a/sysdeps/unix/sysv/linux/mq_receive.c
> +++ b/sysdeps/unix/sysv/linux/mq_receive.c
> @@ -17,14 +17,19 @@
>
> #include <errno.h>
> #include <mqueue.h>
> +#include <shlib-compat.h>
> #include <stddef.h>
> #include <sysdep.h>
>
> /* Receive the oldest from highest priority messages in message queue
> MQDES. */
> ssize_t
> -mq_receive (mqd_t mqdes, char *msg_ptr, size_t msg_len,
> - unsigned int *msg_prio)
> +__mq_receive (mqd_t mqdes, char *msg_ptr, size_t msg_len,
> + unsigned int *msg_prio)
> {
> return __mq_timedreceive (mqdes, msg_ptr, msg_len, msg_prio, NULL);
> }
> +versioned_symbol (libc, __mq_receive, mq_receive, GLIBC_2_34);
> +#if OTHER_SHLIB_COMPAT (librt, GLIBC_2_3_4, GLIBC_2_34)
> +compat_symbol (librt, __mq_receive, mq_receive, GLIBC_2_3_4);
> +#endif
Ok.
> diff --git a/sysdeps/unix/sysv/linux/mq_timedreceive.c b/sysdeps/unix/sysv/linux/mq_timedreceive.c
> index eb948ccc18..14dcdde3e4 100644
> --- a/sysdeps/unix/sysv/linux/mq_timedreceive.c
> +++ b/sysdeps/unix/sysv/linux/mq_timedreceive.c
> @@ -18,11 +18,12 @@
>
> #include <mqueue.h>
> #include <sysdep-cancel.h>
> +#include <shlib-compat.h>
>
> /* Receive the oldest from highest priority messages in message queue
> MQDES, stop waiting if ABS_TIMEOUT expires. */
> ssize_t
> -__mq_timedreceive_time64 (mqd_t mqdes, char *__restrict msg_ptr, size_t msg_len,
> +___mq_timedreceive_time64 (mqd_t mqdes, char *__restrict msg_ptr, size_t msg_len,
> unsigned int *__restrict msg_prio,
> const struct __timespec64 *__restrict abs_timeout)
> {
> @@ -55,13 +56,25 @@ __mq_timedreceive_time64 (mqd_t mqdes, char *__restrict msg_ptr, size_t msg_len,
> return ret;
> }
>
> -#if __TIMESIZE != 64
> -librt_hidden_def (__mq_timedreceive_time64)
> +#if __TIMESIZE == 64
> +versioned_symbol (libc, ___mq_timedreceive_time64, mq_timedreceive, GLIBC_2_34);
> +libc_hidden_ver (___mq_timedreceive_time64, __mq_timedreceive)
> +# ifndef SHARED
> +strong_alias (___mq_timedreceive_time64, __mq_timedreceive)
> +# endif
> +# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_3_4, GLIBC_2_34)
> +compat_symbol (librt, ___mq_timedreceive_time64, mq_timedreceive, GLIBC_2_3_4);
> +# endif
> +
> +#else /* __TIMESIZE != 64 */
> +libc_hidden_ver (___mq_timedreceive_time64, __mq_timedreceive_time64)
> +versioned_symbol (libc, ___mq_timedreceive_time64, __mq_timedreceive_time64,
> + GLIBC_2_34);
>
> ssize_t
> -__mq_timedreceive (mqd_t mqdes, char *__restrict msg_ptr, size_t msg_len,
> - unsigned int *__restrict msg_prio,
> - const struct timespec *__restrict abs_timeout)
> +___mq_timedreceive (mqd_t mqdes, char *__restrict msg_ptr, size_t msg_len,
> + unsigned int *__restrict msg_prio,
> + const struct timespec *__restrict abs_timeout)
> {
> struct __timespec64 ts64;
> if (abs_timeout != NULL)
> @@ -70,8 +83,13 @@ __mq_timedreceive (mqd_t mqdes, char *__restrict msg_ptr, size_t msg_len,
> return __mq_timedreceive_time64 (mqdes, msg_ptr, msg_len, msg_prio,
> abs_timeout != NULL ? &ts64 : NULL);
> }
> -#endif
> +versioned_symbol (libc, ___mq_timedreceive, mq_timedreceive, GLIBC_2_34);
> +libc_hidden_ver (___mq_timedreceive, __mq_timedreceive)
> +# ifndef SHARED
> +strong_alias (___mq_timedreceive, __mq_timedreceive)
> +# endif
> +# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_3_4, GLIBC_2_34)
> +compat_symbol (librt, ___mq_timedreceive, mq_timedreceive, GLIBC_2_3_4);
> +# endif
>
> -hidden_def (__mq_timedreceive)
> -weak_alias (__mq_timedreceive, mq_timedreceive)
> -hidden_weak (mq_timedreceive)
> +#endif /* __TIMESIZE != 64 */
Ok.
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index e9ed0ba4f7..0c07cf2e80 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -1407,7 +1407,9 @@ GLIBC_2.21 mq_close F
> GLIBC_2.21 mq_getattr F
> GLIBC_2.21 mq_notify F
> GLIBC_2.21 mq_open F
> +GLIBC_2.21 mq_receive F
> GLIBC_2.21 mq_setattr F
> +GLIBC_2.21 mq_timedreceive F
> GLIBC_2.21 mrand48 F
> GLIBC_2.21 mrand48_r F
> GLIBC_2.21 mremap F
> @@ -2429,6 +2431,7 @@ GLIBC_2.34 __lstat64_time64 F
> GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> GLIBC_2.34 __mq_open_2 F
> +GLIBC_2.34 __mq_timedreceive_time64 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2520,7 +2523,9 @@ GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> +GLIBC_2.34 mq_receive F
> GLIBC_2.34 mq_setattr F
> +GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
> index 8139d54618..7ea7b0a8f3 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_receive F
> GLIBC_2.21 mq_send F
> -GLIBC_2.21 mq_timedreceive F
> GLIBC_2.21 mq_timedsend F
> GLIBC_2.21 mq_unlink F
> GLIBC_2.21 timer_create F
> @@ -8,7 +6,6 @@ GLIBC_2.21 timer_delete F
> GLIBC_2.21 timer_getoverrun F
> GLIBC_2.21 timer_gettime F
> GLIBC_2.21 timer_settime F
> -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
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index 4ca163edbf..4b3b448927 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -2348,7 +2348,9 @@ GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> +GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_setattr F
> +GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2446,6 +2448,7 @@ GLIBC_2.34 __lstat64_time64 F
> GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> GLIBC_2.34 __mq_open_2 F
> +GLIBC_2.34 __mq_timedreceive_time64 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2537,7 +2540,9 @@ GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> +GLIBC_2.34 mq_receive F
> GLIBC_2.34 mq_setattr F
> +GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> index bb9c1f9659..9d26b1298c 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> @@ -4,12 +4,9 @@ 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.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> -GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> -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
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index ad4c8c6eb2..b3b90b8136 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -2381,7 +2381,9 @@ GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> +GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_setattr F
> +GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2479,6 +2481,7 @@ GLIBC_2.34 __lstat64_time64 F
> GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> GLIBC_2.34 __mq_open_2 F
> +GLIBC_2.34 __mq_timedreceive_time64 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2570,7 +2573,9 @@ GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> +GLIBC_2.34 mq_receive F
> GLIBC_2.34 mq_setattr F
> +GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index dd3459a50a..1720d4da88 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -2194,7 +2194,9 @@ GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> +GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_setattr F
> +GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2306,7 +2308,9 @@ GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> +GLIBC_2.34 mq_receive F
> GLIBC_2.34 mq_setattr F
> +GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> index 11d78aed63..3968e8e7cb 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> @@ -8,9 +8,7 @@ GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> -GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> -GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> GLIBC_2.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index 10293edbdc..9a7d510295 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -1450,7 +1450,9 @@ GLIBC_2.17 mq_close F
> GLIBC_2.17 mq_getattr F
> GLIBC_2.17 mq_notify F
> GLIBC_2.17 mq_open F
> +GLIBC_2.17 mq_receive F
> GLIBC_2.17 mq_setattr F
> +GLIBC_2.17 mq_timedreceive F
> GLIBC_2.17 mrand48 F
> GLIBC_2.17 mrand48_r F
> GLIBC_2.17 mremap F
> @@ -2606,7 +2608,9 @@ GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> +GLIBC_2.34 mq_receive F
> GLIBC_2.34 mq_setattr F
> +GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> index 32327b9d62..1c3c05932e 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_receive F
> GLIBC_2.17 mq_send F
> -GLIBC_2.17 mq_timedreceive F
> GLIBC_2.17 mq_timedsend F
> GLIBC_2.17 mq_unlink F
> GLIBC_2.17 timer_create F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index eca2d49a2a..80fea20f51 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -1295,7 +1295,9 @@ GLIBC_2.33 mq_close F
> GLIBC_2.33 mq_getattr F
> GLIBC_2.33 mq_notify F
> GLIBC_2.33 mq_open F
> +GLIBC_2.33 mq_receive F
> GLIBC_2.33 mq_setattr F
> +GLIBC_2.33 mq_timedreceive F
> GLIBC_2.33 mrand48 F
> GLIBC_2.33 mrand48_r F
> GLIBC_2.33 mremap F
> @@ -2171,7 +2173,9 @@ GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> +GLIBC_2.34 mq_receive F
> GLIBC_2.34 mq_setattr F
> +GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> index 8d0013bd08..02e6e0d513 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_receive F
> GLIBC_2.33 mq_send F
> -GLIBC_2.33 mq_timedreceive F
> GLIBC_2.33 mq_timedsend F
> GLIBC_2.33 mq_unlink F
> GLIBC_2.33 timer_create F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index 46300e450e..b3ed38d911 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -1345,7 +1345,9 @@ GLIBC_2.27 mq_close F
> GLIBC_2.27 mq_getattr F
> GLIBC_2.27 mq_notify F
> GLIBC_2.27 mq_open F
> +GLIBC_2.27 mq_receive F
> GLIBC_2.27 mq_setattr F
> +GLIBC_2.27 mq_timedreceive F
> GLIBC_2.27 mrand48 F
> GLIBC_2.27 mrand48_r F
> GLIBC_2.27 mremap F
> @@ -2371,7 +2373,9 @@ GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> +GLIBC_2.34 mq_receive F
> GLIBC_2.34 mq_setattr F
> +GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> index 19f0d73de7..7cd66b1ff6 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_receive F
> GLIBC_2.27 mq_send F
> -GLIBC_2.27 mq_timedreceive F
> GLIBC_2.27 mq_timedsend F
> GLIBC_2.27 mq_unlink F
> GLIBC_2.27 timer_create F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index b80a760c40..d9e415fa6d 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -2347,7 +2347,9 @@ GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> +GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_setattr F
> +GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2444,6 +2446,7 @@ GLIBC_2.34 __lstat64_time64 F
> GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> GLIBC_2.34 __mq_open_2 F
> +GLIBC_2.34 __mq_timedreceive_time64 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2535,7 +2538,9 @@ GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> +GLIBC_2.34 mq_receive F
> GLIBC_2.34 mq_setattr F
> +GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> index bb9c1f9659..9d26b1298c 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> @@ -4,12 +4,9 @@ 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.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> -GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> -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
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index 093f116bc6..dec539716c 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -2235,7 +2235,9 @@ GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> +GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_setattr F
> +GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2343,7 +2345,9 @@ GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> +GLIBC_2.34 mq_receive F
> GLIBC_2.34 mq_setattr F
> +GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> index c6cf36504c..acaafa5f29 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> @@ -8,9 +8,7 @@ GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> -GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> -GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> GLIBC_2.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index 63ac43ca18..ddc4e08f79 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -2214,7 +2214,9 @@ GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> +GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_setattr F
> +GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2299,6 +2301,7 @@ GLIBC_2.34 __lstat64_time64 F
> GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> GLIBC_2.34 __mq_open_2 F
> +GLIBC_2.34 __mq_timedreceive_time64 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2390,7 +2393,9 @@ GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> +GLIBC_2.34 mq_receive F
> GLIBC_2.34 mq_setattr F
> +GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> index bb9c1f9659..9d26b1298c 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> @@ -4,12 +4,9 @@ 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.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> -GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> -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
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index 483e612001..553574f741 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -2214,7 +2214,9 @@ GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> +GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_setattr F
> +GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2296,6 +2298,7 @@ GLIBC_2.34 __lstat64_time64 F
> GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> GLIBC_2.34 __mq_open_2 F
> +GLIBC_2.34 __mq_timedreceive_time64 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2387,7 +2390,9 @@ GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> +GLIBC_2.34 mq_receive F
> GLIBC_2.34 mq_setattr F
> +GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> index bb9c1f9659..9d26b1298c 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> @@ -4,12 +4,9 @@ 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.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> -GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> -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
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index 9679915508..3e68e78ca2 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -2345,7 +2345,9 @@ GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> +GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_setattr F
> +GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2439,6 +2441,7 @@ GLIBC_2.34 __lstat64_time64 F
> GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> GLIBC_2.34 __mq_open_2 F
> +GLIBC_2.34 __mq_timedreceive_time64 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2530,7 +2533,9 @@ GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> +GLIBC_2.34 mq_receive F
> GLIBC_2.34 mq_setattr F
> +GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> index 3d08073063..ca31f9805a 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> @@ -5,12 +5,9 @@ GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> GLIBC_2.3 __librt_version_placeholder F
> -GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> -GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> -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
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index 59d1d2beef..5d21d25fb9 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -2269,7 +2269,9 @@ GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> +GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_setattr F
> +GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2365,7 +2367,9 @@ GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> +GLIBC_2.34 mq_receive F
> GLIBC_2.34 mq_setattr F
> +GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> index bd9a4111f3..6eae7e9482 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> @@ -10,9 +10,7 @@ GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> -GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> -GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> GLIBC_2.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index 699ddbb78d..08422b301d 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -2223,7 +2223,9 @@ GLIBC_2.3.4 mq_close F
> GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> +GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_setattr F
> +GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2321,7 +2323,9 @@ GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> +GLIBC_2.34 mq_receive F
> GLIBC_2.34 mq_setattr F
> +GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> index 161a731b3e..f61e3e7428 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> @@ -8,9 +8,7 @@ GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> -GLIBC_2.3.4 mq_receive F
> GLIBC_2.3.4 mq_send F
> -GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> GLIBC_2.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index 6e069e92a6..38f4c2105d 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -1369,7 +1369,9 @@ GLIBC_2.16 mq_close F
> GLIBC_2.16 mq_getattr F
> GLIBC_2.16 mq_notify F
> GLIBC_2.16 mq_open F
> +GLIBC_2.16 mq_receive F
> GLIBC_2.16 mq_setattr F
> +GLIBC_2.16 mq_timedreceive F
> GLIBC_2.16 mrand48 F
> GLIBC_2.16 mrand48_r F
> GLIBC_2.16 mremap F
> @@ -2425,7 +2427,9 @@ GLIBC_2.34 mq_close F
> GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> +GLIBC_2.34 mq_receive F
> GLIBC_2.34 mq_setattr F
> +GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> index 643cd58e36..7e39929d27 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_receive F
> GLIBC_2.16 mq_send F
> -GLIBC_2.16 mq_timedreceive F
> GLIBC_2.16 mq_timedsend F
> GLIBC_2.16 mq_unlink F
> GLIBC_2.16 timer_create F
>
Ok.
^ permalink raw reply [flat|nested] 72+ messages in thread
* [PATCH 26/34] Linux: Move mq_send, mq_timedsend, __mq_timedsend_time64 to libc
2021-06-17 18:56 [PATCH v2 00/34] Move librt into libc Florian Weimer
` (24 preceding siblings ...)
2021-06-17 18:59 ` [PATCH 25/34] Linux: Move mq_receive, mq_timedreceive, __mq_timedreceive_time64 " Florian Weimer
@ 2021-06-17 18:59 ` Florian Weimer
2021-06-24 14:22 ` Adhemerval Zanella
2021-06-17 18:59 ` [PATCH 27/34] Linux: Move mq_unlink from librt " Florian Weimer
` (8 subsequent siblings)
34 siblings, 1 reply; 72+ messages in thread
From: Florian Weimer @ 2021-06-17 18:59 UTC (permalink / raw)
To: libc-alpha
The symbols were moved using scripts/move-symbol-to-libc.py.
---
include/mqueue.h | 12 +++---
rt/Makefile | 4 +-
rt/Versions | 8 +++-
sysdeps/unix/sysv/linux/Versions | 2 +-
sysdeps/unix/sysv/linux/aarch64/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/aarch64/librt.abilist | 2 -
sysdeps/unix/sysv/linux/alpha/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/alpha/librt.abilist | 2 -
sysdeps/unix/sysv/linux/arc/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/arc/librt.abilist | 2 -
sysdeps/unix/sysv/linux/arm/be/libc.abilist | 5 +++
sysdeps/unix/sysv/linux/arm/be/librt.abilist | 3 --
sysdeps/unix/sysv/linux/arm/le/libc.abilist | 5 +++
sysdeps/unix/sysv/linux/arm/le/librt.abilist | 3 --
sysdeps/unix/sysv/linux/csky/libc.abilist | 5 +++
sysdeps/unix/sysv/linux/csky/librt.abilist | 3 --
sysdeps/unix/sysv/linux/hppa/libc.abilist | 5 +++
sysdeps/unix/sysv/linux/hppa/librt.abilist | 3 --
sysdeps/unix/sysv/linux/i386/libc.abilist | 5 +++
sysdeps/unix/sysv/linux/i386/librt.abilist | 3 --
sysdeps/unix/sysv/linux/ia64/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/ia64/librt.abilist | 2 -
.../sysv/linux/m68k/coldfire/libc.abilist | 5 +++
.../sysv/linux/m68k/coldfire/librt.abilist | 3 --
.../unix/sysv/linux/m68k/m680x0/libc.abilist | 5 +++
.../unix/sysv/linux/m68k/m680x0/librt.abilist | 3 --
.../sysv/linux/microblaze/be/libc.abilist | 5 +++
.../sysv/linux/microblaze/be/librt.abilist | 3 --
.../sysv/linux/microblaze/le/libc.abilist | 5 +++
.../sysv/linux/microblaze/le/librt.abilist | 3 --
.../sysv/linux/mips/mips32/fpu/libc.abilist | 5 +++
.../unix/sysv/linux/mips/mips32/librt.abilist | 3 --
.../sysv/linux/mips/mips32/nofpu/libc.abilist | 5 +++
.../sysv/linux/mips/mips64/n32/libc.abilist | 5 +++
.../sysv/linux/mips/mips64/n32/librt.abilist | 3 --
.../sysv/linux/mips/mips64/n64/libc.abilist | 4 ++
.../sysv/linux/mips/mips64/n64/librt.abilist | 2 -
sysdeps/unix/sysv/linux/mq_send.c | 7 +++-
sysdeps/unix/sysv/linux/mq_timedsend.c | 38 ++++++++++++++-----
sysdeps/unix/sysv/linux/nios2/libc.abilist | 5 +++
sysdeps/unix/sysv/linux/nios2/librt.abilist | 3 --
.../linux/powerpc/powerpc32/fpu/libc.abilist | 5 +++
.../linux/powerpc/powerpc32/librt.abilist | 3 --
.../powerpc/powerpc32/nofpu/libc.abilist | 5 +++
.../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 | 5 +++
.../sysv/linux/s390/s390-32/librt.abilist | 3 --
.../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 | 5 +++
sysdeps/unix/sysv/linux/sh/be/librt.abilist | 3 --
sysdeps/unix/sysv/linux/sh/le/libc.abilist | 5 +++
sysdeps/unix/sysv/linux/sh/le/librt.abilist | 3 --
.../sysv/linux/sparc/sparc32/libc.abilist | 5 +++
.../sysv/linux/sparc/sparc32/librt.abilist | 3 --
.../sysv/linux/sparc/sparc64/libc.abilist | 4 ++
.../sysv/linux/sparc/sparc64/librt.abilist | 2 -
.../unix/sysv/linux/x86_64/64/libc.abilist | 4 ++
.../unix/sysv/linux/x86_64/64/librt.abilist | 2 -
.../unix/sysv/linux/x86_64/x32/libc.abilist | 4 ++
.../unix/sysv/linux/x86_64/x32/librt.abilist | 2 -
68 files changed, 196 insertions(+), 99 deletions(-)
diff --git a/include/mqueue.h b/include/mqueue.h
index 8243a637d2..7a2459e603 100644
--- a/include/mqueue.h
+++ b/include/mqueue.h
@@ -2,21 +2,20 @@
#ifndef _ISOMAC
extern __typeof (mq_timedreceive) __mq_timedreceive __nonnull ((2, 5));
+extern __typeof (mq_timedsend) __mq_timedsend __nonnull ((2, 5));
-# if IS_IN (librt)
+# if IS_IN (librt) && !PTHREAD_IN_LIBC
hidden_proto (mq_timedsend)
-extern __typeof (mq_timedsend) __mq_timedsend __nonnull ((2, 5));
hidden_proto (__mq_timedsend)
-# if !PTHREAD_IN_LIBC
hidden_proto (mq_setattr)
hidden_proto (mq_timedreceive)
hidden_proto (__mq_timedreceive)
-# endif
-# endif /* IS_IN (librt) */
+# endif
# if PTHREAD_IN_LIBC
libc_hidden_proto (mq_setattr)
libc_hidden_proto (__mq_timedreceive)
+libc_hidden_proto (__mq_timedsend)
/* Called from fork so that the new subprocess re-creates the
notification thread if necessary. */
@@ -31,7 +30,6 @@ void __mq_notify_fork_subprocess (void) attribute_hidden;
extern int __mq_timedsend_time64 (mqd_t mqdes, const char *msg_ptr,
size_t msg_len, unsigned int msg_prio,
const struct __timespec64 *abs_timeout);
-librt_hidden_proto (__mq_timedsend_time64)
extern ssize_t __mq_timedreceive_time64 (mqd_t mqdes,
char *__restrict msg_ptr,
size_t msg_len,
@@ -40,8 +38,10 @@ extern ssize_t __mq_timedreceive_time64 (mqd_t mqdes,
abs_timeout);
# if PTHREAD_IN_LIBC
libc_hidden_proto (__mq_timedreceive_time64)
+libc_hidden_proto (__mq_timedsend_time64)
# else
librt_hidden_proto (__mq_timedreceive_time64)
+librt_hidden_proto (__mq_timedsend_time64)
# endif
#endif
#endif
diff --git a/rt/Makefile b/rt/Makefile
index a3182ac459..cea1189f4d 100644
--- a/rt/Makefile
+++ b/rt/Makefile
@@ -30,8 +30,6 @@ routines = \
librt-routines = \
librt-compat \
- mq_send \
- mq_timedsend \
mq_unlink \
timer_create \
timer_delete \
@@ -61,8 +59,10 @@ $(librt-routines-var) += \
mq_notify \
mq_open \
mq_receive \
+ mq_send \
mq_setattr \
mq_timedreceive \
+ mq_timedsend \
tests := tst-shm tst-timer tst-timer2 \
tst-aio tst-aio64 tst-aio2 tst-aio3 tst-aio4 tst-aio5 tst-aio6 \
diff --git a/rt/Versions b/rt/Versions
index 541106632e..3363ccb526 100644
--- a/rt/Versions
+++ b/rt/Versions
@@ -31,8 +31,10 @@ libc {
mq_notify;
mq_open;
mq_receive;
+ mq_send;
mq_setattr;
mq_timedreceive;
+ mq_timedsend;
%endif
}
GLIBC_2.4 {
@@ -71,8 +73,10 @@ libc {
mq_notify;
mq_open;
mq_receive;
+ mq_send;
mq_setattr;
mq_timedreceive;
+ mq_timedsend;
%endif
shm_open;
shm_unlink;
@@ -129,11 +133,11 @@ librt {
mq_notify;
mq_open;
mq_receive;
+ mq_send;
mq_setattr;
mq_timedreceive;
-%endif
- mq_send;
mq_timedsend;
+%endif
mq_unlink;
}
GLIBC_2.4 {
diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions
index cce7c56652..051ecf9390 100644
--- a/sysdeps/unix/sysv/linux/Versions
+++ b/sysdeps/unix/sysv/linux/Versions
@@ -227,6 +227,7 @@ libc {
__lutimes64;
__mktime64;
__mq_timedreceive_time64;
+ __mq_timedsend_time64;
__msgctl64;
__mtx_timedlock64;
__nanosleep64;
@@ -296,7 +297,6 @@ librt {
GLIBC_2.34 {
%ifdef TIME64_NON_DEFAULT
# 64-bit time_t support
- __mq_timedsend_time64;
__timer_gettime64;
__timer_settime64;
%endif
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index cd9d4d91c5..b4edd23bc8 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -1363,8 +1363,10 @@ GLIBC_2.17 mq_getattr F
GLIBC_2.17 mq_notify F
GLIBC_2.17 mq_open F
GLIBC_2.17 mq_receive F
+GLIBC_2.17 mq_send F
GLIBC_2.17 mq_setattr F
GLIBC_2.17 mq_timedreceive F
+GLIBC_2.17 mq_timedsend F
GLIBC_2.17 mrand48 F
GLIBC_2.17 mrand48_r F
GLIBC_2.17 mremap F
@@ -2413,8 +2415,10 @@ GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
GLIBC_2.34 mq_receive F
+GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
+GLIBC_2.34 mq_timedsend F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
index 1c3c05932e..4f4c72f3cc 100644
--- a/sysdeps/unix/sysv/linux/aarch64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.17 mq_send F
-GLIBC_2.17 mq_timedsend F
GLIBC_2.17 mq_unlink F
GLIBC_2.17 timer_create F
GLIBC_2.17 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 7a894d983e..c2fd6ec79e 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -2397,8 +2397,10 @@ GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
+GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
+GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2507,8 +2509,10 @@ GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
GLIBC_2.34 mq_receive F
+GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
+GLIBC_2.34 mq_timedsend F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
index 6eae7e9482..3156616c8b 100644
--- a/sysdeps/unix/sysv/linux/alpha/librt.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist
@@ -10,8 +10,6 @@ GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index e3769a67f5..c36d673f3e 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1294,8 +1294,10 @@ GLIBC_2.32 mq_getattr F
GLIBC_2.32 mq_notify F
GLIBC_2.32 mq_open F
GLIBC_2.32 mq_receive F
+GLIBC_2.32 mq_send F
GLIBC_2.32 mq_setattr F
GLIBC_2.32 mq_timedreceive F
+GLIBC_2.32 mq_timedsend F
GLIBC_2.32 mrand48 F
GLIBC_2.32 mrand48_r F
GLIBC_2.32 mremap F
@@ -2172,8 +2174,10 @@ GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
GLIBC_2.34 mq_receive F
+GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
+GLIBC_2.34 mq_timedsend F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
index 7a861b1e76..c69ae6e40b 100644
--- a/sysdeps/unix/sysv/linux/arc/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arc/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.32 mq_send F
-GLIBC_2.32 mq_timedsend F
GLIBC_2.32 mq_unlink F
GLIBC_2.32 timer_create F
GLIBC_2.32 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 74ff1bc808..b44d7f5d23 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -228,6 +228,7 @@ GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __mq_timedreceive_time64 F
+GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -320,8 +321,10 @@ GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
GLIBC_2.34 mq_receive F
+GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
+GLIBC_2.34 mq_timedsend F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
@@ -1740,8 +1743,10 @@ GLIBC_2.4 mq_getattr F
GLIBC_2.4 mq_notify F
GLIBC_2.4 mq_open F
GLIBC_2.4 mq_receive F
+GLIBC_2.4 mq_send F
GLIBC_2.4 mq_setattr F
GLIBC_2.4 mq_timedreceive F
+GLIBC_2.4 mq_timedsend F
GLIBC_2.4 mrand48 F
GLIBC_2.4 mrand48_r F
GLIBC_2.4 mremap F
diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
index ea840d42d1..00fffc9bf4 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -1,8 +1,5 @@
-GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
-GLIBC_2.4 mq_send F
-GLIBC_2.4 mq_timedsend F
GLIBC_2.4 mq_unlink F
GLIBC_2.4 timer_create F
GLIBC_2.4 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 04692b0d98..4335ee8c5b 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -225,6 +225,7 @@ GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __mq_timedreceive_time64 F
+GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -317,8 +318,10 @@ GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
GLIBC_2.34 mq_receive F
+GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
+GLIBC_2.34 mq_timedsend F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
@@ -1737,8 +1740,10 @@ GLIBC_2.4 mq_getattr F
GLIBC_2.4 mq_notify F
GLIBC_2.4 mq_open F
GLIBC_2.4 mq_receive F
+GLIBC_2.4 mq_send F
GLIBC_2.4 mq_setattr F
GLIBC_2.4 mq_timedreceive F
+GLIBC_2.4 mq_timedsend F
GLIBC_2.4 mrand48 F
GLIBC_2.4 mrand48_r F
GLIBC_2.4 mremap F
diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
index ea840d42d1..00fffc9bf4 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -1,8 +1,5 @@
-GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
-GLIBC_2.4 mq_send F
-GLIBC_2.4 mq_timedsend F
GLIBC_2.4 mq_unlink F
GLIBC_2.4 timer_create F
GLIBC_2.4 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index e25f2637b6..11f34272fa 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -1349,8 +1349,10 @@ GLIBC_2.29 mq_getattr F
GLIBC_2.29 mq_notify F
GLIBC_2.29 mq_open F
GLIBC_2.29 mq_receive F
+GLIBC_2.29 mq_send F
GLIBC_2.29 mq_setattr F
GLIBC_2.29 mq_timedreceive F
+GLIBC_2.29 mq_timedsend F
GLIBC_2.29 mrand48 F
GLIBC_2.29 mrand48_r F
GLIBC_2.29 mremap F
@@ -2342,6 +2344,7 @@ GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __mq_timedreceive_time64 F
+GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2434,8 +2437,10 @@ GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
GLIBC_2.34 mq_receive F
+GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
+GLIBC_2.34 mq_timedsend F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
index dadd5b921b..81964809e8 100644
--- a/sysdeps/unix/sysv/linux/csky/librt.abilist
+++ b/sysdeps/unix/sysv/linux/csky/librt.abilist
@@ -1,11 +1,8 @@
-GLIBC_2.29 mq_send F
-GLIBC_2.29 mq_timedsend F
GLIBC_2.29 mq_unlink F
GLIBC_2.29 timer_create F
GLIBC_2.29 timer_delete F
GLIBC_2.29 timer_getoverrun F
GLIBC_2.29 timer_gettime F
GLIBC_2.29 timer_settime F
-GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 7ef275ce02..d2337afa48 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -2211,8 +2211,10 @@ GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
+GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
+GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2295,6 +2297,7 @@ GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __mq_timedreceive_time64 F
+GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2387,8 +2390,10 @@ GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
GLIBC_2.34 mq_receive F
+GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
+GLIBC_2.34 mq_timedsend F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
index 9d26b1298c..d697cfa27d 100644
--- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
@@ -4,10 +4,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.4 mq_send F
-GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
-GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index a584865427..ae326a36f4 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -2392,8 +2392,10 @@ GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
+GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
+GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2479,6 +2481,7 @@ GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __mq_timedreceive_time64 F
+GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2571,8 +2574,10 @@ GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
GLIBC_2.34 mq_receive F
+GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
+GLIBC_2.34 mq_timedsend F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
index 9d26b1298c..d697cfa27d 100644
--- a/sysdeps/unix/sysv/linux/i386/librt.abilist
+++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
@@ -4,10 +4,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.4 mq_send F
-GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
-GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 6e22d91a7f..ad7b86ca8e 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -2246,8 +2246,10 @@ GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
+GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
+GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2345,8 +2347,10 @@ GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
GLIBC_2.34 mq_receive F
+GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
+GLIBC_2.34 mq_timedsend F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
index eb4a5080e2..6c8eb08863 100644
--- a/sysdeps/unix/sysv/linux/ia64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/librt.abilist
@@ -9,8 +9,6 @@ GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index c6e168754f..e0106e57e3 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -229,6 +229,7 @@ GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __mq_timedreceive_time64 F
+GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -321,8 +322,10 @@ GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
GLIBC_2.34 mq_receive F
+GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
+GLIBC_2.34 mq_timedsend F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
@@ -1724,8 +1727,10 @@ GLIBC_2.4 mq_getattr F
GLIBC_2.4 mq_notify F
GLIBC_2.4 mq_open F
GLIBC_2.4 mq_receive F
+GLIBC_2.4 mq_send F
GLIBC_2.4 mq_setattr F
GLIBC_2.4 mq_timedreceive F
+GLIBC_2.4 mq_timedsend F
GLIBC_2.4 mrand48 F
GLIBC_2.4 mrand48_r F
GLIBC_2.4 mremap F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
index ea840d42d1..00fffc9bf4 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -1,8 +1,5 @@
-GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
-GLIBC_2.4 mq_send F
-GLIBC_2.4 mq_timedsend F
GLIBC_2.4 mq_unlink F
GLIBC_2.4 timer_create F
GLIBC_2.4 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index ba3a4ace7b..833105c87e 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2335,8 +2335,10 @@ GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
+GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
+GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2422,6 +2424,7 @@ GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __mq_timedreceive_time64 F
+GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2514,8 +2517,10 @@ GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
GLIBC_2.34 mq_receive F
+GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
+GLIBC_2.34 mq_timedsend F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
index 9d26b1298c..d697cfa27d 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
@@ -4,10 +4,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.4 mq_send F
-GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
-GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 1350543bce..168143b004 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -1365,8 +1365,10 @@ GLIBC_2.18 mq_getattr F
GLIBC_2.18 mq_notify F
GLIBC_2.18 mq_open F
GLIBC_2.18 mq_receive F
+GLIBC_2.18 mq_send F
GLIBC_2.18 mq_setattr F
GLIBC_2.18 mq_timedreceive F
+GLIBC_2.18 mq_timedsend F
GLIBC_2.18 mrand48 F
GLIBC_2.18 mrand48_r F
GLIBC_2.18 mremap F
@@ -2393,6 +2395,7 @@ GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __mq_timedreceive_time64 F
+GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2485,8 +2488,10 @@ GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
GLIBC_2.34 mq_receive F
+GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
+GLIBC_2.34 mq_timedsend F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
index 8ddbc3a272..d0b5c08211 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
@@ -1,11 +1,8 @@
-GLIBC_2.18 mq_send F
-GLIBC_2.18 mq_timedsend F
GLIBC_2.18 mq_unlink F
GLIBC_2.18 timer_create F
GLIBC_2.18 timer_delete F
GLIBC_2.18 timer_getoverrun F
GLIBC_2.18 timer_gettime F
GLIBC_2.18 timer_settime F
-GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 10151508d3..478c35898d 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -1365,8 +1365,10 @@ GLIBC_2.18 mq_getattr F
GLIBC_2.18 mq_notify F
GLIBC_2.18 mq_open F
GLIBC_2.18 mq_receive F
+GLIBC_2.18 mq_send F
GLIBC_2.18 mq_setattr F
GLIBC_2.18 mq_timedreceive F
+GLIBC_2.18 mq_timedsend F
GLIBC_2.18 mrand48 F
GLIBC_2.18 mrand48_r F
GLIBC_2.18 mremap F
@@ -2390,6 +2392,7 @@ GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __mq_timedreceive_time64 F
+GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2482,8 +2485,10 @@ GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
GLIBC_2.34 mq_receive F
+GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
+GLIBC_2.34 mq_timedsend F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
index 8ddbc3a272..d0b5c08211 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
@@ -1,11 +1,8 @@
-GLIBC_2.18 mq_send F
-GLIBC_2.18 mq_timedsend F
GLIBC_2.18 mq_unlink F
GLIBC_2.18 timer_create F
GLIBC_2.18 timer_delete F
GLIBC_2.18 timer_getoverrun F
GLIBC_2.18 timer_gettime F
GLIBC_2.18 timer_settime F
-GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index e3ebc66ae0..4d2c5e7fff 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -2303,8 +2303,10 @@ GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
+GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
+GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2387,6 +2389,7 @@ GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __mq_timedreceive_time64 F
+GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2479,8 +2482,10 @@ GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
GLIBC_2.34 mq_receive F
+GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
+GLIBC_2.34 mq_timedsend F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
index 2cd12115d9..c2dcd8a037 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
@@ -3,10 +3,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.4 mq_send F
-GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
-GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index e8d041106d..729413e091 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -2301,8 +2301,10 @@ GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
+GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
+GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2385,6 +2387,7 @@ GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __mq_timedreceive_time64 F
+GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2477,8 +2480,10 @@ GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
GLIBC_2.34 mq_receive F
+GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
+GLIBC_2.34 mq_timedsend F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index b596c529c4..cc82aa817c 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -2309,8 +2309,10 @@ GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
+GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
+GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2393,6 +2395,7 @@ GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __mq_timedreceive_time64 F
+GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2485,8 +2488,10 @@ GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
GLIBC_2.34 mq_receive F
+GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
+GLIBC_2.34 mq_timedsend F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
index 2cd12115d9..c2dcd8a037 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
@@ -3,10 +3,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.4 mq_send F
-GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
-GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index af99fdad9c..746072a535 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -2303,8 +2303,10 @@ GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
+GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
+GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2401,8 +2403,10 @@ GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
GLIBC_2.34 mq_receive F
+GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
+GLIBC_2.34 mq_timedsend F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
index b5796aadb3..1daa0ecaef 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
@@ -3,8 +3,6 @@ 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.4 mq_send F
-GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mq_send.c b/sysdeps/unix/sysv/linux/mq_send.c
index 7744a83fab..45944548b0 100644
--- a/sysdeps/unix/sysv/linux/mq_send.c
+++ b/sysdeps/unix/sysv/linux/mq_send.c
@@ -17,13 +17,18 @@
#include <errno.h>
#include <mqueue.h>
+#include <shlib-compat.h>
#include <stddef.h>
#include <sysdep.h>
/* Add message pointed by MSG_PTR to message queue MQDES. */
int
-mq_send (mqd_t mqdes, const char *msg_ptr, size_t msg_len,
+__mq_send (mqd_t mqdes, const char *msg_ptr, size_t msg_len,
unsigned int msg_prio)
{
return __mq_timedsend (mqdes, msg_ptr, msg_len, msg_prio, NULL);
}
+versioned_symbol (libc, __mq_send, mq_send, GLIBC_2_34);
+#if OTHER_SHLIB_COMPAT (librt, GLIBC_2_3_4, GLIBC_2_34)
+compat_symbol (librt, __mq_send, mq_send, GLIBC_2_3_4);
+#endif
diff --git a/sysdeps/unix/sysv/linux/mq_timedsend.c b/sysdeps/unix/sysv/linux/mq_timedsend.c
index 5f14ecb0bf..97b2d123a8 100644
--- a/sysdeps/unix/sysv/linux/mq_timedsend.c
+++ b/sysdeps/unix/sysv/linux/mq_timedsend.c
@@ -18,13 +18,14 @@
#include <mqueue.h>
#include <sysdep-cancel.h>
+#include <shlib-compat.h>
/* Add message pointed by MSG_PTR to message queue MQDES, stop blocking
on full message queue if ABS_TIMEOUT expires. */
int
-__mq_timedsend_time64 (mqd_t mqdes, const char *msg_ptr, size_t msg_len,
- unsigned int msg_prio,
- const struct __timespec64 *abs_timeout)
+___mq_timedsend_time64 (mqd_t mqdes, const char *msg_ptr, size_t msg_len,
+ unsigned int msg_prio,
+ const struct __timespec64 *abs_timeout)
{
# ifndef __NR_mq_timedsend_time64
# define __NR_mq_timedsend_time64 __NR_mq_timedsend
@@ -55,11 +56,23 @@ __mq_timedsend_time64 (mqd_t mqdes, const char *msg_ptr, size_t msg_len,
return ret;
}
-#if __TIMESIZE != 64
-librt_hidden_def (__mq_timedsend_time64)
+#if __TIMESIZE == 64
+versioned_symbol (libc, ___mq_timedsend_time64, mq_timedsend, GLIBC_2_34);
+libc_hidden_ver (___mq_timedsend_time64, __mq_timedsend)
+# ifndef SHARED
+strong_alias (___mq_timedsend_time64, __mq_timedsend)
+# endif
+# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_3_4, GLIBC_2_34)
+compat_symbol (librt, ___mq_timedsend_time64, mq_timedsend, GLIBC_2_3_4);
+# endif
+
+#else /* __TIMESIZE != 64 */
+libc_hidden_ver (___mq_timedsend_time64, __mq_timedsend_time64)
+versioned_symbol (libc, ___mq_timedsend_time64, __mq_timedsend_time64,
+ GLIBC_2_34);
int
-__mq_timedsend (mqd_t mqdes, const char *msg_ptr, size_t msg_len,
+___mq_timedsend (mqd_t mqdes, const char *msg_ptr, size_t msg_len,
unsigned int msg_prio, const struct timespec *abs_timeout)
{
struct __timespec64 ts64;
@@ -69,8 +82,13 @@ __mq_timedsend (mqd_t mqdes, const char *msg_ptr, size_t msg_len,
return __mq_timedsend_time64 (mqdes, msg_ptr, msg_len, msg_prio,
abs_timeout != NULL ? &ts64 : NULL);
}
-#endif
+versioned_symbol (libc, ___mq_timedsend, mq_timedsend, GLIBC_2_34);
+libc_hidden_ver (___mq_timedsend, __mq_timedsend)
+# ifndef SHARED
+strong_alias (___mq_timedsend, __mq_timedsend)
+# endif
+# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_3_4, GLIBC_2_34)
+compat_symbol (librt, ___mq_timedsend, mq_timedsend, GLIBC_2_3_4);
+# endif
-hidden_def (__mq_timedsend)
-weak_alias (__mq_timedsend, mq_timedsend)
-hidden_weak (mq_timedsend)
+#endif /* __TIMESIZE != 64 */
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 0c07cf2e80..cd69447f25 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -1408,8 +1408,10 @@ GLIBC_2.21 mq_getattr F
GLIBC_2.21 mq_notify F
GLIBC_2.21 mq_open F
GLIBC_2.21 mq_receive F
+GLIBC_2.21 mq_send F
GLIBC_2.21 mq_setattr F
GLIBC_2.21 mq_timedreceive F
+GLIBC_2.21 mq_timedsend F
GLIBC_2.21 mrand48 F
GLIBC_2.21 mrand48_r F
GLIBC_2.21 mremap F
@@ -2432,6 +2434,7 @@ GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __mq_timedreceive_time64 F
+GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2524,8 +2527,10 @@ GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
GLIBC_2.34 mq_receive F
+GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
+GLIBC_2.34 mq_timedsend F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
index 7ea7b0a8f3..1ebc8dc94b 100644
--- a/sysdeps/unix/sysv/linux/nios2/librt.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/librt.abilist
@@ -1,11 +1,8 @@
-GLIBC_2.21 mq_send F
-GLIBC_2.21 mq_timedsend F
GLIBC_2.21 mq_unlink F
GLIBC_2.21 timer_create F
GLIBC_2.21 timer_delete F
GLIBC_2.21 timer_getoverrun F
GLIBC_2.21 timer_gettime F
GLIBC_2.21 timer_settime F
-GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 4b3b448927..23ac9ab4ea 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -2349,8 +2349,10 @@ GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
+GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
+GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2449,6 +2451,7 @@ GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __mq_timedreceive_time64 F
+GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2541,8 +2544,10 @@ GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
GLIBC_2.34 mq_receive F
+GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
+GLIBC_2.34 mq_timedsend F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
index 9d26b1298c..d697cfa27d 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
@@ -4,10 +4,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.4 mq_send F
-GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
-GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index b3b90b8136..6f082b2d25 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -2382,8 +2382,10 @@ GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
+GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
+GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2482,6 +2484,7 @@ GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __mq_timedreceive_time64 F
+GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2574,8 +2577,10 @@ GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
GLIBC_2.34 mq_receive F
+GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
+GLIBC_2.34 mq_timedsend F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 1720d4da88..52cdbc92d4 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -2195,8 +2195,10 @@ GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
+GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
+GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2309,8 +2311,10 @@ GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
GLIBC_2.34 mq_receive F
+GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
+GLIBC_2.34 mq_timedsend F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
index 3968e8e7cb..41ac10c6e9 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
@@ -8,8 +8,6 @@ GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 9a7d510295..a6f254b4da 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -1451,8 +1451,10 @@ GLIBC_2.17 mq_getattr F
GLIBC_2.17 mq_notify F
GLIBC_2.17 mq_open F
GLIBC_2.17 mq_receive F
+GLIBC_2.17 mq_send F
GLIBC_2.17 mq_setattr F
GLIBC_2.17 mq_timedreceive F
+GLIBC_2.17 mq_timedsend F
GLIBC_2.17 mrand48 F
GLIBC_2.17 mrand48_r F
GLIBC_2.17 mremap F
@@ -2609,8 +2611,10 @@ GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
GLIBC_2.34 mq_receive F
+GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
+GLIBC_2.34 mq_timedsend F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
index 1c3c05932e..4f4c72f3cc 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.17 mq_send F
-GLIBC_2.17 mq_timedsend F
GLIBC_2.17 mq_unlink F
GLIBC_2.17 timer_create F
GLIBC_2.17 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 80fea20f51..a2749838fd 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1296,8 +1296,10 @@ GLIBC_2.33 mq_getattr F
GLIBC_2.33 mq_notify F
GLIBC_2.33 mq_open F
GLIBC_2.33 mq_receive F
+GLIBC_2.33 mq_send F
GLIBC_2.33 mq_setattr F
GLIBC_2.33 mq_timedreceive F
+GLIBC_2.33 mq_timedsend F
GLIBC_2.33 mrand48 F
GLIBC_2.33 mrand48_r F
GLIBC_2.33 mremap F
@@ -2174,8 +2176,10 @@ GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
GLIBC_2.34 mq_receive F
+GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
+GLIBC_2.34 mq_timedsend F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
index 02e6e0d513..bcede2f3c4 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.33 mq_send F
-GLIBC_2.33 mq_timedsend F
GLIBC_2.33 mq_unlink F
GLIBC_2.33 timer_create F
GLIBC_2.33 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index b3ed38d911..7c4d8cc40c 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -1346,8 +1346,10 @@ GLIBC_2.27 mq_getattr F
GLIBC_2.27 mq_notify F
GLIBC_2.27 mq_open F
GLIBC_2.27 mq_receive F
+GLIBC_2.27 mq_send F
GLIBC_2.27 mq_setattr F
GLIBC_2.27 mq_timedreceive F
+GLIBC_2.27 mq_timedsend F
GLIBC_2.27 mrand48 F
GLIBC_2.27 mrand48_r F
GLIBC_2.27 mremap F
@@ -2374,8 +2376,10 @@ GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
GLIBC_2.34 mq_receive F
+GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
+GLIBC_2.34 mq_timedsend F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
index 7cd66b1ff6..15bac0b449 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.27 mq_send F
-GLIBC_2.27 mq_timedsend F
GLIBC_2.27 mq_unlink F
GLIBC_2.27 timer_create F
GLIBC_2.27 timer_delete F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index d9e415fa6d..99c003615f 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -2348,8 +2348,10 @@ GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
+GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
+GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2447,6 +2449,7 @@ GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __mq_timedreceive_time64 F
+GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2539,8 +2542,10 @@ GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
GLIBC_2.34 mq_receive F
+GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
+GLIBC_2.34 mq_timedsend F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
index 9d26b1298c..d697cfa27d 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
@@ -4,10 +4,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.4 mq_send F
-GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
-GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index dec539716c..3441d1fcd7 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -2236,8 +2236,10 @@ GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
+GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
+GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2346,8 +2348,10 @@ GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
GLIBC_2.34 mq_receive F
+GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
+GLIBC_2.34 mq_timedsend F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
index acaafa5f29..0d4d401608 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
@@ -8,8 +8,6 @@ GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index ddc4e08f79..420f80d921 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -2215,8 +2215,10 @@ GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
+GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
+GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2302,6 +2304,7 @@ GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __mq_timedreceive_time64 F
+GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2394,8 +2397,10 @@ GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
GLIBC_2.34 mq_receive F
+GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
+GLIBC_2.34 mq_timedsend F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
index 9d26b1298c..d697cfa27d 100644
--- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
@@ -4,10 +4,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.4 mq_send F
-GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
-GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 553574f741..d4cf18a52d 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -2215,8 +2215,10 @@ GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
+GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
+GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2299,6 +2301,7 @@ GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __mq_timedreceive_time64 F
+GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2391,8 +2394,10 @@ GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
GLIBC_2.34 mq_receive F
+GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
+GLIBC_2.34 mq_timedsend F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
index 9d26b1298c..d697cfa27d 100644
--- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
@@ -4,10 +4,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.4 mq_send F
-GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
-GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 3e68e78ca2..0e4ca149d8 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -2346,8 +2346,10 @@ GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
+GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
+GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2442,6 +2444,7 @@ GLIBC_2.34 __lutimes64 F
GLIBC_2.34 __mktime64 F
GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __mq_timedreceive_time64 F
+GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __msgctl64 F
GLIBC_2.34 __mtx_timedlock64 F
GLIBC_2.34 __nanosleep64 F
@@ -2534,8 +2537,10 @@ GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
GLIBC_2.34 mq_receive F
+GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
+GLIBC_2.34 mq_timedsend F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
index ca31f9805a..d246e770d0 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
@@ -5,10 +5,7 @@ GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
GLIBC_2.3 __librt_version_placeholder F
-GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
-GLIBC_2.34 __mq_timedsend_time64 F
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 5d21d25fb9..b9e9d89789 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -2270,8 +2270,10 @@ GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
+GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
+GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2368,8 +2370,10 @@ GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
GLIBC_2.34 mq_receive F
+GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
+GLIBC_2.34 mq_timedsend F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
index 6eae7e9482..3156616c8b 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
@@ -10,8 +10,6 @@ GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 08422b301d..8029500dd3 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -2224,8 +2224,10 @@ GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
GLIBC_2.3.4 mq_open F
GLIBC_2.3.4 mq_receive F
+GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
+GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2324,8 +2326,10 @@ GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
GLIBC_2.34 mq_receive F
+GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
+GLIBC_2.34 mq_timedsend F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
index f61e3e7428..d20321ccad 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
@@ -8,8 +8,6 @@ GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 38f4c2105d..d572f528bc 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -1370,8 +1370,10 @@ GLIBC_2.16 mq_getattr F
GLIBC_2.16 mq_notify F
GLIBC_2.16 mq_open F
GLIBC_2.16 mq_receive F
+GLIBC_2.16 mq_send F
GLIBC_2.16 mq_setattr F
GLIBC_2.16 mq_timedreceive F
+GLIBC_2.16 mq_timedsend F
GLIBC_2.16 mrand48 F
GLIBC_2.16 mrand48_r F
GLIBC_2.16 mremap F
@@ -2428,8 +2430,10 @@ GLIBC_2.34 mq_getattr F
GLIBC_2.34 mq_notify F
GLIBC_2.34 mq_open F
GLIBC_2.34 mq_receive F
+GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
+GLIBC_2.34 mq_timedsend F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
index 7e39929d27..7ae8f7dc74 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.16 mq_send F
-GLIBC_2.16 mq_timedsend F
GLIBC_2.16 mq_unlink F
GLIBC_2.16 timer_create F
GLIBC_2.16 timer_delete F
--
2.31.1
^ permalink raw reply [flat|nested] 72+ messages in thread
* Re: [PATCH 26/34] Linux: Move mq_send, mq_timedsend, __mq_timedsend_time64 to libc
2021-06-17 18:59 ` [PATCH 26/34] Linux: Move mq_send, mq_timedsend, __mq_timedsend_time64 " Florian Weimer
@ 2021-06-24 14:22 ` Adhemerval Zanella
0 siblings, 0 replies; 72+ messages in thread
From: Adhemerval Zanella @ 2021-06-24 14:22 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 17/06/2021 15:59, Florian Weimer via Libc-alpha wrote:
> The symbols were moved using scripts/move-symbol-to-libc.py.
LGTM, thanks.
Reviewed-by: Adhemerva Zanella <adhemerval.zanella@linaro.org>
> ---
> include/mqueue.h | 12 +++---
> rt/Makefile | 4 +-
> rt/Versions | 8 +++-
> sysdeps/unix/sysv/linux/Versions | 2 +-
> sysdeps/unix/sysv/linux/aarch64/libc.abilist | 4 ++
> sysdeps/unix/sysv/linux/aarch64/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/alpha/libc.abilist | 4 ++
> sysdeps/unix/sysv/linux/alpha/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/arc/libc.abilist | 4 ++
> sysdeps/unix/sysv/linux/arc/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/arm/be/libc.abilist | 5 +++
> sysdeps/unix/sysv/linux/arm/be/librt.abilist | 3 --
> sysdeps/unix/sysv/linux/arm/le/libc.abilist | 5 +++
> sysdeps/unix/sysv/linux/arm/le/librt.abilist | 3 --
> sysdeps/unix/sysv/linux/csky/libc.abilist | 5 +++
> sysdeps/unix/sysv/linux/csky/librt.abilist | 3 --
> sysdeps/unix/sysv/linux/hppa/libc.abilist | 5 +++
> sysdeps/unix/sysv/linux/hppa/librt.abilist | 3 --
> sysdeps/unix/sysv/linux/i386/libc.abilist | 5 +++
> sysdeps/unix/sysv/linux/i386/librt.abilist | 3 --
> sysdeps/unix/sysv/linux/ia64/libc.abilist | 4 ++
> sysdeps/unix/sysv/linux/ia64/librt.abilist | 2 -
> .../sysv/linux/m68k/coldfire/libc.abilist | 5 +++
> .../sysv/linux/m68k/coldfire/librt.abilist | 3 --
> .../unix/sysv/linux/m68k/m680x0/libc.abilist | 5 +++
> .../unix/sysv/linux/m68k/m680x0/librt.abilist | 3 --
> .../sysv/linux/microblaze/be/libc.abilist | 5 +++
> .../sysv/linux/microblaze/be/librt.abilist | 3 --
> .../sysv/linux/microblaze/le/libc.abilist | 5 +++
> .../sysv/linux/microblaze/le/librt.abilist | 3 --
> .../sysv/linux/mips/mips32/fpu/libc.abilist | 5 +++
> .../unix/sysv/linux/mips/mips32/librt.abilist | 3 --
> .../sysv/linux/mips/mips32/nofpu/libc.abilist | 5 +++
> .../sysv/linux/mips/mips64/n32/libc.abilist | 5 +++
> .../sysv/linux/mips/mips64/n32/librt.abilist | 3 --
> .../sysv/linux/mips/mips64/n64/libc.abilist | 4 ++
> .../sysv/linux/mips/mips64/n64/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/mq_send.c | 7 +++-
> sysdeps/unix/sysv/linux/mq_timedsend.c | 38 ++++++++++++++-----
> sysdeps/unix/sysv/linux/nios2/libc.abilist | 5 +++
> sysdeps/unix/sysv/linux/nios2/librt.abilist | 3 --
> .../linux/powerpc/powerpc32/fpu/libc.abilist | 5 +++
> .../linux/powerpc/powerpc32/librt.abilist | 3 --
> .../powerpc/powerpc32/nofpu/libc.abilist | 5 +++
> .../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 | 5 +++
> .../sysv/linux/s390/s390-32/librt.abilist | 3 --
> .../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 | 5 +++
> sysdeps/unix/sysv/linux/sh/be/librt.abilist | 3 --
> sysdeps/unix/sysv/linux/sh/le/libc.abilist | 5 +++
> sysdeps/unix/sysv/linux/sh/le/librt.abilist | 3 --
> .../sysv/linux/sparc/sparc32/libc.abilist | 5 +++
> .../sysv/linux/sparc/sparc32/librt.abilist | 3 --
> .../sysv/linux/sparc/sparc64/libc.abilist | 4 ++
> .../sysv/linux/sparc/sparc64/librt.abilist | 2 -
> .../unix/sysv/linux/x86_64/64/libc.abilist | 4 ++
> .../unix/sysv/linux/x86_64/64/librt.abilist | 2 -
> .../unix/sysv/linux/x86_64/x32/libc.abilist | 4 ++
> .../unix/sysv/linux/x86_64/x32/librt.abilist | 2 -
> 68 files changed, 196 insertions(+), 99 deletions(-)
>
> diff --git a/include/mqueue.h b/include/mqueue.h
> index 8243a637d2..7a2459e603 100644
> --- a/include/mqueue.h
> +++ b/include/mqueue.h
> @@ -2,21 +2,20 @@
>
> #ifndef _ISOMAC
> extern __typeof (mq_timedreceive) __mq_timedreceive __nonnull ((2, 5));
> +extern __typeof (mq_timedsend) __mq_timedsend __nonnull ((2, 5));
>
> -# if IS_IN (librt)
> +# if IS_IN (librt) && !PTHREAD_IN_LIBC
> hidden_proto (mq_timedsend)
> -extern __typeof (mq_timedsend) __mq_timedsend __nonnull ((2, 5));
> hidden_proto (__mq_timedsend)
> -# if !PTHREAD_IN_LIBC
> hidden_proto (mq_setattr)
> hidden_proto (mq_timedreceive)
> hidden_proto (__mq_timedreceive)
> -# endif
> -# endif /* IS_IN (librt) */
> +# endif
>
> # if PTHREAD_IN_LIBC
> libc_hidden_proto (mq_setattr)
> libc_hidden_proto (__mq_timedreceive)
> +libc_hidden_proto (__mq_timedsend)
>
> /* Called from fork so that the new subprocess re-creates the
> notification thread if necessary. */
> @@ -31,7 +30,6 @@ void __mq_notify_fork_subprocess (void) attribute_hidden;
> extern int __mq_timedsend_time64 (mqd_t mqdes, const char *msg_ptr,
> size_t msg_len, unsigned int msg_prio,
> const struct __timespec64 *abs_timeout);
> -librt_hidden_proto (__mq_timedsend_time64)
> extern ssize_t __mq_timedreceive_time64 (mqd_t mqdes,
> char *__restrict msg_ptr,
> size_t msg_len,
Ok.
> @@ -40,8 +38,10 @@ extern ssize_t __mq_timedreceive_time64 (mqd_t mqdes,
> abs_timeout);
> # if PTHREAD_IN_LIBC
> libc_hidden_proto (__mq_timedreceive_time64)
> +libc_hidden_proto (__mq_timedsend_time64)
> # else
> librt_hidden_proto (__mq_timedreceive_time64)
> +librt_hidden_proto (__mq_timedsend_time64)
> # endif
> #endif
> #endif
Ok.
> diff --git a/rt/Makefile b/rt/Makefile
> index a3182ac459..cea1189f4d 100644
> --- a/rt/Makefile
> +++ b/rt/Makefile
> @@ -30,8 +30,6 @@ routines = \
>
> librt-routines = \
> librt-compat \
> - mq_send \
> - mq_timedsend \
> mq_unlink \
> timer_create \
> timer_delete \
> @@ -61,8 +59,10 @@ $(librt-routines-var) += \
> mq_notify \
> mq_open \
> mq_receive \
> + mq_send \
> mq_setattr \
> mq_timedreceive \
> + mq_timedsend \
>
> tests := tst-shm tst-timer tst-timer2 \
> tst-aio tst-aio64 tst-aio2 tst-aio3 tst-aio4 tst-aio5 tst-aio6 \
Ok.
> diff --git a/rt/Versions b/rt/Versions
> index 541106632e..3363ccb526 100644
> --- a/rt/Versions
> +++ b/rt/Versions
> @@ -31,8 +31,10 @@ libc {
> mq_notify;
> mq_open;
> mq_receive;
> + mq_send;
> mq_setattr;
> mq_timedreceive;
> + mq_timedsend;
> %endif
> }
> GLIBC_2.4 {
> @@ -71,8 +73,10 @@ libc {
> mq_notify;
> mq_open;
> mq_receive;
> + mq_send;
> mq_setattr;
> mq_timedreceive;
> + mq_timedsend;
> %endif
> shm_open;
> shm_unlink;
> @@ -129,11 +133,11 @@ librt {
> mq_notify;
> mq_open;
> mq_receive;
> + mq_send;
> mq_setattr;
> mq_timedreceive;
> -%endif
> - mq_send;
> mq_timedsend;
> +%endif
> mq_unlink;
> }
> GLIBC_2.4 {
Ok.
> diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions
> index cce7c56652..051ecf9390 100644
> --- a/sysdeps/unix/sysv/linux/Versions
> +++ b/sysdeps/unix/sysv/linux/Versions
> @@ -227,6 +227,7 @@ libc {
> __lutimes64;
> __mktime64;
> __mq_timedreceive_time64;
> + __mq_timedsend_time64;
> __msgctl64;
> __mtx_timedlock64;
> __nanosleep64;
> @@ -296,7 +297,6 @@ librt {
> GLIBC_2.34 {
> %ifdef TIME64_NON_DEFAULT
> # 64-bit time_t support
> - __mq_timedsend_time64;
> __timer_gettime64;
> __timer_settime64;
> %endif
Ok.
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index cd9d4d91c5..b4edd23bc8 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -1363,8 +1363,10 @@ GLIBC_2.17 mq_getattr F
> GLIBC_2.17 mq_notify F
> GLIBC_2.17 mq_open F
> GLIBC_2.17 mq_receive F
> +GLIBC_2.17 mq_send F
> GLIBC_2.17 mq_setattr F
> GLIBC_2.17 mq_timedreceive F
> +GLIBC_2.17 mq_timedsend F
> GLIBC_2.17 mrand48 F
> GLIBC_2.17 mrand48_r F
> GLIBC_2.17 mremap F
> @@ -2413,8 +2415,10 @@ GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_receive F
> +GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> +GLIBC_2.34 mq_timedsend F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> index 1c3c05932e..4f4c72f3cc 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.17 mq_send F
> -GLIBC_2.17 mq_timedsend F
> GLIBC_2.17 mq_unlink F
> GLIBC_2.17 timer_create F
> GLIBC_2.17 timer_delete F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index 7a894d983e..c2fd6ec79e 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -2397,8 +2397,10 @@ GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> +GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> +GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2507,8 +2509,10 @@ GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_receive F
> +GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> +GLIBC_2.34 mq_timedsend F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
> index 6eae7e9482..3156616c8b 100644
> --- a/sysdeps/unix/sysv/linux/alpha/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist
> @@ -10,8 +10,6 @@ GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> -GLIBC_2.3.4 mq_send F
> -GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index e3769a67f5..c36d673f3e 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -1294,8 +1294,10 @@ GLIBC_2.32 mq_getattr F
> GLIBC_2.32 mq_notify F
> GLIBC_2.32 mq_open F
> GLIBC_2.32 mq_receive F
> +GLIBC_2.32 mq_send F
> GLIBC_2.32 mq_setattr F
> GLIBC_2.32 mq_timedreceive F
> +GLIBC_2.32 mq_timedsend F
> GLIBC_2.32 mrand48 F
> GLIBC_2.32 mrand48_r F
> GLIBC_2.32 mremap F
> @@ -2172,8 +2174,10 @@ GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_receive F
> +GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> +GLIBC_2.34 mq_timedsend F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
> index 7a861b1e76..c69ae6e40b 100644
> --- a/sysdeps/unix/sysv/linux/arc/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.32 mq_send F
> -GLIBC_2.32 mq_timedsend F
> GLIBC_2.32 mq_unlink F
> GLIBC_2.32 timer_create F
> GLIBC_2.32 timer_delete F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index 74ff1bc808..b44d7f5d23 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -228,6 +228,7 @@ GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __mq_timedreceive_time64 F
> +GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -320,8 +321,10 @@ GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_receive F
> +GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> +GLIBC_2.34 mq_timedsend F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> @@ -1740,8 +1743,10 @@ GLIBC_2.4 mq_getattr F
> GLIBC_2.4 mq_notify F
> GLIBC_2.4 mq_open F
> GLIBC_2.4 mq_receive F
> +GLIBC_2.4 mq_send F
> GLIBC_2.4 mq_setattr F
> GLIBC_2.4 mq_timedreceive F
> +GLIBC_2.4 mq_timedsend F
> GLIBC_2.4 mrand48 F
> GLIBC_2.4 mrand48_r F
> GLIBC_2.4 mremap F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> index ea840d42d1..00fffc9bf4 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> @@ -1,8 +1,5 @@
> -GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> -GLIBC_2.4 mq_send F
> -GLIBC_2.4 mq_timedsend F
> GLIBC_2.4 mq_unlink F
> GLIBC_2.4 timer_create F
> GLIBC_2.4 timer_delete F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index 04692b0d98..4335ee8c5b 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -225,6 +225,7 @@ GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __mq_timedreceive_time64 F
> +GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -317,8 +318,10 @@ GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_receive F
> +GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> +GLIBC_2.34 mq_timedsend F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> @@ -1737,8 +1740,10 @@ GLIBC_2.4 mq_getattr F
> GLIBC_2.4 mq_notify F
> GLIBC_2.4 mq_open F
> GLIBC_2.4 mq_receive F
> +GLIBC_2.4 mq_send F
> GLIBC_2.4 mq_setattr F
> GLIBC_2.4 mq_timedreceive F
> +GLIBC_2.4 mq_timedsend F
> GLIBC_2.4 mrand48 F
> GLIBC_2.4 mrand48_r F
> GLIBC_2.4 mremap F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> index ea840d42d1..00fffc9bf4 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> @@ -1,8 +1,5 @@
> -GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> -GLIBC_2.4 mq_send F
> -GLIBC_2.4 mq_timedsend F
> GLIBC_2.4 mq_unlink F
> GLIBC_2.4 timer_create F
> GLIBC_2.4 timer_delete F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index e25f2637b6..11f34272fa 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -1349,8 +1349,10 @@ GLIBC_2.29 mq_getattr F
> GLIBC_2.29 mq_notify F
> GLIBC_2.29 mq_open F
> GLIBC_2.29 mq_receive F
> +GLIBC_2.29 mq_send F
> GLIBC_2.29 mq_setattr F
> GLIBC_2.29 mq_timedreceive F
> +GLIBC_2.29 mq_timedsend F
> GLIBC_2.29 mrand48 F
> GLIBC_2.29 mrand48_r F
> GLIBC_2.29 mremap F
> @@ -2342,6 +2344,7 @@ GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __mq_timedreceive_time64 F
> +GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2434,8 +2437,10 @@ GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_receive F
> +GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> +GLIBC_2.34 mq_timedsend F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
> index dadd5b921b..81964809e8 100644
> --- a/sysdeps/unix/sysv/linux/csky/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/librt.abilist
> @@ -1,11 +1,8 @@
> -GLIBC_2.29 mq_send F
> -GLIBC_2.29 mq_timedsend F
> GLIBC_2.29 mq_unlink F
> GLIBC_2.29 timer_create F
> GLIBC_2.29 timer_delete F
> GLIBC_2.29 timer_getoverrun F
> GLIBC_2.29 timer_gettime F
> GLIBC_2.29 timer_settime F
> -GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index 7ef275ce02..d2337afa48 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -2211,8 +2211,10 @@ GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> +GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> +GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2295,6 +2297,7 @@ GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __mq_timedreceive_time64 F
> +GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2387,8 +2390,10 @@ GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_receive F
> +GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> +GLIBC_2.34 mq_timedsend F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
> index 9d26b1298c..d697cfa27d 100644
> --- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
> @@ -4,10 +4,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.4 mq_send F
> -GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> -GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index a584865427..ae326a36f4 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -2392,8 +2392,10 @@ GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> +GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> +GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2479,6 +2481,7 @@ GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __mq_timedreceive_time64 F
> +GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2571,8 +2574,10 @@ GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_receive F
> +GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> +GLIBC_2.34 mq_timedsend F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
> index 9d26b1298c..d697cfa27d 100644
> --- a/sysdeps/unix/sysv/linux/i386/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
> @@ -4,10 +4,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.4 mq_send F
> -GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> -GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index 6e22d91a7f..ad7b86ca8e 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -2246,8 +2246,10 @@ GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> +GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> +GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2345,8 +2347,10 @@ GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_receive F
> +GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> +GLIBC_2.34 mq_timedsend F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
> index eb4a5080e2..6c8eb08863 100644
> --- a/sysdeps/unix/sysv/linux/ia64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/librt.abilist
> @@ -9,8 +9,6 @@ GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> -GLIBC_2.3.4 mq_send F
> -GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index c6e168754f..e0106e57e3 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -229,6 +229,7 @@ GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __mq_timedreceive_time64 F
> +GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -321,8 +322,10 @@ GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_receive F
> +GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> +GLIBC_2.34 mq_timedsend F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> @@ -1724,8 +1727,10 @@ GLIBC_2.4 mq_getattr F
> GLIBC_2.4 mq_notify F
> GLIBC_2.4 mq_open F
> GLIBC_2.4 mq_receive F
> +GLIBC_2.4 mq_send F
> GLIBC_2.4 mq_setattr F
> GLIBC_2.4 mq_timedreceive F
> +GLIBC_2.4 mq_timedsend F
> GLIBC_2.4 mrand48 F
> GLIBC_2.4 mrand48_r F
> GLIBC_2.4 mremap F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> index ea840d42d1..00fffc9bf4 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> @@ -1,8 +1,5 @@
> -GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> -GLIBC_2.4 mq_send F
> -GLIBC_2.4 mq_timedsend F
> GLIBC_2.4 mq_unlink F
> GLIBC_2.4 timer_create F
> GLIBC_2.4 timer_delete F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index ba3a4ace7b..833105c87e 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -2335,8 +2335,10 @@ GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> +GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> +GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2422,6 +2424,7 @@ GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __mq_timedreceive_time64 F
> +GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2514,8 +2517,10 @@ GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_receive F
> +GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> +GLIBC_2.34 mq_timedsend F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> index 9d26b1298c..d697cfa27d 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> @@ -4,10 +4,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.4 mq_send F
> -GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> -GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index 1350543bce..168143b004 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -1365,8 +1365,10 @@ GLIBC_2.18 mq_getattr F
> GLIBC_2.18 mq_notify F
> GLIBC_2.18 mq_open F
> GLIBC_2.18 mq_receive F
> +GLIBC_2.18 mq_send F
> GLIBC_2.18 mq_setattr F
> GLIBC_2.18 mq_timedreceive F
> +GLIBC_2.18 mq_timedsend F
> GLIBC_2.18 mrand48 F
> GLIBC_2.18 mrand48_r F
> GLIBC_2.18 mremap F
> @@ -2393,6 +2395,7 @@ GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __mq_timedreceive_time64 F
> +GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2485,8 +2488,10 @@ GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_receive F
> +GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> +GLIBC_2.34 mq_timedsend F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> index 8ddbc3a272..d0b5c08211 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> @@ -1,11 +1,8 @@
> -GLIBC_2.18 mq_send F
> -GLIBC_2.18 mq_timedsend F
> GLIBC_2.18 mq_unlink F
> GLIBC_2.18 timer_create F
> GLIBC_2.18 timer_delete F
> GLIBC_2.18 timer_getoverrun F
> GLIBC_2.18 timer_gettime F
> GLIBC_2.18 timer_settime F
> -GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index 10151508d3..478c35898d 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -1365,8 +1365,10 @@ GLIBC_2.18 mq_getattr F
> GLIBC_2.18 mq_notify F
> GLIBC_2.18 mq_open F
> GLIBC_2.18 mq_receive F
> +GLIBC_2.18 mq_send F
> GLIBC_2.18 mq_setattr F
> GLIBC_2.18 mq_timedreceive F
> +GLIBC_2.18 mq_timedsend F
> GLIBC_2.18 mrand48 F
> GLIBC_2.18 mrand48_r F
> GLIBC_2.18 mremap F
> @@ -2390,6 +2392,7 @@ GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __mq_timedreceive_time64 F
> +GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2482,8 +2485,10 @@ GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_receive F
> +GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> +GLIBC_2.34 mq_timedsend F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> index 8ddbc3a272..d0b5c08211 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> @@ -1,11 +1,8 @@
> -GLIBC_2.18 mq_send F
> -GLIBC_2.18 mq_timedsend F
> GLIBC_2.18 mq_unlink F
> GLIBC_2.18 timer_create F
> GLIBC_2.18 timer_delete F
> GLIBC_2.18 timer_getoverrun F
> GLIBC_2.18 timer_gettime F
> GLIBC_2.18 timer_settime F
> -GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index e3ebc66ae0..4d2c5e7fff 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -2303,8 +2303,10 @@ GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> +GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> +GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2387,6 +2389,7 @@ GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __mq_timedreceive_time64 F
> +GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2479,8 +2482,10 @@ GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_receive F
> +GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> +GLIBC_2.34 mq_timedsend F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> index 2cd12115d9..c2dcd8a037 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> @@ -3,10 +3,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.4 mq_send F
> -GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> -GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index e8d041106d..729413e091 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -2301,8 +2301,10 @@ GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> +GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> +GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2385,6 +2387,7 @@ GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __mq_timedreceive_time64 F
> +GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2477,8 +2480,10 @@ GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_receive F
> +GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> +GLIBC_2.34 mq_timedsend F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index b596c529c4..cc82aa817c 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -2309,8 +2309,10 @@ GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> +GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> +GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2393,6 +2395,7 @@ GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __mq_timedreceive_time64 F
> +GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2485,8 +2488,10 @@ GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_receive F
> +GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> +GLIBC_2.34 mq_timedsend F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> index 2cd12115d9..c2dcd8a037 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> @@ -3,10 +3,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.4 mq_send F
> -GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> -GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index af99fdad9c..746072a535 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -2303,8 +2303,10 @@ GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> +GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> +GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2401,8 +2403,10 @@ GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_receive F
> +GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> +GLIBC_2.34 mq_timedsend F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> index b5796aadb3..1daa0ecaef 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> @@ -3,8 +3,6 @@ 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.4 mq_send F
> -GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __librt_version_placeholder F
Ok.
> diff --git a/sysdeps/unix/sysv/linux/mq_send.c b/sysdeps/unix/sysv/linux/mq_send.c
> index 7744a83fab..45944548b0 100644
> --- a/sysdeps/unix/sysv/linux/mq_send.c
> +++ b/sysdeps/unix/sysv/linux/mq_send.c
> @@ -17,13 +17,18 @@
>
> #include <errno.h>
> #include <mqueue.h>
> +#include <shlib-compat.h>
> #include <stddef.h>
> #include <sysdep.h>
>
> /* Add message pointed by MSG_PTR to message queue MQDES. */
> int
> -mq_send (mqd_t mqdes, const char *msg_ptr, size_t msg_len,
> +__mq_send (mqd_t mqdes, const char *msg_ptr, size_t msg_len,
> unsigned int msg_prio)
> {
> return __mq_timedsend (mqdes, msg_ptr, msg_len, msg_prio, NULL);
> }
> +versioned_symbol (libc, __mq_send, mq_send, GLIBC_2_34);
> +#if OTHER_SHLIB_COMPAT (librt, GLIBC_2_3_4, GLIBC_2_34)
> +compat_symbol (librt, __mq_send, mq_send, GLIBC_2_3_4);
> +#endif
Ok.
> diff --git a/sysdeps/unix/sysv/linux/mq_timedsend.c b/sysdeps/unix/sysv/linux/mq_timedsend.c
> index 5f14ecb0bf..97b2d123a8 100644
> --- a/sysdeps/unix/sysv/linux/mq_timedsend.c
> +++ b/sysdeps/unix/sysv/linux/mq_timedsend.c
> @@ -18,13 +18,14 @@
>
> #include <mqueue.h>
> #include <sysdep-cancel.h>
> +#include <shlib-compat.h>
>
> /* Add message pointed by MSG_PTR to message queue MQDES, stop blocking
> on full message queue if ABS_TIMEOUT expires. */
> int
> -__mq_timedsend_time64 (mqd_t mqdes, const char *msg_ptr, size_t msg_len,
> - unsigned int msg_prio,
> - const struct __timespec64 *abs_timeout)
> +___mq_timedsend_time64 (mqd_t mqdes, const char *msg_ptr, size_t msg_len,
> + unsigned int msg_prio,
> + const struct __timespec64 *abs_timeout)
> {
> # ifndef __NR_mq_timedsend_time64
> # define __NR_mq_timedsend_time64 __NR_mq_timedsend
> @@ -55,11 +56,23 @@ __mq_timedsend_time64 (mqd_t mqdes, const char *msg_ptr, size_t msg_len,
> return ret;
> }
>
> -#if __TIMESIZE != 64
> -librt_hidden_def (__mq_timedsend_time64)
> +#if __TIMESIZE == 64
> +versioned_symbol (libc, ___mq_timedsend_time64, mq_timedsend, GLIBC_2_34);
> +libc_hidden_ver (___mq_timedsend_time64, __mq_timedsend)
> +# ifndef SHARED
> +strong_alias (___mq_timedsend_time64, __mq_timedsend)
> +# endif
> +# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_3_4, GLIBC_2_34)
> +compat_symbol (librt, ___mq_timedsend_time64, mq_timedsend, GLIBC_2_3_4);
> +# endif
> +
> +#else /* __TIMESIZE != 64 */
> +libc_hidden_ver (___mq_timedsend_time64, __mq_timedsend_time64)
> +versioned_symbol (libc, ___mq_timedsend_time64, __mq_timedsend_time64,
> + GLIBC_2_34);
>
> int
> -__mq_timedsend (mqd_t mqdes, const char *msg_ptr, size_t msg_len,
> +___mq_timedsend (mqd_t mqdes, const char *msg_ptr, size_t msg_len,
> unsigned int msg_prio, const struct timespec *abs_timeout)
> {
> struct __timespec64 ts64;
> @@ -69,8 +82,13 @@ __mq_timedsend (mqd_t mqdes, const char *msg_ptr, size_t msg_len,
> return __mq_timedsend_time64 (mqdes, msg_ptr, msg_len, msg_prio,
> abs_timeout != NULL ? &ts64 : NULL);
> }
> -#endif
> +versioned_symbol (libc, ___mq_timedsend, mq_timedsend, GLIBC_2_34);
> +libc_hidden_ver (___mq_timedsend, __mq_timedsend)
> +# ifndef SHARED
> +strong_alias (___mq_timedsend, __mq_timedsend)
> +# endif
> +# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_3_4, GLIBC_2_34)
> +compat_symbol (librt, ___mq_timedsend, mq_timedsend, GLIBC_2_3_4);
> +# endif
>
> -hidden_def (__mq_timedsend)
> -weak_alias (__mq_timedsend, mq_timedsend)
> -hidden_weak (mq_timedsend)
> +#endif /* __TIMESIZE != 64 */
Ok.
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index 0c07cf2e80..cd69447f25 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -1408,8 +1408,10 @@ GLIBC_2.21 mq_getattr F
> GLIBC_2.21 mq_notify F
> GLIBC_2.21 mq_open F
> GLIBC_2.21 mq_receive F
> +GLIBC_2.21 mq_send F
> GLIBC_2.21 mq_setattr F
> GLIBC_2.21 mq_timedreceive F
> +GLIBC_2.21 mq_timedsend F
> GLIBC_2.21 mrand48 F
> GLIBC_2.21 mrand48_r F
> GLIBC_2.21 mremap F
> @@ -2432,6 +2434,7 @@ GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __mq_timedreceive_time64 F
> +GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2524,8 +2527,10 @@ GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_receive F
> +GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> +GLIBC_2.34 mq_timedsend F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
> index 7ea7b0a8f3..1ebc8dc94b 100644
> --- a/sysdeps/unix/sysv/linux/nios2/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/librt.abilist
> @@ -1,11 +1,8 @@
> -GLIBC_2.21 mq_send F
> -GLIBC_2.21 mq_timedsend F
> GLIBC_2.21 mq_unlink F
> GLIBC_2.21 timer_create F
> GLIBC_2.21 timer_delete F
> GLIBC_2.21 timer_getoverrun F
> GLIBC_2.21 timer_gettime F
> GLIBC_2.21 timer_settime F
> -GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index 4b3b448927..23ac9ab4ea 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -2349,8 +2349,10 @@ GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> +GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> +GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2449,6 +2451,7 @@ GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __mq_timedreceive_time64 F
> +GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2541,8 +2544,10 @@ GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_receive F
> +GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> +GLIBC_2.34 mq_timedsend F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> index 9d26b1298c..d697cfa27d 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> @@ -4,10 +4,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.4 mq_send F
> -GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> -GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index b3b90b8136..6f082b2d25 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -2382,8 +2382,10 @@ GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> +GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> +GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2482,6 +2484,7 @@ GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __mq_timedreceive_time64 F
> +GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2574,8 +2577,10 @@ GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_receive F
> +GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> +GLIBC_2.34 mq_timedsend F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index 1720d4da88..52cdbc92d4 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -2195,8 +2195,10 @@ GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> +GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> +GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2309,8 +2311,10 @@ GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_receive F
> +GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> +GLIBC_2.34 mq_timedsend F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> index 3968e8e7cb..41ac10c6e9 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> @@ -8,8 +8,6 @@ GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> -GLIBC_2.3.4 mq_send F
> -GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index 9a7d510295..a6f254b4da 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -1451,8 +1451,10 @@ GLIBC_2.17 mq_getattr F
> GLIBC_2.17 mq_notify F
> GLIBC_2.17 mq_open F
> GLIBC_2.17 mq_receive F
> +GLIBC_2.17 mq_send F
> GLIBC_2.17 mq_setattr F
> GLIBC_2.17 mq_timedreceive F
> +GLIBC_2.17 mq_timedsend F
> GLIBC_2.17 mrand48 F
> GLIBC_2.17 mrand48_r F
> GLIBC_2.17 mremap F
> @@ -2609,8 +2611,10 @@ GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_receive F
> +GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> +GLIBC_2.34 mq_timedsend F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> index 1c3c05932e..4f4c72f3cc 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.17 mq_send F
> -GLIBC_2.17 mq_timedsend F
> GLIBC_2.17 mq_unlink F
> GLIBC_2.17 timer_create F
> GLIBC_2.17 timer_delete F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index 80fea20f51..a2749838fd 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -1296,8 +1296,10 @@ GLIBC_2.33 mq_getattr F
> GLIBC_2.33 mq_notify F
> GLIBC_2.33 mq_open F
> GLIBC_2.33 mq_receive F
> +GLIBC_2.33 mq_send F
> GLIBC_2.33 mq_setattr F
> GLIBC_2.33 mq_timedreceive F
> +GLIBC_2.33 mq_timedsend F
> GLIBC_2.33 mrand48 F
> GLIBC_2.33 mrand48_r F
> GLIBC_2.33 mremap F
> @@ -2174,8 +2176,10 @@ GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_receive F
> +GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> +GLIBC_2.34 mq_timedsend F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> index 02e6e0d513..bcede2f3c4 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.33 mq_send F
> -GLIBC_2.33 mq_timedsend F
> GLIBC_2.33 mq_unlink F
> GLIBC_2.33 timer_create F
> GLIBC_2.33 timer_delete F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index b3ed38d911..7c4d8cc40c 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -1346,8 +1346,10 @@ GLIBC_2.27 mq_getattr F
> GLIBC_2.27 mq_notify F
> GLIBC_2.27 mq_open F
> GLIBC_2.27 mq_receive F
> +GLIBC_2.27 mq_send F
> GLIBC_2.27 mq_setattr F
> GLIBC_2.27 mq_timedreceive F
> +GLIBC_2.27 mq_timedsend F
> GLIBC_2.27 mrand48 F
> GLIBC_2.27 mrand48_r F
> GLIBC_2.27 mremap F
> @@ -2374,8 +2376,10 @@ GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_receive F
> +GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> +GLIBC_2.34 mq_timedsend F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> index 7cd66b1ff6..15bac0b449 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.27 mq_send F
> -GLIBC_2.27 mq_timedsend F
> GLIBC_2.27 mq_unlink F
> GLIBC_2.27 timer_create F
> GLIBC_2.27 timer_delete F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index d9e415fa6d..99c003615f 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -2348,8 +2348,10 @@ GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> +GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> +GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2447,6 +2449,7 @@ GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __mq_timedreceive_time64 F
> +GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2539,8 +2542,10 @@ GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_receive F
> +GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> +GLIBC_2.34 mq_timedsend F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> index 9d26b1298c..d697cfa27d 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> @@ -4,10 +4,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.4 mq_send F
> -GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> -GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index dec539716c..3441d1fcd7 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -2236,8 +2236,10 @@ GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> +GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> +GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2346,8 +2348,10 @@ GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_receive F
> +GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> +GLIBC_2.34 mq_timedsend F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> index acaafa5f29..0d4d401608 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> @@ -8,8 +8,6 @@ GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> -GLIBC_2.3.4 mq_send F
> -GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index ddc4e08f79..420f80d921 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -2215,8 +2215,10 @@ GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> +GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> +GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2302,6 +2304,7 @@ GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __mq_timedreceive_time64 F
> +GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2394,8 +2397,10 @@ GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_receive F
> +GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> +GLIBC_2.34 mq_timedsend F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> index 9d26b1298c..d697cfa27d 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> @@ -4,10 +4,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.4 mq_send F
> -GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> -GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index 553574f741..d4cf18a52d 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -2215,8 +2215,10 @@ GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> +GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> +GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2299,6 +2301,7 @@ GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __mq_timedreceive_time64 F
> +GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2391,8 +2394,10 @@ GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_receive F
> +GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> +GLIBC_2.34 mq_timedsend F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> index 9d26b1298c..d697cfa27d 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> @@ -4,10 +4,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.4 mq_send F
> -GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> -GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index 3e68e78ca2..0e4ca149d8 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -2346,8 +2346,10 @@ GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> +GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> +GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2442,6 +2444,7 @@ GLIBC_2.34 __lutimes64 F
> GLIBC_2.34 __mktime64 F
> GLIBC_2.34 __mq_open_2 F
> GLIBC_2.34 __mq_timedreceive_time64 F
> +GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __msgctl64 F
> GLIBC_2.34 __mtx_timedlock64 F
> GLIBC_2.34 __nanosleep64 F
> @@ -2534,8 +2537,10 @@ GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_receive F
> +GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> +GLIBC_2.34 mq_timedsend F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> index ca31f9805a..d246e770d0 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> @@ -5,10 +5,7 @@ GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> GLIBC_2.3 __librt_version_placeholder F
> -GLIBC_2.3.4 mq_send F
> -GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> -GLIBC_2.34 __mq_timedsend_time64 F
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index 5d21d25fb9..b9e9d89789 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -2270,8 +2270,10 @@ GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> +GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> +GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2368,8 +2370,10 @@ GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_receive F
> +GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> +GLIBC_2.34 mq_timedsend F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> index 6eae7e9482..3156616c8b 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> @@ -10,8 +10,6 @@ GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> -GLIBC_2.3.4 mq_send F
> -GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index 08422b301d..8029500dd3 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -2224,8 +2224,10 @@ GLIBC_2.3.4 mq_getattr F
> GLIBC_2.3.4 mq_notify F
> GLIBC_2.3.4 mq_open F
> GLIBC_2.3.4 mq_receive F
> +GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> +GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2324,8 +2326,10 @@ GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_receive F
> +GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> +GLIBC_2.34 mq_timedsend F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> index f61e3e7428..d20321ccad 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> @@ -8,8 +8,6 @@ GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> -GLIBC_2.3.4 mq_send F
> -GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index 38f4c2105d..d572f528bc 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -1370,8 +1370,10 @@ GLIBC_2.16 mq_getattr F
> GLIBC_2.16 mq_notify F
> GLIBC_2.16 mq_open F
> GLIBC_2.16 mq_receive F
> +GLIBC_2.16 mq_send F
> GLIBC_2.16 mq_setattr F
> GLIBC_2.16 mq_timedreceive F
> +GLIBC_2.16 mq_timedsend F
> GLIBC_2.16 mrand48 F
> GLIBC_2.16 mrand48_r F
> GLIBC_2.16 mremap F
> @@ -2428,8 +2430,10 @@ GLIBC_2.34 mq_getattr F
> GLIBC_2.34 mq_notify F
> GLIBC_2.34 mq_open F
> GLIBC_2.34 mq_receive F
> +GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> +GLIBC_2.34 mq_timedsend F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> index 7e39929d27..7ae8f7dc74 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.16 mq_send F
> -GLIBC_2.16 mq_timedsend F
> GLIBC_2.16 mq_unlink F
> GLIBC_2.16 timer_create F
> GLIBC_2.16 timer_delete F
>
Ok.
^ permalink raw reply [flat|nested] 72+ messages in thread
* [PATCH 27/34] Linux: Move mq_unlink from librt to libc
2021-06-17 18:56 [PATCH v2 00/34] Move librt into libc Florian Weimer
` (25 preceding siblings ...)
2021-06-17 18:59 ` [PATCH 26/34] Linux: Move mq_send, mq_timedsend, __mq_timedsend_time64 " Florian Weimer
@ 2021-06-17 18:59 ` Florian Weimer
2021-06-24 14:31 ` Adhemerval Zanella
2021-06-17 18:59 ` [PATCH 28/34] Linux: Move timer helper routines " Florian Weimer
` (7 subsequent siblings)
34 siblings, 1 reply; 72+ messages in thread
From: Florian Weimer @ 2021-06-17 18:59 UTC (permalink / raw)
To: libc-alpha
The symbol was moved using scripts/move-symbol-to-libc.py.
A placeholder symbol is needed on some architectures for the
GLIBC_2.3.4 version.
---
rt/Makefile | 2 +-
rt/Versions | 8 ++++++--
rt/librt-compat.c | 6 ++++++
sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/aarch64/librt.abilist | 1 -
sysdeps/unix/sysv/linux/alpha/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/alpha/librt.abilist | 2 +-
sysdeps/unix/sysv/linux/arc/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/arc/librt.abilist | 1 -
sysdeps/unix/sysv/linux/arm/be/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/arm/be/librt.abilist | 1 -
sysdeps/unix/sysv/linux/arm/le/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/arm/le/librt.abilist | 1 -
sysdeps/unix/sysv/linux/csky/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/csky/librt.abilist | 1 -
sysdeps/unix/sysv/linux/hppa/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/hppa/librt.abilist | 2 +-
sysdeps/unix/sysv/linux/i386/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/i386/librt.abilist | 2 +-
sysdeps/unix/sysv/linux/ia64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/ia64/librt.abilist | 2 +-
sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist | 1 -
sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist | 2 +-
sysdeps/unix/sysv/linux/microblaze/be/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/microblaze/be/librt.abilist | 1 -
sysdeps/unix/sysv/linux/microblaze/le/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/microblaze/le/librt.abilist | 1 -
sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/mips/mips32/librt.abilist | 2 +-
sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist | 2 +-
sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist | 2 +-
sysdeps/unix/sysv/linux/mq_unlink.c | 7 ++++++-
sysdeps/unix/sysv/linux/nios2/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/nios2/librt.abilist | 1 -
.../unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist | 2 +-
.../unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist | 2 ++
.../unix/sysv/linux/powerpc/powerpc64/be/librt.abilist | 2 +-
sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist | 2 ++
.../unix/sysv/linux/powerpc/powerpc64/le/librt.abilist | 1 -
sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist | 1 -
sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist | 1 -
sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist | 2 +-
sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist | 2 +-
sysdeps/unix/sysv/linux/sh/be/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/sh/be/librt.abilist | 2 +-
sysdeps/unix/sysv/linux/sh/le/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/sh/le/librt.abilist | 2 +-
sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist | 2 +-
sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist | 2 +-
sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/x86_64/64/librt.abilist | 2 +-
sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist | 1 -
66 files changed, 100 insertions(+), 34 deletions(-)
diff --git a/rt/Makefile b/rt/Makefile
index cea1189f4d..bd9d31b985 100644
--- a/rt/Makefile
+++ b/rt/Makefile
@@ -30,7 +30,6 @@ routines = \
librt-routines = \
librt-compat \
- mq_unlink \
timer_create \
timer_delete \
timer_getoverr \
@@ -63,6 +62,7 @@ $(librt-routines-var) += \
mq_setattr \
mq_timedreceive \
mq_timedsend \
+ mq_unlink \
tests := tst-shm tst-timer tst-timer2 \
tst-aio tst-aio64 tst-aio2 tst-aio3 tst-aio4 tst-aio5 tst-aio6 \
diff --git a/rt/Versions b/rt/Versions
index 3363ccb526..9a09062a2a 100644
--- a/rt/Versions
+++ b/rt/Versions
@@ -35,6 +35,7 @@ libc {
mq_setattr;
mq_timedreceive;
mq_timedsend;
+ mq_unlink;
%endif
}
GLIBC_2.4 {
@@ -77,6 +78,7 @@ libc {
mq_setattr;
mq_timedreceive;
mq_timedsend;
+ mq_unlink;
%endif
shm_open;
shm_unlink;
@@ -127,7 +129,9 @@ librt {
timer_settime;
}
GLIBC_2.3.4 {
-%if !PTHREAD_IN_LIBC
+%if PTHREAD_IN_LIBC
+ __librt_version_placeholder;
+%else
mq_close;
mq_getattr;
mq_notify;
@@ -137,8 +141,8 @@ librt {
mq_setattr;
mq_timedreceive;
mq_timedsend;
-%endif
mq_unlink;
+%endif
}
GLIBC_2.4 {
%if PTHREAD_IN_LIBC
diff --git a/rt/librt-compat.c b/rt/librt-compat.c
index ef353acdd1..24c2ed9db4 100644
--- a/rt/librt-compat.c
+++ b/rt/librt-compat.c
@@ -33,6 +33,12 @@ compat_symbol (librt, __librt_version_placeholder_1,
# endif
# if SHLIB_COMPAT (librt, GLIBC_2_4, GLIBC_2_34) \
+ && ABI_librt_GLIBC_2_3_4 != ABI_librt_GLIBC_2_1
+compat_symbol (librt, __librt_version_placeholder_1,
+ __librt_version_placeholder, GLIBC_2_3_4);
+# endif
+
+# if SHLIB_COMPAT (librt, GLIBC_2_4, GLIBC_2_34) \
&& ABI_librt_GLIBC_2_4 != ABI_librt_GLIBC_2_1
compat_symbol (librt, __librt_version_placeholder_1,
__librt_version_placeholder, GLIBC_2_4);
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index b4edd23bc8..141d5cb843 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -1367,6 +1367,7 @@ GLIBC_2.17 mq_send F
GLIBC_2.17 mq_setattr F
GLIBC_2.17 mq_timedreceive F
GLIBC_2.17 mq_timedsend F
+GLIBC_2.17 mq_unlink F
GLIBC_2.17 mrand48 F
GLIBC_2.17 mrand48_r F
GLIBC_2.17 mremap F
@@ -2419,6 +2420,7 @@ GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mq_timedsend F
+GLIBC_2.34 mq_unlink F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
index 4f4c72f3cc..54bb3e5c7c 100644
--- a/sysdeps/unix/sysv/linux/aarch64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.17 mq_unlink F
GLIBC_2.17 timer_create F
GLIBC_2.17 timer_delete F
GLIBC_2.17 timer_getoverrun F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index c2fd6ec79e..5441b6a3f3 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -2401,6 +2401,7 @@ GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
+GLIBC_2.3.4 mq_unlink F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2513,6 +2514,7 @@ GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mq_timedsend F
+GLIBC_2.34 mq_unlink F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
index 3156616c8b..8592c90bdf 100644
--- a/sysdeps/unix/sysv/linux/alpha/librt.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist
@@ -10,6 +10,6 @@ GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_unlink F
+GLIBC_2.3.4 __librt_version_placeholder F
GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index c36d673f3e..37fd195f70 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1298,6 +1298,7 @@ GLIBC_2.32 mq_send F
GLIBC_2.32 mq_setattr F
GLIBC_2.32 mq_timedreceive F
GLIBC_2.32 mq_timedsend F
+GLIBC_2.32 mq_unlink F
GLIBC_2.32 mrand48 F
GLIBC_2.32 mrand48_r F
GLIBC_2.32 mremap F
@@ -2178,6 +2179,7 @@ GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mq_timedsend F
+GLIBC_2.34 mq_unlink F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
index c69ae6e40b..0454fb41fd 100644
--- a/sysdeps/unix/sysv/linux/arc/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arc/librt.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.32 mq_unlink F
GLIBC_2.32 timer_create F
GLIBC_2.32 timer_delete F
GLIBC_2.32 timer_getoverrun F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index b44d7f5d23..42ba748c07 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -325,6 +325,7 @@ GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mq_timedsend F
+GLIBC_2.34 mq_unlink F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
@@ -1747,6 +1748,7 @@ GLIBC_2.4 mq_send F
GLIBC_2.4 mq_setattr F
GLIBC_2.4 mq_timedreceive F
GLIBC_2.4 mq_timedsend F
+GLIBC_2.4 mq_unlink F
GLIBC_2.4 mrand48 F
GLIBC_2.4 mrand48_r F
GLIBC_2.4 mremap F
diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
index 00fffc9bf4..8682174e36 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -1,6 +1,5 @@
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
-GLIBC_2.4 mq_unlink F
GLIBC_2.4 timer_create F
GLIBC_2.4 timer_delete F
GLIBC_2.4 timer_getoverrun F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 4335ee8c5b..92f06718bd 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -322,6 +322,7 @@ GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mq_timedsend F
+GLIBC_2.34 mq_unlink F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
@@ -1744,6 +1745,7 @@ GLIBC_2.4 mq_send F
GLIBC_2.4 mq_setattr F
GLIBC_2.4 mq_timedreceive F
GLIBC_2.4 mq_timedsend F
+GLIBC_2.4 mq_unlink F
GLIBC_2.4 mrand48 F
GLIBC_2.4 mrand48_r F
GLIBC_2.4 mremap F
diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
index 00fffc9bf4..8682174e36 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -1,6 +1,5 @@
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
-GLIBC_2.4 mq_unlink F
GLIBC_2.4 timer_create F
GLIBC_2.4 timer_delete F
GLIBC_2.4 timer_getoverrun F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 11f34272fa..7ee4e79de2 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -1353,6 +1353,7 @@ GLIBC_2.29 mq_send F
GLIBC_2.29 mq_setattr F
GLIBC_2.29 mq_timedreceive F
GLIBC_2.29 mq_timedsend F
+GLIBC_2.29 mq_unlink F
GLIBC_2.29 mrand48 F
GLIBC_2.29 mrand48_r F
GLIBC_2.29 mremap F
@@ -2441,6 +2442,7 @@ GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mq_timedsend F
+GLIBC_2.34 mq_unlink F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
index 81964809e8..c92668b743 100644
--- a/sysdeps/unix/sysv/linux/csky/librt.abilist
+++ b/sysdeps/unix/sysv/linux/csky/librt.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.29 mq_unlink F
GLIBC_2.29 timer_create F
GLIBC_2.29 timer_delete F
GLIBC_2.29 timer_getoverrun F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index d2337afa48..7610cc4343 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -2215,6 +2215,7 @@ GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
+GLIBC_2.3.4 mq_unlink F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2394,6 +2395,7 @@ GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mq_timedsend F
+GLIBC_2.34 mq_unlink F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
index d697cfa27d..cfe4455a75 100644
--- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
@@ -4,7 +4,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.4 mq_unlink F
+GLIBC_2.3.4 __librt_version_placeholder F
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index ae326a36f4..54a6d61b0b 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -2396,6 +2396,7 @@ GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
+GLIBC_2.3.4 mq_unlink F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2578,6 +2579,7 @@ GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mq_timedsend F
+GLIBC_2.34 mq_unlink F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
index d697cfa27d..cfe4455a75 100644
--- a/sysdeps/unix/sysv/linux/i386/librt.abilist
+++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
@@ -4,7 +4,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.4 mq_unlink F
+GLIBC_2.3.4 __librt_version_placeholder F
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index ad7b86ca8e..cad4a129d1 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -2250,6 +2250,7 @@ GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
+GLIBC_2.3.4 mq_unlink F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2351,6 +2352,7 @@ GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mq_timedsend F
+GLIBC_2.34 mq_unlink F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
index 6c8eb08863..842df91625 100644
--- a/sysdeps/unix/sysv/linux/ia64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/librt.abilist
@@ -9,6 +9,6 @@ GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_unlink F
+GLIBC_2.3.4 __librt_version_placeholder F
GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index e0106e57e3..ff831374fa 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -326,6 +326,7 @@ GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mq_timedsend F
+GLIBC_2.34 mq_unlink F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
@@ -1731,6 +1732,7 @@ GLIBC_2.4 mq_send F
GLIBC_2.4 mq_setattr F
GLIBC_2.4 mq_timedreceive F
GLIBC_2.4 mq_timedsend F
+GLIBC_2.4 mq_unlink F
GLIBC_2.4 mrand48 F
GLIBC_2.4 mrand48_r F
GLIBC_2.4 mremap F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
index 00fffc9bf4..8682174e36 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -1,6 +1,5 @@
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
-GLIBC_2.4 mq_unlink F
GLIBC_2.4 timer_create F
GLIBC_2.4 timer_delete F
GLIBC_2.4 timer_getoverrun F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 833105c87e..b2c98b40e9 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2339,6 +2339,7 @@ GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
+GLIBC_2.3.4 mq_unlink F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2521,6 +2522,7 @@ GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mq_timedsend F
+GLIBC_2.34 mq_unlink F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
index d697cfa27d..cfe4455a75 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
@@ -4,7 +4,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.4 mq_unlink F
+GLIBC_2.3.4 __librt_version_placeholder F
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 168143b004..fa945ee6fc 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -1369,6 +1369,7 @@ GLIBC_2.18 mq_send F
GLIBC_2.18 mq_setattr F
GLIBC_2.18 mq_timedreceive F
GLIBC_2.18 mq_timedsend F
+GLIBC_2.18 mq_unlink F
GLIBC_2.18 mrand48 F
GLIBC_2.18 mrand48_r F
GLIBC_2.18 mremap F
@@ -2492,6 +2493,7 @@ GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mq_timedsend F
+GLIBC_2.34 mq_unlink F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
index d0b5c08211..fcfed800bf 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.18 mq_unlink F
GLIBC_2.18 timer_create F
GLIBC_2.18 timer_delete F
GLIBC_2.18 timer_getoverrun F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 478c35898d..c65815be74 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -1369,6 +1369,7 @@ GLIBC_2.18 mq_send F
GLIBC_2.18 mq_setattr F
GLIBC_2.18 mq_timedreceive F
GLIBC_2.18 mq_timedsend F
+GLIBC_2.18 mq_unlink F
GLIBC_2.18 mrand48 F
GLIBC_2.18 mrand48_r F
GLIBC_2.18 mremap F
@@ -2489,6 +2490,7 @@ GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mq_timedsend F
+GLIBC_2.34 mq_unlink F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
index d0b5c08211..fcfed800bf 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.18 mq_unlink F
GLIBC_2.18 timer_create F
GLIBC_2.18 timer_delete F
GLIBC_2.18 timer_getoverrun F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 4d2c5e7fff..9c0174bf65 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -2307,6 +2307,7 @@ GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
+GLIBC_2.3.4 mq_unlink F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2486,6 +2487,7 @@ GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mq_timedsend F
+GLIBC_2.34 mq_unlink F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
index c2dcd8a037..da85415743 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
@@ -3,7 +3,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.4 mq_unlink F
+GLIBC_2.3.4 __librt_version_placeholder F
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 729413e091..ac245f4413 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -2305,6 +2305,7 @@ GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
+GLIBC_2.3.4 mq_unlink F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2484,6 +2485,7 @@ GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mq_timedsend F
+GLIBC_2.34 mq_unlink F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index cc82aa817c..f17c4b3412 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -2313,6 +2313,7 @@ GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
+GLIBC_2.3.4 mq_unlink F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2492,6 +2493,7 @@ GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mq_timedsend F
+GLIBC_2.34 mq_unlink F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
index c2dcd8a037..da85415743 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
@@ -3,7 +3,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.4 mq_unlink F
+GLIBC_2.3.4 __librt_version_placeholder F
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 746072a535..4d9dea349d 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -2307,6 +2307,7 @@ GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
+GLIBC_2.3.4 mq_unlink F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2407,6 +2408,7 @@ GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mq_timedsend F
+GLIBC_2.34 mq_unlink F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
index 1daa0ecaef..51354b072d 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
@@ -3,6 +3,6 @@ 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.4 mq_unlink F
+GLIBC_2.3.4 __librt_version_placeholder F
GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mq_unlink.c b/sysdeps/unix/sysv/linux/mq_unlink.c
index dcdc6519c4..4afe95af44 100644
--- a/sysdeps/unix/sysv/linux/mq_unlink.c
+++ b/sysdeps/unix/sysv/linux/mq_unlink.c
@@ -18,10 +18,11 @@
#include <errno.h>
#include <mqueue.h>
#include <sysdep.h>
+#include <shlib-compat.h>
/* Remove message queue named NAME. */
int
-mq_unlink (const char *name)
+__mq_unlink (const char *name)
{
if (name[0] != '/')
return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
@@ -40,3 +41,7 @@ mq_unlink (const char *name)
return ret;
}
+versioned_symbol (libc, __mq_unlink, mq_unlink, GLIBC_2_34);
+#if OTHER_SHLIB_COMPAT (librt, GLIBC_2_3_4, GLIBC_2_34)
+compat_symbol (libc, __mq_unlink, mq_unlink, GLIBC_2_3_4);
+#endif
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index cd69447f25..a1f3808f18 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -1412,6 +1412,7 @@ GLIBC_2.21 mq_send F
GLIBC_2.21 mq_setattr F
GLIBC_2.21 mq_timedreceive F
GLIBC_2.21 mq_timedsend F
+GLIBC_2.21 mq_unlink F
GLIBC_2.21 mrand48 F
GLIBC_2.21 mrand48_r F
GLIBC_2.21 mremap F
@@ -2531,6 +2532,7 @@ GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mq_timedsend F
+GLIBC_2.34 mq_unlink F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
index 1ebc8dc94b..29111b77bd 100644
--- a/sysdeps/unix/sysv/linux/nios2/librt.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/librt.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.21 mq_unlink F
GLIBC_2.21 timer_create F
GLIBC_2.21 timer_delete F
GLIBC_2.21 timer_getoverrun F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 23ac9ab4ea..c80718d0b1 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -2353,6 +2353,7 @@ GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
+GLIBC_2.3.4 mq_unlink F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2548,6 +2549,7 @@ GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mq_timedsend F
+GLIBC_2.34 mq_unlink F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
index d697cfa27d..cfe4455a75 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
@@ -4,7 +4,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.4 mq_unlink F
+GLIBC_2.3.4 __librt_version_placeholder F
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 6f082b2d25..8156d06db5 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -2386,6 +2386,7 @@ GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
+GLIBC_2.3.4 mq_unlink F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2581,6 +2582,7 @@ GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mq_timedsend F
+GLIBC_2.34 mq_unlink F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 52cdbc92d4..a99bd9409b 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -2199,6 +2199,7 @@ GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
+GLIBC_2.3.4 mq_unlink F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2315,6 +2316,7 @@ GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mq_timedsend F
+GLIBC_2.34 mq_unlink F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
index 41ac10c6e9..9df959a434 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
@@ -8,6 +8,6 @@ GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_unlink F
+GLIBC_2.3.4 __librt_version_placeholder F
GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index a6f254b4da..ae562f2864 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -1455,6 +1455,7 @@ GLIBC_2.17 mq_send F
GLIBC_2.17 mq_setattr F
GLIBC_2.17 mq_timedreceive F
GLIBC_2.17 mq_timedsend F
+GLIBC_2.17 mq_unlink F
GLIBC_2.17 mrand48 F
GLIBC_2.17 mrand48_r F
GLIBC_2.17 mremap F
@@ -2615,6 +2616,7 @@ GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mq_timedsend F
+GLIBC_2.34 mq_unlink F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
index 4f4c72f3cc..54bb3e5c7c 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.17 mq_unlink F
GLIBC_2.17 timer_create F
GLIBC_2.17 timer_delete F
GLIBC_2.17 timer_getoverrun F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index a2749838fd..7422465183 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1300,6 +1300,7 @@ GLIBC_2.33 mq_send F
GLIBC_2.33 mq_setattr F
GLIBC_2.33 mq_timedreceive F
GLIBC_2.33 mq_timedsend F
+GLIBC_2.33 mq_unlink F
GLIBC_2.33 mrand48 F
GLIBC_2.33 mrand48_r F
GLIBC_2.33 mremap F
@@ -2180,6 +2181,7 @@ GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mq_timedsend F
+GLIBC_2.34 mq_unlink F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
index bcede2f3c4..540cdef209 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.33 mq_unlink F
GLIBC_2.33 timer_create F
GLIBC_2.33 timer_delete F
GLIBC_2.33 timer_getoverrun F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 7c4d8cc40c..0bb8343ac4 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -1350,6 +1350,7 @@ GLIBC_2.27 mq_send F
GLIBC_2.27 mq_setattr F
GLIBC_2.27 mq_timedreceive F
GLIBC_2.27 mq_timedsend F
+GLIBC_2.27 mq_unlink F
GLIBC_2.27 mrand48 F
GLIBC_2.27 mrand48_r F
GLIBC_2.27 mremap F
@@ -2380,6 +2381,7 @@ GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mq_timedsend F
+GLIBC_2.34 mq_unlink F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
index 15bac0b449..e436beaf7e 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.27 mq_unlink F
GLIBC_2.27 timer_create F
GLIBC_2.27 timer_delete F
GLIBC_2.27 timer_getoverrun F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 99c003615f..f9db909d63 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -2352,6 +2352,7 @@ GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
+GLIBC_2.3.4 mq_unlink F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2546,6 +2547,7 @@ GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mq_timedsend F
+GLIBC_2.34 mq_unlink F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
index d697cfa27d..cfe4455a75 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
@@ -4,7 +4,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.4 mq_unlink F
+GLIBC_2.3.4 __librt_version_placeholder F
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 3441d1fcd7..593e5f9ae7 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -2240,6 +2240,7 @@ GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
+GLIBC_2.3.4 mq_unlink F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2352,6 +2353,7 @@ GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mq_timedsend F
+GLIBC_2.34 mq_unlink F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
index 0d4d401608..9e185ecaef 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
@@ -8,6 +8,6 @@ GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_unlink F
+GLIBC_2.3.4 __librt_version_placeholder F
GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 420f80d921..8da4e375d9 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -2219,6 +2219,7 @@ GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
+GLIBC_2.3.4 mq_unlink F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2401,6 +2402,7 @@ GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mq_timedsend F
+GLIBC_2.34 mq_unlink F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
index d697cfa27d..cfe4455a75 100644
--- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
@@ -4,7 +4,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.4 mq_unlink F
+GLIBC_2.3.4 __librt_version_placeholder F
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index d4cf18a52d..6f13625e6f 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -2219,6 +2219,7 @@ GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
+GLIBC_2.3.4 mq_unlink F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2398,6 +2399,7 @@ GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mq_timedsend F
+GLIBC_2.34 mq_unlink F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
index d697cfa27d..cfe4455a75 100644
--- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
@@ -4,7 +4,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.4 mq_unlink F
+GLIBC_2.3.4 __librt_version_placeholder F
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 0e4ca149d8..984222296d 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -2350,6 +2350,7 @@ GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
+GLIBC_2.3.4 mq_unlink F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2541,6 +2542,7 @@ GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mq_timedsend F
+GLIBC_2.34 mq_unlink F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
index d246e770d0..fb3a2042e0 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
@@ -5,7 +5,7 @@ GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
GLIBC_2.3 __librt_version_placeholder F
-GLIBC_2.3.4 mq_unlink F
+GLIBC_2.3.4 __librt_version_placeholder F
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index b9e9d89789..a6dc7f2e40 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -2274,6 +2274,7 @@ GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
+GLIBC_2.3.4 mq_unlink F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2374,6 +2375,7 @@ GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mq_timedsend F
+GLIBC_2.34 mq_unlink F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
index 3156616c8b..8592c90bdf 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
@@ -10,6 +10,6 @@ GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_unlink F
+GLIBC_2.3.4 __librt_version_placeholder F
GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 8029500dd3..5d0a9c4012 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -2228,6 +2228,7 @@ GLIBC_2.3.4 mq_send F
GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
+GLIBC_2.3.4 mq_unlink F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2330,6 +2331,7 @@ GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mq_timedsend F
+GLIBC_2.34 mq_unlink F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
index d20321ccad..ce501e124d 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
@@ -8,6 +8,6 @@ GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_unlink F
+GLIBC_2.3.4 __librt_version_placeholder F
GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index d572f528bc..d67ef0b6d5 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -1374,6 +1374,7 @@ GLIBC_2.16 mq_send F
GLIBC_2.16 mq_setattr F
GLIBC_2.16 mq_timedreceive F
GLIBC_2.16 mq_timedsend F
+GLIBC_2.16 mq_unlink F
GLIBC_2.16 mrand48 F
GLIBC_2.16 mrand48_r F
GLIBC_2.16 mremap F
@@ -2434,6 +2435,7 @@ GLIBC_2.34 mq_send F
GLIBC_2.34 mq_setattr F
GLIBC_2.34 mq_timedreceive F
GLIBC_2.34 mq_timedsend F
+GLIBC_2.34 mq_unlink F
GLIBC_2.34 mtx_destroy F
GLIBC_2.34 mtx_init F
GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
index 7ae8f7dc74..3144e2e290 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.16 mq_unlink F
GLIBC_2.16 timer_create F
GLIBC_2.16 timer_delete F
GLIBC_2.16 timer_getoverrun F
--
2.31.1
^ permalink raw reply [flat|nested] 72+ messages in thread
* Re: [PATCH 27/34] Linux: Move mq_unlink from librt to libc
2021-06-17 18:59 ` [PATCH 27/34] Linux: Move mq_unlink from librt " Florian Weimer
@ 2021-06-24 14:31 ` Adhemerval Zanella
0 siblings, 0 replies; 72+ messages in thread
From: Adhemerval Zanella @ 2021-06-24 14:31 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 17/06/2021 15:59, Florian Weimer via Libc-alpha wrote:
> The symbol was moved using scripts/move-symbol-to-libc.py.
> A placeholder symbol is needed on some architectures for the
> GLIBC_2.3.4 version.
LGTM, thanks.
Reviewed-by: Adhemerva Zanella <adhemerval.zanella@linaro.org>
> ---
> rt/Makefile | 2 +-
> rt/Versions | 8 ++++++--
> rt/librt-compat.c | 6 ++++++
> sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/aarch64/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/alpha/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/alpha/librt.abilist | 2 +-
> sysdeps/unix/sysv/linux/arc/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/arc/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/arm/be/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/arm/be/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/arm/le/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/arm/le/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/csky/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/csky/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/hppa/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/hppa/librt.abilist | 2 +-
> sysdeps/unix/sysv/linux/i386/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/i386/librt.abilist | 2 +-
> sysdeps/unix/sysv/linux/ia64/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/ia64/librt.abilist | 2 +-
> sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist | 2 +-
> sysdeps/unix/sysv/linux/microblaze/be/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/microblaze/be/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/microblaze/le/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/microblaze/le/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/mips/mips32/librt.abilist | 2 +-
> sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist | 2 +-
> sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist | 2 +-
> sysdeps/unix/sysv/linux/mq_unlink.c | 7 ++++++-
> sysdeps/unix/sysv/linux/nios2/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/nios2/librt.abilist | 1 -
> .../unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist | 2 +-
> .../unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist | 2 ++
> .../unix/sysv/linux/powerpc/powerpc64/be/librt.abilist | 2 +-
> sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist | 2 ++
> .../unix/sysv/linux/powerpc/powerpc64/le/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist | 2 +-
> sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist | 2 +-
> sysdeps/unix/sysv/linux/sh/be/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/sh/be/librt.abilist | 2 +-
> sysdeps/unix/sysv/linux/sh/le/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/sh/le/librt.abilist | 2 +-
> sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist | 2 +-
> sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist | 2 +-
> sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/x86_64/64/librt.abilist | 2 +-
> sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist | 1 -
> 66 files changed, 100 insertions(+), 34 deletions(-)
>
> diff --git a/rt/Makefile b/rt/Makefile
> index cea1189f4d..bd9d31b985 100644
> --- a/rt/Makefile
> +++ b/rt/Makefile
> @@ -30,7 +30,6 @@ routines = \
>
> librt-routines = \
> librt-compat \
> - mq_unlink \
> timer_create \
> timer_delete \
> timer_getoverr \
> @@ -63,6 +62,7 @@ $(librt-routines-var) += \
> mq_setattr \
> mq_timedreceive \
> mq_timedsend \
> + mq_unlink \
>
> tests := tst-shm tst-timer tst-timer2 \
> tst-aio tst-aio64 tst-aio2 tst-aio3 tst-aio4 tst-aio5 tst-aio6 \
Ok.
> diff --git a/rt/Versions b/rt/Versions
> index 3363ccb526..9a09062a2a 100644
> --- a/rt/Versions
> +++ b/rt/Versions
> @@ -35,6 +35,7 @@ libc {
> mq_setattr;
> mq_timedreceive;
> mq_timedsend;
> + mq_unlink;
> %endif
> }
> GLIBC_2.4 {
> @@ -77,6 +78,7 @@ libc {
> mq_setattr;
> mq_timedreceive;
> mq_timedsend;
> + mq_unlink;
> %endif
> shm_open;
> shm_unlink;
> @@ -127,7 +129,9 @@ librt {
> timer_settime;
> }
> GLIBC_2.3.4 {
> -%if !PTHREAD_IN_LIBC
> +%if PTHREAD_IN_LIBC
> + __librt_version_placeholder;
> +%else
> mq_close;
> mq_getattr;
> mq_notify;
> @@ -137,8 +141,8 @@ librt {
> mq_setattr;
> mq_timedreceive;
> mq_timedsend;
> -%endif
> mq_unlink;
> +%endif
> }
> GLIBC_2.4 {
> %if PTHREAD_IN_LIBC
Ok.
> diff --git a/rt/librt-compat.c b/rt/librt-compat.c
> index ef353acdd1..24c2ed9db4 100644
> --- a/rt/librt-compat.c
> +++ b/rt/librt-compat.c
> @@ -33,6 +33,12 @@ compat_symbol (librt, __librt_version_placeholder_1,
> # endif
>
> # if SHLIB_COMPAT (librt, GLIBC_2_4, GLIBC_2_34) \
> + && ABI_librt_GLIBC_2_3_4 != ABI_librt_GLIBC_2_1
> +compat_symbol (librt, __librt_version_placeholder_1,
> + __librt_version_placeholder, GLIBC_2_3_4);
> +# endif
> +
> +# if SHLIB_COMPAT (librt, GLIBC_2_4, GLIBC_2_34) \
> && ABI_librt_GLIBC_2_4 != ABI_librt_GLIBC_2_1
> compat_symbol (librt, __librt_version_placeholder_1,
> __librt_version_placeholder, GLIBC_2_4);
Ok.
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index b4edd23bc8..141d5cb843 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -1367,6 +1367,7 @@ GLIBC_2.17 mq_send F
> GLIBC_2.17 mq_setattr F
> GLIBC_2.17 mq_timedreceive F
> GLIBC_2.17 mq_timedsend F
> +GLIBC_2.17 mq_unlink F
> GLIBC_2.17 mrand48 F
> GLIBC_2.17 mrand48_r F
> GLIBC_2.17 mremap F
> @@ -2419,6 +2420,7 @@ GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mq_timedsend F
> +GLIBC_2.34 mq_unlink F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> index 4f4c72f3cc..54bb3e5c7c 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.17 mq_unlink F
> GLIBC_2.17 timer_create F
> GLIBC_2.17 timer_delete F
> GLIBC_2.17 timer_getoverrun F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index c2fd6ec79e..5441b6a3f3 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -2401,6 +2401,7 @@ GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> +GLIBC_2.3.4 mq_unlink F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2513,6 +2514,7 @@ GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mq_timedsend F
> +GLIBC_2.34 mq_unlink F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
> index 3156616c8b..8592c90bdf 100644
> --- a/sysdeps/unix/sysv/linux/alpha/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist
> @@ -10,6 +10,6 @@ GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> -GLIBC_2.3.4 mq_unlink F
> +GLIBC_2.3.4 __librt_version_placeholder F
> GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index c36d673f3e..37fd195f70 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -1298,6 +1298,7 @@ GLIBC_2.32 mq_send F
> GLIBC_2.32 mq_setattr F
> GLIBC_2.32 mq_timedreceive F
> GLIBC_2.32 mq_timedsend F
> +GLIBC_2.32 mq_unlink F
> GLIBC_2.32 mrand48 F
> GLIBC_2.32 mrand48_r F
> GLIBC_2.32 mremap F
> @@ -2178,6 +2179,7 @@ GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mq_timedsend F
> +GLIBC_2.34 mq_unlink F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
> index c69ae6e40b..0454fb41fd 100644
> --- a/sysdeps/unix/sysv/linux/arc/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/librt.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.32 mq_unlink F
> GLIBC_2.32 timer_create F
> GLIBC_2.32 timer_delete F
> GLIBC_2.32 timer_getoverrun F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index b44d7f5d23..42ba748c07 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -325,6 +325,7 @@ GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mq_timedsend F
> +GLIBC_2.34 mq_unlink F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> @@ -1747,6 +1748,7 @@ GLIBC_2.4 mq_send F
> GLIBC_2.4 mq_setattr F
> GLIBC_2.4 mq_timedreceive F
> GLIBC_2.4 mq_timedsend F
> +GLIBC_2.4 mq_unlink F
> GLIBC_2.4 mrand48 F
> GLIBC_2.4 mrand48_r F
> GLIBC_2.4 mremap F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> index 00fffc9bf4..8682174e36 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> @@ -1,6 +1,5 @@
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> -GLIBC_2.4 mq_unlink F
> GLIBC_2.4 timer_create F
> GLIBC_2.4 timer_delete F
> GLIBC_2.4 timer_getoverrun F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index 4335ee8c5b..92f06718bd 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -322,6 +322,7 @@ GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mq_timedsend F
> +GLIBC_2.34 mq_unlink F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> @@ -1744,6 +1745,7 @@ GLIBC_2.4 mq_send F
> GLIBC_2.4 mq_setattr F
> GLIBC_2.4 mq_timedreceive F
> GLIBC_2.4 mq_timedsend F
> +GLIBC_2.4 mq_unlink F
> GLIBC_2.4 mrand48 F
> GLIBC_2.4 mrand48_r F
> GLIBC_2.4 mremap F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> index 00fffc9bf4..8682174e36 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> @@ -1,6 +1,5 @@
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> -GLIBC_2.4 mq_unlink F
> GLIBC_2.4 timer_create F
> GLIBC_2.4 timer_delete F
> GLIBC_2.4 timer_getoverrun F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index 11f34272fa..7ee4e79de2 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -1353,6 +1353,7 @@ GLIBC_2.29 mq_send F
> GLIBC_2.29 mq_setattr F
> GLIBC_2.29 mq_timedreceive F
> GLIBC_2.29 mq_timedsend F
> +GLIBC_2.29 mq_unlink F
> GLIBC_2.29 mrand48 F
> GLIBC_2.29 mrand48_r F
> GLIBC_2.29 mremap F
> @@ -2441,6 +2442,7 @@ GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mq_timedsend F
> +GLIBC_2.34 mq_unlink F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
> index 81964809e8..c92668b743 100644
> --- a/sysdeps/unix/sysv/linux/csky/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/librt.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.29 mq_unlink F
> GLIBC_2.29 timer_create F
> GLIBC_2.29 timer_delete F
> GLIBC_2.29 timer_getoverrun F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index d2337afa48..7610cc4343 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -2215,6 +2215,7 @@ GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> +GLIBC_2.3.4 mq_unlink F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2394,6 +2395,7 @@ GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mq_timedsend F
> +GLIBC_2.34 mq_unlink F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
> index d697cfa27d..cfe4455a75 100644
> --- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
> @@ -4,7 +4,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.4 mq_unlink F
> +GLIBC_2.3.4 __librt_version_placeholder F
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index ae326a36f4..54a6d61b0b 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -2396,6 +2396,7 @@ GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> +GLIBC_2.3.4 mq_unlink F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2578,6 +2579,7 @@ GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mq_timedsend F
> +GLIBC_2.34 mq_unlink F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
> index d697cfa27d..cfe4455a75 100644
> --- a/sysdeps/unix/sysv/linux/i386/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
> @@ -4,7 +4,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.4 mq_unlink F
> +GLIBC_2.3.4 __librt_version_placeholder F
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index ad7b86ca8e..cad4a129d1 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -2250,6 +2250,7 @@ GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> +GLIBC_2.3.4 mq_unlink F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2351,6 +2352,7 @@ GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mq_timedsend F
> +GLIBC_2.34 mq_unlink F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
> index 6c8eb08863..842df91625 100644
> --- a/sysdeps/unix/sysv/linux/ia64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/librt.abilist
> @@ -9,6 +9,6 @@ GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> -GLIBC_2.3.4 mq_unlink F
> +GLIBC_2.3.4 __librt_version_placeholder F
> GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index e0106e57e3..ff831374fa 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -326,6 +326,7 @@ GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mq_timedsend F
> +GLIBC_2.34 mq_unlink F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> @@ -1731,6 +1732,7 @@ GLIBC_2.4 mq_send F
> GLIBC_2.4 mq_setattr F
> GLIBC_2.4 mq_timedreceive F
> GLIBC_2.4 mq_timedsend F
> +GLIBC_2.4 mq_unlink F
> GLIBC_2.4 mrand48 F
> GLIBC_2.4 mrand48_r F
> GLIBC_2.4 mremap F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> index 00fffc9bf4..8682174e36 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> @@ -1,6 +1,5 @@
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> -GLIBC_2.4 mq_unlink F
> GLIBC_2.4 timer_create F
> GLIBC_2.4 timer_delete F
> GLIBC_2.4 timer_getoverrun F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index 833105c87e..b2c98b40e9 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -2339,6 +2339,7 @@ GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> +GLIBC_2.3.4 mq_unlink F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2521,6 +2522,7 @@ GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mq_timedsend F
> +GLIBC_2.34 mq_unlink F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> index d697cfa27d..cfe4455a75 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> @@ -4,7 +4,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.4 mq_unlink F
> +GLIBC_2.3.4 __librt_version_placeholder F
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index 168143b004..fa945ee6fc 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -1369,6 +1369,7 @@ GLIBC_2.18 mq_send F
> GLIBC_2.18 mq_setattr F
> GLIBC_2.18 mq_timedreceive F
> GLIBC_2.18 mq_timedsend F
> +GLIBC_2.18 mq_unlink F
> GLIBC_2.18 mrand48 F
> GLIBC_2.18 mrand48_r F
> GLIBC_2.18 mremap F
> @@ -2492,6 +2493,7 @@ GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mq_timedsend F
> +GLIBC_2.34 mq_unlink F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> index d0b5c08211..fcfed800bf 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.18 mq_unlink F
> GLIBC_2.18 timer_create F
> GLIBC_2.18 timer_delete F
> GLIBC_2.18 timer_getoverrun F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index 478c35898d..c65815be74 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -1369,6 +1369,7 @@ GLIBC_2.18 mq_send F
> GLIBC_2.18 mq_setattr F
> GLIBC_2.18 mq_timedreceive F
> GLIBC_2.18 mq_timedsend F
> +GLIBC_2.18 mq_unlink F
> GLIBC_2.18 mrand48 F
> GLIBC_2.18 mrand48_r F
> GLIBC_2.18 mremap F
> @@ -2489,6 +2490,7 @@ GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mq_timedsend F
> +GLIBC_2.34 mq_unlink F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> index d0b5c08211..fcfed800bf 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.18 mq_unlink F
> GLIBC_2.18 timer_create F
> GLIBC_2.18 timer_delete F
> GLIBC_2.18 timer_getoverrun F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index 4d2c5e7fff..9c0174bf65 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -2307,6 +2307,7 @@ GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> +GLIBC_2.3.4 mq_unlink F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2486,6 +2487,7 @@ GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mq_timedsend F
> +GLIBC_2.34 mq_unlink F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> index c2dcd8a037..da85415743 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> @@ -3,7 +3,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.4 mq_unlink F
> +GLIBC_2.3.4 __librt_version_placeholder F
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index 729413e091..ac245f4413 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -2305,6 +2305,7 @@ GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> +GLIBC_2.3.4 mq_unlink F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2484,6 +2485,7 @@ GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mq_timedsend F
> +GLIBC_2.34 mq_unlink F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index cc82aa817c..f17c4b3412 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -2313,6 +2313,7 @@ GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> +GLIBC_2.3.4 mq_unlink F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2492,6 +2493,7 @@ GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mq_timedsend F
> +GLIBC_2.34 mq_unlink F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> index c2dcd8a037..da85415743 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> @@ -3,7 +3,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.4 mq_unlink F
> +GLIBC_2.3.4 __librt_version_placeholder F
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index 746072a535..4d9dea349d 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -2307,6 +2307,7 @@ GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> +GLIBC_2.3.4 mq_unlink F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2407,6 +2408,7 @@ GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mq_timedsend F
> +GLIBC_2.34 mq_unlink F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> index 1daa0ecaef..51354b072d 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> @@ -3,6 +3,6 @@ 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.4 mq_unlink F
> +GLIBC_2.3.4 __librt_version_placeholder F
> GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __librt_version_placeholder F
Ok.
> diff --git a/sysdeps/unix/sysv/linux/mq_unlink.c b/sysdeps/unix/sysv/linux/mq_unlink.c
> index dcdc6519c4..4afe95af44 100644
> --- a/sysdeps/unix/sysv/linux/mq_unlink.c
> +++ b/sysdeps/unix/sysv/linux/mq_unlink.c
> @@ -18,10 +18,11 @@
> #include <errno.h>
> #include <mqueue.h>
> #include <sysdep.h>
> +#include <shlib-compat.h>
>
> /* Remove message queue named NAME. */
> int
> -mq_unlink (const char *name)
> +__mq_unlink (const char *name)
> {
> if (name[0] != '/')
> return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
> @@ -40,3 +41,7 @@ mq_unlink (const char *name)
>
> return ret;
> }
> +versioned_symbol (libc, __mq_unlink, mq_unlink, GLIBC_2_34);
> +#if OTHER_SHLIB_COMPAT (librt, GLIBC_2_3_4, GLIBC_2_34)
> +compat_symbol (libc, __mq_unlink, mq_unlink, GLIBC_2_3_4);
> +#endif
Ok.
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index cd69447f25..a1f3808f18 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -1412,6 +1412,7 @@ GLIBC_2.21 mq_send F
> GLIBC_2.21 mq_setattr F
> GLIBC_2.21 mq_timedreceive F
> GLIBC_2.21 mq_timedsend F
> +GLIBC_2.21 mq_unlink F
> GLIBC_2.21 mrand48 F
> GLIBC_2.21 mrand48_r F
> GLIBC_2.21 mremap F
> @@ -2531,6 +2532,7 @@ GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mq_timedsend F
> +GLIBC_2.34 mq_unlink F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
> index 1ebc8dc94b..29111b77bd 100644
> --- a/sysdeps/unix/sysv/linux/nios2/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/librt.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.21 mq_unlink F
> GLIBC_2.21 timer_create F
> GLIBC_2.21 timer_delete F
> GLIBC_2.21 timer_getoverrun F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index 23ac9ab4ea..c80718d0b1 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -2353,6 +2353,7 @@ GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> +GLIBC_2.3.4 mq_unlink F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2548,6 +2549,7 @@ GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mq_timedsend F
> +GLIBC_2.34 mq_unlink F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> index d697cfa27d..cfe4455a75 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> @@ -4,7 +4,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.4 mq_unlink F
> +GLIBC_2.3.4 __librt_version_placeholder F
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index 6f082b2d25..8156d06db5 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -2386,6 +2386,7 @@ GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> +GLIBC_2.3.4 mq_unlink F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2581,6 +2582,7 @@ GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mq_timedsend F
> +GLIBC_2.34 mq_unlink F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index 52cdbc92d4..a99bd9409b 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -2199,6 +2199,7 @@ GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> +GLIBC_2.3.4 mq_unlink F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2315,6 +2316,7 @@ GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mq_timedsend F
> +GLIBC_2.34 mq_unlink F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> index 41ac10c6e9..9df959a434 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> @@ -8,6 +8,6 @@ GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> -GLIBC_2.3.4 mq_unlink F
> +GLIBC_2.3.4 __librt_version_placeholder F
> GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index a6f254b4da..ae562f2864 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -1455,6 +1455,7 @@ GLIBC_2.17 mq_send F
> GLIBC_2.17 mq_setattr F
> GLIBC_2.17 mq_timedreceive F
> GLIBC_2.17 mq_timedsend F
> +GLIBC_2.17 mq_unlink F
> GLIBC_2.17 mrand48 F
> GLIBC_2.17 mrand48_r F
> GLIBC_2.17 mremap F
> @@ -2615,6 +2616,7 @@ GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mq_timedsend F
> +GLIBC_2.34 mq_unlink F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> index 4f4c72f3cc..54bb3e5c7c 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.17 mq_unlink F
> GLIBC_2.17 timer_create F
> GLIBC_2.17 timer_delete F
> GLIBC_2.17 timer_getoverrun F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index a2749838fd..7422465183 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -1300,6 +1300,7 @@ GLIBC_2.33 mq_send F
> GLIBC_2.33 mq_setattr F
> GLIBC_2.33 mq_timedreceive F
> GLIBC_2.33 mq_timedsend F
> +GLIBC_2.33 mq_unlink F
> GLIBC_2.33 mrand48 F
> GLIBC_2.33 mrand48_r F
> GLIBC_2.33 mremap F
> @@ -2180,6 +2181,7 @@ GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mq_timedsend F
> +GLIBC_2.34 mq_unlink F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> index bcede2f3c4..540cdef209 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.33 mq_unlink F
> GLIBC_2.33 timer_create F
> GLIBC_2.33 timer_delete F
> GLIBC_2.33 timer_getoverrun F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index 7c4d8cc40c..0bb8343ac4 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -1350,6 +1350,7 @@ GLIBC_2.27 mq_send F
> GLIBC_2.27 mq_setattr F
> GLIBC_2.27 mq_timedreceive F
> GLIBC_2.27 mq_timedsend F
> +GLIBC_2.27 mq_unlink F
> GLIBC_2.27 mrand48 F
> GLIBC_2.27 mrand48_r F
> GLIBC_2.27 mremap F
> @@ -2380,6 +2381,7 @@ GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mq_timedsend F
> +GLIBC_2.34 mq_unlink F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> index 15bac0b449..e436beaf7e 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.27 mq_unlink F
> GLIBC_2.27 timer_create F
> GLIBC_2.27 timer_delete F
> GLIBC_2.27 timer_getoverrun F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index 99c003615f..f9db909d63 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -2352,6 +2352,7 @@ GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> +GLIBC_2.3.4 mq_unlink F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2546,6 +2547,7 @@ GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mq_timedsend F
> +GLIBC_2.34 mq_unlink F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> index d697cfa27d..cfe4455a75 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> @@ -4,7 +4,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.4 mq_unlink F
> +GLIBC_2.3.4 __librt_version_placeholder F
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index 3441d1fcd7..593e5f9ae7 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -2240,6 +2240,7 @@ GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> +GLIBC_2.3.4 mq_unlink F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2352,6 +2353,7 @@ GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mq_timedsend F
> +GLIBC_2.34 mq_unlink F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> index 0d4d401608..9e185ecaef 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> @@ -8,6 +8,6 @@ GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> -GLIBC_2.3.4 mq_unlink F
> +GLIBC_2.3.4 __librt_version_placeholder F
> GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index 420f80d921..8da4e375d9 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -2219,6 +2219,7 @@ GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> +GLIBC_2.3.4 mq_unlink F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2401,6 +2402,7 @@ GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mq_timedsend F
> +GLIBC_2.34 mq_unlink F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> index d697cfa27d..cfe4455a75 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> @@ -4,7 +4,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.4 mq_unlink F
> +GLIBC_2.3.4 __librt_version_placeholder F
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index d4cf18a52d..6f13625e6f 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -2219,6 +2219,7 @@ GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> +GLIBC_2.3.4 mq_unlink F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2398,6 +2399,7 @@ GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mq_timedsend F
> +GLIBC_2.34 mq_unlink F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> index d697cfa27d..cfe4455a75 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> @@ -4,7 +4,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.4 mq_unlink F
> +GLIBC_2.3.4 __librt_version_placeholder F
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index 0e4ca149d8..984222296d 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -2350,6 +2350,7 @@ GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> +GLIBC_2.3.4 mq_unlink F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2541,6 +2542,7 @@ GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mq_timedsend F
> +GLIBC_2.34 mq_unlink F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> index d246e770d0..fb3a2042e0 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> @@ -5,7 +5,7 @@ GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> GLIBC_2.3 __librt_version_placeholder F
> -GLIBC_2.3.4 mq_unlink F
> +GLIBC_2.3.4 __librt_version_placeholder F
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index b9e9d89789..a6dc7f2e40 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -2274,6 +2274,7 @@ GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> +GLIBC_2.3.4 mq_unlink F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2374,6 +2375,7 @@ GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mq_timedsend F
> +GLIBC_2.34 mq_unlink F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> index 3156616c8b..8592c90bdf 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> @@ -10,6 +10,6 @@ GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> -GLIBC_2.3.4 mq_unlink F
> +GLIBC_2.3.4 __librt_version_placeholder F
> GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index 8029500dd3..5d0a9c4012 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -2228,6 +2228,7 @@ GLIBC_2.3.4 mq_send F
> GLIBC_2.3.4 mq_setattr F
> GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> +GLIBC_2.3.4 mq_unlink F
> GLIBC_2.3.4 pthread_attr_getaffinity_np F
> GLIBC_2.3.4 pthread_attr_setaffinity_np F
> GLIBC_2.3.4 pthread_getaffinity_np F
> @@ -2330,6 +2331,7 @@ GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mq_timedsend F
> +GLIBC_2.34 mq_unlink F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> index d20321ccad..ce501e124d 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> @@ -8,6 +8,6 @@ GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> -GLIBC_2.3.4 mq_unlink F
> +GLIBC_2.3.4 __librt_version_placeholder F
> GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index d572f528bc..d67ef0b6d5 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -1374,6 +1374,7 @@ GLIBC_2.16 mq_send F
> GLIBC_2.16 mq_setattr F
> GLIBC_2.16 mq_timedreceive F
> GLIBC_2.16 mq_timedsend F
> +GLIBC_2.16 mq_unlink F
> GLIBC_2.16 mrand48 F
> GLIBC_2.16 mrand48_r F
> GLIBC_2.16 mremap F
> @@ -2434,6 +2435,7 @@ GLIBC_2.34 mq_send F
> GLIBC_2.34 mq_setattr F
> GLIBC_2.34 mq_timedreceive F
> GLIBC_2.34 mq_timedsend F
> +GLIBC_2.34 mq_unlink F
> GLIBC_2.34 mtx_destroy F
> GLIBC_2.34 mtx_init F
> GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> index 7ae8f7dc74..3144e2e290 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.16 mq_unlink F
> GLIBC_2.16 timer_create F
> GLIBC_2.16 timer_delete F
> GLIBC_2.16 timer_getoverrun F
>
Ok.
^ permalink raw reply [flat|nested] 72+ messages in thread
* [PATCH 28/34] Linux: Move timer helper routines from librt to libc
2021-06-17 18:56 [PATCH v2 00/34] Move librt into libc Florian Weimer
` (26 preceding siblings ...)
2021-06-17 18:59 ` [PATCH 27/34] Linux: Move mq_unlink from librt " Florian Weimer
@ 2021-06-17 18:59 ` Florian Weimer
2021-06-24 14:41 ` Adhemerval Zanella
2021-06-17 18:59 ` [PATCH 29/34] Linux: Define TIMER_T_WAS_INT_COMPAT in kernel-posix-timers.h Florian Weimer
` (6 subsequent siblings)
34 siblings, 1 reply; 72+ messages in thread
From: Florian Weimer @ 2021-06-17 18:59 UTC (permalink / raw)
To: libc-alpha
This adds several temporary GLIBC_PRIVATE exports. The symbol names
are changed so that they all start with __timer_.
It is now possible to invoke the fork handler directly, so
pthread_atfork is no longer necessary. The associated error cannot
happen anymore, and cancellation handling can be removed from
the helper thread routine.
---
sysdeps/nptl/Makefile | 2 +-
sysdeps/nptl/fork.c | 2 +
sysdeps/unix/sysv/linux/Versions | 5 ++
sysdeps/unix/sysv/linux/kernel-posix-timers.h | 22 ++++---
sysdeps/unix/sysv/linux/timer_create.c | 14 ++---
sysdeps/unix/sysv/linux/timer_delete.c | 10 ++--
sysdeps/unix/sysv/linux/timer_routines.c | 59 +++++++++----------
7 files changed, 64 insertions(+), 50 deletions(-)
diff --git a/sysdeps/nptl/Makefile b/sysdeps/nptl/Makefile
index 0707f130eb..27aa41af3c 100644
--- a/sysdeps/nptl/Makefile
+++ b/sysdeps/nptl/Makefile
@@ -17,7 +17,7 @@
# <https://www.gnu.org/licenses/>.
ifeq ($(subdir),rt)
-librt-sysdep_routines += timer_routines
+sysdep_routines += timer_routines
tests += tst-mqueue8x
CFLAGS-tst-mqueue8x.c += -fexceptions
diff --git a/sysdeps/nptl/fork.c b/sysdeps/nptl/fork.c
index d6a0996b79..930716c403 100644
--- a/sysdeps/nptl/fork.c
+++ b/sysdeps/nptl/fork.c
@@ -37,6 +37,7 @@
#include <sys/single_threaded.h>
#include <list.h>
#include <mqueue.h>
+#include <kernel-posix-timers.h>
static void
fresetlockfiles (void)
@@ -231,6 +232,7 @@ __libc_fork (void)
_IO_list_resetlock ();
call_function_static_weak (__mq_notify_fork_subprocess);
+ call_function_static_weak (__timer_fork_subprocess);
call_function_static_weak (__nss_database_fork_subprocess,
&nss_database_data);
diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions
index 051ecf9390..47d4357b9f 100644
--- a/sysdeps/unix/sysv/linux/Versions
+++ b/sysdeps/unix/sysv/linux/Versions
@@ -282,6 +282,11 @@ libc {
__pread64_nocancel;
__close_nocancel;
__sigtimedwait;
+ __timer_active_sigev_thread;
+ __timer_active_sigev_thread_lock;
+ __timer_helper_once;
+ __timer_helper_tid;
+ __timer_start_helper_thread;
# functions used by nscd
__netlink_assert_response;
}
diff --git a/sysdeps/unix/sysv/linux/kernel-posix-timers.h b/sysdeps/unix/sysv/linux/kernel-posix-timers.h
index 959a81a4d2..17fc32d48f 100644
--- a/sysdeps/unix/sysv/linux/kernel-posix-timers.h
+++ b/sysdeps/unix/sysv/linux/kernel-posix-timers.h
@@ -26,19 +26,27 @@
extern int __no_posix_timers attribute_hidden;
/* Callback to start helper thread. */
-extern void __start_helper_thread (void) attribute_hidden;
+extern void __timer_start_helper_thread (void);
+libc_hidden_proto (__timer_start_helper_thread)
/* Control variable for helper thread creation. */
-extern pthread_once_t __helper_once attribute_hidden;
+extern pthread_once_t __timer_helper_once;
+libc_hidden_proto (__timer_helper_once)
+
+/* Called from fork so that the new subprocess re-creates the
+ notification thread if necessary. */
+void __timer_fork_subprocess (void) attribute_hidden;
/* TID of the helper thread. */
-extern pid_t __helper_tid attribute_hidden;
+extern pid_t __timer_helper_tid;
+libc_hidden_proto (__timer_helper_tid)
/* List of active SIGEV_THREAD timers. */
-extern struct timer *__active_timer_sigev_thread attribute_hidden;
-/* Lock for the __active_timer_sigev_thread. */
-extern pthread_mutex_t __active_timer_sigev_thread_lock attribute_hidden;
-
+extern struct timer *__timer_active_sigev_thread;
+libc_hidden_proto (__timer_active_sigev_thread)
+/* Lock for __timer_active_sigev_thread. */
+extern pthread_mutex_t __timer_active_sigev_thread_lock;
+libc_hidden_proto (__timer_active_sigev_thread_lock)
/* Type of timers in the kernel. */
typedef int kernel_timer_t;
diff --git a/sysdeps/unix/sysv/linux/timer_create.c b/sysdeps/unix/sysv/linux/timer_create.c
index 1ea0086487..b21b0ca949 100644
--- a/sysdeps/unix/sysv/linux/timer_create.c
+++ b/sysdeps/unix/sysv/linux/timer_create.c
@@ -74,8 +74,8 @@ timer_create (clockid_t clock_id, struct sigevent *evp, timer_t *timerid)
else
{
/* Create the helper thread. */
- pthread_once (&__helper_once, __start_helper_thread);
- if (__helper_tid == 0)
+ pthread_once (&__timer_helper_once, __timer_start_helper_thread);
+ if (__timer_helper_tid == 0)
{
/* No resources to start the helper thread. */
__set_errno (EAGAIN);
@@ -118,7 +118,7 @@ timer_create (clockid_t clock_id, struct sigevent *evp, timer_t *timerid)
{ .sigev_value.sival_ptr = newp,
.sigev_signo = SIGTIMER,
.sigev_notify = SIGEV_SIGNAL | SIGEV_THREAD_ID,
- ._sigev_un = { ._pad = { [0] = __helper_tid } } };
+ ._sigev_un = { ._pad = { [0] = __timer_helper_tid } } };
/* Create the timer. */
int res;
@@ -132,10 +132,10 @@ timer_create (clockid_t clock_id, struct sigevent *evp, timer_t *timerid)
}
/* Add to the queue of active timers with thread delivery. */
- pthread_mutex_lock (&__active_timer_sigev_thread_lock);
- newp->next = __active_timer_sigev_thread;
- __active_timer_sigev_thread = newp;
- pthread_mutex_unlock (&__active_timer_sigev_thread_lock);
+ pthread_mutex_lock (&__timer_active_sigev_thread_lock);
+ newp->next = __timer_active_sigev_thread;
+ __timer_active_sigev_thread = newp;
+ pthread_mutex_unlock (&__timer_active_sigev_thread_lock);
*timerid = timer_to_timerid (newp);
}
diff --git a/sysdeps/unix/sysv/linux/timer_delete.c b/sysdeps/unix/sysv/linux/timer_delete.c
index 50aac8fc27..a7a183591e 100644
--- a/sysdeps/unix/sysv/linux/timer_delete.c
+++ b/sysdeps/unix/sysv/linux/timer_delete.c
@@ -42,12 +42,12 @@ timer_delete (timer_t timerid)
struct timer *kt = timerid_to_timer (timerid);
/* Remove the timer from the list. */
- pthread_mutex_lock (&__active_timer_sigev_thread_lock);
- if (__active_timer_sigev_thread == kt)
- __active_timer_sigev_thread = kt->next;
+ pthread_mutex_lock (&__timer_active_sigev_thread_lock);
+ if (__timer_active_sigev_thread == kt)
+ __timer_active_sigev_thread = kt->next;
else
{
- struct timer *prevp = __active_timer_sigev_thread;
+ struct timer *prevp = __timer_active_sigev_thread;
while (prevp->next != NULL)
if (prevp->next == kt)
{
@@ -57,7 +57,7 @@ timer_delete (timer_t timerid)
else
prevp = prevp->next;
}
- pthread_mutex_unlock (&__active_timer_sigev_thread_lock);
+ pthread_mutex_unlock (&__timer_active_sigev_thread_lock);
free (kt);
}
diff --git a/sysdeps/unix/sysv/linux/timer_routines.c b/sysdeps/unix/sysv/linux/timer_routines.c
index 4098da8a5f..8d8c1a1e76 100644
--- a/sysdeps/unix/sysv/linux/timer_routines.c
+++ b/sysdeps/unix/sysv/linux/timer_routines.c
@@ -26,10 +26,13 @@
/* List of active SIGEV_THREAD timers. */
-struct timer *__active_timer_sigev_thread;
-/* Lock for the __active_timer_sigev_thread. */
-pthread_mutex_t __active_timer_sigev_thread_lock = PTHREAD_MUTEX_INITIALIZER;
+struct timer *__timer_active_sigev_thread __attribute__ ((nocommon));
+libc_hidden_data_def (__timer_active_sigev_thread)
+/* Lock for _timer_active_sigev_thread. */
+pthread_mutex_t __timer_active_sigev_thread_lock __attribute__ ((nocommon))
+ = PTHREAD_MUTEX_INITIALIZER;
+libc_hidden_data_def (__timer_active_sigev_thread_lock)
struct thread_start_data
{
@@ -59,7 +62,7 @@ timer_sigev_thread (void *arg)
/* Helper function to support starting threads for SIGEV_THREAD. */
-static void *
+static _Noreturn void *
timer_helper_thread (void *arg)
{
/* Endless loop of waiting for signals. The loop is only ended when
@@ -68,16 +71,16 @@ timer_helper_thread (void *arg)
{
siginfo_t si;
- while (sigwaitinfo (&sigtimer_set, &si) < 0);
+ while (__sigwaitinfo (&sigtimer_set, &si) < 0);
if (si.si_code == SI_TIMER)
{
struct timer *tk = (struct timer *) si.si_ptr;
/* Check the timer is still used and will not go away
while we are reading the values here. */
- pthread_mutex_lock (&__active_timer_sigev_thread_lock);
+ __pthread_mutex_lock (&__timer_active_sigev_thread_lock);
- struct timer *runp = __active_timer_sigev_thread;
+ struct timer *runp = __timer_active_sigev_thread;
while (runp != NULL)
if (runp == tk)
break;
@@ -96,45 +99,44 @@ timer_helper_thread (void *arg)
td->sival = tk->sival;
pthread_t th;
- pthread_create (&th, &tk->attr, timer_sigev_thread, td);
+ __pthread_create (&th, &tk->attr, timer_sigev_thread, td);
}
}
- pthread_mutex_unlock (&__active_timer_sigev_thread_lock);
+ __pthread_mutex_unlock (&__timer_active_sigev_thread_lock);
}
- else if (si.si_code == SI_TKILL)
- /* The thread is canceled. */
- pthread_exit (NULL);
}
}
/* Control variable for helper thread creation. */
-pthread_once_t __helper_once attribute_hidden;
+pthread_once_t __timer_helper_once __attribute__ ((nocommon))
+ = PTHREAD_ONCE_INIT;
+libc_hidden_data_def (__timer_helper_once)
/* TID of the helper thread. */
-pid_t __helper_tid attribute_hidden;
+pid_t __timer_helper_tid __attribute__ ((nocommon));
+libc_hidden_data_def (__timer_helper_tid)
/* Reset variables so that after a fork a new helper thread gets started. */
-static void
-reset_helper_control (void)
+void
+__timer_fork_subprocess (void)
{
- __helper_once = PTHREAD_ONCE_INIT;
- __helper_tid = 0;
+ __timer_helper_once = PTHREAD_ONCE_INIT;
+ __timer_helper_tid = 0;
}
void
-attribute_hidden
-__start_helper_thread (void)
+__timer_start_helper_thread (void)
{
/* The helper thread needs only very little resources
and should go away automatically when canceled. */
pthread_attr_t attr;
- (void) pthread_attr_init (&attr);
- (void) pthread_attr_setstacksize (&attr, __pthread_get_minstack (&attr));
+ (void) __pthread_attr_init (&attr);
+ (void) __pthread_attr_setstacksize (&attr, __pthread_get_minstack (&attr));
/* Block all signals in the helper thread but SIGSETXID. */
sigset_t ss;
@@ -143,21 +145,18 @@ __start_helper_thread (void)
int res = __pthread_attr_setsigmask_internal (&attr, &ss);
if (res != 0)
{
- pthread_attr_destroy (&attr);
+ __pthread_attr_destroy (&attr);
return;
}
/* Create the helper thread for this timer. */
pthread_t th;
- res = pthread_create (&th, &attr, timer_helper_thread, NULL);
+ res = __pthread_create (&th, &attr, timer_helper_thread, NULL);
if (res == 0)
/* We managed to start the helper thread. */
- __helper_tid = ((struct pthread *) th)->tid;
+ __timer_helper_tid = ((struct pthread *) th)->tid;
/* No need for the attribute anymore. */
- (void) pthread_attr_destroy (&attr);
-
- /* We have to make sure that after fork()ing a new helper thread can
- be created. */
- pthread_atfork (NULL, NULL, reset_helper_control);
+ (void) __pthread_attr_destroy (&attr);
}
+libc_hidden_def (__timer_start_helper_thread)
--
2.31.1
^ permalink raw reply [flat|nested] 72+ messages in thread
* Re: [PATCH 28/34] Linux: Move timer helper routines from librt to libc
2021-06-17 18:59 ` [PATCH 28/34] Linux: Move timer helper routines " Florian Weimer
@ 2021-06-24 14:41 ` Adhemerval Zanella
2021-06-25 11:38 ` Florian Weimer
0 siblings, 1 reply; 72+ messages in thread
From: Adhemerval Zanella @ 2021-06-24 14:41 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 17/06/2021 15:59, Florian Weimer via Libc-alpha wrote:
> This adds several temporary GLIBC_PRIVATE exports. The symbol names
> are changed so that they all start with __timer_.
>
> It is now possible to invoke the fork handler directly, so
> pthread_atfork is no longer necessary. The associated error cannot
> happen anymore, and cancellation handling can be removed from
> the helper thread routine.
LGTM, thanks.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> ---
> sysdeps/nptl/Makefile | 2 +-
> sysdeps/nptl/fork.c | 2 +
> sysdeps/unix/sysv/linux/Versions | 5 ++
> sysdeps/unix/sysv/linux/kernel-posix-timers.h | 22 ++++---
> sysdeps/unix/sysv/linux/timer_create.c | 14 ++---
> sysdeps/unix/sysv/linux/timer_delete.c | 10 ++--
> sysdeps/unix/sysv/linux/timer_routines.c | 59 +++++++++----------
> 7 files changed, 64 insertions(+), 50 deletions(-)
>
> diff --git a/sysdeps/nptl/Makefile b/sysdeps/nptl/Makefile
> index 0707f130eb..27aa41af3c 100644
> --- a/sysdeps/nptl/Makefile
> +++ b/sysdeps/nptl/Makefile
> @@ -17,7 +17,7 @@
> # <https://www.gnu.org/licenses/>.
>
> ifeq ($(subdir),rt)
> -librt-sysdep_routines += timer_routines
> +sysdep_routines += timer_routines
>
> tests += tst-mqueue8x
> CFLAGS-tst-mqueue8x.c += -fexceptions
Ok.
> diff --git a/sysdeps/nptl/fork.c b/sysdeps/nptl/fork.c
> index d6a0996b79..930716c403 100644
> --- a/sysdeps/nptl/fork.c
> +++ b/sysdeps/nptl/fork.c
> @@ -37,6 +37,7 @@
> #include <sys/single_threaded.h>
> #include <list.h>
> #include <mqueue.h>
> +#include <kernel-posix-timers.h>
>
> static void
> fresetlockfiles (void)
> @@ -231,6 +232,7 @@ __libc_fork (void)
> _IO_list_resetlock ();
>
> call_function_static_weak (__mq_notify_fork_subprocess);
> + call_function_static_weak (__timer_fork_subprocess);
>
> call_function_static_weak (__nss_database_fork_subprocess,
> &nss_database_data);
Ok.
> diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions
> index 051ecf9390..47d4357b9f 100644
> --- a/sysdeps/unix/sysv/linux/Versions
> +++ b/sysdeps/unix/sysv/linux/Versions
> @@ -282,6 +282,11 @@ libc {
> __pread64_nocancel;
> __close_nocancel;
> __sigtimedwait;
> + __timer_active_sigev_thread;
> + __timer_active_sigev_thread_lock;
> + __timer_helper_once;
> + __timer_helper_tid;
> + __timer_start_helper_thread;
> # functions used by nscd
> __netlink_assert_response;
> }
Ok.
> diff --git a/sysdeps/unix/sysv/linux/kernel-posix-timers.h b/sysdeps/unix/sysv/linux/kernel-posix-timers.h
> index 959a81a4d2..17fc32d48f 100644
> --- a/sysdeps/unix/sysv/linux/kernel-posix-timers.h
> +++ b/sysdeps/unix/sysv/linux/kernel-posix-timers.h
> @@ -26,19 +26,27 @@
> extern int __no_posix_timers attribute_hidden;
>
> /* Callback to start helper thread. */
> -extern void __start_helper_thread (void) attribute_hidden;
> +extern void __timer_start_helper_thread (void);
> +libc_hidden_proto (__timer_start_helper_thread)
>
> /* Control variable for helper thread creation. */
> -extern pthread_once_t __helper_once attribute_hidden;
> +extern pthread_once_t __timer_helper_once;
> +libc_hidden_proto (__timer_helper_once)
> +
> +/* Called from fork so that the new subprocess re-creates the
> + notification thread if necessary. */
> +void __timer_fork_subprocess (void) attribute_hidden;
>
> /* TID of the helper thread. */
> -extern pid_t __helper_tid attribute_hidden;
> +extern pid_t __timer_helper_tid;
> +libc_hidden_proto (__timer_helper_tid)
>
> /* List of active SIGEV_THREAD timers. */
> -extern struct timer *__active_timer_sigev_thread attribute_hidden;
> -/* Lock for the __active_timer_sigev_thread. */
> -extern pthread_mutex_t __active_timer_sigev_thread_lock attribute_hidden;
> -
> +extern struct timer *__timer_active_sigev_thread;
> +libc_hidden_proto (__timer_active_sigev_thread)
> +/* Lock for __timer_active_sigev_thread. */
> +extern pthread_mutex_t __timer_active_sigev_thread_lock;
> +libc_hidden_proto (__timer_active_sigev_thread_lock)
>
> /* Type of timers in the kernel. */
> typedef int kernel_timer_t;
Ok.
> diff --git a/sysdeps/unix/sysv/linux/timer_create.c b/sysdeps/unix/sysv/linux/timer_create.c
> index 1ea0086487..b21b0ca949 100644
> --- a/sysdeps/unix/sysv/linux/timer_create.c
> +++ b/sysdeps/unix/sysv/linux/timer_create.c
> @@ -74,8 +74,8 @@ timer_create (clockid_t clock_id, struct sigevent *evp, timer_t *timerid)
> else
> {
> /* Create the helper thread. */
> - pthread_once (&__helper_once, __start_helper_thread);
> - if (__helper_tid == 0)
> + pthread_once (&__timer_helper_once, __timer_start_helper_thread);
> + if (__timer_helper_tid == 0)
> {
> /* No resources to start the helper thread. */
> __set_errno (EAGAIN);
Ok.
> @@ -118,7 +118,7 @@ timer_create (clockid_t clock_id, struct sigevent *evp, timer_t *timerid)
> { .sigev_value.sival_ptr = newp,
> .sigev_signo = SIGTIMER,
> .sigev_notify = SIGEV_SIGNAL | SIGEV_THREAD_ID,
> - ._sigev_un = { ._pad = { [0] = __helper_tid } } };
> + ._sigev_un = { ._pad = { [0] = __timer_helper_tid } } };
>
> /* Create the timer. */
> int res;
> @@ -132,10 +132,10 @@ timer_create (clockid_t clock_id, struct sigevent *evp, timer_t *timerid)
> }
>
> /* Add to the queue of active timers with thread delivery. */
> - pthread_mutex_lock (&__active_timer_sigev_thread_lock);
> - newp->next = __active_timer_sigev_thread;
> - __active_timer_sigev_thread = newp;
> - pthread_mutex_unlock (&__active_timer_sigev_thread_lock);
> + pthread_mutex_lock (&__timer_active_sigev_thread_lock);
> + newp->next = __timer_active_sigev_thread;
> + __timer_active_sigev_thread = newp;
> + pthread_mutex_unlock (&__timer_active_sigev_thread_lock);
>
> *timerid = timer_to_timerid (newp);
> }
Ok.
> diff --git a/sysdeps/unix/sysv/linux/timer_delete.c b/sysdeps/unix/sysv/linux/timer_delete.c
> index 50aac8fc27..a7a183591e 100644
> --- a/sysdeps/unix/sysv/linux/timer_delete.c
> +++ b/sysdeps/unix/sysv/linux/timer_delete.c
> @@ -42,12 +42,12 @@ timer_delete (timer_t timerid)
> struct timer *kt = timerid_to_timer (timerid);
>
> /* Remove the timer from the list. */
> - pthread_mutex_lock (&__active_timer_sigev_thread_lock);
> - if (__active_timer_sigev_thread == kt)
> - __active_timer_sigev_thread = kt->next;
> + pthread_mutex_lock (&__timer_active_sigev_thread_lock);
> + if (__timer_active_sigev_thread == kt)
> + __timer_active_sigev_thread = kt->next;
> else
> {
> - struct timer *prevp = __active_timer_sigev_thread;
> + struct timer *prevp = __timer_active_sigev_thread;
> while (prevp->next != NULL)
> if (prevp->next == kt)
> {
Ok.
> @@ -57,7 +57,7 @@ timer_delete (timer_t timerid)
> else
> prevp = prevp->next;
> }
> - pthread_mutex_unlock (&__active_timer_sigev_thread_lock);
> + pthread_mutex_unlock (&__timer_active_sigev_thread_lock);
>
> free (kt);
> }
Ok.
> diff --git a/sysdeps/unix/sysv/linux/timer_routines.c b/sysdeps/unix/sysv/linux/timer_routines.c
> index 4098da8a5f..8d8c1a1e76 100644
> --- a/sysdeps/unix/sysv/linux/timer_routines.c
> +++ b/sysdeps/unix/sysv/linux/timer_routines.c
> @@ -26,10 +26,13 @@
>
>
> /* List of active SIGEV_THREAD timers. */
> -struct timer *__active_timer_sigev_thread;
> -/* Lock for the __active_timer_sigev_thread. */
> -pthread_mutex_t __active_timer_sigev_thread_lock = PTHREAD_MUTEX_INITIALIZER;
> +struct timer *__timer_active_sigev_thread __attribute__ ((nocommon));
> +libc_hidden_data_def (__timer_active_sigev_thread)
>
> +/* Lock for _timer_active_sigev_thread. */
> +pthread_mutex_t __timer_active_sigev_thread_lock __attribute__ ((nocommon))
> + = PTHREAD_MUTEX_INITIALIZER;
> +libc_hidden_data_def (__timer_active_sigev_thread_lock)
>
> struct thread_start_data
> {
Ok. I think we should either use a macro initializer for global without
an initialization or add a attribute macro on cdef.h for
__attribute__ ((nocommon).
> @@ -59,7 +62,7 @@ timer_sigev_thread (void *arg)
>
>
> /* Helper function to support starting threads for SIGEV_THREAD. */
> -static void *
> +static _Noreturn void *
> timer_helper_thread (void *arg)
> {
> /* Endless loop of waiting for signals. The loop is only ended when
Ok.
> @@ -68,16 +71,16 @@ timer_helper_thread (void *arg)
> {
> siginfo_t si;
>
> - while (sigwaitinfo (&sigtimer_set, &si) < 0);
> + while (__sigwaitinfo (&sigtimer_set, &si) < 0);
> if (si.si_code == SI_TIMER)
> {
> struct timer *tk = (struct timer *) si.si_ptr;
>
> /* Check the timer is still used and will not go away
> while we are reading the values here. */
> - pthread_mutex_lock (&__active_timer_sigev_thread_lock);
> + __pthread_mutex_lock (&__timer_active_sigev_thread_lock);
>
> - struct timer *runp = __active_timer_sigev_thread;
> + struct timer *runp = __timer_active_sigev_thread;
> while (runp != NULL)
> if (runp == tk)
> break;
Ok.
> @@ -96,45 +99,44 @@ timer_helper_thread (void *arg)
> td->sival = tk->sival;
>
> pthread_t th;
> - pthread_create (&th, &tk->attr, timer_sigev_thread, td);
> + __pthread_create (&th, &tk->attr, timer_sigev_thread, td);
> }
> }
>
> - pthread_mutex_unlock (&__active_timer_sigev_thread_lock);
> + __pthread_mutex_unlock (&__timer_active_sigev_thread_lock);
> }
> - else if (si.si_code == SI_TKILL)
> - /* The thread is canceled. */
> - pthread_exit (NULL);
> }
> }
>
>
> /* Control variable for helper thread creation. */
> -pthread_once_t __helper_once attribute_hidden;
> +pthread_once_t __timer_helper_once __attribute__ ((nocommon))
> + = PTHREAD_ONCE_INIT;
> +libc_hidden_data_def (__timer_helper_once)
>
>
> /* TID of the helper thread. */
> -pid_t __helper_tid attribute_hidden;
> +pid_t __timer_helper_tid __attribute__ ((nocommon));
> +libc_hidden_data_def (__timer_helper_tid)
>
>
> /* Reset variables so that after a fork a new helper thread gets started. */
> -static void
> -reset_helper_control (void)
> +void
> +__timer_fork_subprocess (void)
> {
> - __helper_once = PTHREAD_ONCE_INIT;
> - __helper_tid = 0;
> + __timer_helper_once = PTHREAD_ONCE_INIT;
> + __timer_helper_tid = 0;
> }
>
>
Ok.
> void
> -attribute_hidden
> -__start_helper_thread (void)
> +__timer_start_helper_thread (void)
> {
> /* The helper thread needs only very little resources
> and should go away automatically when canceled. */
> pthread_attr_t attr;
> - (void) pthread_attr_init (&attr);
> - (void) pthread_attr_setstacksize (&attr, __pthread_get_minstack (&attr));
> + (void) __pthread_attr_init (&attr);
> + (void) __pthread_attr_setstacksize (&attr, __pthread_get_minstack (&attr));
>
> /* Block all signals in the helper thread but SIGSETXID. */
> sigset_t ss;
No need the extra casts here.
> @@ -143,21 +145,18 @@ __start_helper_thread (void)
> int res = __pthread_attr_setsigmask_internal (&attr, &ss);
> if (res != 0)
> {
> - pthread_attr_destroy (&attr);
> + __pthread_attr_destroy (&attr);
> return;
> }
>
> /* Create the helper thread for this timer. */
> pthread_t th;
> - res = pthread_create (&th, &attr, timer_helper_thread, NULL);
> + res = __pthread_create (&th, &attr, timer_helper_thread, NULL);
> if (res == 0)
> /* We managed to start the helper thread. */
> - __helper_tid = ((struct pthread *) th)->tid;
> + __timer_helper_tid = ((struct pthread *) th)->tid;
>
> /* No need for the attribute anymore. */
> - (void) pthread_attr_destroy (&attr);
> -
> - /* We have to make sure that after fork()ing a new helper thread can
> - be created. */
> - pthread_atfork (NULL, NULL, reset_helper_control);
> + (void) __pthread_attr_destroy (&attr);
> }
> +libc_hidden_def (__timer_start_helper_thread)
>
Ok.
^ permalink raw reply [flat|nested] 72+ messages in thread
* Re: [PATCH 28/34] Linux: Move timer helper routines from librt to libc
2021-06-24 14:41 ` Adhemerval Zanella
@ 2021-06-25 11:38 ` Florian Weimer
0 siblings, 0 replies; 72+ messages in thread
From: Florian Weimer @ 2021-06-25 11:38 UTC (permalink / raw)
To: Adhemerval Zanella; +Cc: libc-alpha
* Adhemerval Zanella:
>> +/* Lock for _timer_active_sigev_thread. */
>> +pthread_mutex_t __timer_active_sigev_thread_lock __attribute__ ((nocommon))
>> + = PTHREAD_MUTEX_INITIALIZER;
>> +libc_hidden_data_def (__timer_active_sigev_thread_lock)
>>
>> struct thread_start_data
>> {
>
> Ok. I think we should either use a macro initializer for global without
> an initialization or add a attribute macro on cdef.h for
> __attribute__ ((nocommon).
My plan is to submit a patch to build with -fno-common by default, then
all this won't be necessary. -fno-common has been supported by GCC for
a long time, it just hasn't been the default. But all of glibc can now
build with -fcommon.
Thanks,
Florian
^ permalink raw reply [flat|nested] 72+ messages in thread
* [PATCH 29/34] Linux: Define TIMER_T_WAS_INT_COMPAT in kernel-posix-timers.h
2021-06-17 18:56 [PATCH v2 00/34] Move librt into libc Florian Weimer
` (27 preceding siblings ...)
2021-06-17 18:59 ` [PATCH 28/34] Linux: Move timer helper routines " Florian Weimer
@ 2021-06-17 18:59 ` Florian Weimer
2021-06-24 16:21 ` Adhemerval Zanella
2021-06-17 18:59 ` [PATCH 30/34] Linux: Move timer_create, timer_delete from librt to libc Florian Weimer
` (5 subsequent siblings)
34 siblings, 1 reply; 72+ messages in thread
From: Florian Weimer @ 2021-06-17 18:59 UTC (permalink / raw)
To: libc-alpha
This is almost equivalent to __WORDSIZE == 64
&& OTHER_SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_3_3), except
that this expression is true for mips64/n64 targets as well,
even though those did not undergo the timer_t transition.
For the architecture-specific override to work, it is necessary
to switch from "..." includes to <...> includes.
---
.../sysv/linux/alpha/kernel-posix-timers.h | 22 +++++++++++++++++++
.../sysv/linux/ia64/kernel-posix-timers.h | 22 +++++++++++++++++++
sysdeps/unix/sysv/linux/kernel-posix-timers.h | 4 ++++
.../powerpc/powerpc64/kernel-posix-timers.h | 22 +++++++++++++++++++
.../linux/s390/s390-64/kernel-posix-timers.h | 22 +++++++++++++++++++
.../linux/sparc/sparc64/kernel-posix-timers.h | 22 +++++++++++++++++++
sysdeps/unix/sysv/linux/timer_create.c | 2 +-
sysdeps/unix/sysv/linux/timer_delete.c | 2 +-
sysdeps/unix/sysv/linux/timer_getoverr.c | 2 +-
sysdeps/unix/sysv/linux/timer_gettime.c | 2 +-
sysdeps/unix/sysv/linux/timer_routines.c | 2 +-
sysdeps/unix/sysv/linux/timer_settime.c | 2 +-
.../linux/x86_64/64/kernel-posix-timers.h | 22 +++++++++++++++++++
.../unix/sysv/linux/x86_64/timer_gettime.c | 2 +-
.../unix/sysv/linux/x86_64/timer_settime.c | 2 +-
15 files changed, 144 insertions(+), 8 deletions(-)
create mode 100644 sysdeps/unix/sysv/linux/alpha/kernel-posix-timers.h
create mode 100644 sysdeps/unix/sysv/linux/ia64/kernel-posix-timers.h
create mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc64/kernel-posix-timers.h
create mode 100644 sysdeps/unix/sysv/linux/s390/s390-64/kernel-posix-timers.h
create mode 100644 sysdeps/unix/sysv/linux/sparc/sparc64/kernel-posix-timers.h
create mode 100644 sysdeps/unix/sysv/linux/x86_64/64/kernel-posix-timers.h
diff --git a/sysdeps/unix/sysv/linux/alpha/kernel-posix-timers.h b/sysdeps/unix/sysv/linux/alpha/kernel-posix-timers.h
new file mode 100644
index 0000000000..e84dfb97e5
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/kernel-posix-timers.h
@@ -0,0 +1,22 @@
+/* POSIX timers support functionality. 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; see the file COPYING.LIB. If
+ not, see <https://www.gnu.org/licenses/>. */
+
+#include <sysdeps/unix/sysv/linux/kernel-posix-timers.h>
+
+#undef TIMER_T_WAS_INT_COMPAT
+#define TIMER_T_WAS_INT_COMPAT 1
diff --git a/sysdeps/unix/sysv/linux/ia64/kernel-posix-timers.h b/sysdeps/unix/sysv/linux/ia64/kernel-posix-timers.h
new file mode 100644
index 0000000000..fb00698cf7
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/ia64/kernel-posix-timers.h
@@ -0,0 +1,22 @@
+/* POSIX timers support functionality. ia64 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; see the file COPYING.LIB. If
+ not, see <https://www.gnu.org/licenses/>. */
+
+#include <sysdeps/unix/sysv/linux/kernel-posix-timers.h>
+
+#undef TIMER_T_WAS_INT_COMPAT
+#define TIMER_T_WAS_INT_COMPAT 1
diff --git a/sysdeps/unix/sysv/linux/kernel-posix-timers.h b/sysdeps/unix/sysv/linux/kernel-posix-timers.h
index 17fc32d48f..874b809eba 100644
--- a/sysdeps/unix/sysv/linux/kernel-posix-timers.h
+++ b/sysdeps/unix/sysv/linux/kernel-posix-timers.h
@@ -103,3 +103,7 @@ timerid_to_kernel_timer (timer_t timerid)
else
return (kernel_timer_t) ((uintptr_t) timerid);
}
+
+/* New targets use int instead of timer_t. The difference only
+ matters on 64-bit targets. */
+#define TIMER_T_WAS_INT_COMPAT 0
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/kernel-posix-timers.h b/sysdeps/unix/sysv/linux/powerpc/powerpc64/kernel-posix-timers.h
new file mode 100644
index 0000000000..718750db92
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/kernel-posix-timers.h
@@ -0,0 +1,22 @@
+/* POSIX timers support functionality. powerpc64 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; see the file COPYING.LIB. If
+ not, see <https://www.gnu.org/licenses/>. */
+
+#include <sysdeps/unix/sysv/linux/kernel-posix-timers.h>
+
+#undef TIMER_T_WAS_INT_COMPAT
+#define TIMER_T_WAS_INT_COMPAT 1
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/kernel-posix-timers.h b/sysdeps/unix/sysv/linux/s390/s390-64/kernel-posix-timers.h
new file mode 100644
index 0000000000..c8870c2dc1
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/kernel-posix-timers.h
@@ -0,0 +1,22 @@
+/* POSIX timers support functionality. s390x 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; see the file COPYING.LIB. If
+ not, see <https://www.gnu.org/licenses/>. */
+
+#include <sysdeps/unix/sysv/linux/kernel-posix-timers.h>
+
+#undef TIMER_T_WAS_INT_COMPAT
+#define TIMER_T_WAS_INT_COMPAT 1
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/kernel-posix-timers.h b/sysdeps/unix/sysv/linux/sparc/sparc64/kernel-posix-timers.h
new file mode 100644
index 0000000000..b8485379ca
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/kernel-posix-timers.h
@@ -0,0 +1,22 @@
+/* POSIX timers support functionality. sparc64 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; see the file COPYING.LIB. If
+ not, see <https://www.gnu.org/licenses/>. */
+
+#include <sysdeps/unix/sysv/linux/kernel-posix-timers.h>
+
+#undef TIMER_T_WAS_INT_COMPAT
+#define TIMER_T_WAS_INT_COMPAT 1
diff --git a/sysdeps/unix/sysv/linux/timer_create.c b/sysdeps/unix/sysv/linux/timer_create.c
index b21b0ca949..3dcd5455fc 100644
--- a/sysdeps/unix/sysv/linux/timer_create.c
+++ b/sysdeps/unix/sysv/linux/timer_create.c
@@ -25,7 +25,7 @@
#include <sysdep.h>
#include <internaltypes.h>
#include <pthreadP.h>
-#include "kernel-posix-timers.h"
+#include <kernel-posix-timers.h>
#include "kernel-posix-cpu-timers.h"
diff --git a/sysdeps/unix/sysv/linux/timer_delete.c b/sysdeps/unix/sysv/linux/timer_delete.c
index a7a183591e..ee8c364d95 100644
--- a/sysdeps/unix/sysv/linux/timer_delete.c
+++ b/sysdeps/unix/sysv/linux/timer_delete.c
@@ -20,7 +20,7 @@
#include <stdlib.h>
#include <time.h>
#include <sysdep.h>
-#include "kernel-posix-timers.h"
+#include <kernel-posix-timers.h>
#ifdef timer_delete_alias
diff --git a/sysdeps/unix/sysv/linux/timer_getoverr.c b/sysdeps/unix/sysv/linux/timer_getoverr.c
index 9c7ba3acad..b997290768 100644
--- a/sysdeps/unix/sysv/linux/timer_getoverr.c
+++ b/sysdeps/unix/sysv/linux/timer_getoverr.c
@@ -19,7 +19,7 @@
#include <errno.h>
#include <time.h>
#include <sysdep.h>
-#include "kernel-posix-timers.h"
+#include <kernel-posix-timers.h>
#ifdef timer_getoverrun_alias
diff --git a/sysdeps/unix/sysv/linux/timer_gettime.c b/sysdeps/unix/sysv/linux/timer_gettime.c
index 193fe3b140..0b31324da7 100644
--- a/sysdeps/unix/sysv/linux/timer_gettime.c
+++ b/sysdeps/unix/sysv/linux/timer_gettime.c
@@ -21,7 +21,7 @@
#include <time.h>
#include <sysdep.h>
#include <kernel-features.h>
-#include "kernel-posix-timers.h"
+#include <kernel-posix-timers.h>
int
__timer_gettime64 (timer_t timerid, struct __itimerspec64 *value)
diff --git a/sysdeps/unix/sysv/linux/timer_routines.c b/sysdeps/unix/sysv/linux/timer_routines.c
index 8d8c1a1e76..fc3aa894ab 100644
--- a/sysdeps/unix/sysv/linux/timer_routines.c
+++ b/sysdeps/unix/sysv/linux/timer_routines.c
@@ -22,7 +22,7 @@
#include <stdbool.h>
#include <sysdep-cancel.h>
#include <pthreadP.h>
-#include "kernel-posix-timers.h"
+#include <kernel-posix-timers.h>
/* List of active SIGEV_THREAD timers. */
diff --git a/sysdeps/unix/sysv/linux/timer_settime.c b/sysdeps/unix/sysv/linux/timer_settime.c
index f8bb16a4c2..b8326e36a4 100644
--- a/sysdeps/unix/sysv/linux/timer_settime.c
+++ b/sysdeps/unix/sysv/linux/timer_settime.c
@@ -21,7 +21,7 @@
#include <time.h>
#include <sysdep.h>
#include <kernel-features.h>
-#include "kernel-posix-timers.h"
+#include <kernel-posix-timers.h>
int
__timer_settime64 (timer_t timerid, int flags,
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/kernel-posix-timers.h b/sysdeps/unix/sysv/linux/x86_64/64/kernel-posix-timers.h
new file mode 100644
index 0000000000..db0beb5920
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/x86_64/64/kernel-posix-timers.h
@@ -0,0 +1,22 @@
+/* POSIX timers support functionality. x86_64 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; see the file COPYING.LIB. If
+ not, see <https://www.gnu.org/licenses/>. */
+
+#include <sysdeps/unix/sysv/linux/kernel-posix-timers.h>
+
+#undef TIMER_T_WAS_INT_COMPAT
+#define TIMER_T_WAS_INT_COMPAT 1
diff --git a/sysdeps/unix/sysv/linux/x86_64/timer_gettime.c b/sysdeps/unix/sysv/linux/x86_64/timer_gettime.c
index 3f3ae12d6b..107b1f97c7 100644
--- a/sysdeps/unix/sysv/linux/x86_64/timer_gettime.c
+++ b/sysdeps/unix/sysv/linux/x86_64/timer_gettime.c
@@ -18,7 +18,7 @@
#include <shlib-compat.h>
#include <sysdep.h>
-#include "kernel-posix-timers.h"
+#include <kernel-posix-timers.h>
#include "compat-timer.h"
int
diff --git a/sysdeps/unix/sysv/linux/x86_64/timer_settime.c b/sysdeps/unix/sysv/linux/x86_64/timer_settime.c
index 14a05965a3..f987cd16d3 100644
--- a/sysdeps/unix/sysv/linux/x86_64/timer_settime.c
+++ b/sysdeps/unix/sysv/linux/x86_64/timer_settime.c
@@ -18,7 +18,7 @@
#include <shlib-compat.h>
#include <sysdep.h>
-#include "kernel-posix-timers.h"
+#include <kernel-posix-timers.h>
#include "compat-timer.h"
int
--
2.31.1
^ permalink raw reply [flat|nested] 72+ messages in thread
* Re: [PATCH 29/34] Linux: Define TIMER_T_WAS_INT_COMPAT in kernel-posix-timers.h
2021-06-17 18:59 ` [PATCH 29/34] Linux: Define TIMER_T_WAS_INT_COMPAT in kernel-posix-timers.h Florian Weimer
@ 2021-06-24 16:21 ` Adhemerval Zanella
0 siblings, 0 replies; 72+ messages in thread
From: Adhemerval Zanella @ 2021-06-24 16:21 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 17/06/2021 15:59, Florian Weimer via Libc-alpha wrote:
> diff --git a/sysdeps/unix/sysv/linux/kernel-posix-timers.h b/sysdeps/unix/sysv/linux/kernel-posix-timers.h
> index 17fc32d48f..874b809eba 100644
> --- a/sysdeps/unix/sysv/linux/kernel-posix-timers.h
> +++ b/sysdeps/unix/sysv/linux/kernel-posix-timers.h
> @@ -103,3 +103,7 @@ timerid_to_kernel_timer (timer_t timerid)
> else
> return (kernel_timer_t) ((uintptr_t) timerid);
> }
> +
> +/* New targets use int instead of timer_t. The difference only
> + matters on 64-bit targets. */
> +#define TIMER_T_WAS_INT_COMPAT 0
I think it would be better to move this to its own file, so there is no need to
include, undef, define on each arch-specific files.
^ permalink raw reply [flat|nested] 72+ messages in thread
* [PATCH 30/34] Linux: Move timer_create, timer_delete from librt to libc
2021-06-17 18:56 [PATCH v2 00/34] Move librt into libc Florian Weimer
` (28 preceding siblings ...)
2021-06-17 18:59 ` [PATCH 29/34] Linux: Define TIMER_T_WAS_INT_COMPAT in kernel-posix-timers.h Florian Weimer
@ 2021-06-17 18:59 ` Florian Weimer
2021-06-24 17:18 ` Adhemerval Zanella
2021-06-17 18:59 ` [PATCH 31/34] Linux: Move timer_getoverrun " Florian Weimer
` (4 subsequent siblings)
34 siblings, 1 reply; 72+ messages in thread
From: Florian Weimer @ 2021-06-17 18:59 UTC (permalink / raw)
To: libc-alpha
The symbols were moved using scripts/move-symbol-to-libc.py.
timer_create and timer_delete are tied together via the int/timer_t
compatibility code. The way the ABI intransition is implemented
is changed with this commit: the implementation is now consolidated
in one file with a TIMER_T_WAS_INT_COMPAT check.
---
rt/Makefile | 4 +-
rt/Versions | 26 ++++---
sysdeps/unix/sysv/linux/Versions | 5 ++
sysdeps/unix/sysv/linux/aarch64/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/aarch64/librt.abilist | 2 -
sysdeps/unix/sysv/linux/alpha/Versions | 2 +-
sysdeps/unix/sysv/linux/alpha/libc.abilist | 6 ++
sysdeps/unix/sysv/linux/alpha/librt.abilist | 4 --
sysdeps/unix/sysv/linux/alpha/timer_create.c | 1 -
sysdeps/unix/sysv/linux/alpha/timer_delete.c | 1 -
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/Versions | 2 +-
sysdeps/unix/sysv/linux/ia64/libc.abilist | 6 ++
sysdeps/unix/sysv/linux/ia64/librt.abilist | 4 --
sysdeps/unix/sysv/linux/ia64/timer_create.c | 1 -
sysdeps/unix/sysv/linux/ia64/timer_delete.c | 1 -
sysdeps/unix/sysv/linux/kernel-posix-timers.h | 10 +++
.../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 ++
.../sysv/linux/powerpc/powerpc64/Versions | 2 +-
.../linux/powerpc/powerpc64/be/libc.abilist | 6 ++
.../linux/powerpc/powerpc64/be/librt.abilist | 4 --
.../linux/powerpc/powerpc64/le/libc.abilist | 4 ++
.../linux/powerpc/powerpc64/le/librt.abilist | 2 -
.../linux/powerpc/powerpc64/timer_create.c | 1 -
.../linux/powerpc/powerpc64/timer_delete.c | 1 -
.../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 -
sysdeps/unix/sysv/linux/s390/s390-64/Versions | 2 +-
.../unix/sysv/linux/s390/s390-64/libc.abilist | 6 ++
.../sysv/linux/s390/s390-64/librt.abilist | 4 --
.../sysv/linux/s390/s390-64/timer_create.c | 1 -
.../sysv/linux/s390/s390-64/timer_delete.c | 1 -
sysdeps/unix/sysv/linux/sh/be/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/sh/be/librt.abilist | 2 -
sysdeps/unix/sysv/linux/sh/le/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/sh/le/librt.abilist | 2 -
.../sysv/linux/sparc/sparc32/libc.abilist | 4 ++
.../sysv/linux/sparc/sparc32/librt.abilist | 2 -
.../unix/sysv/linux/sparc/sparc64/Versions | 2 +-
.../sysv/linux/sparc/sparc64/libc.abilist | 6 ++
.../sysv/linux/sparc/sparc64/librt.abilist | 4 --
.../sysv/linux/sparc/sparc64/timer_create.c | 1 -
.../sysv/linux/sparc/sparc64/timer_delete.c | 1 -
sysdeps/unix/sysv/linux/timer_create.c | 69 +++++++++++++++----
sysdeps/unix/sysv/linux/timer_delete.c | 46 ++++++++++---
.../unix/sysv/linux/x86_64/64/libc.abilist | 6 ++
.../unix/sysv/linux/x86_64/64/librt.abilist | 4 --
sysdeps/unix/sysv/linux/x86_64/Versions | 2 +-
sysdeps/unix/sysv/linux/x86_64/compat-timer.h | 8 ---
sysdeps/unix/sysv/linux/x86_64/timer_create.c | 65 -----------------
sysdeps/unix/sysv/linux/x86_64/timer_delete.c | 44 ------------
.../unix/sysv/linux/x86_64/timer_getoverr.c | 2 +-
.../unix/sysv/linux/x86_64/timer_gettime.c | 2 +-
.../unix/sysv/linux/x86_64/timer_settime.c | 2 +-
.../unix/sysv/linux/x86_64/x32/libc.abilist | 4 ++
.../unix/sysv/linux/x86_64/x32/librt.abilist | 2 -
90 files changed, 275 insertions(+), 242 deletions(-)
delete mode 100644 sysdeps/unix/sysv/linux/alpha/timer_create.c
delete mode 100644 sysdeps/unix/sysv/linux/alpha/timer_delete.c
delete mode 100644 sysdeps/unix/sysv/linux/ia64/timer_create.c
delete mode 100644 sysdeps/unix/sysv/linux/ia64/timer_delete.c
delete mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_create.c
delete mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_delete.c
delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-64/timer_create.c
delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-64/timer_delete.c
delete mode 100644 sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c
delete mode 100644 sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c
delete mode 100644 sysdeps/unix/sysv/linux/x86_64/timer_create.c
delete mode 100644 sysdeps/unix/sysv/linux/x86_64/timer_delete.c
diff --git a/rt/Makefile b/rt/Makefile
index bd9d31b985..d2ff0221c7 100644
--- a/rt/Makefile
+++ b/rt/Makefile
@@ -30,8 +30,6 @@ routines = \
librt-routines = \
librt-compat \
- timer_create \
- timer_delete \
timer_getoverr \
timer_gettime \
timer_settime \
@@ -63,6 +61,8 @@ $(librt-routines-var) += \
mq_timedreceive \
mq_timedsend \
mq_unlink \
+ timer_create \
+ timer_delete \
tests := tst-shm tst-timer tst-timer2 \
tst-aio tst-aio64 tst-aio2 tst-aio3 tst-aio4 tst-aio5 tst-aio6 \
diff --git a/rt/Versions b/rt/Versions
index 9a09062a2a..fca804148c 100644
--- a/rt/Versions
+++ b/rt/Versions
@@ -21,6 +21,10 @@ libc {
%endif
}
GLIBC_2.2 {
+%if PTHREAD_IN_LIBC
+ timer_create;
+ timer_delete;
+%endif
shm_open;
shm_unlink;
}
@@ -52,23 +56,23 @@ libc {
GLIBC_2.34 {
%if PTHREAD_IN_LIBC
__mq_open_2;
- aio_cancel;
aio_cancel64;
- aio_init;
- aio_error;
+ aio_cancel;
aio_error64;
- aio_fsync;
+ aio_error;
aio_fsync64;
- aio_read;
+ aio_fsync;
+ aio_init;
aio_read64;
- aio_return;
+ aio_read;
aio_return64;
- aio_suspend;
+ aio_return;
aio_suspend64;
- aio_write;
+ aio_suspend;
aio_write64;
- lio_listio;
+ aio_write;
lio_listio64;
+ lio_listio;
mq_close;
mq_getattr;
mq_notify;
@@ -79,6 +83,8 @@ libc {
mq_timedreceive;
mq_timedsend;
mq_unlink;
+ timer_create;
+ timer_delete;
%endif
shm_open;
shm_unlink;
@@ -122,8 +128,10 @@ librt {
%endif
}
GLIBC_2.2 {
+%if !PTHREAD_IN_LIBC
timer_create;
timer_delete;
+%endif
timer_getoverrun;
timer_gettime;
timer_settime;
diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions
index 47d4357b9f..0db1b9c31c 100644
--- a/sysdeps/unix/sysv/linux/Versions
+++ b/sysdeps/unix/sysv/linux/Versions
@@ -121,6 +121,10 @@ libc {
posix_fallocate64;
sys_sigabbrev;
sys_siglist;
+
+ # Changed timer_t. Only used by some 64-bit targets.
+ timer_create;
+ timer_delete;
}
GLIBC_2.3.4 {
sched_getaffinity; sched_setaffinity;
@@ -284,6 +288,7 @@ libc {
__sigtimedwait;
__timer_active_sigev_thread;
__timer_active_sigev_thread_lock;
+ __timer_compat_list;
__timer_helper_once;
__timer_helper_tid;
__timer_start_helper_thread;
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 141d5cb843..17779baac1 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -2006,6 +2006,8 @@ GLIBC_2.17 tfind F
GLIBC_2.17 time F
GLIBC_2.17 timegm F
GLIBC_2.17 timelocal F
+GLIBC_2.17 timer_create F
+GLIBC_2.17 timer_delete F
GLIBC_2.17 timerfd_create F
GLIBC_2.17 timerfd_gettime F
GLIBC_2.17 timerfd_settime F
@@ -2529,6 +2531,8 @@ GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
index 54bb3e5c7c..34768d1472 100644
--- a/sysdeps/unix/sysv/linux/aarch64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.17 timer_create F
-GLIBC_2.17 timer_delete F
GLIBC_2.17 timer_getoverrun F
GLIBC_2.17 timer_gettime F
GLIBC_2.17 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/alpha/Versions b/sysdeps/unix/sysv/linux/alpha/Versions
index db6116a890..d4bd056f64 100644
--- a/sysdeps/unix/sysv/linux/alpha/Versions
+++ b/sysdeps/unix/sysv/linux/alpha/Versions
@@ -104,7 +104,7 @@ librt {
}
GLIBC_2.3.3 {
# Changed timer_t.
- timer_create; timer_delete; timer_getoverrun; timer_gettime;
+ timer_getoverrun; timer_gettime;
timer_settime;
}
}
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 5441b6a3f3..985a1deca9 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -2093,6 +2093,8 @@ GLIBC_2.2 svc_max_pollfd D 0x4
GLIBC_2.2 svc_pollfd D 0x8
GLIBC_2.2 swprintf F
GLIBC_2.2 swscanf F
+GLIBC_2.2 timer_create F
+GLIBC_2.2 timer_delete F
GLIBC_2.2 ungetwc F
GLIBC_2.2 vfwprintf F
GLIBC_2.2 vfwscanf F
@@ -2353,6 +2355,8 @@ GLIBC_2.3.3 strtoll_l F
GLIBC_2.3.3 strtoull_l F
GLIBC_2.3.3 sys_sigabbrev D 0x208
GLIBC_2.3.3 sys_siglist D 0x208
+GLIBC_2.3.3 timer_create F
+GLIBC_2.3.3 timer_delete F
GLIBC_2.3.4 _OtsAddX F
GLIBC_2.3.4 _OtsConvertFloatTX F
GLIBC_2.3.4 _OtsConvertFloatXT F
@@ -2623,6 +2627,8 @@ GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
index 8592c90bdf..3b744cf5a1 100644
--- a/sysdeps/unix/sysv/linux/alpha/librt.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist
@@ -1,12 +1,8 @@
GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_create F
-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 __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
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/alpha/timer_create.c b/sysdeps/unix/sysv/linux/alpha/timer_create.c
deleted file mode 100644
index d307135003..0000000000
--- a/sysdeps/unix/sysv/linux/alpha/timer_create.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/x86_64/timer_create.c>
diff --git a/sysdeps/unix/sysv/linux/alpha/timer_delete.c b/sysdeps/unix/sysv/linux/alpha/timer_delete.c
deleted file mode 100644
index 2dd94f5c7a..0000000000
--- a/sysdeps/unix/sysv/linux/alpha/timer_delete.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/x86_64/timer_delete.c>
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 37fd195f70..22fa42dfc3 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1940,6 +1940,8 @@ GLIBC_2.32 thrd_yield F
GLIBC_2.32 time F
GLIBC_2.32 timegm F
GLIBC_2.32 timelocal F
+GLIBC_2.32 timer_create F
+GLIBC_2.32 timer_delete F
GLIBC_2.32 timerfd_create F
GLIBC_2.32 timerfd_gettime F
GLIBC_2.32 timerfd_settime F
@@ -2288,6 +2290,8 @@ GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
index 0454fb41fd..7bc7c57bf0 100644
--- a/sysdeps/unix/sysv/linux/arc/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arc/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.32 timer_create F
-GLIBC_2.32 timer_delete F
GLIBC_2.32 timer_getoverrun F
GLIBC_2.32 timer_gettime F
GLIBC_2.32 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 42ba748c07..c8ff2a0b74 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -434,6 +434,8 @@ GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
@@ -2350,6 +2352,8 @@ GLIBC_2.4 tfind F
GLIBC_2.4 time F
GLIBC_2.4 timegm F
GLIBC_2.4 timelocal F
+GLIBC_2.4 timer_create F
+GLIBC_2.4 timer_delete F
GLIBC_2.4 times F
GLIBC_2.4 timezone D 0x4
GLIBC_2.4 tmpfile F
diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
index 8682174e36..0887259367 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -1,7 +1,5 @@
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
-GLIBC_2.4 timer_create F
-GLIBC_2.4 timer_delete F
GLIBC_2.4 timer_getoverrun F
GLIBC_2.4 timer_gettime F
GLIBC_2.4 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 92f06718bd..b237b78f85 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -431,6 +431,8 @@ GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
@@ -2347,6 +2349,8 @@ GLIBC_2.4 tfind F
GLIBC_2.4 time F
GLIBC_2.4 timegm F
GLIBC_2.4 timelocal F
+GLIBC_2.4 timer_create F
+GLIBC_2.4 timer_delete F
GLIBC_2.4 times F
GLIBC_2.4 timezone D 0x4
GLIBC_2.4 tmpfile F
diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
index 8682174e36..0887259367 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -1,7 +1,5 @@
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
-GLIBC_2.4 timer_create F
-GLIBC_2.4 timer_delete F
GLIBC_2.4 timer_getoverrun F
GLIBC_2.4 timer_gettime F
GLIBC_2.4 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 7ee4e79de2..c1b6927cea 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -2030,6 +2030,8 @@ GLIBC_2.29 thrd_yield F
GLIBC_2.29 time F
GLIBC_2.29 timegm F
GLIBC_2.29 timelocal F
+GLIBC_2.29 timer_create F
+GLIBC_2.29 timer_delete F
GLIBC_2.29 timerfd_create F
GLIBC_2.29 timerfd_gettime F
GLIBC_2.29 timerfd_settime F
@@ -2551,6 +2553,8 @@ GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
index c92668b743..3d7c839b9b 100644
--- a/sysdeps/unix/sysv/linux/csky/librt.abilist
+++ b/sysdeps/unix/sysv/linux/csky/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.29 timer_create F
-GLIBC_2.29 timer_delete F
GLIBC_2.29 timer_getoverrun F
GLIBC_2.29 timer_gettime F
GLIBC_2.29 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 7610cc4343..c5021c8109 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -1744,6 +1744,8 @@ GLIBC_2.2 tfind F
GLIBC_2.2 time F
GLIBC_2.2 timegm F
GLIBC_2.2 timelocal F
+GLIBC_2.2 timer_create F
+GLIBC_2.2 timer_delete F
GLIBC_2.2 times F
GLIBC_2.2 timezone D 0x4
GLIBC_2.2 tmpfile F
@@ -2504,6 +2506,8 @@ GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
index cfe4455a75..1268c7fc38 100644
--- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
@@ -1,6 +1,4 @@
GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_create F
-GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 54a6d61b0b..8055ea6984 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -2106,6 +2106,8 @@ GLIBC_2.2 svc_max_pollfd D 0x4
GLIBC_2.2 svc_pollfd D 0x4
GLIBC_2.2 swprintf F
GLIBC_2.2 swscanf F
+GLIBC_2.2 timer_create F
+GLIBC_2.2 timer_delete F
GLIBC_2.2 ungetwc F
GLIBC_2.2 versionsort64 F
GLIBC_2.2 vfwprintf F
@@ -2688,6 +2690,8 @@ GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
index cfe4455a75..1268c7fc38 100644
--- a/sysdeps/unix/sysv/linux/i386/librt.abilist
+++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
@@ -1,6 +1,4 @@
GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_create F
-GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/ia64/Versions b/sysdeps/unix/sysv/linux/ia64/Versions
index f438b12587..29b0d98cc6 100644
--- a/sysdeps/unix/sysv/linux/ia64/Versions
+++ b/sysdeps/unix/sysv/linux/ia64/Versions
@@ -30,7 +30,7 @@ libc {
librt {
GLIBC_2.3.3 {
# Changed timer_t.
- timer_create; timer_delete; timer_getoverrun; timer_gettime;
+ timer_getoverrun; timer_gettime;
timer_settime;
}
}
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index cad4a129d1..4cf1da5b62 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -1765,6 +1765,8 @@ GLIBC_2.2 tfind F
GLIBC_2.2 time F
GLIBC_2.2 timegm F
GLIBC_2.2 timelocal F
+GLIBC_2.2 timer_create F
+GLIBC_2.2 timer_delete F
GLIBC_2.2 times F
GLIBC_2.2 timezone D 0x8
GLIBC_2.2 tmpfile F
@@ -2218,6 +2220,8 @@ GLIBC_2.3.3 strtoll_l F
GLIBC_2.3.3 strtoull_l F
GLIBC_2.3.3 sys_sigabbrev D 0x208
GLIBC_2.3.3 sys_siglist D 0x208
+GLIBC_2.3.3 timer_create F
+GLIBC_2.3.3 timer_delete F
GLIBC_2.3.4 __chk_fail F
GLIBC_2.3.4 __fprintf_chk F
GLIBC_2.3.4 __gets_chk F
@@ -2461,6 +2465,8 @@ GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
index 842df91625..74a4971070 100644
--- a/sysdeps/unix/sysv/linux/ia64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/librt.abilist
@@ -1,11 +1,7 @@
GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_create F
-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.3 timer_create F
-GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/ia64/timer_create.c b/sysdeps/unix/sysv/linux/ia64/timer_create.c
deleted file mode 100644
index d307135003..0000000000
--- a/sysdeps/unix/sysv/linux/ia64/timer_create.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/x86_64/timer_create.c>
diff --git a/sysdeps/unix/sysv/linux/ia64/timer_delete.c b/sysdeps/unix/sysv/linux/ia64/timer_delete.c
deleted file mode 100644
index 2dd94f5c7a..0000000000
--- a/sysdeps/unix/sysv/linux/ia64/timer_delete.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/x86_64/timer_delete.c>
diff --git a/sysdeps/unix/sysv/linux/kernel-posix-timers.h b/sysdeps/unix/sysv/linux/kernel-posix-timers.h
index 874b809eba..99a2937458 100644
--- a/sysdeps/unix/sysv/linux/kernel-posix-timers.h
+++ b/sysdeps/unix/sysv/linux/kernel-posix-timers.h
@@ -48,6 +48,11 @@ libc_hidden_proto (__timer_active_sigev_thread)
extern pthread_mutex_t __timer_active_sigev_thread_lock;
libc_hidden_proto (__timer_active_sigev_thread_lock)
+extern __typeof (timer_create) __timer_create;
+libc_hidden_proto (__timer_create)
+extern __typeof (timer_delete) __timer_delete;
+libc_hidden_proto (__timer_delete)
+
/* Type of timers in the kernel. */
typedef int kernel_timer_t;
@@ -107,3 +112,8 @@ timerid_to_kernel_timer (timer_t timerid)
/* New targets use int instead of timer_t. The difference only
matters on 64-bit targets. */
#define TIMER_T_WAS_INT_COMPAT 0
+
+/* Used if an override sets TIMER_T_WAS_INT_COMPAT to 1. */
+#define OLD_TIMER_MAX 256
+extern timer_t __timer_compat_list[OLD_TIMER_MAX];
+libc_hidden_proto (__timer_compat_list)
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index ff831374fa..e7c0a81f37 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -435,6 +435,8 @@ GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
@@ -2330,6 +2332,8 @@ GLIBC_2.4 tfind F
GLIBC_2.4 time F
GLIBC_2.4 timegm F
GLIBC_2.4 timelocal F
+GLIBC_2.4 timer_create F
+GLIBC_2.4 timer_delete F
GLIBC_2.4 times F
GLIBC_2.4 timezone D 0x4
GLIBC_2.4 tmpfile F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
index 8682174e36..0887259367 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -1,7 +1,5 @@
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
-GLIBC_2.4 timer_create F
-GLIBC_2.4 timer_delete F
GLIBC_2.4 timer_getoverrun F
GLIBC_2.4 timer_gettime F
GLIBC_2.4 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index b2c98b40e9..b82f6366ee 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2062,6 +2062,8 @@ GLIBC_2.2 svc_max_pollfd D 0x4
GLIBC_2.2 svc_pollfd D 0x4
GLIBC_2.2 swprintf F
GLIBC_2.2 swscanf F
+GLIBC_2.2 timer_create F
+GLIBC_2.2 timer_delete F
GLIBC_2.2 ungetwc F
GLIBC_2.2 versionsort64 F
GLIBC_2.2 vfwprintf F
@@ -2631,6 +2633,8 @@ GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
index cfe4455a75..1268c7fc38 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
@@ -1,6 +1,4 @@
GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_create F
-GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index fa945ee6fc..3f9dfa7664 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -2010,6 +2010,8 @@ GLIBC_2.18 tfind F
GLIBC_2.18 time F
GLIBC_2.18 timegm F
GLIBC_2.18 timelocal F
+GLIBC_2.18 timer_create F
+GLIBC_2.18 timer_delete F
GLIBC_2.18 timerfd_create F
GLIBC_2.18 timerfd_gettime F
GLIBC_2.18 timerfd_settime F
@@ -2602,6 +2604,8 @@ GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
index fcfed800bf..2efee3a326 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.18 timer_create F
-GLIBC_2.18 timer_delete F
GLIBC_2.18 timer_getoverrun F
GLIBC_2.18 timer_gettime F
GLIBC_2.18 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index c65815be74..bb2fd6251f 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -2010,6 +2010,8 @@ GLIBC_2.18 tfind F
GLIBC_2.18 time F
GLIBC_2.18 timegm F
GLIBC_2.18 timelocal F
+GLIBC_2.18 timer_create F
+GLIBC_2.18 timer_delete F
GLIBC_2.18 timerfd_create F
GLIBC_2.18 timerfd_gettime F
GLIBC_2.18 timerfd_settime F
@@ -2599,6 +2601,8 @@ GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
index fcfed800bf..2efee3a326 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.18 timer_create F
-GLIBC_2.18 timer_delete F
GLIBC_2.18 timer_getoverrun F
GLIBC_2.18 timer_gettime F
GLIBC_2.18 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 9c0174bf65..938142fb4a 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -1993,6 +1993,8 @@ GLIBC_2.2 sys_siglist D 0x100
GLIBC_2.2 sysv_signal F
GLIBC_2.2 tcgetsid F
GLIBC_2.2 tdestroy F
+GLIBC_2.2 timer_create F
+GLIBC_2.2 timer_delete F
GLIBC_2.2 tmpfile F
GLIBC_2.2 tmpfile64 F
GLIBC_2.2 truncate64 F
@@ -2596,6 +2598,8 @@ GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
index da85415743..dbc81ebe4b 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 timer_create F
-GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index ac245f4413..d62382883b 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -1991,6 +1991,8 @@ GLIBC_2.2 sys_siglist D 0x100
GLIBC_2.2 sysv_signal F
GLIBC_2.2 tcgetsid F
GLIBC_2.2 tdestroy F
+GLIBC_2.2 timer_create F
+GLIBC_2.2 timer_delete F
GLIBC_2.2 tmpfile F
GLIBC_2.2 tmpfile64 F
GLIBC_2.2 truncate64 F
@@ -2594,6 +2596,8 @@ GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index f17c4b3412..28a8a5d294 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -1989,6 +1989,8 @@ GLIBC_2.2 sys_siglist D 0x100
GLIBC_2.2 sysv_signal F
GLIBC_2.2 tcgetsid F
GLIBC_2.2 tdestroy F
+GLIBC_2.2 timer_create F
+GLIBC_2.2 timer_delete F
GLIBC_2.2 tmpfile F
GLIBC_2.2 tmpfile64 F
GLIBC_2.2 truncate64 F
@@ -2602,6 +2604,8 @@ GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
index da85415743..dbc81ebe4b 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 timer_create F
-GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 4d9dea349d..6748f9beef 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -1985,6 +1985,8 @@ GLIBC_2.2 sys_siglist D 0x200
GLIBC_2.2 sysv_signal F
GLIBC_2.2 tcgetsid F
GLIBC_2.2 tdestroy F
+GLIBC_2.2 timer_create F
+GLIBC_2.2 timer_delete F
GLIBC_2.2 tmpfile F
GLIBC_2.2 tmpfile64 F
GLIBC_2.2 truncate64 F
@@ -2517,6 +2519,8 @@ GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
index 51354b072d..00fd77bbab 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 timer_create F
-GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index a1f3808f18..03d13e5ee1 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -2052,6 +2052,8 @@ GLIBC_2.21 tfind F
GLIBC_2.21 time F
GLIBC_2.21 timegm F
GLIBC_2.21 timelocal F
+GLIBC_2.21 timer_create F
+GLIBC_2.21 timer_delete F
GLIBC_2.21 timerfd_create F
GLIBC_2.21 timerfd_gettime F
GLIBC_2.21 timerfd_settime F
@@ -2641,6 +2643,8 @@ GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
index 29111b77bd..a83ae32d03 100644
--- a/sysdeps/unix/sysv/linux/nios2/librt.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.21 timer_create F
-GLIBC_2.21 timer_delete F
GLIBC_2.21 timer_getoverrun F
GLIBC_2.21 timer_gettime F
GLIBC_2.21 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index c80718d0b1..c9a45ecb17 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -2067,6 +2067,8 @@ GLIBC_2.2 svc_max_pollfd D 0x4
GLIBC_2.2 svc_pollfd D 0x4
GLIBC_2.2 swprintf F
GLIBC_2.2 swscanf F
+GLIBC_2.2 timer_create F
+GLIBC_2.2 timer_delete F
GLIBC_2.2 ungetwc F
GLIBC_2.2 vfwprintf F
GLIBC_2.2 vfwscanf F
@@ -2658,6 +2660,8 @@ GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
index cfe4455a75..1268c7fc38 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
@@ -1,6 +1,4 @@
GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_create F
-GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 8156d06db5..c7fbc347a1 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -2071,6 +2071,8 @@ GLIBC_2.2 svc_max_pollfd D 0x4
GLIBC_2.2 svc_pollfd D 0x4
GLIBC_2.2 swprintf F
GLIBC_2.2 swscanf F
+GLIBC_2.2 timer_create F
+GLIBC_2.2 timer_delete F
GLIBC_2.2 ungetwc F
GLIBC_2.2 vfwprintf F
GLIBC_2.2 vfwscanf F
@@ -2691,6 +2693,8 @@ GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions b/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions
index 84c809507f..4eb22c11ac 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions
@@ -29,7 +29,7 @@ libc {
librt {
GLIBC_2.3.3 {
# Changed timer_t.
- timer_create; timer_delete; timer_getoverrun; timer_gettime;
+ timer_getoverrun; timer_gettime;
timer_settime;
}
}
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index a99bd9409b..fb5eb9c67e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -1886,6 +1886,8 @@ GLIBC_2.3 tfind F
GLIBC_2.3 time F
GLIBC_2.3 timegm F
GLIBC_2.3 timelocal F
+GLIBC_2.3 timer_create F
+GLIBC_2.3 timer_delete F
GLIBC_2.3 times F
GLIBC_2.3 timezone D 0x8
GLIBC_2.3 tmpfile F
@@ -2162,6 +2164,8 @@ GLIBC_2.3.3 strtoll_l F
GLIBC_2.3.3 strtoull_l F
GLIBC_2.3.3 sys_sigabbrev D 0x208
GLIBC_2.3.3 sys_siglist D 0x208
+GLIBC_2.3.3 timer_create F
+GLIBC_2.3.3 timer_delete F
GLIBC_2.3.4 __chk_fail F
GLIBC_2.3.4 __fprintf_chk F
GLIBC_2.3.4 __gets_chk F
@@ -2425,6 +2429,8 @@ GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
index 9df959a434..914203b043 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
@@ -1,10 +1,6 @@
-GLIBC_2.3 timer_create F
-GLIBC_2.3 timer_delete F
GLIBC_2.3 timer_getoverrun F
GLIBC_2.3 timer_gettime F
GLIBC_2.3 timer_settime F
-GLIBC_2.3.3 timer_create F
-GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index ae562f2864..b89256aba0 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -2094,6 +2094,8 @@ GLIBC_2.17 tfind F
GLIBC_2.17 time F
GLIBC_2.17 timegm F
GLIBC_2.17 timelocal F
+GLIBC_2.17 timer_create F
+GLIBC_2.17 timer_delete F
GLIBC_2.17 timerfd_create F
GLIBC_2.17 timerfd_gettime F
GLIBC_2.17 timerfd_settime F
@@ -2725,6 +2727,8 @@ GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
index 54bb3e5c7c..34768d1472 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.17 timer_create F
-GLIBC_2.17 timer_delete F
GLIBC_2.17 timer_getoverrun F
GLIBC_2.17 timer_gettime F
GLIBC_2.17 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_create.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_create.c
deleted file mode 100644
index d307135003..0000000000
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_create.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/x86_64/timer_create.c>
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_delete.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_delete.c
deleted file mode 100644
index 2dd94f5c7a..0000000000
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_delete.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/x86_64/timer_delete.c>
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 7422465183..c653f52373 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1950,6 +1950,8 @@ GLIBC_2.33 thrd_yield F
GLIBC_2.33 time F
GLIBC_2.33 timegm F
GLIBC_2.33 timelocal F
+GLIBC_2.33 timer_create F
+GLIBC_2.33 timer_delete F
GLIBC_2.33 timerfd_create F
GLIBC_2.33 timerfd_gettime F
GLIBC_2.33 timerfd_settime F
@@ -2290,6 +2292,8 @@ GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
index 540cdef209..09bbee0960 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.33 timer_create F
-GLIBC_2.33 timer_delete F
GLIBC_2.33 timer_getoverrun F
GLIBC_2.33 timer_gettime F
GLIBC_2.33 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 0bb8343ac4..711484eee5 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -2016,6 +2016,8 @@ GLIBC_2.27 tfind F
GLIBC_2.27 time F
GLIBC_2.27 timegm F
GLIBC_2.27 timelocal F
+GLIBC_2.27 timer_create F
+GLIBC_2.27 timer_delete F
GLIBC_2.27 timerfd_create F
GLIBC_2.27 timerfd_gettime F
GLIBC_2.27 timerfd_settime F
@@ -2490,6 +2492,8 @@ GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
index e436beaf7e..8e1d8b21fe 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.27 timer_create F
-GLIBC_2.27 timer_delete F
GLIBC_2.27 timer_getoverrun F
GLIBC_2.27 timer_gettime F
GLIBC_2.27 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index f9db909d63..4040312275 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -2065,6 +2065,8 @@ GLIBC_2.2 svc_max_pollfd D 0x4
GLIBC_2.2 svc_pollfd D 0x4
GLIBC_2.2 swprintf F
GLIBC_2.2 swscanf F
+GLIBC_2.2 timer_create F
+GLIBC_2.2 timer_delete F
GLIBC_2.2 ungetwc F
GLIBC_2.2 versionsort64 F
GLIBC_2.2 vfwprintf F
@@ -2656,6 +2658,8 @@ GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
index cfe4455a75..1268c7fc38 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
@@ -1,6 +1,4 @@
GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_create F
-GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/Versions b/sysdeps/unix/sysv/linux/s390/s390-64/Versions
index 3f4d960421..5989ac75a9 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/Versions
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/Versions
@@ -9,7 +9,7 @@ libc {
librt {
GLIBC_2.3.3 {
# Changed timer_t.
- timer_create; timer_delete; timer_getoverrun; timer_gettime;
+ timer_getoverrun; timer_gettime;
timer_settime;
}
}
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 593e5f9ae7..4cf6a5ea09 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -1761,6 +1761,8 @@ GLIBC_2.2 tfind F
GLIBC_2.2 time F
GLIBC_2.2 timegm F
GLIBC_2.2 timelocal F
+GLIBC_2.2 timer_create F
+GLIBC_2.2 timer_delete F
GLIBC_2.2 times F
GLIBC_2.2 timezone D 0x8
GLIBC_2.2 tmpfile F
@@ -2208,6 +2210,8 @@ GLIBC_2.3.3 strtoll_l F
GLIBC_2.3.3 strtoull_l F
GLIBC_2.3.3 sys_sigabbrev D 0x208
GLIBC_2.3.3 sys_siglist D 0x208
+GLIBC_2.3.3 timer_create F
+GLIBC_2.3.3 timer_delete F
GLIBC_2.3.4 __chk_fail F
GLIBC_2.3.4 __fprintf_chk F
GLIBC_2.3.4 __gets_chk F
@@ -2462,6 +2466,8 @@ GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
index 9e185ecaef..34e8d31133 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
@@ -1,10 +1,6 @@
-GLIBC_2.2 timer_create F
-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.3 timer_create F
-GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/timer_create.c b/sysdeps/unix/sysv/linux/s390/s390-64/timer_create.c
deleted file mode 100644
index d307135003..0000000000
--- a/sysdeps/unix/sysv/linux/s390/s390-64/timer_create.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/x86_64/timer_create.c>
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/timer_delete.c b/sysdeps/unix/sysv/linux/s390/s390-64/timer_delete.c
deleted file mode 100644
index 2dd94f5c7a..0000000000
--- a/sysdeps/unix/sysv/linux/s390/s390-64/timer_delete.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/x86_64/timer_delete.c>
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 8da4e375d9..6fd93a5445 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -1748,6 +1748,8 @@ GLIBC_2.2 tfind F
GLIBC_2.2 time F
GLIBC_2.2 timegm F
GLIBC_2.2 timelocal F
+GLIBC_2.2 timer_create F
+GLIBC_2.2 timer_delete F
GLIBC_2.2 times F
GLIBC_2.2 timezone D 0x4
GLIBC_2.2 tmpfile F
@@ -2511,6 +2513,8 @@ GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
index cfe4455a75..1268c7fc38 100644
--- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
@@ -1,6 +1,4 @@
GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_create F
-GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 6f13625e6f..c5c41bf0e6 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -1748,6 +1748,8 @@ GLIBC_2.2 tfind F
GLIBC_2.2 time F
GLIBC_2.2 timegm F
GLIBC_2.2 timelocal F
+GLIBC_2.2 timer_create F
+GLIBC_2.2 timer_delete F
GLIBC_2.2 times F
GLIBC_2.2 timezone D 0x4
GLIBC_2.2 tmpfile F
@@ -2508,6 +2510,8 @@ GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
index cfe4455a75..1268c7fc38 100644
--- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
@@ -1,6 +1,4 @@
GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_create F
-GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 984222296d..132470d40b 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -2060,6 +2060,8 @@ GLIBC_2.2 svc_max_pollfd D 0x4
GLIBC_2.2 svc_pollfd D 0x4
GLIBC_2.2 swprintf F
GLIBC_2.2 swscanf F
+GLIBC_2.2 timer_create F
+GLIBC_2.2 timer_delete F
GLIBC_2.2 ungetwc F
GLIBC_2.2 vfwprintf F
GLIBC_2.2 vfwscanf F
@@ -2651,6 +2653,8 @@ GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
index fb3a2042e0..d8ff3b0988 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
@@ -1,6 +1,4 @@
GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_create F
-GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/Versions b/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
index 33b6779ec5..358081399a 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
@@ -14,7 +14,7 @@ libc {
librt {
GLIBC_2.3.3 {
# Changed timer_t.
- timer_create; timer_delete; timer_getoverrun; timer_gettime;
+ timer_getoverrun; timer_gettime;
timer_settime;
}
}
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index a6dc7f2e40..6ee552611b 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -1791,6 +1791,8 @@ GLIBC_2.2 tfind F
GLIBC_2.2 time F
GLIBC_2.2 timegm F
GLIBC_2.2 timelocal F
+GLIBC_2.2 timer_create F
+GLIBC_2.2 timer_delete F
GLIBC_2.2 times F
GLIBC_2.2 timezone D 0x8
GLIBC_2.2 tmpfile F
@@ -2242,6 +2244,8 @@ GLIBC_2.3.3 strtoll_l F
GLIBC_2.3.3 strtoull_l F
GLIBC_2.3.3 sys_sigabbrev D 0x208
GLIBC_2.3.3 sys_siglist D 0x208
+GLIBC_2.3.3 timer_create F
+GLIBC_2.3.3 timer_delete F
GLIBC_2.3.4 __chk_fail F
GLIBC_2.3.4 __fprintf_chk F
GLIBC_2.3.4 __gets_chk F
@@ -2484,6 +2488,8 @@ GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
index 8592c90bdf..3b744cf5a1 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
@@ -1,12 +1,8 @@
GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_create F
-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 __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
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c b/sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c
deleted file mode 100644
index d307135003..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/x86_64/timer_create.c>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c b/sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c
deleted file mode 100644
index 2dd94f5c7a..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/x86_64/timer_delete.c>
diff --git a/sysdeps/unix/sysv/linux/timer_create.c b/sysdeps/unix/sysv/linux/timer_create.c
index 3dcd5455fc..9861177cf2 100644
--- a/sysdeps/unix/sysv/linux/timer_create.c
+++ b/sysdeps/unix/sysv/linux/timer_create.c
@@ -27,17 +27,11 @@
#include <pthreadP.h>
#include <kernel-posix-timers.h>
#include "kernel-posix-cpu-timers.h"
-
-
-#ifdef timer_create_alias
-# define timer_create timer_create_alias
-#endif
-
+#include <shlib-compat.h>
int
-timer_create (clockid_t clock_id, struct sigevent *evp, timer_t *timerid)
+___timer_create (clockid_t clock_id, struct sigevent *evp, timer_t *timerid)
{
-#undef timer_create
{
clockid_t syscall_clockid = (clock_id == CLOCK_PROCESS_CPUTIME_ID
? MAKE_PROCESS_CPUCLOCK (0, CPUCLOCK_SCHED)
@@ -74,7 +68,7 @@ timer_create (clockid_t clock_id, struct sigevent *evp, timer_t *timerid)
else
{
/* Create the helper thread. */
- pthread_once (&__timer_helper_once, __timer_start_helper_thread);
+ __pthread_once (&__timer_helper_once, __timer_start_helper_thread);
if (__timer_helper_tid == 0)
{
/* No resources to start the helper thread. */
@@ -93,7 +87,7 @@ timer_create (clockid_t clock_id, struct sigevent *evp, timer_t *timerid)
/* We cannot simply copy the thread attributes since the
implementation might keep internal information for
each instance. */
- pthread_attr_init (&newp->attr);
+ __pthread_attr_init (&newp->attr);
if (evp->sigev_notify_attributes != NULL)
{
struct pthread_attr *nattr;
@@ -111,7 +105,7 @@ timer_create (clockid_t clock_id, struct sigevent *evp, timer_t *timerid)
}
/* In any case set the detach flag. */
- pthread_attr_setdetachstate (&newp->attr, PTHREAD_CREATE_DETACHED);
+ __pthread_attr_setdetachstate (&newp->attr, PTHREAD_CREATE_DETACHED);
/* Create the event structure for the kernel timer. */
struct sigevent sev =
@@ -132,10 +126,10 @@ timer_create (clockid_t clock_id, struct sigevent *evp, timer_t *timerid)
}
/* Add to the queue of active timers with thread delivery. */
- pthread_mutex_lock (&__timer_active_sigev_thread_lock);
+ __pthread_mutex_lock (&__timer_active_sigev_thread_lock);
newp->next = __timer_active_sigev_thread;
__timer_active_sigev_thread = newp;
- pthread_mutex_unlock (&__timer_active_sigev_thread_lock);
+ __pthread_mutex_unlock (&__timer_active_sigev_thread_lock);
*timerid = timer_to_timerid (newp);
}
@@ -143,3 +137,52 @@ timer_create (clockid_t clock_id, struct sigevent *evp, timer_t *timerid)
return 0;
}
+versioned_symbol (libc, ___timer_create, timer_create, GLIBC_2_34);
+libc_hidden_ver (___timer_create, __timer_create)
+
+#if TIMER_T_WAS_INT_COMPAT
+# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_3_3, GLIBC_2_34)
+compat_symbol (librt, ___timer_create, timer_create, GLIBC_2_3_3);
+# endif
+
+# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_3_3)
+timer_t __timer_compat_list[OLD_TIMER_MAX] __attribute__ ((nocommon));
+libc_hidden_data_def (__timer_compat_list)
+
+int
+__timer_create_old (clockid_t clock_id, struct sigevent *evp, int *timerid)
+{
+ timer_t newp;
+
+ int res = __timer_create (clock_id, evp, &newp);
+ if (res == 0)
+ {
+ int i;
+ for (i = 0; i < OLD_TIMER_MAX; ++i)
+ if (__timer_compat_list[i] == NULL
+ && ! atomic_compare_and_exchange_bool_acq (&__timer_compat_list[i],
+ newp, NULL))
+ {
+ *timerid = i;
+ break;
+ }
+
+ if (__glibc_unlikely (i == OLD_TIMER_MAX))
+ {
+ /* No free slot. */
+ (void) __timer_delete (newp);
+ __set_errno (EINVAL);
+ res = -1;
+ }
+ }
+
+ return res;
+}
+compat_symbol (librt, __timer_create_old, timer_create, GLIBC_2_2);
+# endif /* OTHER_SHLIB_COMPAT */
+
+#else /* !TIMER_T_WAS_INT_COMPAT */
+# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (librt, ___timer_create, timer_create, GLIBC_2_2);
+# endif
+#endif /* !TIMER_T_WAS_INT_COMPAT */
diff --git a/sysdeps/unix/sysv/linux/timer_delete.c b/sysdeps/unix/sysv/linux/timer_delete.c
index ee8c364d95..074a489afd 100644
--- a/sysdeps/unix/sysv/linux/timer_delete.c
+++ b/sysdeps/unix/sysv/linux/timer_delete.c
@@ -21,17 +21,12 @@
#include <time.h>
#include <sysdep.h>
#include <kernel-posix-timers.h>
-
-
-#ifdef timer_delete_alias
-# define timer_delete timer_delete_alias
-#endif
-
+#include <pthreadP.h>
+#include <shlib-compat.h>
int
-timer_delete (timer_t timerid)
+___timer_delete (timer_t timerid)
{
-#undef timer_delete
kernel_timer_t ktimerid = timerid_to_kernel_timer (timerid);
int res = INLINE_SYSCALL_CALL (timer_delete, ktimerid);
@@ -42,7 +37,7 @@ timer_delete (timer_t timerid)
struct timer *kt = timerid_to_timer (timerid);
/* Remove the timer from the list. */
- pthread_mutex_lock (&__timer_active_sigev_thread_lock);
+ __pthread_mutex_lock (&__timer_active_sigev_thread_lock);
if (__timer_active_sigev_thread == kt)
__timer_active_sigev_thread = kt->next;
else
@@ -57,7 +52,7 @@ timer_delete (timer_t timerid)
else
prevp = prevp->next;
}
- pthread_mutex_unlock (&__timer_active_sigev_thread_lock);
+ __pthread_mutex_unlock (&__timer_active_sigev_thread_lock);
free (kt);
}
@@ -69,3 +64,34 @@ timer_delete (timer_t timerid)
Return the error. */
return -1;
}
+versioned_symbol (libc, ___timer_delete, timer_delete, GLIBC_2_34);
+libc_hidden_ver (___timer_delete, __timer_delete)
+
+#if TIMER_T_WAS_INT_COMPAT
+# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_3_3, GLIBC_2_34)
+compat_symbol (librt, ___timer_delete, timer_delete, GLIBC_2_3_3);
+#endif
+
+# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_3_3)
+int
+__timer_delete_old (int timerid)
+{
+ int res = __timer_delete (__timer_compat_list[timerid]);
+
+ if (res == 0)
+ /* Successful timer deletion, now free the index. We only need to
+ store a word and that better be atomic. */
+ __timer_compat_list[timerid] = NULL;
+
+ return res;
+}
+compat_symbol (librt, __timer_delete_old, timer_delete, GLIBC_2_2);
+# endif /* OTHER_SHLIB_COMPAT */
+
+#else /* !TIMER_T_WAS_INT_COMPAT */
+/* The transition from int to timer_t did not change ABI because the
+ type sizes are the same. */
+# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (librt, ___timer_delete, timer_delete, GLIBC_2_2);
+# endif
+#endif /* !TIMER_T_WAS_INT_COMPAT */
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 5d0a9c4012..377d35a04f 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -1760,6 +1760,8 @@ GLIBC_2.2.5 tfind F
GLIBC_2.2.5 time F
GLIBC_2.2.5 timegm F
GLIBC_2.2.5 timelocal F
+GLIBC_2.2.5 timer_create F
+GLIBC_2.2.5 timer_delete F
GLIBC_2.2.5 times F
GLIBC_2.2.5 timezone D 0x8
GLIBC_2.2.5 tmpfile F
@@ -2196,6 +2198,8 @@ GLIBC_2.3.3 strtoll_l F
GLIBC_2.3.3 strtoull_l F
GLIBC_2.3.3 sys_sigabbrev D 0x208
GLIBC_2.3.3 sys_siglist D 0x208
+GLIBC_2.3.3 timer_create F
+GLIBC_2.3.3 timer_delete F
GLIBC_2.3.4 __chk_fail F
GLIBC_2.3.4 __fprintf_chk F
GLIBC_2.3.4 __gets_chk F
@@ -2440,6 +2444,8 @@ GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
index ce501e124d..13a2bf2022 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
@@ -1,10 +1,6 @@
-GLIBC_2.2.5 timer_create F
-GLIBC_2.2.5 timer_delete F
GLIBC_2.2.5 timer_getoverrun F
GLIBC_2.2.5 timer_gettime F
GLIBC_2.2.5 timer_settime F
-GLIBC_2.3.3 timer_create F
-GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/x86_64/Versions b/sysdeps/unix/sysv/linux/x86_64/Versions
index 2a7ed280fd..c4d1c5fb79 100644
--- a/sysdeps/unix/sysv/linux/x86_64/Versions
+++ b/sysdeps/unix/sysv/linux/x86_64/Versions
@@ -11,7 +11,7 @@ libc {
librt {
GLIBC_2.3.3 {
# Changed timer_t.
- timer_create; timer_delete; timer_getoverrun; timer_gettime;
+ timer_getoverrun; timer_gettime;
timer_settime;
}
}
diff --git a/sysdeps/unix/sysv/linux/x86_64/compat-timer.h b/sysdeps/unix/sysv/linux/x86_64/compat-timer.h
index 334808b5ac..c61eb40070 100644
--- a/sysdeps/unix/sysv/linux/x86_64/compat-timer.h
+++ b/sysdeps/unix/sysv/linux/x86_64/compat-timer.h
@@ -20,14 +20,6 @@
#include <time.h>
#include <sys/types.h>
-#define OLD_TIMER_MAX 256
-
-extern timer_t __compat_timer_list[OLD_TIMER_MAX] attribute_hidden;
-
-
-extern int __timer_create_new (clockid_t clock_id, struct sigevent *evp,
- timer_t *timerid);
-extern int __timer_delete_new (timer_t timerid);
extern int __timer_getoverrun_new (timer_t timerid);
extern int __timer_gettime_new (timer_t timerid, struct itimerspec *value);
extern int __timer_settime_new (timer_t timerid, int flags,
diff --git a/sysdeps/unix/sysv/linux/x86_64/timer_create.c b/sysdeps/unix/sysv/linux/x86_64/timer_create.c
deleted file mode 100644
index ec71ae488b..0000000000
--- a/sysdeps/unix/sysv/linux/x86_64/timer_create.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/* Copyright (C) 2003-2021 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
- 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; see the file COPYING.LIB. If
- not, see <https://www.gnu.org/licenses/>. */
-
-#include <shlib-compat.h>
-#include "compat-timer.h"
-#include <atomic.h>
-
-
-#define timer_create_alias __timer_create_new
-#include <sysdeps/unix/sysv/linux/timer_create.c>
-
-#undef timer_create
-versioned_symbol (librt, __timer_create_new, timer_create, GLIBC_2_3_3);
-
-
-#if SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_3_3)
-timer_t __compat_timer_list[OLD_TIMER_MAX] attribute_hidden;
-
-
-int
-__timer_create_old (clockid_t clock_id, struct sigevent *evp, int *timerid)
-{
- timer_t newp;
-
- int res = __timer_create_new (clock_id, evp, &newp);
- if (res == 0)
- {
- int i;
- for (i = 0; i < OLD_TIMER_MAX; ++i)
- if (__compat_timer_list[i] == NULL
- && ! atomic_compare_and_exchange_bool_acq (&__compat_timer_list[i],
- newp, NULL))
- {
- *timerid = i;
- break;
- }
-
- if (__glibc_unlikely (i == OLD_TIMER_MAX))
- {
- /* No free slot. */
- (void) __timer_delete_new (newp);
- __set_errno (EINVAL);
- res = -1;
- }
- }
-
- return res;
-}
-compat_symbol (librt, __timer_create_old, timer_create, GLIBC_2_2);
-#endif
diff --git a/sysdeps/unix/sysv/linux/x86_64/timer_delete.c b/sysdeps/unix/sysv/linux/x86_64/timer_delete.c
deleted file mode 100644
index 7fc37fc1a7..0000000000
--- a/sysdeps/unix/sysv/linux/x86_64/timer_delete.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/* Copyright (C) 2003-2021 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
- 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; see the file COPYING.LIB. If
- not, see <https://www.gnu.org/licenses/>. */
-
-#include <shlib-compat.h>
-#include "compat-timer.h"
-
-
-#define timer_delete_alias __timer_delete_new
-#include <sysdeps/unix/sysv/linux/timer_delete.c>
-
-#undef timer_delete
-versioned_symbol (librt, __timer_delete_new, timer_delete, GLIBC_2_3_3);
-
-
-#if SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_3_3)
-int
-__timer_delete_old (int timerid)
-{
- int res = __timer_delete_new (__compat_timer_list[timerid]);
-
- if (res == 0)
- /* Successful timer deletion, now free the index. We only need to
- store a word and that better be atomic. */
- __compat_timer_list[timerid] = NULL;
-
- return res;
-}
-compat_symbol (librt, __timer_delete_old, timer_delete, GLIBC_2_2);
-#endif
diff --git a/sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c b/sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c
index 9b4c1b2235..fb6e631a00 100644
--- a/sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c
+++ b/sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c
@@ -32,7 +32,7 @@ versioned_symbol (librt, __timer_getoverrun_new, timer_getoverrun,
int
__timer_getoverrun_old (int timerid)
{
- return __timer_getoverrun_new (__compat_timer_list[timerid]);
+ return __timer_getoverrun_new (__timer_compat_list[timerid]);
}
compat_symbol (librt, __timer_getoverrun_old, timer_getoverrun, GLIBC_2_2);
#endif
diff --git a/sysdeps/unix/sysv/linux/x86_64/timer_gettime.c b/sysdeps/unix/sysv/linux/x86_64/timer_gettime.c
index 107b1f97c7..06ccbc40bd 100644
--- a/sysdeps/unix/sysv/linux/x86_64/timer_gettime.c
+++ b/sysdeps/unix/sysv/linux/x86_64/timer_gettime.c
@@ -35,7 +35,7 @@ versioned_symbol (librt, __timer_gettime_new, timer_gettime, GLIBC_2_3_3);
int
__timer_gettime_old (int timerid, struct itimerspec *value)
{
- return __timer_gettime_new (__compat_timer_list[timerid], value);
+ return __timer_gettime_new (__timer_compat_list[timerid], value);
}
compat_symbol (librt, __timer_gettime_old, timer_gettime, GLIBC_2_2);
#endif
diff --git a/sysdeps/unix/sysv/linux/x86_64/timer_settime.c b/sysdeps/unix/sysv/linux/x86_64/timer_settime.c
index f987cd16d3..dd7d01e849 100644
--- a/sysdeps/unix/sysv/linux/x86_64/timer_settime.c
+++ b/sysdeps/unix/sysv/linux/x86_64/timer_settime.c
@@ -37,7 +37,7 @@ int
__timer_settime_old (int timerid, int flags, const struct itimerspec *value,
struct itimerspec *ovalue)
{
- return __timer_settime_new (__compat_timer_list[timerid], flags,
+ return __timer_settime_new (__timer_compat_list[timerid], flags,
value, ovalue);
}
compat_symbol (librt, __timer_settime_old, timer_settime, GLIBC_2_2);
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index d67ef0b6d5..620f35836c 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -2011,6 +2011,8 @@ GLIBC_2.16 tfind F
GLIBC_2.16 time F
GLIBC_2.16 timegm F
GLIBC_2.16 timelocal F
+GLIBC_2.16 timer_create F
+GLIBC_2.16 timer_delete F
GLIBC_2.16 timerfd_create F
GLIBC_2.16 timerfd_gettime F
GLIBC_2.16 timerfd_settime F
@@ -2544,6 +2546,8 @@ GLIBC_2.34 thrd_create F
GLIBC_2.34 thrd_detach F
GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
index 3144e2e290..4b3e816fdd 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.16 timer_create F
-GLIBC_2.16 timer_delete F
GLIBC_2.16 timer_getoverrun F
GLIBC_2.16 timer_gettime F
GLIBC_2.16 timer_settime F
--
2.31.1
^ permalink raw reply [flat|nested] 72+ messages in thread
* Re: [PATCH 30/34] Linux: Move timer_create, timer_delete from librt to libc
2021-06-17 18:59 ` [PATCH 30/34] Linux: Move timer_create, timer_delete from librt to libc Florian Weimer
@ 2021-06-24 17:18 ` Adhemerval Zanella
0 siblings, 0 replies; 72+ messages in thread
From: Adhemerval Zanella @ 2021-06-24 17:18 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 17/06/2021 15:59, Florian Weimer via Libc-alpha wrote:
> The symbols were moved using scripts/move-symbol-to-libc.py.
>
> timer_create and timer_delete are tied together via the int/timer_t
> compatibility code. The way the ABI intransition is implemented
> is changed with this commit: the implementation is now consolidated
> in one file with a TIMER_T_WAS_INT_COMPAT check.
LGTM, thanks. There is only a nit below.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> ---
> rt/Makefile | 4 +-
> rt/Versions | 26 ++++---
> sysdeps/unix/sysv/linux/Versions | 5 ++
> sysdeps/unix/sysv/linux/aarch64/libc.abilist | 4 ++
> sysdeps/unix/sysv/linux/aarch64/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/alpha/Versions | 2 +-
> sysdeps/unix/sysv/linux/alpha/libc.abilist | 6 ++
> sysdeps/unix/sysv/linux/alpha/librt.abilist | 4 --
> sysdeps/unix/sysv/linux/alpha/timer_create.c | 1 -
> sysdeps/unix/sysv/linux/alpha/timer_delete.c | 1 -
> 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/Versions | 2 +-
> sysdeps/unix/sysv/linux/ia64/libc.abilist | 6 ++
> sysdeps/unix/sysv/linux/ia64/librt.abilist | 4 --
> sysdeps/unix/sysv/linux/ia64/timer_create.c | 1 -
> sysdeps/unix/sysv/linux/ia64/timer_delete.c | 1 -
> sysdeps/unix/sysv/linux/kernel-posix-timers.h | 10 +++
> .../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 ++
> .../sysv/linux/powerpc/powerpc64/Versions | 2 +-
> .../linux/powerpc/powerpc64/be/libc.abilist | 6 ++
> .../linux/powerpc/powerpc64/be/librt.abilist | 4 --
> .../linux/powerpc/powerpc64/le/libc.abilist | 4 ++
> .../linux/powerpc/powerpc64/le/librt.abilist | 2 -
> .../linux/powerpc/powerpc64/timer_create.c | 1 -
> .../linux/powerpc/powerpc64/timer_delete.c | 1 -
> .../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 -
> sysdeps/unix/sysv/linux/s390/s390-64/Versions | 2 +-
> .../unix/sysv/linux/s390/s390-64/libc.abilist | 6 ++
> .../sysv/linux/s390/s390-64/librt.abilist | 4 --
> .../sysv/linux/s390/s390-64/timer_create.c | 1 -
> .../sysv/linux/s390/s390-64/timer_delete.c | 1 -
> sysdeps/unix/sysv/linux/sh/be/libc.abilist | 4 ++
> sysdeps/unix/sysv/linux/sh/be/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/sh/le/libc.abilist | 4 ++
> sysdeps/unix/sysv/linux/sh/le/librt.abilist | 2 -
> .../sysv/linux/sparc/sparc32/libc.abilist | 4 ++
> .../sysv/linux/sparc/sparc32/librt.abilist | 2 -
> .../unix/sysv/linux/sparc/sparc64/Versions | 2 +-
> .../sysv/linux/sparc/sparc64/libc.abilist | 6 ++
> .../sysv/linux/sparc/sparc64/librt.abilist | 4 --
> .../sysv/linux/sparc/sparc64/timer_create.c | 1 -
> .../sysv/linux/sparc/sparc64/timer_delete.c | 1 -
> sysdeps/unix/sysv/linux/timer_create.c | 69 +++++++++++++++----
> sysdeps/unix/sysv/linux/timer_delete.c | 46 ++++++++++---
> .../unix/sysv/linux/x86_64/64/libc.abilist | 6 ++
> .../unix/sysv/linux/x86_64/64/librt.abilist | 4 --
> sysdeps/unix/sysv/linux/x86_64/Versions | 2 +-
> sysdeps/unix/sysv/linux/x86_64/compat-timer.h | 8 ---
> sysdeps/unix/sysv/linux/x86_64/timer_create.c | 65 -----------------
> sysdeps/unix/sysv/linux/x86_64/timer_delete.c | 44 ------------
> .../unix/sysv/linux/x86_64/timer_getoverr.c | 2 +-
> .../unix/sysv/linux/x86_64/timer_gettime.c | 2 +-
> .../unix/sysv/linux/x86_64/timer_settime.c | 2 +-
> .../unix/sysv/linux/x86_64/x32/libc.abilist | 4 ++
> .../unix/sysv/linux/x86_64/x32/librt.abilist | 2 -
> 90 files changed, 275 insertions(+), 242 deletions(-)
> delete mode 100644 sysdeps/unix/sysv/linux/alpha/timer_create.c
> delete mode 100644 sysdeps/unix/sysv/linux/alpha/timer_delete.c
> delete mode 100644 sysdeps/unix/sysv/linux/ia64/timer_create.c
> delete mode 100644 sysdeps/unix/sysv/linux/ia64/timer_delete.c
> delete mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_create.c
> delete mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_delete.c
> delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-64/timer_create.c
> delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-64/timer_delete.c
> delete mode 100644 sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c
> delete mode 100644 sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c
> delete mode 100644 sysdeps/unix/sysv/linux/x86_64/timer_create.c
> delete mode 100644 sysdeps/unix/sysv/linux/x86_64/timer_delete.c
>
> diff --git a/rt/Makefile b/rt/Makefile
> index bd9d31b985..d2ff0221c7 100644
> --- a/rt/Makefile
> +++ b/rt/Makefile
> @@ -30,8 +30,6 @@ routines = \
>
> librt-routines = \
> librt-compat \
> - timer_create \
> - timer_delete \
> timer_getoverr \
> timer_gettime \
> timer_settime \
> @@ -63,6 +61,8 @@ $(librt-routines-var) += \
> mq_timedreceive \
> mq_timedsend \
> mq_unlink \
> + timer_create \
> + timer_delete \
>
> tests := tst-shm tst-timer tst-timer2 \
> tst-aio tst-aio64 tst-aio2 tst-aio3 tst-aio4 tst-aio5 tst-aio6 \
Ok.
> diff --git a/rt/Versions b/rt/Versions
> index 9a09062a2a..fca804148c 100644
> --- a/rt/Versions
> +++ b/rt/Versions
> @@ -21,6 +21,10 @@ libc {
> %endif
> }
> GLIBC_2.2 {
> +%if PTHREAD_IN_LIBC
> + timer_create;
> + timer_delete;
> +%endif
> shm_open;
> shm_unlink;
> }
> @@ -52,23 +56,23 @@ libc {
> GLIBC_2.34 {
> %if PTHREAD_IN_LIBC
> __mq_open_2;
> - aio_cancel;
> aio_cancel64;
> - aio_init;
> - aio_error;
> + aio_cancel;
> aio_error64;
> - aio_fsync;
> + aio_error;
> aio_fsync64;
> - aio_read;
> + aio_fsync;
> + aio_init;
> aio_read64;
> - aio_return;
> + aio_read;
> aio_return64;
> - aio_suspend;
> + aio_return;
> aio_suspend64;
> - aio_write;
> + aio_suspend;
> aio_write64;
> - lio_listio;
> + aio_write;
> lio_listio64;
> + lio_listio;
> mq_close;
> mq_getattr;
> mq_notify;
> @@ -79,6 +83,8 @@ libc {
> mq_timedreceive;
> mq_timedsend;
> mq_unlink;
> + timer_create;
> + timer_delete;
> %endif
> shm_open;
> shm_unlink;
> @@ -122,8 +128,10 @@ librt {
> %endif
> }
> GLIBC_2.2 {
> +%if !PTHREAD_IN_LIBC
> timer_create;
> timer_delete;
> +%endif
> timer_getoverrun;
> timer_gettime;
> timer_settime;
Ok.
> diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions
> index 47d4357b9f..0db1b9c31c 100644
> --- a/sysdeps/unix/sysv/linux/Versions
> +++ b/sysdeps/unix/sysv/linux/Versions
> @@ -121,6 +121,10 @@ libc {
> posix_fallocate64;
> sys_sigabbrev;
> sys_siglist;
> +
> + # Changed timer_t. Only used by some 64-bit targets.
> + timer_create;
> + timer_delete;
> }
> GLIBC_2.3.4 {
> sched_getaffinity; sched_setaffinity;
> @@ -284,6 +288,7 @@ libc {
> __sigtimedwait;
> __timer_active_sigev_thread;
> __timer_active_sigev_thread_lock;
> + __timer_compat_list;
> __timer_helper_once;
> __timer_helper_tid;
> __timer_start_helper_thread;
Ok.
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index 141d5cb843..17779baac1 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -2006,6 +2006,8 @@ GLIBC_2.17 tfind F
> GLIBC_2.17 time F
> GLIBC_2.17 timegm F
> GLIBC_2.17 timelocal F
> +GLIBC_2.17 timer_create F
> +GLIBC_2.17 timer_delete F
> GLIBC_2.17 timerfd_create F
> GLIBC_2.17 timerfd_gettime F
> GLIBC_2.17 timerfd_settime F
> @@ -2529,6 +2531,8 @@ GLIBC_2.34 thrd_create F
> GLIBC_2.34 thrd_detach F
> GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> +GLIBC_2.34 timer_create F
> +GLIBC_2.34 timer_delete F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> index 54bb3e5c7c..34768d1472 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.17 timer_create F
> -GLIBC_2.17 timer_delete F
> GLIBC_2.17 timer_getoverrun F
> GLIBC_2.17 timer_gettime F
> GLIBC_2.17 timer_settime F
Ok.
> diff --git a/sysdeps/unix/sysv/linux/alpha/Versions b/sysdeps/unix/sysv/linux/alpha/Versions
> index db6116a890..d4bd056f64 100644
> --- a/sysdeps/unix/sysv/linux/alpha/Versions
> +++ b/sysdeps/unix/sysv/linux/alpha/Versions
> @@ -104,7 +104,7 @@ librt {
> }
> GLIBC_2.3.3 {
> # Changed timer_t.
> - timer_create; timer_delete; timer_getoverrun; timer_gettime;
> + timer_getoverrun; timer_gettime;
> timer_settime;
> }
> }
Ok.
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index 5441b6a3f3..985a1deca9 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -2093,6 +2093,8 @@ GLIBC_2.2 svc_max_pollfd D 0x4
> GLIBC_2.2 svc_pollfd D 0x8
> GLIBC_2.2 swprintf F
> GLIBC_2.2 swscanf F
> +GLIBC_2.2 timer_create F
> +GLIBC_2.2 timer_delete F
> GLIBC_2.2 ungetwc F
> GLIBC_2.2 vfwprintf F
> GLIBC_2.2 vfwscanf F
> @@ -2353,6 +2355,8 @@ GLIBC_2.3.3 strtoll_l F
> GLIBC_2.3.3 strtoull_l F
> GLIBC_2.3.3 sys_sigabbrev D 0x208
> GLIBC_2.3.3 sys_siglist D 0x208
> +GLIBC_2.3.3 timer_create F
> +GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.4 _OtsAddX F
> GLIBC_2.3.4 _OtsConvertFloatTX F
> GLIBC_2.3.4 _OtsConvertFloatXT F
> @@ -2623,6 +2627,8 @@ GLIBC_2.34 thrd_create F
> GLIBC_2.34 thrd_detach F
> GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> +GLIBC_2.34 timer_create F
> +GLIBC_2.34 timer_delete F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
> index 8592c90bdf..3b744cf5a1 100644
> --- a/sysdeps/unix/sysv/linux/alpha/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist
> @@ -1,12 +1,8 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_create F
> -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 __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
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
Ok.
> diff --git a/sysdeps/unix/sysv/linux/alpha/timer_create.c b/sysdeps/unix/sysv/linux/alpha/timer_create.c
> deleted file mode 100644
> index d307135003..0000000000
> --- a/sysdeps/unix/sysv/linux/alpha/timer_create.c
> +++ /dev/null
> @@ -1 +0,0 @@
> -#include <sysdeps/unix/sysv/linux/x86_64/timer_create.c>
Ok.
> diff --git a/sysdeps/unix/sysv/linux/alpha/timer_delete.c b/sysdeps/unix/sysv/linux/alpha/timer_delete.c
> deleted file mode 100644
> index 2dd94f5c7a..0000000000
> --- a/sysdeps/unix/sysv/linux/alpha/timer_delete.c
> +++ /dev/null
> @@ -1 +0,0 @@
> -#include <sysdeps/unix/sysv/linux/x86_64/timer_delete.c>
Ok.
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index 37fd195f70..22fa42dfc3 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -1940,6 +1940,8 @@ GLIBC_2.32 thrd_yield F
> GLIBC_2.32 time F
> GLIBC_2.32 timegm F
> GLIBC_2.32 timelocal F
> +GLIBC_2.32 timer_create F
> +GLIBC_2.32 timer_delete F
> GLIBC_2.32 timerfd_create F
> GLIBC_2.32 timerfd_gettime F
> GLIBC_2.32 timerfd_settime F
> @@ -2288,6 +2290,8 @@ GLIBC_2.34 thrd_create F
> GLIBC_2.34 thrd_detach F
> GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> +GLIBC_2.34 timer_create F
> +GLIBC_2.34 timer_delete F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
> index 0454fb41fd..7bc7c57bf0 100644
> --- a/sysdeps/unix/sysv/linux/arc/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.32 timer_create F
> -GLIBC_2.32 timer_delete F
> GLIBC_2.32 timer_getoverrun F
> GLIBC_2.32 timer_gettime F
> GLIBC_2.32 timer_settime F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index 42ba748c07..c8ff2a0b74 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -434,6 +434,8 @@ GLIBC_2.34 thrd_create F
> GLIBC_2.34 thrd_detach F
> GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> +GLIBC_2.34 timer_create F
> +GLIBC_2.34 timer_delete F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> @@ -2350,6 +2352,8 @@ GLIBC_2.4 tfind F
> GLIBC_2.4 time F
> GLIBC_2.4 timegm F
> GLIBC_2.4 timelocal F
> +GLIBC_2.4 timer_create F
> +GLIBC_2.4 timer_delete F
> GLIBC_2.4 times F
> GLIBC_2.4 timezone D 0x4
> GLIBC_2.4 tmpfile F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> index 8682174e36..0887259367 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> @@ -1,7 +1,5 @@
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> -GLIBC_2.4 timer_create F
> -GLIBC_2.4 timer_delete F
> GLIBC_2.4 timer_getoverrun F
> GLIBC_2.4 timer_gettime F
> GLIBC_2.4 timer_settime F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index 92f06718bd..b237b78f85 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -431,6 +431,8 @@ GLIBC_2.34 thrd_create F
> GLIBC_2.34 thrd_detach F
> GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> +GLIBC_2.34 timer_create F
> +GLIBC_2.34 timer_delete F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> @@ -2347,6 +2349,8 @@ GLIBC_2.4 tfind F
> GLIBC_2.4 time F
> GLIBC_2.4 timegm F
> GLIBC_2.4 timelocal F
> +GLIBC_2.4 timer_create F
> +GLIBC_2.4 timer_delete F
> GLIBC_2.4 times F
> GLIBC_2.4 timezone D 0x4
> GLIBC_2.4 tmpfile F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> index 8682174e36..0887259367 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> @@ -1,7 +1,5 @@
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> -GLIBC_2.4 timer_create F
> -GLIBC_2.4 timer_delete F
> GLIBC_2.4 timer_getoverrun F
> GLIBC_2.4 timer_gettime F
> GLIBC_2.4 timer_settime F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index 7ee4e79de2..c1b6927cea 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -2030,6 +2030,8 @@ GLIBC_2.29 thrd_yield F
> GLIBC_2.29 time F
> GLIBC_2.29 timegm F
> GLIBC_2.29 timelocal F
> +GLIBC_2.29 timer_create F
> +GLIBC_2.29 timer_delete F
> GLIBC_2.29 timerfd_create F
> GLIBC_2.29 timerfd_gettime F
> GLIBC_2.29 timerfd_settime F
> @@ -2551,6 +2553,8 @@ GLIBC_2.34 thrd_create F
> GLIBC_2.34 thrd_detach F
> GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> +GLIBC_2.34 timer_create F
> +GLIBC_2.34 timer_delete F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
> index c92668b743..3d7c839b9b 100644
> --- a/sysdeps/unix/sysv/linux/csky/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.29 timer_create F
> -GLIBC_2.29 timer_delete F
> GLIBC_2.29 timer_getoverrun F
> GLIBC_2.29 timer_gettime F
> GLIBC_2.29 timer_settime F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index 7610cc4343..c5021c8109 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -1744,6 +1744,8 @@ GLIBC_2.2 tfind F
> GLIBC_2.2 time F
> GLIBC_2.2 timegm F
> GLIBC_2.2 timelocal F
> +GLIBC_2.2 timer_create F
> +GLIBC_2.2 timer_delete F
> GLIBC_2.2 times F
> GLIBC_2.2 timezone D 0x4
> GLIBC_2.2 tmpfile F
> @@ -2504,6 +2506,8 @@ GLIBC_2.34 thrd_create F
> GLIBC_2.34 thrd_detach F
> GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> +GLIBC_2.34 timer_create F
> +GLIBC_2.34 timer_delete F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
> index cfe4455a75..1268c7fc38 100644
> --- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
> @@ -1,6 +1,4 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_create F
> -GLIBC_2.2 timer_delete F
> GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index 54a6d61b0b..8055ea6984 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -2106,6 +2106,8 @@ GLIBC_2.2 svc_max_pollfd D 0x4
> GLIBC_2.2 svc_pollfd D 0x4
> GLIBC_2.2 swprintf F
> GLIBC_2.2 swscanf F
> +GLIBC_2.2 timer_create F
> +GLIBC_2.2 timer_delete F
> GLIBC_2.2 ungetwc F
> GLIBC_2.2 versionsort64 F
> GLIBC_2.2 vfwprintf F
> @@ -2688,6 +2690,8 @@ GLIBC_2.34 thrd_create F
> GLIBC_2.34 thrd_detach F
> GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> +GLIBC_2.34 timer_create F
> +GLIBC_2.34 timer_delete F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
> index cfe4455a75..1268c7fc38 100644
> --- a/sysdeps/unix/sysv/linux/i386/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
> @@ -1,6 +1,4 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_create F
> -GLIBC_2.2 timer_delete F
> GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
Ok.
> diff --git a/sysdeps/unix/sysv/linux/ia64/Versions b/sysdeps/unix/sysv/linux/ia64/Versions
> index f438b12587..29b0d98cc6 100644
> --- a/sysdeps/unix/sysv/linux/ia64/Versions
> +++ b/sysdeps/unix/sysv/linux/ia64/Versions
> @@ -30,7 +30,7 @@ libc {
> librt {
> GLIBC_2.3.3 {
> # Changed timer_t.
> - timer_create; timer_delete; timer_getoverrun; timer_gettime;
> + timer_getoverrun; timer_gettime;
> timer_settime;
> }
> }
Ok.
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index cad4a129d1..4cf1da5b62 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -1765,6 +1765,8 @@ GLIBC_2.2 tfind F
> GLIBC_2.2 time F
> GLIBC_2.2 timegm F
> GLIBC_2.2 timelocal F
> +GLIBC_2.2 timer_create F
> +GLIBC_2.2 timer_delete F
> GLIBC_2.2 times F
> GLIBC_2.2 timezone D 0x8
> GLIBC_2.2 tmpfile F
> @@ -2218,6 +2220,8 @@ GLIBC_2.3.3 strtoll_l F
> GLIBC_2.3.3 strtoull_l F
> GLIBC_2.3.3 sys_sigabbrev D 0x208
> GLIBC_2.3.3 sys_siglist D 0x208
> +GLIBC_2.3.3 timer_create F
> +GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.4 __chk_fail F
> GLIBC_2.3.4 __fprintf_chk F
> GLIBC_2.3.4 __gets_chk F
> @@ -2461,6 +2465,8 @@ GLIBC_2.34 thrd_create F
> GLIBC_2.34 thrd_detach F
> GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> +GLIBC_2.34 timer_create F
> +GLIBC_2.34 timer_delete F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
> index 842df91625..74a4971070 100644
> --- a/sysdeps/unix/sysv/linux/ia64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/librt.abilist
> @@ -1,11 +1,7 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_create F
> -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.3 timer_create F
> -GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
Ok.
> diff --git a/sysdeps/unix/sysv/linux/ia64/timer_create.c b/sysdeps/unix/sysv/linux/ia64/timer_create.c
> deleted file mode 100644
> index d307135003..0000000000
> --- a/sysdeps/unix/sysv/linux/ia64/timer_create.c
> +++ /dev/null
> @@ -1 +0,0 @@
> -#include <sysdeps/unix/sysv/linux/x86_64/timer_create.c>
Ok.
> diff --git a/sysdeps/unix/sysv/linux/ia64/timer_delete.c b/sysdeps/unix/sysv/linux/ia64/timer_delete.c
> deleted file mode 100644
> index 2dd94f5c7a..0000000000
> --- a/sysdeps/unix/sysv/linux/ia64/timer_delete.c
> +++ /dev/null
> @@ -1 +0,0 @@
> -#include <sysdeps/unix/sysv/linux/x86_64/timer_delete.c>
Ok.
> diff --git a/sysdeps/unix/sysv/linux/kernel-posix-timers.h b/sysdeps/unix/sysv/linux/kernel-posix-timers.h
> index 874b809eba..99a2937458 100644
> --- a/sysdeps/unix/sysv/linux/kernel-posix-timers.h
> +++ b/sysdeps/unix/sysv/linux/kernel-posix-timers.h
> @@ -48,6 +48,11 @@ libc_hidden_proto (__timer_active_sigev_thread)
> extern pthread_mutex_t __timer_active_sigev_thread_lock;
> libc_hidden_proto (__timer_active_sigev_thread_lock)
>
> +extern __typeof (timer_create) __timer_create;
> +libc_hidden_proto (__timer_create)
> +extern __typeof (timer_delete) __timer_delete;
> +libc_hidden_proto (__timer_delete)
> +
> /* Type of timers in the kernel. */
> typedef int kernel_timer_t;
>
> @@ -107,3 +112,8 @@ timerid_to_kernel_timer (timer_t timerid)
> /* New targets use int instead of timer_t. The difference only
> matters on 64-bit targets. */
> #define TIMER_T_WAS_INT_COMPAT 0
> +
> +/* Used if an override sets TIMER_T_WAS_INT_COMPAT to 1. */
> +#define OLD_TIMER_MAX 256
> +extern timer_t __timer_compat_list[OLD_TIMER_MAX];
> +libc_hidden_proto (__timer_compat_list)
Ok.
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index ff831374fa..e7c0a81f37 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -435,6 +435,8 @@ GLIBC_2.34 thrd_create F
> GLIBC_2.34 thrd_detach F
> GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> +GLIBC_2.34 timer_create F
> +GLIBC_2.34 timer_delete F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> @@ -2330,6 +2332,8 @@ GLIBC_2.4 tfind F
> GLIBC_2.4 time F
> GLIBC_2.4 timegm F
> GLIBC_2.4 timelocal F
> +GLIBC_2.4 timer_create F
> +GLIBC_2.4 timer_delete F
> GLIBC_2.4 times F
> GLIBC_2.4 timezone D 0x4
> GLIBC_2.4 tmpfile F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> index 8682174e36..0887259367 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> @@ -1,7 +1,5 @@
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> -GLIBC_2.4 timer_create F
> -GLIBC_2.4 timer_delete F
> GLIBC_2.4 timer_getoverrun F
> GLIBC_2.4 timer_gettime F
> GLIBC_2.4 timer_settime F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index b2c98b40e9..b82f6366ee 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -2062,6 +2062,8 @@ GLIBC_2.2 svc_max_pollfd D 0x4
> GLIBC_2.2 svc_pollfd D 0x4
> GLIBC_2.2 swprintf F
> GLIBC_2.2 swscanf F
> +GLIBC_2.2 timer_create F
> +GLIBC_2.2 timer_delete F
> GLIBC_2.2 ungetwc F
> GLIBC_2.2 versionsort64 F
> GLIBC_2.2 vfwprintf F
> @@ -2631,6 +2633,8 @@ GLIBC_2.34 thrd_create F
> GLIBC_2.34 thrd_detach F
> GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> +GLIBC_2.34 timer_create F
> +GLIBC_2.34 timer_delete F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> index cfe4455a75..1268c7fc38 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> @@ -1,6 +1,4 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_create F
> -GLIBC_2.2 timer_delete F
> GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index fa945ee6fc..3f9dfa7664 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -2010,6 +2010,8 @@ GLIBC_2.18 tfind F
> GLIBC_2.18 time F
> GLIBC_2.18 timegm F
> GLIBC_2.18 timelocal F
> +GLIBC_2.18 timer_create F
> +GLIBC_2.18 timer_delete F
> GLIBC_2.18 timerfd_create F
> GLIBC_2.18 timerfd_gettime F
> GLIBC_2.18 timerfd_settime F
> @@ -2602,6 +2604,8 @@ GLIBC_2.34 thrd_create F
> GLIBC_2.34 thrd_detach F
> GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> +GLIBC_2.34 timer_create F
> +GLIBC_2.34 timer_delete F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> index fcfed800bf..2efee3a326 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.18 timer_create F
> -GLIBC_2.18 timer_delete F
> GLIBC_2.18 timer_getoverrun F
> GLIBC_2.18 timer_gettime F
> GLIBC_2.18 timer_settime F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index c65815be74..bb2fd6251f 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -2010,6 +2010,8 @@ GLIBC_2.18 tfind F
> GLIBC_2.18 time F
> GLIBC_2.18 timegm F
> GLIBC_2.18 timelocal F
> +GLIBC_2.18 timer_create F
> +GLIBC_2.18 timer_delete F
> GLIBC_2.18 timerfd_create F
> GLIBC_2.18 timerfd_gettime F
> GLIBC_2.18 timerfd_settime F
> @@ -2599,6 +2601,8 @@ GLIBC_2.34 thrd_create F
> GLIBC_2.34 thrd_detach F
> GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> +GLIBC_2.34 timer_create F
> +GLIBC_2.34 timer_delete F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> index fcfed800bf..2efee3a326 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.18 timer_create F
> -GLIBC_2.18 timer_delete F
> GLIBC_2.18 timer_getoverrun F
> GLIBC_2.18 timer_gettime F
> GLIBC_2.18 timer_settime F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index 9c0174bf65..938142fb4a 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -1993,6 +1993,8 @@ GLIBC_2.2 sys_siglist D 0x100
> GLIBC_2.2 sysv_signal F
> GLIBC_2.2 tcgetsid F
> GLIBC_2.2 tdestroy F
> +GLIBC_2.2 timer_create F
> +GLIBC_2.2 timer_delete F
> GLIBC_2.2 tmpfile F
> GLIBC_2.2 tmpfile64 F
> GLIBC_2.2 truncate64 F
> @@ -2596,6 +2598,8 @@ GLIBC_2.34 thrd_create F
> GLIBC_2.34 thrd_detach F
> GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> +GLIBC_2.34 timer_create F
> +GLIBC_2.34 timer_delete F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> index da85415743..dbc81ebe4b 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 timer_create F
> -GLIBC_2.2 timer_delete F
> GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index ac245f4413..d62382883b 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -1991,6 +1991,8 @@ GLIBC_2.2 sys_siglist D 0x100
> GLIBC_2.2 sysv_signal F
> GLIBC_2.2 tcgetsid F
> GLIBC_2.2 tdestroy F
> +GLIBC_2.2 timer_create F
> +GLIBC_2.2 timer_delete F
> GLIBC_2.2 tmpfile F
> GLIBC_2.2 tmpfile64 F
> GLIBC_2.2 truncate64 F
> @@ -2594,6 +2596,8 @@ GLIBC_2.34 thrd_create F
> GLIBC_2.34 thrd_detach F
> GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> +GLIBC_2.34 timer_create F
> +GLIBC_2.34 timer_delete F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index f17c4b3412..28a8a5d294 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -1989,6 +1989,8 @@ GLIBC_2.2 sys_siglist D 0x100
> GLIBC_2.2 sysv_signal F
> GLIBC_2.2 tcgetsid F
> GLIBC_2.2 tdestroy F
> +GLIBC_2.2 timer_create F
> +GLIBC_2.2 timer_delete F
> GLIBC_2.2 tmpfile F
> GLIBC_2.2 tmpfile64 F
> GLIBC_2.2 truncate64 F
> @@ -2602,6 +2604,8 @@ GLIBC_2.34 thrd_create F
> GLIBC_2.34 thrd_detach F
> GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> +GLIBC_2.34 timer_create F
> +GLIBC_2.34 timer_delete F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> index da85415743..dbc81ebe4b 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 timer_create F
> -GLIBC_2.2 timer_delete F
> GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index 4d9dea349d..6748f9beef 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -1985,6 +1985,8 @@ GLIBC_2.2 sys_siglist D 0x200
> GLIBC_2.2 sysv_signal F
> GLIBC_2.2 tcgetsid F
> GLIBC_2.2 tdestroy F
> +GLIBC_2.2 timer_create F
> +GLIBC_2.2 timer_delete F
> GLIBC_2.2 tmpfile F
> GLIBC_2.2 tmpfile64 F
> GLIBC_2.2 truncate64 F
> @@ -2517,6 +2519,8 @@ GLIBC_2.34 thrd_create F
> GLIBC_2.34 thrd_detach F
> GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> +GLIBC_2.34 timer_create F
> +GLIBC_2.34 timer_delete F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> index 51354b072d..00fd77bbab 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 timer_create F
> -GLIBC_2.2 timer_delete F
> GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index a1f3808f18..03d13e5ee1 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -2052,6 +2052,8 @@ GLIBC_2.21 tfind F
> GLIBC_2.21 time F
> GLIBC_2.21 timegm F
> GLIBC_2.21 timelocal F
> +GLIBC_2.21 timer_create F
> +GLIBC_2.21 timer_delete F
> GLIBC_2.21 timerfd_create F
> GLIBC_2.21 timerfd_gettime F
> GLIBC_2.21 timerfd_settime F
> @@ -2641,6 +2643,8 @@ GLIBC_2.34 thrd_create F
> GLIBC_2.34 thrd_detach F
> GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> +GLIBC_2.34 timer_create F
> +GLIBC_2.34 timer_delete F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
> index 29111b77bd..a83ae32d03 100644
> --- a/sysdeps/unix/sysv/linux/nios2/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.21 timer_create F
> -GLIBC_2.21 timer_delete F
> GLIBC_2.21 timer_getoverrun F
> GLIBC_2.21 timer_gettime F
> GLIBC_2.21 timer_settime F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index c80718d0b1..c9a45ecb17 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -2067,6 +2067,8 @@ GLIBC_2.2 svc_max_pollfd D 0x4
> GLIBC_2.2 svc_pollfd D 0x4
> GLIBC_2.2 swprintf F
> GLIBC_2.2 swscanf F
> +GLIBC_2.2 timer_create F
> +GLIBC_2.2 timer_delete F
> GLIBC_2.2 ungetwc F
> GLIBC_2.2 vfwprintf F
> GLIBC_2.2 vfwscanf F
> @@ -2658,6 +2660,8 @@ GLIBC_2.34 thrd_create F
> GLIBC_2.34 thrd_detach F
> GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> +GLIBC_2.34 timer_create F
> +GLIBC_2.34 timer_delete F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> index cfe4455a75..1268c7fc38 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> @@ -1,6 +1,4 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_create F
> -GLIBC_2.2 timer_delete F
> GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index 8156d06db5..c7fbc347a1 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -2071,6 +2071,8 @@ GLIBC_2.2 svc_max_pollfd D 0x4
> GLIBC_2.2 svc_pollfd D 0x4
> GLIBC_2.2 swprintf F
> GLIBC_2.2 swscanf F
> +GLIBC_2.2 timer_create F
> +GLIBC_2.2 timer_delete F
> GLIBC_2.2 ungetwc F
> GLIBC_2.2 vfwprintf F
> GLIBC_2.2 vfwscanf F
> @@ -2691,6 +2693,8 @@ GLIBC_2.34 thrd_create F
> GLIBC_2.34 thrd_detach F
> GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> +GLIBC_2.34 timer_create F
> +GLIBC_2.34 timer_delete F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
Ok.
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions b/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions
> index 84c809507f..4eb22c11ac 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions
> @@ -29,7 +29,7 @@ libc {
> librt {
> GLIBC_2.3.3 {
> # Changed timer_t.
> - timer_create; timer_delete; timer_getoverrun; timer_gettime;
> + timer_getoverrun; timer_gettime;
> timer_settime;
> }
> }
Ok.
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index a99bd9409b..fb5eb9c67e 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -1886,6 +1886,8 @@ GLIBC_2.3 tfind F
> GLIBC_2.3 time F
> GLIBC_2.3 timegm F
> GLIBC_2.3 timelocal F
> +GLIBC_2.3 timer_create F
> +GLIBC_2.3 timer_delete F
> GLIBC_2.3 times F
> GLIBC_2.3 timezone D 0x8
> GLIBC_2.3 tmpfile F
> @@ -2162,6 +2164,8 @@ GLIBC_2.3.3 strtoll_l F
> GLIBC_2.3.3 strtoull_l F
> GLIBC_2.3.3 sys_sigabbrev D 0x208
> GLIBC_2.3.3 sys_siglist D 0x208
> +GLIBC_2.3.3 timer_create F
> +GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.4 __chk_fail F
> GLIBC_2.3.4 __fprintf_chk F
> GLIBC_2.3.4 __gets_chk F
> @@ -2425,6 +2429,8 @@ GLIBC_2.34 thrd_create F
> GLIBC_2.34 thrd_detach F
> GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> +GLIBC_2.34 timer_create F
> +GLIBC_2.34 timer_delete F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> index 9df959a434..914203b043 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> @@ -1,10 +1,6 @@
> -GLIBC_2.3 timer_create F
> -GLIBC_2.3 timer_delete F
> GLIBC_2.3 timer_getoverrun F
> GLIBC_2.3 timer_gettime F
> GLIBC_2.3 timer_settime F
> -GLIBC_2.3.3 timer_create F
> -GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index ae562f2864..b89256aba0 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -2094,6 +2094,8 @@ GLIBC_2.17 tfind F
> GLIBC_2.17 time F
> GLIBC_2.17 timegm F
> GLIBC_2.17 timelocal F
> +GLIBC_2.17 timer_create F
> +GLIBC_2.17 timer_delete F
> GLIBC_2.17 timerfd_create F
> GLIBC_2.17 timerfd_gettime F
> GLIBC_2.17 timerfd_settime F
> @@ -2725,6 +2727,8 @@ GLIBC_2.34 thrd_create F
> GLIBC_2.34 thrd_detach F
> GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> +GLIBC_2.34 timer_create F
> +GLIBC_2.34 timer_delete F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> index 54bb3e5c7c..34768d1472 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.17 timer_create F
> -GLIBC_2.17 timer_delete F
> GLIBC_2.17 timer_getoverrun F
> GLIBC_2.17 timer_gettime F
> GLIBC_2.17 timer_settime F
Ok.
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_create.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_create.c
> deleted file mode 100644
> index d307135003..0000000000
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_create.c
> +++ /dev/null
> @@ -1 +0,0 @@
Ok.
> -#include <sysdeps/unix/sysv/linux/x86_64/timer_create.c>
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_delete.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_delete.c
> deleted file mode 100644
> index 2dd94f5c7a..0000000000
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_delete.c
> +++ /dev/null
> @@ -1 +0,0 @@
> -#include <sysdeps/unix/sysv/linux/x86_64/timer_delete.c>
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index 7422465183..c653f52373 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -1950,6 +1950,8 @@ GLIBC_2.33 thrd_yield F
> GLIBC_2.33 time F
> GLIBC_2.33 timegm F
> GLIBC_2.33 timelocal F
> +GLIBC_2.33 timer_create F
> +GLIBC_2.33 timer_delete F
> GLIBC_2.33 timerfd_create F
> GLIBC_2.33 timerfd_gettime F
> GLIBC_2.33 timerfd_settime F
> @@ -2290,6 +2292,8 @@ GLIBC_2.34 thrd_create F
> GLIBC_2.34 thrd_detach F
> GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> +GLIBC_2.34 timer_create F
> +GLIBC_2.34 timer_delete F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> index 540cdef209..09bbee0960 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.33 timer_create F
> -GLIBC_2.33 timer_delete F
> GLIBC_2.33 timer_getoverrun F
> GLIBC_2.33 timer_gettime F
> GLIBC_2.33 timer_settime F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index 0bb8343ac4..711484eee5 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -2016,6 +2016,8 @@ GLIBC_2.27 tfind F
> GLIBC_2.27 time F
> GLIBC_2.27 timegm F
> GLIBC_2.27 timelocal F
> +GLIBC_2.27 timer_create F
> +GLIBC_2.27 timer_delete F
> GLIBC_2.27 timerfd_create F
> GLIBC_2.27 timerfd_gettime F
> GLIBC_2.27 timerfd_settime F
> @@ -2490,6 +2492,8 @@ GLIBC_2.34 thrd_create F
> GLIBC_2.34 thrd_detach F
> GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> +GLIBC_2.34 timer_create F
> +GLIBC_2.34 timer_delete F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> index e436beaf7e..8e1d8b21fe 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.27 timer_create F
> -GLIBC_2.27 timer_delete F
> GLIBC_2.27 timer_getoverrun F
> GLIBC_2.27 timer_gettime F
> GLIBC_2.27 timer_settime F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index f9db909d63..4040312275 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -2065,6 +2065,8 @@ GLIBC_2.2 svc_max_pollfd D 0x4
> GLIBC_2.2 svc_pollfd D 0x4
> GLIBC_2.2 swprintf F
> GLIBC_2.2 swscanf F
> +GLIBC_2.2 timer_create F
> +GLIBC_2.2 timer_delete F
> GLIBC_2.2 ungetwc F
> GLIBC_2.2 versionsort64 F
> GLIBC_2.2 vfwprintf F
> @@ -2656,6 +2658,8 @@ GLIBC_2.34 thrd_create F
> GLIBC_2.34 thrd_detach F
> GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> +GLIBC_2.34 timer_create F
> +GLIBC_2.34 timer_delete F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> index cfe4455a75..1268c7fc38 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> @@ -1,6 +1,4 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_create F
> -GLIBC_2.2 timer_delete F
> GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
Ok.
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/Versions b/sysdeps/unix/sysv/linux/s390/s390-64/Versions
> index 3f4d960421..5989ac75a9 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/Versions
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/Versions
> @@ -9,7 +9,7 @@ libc {
> librt {
> GLIBC_2.3.3 {
> # Changed timer_t.
> - timer_create; timer_delete; timer_getoverrun; timer_gettime;
> + timer_getoverrun; timer_gettime;
> timer_settime;
> }
> }
Ok.
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index 593e5f9ae7..4cf6a5ea09 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -1761,6 +1761,8 @@ GLIBC_2.2 tfind F
> GLIBC_2.2 time F
> GLIBC_2.2 timegm F
> GLIBC_2.2 timelocal F
> +GLIBC_2.2 timer_create F
> +GLIBC_2.2 timer_delete F
> GLIBC_2.2 times F
> GLIBC_2.2 timezone D 0x8
> GLIBC_2.2 tmpfile F
> @@ -2208,6 +2210,8 @@ GLIBC_2.3.3 strtoll_l F
> GLIBC_2.3.3 strtoull_l F
> GLIBC_2.3.3 sys_sigabbrev D 0x208
> GLIBC_2.3.3 sys_siglist D 0x208
> +GLIBC_2.3.3 timer_create F
> +GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.4 __chk_fail F
> GLIBC_2.3.4 __fprintf_chk F
> GLIBC_2.3.4 __gets_chk F
> @@ -2462,6 +2466,8 @@ GLIBC_2.34 thrd_create F
> GLIBC_2.34 thrd_detach F
> GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> +GLIBC_2.34 timer_create F
> +GLIBC_2.34 timer_delete F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> index 9e185ecaef..34e8d31133 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> @@ -1,10 +1,6 @@
> -GLIBC_2.2 timer_create F
> -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.3 timer_create F
> -GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
Ok.
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/timer_create.c b/sysdeps/unix/sysv/linux/s390/s390-64/timer_create.c
> deleted file mode 100644
> index d307135003..0000000000
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/timer_create.c
> +++ /dev/null
> @@ -1 +0,0 @@
> -#include <sysdeps/unix/sysv/linux/x86_64/timer_create.c>
Ok.
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/timer_delete.c b/sysdeps/unix/sysv/linux/s390/s390-64/timer_delete.c
> deleted file mode 100644
> index 2dd94f5c7a..0000000000
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/timer_delete.c
> +++ /dev/null
> @@ -1 +0,0 @@
> -#include <sysdeps/unix/sysv/linux/x86_64/timer_delete.c>
Ok.
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index 8da4e375d9..6fd93a5445 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -1748,6 +1748,8 @@ GLIBC_2.2 tfind F
> GLIBC_2.2 time F
> GLIBC_2.2 timegm F
> GLIBC_2.2 timelocal F
> +GLIBC_2.2 timer_create F
> +GLIBC_2.2 timer_delete F
> GLIBC_2.2 times F
> GLIBC_2.2 timezone D 0x4
> GLIBC_2.2 tmpfile F
> @@ -2511,6 +2513,8 @@ GLIBC_2.34 thrd_create F
> GLIBC_2.34 thrd_detach F
> GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> +GLIBC_2.34 timer_create F
> +GLIBC_2.34 timer_delete F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> index cfe4455a75..1268c7fc38 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> @@ -1,6 +1,4 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_create F
> -GLIBC_2.2 timer_delete F
> GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index 6f13625e6f..c5c41bf0e6 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -1748,6 +1748,8 @@ GLIBC_2.2 tfind F
> GLIBC_2.2 time F
> GLIBC_2.2 timegm F
> GLIBC_2.2 timelocal F
> +GLIBC_2.2 timer_create F
> +GLIBC_2.2 timer_delete F
> GLIBC_2.2 times F
> GLIBC_2.2 timezone D 0x4
> GLIBC_2.2 tmpfile F
> @@ -2508,6 +2510,8 @@ GLIBC_2.34 thrd_create F
> GLIBC_2.34 thrd_detach F
> GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> +GLIBC_2.34 timer_create F
> +GLIBC_2.34 timer_delete F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> index cfe4455a75..1268c7fc38 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> @@ -1,6 +1,4 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_create F
> -GLIBC_2.2 timer_delete F
> GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index 984222296d..132470d40b 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -2060,6 +2060,8 @@ GLIBC_2.2 svc_max_pollfd D 0x4
> GLIBC_2.2 svc_pollfd D 0x4
> GLIBC_2.2 swprintf F
> GLIBC_2.2 swscanf F
> +GLIBC_2.2 timer_create F
> +GLIBC_2.2 timer_delete F
> GLIBC_2.2 ungetwc F
> GLIBC_2.2 vfwprintf F
> GLIBC_2.2 vfwscanf F
> @@ -2651,6 +2653,8 @@ GLIBC_2.34 thrd_create F
> GLIBC_2.34 thrd_detach F
> GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> +GLIBC_2.34 timer_create F
> +GLIBC_2.34 timer_delete F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> index fb3a2042e0..d8ff3b0988 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> @@ -1,6 +1,4 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_create F
> -GLIBC_2.2 timer_delete F
> GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
Ok.
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/Versions b/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
> index 33b6779ec5..358081399a 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
> @@ -14,7 +14,7 @@ libc {
> librt {
> GLIBC_2.3.3 {
> # Changed timer_t.
> - timer_create; timer_delete; timer_getoverrun; timer_gettime;
> + timer_getoverrun; timer_gettime;
> timer_settime;
> }
> }
Ok.
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index a6dc7f2e40..6ee552611b 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -1791,6 +1791,8 @@ GLIBC_2.2 tfind F
> GLIBC_2.2 time F
> GLIBC_2.2 timegm F
> GLIBC_2.2 timelocal F
> +GLIBC_2.2 timer_create F
> +GLIBC_2.2 timer_delete F
> GLIBC_2.2 times F
> GLIBC_2.2 timezone D 0x8
> GLIBC_2.2 tmpfile F
> @@ -2242,6 +2244,8 @@ GLIBC_2.3.3 strtoll_l F
> GLIBC_2.3.3 strtoull_l F
> GLIBC_2.3.3 sys_sigabbrev D 0x208
> GLIBC_2.3.3 sys_siglist D 0x208
> +GLIBC_2.3.3 timer_create F
> +GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.4 __chk_fail F
> GLIBC_2.3.4 __fprintf_chk F
> GLIBC_2.3.4 __gets_chk F
> @@ -2484,6 +2488,8 @@ GLIBC_2.34 thrd_create F
> GLIBC_2.34 thrd_detach F
> GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> +GLIBC_2.34 timer_create F
> +GLIBC_2.34 timer_delete F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> index 8592c90bdf..3b744cf5a1 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> @@ -1,12 +1,8 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_create F
> -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 __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
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
Ok.
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c b/sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c
> deleted file mode 100644
> index d307135003..0000000000
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c
> +++ /dev/null
> @@ -1 +0,0 @@
> -#include <sysdeps/unix/sysv/linux/x86_64/timer_create.c>
Ok.
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c b/sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c
> deleted file mode 100644
> index 2dd94f5c7a..0000000000
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c
> +++ /dev/null
> @@ -1 +0,0 @@
> -#include <sysdeps/unix/sysv/linux/x86_64/timer_delete.c>
Ok.
> diff --git a/sysdeps/unix/sysv/linux/timer_create.c b/sysdeps/unix/sysv/linux/timer_create.c
> index 3dcd5455fc..9861177cf2 100644
> --- a/sysdeps/unix/sysv/linux/timer_create.c
> +++ b/sysdeps/unix/sysv/linux/timer_create.c
> @@ -27,17 +27,11 @@
> #include <pthreadP.h>
> #include <kernel-posix-timers.h>
> #include "kernel-posix-cpu-timers.h"
> -
> -
> -#ifdef timer_create_alias
> -# define timer_create timer_create_alias
> -#endif
> -
> +#include <shlib-compat.h>
>
> int
> -timer_create (clockid_t clock_id, struct sigevent *evp, timer_t *timerid)
> +___timer_create (clockid_t clock_id, struct sigevent *evp, timer_t *timerid)
> {
> -#undef timer_create
> {
> clockid_t syscall_clockid = (clock_id == CLOCK_PROCESS_CPUTIME_ID
> ? MAKE_PROCESS_CPUCLOCK (0, CPUCLOCK_SCHED)
> @@ -74,7 +68,7 @@ timer_create (clockid_t clock_id, struct sigevent *evp, timer_t *timerid)
> else
> {
> /* Create the helper thread. */
> - pthread_once (&__timer_helper_once, __timer_start_helper_thread);
> + __pthread_once (&__timer_helper_once, __timer_start_helper_thread);
> if (__timer_helper_tid == 0)
> {
> /* No resources to start the helper thread. */
Ok.
> @@ -93,7 +87,7 @@ timer_create (clockid_t clock_id, struct sigevent *evp, timer_t *timerid)
> /* We cannot simply copy the thread attributes since the
> implementation might keep internal information for
> each instance. */
> - pthread_attr_init (&newp->attr);
> + __pthread_attr_init (&newp->attr);
> if (evp->sigev_notify_attributes != NULL)
> {
> struct pthread_attr *nattr;
> @@ -111,7 +105,7 @@ timer_create (clockid_t clock_id, struct sigevent *evp, timer_t *timerid)
> }
>
> /* In any case set the detach flag. */
> - pthread_attr_setdetachstate (&newp->attr, PTHREAD_CREATE_DETACHED);
> + __pthread_attr_setdetachstate (&newp->attr, PTHREAD_CREATE_DETACHED);
>
> /* Create the event structure for the kernel timer. */
> struct sigevent sev =
> @@ -132,10 +126,10 @@ timer_create (clockid_t clock_id, struct sigevent *evp, timer_t *timerid)
> }
>
> /* Add to the queue of active timers with thread delivery. */
> - pthread_mutex_lock (&__timer_active_sigev_thread_lock);
> + __pthread_mutex_lock (&__timer_active_sigev_thread_lock);
> newp->next = __timer_active_sigev_thread;
> __timer_active_sigev_thread = newp;
> - pthread_mutex_unlock (&__timer_active_sigev_thread_lock);
> + __pthread_mutex_unlock (&__timer_active_sigev_thread_lock);
>
> *timerid = timer_to_timerid (newp);
> }
> @@ -143,3 +137,52 @@ timer_create (clockid_t clock_id, struct sigevent *evp, timer_t *timerid)
>
> return 0;
> }
Ok.
> +versioned_symbol (libc, ___timer_create, timer_create, GLIBC_2_34);
> +libc_hidden_ver (___timer_create, __timer_create)
> +
> +#if TIMER_T_WAS_INT_COMPAT
> +# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_3_3, GLIBC_2_34)
> +compat_symbol (librt, ___timer_create, timer_create, GLIBC_2_3_3);
> +# endif
> +
> +# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_3_3)
> +timer_t __timer_compat_list[OLD_TIMER_MAX] __attribute__ ((nocommon));
> +libc_hidden_data_def (__timer_compat_list)
> +
> +int
> +__timer_create_old (clockid_t clock_id, struct sigevent *evp, int *timerid)
> +{
> + timer_t newp;
> +
> + int res = __timer_create (clock_id, evp, &newp);
> + if (res == 0)
> + {
> + int i;
> + for (i = 0; i < OLD_TIMER_MAX; ++i)
> + if (__timer_compat_list[i] == NULL
> + && ! atomic_compare_and_exchange_bool_acq (&__timer_compat_list[i],
> + newp, NULL))
> + {
> + *timerid = i;
> + break;
> + }
> +
> + if (__glibc_unlikely (i == OLD_TIMER_MAX))
> + {
> + /* No free slot. */
> + (void) __timer_delete (newp);
No need to cast here.
> + __set_errno (EINVAL);
> + res = -1;
> + }
> + }
> +
> + return res;
> +}
> +compat_symbol (librt, __timer_create_old, timer_create, GLIBC_2_2);
> +# endif /* OTHER_SHLIB_COMPAT */
> +
> +#else /* !TIMER_T_WAS_INT_COMPAT */
> +# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_34)
> +compat_symbol (librt, ___timer_create, timer_create, GLIBC_2_2);
> +# endif
> +#endif /* !TIMER_T_WAS_INT_COMPAT */
Ok.
> diff --git a/sysdeps/unix/sysv/linux/timer_delete.c b/sysdeps/unix/sysv/linux/timer_delete.c
> index ee8c364d95..074a489afd 100644
> --- a/sysdeps/unix/sysv/linux/timer_delete.c
> +++ b/sysdeps/unix/sysv/linux/timer_delete.c
> @@ -21,17 +21,12 @@
> #include <time.h>
> #include <sysdep.h>
> #include <kernel-posix-timers.h>
> -
> -
> -#ifdef timer_delete_alias
> -# define timer_delete timer_delete_alias
> -#endif
> -
> +#include <pthreadP.h>
> +#include <shlib-compat.h>
>
> int
> -timer_delete (timer_t timerid)
> +___timer_delete (timer_t timerid)
> {
> -#undef timer_delete
Ok.
> kernel_timer_t ktimerid = timerid_to_kernel_timer (timerid);
> int res = INLINE_SYSCALL_CALL (timer_delete, ktimerid);
>
> @@ -42,7 +37,7 @@ timer_delete (timer_t timerid)
> struct timer *kt = timerid_to_timer (timerid);
>
> /* Remove the timer from the list. */
> - pthread_mutex_lock (&__timer_active_sigev_thread_lock);
> + __pthread_mutex_lock (&__timer_active_sigev_thread_lock);
> if (__timer_active_sigev_thread == kt)
> __timer_active_sigev_thread = kt->next;
> else
> @@ -57,7 +52,7 @@ timer_delete (timer_t timerid)
> else
> prevp = prevp->next;
> }
> - pthread_mutex_unlock (&__timer_active_sigev_thread_lock);
> + __pthread_mutex_unlock (&__timer_active_sigev_thread_lock);
>
> free (kt);
> }
> @@ -69,3 +64,34 @@ timer_delete (timer_t timerid)
> Return the error. */
> return -1;
> }
> +versioned_symbol (libc, ___timer_delete, timer_delete, GLIBC_2_34);
> +libc_hidden_ver (___timer_delete, __timer_delete)
> +
> +#if TIMER_T_WAS_INT_COMPAT
> +# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_3_3, GLIBC_2_34)
> +compat_symbol (librt, ___timer_delete, timer_delete, GLIBC_2_3_3);
> +#endif
> +
> +# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_3_3)
> +int
> +__timer_delete_old (int timerid)
> +{
> + int res = __timer_delete (__timer_compat_list[timerid]);
> +
> + if (res == 0)
> + /* Successful timer deletion, now free the index. We only need to
> + store a word and that better be atomic. */
> + __timer_compat_list[timerid] = NULL;
> +
> + return res;
> +}
> +compat_symbol (librt, __timer_delete_old, timer_delete, GLIBC_2_2);
> +# endif /* OTHER_SHLIB_COMPAT */
> +
> +#else /* !TIMER_T_WAS_INT_COMPAT */
> +/* The transition from int to timer_t did not change ABI because the
> + type sizes are the same. */
> +# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_34)
> +compat_symbol (librt, ___timer_delete, timer_delete, GLIBC_2_2);
> +# endif
> +#endif /* !TIMER_T_WAS_INT_COMPAT */
Ok.
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index 5d0a9c4012..377d35a04f 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -1760,6 +1760,8 @@ GLIBC_2.2.5 tfind F
> GLIBC_2.2.5 time F
> GLIBC_2.2.5 timegm F
> GLIBC_2.2.5 timelocal F
> +GLIBC_2.2.5 timer_create F
> +GLIBC_2.2.5 timer_delete F
> GLIBC_2.2.5 times F
> GLIBC_2.2.5 timezone D 0x8
> GLIBC_2.2.5 tmpfile F
> @@ -2196,6 +2198,8 @@ GLIBC_2.3.3 strtoll_l F
> GLIBC_2.3.3 strtoull_l F
> GLIBC_2.3.3 sys_sigabbrev D 0x208
> GLIBC_2.3.3 sys_siglist D 0x208
> +GLIBC_2.3.3 timer_create F
> +GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.4 __chk_fail F
> GLIBC_2.3.4 __fprintf_chk F
> GLIBC_2.3.4 __gets_chk F
> @@ -2440,6 +2444,8 @@ GLIBC_2.34 thrd_create F
> GLIBC_2.34 thrd_detach F
> GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> +GLIBC_2.34 timer_create F
> +GLIBC_2.34 timer_delete F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> index ce501e124d..13a2bf2022 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> @@ -1,10 +1,6 @@
> -GLIBC_2.2.5 timer_create F
> -GLIBC_2.2.5 timer_delete F
> GLIBC_2.2.5 timer_getoverrun F
> GLIBC_2.2.5 timer_gettime F
> GLIBC_2.2.5 timer_settime F
> -GLIBC_2.3.3 timer_create F
> -GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
Ok.
> diff --git a/sysdeps/unix/sysv/linux/x86_64/Versions b/sysdeps/unix/sysv/linux/x86_64/Versions
> index 2a7ed280fd..c4d1c5fb79 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/Versions
> +++ b/sysdeps/unix/sysv/linux/x86_64/Versions
> @@ -11,7 +11,7 @@ libc {
> librt {
> GLIBC_2.3.3 {
> # Changed timer_t.
> - timer_create; timer_delete; timer_getoverrun; timer_gettime;
> + timer_getoverrun; timer_gettime;
> timer_settime;
> }
> }
Ok.
> diff --git a/sysdeps/unix/sysv/linux/x86_64/compat-timer.h b/sysdeps/unix/sysv/linux/x86_64/compat-timer.h
> index 334808b5ac..c61eb40070 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/compat-timer.h
> +++ b/sysdeps/unix/sysv/linux/x86_64/compat-timer.h
> @@ -20,14 +20,6 @@
> #include <time.h>
> #include <sys/types.h>
>
> -#define OLD_TIMER_MAX 256
> -
> -extern timer_t __compat_timer_list[OLD_TIMER_MAX] attribute_hidden;
> -
> -
> -extern int __timer_create_new (clockid_t clock_id, struct sigevent *evp,
> - timer_t *timerid);
> -extern int __timer_delete_new (timer_t timerid);
> extern int __timer_getoverrun_new (timer_t timerid);
> extern int __timer_gettime_new (timer_t timerid, struct itimerspec *value);
> extern int __timer_settime_new (timer_t timerid, int flags,
Ok.
> diff --git a/sysdeps/unix/sysv/linux/x86_64/timer_create.c b/sysdeps/unix/sysv/linux/x86_64/timer_create.c
> deleted file mode 100644
> index ec71ae488b..0000000000
> --- a/sysdeps/unix/sysv/linux/x86_64/timer_create.c
> +++ /dev/null
> @@ -1,65 +0,0 @@
> -/* Copyright (C) 2003-2021 Free Software Foundation, Inc.
> - This file is part of the GNU C Library.
> - Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
> -
> - 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; see the file COPYING.LIB. If
> - not, see <https://www.gnu.org/licenses/>. */
> -
> -#include <shlib-compat.h>
> -#include "compat-timer.h"
> -#include <atomic.h>
> -
> -
> -#define timer_create_alias __timer_create_new
> -#include <sysdeps/unix/sysv/linux/timer_create.c>
> -
> -#undef timer_create
> -versioned_symbol (librt, __timer_create_new, timer_create, GLIBC_2_3_3);
> -
> -
> -#if SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_3_3)
> -timer_t __compat_timer_list[OLD_TIMER_MAX] attribute_hidden;
> -
> -
> -int
> -__timer_create_old (clockid_t clock_id, struct sigevent *evp, int *timerid)
> -{
> - timer_t newp;
> -
> - int res = __timer_create_new (clock_id, evp, &newp);
> - if (res == 0)
> - {
> - int i;
> - for (i = 0; i < OLD_TIMER_MAX; ++i)
> - if (__compat_timer_list[i] == NULL
> - && ! atomic_compare_and_exchange_bool_acq (&__compat_timer_list[i],
> - newp, NULL))
> - {
> - *timerid = i;
> - break;
> - }
> -
> - if (__glibc_unlikely (i == OLD_TIMER_MAX))
> - {
> - /* No free slot. */
> - (void) __timer_delete_new (newp);
> - __set_errno (EINVAL);
> - res = -1;
> - }
> - }
> -
> - return res;
> -}
> -compat_symbol (librt, __timer_create_old, timer_create, GLIBC_2_2);
> -#endif
Ok.
> diff --git a/sysdeps/unix/sysv/linux/x86_64/timer_delete.c b/sysdeps/unix/sysv/linux/x86_64/timer_delete.c
> deleted file mode 100644
> index 7fc37fc1a7..0000000000
> --- a/sysdeps/unix/sysv/linux/x86_64/timer_delete.c
> +++ /dev/null
> @@ -1,44 +0,0 @@
> -/* Copyright (C) 2003-2021 Free Software Foundation, Inc.
> - This file is part of the GNU C Library.
> - Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
> -
> - 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; see the file COPYING.LIB. If
> - not, see <https://www.gnu.org/licenses/>. */
> -
> -#include <shlib-compat.h>
> -#include "compat-timer.h"
> -
> -
> -#define timer_delete_alias __timer_delete_new
> -#include <sysdeps/unix/sysv/linux/timer_delete.c>
> -
> -#undef timer_delete
> -versioned_symbol (librt, __timer_delete_new, timer_delete, GLIBC_2_3_3);
> -
> -
> -#if SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_3_3)
> -int
> -__timer_delete_old (int timerid)
> -{
> - int res = __timer_delete_new (__compat_timer_list[timerid]);
> -
> - if (res == 0)
> - /* Successful timer deletion, now free the index. We only need to
> - store a word and that better be atomic. */
> - __compat_timer_list[timerid] = NULL;
> -
> - return res;
> -}
> -compat_symbol (librt, __timer_delete_old, timer_delete, GLIBC_2_2);
> -#endif
Ok.
> diff --git a/sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c b/sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c
> index 9b4c1b2235..fb6e631a00 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c
> +++ b/sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c
> @@ -32,7 +32,7 @@ versioned_symbol (librt, __timer_getoverrun_new, timer_getoverrun,
> int
> __timer_getoverrun_old (int timerid)
> {
> - return __timer_getoverrun_new (__compat_timer_list[timerid]);
> + return __timer_getoverrun_new (__timer_compat_list[timerid]);
> }
> compat_symbol (librt, __timer_getoverrun_old, timer_getoverrun, GLIBC_2_2);
> #endif
Ok.
> diff --git a/sysdeps/unix/sysv/linux/x86_64/timer_gettime.c b/sysdeps/unix/sysv/linux/x86_64/timer_gettime.c
> index 107b1f97c7..06ccbc40bd 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/timer_gettime.c
> +++ b/sysdeps/unix/sysv/linux/x86_64/timer_gettime.c
> @@ -35,7 +35,7 @@ versioned_symbol (librt, __timer_gettime_new, timer_gettime, GLIBC_2_3_3);
> int
> __timer_gettime_old (int timerid, struct itimerspec *value)
> {
> - return __timer_gettime_new (__compat_timer_list[timerid], value);
> + return __timer_gettime_new (__timer_compat_list[timerid], value);
> }
> compat_symbol (librt, __timer_gettime_old, timer_gettime, GLIBC_2_2);
> #endif
Ok.
> diff --git a/sysdeps/unix/sysv/linux/x86_64/timer_settime.c b/sysdeps/unix/sysv/linux/x86_64/timer_settime.c
> index f987cd16d3..dd7d01e849 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/timer_settime.c
> +++ b/sysdeps/unix/sysv/linux/x86_64/timer_settime.c
> @@ -37,7 +37,7 @@ int
> __timer_settime_old (int timerid, int flags, const struct itimerspec *value,
> struct itimerspec *ovalue)
> {
> - return __timer_settime_new (__compat_timer_list[timerid], flags,
> + return __timer_settime_new (__timer_compat_list[timerid], flags,
> value, ovalue);
> }
> compat_symbol (librt, __timer_settime_old, timer_settime, GLIBC_2_2);
Ok.
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index d67ef0b6d5..620f35836c 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -2011,6 +2011,8 @@ GLIBC_2.16 tfind F
> GLIBC_2.16 time F
> GLIBC_2.16 timegm F
> GLIBC_2.16 timelocal F
> +GLIBC_2.16 timer_create F
> +GLIBC_2.16 timer_delete F
> GLIBC_2.16 timerfd_create F
> GLIBC_2.16 timerfd_gettime F
> GLIBC_2.16 timerfd_settime F
> @@ -2544,6 +2546,8 @@ GLIBC_2.34 thrd_create F
> GLIBC_2.34 thrd_detach F
> GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> +GLIBC_2.34 timer_create F
> +GLIBC_2.34 timer_delete F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> index 3144e2e290..4b3e816fdd 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.16 timer_create F
> -GLIBC_2.16 timer_delete F
> GLIBC_2.16 timer_getoverrun F
> GLIBC_2.16 timer_gettime F
> GLIBC_2.16 timer_settime F
>
Ok.
^ permalink raw reply [flat|nested] 72+ messages in thread
* [PATCH 31/34] Linux: Move timer_getoverrun from librt to libc
2021-06-17 18:56 [PATCH v2 00/34] Move librt into libc Florian Weimer
` (29 preceding siblings ...)
2021-06-17 18:59 ` [PATCH 30/34] Linux: Move timer_create, timer_delete from librt to libc Florian Weimer
@ 2021-06-17 18:59 ` Florian Weimer
2021-06-24 17:26 ` Adhemerval Zanella
2021-06-24 17:38 ` Adhemerval Zanella
2021-06-17 18:59 ` [PATCH 32/34] Linux: Move timer_gettime, __timer_gettime64 " Florian Weimer
` (3 subsequent siblings)
34 siblings, 2 replies; 72+ messages in thread
From: Florian Weimer @ 2021-06-17 18:59 UTC (permalink / raw)
To: libc-alpha
The symbol was moved using scripts/move-symbol-to-libc.py.
The way the ABI intransition is implemented is changed with this
commit: the implementation is now consolidated in one file with a
TIMER_T_WAS_INT_COMPAT check.
---
rt/Makefile | 2 +-
rt/Versions | 4 +-
sysdeps/unix/sysv/linux/Versions | 1 +
sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 +
sysdeps/unix/sysv/linux/aarch64/librt.abilist | 1 -
sysdeps/unix/sysv/linux/alpha/Versions | 2 +-
sysdeps/unix/sysv/linux/alpha/libc.abilist | 3 ++
sysdeps/unix/sysv/linux/alpha/librt.abilist | 2 -
.../unix/sysv/linux/alpha/timer_getoverr.c | 1 -
sysdeps/unix/sysv/linux/arc/libc.abilist | 2 +
sysdeps/unix/sysv/linux/arc/librt.abilist | 1 -
sysdeps/unix/sysv/linux/arm/be/libc.abilist | 2 +
sysdeps/unix/sysv/linux/arm/be/librt.abilist | 1 -
sysdeps/unix/sysv/linux/arm/le/libc.abilist | 2 +
sysdeps/unix/sysv/linux/arm/le/librt.abilist | 1 -
sysdeps/unix/sysv/linux/csky/libc.abilist | 2 +
sysdeps/unix/sysv/linux/csky/librt.abilist | 1 -
sysdeps/unix/sysv/linux/hppa/libc.abilist | 2 +
sysdeps/unix/sysv/linux/hppa/librt.abilist | 1 -
sysdeps/unix/sysv/linux/i386/libc.abilist | 2 +
sysdeps/unix/sysv/linux/i386/librt.abilist | 1 -
sysdeps/unix/sysv/linux/ia64/Versions | 2 +-
sysdeps/unix/sysv/linux/ia64/libc.abilist | 3 ++
sysdeps/unix/sysv/linux/ia64/librt.abilist | 2 -
sysdeps/unix/sysv/linux/ia64/timer_getoverr.c | 1 -
sysdeps/unix/sysv/linux/kernel-posix-timers.h | 2 +
.../sysv/linux/m68k/coldfire/libc.abilist | 2 +
.../sysv/linux/m68k/coldfire/librt.abilist | 1 -
.../unix/sysv/linux/m68k/m680x0/libc.abilist | 2 +
.../unix/sysv/linux/m68k/m680x0/librt.abilist | 1 -
.../sysv/linux/microblaze/be/libc.abilist | 2 +
.../sysv/linux/microblaze/be/librt.abilist | 1 -
.../sysv/linux/microblaze/le/libc.abilist | 2 +
.../sysv/linux/microblaze/le/librt.abilist | 1 -
.../sysv/linux/mips/mips32/fpu/libc.abilist | 2 +
.../unix/sysv/linux/mips/mips32/librt.abilist | 1 -
.../sysv/linux/mips/mips32/nofpu/libc.abilist | 2 +
.../sysv/linux/mips/mips64/n32/libc.abilist | 2 +
.../sysv/linux/mips/mips64/n32/librt.abilist | 1 -
.../sysv/linux/mips/mips64/n64/libc.abilist | 2 +
.../sysv/linux/mips/mips64/n64/librt.abilist | 1 -
sysdeps/unix/sysv/linux/nios2/libc.abilist | 2 +
sysdeps/unix/sysv/linux/nios2/librt.abilist | 1 -
.../linux/powerpc/powerpc32/fpu/libc.abilist | 2 +
.../linux/powerpc/powerpc32/librt.abilist | 1 -
.../powerpc/powerpc32/nofpu/libc.abilist | 2 +
.../sysv/linux/powerpc/powerpc64/Versions | 2 +-
.../linux/powerpc/powerpc64/be/libc.abilist | 3 ++
.../linux/powerpc/powerpc64/be/librt.abilist | 2 -
.../linux/powerpc/powerpc64/le/libc.abilist | 2 +
.../linux/powerpc/powerpc64/le/librt.abilist | 1 -
.../linux/powerpc/powerpc64/timer_getoverr.c | 1 -
.../unix/sysv/linux/riscv/rv32/libc.abilist | 2 +
.../unix/sysv/linux/riscv/rv32/librt.abilist | 1 -
.../unix/sysv/linux/riscv/rv64/libc.abilist | 2 +
.../unix/sysv/linux/riscv/rv64/librt.abilist | 1 -
.../unix/sysv/linux/s390/s390-32/libc.abilist | 2 +
.../sysv/linux/s390/s390-32/librt.abilist | 1 -
sysdeps/unix/sysv/linux/s390/s390-64/Versions | 2 +-
.../unix/sysv/linux/s390/s390-64/libc.abilist | 3 ++
.../sysv/linux/s390/s390-64/librt.abilist | 2 -
.../sysv/linux/s390/s390-64/timer_getoverr.c | 1 -
sysdeps/unix/sysv/linux/sh/be/libc.abilist | 2 +
sysdeps/unix/sysv/linux/sh/be/librt.abilist | 1 -
sysdeps/unix/sysv/linux/sh/le/libc.abilist | 2 +
sysdeps/unix/sysv/linux/sh/le/librt.abilist | 1 -
.../sysv/linux/sparc/sparc32/libc.abilist | 2 +
.../sysv/linux/sparc/sparc32/librt.abilist | 1 -
.../unix/sysv/linux/sparc/sparc64/Versions | 2 +-
.../sysv/linux/sparc/sparc64/libc.abilist | 3 ++
.../sysv/linux/sparc/sparc64/librt.abilist | 2 -
.../sysv/linux/sparc/sparc64/timer_getoverr.c | 1 -
sysdeps/unix/sysv/linux/timer_getoverr.c | 32 ++++++++++++----
.../unix/sysv/linux/x86_64/64/libc.abilist | 3 ++
.../unix/sysv/linux/x86_64/64/librt.abilist | 2 -
sysdeps/unix/sysv/linux/x86_64/Versions | 2 +-
.../unix/sysv/linux/x86_64/timer_getoverr.c | 38 -------------------
.../unix/sysv/linux/x86_64/x32/libc.abilist | 2 +
.../unix/sysv/linux/x86_64/x32/librt.abilist | 1 -
79 files changed, 107 insertions(+), 95 deletions(-)
delete mode 100644 sysdeps/unix/sysv/linux/alpha/timer_getoverr.c
delete mode 100644 sysdeps/unix/sysv/linux/ia64/timer_getoverr.c
delete mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_getoverr.c
delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-64/timer_getoverr.c
delete mode 100644 sysdeps/unix/sysv/linux/sparc/sparc64/timer_getoverr.c
delete mode 100644 sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c
diff --git a/rt/Makefile b/rt/Makefile
index d2ff0221c7..1eadb94ea8 100644
--- a/rt/Makefile
+++ b/rt/Makefile
@@ -30,7 +30,6 @@ routines = \
librt-routines = \
librt-compat \
- timer_getoverr \
timer_gettime \
timer_settime \
@@ -63,6 +62,7 @@ $(librt-routines-var) += \
mq_unlink \
timer_create \
timer_delete \
+ timer_getoverr \
tests := tst-shm tst-timer tst-timer2 \
tst-aio tst-aio64 tst-aio2 tst-aio3 tst-aio4 tst-aio5 tst-aio6 \
diff --git a/rt/Versions b/rt/Versions
index fca804148c..de78be15dc 100644
--- a/rt/Versions
+++ b/rt/Versions
@@ -24,6 +24,7 @@ libc {
%if PTHREAD_IN_LIBC
timer_create;
timer_delete;
+ timer_getoverrun;
%endif
shm_open;
shm_unlink;
@@ -85,6 +86,7 @@ libc {
mq_unlink;
timer_create;
timer_delete;
+ timer_getoverrun;
%endif
shm_open;
shm_unlink;
@@ -131,8 +133,8 @@ librt {
%if !PTHREAD_IN_LIBC
timer_create;
timer_delete;
-%endif
timer_getoverrun;
+%endif
timer_gettime;
timer_settime;
}
diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions
index 0db1b9c31c..31fb4a437b 100644
--- a/sysdeps/unix/sysv/linux/Versions
+++ b/sysdeps/unix/sysv/linux/Versions
@@ -125,6 +125,7 @@ libc {
# Changed timer_t. Only used by some 64-bit targets.
timer_create;
timer_delete;
+ timer_getoverrun;
}
GLIBC_2.3.4 {
sched_getaffinity; sched_setaffinity;
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 17779baac1..9426bbe3f8 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -2008,6 +2008,7 @@ GLIBC_2.17 timegm F
GLIBC_2.17 timelocal F
GLIBC_2.17 timer_create F
GLIBC_2.17 timer_delete F
+GLIBC_2.17 timer_getoverrun F
GLIBC_2.17 timerfd_create F
GLIBC_2.17 timerfd_gettime F
GLIBC_2.17 timerfd_settime F
@@ -2533,6 +2534,7 @@ GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
+GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
index 34768d1472..493768f440 100644
--- a/sysdeps/unix/sysv/linux/aarch64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
@@ -1,3 +1,2 @@
-GLIBC_2.17 timer_getoverrun F
GLIBC_2.17 timer_gettime F
GLIBC_2.17 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/alpha/Versions b/sysdeps/unix/sysv/linux/alpha/Versions
index d4bd056f64..dd5b365d77 100644
--- a/sysdeps/unix/sysv/linux/alpha/Versions
+++ b/sysdeps/unix/sysv/linux/alpha/Versions
@@ -104,7 +104,7 @@ librt {
}
GLIBC_2.3.3 {
# Changed timer_t.
- timer_getoverrun; timer_gettime;
+ timer_gettime;
timer_settime;
}
}
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 985a1deca9..50ab6f3fc1 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -2095,6 +2095,7 @@ GLIBC_2.2 swprintf F
GLIBC_2.2 swscanf F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
+GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 ungetwc F
GLIBC_2.2 vfwprintf F
GLIBC_2.2 vfwscanf F
@@ -2357,6 +2358,7 @@ GLIBC_2.3.3 sys_sigabbrev D 0x208
GLIBC_2.3.3 sys_siglist D 0x208
GLIBC_2.3.3 timer_create F
GLIBC_2.3.3 timer_delete F
+GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.4 _OtsAddX F
GLIBC_2.3.4 _OtsConvertFloatTX F
GLIBC_2.3.4 _OtsConvertFloatXT F
@@ -2629,6 +2631,7 @@ GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
+GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
index 3b744cf5a1..34d42d122b 100644
--- a/sysdeps/unix/sysv/linux/alpha/librt.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist
@@ -1,9 +1,7 @@
GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
GLIBC_2.3 __librt_version_placeholder F
-GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
GLIBC_2.3.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/alpha/timer_getoverr.c b/sysdeps/unix/sysv/linux/alpha/timer_getoverr.c
deleted file mode 100644
index 22eaff5cda..0000000000
--- a/sysdeps/unix/sysv/linux/alpha/timer_getoverr.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c>
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 22fa42dfc3..aafc056267 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1942,6 +1942,7 @@ GLIBC_2.32 timegm F
GLIBC_2.32 timelocal F
GLIBC_2.32 timer_create F
GLIBC_2.32 timer_delete F
+GLIBC_2.32 timer_getoverrun F
GLIBC_2.32 timerfd_create F
GLIBC_2.32 timerfd_gettime F
GLIBC_2.32 timerfd_settime F
@@ -2292,6 +2293,7 @@ GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
+GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
index 7bc7c57bf0..14ae3d7c65 100644
--- a/sysdeps/unix/sysv/linux/arc/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arc/librt.abilist
@@ -1,3 +1,2 @@
-GLIBC_2.32 timer_getoverrun F
GLIBC_2.32 timer_gettime F
GLIBC_2.32 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index c8ff2a0b74..ac73d766ba 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -436,6 +436,7 @@ GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
+GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
@@ -2354,6 +2355,7 @@ GLIBC_2.4 timegm F
GLIBC_2.4 timelocal F
GLIBC_2.4 timer_create F
GLIBC_2.4 timer_delete F
+GLIBC_2.4 timer_getoverrun F
GLIBC_2.4 times F
GLIBC_2.4 timezone D 0x4
GLIBC_2.4 tmpfile F
diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
index 0887259367..78152d8fa3 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -1,6 +1,5 @@
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
-GLIBC_2.4 timer_getoverrun F
GLIBC_2.4 timer_gettime F
GLIBC_2.4 timer_settime F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index b237b78f85..96ad967292 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -433,6 +433,7 @@ GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
+GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
@@ -2351,6 +2352,7 @@ GLIBC_2.4 timegm F
GLIBC_2.4 timelocal F
GLIBC_2.4 timer_create F
GLIBC_2.4 timer_delete F
+GLIBC_2.4 timer_getoverrun F
GLIBC_2.4 times F
GLIBC_2.4 timezone D 0x4
GLIBC_2.4 tmpfile F
diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
index 0887259367..78152d8fa3 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -1,6 +1,5 @@
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
-GLIBC_2.4 timer_getoverrun F
GLIBC_2.4 timer_gettime F
GLIBC_2.4 timer_settime F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index c1b6927cea..980ac9c497 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -2032,6 +2032,7 @@ GLIBC_2.29 timegm F
GLIBC_2.29 timelocal F
GLIBC_2.29 timer_create F
GLIBC_2.29 timer_delete F
+GLIBC_2.29 timer_getoverrun F
GLIBC_2.29 timerfd_create F
GLIBC_2.29 timerfd_gettime F
GLIBC_2.29 timerfd_settime F
@@ -2555,6 +2556,7 @@ GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
+GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
index 3d7c839b9b..9f89eb4e8b 100644
--- a/sysdeps/unix/sysv/linux/csky/librt.abilist
+++ b/sysdeps/unix/sysv/linux/csky/librt.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.29 timer_getoverrun F
GLIBC_2.29 timer_gettime F
GLIBC_2.29 timer_settime F
GLIBC_2.34 __timer_gettime64 F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index c5021c8109..0e6e1444d6 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -1746,6 +1746,7 @@ GLIBC_2.2 timegm F
GLIBC_2.2 timelocal F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
+GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 times F
GLIBC_2.2 timezone D 0x4
GLIBC_2.2 tmpfile F
@@ -2508,6 +2509,7 @@ GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
+GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
index 1268c7fc38..f04b1e7978 100644
--- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
@@ -1,5 +1,4 @@
GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
GLIBC_2.3.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 8055ea6984..d8693b0c7b 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -2108,6 +2108,7 @@ GLIBC_2.2 swprintf F
GLIBC_2.2 swscanf F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
+GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 ungetwc F
GLIBC_2.2 versionsort64 F
GLIBC_2.2 vfwprintf F
@@ -2692,6 +2693,7 @@ GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
+GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
index 1268c7fc38..f04b1e7978 100644
--- a/sysdeps/unix/sysv/linux/i386/librt.abilist
+++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
@@ -1,5 +1,4 @@
GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
GLIBC_2.3.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/ia64/Versions b/sysdeps/unix/sysv/linux/ia64/Versions
index 29b0d98cc6..1d09fca7e3 100644
--- a/sysdeps/unix/sysv/linux/ia64/Versions
+++ b/sysdeps/unix/sysv/linux/ia64/Versions
@@ -30,7 +30,7 @@ libc {
librt {
GLIBC_2.3.3 {
# Changed timer_t.
- timer_getoverrun; timer_gettime;
+ timer_gettime;
timer_settime;
}
}
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 4cf1da5b62..984b58be61 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -1767,6 +1767,7 @@ GLIBC_2.2 timegm F
GLIBC_2.2 timelocal F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
+GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 times F
GLIBC_2.2 timezone D 0x8
GLIBC_2.2 tmpfile F
@@ -2222,6 +2223,7 @@ GLIBC_2.3.3 sys_sigabbrev D 0x208
GLIBC_2.3.3 sys_siglist D 0x208
GLIBC_2.3.3 timer_create F
GLIBC_2.3.3 timer_delete F
+GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.4 __chk_fail F
GLIBC_2.3.4 __fprintf_chk F
GLIBC_2.3.4 __gets_chk F
@@ -2467,6 +2469,7 @@ GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
+GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
index 74a4971070..c56040a5f9 100644
--- a/sysdeps/unix/sysv/linux/ia64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/librt.abilist
@@ -1,8 +1,6 @@
GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
-GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
GLIBC_2.3.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/ia64/timer_getoverr.c b/sysdeps/unix/sysv/linux/ia64/timer_getoverr.c
deleted file mode 100644
index 22eaff5cda..0000000000
--- a/sysdeps/unix/sysv/linux/ia64/timer_getoverr.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c>
diff --git a/sysdeps/unix/sysv/linux/kernel-posix-timers.h b/sysdeps/unix/sysv/linux/kernel-posix-timers.h
index 99a2937458..a976b028e0 100644
--- a/sysdeps/unix/sysv/linux/kernel-posix-timers.h
+++ b/sysdeps/unix/sysv/linux/kernel-posix-timers.h
@@ -52,6 +52,8 @@ extern __typeof (timer_create) __timer_create;
libc_hidden_proto (__timer_create)
extern __typeof (timer_delete) __timer_delete;
libc_hidden_proto (__timer_delete)
+extern __typeof (timer_getoverrun) __timer_getoverrun;
+libc_hidden_proto (__timer_getoverrun)
/* Type of timers in the kernel. */
typedef int kernel_timer_t;
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index e7c0a81f37..a8d6ad9a4f 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -437,6 +437,7 @@ GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
+GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
@@ -2334,6 +2335,7 @@ GLIBC_2.4 timegm F
GLIBC_2.4 timelocal F
GLIBC_2.4 timer_create F
GLIBC_2.4 timer_delete F
+GLIBC_2.4 timer_getoverrun F
GLIBC_2.4 times F
GLIBC_2.4 timezone D 0x4
GLIBC_2.4 tmpfile F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
index 0887259367..78152d8fa3 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -1,6 +1,5 @@
GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
-GLIBC_2.4 timer_getoverrun F
GLIBC_2.4 timer_gettime F
GLIBC_2.4 timer_settime F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index b82f6366ee..62590726a8 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2064,6 +2064,7 @@ GLIBC_2.2 swprintf F
GLIBC_2.2 swscanf F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
+GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 ungetwc F
GLIBC_2.2 versionsort64 F
GLIBC_2.2 vfwprintf F
@@ -2635,6 +2636,7 @@ GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
+GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
index 1268c7fc38..f04b1e7978 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
@@ -1,5 +1,4 @@
GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
GLIBC_2.3.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 3f9dfa7664..3fd1621454 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -2012,6 +2012,7 @@ GLIBC_2.18 timegm F
GLIBC_2.18 timelocal F
GLIBC_2.18 timer_create F
GLIBC_2.18 timer_delete F
+GLIBC_2.18 timer_getoverrun F
GLIBC_2.18 timerfd_create F
GLIBC_2.18 timerfd_gettime F
GLIBC_2.18 timerfd_settime F
@@ -2606,6 +2607,7 @@ GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
+GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
index 2efee3a326..f308a63244 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.18 timer_getoverrun F
GLIBC_2.18 timer_gettime F
GLIBC_2.18 timer_settime F
GLIBC_2.34 __timer_gettime64 F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index bb2fd6251f..2b839a784d 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -2012,6 +2012,7 @@ GLIBC_2.18 timegm F
GLIBC_2.18 timelocal F
GLIBC_2.18 timer_create F
GLIBC_2.18 timer_delete F
+GLIBC_2.18 timer_getoverrun F
GLIBC_2.18 timerfd_create F
GLIBC_2.18 timerfd_gettime F
GLIBC_2.18 timerfd_settime F
@@ -2603,6 +2604,7 @@ GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
+GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
index 2efee3a326..f308a63244 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.18 timer_getoverrun F
GLIBC_2.18 timer_gettime F
GLIBC_2.18 timer_settime F
GLIBC_2.34 __timer_gettime64 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 938142fb4a..ac623acbd3 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -1995,6 +1995,7 @@ GLIBC_2.2 tcgetsid F
GLIBC_2.2 tdestroy F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
+GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 tmpfile F
GLIBC_2.2 tmpfile64 F
GLIBC_2.2 truncate64 F
@@ -2600,6 +2601,7 @@ GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
+GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
index dbc81ebe4b..af07e28f55 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
GLIBC_2.3.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index d62382883b..776b30b48a 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -1993,6 +1993,7 @@ GLIBC_2.2 tcgetsid F
GLIBC_2.2 tdestroy F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
+GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 tmpfile F
GLIBC_2.2 tmpfile64 F
GLIBC_2.2 truncate64 F
@@ -2598,6 +2599,7 @@ GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
+GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 28a8a5d294..1ffaa8e684 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -1991,6 +1991,7 @@ GLIBC_2.2 tcgetsid F
GLIBC_2.2 tdestroy F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
+GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 tmpfile F
GLIBC_2.2 tmpfile64 F
GLIBC_2.2 truncate64 F
@@ -2606,6 +2607,7 @@ GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
+GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
index dbc81ebe4b..af07e28f55 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
GLIBC_2.3.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 6748f9beef..b0c5d0a636 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -1987,6 +1987,7 @@ GLIBC_2.2 tcgetsid F
GLIBC_2.2 tdestroy F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
+GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 tmpfile F
GLIBC_2.2 tmpfile64 F
GLIBC_2.2 truncate64 F
@@ -2521,6 +2522,7 @@ GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
+GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
index 00fd77bbab..a92565949e 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
GLIBC_2.3.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 03d13e5ee1..77778d11f3 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -2054,6 +2054,7 @@ GLIBC_2.21 timegm F
GLIBC_2.21 timelocal F
GLIBC_2.21 timer_create F
GLIBC_2.21 timer_delete F
+GLIBC_2.21 timer_getoverrun F
GLIBC_2.21 timerfd_create F
GLIBC_2.21 timerfd_gettime F
GLIBC_2.21 timerfd_settime F
@@ -2645,6 +2646,7 @@ GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
+GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
index a83ae32d03..8ab5ece2b0 100644
--- a/sysdeps/unix/sysv/linux/nios2/librt.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/librt.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.21 timer_getoverrun F
GLIBC_2.21 timer_gettime F
GLIBC_2.21 timer_settime F
GLIBC_2.34 __timer_gettime64 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index c9a45ecb17..5562012575 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -2069,6 +2069,7 @@ GLIBC_2.2 swprintf F
GLIBC_2.2 swscanf F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
+GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 ungetwc F
GLIBC_2.2 vfwprintf F
GLIBC_2.2 vfwscanf F
@@ -2662,6 +2663,7 @@ GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
+GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
index 1268c7fc38..f04b1e7978 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
@@ -1,5 +1,4 @@
GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
GLIBC_2.3.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index c7fbc347a1..f0adf7b58b 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -2073,6 +2073,7 @@ GLIBC_2.2 swprintf F
GLIBC_2.2 swscanf F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
+GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 ungetwc F
GLIBC_2.2 vfwprintf F
GLIBC_2.2 vfwscanf F
@@ -2695,6 +2696,7 @@ GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
+GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions b/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions
index 4eb22c11ac..a69927d41d 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions
@@ -29,7 +29,7 @@ libc {
librt {
GLIBC_2.3.3 {
# Changed timer_t.
- timer_getoverrun; timer_gettime;
+ timer_gettime;
timer_settime;
}
}
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index fb5eb9c67e..e74ecec60f 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -1888,6 +1888,7 @@ GLIBC_2.3 timegm F
GLIBC_2.3 timelocal F
GLIBC_2.3 timer_create F
GLIBC_2.3 timer_delete F
+GLIBC_2.3 timer_getoverrun F
GLIBC_2.3 times F
GLIBC_2.3 timezone D 0x8
GLIBC_2.3 tmpfile F
@@ -2166,6 +2167,7 @@ GLIBC_2.3.3 sys_sigabbrev D 0x208
GLIBC_2.3.3 sys_siglist D 0x208
GLIBC_2.3.3 timer_create F
GLIBC_2.3.3 timer_delete F
+GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.4 __chk_fail F
GLIBC_2.3.4 __fprintf_chk F
GLIBC_2.3.4 __gets_chk F
@@ -2431,6 +2433,7 @@ GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
+GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
index 914203b043..dd8b2ad6ef 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
@@ -1,7 +1,5 @@
-GLIBC_2.3 timer_getoverrun F
GLIBC_2.3 timer_gettime F
GLIBC_2.3 timer_settime F
-GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
GLIBC_2.3.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index b89256aba0..2a0c06b881 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -2096,6 +2096,7 @@ GLIBC_2.17 timegm F
GLIBC_2.17 timelocal F
GLIBC_2.17 timer_create F
GLIBC_2.17 timer_delete F
+GLIBC_2.17 timer_getoverrun F
GLIBC_2.17 timerfd_create F
GLIBC_2.17 timerfd_gettime F
GLIBC_2.17 timerfd_settime F
@@ -2729,6 +2730,7 @@ GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
+GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
index 34768d1472..493768f440 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
@@ -1,3 +1,2 @@
-GLIBC_2.17 timer_getoverrun F
GLIBC_2.17 timer_gettime F
GLIBC_2.17 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_getoverr.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_getoverr.c
deleted file mode 100644
index 22eaff5cda..0000000000
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_getoverr.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c>
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index c653f52373..3e0e33bbb3 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1952,6 +1952,7 @@ GLIBC_2.33 timegm F
GLIBC_2.33 timelocal F
GLIBC_2.33 timer_create F
GLIBC_2.33 timer_delete F
+GLIBC_2.33 timer_getoverrun F
GLIBC_2.33 timerfd_create F
GLIBC_2.33 timerfd_gettime F
GLIBC_2.33 timerfd_settime F
@@ -2294,6 +2295,7 @@ GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
+GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
index 09bbee0960..de338094e1 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
@@ -1,3 +1,2 @@
-GLIBC_2.33 timer_getoverrun F
GLIBC_2.33 timer_gettime F
GLIBC_2.33 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 711484eee5..1092e5a170 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -2018,6 +2018,7 @@ GLIBC_2.27 timegm F
GLIBC_2.27 timelocal F
GLIBC_2.27 timer_create F
GLIBC_2.27 timer_delete F
+GLIBC_2.27 timer_getoverrun F
GLIBC_2.27 timerfd_create F
GLIBC_2.27 timerfd_gettime F
GLIBC_2.27 timerfd_settime F
@@ -2494,6 +2495,7 @@ GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
+GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
index 8e1d8b21fe..624ab969d8 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
@@ -1,3 +1,2 @@
-GLIBC_2.27 timer_getoverrun F
GLIBC_2.27 timer_gettime F
GLIBC_2.27 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 4040312275..710cafe7c0 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -2067,6 +2067,7 @@ GLIBC_2.2 swprintf F
GLIBC_2.2 swscanf F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
+GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 ungetwc F
GLIBC_2.2 versionsort64 F
GLIBC_2.2 vfwprintf F
@@ -2660,6 +2661,7 @@ GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
+GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
index 1268c7fc38..f04b1e7978 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
@@ -1,5 +1,4 @@
GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
GLIBC_2.3.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/Versions b/sysdeps/unix/sysv/linux/s390/s390-64/Versions
index 5989ac75a9..e7f968fcdf 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/Versions
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/Versions
@@ -9,7 +9,7 @@ libc {
librt {
GLIBC_2.3.3 {
# Changed timer_t.
- timer_getoverrun; timer_gettime;
+ timer_gettime;
timer_settime;
}
}
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 4cf6a5ea09..6b2c7e7d68 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -1763,6 +1763,7 @@ GLIBC_2.2 timegm F
GLIBC_2.2 timelocal F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
+GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 times F
GLIBC_2.2 timezone D 0x8
GLIBC_2.2 tmpfile F
@@ -2212,6 +2213,7 @@ GLIBC_2.3.3 sys_sigabbrev D 0x208
GLIBC_2.3.3 sys_siglist D 0x208
GLIBC_2.3.3 timer_create F
GLIBC_2.3.3 timer_delete F
+GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.4 __chk_fail F
GLIBC_2.3.4 __fprintf_chk F
GLIBC_2.3.4 __gets_chk F
@@ -2468,6 +2470,7 @@ GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
+GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
index 34e8d31133..35dc39d27d 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
@@ -1,7 +1,5 @@
-GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
-GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
GLIBC_2.3.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/timer_getoverr.c b/sysdeps/unix/sysv/linux/s390/s390-64/timer_getoverr.c
deleted file mode 100644
index 22eaff5cda..0000000000
--- a/sysdeps/unix/sysv/linux/s390/s390-64/timer_getoverr.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c>
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 6fd93a5445..51a493aadb 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -1750,6 +1750,7 @@ GLIBC_2.2 timegm F
GLIBC_2.2 timelocal F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
+GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 times F
GLIBC_2.2 timezone D 0x4
GLIBC_2.2 tmpfile F
@@ -2515,6 +2516,7 @@ GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
+GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
index 1268c7fc38..f04b1e7978 100644
--- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
@@ -1,5 +1,4 @@
GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
GLIBC_2.3.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index c5c41bf0e6..cb37ba55cb 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -1750,6 +1750,7 @@ GLIBC_2.2 timegm F
GLIBC_2.2 timelocal F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
+GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 times F
GLIBC_2.2 timezone D 0x4
GLIBC_2.2 tmpfile F
@@ -2512,6 +2513,7 @@ GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
+GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
index 1268c7fc38..f04b1e7978 100644
--- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
@@ -1,5 +1,4 @@
GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
GLIBC_2.3.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 132470d40b..05b4e88794 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -2062,6 +2062,7 @@ GLIBC_2.2 swprintf F
GLIBC_2.2 swscanf F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
+GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 ungetwc F
GLIBC_2.2 vfwprintf F
GLIBC_2.2 vfwscanf F
@@ -2655,6 +2656,7 @@ GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
+GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
index d8ff3b0988..0de56c2c15 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
@@ -1,5 +1,4 @@
GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
GLIBC_2.3 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/Versions b/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
index 358081399a..d04738fafc 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
@@ -14,7 +14,7 @@ libc {
librt {
GLIBC_2.3.3 {
# Changed timer_t.
- timer_getoverrun; timer_gettime;
+ timer_gettime;
timer_settime;
}
}
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 6ee552611b..72591794e8 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -1793,6 +1793,7 @@ GLIBC_2.2 timegm F
GLIBC_2.2 timelocal F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
+GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 times F
GLIBC_2.2 timezone D 0x8
GLIBC_2.2 tmpfile F
@@ -2246,6 +2247,7 @@ GLIBC_2.3.3 sys_sigabbrev D 0x208
GLIBC_2.3.3 sys_siglist D 0x208
GLIBC_2.3.3 timer_create F
GLIBC_2.3.3 timer_delete F
+GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.4 __chk_fail F
GLIBC_2.3.4 __fprintf_chk F
GLIBC_2.3.4 __gets_chk F
@@ -2490,6 +2492,7 @@ GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
+GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
index 3b744cf5a1..34d42d122b 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
@@ -1,9 +1,7 @@
GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
GLIBC_2.3 __librt_version_placeholder F
-GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
GLIBC_2.3.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/timer_getoverr.c b/sysdeps/unix/sysv/linux/sparc/sparc64/timer_getoverr.c
deleted file mode 100644
index 22eaff5cda..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/timer_getoverr.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c>
diff --git a/sysdeps/unix/sysv/linux/timer_getoverr.c b/sysdeps/unix/sysv/linux/timer_getoverr.c
index b997290768..accec3757d 100644
--- a/sysdeps/unix/sysv/linux/timer_getoverr.c
+++ b/sysdeps/unix/sysv/linux/timer_getoverr.c
@@ -20,17 +20,33 @@
#include <time.h>
#include <sysdep.h>
#include <kernel-posix-timers.h>
-
-
-#ifdef timer_getoverrun_alias
-# define timer_getoverrun timer_getoverrun_alias
-#endif
-
+#include <shlib-compat.h>
int
-timer_getoverrun (timer_t timerid)
+___timer_getoverrun (timer_t timerid)
{
-#undef timer_getoverrun
kernel_timer_t ktimerid = timerid_to_kernel_timer (timerid);
return INLINE_SYSCALL_CALL (timer_getoverrun, ktimerid);
}
+versioned_symbol (libc, ___timer_getoverrun, timer_getoverrun, GLIBC_2_34);
+libc_hidden_ver (___timer_getoverrun, __timer_getoverrun)
+
+#if TIMER_T_WAS_INT_COMPAT
+# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_3_3, GLIBC_2_34)
+compat_symbol (librt, ___timer_getoverrun, timer_getoverrun, GLIBC_2_3_3);
+# endif
+
+# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_3_3)
+int
+__timer_getoverrun_old (int timerid)
+{
+ return __timer_getoverrun (__timer_compat_list[timerid]);
+}
+compat_symbol (librt, __timer_getoverrun_old, timer_getoverrun, GLIBC_2_2);
+# endif /* OTHER_SHLIB_COMPAT */
+
+#else /* !TIMER_T_WAS_INT_COMPAT */
+# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (librt, ___timer_getoverrun, timer_getoverrun, GLIBC_2_2);
+# endif
+#endif /* !TIMER_T_WAS_INT_COMPAT */
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 377d35a04f..92f4369765 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -1762,6 +1762,7 @@ GLIBC_2.2.5 timegm F
GLIBC_2.2.5 timelocal F
GLIBC_2.2.5 timer_create F
GLIBC_2.2.5 timer_delete F
+GLIBC_2.2.5 timer_getoverrun F
GLIBC_2.2.5 times F
GLIBC_2.2.5 timezone D 0x8
GLIBC_2.2.5 tmpfile F
@@ -2200,6 +2201,7 @@ GLIBC_2.3.3 sys_sigabbrev D 0x208
GLIBC_2.3.3 sys_siglist D 0x208
GLIBC_2.3.3 timer_create F
GLIBC_2.3.3 timer_delete F
+GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.4 __chk_fail F
GLIBC_2.3.4 __fprintf_chk F
GLIBC_2.3.4 __gets_chk F
@@ -2446,6 +2448,7 @@ GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
+GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
index 13a2bf2022..379fa6930c 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
@@ -1,7 +1,5 @@
-GLIBC_2.2.5 timer_getoverrun F
GLIBC_2.2.5 timer_gettime F
GLIBC_2.2.5 timer_settime F
-GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
GLIBC_2.3.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/x86_64/Versions b/sysdeps/unix/sysv/linux/x86_64/Versions
index c4d1c5fb79..a97b6c7413 100644
--- a/sysdeps/unix/sysv/linux/x86_64/Versions
+++ b/sysdeps/unix/sysv/linux/x86_64/Versions
@@ -11,7 +11,7 @@ libc {
librt {
GLIBC_2.3.3 {
# Changed timer_t.
- timer_getoverrun; timer_gettime;
+ timer_gettime;
timer_settime;
}
}
diff --git a/sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c b/sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c
deleted file mode 100644
index fb6e631a00..0000000000
--- a/sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Copyright (C) 2003-2021 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
- 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; see the file COPYING.LIB. If
- not, see <https://www.gnu.org/licenses/>. */
-
-#include <shlib-compat.h>
-#include "compat-timer.h"
-
-
-#define timer_getoverrun_alias __timer_getoverrun_new
-#include <sysdeps/unix/sysv/linux/timer_getoverr.c>
-
-#undef timer_getoverrun
-versioned_symbol (librt, __timer_getoverrun_new, timer_getoverrun,
- GLIBC_2_3_3);
-
-
-#if SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_3_3)
-int
-__timer_getoverrun_old (int timerid)
-{
- return __timer_getoverrun_new (__timer_compat_list[timerid]);
-}
-compat_symbol (librt, __timer_getoverrun_old, timer_getoverrun, GLIBC_2_2);
-#endif
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 620f35836c..25b177fda0 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -2013,6 +2013,7 @@ GLIBC_2.16 timegm F
GLIBC_2.16 timelocal F
GLIBC_2.16 timer_create F
GLIBC_2.16 timer_delete F
+GLIBC_2.16 timer_getoverrun F
GLIBC_2.16 timerfd_create F
GLIBC_2.16 timerfd_gettime F
GLIBC_2.16 timerfd_settime F
@@ -2548,6 +2549,7 @@ GLIBC_2.34 thrd_exit F
GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
+GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
index 4b3e816fdd..0b969910ba 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
@@ -1,3 +1,2 @@
-GLIBC_2.16 timer_getoverrun F
GLIBC_2.16 timer_gettime F
GLIBC_2.16 timer_settime F
--
2.31.1
^ permalink raw reply [flat|nested] 72+ messages in thread
* Re: [PATCH 31/34] Linux: Move timer_getoverrun from librt to libc
2021-06-17 18:59 ` [PATCH 31/34] Linux: Move timer_getoverrun " Florian Weimer
@ 2021-06-24 17:26 ` Adhemerval Zanella
2021-06-24 17:38 ` Adhemerval Zanella
1 sibling, 0 replies; 72+ messages in thread
From: Adhemerval Zanella @ 2021-06-24 17:26 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 17/06/2021 15:59, Florian Weimer via Libc-alpha wrote:
> The symbol was moved using scripts/move-symbol-to-libc.py.
>
> The way the ABI intransition is implemented is changed with this
> commit: the implementation is now consolidated in one file with a
> TIMER_T_WAS_INT_COMPAT check.
LGTM, thanks. There is only a nit below.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> ---
> rt/Makefile | 2 +-
> rt/Versions | 4 +-
> sysdeps/unix/sysv/linux/Versions | 1 +
> sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/aarch64/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/alpha/Versions | 2 +-
> sysdeps/unix/sysv/linux/alpha/libc.abilist | 3 ++
> sysdeps/unix/sysv/linux/alpha/librt.abilist | 2 -
> .../unix/sysv/linux/alpha/timer_getoverr.c | 1 -
> sysdeps/unix/sysv/linux/arc/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/arc/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/arm/be/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/arm/be/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/arm/le/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/arm/le/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/csky/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/csky/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/hppa/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/hppa/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/i386/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/i386/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/ia64/Versions | 2 +-
> sysdeps/unix/sysv/linux/ia64/libc.abilist | 3 ++
> sysdeps/unix/sysv/linux/ia64/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/ia64/timer_getoverr.c | 1 -
> sysdeps/unix/sysv/linux/kernel-posix-timers.h | 2 +
> .../sysv/linux/m68k/coldfire/libc.abilist | 2 +
> .../sysv/linux/m68k/coldfire/librt.abilist | 1 -
> .../unix/sysv/linux/m68k/m680x0/libc.abilist | 2 +
> .../unix/sysv/linux/m68k/m680x0/librt.abilist | 1 -
> .../sysv/linux/microblaze/be/libc.abilist | 2 +
> .../sysv/linux/microblaze/be/librt.abilist | 1 -
> .../sysv/linux/microblaze/le/libc.abilist | 2 +
> .../sysv/linux/microblaze/le/librt.abilist | 1 -
> .../sysv/linux/mips/mips32/fpu/libc.abilist | 2 +
> .../unix/sysv/linux/mips/mips32/librt.abilist | 1 -
> .../sysv/linux/mips/mips32/nofpu/libc.abilist | 2 +
> .../sysv/linux/mips/mips64/n32/libc.abilist | 2 +
> .../sysv/linux/mips/mips64/n32/librt.abilist | 1 -
> .../sysv/linux/mips/mips64/n64/libc.abilist | 2 +
> .../sysv/linux/mips/mips64/n64/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/nios2/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/nios2/librt.abilist | 1 -
> .../linux/powerpc/powerpc32/fpu/libc.abilist | 2 +
> .../linux/powerpc/powerpc32/librt.abilist | 1 -
> .../powerpc/powerpc32/nofpu/libc.abilist | 2 +
> .../sysv/linux/powerpc/powerpc64/Versions | 2 +-
> .../linux/powerpc/powerpc64/be/libc.abilist | 3 ++
> .../linux/powerpc/powerpc64/be/librt.abilist | 2 -
> .../linux/powerpc/powerpc64/le/libc.abilist | 2 +
> .../linux/powerpc/powerpc64/le/librt.abilist | 1 -
> .../linux/powerpc/powerpc64/timer_getoverr.c | 1 -
> .../unix/sysv/linux/riscv/rv32/libc.abilist | 2 +
> .../unix/sysv/linux/riscv/rv32/librt.abilist | 1 -
> .../unix/sysv/linux/riscv/rv64/libc.abilist | 2 +
> .../unix/sysv/linux/riscv/rv64/librt.abilist | 1 -
> .../unix/sysv/linux/s390/s390-32/libc.abilist | 2 +
> .../sysv/linux/s390/s390-32/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/s390/s390-64/Versions | 2 +-
> .../unix/sysv/linux/s390/s390-64/libc.abilist | 3 ++
> .../sysv/linux/s390/s390-64/librt.abilist | 2 -
> .../sysv/linux/s390/s390-64/timer_getoverr.c | 1 -
> sysdeps/unix/sysv/linux/sh/be/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/sh/be/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/sh/le/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/sh/le/librt.abilist | 1 -
> .../sysv/linux/sparc/sparc32/libc.abilist | 2 +
> .../sysv/linux/sparc/sparc32/librt.abilist | 1 -
> .../unix/sysv/linux/sparc/sparc64/Versions | 2 +-
> .../sysv/linux/sparc/sparc64/libc.abilist | 3 ++
> .../sysv/linux/sparc/sparc64/librt.abilist | 2 -
> .../sysv/linux/sparc/sparc64/timer_getoverr.c | 1 -
> sysdeps/unix/sysv/linux/timer_getoverr.c | 32 ++++++++++++----
> .../unix/sysv/linux/x86_64/64/libc.abilist | 3 ++
> .../unix/sysv/linux/x86_64/64/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/x86_64/Versions | 2 +-
> .../unix/sysv/linux/x86_64/timer_getoverr.c | 38 -------------------
> .../unix/sysv/linux/x86_64/x32/libc.abilist | 2 +
> .../unix/sysv/linux/x86_64/x32/librt.abilist | 1 -
> 79 files changed, 107 insertions(+), 95 deletions(-)
> delete mode 100644 sysdeps/unix/sysv/linux/alpha/timer_getoverr.c
> delete mode 100644 sysdeps/unix/sysv/linux/ia64/timer_getoverr.c
> delete mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_getoverr.c
> delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-64/timer_getoverr.c
> delete mode 100644 sysdeps/unix/sysv/linux/sparc/sparc64/timer_getoverr.c
> delete mode 100644 sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c
>
> diff --git a/rt/Makefile b/rt/Makefile
> index d2ff0221c7..1eadb94ea8 100644
> --- a/rt/Makefile
> +++ b/rt/Makefile
> @@ -30,7 +30,6 @@ routines = \
>
> librt-routines = \
> librt-compat \
> - timer_getoverr \
> timer_gettime \
> timer_settime \
>
> @@ -63,6 +62,7 @@ $(librt-routines-var) += \
> mq_unlink \
> timer_create \
> timer_delete \
> + timer_getoverr \
>
> tests := tst-shm tst-timer tst-timer2 \
> tst-aio tst-aio64 tst-aio2 tst-aio3 tst-aio4 tst-aio5 tst-aio6 \
OK.
> diff --git a/rt/Versions b/rt/Versions
> index fca804148c..de78be15dc 100644
> --- a/rt/Versions
> +++ b/rt/Versions
> @@ -24,6 +24,7 @@ libc {
> %if PTHREAD_IN_LIBC
> timer_create;
> timer_delete;
> + timer_getoverrun;
> %endif
> shm_open;
> shm_unlink;
> @@ -85,6 +86,7 @@ libc {
> mq_unlink;
> timer_create;
> timer_delete;
> + timer_getoverrun;
> %endif
> shm_open;
> shm_unlink;
> @@ -131,8 +133,8 @@ librt {
> %if !PTHREAD_IN_LIBC
> timer_create;
> timer_delete;
> -%endif
> timer_getoverrun;
> +%endif
> timer_gettime;
> timer_settime;
> }
Ok.
> diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions
> index 0db1b9c31c..31fb4a437b 100644
> --- a/sysdeps/unix/sysv/linux/Versions
> +++ b/sysdeps/unix/sysv/linux/Versions
> @@ -125,6 +125,7 @@ libc {
> # Changed timer_t. Only used by some 64-bit targets.
> timer_create;
> timer_delete;
> + timer_getoverrun;
> }
> GLIBC_2.3.4 {
> sched_getaffinity; sched_setaffinity;
Ok.
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index 17779baac1..9426bbe3f8 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -2008,6 +2008,7 @@ GLIBC_2.17 timegm F
> GLIBC_2.17 timelocal F
> GLIBC_2.17 timer_create F
> GLIBC_2.17 timer_delete F
> +GLIBC_2.17 timer_getoverrun F
> GLIBC_2.17 timerfd_create F
> GLIBC_2.17 timerfd_gettime F
> GLIBC_2.17 timerfd_settime F
> @@ -2533,6 +2534,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
Ok.
> diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> index 34768d1472..493768f440 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> @@ -1,3 +1,2 @@
> -GLIBC_2.17 timer_getoverrun F
> GLIBC_2.17 timer_gettime F
> GLIBC_2.17 timer_settime F
Ok.
> diff --git a/sysdeps/unix/sysv/linux/alpha/Versions b/sysdeps/unix/sysv/linux/alpha/Versions
> index d4bd056f64..dd5b365d77 100644
> --- a/sysdeps/unix/sysv/linux/alpha/Versions
> +++ b/sysdeps/unix/sysv/linux/alpha/Versions
> @@ -104,7 +104,7 @@ librt {
> }
> GLIBC_2.3.3 {
> # Changed timer_t.
> - timer_getoverrun; timer_gettime;
> + timer_gettime;
> timer_settime;
> }
> }
Ok.
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index 985a1deca9..50ab6f3fc1 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -2095,6 +2095,7 @@ GLIBC_2.2 swprintf F
> GLIBC_2.2 swscanf F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> +GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 ungetwc F
> GLIBC_2.2 vfwprintf F
> GLIBC_2.2 vfwscanf F
> @@ -2357,6 +2358,7 @@ GLIBC_2.3.3 sys_sigabbrev D 0x208
> GLIBC_2.3.3 sys_siglist D 0x208
> GLIBC_2.3.3 timer_create F
> GLIBC_2.3.3 timer_delete F
> +GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.4 _OtsAddX F
> GLIBC_2.3.4 _OtsConvertFloatTX F
> GLIBC_2.3.4 _OtsConvertFloatXT F
> @@ -2629,6 +2631,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
> index 3b744cf5a1..34d42d122b 100644
> --- a/sysdeps/unix/sysv/linux/alpha/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist
> @@ -1,9 +1,7 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> GLIBC_2.3 __librt_version_placeholder F
> -GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/alpha/timer_getoverr.c b/sysdeps/unix/sysv/linux/alpha/timer_getoverr.c
> deleted file mode 100644
> index 22eaff5cda..0000000000
> --- a/sysdeps/unix/sysv/linux/alpha/timer_getoverr.c
> +++ /dev/null
> @@ -1 +0,0 @@
> -#include <sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c>
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index 22fa42dfc3..aafc056267 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -1942,6 +1942,7 @@ GLIBC_2.32 timegm F
> GLIBC_2.32 timelocal F
> GLIBC_2.32 timer_create F
> GLIBC_2.32 timer_delete F
> +GLIBC_2.32 timer_getoverrun F
> GLIBC_2.32 timerfd_create F
> GLIBC_2.32 timerfd_gettime F
> GLIBC_2.32 timerfd_settime F
> @@ -2292,6 +2293,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
> index 7bc7c57bf0..14ae3d7c65 100644
> --- a/sysdeps/unix/sysv/linux/arc/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/librt.abilist
> @@ -1,3 +1,2 @@
> -GLIBC_2.32 timer_getoverrun F
> GLIBC_2.32 timer_gettime F
> GLIBC_2.32 timer_settime F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index c8ff2a0b74..ac73d766ba 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -436,6 +436,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> @@ -2354,6 +2355,7 @@ GLIBC_2.4 timegm F
> GLIBC_2.4 timelocal F
> GLIBC_2.4 timer_create F
> GLIBC_2.4 timer_delete F
> +GLIBC_2.4 timer_getoverrun F
> GLIBC_2.4 times F
> GLIBC_2.4 timezone D 0x4
> GLIBC_2.4 tmpfile F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> index 0887259367..78152d8fa3 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> @@ -1,6 +1,5 @@
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> -GLIBC_2.4 timer_getoverrun F
> GLIBC_2.4 timer_gettime F
> GLIBC_2.4 timer_settime F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index b237b78f85..96ad967292 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -433,6 +433,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> @@ -2351,6 +2352,7 @@ GLIBC_2.4 timegm F
> GLIBC_2.4 timelocal F
> GLIBC_2.4 timer_create F
> GLIBC_2.4 timer_delete F
> +GLIBC_2.4 timer_getoverrun F
> GLIBC_2.4 times F
> GLIBC_2.4 timezone D 0x4
> GLIBC_2.4 tmpfile F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> index 0887259367..78152d8fa3 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> @@ -1,6 +1,5 @@
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> -GLIBC_2.4 timer_getoverrun F
> GLIBC_2.4 timer_gettime F
> GLIBC_2.4 timer_settime F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index c1b6927cea..980ac9c497 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -2032,6 +2032,7 @@ GLIBC_2.29 timegm F
> GLIBC_2.29 timelocal F
> GLIBC_2.29 timer_create F
> GLIBC_2.29 timer_delete F
> +GLIBC_2.29 timer_getoverrun F
> GLIBC_2.29 timerfd_create F
> GLIBC_2.29 timerfd_gettime F
> GLIBC_2.29 timerfd_settime F
> @@ -2555,6 +2556,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
> index 3d7c839b9b..9f89eb4e8b 100644
> --- a/sysdeps/unix/sysv/linux/csky/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/librt.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.29 timer_getoverrun F
> GLIBC_2.29 timer_gettime F
> GLIBC_2.29 timer_settime F
> GLIBC_2.34 __timer_gettime64 F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index c5021c8109..0e6e1444d6 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -1746,6 +1746,7 @@ GLIBC_2.2 timegm F
> GLIBC_2.2 timelocal F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> +GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 times F
> GLIBC_2.2 timezone D 0x4
> GLIBC_2.2 tmpfile F
> @@ -2508,6 +2509,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
> index 1268c7fc38..f04b1e7978 100644
> --- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index 8055ea6984..d8693b0c7b 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -2108,6 +2108,7 @@ GLIBC_2.2 swprintf F
> GLIBC_2.2 swscanf F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> +GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 ungetwc F
> GLIBC_2.2 versionsort64 F
> GLIBC_2.2 vfwprintf F
> @@ -2692,6 +2693,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
> index 1268c7fc38..f04b1e7978 100644
> --- a/sysdeps/unix/sysv/linux/i386/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
OK.
> diff --git a/sysdeps/unix/sysv/linux/ia64/Versions b/sysdeps/unix/sysv/linux/ia64/Versions
> index 29b0d98cc6..1d09fca7e3 100644
> --- a/sysdeps/unix/sysv/linux/ia64/Versions
> +++ b/sysdeps/unix/sysv/linux/ia64/Versions
> @@ -30,7 +30,7 @@ libc {
> librt {
> GLIBC_2.3.3 {
> # Changed timer_t.
> - timer_getoverrun; timer_gettime;
> + timer_gettime;
> timer_settime;
> }
> }
Ok.
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index 4cf1da5b62..984b58be61 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -1767,6 +1767,7 @@ GLIBC_2.2 timegm F
> GLIBC_2.2 timelocal F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> +GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 times F
> GLIBC_2.2 timezone D 0x8
> GLIBC_2.2 tmpfile F
> @@ -2222,6 +2223,7 @@ GLIBC_2.3.3 sys_sigabbrev D 0x208
> GLIBC_2.3.3 sys_siglist D 0x208
> GLIBC_2.3.3 timer_create F
> GLIBC_2.3.3 timer_delete F
> +GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.4 __chk_fail F
> GLIBC_2.3.4 __fprintf_chk F
> GLIBC_2.3.4 __gets_chk F
> @@ -2467,6 +2469,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
> index 74a4971070..c56040a5f9 100644
> --- a/sysdeps/unix/sysv/linux/ia64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/librt.abilist
> @@ -1,8 +1,6 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> -GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
Ok.
> diff --git a/sysdeps/unix/sysv/linux/ia64/timer_getoverr.c b/sysdeps/unix/sysv/linux/ia64/timer_getoverr.c
> deleted file mode 100644
> index 22eaff5cda..0000000000
> --- a/sysdeps/unix/sysv/linux/ia64/timer_getoverr.c
> +++ /dev/null
> @@ -1 +0,0 @@
> -#include <sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c>
Ok.
> diff --git a/sysdeps/unix/sysv/linux/kernel-posix-timers.h b/sysdeps/unix/sysv/linux/kernel-posix-timers.h
> index 99a2937458..a976b028e0 100644
> --- a/sysdeps/unix/sysv/linux/kernel-posix-timers.h
> +++ b/sysdeps/unix/sysv/linux/kernel-posix-timers.h
> @@ -52,6 +52,8 @@ extern __typeof (timer_create) __timer_create;
> libc_hidden_proto (__timer_create)
> extern __typeof (timer_delete) __timer_delete;
> libc_hidden_proto (__timer_delete)
> +extern __typeof (timer_getoverrun) __timer_getoverrun;
> +libc_hidden_proto (__timer_getoverrun)
>
> /* Type of timers in the kernel. */
> typedef int kernel_timer_t;
Ok.
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index e7c0a81f37..a8d6ad9a4f 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -437,6 +437,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> @@ -2334,6 +2335,7 @@ GLIBC_2.4 timegm F
> GLIBC_2.4 timelocal F
> GLIBC_2.4 timer_create F
> GLIBC_2.4 timer_delete F
> +GLIBC_2.4 timer_getoverrun F
> GLIBC_2.4 times F
> GLIBC_2.4 timezone D 0x4
> GLIBC_2.4 tmpfile F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> index 0887259367..78152d8fa3 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> @@ -1,6 +1,5 @@
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> -GLIBC_2.4 timer_getoverrun F
> GLIBC_2.4 timer_gettime F
> GLIBC_2.4 timer_settime F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index b82f6366ee..62590726a8 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -2064,6 +2064,7 @@ GLIBC_2.2 swprintf F
> GLIBC_2.2 swscanf F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> +GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 ungetwc F
> GLIBC_2.2 versionsort64 F
> GLIBC_2.2 vfwprintf F
> @@ -2635,6 +2636,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> index 1268c7fc38..f04b1e7978 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index 3f9dfa7664..3fd1621454 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -2012,6 +2012,7 @@ GLIBC_2.18 timegm F
> GLIBC_2.18 timelocal F
> GLIBC_2.18 timer_create F
> GLIBC_2.18 timer_delete F
> +GLIBC_2.18 timer_getoverrun F
> GLIBC_2.18 timerfd_create F
> GLIBC_2.18 timerfd_gettime F
> GLIBC_2.18 timerfd_settime F
> @@ -2606,6 +2607,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> index 2efee3a326..f308a63244 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.18 timer_getoverrun F
> GLIBC_2.18 timer_gettime F
> GLIBC_2.18 timer_settime F
> GLIBC_2.34 __timer_gettime64 F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index bb2fd6251f..2b839a784d 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -2012,6 +2012,7 @@ GLIBC_2.18 timegm F
> GLIBC_2.18 timelocal F
> GLIBC_2.18 timer_create F
> GLIBC_2.18 timer_delete F
> +GLIBC_2.18 timer_getoverrun F
> GLIBC_2.18 timerfd_create F
> GLIBC_2.18 timerfd_gettime F
> GLIBC_2.18 timerfd_settime F
> @@ -2603,6 +2604,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> index 2efee3a326..f308a63244 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.18 timer_getoverrun F
> GLIBC_2.18 timer_gettime F
> GLIBC_2.18 timer_settime F
> GLIBC_2.34 __timer_gettime64 F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index 938142fb4a..ac623acbd3 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -1995,6 +1995,7 @@ GLIBC_2.2 tcgetsid F
> GLIBC_2.2 tdestroy F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> +GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 tmpfile F
> GLIBC_2.2 tmpfile64 F
> GLIBC_2.2 truncate64 F
> @@ -2600,6 +2601,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> index dbc81ebe4b..af07e28f55 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index d62382883b..776b30b48a 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -1993,6 +1993,7 @@ GLIBC_2.2 tcgetsid F
> GLIBC_2.2 tdestroy F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> +GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 tmpfile F
> GLIBC_2.2 tmpfile64 F
> GLIBC_2.2 truncate64 F
> @@ -2598,6 +2599,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index 28a8a5d294..1ffaa8e684 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -1991,6 +1991,7 @@ GLIBC_2.2 tcgetsid F
> GLIBC_2.2 tdestroy F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> +GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 tmpfile F
> GLIBC_2.2 tmpfile64 F
> GLIBC_2.2 truncate64 F
> @@ -2606,6 +2607,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> index dbc81ebe4b..af07e28f55 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index 6748f9beef..b0c5d0a636 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -1987,6 +1987,7 @@ GLIBC_2.2 tcgetsid F
> GLIBC_2.2 tdestroy F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> +GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 tmpfile F
> GLIBC_2.2 tmpfile64 F
> GLIBC_2.2 truncate64 F
> @@ -2521,6 +2522,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> index 00fd77bbab..a92565949e 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index 03d13e5ee1..77778d11f3 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -2054,6 +2054,7 @@ GLIBC_2.21 timegm F
> GLIBC_2.21 timelocal F
> GLIBC_2.21 timer_create F
> GLIBC_2.21 timer_delete F
> +GLIBC_2.21 timer_getoverrun F
> GLIBC_2.21 timerfd_create F
> GLIBC_2.21 timerfd_gettime F
> GLIBC_2.21 timerfd_settime F
> @@ -2645,6 +2646,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
> index a83ae32d03..8ab5ece2b0 100644
> --- a/sysdeps/unix/sysv/linux/nios2/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/librt.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.21 timer_getoverrun F
> GLIBC_2.21 timer_gettime F
> GLIBC_2.21 timer_settime F
> GLIBC_2.34 __timer_gettime64 F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index c9a45ecb17..5562012575 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -2069,6 +2069,7 @@ GLIBC_2.2 swprintf F
> GLIBC_2.2 swscanf F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> +GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 ungetwc F
> GLIBC_2.2 vfwprintf F
> GLIBC_2.2 vfwscanf F
> @@ -2662,6 +2663,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> index 1268c7fc38..f04b1e7978 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index c7fbc347a1..f0adf7b58b 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -2073,6 +2073,7 @@ GLIBC_2.2 swprintf F
> GLIBC_2.2 swscanf F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> +GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 ungetwc F
> GLIBC_2.2 vfwprintf F
> GLIBC_2.2 vfwscanf F
> @@ -2695,6 +2696,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
OK.
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions b/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions
> index 4eb22c11ac..a69927d41d 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions
> @@ -29,7 +29,7 @@ libc {
> librt {
> GLIBC_2.3.3 {
> # Changed timer_t.
> - timer_getoverrun; timer_gettime;
> + timer_gettime;
> timer_settime;
> }
> }
Ok.
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index fb5eb9c67e..e74ecec60f 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -1888,6 +1888,7 @@ GLIBC_2.3 timegm F
> GLIBC_2.3 timelocal F
> GLIBC_2.3 timer_create F
> GLIBC_2.3 timer_delete F
> +GLIBC_2.3 timer_getoverrun F
> GLIBC_2.3 times F
> GLIBC_2.3 timezone D 0x8
> GLIBC_2.3 tmpfile F
> @@ -2166,6 +2167,7 @@ GLIBC_2.3.3 sys_sigabbrev D 0x208
> GLIBC_2.3.3 sys_siglist D 0x208
> GLIBC_2.3.3 timer_create F
> GLIBC_2.3.3 timer_delete F
> +GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.4 __chk_fail F
> GLIBC_2.3.4 __fprintf_chk F
> GLIBC_2.3.4 __gets_chk F
> @@ -2431,6 +2433,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> index 914203b043..dd8b2ad6ef 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> @@ -1,7 +1,5 @@
> -GLIBC_2.3 timer_getoverrun F
> GLIBC_2.3 timer_gettime F
> GLIBC_2.3 timer_settime F
> -GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index b89256aba0..2a0c06b881 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -2096,6 +2096,7 @@ GLIBC_2.17 timegm F
> GLIBC_2.17 timelocal F
> GLIBC_2.17 timer_create F
> GLIBC_2.17 timer_delete F
> +GLIBC_2.17 timer_getoverrun F
> GLIBC_2.17 timerfd_create F
> GLIBC_2.17 timerfd_gettime F
> GLIBC_2.17 timerfd_settime F
> @@ -2729,6 +2730,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> index 34768d1472..493768f440 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> @@ -1,3 +1,2 @@
> -GLIBC_2.17 timer_getoverrun F
> GLIBC_2.17 timer_gettime F
> GLIBC_2.17 timer_settime F
Ok.
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_getoverr.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_getoverr.c
> deleted file mode 100644
> index 22eaff5cda..0000000000
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_getoverr.c
> +++ /dev/null
> @@ -1 +0,0 @@
> -#include <sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c>
Ok.
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index c653f52373..3e0e33bbb3 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -1952,6 +1952,7 @@ GLIBC_2.33 timegm F
> GLIBC_2.33 timelocal F
> GLIBC_2.33 timer_create F
> GLIBC_2.33 timer_delete F
> +GLIBC_2.33 timer_getoverrun F
> GLIBC_2.33 timerfd_create F
> GLIBC_2.33 timerfd_gettime F
> GLIBC_2.33 timerfd_settime F
> @@ -2294,6 +2295,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> index 09bbee0960..de338094e1 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> @@ -1,3 +1,2 @@
> -GLIBC_2.33 timer_getoverrun F
> GLIBC_2.33 timer_gettime F
> GLIBC_2.33 timer_settime F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index 711484eee5..1092e5a170 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -2018,6 +2018,7 @@ GLIBC_2.27 timegm F
> GLIBC_2.27 timelocal F
> GLIBC_2.27 timer_create F
> GLIBC_2.27 timer_delete F
> +GLIBC_2.27 timer_getoverrun F
> GLIBC_2.27 timerfd_create F
> GLIBC_2.27 timerfd_gettime F
> GLIBC_2.27 timerfd_settime F
> @@ -2494,6 +2495,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> index 8e1d8b21fe..624ab969d8 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> @@ -1,3 +1,2 @@
> -GLIBC_2.27 timer_getoverrun F
> GLIBC_2.27 timer_gettime F
> GLIBC_2.27 timer_settime F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index 4040312275..710cafe7c0 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -2067,6 +2067,7 @@ GLIBC_2.2 swprintf F
> GLIBC_2.2 swscanf F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> +GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 ungetwc F
> GLIBC_2.2 versionsort64 F
> GLIBC_2.2 vfwprintf F
> @@ -2660,6 +2661,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> index 1268c7fc38..f04b1e7978 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/Versions b/sysdeps/unix/sysv/linux/s390/s390-64/Versions
> index 5989ac75a9..e7f968fcdf 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/Versions
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/Versions
> @@ -9,7 +9,7 @@ libc {
> librt {
> GLIBC_2.3.3 {
> # Changed timer_t.
> - timer_getoverrun; timer_gettime;
> + timer_gettime;
> timer_settime;
> }
> }
Ok.
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index 4cf6a5ea09..6b2c7e7d68 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -1763,6 +1763,7 @@ GLIBC_2.2 timegm F
> GLIBC_2.2 timelocal F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> +GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 times F
> GLIBC_2.2 timezone D 0x8
> GLIBC_2.2 tmpfile F
> @@ -2212,6 +2213,7 @@ GLIBC_2.3.3 sys_sigabbrev D 0x208
> GLIBC_2.3.3 sys_siglist D 0x208
> GLIBC_2.3.3 timer_create F
> GLIBC_2.3.3 timer_delete F
> +GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.4 __chk_fail F
> GLIBC_2.3.4 __fprintf_chk F
> GLIBC_2.3.4 __gets_chk F
> @@ -2468,6 +2470,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> index 34e8d31133..35dc39d27d 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> @@ -1,7 +1,5 @@
> -GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> -GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/timer_getoverr.c b/sysdeps/unix/sysv/linux/s390/s390-64/timer_getoverr.c
> deleted file mode 100644
> index 22eaff5cda..0000000000
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/timer_getoverr.c
> +++ /dev/null
> @@ -1 +0,0 @@
> -#include <sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c>
Ok.
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index 6fd93a5445..51a493aadb 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -1750,6 +1750,7 @@ GLIBC_2.2 timegm F
> GLIBC_2.2 timelocal F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> +GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 times F
> GLIBC_2.2 timezone D 0x4
> GLIBC_2.2 tmpfile F
> @@ -2515,6 +2516,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> index 1268c7fc38..f04b1e7978 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index c5c41bf0e6..cb37ba55cb 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -1750,6 +1750,7 @@ GLIBC_2.2 timegm F
> GLIBC_2.2 timelocal F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> +GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 times F
> GLIBC_2.2 timezone D 0x4
> GLIBC_2.2 tmpfile F
> @@ -2512,6 +2513,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> index 1268c7fc38..f04b1e7978 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index 132470d40b..05b4e88794 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -2062,6 +2062,7 @@ GLIBC_2.2 swprintf F
> GLIBC_2.2 swscanf F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> +GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 ungetwc F
> GLIBC_2.2 vfwprintf F
> GLIBC_2.2 vfwscanf F
> @@ -2655,6 +2656,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> index d8ff3b0988..0de56c2c15 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> GLIBC_2.3 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/Versions b/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
> index 358081399a..d04738fafc 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
> @@ -14,7 +14,7 @@ libc {
> librt {
> GLIBC_2.3.3 {
> # Changed timer_t.
> - timer_getoverrun; timer_gettime;
> + timer_gettime;
> timer_settime;
> }
> }
Ok.
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index 6ee552611b..72591794e8 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -1793,6 +1793,7 @@ GLIBC_2.2 timegm F
> GLIBC_2.2 timelocal F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> +GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 times F
> GLIBC_2.2 timezone D 0x8
> GLIBC_2.2 tmpfile F
> @@ -2246,6 +2247,7 @@ GLIBC_2.3.3 sys_sigabbrev D 0x208
> GLIBC_2.3.3 sys_siglist D 0x208
> GLIBC_2.3.3 timer_create F
> GLIBC_2.3.3 timer_delete F
> +GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.4 __chk_fail F
> GLIBC_2.3.4 __fprintf_chk F
> GLIBC_2.3.4 __gets_chk F
> @@ -2490,6 +2492,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> index 3b744cf5a1..34d42d122b 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> @@ -1,9 +1,7 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> GLIBC_2.3 __librt_version_placeholder F
> -GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/timer_getoverr.c b/sysdeps/unix/sysv/linux/sparc/sparc64/timer_getoverr.c
> deleted file mode 100644
> index 22eaff5cda..0000000000
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/timer_getoverr.c
> +++ /dev/null
> @@ -1 +0,0 @@
> -#include <sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c>
Ok.
> diff --git a/sysdeps/unix/sysv/linux/timer_getoverr.c b/sysdeps/unix/sysv/linux/timer_getoverr.c
> index b997290768..accec3757d 100644
> --- a/sysdeps/unix/sysv/linux/timer_getoverr.c
> +++ b/sysdeps/unix/sysv/linux/timer_getoverr.c
> @@ -20,17 +20,33 @@
> #include <time.h>
> #include <sysdep.h>
> #include <kernel-posix-timers.h>
> -
> -
> -#ifdef timer_getoverrun_alias
> -# define timer_getoverrun timer_getoverrun_alias
> -#endif
> -
> +#include <shlib-compat.h>
>
> int
> -timer_getoverrun (timer_t timerid)
> +___timer_getoverrun (timer_t timerid)
> {
> -#undef timer_getoverrun
> kernel_timer_t ktimerid = timerid_to_kernel_timer (timerid);
> return INLINE_SYSCALL_CALL (timer_getoverrun, ktimerid);
> }
> +versioned_symbol (libc, ___timer_getoverrun, timer_getoverrun, GLIBC_2_34);
> +libc_hidden_ver (___timer_getoverrun, __timer_getoverrun)
> +
> +#if TIMER_T_WAS_INT_COMPAT
> +# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_3_3, GLIBC_2_34)
> +compat_symbol (librt, ___timer_getoverrun, timer_getoverrun, GLIBC_2_3_3);
> +# endif
> +
> +# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_3_3)
> +int
> +__timer_getoverrun_old (int timerid)
> +{
> + return __timer_getoverrun (__timer_compat_list[timerid]);
> +}
> +compat_symbol (librt, __timer_getoverrun_old, timer_getoverrun, GLIBC_2_2);
> +# endif /* OTHER_SHLIB_COMPAT */
> +
> +#else /* !TIMER_T_WAS_INT_COMPAT */
> +# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_34)
> +compat_symbol (librt, ___timer_getoverrun, timer_getoverrun, GLIBC_2_2);
> +# endif
> +#endif /* !TIMER_T_WAS_INT_COMPAT */
Ok.
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index 377d35a04f..92f4369765 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -1762,6 +1762,7 @@ GLIBC_2.2.5 timegm F
> GLIBC_2.2.5 timelocal F
> GLIBC_2.2.5 timer_create F
> GLIBC_2.2.5 timer_delete F
> +GLIBC_2.2.5 timer_getoverrun F
> GLIBC_2.2.5 times F
> GLIBC_2.2.5 timezone D 0x8
> GLIBC_2.2.5 tmpfile F
> @@ -2200,6 +2201,7 @@ GLIBC_2.3.3 sys_sigabbrev D 0x208
> GLIBC_2.3.3 sys_siglist D 0x208
> GLIBC_2.3.3 timer_create F
> GLIBC_2.3.3 timer_delete F
> +GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.4 __chk_fail F
> GLIBC_2.3.4 __fprintf_chk F
> GLIBC_2.3.4 __gets_chk F
> @@ -2446,6 +2448,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> index 13a2bf2022..379fa6930c 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> @@ -1,7 +1,5 @@
> -GLIBC_2.2.5 timer_getoverrun F
> GLIBC_2.2.5 timer_gettime F
> GLIBC_2.2.5 timer_settime F
> -GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/Versions b/sysdeps/unix/sysv/linux/x86_64/Versions
> index c4d1c5fb79..a97b6c7413 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/Versions
> +++ b/sysdeps/unix/sysv/linux/x86_64/Versions
> @@ -11,7 +11,7 @@ libc {
> librt {
> GLIBC_2.3.3 {
> # Changed timer_t.
> - timer_getoverrun; timer_gettime;
> + timer_gettime;
> timer_settime;
> }
> }
Ok.
> diff --git a/sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c b/sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c
> deleted file mode 100644
> index fb6e631a00..0000000000
> --- a/sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c
> +++ /dev/null
> @@ -1,38 +0,0 @@
> -/* Copyright (C) 2003-2021 Free Software Foundation, Inc.
> - This file is part of the GNU C Library.
> - Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
> -
> - 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; see the file COPYING.LIB. If
> - not, see <https://www.gnu.org/licenses/>. */
> -
> -#include <shlib-compat.h>
> -#include "compat-timer.h"
> -
> -
> -#define timer_getoverrun_alias __timer_getoverrun_new
> -#include <sysdeps/unix/sysv/linux/timer_getoverr.c>
> -
> -#undef timer_getoverrun
> -versioned_symbol (librt, __timer_getoverrun_new, timer_getoverrun,
> - GLIBC_2_3_3);
> -
> -
> -#if SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_3_3)
> -int
> -__timer_getoverrun_old (int timerid)
> -{
> - return __timer_getoverrun_new (__timer_compat_list[timerid]);
> -}
> -compat_symbol (librt, __timer_getoverrun_old, timer_getoverrun, GLIBC_2_2);
> -#endif
Ok.
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index 620f35836c..25b177fda0 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -2013,6 +2013,7 @@ GLIBC_2.16 timegm F
> GLIBC_2.16 timelocal F
> GLIBC_2.16 timer_create F
> GLIBC_2.16 timer_delete F
> +GLIBC_2.16 timer_getoverrun F
> GLIBC_2.16 timerfd_create F
> GLIBC_2.16 timerfd_gettime F
> GLIBC_2.16 timerfd_settime F
> @@ -2548,6 +2549,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> index 4b3e816fdd..0b969910ba 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> @@ -1,3 +1,2 @@
> -GLIBC_2.16 timer_getoverrun F
> GLIBC_2.16 timer_gettime F
> GLIBC_2.16 timer_settime F
>
Ok.
^ permalink raw reply [flat|nested] 72+ messages in thread
* Re: [PATCH 31/34] Linux: Move timer_getoverrun from librt to libc
2021-06-17 18:59 ` [PATCH 31/34] Linux: Move timer_getoverrun " Florian Weimer
2021-06-24 17:26 ` Adhemerval Zanella
@ 2021-06-24 17:38 ` Adhemerval Zanella
1 sibling, 0 replies; 72+ messages in thread
From: Adhemerval Zanella @ 2021-06-24 17:38 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 17/06/2021 15:59, Florian Weimer via Libc-alpha wrote:
> The symbol was moved using scripts/move-symbol-to-libc.py.
>
> The way the ABI intransition is implemented is changed with this
> commit: the implementation is now consolidated in one file with a
> TIMER_T_WAS_INT_COMPAT check.
LGTM, thanks.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> ---
> rt/Makefile | 2 +-
> rt/Versions | 4 +-
> sysdeps/unix/sysv/linux/Versions | 1 +
> sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/aarch64/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/alpha/Versions | 2 +-
> sysdeps/unix/sysv/linux/alpha/libc.abilist | 3 ++
> sysdeps/unix/sysv/linux/alpha/librt.abilist | 2 -
> .../unix/sysv/linux/alpha/timer_getoverr.c | 1 -
> sysdeps/unix/sysv/linux/arc/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/arc/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/arm/be/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/arm/be/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/arm/le/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/arm/le/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/csky/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/csky/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/hppa/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/hppa/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/i386/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/i386/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/ia64/Versions | 2 +-
> sysdeps/unix/sysv/linux/ia64/libc.abilist | 3 ++
> sysdeps/unix/sysv/linux/ia64/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/ia64/timer_getoverr.c | 1 -
> sysdeps/unix/sysv/linux/kernel-posix-timers.h | 2 +
> .../sysv/linux/m68k/coldfire/libc.abilist | 2 +
> .../sysv/linux/m68k/coldfire/librt.abilist | 1 -
> .../unix/sysv/linux/m68k/m680x0/libc.abilist | 2 +
> .../unix/sysv/linux/m68k/m680x0/librt.abilist | 1 -
> .../sysv/linux/microblaze/be/libc.abilist | 2 +
> .../sysv/linux/microblaze/be/librt.abilist | 1 -
> .../sysv/linux/microblaze/le/libc.abilist | 2 +
> .../sysv/linux/microblaze/le/librt.abilist | 1 -
> .../sysv/linux/mips/mips32/fpu/libc.abilist | 2 +
> .../unix/sysv/linux/mips/mips32/librt.abilist | 1 -
> .../sysv/linux/mips/mips32/nofpu/libc.abilist | 2 +
> .../sysv/linux/mips/mips64/n32/libc.abilist | 2 +
> .../sysv/linux/mips/mips64/n32/librt.abilist | 1 -
> .../sysv/linux/mips/mips64/n64/libc.abilist | 2 +
> .../sysv/linux/mips/mips64/n64/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/nios2/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/nios2/librt.abilist | 1 -
> .../linux/powerpc/powerpc32/fpu/libc.abilist | 2 +
> .../linux/powerpc/powerpc32/librt.abilist | 1 -
> .../powerpc/powerpc32/nofpu/libc.abilist | 2 +
> .../sysv/linux/powerpc/powerpc64/Versions | 2 +-
> .../linux/powerpc/powerpc64/be/libc.abilist | 3 ++
> .../linux/powerpc/powerpc64/be/librt.abilist | 2 -
> .../linux/powerpc/powerpc64/le/libc.abilist | 2 +
> .../linux/powerpc/powerpc64/le/librt.abilist | 1 -
> .../linux/powerpc/powerpc64/timer_getoverr.c | 1 -
> .../unix/sysv/linux/riscv/rv32/libc.abilist | 2 +
> .../unix/sysv/linux/riscv/rv32/librt.abilist | 1 -
> .../unix/sysv/linux/riscv/rv64/libc.abilist | 2 +
> .../unix/sysv/linux/riscv/rv64/librt.abilist | 1 -
> .../unix/sysv/linux/s390/s390-32/libc.abilist | 2 +
> .../sysv/linux/s390/s390-32/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/s390/s390-64/Versions | 2 +-
> .../unix/sysv/linux/s390/s390-64/libc.abilist | 3 ++
> .../sysv/linux/s390/s390-64/librt.abilist | 2 -
> .../sysv/linux/s390/s390-64/timer_getoverr.c | 1 -
> sysdeps/unix/sysv/linux/sh/be/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/sh/be/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/sh/le/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/sh/le/librt.abilist | 1 -
> .../sysv/linux/sparc/sparc32/libc.abilist | 2 +
> .../sysv/linux/sparc/sparc32/librt.abilist | 1 -
> .../unix/sysv/linux/sparc/sparc64/Versions | 2 +-
> .../sysv/linux/sparc/sparc64/libc.abilist | 3 ++
> .../sysv/linux/sparc/sparc64/librt.abilist | 2 -
> .../sysv/linux/sparc/sparc64/timer_getoverr.c | 1 -
> sysdeps/unix/sysv/linux/timer_getoverr.c | 32 ++++++++++++----
> .../unix/sysv/linux/x86_64/64/libc.abilist | 3 ++
> .../unix/sysv/linux/x86_64/64/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/x86_64/Versions | 2 +-
> .../unix/sysv/linux/x86_64/timer_getoverr.c | 38 -------------------
> .../unix/sysv/linux/x86_64/x32/libc.abilist | 2 +
> .../unix/sysv/linux/x86_64/x32/librt.abilist | 1 -
> 79 files changed, 107 insertions(+), 95 deletions(-)
> delete mode 100644 sysdeps/unix/sysv/linux/alpha/timer_getoverr.c
> delete mode 100644 sysdeps/unix/sysv/linux/ia64/timer_getoverr.c
> delete mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_getoverr.c
> delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-64/timer_getoverr.c
> delete mode 100644 sysdeps/unix/sysv/linux/sparc/sparc64/timer_getoverr.c
> delete mode 100644 sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c
>
> diff --git a/rt/Makefile b/rt/Makefile
> index d2ff0221c7..1eadb94ea8 100644
> --- a/rt/Makefile
> +++ b/rt/Makefile
> @@ -30,7 +30,6 @@ routines = \
>
> librt-routines = \
> librt-compat \
> - timer_getoverr \
> timer_gettime \
> timer_settime \
>
> @@ -63,6 +62,7 @@ $(librt-routines-var) += \
> mq_unlink \
> timer_create \
> timer_delete \
> + timer_getoverr \
>
> tests := tst-shm tst-timer tst-timer2 \
> tst-aio tst-aio64 tst-aio2 tst-aio3 tst-aio4 tst-aio5 tst-aio6 \
Ok.
> diff --git a/rt/Versions b/rt/Versions
> index fca804148c..de78be15dc 100644
> --- a/rt/Versions
> +++ b/rt/Versions
> @@ -24,6 +24,7 @@ libc {
> %if PTHREAD_IN_LIBC
> timer_create;
> timer_delete;
> + timer_getoverrun;
> %endif
> shm_open;
> shm_unlink;
> @@ -85,6 +86,7 @@ libc {
> mq_unlink;
> timer_create;
> timer_delete;
> + timer_getoverrun;
> %endif
> shm_open;
> shm_unlink;
> @@ -131,8 +133,8 @@ librt {
> %if !PTHREAD_IN_LIBC
> timer_create;
> timer_delete;
> -%endif
> timer_getoverrun;
> +%endif
> timer_gettime;
> timer_settime;
> }
Ok.
> diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions
> index 0db1b9c31c..31fb4a437b 100644
> --- a/sysdeps/unix/sysv/linux/Versions
> +++ b/sysdeps/unix/sysv/linux/Versions
> @@ -125,6 +125,7 @@ libc {
> # Changed timer_t. Only used by some 64-bit targets.
> timer_create;
> timer_delete;
> + timer_getoverrun;
> }
> GLIBC_2.3.4 {
> sched_getaffinity; sched_setaffinity;
Ok.
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index 17779baac1..9426bbe3f8 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -2008,6 +2008,7 @@ GLIBC_2.17 timegm F
> GLIBC_2.17 timelocal F
> GLIBC_2.17 timer_create F
> GLIBC_2.17 timer_delete F
> +GLIBC_2.17 timer_getoverrun F
> GLIBC_2.17 timerfd_create F
> GLIBC_2.17 timerfd_gettime F
> GLIBC_2.17 timerfd_settime F
> @@ -2533,6 +2534,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
Ok.
> diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> index 34768d1472..493768f440 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> @@ -1,3 +1,2 @@
> -GLIBC_2.17 timer_getoverrun F
> GLIBC_2.17 timer_gettime F
> GLIBC_2.17 timer_settime F
> diff --git a/sysdeps/unix/sysv/linux/alpha/Versions b/sysdeps/unix/sysv/linux/alpha/Versions
> index d4bd056f64..dd5b365d77 100644
> --- a/sysdeps/unix/sysv/linux/alpha/Versions
> +++ b/sysdeps/unix/sysv/linux/alpha/Versions
> @@ -104,7 +104,7 @@ librt {
> }
> GLIBC_2.3.3 {
> # Changed timer_t.
> - timer_getoverrun; timer_gettime;
> + timer_gettime;
> timer_settime;
> }
> }
Ok.
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index 985a1deca9..50ab6f3fc1 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -2095,6 +2095,7 @@ GLIBC_2.2 swprintf F
> GLIBC_2.2 swscanf F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> +GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 ungetwc F
> GLIBC_2.2 vfwprintf F
> GLIBC_2.2 vfwscanf F
> @@ -2357,6 +2358,7 @@ GLIBC_2.3.3 sys_sigabbrev D 0x208
> GLIBC_2.3.3 sys_siglist D 0x208
> GLIBC_2.3.3 timer_create F
> GLIBC_2.3.3 timer_delete F
> +GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.4 _OtsAddX F
> GLIBC_2.3.4 _OtsConvertFloatTX F
> GLIBC_2.3.4 _OtsConvertFloatXT F
> @@ -2629,6 +2631,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
> index 3b744cf5a1..34d42d122b 100644
> --- a/sysdeps/unix/sysv/linux/alpha/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist
> @@ -1,9 +1,7 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> GLIBC_2.3 __librt_version_placeholder F
> -GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/alpha/timer_getoverr.c b/sysdeps/unix/sysv/linux/alpha/timer_getoverr.c
> deleted file mode 100644
> index 22eaff5cda..0000000000
> --- a/sysdeps/unix/sysv/linux/alpha/timer_getoverr.c
> +++ /dev/null
> @@ -1 +0,0 @@
> -#include <sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c>
Ok.
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index 22fa42dfc3..aafc056267 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -1942,6 +1942,7 @@ GLIBC_2.32 timegm F
> GLIBC_2.32 timelocal F
> GLIBC_2.32 timer_create F
> GLIBC_2.32 timer_delete F
> +GLIBC_2.32 timer_getoverrun F
> GLIBC_2.32 timerfd_create F
> GLIBC_2.32 timerfd_gettime F
> GLIBC_2.32 timerfd_settime F
> @@ -2292,6 +2293,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
> index 7bc7c57bf0..14ae3d7c65 100644
> --- a/sysdeps/unix/sysv/linux/arc/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/librt.abilist
> @@ -1,3 +1,2 @@
> -GLIBC_2.32 timer_getoverrun F
> GLIBC_2.32 timer_gettime F
> GLIBC_2.32 timer_settime F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index c8ff2a0b74..ac73d766ba 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -436,6 +436,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> @@ -2354,6 +2355,7 @@ GLIBC_2.4 timegm F
> GLIBC_2.4 timelocal F
> GLIBC_2.4 timer_create F
> GLIBC_2.4 timer_delete F
> +GLIBC_2.4 timer_getoverrun F
> GLIBC_2.4 times F
> GLIBC_2.4 timezone D 0x4
> GLIBC_2.4 tmpfile F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> index 0887259367..78152d8fa3 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> @@ -1,6 +1,5 @@
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> -GLIBC_2.4 timer_getoverrun F
> GLIBC_2.4 timer_gettime F
> GLIBC_2.4 timer_settime F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index b237b78f85..96ad967292 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -433,6 +433,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> @@ -2351,6 +2352,7 @@ GLIBC_2.4 timegm F
> GLIBC_2.4 timelocal F
> GLIBC_2.4 timer_create F
> GLIBC_2.4 timer_delete F
> +GLIBC_2.4 timer_getoverrun F
> GLIBC_2.4 times F
> GLIBC_2.4 timezone D 0x4
> GLIBC_2.4 tmpfile F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> index 0887259367..78152d8fa3 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> @@ -1,6 +1,5 @@
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> -GLIBC_2.4 timer_getoverrun F
> GLIBC_2.4 timer_gettime F
> GLIBC_2.4 timer_settime F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index c1b6927cea..980ac9c497 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -2032,6 +2032,7 @@ GLIBC_2.29 timegm F
> GLIBC_2.29 timelocal F
> GLIBC_2.29 timer_create F
> GLIBC_2.29 timer_delete F
> +GLIBC_2.29 timer_getoverrun F
> GLIBC_2.29 timerfd_create F
> GLIBC_2.29 timerfd_gettime F
> GLIBC_2.29 timerfd_settime F
> @@ -2555,6 +2556,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
> index 3d7c839b9b..9f89eb4e8b 100644
> --- a/sysdeps/unix/sysv/linux/csky/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/librt.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.29 timer_getoverrun F
> GLIBC_2.29 timer_gettime F
> GLIBC_2.29 timer_settime F
> GLIBC_2.34 __timer_gettime64 F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index c5021c8109..0e6e1444d6 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -1746,6 +1746,7 @@ GLIBC_2.2 timegm F
> GLIBC_2.2 timelocal F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> +GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 times F
> GLIBC_2.2 timezone D 0x4
> GLIBC_2.2 tmpfile F
> @@ -2508,6 +2509,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
> index 1268c7fc38..f04b1e7978 100644
> --- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index 8055ea6984..d8693b0c7b 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -2108,6 +2108,7 @@ GLIBC_2.2 swprintf F
> GLIBC_2.2 swscanf F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> +GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 ungetwc F
> GLIBC_2.2 versionsort64 F
> GLIBC_2.2 vfwprintf F
> @@ -2692,6 +2693,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
> index 1268c7fc38..f04b1e7978 100644
> --- a/sysdeps/unix/sysv/linux/i386/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/ia64/Versions b/sysdeps/unix/sysv/linux/ia64/Versions
> index 29b0d98cc6..1d09fca7e3 100644
> --- a/sysdeps/unix/sysv/linux/ia64/Versions
> +++ b/sysdeps/unix/sysv/linux/ia64/Versions
> @@ -30,7 +30,7 @@ libc {
> librt {
> GLIBC_2.3.3 {
> # Changed timer_t.
> - timer_getoverrun; timer_gettime;
> + timer_gettime;
> timer_settime;
> }
> }
Ok.
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index 4cf1da5b62..984b58be61 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -1767,6 +1767,7 @@ GLIBC_2.2 timegm F
> GLIBC_2.2 timelocal F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> +GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 times F
> GLIBC_2.2 timezone D 0x8
> GLIBC_2.2 tmpfile F
> @@ -2222,6 +2223,7 @@ GLIBC_2.3.3 sys_sigabbrev D 0x208
> GLIBC_2.3.3 sys_siglist D 0x208
> GLIBC_2.3.3 timer_create F
> GLIBC_2.3.3 timer_delete F
> +GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.4 __chk_fail F
> GLIBC_2.3.4 __fprintf_chk F
> GLIBC_2.3.4 __gets_chk F
> @@ -2467,6 +2469,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
> index 74a4971070..c56040a5f9 100644
> --- a/sysdeps/unix/sysv/linux/ia64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/librt.abilist
> @@ -1,8 +1,6 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> -GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/ia64/timer_getoverr.c b/sysdeps/unix/sysv/linux/ia64/timer_getoverr.c
> deleted file mode 100644
> index 22eaff5cda..0000000000
> --- a/sysdeps/unix/sysv/linux/ia64/timer_getoverr.c
> +++ /dev/null
> @@ -1 +0,0 @@
> -#include <sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c>
Ok.
> diff --git a/sysdeps/unix/sysv/linux/kernel-posix-timers.h b/sysdeps/unix/sysv/linux/kernel-posix-timers.h
> index 99a2937458..a976b028e0 100644
> --- a/sysdeps/unix/sysv/linux/kernel-posix-timers.h
> +++ b/sysdeps/unix/sysv/linux/kernel-posix-timers.h
> @@ -52,6 +52,8 @@ extern __typeof (timer_create) __timer_create;
> libc_hidden_proto (__timer_create)
> extern __typeof (timer_delete) __timer_delete;
> libc_hidden_proto (__timer_delete)
> +extern __typeof (timer_getoverrun) __timer_getoverrun;
> +libc_hidden_proto (__timer_getoverrun)
>
> /* Type of timers in the kernel. */
> typedef int kernel_timer_t;
Ok.
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index e7c0a81f37..a8d6ad9a4f 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -437,6 +437,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> @@ -2334,6 +2335,7 @@ GLIBC_2.4 timegm F
> GLIBC_2.4 timelocal F
> GLIBC_2.4 timer_create F
> GLIBC_2.4 timer_delete F
> +GLIBC_2.4 timer_getoverrun F
> GLIBC_2.4 times F
> GLIBC_2.4 timezone D 0x4
> GLIBC_2.4 tmpfile F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> index 0887259367..78152d8fa3 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> @@ -1,6 +1,5 @@
> GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> -GLIBC_2.4 timer_getoverrun F
> GLIBC_2.4 timer_gettime F
> GLIBC_2.4 timer_settime F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index b82f6366ee..62590726a8 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -2064,6 +2064,7 @@ GLIBC_2.2 swprintf F
> GLIBC_2.2 swscanf F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> +GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 ungetwc F
> GLIBC_2.2 versionsort64 F
> GLIBC_2.2 vfwprintf F
> @@ -2635,6 +2636,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> index 1268c7fc38..f04b1e7978 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index 3f9dfa7664..3fd1621454 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -2012,6 +2012,7 @@ GLIBC_2.18 timegm F
> GLIBC_2.18 timelocal F
> GLIBC_2.18 timer_create F
> GLIBC_2.18 timer_delete F
> +GLIBC_2.18 timer_getoverrun F
> GLIBC_2.18 timerfd_create F
> GLIBC_2.18 timerfd_gettime F
> GLIBC_2.18 timerfd_settime F
> @@ -2606,6 +2607,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> index 2efee3a326..f308a63244 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.18 timer_getoverrun F
> GLIBC_2.18 timer_gettime F
> GLIBC_2.18 timer_settime F
> GLIBC_2.34 __timer_gettime64 F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index bb2fd6251f..2b839a784d 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -2012,6 +2012,7 @@ GLIBC_2.18 timegm F
> GLIBC_2.18 timelocal F
> GLIBC_2.18 timer_create F
> GLIBC_2.18 timer_delete F
> +GLIBC_2.18 timer_getoverrun F
> GLIBC_2.18 timerfd_create F
> GLIBC_2.18 timerfd_gettime F
> GLIBC_2.18 timerfd_settime F
> @@ -2603,6 +2604,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> index 2efee3a326..f308a63244 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.18 timer_getoverrun F
> GLIBC_2.18 timer_gettime F
> GLIBC_2.18 timer_settime F
> GLIBC_2.34 __timer_gettime64 F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index 938142fb4a..ac623acbd3 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -1995,6 +1995,7 @@ GLIBC_2.2 tcgetsid F
> GLIBC_2.2 tdestroy F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> +GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 tmpfile F
> GLIBC_2.2 tmpfile64 F
> GLIBC_2.2 truncate64 F
> @@ -2600,6 +2601,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> index dbc81ebe4b..af07e28f55 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index d62382883b..776b30b48a 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -1993,6 +1993,7 @@ GLIBC_2.2 tcgetsid F
> GLIBC_2.2 tdestroy F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> +GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 tmpfile F
> GLIBC_2.2 tmpfile64 F
> GLIBC_2.2 truncate64 F
> @@ -2598,6 +2599,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index 28a8a5d294..1ffaa8e684 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -1991,6 +1991,7 @@ GLIBC_2.2 tcgetsid F
> GLIBC_2.2 tdestroy F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> +GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 tmpfile F
> GLIBC_2.2 tmpfile64 F
> GLIBC_2.2 truncate64 F
> @@ -2606,6 +2607,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> index dbc81ebe4b..af07e28f55 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index 6748f9beef..b0c5d0a636 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -1987,6 +1987,7 @@ GLIBC_2.2 tcgetsid F
> GLIBC_2.2 tdestroy F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> +GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 tmpfile F
> GLIBC_2.2 tmpfile64 F
> GLIBC_2.2 truncate64 F
> @@ -2521,6 +2522,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> index 00fd77bbab..a92565949e 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index 03d13e5ee1..77778d11f3 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -2054,6 +2054,7 @@ GLIBC_2.21 timegm F
> GLIBC_2.21 timelocal F
> GLIBC_2.21 timer_create F
> GLIBC_2.21 timer_delete F
> +GLIBC_2.21 timer_getoverrun F
> GLIBC_2.21 timerfd_create F
> GLIBC_2.21 timerfd_gettime F
> GLIBC_2.21 timerfd_settime F
> @@ -2645,6 +2646,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
> index a83ae32d03..8ab5ece2b0 100644
> --- a/sysdeps/unix/sysv/linux/nios2/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/librt.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.21 timer_getoverrun F
> GLIBC_2.21 timer_gettime F
> GLIBC_2.21 timer_settime F
> GLIBC_2.34 __timer_gettime64 F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index c9a45ecb17..5562012575 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -2069,6 +2069,7 @@ GLIBC_2.2 swprintf F
> GLIBC_2.2 swscanf F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> +GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 ungetwc F
> GLIBC_2.2 vfwprintf F
> GLIBC_2.2 vfwscanf F
> @@ -2662,6 +2663,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> index 1268c7fc38..f04b1e7978 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index c7fbc347a1..f0adf7b58b 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -2073,6 +2073,7 @@ GLIBC_2.2 swprintf F
> GLIBC_2.2 swscanf F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> +GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 ungetwc F
> GLIBC_2.2 vfwprintf F
> GLIBC_2.2 vfwscanf F
> @@ -2695,6 +2696,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions b/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions
> index 4eb22c11ac..a69927d41d 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions
> @@ -29,7 +29,7 @@ libc {
> librt {
> GLIBC_2.3.3 {
> # Changed timer_t.
> - timer_getoverrun; timer_gettime;
> + timer_gettime;
> timer_settime;
> }
> }
Ok.
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index fb5eb9c67e..e74ecec60f 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -1888,6 +1888,7 @@ GLIBC_2.3 timegm F
> GLIBC_2.3 timelocal F
> GLIBC_2.3 timer_create F
> GLIBC_2.3 timer_delete F
> +GLIBC_2.3 timer_getoverrun F
> GLIBC_2.3 times F
> GLIBC_2.3 timezone D 0x8
> GLIBC_2.3 tmpfile F
> @@ -2166,6 +2167,7 @@ GLIBC_2.3.3 sys_sigabbrev D 0x208
> GLIBC_2.3.3 sys_siglist D 0x208
> GLIBC_2.3.3 timer_create F
> GLIBC_2.3.3 timer_delete F
> +GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.4 __chk_fail F
> GLIBC_2.3.4 __fprintf_chk F
> GLIBC_2.3.4 __gets_chk F
> @@ -2431,6 +2433,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> index 914203b043..dd8b2ad6ef 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> @@ -1,7 +1,5 @@
> -GLIBC_2.3 timer_getoverrun F
> GLIBC_2.3 timer_gettime F
> GLIBC_2.3 timer_settime F
> -GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index b89256aba0..2a0c06b881 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -2096,6 +2096,7 @@ GLIBC_2.17 timegm F
> GLIBC_2.17 timelocal F
> GLIBC_2.17 timer_create F
> GLIBC_2.17 timer_delete F
> +GLIBC_2.17 timer_getoverrun F
> GLIBC_2.17 timerfd_create F
> GLIBC_2.17 timerfd_gettime F
> GLIBC_2.17 timerfd_settime F
> @@ -2729,6 +2730,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> index 34768d1472..493768f440 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> @@ -1,3 +1,2 @@
> -GLIBC_2.17 timer_getoverrun F
> GLIBC_2.17 timer_gettime F
> GLIBC_2.17 timer_settime F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_getoverr.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_getoverr.c
> deleted file mode 100644
> index 22eaff5cda..0000000000
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_getoverr.c
> +++ /dev/null
> @@ -1 +0,0 @@
> -#include <sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c>
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index c653f52373..3e0e33bbb3 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -1952,6 +1952,7 @@ GLIBC_2.33 timegm F
> GLIBC_2.33 timelocal F
> GLIBC_2.33 timer_create F
> GLIBC_2.33 timer_delete F
> +GLIBC_2.33 timer_getoverrun F
> GLIBC_2.33 timerfd_create F
> GLIBC_2.33 timerfd_gettime F
> GLIBC_2.33 timerfd_settime F
> @@ -2294,6 +2295,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> index 09bbee0960..de338094e1 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> @@ -1,3 +1,2 @@
> -GLIBC_2.33 timer_getoverrun F
> GLIBC_2.33 timer_gettime F
> GLIBC_2.33 timer_settime F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index 711484eee5..1092e5a170 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -2018,6 +2018,7 @@ GLIBC_2.27 timegm F
> GLIBC_2.27 timelocal F
> GLIBC_2.27 timer_create F
> GLIBC_2.27 timer_delete F
> +GLIBC_2.27 timer_getoverrun F
> GLIBC_2.27 timerfd_create F
> GLIBC_2.27 timerfd_gettime F
> GLIBC_2.27 timerfd_settime F
> @@ -2494,6 +2495,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> index 8e1d8b21fe..624ab969d8 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> @@ -1,3 +1,2 @@
> -GLIBC_2.27 timer_getoverrun F
> GLIBC_2.27 timer_gettime F
> GLIBC_2.27 timer_settime F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index 4040312275..710cafe7c0 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -2067,6 +2067,7 @@ GLIBC_2.2 swprintf F
> GLIBC_2.2 swscanf F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> +GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 ungetwc F
> GLIBC_2.2 versionsort64 F
> GLIBC_2.2 vfwprintf F
> @@ -2660,6 +2661,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> index 1268c7fc38..f04b1e7978 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/Versions b/sysdeps/unix/sysv/linux/s390/s390-64/Versions
> index 5989ac75a9..e7f968fcdf 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/Versions
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/Versions
> @@ -9,7 +9,7 @@ libc {
> librt {
> GLIBC_2.3.3 {
> # Changed timer_t.
> - timer_getoverrun; timer_gettime;
> + timer_gettime;
> timer_settime;
> }
> }
Ok.
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index 4cf6a5ea09..6b2c7e7d68 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -1763,6 +1763,7 @@ GLIBC_2.2 timegm F
> GLIBC_2.2 timelocal F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> +GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 times F
> GLIBC_2.2 timezone D 0x8
> GLIBC_2.2 tmpfile F
> @@ -2212,6 +2213,7 @@ GLIBC_2.3.3 sys_sigabbrev D 0x208
> GLIBC_2.3.3 sys_siglist D 0x208
> GLIBC_2.3.3 timer_create F
> GLIBC_2.3.3 timer_delete F
> +GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.4 __chk_fail F
> GLIBC_2.3.4 __fprintf_chk F
> GLIBC_2.3.4 __gets_chk F
> @@ -2468,6 +2470,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> index 34e8d31133..35dc39d27d 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> @@ -1,7 +1,5 @@
> -GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> -GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/timer_getoverr.c b/sysdeps/unix/sysv/linux/s390/s390-64/timer_getoverr.c
> deleted file mode 100644
> index 22eaff5cda..0000000000
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/timer_getoverr.c
> +++ /dev/null
> @@ -1 +0,0 @@
> -#include <sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c>
Ok.
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index 6fd93a5445..51a493aadb 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -1750,6 +1750,7 @@ GLIBC_2.2 timegm F
> GLIBC_2.2 timelocal F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> +GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 times F
> GLIBC_2.2 timezone D 0x4
> GLIBC_2.2 tmpfile F
> @@ -2515,6 +2516,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> index 1268c7fc38..f04b1e7978 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index c5c41bf0e6..cb37ba55cb 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -1750,6 +1750,7 @@ GLIBC_2.2 timegm F
> GLIBC_2.2 timelocal F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> +GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 times F
> GLIBC_2.2 timezone D 0x4
> GLIBC_2.2 tmpfile F
> @@ -2512,6 +2513,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> index 1268c7fc38..f04b1e7978 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index 132470d40b..05b4e88794 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -2062,6 +2062,7 @@ GLIBC_2.2 swprintf F
> GLIBC_2.2 swscanf F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> +GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 ungetwc F
> GLIBC_2.2 vfwprintf F
> GLIBC_2.2 vfwscanf F
> @@ -2655,6 +2656,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> index d8ff3b0988..0de56c2c15 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> @@ -1,5 +1,4 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> GLIBC_2.3 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/Versions b/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
> index 358081399a..d04738fafc 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
> @@ -14,7 +14,7 @@ libc {
> librt {
> GLIBC_2.3.3 {
> # Changed timer_t.
> - timer_getoverrun; timer_gettime;
> + timer_gettime;
> timer_settime;
> }
> }
Ok.
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index 6ee552611b..72591794e8 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -1793,6 +1793,7 @@ GLIBC_2.2 timegm F
> GLIBC_2.2 timelocal F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> +GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 times F
> GLIBC_2.2 timezone D 0x8
> GLIBC_2.2 tmpfile F
> @@ -2246,6 +2247,7 @@ GLIBC_2.3.3 sys_sigabbrev D 0x208
> GLIBC_2.3.3 sys_siglist D 0x208
> GLIBC_2.3.3 timer_create F
> GLIBC_2.3.3 timer_delete F
> +GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.4 __chk_fail F
> GLIBC_2.3.4 __fprintf_chk F
> GLIBC_2.3.4 __gets_chk F
> @@ -2490,6 +2492,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> index 3b744cf5a1..34d42d122b 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> @@ -1,9 +1,7 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_getoverrun F
> GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> GLIBC_2.3 __librt_version_placeholder F
> -GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/timer_getoverr.c b/sysdeps/unix/sysv/linux/sparc/sparc64/timer_getoverr.c
> deleted file mode 100644
> index 22eaff5cda..0000000000
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/timer_getoverr.c
> +++ /dev/null
> @@ -1 +0,0 @@
> -#include <sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c>
Ok.
> diff --git a/sysdeps/unix/sysv/linux/timer_getoverr.c b/sysdeps/unix/sysv/linux/timer_getoverr.c
> index b997290768..accec3757d 100644
> --- a/sysdeps/unix/sysv/linux/timer_getoverr.c
> +++ b/sysdeps/unix/sysv/linux/timer_getoverr.c
> @@ -20,17 +20,33 @@
> #include <time.h>
> #include <sysdep.h>
> #include <kernel-posix-timers.h>
> -
> -
> -#ifdef timer_getoverrun_alias
> -# define timer_getoverrun timer_getoverrun_alias
> -#endif
> -
> +#include <shlib-compat.h>
>
> int
> -timer_getoverrun (timer_t timerid)
> +___timer_getoverrun (timer_t timerid)
> {
> -#undef timer_getoverrun
> kernel_timer_t ktimerid = timerid_to_kernel_timer (timerid);
> return INLINE_SYSCALL_CALL (timer_getoverrun, ktimerid);
> }
> +versioned_symbol (libc, ___timer_getoverrun, timer_getoverrun, GLIBC_2_34);
> +libc_hidden_ver (___timer_getoverrun, __timer_getoverrun)
> +
> +#if TIMER_T_WAS_INT_COMPAT
> +# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_3_3, GLIBC_2_34)
> +compat_symbol (librt, ___timer_getoverrun, timer_getoverrun, GLIBC_2_3_3);
> +# endif
> +
> +# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_3_3)
> +int
> +__timer_getoverrun_old (int timerid)
> +{
> + return __timer_getoverrun (__timer_compat_list[timerid]);
> +}
> +compat_symbol (librt, __timer_getoverrun_old, timer_getoverrun, GLIBC_2_2);
> +# endif /* OTHER_SHLIB_COMPAT */
> +
> +#else /* !TIMER_T_WAS_INT_COMPAT */
> +# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_34)
> +compat_symbol (librt, ___timer_getoverrun, timer_getoverrun, GLIBC_2_2);
> +# endif
> +#endif /* !TIMER_T_WAS_INT_COMPAT */
Ok.
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index 377d35a04f..92f4369765 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -1762,6 +1762,7 @@ GLIBC_2.2.5 timegm F
> GLIBC_2.2.5 timelocal F
> GLIBC_2.2.5 timer_create F
> GLIBC_2.2.5 timer_delete F
> +GLIBC_2.2.5 timer_getoverrun F
> GLIBC_2.2.5 times F
> GLIBC_2.2.5 timezone D 0x8
> GLIBC_2.2.5 tmpfile F
> @@ -2200,6 +2201,7 @@ GLIBC_2.3.3 sys_sigabbrev D 0x208
> GLIBC_2.3.3 sys_siglist D 0x208
> GLIBC_2.3.3 timer_create F
> GLIBC_2.3.3 timer_delete F
> +GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.4 __chk_fail F
> GLIBC_2.3.4 __fprintf_chk F
> GLIBC_2.3.4 __gets_chk F
> @@ -2446,6 +2448,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> index 13a2bf2022..379fa6930c 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> @@ -1,7 +1,5 @@
> -GLIBC_2.2.5 timer_getoverrun F
> GLIBC_2.2.5 timer_gettime F
> GLIBC_2.2.5 timer_settime F
> -GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/Versions b/sysdeps/unix/sysv/linux/x86_64/Versions
> index c4d1c5fb79..a97b6c7413 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/Versions
> +++ b/sysdeps/unix/sysv/linux/x86_64/Versions
> @@ -11,7 +11,7 @@ libc {
> librt {
> GLIBC_2.3.3 {
> # Changed timer_t.
> - timer_getoverrun; timer_gettime;
> + timer_gettime;
> timer_settime;
> }
> }
Ok.
> diff --git a/sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c b/sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c
> deleted file mode 100644
> index fb6e631a00..0000000000
> --- a/sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c
> +++ /dev/null
> @@ -1,38 +0,0 @@
> -/* Copyright (C) 2003-2021 Free Software Foundation, Inc.
> - This file is part of the GNU C Library.
> - Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
> -
> - 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; see the file COPYING.LIB. If
> - not, see <https://www.gnu.org/licenses/>. */
> -
> -#include <shlib-compat.h>
> -#include "compat-timer.h"
> -
> -
> -#define timer_getoverrun_alias __timer_getoverrun_new
> -#include <sysdeps/unix/sysv/linux/timer_getoverr.c>
> -
> -#undef timer_getoverrun
> -versioned_symbol (librt, __timer_getoverrun_new, timer_getoverrun,
> - GLIBC_2_3_3);
> -
> -
> -#if SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_3_3)
> -int
> -__timer_getoverrun_old (int timerid)
> -{
> - return __timer_getoverrun_new (__timer_compat_list[timerid]);
> -}
> -compat_symbol (librt, __timer_getoverrun_old, timer_getoverrun, GLIBC_2_2);
> -#endif
Ok.
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index 620f35836c..25b177fda0 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -2013,6 +2013,7 @@ GLIBC_2.16 timegm F
> GLIBC_2.16 timelocal F
> GLIBC_2.16 timer_create F
> GLIBC_2.16 timer_delete F
> +GLIBC_2.16 timer_getoverrun F
> GLIBC_2.16 timerfd_create F
> GLIBC_2.16 timerfd_gettime F
> GLIBC_2.16 timerfd_settime F
> @@ -2548,6 +2549,7 @@ GLIBC_2.34 thrd_exit F
> GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> +GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> index 4b3e816fdd..0b969910ba 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> @@ -1,3 +1,2 @@
> -GLIBC_2.16 timer_getoverrun F
> GLIBC_2.16 timer_gettime F
> GLIBC_2.16 timer_settime F
>
Ok.
^ permalink raw reply [flat|nested] 72+ messages in thread
* [PATCH 32/34] Linux: Move timer_gettime, __timer_gettime64 from librt to libc
2021-06-17 18:56 [PATCH v2 00/34] Move librt into libc Florian Weimer
` (30 preceding siblings ...)
2021-06-17 18:59 ` [PATCH 31/34] Linux: Move timer_getoverrun " Florian Weimer
@ 2021-06-17 18:59 ` Florian Weimer
2021-06-24 17:36 ` Adhemerval Zanella
2021-06-17 18:59 ` [PATCH 33/34] Linux: Move timer_settime, __timer_settime64 " Florian Weimer
` (2 subsequent siblings)
34 siblings, 1 reply; 72+ messages in thread
From: Florian Weimer @ 2021-06-17 18:59 UTC (permalink / raw)
To: libc-alpha
The symbols were moved using scripts/move-symbol-to-libc.py.
The way the ABI intransition is implemented is changed with this
commit: the implementation is now consolidated in one file with a
TIMER_T_WAS_INT_COMPAT check.
---
include/time.h | 6 +-
rt/Makefile | 2 +-
rt/Versions | 4 +-
sysdeps/unix/sysv/linux/Versions | 3 +-
sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 +
sysdeps/unix/sysv/linux/aarch64/librt.abilist | 1 -
sysdeps/unix/sysv/linux/alpha/Versions | 1 -
sysdeps/unix/sysv/linux/alpha/libc.abilist | 3 +
sysdeps/unix/sysv/linux/alpha/librt.abilist | 2 -
sysdeps/unix/sysv/linux/alpha/timer_gettime.c | 1 -
sysdeps/unix/sysv/linux/arc/libc.abilist | 2 +
sysdeps/unix/sysv/linux/arc/librt.abilist | 1 -
sysdeps/unix/sysv/linux/arm/be/libc.abilist | 3 +
sysdeps/unix/sysv/linux/arm/be/librt.abilist | 2 -
sysdeps/unix/sysv/linux/arm/le/libc.abilist | 3 +
sysdeps/unix/sysv/linux/arm/le/librt.abilist | 2 -
sysdeps/unix/sysv/linux/csky/libc.abilist | 3 +
sysdeps/unix/sysv/linux/csky/librt.abilist | 2 -
sysdeps/unix/sysv/linux/hppa/libc.abilist | 3 +
sysdeps/unix/sysv/linux/hppa/librt.abilist | 2 -
sysdeps/unix/sysv/linux/i386/libc.abilist | 3 +
sysdeps/unix/sysv/linux/i386/librt.abilist | 2 -
sysdeps/unix/sysv/linux/ia64/Versions | 1 -
sysdeps/unix/sysv/linux/ia64/libc.abilist | 3 +
sysdeps/unix/sysv/linux/ia64/librt.abilist | 2 -
sysdeps/unix/sysv/linux/ia64/timer_gettime.c | 1 -
.../sysv/linux/m68k/coldfire/libc.abilist | 3 +
.../sysv/linux/m68k/coldfire/librt.abilist | 2 -
.../unix/sysv/linux/m68k/m680x0/libc.abilist | 3 +
.../unix/sysv/linux/m68k/m680x0/librt.abilist | 2 -
.../sysv/linux/microblaze/be/libc.abilist | 3 +
.../sysv/linux/microblaze/be/librt.abilist | 2 -
.../sysv/linux/microblaze/le/libc.abilist | 3 +
.../sysv/linux/microblaze/le/librt.abilist | 2 -
.../sysv/linux/mips/mips32/fpu/libc.abilist | 3 +
.../unix/sysv/linux/mips/mips32/librt.abilist | 2 -
.../sysv/linux/mips/mips32/nofpu/libc.abilist | 3 +
.../sysv/linux/mips/mips64/n32/libc.abilist | 3 +
.../sysv/linux/mips/mips64/n32/librt.abilist | 2 -
.../sysv/linux/mips/mips64/n64/libc.abilist | 2 +
.../sysv/linux/mips/mips64/n64/librt.abilist | 1 -
sysdeps/unix/sysv/linux/nios2/libc.abilist | 3 +
sysdeps/unix/sysv/linux/nios2/librt.abilist | 2 -
.../linux/powerpc/powerpc32/fpu/libc.abilist | 3 +
.../linux/powerpc/powerpc32/librt.abilist | 2 -
.../powerpc/powerpc32/nofpu/libc.abilist | 3 +
.../sysv/linux/powerpc/powerpc64/Versions | 1 -
.../linux/powerpc/powerpc64/be/libc.abilist | 3 +
.../linux/powerpc/powerpc64/be/librt.abilist | 2 -
.../linux/powerpc/powerpc64/le/libc.abilist | 2 +
.../linux/powerpc/powerpc64/le/librt.abilist | 1 -
.../linux/powerpc/powerpc64/timer_gettime.c | 1 -
.../unix/sysv/linux/riscv/rv32/libc.abilist | 2 +
.../unix/sysv/linux/riscv/rv32/librt.abilist | 1 -
.../unix/sysv/linux/riscv/rv64/libc.abilist | 2 +
.../unix/sysv/linux/riscv/rv64/librt.abilist | 1 -
.../unix/sysv/linux/s390/s390-32/libc.abilist | 3 +
.../sysv/linux/s390/s390-32/librt.abilist | 2 -
sysdeps/unix/sysv/linux/s390/s390-64/Versions | 1 -
.../unix/sysv/linux/s390/s390-64/libc.abilist | 3 +
.../sysv/linux/s390/s390-64/librt.abilist | 2 -
.../sysv/linux/s390/s390-64/timer_gettime.c | 1 -
sysdeps/unix/sysv/linux/sh/be/libc.abilist | 3 +
sysdeps/unix/sysv/linux/sh/be/librt.abilist | 2 -
sysdeps/unix/sysv/linux/sh/le/libc.abilist | 3 +
sysdeps/unix/sysv/linux/sh/le/librt.abilist | 2 -
.../sysv/linux/sparc/sparc32/libc.abilist | 3 +
.../sysv/linux/sparc/sparc32/librt.abilist | 2 -
.../unix/sysv/linux/sparc/sparc64/Versions | 1 -
.../sysv/linux/sparc/sparc64/libc.abilist | 3 +
.../sysv/linux/sparc/sparc64/librt.abilist | 2 -
.../sysv/linux/sparc/sparc64/timer_gettime.c | 1 -
sysdeps/unix/sysv/linux/timer_gettime.c | 63 ++++++++++++++++---
.../unix/sysv/linux/x86_64/64/libc.abilist | 3 +
.../unix/sysv/linux/x86_64/64/librt.abilist | 2 -
sysdeps/unix/sysv/linux/x86_64/Versions | 1 -
.../unix/sysv/linux/x86_64/timer_gettime.c | 41 ------------
.../unix/sysv/linux/x86_64/x32/libc.abilist | 2 +
.../unix/sysv/linux/x86_64/x32/librt.abilist | 1 -
79 files changed, 153 insertions(+), 119 deletions(-)
delete mode 100644 sysdeps/unix/sysv/linux/alpha/timer_gettime.c
delete mode 100644 sysdeps/unix/sysv/linux/ia64/timer_gettime.c
delete mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_gettime.c
delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-64/timer_gettime.c
delete mode 100644 sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c
delete mode 100644 sysdeps/unix/sysv/linux/x86_64/timer_gettime.c
diff --git a/include/time.h b/include/time.h
index 980c6bd924..3f4ff44ac3 100644
--- a/include/time.h
+++ b/include/time.h
@@ -218,7 +218,11 @@ libc_hidden_proto (__futimens64);
#else
extern int __timer_gettime64 (timer_t timerid, struct __itimerspec64 *value);
extern int __timerfd_gettime64 (int fd, struct __itimerspec64 *value);
-librt_hidden_proto (__timer_gettime64);
+# if PTHREAD_IN_LIBC
+libc_hidden_proto (__timer_gettime64)
+# else
+librt_hidden_proto (__timer_gettime64)
+# endif
libc_hidden_proto (__timerfd_gettime64);
#endif
diff --git a/rt/Makefile b/rt/Makefile
index 1eadb94ea8..e2ef5f4b0b 100644
--- a/rt/Makefile
+++ b/rt/Makefile
@@ -30,7 +30,6 @@ routines = \
librt-routines = \
librt-compat \
- timer_gettime \
timer_settime \
librt-shared-only-routines = librt-compat
@@ -63,6 +62,7 @@ $(librt-routines-var) += \
timer_create \
timer_delete \
timer_getoverr \
+ timer_gettime \
tests := tst-shm tst-timer tst-timer2 \
tst-aio tst-aio64 tst-aio2 tst-aio3 tst-aio4 tst-aio5 tst-aio6 \
diff --git a/rt/Versions b/rt/Versions
index de78be15dc..d1f05af013 100644
--- a/rt/Versions
+++ b/rt/Versions
@@ -25,6 +25,7 @@ libc {
timer_create;
timer_delete;
timer_getoverrun;
+ timer_gettime;
%endif
shm_open;
shm_unlink;
@@ -87,6 +88,7 @@ libc {
timer_create;
timer_delete;
timer_getoverrun;
+ timer_gettime;
%endif
shm_open;
shm_unlink;
@@ -134,8 +136,8 @@ librt {
timer_create;
timer_delete;
timer_getoverrun;
-%endif
timer_gettime;
+%endif
timer_settime;
}
GLIBC_2.3.4 {
diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions
index 31fb4a437b..9bb9d955a5 100644
--- a/sysdeps/unix/sysv/linux/Versions
+++ b/sysdeps/unix/sysv/linux/Versions
@@ -126,6 +126,7 @@ libc {
timer_create;
timer_delete;
timer_getoverrun;
+ timer_gettime;
}
GLIBC_2.3.4 {
sched_getaffinity; sched_setaffinity;
@@ -267,6 +268,7 @@ libc {
__thrd_sleep64;
__time64;
__timegm64;
+ __timer_gettime64;
__timerfd_gettime64;
__timerfd_settime64;
__timespec_get64;
@@ -308,7 +310,6 @@ librt {
GLIBC_2.34 {
%ifdef TIME64_NON_DEFAULT
# 64-bit time_t support
- __timer_gettime64;
__timer_settime64;
%endif
}
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 9426bbe3f8..23130c3c9e 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -2009,6 +2009,7 @@ GLIBC_2.17 timelocal F
GLIBC_2.17 timer_create F
GLIBC_2.17 timer_delete F
GLIBC_2.17 timer_getoverrun F
+GLIBC_2.17 timer_gettime F
GLIBC_2.17 timerfd_create F
GLIBC_2.17 timerfd_gettime F
GLIBC_2.17 timerfd_settime F
@@ -2535,6 +2536,7 @@ GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
index 493768f440..2cb1369ddb 100644
--- a/sysdeps/unix/sysv/linux/aarch64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
@@ -1,2 +1 @@
-GLIBC_2.17 timer_gettime F
GLIBC_2.17 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/alpha/Versions b/sysdeps/unix/sysv/linux/alpha/Versions
index dd5b365d77..0359822d6d 100644
--- a/sysdeps/unix/sysv/linux/alpha/Versions
+++ b/sysdeps/unix/sysv/linux/alpha/Versions
@@ -104,7 +104,6 @@ librt {
}
GLIBC_2.3.3 {
# Changed timer_t.
- timer_gettime;
timer_settime;
}
}
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 50ab6f3fc1..1f2fff3443 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -2096,6 +2096,7 @@ GLIBC_2.2 swscanf F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
+GLIBC_2.2 timer_gettime F
GLIBC_2.2 ungetwc F
GLIBC_2.2 vfwprintf F
GLIBC_2.2 vfwscanf F
@@ -2359,6 +2360,7 @@ GLIBC_2.3.3 sys_siglist D 0x208
GLIBC_2.3.3 timer_create F
GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
+GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.4 _OtsAddX F
GLIBC_2.3.4 _OtsConvertFloatTX F
GLIBC_2.3.4 _OtsConvertFloatXT F
@@ -2632,6 +2634,7 @@ GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
index 34d42d122b..a2de1ecd94 100644
--- a/sysdeps/unix/sysv/linux/alpha/librt.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist
@@ -1,8 +1,6 @@
GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
GLIBC_2.3 __librt_version_placeholder F
-GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
GLIBC_2.3.4 __librt_version_placeholder F
GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/alpha/timer_gettime.c b/sysdeps/unix/sysv/linux/alpha/timer_gettime.c
deleted file mode 100644
index cea524bae5..0000000000
--- a/sysdeps/unix/sysv/linux/alpha/timer_gettime.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/x86_64/timer_gettime.c>
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index aafc056267..8ece5c40fb 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1943,6 +1943,7 @@ GLIBC_2.32 timelocal F
GLIBC_2.32 timer_create F
GLIBC_2.32 timer_delete F
GLIBC_2.32 timer_getoverrun F
+GLIBC_2.32 timer_gettime F
GLIBC_2.32 timerfd_create F
GLIBC_2.32 timerfd_gettime F
GLIBC_2.32 timerfd_settime F
@@ -2294,6 +2295,7 @@ GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
index 14ae3d7c65..0023244be6 100644
--- a/sysdeps/unix/sysv/linux/arc/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arc/librt.abilist
@@ -1,2 +1 @@
-GLIBC_2.32 timer_gettime F
GLIBC_2.32 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index ac73d766ba..515c3a224a 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -271,6 +271,7 @@ GLIBC_2.34 __stat64_time64 F
GLIBC_2.34 __thrd_sleep64 F
GLIBC_2.34 __time64 F
GLIBC_2.34 __timegm64 F
+GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timerfd_gettime64 F
GLIBC_2.34 __timerfd_settime64 F
GLIBC_2.34 __timespec_get64 F
@@ -437,6 +438,7 @@ GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
@@ -2356,6 +2358,7 @@ GLIBC_2.4 timelocal F
GLIBC_2.4 timer_create F
GLIBC_2.4 timer_delete F
GLIBC_2.4 timer_getoverrun F
+GLIBC_2.4 timer_gettime F
GLIBC_2.4 times F
GLIBC_2.4 timezone D 0x4
GLIBC_2.4 tmpfile F
diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
index 78152d8fa3..2f84162558 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
-GLIBC_2.4 timer_gettime F
GLIBC_2.4 timer_settime F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 96ad967292..7b7ca7d348 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -268,6 +268,7 @@ GLIBC_2.34 __stat64_time64 F
GLIBC_2.34 __thrd_sleep64 F
GLIBC_2.34 __time64 F
GLIBC_2.34 __timegm64 F
+GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timerfd_gettime64 F
GLIBC_2.34 __timerfd_settime64 F
GLIBC_2.34 __timespec_get64 F
@@ -434,6 +435,7 @@ GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
@@ -2353,6 +2355,7 @@ GLIBC_2.4 timelocal F
GLIBC_2.4 timer_create F
GLIBC_2.4 timer_delete F
GLIBC_2.4 timer_getoverrun F
+GLIBC_2.4 timer_gettime F
GLIBC_2.4 times F
GLIBC_2.4 timezone D 0x4
GLIBC_2.4 tmpfile F
diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
index 78152d8fa3..2f84162558 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
-GLIBC_2.4 timer_gettime F
GLIBC_2.4 timer_settime F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 980ac9c497..d53acb2c08 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -2033,6 +2033,7 @@ GLIBC_2.29 timelocal F
GLIBC_2.29 timer_create F
GLIBC_2.29 timer_delete F
GLIBC_2.29 timer_getoverrun F
+GLIBC_2.29 timer_gettime F
GLIBC_2.29 timerfd_create F
GLIBC_2.29 timerfd_gettime F
GLIBC_2.29 timerfd_settime F
@@ -2391,6 +2392,7 @@ GLIBC_2.34 __stat64_time64 F
GLIBC_2.34 __thrd_sleep64 F
GLIBC_2.34 __time64 F
GLIBC_2.34 __timegm64 F
+GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timerfd_gettime64 F
GLIBC_2.34 __timerfd_settime64 F
GLIBC_2.34 __timespec_get64 F
@@ -2557,6 +2559,7 @@ GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
index 9f89eb4e8b..52b2819a7d 100644
--- a/sysdeps/unix/sysv/linux/csky/librt.abilist
+++ b/sysdeps/unix/sysv/linux/csky/librt.abilist
@@ -1,4 +1,2 @@
-GLIBC_2.29 timer_gettime F
GLIBC_2.29 timer_settime F
-GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 0e6e1444d6..a592e3f628 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -1747,6 +1747,7 @@ GLIBC_2.2 timelocal F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
+GLIBC_2.2 timer_gettime F
GLIBC_2.2 times F
GLIBC_2.2 timezone D 0x4
GLIBC_2.2 tmpfile F
@@ -2344,6 +2345,7 @@ GLIBC_2.34 __stat64_time64 F
GLIBC_2.34 __thrd_sleep64 F
GLIBC_2.34 __time64 F
GLIBC_2.34 __timegm64 F
+GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timerfd_gettime64 F
GLIBC_2.34 __timerfd_settime64 F
GLIBC_2.34 __timespec_get64 F
@@ -2510,6 +2512,7 @@ GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
index f04b1e7978..179d1d53da 100644
--- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
@@ -1,8 +1,6 @@
GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
GLIBC_2.3.4 __librt_version_placeholder F
-GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index d8693b0c7b..bd3824cb88 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -2109,6 +2109,7 @@ GLIBC_2.2 swscanf F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
+GLIBC_2.2 timer_gettime F
GLIBC_2.2 ungetwc F
GLIBC_2.2 versionsort64 F
GLIBC_2.2 vfwprintf F
@@ -2528,6 +2529,7 @@ GLIBC_2.34 __stat64_time64 F
GLIBC_2.34 __thrd_sleep64 F
GLIBC_2.34 __time64 F
GLIBC_2.34 __timegm64 F
+GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timerfd_gettime64 F
GLIBC_2.34 __timerfd_settime64 F
GLIBC_2.34 __timespec_get64 F
@@ -2694,6 +2696,7 @@ GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
index f04b1e7978..179d1d53da 100644
--- a/sysdeps/unix/sysv/linux/i386/librt.abilist
+++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
@@ -1,8 +1,6 @@
GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
GLIBC_2.3.4 __librt_version_placeholder F
-GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/ia64/Versions b/sysdeps/unix/sysv/linux/ia64/Versions
index 1d09fca7e3..9a7faf067a 100644
--- a/sysdeps/unix/sysv/linux/ia64/Versions
+++ b/sysdeps/unix/sysv/linux/ia64/Versions
@@ -30,7 +30,6 @@ libc {
librt {
GLIBC_2.3.3 {
# Changed timer_t.
- timer_gettime;
timer_settime;
}
}
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 984b58be61..d589ce16d6 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -1768,6 +1768,7 @@ GLIBC_2.2 timelocal F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
+GLIBC_2.2 timer_gettime F
GLIBC_2.2 times F
GLIBC_2.2 timezone D 0x8
GLIBC_2.2 tmpfile F
@@ -2224,6 +2225,7 @@ GLIBC_2.3.3 sys_siglist D 0x208
GLIBC_2.3.3 timer_create F
GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
+GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.4 __chk_fail F
GLIBC_2.3.4 __fprintf_chk F
GLIBC_2.3.4 __gets_chk F
@@ -2470,6 +2472,7 @@ GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
index c56040a5f9..7d8e91b0d9 100644
--- a/sysdeps/unix/sysv/linux/ia64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/librt.abilist
@@ -1,7 +1,5 @@
GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
-GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
GLIBC_2.3.4 __librt_version_placeholder F
GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/ia64/timer_gettime.c b/sysdeps/unix/sysv/linux/ia64/timer_gettime.c
deleted file mode 100644
index cea524bae5..0000000000
--- a/sysdeps/unix/sysv/linux/ia64/timer_gettime.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/x86_64/timer_gettime.c>
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index a8d6ad9a4f..7e986dcfd5 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -272,6 +272,7 @@ GLIBC_2.34 __stat64_time64 F
GLIBC_2.34 __thrd_sleep64 F
GLIBC_2.34 __time64 F
GLIBC_2.34 __timegm64 F
+GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timerfd_gettime64 F
GLIBC_2.34 __timerfd_settime64 F
GLIBC_2.34 __timespec_get64 F
@@ -438,6 +439,7 @@ GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
@@ -2336,6 +2338,7 @@ GLIBC_2.4 timelocal F
GLIBC_2.4 timer_create F
GLIBC_2.4 timer_delete F
GLIBC_2.4 timer_getoverrun F
+GLIBC_2.4 timer_gettime F
GLIBC_2.4 times F
GLIBC_2.4 timezone D 0x4
GLIBC_2.4 tmpfile F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
index 78152d8fa3..2f84162558 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
-GLIBC_2.4 timer_gettime F
GLIBC_2.4 timer_settime F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 62590726a8..97fe827b8d 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2065,6 +2065,7 @@ GLIBC_2.2 swscanf F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
+GLIBC_2.2 timer_gettime F
GLIBC_2.2 ungetwc F
GLIBC_2.2 versionsort64 F
GLIBC_2.2 vfwprintf F
@@ -2471,6 +2472,7 @@ GLIBC_2.34 __stat64_time64 F
GLIBC_2.34 __thrd_sleep64 F
GLIBC_2.34 __time64 F
GLIBC_2.34 __timegm64 F
+GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timerfd_gettime64 F
GLIBC_2.34 __timerfd_settime64 F
GLIBC_2.34 __timespec_get64 F
@@ -2637,6 +2639,7 @@ GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
index f04b1e7978..179d1d53da 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
@@ -1,8 +1,6 @@
GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
GLIBC_2.3.4 __librt_version_placeholder F
-GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 3fd1621454..56b5f885b7 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -2013,6 +2013,7 @@ GLIBC_2.18 timelocal F
GLIBC_2.18 timer_create F
GLIBC_2.18 timer_delete F
GLIBC_2.18 timer_getoverrun F
+GLIBC_2.18 timer_gettime F
GLIBC_2.18 timerfd_create F
GLIBC_2.18 timerfd_gettime F
GLIBC_2.18 timerfd_settime F
@@ -2442,6 +2443,7 @@ GLIBC_2.34 __stat64_time64 F
GLIBC_2.34 __thrd_sleep64 F
GLIBC_2.34 __time64 F
GLIBC_2.34 __timegm64 F
+GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timerfd_gettime64 F
GLIBC_2.34 __timerfd_settime64 F
GLIBC_2.34 __timespec_get64 F
@@ -2608,6 +2610,7 @@ GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
index f308a63244..8a4faf155c 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
@@ -1,4 +1,2 @@
-GLIBC_2.18 timer_gettime F
GLIBC_2.18 timer_settime F
-GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 2b839a784d..8910180ff8 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -2013,6 +2013,7 @@ GLIBC_2.18 timelocal F
GLIBC_2.18 timer_create F
GLIBC_2.18 timer_delete F
GLIBC_2.18 timer_getoverrun F
+GLIBC_2.18 timer_gettime F
GLIBC_2.18 timerfd_create F
GLIBC_2.18 timerfd_gettime F
GLIBC_2.18 timerfd_settime F
@@ -2439,6 +2440,7 @@ GLIBC_2.34 __stat64_time64 F
GLIBC_2.34 __thrd_sleep64 F
GLIBC_2.34 __time64 F
GLIBC_2.34 __timegm64 F
+GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timerfd_gettime64 F
GLIBC_2.34 __timerfd_settime64 F
GLIBC_2.34 __timespec_get64 F
@@ -2605,6 +2607,7 @@ GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
index f308a63244..8a4faf155c 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
@@ -1,4 +1,2 @@
-GLIBC_2.18 timer_gettime F
GLIBC_2.18 timer_settime F
-GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index ac623acbd3..e81456caf7 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -1996,6 +1996,7 @@ GLIBC_2.2 tdestroy F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
+GLIBC_2.2 timer_gettime F
GLIBC_2.2 tmpfile F
GLIBC_2.2 tmpfile64 F
GLIBC_2.2 truncate64 F
@@ -2436,6 +2437,7 @@ GLIBC_2.34 __stat64_time64 F
GLIBC_2.34 __thrd_sleep64 F
GLIBC_2.34 __time64 F
GLIBC_2.34 __timegm64 F
+GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timerfd_gettime64 F
GLIBC_2.34 __timerfd_settime64 F
GLIBC_2.34 __timespec_get64 F
@@ -2602,6 +2604,7 @@ GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
index af07e28f55..211a60584c 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
@@ -1,7 +1,5 @@
-GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
GLIBC_2.3.4 __librt_version_placeholder F
-GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 776b30b48a..ecbad99217 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -1994,6 +1994,7 @@ GLIBC_2.2 tdestroy F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
+GLIBC_2.2 timer_gettime F
GLIBC_2.2 tmpfile F
GLIBC_2.2 tmpfile64 F
GLIBC_2.2 truncate64 F
@@ -2434,6 +2435,7 @@ GLIBC_2.34 __stat64_time64 F
GLIBC_2.34 __thrd_sleep64 F
GLIBC_2.34 __time64 F
GLIBC_2.34 __timegm64 F
+GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timerfd_gettime64 F
GLIBC_2.34 __timerfd_settime64 F
GLIBC_2.34 __timespec_get64 F
@@ -2600,6 +2602,7 @@ GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 1ffaa8e684..986b16ece3 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -1992,6 +1992,7 @@ GLIBC_2.2 tdestroy F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
+GLIBC_2.2 timer_gettime F
GLIBC_2.2 tmpfile F
GLIBC_2.2 tmpfile64 F
GLIBC_2.2 truncate64 F
@@ -2442,6 +2443,7 @@ GLIBC_2.34 __stat64_time64 F
GLIBC_2.34 __thrd_sleep64 F
GLIBC_2.34 __time64 F
GLIBC_2.34 __timegm64 F
+GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timerfd_gettime64 F
GLIBC_2.34 __timerfd_settime64 F
GLIBC_2.34 __timespec_get64 F
@@ -2608,6 +2610,7 @@ GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
index af07e28f55..211a60584c 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
@@ -1,7 +1,5 @@
-GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
GLIBC_2.3.4 __librt_version_placeholder F
-GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index b0c5d0a636..141e1b295f 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -1988,6 +1988,7 @@ GLIBC_2.2 tdestroy F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
+GLIBC_2.2 timer_gettime F
GLIBC_2.2 tmpfile F
GLIBC_2.2 tmpfile64 F
GLIBC_2.2 truncate64 F
@@ -2523,6 +2524,7 @@ GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
index a92565949e..406120e1d8 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
GLIBC_2.3.4 __librt_version_placeholder F
GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 77778d11f3..71dc98ecf7 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -2055,6 +2055,7 @@ GLIBC_2.21 timelocal F
GLIBC_2.21 timer_create F
GLIBC_2.21 timer_delete F
GLIBC_2.21 timer_getoverrun F
+GLIBC_2.21 timer_gettime F
GLIBC_2.21 timerfd_create F
GLIBC_2.21 timerfd_gettime F
GLIBC_2.21 timerfd_settime F
@@ -2481,6 +2482,7 @@ GLIBC_2.34 __stat64_time64 F
GLIBC_2.34 __thrd_sleep64 F
GLIBC_2.34 __time64 F
GLIBC_2.34 __timegm64 F
+GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timerfd_gettime64 F
GLIBC_2.34 __timerfd_settime64 F
GLIBC_2.34 __timespec_get64 F
@@ -2647,6 +2649,7 @@ GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
index 8ab5ece2b0..c162738eae 100644
--- a/sysdeps/unix/sysv/linux/nios2/librt.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/librt.abilist
@@ -1,4 +1,2 @@
-GLIBC_2.21 timer_gettime F
GLIBC_2.21 timer_settime F
-GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 5562012575..03a0a0579a 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -2070,6 +2070,7 @@ GLIBC_2.2 swscanf F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
+GLIBC_2.2 timer_gettime F
GLIBC_2.2 ungetwc F
GLIBC_2.2 vfwprintf F
GLIBC_2.2 vfwscanf F
@@ -2498,6 +2499,7 @@ GLIBC_2.34 __stat64_time64 F
GLIBC_2.34 __thrd_sleep64 F
GLIBC_2.34 __time64 F
GLIBC_2.34 __timegm64 F
+GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timerfd_gettime64 F
GLIBC_2.34 __timerfd_settime64 F
GLIBC_2.34 __timespec_get64 F
@@ -2664,6 +2666,7 @@ GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
index f04b1e7978..179d1d53da 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
@@ -1,8 +1,6 @@
GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
GLIBC_2.3.4 __librt_version_placeholder F
-GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index f0adf7b58b..793531d9c4 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -2074,6 +2074,7 @@ GLIBC_2.2 swscanf F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
+GLIBC_2.2 timer_gettime F
GLIBC_2.2 ungetwc F
GLIBC_2.2 vfwprintf F
GLIBC_2.2 vfwscanf F
@@ -2531,6 +2532,7 @@ GLIBC_2.34 __stat64_time64 F
GLIBC_2.34 __thrd_sleep64 F
GLIBC_2.34 __time64 F
GLIBC_2.34 __timegm64 F
+GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timerfd_gettime64 F
GLIBC_2.34 __timerfd_settime64 F
GLIBC_2.34 __timespec_get64 F
@@ -2697,6 +2699,7 @@ GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions b/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions
index a69927d41d..8607ac1012 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions
@@ -29,7 +29,6 @@ libc {
librt {
GLIBC_2.3.3 {
# Changed timer_t.
- timer_gettime;
timer_settime;
}
}
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index e74ecec60f..21763f0238 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -1889,6 +1889,7 @@ GLIBC_2.3 timelocal F
GLIBC_2.3 timer_create F
GLIBC_2.3 timer_delete F
GLIBC_2.3 timer_getoverrun F
+GLIBC_2.3 timer_gettime F
GLIBC_2.3 times F
GLIBC_2.3 timezone D 0x8
GLIBC_2.3 tmpfile F
@@ -2168,6 +2169,7 @@ GLIBC_2.3.3 sys_siglist D 0x208
GLIBC_2.3.3 timer_create F
GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
+GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.4 __chk_fail F
GLIBC_2.3.4 __fprintf_chk F
GLIBC_2.3.4 __gets_chk F
@@ -2434,6 +2436,7 @@ GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
index dd8b2ad6ef..bfaae8ac0e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
@@ -1,6 +1,4 @@
-GLIBC_2.3 timer_gettime F
GLIBC_2.3 timer_settime F
-GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
GLIBC_2.3.4 __librt_version_placeholder F
GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 2a0c06b881..ec8a207385 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -2097,6 +2097,7 @@ GLIBC_2.17 timelocal F
GLIBC_2.17 timer_create F
GLIBC_2.17 timer_delete F
GLIBC_2.17 timer_getoverrun F
+GLIBC_2.17 timer_gettime F
GLIBC_2.17 timerfd_create F
GLIBC_2.17 timerfd_gettime F
GLIBC_2.17 timerfd_settime F
@@ -2731,6 +2732,7 @@ GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
index 493768f440..2cb1369ddb 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
@@ -1,2 +1 @@
-GLIBC_2.17 timer_gettime F
GLIBC_2.17 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_gettime.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_gettime.c
deleted file mode 100644
index cea524bae5..0000000000
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_gettime.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/x86_64/timer_gettime.c>
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 3e0e33bbb3..c7b749f6a7 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1953,6 +1953,7 @@ GLIBC_2.33 timelocal F
GLIBC_2.33 timer_create F
GLIBC_2.33 timer_delete F
GLIBC_2.33 timer_getoverrun F
+GLIBC_2.33 timer_gettime F
GLIBC_2.33 timerfd_create F
GLIBC_2.33 timerfd_gettime F
GLIBC_2.33 timerfd_settime F
@@ -2296,6 +2297,7 @@ GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
index de338094e1..c59f14490e 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
@@ -1,2 +1 @@
-GLIBC_2.33 timer_gettime F
GLIBC_2.33 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 1092e5a170..33e13783fc 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -2019,6 +2019,7 @@ GLIBC_2.27 timelocal F
GLIBC_2.27 timer_create F
GLIBC_2.27 timer_delete F
GLIBC_2.27 timer_getoverrun F
+GLIBC_2.27 timer_gettime F
GLIBC_2.27 timerfd_create F
GLIBC_2.27 timerfd_gettime F
GLIBC_2.27 timerfd_settime F
@@ -2496,6 +2497,7 @@ GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
index 624ab969d8..62ff23fd04 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
@@ -1,2 +1 @@
-GLIBC_2.27 timer_gettime F
GLIBC_2.27 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 710cafe7c0..6681f84af2 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -2068,6 +2068,7 @@ GLIBC_2.2 swscanf F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
+GLIBC_2.2 timer_gettime F
GLIBC_2.2 ungetwc F
GLIBC_2.2 versionsort64 F
GLIBC_2.2 vfwprintf F
@@ -2496,6 +2497,7 @@ GLIBC_2.34 __stat64_time64 F
GLIBC_2.34 __thrd_sleep64 F
GLIBC_2.34 __time64 F
GLIBC_2.34 __timegm64 F
+GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timerfd_gettime64 F
GLIBC_2.34 __timerfd_settime64 F
GLIBC_2.34 __timespec_get64 F
@@ -2662,6 +2664,7 @@ GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
index f04b1e7978..179d1d53da 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
@@ -1,8 +1,6 @@
GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
GLIBC_2.3.4 __librt_version_placeholder F
-GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/Versions b/sysdeps/unix/sysv/linux/s390/s390-64/Versions
index e7f968fcdf..5c682764ad 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/Versions
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/Versions
@@ -9,7 +9,6 @@ libc {
librt {
GLIBC_2.3.3 {
# Changed timer_t.
- timer_gettime;
timer_settime;
}
}
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 6b2c7e7d68..e97c113408 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -1764,6 +1764,7 @@ GLIBC_2.2 timelocal F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
+GLIBC_2.2 timer_gettime F
GLIBC_2.2 times F
GLIBC_2.2 timezone D 0x8
GLIBC_2.2 tmpfile F
@@ -2214,6 +2215,7 @@ GLIBC_2.3.3 sys_siglist D 0x208
GLIBC_2.3.3 timer_create F
GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
+GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.4 __chk_fail F
GLIBC_2.3.4 __fprintf_chk F
GLIBC_2.3.4 __gets_chk F
@@ -2471,6 +2473,7 @@ GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
index 35dc39d27d..f851eea81e 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
@@ -1,6 +1,4 @@
-GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
-GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
GLIBC_2.3.4 __librt_version_placeholder F
GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/timer_gettime.c b/sysdeps/unix/sysv/linux/s390/s390-64/timer_gettime.c
deleted file mode 100644
index cea524bae5..0000000000
--- a/sysdeps/unix/sysv/linux/s390/s390-64/timer_gettime.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/x86_64/timer_gettime.c>
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 51a493aadb..360802cf78 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -1751,6 +1751,7 @@ GLIBC_2.2 timelocal F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
+GLIBC_2.2 timer_gettime F
GLIBC_2.2 times F
GLIBC_2.2 timezone D 0x4
GLIBC_2.2 tmpfile F
@@ -2351,6 +2352,7 @@ GLIBC_2.34 __stat64_time64 F
GLIBC_2.34 __thrd_sleep64 F
GLIBC_2.34 __time64 F
GLIBC_2.34 __timegm64 F
+GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timerfd_gettime64 F
GLIBC_2.34 __timerfd_settime64 F
GLIBC_2.34 __timespec_get64 F
@@ -2517,6 +2519,7 @@ GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
index f04b1e7978..179d1d53da 100644
--- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
@@ -1,8 +1,6 @@
GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
GLIBC_2.3.4 __librt_version_placeholder F
-GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index cb37ba55cb..e9cb3ff8f1 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -1751,6 +1751,7 @@ GLIBC_2.2 timelocal F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
+GLIBC_2.2 timer_gettime F
GLIBC_2.2 times F
GLIBC_2.2 timezone D 0x4
GLIBC_2.2 tmpfile F
@@ -2348,6 +2349,7 @@ GLIBC_2.34 __stat64_time64 F
GLIBC_2.34 __thrd_sleep64 F
GLIBC_2.34 __time64 F
GLIBC_2.34 __timegm64 F
+GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timerfd_gettime64 F
GLIBC_2.34 __timerfd_settime64 F
GLIBC_2.34 __timespec_get64 F
@@ -2514,6 +2516,7 @@ GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
index f04b1e7978..179d1d53da 100644
--- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
@@ -1,8 +1,6 @@
GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
GLIBC_2.3.4 __librt_version_placeholder F
-GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 05b4e88794..2af5948dd7 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -2063,6 +2063,7 @@ GLIBC_2.2 swscanf F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
+GLIBC_2.2 timer_gettime F
GLIBC_2.2 ungetwc F
GLIBC_2.2 vfwprintf F
GLIBC_2.2 vfwscanf F
@@ -2491,6 +2492,7 @@ GLIBC_2.34 __stat64_time64 F
GLIBC_2.34 __thrd_sleep64 F
GLIBC_2.34 __time64 F
GLIBC_2.34 __timegm64 F
+GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timerfd_gettime64 F
GLIBC_2.34 __timerfd_settime64 F
GLIBC_2.34 __timespec_get64 F
@@ -2657,6 +2659,7 @@ GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
index 0de56c2c15..dc0a3c4dfb 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
@@ -1,9 +1,7 @@
GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
GLIBC_2.3 __librt_version_placeholder F
GLIBC_2.3.4 __librt_version_placeholder F
-GLIBC_2.34 __timer_gettime64 F
GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/Versions b/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
index d04738fafc..5e8f59ceae 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
@@ -14,7 +14,6 @@ libc {
librt {
GLIBC_2.3.3 {
# Changed timer_t.
- timer_gettime;
timer_settime;
}
}
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 72591794e8..fde5b780a6 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -1794,6 +1794,7 @@ GLIBC_2.2 timelocal F
GLIBC_2.2 timer_create F
GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
+GLIBC_2.2 timer_gettime F
GLIBC_2.2 times F
GLIBC_2.2 timezone D 0x8
GLIBC_2.2 tmpfile F
@@ -2248,6 +2249,7 @@ GLIBC_2.3.3 sys_siglist D 0x208
GLIBC_2.3.3 timer_create F
GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
+GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.4 __chk_fail F
GLIBC_2.3.4 __fprintf_chk F
GLIBC_2.3.4 __gets_chk F
@@ -2493,6 +2495,7 @@ GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
index 34d42d122b..a2de1ecd94 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
@@ -1,8 +1,6 @@
GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
GLIBC_2.3 __librt_version_placeholder F
-GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
GLIBC_2.3.4 __librt_version_placeholder F
GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c b/sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c
deleted file mode 100644
index cea524bae5..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/x86_64/timer_gettime.c>
diff --git a/sysdeps/unix/sysv/linux/timer_gettime.c b/sysdeps/unix/sysv/linux/timer_gettime.c
index 0b31324da7..993bef8c6a 100644
--- a/sysdeps/unix/sysv/linux/timer_gettime.c
+++ b/sysdeps/unix/sysv/linux/timer_gettime.c
@@ -22,17 +22,19 @@
#include <sysdep.h>
#include <kernel-features.h>
#include <kernel-posix-timers.h>
+#include <shlib-compat.h>
+#if !TIMER_T_WAS_INT_COMPAT
int
-__timer_gettime64 (timer_t timerid, struct __itimerspec64 *value)
+___timer_gettime64 (timer_t timerid, struct __itimerspec64 *value)
{
kernel_timer_t ktimerid = timerid_to_kernel_timer (timerid);
-#ifndef __NR_timer_gettime64
-# define __NR_timer_gettime64 __NR_timer_gettime
-#endif
+# ifndef __NR_timer_gettime64
+# define __NR_timer_gettime64 __NR_timer_gettime
+# endif
int ret = INLINE_SYSCALL_CALL (timer_gettime64, ktimerid, value);
-#ifndef __ASSUME_TIME64_SYSCALLS
+# ifndef __ASSUME_TIME64_SYSCALLS
if (ret == 0 || errno != ENOSYS)
return ret;
@@ -43,12 +45,19 @@ __timer_gettime64 (timer_t timerid, struct __itimerspec64 *value)
value->it_interval = valid_timespec_to_timespec64 (its32.it_interval);
value->it_value = valid_timespec_to_timespec64 (its32.it_value);
}
-#endif
+# endif
return ret;
}
-#if __TIMESIZE != 64
-librt_hidden_def (__timer_gettime64)
+# if __TIMESIZE == 64
+versioned_symbol (libc, ___timer_gettime64, timer_gettime, GLIBC_2_34);
+# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (librt, ___timer_gettime64, timer_gettime, GLIBC_2_2);
+# endif
+
+# else /* __TIMESIZE != 64 */
+libc_hidden_ver (___timer_gettime64, __timer_gettime64)
+versioned_symbol (libc, ___timer_gettime64, __timer_gettime64, GLIBC_2_34);
int
__timer_gettime (timer_t timerid, struct itimerspec *value)
@@ -63,5 +72,39 @@ __timer_gettime (timer_t timerid, struct itimerspec *value)
return retval;
}
-#endif
-weak_alias (__timer_gettime, timer_gettime)
+versioned_symbol (libc, __timer_gettime, timer_gettime, GLIBC_2_34);
+
+# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (librt, __timer_gettime, timer_gettime, GLIBC_2_2);
+# endif
+# endif /* __TIMESIZE != 64 */
+
+#else /* TIMER_T_WAS_INT_COMPAT */
+
+extern __typeof (timer_gettime) __timer_gettime_new;
+libc_hidden_proto (__timer_gettime_new)
+
+int
+___timer_gettime_new (timer_t timerid, struct itimerspec *value)
+{
+ kernel_timer_t ktimerid = timerid_to_kernel_timer (timerid);
+
+ return INLINE_SYSCALL_CALL (timer_gettime, ktimerid, value);
+}
+versioned_symbol (libc, ___timer_gettime_new, timer_gettime, GLIBC_2_34);
+libc_hidden_ver (___timer_gettime_new, __timer_gettime_new)
+
+# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_3_3, GLIBC_2_34)
+compat_symbol (librt, ___timer_gettime_new, timer_gettime, GLIBC_2_3_3);
+# endif
+
+# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_3_3)
+int
+__timer_gettime_old (int timerid, struct itimerspec *value)
+{
+ return __timer_gettime_new (__timer_compat_list[timerid], value);
+}
+compat_symbol (librt, __timer_gettime_old, timer_gettime, GLIBC_2_2);
+# endif
+
+#endif /* TIMER_T_WAS_INT_COMPAT */
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 92f4369765..87dc534709 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -1763,6 +1763,7 @@ GLIBC_2.2.5 timelocal F
GLIBC_2.2.5 timer_create F
GLIBC_2.2.5 timer_delete F
GLIBC_2.2.5 timer_getoverrun F
+GLIBC_2.2.5 timer_gettime F
GLIBC_2.2.5 times F
GLIBC_2.2.5 timezone D 0x8
GLIBC_2.2.5 tmpfile F
@@ -2202,6 +2203,7 @@ GLIBC_2.3.3 sys_siglist D 0x208
GLIBC_2.3.3 timer_create F
GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
+GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.4 __chk_fail F
GLIBC_2.3.4 __fprintf_chk F
GLIBC_2.3.4 __gets_chk F
@@ -2449,6 +2451,7 @@ GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
index 379fa6930c..913835d267 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
@@ -1,6 +1,4 @@
-GLIBC_2.2.5 timer_gettime F
GLIBC_2.2.5 timer_settime F
-GLIBC_2.3.3 timer_gettime F
GLIBC_2.3.3 timer_settime F
GLIBC_2.3.4 __librt_version_placeholder F
GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/x86_64/Versions b/sysdeps/unix/sysv/linux/x86_64/Versions
index a97b6c7413..8deeb8908a 100644
--- a/sysdeps/unix/sysv/linux/x86_64/Versions
+++ b/sysdeps/unix/sysv/linux/x86_64/Versions
@@ -11,7 +11,6 @@ libc {
librt {
GLIBC_2.3.3 {
# Changed timer_t.
- timer_gettime;
timer_settime;
}
}
diff --git a/sysdeps/unix/sysv/linux/x86_64/timer_gettime.c b/sysdeps/unix/sysv/linux/x86_64/timer_gettime.c
deleted file mode 100644
index 06ccbc40bd..0000000000
--- a/sysdeps/unix/sysv/linux/x86_64/timer_gettime.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Copyright (C) 2003-2021 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
- 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; see the file COPYING.LIB. If
- not, see <https://www.gnu.org/licenses/>. */
-
-#include <shlib-compat.h>
-#include <sysdep.h>
-#include <kernel-posix-timers.h>
-#include "compat-timer.h"
-
-int
-__timer_gettime_new (timer_t timerid, struct itimerspec *value)
-{
- kernel_timer_t ktimerid = timerid_to_kernel_timer (timerid);
-
- return INLINE_SYSCALL_CALL (timer_gettime, ktimerid, value);
-}
-versioned_symbol (librt, __timer_gettime_new, timer_gettime, GLIBC_2_3_3);
-
-
-#if SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_3_3)
-int
-__timer_gettime_old (int timerid, struct itimerspec *value)
-{
- return __timer_gettime_new (__timer_compat_list[timerid], value);
-}
-compat_symbol (librt, __timer_gettime_old, timer_gettime, GLIBC_2_2);
-#endif
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 25b177fda0..143b8d602c 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -2014,6 +2014,7 @@ GLIBC_2.16 timelocal F
GLIBC_2.16 timer_create F
GLIBC_2.16 timer_delete F
GLIBC_2.16 timer_getoverrun F
+GLIBC_2.16 timer_gettime F
GLIBC_2.16 timerfd_create F
GLIBC_2.16 timerfd_gettime F
GLIBC_2.16 timerfd_settime F
@@ -2550,6 +2551,7 @@ GLIBC_2.34 thrd_join F
GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
index 0b969910ba..50f2032de7 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
@@ -1,2 +1 @@
-GLIBC_2.16 timer_gettime F
GLIBC_2.16 timer_settime F
--
2.31.1
^ permalink raw reply [flat|nested] 72+ messages in thread
* Re: [PATCH 32/34] Linux: Move timer_gettime, __timer_gettime64 from librt to libc
2021-06-17 18:59 ` [PATCH 32/34] Linux: Move timer_gettime, __timer_gettime64 " Florian Weimer
@ 2021-06-24 17:36 ` Adhemerval Zanella
0 siblings, 0 replies; 72+ messages in thread
From: Adhemerval Zanella @ 2021-06-24 17:36 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 17/06/2021 15:59, Florian Weimer via Libc-alpha wrote:
> The symbols were moved using scripts/move-symbol-to-libc.py.
>
> The way the ABI intransition is implemented is changed with this
> commit: the implementation is now consolidated in one file with a
> TIMER_T_WAS_INT_COMPAT check.
LGTM, thanks. There is only a nit below.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> ---
> include/time.h | 6 +-
> rt/Makefile | 2 +-
> rt/Versions | 4 +-
> sysdeps/unix/sysv/linux/Versions | 3 +-
> sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/aarch64/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/alpha/Versions | 1 -
> sysdeps/unix/sysv/linux/alpha/libc.abilist | 3 +
> sysdeps/unix/sysv/linux/alpha/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/alpha/timer_gettime.c | 1 -
> sysdeps/unix/sysv/linux/arc/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/arc/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/arm/be/libc.abilist | 3 +
> sysdeps/unix/sysv/linux/arm/be/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/arm/le/libc.abilist | 3 +
> sysdeps/unix/sysv/linux/arm/le/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/csky/libc.abilist | 3 +
> sysdeps/unix/sysv/linux/csky/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/hppa/libc.abilist | 3 +
> sysdeps/unix/sysv/linux/hppa/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/i386/libc.abilist | 3 +
> sysdeps/unix/sysv/linux/i386/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/ia64/Versions | 1 -
> sysdeps/unix/sysv/linux/ia64/libc.abilist | 3 +
> sysdeps/unix/sysv/linux/ia64/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/ia64/timer_gettime.c | 1 -
> .../sysv/linux/m68k/coldfire/libc.abilist | 3 +
> .../sysv/linux/m68k/coldfire/librt.abilist | 2 -
> .../unix/sysv/linux/m68k/m680x0/libc.abilist | 3 +
> .../unix/sysv/linux/m68k/m680x0/librt.abilist | 2 -
> .../sysv/linux/microblaze/be/libc.abilist | 3 +
> .../sysv/linux/microblaze/be/librt.abilist | 2 -
> .../sysv/linux/microblaze/le/libc.abilist | 3 +
> .../sysv/linux/microblaze/le/librt.abilist | 2 -
> .../sysv/linux/mips/mips32/fpu/libc.abilist | 3 +
> .../unix/sysv/linux/mips/mips32/librt.abilist | 2 -
> .../sysv/linux/mips/mips32/nofpu/libc.abilist | 3 +
> .../sysv/linux/mips/mips64/n32/libc.abilist | 3 +
> .../sysv/linux/mips/mips64/n32/librt.abilist | 2 -
> .../sysv/linux/mips/mips64/n64/libc.abilist | 2 +
> .../sysv/linux/mips/mips64/n64/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/nios2/libc.abilist | 3 +
> sysdeps/unix/sysv/linux/nios2/librt.abilist | 2 -
> .../linux/powerpc/powerpc32/fpu/libc.abilist | 3 +
> .../linux/powerpc/powerpc32/librt.abilist | 2 -
> .../powerpc/powerpc32/nofpu/libc.abilist | 3 +
> .../sysv/linux/powerpc/powerpc64/Versions | 1 -
> .../linux/powerpc/powerpc64/be/libc.abilist | 3 +
> .../linux/powerpc/powerpc64/be/librt.abilist | 2 -
> .../linux/powerpc/powerpc64/le/libc.abilist | 2 +
> .../linux/powerpc/powerpc64/le/librt.abilist | 1 -
> .../linux/powerpc/powerpc64/timer_gettime.c | 1 -
> .../unix/sysv/linux/riscv/rv32/libc.abilist | 2 +
> .../unix/sysv/linux/riscv/rv32/librt.abilist | 1 -
> .../unix/sysv/linux/riscv/rv64/libc.abilist | 2 +
> .../unix/sysv/linux/riscv/rv64/librt.abilist | 1 -
> .../unix/sysv/linux/s390/s390-32/libc.abilist | 3 +
> .../sysv/linux/s390/s390-32/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/s390/s390-64/Versions | 1 -
> .../unix/sysv/linux/s390/s390-64/libc.abilist | 3 +
> .../sysv/linux/s390/s390-64/librt.abilist | 2 -
> .../sysv/linux/s390/s390-64/timer_gettime.c | 1 -
> sysdeps/unix/sysv/linux/sh/be/libc.abilist | 3 +
> sysdeps/unix/sysv/linux/sh/be/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/sh/le/libc.abilist | 3 +
> sysdeps/unix/sysv/linux/sh/le/librt.abilist | 2 -
> .../sysv/linux/sparc/sparc32/libc.abilist | 3 +
> .../sysv/linux/sparc/sparc32/librt.abilist | 2 -
> .../unix/sysv/linux/sparc/sparc64/Versions | 1 -
> .../sysv/linux/sparc/sparc64/libc.abilist | 3 +
> .../sysv/linux/sparc/sparc64/librt.abilist | 2 -
> .../sysv/linux/sparc/sparc64/timer_gettime.c | 1 -
> sysdeps/unix/sysv/linux/timer_gettime.c | 63 ++++++++++++++++---
> .../unix/sysv/linux/x86_64/64/libc.abilist | 3 +
> .../unix/sysv/linux/x86_64/64/librt.abilist | 2 -
> sysdeps/unix/sysv/linux/x86_64/Versions | 1 -
> .../unix/sysv/linux/x86_64/timer_gettime.c | 41 ------------
> .../unix/sysv/linux/x86_64/x32/libc.abilist | 2 +
> .../unix/sysv/linux/x86_64/x32/librt.abilist | 1 -
> 79 files changed, 153 insertions(+), 119 deletions(-)
> delete mode 100644 sysdeps/unix/sysv/linux/alpha/timer_gettime.c
> delete mode 100644 sysdeps/unix/sysv/linux/ia64/timer_gettime.c
> delete mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_gettime.c
> delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-64/timer_gettime.c
> delete mode 100644 sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c
> delete mode 100644 sysdeps/unix/sysv/linux/x86_64/timer_gettime.c
>
> diff --git a/include/time.h b/include/time.h
> index 980c6bd924..3f4ff44ac3 100644
> --- a/include/time.h
> +++ b/include/time.h
> @@ -218,7 +218,11 @@ libc_hidden_proto (__futimens64);
> #else
> extern int __timer_gettime64 (timer_t timerid, struct __itimerspec64 *value);
> extern int __timerfd_gettime64 (int fd, struct __itimerspec64 *value);
> -librt_hidden_proto (__timer_gettime64);
> +# if PTHREAD_IN_LIBC
> +libc_hidden_proto (__timer_gettime64)
> +# else
> +librt_hidden_proto (__timer_gettime64)
> +# endif
> libc_hidden_proto (__timerfd_gettime64);
> #endif
>
Ok.
> diff --git a/rt/Makefile b/rt/Makefile
> index 1eadb94ea8..e2ef5f4b0b 100644
> --- a/rt/Makefile
> +++ b/rt/Makefile
> @@ -30,7 +30,6 @@ routines = \
>
> librt-routines = \
> librt-compat \
> - timer_gettime \
> timer_settime \
>
> librt-shared-only-routines = librt-compat
> @@ -63,6 +62,7 @@ $(librt-routines-var) += \
> timer_create \
> timer_delete \
> timer_getoverr \
> + timer_gettime \
>
> tests := tst-shm tst-timer tst-timer2 \
> tst-aio tst-aio64 tst-aio2 tst-aio3 tst-aio4 tst-aio5 tst-aio6 \
Ok.
> diff --git a/rt/Versions b/rt/Versions
> index de78be15dc..d1f05af013 100644
> --- a/rt/Versions
> +++ b/rt/Versions
> @@ -25,6 +25,7 @@ libc {
> timer_create;
> timer_delete;
> timer_getoverrun;
> + timer_gettime;
> %endif
> shm_open;
> shm_unlink;
> @@ -87,6 +88,7 @@ libc {
> timer_create;
> timer_delete;
> timer_getoverrun;
> + timer_gettime;
> %endif
> shm_open;
> shm_unlink;
> @@ -134,8 +136,8 @@ librt {
> timer_create;
> timer_delete;
> timer_getoverrun;
> -%endif
> timer_gettime;
> +%endif
> timer_settime;
> }
> GLIBC_2.3.4 {
Ok.
> diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions
> index 31fb4a437b..9bb9d955a5 100644
> --- a/sysdeps/unix/sysv/linux/Versions
> +++ b/sysdeps/unix/sysv/linux/Versions
> @@ -126,6 +126,7 @@ libc {
> timer_create;
> timer_delete;
> timer_getoverrun;
> + timer_gettime;
> }
> GLIBC_2.3.4 {
> sched_getaffinity; sched_setaffinity;
> @@ -267,6 +268,7 @@ libc {
> __thrd_sleep64;
> __time64;
> __timegm64;
> + __timer_gettime64;
> __timerfd_gettime64;
> __timerfd_settime64;
> __timespec_get64;
> @@ -308,7 +310,6 @@ librt {
> GLIBC_2.34 {
> %ifdef TIME64_NON_DEFAULT
> # 64-bit time_t support
> - __timer_gettime64;
> __timer_settime64;
> %endif
> }
Ok.
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index 9426bbe3f8..23130c3c9e 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -2009,6 +2009,7 @@ GLIBC_2.17 timelocal F
> GLIBC_2.17 timer_create F
> GLIBC_2.17 timer_delete F
> GLIBC_2.17 timer_getoverrun F
> +GLIBC_2.17 timer_gettime F
> GLIBC_2.17 timerfd_create F
> GLIBC_2.17 timerfd_gettime F
> GLIBC_2.17 timerfd_settime F
> @@ -2535,6 +2536,7 @@ GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> +GLIBC_2.34 timer_gettime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> index 493768f440..2cb1369ddb 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> @@ -1,2 +1 @@
> -GLIBC_2.17 timer_gettime F
> GLIBC_2.17 timer_settime F
> diff --git a/sysdeps/unix/sysv/linux/alpha/Versions b/sysdeps/unix/sysv/linux/alpha/Versions
> index dd5b365d77..0359822d6d 100644
> --- a/sysdeps/unix/sysv/linux/alpha/Versions
> +++ b/sysdeps/unix/sysv/linux/alpha/Versions
> @@ -104,7 +104,6 @@ librt {
> }
> GLIBC_2.3.3 {
> # Changed timer_t.
> - timer_gettime;
> timer_settime;
> }
> }
Ok.
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index 50ab6f3fc1..1f2fff3443 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -2096,6 +2096,7 @@ GLIBC_2.2 swscanf F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> GLIBC_2.2 timer_getoverrun F
> +GLIBC_2.2 timer_gettime F
> GLIBC_2.2 ungetwc F
> GLIBC_2.2 vfwprintf F
> GLIBC_2.2 vfwscanf F
> @@ -2359,6 +2360,7 @@ GLIBC_2.3.3 sys_siglist D 0x208
> GLIBC_2.3.3 timer_create F
> GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> +GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.4 _OtsAddX F
> GLIBC_2.3.4 _OtsConvertFloatTX F
> GLIBC_2.3.4 _OtsConvertFloatXT F
> @@ -2632,6 +2634,7 @@ GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> +GLIBC_2.34 timer_gettime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
> index 34d42d122b..a2de1ecd94 100644
> --- a/sysdeps/unix/sysv/linux/alpha/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist
> @@ -1,8 +1,6 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> GLIBC_2.3 __librt_version_placeholder F
> -GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
> GLIBC_2.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/alpha/timer_gettime.c b/sysdeps/unix/sysv/linux/alpha/timer_gettime.c
> deleted file mode 100644
> index cea524bae5..0000000000
> --- a/sysdeps/unix/sysv/linux/alpha/timer_gettime.c
> +++ /dev/null
> @@ -1 +0,0 @@
> -#include <sysdeps/unix/sysv/linux/x86_64/timer_gettime.c>
Ok.
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index aafc056267..8ece5c40fb 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -1943,6 +1943,7 @@ GLIBC_2.32 timelocal F
> GLIBC_2.32 timer_create F
> GLIBC_2.32 timer_delete F
> GLIBC_2.32 timer_getoverrun F
> +GLIBC_2.32 timer_gettime F
> GLIBC_2.32 timerfd_create F
> GLIBC_2.32 timerfd_gettime F
> GLIBC_2.32 timerfd_settime F
> @@ -2294,6 +2295,7 @@ GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> +GLIBC_2.34 timer_gettime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
> index 14ae3d7c65..0023244be6 100644
> --- a/sysdeps/unix/sysv/linux/arc/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/librt.abilist
> @@ -1,2 +1 @@
> -GLIBC_2.32 timer_gettime F
> GLIBC_2.32 timer_settime F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index ac73d766ba..515c3a224a 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -271,6 +271,7 @@ GLIBC_2.34 __stat64_time64 F
> GLIBC_2.34 __thrd_sleep64 F
> GLIBC_2.34 __time64 F
> GLIBC_2.34 __timegm64 F
> +GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timerfd_gettime64 F
> GLIBC_2.34 __timerfd_settime64 F
> GLIBC_2.34 __timespec_get64 F
> @@ -437,6 +438,7 @@ GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> +GLIBC_2.34 timer_gettime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> @@ -2356,6 +2358,7 @@ GLIBC_2.4 timelocal F
> GLIBC_2.4 timer_create F
> GLIBC_2.4 timer_delete F
> GLIBC_2.4 timer_getoverrun F
> +GLIBC_2.4 timer_gettime F
> GLIBC_2.4 times F
> GLIBC_2.4 timezone D 0x4
> GLIBC_2.4 tmpfile F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> index 78152d8fa3..2f84162558 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> -GLIBC_2.4 timer_gettime F
> GLIBC_2.4 timer_settime F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index 96ad967292..7b7ca7d348 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -268,6 +268,7 @@ GLIBC_2.34 __stat64_time64 F
> GLIBC_2.34 __thrd_sleep64 F
> GLIBC_2.34 __time64 F
> GLIBC_2.34 __timegm64 F
> +GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timerfd_gettime64 F
> GLIBC_2.34 __timerfd_settime64 F
> GLIBC_2.34 __timespec_get64 F
> @@ -434,6 +435,7 @@ GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> +GLIBC_2.34 timer_gettime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> @@ -2353,6 +2355,7 @@ GLIBC_2.4 timelocal F
> GLIBC_2.4 timer_create F
> GLIBC_2.4 timer_delete F
> GLIBC_2.4 timer_getoverrun F
> +GLIBC_2.4 timer_gettime F
> GLIBC_2.4 times F
> GLIBC_2.4 timezone D 0x4
> GLIBC_2.4 tmpfile F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> index 78152d8fa3..2f84162558 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> -GLIBC_2.4 timer_gettime F
> GLIBC_2.4 timer_settime F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index 980ac9c497..d53acb2c08 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -2033,6 +2033,7 @@ GLIBC_2.29 timelocal F
> GLIBC_2.29 timer_create F
> GLIBC_2.29 timer_delete F
> GLIBC_2.29 timer_getoverrun F
> +GLIBC_2.29 timer_gettime F
> GLIBC_2.29 timerfd_create F
> GLIBC_2.29 timerfd_gettime F
> GLIBC_2.29 timerfd_settime F
> @@ -2391,6 +2392,7 @@ GLIBC_2.34 __stat64_time64 F
> GLIBC_2.34 __thrd_sleep64 F
> GLIBC_2.34 __time64 F
> GLIBC_2.34 __timegm64 F
> +GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timerfd_gettime64 F
> GLIBC_2.34 __timerfd_settime64 F
> GLIBC_2.34 __timespec_get64 F
> @@ -2557,6 +2559,7 @@ GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> +GLIBC_2.34 timer_gettime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
> index 9f89eb4e8b..52b2819a7d 100644
> --- a/sysdeps/unix/sysv/linux/csky/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/librt.abilist
> @@ -1,4 +1,2 @@
> -GLIBC_2.29 timer_gettime F
> GLIBC_2.29 timer_settime F
> -GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index 0e6e1444d6..a592e3f628 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -1747,6 +1747,7 @@ GLIBC_2.2 timelocal F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> GLIBC_2.2 timer_getoverrun F
> +GLIBC_2.2 timer_gettime F
> GLIBC_2.2 times F
> GLIBC_2.2 timezone D 0x4
> GLIBC_2.2 tmpfile F
> @@ -2344,6 +2345,7 @@ GLIBC_2.34 __stat64_time64 F
> GLIBC_2.34 __thrd_sleep64 F
> GLIBC_2.34 __time64 F
> GLIBC_2.34 __timegm64 F
> +GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timerfd_gettime64 F
> GLIBC_2.34 __timerfd_settime64 F
> GLIBC_2.34 __timespec_get64 F
> @@ -2510,6 +2512,7 @@ GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> +GLIBC_2.34 timer_gettime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
> index f04b1e7978..179d1d53da 100644
> --- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
> @@ -1,8 +1,6 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
> -GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index d8693b0c7b..bd3824cb88 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -2109,6 +2109,7 @@ GLIBC_2.2 swscanf F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> GLIBC_2.2 timer_getoverrun F
> +GLIBC_2.2 timer_gettime F
> GLIBC_2.2 ungetwc F
> GLIBC_2.2 versionsort64 F
> GLIBC_2.2 vfwprintf F
> @@ -2528,6 +2529,7 @@ GLIBC_2.34 __stat64_time64 F
> GLIBC_2.34 __thrd_sleep64 F
> GLIBC_2.34 __time64 F
> GLIBC_2.34 __timegm64 F
> +GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timerfd_gettime64 F
> GLIBC_2.34 __timerfd_settime64 F
> GLIBC_2.34 __timespec_get64 F
> @@ -2694,6 +2696,7 @@ GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> +GLIBC_2.34 timer_gettime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
> index f04b1e7978..179d1d53da 100644
> --- a/sysdeps/unix/sysv/linux/i386/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
> @@ -1,8 +1,6 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
> -GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/ia64/Versions b/sysdeps/unix/sysv/linux/ia64/Versions
> index 1d09fca7e3..9a7faf067a 100644
> --- a/sysdeps/unix/sysv/linux/ia64/Versions
> +++ b/sysdeps/unix/sysv/linux/ia64/Versions
> @@ -30,7 +30,6 @@ libc {
> librt {
> GLIBC_2.3.3 {
> # Changed timer_t.
> - timer_gettime;
> timer_settime;
> }
> }
Ok.
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index 984b58be61..d589ce16d6 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -1768,6 +1768,7 @@ GLIBC_2.2 timelocal F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> GLIBC_2.2 timer_getoverrun F
> +GLIBC_2.2 timer_gettime F
> GLIBC_2.2 times F
> GLIBC_2.2 timezone D 0x8
> GLIBC_2.2 tmpfile F
> @@ -2224,6 +2225,7 @@ GLIBC_2.3.3 sys_siglist D 0x208
> GLIBC_2.3.3 timer_create F
> GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> +GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.4 __chk_fail F
> GLIBC_2.3.4 __fprintf_chk F
> GLIBC_2.3.4 __gets_chk F
> @@ -2470,6 +2472,7 @@ GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> +GLIBC_2.34 timer_gettime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
> index c56040a5f9..7d8e91b0d9 100644
> --- a/sysdeps/unix/sysv/linux/ia64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/librt.abilist
> @@ -1,7 +1,5 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> -GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
> GLIBC_2.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/ia64/timer_gettime.c b/sysdeps/unix/sysv/linux/ia64/timer_gettime.c
> deleted file mode 100644
> index cea524bae5..0000000000
> --- a/sysdeps/unix/sysv/linux/ia64/timer_gettime.c
> +++ /dev/null
> @@ -1 +0,0 @@
> -#include <sysdeps/unix/sysv/linux/x86_64/timer_gettime.c>
Ok.
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index a8d6ad9a4f..7e986dcfd5 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -272,6 +272,7 @@ GLIBC_2.34 __stat64_time64 F
> GLIBC_2.34 __thrd_sleep64 F
> GLIBC_2.34 __time64 F
> GLIBC_2.34 __timegm64 F
> +GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timerfd_gettime64 F
> GLIBC_2.34 __timerfd_settime64 F
> GLIBC_2.34 __timespec_get64 F
> @@ -438,6 +439,7 @@ GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> +GLIBC_2.34 timer_gettime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> @@ -2336,6 +2338,7 @@ GLIBC_2.4 timelocal F
> GLIBC_2.4 timer_create F
> GLIBC_2.4 timer_delete F
> GLIBC_2.4 timer_getoverrun F
> +GLIBC_2.4 timer_gettime F
> GLIBC_2.4 times F
> GLIBC_2.4 timezone D 0x4
> GLIBC_2.4 tmpfile F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> index 78152d8fa3..2f84162558 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> @@ -1,5 +1,3 @@
> -GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> -GLIBC_2.4 timer_gettime F
> GLIBC_2.4 timer_settime F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index 62590726a8..97fe827b8d 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -2065,6 +2065,7 @@ GLIBC_2.2 swscanf F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> GLIBC_2.2 timer_getoverrun F
> +GLIBC_2.2 timer_gettime F
> GLIBC_2.2 ungetwc F
> GLIBC_2.2 versionsort64 F
> GLIBC_2.2 vfwprintf F
> @@ -2471,6 +2472,7 @@ GLIBC_2.34 __stat64_time64 F
> GLIBC_2.34 __thrd_sleep64 F
> GLIBC_2.34 __time64 F
> GLIBC_2.34 __timegm64 F
> +GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timerfd_gettime64 F
> GLIBC_2.34 __timerfd_settime64 F
> GLIBC_2.34 __timespec_get64 F
> @@ -2637,6 +2639,7 @@ GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> +GLIBC_2.34 timer_gettime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> index f04b1e7978..179d1d53da 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> @@ -1,8 +1,6 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
> -GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index 3fd1621454..56b5f885b7 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -2013,6 +2013,7 @@ GLIBC_2.18 timelocal F
> GLIBC_2.18 timer_create F
> GLIBC_2.18 timer_delete F
> GLIBC_2.18 timer_getoverrun F
> +GLIBC_2.18 timer_gettime F
> GLIBC_2.18 timerfd_create F
> GLIBC_2.18 timerfd_gettime F
> GLIBC_2.18 timerfd_settime F
> @@ -2442,6 +2443,7 @@ GLIBC_2.34 __stat64_time64 F
> GLIBC_2.34 __thrd_sleep64 F
> GLIBC_2.34 __time64 F
> GLIBC_2.34 __timegm64 F
> +GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timerfd_gettime64 F
> GLIBC_2.34 __timerfd_settime64 F
> GLIBC_2.34 __timespec_get64 F
> @@ -2608,6 +2610,7 @@ GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> +GLIBC_2.34 timer_gettime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> index f308a63244..8a4faf155c 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> @@ -1,4 +1,2 @@
> -GLIBC_2.18 timer_gettime F
> GLIBC_2.18 timer_settime F
> -GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index 2b839a784d..8910180ff8 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -2013,6 +2013,7 @@ GLIBC_2.18 timelocal F
> GLIBC_2.18 timer_create F
> GLIBC_2.18 timer_delete F
> GLIBC_2.18 timer_getoverrun F
> +GLIBC_2.18 timer_gettime F
> GLIBC_2.18 timerfd_create F
> GLIBC_2.18 timerfd_gettime F
> GLIBC_2.18 timerfd_settime F
> @@ -2439,6 +2440,7 @@ GLIBC_2.34 __stat64_time64 F
> GLIBC_2.34 __thrd_sleep64 F
> GLIBC_2.34 __time64 F
> GLIBC_2.34 __timegm64 F
> +GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timerfd_gettime64 F
> GLIBC_2.34 __timerfd_settime64 F
> GLIBC_2.34 __timespec_get64 F
> @@ -2605,6 +2607,7 @@ GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> +GLIBC_2.34 timer_gettime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> index f308a63244..8a4faf155c 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> @@ -1,4 +1,2 @@
> -GLIBC_2.18 timer_gettime F
> GLIBC_2.18 timer_settime F
> -GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index ac623acbd3..e81456caf7 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -1996,6 +1996,7 @@ GLIBC_2.2 tdestroy F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> GLIBC_2.2 timer_getoverrun F
> +GLIBC_2.2 timer_gettime F
> GLIBC_2.2 tmpfile F
> GLIBC_2.2 tmpfile64 F
> GLIBC_2.2 truncate64 F
> @@ -2436,6 +2437,7 @@ GLIBC_2.34 __stat64_time64 F
> GLIBC_2.34 __thrd_sleep64 F
> GLIBC_2.34 __time64 F
> GLIBC_2.34 __timegm64 F
> +GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timerfd_gettime64 F
> GLIBC_2.34 __timerfd_settime64 F
> GLIBC_2.34 __timespec_get64 F
> @@ -2602,6 +2604,7 @@ GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> +GLIBC_2.34 timer_gettime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> index af07e28f55..211a60584c 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> @@ -1,7 +1,5 @@
> -GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
> -GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index 776b30b48a..ecbad99217 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -1994,6 +1994,7 @@ GLIBC_2.2 tdestroy F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> GLIBC_2.2 timer_getoverrun F
> +GLIBC_2.2 timer_gettime F
> GLIBC_2.2 tmpfile F
> GLIBC_2.2 tmpfile64 F
> GLIBC_2.2 truncate64 F
> @@ -2434,6 +2435,7 @@ GLIBC_2.34 __stat64_time64 F
> GLIBC_2.34 __thrd_sleep64 F
> GLIBC_2.34 __time64 F
> GLIBC_2.34 __timegm64 F
> +GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timerfd_gettime64 F
> GLIBC_2.34 __timerfd_settime64 F
> GLIBC_2.34 __timespec_get64 F
> @@ -2600,6 +2602,7 @@ GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> +GLIBC_2.34 timer_gettime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index 1ffaa8e684..986b16ece3 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -1992,6 +1992,7 @@ GLIBC_2.2 tdestroy F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> GLIBC_2.2 timer_getoverrun F
> +GLIBC_2.2 timer_gettime F
> GLIBC_2.2 tmpfile F
> GLIBC_2.2 tmpfile64 F
> GLIBC_2.2 truncate64 F
> @@ -2442,6 +2443,7 @@ GLIBC_2.34 __stat64_time64 F
> GLIBC_2.34 __thrd_sleep64 F
> GLIBC_2.34 __time64 F
> GLIBC_2.34 __timegm64 F
> +GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timerfd_gettime64 F
> GLIBC_2.34 __timerfd_settime64 F
> GLIBC_2.34 __timespec_get64 F
> @@ -2608,6 +2610,7 @@ GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> +GLIBC_2.34 timer_gettime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> index af07e28f55..211a60584c 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> @@ -1,7 +1,5 @@
> -GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
> -GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index b0c5d0a636..141e1b295f 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -1988,6 +1988,7 @@ GLIBC_2.2 tdestroy F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> GLIBC_2.2 timer_getoverrun F
> +GLIBC_2.2 timer_gettime F
> GLIBC_2.2 tmpfile F
> GLIBC_2.2 tmpfile64 F
> GLIBC_2.2 truncate64 F
> @@ -2523,6 +2524,7 @@ GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> +GLIBC_2.34 timer_gettime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> index a92565949e..406120e1d8 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> @@ -1,4 +1,3 @@
> -GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
> GLIBC_2.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index 77778d11f3..71dc98ecf7 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -2055,6 +2055,7 @@ GLIBC_2.21 timelocal F
> GLIBC_2.21 timer_create F
> GLIBC_2.21 timer_delete F
> GLIBC_2.21 timer_getoverrun F
> +GLIBC_2.21 timer_gettime F
> GLIBC_2.21 timerfd_create F
> GLIBC_2.21 timerfd_gettime F
> GLIBC_2.21 timerfd_settime F
> @@ -2481,6 +2482,7 @@ GLIBC_2.34 __stat64_time64 F
> GLIBC_2.34 __thrd_sleep64 F
> GLIBC_2.34 __time64 F
> GLIBC_2.34 __timegm64 F
> +GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timerfd_gettime64 F
> GLIBC_2.34 __timerfd_settime64 F
> GLIBC_2.34 __timespec_get64 F
> @@ -2647,6 +2649,7 @@ GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> +GLIBC_2.34 timer_gettime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
> index 8ab5ece2b0..c162738eae 100644
> --- a/sysdeps/unix/sysv/linux/nios2/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/librt.abilist
> @@ -1,4 +1,2 @@
> -GLIBC_2.21 timer_gettime F
> GLIBC_2.21 timer_settime F
> -GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index 5562012575..03a0a0579a 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -2070,6 +2070,7 @@ GLIBC_2.2 swscanf F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> GLIBC_2.2 timer_getoverrun F
> +GLIBC_2.2 timer_gettime F
> GLIBC_2.2 ungetwc F
> GLIBC_2.2 vfwprintf F
> GLIBC_2.2 vfwscanf F
> @@ -2498,6 +2499,7 @@ GLIBC_2.34 __stat64_time64 F
> GLIBC_2.34 __thrd_sleep64 F
> GLIBC_2.34 __time64 F
> GLIBC_2.34 __timegm64 F
> +GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timerfd_gettime64 F
> GLIBC_2.34 __timerfd_settime64 F
> GLIBC_2.34 __timespec_get64 F
> @@ -2664,6 +2666,7 @@ GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> +GLIBC_2.34 timer_gettime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> index f04b1e7978..179d1d53da 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> @@ -1,8 +1,6 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
> -GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index f0adf7b58b..793531d9c4 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -2074,6 +2074,7 @@ GLIBC_2.2 swscanf F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> GLIBC_2.2 timer_getoverrun F
> +GLIBC_2.2 timer_gettime F
> GLIBC_2.2 ungetwc F
> GLIBC_2.2 vfwprintf F
> GLIBC_2.2 vfwscanf F
> @@ -2531,6 +2532,7 @@ GLIBC_2.34 __stat64_time64 F
> GLIBC_2.34 __thrd_sleep64 F
> GLIBC_2.34 __time64 F
> GLIBC_2.34 __timegm64 F
> +GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timerfd_gettime64 F
> GLIBC_2.34 __timerfd_settime64 F
> GLIBC_2.34 __timespec_get64 F
> @@ -2697,6 +2699,7 @@ GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> +GLIBC_2.34 timer_gettime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions b/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions
> index a69927d41d..8607ac1012 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions
> @@ -29,7 +29,6 @@ libc {
> librt {
> GLIBC_2.3.3 {
> # Changed timer_t.
> - timer_gettime;
> timer_settime;
> }
> }
Ok.
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index e74ecec60f..21763f0238 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -1889,6 +1889,7 @@ GLIBC_2.3 timelocal F
> GLIBC_2.3 timer_create F
> GLIBC_2.3 timer_delete F
> GLIBC_2.3 timer_getoverrun F
> +GLIBC_2.3 timer_gettime F
> GLIBC_2.3 times F
> GLIBC_2.3 timezone D 0x8
> GLIBC_2.3 tmpfile F
> @@ -2168,6 +2169,7 @@ GLIBC_2.3.3 sys_siglist D 0x208
> GLIBC_2.3.3 timer_create F
> GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> +GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.4 __chk_fail F
> GLIBC_2.3.4 __fprintf_chk F
> GLIBC_2.3.4 __gets_chk F
> @@ -2434,6 +2436,7 @@ GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> +GLIBC_2.34 timer_gettime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> index dd8b2ad6ef..bfaae8ac0e 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> @@ -1,6 +1,4 @@
> -GLIBC_2.3 timer_gettime F
> GLIBC_2.3 timer_settime F
> -GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
> GLIBC_2.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index 2a0c06b881..ec8a207385 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -2097,6 +2097,7 @@ GLIBC_2.17 timelocal F
> GLIBC_2.17 timer_create F
> GLIBC_2.17 timer_delete F
> GLIBC_2.17 timer_getoverrun F
> +GLIBC_2.17 timer_gettime F
> GLIBC_2.17 timerfd_create F
> GLIBC_2.17 timerfd_gettime F
> GLIBC_2.17 timerfd_settime F
> @@ -2731,6 +2732,7 @@ GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> +GLIBC_2.34 timer_gettime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> index 493768f440..2cb1369ddb 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> @@ -1,2 +1 @@
> -GLIBC_2.17 timer_gettime F
> GLIBC_2.17 timer_settime F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_gettime.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_gettime.c
> deleted file mode 100644
> index cea524bae5..0000000000
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_gettime.c
> +++ /dev/null
> @@ -1 +0,0 @@
> -#include <sysdeps/unix/sysv/linux/x86_64/timer_gettime.c>
Ok.
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index 3e0e33bbb3..c7b749f6a7 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -1953,6 +1953,7 @@ GLIBC_2.33 timelocal F
> GLIBC_2.33 timer_create F
> GLIBC_2.33 timer_delete F
> GLIBC_2.33 timer_getoverrun F
> +GLIBC_2.33 timer_gettime F
> GLIBC_2.33 timerfd_create F
> GLIBC_2.33 timerfd_gettime F
> GLIBC_2.33 timerfd_settime F
> @@ -2296,6 +2297,7 @@ GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> +GLIBC_2.34 timer_gettime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> index de338094e1..c59f14490e 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> @@ -1,2 +1 @@
> -GLIBC_2.33 timer_gettime F
> GLIBC_2.33 timer_settime F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index 1092e5a170..33e13783fc 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -2019,6 +2019,7 @@ GLIBC_2.27 timelocal F
> GLIBC_2.27 timer_create F
> GLIBC_2.27 timer_delete F
> GLIBC_2.27 timer_getoverrun F
> +GLIBC_2.27 timer_gettime F
> GLIBC_2.27 timerfd_create F
> GLIBC_2.27 timerfd_gettime F
> GLIBC_2.27 timerfd_settime F
> @@ -2496,6 +2497,7 @@ GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> +GLIBC_2.34 timer_gettime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> index 624ab969d8..62ff23fd04 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> @@ -1,2 +1 @@
> -GLIBC_2.27 timer_gettime F
> GLIBC_2.27 timer_settime F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index 710cafe7c0..6681f84af2 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -2068,6 +2068,7 @@ GLIBC_2.2 swscanf F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> GLIBC_2.2 timer_getoverrun F
> +GLIBC_2.2 timer_gettime F
> GLIBC_2.2 ungetwc F
> GLIBC_2.2 versionsort64 F
> GLIBC_2.2 vfwprintf F
> @@ -2496,6 +2497,7 @@ GLIBC_2.34 __stat64_time64 F
> GLIBC_2.34 __thrd_sleep64 F
> GLIBC_2.34 __time64 F
> GLIBC_2.34 __timegm64 F
> +GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timerfd_gettime64 F
> GLIBC_2.34 __timerfd_settime64 F
> GLIBC_2.34 __timespec_get64 F
> @@ -2662,6 +2664,7 @@ GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> +GLIBC_2.34 timer_gettime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> index f04b1e7978..179d1d53da 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> @@ -1,8 +1,6 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
> -GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/Versions b/sysdeps/unix/sysv/linux/s390/s390-64/Versions
> index e7f968fcdf..5c682764ad 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/Versions
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/Versions
> @@ -9,7 +9,6 @@ libc {
> librt {
> GLIBC_2.3.3 {
> # Changed timer_t.
> - timer_gettime;
> timer_settime;
> }
> }
Ok.
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index 6b2c7e7d68..e97c113408 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -1764,6 +1764,7 @@ GLIBC_2.2 timelocal F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> GLIBC_2.2 timer_getoverrun F
> +GLIBC_2.2 timer_gettime F
> GLIBC_2.2 times F
> GLIBC_2.2 timezone D 0x8
> GLIBC_2.2 tmpfile F
> @@ -2214,6 +2215,7 @@ GLIBC_2.3.3 sys_siglist D 0x208
> GLIBC_2.3.3 timer_create F
> GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> +GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.4 __chk_fail F
> GLIBC_2.3.4 __fprintf_chk F
> GLIBC_2.3.4 __gets_chk F
> @@ -2471,6 +2473,7 @@ GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> +GLIBC_2.34 timer_gettime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> index 35dc39d27d..f851eea81e 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> @@ -1,6 +1,4 @@
> -GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> -GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
> GLIBC_2.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/timer_gettime.c b/sysdeps/unix/sysv/linux/s390/s390-64/timer_gettime.c
> deleted file mode 100644
> index cea524bae5..0000000000
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/timer_gettime.c
> +++ /dev/null
> @@ -1 +0,0 @@
> -#include <sysdeps/unix/sysv/linux/x86_64/timer_gettime.c>
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index 51a493aadb..360802cf78 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -1751,6 +1751,7 @@ GLIBC_2.2 timelocal F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> GLIBC_2.2 timer_getoverrun F
> +GLIBC_2.2 timer_gettime F
> GLIBC_2.2 times F
> GLIBC_2.2 timezone D 0x4
> GLIBC_2.2 tmpfile F
> @@ -2351,6 +2352,7 @@ GLIBC_2.34 __stat64_time64 F
> GLIBC_2.34 __thrd_sleep64 F
> GLIBC_2.34 __time64 F
> GLIBC_2.34 __timegm64 F
> +GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timerfd_gettime64 F
> GLIBC_2.34 __timerfd_settime64 F
> GLIBC_2.34 __timespec_get64 F
> @@ -2517,6 +2519,7 @@ GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> +GLIBC_2.34 timer_gettime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> index f04b1e7978..179d1d53da 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> @@ -1,8 +1,6 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
> -GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index cb37ba55cb..e9cb3ff8f1 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -1751,6 +1751,7 @@ GLIBC_2.2 timelocal F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> GLIBC_2.2 timer_getoverrun F
> +GLIBC_2.2 timer_gettime F
> GLIBC_2.2 times F
> GLIBC_2.2 timezone D 0x4
> GLIBC_2.2 tmpfile F
> @@ -2348,6 +2349,7 @@ GLIBC_2.34 __stat64_time64 F
> GLIBC_2.34 __thrd_sleep64 F
> GLIBC_2.34 __time64 F
> GLIBC_2.34 __timegm64 F
> +GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timerfd_gettime64 F
> GLIBC_2.34 __timerfd_settime64 F
> GLIBC_2.34 __timespec_get64 F
> @@ -2514,6 +2516,7 @@ GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> +GLIBC_2.34 timer_gettime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> index f04b1e7978..179d1d53da 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> @@ -1,8 +1,6 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
> -GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index 05b4e88794..2af5948dd7 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -2063,6 +2063,7 @@ GLIBC_2.2 swscanf F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> GLIBC_2.2 timer_getoverrun F
> +GLIBC_2.2 timer_gettime F
> GLIBC_2.2 ungetwc F
> GLIBC_2.2 vfwprintf F
> GLIBC_2.2 vfwscanf F
> @@ -2491,6 +2492,7 @@ GLIBC_2.34 __stat64_time64 F
> GLIBC_2.34 __thrd_sleep64 F
> GLIBC_2.34 __time64 F
> GLIBC_2.34 __timegm64 F
> +GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timerfd_gettime64 F
> GLIBC_2.34 __timerfd_settime64 F
> GLIBC_2.34 __timespec_get64 F
> @@ -2657,6 +2659,7 @@ GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> +GLIBC_2.34 timer_gettime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> index 0de56c2c15..dc0a3c4dfb 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> @@ -1,9 +1,7 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> GLIBC_2.3 __librt_version_placeholder F
> GLIBC_2.3.4 __librt_version_placeholder F
> -GLIBC_2.34 __timer_gettime64 F
> GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/Versions b/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
> index d04738fafc..5e8f59ceae 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
> @@ -14,7 +14,6 @@ libc {
> librt {
> GLIBC_2.3.3 {
> # Changed timer_t.
> - timer_gettime;
> timer_settime;
> }
> }
Ok.
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index 72591794e8..fde5b780a6 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -1794,6 +1794,7 @@ GLIBC_2.2 timelocal F
> GLIBC_2.2 timer_create F
> GLIBC_2.2 timer_delete F
> GLIBC_2.2 timer_getoverrun F
> +GLIBC_2.2 timer_gettime F
> GLIBC_2.2 times F
> GLIBC_2.2 timezone D 0x8
> GLIBC_2.2 tmpfile F
> @@ -2248,6 +2249,7 @@ GLIBC_2.3.3 sys_siglist D 0x208
> GLIBC_2.3.3 timer_create F
> GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> +GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.4 __chk_fail F
> GLIBC_2.3.4 __fprintf_chk F
> GLIBC_2.3.4 __gets_chk F
> @@ -2493,6 +2495,7 @@ GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> +GLIBC_2.34 timer_gettime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> index 34d42d122b..a2de1ecd94 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> @@ -1,8 +1,6 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_gettime F
> GLIBC_2.2 timer_settime F
> GLIBC_2.3 __librt_version_placeholder F
> -GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
> GLIBC_2.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c b/sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c
> deleted file mode 100644
> index cea524bae5..0000000000
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c
> +++ /dev/null
> @@ -1 +0,0 @@
> -#include <sysdeps/unix/sysv/linux/x86_64/timer_gettime.c>
> diff --git a/sysdeps/unix/sysv/linux/timer_gettime.c b/sysdeps/unix/sysv/linux/timer_gettime.c
> index 0b31324da7..993bef8c6a 100644
> --- a/sysdeps/unix/sysv/linux/timer_gettime.c
> +++ b/sysdeps/unix/sysv/linux/timer_gettime.c
> @@ -22,17 +22,19 @@
> #include <sysdep.h>
> #include <kernel-features.h>
> #include <kernel-posix-timers.h>
> +#include <shlib-compat.h>
>
> +#if !TIMER_T_WAS_INT_COMPAT
> int
> -__timer_gettime64 (timer_t timerid, struct __itimerspec64 *value)
> +___timer_gettime64 (timer_t timerid, struct __itimerspec64 *value)
> {
> kernel_timer_t ktimerid = timerid_to_kernel_timer (timerid);
>
> -#ifndef __NR_timer_gettime64
> -# define __NR_timer_gettime64 __NR_timer_gettime
> -#endif
> +# ifndef __NR_timer_gettime64
> +# define __NR_timer_gettime64 __NR_timer_gettime
> +# endif
> int ret = INLINE_SYSCALL_CALL (timer_gettime64, ktimerid, value);
> -#ifndef __ASSUME_TIME64_SYSCALLS
> +# ifndef __ASSUME_TIME64_SYSCALLS
> if (ret == 0 || errno != ENOSYS)
> return ret;
>
> @@ -43,12 +45,19 @@ __timer_gettime64 (timer_t timerid, struct __itimerspec64 *value)
> value->it_interval = valid_timespec_to_timespec64 (its32.it_interval);
> value->it_value = valid_timespec_to_timespec64 (its32.it_value);
> }
> -#endif
> +# endif
> return ret;
> }
>
> -#if __TIMESIZE != 64
> -librt_hidden_def (__timer_gettime64)
> +# if __TIMESIZE == 64
> +versioned_symbol (libc, ___timer_gettime64, timer_gettime, GLIBC_2_34);
> +# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_34)
> +compat_symbol (librt, ___timer_gettime64, timer_gettime, GLIBC_2_2);
> +# endif
> +
> +# else /* __TIMESIZE != 64 */
> +libc_hidden_ver (___timer_gettime64, __timer_gettime64)
> +versioned_symbol (libc, ___timer_gettime64, __timer_gettime64, GLIBC_2_34);
>
Ok.
> int
> __timer_gettime (timer_t timerid, struct itimerspec *value)
> @@ -63,5 +72,39 @@ __timer_gettime (timer_t timerid, struct itimerspec *value)
>
> return retval;
> }
> -#endif
> -weak_alias (__timer_gettime, timer_gettime)
> +versioned_symbol (libc, __timer_gettime, timer_gettime, GLIBC_2_34);
> +
> +# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_34)
> +compat_symbol (librt, __timer_gettime, timer_gettime, GLIBC_2_2);
> +# endif
> +# endif /* __TIMESIZE != 64 */
> +
> +#else /* TIMER_T_WAS_INT_COMPAT */
> +
> +extern __typeof (timer_gettime) __timer_gettime_new;
> +libc_hidden_proto (__timer_gettime_new)
> +
> +int
> +___timer_gettime_new (timer_t timerid, struct itimerspec *value)
> +{
> + kernel_timer_t ktimerid = timerid_to_kernel_timer (timerid);
> +
> + return INLINE_SYSCALL_CALL (timer_gettime, ktimerid, value);
> +}
> +versioned_symbol (libc, ___timer_gettime_new, timer_gettime, GLIBC_2_34);
> +libc_hidden_ver (___timer_gettime_new, __timer_gettime_new)
> +
> +# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_3_3, GLIBC_2_34)
> +compat_symbol (librt, ___timer_gettime_new, timer_gettime, GLIBC_2_3_3);
> +# endif
> +
> +# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_3_3)
> +int
> +__timer_gettime_old (int timerid, struct itimerspec *value)
> +{
> + return __timer_gettime_new (__timer_compat_list[timerid], value);
> +}
> +compat_symbol (librt, __timer_gettime_old, timer_gettime, GLIBC_2_2);
> +# endif
> +
> +#endif /* TIMER_T_WAS_INT_COMPAT */
Ok.
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index 92f4369765..87dc534709 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -1763,6 +1763,7 @@ GLIBC_2.2.5 timelocal F
> GLIBC_2.2.5 timer_create F
> GLIBC_2.2.5 timer_delete F
> GLIBC_2.2.5 timer_getoverrun F
> +GLIBC_2.2.5 timer_gettime F
> GLIBC_2.2.5 times F
> GLIBC_2.2.5 timezone D 0x8
> GLIBC_2.2.5 tmpfile F
> @@ -2202,6 +2203,7 @@ GLIBC_2.3.3 sys_siglist D 0x208
> GLIBC_2.3.3 timer_create F
> GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> +GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.4 __chk_fail F
> GLIBC_2.3.4 __fprintf_chk F
> GLIBC_2.3.4 __gets_chk F
> @@ -2449,6 +2451,7 @@ GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> +GLIBC_2.34 timer_gettime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> index 379fa6930c..913835d267 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> @@ -1,6 +1,4 @@
> -GLIBC_2.2.5 timer_gettime F
> GLIBC_2.2.5 timer_settime F
> -GLIBC_2.3.3 timer_gettime F
> GLIBC_2.3.3 timer_settime F
> GLIBC_2.3.4 __librt_version_placeholder F
> GLIBC_2.4 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/Versions b/sysdeps/unix/sysv/linux/x86_64/Versions
> index a97b6c7413..8deeb8908a 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/Versions
> +++ b/sysdeps/unix/sysv/linux/x86_64/Versions
> @@ -11,7 +11,6 @@ libc {
> librt {
> GLIBC_2.3.3 {
> # Changed timer_t.
> - timer_gettime;
> timer_settime;
> }
> }
Ok.
> diff --git a/sysdeps/unix/sysv/linux/x86_64/timer_gettime.c b/sysdeps/unix/sysv/linux/x86_64/timer_gettime.c
> deleted file mode 100644
> index 06ccbc40bd..0000000000
> --- a/sysdeps/unix/sysv/linux/x86_64/timer_gettime.c
> +++ /dev/null
> @@ -1,41 +0,0 @@
> -/* Copyright (C) 2003-2021 Free Software Foundation, Inc.
> - This file is part of the GNU C Library.
> - Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
> -
> - 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; see the file COPYING.LIB. If
> - not, see <https://www.gnu.org/licenses/>. */
> -
> -#include <shlib-compat.h>
> -#include <sysdep.h>
> -#include <kernel-posix-timers.h>
> -#include "compat-timer.h"
> -
> -int
> -__timer_gettime_new (timer_t timerid, struct itimerspec *value)
> -{
> - kernel_timer_t ktimerid = timerid_to_kernel_timer (timerid);
> -
> - return INLINE_SYSCALL_CALL (timer_gettime, ktimerid, value);
> -}
> -versioned_symbol (librt, __timer_gettime_new, timer_gettime, GLIBC_2_3_3);
> -
> -
> -#if SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_3_3)
> -int
> -__timer_gettime_old (int timerid, struct itimerspec *value)
> -{
> - return __timer_gettime_new (__timer_compat_list[timerid], value);
> -}
> -compat_symbol (librt, __timer_gettime_old, timer_gettime, GLIBC_2_2);
> -#endif
Ok.
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index 25b177fda0..143b8d602c 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -2014,6 +2014,7 @@ GLIBC_2.16 timelocal F
> GLIBC_2.16 timer_create F
> GLIBC_2.16 timer_delete F
> GLIBC_2.16 timer_getoverrun F
> +GLIBC_2.16 timer_gettime F
> GLIBC_2.16 timerfd_create F
> GLIBC_2.16 timerfd_gettime F
> GLIBC_2.16 timerfd_settime F
> @@ -2550,6 +2551,7 @@ GLIBC_2.34 thrd_join F
> GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> +GLIBC_2.34 timer_gettime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> index 0b969910ba..50f2032de7 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> @@ -1,2 +1 @@
> -GLIBC_2.16 timer_gettime F
> GLIBC_2.16 timer_settime F
>
Ok.
^ permalink raw reply [flat|nested] 72+ messages in thread
* [PATCH 33/34] Linux: Move timer_settime, __timer_settime64 from librt to libc
2021-06-17 18:56 [PATCH v2 00/34] Move librt into libc Florian Weimer
` (31 preceding siblings ...)
2021-06-17 18:59 ` [PATCH 32/34] Linux: Move timer_gettime, __timer_gettime64 " Florian Weimer
@ 2021-06-17 18:59 ` Florian Weimer
2021-06-24 17:42 ` Adhemerval Zanella
2021-06-17 19:00 ` [PATCH 34/34] Linux: Cleanups after librt move Florian Weimer
2021-06-24 17:49 ` [PATCH v2 00/34] Move librt into libc Adhemerval Zanella
34 siblings, 1 reply; 72+ messages in thread
From: Florian Weimer @ 2021-06-17 18:59 UTC (permalink / raw)
To: libc-alpha
The symbols were moved using scripts/move-symbol-to-libc.py.
The way the ABI intransition is implemented is changed with this
commit: the implementation is now consolidated in one file with a
TIMER_T_WAS_INT_COMPAT check.
The shared librt is now empty, so this commit adds a placeholder
symbol at the base version, GLIBC_2.2, and potentially at the
GLIBC_2.3.3 version as well (the leftover from the int/timer_t ABI
transition).
---
include/time.h | 6 +-
rt/Makefile | 2 +-
rt/Versions | 8 +-
rt/librt-compat.c | 16 ++--
sysdeps/unix/sysv/linux/Versions | 20 ++---
sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 +
sysdeps/unix/sysv/linux/aarch64/librt.abilist | 2 +-
sysdeps/unix/sysv/linux/alpha/Versions | 4 -
sysdeps/unix/sysv/linux/alpha/libc.abilist | 3 +
sysdeps/unix/sysv/linux/alpha/librt-compat.c | 2 +-
sysdeps/unix/sysv/linux/alpha/librt.abilist | 4 +-
sysdeps/unix/sysv/linux/alpha/timer_settime.c | 1 -
sysdeps/unix/sysv/linux/arc/libc.abilist | 2 +
sysdeps/unix/sysv/linux/arc/librt.abilist | 2 +-
sysdeps/unix/sysv/linux/arm/be/libc.abilist | 3 +
sysdeps/unix/sysv/linux/arm/be/librt.abilist | 3 +-
sysdeps/unix/sysv/linux/arm/le/libc.abilist | 3 +
sysdeps/unix/sysv/linux/arm/le/librt.abilist | 3 +-
sysdeps/unix/sysv/linux/csky/libc.abilist | 3 +
sysdeps/unix/sysv/linux/csky/librt.abilist | 3 +-
sysdeps/unix/sysv/linux/hppa/libc.abilist | 3 +
sysdeps/unix/sysv/linux/hppa/librt.abilist | 3 +-
sysdeps/unix/sysv/linux/i386/libc.abilist | 3 +
sysdeps/unix/sysv/linux/i386/librt.abilist | 3 +-
sysdeps/unix/sysv/linux/ia64/Versions | 6 --
sysdeps/unix/sysv/linux/ia64/libc.abilist | 3 +
sysdeps/unix/sysv/linux/ia64/librt.abilist | 4 +-
sysdeps/unix/sysv/linux/ia64/timer_settime.c | 1 -
sysdeps/unix/sysv/linux/librt-compat.c | 26 +++++++
.../sysv/linux/m68k/coldfire/libc.abilist | 3 +
.../sysv/linux/m68k/coldfire/librt.abilist | 3 +-
.../unix/sysv/linux/m68k/m680x0/libc.abilist | 3 +
.../unix/sysv/linux/m68k/m680x0/librt.abilist | 3 +-
.../sysv/linux/microblaze/be/libc.abilist | 3 +
.../sysv/linux/microblaze/be/librt.abilist | 3 +-
.../sysv/linux/microblaze/le/libc.abilist | 3 +
.../sysv/linux/microblaze/le/librt.abilist | 3 +-
.../sysv/linux/mips/mips32/fpu/libc.abilist | 3 +
.../unix/sysv/linux/mips/mips32/librt.abilist | 3 +-
.../sysv/linux/mips/mips32/nofpu/libc.abilist | 3 +
.../sysv/linux/mips/mips64/n32/libc.abilist | 3 +
.../sysv/linux/mips/mips64/n32/librt.abilist | 3 +-
.../sysv/linux/mips/mips64/n64/libc.abilist | 2 +
.../sysv/linux/mips/mips64/n64/librt.abilist | 2 +-
sysdeps/unix/sysv/linux/nios2/libc.abilist | 3 +
sysdeps/unix/sysv/linux/nios2/librt.abilist | 3 +-
.../linux/powerpc/powerpc32/fpu/libc.abilist | 3 +
.../linux/powerpc/powerpc32/librt.abilist | 3 +-
.../powerpc/powerpc32/nofpu/libc.abilist | 3 +
.../sysv/linux/powerpc/powerpc64/Versions | 7 --
.../linux/powerpc/powerpc64/be/libc.abilist | 3 +
.../linux/powerpc/powerpc64/be/librt.abilist | 4 +-
.../linux/powerpc/powerpc64/le/libc.abilist | 2 +
.../linux/powerpc/powerpc64/le/librt.abilist | 2 +-
.../linux/powerpc/powerpc64/timer_settime.c | 1 -
.../unix/sysv/linux/riscv/rv32/libc.abilist | 2 +
.../unix/sysv/linux/riscv/rv32/librt.abilist | 2 +-
.../unix/sysv/linux/riscv/rv64/libc.abilist | 2 +
.../unix/sysv/linux/riscv/rv64/librt.abilist | 2 +-
.../unix/sysv/linux/s390/s390-32/libc.abilist | 3 +
.../sysv/linux/s390/s390-32/librt.abilist | 3 +-
sysdeps/unix/sysv/linux/s390/s390-64/Versions | 7 --
.../unix/sysv/linux/s390/s390-64/libc.abilist | 3 +
.../sysv/linux/s390/s390-64/librt.abilist | 4 +-
.../sysv/linux/s390/s390-64/timer_settime.c | 1 -
sysdeps/unix/sysv/linux/sh/be/libc.abilist | 3 +
sysdeps/unix/sysv/linux/sh/be/librt.abilist | 3 +-
sysdeps/unix/sysv/linux/sh/le/libc.abilist | 3 +
sysdeps/unix/sysv/linux/sh/le/librt.abilist | 3 +-
sysdeps/unix/sysv/linux/sparc/librt-compat.c | 2 +-
.../sysv/linux/sparc/sparc32/libc.abilist | 3 +
.../sysv/linux/sparc/sparc32/librt.abilist | 3 +-
.../unix/sysv/linux/sparc/sparc64/Versions | 7 --
.../sysv/linux/sparc/sparc64/libc.abilist | 3 +
.../sysv/linux/sparc/sparc64/librt.abilist | 4 +-
.../sysv/linux/sparc/sparc64/timer_settime.c | 1 -
sysdeps/unix/sysv/linux/timer_settime.c | 73 +++++++++++++++----
.../unix/sysv/linux/x86_64/64/libc.abilist | 3 +
.../unix/sysv/linux/x86_64/64/librt.abilist | 4 +-
sysdeps/unix/sysv/linux/x86_64/Versions | 7 --
sysdeps/unix/sysv/linux/x86_64/compat-timer.h | 37 ----------
.../unix/sysv/linux/x86_64/timer_settime.c | 44 -----------
.../unix/sysv/linux/x86_64/x32/libc.abilist | 2 +
.../unix/sysv/linux/x86_64/x32/librt.abilist | 2 +-
84 files changed, 245 insertions(+), 212 deletions(-)
delete mode 100644 sysdeps/unix/sysv/linux/alpha/timer_settime.c
delete mode 100644 sysdeps/unix/sysv/linux/ia64/timer_settime.c
create mode 100644 sysdeps/unix/sysv/linux/librt-compat.c
delete mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_settime.c
delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-64/timer_settime.c
delete mode 100644 sysdeps/unix/sysv/linux/sparc/sparc64/timer_settime.c
delete mode 100644 sysdeps/unix/sysv/linux/x86_64/compat-timer.h
delete mode 100644 sysdeps/unix/sysv/linux/x86_64/timer_settime.c
diff --git a/include/time.h b/include/time.h
index 3f4ff44ac3..22b29ca583 100644
--- a/include/time.h
+++ b/include/time.h
@@ -236,7 +236,11 @@ extern int __timer_settime64 (timer_t timerid, int flags,
extern int __timerfd_settime64 (int fd, int flags,
const struct __itimerspec64 *value,
struct __itimerspec64 *ovalue);
-librt_hidden_proto (__timer_settime64);
+# if PTHREAD_IN_LIBC
+libc_hidden_proto (__timer_settime64)
+#else
+librt_hidden_proto (__timer_settime64)
+#endif
libc_hidden_proto (__timerfd_settime64);
#endif
diff --git a/rt/Makefile b/rt/Makefile
index e2ef5f4b0b..c1e989ede8 100644
--- a/rt/Makefile
+++ b/rt/Makefile
@@ -30,7 +30,6 @@ routines = \
librt-routines = \
librt-compat \
- timer_settime \
librt-shared-only-routines = librt-compat
@@ -63,6 +62,7 @@ $(librt-routines-var) += \
timer_delete \
timer_getoverr \
timer_gettime \
+ timer_settime \
tests := tst-shm tst-timer tst-timer2 \
tst-aio tst-aio64 tst-aio2 tst-aio3 tst-aio4 tst-aio5 tst-aio6 \
diff --git a/rt/Versions b/rt/Versions
index d1f05af013..7e41beae06 100644
--- a/rt/Versions
+++ b/rt/Versions
@@ -26,6 +26,7 @@ libc {
timer_delete;
timer_getoverrun;
timer_gettime;
+ timer_settime;
%endif
shm_open;
shm_unlink;
@@ -89,6 +90,7 @@ libc {
timer_delete;
timer_getoverrun;
timer_gettime;
+ timer_settime;
%endif
shm_open;
shm_unlink;
@@ -132,13 +134,15 @@ librt {
%endif
}
GLIBC_2.2 {
-%if !PTHREAD_IN_LIBC
+%if PTHREAD_IN_LIBC
+ __librt_version_placeholder;
+%else
timer_create;
timer_delete;
timer_getoverrun;
timer_gettime;
-%endif
timer_settime;
+%endif
}
GLIBC_2.3.4 {
%if PTHREAD_IN_LIBC
diff --git a/rt/librt-compat.c b/rt/librt-compat.c
index 24c2ed9db4..84f50c82a9 100644
--- a/rt/librt-compat.c
+++ b/rt/librt-compat.c
@@ -20,6 +20,7 @@
# include <shlib-compat.h>
# include <sys/cdefs.h>
+# if SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_34)
void
attribute_compat_text_section
__attribute_used__
@@ -27,25 +28,26 @@ __librt_version_placeholder_1 (void)
{
}
-# if SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_2)
compat_symbol (librt, __librt_version_placeholder_1,
__librt_version_placeholder, GLIBC_2_1);
# endif
-# if SHLIB_COMPAT (librt, GLIBC_2_4, GLIBC_2_34) \
- && ABI_librt_GLIBC_2_3_4 != ABI_librt_GLIBC_2_1
+# if SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (librt, __librt_version_placeholder_1,
+ __librt_version_placeholder, GLIBC_2_2);
+# endif
+
+# if SHLIB_COMPAT (librt, GLIBC_2_3_4, GLIBC_2_34)
compat_symbol (librt, __librt_version_placeholder_1,
__librt_version_placeholder, GLIBC_2_3_4);
# endif
-# if SHLIB_COMPAT (librt, GLIBC_2_4, GLIBC_2_34) \
- && ABI_librt_GLIBC_2_4 != ABI_librt_GLIBC_2_1
+# if SHLIB_COMPAT (librt, GLIBC_2_4, GLIBC_2_34)
compat_symbol (librt, __librt_version_placeholder_1,
__librt_version_placeholder, GLIBC_2_4);
# endif
-# if SHLIB_COMPAT (librt, GLIBC_2_7, GLIBC_2_34) \
- && ABI_librt_GLIBC_2_7 != ABI_librt_GLIBC_2_4
+# if SHLIB_COMPAT (librt, GLIBC_2_7, GLIBC_2_34)
compat_symbol (librt, __librt_version_placeholder_1,
__librt_version_placeholder, GLIBC_2_7);
# endif
diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions
index 9bb9d955a5..578d55e7fd 100644
--- a/sysdeps/unix/sysv/linux/Versions
+++ b/sysdeps/unix/sysv/linux/Versions
@@ -127,6 +127,7 @@ libc {
timer_delete;
timer_getoverrun;
timer_gettime;
+ timer_settime;
}
GLIBC_2.3.4 {
sched_getaffinity; sched_setaffinity;
@@ -269,6 +270,7 @@ libc {
__time64;
__timegm64;
__timer_gettime64;
+ __timer_settime64;
__timerfd_gettime64;
__timerfd_settime64;
__timespec_get64;
@@ -300,18 +302,18 @@ libc {
}
}
-ld {
- GLIBC_PRIVATE {
- __nptl_change_stack_perm;
+librt {
+ GLIBC_2.3.3 {
+ # Leftover from the int -> timer_t transition. For ABIs that came later
+ # and do not have the symbol version, this version node is merged with
+ # the baseline version.
+ __librt_version_placeholder;
}
}
-librt {
- GLIBC_2.34 {
-%ifdef TIME64_NON_DEFAULT
- # 64-bit time_t support
- __timer_settime64;
-%endif
+ld {
+ GLIBC_PRIVATE {
+ __nptl_change_stack_perm;
}
}
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 23130c3c9e..5ff33f63e3 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -2010,6 +2010,7 @@ GLIBC_2.17 timer_create F
GLIBC_2.17 timer_delete F
GLIBC_2.17 timer_getoverrun F
GLIBC_2.17 timer_gettime F
+GLIBC_2.17 timer_settime F
GLIBC_2.17 timerfd_create F
GLIBC_2.17 timerfd_gettime F
GLIBC_2.17 timerfd_settime F
@@ -2537,6 +2538,7 @@ GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timer_gettime F
+GLIBC_2.34 timer_settime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
index 2cb1369ddb..88d0fc382f 100644
--- a/sysdeps/unix/sysv/linux/aarch64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
@@ -1 +1 @@
-GLIBC_2.17 timer_settime F
+GLIBC_2.17 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/alpha/Versions b/sysdeps/unix/sysv/linux/alpha/Versions
index 0359822d6d..87ef61437d 100644
--- a/sysdeps/unix/sysv/linux/alpha/Versions
+++ b/sysdeps/unix/sysv/linux/alpha/Versions
@@ -102,8 +102,4 @@ librt {
GLIBC_2.3 {
__librt_version_placeholder;
}
- GLIBC_2.3.3 {
- # Changed timer_t.
- timer_settime;
- }
}
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 1f2fff3443..503a96b255 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -2097,6 +2097,7 @@ GLIBC_2.2 timer_create F
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.2 ungetwc F
GLIBC_2.2 vfwprintf F
GLIBC_2.2 vfwscanf F
@@ -2361,6 +2362,7 @@ GLIBC_2.3.3 timer_create F
GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
+GLIBC_2.3.3 timer_settime F
GLIBC_2.3.4 _OtsAddX F
GLIBC_2.3.4 _OtsConvertFloatTX F
GLIBC_2.3.4 _OtsConvertFloatXT F
@@ -2635,6 +2637,7 @@ GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timer_gettime F
+GLIBC_2.34 timer_settime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/alpha/librt-compat.c b/sysdeps/unix/sysv/linux/alpha/librt-compat.c
index 96e92e1637..7c699d3395 100644
--- a/sysdeps/unix/sysv/linux/alpha/librt-compat.c
+++ b/sysdeps/unix/sysv/linux/alpha/librt-compat.c
@@ -16,7 +16,7 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <rt/librt-compat.c>
+#include <sysdeps/unix/sysv/linux/librt-compat.c>
#if SHLIB_COMPAT (librt, GLIBC_2_3, GLIBC_2_34)
compat_symbol (librt, __librt_version_placeholder_1,
diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
index a2de1ecd94..f68e03dfde 100644
--- a/sysdeps/unix/sysv/linux/alpha/librt.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist
@@ -1,7 +1,7 @@
GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_settime F
+GLIBC_2.2 __librt_version_placeholder F
GLIBC_2.3 __librt_version_placeholder F
-GLIBC_2.3.3 timer_settime F
+GLIBC_2.3.3 __librt_version_placeholder F
GLIBC_2.3.4 __librt_version_placeholder F
GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/alpha/timer_settime.c b/sysdeps/unix/sysv/linux/alpha/timer_settime.c
deleted file mode 100644
index fa231149d5..0000000000
--- a/sysdeps/unix/sysv/linux/alpha/timer_settime.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/x86_64/timer_settime.c>
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 8ece5c40fb..e29bd7cd55 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1944,6 +1944,7 @@ GLIBC_2.32 timer_create F
GLIBC_2.32 timer_delete F
GLIBC_2.32 timer_getoverrun F
GLIBC_2.32 timer_gettime F
+GLIBC_2.32 timer_settime F
GLIBC_2.32 timerfd_create F
GLIBC_2.32 timerfd_gettime F
GLIBC_2.32 timerfd_settime F
@@ -2296,6 +2297,7 @@ GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timer_gettime F
+GLIBC_2.34 timer_settime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
index 0023244be6..f77591fa3e 100644
--- a/sysdeps/unix/sysv/linux/arc/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arc/librt.abilist
@@ -1 +1 @@
-GLIBC_2.32 timer_settime F
+GLIBC_2.32 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 515c3a224a..ac89f19c0a 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -272,6 +272,7 @@ GLIBC_2.34 __thrd_sleep64 F
GLIBC_2.34 __time64 F
GLIBC_2.34 __timegm64 F
GLIBC_2.34 __timer_gettime64 F
+GLIBC_2.34 __timer_settime64 F
GLIBC_2.34 __timerfd_gettime64 F
GLIBC_2.34 __timerfd_settime64 F
GLIBC_2.34 __timespec_get64 F
@@ -439,6 +440,7 @@ GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timer_gettime F
+GLIBC_2.34 timer_settime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
@@ -2359,6 +2361,7 @@ GLIBC_2.4 timer_create F
GLIBC_2.4 timer_delete F
GLIBC_2.4 timer_getoverrun F
GLIBC_2.4 timer_gettime F
+GLIBC_2.4 timer_settime F
GLIBC_2.4 times F
GLIBC_2.4 timezone D 0x4
GLIBC_2.4 tmpfile F
diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
index 2f84162558..0010b34d5c 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -1,3 +1,2 @@
-GLIBC_2.34 __timer_settime64 F
-GLIBC_2.4 timer_settime F
+GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 7b7ca7d348..07fce73516 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -269,6 +269,7 @@ GLIBC_2.34 __thrd_sleep64 F
GLIBC_2.34 __time64 F
GLIBC_2.34 __timegm64 F
GLIBC_2.34 __timer_gettime64 F
+GLIBC_2.34 __timer_settime64 F
GLIBC_2.34 __timerfd_gettime64 F
GLIBC_2.34 __timerfd_settime64 F
GLIBC_2.34 __timespec_get64 F
@@ -436,6 +437,7 @@ GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timer_gettime F
+GLIBC_2.34 timer_settime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
@@ -2356,6 +2358,7 @@ GLIBC_2.4 timer_create F
GLIBC_2.4 timer_delete F
GLIBC_2.4 timer_getoverrun F
GLIBC_2.4 timer_gettime F
+GLIBC_2.4 timer_settime F
GLIBC_2.4 times F
GLIBC_2.4 timezone D 0x4
GLIBC_2.4 tmpfile F
diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
index 2f84162558..0010b34d5c 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -1,3 +1,2 @@
-GLIBC_2.34 __timer_settime64 F
-GLIBC_2.4 timer_settime F
+GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index d53acb2c08..d06f38eba0 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -2034,6 +2034,7 @@ GLIBC_2.29 timer_create F
GLIBC_2.29 timer_delete F
GLIBC_2.29 timer_getoverrun F
GLIBC_2.29 timer_gettime F
+GLIBC_2.29 timer_settime F
GLIBC_2.29 timerfd_create F
GLIBC_2.29 timerfd_gettime F
GLIBC_2.29 timerfd_settime F
@@ -2393,6 +2394,7 @@ GLIBC_2.34 __thrd_sleep64 F
GLIBC_2.34 __time64 F
GLIBC_2.34 __timegm64 F
GLIBC_2.34 __timer_gettime64 F
+GLIBC_2.34 __timer_settime64 F
GLIBC_2.34 __timerfd_gettime64 F
GLIBC_2.34 __timerfd_settime64 F
GLIBC_2.34 __timespec_get64 F
@@ -2560,6 +2562,7 @@ GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timer_gettime F
+GLIBC_2.34 timer_settime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
index 52b2819a7d..1a55315b87 100644
--- a/sysdeps/unix/sysv/linux/csky/librt.abilist
+++ b/sysdeps/unix/sysv/linux/csky/librt.abilist
@@ -1,2 +1 @@
-GLIBC_2.29 timer_settime F
-GLIBC_2.34 __timer_settime64 F
+GLIBC_2.29 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index a592e3f628..2f5dfd66ad 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -1748,6 +1748,7 @@ GLIBC_2.2 timer_create F
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.2 times F
GLIBC_2.2 timezone D 0x4
GLIBC_2.2 tmpfile F
@@ -2346,6 +2347,7 @@ GLIBC_2.34 __thrd_sleep64 F
GLIBC_2.34 __time64 F
GLIBC_2.34 __timegm64 F
GLIBC_2.34 __timer_gettime64 F
+GLIBC_2.34 __timer_settime64 F
GLIBC_2.34 __timerfd_gettime64 F
GLIBC_2.34 __timerfd_settime64 F
GLIBC_2.34 __timespec_get64 F
@@ -2513,6 +2515,7 @@ GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timer_gettime F
+GLIBC_2.34 timer_settime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
index 179d1d53da..6d24ce527d 100644
--- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
@@ -1,6 +1,5 @@
GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_settime F
+GLIBC_2.2 __librt_version_placeholder F
GLIBC_2.3.4 __librt_version_placeholder F
-GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index bd3824cb88..1accf0a9c1 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -2110,6 +2110,7 @@ GLIBC_2.2 timer_create F
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.2 ungetwc F
GLIBC_2.2 versionsort64 F
GLIBC_2.2 vfwprintf F
@@ -2530,6 +2531,7 @@ GLIBC_2.34 __thrd_sleep64 F
GLIBC_2.34 __time64 F
GLIBC_2.34 __timegm64 F
GLIBC_2.34 __timer_gettime64 F
+GLIBC_2.34 __timer_settime64 F
GLIBC_2.34 __timerfd_gettime64 F
GLIBC_2.34 __timerfd_settime64 F
GLIBC_2.34 __timespec_get64 F
@@ -2697,6 +2699,7 @@ GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timer_gettime F
+GLIBC_2.34 timer_settime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
index 179d1d53da..6d24ce527d 100644
--- a/sysdeps/unix/sysv/linux/i386/librt.abilist
+++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
@@ -1,6 +1,5 @@
GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_settime F
+GLIBC_2.2 __librt_version_placeholder F
GLIBC_2.3.4 __librt_version_placeholder F
-GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/ia64/Versions b/sysdeps/unix/sysv/linux/ia64/Versions
index 9a7faf067a..9900916a6c 100644
--- a/sysdeps/unix/sysv/linux/ia64/Versions
+++ b/sysdeps/unix/sysv/linux/ia64/Versions
@@ -27,9 +27,3 @@ libc {
recvmsg; sendmsg;
}
}
-librt {
- GLIBC_2.3.3 {
- # Changed timer_t.
- timer_settime;
- }
-}
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index d589ce16d6..79b4153e63 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -1769,6 +1769,7 @@ GLIBC_2.2 timer_create F
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.2 times F
GLIBC_2.2 timezone D 0x8
GLIBC_2.2 tmpfile F
@@ -2226,6 +2227,7 @@ GLIBC_2.3.3 timer_create F
GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
+GLIBC_2.3.3 timer_settime F
GLIBC_2.3.4 __chk_fail F
GLIBC_2.3.4 __fprintf_chk F
GLIBC_2.3.4 __gets_chk F
@@ -2473,6 +2475,7 @@ GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timer_gettime F
+GLIBC_2.34 timer_settime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
index 7d8e91b0d9..ff77c0d32e 100644
--- a/sysdeps/unix/sysv/linux/ia64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/librt.abilist
@@ -1,6 +1,6 @@
GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_settime F
-GLIBC_2.3.3 timer_settime F
+GLIBC_2.2 __librt_version_placeholder F
+GLIBC_2.3.3 __librt_version_placeholder F
GLIBC_2.3.4 __librt_version_placeholder F
GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/ia64/timer_settime.c b/sysdeps/unix/sysv/linux/ia64/timer_settime.c
deleted file mode 100644
index fa231149d5..0000000000
--- a/sysdeps/unix/sysv/linux/ia64/timer_settime.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/x86_64/timer_settime.c>
diff --git a/sysdeps/unix/sysv/linux/librt-compat.c b/sysdeps/unix/sysv/linux/librt-compat.c
new file mode 100644
index 0000000000..f8b09908a2
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/librt-compat.c
@@ -0,0 +1,26 @@
+/* Placeholder definitions to pull in removed symbol versions. Linux 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>
+#include <kernel-posix-timers.h>
+
+/* GLIBC_2.3.3 symbols were added for the int -> timer_t ABI transition. */
+#if TIMER_T_WAS_INT_COMPAT
+compat_symbol (librt, __librt_version_placeholder_1,
+ __librt_version_placeholder, GLIBC_2_3_3);
+#endif
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 7e986dcfd5..ddbaeb3660 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -273,6 +273,7 @@ GLIBC_2.34 __thrd_sleep64 F
GLIBC_2.34 __time64 F
GLIBC_2.34 __timegm64 F
GLIBC_2.34 __timer_gettime64 F
+GLIBC_2.34 __timer_settime64 F
GLIBC_2.34 __timerfd_gettime64 F
GLIBC_2.34 __timerfd_settime64 F
GLIBC_2.34 __timespec_get64 F
@@ -440,6 +441,7 @@ GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timer_gettime F
+GLIBC_2.34 timer_settime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
@@ -2339,6 +2341,7 @@ GLIBC_2.4 timer_create F
GLIBC_2.4 timer_delete F
GLIBC_2.4 timer_getoverrun F
GLIBC_2.4 timer_gettime F
+GLIBC_2.4 timer_settime F
GLIBC_2.4 times F
GLIBC_2.4 timezone D 0x4
GLIBC_2.4 tmpfile F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
index 2f84162558..0010b34d5c 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -1,3 +1,2 @@
-GLIBC_2.34 __timer_settime64 F
-GLIBC_2.4 timer_settime F
+GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 97fe827b8d..3295de3102 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2066,6 +2066,7 @@ GLIBC_2.2 timer_create F
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.2 ungetwc F
GLIBC_2.2 versionsort64 F
GLIBC_2.2 vfwprintf F
@@ -2473,6 +2474,7 @@ GLIBC_2.34 __thrd_sleep64 F
GLIBC_2.34 __time64 F
GLIBC_2.34 __timegm64 F
GLIBC_2.34 __timer_gettime64 F
+GLIBC_2.34 __timer_settime64 F
GLIBC_2.34 __timerfd_gettime64 F
GLIBC_2.34 __timerfd_settime64 F
GLIBC_2.34 __timespec_get64 F
@@ -2640,6 +2642,7 @@ GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timer_gettime F
+GLIBC_2.34 timer_settime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
index 179d1d53da..6d24ce527d 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
@@ -1,6 +1,5 @@
GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_settime F
+GLIBC_2.2 __librt_version_placeholder F
GLIBC_2.3.4 __librt_version_placeholder F
-GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 56b5f885b7..18d8e9d748 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -2014,6 +2014,7 @@ GLIBC_2.18 timer_create F
GLIBC_2.18 timer_delete F
GLIBC_2.18 timer_getoverrun F
GLIBC_2.18 timer_gettime F
+GLIBC_2.18 timer_settime F
GLIBC_2.18 timerfd_create F
GLIBC_2.18 timerfd_gettime F
GLIBC_2.18 timerfd_settime F
@@ -2444,6 +2445,7 @@ GLIBC_2.34 __thrd_sleep64 F
GLIBC_2.34 __time64 F
GLIBC_2.34 __timegm64 F
GLIBC_2.34 __timer_gettime64 F
+GLIBC_2.34 __timer_settime64 F
GLIBC_2.34 __timerfd_gettime64 F
GLIBC_2.34 __timerfd_settime64 F
GLIBC_2.34 __timespec_get64 F
@@ -2611,6 +2613,7 @@ GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timer_gettime F
+GLIBC_2.34 timer_settime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
index 8a4faf155c..825b445ef7 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
@@ -1,2 +1 @@
-GLIBC_2.18 timer_settime F
-GLIBC_2.34 __timer_settime64 F
+GLIBC_2.18 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 8910180ff8..2de03396dd 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -2014,6 +2014,7 @@ GLIBC_2.18 timer_create F
GLIBC_2.18 timer_delete F
GLIBC_2.18 timer_getoverrun F
GLIBC_2.18 timer_gettime F
+GLIBC_2.18 timer_settime F
GLIBC_2.18 timerfd_create F
GLIBC_2.18 timerfd_gettime F
GLIBC_2.18 timerfd_settime F
@@ -2441,6 +2442,7 @@ GLIBC_2.34 __thrd_sleep64 F
GLIBC_2.34 __time64 F
GLIBC_2.34 __timegm64 F
GLIBC_2.34 __timer_gettime64 F
+GLIBC_2.34 __timer_settime64 F
GLIBC_2.34 __timerfd_gettime64 F
GLIBC_2.34 __timerfd_settime64 F
GLIBC_2.34 __timespec_get64 F
@@ -2608,6 +2610,7 @@ GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timer_gettime F
+GLIBC_2.34 timer_settime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
index 8a4faf155c..825b445ef7 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
@@ -1,2 +1 @@
-GLIBC_2.18 timer_settime F
-GLIBC_2.34 __timer_settime64 F
+GLIBC_2.18 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index e81456caf7..302af0376d 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -1997,6 +1997,7 @@ GLIBC_2.2 timer_create F
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.2 tmpfile F
GLIBC_2.2 tmpfile64 F
GLIBC_2.2 truncate64 F
@@ -2438,6 +2439,7 @@ GLIBC_2.34 __thrd_sleep64 F
GLIBC_2.34 __time64 F
GLIBC_2.34 __timegm64 F
GLIBC_2.34 __timer_gettime64 F
+GLIBC_2.34 __timer_settime64 F
GLIBC_2.34 __timerfd_gettime64 F
GLIBC_2.34 __timerfd_settime64 F
GLIBC_2.34 __timespec_get64 F
@@ -2605,6 +2607,7 @@ GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timer_gettime F
+GLIBC_2.34 timer_settime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
index 211a60584c..a7f1518c0b 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
@@ -1,5 +1,4 @@
-GLIBC_2.2 timer_settime F
+GLIBC_2.2 __librt_version_placeholder F
GLIBC_2.3.4 __librt_version_placeholder F
-GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index ecbad99217..50e51bf15d 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -1995,6 +1995,7 @@ GLIBC_2.2 timer_create F
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.2 tmpfile F
GLIBC_2.2 tmpfile64 F
GLIBC_2.2 truncate64 F
@@ -2436,6 +2437,7 @@ GLIBC_2.34 __thrd_sleep64 F
GLIBC_2.34 __time64 F
GLIBC_2.34 __timegm64 F
GLIBC_2.34 __timer_gettime64 F
+GLIBC_2.34 __timer_settime64 F
GLIBC_2.34 __timerfd_gettime64 F
GLIBC_2.34 __timerfd_settime64 F
GLIBC_2.34 __timespec_get64 F
@@ -2603,6 +2605,7 @@ GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timer_gettime F
+GLIBC_2.34 timer_settime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 986b16ece3..99be006a91 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -1993,6 +1993,7 @@ GLIBC_2.2 timer_create F
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.2 tmpfile F
GLIBC_2.2 tmpfile64 F
GLIBC_2.2 truncate64 F
@@ -2444,6 +2445,7 @@ GLIBC_2.34 __thrd_sleep64 F
GLIBC_2.34 __time64 F
GLIBC_2.34 __timegm64 F
GLIBC_2.34 __timer_gettime64 F
+GLIBC_2.34 __timer_settime64 F
GLIBC_2.34 __timerfd_gettime64 F
GLIBC_2.34 __timerfd_settime64 F
GLIBC_2.34 __timespec_get64 F
@@ -2611,6 +2613,7 @@ GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timer_gettime F
+GLIBC_2.34 timer_settime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
index 211a60584c..a7f1518c0b 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
@@ -1,5 +1,4 @@
-GLIBC_2.2 timer_settime F
+GLIBC_2.2 __librt_version_placeholder F
GLIBC_2.3.4 __librt_version_placeholder F
-GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 141e1b295f..f3c39841dd 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -1989,6 +1989,7 @@ GLIBC_2.2 timer_create F
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.2 tmpfile F
GLIBC_2.2 tmpfile64 F
GLIBC_2.2 truncate64 F
@@ -2525,6 +2526,7 @@ GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timer_gettime F
+GLIBC_2.34 timer_settime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
index 406120e1d8..a7f1518c0b 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
@@ -1,4 +1,4 @@
-GLIBC_2.2 timer_settime F
+GLIBC_2.2 __librt_version_placeholder F
GLIBC_2.3.4 __librt_version_placeholder F
GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 71dc98ecf7..55f3102cbf 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -2056,6 +2056,7 @@ GLIBC_2.21 timer_create F
GLIBC_2.21 timer_delete F
GLIBC_2.21 timer_getoverrun F
GLIBC_2.21 timer_gettime F
+GLIBC_2.21 timer_settime F
GLIBC_2.21 timerfd_create F
GLIBC_2.21 timerfd_gettime F
GLIBC_2.21 timerfd_settime F
@@ -2483,6 +2484,7 @@ GLIBC_2.34 __thrd_sleep64 F
GLIBC_2.34 __time64 F
GLIBC_2.34 __timegm64 F
GLIBC_2.34 __timer_gettime64 F
+GLIBC_2.34 __timer_settime64 F
GLIBC_2.34 __timerfd_gettime64 F
GLIBC_2.34 __timerfd_settime64 F
GLIBC_2.34 __timespec_get64 F
@@ -2650,6 +2652,7 @@ GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timer_gettime F
+GLIBC_2.34 timer_settime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
index c162738eae..834a4dcc7a 100644
--- a/sysdeps/unix/sysv/linux/nios2/librt.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/librt.abilist
@@ -1,2 +1 @@
-GLIBC_2.21 timer_settime F
-GLIBC_2.34 __timer_settime64 F
+GLIBC_2.21 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 03a0a0579a..82144c268e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -2071,6 +2071,7 @@ GLIBC_2.2 timer_create F
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.2 ungetwc F
GLIBC_2.2 vfwprintf F
GLIBC_2.2 vfwscanf F
@@ -2500,6 +2501,7 @@ GLIBC_2.34 __thrd_sleep64 F
GLIBC_2.34 __time64 F
GLIBC_2.34 __timegm64 F
GLIBC_2.34 __timer_gettime64 F
+GLIBC_2.34 __timer_settime64 F
GLIBC_2.34 __timerfd_gettime64 F
GLIBC_2.34 __timerfd_settime64 F
GLIBC_2.34 __timespec_get64 F
@@ -2667,6 +2669,7 @@ GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timer_gettime F
+GLIBC_2.34 timer_settime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
index 179d1d53da..6d24ce527d 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
@@ -1,6 +1,5 @@
GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_settime F
+GLIBC_2.2 __librt_version_placeholder F
GLIBC_2.3.4 __librt_version_placeholder F
-GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 793531d9c4..4545f49cee 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -2075,6 +2075,7 @@ GLIBC_2.2 timer_create F
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.2 ungetwc F
GLIBC_2.2 vfwprintf F
GLIBC_2.2 vfwscanf F
@@ -2533,6 +2534,7 @@ GLIBC_2.34 __thrd_sleep64 F
GLIBC_2.34 __time64 F
GLIBC_2.34 __timegm64 F
GLIBC_2.34 __timer_gettime64 F
+GLIBC_2.34 __timer_settime64 F
GLIBC_2.34 __timerfd_gettime64 F
GLIBC_2.34 __timerfd_settime64 F
GLIBC_2.34 __timespec_get64 F
@@ -2700,6 +2702,7 @@ GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timer_gettime F
+GLIBC_2.34 timer_settime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions b/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions
index 8607ac1012..0cdda49402 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions
@@ -25,10 +25,3 @@ libc {
__ppc_get_timebase_freq;
}
}
-
-librt {
- GLIBC_2.3.3 {
- # Changed timer_t.
- timer_settime;
- }
-}
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 21763f0238..d47efa98ff 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -1890,6 +1890,7 @@ GLIBC_2.3 timer_create F
GLIBC_2.3 timer_delete F
GLIBC_2.3 timer_getoverrun F
GLIBC_2.3 timer_gettime F
+GLIBC_2.3 timer_settime F
GLIBC_2.3 times F
GLIBC_2.3 timezone D 0x8
GLIBC_2.3 tmpfile F
@@ -2170,6 +2171,7 @@ GLIBC_2.3.3 timer_create F
GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
+GLIBC_2.3.3 timer_settime F
GLIBC_2.3.4 __chk_fail F
GLIBC_2.3.4 __fprintf_chk F
GLIBC_2.3.4 __gets_chk F
@@ -2437,6 +2439,7 @@ GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timer_gettime F
+GLIBC_2.34 timer_settime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
index bfaae8ac0e..506870e3fd 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
@@ -1,5 +1,5 @@
-GLIBC_2.3 timer_settime F
-GLIBC_2.3.3 timer_settime F
+GLIBC_2.3 __librt_version_placeholder F
+GLIBC_2.3.3 __librt_version_placeholder F
GLIBC_2.3.4 __librt_version_placeholder F
GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index ec8a207385..e08cbf7b2a 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -2098,6 +2098,7 @@ GLIBC_2.17 timer_create F
GLIBC_2.17 timer_delete F
GLIBC_2.17 timer_getoverrun F
GLIBC_2.17 timer_gettime F
+GLIBC_2.17 timer_settime F
GLIBC_2.17 timerfd_create F
GLIBC_2.17 timerfd_gettime F
GLIBC_2.17 timerfd_settime F
@@ -2733,6 +2734,7 @@ GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timer_gettime F
+GLIBC_2.34 timer_settime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
index 2cb1369ddb..88d0fc382f 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
@@ -1 +1 @@
-GLIBC_2.17 timer_settime F
+GLIBC_2.17 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_settime.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_settime.c
deleted file mode 100644
index fa231149d5..0000000000
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_settime.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/x86_64/timer_settime.c>
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index c7b749f6a7..a8482733cd 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1954,6 +1954,7 @@ GLIBC_2.33 timer_create F
GLIBC_2.33 timer_delete F
GLIBC_2.33 timer_getoverrun F
GLIBC_2.33 timer_gettime F
+GLIBC_2.33 timer_settime F
GLIBC_2.33 timerfd_create F
GLIBC_2.33 timerfd_gettime F
GLIBC_2.33 timerfd_settime F
@@ -2298,6 +2299,7 @@ GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timer_gettime F
+GLIBC_2.34 timer_settime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
index c59f14490e..b8af976642 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
@@ -1 +1 @@
-GLIBC_2.33 timer_settime F
+GLIBC_2.33 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 33e13783fc..a2448c1c74 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -2020,6 +2020,7 @@ GLIBC_2.27 timer_create F
GLIBC_2.27 timer_delete F
GLIBC_2.27 timer_getoverrun F
GLIBC_2.27 timer_gettime F
+GLIBC_2.27 timer_settime F
GLIBC_2.27 timerfd_create F
GLIBC_2.27 timerfd_gettime F
GLIBC_2.27 timerfd_settime F
@@ -2498,6 +2499,7 @@ GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timer_gettime F
+GLIBC_2.34 timer_settime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
index 62ff23fd04..d7902a3ec7 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
@@ -1 +1 @@
-GLIBC_2.27 timer_settime F
+GLIBC_2.27 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 6681f84af2..5ee1e09391 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -2069,6 +2069,7 @@ GLIBC_2.2 timer_create F
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.2 ungetwc F
GLIBC_2.2 versionsort64 F
GLIBC_2.2 vfwprintf F
@@ -2498,6 +2499,7 @@ GLIBC_2.34 __thrd_sleep64 F
GLIBC_2.34 __time64 F
GLIBC_2.34 __timegm64 F
GLIBC_2.34 __timer_gettime64 F
+GLIBC_2.34 __timer_settime64 F
GLIBC_2.34 __timerfd_gettime64 F
GLIBC_2.34 __timerfd_settime64 F
GLIBC_2.34 __timespec_get64 F
@@ -2665,6 +2667,7 @@ GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timer_gettime F
+GLIBC_2.34 timer_settime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
index 179d1d53da..6d24ce527d 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
@@ -1,6 +1,5 @@
GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_settime F
+GLIBC_2.2 __librt_version_placeholder F
GLIBC_2.3.4 __librt_version_placeholder F
-GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/Versions b/sysdeps/unix/sysv/linux/s390/s390-64/Versions
index 5c682764ad..83092db48e 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/Versions
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/Versions
@@ -5,10 +5,3 @@ libc {
__frame_state_for; __register_frame_info_table;
}
}
-
-librt {
- GLIBC_2.3.3 {
- # Changed timer_t.
- timer_settime;
- }
-}
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index e97c113408..1cd10e7e77 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -1765,6 +1765,7 @@ GLIBC_2.2 timer_create F
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.2 times F
GLIBC_2.2 timezone D 0x8
GLIBC_2.2 tmpfile F
@@ -2216,6 +2217,7 @@ GLIBC_2.3.3 timer_create F
GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
+GLIBC_2.3.3 timer_settime F
GLIBC_2.3.4 __chk_fail F
GLIBC_2.3.4 __fprintf_chk F
GLIBC_2.3.4 __gets_chk F
@@ -2474,6 +2476,7 @@ GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timer_gettime F
+GLIBC_2.34 timer_settime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
index f851eea81e..7dac2342ac 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
@@ -1,5 +1,5 @@
-GLIBC_2.2 timer_settime F
-GLIBC_2.3.3 timer_settime F
+GLIBC_2.2 __librt_version_placeholder F
+GLIBC_2.3.3 __librt_version_placeholder F
GLIBC_2.3.4 __librt_version_placeholder F
GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/timer_settime.c b/sysdeps/unix/sysv/linux/s390/s390-64/timer_settime.c
deleted file mode 100644
index fa231149d5..0000000000
--- a/sysdeps/unix/sysv/linux/s390/s390-64/timer_settime.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/x86_64/timer_settime.c>
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 360802cf78..c621caae80 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -1752,6 +1752,7 @@ GLIBC_2.2 timer_create F
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.2 times F
GLIBC_2.2 timezone D 0x4
GLIBC_2.2 tmpfile F
@@ -2353,6 +2354,7 @@ GLIBC_2.34 __thrd_sleep64 F
GLIBC_2.34 __time64 F
GLIBC_2.34 __timegm64 F
GLIBC_2.34 __timer_gettime64 F
+GLIBC_2.34 __timer_settime64 F
GLIBC_2.34 __timerfd_gettime64 F
GLIBC_2.34 __timerfd_settime64 F
GLIBC_2.34 __timespec_get64 F
@@ -2520,6 +2522,7 @@ GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timer_gettime F
+GLIBC_2.34 timer_settime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
index 179d1d53da..6d24ce527d 100644
--- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
@@ -1,6 +1,5 @@
GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_settime F
+GLIBC_2.2 __librt_version_placeholder F
GLIBC_2.3.4 __librt_version_placeholder F
-GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index e9cb3ff8f1..ba459df43a 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -1752,6 +1752,7 @@ GLIBC_2.2 timer_create F
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.2 times F
GLIBC_2.2 timezone D 0x4
GLIBC_2.2 tmpfile F
@@ -2350,6 +2351,7 @@ GLIBC_2.34 __thrd_sleep64 F
GLIBC_2.34 __time64 F
GLIBC_2.34 __timegm64 F
GLIBC_2.34 __timer_gettime64 F
+GLIBC_2.34 __timer_settime64 F
GLIBC_2.34 __timerfd_gettime64 F
GLIBC_2.34 __timerfd_settime64 F
GLIBC_2.34 __timespec_get64 F
@@ -2517,6 +2519,7 @@ GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timer_gettime F
+GLIBC_2.34 timer_settime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
index 179d1d53da..6d24ce527d 100644
--- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
@@ -1,6 +1,5 @@
GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_settime F
+GLIBC_2.2 __librt_version_placeholder F
GLIBC_2.3.4 __librt_version_placeholder F
-GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sparc/librt-compat.c b/sysdeps/unix/sysv/linux/sparc/librt-compat.c
index a3862ba127..17a7895703 100644
--- a/sysdeps/unix/sysv/linux/sparc/librt-compat.c
+++ b/sysdeps/unix/sysv/linux/sparc/librt-compat.c
@@ -16,7 +16,7 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <rt/librt-compat.c>
+#include <sysdeps/unix/sysv/linux/librt-compat.c>
#if SHLIB_COMPAT (librt, GLIBC_2_3, GLIBC_2_34)
compat_symbol (librt, __librt_version_placeholder_1,
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 2af5948dd7..5e0eed47e3 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -2064,6 +2064,7 @@ GLIBC_2.2 timer_create F
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.2 ungetwc F
GLIBC_2.2 vfwprintf F
GLIBC_2.2 vfwscanf F
@@ -2493,6 +2494,7 @@ GLIBC_2.34 __thrd_sleep64 F
GLIBC_2.34 __time64 F
GLIBC_2.34 __timegm64 F
GLIBC_2.34 __timer_gettime64 F
+GLIBC_2.34 __timer_settime64 F
GLIBC_2.34 __timerfd_gettime64 F
GLIBC_2.34 __timerfd_settime64 F
GLIBC_2.34 __timespec_get64 F
@@ -2660,6 +2662,7 @@ GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timer_gettime F
+GLIBC_2.34 timer_settime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
index dc0a3c4dfb..7ff1ca83b1 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
@@ -1,7 +1,6 @@
GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_settime F
+GLIBC_2.2 __librt_version_placeholder F
GLIBC_2.3 __librt_version_placeholder F
GLIBC_2.3.4 __librt_version_placeholder F
-GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/Versions b/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
index 5e8f59ceae..cc152489f6 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
@@ -10,10 +10,3 @@ libc {
wordexp;
}
}
-
-librt {
- GLIBC_2.3.3 {
- # Changed timer_t.
- timer_settime;
- }
-}
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index fde5b780a6..99e6181e24 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -1795,6 +1795,7 @@ GLIBC_2.2 timer_create F
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.2 times F
GLIBC_2.2 timezone D 0x8
GLIBC_2.2 tmpfile F
@@ -2250,6 +2251,7 @@ GLIBC_2.3.3 timer_create F
GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
+GLIBC_2.3.3 timer_settime F
GLIBC_2.3.4 __chk_fail F
GLIBC_2.3.4 __fprintf_chk F
GLIBC_2.3.4 __gets_chk F
@@ -2496,6 +2498,7 @@ GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timer_gettime F
+GLIBC_2.34 timer_settime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
index a2de1ecd94..f68e03dfde 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
@@ -1,7 +1,7 @@
GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_settime F
+GLIBC_2.2 __librt_version_placeholder F
GLIBC_2.3 __librt_version_placeholder F
-GLIBC_2.3.3 timer_settime F
+GLIBC_2.3.3 __librt_version_placeholder F
GLIBC_2.3.4 __librt_version_placeholder F
GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/timer_settime.c b/sysdeps/unix/sysv/linux/sparc/sparc64/timer_settime.c
deleted file mode 100644
index fa231149d5..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/timer_settime.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/x86_64/timer_settime.c>
diff --git a/sysdeps/unix/sysv/linux/timer_settime.c b/sysdeps/unix/sysv/linux/timer_settime.c
index b8326e36a4..cbe430480d 100644
--- a/sysdeps/unix/sysv/linux/timer_settime.c
+++ b/sysdeps/unix/sysv/linux/timer_settime.c
@@ -22,27 +22,29 @@
#include <sysdep.h>
#include <kernel-features.h>
#include <kernel-posix-timers.h>
+#include <shlib-compat.h>
+#if !TIMER_T_WAS_INT_COMPAT
int
-__timer_settime64 (timer_t timerid, int flags,
+___timer_settime64 (timer_t timerid, int flags,
const struct __itimerspec64 *value,
struct __itimerspec64 *ovalue)
{
kernel_timer_t ktimerid = timerid_to_kernel_timer (timerid);
-#ifdef __ASSUME_TIME64_SYSCALLS
-# ifndef __NR_timer_settime64
-# define __NR_timer_settime64 __NR_timer_settime
-# endif
+# ifdef __ASSUME_TIME64_SYSCALLS
+# ifndef __NR_timer_settime64
+# define __NR_timer_settime64 __NR_timer_settime
+# endif
return INLINE_SYSCALL_CALL (timer_settime64, ktimerid, flags, value,
ovalue);
-#else
-# ifdef __NR_timer_settime64
+# else
+# ifdef __NR_timer_settime64
int ret = INLINE_SYSCALL_CALL (timer_settime64, ktimerid, flags, value,
ovalue);
if (ret == 0 || errno != ENOSYS)
return ret;
-# endif
+# endif
struct itimerspec its32, oits32;
if (! in_time_t_range ((value->it_value).tv_sec)
@@ -64,11 +66,18 @@ __timer_settime64 (timer_t timerid, int flags,
}
return retval;
-#endif
+# endif
}
-#if __TIMESIZE != 64
-librt_hidden_def (__timer_settime64)
+# if __TIMESIZE == 64
+versioned_symbol (libc, ___timer_settime64, timer_settime, GLIBC_2_34);
+# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (librt, ___timer_settime64, timer_settime, GLIBC_2_2);
+# endif
+
+#else /* __TIMESIZE != 64 */
+libc_hidden_ver (___timer_settime64, __timer_settime64)
+versioned_symbol (libc, ___timer_settime64, __timer_settime64, GLIBC_2_34);
int
__timer_settime (timer_t timerid, int flags, const struct itimerspec *value,
@@ -89,5 +98,43 @@ __timer_settime (timer_t timerid, int flags, const struct itimerspec *value,
return retval;
}
-#endif
-weak_alias (__timer_settime, timer_settime)
+versioned_symbol (libc, __timer_settime, timer_settime, GLIBC_2_34);
+
+# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (librt, __timer_settime, timer_settime, GLIBC_2_2);
+# endif
+# endif /* __TIMESIZE != 64 */
+
+#else /* TIMER_T_WAS_INT_COMPAT */
+
+extern __typeof (timer_settime) __timer_settime_new;
+libc_hidden_proto (__timer_settime_new)
+
+int
+___timer_settime_new (timer_t timerid, int flags,
+ const struct itimerspec *value,
+ struct itimerspec *ovalue)
+{
+ kernel_timer_t ktimerid = timerid_to_kernel_timer (timerid);
+
+ return INLINE_SYSCALL_CALL (timer_settime, ktimerid, flags, value, ovalue);
+}
+versioned_symbol (libc, ___timer_settime_new, timer_settime, GLIBC_2_34);
+libc_hidden_ver (___timer_settime_new, __timer_settime_new)
+
+# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_3_3, GLIBC_2_34)
+compat_symbol (librt, ___timer_settime_new, timer_settime, GLIBC_2_3_3);
+# endif
+
+# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_3_3)
+int
+__timer_settime_old (int timerid, int flags, const struct itimerspec *value,
+ struct itimerspec *ovalue)
+{
+ return __timer_settime_new (__timer_compat_list[timerid], flags,
+ value, ovalue);
+}
+compat_symbol (librt, __timer_settime_old, timer_settime, GLIBC_2_2);
+# endif
+
+#endif /* TIMER_T_WAS_INT_COMPAT */
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 87dc534709..2460b47dc7 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -1764,6 +1764,7 @@ GLIBC_2.2.5 timer_create F
GLIBC_2.2.5 timer_delete F
GLIBC_2.2.5 timer_getoverrun F
GLIBC_2.2.5 timer_gettime F
+GLIBC_2.2.5 timer_settime F
GLIBC_2.2.5 times F
GLIBC_2.2.5 timezone D 0x8
GLIBC_2.2.5 tmpfile F
@@ -2204,6 +2205,7 @@ GLIBC_2.3.3 timer_create F
GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
GLIBC_2.3.3 timer_gettime F
+GLIBC_2.3.3 timer_settime F
GLIBC_2.3.4 __chk_fail F
GLIBC_2.3.4 __fprintf_chk F
GLIBC_2.3.4 __gets_chk F
@@ -2452,6 +2454,7 @@ GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timer_gettime F
+GLIBC_2.34 timer_settime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
index 913835d267..752a38a6df 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
@@ -1,5 +1,5 @@
-GLIBC_2.2.5 timer_settime F
-GLIBC_2.3.3 timer_settime F
+GLIBC_2.2.5 __librt_version_placeholder F
+GLIBC_2.3.3 __librt_version_placeholder F
GLIBC_2.3.4 __librt_version_placeholder F
GLIBC_2.4 __librt_version_placeholder F
GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/x86_64/Versions b/sysdeps/unix/sysv/linux/x86_64/Versions
index 8deeb8908a..fd1b3cc296 100644
--- a/sysdeps/unix/sysv/linux/x86_64/Versions
+++ b/sysdeps/unix/sysv/linux/x86_64/Versions
@@ -7,10 +7,3 @@ libc {
modify_ldt;
}
}
-
-librt {
- GLIBC_2.3.3 {
- # Changed timer_t.
- timer_settime;
- }
-}
diff --git a/sysdeps/unix/sysv/linux/x86_64/compat-timer.h b/sysdeps/unix/sysv/linux/x86_64/compat-timer.h
deleted file mode 100644
index c61eb40070..0000000000
--- a/sysdeps/unix/sysv/linux/x86_64/compat-timer.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright (C) 2003-2021 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
- 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; see the file COPYING.LIB. If
- not, see <https://www.gnu.org/licenses/>. */
-
-#include <signal.h>
-#include <time.h>
-#include <sys/types.h>
-
-extern int __timer_getoverrun_new (timer_t timerid);
-extern int __timer_gettime_new (timer_t timerid, struct itimerspec *value);
-extern int __timer_settime_new (timer_t timerid, int flags,
- const struct itimerspec *value,
- struct itimerspec *ovalue);
-
-
-extern int __timer_create_old (clockid_t clock_id, struct sigevent *evp,
- int *timerid);
-extern int __timer_delete_old (int timerid);
-extern int __timer_getoverrun_old (int timerid);
-extern int __timer_gettime_old (int timerid, struct itimerspec *value);
-extern int __timer_settime_old (int timerid, int flags,
- const struct itimerspec *value,
- struct itimerspec *ovalue);
diff --git a/sysdeps/unix/sysv/linux/x86_64/timer_settime.c b/sysdeps/unix/sysv/linux/x86_64/timer_settime.c
deleted file mode 100644
index dd7d01e849..0000000000
--- a/sysdeps/unix/sysv/linux/x86_64/timer_settime.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/* Copyright (C) 2003-2021 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
- 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; see the file COPYING.LIB. If
- not, see <https://www.gnu.org/licenses/>. */
-
-#include <shlib-compat.h>
-#include <sysdep.h>
-#include <kernel-posix-timers.h>
-#include "compat-timer.h"
-
-int
-__timer_settime_new (timer_t timerid, int flags, const struct itimerspec *value,
- struct itimerspec *ovalue)
-{
- kernel_timer_t ktimerid = timerid_to_kernel_timer (timerid);
-
- return INLINE_SYSCALL_CALL (timer_settime, ktimerid, flags, value, ovalue);
-}
-versioned_symbol (librt, __timer_settime_new, timer_settime, GLIBC_2_3_3);
-
-
-#if SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_3_3)
-int
-__timer_settime_old (int timerid, int flags, const struct itimerspec *value,
- struct itimerspec *ovalue)
-{
- return __timer_settime_new (__timer_compat_list[timerid], flags,
- value, ovalue);
-}
-compat_symbol (librt, __timer_settime_old, timer_settime, GLIBC_2_2);
-#endif
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 143b8d602c..8789b1edb2 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -2015,6 +2015,7 @@ GLIBC_2.16 timer_create F
GLIBC_2.16 timer_delete F
GLIBC_2.16 timer_getoverrun F
GLIBC_2.16 timer_gettime F
+GLIBC_2.16 timer_settime F
GLIBC_2.16 timerfd_create F
GLIBC_2.16 timerfd_gettime F
GLIBC_2.16 timerfd_settime F
@@ -2552,6 +2553,7 @@ GLIBC_2.34 timer_create F
GLIBC_2.34 timer_delete F
GLIBC_2.34 timer_getoverrun F
GLIBC_2.34 timer_gettime F
+GLIBC_2.34 timer_settime F
GLIBC_2.34 timespec_getres F
GLIBC_2.34 tss_create F
GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
index 50f2032de7..a39d5383e4 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
@@ -1 +1 @@
-GLIBC_2.16 timer_settime F
+GLIBC_2.16 __librt_version_placeholder F
--
2.31.1
^ permalink raw reply [flat|nested] 72+ messages in thread
* Re: [PATCH 33/34] Linux: Move timer_settime, __timer_settime64 from librt to libc
2021-06-17 18:59 ` [PATCH 33/34] Linux: Move timer_settime, __timer_settime64 " Florian Weimer
@ 2021-06-24 17:42 ` Adhemerval Zanella
0 siblings, 0 replies; 72+ messages in thread
From: Adhemerval Zanella @ 2021-06-24 17:42 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 17/06/2021 15:59, Florian Weimer via Libc-alpha wrote:
> The symbols were moved using scripts/move-symbol-to-libc.py.
>
> The way the ABI intransition is implemented is changed with this
> commit: the implementation is now consolidated in one file with a
> TIMER_T_WAS_INT_COMPAT check.
>
> The shared librt is now empty, so this commit adds a placeholder
> symbol at the base version, GLIBC_2.2, and potentially at the
> GLIBC_2.3.3 version as well (the leftover from the int/timer_t ABI
> transition).
LGTM, thanks.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> ---
> include/time.h | 6 +-
> rt/Makefile | 2 +-
> rt/Versions | 8 +-
> rt/librt-compat.c | 16 ++--
> sysdeps/unix/sysv/linux/Versions | 20 ++---
> sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/aarch64/librt.abilist | 2 +-
> sysdeps/unix/sysv/linux/alpha/Versions | 4 -
> sysdeps/unix/sysv/linux/alpha/libc.abilist | 3 +
> sysdeps/unix/sysv/linux/alpha/librt-compat.c | 2 +-
> sysdeps/unix/sysv/linux/alpha/librt.abilist | 4 +-
> sysdeps/unix/sysv/linux/alpha/timer_settime.c | 1 -
> sysdeps/unix/sysv/linux/arc/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/arc/librt.abilist | 2 +-
> sysdeps/unix/sysv/linux/arm/be/libc.abilist | 3 +
> sysdeps/unix/sysv/linux/arm/be/librt.abilist | 3 +-
> sysdeps/unix/sysv/linux/arm/le/libc.abilist | 3 +
> sysdeps/unix/sysv/linux/arm/le/librt.abilist | 3 +-
> sysdeps/unix/sysv/linux/csky/libc.abilist | 3 +
> sysdeps/unix/sysv/linux/csky/librt.abilist | 3 +-
> sysdeps/unix/sysv/linux/hppa/libc.abilist | 3 +
> sysdeps/unix/sysv/linux/hppa/librt.abilist | 3 +-
> sysdeps/unix/sysv/linux/i386/libc.abilist | 3 +
> sysdeps/unix/sysv/linux/i386/librt.abilist | 3 +-
> sysdeps/unix/sysv/linux/ia64/Versions | 6 --
> sysdeps/unix/sysv/linux/ia64/libc.abilist | 3 +
> sysdeps/unix/sysv/linux/ia64/librt.abilist | 4 +-
> sysdeps/unix/sysv/linux/ia64/timer_settime.c | 1 -
> sysdeps/unix/sysv/linux/librt-compat.c | 26 +++++++
> .../sysv/linux/m68k/coldfire/libc.abilist | 3 +
> .../sysv/linux/m68k/coldfire/librt.abilist | 3 +-
> .../unix/sysv/linux/m68k/m680x0/libc.abilist | 3 +
> .../unix/sysv/linux/m68k/m680x0/librt.abilist | 3 +-
> .../sysv/linux/microblaze/be/libc.abilist | 3 +
> .../sysv/linux/microblaze/be/librt.abilist | 3 +-
> .../sysv/linux/microblaze/le/libc.abilist | 3 +
> .../sysv/linux/microblaze/le/librt.abilist | 3 +-
> .../sysv/linux/mips/mips32/fpu/libc.abilist | 3 +
> .../unix/sysv/linux/mips/mips32/librt.abilist | 3 +-
> .../sysv/linux/mips/mips32/nofpu/libc.abilist | 3 +
> .../sysv/linux/mips/mips64/n32/libc.abilist | 3 +
> .../sysv/linux/mips/mips64/n32/librt.abilist | 3 +-
> .../sysv/linux/mips/mips64/n64/libc.abilist | 2 +
> .../sysv/linux/mips/mips64/n64/librt.abilist | 2 +-
> sysdeps/unix/sysv/linux/nios2/libc.abilist | 3 +
> sysdeps/unix/sysv/linux/nios2/librt.abilist | 3 +-
> .../linux/powerpc/powerpc32/fpu/libc.abilist | 3 +
> .../linux/powerpc/powerpc32/librt.abilist | 3 +-
> .../powerpc/powerpc32/nofpu/libc.abilist | 3 +
> .../sysv/linux/powerpc/powerpc64/Versions | 7 --
> .../linux/powerpc/powerpc64/be/libc.abilist | 3 +
> .../linux/powerpc/powerpc64/be/librt.abilist | 4 +-
> .../linux/powerpc/powerpc64/le/libc.abilist | 2 +
> .../linux/powerpc/powerpc64/le/librt.abilist | 2 +-
> .../linux/powerpc/powerpc64/timer_settime.c | 1 -
> .../unix/sysv/linux/riscv/rv32/libc.abilist | 2 +
> .../unix/sysv/linux/riscv/rv32/librt.abilist | 2 +-
> .../unix/sysv/linux/riscv/rv64/libc.abilist | 2 +
> .../unix/sysv/linux/riscv/rv64/librt.abilist | 2 +-
> .../unix/sysv/linux/s390/s390-32/libc.abilist | 3 +
> .../sysv/linux/s390/s390-32/librt.abilist | 3 +-
> sysdeps/unix/sysv/linux/s390/s390-64/Versions | 7 --
> .../unix/sysv/linux/s390/s390-64/libc.abilist | 3 +
> .../sysv/linux/s390/s390-64/librt.abilist | 4 +-
> .../sysv/linux/s390/s390-64/timer_settime.c | 1 -
> sysdeps/unix/sysv/linux/sh/be/libc.abilist | 3 +
> sysdeps/unix/sysv/linux/sh/be/librt.abilist | 3 +-
> sysdeps/unix/sysv/linux/sh/le/libc.abilist | 3 +
> sysdeps/unix/sysv/linux/sh/le/librt.abilist | 3 +-
> sysdeps/unix/sysv/linux/sparc/librt-compat.c | 2 +-
> .../sysv/linux/sparc/sparc32/libc.abilist | 3 +
> .../sysv/linux/sparc/sparc32/librt.abilist | 3 +-
> .../unix/sysv/linux/sparc/sparc64/Versions | 7 --
> .../sysv/linux/sparc/sparc64/libc.abilist | 3 +
> .../sysv/linux/sparc/sparc64/librt.abilist | 4 +-
> .../sysv/linux/sparc/sparc64/timer_settime.c | 1 -
> sysdeps/unix/sysv/linux/timer_settime.c | 73 +++++++++++++++----
> .../unix/sysv/linux/x86_64/64/libc.abilist | 3 +
> .../unix/sysv/linux/x86_64/64/librt.abilist | 4 +-
> sysdeps/unix/sysv/linux/x86_64/Versions | 7 --
> sysdeps/unix/sysv/linux/x86_64/compat-timer.h | 37 ----------
> .../unix/sysv/linux/x86_64/timer_settime.c | 44 -----------
> .../unix/sysv/linux/x86_64/x32/libc.abilist | 2 +
> .../unix/sysv/linux/x86_64/x32/librt.abilist | 2 +-
> 84 files changed, 245 insertions(+), 212 deletions(-)
> delete mode 100644 sysdeps/unix/sysv/linux/alpha/timer_settime.c
> delete mode 100644 sysdeps/unix/sysv/linux/ia64/timer_settime.c
> create mode 100644 sysdeps/unix/sysv/linux/librt-compat.c
> delete mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_settime.c
> delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-64/timer_settime.c
> delete mode 100644 sysdeps/unix/sysv/linux/sparc/sparc64/timer_settime.c
> delete mode 100644 sysdeps/unix/sysv/linux/x86_64/compat-timer.h
> delete mode 100644 sysdeps/unix/sysv/linux/x86_64/timer_settime.c
>
> diff --git a/include/time.h b/include/time.h
> index 3f4ff44ac3..22b29ca583 100644
> --- a/include/time.h
> +++ b/include/time.h
> @@ -236,7 +236,11 @@ extern int __timer_settime64 (timer_t timerid, int flags,
> extern int __timerfd_settime64 (int fd, int flags,
> const struct __itimerspec64 *value,
> struct __itimerspec64 *ovalue);
> -librt_hidden_proto (__timer_settime64);
> +# if PTHREAD_IN_LIBC
> +libc_hidden_proto (__timer_settime64)
> +#else
> +librt_hidden_proto (__timer_settime64)
> +#endif
> libc_hidden_proto (__timerfd_settime64);
> #endif
>
Ok.
> diff --git a/rt/Makefile b/rt/Makefile
> index e2ef5f4b0b..c1e989ede8 100644
> --- a/rt/Makefile
> +++ b/rt/Makefile
> @@ -30,7 +30,6 @@ routines = \
>
> librt-routines = \
> librt-compat \
> - timer_settime \
>
> librt-shared-only-routines = librt-compat
>
> @@ -63,6 +62,7 @@ $(librt-routines-var) += \
> timer_delete \
> timer_getoverr \
> timer_gettime \
> + timer_settime \
>
> tests := tst-shm tst-timer tst-timer2 \
> tst-aio tst-aio64 tst-aio2 tst-aio3 tst-aio4 tst-aio5 tst-aio6 \
Ok.
> diff --git a/rt/Versions b/rt/Versions
> index d1f05af013..7e41beae06 100644
> --- a/rt/Versions
> +++ b/rt/Versions
> @@ -26,6 +26,7 @@ libc {
> timer_delete;
> timer_getoverrun;
> timer_gettime;
> + timer_settime;
> %endif
> shm_open;
> shm_unlink;
> @@ -89,6 +90,7 @@ libc {
> timer_delete;
> timer_getoverrun;
> timer_gettime;
> + timer_settime;
> %endif
> shm_open;
> shm_unlink;
> @@ -132,13 +134,15 @@ librt {
> %endif
> }
> GLIBC_2.2 {
> -%if !PTHREAD_IN_LIBC
> +%if PTHREAD_IN_LIBC
> + __librt_version_placeholder;
> +%else
> timer_create;
> timer_delete;
> timer_getoverrun;
> timer_gettime;
> -%endif
> timer_settime;
> +%endif
> }
> GLIBC_2.3.4 {
> %if PTHREAD_IN_LIBC
Ok.
> diff --git a/rt/librt-compat.c b/rt/librt-compat.c
> index 24c2ed9db4..84f50c82a9 100644
> --- a/rt/librt-compat.c
> +++ b/rt/librt-compat.c
> @@ -20,6 +20,7 @@
> # include <shlib-compat.h>
> # include <sys/cdefs.h>
>
> +# if SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_34)
> void
> attribute_compat_text_section
> __attribute_used__
> @@ -27,25 +28,26 @@ __librt_version_placeholder_1 (void)
> {
> }
>
> -# if SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_2)
> compat_symbol (librt, __librt_version_placeholder_1,
> __librt_version_placeholder, GLIBC_2_1);
> # endif
>
> -# if SHLIB_COMPAT (librt, GLIBC_2_4, GLIBC_2_34) \
> - && ABI_librt_GLIBC_2_3_4 != ABI_librt_GLIBC_2_1
> +# if SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_34)
> +compat_symbol (librt, __librt_version_placeholder_1,
> + __librt_version_placeholder, GLIBC_2_2);
> +# endif
> +
> +# if SHLIB_COMPAT (librt, GLIBC_2_3_4, GLIBC_2_34)
> compat_symbol (librt, __librt_version_placeholder_1,
> __librt_version_placeholder, GLIBC_2_3_4);
> # endif
>
> -# if SHLIB_COMPAT (librt, GLIBC_2_4, GLIBC_2_34) \
> - && ABI_librt_GLIBC_2_4 != ABI_librt_GLIBC_2_1
> +# if SHLIB_COMPAT (librt, GLIBC_2_4, GLIBC_2_34)
> compat_symbol (librt, __librt_version_placeholder_1,
> __librt_version_placeholder, GLIBC_2_4);
> # endif
>
> -# if SHLIB_COMPAT (librt, GLIBC_2_7, GLIBC_2_34) \
> - && ABI_librt_GLIBC_2_7 != ABI_librt_GLIBC_2_4
> +# if SHLIB_COMPAT (librt, GLIBC_2_7, GLIBC_2_34)
> compat_symbol (librt, __librt_version_placeholder_1,
> __librt_version_placeholder, GLIBC_2_7);
> # endif
Ok.
> diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions
> index 9bb9d955a5..578d55e7fd 100644
> --- a/sysdeps/unix/sysv/linux/Versions
> +++ b/sysdeps/unix/sysv/linux/Versions
> @@ -127,6 +127,7 @@ libc {
> timer_delete;
> timer_getoverrun;
> timer_gettime;
> + timer_settime;
> }
> GLIBC_2.3.4 {
> sched_getaffinity; sched_setaffinity;
> @@ -269,6 +270,7 @@ libc {
> __time64;
> __timegm64;
> __timer_gettime64;
> + __timer_settime64;
> __timerfd_gettime64;
> __timerfd_settime64;
> __timespec_get64;
> @@ -300,18 +302,18 @@ libc {
> }
> }
>
> -ld {
> - GLIBC_PRIVATE {
> - __nptl_change_stack_perm;
> +librt {
> + GLIBC_2.3.3 {
> + # Leftover from the int -> timer_t transition. For ABIs that came later
> + # and do not have the symbol version, this version node is merged with
> + # the baseline version.
> + __librt_version_placeholder;
> }
> }
>
> -librt {
> - GLIBC_2.34 {
> -%ifdef TIME64_NON_DEFAULT
> - # 64-bit time_t support
> - __timer_settime64;
> -%endif
> +ld {
> + GLIBC_PRIVATE {
> + __nptl_change_stack_perm;
> }
> }
>
Ok.
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index 23130c3c9e..5ff33f63e3 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -2010,6 +2010,7 @@ GLIBC_2.17 timer_create F
> GLIBC_2.17 timer_delete F
> GLIBC_2.17 timer_getoverrun F
> GLIBC_2.17 timer_gettime F
> +GLIBC_2.17 timer_settime F
> GLIBC_2.17 timerfd_create F
> GLIBC_2.17 timerfd_gettime F
> GLIBC_2.17 timerfd_settime F
> @@ -2537,6 +2538,7 @@ GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timer_gettime F
> +GLIBC_2.34 timer_settime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> index 2cb1369ddb..88d0fc382f 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
> @@ -1 +1 @@
> -GLIBC_2.17 timer_settime F
> +GLIBC_2.17 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/alpha/Versions b/sysdeps/unix/sysv/linux/alpha/Versions
> index 0359822d6d..87ef61437d 100644
> --- a/sysdeps/unix/sysv/linux/alpha/Versions
> +++ b/sysdeps/unix/sysv/linux/alpha/Versions
> @@ -102,8 +102,4 @@ librt {
> GLIBC_2.3 {
> __librt_version_placeholder;
> }
> - GLIBC_2.3.3 {
> - # Changed timer_t.
> - timer_settime;
> - }
> }
Ok.
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index 1f2fff3443..503a96b255 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -2097,6 +2097,7 @@ GLIBC_2.2 timer_create F
> 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.2 ungetwc F
> GLIBC_2.2 vfwprintf F
> GLIBC_2.2 vfwscanf F
> @@ -2361,6 +2362,7 @@ GLIBC_2.3.3 timer_create F
> GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> +GLIBC_2.3.3 timer_settime F
> GLIBC_2.3.4 _OtsAddX F
> GLIBC_2.3.4 _OtsConvertFloatTX F
> GLIBC_2.3.4 _OtsConvertFloatXT F
> @@ -2635,6 +2637,7 @@ GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timer_gettime F
> +GLIBC_2.34 timer_settime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/alpha/librt-compat.c b/sysdeps/unix/sysv/linux/alpha/librt-compat.c
> index 96e92e1637..7c699d3395 100644
> --- a/sysdeps/unix/sysv/linux/alpha/librt-compat.c
> +++ b/sysdeps/unix/sysv/linux/alpha/librt-compat.c
> @@ -16,7 +16,7 @@
> License along with the GNU C Library; if not, see
> <https://www.gnu.org/licenses/>. */
>
> -#include <rt/librt-compat.c>
> +#include <sysdeps/unix/sysv/linux/librt-compat.c>
>
> #if SHLIB_COMPAT (librt, GLIBC_2_3, GLIBC_2_34)
> compat_symbol (librt, __librt_version_placeholder_1,
Ok.
> diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
> index a2de1ecd94..f68e03dfde 100644
> --- a/sysdeps/unix/sysv/linux/alpha/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist
> @@ -1,7 +1,7 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_settime F
> +GLIBC_2.2 __librt_version_placeholder F
> GLIBC_2.3 __librt_version_placeholder F
> -GLIBC_2.3.3 timer_settime F
> +GLIBC_2.3.3 __librt_version_placeholder F
> GLIBC_2.3.4 __librt_version_placeholder F
> GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/alpha/timer_settime.c b/sysdeps/unix/sysv/linux/alpha/timer_settime.c
> deleted file mode 100644
> index fa231149d5..0000000000
> --- a/sysdeps/unix/sysv/linux/alpha/timer_settime.c
> +++ /dev/null
> @@ -1 +0,0 @@
> -#include <sysdeps/unix/sysv/linux/x86_64/timer_settime.c>
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index 8ece5c40fb..e29bd7cd55 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -1944,6 +1944,7 @@ GLIBC_2.32 timer_create F
> GLIBC_2.32 timer_delete F
> GLIBC_2.32 timer_getoverrun F
> GLIBC_2.32 timer_gettime F
> +GLIBC_2.32 timer_settime F
> GLIBC_2.32 timerfd_create F
> GLIBC_2.32 timerfd_gettime F
> GLIBC_2.32 timerfd_settime F
> @@ -2296,6 +2297,7 @@ GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timer_gettime F
> +GLIBC_2.34 timer_settime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
> index 0023244be6..f77591fa3e 100644
> --- a/sysdeps/unix/sysv/linux/arc/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/librt.abilist
> @@ -1 +1 @@
> -GLIBC_2.32 timer_settime F
> +GLIBC_2.32 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index 515c3a224a..ac89f19c0a 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -272,6 +272,7 @@ GLIBC_2.34 __thrd_sleep64 F
> GLIBC_2.34 __time64 F
> GLIBC_2.34 __timegm64 F
> GLIBC_2.34 __timer_gettime64 F
> +GLIBC_2.34 __timer_settime64 F
> GLIBC_2.34 __timerfd_gettime64 F
> GLIBC_2.34 __timerfd_settime64 F
> GLIBC_2.34 __timespec_get64 F
> @@ -439,6 +440,7 @@ GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timer_gettime F
> +GLIBC_2.34 timer_settime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> @@ -2359,6 +2361,7 @@ GLIBC_2.4 timer_create F
> GLIBC_2.4 timer_delete F
> GLIBC_2.4 timer_getoverrun F
> GLIBC_2.4 timer_gettime F
> +GLIBC_2.4 timer_settime F
> GLIBC_2.4 times F
> GLIBC_2.4 timezone D 0x4
> GLIBC_2.4 tmpfile F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> index 2f84162558..0010b34d5c 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> @@ -1,3 +1,2 @@
> -GLIBC_2.34 __timer_settime64 F
> -GLIBC_2.4 timer_settime F
> +GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index 7b7ca7d348..07fce73516 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -269,6 +269,7 @@ GLIBC_2.34 __thrd_sleep64 F
> GLIBC_2.34 __time64 F
> GLIBC_2.34 __timegm64 F
> GLIBC_2.34 __timer_gettime64 F
> +GLIBC_2.34 __timer_settime64 F
> GLIBC_2.34 __timerfd_gettime64 F
> GLIBC_2.34 __timerfd_settime64 F
> GLIBC_2.34 __timespec_get64 F
> @@ -436,6 +437,7 @@ GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timer_gettime F
> +GLIBC_2.34 timer_settime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> @@ -2356,6 +2358,7 @@ GLIBC_2.4 timer_create F
> GLIBC_2.4 timer_delete F
> GLIBC_2.4 timer_getoverrun F
> GLIBC_2.4 timer_gettime F
> +GLIBC_2.4 timer_settime F
> GLIBC_2.4 times F
> GLIBC_2.4 timezone D 0x4
> GLIBC_2.4 tmpfile F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> index 2f84162558..0010b34d5c 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> @@ -1,3 +1,2 @@
> -GLIBC_2.34 __timer_settime64 F
> -GLIBC_2.4 timer_settime F
> +GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index d53acb2c08..d06f38eba0 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -2034,6 +2034,7 @@ GLIBC_2.29 timer_create F
> GLIBC_2.29 timer_delete F
> GLIBC_2.29 timer_getoverrun F
> GLIBC_2.29 timer_gettime F
> +GLIBC_2.29 timer_settime F
> GLIBC_2.29 timerfd_create F
> GLIBC_2.29 timerfd_gettime F
> GLIBC_2.29 timerfd_settime F
> @@ -2393,6 +2394,7 @@ GLIBC_2.34 __thrd_sleep64 F
> GLIBC_2.34 __time64 F
> GLIBC_2.34 __timegm64 F
> GLIBC_2.34 __timer_gettime64 F
> +GLIBC_2.34 __timer_settime64 F
> GLIBC_2.34 __timerfd_gettime64 F
> GLIBC_2.34 __timerfd_settime64 F
> GLIBC_2.34 __timespec_get64 F
> @@ -2560,6 +2562,7 @@ GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timer_gettime F
> +GLIBC_2.34 timer_settime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
> index 52b2819a7d..1a55315b87 100644
> --- a/sysdeps/unix/sysv/linux/csky/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/librt.abilist
> @@ -1,2 +1 @@
> -GLIBC_2.29 timer_settime F
> -GLIBC_2.34 __timer_settime64 F
> +GLIBC_2.29 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index a592e3f628..2f5dfd66ad 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -1748,6 +1748,7 @@ GLIBC_2.2 timer_create F
> 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.2 times F
> GLIBC_2.2 timezone D 0x4
> GLIBC_2.2 tmpfile F
> @@ -2346,6 +2347,7 @@ GLIBC_2.34 __thrd_sleep64 F
> GLIBC_2.34 __time64 F
> GLIBC_2.34 __timegm64 F
> GLIBC_2.34 __timer_gettime64 F
> +GLIBC_2.34 __timer_settime64 F
> GLIBC_2.34 __timerfd_gettime64 F
> GLIBC_2.34 __timerfd_settime64 F
> GLIBC_2.34 __timespec_get64 F
> @@ -2513,6 +2515,7 @@ GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timer_gettime F
> +GLIBC_2.34 timer_settime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
> index 179d1d53da..6d24ce527d 100644
> --- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
> @@ -1,6 +1,5 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_settime F
> +GLIBC_2.2 __librt_version_placeholder F
> GLIBC_2.3.4 __librt_version_placeholder F
> -GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index bd3824cb88..1accf0a9c1 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -2110,6 +2110,7 @@ GLIBC_2.2 timer_create F
> 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.2 ungetwc F
> GLIBC_2.2 versionsort64 F
> GLIBC_2.2 vfwprintf F
> @@ -2530,6 +2531,7 @@ GLIBC_2.34 __thrd_sleep64 F
> GLIBC_2.34 __time64 F
> GLIBC_2.34 __timegm64 F
> GLIBC_2.34 __timer_gettime64 F
> +GLIBC_2.34 __timer_settime64 F
> GLIBC_2.34 __timerfd_gettime64 F
> GLIBC_2.34 __timerfd_settime64 F
> GLIBC_2.34 __timespec_get64 F
> @@ -2697,6 +2699,7 @@ GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timer_gettime F
> +GLIBC_2.34 timer_settime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
> index 179d1d53da..6d24ce527d 100644
> --- a/sysdeps/unix/sysv/linux/i386/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
> @@ -1,6 +1,5 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_settime F
> +GLIBC_2.2 __librt_version_placeholder F
> GLIBC_2.3.4 __librt_version_placeholder F
> -GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/ia64/Versions b/sysdeps/unix/sysv/linux/ia64/Versions
> index 9a7faf067a..9900916a6c 100644
> --- a/sysdeps/unix/sysv/linux/ia64/Versions
> +++ b/sysdeps/unix/sysv/linux/ia64/Versions
> @@ -27,9 +27,3 @@ libc {
> recvmsg; sendmsg;
> }
> }
> -librt {
> - GLIBC_2.3.3 {
> - # Changed timer_t.
> - timer_settime;
> - }
> -}
Ok.
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index d589ce16d6..79b4153e63 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -1769,6 +1769,7 @@ GLIBC_2.2 timer_create F
> 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.2 times F
> GLIBC_2.2 timezone D 0x8
> GLIBC_2.2 tmpfile F
> @@ -2226,6 +2227,7 @@ GLIBC_2.3.3 timer_create F
> GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> +GLIBC_2.3.3 timer_settime F
> GLIBC_2.3.4 __chk_fail F
> GLIBC_2.3.4 __fprintf_chk F
> GLIBC_2.3.4 __gets_chk F
> @@ -2473,6 +2475,7 @@ GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timer_gettime F
> +GLIBC_2.34 timer_settime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
> index 7d8e91b0d9..ff77c0d32e 100644
> --- a/sysdeps/unix/sysv/linux/ia64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/librt.abilist
> @@ -1,6 +1,6 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_settime F
> -GLIBC_2.3.3 timer_settime F
> +GLIBC_2.2 __librt_version_placeholder F
> +GLIBC_2.3.3 __librt_version_placeholder F
> GLIBC_2.3.4 __librt_version_placeholder F
> GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/ia64/timer_settime.c b/sysdeps/unix/sysv/linux/ia64/timer_settime.c
> deleted file mode 100644
> index fa231149d5..0000000000
> --- a/sysdeps/unix/sysv/linux/ia64/timer_settime.c
> +++ /dev/null
> @@ -1 +0,0 @@
> -#include <sysdeps/unix/sysv/linux/x86_64/timer_settime.c>
Ok.
> diff --git a/sysdeps/unix/sysv/linux/librt-compat.c b/sysdeps/unix/sysv/linux/librt-compat.c
> new file mode 100644
> index 0000000000..f8b09908a2
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/librt-compat.c
> @@ -0,0 +1,26 @@
> +/* Placeholder definitions to pull in removed symbol versions. Linux 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>
> +#include <kernel-posix-timers.h>
> +
> +/* GLIBC_2.3.3 symbols were added for the int -> timer_t ABI transition. */
> +#if TIMER_T_WAS_INT_COMPAT
> +compat_symbol (librt, __librt_version_placeholder_1,
> + __librt_version_placeholder, GLIBC_2_3_3);
> +#endif
Ok.
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index 7e986dcfd5..ddbaeb3660 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -273,6 +273,7 @@ GLIBC_2.34 __thrd_sleep64 F
> GLIBC_2.34 __time64 F
> GLIBC_2.34 __timegm64 F
> GLIBC_2.34 __timer_gettime64 F
> +GLIBC_2.34 __timer_settime64 F
> GLIBC_2.34 __timerfd_gettime64 F
> GLIBC_2.34 __timerfd_settime64 F
> GLIBC_2.34 __timespec_get64 F
> @@ -440,6 +441,7 @@ GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timer_gettime F
> +GLIBC_2.34 timer_settime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> @@ -2339,6 +2341,7 @@ GLIBC_2.4 timer_create F
> GLIBC_2.4 timer_delete F
> GLIBC_2.4 timer_getoverrun F
> GLIBC_2.4 timer_gettime F
> +GLIBC_2.4 timer_settime F
> GLIBC_2.4 times F
> GLIBC_2.4 timezone D 0x4
> GLIBC_2.4 tmpfile F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> index 2f84162558..0010b34d5c 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> @@ -1,3 +1,2 @@
> -GLIBC_2.34 __timer_settime64 F
> -GLIBC_2.4 timer_settime F
> +GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index 97fe827b8d..3295de3102 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -2066,6 +2066,7 @@ GLIBC_2.2 timer_create F
> 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.2 ungetwc F
> GLIBC_2.2 versionsort64 F
> GLIBC_2.2 vfwprintf F
> @@ -2473,6 +2474,7 @@ GLIBC_2.34 __thrd_sleep64 F
> GLIBC_2.34 __time64 F
> GLIBC_2.34 __timegm64 F
> GLIBC_2.34 __timer_gettime64 F
> +GLIBC_2.34 __timer_settime64 F
> GLIBC_2.34 __timerfd_gettime64 F
> GLIBC_2.34 __timerfd_settime64 F
> GLIBC_2.34 __timespec_get64 F
> @@ -2640,6 +2642,7 @@ GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timer_gettime F
> +GLIBC_2.34 timer_settime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> index 179d1d53da..6d24ce527d 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> @@ -1,6 +1,5 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_settime F
> +GLIBC_2.2 __librt_version_placeholder F
> GLIBC_2.3.4 __librt_version_placeholder F
> -GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index 56b5f885b7..18d8e9d748 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -2014,6 +2014,7 @@ GLIBC_2.18 timer_create F
> GLIBC_2.18 timer_delete F
> GLIBC_2.18 timer_getoverrun F
> GLIBC_2.18 timer_gettime F
> +GLIBC_2.18 timer_settime F
> GLIBC_2.18 timerfd_create F
> GLIBC_2.18 timerfd_gettime F
> GLIBC_2.18 timerfd_settime F
> @@ -2444,6 +2445,7 @@ GLIBC_2.34 __thrd_sleep64 F
> GLIBC_2.34 __time64 F
> GLIBC_2.34 __timegm64 F
> GLIBC_2.34 __timer_gettime64 F
> +GLIBC_2.34 __timer_settime64 F
> GLIBC_2.34 __timerfd_gettime64 F
> GLIBC_2.34 __timerfd_settime64 F
> GLIBC_2.34 __timespec_get64 F
> @@ -2611,6 +2613,7 @@ GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timer_gettime F
> +GLIBC_2.34 timer_settime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> index 8a4faf155c..825b445ef7 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> @@ -1,2 +1 @@
> -GLIBC_2.18 timer_settime F
> -GLIBC_2.34 __timer_settime64 F
> +GLIBC_2.18 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index 8910180ff8..2de03396dd 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -2014,6 +2014,7 @@ GLIBC_2.18 timer_create F
> GLIBC_2.18 timer_delete F
> GLIBC_2.18 timer_getoverrun F
> GLIBC_2.18 timer_gettime F
> +GLIBC_2.18 timer_settime F
> GLIBC_2.18 timerfd_create F
> GLIBC_2.18 timerfd_gettime F
> GLIBC_2.18 timerfd_settime F
> @@ -2441,6 +2442,7 @@ GLIBC_2.34 __thrd_sleep64 F
> GLIBC_2.34 __time64 F
> GLIBC_2.34 __timegm64 F
> GLIBC_2.34 __timer_gettime64 F
> +GLIBC_2.34 __timer_settime64 F
> GLIBC_2.34 __timerfd_gettime64 F
> GLIBC_2.34 __timerfd_settime64 F
> GLIBC_2.34 __timespec_get64 F
> @@ -2608,6 +2610,7 @@ GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timer_gettime F
> +GLIBC_2.34 timer_settime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> index 8a4faf155c..825b445ef7 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> @@ -1,2 +1 @@
> -GLIBC_2.18 timer_settime F
> -GLIBC_2.34 __timer_settime64 F
> +GLIBC_2.18 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index e81456caf7..302af0376d 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -1997,6 +1997,7 @@ GLIBC_2.2 timer_create F
> 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.2 tmpfile F
> GLIBC_2.2 tmpfile64 F
> GLIBC_2.2 truncate64 F
> @@ -2438,6 +2439,7 @@ GLIBC_2.34 __thrd_sleep64 F
> GLIBC_2.34 __time64 F
> GLIBC_2.34 __timegm64 F
> GLIBC_2.34 __timer_gettime64 F
> +GLIBC_2.34 __timer_settime64 F
> GLIBC_2.34 __timerfd_gettime64 F
> GLIBC_2.34 __timerfd_settime64 F
> GLIBC_2.34 __timespec_get64 F
> @@ -2605,6 +2607,7 @@ GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timer_gettime F
> +GLIBC_2.34 timer_settime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> index 211a60584c..a7f1518c0b 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> @@ -1,5 +1,4 @@
> -GLIBC_2.2 timer_settime F
> +GLIBC_2.2 __librt_version_placeholder F
> GLIBC_2.3.4 __librt_version_placeholder F
> -GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index ecbad99217..50e51bf15d 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -1995,6 +1995,7 @@ GLIBC_2.2 timer_create F
> 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.2 tmpfile F
> GLIBC_2.2 tmpfile64 F
> GLIBC_2.2 truncate64 F
> @@ -2436,6 +2437,7 @@ GLIBC_2.34 __thrd_sleep64 F
> GLIBC_2.34 __time64 F
> GLIBC_2.34 __timegm64 F
> GLIBC_2.34 __timer_gettime64 F
> +GLIBC_2.34 __timer_settime64 F
> GLIBC_2.34 __timerfd_gettime64 F
> GLIBC_2.34 __timerfd_settime64 F
> GLIBC_2.34 __timespec_get64 F
> @@ -2603,6 +2605,7 @@ GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timer_gettime F
> +GLIBC_2.34 timer_settime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index 986b16ece3..99be006a91 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -1993,6 +1993,7 @@ GLIBC_2.2 timer_create F
> 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.2 tmpfile F
> GLIBC_2.2 tmpfile64 F
> GLIBC_2.2 truncate64 F
> @@ -2444,6 +2445,7 @@ GLIBC_2.34 __thrd_sleep64 F
> GLIBC_2.34 __time64 F
> GLIBC_2.34 __timegm64 F
> GLIBC_2.34 __timer_gettime64 F
> +GLIBC_2.34 __timer_settime64 F
> GLIBC_2.34 __timerfd_gettime64 F
> GLIBC_2.34 __timerfd_settime64 F
> GLIBC_2.34 __timespec_get64 F
> @@ -2611,6 +2613,7 @@ GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timer_gettime F
> +GLIBC_2.34 timer_settime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> index 211a60584c..a7f1518c0b 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> @@ -1,5 +1,4 @@
> -GLIBC_2.2 timer_settime F
> +GLIBC_2.2 __librt_version_placeholder F
> GLIBC_2.3.4 __librt_version_placeholder F
> -GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index 141e1b295f..f3c39841dd 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -1989,6 +1989,7 @@ GLIBC_2.2 timer_create F
> 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.2 tmpfile F
> GLIBC_2.2 tmpfile64 F
> GLIBC_2.2 truncate64 F
> @@ -2525,6 +2526,7 @@ GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timer_gettime F
> +GLIBC_2.34 timer_settime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> index 406120e1d8..a7f1518c0b 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
> @@ -1,4 +1,4 @@
> -GLIBC_2.2 timer_settime F
> +GLIBC_2.2 __librt_version_placeholder F
> GLIBC_2.3.4 __librt_version_placeholder F
> GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index 71dc98ecf7..55f3102cbf 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -2056,6 +2056,7 @@ GLIBC_2.21 timer_create F
> GLIBC_2.21 timer_delete F
> GLIBC_2.21 timer_getoverrun F
> GLIBC_2.21 timer_gettime F
> +GLIBC_2.21 timer_settime F
> GLIBC_2.21 timerfd_create F
> GLIBC_2.21 timerfd_gettime F
> GLIBC_2.21 timerfd_settime F
> @@ -2483,6 +2484,7 @@ GLIBC_2.34 __thrd_sleep64 F
> GLIBC_2.34 __time64 F
> GLIBC_2.34 __timegm64 F
> GLIBC_2.34 __timer_gettime64 F
> +GLIBC_2.34 __timer_settime64 F
> GLIBC_2.34 __timerfd_gettime64 F
> GLIBC_2.34 __timerfd_settime64 F
> GLIBC_2.34 __timespec_get64 F
> @@ -2650,6 +2652,7 @@ GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timer_gettime F
> +GLIBC_2.34 timer_settime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
> index c162738eae..834a4dcc7a 100644
> --- a/sysdeps/unix/sysv/linux/nios2/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/librt.abilist
> @@ -1,2 +1 @@
> -GLIBC_2.21 timer_settime F
> -GLIBC_2.34 __timer_settime64 F
> +GLIBC_2.21 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index 03a0a0579a..82144c268e 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -2071,6 +2071,7 @@ GLIBC_2.2 timer_create F
> 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.2 ungetwc F
> GLIBC_2.2 vfwprintf F
> GLIBC_2.2 vfwscanf F
> @@ -2500,6 +2501,7 @@ GLIBC_2.34 __thrd_sleep64 F
> GLIBC_2.34 __time64 F
> GLIBC_2.34 __timegm64 F
> GLIBC_2.34 __timer_gettime64 F
> +GLIBC_2.34 __timer_settime64 F
> GLIBC_2.34 __timerfd_gettime64 F
> GLIBC_2.34 __timerfd_settime64 F
> GLIBC_2.34 __timespec_get64 F
> @@ -2667,6 +2669,7 @@ GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timer_gettime F
> +GLIBC_2.34 timer_settime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> index 179d1d53da..6d24ce527d 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> @@ -1,6 +1,5 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_settime F
> +GLIBC_2.2 __librt_version_placeholder F
> GLIBC_2.3.4 __librt_version_placeholder F
> -GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index 793531d9c4..4545f49cee 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -2075,6 +2075,7 @@ GLIBC_2.2 timer_create F
> 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.2 ungetwc F
> GLIBC_2.2 vfwprintf F
> GLIBC_2.2 vfwscanf F
> @@ -2533,6 +2534,7 @@ GLIBC_2.34 __thrd_sleep64 F
> GLIBC_2.34 __time64 F
> GLIBC_2.34 __timegm64 F
> GLIBC_2.34 __timer_gettime64 F
> +GLIBC_2.34 __timer_settime64 F
> GLIBC_2.34 __timerfd_gettime64 F
> GLIBC_2.34 __timerfd_settime64 F
> GLIBC_2.34 __timespec_get64 F
> @@ -2700,6 +2702,7 @@ GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timer_gettime F
> +GLIBC_2.34 timer_settime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions b/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions
> index 8607ac1012..0cdda49402 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions
> @@ -25,10 +25,3 @@ libc {
> __ppc_get_timebase_freq;
> }
> }
> -
> -librt {
> - GLIBC_2.3.3 {
> - # Changed timer_t.
> - timer_settime;
> - }
> -}
Ok.
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index 21763f0238..d47efa98ff 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -1890,6 +1890,7 @@ GLIBC_2.3 timer_create F
> GLIBC_2.3 timer_delete F
> GLIBC_2.3 timer_getoverrun F
> GLIBC_2.3 timer_gettime F
> +GLIBC_2.3 timer_settime F
> GLIBC_2.3 times F
> GLIBC_2.3 timezone D 0x8
> GLIBC_2.3 tmpfile F
> @@ -2170,6 +2171,7 @@ GLIBC_2.3.3 timer_create F
> GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> +GLIBC_2.3.3 timer_settime F
> GLIBC_2.3.4 __chk_fail F
> GLIBC_2.3.4 __fprintf_chk F
> GLIBC_2.3.4 __gets_chk F
> @@ -2437,6 +2439,7 @@ GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timer_gettime F
> +GLIBC_2.34 timer_settime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> index bfaae8ac0e..506870e3fd 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
> @@ -1,5 +1,5 @@
> -GLIBC_2.3 timer_settime F
> -GLIBC_2.3.3 timer_settime F
> +GLIBC_2.3 __librt_version_placeholder F
> +GLIBC_2.3.3 __librt_version_placeholder F
> GLIBC_2.3.4 __librt_version_placeholder F
> GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index ec8a207385..e08cbf7b2a 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -2098,6 +2098,7 @@ GLIBC_2.17 timer_create F
> GLIBC_2.17 timer_delete F
> GLIBC_2.17 timer_getoverrun F
> GLIBC_2.17 timer_gettime F
> +GLIBC_2.17 timer_settime F
> GLIBC_2.17 timerfd_create F
> GLIBC_2.17 timerfd_gettime F
> GLIBC_2.17 timerfd_settime F
> @@ -2733,6 +2734,7 @@ GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timer_gettime F
> +GLIBC_2.34 timer_settime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> index 2cb1369ddb..88d0fc382f 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
> @@ -1 +1 @@
> -GLIBC_2.17 timer_settime F
> +GLIBC_2.17 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_settime.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_settime.c
> deleted file mode 100644
> index fa231149d5..0000000000
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_settime.c
> +++ /dev/null
> @@ -1 +0,0 @@
> -#include <sysdeps/unix/sysv/linux/x86_64/timer_settime.c>
Ok.
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index c7b749f6a7..a8482733cd 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -1954,6 +1954,7 @@ GLIBC_2.33 timer_create F
> GLIBC_2.33 timer_delete F
> GLIBC_2.33 timer_getoverrun F
> GLIBC_2.33 timer_gettime F
> +GLIBC_2.33 timer_settime F
> GLIBC_2.33 timerfd_create F
> GLIBC_2.33 timerfd_gettime F
> GLIBC_2.33 timerfd_settime F
> @@ -2298,6 +2299,7 @@ GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timer_gettime F
> +GLIBC_2.34 timer_settime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> index c59f14490e..b8af976642 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
> @@ -1 +1 @@
> -GLIBC_2.33 timer_settime F
> +GLIBC_2.33 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index 33e13783fc..a2448c1c74 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -2020,6 +2020,7 @@ GLIBC_2.27 timer_create F
> GLIBC_2.27 timer_delete F
> GLIBC_2.27 timer_getoverrun F
> GLIBC_2.27 timer_gettime F
> +GLIBC_2.27 timer_settime F
> GLIBC_2.27 timerfd_create F
> GLIBC_2.27 timerfd_gettime F
> GLIBC_2.27 timerfd_settime F
> @@ -2498,6 +2499,7 @@ GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timer_gettime F
> +GLIBC_2.34 timer_settime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> index 62ff23fd04..d7902a3ec7 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
> @@ -1 +1 @@
> -GLIBC_2.27 timer_settime F
> +GLIBC_2.27 __librt_version_placeholder F
Ok.
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index 6681f84af2..5ee1e09391 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -2069,6 +2069,7 @@ GLIBC_2.2 timer_create F
> 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.2 ungetwc F
> GLIBC_2.2 versionsort64 F
> GLIBC_2.2 vfwprintf F
> @@ -2498,6 +2499,7 @@ GLIBC_2.34 __thrd_sleep64 F
> GLIBC_2.34 __time64 F
> GLIBC_2.34 __timegm64 F
> GLIBC_2.34 __timer_gettime64 F
> +GLIBC_2.34 __timer_settime64 F
> GLIBC_2.34 __timerfd_gettime64 F
> GLIBC_2.34 __timerfd_settime64 F
> GLIBC_2.34 __timespec_get64 F
> @@ -2665,6 +2667,7 @@ GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timer_gettime F
> +GLIBC_2.34 timer_settime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> index 179d1d53da..6d24ce527d 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> @@ -1,6 +1,5 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_settime F
> +GLIBC_2.2 __librt_version_placeholder F
> GLIBC_2.3.4 __librt_version_placeholder F
> -GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/Versions b/sysdeps/unix/sysv/linux/s390/s390-64/Versions
> index 5c682764ad..83092db48e 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/Versions
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/Versions
> @@ -5,10 +5,3 @@ libc {
> __frame_state_for; __register_frame_info_table;
> }
> }
> -
> -librt {
> - GLIBC_2.3.3 {
> - # Changed timer_t.
> - timer_settime;
> - }
> -}
Ok.
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index e97c113408..1cd10e7e77 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -1765,6 +1765,7 @@ GLIBC_2.2 timer_create F
> 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.2 times F
> GLIBC_2.2 timezone D 0x8
> GLIBC_2.2 tmpfile F
> @@ -2216,6 +2217,7 @@ GLIBC_2.3.3 timer_create F
> GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> +GLIBC_2.3.3 timer_settime F
> GLIBC_2.3.4 __chk_fail F
> GLIBC_2.3.4 __fprintf_chk F
> GLIBC_2.3.4 __gets_chk F
> @@ -2474,6 +2476,7 @@ GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timer_gettime F
> +GLIBC_2.34 timer_settime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> index f851eea81e..7dac2342ac 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
> @@ -1,5 +1,5 @@
> -GLIBC_2.2 timer_settime F
> -GLIBC_2.3.3 timer_settime F
> +GLIBC_2.2 __librt_version_placeholder F
> +GLIBC_2.3.3 __librt_version_placeholder F
> GLIBC_2.3.4 __librt_version_placeholder F
> GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/timer_settime.c b/sysdeps/unix/sysv/linux/s390/s390-64/timer_settime.c
> deleted file mode 100644
> index fa231149d5..0000000000
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/timer_settime.c
> +++ /dev/null
> @@ -1 +0,0 @@
> -#include <sysdeps/unix/sysv/linux/x86_64/timer_settime.c>
Ok.
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index 360802cf78..c621caae80 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -1752,6 +1752,7 @@ GLIBC_2.2 timer_create F
> 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.2 times F
> GLIBC_2.2 timezone D 0x4
> GLIBC_2.2 tmpfile F
> @@ -2353,6 +2354,7 @@ GLIBC_2.34 __thrd_sleep64 F
> GLIBC_2.34 __time64 F
> GLIBC_2.34 __timegm64 F
> GLIBC_2.34 __timer_gettime64 F
> +GLIBC_2.34 __timer_settime64 F
> GLIBC_2.34 __timerfd_gettime64 F
> GLIBC_2.34 __timerfd_settime64 F
> GLIBC_2.34 __timespec_get64 F
> @@ -2520,6 +2522,7 @@ GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timer_gettime F
> +GLIBC_2.34 timer_settime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> index 179d1d53da..6d24ce527d 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> @@ -1,6 +1,5 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_settime F
> +GLIBC_2.2 __librt_version_placeholder F
> GLIBC_2.3.4 __librt_version_placeholder F
> -GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index e9cb3ff8f1..ba459df43a 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -1752,6 +1752,7 @@ GLIBC_2.2 timer_create F
> 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.2 times F
> GLIBC_2.2 timezone D 0x4
> GLIBC_2.2 tmpfile F
> @@ -2350,6 +2351,7 @@ GLIBC_2.34 __thrd_sleep64 F
> GLIBC_2.34 __time64 F
> GLIBC_2.34 __timegm64 F
> GLIBC_2.34 __timer_gettime64 F
> +GLIBC_2.34 __timer_settime64 F
> GLIBC_2.34 __timerfd_gettime64 F
> GLIBC_2.34 __timerfd_settime64 F
> GLIBC_2.34 __timespec_get64 F
> @@ -2517,6 +2519,7 @@ GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timer_gettime F
> +GLIBC_2.34 timer_settime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> index 179d1d53da..6d24ce527d 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> @@ -1,6 +1,5 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_settime F
> +GLIBC_2.2 __librt_version_placeholder F
> GLIBC_2.3.4 __librt_version_placeholder F
> -GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sparc/librt-compat.c b/sysdeps/unix/sysv/linux/sparc/librt-compat.c
> index a3862ba127..17a7895703 100644
> --- a/sysdeps/unix/sysv/linux/sparc/librt-compat.c
> +++ b/sysdeps/unix/sysv/linux/sparc/librt-compat.c
> @@ -16,7 +16,7 @@
> License along with the GNU C Library; if not, see
> <https://www.gnu.org/licenses/>. */
>
> -#include <rt/librt-compat.c>
> +#include <sysdeps/unix/sysv/linux/librt-compat.c>
>
> #if SHLIB_COMPAT (librt, GLIBC_2_3, GLIBC_2_34)
> compat_symbol (librt, __librt_version_placeholder_1,
Ok.
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index 2af5948dd7..5e0eed47e3 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -2064,6 +2064,7 @@ GLIBC_2.2 timer_create F
> 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.2 ungetwc F
> GLIBC_2.2 vfwprintf F
> GLIBC_2.2 vfwscanf F
> @@ -2493,6 +2494,7 @@ GLIBC_2.34 __thrd_sleep64 F
> GLIBC_2.34 __time64 F
> GLIBC_2.34 __timegm64 F
> GLIBC_2.34 __timer_gettime64 F
> +GLIBC_2.34 __timer_settime64 F
> GLIBC_2.34 __timerfd_gettime64 F
> GLIBC_2.34 __timerfd_settime64 F
> GLIBC_2.34 __timespec_get64 F
> @@ -2660,6 +2662,7 @@ GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timer_gettime F
> +GLIBC_2.34 timer_settime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> index dc0a3c4dfb..7ff1ca83b1 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> @@ -1,7 +1,6 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_settime F
> +GLIBC_2.2 __librt_version_placeholder F
> GLIBC_2.3 __librt_version_placeholder F
> GLIBC_2.3.4 __librt_version_placeholder F
> -GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/Versions b/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
> index 5e8f59ceae..cc152489f6 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
> @@ -10,10 +10,3 @@ libc {
> wordexp;
> }
> }
> -
> -librt {
> - GLIBC_2.3.3 {
> - # Changed timer_t.
> - timer_settime;
> - }
> -}
Ok.
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index fde5b780a6..99e6181e24 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -1795,6 +1795,7 @@ GLIBC_2.2 timer_create F
> 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.2 times F
> GLIBC_2.2 timezone D 0x8
> GLIBC_2.2 tmpfile F
> @@ -2250,6 +2251,7 @@ GLIBC_2.3.3 timer_create F
> GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> +GLIBC_2.3.3 timer_settime F
> GLIBC_2.3.4 __chk_fail F
> GLIBC_2.3.4 __fprintf_chk F
> GLIBC_2.3.4 __gets_chk F
> @@ -2496,6 +2498,7 @@ GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timer_gettime F
> +GLIBC_2.34 timer_settime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> index a2de1ecd94..f68e03dfde 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
> @@ -1,7 +1,7 @@
> GLIBC_2.1 __librt_version_placeholder F
> -GLIBC_2.2 timer_settime F
> +GLIBC_2.2 __librt_version_placeholder F
> GLIBC_2.3 __librt_version_placeholder F
> -GLIBC_2.3.3 timer_settime F
> +GLIBC_2.3.3 __librt_version_placeholder F
> GLIBC_2.3.4 __librt_version_placeholder F
> GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __librt_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/timer_settime.c b/sysdeps/unix/sysv/linux/sparc/sparc64/timer_settime.c
> deleted file mode 100644
> index fa231149d5..0000000000
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/timer_settime.c
> +++ /dev/null
> @@ -1 +0,0 @@
> -#include <sysdeps/unix/sysv/linux/x86_64/timer_settime.c>
Ok.
> diff --git a/sysdeps/unix/sysv/linux/timer_settime.c b/sysdeps/unix/sysv/linux/timer_settime.c
> index b8326e36a4..cbe430480d 100644
> --- a/sysdeps/unix/sysv/linux/timer_settime.c
> +++ b/sysdeps/unix/sysv/linux/timer_settime.c
> @@ -22,27 +22,29 @@
> #include <sysdep.h>
> #include <kernel-features.h>
> #include <kernel-posix-timers.h>
> +#include <shlib-compat.h>
>
> +#if !TIMER_T_WAS_INT_COMPAT
> int
> -__timer_settime64 (timer_t timerid, int flags,
> +___timer_settime64 (timer_t timerid, int flags,
> const struct __itimerspec64 *value,
> struct __itimerspec64 *ovalue)
> {
> kernel_timer_t ktimerid = timerid_to_kernel_timer (timerid);
>
> -#ifdef __ASSUME_TIME64_SYSCALLS
> -# ifndef __NR_timer_settime64
> -# define __NR_timer_settime64 __NR_timer_settime
> -# endif
> +# ifdef __ASSUME_TIME64_SYSCALLS
> +# ifndef __NR_timer_settime64
> +# define __NR_timer_settime64 __NR_timer_settime
> +# endif
> return INLINE_SYSCALL_CALL (timer_settime64, ktimerid, flags, value,
> ovalue);
> -#else
> -# ifdef __NR_timer_settime64
> +# else
> +# ifdef __NR_timer_settime64
> int ret = INLINE_SYSCALL_CALL (timer_settime64, ktimerid, flags, value,
> ovalue);
> if (ret == 0 || errno != ENOSYS)
> return ret;
> -# endif
> +# endif
> struct itimerspec its32, oits32;
>
> if (! in_time_t_range ((value->it_value).tv_sec)
> @@ -64,11 +66,18 @@ __timer_settime64 (timer_t timerid, int flags,
> }
>
> return retval;
> -#endif
> +# endif
> }
>
> -#if __TIMESIZE != 64
> -librt_hidden_def (__timer_settime64)
> +# if __TIMESIZE == 64
> +versioned_symbol (libc, ___timer_settime64, timer_settime, GLIBC_2_34);
> +# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_34)
> +compat_symbol (librt, ___timer_settime64, timer_settime, GLIBC_2_2);
> +# endif
> +
> +#else /* __TIMESIZE != 64 */
> +libc_hidden_ver (___timer_settime64, __timer_settime64)
> +versioned_symbol (libc, ___timer_settime64, __timer_settime64, GLIBC_2_34);
>
> int
> __timer_settime (timer_t timerid, int flags, const struct itimerspec *value,
> @@ -89,5 +98,43 @@ __timer_settime (timer_t timerid, int flags, const struct itimerspec *value,
>
> return retval;
> }
> -#endif
> -weak_alias (__timer_settime, timer_settime)
> +versioned_symbol (libc, __timer_settime, timer_settime, GLIBC_2_34);
> +
> +# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_34)
> +compat_symbol (librt, __timer_settime, timer_settime, GLIBC_2_2);
> +# endif
> +# endif /* __TIMESIZE != 64 */
> +
> +#else /* TIMER_T_WAS_INT_COMPAT */
> +
> +extern __typeof (timer_settime) __timer_settime_new;
> +libc_hidden_proto (__timer_settime_new)
> +
> +int
> +___timer_settime_new (timer_t timerid, int flags,
> + const struct itimerspec *value,
> + struct itimerspec *ovalue)
> +{
> + kernel_timer_t ktimerid = timerid_to_kernel_timer (timerid);
> +
> + return INLINE_SYSCALL_CALL (timer_settime, ktimerid, flags, value, ovalue);
> +}
> +versioned_symbol (libc, ___timer_settime_new, timer_settime, GLIBC_2_34);
> +libc_hidden_ver (___timer_settime_new, __timer_settime_new)
> +
> +# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_3_3, GLIBC_2_34)
> +compat_symbol (librt, ___timer_settime_new, timer_settime, GLIBC_2_3_3);
> +# endif
> +
> +# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_3_3)
> +int
> +__timer_settime_old (int timerid, int flags, const struct itimerspec *value,
> + struct itimerspec *ovalue)
> +{
> + return __timer_settime_new (__timer_compat_list[timerid], flags,
> + value, ovalue);
> +}
> +compat_symbol (librt, __timer_settime_old, timer_settime, GLIBC_2_2);
> +# endif
> +
> +#endif /* TIMER_T_WAS_INT_COMPAT */
Ok.
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index 87dc534709..2460b47dc7 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -1764,6 +1764,7 @@ GLIBC_2.2.5 timer_create F
> GLIBC_2.2.5 timer_delete F
> GLIBC_2.2.5 timer_getoverrun F
> GLIBC_2.2.5 timer_gettime F
> +GLIBC_2.2.5 timer_settime F
> GLIBC_2.2.5 times F
> GLIBC_2.2.5 timezone D 0x8
> GLIBC_2.2.5 tmpfile F
> @@ -2204,6 +2205,7 @@ GLIBC_2.3.3 timer_create F
> GLIBC_2.3.3 timer_delete F
> GLIBC_2.3.3 timer_getoverrun F
> GLIBC_2.3.3 timer_gettime F
> +GLIBC_2.3.3 timer_settime F
> GLIBC_2.3.4 __chk_fail F
> GLIBC_2.3.4 __fprintf_chk F
> GLIBC_2.3.4 __gets_chk F
> @@ -2452,6 +2454,7 @@ GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timer_gettime F
> +GLIBC_2.34 timer_settime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> index 913835d267..752a38a6df 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
> @@ -1,5 +1,5 @@
> -GLIBC_2.2.5 timer_settime F
> -GLIBC_2.3.3 timer_settime F
> +GLIBC_2.2.5 __librt_version_placeholder F
> +GLIBC_2.3.3 __librt_version_placeholder F
> GLIBC_2.3.4 __librt_version_placeholder F
> GLIBC_2.4 __librt_version_placeholder F
> GLIBC_2.7 __librt_version_placeholder F
Ok.
> diff --git a/sysdeps/unix/sysv/linux/x86_64/Versions b/sysdeps/unix/sysv/linux/x86_64/Versions
> index 8deeb8908a..fd1b3cc296 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/Versions
> +++ b/sysdeps/unix/sysv/linux/x86_64/Versions
> @@ -7,10 +7,3 @@ libc {
> modify_ldt;
> }
> }
> -
> -librt {
> - GLIBC_2.3.3 {
> - # Changed timer_t.
> - timer_settime;
> - }
> -}
> diff --git a/sysdeps/unix/sysv/linux/x86_64/compat-timer.h b/sysdeps/unix/sysv/linux/x86_64/compat-timer.h
> deleted file mode 100644
> index c61eb40070..0000000000
> --- a/sysdeps/unix/sysv/linux/x86_64/compat-timer.h
> +++ /dev/null
> @@ -1,37 +0,0 @@
> -/* Copyright (C) 2003-2021 Free Software Foundation, Inc.
> - This file is part of the GNU C Library.
> - Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
> -
> - 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; see the file COPYING.LIB. If
> - not, see <https://www.gnu.org/licenses/>. */
> -
> -#include <signal.h>
> -#include <time.h>
> -#include <sys/types.h>
> -
> -extern int __timer_getoverrun_new (timer_t timerid);
> -extern int __timer_gettime_new (timer_t timerid, struct itimerspec *value);
> -extern int __timer_settime_new (timer_t timerid, int flags,
> - const struct itimerspec *value,
> - struct itimerspec *ovalue);
> -
> -
> -extern int __timer_create_old (clockid_t clock_id, struct sigevent *evp,
> - int *timerid);
> -extern int __timer_delete_old (int timerid);
> -extern int __timer_getoverrun_old (int timerid);
> -extern int __timer_gettime_old (int timerid, struct itimerspec *value);
> -extern int __timer_settime_old (int timerid, int flags,
> - const struct itimerspec *value,
> - struct itimerspec *ovalue);
> diff --git a/sysdeps/unix/sysv/linux/x86_64/timer_settime.c b/sysdeps/unix/sysv/linux/x86_64/timer_settime.c
> deleted file mode 100644
> index dd7d01e849..0000000000
> --- a/sysdeps/unix/sysv/linux/x86_64/timer_settime.c
> +++ /dev/null
> @@ -1,44 +0,0 @@
> -/* Copyright (C) 2003-2021 Free Software Foundation, Inc.
> - This file is part of the GNU C Library.
> - Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
> -
> - 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; see the file COPYING.LIB. If
> - not, see <https://www.gnu.org/licenses/>. */
> -
> -#include <shlib-compat.h>
> -#include <sysdep.h>
> -#include <kernel-posix-timers.h>
> -#include "compat-timer.h"
> -
> -int
> -__timer_settime_new (timer_t timerid, int flags, const struct itimerspec *value,
> - struct itimerspec *ovalue)
> -{
> - kernel_timer_t ktimerid = timerid_to_kernel_timer (timerid);
> -
> - return INLINE_SYSCALL_CALL (timer_settime, ktimerid, flags, value, ovalue);
> -}
> -versioned_symbol (librt, __timer_settime_new, timer_settime, GLIBC_2_3_3);
> -
> -
> -#if SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_3_3)
> -int
> -__timer_settime_old (int timerid, int flags, const struct itimerspec *value,
> - struct itimerspec *ovalue)
> -{
> - return __timer_settime_new (__timer_compat_list[timerid], flags,
> - value, ovalue);
> -}
> -compat_symbol (librt, __timer_settime_old, timer_settime, GLIBC_2_2);
> -#endif
Ok.
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index 143b8d602c..8789b1edb2 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -2015,6 +2015,7 @@ GLIBC_2.16 timer_create F
> GLIBC_2.16 timer_delete F
> GLIBC_2.16 timer_getoverrun F
> GLIBC_2.16 timer_gettime F
> +GLIBC_2.16 timer_settime F
> GLIBC_2.16 timerfd_create F
> GLIBC_2.16 timerfd_gettime F
> GLIBC_2.16 timerfd_settime F
> @@ -2552,6 +2553,7 @@ GLIBC_2.34 timer_create F
> GLIBC_2.34 timer_delete F
> GLIBC_2.34 timer_getoverrun F
> GLIBC_2.34 timer_gettime F
> +GLIBC_2.34 timer_settime F
> GLIBC_2.34 timespec_getres F
> GLIBC_2.34 tss_create F
> GLIBC_2.34 tss_delete F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> index 50f2032de7..a39d5383e4 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
> @@ -1 +1 @@
> -GLIBC_2.16 timer_settime F
> +GLIBC_2.16 __librt_version_placeholder F
>
Ok.
^ permalink raw reply [flat|nested] 72+ messages in thread
* [PATCH 34/34] Linux: Cleanups after librt move
2021-06-17 18:56 [PATCH v2 00/34] Move librt into libc Florian Weimer
` (32 preceding siblings ...)
2021-06-17 18:59 ` [PATCH 33/34] Linux: Move timer_settime, __timer_settime64 " Florian Weimer
@ 2021-06-17 19:00 ` Florian Weimer
2021-06-24 17:45 ` Adhemerval Zanella
2021-06-24 17:49 ` [PATCH v2 00/34] Move librt into libc Adhemerval Zanella
34 siblings, 1 reply; 72+ messages in thread
From: Florian Weimer @ 2021-06-17 19:00 UTC (permalink / raw)
To: libc-alpha
librt.so is no longer installed for PTHREAD_IN_LIBC, and tests
are not linked against it.
GLIBC_PRIVATE symbols that were needed during the transition are
removed again.
---
elf/Makefile | 4 +-
nptl/Makefile | 9 ----
rt/Makefile | 13 ++++--
rt/Versions | 13 ------
rt/aio_misc.c | 14 ------
rt/aio_notify.c | 8 ----
rt/aio_sigqueue.c | 1 -
sysdeps/generic/aio_misc.h | 43 ++++++-------------
sysdeps/pthread/Makefile | 2 +
sysdeps/unix/sysv/linux/Versions | 6 ---
sysdeps/unix/sysv/linux/aio_sigqueue.c | 1 -
sysdeps/unix/sysv/linux/kernel-posix-timers.h | 19 +++-----
sysdeps/unix/sysv/linux/timer_create.c | 3 +-
sysdeps/unix/sysv/linux/timer_routines.c | 10 +----
14 files changed, 37 insertions(+), 109 deletions(-)
diff --git a/elf/Makefile b/elf/Makefile
index 38d08e03b8..f9dac8dcc9 100644
--- a/elf/Makefile
+++ b/elf/Makefile
@@ -1179,7 +1179,6 @@ localplt-built-dso := $(addprefix $(common-objpfx),\
libc.so \
elf/ld.so \
math/libm.so \
- rt/librt.so \
dlfcn/libdl.so \
resolv/libresolv.so \
)
@@ -1192,6 +1191,9 @@ endif
ifeq ($(build-crypt),yes)
localplt-built-dso += $(addprefix $(common-objpfx), crypt/libcrypt.so)
endif
+ifneq ($(pthread-in-libc),yes)
+localplt-built-dso += $(addprefix $(common-objpfx), rt/librt.so)
+endif
vpath localplt.data $(+sysdep_dirs)
diff --git a/nptl/Makefile b/nptl/Makefile
index bbaf796771..17a4b63730 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -536,15 +536,6 @@ $(objpfx)tst-tls6.out: tst-tls6.sh $(objpfx)tst-tls5 \
$(evaluate-test)
endif
-ifeq (yes,$(build-shared))
-librt = $(common-objpfx)rt/librt.so
-else
-librt = $(common-objpfx)rt/librt.a
-endif
-
-$(objpfx)tst-cancel17: $(librt)
-$(objpfx)tst-cancelx17: $(librt)
-
LDLIBS-tst-cancel24 = -Wl,--no-as-needed -lstdc++
LDLIBS-tst-cancel24-static = $(LDLIBS-tst-cancel24)
diff --git a/rt/Makefile b/rt/Makefile
index c1e989ede8..8945fbf94d 100644
--- a/rt/Makefile
+++ b/rt/Makefile
@@ -28,9 +28,7 @@ routines = \
shm_open \
shm_unlink \
-librt-routines = \
- librt-compat \
-
+librt-routines = librt-compat
librt-shared-only-routines = librt-compat
$(librt-routines-var) += \
@@ -64,6 +62,13 @@ $(librt-routines-var) += \
timer_gettime \
timer_settime \
+ifeq ($(pthread-in-libc),yes)
+# Pretend that libdl.so is a linker script, so that the symbolic
+# link is not installed.
+install-lib-ldscripts = librt.so
+$(inst_libdir)/librt.so:
+endif
+
tests := tst-shm tst-timer tst-timer2 \
tst-aio tst-aio64 tst-aio2 tst-aio3 tst-aio4 tst-aio5 tst-aio6 \
tst-aio7 tst-aio8 tst-aio9 tst-aio10 \
@@ -96,6 +101,7 @@ LDFLAGS-rt.so = -Wl,--enable-new-dtags,-z,nodelete
$(objpfx)librt.so: $(shared-thread-library)
+ifneq ($(pthread-in-libc),yes)
ifeq (yes,$(build-shared))
$(addprefix $(objpfx),$(tests) $(tests-internal)): \
$(objpfx)librt.so $(shared-thread-library)
@@ -103,5 +109,6 @@ else
$(addprefix $(objpfx),$(tests)) $(tests-internal): \
$(objpfx)librt.a $(static-thread-library)
endif
+endif # !$(pthread-in-libc)
tst-mqueue7-ARGS = -- $(host-test-program-cmd)
diff --git a/rt/Versions b/rt/Versions
index 7e41beae06..a3dc72cff4 100644
--- a/rt/Versions
+++ b/rt/Versions
@@ -95,19 +95,6 @@ libc {
shm_open;
shm_unlink;
}
-%if PTHREAD_IN_LIBC
- GLIBC_PRIVATE {
- __aio_enqueue_request;
- __aio_find_req;
- __aio_find_req_fd;
- __aio_free_request;
- __aio_notify;
- __aio_notify_only;
- __aio_remove_request;
- __aio_requests_mutex;
- __aio_sigqueue;
- }
-%endif
}
librt {
GLIBC_2.1 {
diff --git a/rt/aio_misc.c b/rt/aio_misc.c
index d9be8ac33d..856a1b2755 100644
--- a/rt/aio_misc.c
+++ b/rt/aio_misc.c
@@ -735,24 +735,10 @@ add_request_to_runlist (struct requestlist *newrequest)
}
#if PTHREAD_IN_LIBC
-libc_hidden_data_def (__aio_requests_mutex)
-libc_hidden_def (__aio_enqueue_request)
-libc_hidden_def (__aio_find_req)
-libc_hidden_def (__aio_find_req_fd)
-libc_hidden_def (__aio_free_request)
-libc_hidden_def (__aio_remove_request)
-
versioned_symbol (libc, __aio_init, aio_init, GLIBC_2_34);
# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_34)
compat_symbol (librt, __aio_init, aio_init, GLIBC_2_1);
# endif
-
#else /* !PTHREAD_IN_LIBC */
-librt_hidden_data_def (__aio_requests_mutex)
-librt_hidden_def (__aio_enqueue_request)
-librt_hidden_def (__aio_find_req)
-librt_hidden_def (__aio_find_req_fd)
-librt_hidden_def (__aio_free_request)
-librt_hidden_def (__aio_remove_request)
weak_alias (__aio_init, aio_init)
#endif /* !PTHREAD_IN_LIBC */
diff --git a/rt/aio_notify.c b/rt/aio_notify.c
index 432000e34b..0fa84f203c 100644
--- a/rt/aio_notify.c
+++ b/rt/aio_notify.c
@@ -160,11 +160,3 @@ __aio_notify (struct requestlist *req)
waitlist = next;
}
}
-
-#if PTHREAD_IN_LIBC
-libc_hidden_def (__aio_notify)
-libc_hidden_def (__aio_notify_only)
-#else
-librt_hidden_def (__aio_notify)
-librt_hidden_def (__aio_notify_only)
-#endif
diff --git a/rt/aio_sigqueue.c b/rt/aio_sigqueue.c
index 0ad95ae04c..84848bacd8 100644
--- a/rt/aio_sigqueue.c
+++ b/rt/aio_sigqueue.c
@@ -28,5 +28,4 @@ __aio_sigqueue (int sig, const union sigval val, pid_t caller_pid)
__set_errno (ENOSYS);
return -1;
}
-librt_hidden_def (__aio_sigqueue)
stub_warning (__aio_sigqueue)
diff --git a/sysdeps/generic/aio_misc.h b/sysdeps/generic/aio_misc.h
index d9bff36e50..4d05b8cdd6 100644
--- a/sysdeps/generic/aio_misc.h
+++ b/sysdeps/generic/aio_misc.h
@@ -87,55 +87,36 @@ struct requestlist
/* Lock for global I/O list of requests. */
-extern pthread_mutex_t __aio_requests_mutex;
+extern pthread_mutex_t __aio_requests_mutex attribute_hidden;
/* Enqueue request. */
extern struct requestlist *__aio_enqueue_request (aiocb_union *aiocbp,
- int operation);
+ int operation)
+ attribute_hidden;
/* Find request entry for given AIO control block. */
-extern struct requestlist *__aio_find_req (aiocb_union *elem);
+extern struct requestlist *__aio_find_req (aiocb_union *elem) attribute_hidden;
/* Find request entry for given file descriptor. */
-extern struct requestlist *__aio_find_req_fd (int fildes);
+extern struct requestlist *__aio_find_req_fd (int fildes) attribute_hidden;
/* Remove request from the list. */
extern void __aio_remove_request (struct requestlist *last,
- struct requestlist *req, int all);
+ struct requestlist *req, int all)
+ attribute_hidden;
/* Release the entry for the request. */
-extern void __aio_free_request (struct requestlist *req);
+extern void __aio_free_request (struct requestlist *req) attribute_hidden;
/* Notify initiator of request and tell this everybody listening. */
-extern void __aio_notify (struct requestlist *req);
+extern void __aio_notify (struct requestlist *req) attribute_hidden;
/* Notify initiator of request. */
-extern int __aio_notify_only (struct sigevent *sigev);
+extern int __aio_notify_only (struct sigevent *sigev) attribute_hidden;
/* Send the signal. */
-extern int __aio_sigqueue (int sig, const union sigval val, pid_t caller_pid);
-
-#if PTHREAD_IN_LIBC
-libc_hidden_proto (__aio_enqueue_request)
-libc_hidden_proto (__aio_find_req)
-libc_hidden_proto (__aio_find_req_fd)
-libc_hidden_proto (__aio_free_request)
-libc_hidden_proto (__aio_notify)
-libc_hidden_proto (__aio_notify_only)
-libc_hidden_proto (__aio_remove_request)
-libc_hidden_proto (__aio_requests_mutex)
-libc_hidden_proto (__aio_sigqueue)
-#else
-librt_hidden_proto (__aio_enqueue_request)
-librt_hidden_proto (__aio_find_req)
-librt_hidden_proto (__aio_find_req_fd)
-librt_hidden_proto (__aio_free_request)
-librt_hidden_proto (__aio_notify)
-librt_hidden_proto (__aio_notify_only)
-librt_hidden_proto (__aio_remove_request)
-librt_hidden_proto (__aio_requests_mutex)
-librt_hidden_proto (__aio_sigqueue)
-#endif
+extern int __aio_sigqueue (int sig, const union sigval val, pid_t caller_pid)
+ attribute_hidden;
#endif /* aio_misc.h */
diff --git a/sysdeps/pthread/Makefile b/sysdeps/pthread/Makefile
index 9e6ed3c6f7..cca0d4da0d 100644
--- a/sysdeps/pthread/Makefile
+++ b/sysdeps/pthread/Makefile
@@ -18,11 +18,13 @@
ifeq ($(subdir),rt)
+ifneq ($(pthread-in-libc),yes)
ifeq (yes,$(build-shared))
$(objpfx)tst-timer: $(objpfx)librt.so $(shared-thread-library)
else
$(objpfx)tst-timer: $(objpfx)librt.a $(static-thread-library)
endif
+endif # !$(pthread-in-libc)
endif
diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions
index 578d55e7fd..29ed24591d 100644
--- a/sysdeps/unix/sysv/linux/Versions
+++ b/sysdeps/unix/sysv/linux/Versions
@@ -291,12 +291,6 @@ libc {
__pread64_nocancel;
__close_nocancel;
__sigtimedwait;
- __timer_active_sigev_thread;
- __timer_active_sigev_thread_lock;
- __timer_compat_list;
- __timer_helper_once;
- __timer_helper_tid;
- __timer_start_helper_thread;
# functions used by nscd
__netlink_assert_response;
}
diff --git a/sysdeps/unix/sysv/linux/aio_sigqueue.c b/sysdeps/unix/sysv/linux/aio_sigqueue.c
index bd0da6e763..0b0f347197 100644
--- a/sysdeps/unix/sysv/linux/aio_sigqueue.c
+++ b/sysdeps/unix/sysv/linux/aio_sigqueue.c
@@ -44,4 +44,3 @@ __aio_sigqueue (int sig, const union sigval val, pid_t caller_pid)
return INLINE_SYSCALL (rt_sigqueueinfo, 3, info.si_pid, sig, &info);
}
-libc_hidden_def (__aio_sigqueue)
diff --git a/sysdeps/unix/sysv/linux/kernel-posix-timers.h b/sysdeps/unix/sysv/linux/kernel-posix-timers.h
index a976b028e0..0f7eff1794 100644
--- a/sysdeps/unix/sysv/linux/kernel-posix-timers.h
+++ b/sysdeps/unix/sysv/linux/kernel-posix-timers.h
@@ -26,27 +26,23 @@
extern int __no_posix_timers attribute_hidden;
/* Callback to start helper thread. */
-extern void __timer_start_helper_thread (void);
-libc_hidden_proto (__timer_start_helper_thread)
+extern void __timer_start_helper_thread (void) attribute_hidden;
/* Control variable for helper thread creation. */
-extern pthread_once_t __timer_helper_once;
-libc_hidden_proto (__timer_helper_once)
+extern pthread_once_t __timer_helper_once attribute_hidden;
/* Called from fork so that the new subprocess re-creates the
notification thread if necessary. */
void __timer_fork_subprocess (void) attribute_hidden;
/* TID of the helper thread. */
-extern pid_t __timer_helper_tid;
-libc_hidden_proto (__timer_helper_tid)
+extern pid_t __timer_helper_tid attribute_hidden;
/* List of active SIGEV_THREAD timers. */
-extern struct timer *__timer_active_sigev_thread;
-libc_hidden_proto (__timer_active_sigev_thread)
+extern struct timer *__timer_active_sigev_thread attribute_hidden;
+
/* Lock for __timer_active_sigev_thread. */
-extern pthread_mutex_t __timer_active_sigev_thread_lock;
-libc_hidden_proto (__timer_active_sigev_thread_lock)
+extern pthread_mutex_t __timer_active_sigev_thread_lock attribute_hidden;
extern __typeof (timer_create) __timer_create;
libc_hidden_proto (__timer_create)
@@ -117,5 +113,4 @@ timerid_to_kernel_timer (timer_t timerid)
/* Used if an override sets TIMER_T_WAS_INT_COMPAT to 1. */
#define OLD_TIMER_MAX 256
-extern timer_t __timer_compat_list[OLD_TIMER_MAX];
-libc_hidden_proto (__timer_compat_list)
+extern timer_t __timer_compat_list[OLD_TIMER_MAX] attribute_hidden;
diff --git a/sysdeps/unix/sysv/linux/timer_create.c b/sysdeps/unix/sysv/linux/timer_create.c
index 9861177cf2..230bc45083 100644
--- a/sysdeps/unix/sysv/linux/timer_create.c
+++ b/sysdeps/unix/sysv/linux/timer_create.c
@@ -146,8 +146,7 @@ compat_symbol (librt, ___timer_create, timer_create, GLIBC_2_3_3);
# endif
# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_3_3)
-timer_t __timer_compat_list[OLD_TIMER_MAX] __attribute__ ((nocommon));
-libc_hidden_data_def (__timer_compat_list)
+timer_t __timer_compat_list[OLD_TIMER_MAX];
int
__timer_create_old (clockid_t clock_id, struct sigevent *evp, int *timerid)
diff --git a/sysdeps/unix/sysv/linux/timer_routines.c b/sysdeps/unix/sysv/linux/timer_routines.c
index fc3aa894ab..3a509d8ace 100644
--- a/sysdeps/unix/sysv/linux/timer_routines.c
+++ b/sysdeps/unix/sysv/linux/timer_routines.c
@@ -26,13 +26,10 @@
/* List of active SIGEV_THREAD timers. */
-struct timer *__timer_active_sigev_thread __attribute__ ((nocommon));
-libc_hidden_data_def (__timer_active_sigev_thread)
+struct timer *__timer_active_sigev_thread;
/* Lock for _timer_active_sigev_thread. */
-pthread_mutex_t __timer_active_sigev_thread_lock __attribute__ ((nocommon))
- = PTHREAD_MUTEX_INITIALIZER;
-libc_hidden_data_def (__timer_active_sigev_thread_lock)
+pthread_mutex_t __timer_active_sigev_thread_lock = PTHREAD_MUTEX_INITIALIZER;
struct thread_start_data
{
@@ -112,12 +109,10 @@ timer_helper_thread (void *arg)
/* Control variable for helper thread creation. */
pthread_once_t __timer_helper_once __attribute__ ((nocommon))
= PTHREAD_ONCE_INIT;
-libc_hidden_data_def (__timer_helper_once)
/* TID of the helper thread. */
pid_t __timer_helper_tid __attribute__ ((nocommon));
-libc_hidden_data_def (__timer_helper_tid)
/* Reset variables so that after a fork a new helper thread gets started. */
@@ -159,4 +154,3 @@ __timer_start_helper_thread (void)
/* No need for the attribute anymore. */
(void) __pthread_attr_destroy (&attr);
}
-libc_hidden_def (__timer_start_helper_thread)
--
2.31.1
^ permalink raw reply [flat|nested] 72+ messages in thread
* Re: [PATCH 34/34] Linux: Cleanups after librt move
2021-06-17 19:00 ` [PATCH 34/34] Linux: Cleanups after librt move Florian Weimer
@ 2021-06-24 17:45 ` Adhemerval Zanella
2021-06-25 8:53 ` Florian Weimer
0 siblings, 1 reply; 72+ messages in thread
From: Adhemerval Zanella @ 2021-06-24 17:45 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 17/06/2021 16:00, Florian Weimer via Libc-alpha wrote:
> librt.so is no longer installed for PTHREAD_IN_LIBC, and tests
> are not linked against it.
>
> GLIBC_PRIVATE symbols that were needed during the transition are
> removed again.
There are some more leftover I recently added to add timers on time64
tests:
ifeq (yes,$(build-shared))
librt = $(common-objpfx)rt/librt.so
else
librt = $(common-objpfx)rt/librt.a
endif
The patch looks ok, but you might want to update it against master.
> ---
> elf/Makefile | 4 +-
> nptl/Makefile | 9 ----
> rt/Makefile | 13 ++++--
> rt/Versions | 13 ------
> rt/aio_misc.c | 14 ------
> rt/aio_notify.c | 8 ----
> rt/aio_sigqueue.c | 1 -
> sysdeps/generic/aio_misc.h | 43 ++++++-------------
> sysdeps/pthread/Makefile | 2 +
> sysdeps/unix/sysv/linux/Versions | 6 ---
> sysdeps/unix/sysv/linux/aio_sigqueue.c | 1 -
> sysdeps/unix/sysv/linux/kernel-posix-timers.h | 19 +++-----
> sysdeps/unix/sysv/linux/timer_create.c | 3 +-
> sysdeps/unix/sysv/linux/timer_routines.c | 10 +----
> 14 files changed, 37 insertions(+), 109 deletions(-)
>
> diff --git a/elf/Makefile b/elf/Makefile
> index 38d08e03b8..f9dac8dcc9 100644
> --- a/elf/Makefile
> +++ b/elf/Makefile
> @@ -1179,7 +1179,6 @@ localplt-built-dso := $(addprefix $(common-objpfx),\
> libc.so \
> elf/ld.so \
> math/libm.so \
> - rt/librt.so \
> dlfcn/libdl.so \
> resolv/libresolv.so \
> )
> @@ -1192,6 +1191,9 @@ endif
> ifeq ($(build-crypt),yes)
> localplt-built-dso += $(addprefix $(common-objpfx), crypt/libcrypt.so)
> endif
> +ifneq ($(pthread-in-libc),yes)
> +localplt-built-dso += $(addprefix $(common-objpfx), rt/librt.so)
> +endif
>
> vpath localplt.data $(+sysdep_dirs)
>
Ok.
> diff --git a/nptl/Makefile b/nptl/Makefile
> index bbaf796771..17a4b63730 100644
> --- a/nptl/Makefile
> +++ b/nptl/Makefile
> @@ -536,15 +536,6 @@ $(objpfx)tst-tls6.out: tst-tls6.sh $(objpfx)tst-tls5 \
> $(evaluate-test)
> endif
>
> -ifeq (yes,$(build-shared))
> -librt = $(common-objpfx)rt/librt.so
> -else
> -librt = $(common-objpfx)rt/librt.a
> -endif
> -
> -$(objpfx)tst-cancel17: $(librt)
> -$(objpfx)tst-cancelx17: $(librt)
> -
> LDLIBS-tst-cancel24 = -Wl,--no-as-needed -lstdc++
> LDLIBS-tst-cancel24-static = $(LDLIBS-tst-cancel24)
>
Ok.
> diff --git a/rt/Makefile b/rt/Makefile
> index c1e989ede8..8945fbf94d 100644
> --- a/rt/Makefile
> +++ b/rt/Makefile
> @@ -28,9 +28,7 @@ routines = \
> shm_open \
> shm_unlink \
>
> -librt-routines = \
> - librt-compat \
> -
> +librt-routines = librt-compat
> librt-shared-only-routines = librt-compat
>
> $(librt-routines-var) += \
> @@ -64,6 +62,13 @@ $(librt-routines-var) += \
> timer_gettime \
> timer_settime \
>
> +ifeq ($(pthread-in-libc),yes)
> +# Pretend that libdl.so is a linker script, so that the symbolic
> +# link is not installed.
> +install-lib-ldscripts = librt.so
> +$(inst_libdir)/librt.so:
> +endif
> +
> tests := tst-shm tst-timer tst-timer2 \
> tst-aio tst-aio64 tst-aio2 tst-aio3 tst-aio4 tst-aio5 tst-aio6 \
> tst-aio7 tst-aio8 tst-aio9 tst-aio10 \
> @@ -96,6 +101,7 @@ LDFLAGS-rt.so = -Wl,--enable-new-dtags,-z,nodelete
>
> $(objpfx)librt.so: $(shared-thread-library)
>
> +ifneq ($(pthread-in-libc),yes)
> ifeq (yes,$(build-shared))
> $(addprefix $(objpfx),$(tests) $(tests-internal)): \
> $(objpfx)librt.so $(shared-thread-library)
> @@ -103,5 +109,6 @@ else
> $(addprefix $(objpfx),$(tests)) $(tests-internal): \
> $(objpfx)librt.a $(static-thread-library)
> endif
> +endif # !$(pthread-in-libc)
>
> tst-mqueue7-ARGS = -- $(host-test-program-cmd)
Ok.
> diff --git a/rt/Versions b/rt/Versions
> index 7e41beae06..a3dc72cff4 100644
> --- a/rt/Versions
> +++ b/rt/Versions
> @@ -95,19 +95,6 @@ libc {
> shm_open;
> shm_unlink;
> }
> -%if PTHREAD_IN_LIBC
> - GLIBC_PRIVATE {
> - __aio_enqueue_request;
> - __aio_find_req;
> - __aio_find_req_fd;
> - __aio_free_request;
> - __aio_notify;
> - __aio_notify_only;
> - __aio_remove_request;
> - __aio_requests_mutex;
> - __aio_sigqueue;
> - }
> -%endif
> }
> librt {
> GLIBC_2.1 {
Ok.
> diff --git a/rt/aio_misc.c b/rt/aio_misc.c
> index d9be8ac33d..856a1b2755 100644
> --- a/rt/aio_misc.c
> +++ b/rt/aio_misc.c
> @@ -735,24 +735,10 @@ add_request_to_runlist (struct requestlist *newrequest)
> }
>
> #if PTHREAD_IN_LIBC
> -libc_hidden_data_def (__aio_requests_mutex)
> -libc_hidden_def (__aio_enqueue_request)
> -libc_hidden_def (__aio_find_req)
> -libc_hidden_def (__aio_find_req_fd)
> -libc_hidden_def (__aio_free_request)
> -libc_hidden_def (__aio_remove_request)
> -
> versioned_symbol (libc, __aio_init, aio_init, GLIBC_2_34);
> # if OTHER_SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_34)
> compat_symbol (librt, __aio_init, aio_init, GLIBC_2_1);
> # endif
> -
> #else /* !PTHREAD_IN_LIBC */
> -librt_hidden_data_def (__aio_requests_mutex)
> -librt_hidden_def (__aio_enqueue_request)
> -librt_hidden_def (__aio_find_req)
> -librt_hidden_def (__aio_find_req_fd)
> -librt_hidden_def (__aio_free_request)
> -librt_hidden_def (__aio_remove_request)
> weak_alias (__aio_init, aio_init)
> #endif /* !PTHREAD_IN_LIBC */
Ok.
> diff --git a/rt/aio_notify.c b/rt/aio_notify.c
> index 432000e34b..0fa84f203c 100644
> --- a/rt/aio_notify.c
> +++ b/rt/aio_notify.c
> @@ -160,11 +160,3 @@ __aio_notify (struct requestlist *req)
> waitlist = next;
> }
> }
> -
> -#if PTHREAD_IN_LIBC
> -libc_hidden_def (__aio_notify)
> -libc_hidden_def (__aio_notify_only)
> -#else
> -librt_hidden_def (__aio_notify)
> -librt_hidden_def (__aio_notify_only)
> -#endif
Ok.
> diff --git a/rt/aio_sigqueue.c b/rt/aio_sigqueue.c
> index 0ad95ae04c..84848bacd8 100644
> --- a/rt/aio_sigqueue.c
> +++ b/rt/aio_sigqueue.c
> @@ -28,5 +28,4 @@ __aio_sigqueue (int sig, const union sigval val, pid_t caller_pid)
> __set_errno (ENOSYS);
> return -1;
> }
> -librt_hidden_def (__aio_sigqueue)
> stub_warning (__aio_sigqueue)
Ok.
> diff --git a/sysdeps/generic/aio_misc.h b/sysdeps/generic/aio_misc.h
> index d9bff36e50..4d05b8cdd6 100644
> --- a/sysdeps/generic/aio_misc.h
> +++ b/sysdeps/generic/aio_misc.h
> @@ -87,55 +87,36 @@ struct requestlist
>
>
> /* Lock for global I/O list of requests. */
> -extern pthread_mutex_t __aio_requests_mutex;
> +extern pthread_mutex_t __aio_requests_mutex attribute_hidden;
>
>
> /* Enqueue request. */
> extern struct requestlist *__aio_enqueue_request (aiocb_union *aiocbp,
> - int operation);
> + int operation)
> + attribute_hidden;
>
> /* Find request entry for given AIO control block. */
> -extern struct requestlist *__aio_find_req (aiocb_union *elem);
> +extern struct requestlist *__aio_find_req (aiocb_union *elem) attribute_hidden;
>
> /* Find request entry for given file descriptor. */
> -extern struct requestlist *__aio_find_req_fd (int fildes);
> +extern struct requestlist *__aio_find_req_fd (int fildes) attribute_hidden;
>
> /* Remove request from the list. */
> extern void __aio_remove_request (struct requestlist *last,
> - struct requestlist *req, int all);
> + struct requestlist *req, int all)
> + attribute_hidden;
>
> /* Release the entry for the request. */
> -extern void __aio_free_request (struct requestlist *req);
> +extern void __aio_free_request (struct requestlist *req) attribute_hidden;
>
> /* Notify initiator of request and tell this everybody listening. */
> -extern void __aio_notify (struct requestlist *req);
> +extern void __aio_notify (struct requestlist *req) attribute_hidden;
>
> /* Notify initiator of request. */
> -extern int __aio_notify_only (struct sigevent *sigev);
> +extern int __aio_notify_only (struct sigevent *sigev) attribute_hidden;
>
> /* Send the signal. */
> -extern int __aio_sigqueue (int sig, const union sigval val, pid_t caller_pid);
> -
> -#if PTHREAD_IN_LIBC
> -libc_hidden_proto (__aio_enqueue_request)
> -libc_hidden_proto (__aio_find_req)
> -libc_hidden_proto (__aio_find_req_fd)
> -libc_hidden_proto (__aio_free_request)
> -libc_hidden_proto (__aio_notify)
> -libc_hidden_proto (__aio_notify_only)
> -libc_hidden_proto (__aio_remove_request)
> -libc_hidden_proto (__aio_requests_mutex)
> -libc_hidden_proto (__aio_sigqueue)
> -#else
> -librt_hidden_proto (__aio_enqueue_request)
> -librt_hidden_proto (__aio_find_req)
> -librt_hidden_proto (__aio_find_req_fd)
> -librt_hidden_proto (__aio_free_request)
> -librt_hidden_proto (__aio_notify)
> -librt_hidden_proto (__aio_notify_only)
> -librt_hidden_proto (__aio_remove_request)
> -librt_hidden_proto (__aio_requests_mutex)
> -librt_hidden_proto (__aio_sigqueue)
> -#endif
> +extern int __aio_sigqueue (int sig, const union sigval val, pid_t caller_pid)
> + attribute_hidden;
>
> #endif /* aio_misc.h */
Ok.
> diff --git a/sysdeps/pthread/Makefile b/sysdeps/pthread/Makefile
> index 9e6ed3c6f7..cca0d4da0d 100644
> --- a/sysdeps/pthread/Makefile
> +++ b/sysdeps/pthread/Makefile
> @@ -18,11 +18,13 @@
>
> ifeq ($(subdir),rt)
>
> +ifneq ($(pthread-in-libc),yes)
> ifeq (yes,$(build-shared))
> $(objpfx)tst-timer: $(objpfx)librt.so $(shared-thread-library)
> else
> $(objpfx)tst-timer: $(objpfx)librt.a $(static-thread-library)
> endif
> +endif # !$(pthread-in-libc)
>
> endif
>
Ok.
> diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions
> index 578d55e7fd..29ed24591d 100644
> --- a/sysdeps/unix/sysv/linux/Versions
> +++ b/sysdeps/unix/sysv/linux/Versions
> @@ -291,12 +291,6 @@ libc {
> __pread64_nocancel;
> __close_nocancel;
> __sigtimedwait;
> - __timer_active_sigev_thread;
> - __timer_active_sigev_thread_lock;
> - __timer_compat_list;
> - __timer_helper_once;
> - __timer_helper_tid;
> - __timer_start_helper_thread;
> # functions used by nscd
> __netlink_assert_response;
> }
Ok.
> diff --git a/sysdeps/unix/sysv/linux/aio_sigqueue.c b/sysdeps/unix/sysv/linux/aio_sigqueue.c
> index bd0da6e763..0b0f347197 100644
> --- a/sysdeps/unix/sysv/linux/aio_sigqueue.c
> +++ b/sysdeps/unix/sysv/linux/aio_sigqueue.c
> @@ -44,4 +44,3 @@ __aio_sigqueue (int sig, const union sigval val, pid_t caller_pid)
>
> return INLINE_SYSCALL (rt_sigqueueinfo, 3, info.si_pid, sig, &info);
> }
> -libc_hidden_def (__aio_sigqueue)
> diff --git a/sysdeps/unix/sysv/linux/kernel-posix-timers.h b/sysdeps/unix/sysv/linux/kernel-posix-timers.h
> index a976b028e0..0f7eff1794 100644
> --- a/sysdeps/unix/sysv/linux/kernel-posix-timers.h
> +++ b/sysdeps/unix/sysv/linux/kernel-posix-timers.h
> @@ -26,27 +26,23 @@
> extern int __no_posix_timers attribute_hidden;
>
> /* Callback to start helper thread. */
> -extern void __timer_start_helper_thread (void);
> -libc_hidden_proto (__timer_start_helper_thread)
> +extern void __timer_start_helper_thread (void) attribute_hidden;
>
> /* Control variable for helper thread creation. */
> -extern pthread_once_t __timer_helper_once;
> -libc_hidden_proto (__timer_helper_once)
> +extern pthread_once_t __timer_helper_once attribute_hidden;
>
> /* Called from fork so that the new subprocess re-creates the
> notification thread if necessary. */
> void __timer_fork_subprocess (void) attribute_hidden;
>
> /* TID of the helper thread. */
> -extern pid_t __timer_helper_tid;
> -libc_hidden_proto (__timer_helper_tid)
> +extern pid_t __timer_helper_tid attribute_hidden;
>
> /* List of active SIGEV_THREAD timers. */
> -extern struct timer *__timer_active_sigev_thread;
> -libc_hidden_proto (__timer_active_sigev_thread)
> +extern struct timer *__timer_active_sigev_thread attribute_hidden;
> +
> /* Lock for __timer_active_sigev_thread. */
> -extern pthread_mutex_t __timer_active_sigev_thread_lock;
> -libc_hidden_proto (__timer_active_sigev_thread_lock)
> +extern pthread_mutex_t __timer_active_sigev_thread_lock attribute_hidden;
>
> extern __typeof (timer_create) __timer_create;
> libc_hidden_proto (__timer_create)
> @@ -117,5 +113,4 @@ timerid_to_kernel_timer (timer_t timerid)
>
> /* Used if an override sets TIMER_T_WAS_INT_COMPAT to 1. */
> #define OLD_TIMER_MAX 256
> -extern timer_t __timer_compat_list[OLD_TIMER_MAX];
> -libc_hidden_proto (__timer_compat_list)
> +extern timer_t __timer_compat_list[OLD_TIMER_MAX] attribute_hidden;
Ok.
> diff --git a/sysdeps/unix/sysv/linux/timer_create.c b/sysdeps/unix/sysv/linux/timer_create.c
> index 9861177cf2..230bc45083 100644
> --- a/sysdeps/unix/sysv/linux/timer_create.c
> +++ b/sysdeps/unix/sysv/linux/timer_create.c
> @@ -146,8 +146,7 @@ compat_symbol (librt, ___timer_create, timer_create, GLIBC_2_3_3);
> # endif
>
> # if OTHER_SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_3_3)
> -timer_t __timer_compat_list[OLD_TIMER_MAX] __attribute__ ((nocommon));
> -libc_hidden_data_def (__timer_compat_list)
> +timer_t __timer_compat_list[OLD_TIMER_MAX];
>
> int
> __timer_create_old (clockid_t clock_id, struct sigevent *evp, int *timerid)
Ok.
> diff --git a/sysdeps/unix/sysv/linux/timer_routines.c b/sysdeps/unix/sysv/linux/timer_routines.c
> index fc3aa894ab..3a509d8ace 100644
> --- a/sysdeps/unix/sysv/linux/timer_routines.c
> +++ b/sysdeps/unix/sysv/linux/timer_routines.c
> @@ -26,13 +26,10 @@
>
>
> /* List of active SIGEV_THREAD timers. */
> -struct timer *__timer_active_sigev_thread __attribute__ ((nocommon));
> -libc_hidden_data_def (__timer_active_sigev_thread)
> +struct timer *__timer_active_sigev_thread;
>
> /* Lock for _timer_active_sigev_thread. */
> -pthread_mutex_t __timer_active_sigev_thread_lock __attribute__ ((nocommon))
> - = PTHREAD_MUTEX_INITIALIZER;
> -libc_hidden_data_def (__timer_active_sigev_thread_lock)
> +pthread_mutex_t __timer_active_sigev_thread_lock = PTHREAD_MUTEX_INITIALIZER;
>
> struct thread_start_data
> {
> @@ -112,12 +109,10 @@ timer_helper_thread (void *arg)
> /* Control variable for helper thread creation. */
> pthread_once_t __timer_helper_once __attribute__ ((nocommon))
> = PTHREAD_ONCE_INIT;
> -libc_hidden_data_def (__timer_helper_once)
>
>
> /* TID of the helper thread. */
> pid_t __timer_helper_tid __attribute__ ((nocommon));
> -libc_hidden_data_def (__timer_helper_tid)
>
>
> /* Reset variables so that after a fork a new helper thread gets started. */
> @@ -159,4 +154,3 @@ __timer_start_helper_thread (void)
> /* No need for the attribute anymore. */
> (void) __pthread_attr_destroy (&attr);
> }
> -libc_hidden_def (__timer_start_helper_thread)
>
Ok.
^ permalink raw reply [flat|nested] 72+ messages in thread
* Re: [PATCH 34/34] Linux: Cleanups after librt move
2021-06-24 17:45 ` Adhemerval Zanella
@ 2021-06-25 8:53 ` Florian Weimer
0 siblings, 0 replies; 72+ messages in thread
From: Florian Weimer @ 2021-06-25 8:53 UTC (permalink / raw)
To: Adhemerval Zanella; +Cc: libc-alpha
* Adhemerval Zanella:
> On 17/06/2021 16:00, Florian Weimer via Libc-alpha wrote:
>> librt.so is no longer installed for PTHREAD_IN_LIBC, and tests
>> are not linked against it.
>>
>> GLIBC_PRIVATE symbols that were needed during the transition are
>> removed again.
>
> There are some more leftover I recently added to add timers on time64
> tests:
>
> ifeq (yes,$(build-shared))
> librt = $(common-objpfx)rt/librt.so
> else
> librt = $(common-objpfx)rt/librt.a
> endif
>
> The patch looks ok, but you might want to update it against master.
Okay, given that those are in generic code, we need to bring back
$(librt).
Thanks,
Florian
^ permalink raw reply [flat|nested] 72+ messages in thread
* Re: [PATCH v2 00/34] Move librt into libc
2021-06-17 18:56 [PATCH v2 00/34] Move librt into libc Florian Weimer
` (33 preceding siblings ...)
2021-06-17 19:00 ` [PATCH 34/34] Linux: Cleanups after librt move Florian Weimer
@ 2021-06-24 17:49 ` Adhemerval Zanella
34 siblings, 0 replies; 72+ messages in thread
From: Adhemerval Zanella @ 2021-06-24 17:49 UTC (permalink / raw)
To: libc-alpha, Florian Weimer
On 17/06/2021 15:56, Florian Weimer via Libc-alpha wrote:
> This series contains the adjustments for time64 support. I had to redo
> the symbol moves with my local version of the symbol moving scripts to
> be sure, but the results look consistent.
Ok, I finished reviewing and it does look good. Only two patches I think it will
need a bit more work:
1. [29/34] Linux: Define TIMER_T_WAS_INT_COMPAT in kernel-posix-timers.h [1]
I think it would be better to move this to its own file, so there is no need to
include, undef, define on each arch-specific files.
2. [34/34] Linux: Cleanups after librt move
I think you will need to update against master, I have added some more librt
linking to add support to timer on some 64-bit time_t tests.
[1] https://patchwork.sourceware.org/project/glibc/patch/2f9bd5a3dabea786c943c4a000ac6a1022685e84.1623956058.git.fweimer@redhat.com/
[2] https://patchwork.sourceware.org/project/glibc/patch/df24df16f8483370f9310303f3c54acf010d585.1623956058.git.fweimer@redhat.com/
^ permalink raw reply [flat|nested] 72+ messages in thread