* [PATCH 01/35] rt: Lexicographically sort Versions file; librt-routines in Makefile
2021-06-03 23:14 [PATCH 00/35] Linux: Move librt into libc Florian Weimer
@ 2021-06-03 23:14 ` Florian Weimer
2021-06-17 11:05 ` Adhemerval Zanella
2021-06-03 23:14 ` [PATCH 02/35] Fix librt-routines-var issues for !PTHREAD_IN_LIBC Florian Weimer
` (34 subsequent siblings)
35 siblings, 1 reply; 45+ messages in thread
From: Florian Weimer @ 2021-06-03 23:14 UTC (permalink / raw)
To: libc-alpha
---
rt/Makefile | 46 ++++++++++++++++++++++++++++++++--------------
rt/Versions | 45 +++++++++++++++++++++++++++++++++------------
2 files changed, 65 insertions(+), 26 deletions(-)
diff --git a/rt/Makefile b/rt/Makefile
index 97c9bbd9de..d19314b7dc 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] 45+ messages in thread
* Re: [PATCH 01/35] rt: Lexicographically sort Versions file; librt-routines in Makefile
2021-06-03 23:14 ` [PATCH 01/35] rt: Lexicographically sort Versions file; librt-routines in Makefile Florian Weimer
@ 2021-06-17 11:05 ` Adhemerval Zanella
0 siblings, 0 replies; 45+ messages in thread
From: Adhemerval Zanella @ 2021-06-17 11:05 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
LGTM, thanks.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
On 03/06/2021 20:14, Florian Weimer via Libc-alpha wrote:
> ---
> rt/Makefile | 46 ++++++++++++++++++++++++++++++++--------------
> rt/Versions | 45 +++++++++++++++++++++++++++++++++------------
> 2 files changed, 65 insertions(+), 26 deletions(-)
>
> diff --git a/rt/Makefile b/rt/Makefile
> index 97c9bbd9de..d19314b7dc 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;
>
^ permalink raw reply [flat|nested] 45+ messages in thread
* [PATCH 02/35] Fix librt-routines-var issues for !PTHREAD_IN_LIBC
2021-06-03 23:14 [PATCH 00/35] Linux: Move librt into libc Florian Weimer
2021-06-03 23:14 ` [PATCH 01/35] rt: Lexicographically sort Versions file; librt-routines in Makefile Florian Weimer
@ 2021-06-03 23:14 ` Florian Weimer
2021-06-17 11:07 ` Adhemerval Zanella
2021-06-03 23:15 ` [PATCH 03/35] rt: Replace generic stub of shm_open with the posix version Florian Weimer
` (33 subsequent siblings)
35 siblings, 1 reply; 45+ messages in thread
From: Florian Weimer @ 2021-06-03 23:14 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.
---
Makeconfig | 2 +-
rt/Makefile | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/Makeconfig b/Makeconfig
index c3496452b6..6a334fa296 100644
--- a/Makeconfig
+++ b/Makeconfig
@@ -1330,7 +1330,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 d19314b7dc..baec51b40a 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] 45+ messages in thread
* Re: [PATCH 02/35] Fix librt-routines-var issues for !PTHREAD_IN_LIBC
2021-06-03 23:14 ` [PATCH 02/35] Fix librt-routines-var issues for !PTHREAD_IN_LIBC Florian Weimer
@ 2021-06-17 11:07 ` Adhemerval Zanella
2021-06-17 12:19 ` Florian Weimer
0 siblings, 1 reply; 45+ messages in thread
From: Adhemerval Zanella @ 2021-06-17 11:07 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 03/06/2021 20:14, Florian Weimer via Libc-alpha wrote:
> The variable name was incorrect, and the existing librt-routines
> variable needs to be augmented (not assigned) in rt/Makefile.
LGTM, thanks. Is this cause any build issue? I am curious why we haven't
see it before.
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 c3496452b6..6a334fa296 100644
> --- a/Makeconfig
> +++ b/Makeconfig
> @@ -1330,7 +1330,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 d19314b7dc..baec51b40a 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 \
>
^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH 02/35] Fix librt-routines-var issues for !PTHREAD_IN_LIBC
2021-06-17 11:07 ` Adhemerval Zanella
@ 2021-06-17 12:19 ` Florian Weimer
0 siblings, 0 replies; 45+ messages in thread
From: Florian Weimer @ 2021-06-17 12:19 UTC (permalink / raw)
To: Adhemerval Zanella; +Cc: libc-alpha
* Adhemerval Zanella:
> On 03/06/2021 20:14, Florian Weimer via Libc-alpha wrote:
>> The variable name was incorrect, and the existing librt-routines
>> variable needs to be augmented (not assigned) in rt/Makefile.
>
> LGTM, thanks. Is this cause any build issue? I am curious why we haven't
> see it before.
It's relevant to the subsequent changes. librt-routines-var wasn't
really used before.
> Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Thanks,
Florian
^ permalink raw reply [flat|nested] 45+ messages in thread
* [PATCH 03/35] rt: Replace generic stub of shm_open with the posix version
2021-06-03 23:14 [PATCH 00/35] Linux: Move librt into libc Florian Weimer
2021-06-03 23:14 ` [PATCH 01/35] rt: Lexicographically sort Versions file; librt-routines in Makefile Florian Weimer
2021-06-03 23:14 ` [PATCH 02/35] Fix librt-routines-var issues for !PTHREAD_IN_LIBC Florian Weimer
@ 2021-06-03 23:15 ` Florian Weimer
2021-06-17 11:08 ` Adhemerval Zanella
2021-06-03 23:15 ` [PATCH 04/35] rt: Replace generic stub of shm_unlink " Florian Weimer
` (32 subsequent siblings)
35 siblings, 1 reply; 45+ messages in thread
From: Florian Weimer @ 2021-06-03 23:15 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.
---
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] 45+ messages in thread
* Re: [PATCH 03/35] rt: Replace generic stub of shm_open with the posix version
2021-06-03 23:15 ` [PATCH 03/35] rt: Replace generic stub of shm_open with the posix version Florian Weimer
@ 2021-06-17 11:08 ` Adhemerval Zanella
0 siblings, 0 replies; 45+ messages in thread
From: Adhemerval Zanella @ 2021-06-17 11:08 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 03/06/2021 20:15, Florian Weimer via Libc-alpha wrote:
> Result of: git mv -f sysdeps/posix/shm_open.c rt
> and manual removal of the _POSIX_MAPPED_FILES preprocessor condition.
LGTM, thanks.
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 */
>
^ permalink raw reply [flat|nested] 45+ messages in thread
* [PATCH 04/35] rt: Replace generic stub of shm_unlink with the posix version
2021-06-03 23:14 [PATCH 00/35] Linux: Move librt into libc Florian Weimer
` (2 preceding siblings ...)
2021-06-03 23:15 ` [PATCH 03/35] rt: Replace generic stub of shm_open with the posix version Florian Weimer
@ 2021-06-03 23:15 ` Florian Weimer
2021-06-17 11:08 ` Adhemerval Zanella
2021-06-03 23:15 ` [PATCH 05/35] rt: Move shm_open into libc Florian Weimer
` (31 subsequent siblings)
35 siblings, 1 reply; 45+ messages in thread
From: Florian Weimer @ 2021-06-03 23:15 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.
---
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] 45+ messages in thread
* Re: [PATCH 04/35] rt: Replace generic stub of shm_unlink with the posix version
2021-06-03 23:15 ` [PATCH 04/35] rt: Replace generic stub of shm_unlink " Florian Weimer
@ 2021-06-17 11:08 ` Adhemerval Zanella
0 siblings, 0 replies; 45+ messages in thread
From: Adhemerval Zanella @ 2021-06-17 11:08 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 03/06/2021 20:15, Florian Weimer via Libc-alpha wrote:
> Result of: git mv -f sysdeps/posix/shm_unlink.c rt
> and manual removal of the _POSIX_MAPPED_FILES preprocessor condition.
LGTM, thanks.
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
>
^ permalink raw reply [flat|nested] 45+ messages in thread
* [PATCH 05/35] rt: Move shm_open into libc
2021-06-03 23:14 [PATCH 00/35] Linux: Move librt into libc Florian Weimer
` (3 preceding siblings ...)
2021-06-03 23:15 ` [PATCH 04/35] rt: Replace generic stub of shm_unlink " Florian Weimer
@ 2021-06-03 23:15 ` Florian Weimer
2021-06-17 11:12 ` Adhemerval Zanella
2021-06-17 12:25 ` Adhemerval Zanella
2021-06-03 23:15 ` [PATCH 06/35] rt: Move shm_unlink " Florian Weimer
` (30 subsequent siblings)
35 siblings, 2 replies; 45+ messages in thread
From: Florian Weimer @ 2021-06-03 23:15 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.
---
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 ++
.../unix/sysv/linux/mips/mips64/librt.abilist | 1 -
.../sysv/linux/mips/mips64/n32/libc.abilist | 2 ++
.../sysv/linux/mips/mips64/n64/libc.abilist | 2 ++
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 -
66 files changed, 86 insertions(+), 40 deletions(-)
diff --git a/rt/Makefile b/rt/Makefile
index baec51b40a..0628ae8aa8 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 bee807a6f8..11a93b4f47 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
@@ -2463,6 +2464,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 43dd600039..622f5ecdb1 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
@@ -2556,6 +2557,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 033ed08877..0c7b210b97 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
@@ -2222,6 +2223,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 f66ee7aab1..855501dd12 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -319,6 +319,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
@@ -2023,6 +2024,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 3c0647b251..fc89b71b2b 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -25,7 +25,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 3798b32830..6bdb09d974 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -316,6 +316,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
@@ -2020,6 +2021,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 3c0647b251..fc89b71b2b 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -25,7 +25,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 ba53b61ea6..9188a21281 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
@@ -2406,6 +2407,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 c6690ef7c1..31482a39b6 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 9783504c93..038a2b432e 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
@@ -2360,6 +2361,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 bb03781dcc..fc899622c3 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 c223c360ff..113202ad27 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
@@ -2544,6 +2545,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 bb03781dcc..fc899622c3 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 ea2be9ead2..7b2e27901a 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
@@ -2396,6 +2397,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 3cb4279b41..9544632fa0 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -320,6 +320,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
@@ -2003,6 +2004,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 3c0647b251..fc89b71b2b 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -25,7 +25,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 94a718ff58..0dbccbd651 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
@@ -2487,6 +2488,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 bb03781dcc..fc899622c3 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 5823bf18ef..33c00287a5 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
@@ -2457,6 +2458,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 889dfbc0ee..4fd9af2b2d 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 723c4bcb09..f0a3bd844b 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
@@ -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/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
index 889dfbc0ee..4fd9af2b2d 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 f67da8f37a..cfb82eb1b9 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
@@ -2452,6 +2453,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 1539c1cef9..e62ed45d14 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 e44a6be8aa..a00a18a8bb 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
@@ -2450,6 +2451,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/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
index 1539c1cef9..e62ed45d14 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/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/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 21cbe39166..22f37a4d5e 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
@@ -2458,6 +2459,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/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index a271342813..5df30910b8 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
@@ -2452,6 +2453,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/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 9429209215..5448a51818 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
@@ -2496,6 +2497,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 b4ae7a2dc2..77170f30d8 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 eaca8e4b0c..64d8eecd31 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
@@ -2514,6 +2515,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 bb03781dcc..fc899622c3 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 c754a181da..14b5eb792a 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
@@ -2547,6 +2548,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 98bd6bea39..6fc6134b68 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
@@ -2360,6 +2361,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 d27f7448ed..1bfa23792e 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
@@ -2659,6 +2660,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 33c9f98bf5..89d2efa8c3 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
@@ -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/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 9902603cd4..1d5ed0960f 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
@@ -2424,6 +2425,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 963e27571d..4b7c3ddda8 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
@@ -2512,6 +2513,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 bb03781dcc..fc899622c3 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 17c56a2658..da934580c3 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
@@ -2397,6 +2398,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 456abfb5bb..eca39dbda8 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
@@ -2367,6 +2368,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 bb03781dcc..fc899622c3 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 45e59f1821..662e99dec5 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
@@ -2364,6 +2365,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 bb03781dcc..fc899622c3 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 734e1f38b6..749ea6eb02 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
@@ -2505,6 +2506,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 38f0aad791..355a98faa0 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 9edf5ff234..6875623afc 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
@@ -2417,6 +2418,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 bc8535fbed..c79b6c1006 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
@@ -2375,6 +2376,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 669cc664f5..bf02471db3 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
@@ -2478,6 +2479,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] 45+ messages in thread
* Re: [PATCH 05/35] rt: Move shm_open into libc
2021-06-03 23:15 ` [PATCH 05/35] rt: Move shm_open into libc Florian Weimer
@ 2021-06-17 11:12 ` Adhemerval Zanella
2021-06-17 12:25 ` Adhemerval Zanella
1 sibling, 0 replies; 45+ messages in thread
From: Adhemerval Zanella @ 2021-06-17 11:12 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 03/06/2021 20:15, Florian Weimer via Libc-alpha wrote:
> 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.
LGTM, thanks.
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 ++
> .../unix/sysv/linux/mips/mips64/librt.abilist | 1 -
> .../sysv/linux/mips/mips64/n32/libc.abilist | 2 ++
> .../sysv/linux/mips/mips64/n64/libc.abilist | 2 ++
> 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 -
> 66 files changed, 86 insertions(+), 40 deletions(-)
>
> diff --git a/rt/Makefile b/rt/Makefile
> index baec51b40a..0628ae8aa8 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 \
Ok.
> 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;
Ok.
> 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
Ok.
> 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 bee807a6f8..11a93b4f47 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
> @@ -2463,6 +2464,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 43dd600039..622f5ecdb1 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
> @@ -2556,6 +2557,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 033ed08877..0c7b210b97 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
> @@ -2222,6 +2223,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 f66ee7aab1..855501dd12 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -319,6 +319,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
> @@ -2023,6 +2024,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 3c0647b251..fc89b71b2b 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> @@ -25,7 +25,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 3798b32830..6bdb09d974 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -316,6 +316,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
> @@ -2020,6 +2021,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 3c0647b251..fc89b71b2b 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> @@ -25,7 +25,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 ba53b61ea6..9188a21281 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
> @@ -2406,6 +2407,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 c6690ef7c1..31482a39b6 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 9783504c93..038a2b432e 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
> @@ -2360,6 +2361,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 bb03781dcc..fc899622c3 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 c223c360ff..113202ad27 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
> @@ -2544,6 +2545,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 bb03781dcc..fc899622c3 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 ea2be9ead2..7b2e27901a 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
> @@ -2396,6 +2397,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 3cb4279b41..9544632fa0 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -320,6 +320,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
> @@ -2003,6 +2004,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 3c0647b251..fc89b71b2b 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> @@ -25,7 +25,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 94a718ff58..0dbccbd651 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
> @@ -2487,6 +2488,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 bb03781dcc..fc899622c3 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 5823bf18ef..33c00287a5 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
> @@ -2457,6 +2458,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 889dfbc0ee..4fd9af2b2d 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 723c4bcb09..f0a3bd844b 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
> @@ -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/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> index 889dfbc0ee..4fd9af2b2d 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 f67da8f37a..cfb82eb1b9 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
> @@ -2452,6 +2453,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 1539c1cef9..e62ed45d14 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 e44a6be8aa..a00a18a8bb 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
> @@ -2450,6 +2451,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/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
> index 1539c1cef9..e62ed45d14 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/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/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index 21cbe39166..22f37a4d5e 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
> @@ -2458,6 +2459,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/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index a271342813..5df30910b8 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
> @@ -2452,6 +2453,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/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index 9429209215..5448a51818 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
> @@ -2496,6 +2497,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 b4ae7a2dc2..77170f30d8 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 eaca8e4b0c..64d8eecd31 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
> @@ -2514,6 +2515,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 bb03781dcc..fc899622c3 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 c754a181da..14b5eb792a 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
> @@ -2547,6 +2548,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 98bd6bea39..6fc6134b68 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
> @@ -2360,6 +2361,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 d27f7448ed..1bfa23792e 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
> @@ -2659,6 +2660,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 33c9f98bf5..89d2efa8c3 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
> @@ -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/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 9902603cd4..1d5ed0960f 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
> @@ -2424,6 +2425,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 963e27571d..4b7c3ddda8 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
> @@ -2512,6 +2513,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 bb03781dcc..fc899622c3 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 17c56a2658..da934580c3 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
> @@ -2397,6 +2398,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 456abfb5bb..eca39dbda8 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
> @@ -2367,6 +2368,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 bb03781dcc..fc899622c3 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 45e59f1821..662e99dec5 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
> @@ -2364,6 +2365,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 bb03781dcc..fc899622c3 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 734e1f38b6..749ea6eb02 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
> @@ -2505,6 +2506,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 38f0aad791..355a98faa0 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 9edf5ff234..6875623afc 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
> @@ -2417,6 +2418,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 bc8535fbed..c79b6c1006 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
> @@ -2375,6 +2376,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 669cc664f5..bf02471db3 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
> @@ -2478,6 +2479,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
>
Ok.
^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH 05/35] rt: Move shm_open into libc
2021-06-03 23:15 ` [PATCH 05/35] rt: Move shm_open into libc Florian Weimer
2021-06-17 11:12 ` Adhemerval Zanella
@ 2021-06-17 12:25 ` Adhemerval Zanella
1 sibling, 0 replies; 45+ messages in thread
From: Adhemerval Zanella @ 2021-06-17 12:25 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 03/06/2021 20:15, Florian Weimer via Libc-alpha wrote:
> 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.
LGTM, thanks.
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 ++
> .../unix/sysv/linux/mips/mips64/librt.abilist | 1 -
> .../sysv/linux/mips/mips64/n32/libc.abilist | 2 ++
> .../sysv/linux/mips/mips64/n64/libc.abilist | 2 ++
> 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 -
> 66 files changed, 86 insertions(+), 40 deletions(-)
>
> diff --git a/rt/Makefile b/rt/Makefile
> index baec51b40a..0628ae8aa8 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 bee807a6f8..11a93b4f47 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
> @@ -2463,6 +2464,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 43dd600039..622f5ecdb1 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
> @@ -2556,6 +2557,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 033ed08877..0c7b210b97 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
> @@ -2222,6 +2223,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 f66ee7aab1..855501dd12 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -319,6 +319,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
> @@ -2023,6 +2024,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 3c0647b251..fc89b71b2b 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> @@ -25,7 +25,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 3798b32830..6bdb09d974 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -316,6 +316,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
> @@ -2020,6 +2021,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 3c0647b251..fc89b71b2b 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> @@ -25,7 +25,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 ba53b61ea6..9188a21281 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
> @@ -2406,6 +2407,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 c6690ef7c1..31482a39b6 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 9783504c93..038a2b432e 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
> @@ -2360,6 +2361,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 bb03781dcc..fc899622c3 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 c223c360ff..113202ad27 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
> @@ -2544,6 +2545,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 bb03781dcc..fc899622c3 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 ea2be9ead2..7b2e27901a 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
> @@ -2396,6 +2397,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 3cb4279b41..9544632fa0 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -320,6 +320,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
> @@ -2003,6 +2004,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 3c0647b251..fc89b71b2b 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> @@ -25,7 +25,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 94a718ff58..0dbccbd651 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
> @@ -2487,6 +2488,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 bb03781dcc..fc899622c3 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 5823bf18ef..33c00287a5 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
> @@ -2457,6 +2458,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 889dfbc0ee..4fd9af2b2d 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 723c4bcb09..f0a3bd844b 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
> @@ -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/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> index 889dfbc0ee..4fd9af2b2d 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 f67da8f37a..cfb82eb1b9 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
> @@ -2452,6 +2453,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 1539c1cef9..e62ed45d14 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 e44a6be8aa..a00a18a8bb 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
> @@ -2450,6 +2451,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/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
> index 1539c1cef9..e62ed45d14 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/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/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index 21cbe39166..22f37a4d5e 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
> @@ -2458,6 +2459,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/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index a271342813..5df30910b8 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
> @@ -2452,6 +2453,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/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index 9429209215..5448a51818 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
> @@ -2496,6 +2497,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 b4ae7a2dc2..77170f30d8 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 eaca8e4b0c..64d8eecd31 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
> @@ -2514,6 +2515,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 bb03781dcc..fc899622c3 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 c754a181da..14b5eb792a 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
> @@ -2547,6 +2548,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 98bd6bea39..6fc6134b68 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
> @@ -2360,6 +2361,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 d27f7448ed..1bfa23792e 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
> @@ -2659,6 +2660,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 33c9f98bf5..89d2efa8c3 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
> @@ -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/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 9902603cd4..1d5ed0960f 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
> @@ -2424,6 +2425,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 963e27571d..4b7c3ddda8 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
> @@ -2512,6 +2513,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 bb03781dcc..fc899622c3 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 17c56a2658..da934580c3 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
> @@ -2397,6 +2398,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 456abfb5bb..eca39dbda8 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
> @@ -2367,6 +2368,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 bb03781dcc..fc899622c3 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 45e59f1821..662e99dec5 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
> @@ -2364,6 +2365,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 bb03781dcc..fc899622c3 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 734e1f38b6..749ea6eb02 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
> @@ -2505,6 +2506,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 38f0aad791..355a98faa0 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 9edf5ff234..6875623afc 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
> @@ -2417,6 +2418,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 bc8535fbed..c79b6c1006 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
> @@ -2375,6 +2376,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 669cc664f5..bf02471db3 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
> @@ -2478,6 +2479,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
>
^ permalink raw reply [flat|nested] 45+ messages in thread
* [PATCH 06/35] rt: Move shm_unlink into libc
2021-06-03 23:14 [PATCH 00/35] Linux: Move librt into libc Florian Weimer
` (4 preceding siblings ...)
2021-06-03 23:15 ` [PATCH 05/35] rt: Move shm_open into libc Florian Weimer
@ 2021-06-03 23:15 ` Florian Weimer
2021-06-17 18:00 ` Adhemerval Zanella
2021-06-03 23:15 ` [PATCH 07/35] rt: Move generic implementation from sysdeps/pthread to rt Florian Weimer
` (29 subsequent siblings)
35 siblings, 1 reply; 45+ messages in thread
From: Florian Weimer @ 2021-06-03 23:15 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.
---
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/librt.abilist | 1 -
sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist | 2 ++
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 -
66 files changed, 77 insertions(+), 34 deletions(-)
diff --git a/rt/Makefile b/rt/Makefile
index 0628ae8aa8..e4ef06a6c5 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 11a93b4f47..0561deac68 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
@@ -2465,6 +2466,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 622f5ecdb1..cabce7f1ca 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
@@ -2558,6 +2559,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 0c7b210b97..ba1304fb27 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
@@ -2224,6 +2225,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 855501dd12..7f828e63e5 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -320,6 +320,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
@@ -2025,6 +2026,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 fc89b71b2b..126250a101 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -25,7 +25,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 6bdb09d974..9f732ace57 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -317,6 +317,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
@@ -2022,6 +2023,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 fc89b71b2b..126250a101 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -25,7 +25,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 9188a21281..2894e35611 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
@@ -2408,6 +2409,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 31482a39b6..0eeb9046d1 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 038a2b432e..8f7c22c85c 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
@@ -2362,6 +2363,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 fc899622c3..065f613969 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 113202ad27..b238823ad9 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
@@ -2546,6 +2547,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 fc899622c3..065f613969 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 7b2e27901a..e46802188e 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
@@ -2398,6 +2399,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 9544632fa0..4c7be2d991 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -321,6 +321,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
@@ -2005,6 +2006,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 fc89b71b2b..126250a101 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -25,7 +25,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 0dbccbd651..a3bff03a44 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
@@ -2489,6 +2490,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 fc899622c3..065f613969 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 33c00287a5..967ac92bea 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
@@ -2459,6 +2460,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 4fd9af2b2d..451966eab1 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 f0a3bd844b..b193aa15c7 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
@@ -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/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
index 4fd9af2b2d..451966eab1 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 cfb82eb1b9..ef44bc1731 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
@@ -2454,6 +2455,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 e62ed45d14..2c7d661e56 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 a00a18a8bb..c3b28b1a34 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
@@ -2452,6 +2453,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/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
index e62ed45d14..2c7d661e56 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/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/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 22f37a4d5e..f47a436839 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
@@ -2460,6 +2461,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/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 5df30910b8..11f8b90995 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
@@ -2454,6 +2455,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/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 5448a51818..68d6138627 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
@@ -2498,6 +2499,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 77170f30d8..5865026423 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 64d8eecd31..134bdda2cb 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
@@ -2516,6 +2517,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 fc899622c3..065f613969 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 14b5eb792a..778e34aab2 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
@@ -2549,6 +2550,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 6fc6134b68..083831b889 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
@@ -2362,6 +2363,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 1bfa23792e..0d56d2a9f2 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
@@ -2661,6 +2662,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 89d2efa8c3..a6e7c7c968 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
@@ -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/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 1d5ed0960f..2bbb45524d 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
@@ -2426,6 +2427,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 4b7c3ddda8..a9fd5ae173 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
@@ -2514,6 +2515,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 fc899622c3..065f613969 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 da934580c3..64b72211aa 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
@@ -2399,6 +2400,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 eca39dbda8..38aa765be4 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
@@ -2369,6 +2370,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 fc899622c3..065f613969 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 662e99dec5..d31fe21e3f 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
@@ -2366,6 +2367,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 fc899622c3..065f613969 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 749ea6eb02..84b73842aa 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
@@ -2507,6 +2508,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 355a98faa0..2c5e7950b7 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 6875623afc..4af8b9a1eb 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
@@ -2419,6 +2420,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 c79b6c1006..3c482047f7 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
@@ -2377,6 +2378,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 bf02471db3..302b0d52e2 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
@@ -2480,6 +2481,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] 45+ messages in thread
* Re: [PATCH 06/35] rt: Move shm_unlink into libc
2021-06-03 23:15 ` [PATCH 06/35] rt: Move shm_unlink " Florian Weimer
@ 2021-06-17 18:00 ` Adhemerval Zanella
0 siblings, 0 replies; 45+ messages in thread
From: Adhemerval Zanella @ 2021-06-17 18:00 UTC (permalink / raw)
To: Florian Weimer, libc-alpha
On 03/06/2021 20:15, Florian Weimer via Libc-alpha wrote:
> 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.
LGTM, thanks.
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/librt.abilist | 1 -
> sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist | 2 ++
> 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 -
> 66 files changed, 77 insertions(+), 34 deletions(-)
>
> diff --git a/rt/Makefile b/rt/Makefile
> index 0628ae8aa8..e4ef06a6c5 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 \
Ok.
> 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;
Ok.
> 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
Ok.
> 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 11a93b4f47..0561deac68 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
> @@ -2465,6 +2466,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 622f5ecdb1..cabce7f1ca 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
> @@ -2558,6 +2559,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 0c7b210b97..ba1304fb27 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
> @@ -2224,6 +2225,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 855501dd12..7f828e63e5 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -320,6 +320,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
> @@ -2025,6 +2026,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 fc89b71b2b..126250a101 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> @@ -25,7 +25,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 6bdb09d974..9f732ace57 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -317,6 +317,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
> @@ -2022,6 +2023,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 fc89b71b2b..126250a101 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> @@ -25,7 +25,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 9188a21281..2894e35611 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
> @@ -2408,6 +2409,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 31482a39b6..0eeb9046d1 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 038a2b432e..8f7c22c85c 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
> @@ -2362,6 +2363,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 fc899622c3..065f613969 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 113202ad27..b238823ad9 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
> @@ -2546,6 +2547,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 fc899622c3..065f613969 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 7b2e27901a..e46802188e 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
> @@ -2398,6 +2399,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 9544632fa0..4c7be2d991 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -321,6 +321,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
> @@ -2005,6 +2006,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 fc89b71b2b..126250a101 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> @@ -25,7 +25,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 0dbccbd651..a3bff03a44 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
> @@ -2489,6 +2490,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 fc899622c3..065f613969 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 33c00287a5..967ac92bea 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
> @@ -2459,6 +2460,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 4fd9af2b2d..451966eab1 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 f0a3bd844b..b193aa15c7 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
> @@ -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/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> index 4fd9af2b2d..451966eab1 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 cfb82eb1b9..ef44bc1731 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
> @@ -2454,6 +2455,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 e62ed45d14..2c7d661e56 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 a00a18a8bb..c3b28b1a34 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
> @@ -2452,6 +2453,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/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
> index e62ed45d14..2c7d661e56 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/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/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index 22f37a4d5e..f47a436839 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
> @@ -2460,6 +2461,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/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index 5df30910b8..11f8b90995 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
> @@ -2454,6 +2455,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/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index 5448a51818..68d6138627 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
> @@ -2498,6 +2499,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 77170f30d8..5865026423 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 64d8eecd31..134bdda2cb 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
> @@ -2516,6 +2517,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 fc899622c3..065f613969 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 14b5eb792a..778e34aab2 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
> @@ -2549,6 +2550,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 6fc6134b68..083831b889 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
> @@ -2362,6 +2363,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 1bfa23792e..0d56d2a9f2 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
> @@ -2661,6 +2662,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 89d2efa8c3..a6e7c7c968 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
> @@ -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/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 1d5ed0960f..2bbb45524d 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
> @@ -2426,6 +2427,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 4b7c3ddda8..a9fd5ae173 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
> @@ -2514,6 +2515,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 fc899622c3..065f613969 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 da934580c3..64b72211aa 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
> @@ -2399,6 +2400,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 eca39dbda8..38aa765be4 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
> @@ -2369,6 +2370,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 fc899622c3..065f613969 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 662e99dec5..d31fe21e3f 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
> @@ -2366,6 +2367,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 fc899622c3..065f613969 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 749ea6eb02..84b73842aa 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
> @@ -2507,6 +2508,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 355a98faa0..2c5e7950b7 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 6875623afc..4af8b9a1eb 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
> @@ -2419,6 +2420,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 c79b6c1006..3c482047f7 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
> @@ -2377,6 +2378,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 bf02471db3..302b0d52e2 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
> @@ -2480,6 +2481,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
>
Ok.
^ permalink raw reply [flat|nested] 45+ messages in thread
* [PATCH 07/35] rt: Move generic implementation from sysdeps/pthread to rt
2021-06-03 23:14 [PATCH 00/35] Linux: Move librt into libc Florian Weimer
` (5 preceding siblings ...)
2021-06-03 23:15 ` [PATCH 06/35] rt: Move shm_unlink " Florian Weimer
@ 2021-06-03 23:15 ` Florian Weimer
2021-06-03 23:15 ` [PATCH 08/35] nptl: Move pthreadP.h into sysdeps directory Florian Weimer
` (28 subsequent siblings)
35 siblings, 0 replies; 45+ messages in thread
From: Florian Weimer @ 2021-06-03 23:15 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] 45+ messages in thread
* [PATCH 08/35] nptl: Move pthreadP.h into sysdeps directory
2021-06-03 23:14 [PATCH 00/35] Linux: Move librt into libc Florian Weimer
` (6 preceding siblings ...)
2021-06-03 23:15 ` [PATCH 07/35] rt: Move generic implementation from sysdeps/pthread to rt Florian Weimer
@ 2021-06-03 23:15 ` Florian Weimer
2021-06-03 23:15 ` [PATCH 09/35] nptl: Add internal macro definition of pthread_self Florian Weimer
` (27 subsequent siblings)
35 siblings, 0 replies; 45+ messages in thread
From: Florian Weimer @ 2021-06-03 23:15 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 1f7790297f..76f5b79b96 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 c579c65f78..29e914685b 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 05f2bae521..5c2fd64d58 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] 45+ messages in thread
* [PATCH 09/35] nptl: Add internal macro definition of pthread_self
2021-06-03 23:14 [PATCH 00/35] Linux: Move librt into libc Florian Weimer
` (7 preceding siblings ...)
2021-06-03 23:15 ` [PATCH 08/35] nptl: Move pthreadP.h into sysdeps directory Florian Weimer
@ 2021-06-03 23:15 ` Florian Weimer
2021-06-03 23:15 ` [PATCH 10/35] Add hidden prototypes for fsync, fdatasync Florian Weimer
` (26 subsequent siblings)
35 siblings, 0 replies; 45+ messages in thread
From: Florian Weimer @ 2021-06-03 23:15 UTC (permalink / raw)
To: libc-alpha
The old __pthread_self hidden prototype did not work because there
was no implementation. (Hurd uses __pthread_self as a variable,
so it's prudent to avoid this identifier on Linux.) A macro is needed
so that nptl/pthread_self.c can still be built (static inline would
prevent that) and __extern_inline does not work due to the definition
of THREAD_SELF on hppa.
---
nptl/pthread_self.c | 2 +-
sysdeps/nptl/pthreadP.h | 5 ++++-
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/nptl/pthread_self.c b/nptl/pthread_self.c
index f877a2e6bd..c0d136be41 100644
--- a/nptl/pthread_self.c
+++ b/nptl/pthread_self.c
@@ -20,7 +20,7 @@
#include <tls.h>
pthread_t
-pthread_self (void)
+(pthread_self) (void)
{
return (pthread_t) THREAD_SELF;
}
diff --git a/sysdeps/nptl/pthreadP.h b/sysdeps/nptl/pthreadP.h
index 5c2fd64d58..f4a5f70f60 100644
--- a/sysdeps/nptl/pthreadP.h
+++ b/sysdeps/nptl/pthreadP.h
@@ -520,7 +520,6 @@ extern int __pthread_once (pthread_once_t *once_control,
libc_hidden_proto (__pthread_once)
extern int __pthread_atfork (void (*prepare) (void), void (*parent) (void),
void (*child) (void));
-extern pthread_t __pthread_self (void);
extern int __pthread_equal (pthread_t thread1, pthread_t thread2);
extern int __pthread_detach (pthread_t th);
libc_hidden_proto (__pthread_detach)
@@ -698,6 +697,10 @@ int __pthread_attr_extension (struct pthread_attr *attr) attribute_hidden
int __pthread_attr_copy (pthread_attr_t *target, const pthread_attr_t *source);
libc_hidden_proto (__pthread_attr_copy)
+/* This cannot be an inline function because a static inline conflict
+ on hppa. */
+#define pthread_self() ((pthread_t) THREAD_SELF)
+
/* Returns 0 if POL is a valid scheduling policy. */
static inline int
check_sched_policy_attr (int pol)
--
2.31.1
^ permalink raw reply [flat|nested] 45+ messages in thread
* [PATCH 10/35] Add hidden prototypes for fsync, fdatasync
2021-06-03 23:14 [PATCH 00/35] Linux: Move librt into libc Florian Weimer
` (8 preceding siblings ...)
2021-06-03 23:15 ` [PATCH 09/35] nptl: Add internal macro definition of pthread_self Florian Weimer
@ 2021-06-03 23:15 ` Florian Weimer
2021-06-03 23:15 ` [PATCH 11/35] Linux: Move aio_init from librt into libc Florian Weimer
` (25 subsequent siblings)
35 siblings, 0 replies; 45+ messages in thread
From: Florian Weimer @ 2021-06-03 23:15 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] 45+ messages in thread
* [PATCH 11/35] Linux: Move aio_init from librt into libc
2021-06-03 23:14 [PATCH 00/35] Linux: Move librt into libc Florian Weimer
` (9 preceding siblings ...)
2021-06-03 23:15 ` [PATCH 10/35] Add hidden prototypes for fsync, fdatasync Florian Weimer
@ 2021-06-03 23:15 ` Florian Weimer
2021-06-03 23:15 ` [PATCH 12/35] Linux: Move aio_cancel, aio_cancel64 " Florian Weimer
` (24 subsequent siblings)
35 siblings, 0 replies; 45+ messages in thread
From: Florian Weimer @ 2021-06-03 23:15 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 | 105 ++++++++++++------
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 +
.../unix/sysv/linux/mips/mips64/librt.abilist | 1 -
.../sysv/linux/mips/mips64/n32/libc.abilist | 2 +
.../sysv/linux/mips/mips64/n64/libc.abilist | 2 +
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 -
72 files changed, 221 insertions(+), 91 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 e4ef06a6c5..f6f7900a29 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..634456d489 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;
}
@@ -485,7 +498,7 @@ handle_fildes_io (void *arg)
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 f4a5f70f60..2958d8bbea 100644
--- a/sysdeps/nptl/pthreadP.h
+++ b/sysdeps/nptl/pthreadP.h
@@ -349,6 +349,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 0561deac68..9771dec2d9 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
@@ -2346,6 +2347,7 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_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 cabce7f1ca..eb606a5ace 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
@@ -2439,6 +2440,7 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_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 ba1304fb27..30ba5ad683 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
@@ -2105,6 +2106,7 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_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 7f828e63e5..aec5cc13d4 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -200,6 +200,7 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
@@ -903,6 +904,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 126250a101..739573ba0d 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -4,7 +4,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 9f732ace57..dad3c2028f 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -197,6 +197,7 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
@@ -900,6 +901,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 126250a101..739573ba0d 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -4,7 +4,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 2894e35611..b294ade233 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
@@ -2289,6 +2290,7 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_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 0eeb9046d1..26dcba0488 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 8f7c22c85c..3794805eea 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
@@ -2243,6 +2244,7 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_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 065f613969..5668fd660c 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 b238823ad9..3c4d4e03ee 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
@@ -2427,6 +2428,7 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_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 065f613969..5668fd660c 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 e46802188e..5557ac1330 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
@@ -2279,6 +2280,7 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_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 4c7be2d991..bd922aa71a 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -201,6 +201,7 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
@@ -891,6 +892,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 126250a101..739573ba0d 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -4,7 +4,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 a3bff03a44..30f26f4875 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
@@ -2370,6 +2371,7 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_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 065f613969..5668fd660c 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 967ac92bea..3731d5340e 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
@@ -2340,6 +2341,7 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_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 451966eab1..6eb17cedbc 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 b193aa15c7..b14b9ba0e5 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
@@ -2337,6 +2338,7 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_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 451966eab1..6eb17cedbc 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 ef44bc1731..11f60b0399 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
@@ -2335,6 +2336,7 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_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 2c7d661e56..40749a395c 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 c3b28b1a34..de2cb5fb4d 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
@@ -2333,6 +2334,7 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_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/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
index 2c7d661e56..40749a395c 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/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/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index f47a436839..5e76f90af3 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
@@ -2341,6 +2342,7 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_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/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 11f8b90995..4e1fedf92e 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
@@ -2335,6 +2336,7 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_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/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 68d6138627..e88575f475 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
@@ -2379,6 +2380,7 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_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 5865026423..f626834a28 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 134bdda2cb..cbb206812d 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
@@ -2397,6 +2398,7 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_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 065f613969..5668fd660c 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 778e34aab2..bc37392916 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
@@ -2430,6 +2431,7 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_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 083831b889..6054621b47 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
@@ -2243,6 +2244,7 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_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 0d56d2a9f2..49f5140023 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
@@ -2542,6 +2543,7 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_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 a6e7c7c968..5347a99441 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
@@ -2107,6 +2108,7 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_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 2bbb45524d..ef2bd64a0c 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
@@ -2307,6 +2308,7 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_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 a9fd5ae173..5da99f41d1 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
@@ -2395,6 +2396,7 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_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 065f613969..5668fd660c 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 64b72211aa..7582590fc7 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
@@ -2280,6 +2281,7 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_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 38aa765be4..429fa14f73 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
@@ -2250,6 +2251,7 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_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 065f613969..5668fd660c 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 d31fe21e3f..1d1d227771 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
@@ -2247,6 +2248,7 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_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 065f613969..5668fd660c 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 84b73842aa..cc29540151 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
@@ -2388,6 +2389,7 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_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 2c5e7950b7..c9d92e6d1a 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 4af8b9a1eb..a9c67ea157 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
@@ -2300,6 +2301,7 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_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 3c482047f7..e340fbc8dd 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
@@ -2258,6 +2259,7 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_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 302b0d52e2..9e488ae963 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
@@ -2361,6 +2362,7 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_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] 45+ messages in thread
* [PATCH 12/35] Linux: Move aio_cancel, aio_cancel64 into libc
2021-06-03 23:14 [PATCH 00/35] Linux: Move librt into libc Florian Weimer
` (10 preceding siblings ...)
2021-06-03 23:15 ` [PATCH 11/35] Linux: Move aio_init from librt into libc Florian Weimer
@ 2021-06-03 23:15 ` Florian Weimer
2021-06-03 23:15 ` [PATCH 13/35] Linux: Move aio_error, aio_error64 " Florian Weimer
` (23 subsequent siblings)
35 siblings, 0 replies; 45+ messages in thread
From: Florian Weimer @ 2021-06-03 23:15 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 +++
.../unix/sysv/linux/mips/mips64/librt.abilist | 2 --
.../sysv/linux/mips/mips64/n32/libc.abilist | 4 +++
.../sysv/linux/mips/mips64/n64/libc.abilist | 4 +++
sysdeps/unix/sysv/linux/nios2/libc.abilist | 4 +++
sysdeps/unix/sysv/linux/nios2/librt.abilist | 2 --
.../linux/powerpc/powerpc32/fpu/libc.abilist | 4 +++
.../linux/powerpc/powerpc32/librt.abilist | 2 --
.../powerpc/powerpc32/nofpu/libc.abilist | 4 +++
.../linux/powerpc/powerpc64/be/libc.abilist | 4 +++
.../linux/powerpc/powerpc64/be/librt.abilist | 2 --
.../linux/powerpc/powerpc64/le/libc.abilist | 4 +++
.../linux/powerpc/powerpc64/le/librt.abilist | 2 --
.../unix/sysv/linux/riscv/rv32/libc.abilist | 4 +++
.../unix/sysv/linux/riscv/rv32/librt.abilist | 2 --
.../unix/sysv/linux/riscv/rv64/libc.abilist | 4 +++
.../unix/sysv/linux/riscv/rv64/librt.abilist | 2 --
.../unix/sysv/linux/s390/s390-32/libc.abilist | 4 +++
.../sysv/linux/s390/s390-32/librt.abilist | 2 --
.../unix/sysv/linux/s390/s390-64/libc.abilist | 4 +++
.../sysv/linux/s390/s390-64/librt.abilist | 2 --
sysdeps/unix/sysv/linux/sh/be/libc.abilist | 4 +++
sysdeps/unix/sysv/linux/sh/be/librt.abilist | 2 --
sysdeps/unix/sysv/linux/sh/le/libc.abilist | 4 +++
sysdeps/unix/sysv/linux/sh/le/librt.abilist | 2 --
sysdeps/unix/sysv/linux/sparc/Versions | 11 ++++---
sysdeps/unix/sysv/linux/sparc/aio_cancel.c | 22 +++++++-------
sysdeps/unix/sysv/linux/sparc/librt-compat.c | 24 +++++++++++++++
.../sysv/linux/sparc/sparc32/libc.abilist | 6 ++++
.../sysv/linux/sparc/sparc32/librt.abilist | 5 +---
.../sysv/linux/sparc/sparc64/libc.abilist | 6 ++++
.../sysv/linux/sparc/sparc64/librt.abilist | 5 +---
.../unix/sysv/linux/x86_64/64/libc.abilist | 4 +++
.../unix/sysv/linux/x86_64/64/librt.abilist | 2 --
.../unix/sysv/linux/x86_64/x32/libc.abilist | 4 +++
.../unix/sysv/linux/x86_64/x32/librt.abilist | 2 --
71 files changed, 284 insertions(+), 101 deletions(-)
create mode 100644 rt/librt-compat.c
create mode 100644 sysdeps/unix/sysv/linux/alpha/librt-compat.c
create mode 100644 sysdeps/unix/sysv/linux/sparc/librt-compat.c
diff --git a/rt/Makefile b/rt/Makefile
index f6f7900a29..0ea824ebe8 100644
--- a/rt/Makefile
+++ b/rt/Makefile
@@ -29,7 +29,6 @@ routines = \
shm_unlink \
librt-routines = \
- aio_cancel \
aio_error \
aio_fsync \
aio_read \
@@ -38,6 +37,7 @@ librt-routines = \
aio_suspend \
aio_write \
aio_write64 \
+ librt-compat \
lio_listio \
lio_listio64 \
mq_close \
@@ -56,7 +56,10 @@ librt-routines = \
timer_gettime \
timer_settime \
+librt-shared-only-routines = librt-compat
+
$(librt-routines-var) += \
+ aio_cancel \
aio_misc \
aio_notify \
aio_sigqueue \
diff --git a/rt/Versions b/rt/Versions
index 2e991a9d93..402a1188e7 100644
--- a/rt/Versions
+++ b/rt/Versions
@@ -2,6 +2,8 @@ libc {
GLIBC_2.1 {
%if PTHREAD_IN_LIBC
aio_init;
+ aio_cancel;
+ aio_cancel64;
%endif
}
GLIBC_2.2 {
@@ -10,6 +12,8 @@ libc {
}
GLIBC_2.34 {
%if PTHREAD_IN_LIBC
+ aio_cancel;
+ aio_cancel64;
aio_init;
%endif
shm_open;
@@ -31,8 +35,10 @@ libc {
}
librt {
GLIBC_2.1 {
+%if !PTHREAD_IN_LIBC
aio_cancel;
aio_cancel64;
+%endif
aio_error;
aio_error64;
aio_fsync;
diff --git a/rt/aio_cancel.c b/rt/aio_cancel.c
index 63fd88f36c..5934205199 100644
--- a/rt/aio_cancel.c
+++ b/rt/aio_cancel.c
@@ -35,23 +35,24 @@
#include <fcntl.h>
#include <aio_misc.h>
+#include <pthreadP.h>
int
-aio_cancel (int fildes, struct aiocb *aiocbp)
+__aio_cancel (int fildes, struct aiocb *aiocbp)
{
struct requestlist *req = NULL;
int result = AIO_ALLDONE;
/* If fildes is invalid, error. */
- if (fcntl (fildes, F_GETFL) < 0)
+ if (__fcntl (fildes, F_GETFL) < 0)
{
__set_errno (EBADF);
return -1;
}
/* Request the mutex. */
- pthread_mutex_lock (&__aio_requests_mutex);
+ __pthread_mutex_lock (&__aio_requests_mutex);
/* We are asked to cancel a specific AIO request. */
if (aiocbp != NULL)
@@ -60,7 +61,7 @@ aio_cancel (int fildes, struct aiocb *aiocbp)
to look for the request block. */
if (aiocbp->aio_fildes != fildes)
{
- pthread_mutex_unlock (&__aio_requests_mutex);
+ __pthread_mutex_unlock (&__aio_requests_mutex);
__set_errno (EINVAL);
return -1;
}
@@ -73,7 +74,7 @@ aio_cancel (int fildes, struct aiocb *aiocbp)
if (req == NULL)
{
not_found:
- pthread_mutex_unlock (&__aio_requests_mutex);
+ __pthread_mutex_unlock (&__aio_requests_mutex);
__set_errno (EINVAL);
return -1;
}
@@ -147,11 +148,20 @@ aio_cancel (int fildes, struct aiocb *aiocbp)
}
/* Release the mutex. */
- pthread_mutex_unlock (&__aio_requests_mutex);
+ __pthread_mutex_unlock (&__aio_requests_mutex);
return result;
}
-
-#ifndef aio_cancel
-weak_alias (aio_cancel, aio_cancel64)
+#if PTHREAD_IN_LIBC
+# ifndef __aio_cancel
+versioned_symbol (libc, __aio_cancel, aio_cancel, GLIBC_2_34);
+versioned_symbol (libc, __aio_cancel, aio_cancel64, GLIBC_2_34);
+# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_34)
+compat_symbol (librt, __aio_cancel, aio_cancel, GLIBC_2_1);
+compat_symbol (librt, __aio_cancel, aio_cancel64, GLIBC_2_1);
+# endif
+# endif /* __aio_cancel */
+#else /* !PTHREAD_IN_LIBC */
+strong_alias (__aio_cancel, aio_cancel)
+weak_alias (__aio_cancel, aio_cancel64)
#endif
diff --git a/rt/librt-compat.c b/rt/librt-compat.c
new file mode 100644
index 0000000000..7e5f1db940
--- /dev/null
+++ b/rt/librt-compat.c
@@ -0,0 +1,29 @@
+/* Placeholder definitions to pull in removed symbol versions.
+ Copyright (C) 2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#if PTHREAD_IN_LIBC
+# include <shlib-compat.h>
+# include <sys/cdefs.h>
+
+void
+attribute_compat_text_section
+__attribute_used__
+__librt_version_placeholder_1 (void)
+{
+}
+#endif
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 9771dec2d9..d9a45228b8 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -589,6 +589,8 @@ GLIBC_2.17 addseverity F
GLIBC_2.17 adjtime F
GLIBC_2.17 adjtimex F
GLIBC_2.17 advance F
+GLIBC_2.17 aio_cancel F
+GLIBC_2.17 aio_cancel64 F
GLIBC_2.17 aio_init F
GLIBC_2.17 alarm F
GLIBC_2.17 aligned_alloc F
@@ -2347,6 +2349,8 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
index 66dc3e4457..0f3a79e3a4 100644
--- a/sysdeps/unix/sysv/linux/aarch64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
@@ -1,6 +1,4 @@
GLIBC_2.17 __mq_open_2 F
-GLIBC_2.17 aio_cancel F
-GLIBC_2.17 aio_cancel64 F
GLIBC_2.17 aio_error F
GLIBC_2.17 aio_error64 F
GLIBC_2.17 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/alpha/Versions b/sysdeps/unix/sysv/linux/alpha/Versions
index b113cb60e4..db6116a890 100644
--- a/sysdeps/unix/sysv/linux/alpha/Versions
+++ b/sysdeps/unix/sysv/linux/alpha/Versions
@@ -62,7 +62,12 @@ libc {
wordexp;
}
GLIBC_2.3 {
- _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
+ _sys_errlist;
+ _sys_nerr;
+ aio_cancel64;
+ aio_cancel;
+ sys_errlist;
+ sys_nerr;
}
GLIBC_2.3.3 {
# Changed PTHREAD_STACK_MIN.
@@ -81,6 +86,9 @@ libc {
GLIBC_2.27 {
getrlimit; setrlimit; getrlimit64; setrlimit64;
}
+ GLIBC_2.34 {
+ aio_cancel64;
+ }
GLIBC_PRIVATE {
__libc_alpha_cache_shape;
}
@@ -92,8 +100,7 @@ ld {
}
librt {
GLIBC_2.3 {
- # AIO functions.
- aio_cancel; aio_cancel64;
+ __librt_version_placeholder;
}
GLIBC_2.3.3 {
# Changed timer_t.
diff --git a/sysdeps/unix/sysv/linux/alpha/aio_cancel.c b/sysdeps/unix/sysv/linux/alpha/aio_cancel.c
index 9f69b080ed..6e4352a9a4 100644
--- a/sysdeps/unix/sysv/linux/alpha/aio_cancel.c
+++ b/sysdeps/unix/sysv/linux/alpha/aio_cancel.c
@@ -8,26 +8,28 @@
extern __typeof (aio_cancel) __new_aio_cancel;
extern __typeof (aio_cancel) __old_aio_cancel;
-#define aio_cancel __new_aio_cancel
+#define __aio_cancel __new_aio_cancel
#include <rt/aio_cancel.c>
-#undef aio_cancel
-strong_alias (__new_aio_cancel, __new_aio_cancel64);
-versioned_symbol (librt, __new_aio_cancel, aio_cancel, GLIBC_2_3);
-versioned_symbol (librt, __new_aio_cancel64, aio_cancel64, GLIBC_2_3);
+#undef __aio_cancel
+versioned_symbol (libc, __new_aio_cancel, aio_cancel, GLIBC_2_34);
+versioned_symbol (libc, __new_aio_cancel, aio_cancel64, GLIBC_2_34);
+#if OTHER_SHLIB_COMPAT (librt, GLIBC_2_3, GLIBC_2_34)
+compat_symbol (librt, __new_aio_cancel, aio_cancel, GLIBC_2_3);
+compat_symbol (librt, __new_aio_cancel, aio_cancel64, GLIBC_2_3);
+#endif
-#if SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_3)
+#if OTHER_SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_3)
#undef ECANCELED
-#define aio_cancel __old_aio_cancel
+#define __aio_cancel __old_aio_cancel
#define ECANCELED 125
#include <rt/aio_cancel.c>
-#undef aio_cancel
-strong_alias (__old_aio_cancel, __old_aio_cancel64);
+#undef __aio_cancel
compat_symbol (librt, __old_aio_cancel, aio_cancel, GLIBC_2_1);
-compat_symbol (librt, __old_aio_cancel64, aio_cancel64, GLIBC_2_1);
+compat_symbol (librt, __old_aio_cancel, aio_cancel64, GLIBC_2_1);
#endif
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index eb606a5ace..d7a8dbb2f6 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -1502,6 +1502,8 @@ GLIBC_2.1 _sys_siglist D 0x200
GLIBC_2.1 addseverity F
GLIBC_2.1 adjtime F
GLIBC_2.1 adjtimex F
+GLIBC_2.1 aio_cancel F
+GLIBC_2.1 aio_cancel64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
@@ -2202,6 +2204,8 @@ GLIBC_2.3 __uselocale F
GLIBC_2.3 __wcsftime_l F
GLIBC_2.3 _sys_errlist D 0x420
GLIBC_2.3 _sys_nerr D 0x4
+GLIBC_2.3 aio_cancel F
+GLIBC_2.3 aio_cancel64 F
GLIBC_2.3 duplocale F
GLIBC_2.3 fgetxattr F
GLIBC_2.3 flistxattr F
@@ -2440,6 +2444,8 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/alpha/librt-compat.c b/sysdeps/unix/sysv/linux/alpha/librt-compat.c
new file mode 100644
index 0000000000..96e92e1637
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/librt-compat.c
@@ -0,0 +1,24 @@
+/* Placeholder definitions to pull in removed symbol versions. alpha version.
+ Copyright (C) 2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <rt/librt-compat.c>
+
+#if SHLIB_COMPAT (librt, GLIBC_2_3, GLIBC_2_34)
+compat_symbol (librt, __librt_version_placeholder_1,
+ __librt_version_placeholder, GLIBC_2_3);
+#endif
diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
index 94f5ca8b6f..c7e49f9a98 100644
--- a/sysdeps/unix/sysv/linux/alpha/librt.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.1 aio_cancel F
-GLIBC_2.1 aio_cancel64 F
GLIBC_2.1 aio_error F
GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
@@ -19,8 +17,7 @@ GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
-GLIBC_2.3 aio_cancel F
-GLIBC_2.3 aio_cancel64 F
+GLIBC_2.3 __librt_version_placeholder F
GLIBC_2.3.3 timer_create F
GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 30ba5ad683..22b501ea2b 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -550,6 +550,8 @@ GLIBC_2.32 addmntent F
GLIBC_2.32 addseverity F
GLIBC_2.32 adjtime F
GLIBC_2.32 adjtimex F
+GLIBC_2.32 aio_cancel F
+GLIBC_2.32 aio_cancel64 F
GLIBC_2.32 aio_init F
GLIBC_2.32 alarm F
GLIBC_2.32 aligned_alloc F
@@ -2106,6 +2108,8 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
index e53772e428..ca2aac8d45 100644
--- a/sysdeps/unix/sysv/linux/arc/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arc/librt.abilist
@@ -1,6 +1,4 @@
GLIBC_2.32 __mq_open_2 F
-GLIBC_2.32 aio_cancel F
-GLIBC_2.32 aio_cancel64 F
GLIBC_2.32 aio_error F
GLIBC_2.32 aio_error64 F
GLIBC_2.32 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index aec5cc13d4..1eb18fc392 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -200,6 +200,8 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
@@ -904,6 +906,8 @@ GLIBC_2.4 addseverity F
GLIBC_2.4 adjtime F
GLIBC_2.4 adjtimex F
GLIBC_2.4 advance F
+GLIBC_2.4 aio_cancel F
+GLIBC_2.4 aio_cancel64 F
GLIBC_2.4 aio_init F
GLIBC_2.4 alarm F
GLIBC_2.4 alphasort F
diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
index 739573ba0d..216950b6c1 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.4 aio_cancel F
-GLIBC_2.4 aio_cancel64 F
GLIBC_2.4 aio_error F
GLIBC_2.4 aio_error64 F
GLIBC_2.4 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index dad3c2028f..97d104e75d 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -197,6 +197,8 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
@@ -901,6 +903,8 @@ GLIBC_2.4 addseverity F
GLIBC_2.4 adjtime F
GLIBC_2.4 adjtimex F
GLIBC_2.4 advance F
+GLIBC_2.4 aio_cancel F
+GLIBC_2.4 aio_cancel64 F
GLIBC_2.4 aio_init F
GLIBC_2.4 alarm F
GLIBC_2.4 alphasort F
diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
index 739573ba0d..216950b6c1 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.4 aio_cancel F
-GLIBC_2.4 aio_cancel64 F
GLIBC_2.4 aio_error F
GLIBC_2.4 aio_error64 F
GLIBC_2.4 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index b294ade233..d74047a014 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -564,6 +564,8 @@ GLIBC_2.29 addmntent F
GLIBC_2.29 addseverity F
GLIBC_2.29 adjtime F
GLIBC_2.29 adjtimex F
+GLIBC_2.29 aio_cancel F
+GLIBC_2.29 aio_cancel64 F
GLIBC_2.29 aio_init F
GLIBC_2.29 alarm F
GLIBC_2.29 aligned_alloc F
@@ -2290,6 +2292,8 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
index 26dcba0488..2d13281a1f 100644
--- a/sysdeps/unix/sysv/linux/csky/librt.abilist
+++ b/sysdeps/unix/sysv/linux/csky/librt.abilist
@@ -1,6 +1,4 @@
GLIBC_2.29 __mq_open_2 F
-GLIBC_2.29 aio_cancel F
-GLIBC_2.29 aio_cancel64 F
GLIBC_2.29 aio_error F
GLIBC_2.29 aio_error64 F
GLIBC_2.29 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 3794805eea..46e9b50a10 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -3,6 +3,8 @@ GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
GLIBC_2.0 dlopen F
GLIBC_2.0 dlsym F
+GLIBC_2.1 aio_cancel F
+GLIBC_2.1 aio_cancel64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
@@ -2244,6 +2246,8 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
index 5668fd660c..9c7f42e69d 100644
--- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.1 aio_cancel F
-GLIBC_2.1 aio_cancel64 F
GLIBC_2.1 aio_error F
GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 3c4d4e03ee..9417531a3a 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -1475,6 +1475,8 @@ GLIBC_2.1 _sys_errlist D 0x1f4
GLIBC_2.1 _sys_nerr D 0x4
GLIBC_2.1 _sys_siglist D 0x100
GLIBC_2.1 addseverity F
+GLIBC_2.1 aio_cancel F
+GLIBC_2.1 aio_cancel64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
@@ -2428,6 +2430,8 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
index 5668fd660c..9c7f42e69d 100644
--- a/sysdeps/unix/sysv/linux/i386/librt.abilist
+++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.1 aio_cancel F
-GLIBC_2.1 aio_cancel64 F
GLIBC_2.1 aio_error F
GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 5557ac1330..dab468ed14 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -3,6 +3,8 @@ GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
GLIBC_2.0 dlopen F
GLIBC_2.0 dlsym F
+GLIBC_2.1 aio_cancel F
+GLIBC_2.1 aio_cancel64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
@@ -2280,6 +2282,8 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
index 2c97c02f21..cfe45b0383 100644
--- a/sysdeps/unix/sysv/linux/ia64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.1 aio_cancel F
-GLIBC_2.1 aio_cancel64 F
GLIBC_2.1 aio_error F
GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index bd922aa71a..3376822cb8 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -201,6 +201,8 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
@@ -892,6 +894,8 @@ GLIBC_2.4 addseverity F
GLIBC_2.4 adjtime F
GLIBC_2.4 adjtimex F
GLIBC_2.4 advance F
+GLIBC_2.4 aio_cancel F
+GLIBC_2.4 aio_cancel64 F
GLIBC_2.4 aio_init F
GLIBC_2.4 alarm F
GLIBC_2.4 alphasort F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
index 739573ba0d..216950b6c1 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.4 aio_cancel F
-GLIBC_2.4 aio_cancel64 F
GLIBC_2.4 aio_error F
GLIBC_2.4 aio_error64 F
GLIBC_2.4 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 30f26f4875..647dbd8445 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -1473,6 +1473,8 @@ GLIBC_2.1 _sys_errlist D 0x1f4
GLIBC_2.1 _sys_nerr D 0x4
GLIBC_2.1 _sys_siglist D 0x100
GLIBC_2.1 addseverity F
+GLIBC_2.1 aio_cancel F
+GLIBC_2.1 aio_cancel64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
@@ -2371,6 +2373,8 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
index 5668fd660c..9c7f42e69d 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.1 aio_cancel F
-GLIBC_2.1 aio_cancel64 F
GLIBC_2.1 aio_error F
GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 3731d5340e..741775f9af 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -591,6 +591,8 @@ GLIBC_2.18 addseverity F
GLIBC_2.18 adjtime F
GLIBC_2.18 adjtimex F
GLIBC_2.18 advance F
+GLIBC_2.18 aio_cancel F
+GLIBC_2.18 aio_cancel64 F
GLIBC_2.18 aio_init F
GLIBC_2.18 alarm F
GLIBC_2.18 aligned_alloc F
@@ -2341,6 +2343,8 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
index 6eb17cedbc..867c912709 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
@@ -1,6 +1,4 @@
GLIBC_2.18 __mq_open_2 F
-GLIBC_2.18 aio_cancel F
-GLIBC_2.18 aio_cancel64 F
GLIBC_2.18 aio_error F
GLIBC_2.18 aio_error64 F
GLIBC_2.18 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index b14b9ba0e5..e5d1aaad59 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -591,6 +591,8 @@ GLIBC_2.18 addseverity F
GLIBC_2.18 adjtime F
GLIBC_2.18 adjtimex F
GLIBC_2.18 advance F
+GLIBC_2.18 aio_cancel F
+GLIBC_2.18 aio_cancel64 F
GLIBC_2.18 aio_init F
GLIBC_2.18 alarm F
GLIBC_2.18 aligned_alloc F
@@ -2338,6 +2340,8 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
index 6eb17cedbc..867c912709 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
@@ -1,6 +1,4 @@
GLIBC_2.18 __mq_open_2 F
-GLIBC_2.18 aio_cancel F
-GLIBC_2.18 aio_cancel64 F
GLIBC_2.18 aio_error F
GLIBC_2.18 aio_error64 F
GLIBC_2.18 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 11f60b0399..a081b0e93e 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -1651,6 +1651,8 @@ GLIBC_2.2 _sys_nerr D 0x4
GLIBC_2.2 _sys_siglist D 0x100
GLIBC_2.2 _test_and_set F
GLIBC_2.2 addseverity F
+GLIBC_2.2 aio_cancel F
+GLIBC_2.2 aio_cancel64 F
GLIBC_2.2 aio_init F
GLIBC_2.2 alphasort64 F
GLIBC_2.2 argp_err_exit_status D 0x4
@@ -2336,6 +2338,8 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
index 40749a395c..c9e82563c1 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.2 aio_cancel F
-GLIBC_2.2 aio_cancel64 F
GLIBC_2.2 aio_error F
GLIBC_2.2 aio_error64 F
GLIBC_2.2 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index de2cb5fb4d..d86a4d79cf 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -1649,6 +1649,8 @@ GLIBC_2.2 _sys_nerr D 0x4
GLIBC_2.2 _sys_siglist D 0x100
GLIBC_2.2 _test_and_set F
GLIBC_2.2 addseverity F
+GLIBC_2.2 aio_cancel F
+GLIBC_2.2 aio_cancel64 F
GLIBC_2.2 aio_init F
GLIBC_2.2 alphasort64 F
GLIBC_2.2 argp_err_exit_status D 0x4
@@ -2334,6 +2336,8 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
index 40749a395c..c9e82563c1 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.2 aio_cancel F
-GLIBC_2.2 aio_cancel64 F
GLIBC_2.2 aio_error F
GLIBC_2.2 aio_error64 F
GLIBC_2.2 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 5e76f90af3..bd9c354b2a 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -1650,6 +1650,8 @@ GLIBC_2.2 _sys_nerr D 0x4
GLIBC_2.2 _sys_siglist D 0x100
GLIBC_2.2 _test_and_set F
GLIBC_2.2 addseverity F
+GLIBC_2.2 aio_cancel F
+GLIBC_2.2 aio_cancel64 F
GLIBC_2.2 aio_init F
GLIBC_2.2 alphasort64 F
GLIBC_2.2 argp_err_exit_status D 0x4
@@ -2342,6 +2344,8 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 4e1fedf92e..de45c2d3b6 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -1646,6 +1646,8 @@ GLIBC_2.2 _sys_nerr D 0x4
GLIBC_2.2 _sys_siglist D 0x200
GLIBC_2.2 _test_and_set F
GLIBC_2.2 addseverity F
+GLIBC_2.2 aio_cancel F
+GLIBC_2.2 aio_cancel64 F
GLIBC_2.2 aio_init F
GLIBC_2.2 alphasort64 F
GLIBC_2.2 argp_err_exit_status D 0x4
@@ -2336,6 +2338,8 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index e88575f475..2e3b269283 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -633,6 +633,8 @@ GLIBC_2.21 addseverity F
GLIBC_2.21 adjtime F
GLIBC_2.21 adjtimex F
GLIBC_2.21 advance F
+GLIBC_2.21 aio_cancel F
+GLIBC_2.21 aio_cancel64 F
GLIBC_2.21 aio_init F
GLIBC_2.21 alarm F
GLIBC_2.21 aligned_alloc F
@@ -2380,6 +2382,8 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
index f626834a28..bcdf31b913 100644
--- a/sysdeps/unix/sysv/linux/nios2/librt.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/librt.abilist
@@ -1,6 +1,4 @@
GLIBC_2.21 __mq_open_2 F
-GLIBC_2.21 aio_cancel F
-GLIBC_2.21 aio_cancel64 F
GLIBC_2.21 aio_error F
GLIBC_2.21 aio_error64 F
GLIBC_2.21 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index cbb206812d..5e4042229d 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -1480,6 +1480,8 @@ GLIBC_2.1 _sys_errlist D 0x1f4
GLIBC_2.1 _sys_nerr D 0x4
GLIBC_2.1 _sys_siglist D 0x100
GLIBC_2.1 addseverity F
+GLIBC_2.1 aio_cancel F
+GLIBC_2.1 aio_cancel64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
@@ -2398,6 +2400,8 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
index 5668fd660c..9c7f42e69d 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.1 aio_cancel F
-GLIBC_2.1 aio_cancel64 F
GLIBC_2.1 aio_error F
GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index bc37392916..5eb4991123 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -1480,6 +1480,8 @@ GLIBC_2.1 _sys_errlist D 0x1f4
GLIBC_2.1 _sys_nerr D 0x4
GLIBC_2.1 _sys_siglist D 0x100
GLIBC_2.1 addseverity F
+GLIBC_2.1 aio_cancel F
+GLIBC_2.1 aio_cancel64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
@@ -2431,6 +2433,8 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 6054621b47..f475d03e11 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -633,6 +633,8 @@ GLIBC_2.3 addseverity F
GLIBC_2.3 adjtime F
GLIBC_2.3 adjtimex F
GLIBC_2.3 advance F
+GLIBC_2.3 aio_cancel F
+GLIBC_2.3 aio_cancel64 F
GLIBC_2.3 aio_init F
GLIBC_2.3 alarm F
GLIBC_2.3 alphasort F
@@ -2244,6 +2246,8 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
index 3607639c50..1943e645ed 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.3 aio_cancel F
-GLIBC_2.3 aio_cancel64 F
GLIBC_2.3 aio_error F
GLIBC_2.3 aio_error64 F
GLIBC_2.3 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 49f5140023..c324cb8f92 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -677,6 +677,8 @@ GLIBC_2.17 addseverity F
GLIBC_2.17 adjtime F
GLIBC_2.17 adjtimex F
GLIBC_2.17 advance F
+GLIBC_2.17 aio_cancel F
+GLIBC_2.17 aio_cancel64 F
GLIBC_2.17 aio_init F
GLIBC_2.17 alarm F
GLIBC_2.17 aligned_alloc F
@@ -2543,6 +2545,8 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
index 66dc3e4457..0f3a79e3a4 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
@@ -1,6 +1,4 @@
GLIBC_2.17 __mq_open_2 F
-GLIBC_2.17 aio_cancel F
-GLIBC_2.17 aio_cancel64 F
GLIBC_2.17 aio_error F
GLIBC_2.17 aio_error64 F
GLIBC_2.17 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 5347a99441..939e61bb67 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -544,6 +544,8 @@ GLIBC_2.33 addmntent F
GLIBC_2.33 addseverity F
GLIBC_2.33 adjtime F
GLIBC_2.33 adjtimex F
+GLIBC_2.33 aio_cancel F
+GLIBC_2.33 aio_cancel64 F
GLIBC_2.33 aio_init F
GLIBC_2.33 alarm F
GLIBC_2.33 aligned_alloc F
@@ -2108,6 +2110,8 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
index c588e04ae0..3a0bb5db43 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
@@ -1,6 +1,4 @@
GLIBC_2.33 __mq_open_2 F
-GLIBC_2.33 aio_cancel F
-GLIBC_2.33 aio_cancel64 F
GLIBC_2.33 aio_error F
GLIBC_2.33 aio_error64 F
GLIBC_2.33 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index ef2bd64a0c..8d34e34e38 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -570,6 +570,8 @@ GLIBC_2.27 addmntent F
GLIBC_2.27 addseverity F
GLIBC_2.27 adjtime F
GLIBC_2.27 adjtimex F
+GLIBC_2.27 aio_cancel F
+GLIBC_2.27 aio_cancel64 F
GLIBC_2.27 aio_init F
GLIBC_2.27 alarm F
GLIBC_2.27 aligned_alloc F
@@ -2308,6 +2310,8 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
index 4be13a5327..7f78e1b461 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
@@ -1,6 +1,4 @@
GLIBC_2.27 __mq_open_2 F
-GLIBC_2.27 aio_cancel F
-GLIBC_2.27 aio_cancel64 F
GLIBC_2.27 aio_error F
GLIBC_2.27 aio_error64 F
GLIBC_2.27 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 5da99f41d1..97f20d7152 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -1472,6 +1472,8 @@ GLIBC_2.1 _sys_errlist D 0x1f4
GLIBC_2.1 _sys_nerr D 0x4
GLIBC_2.1 _sys_siglist D 0x100
GLIBC_2.1 addseverity F
+GLIBC_2.1 aio_cancel F
+GLIBC_2.1 aio_cancel64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
@@ -2396,6 +2398,8 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
index 5668fd660c..9c7f42e69d 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.1 aio_cancel F
-GLIBC_2.1 aio_cancel64 F
GLIBC_2.1 aio_error F
GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 7582590fc7..c9c74df986 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -570,6 +570,8 @@ GLIBC_2.2 addseverity F
GLIBC_2.2 adjtime F
GLIBC_2.2 adjtimex F
GLIBC_2.2 advance F
+GLIBC_2.2 aio_cancel F
+GLIBC_2.2 aio_cancel64 F
GLIBC_2.2 aio_init F
GLIBC_2.2 alarm F
GLIBC_2.2 alphasort F
@@ -2281,6 +2283,8 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
index 97673a21d4..7948f84cec 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.2 aio_cancel F
-GLIBC_2.2 aio_cancel64 F
GLIBC_2.2 aio_error F
GLIBC_2.2 aio_error64 F
GLIBC_2.2 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 429fa14f73..07241a3bba 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -7,6 +7,8 @@ GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
GLIBC_2.0 dlopen F
GLIBC_2.0 dlsym F
+GLIBC_2.1 aio_cancel F
+GLIBC_2.1 aio_cancel64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
@@ -2251,6 +2253,8 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
index 5668fd660c..9c7f42e69d 100644
--- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.1 aio_cancel F
-GLIBC_2.1 aio_cancel64 F
GLIBC_2.1 aio_error F
GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 1d1d227771..6c53ff3b36 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -7,6 +7,8 @@ GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
GLIBC_2.0 dlopen F
GLIBC_2.0 dlsym F
+GLIBC_2.1 aio_cancel F
+GLIBC_2.1 aio_cancel64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
@@ -2248,6 +2250,8 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
index 5668fd660c..9c7f42e69d 100644
--- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.1 aio_cancel F
-GLIBC_2.1 aio_cancel64 F
GLIBC_2.1 aio_error F
GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/sparc/Versions b/sysdeps/unix/sysv/linux/sparc/Versions
index f1027603a4..f127bdf0b8 100644
--- a/sysdeps/unix/sysv/linux/sparc/Versions
+++ b/sysdeps/unix/sysv/linux/sparc/Versions
@@ -6,7 +6,12 @@ libc {
_sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
}
GLIBC_2.3 {
- _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
+ _sys_errlist;
+ _sys_nerr;
+ aio_cancel64;
+ aio_cancel;
+ sys_errlist;
+ sys_nerr;
}
GLIBC_2.3.3 {
# Changed PTHREAD_STACK_MIN.
@@ -29,10 +34,8 @@ libc {
__vdso_clock_gettime;
}
}
-
librt {
GLIBC_2.3 {
- # AIO functions.
- aio_cancel; aio_cancel64;
+ __librt_version_placeholder;
}
}
diff --git a/sysdeps/unix/sysv/linux/sparc/aio_cancel.c b/sysdeps/unix/sysv/linux/sparc/aio_cancel.c
index 9f69b080ed..6e4352a9a4 100644
--- a/sysdeps/unix/sysv/linux/sparc/aio_cancel.c
+++ b/sysdeps/unix/sysv/linux/sparc/aio_cancel.c
@@ -8,26 +8,28 @@
extern __typeof (aio_cancel) __new_aio_cancel;
extern __typeof (aio_cancel) __old_aio_cancel;
-#define aio_cancel __new_aio_cancel
+#define __aio_cancel __new_aio_cancel
#include <rt/aio_cancel.c>
-#undef aio_cancel
-strong_alias (__new_aio_cancel, __new_aio_cancel64);
-versioned_symbol (librt, __new_aio_cancel, aio_cancel, GLIBC_2_3);
-versioned_symbol (librt, __new_aio_cancel64, aio_cancel64, GLIBC_2_3);
+#undef __aio_cancel
+versioned_symbol (libc, __new_aio_cancel, aio_cancel, GLIBC_2_34);
+versioned_symbol (libc, __new_aio_cancel, aio_cancel64, GLIBC_2_34);
+#if OTHER_SHLIB_COMPAT (librt, GLIBC_2_3, GLIBC_2_34)
+compat_symbol (librt, __new_aio_cancel, aio_cancel, GLIBC_2_3);
+compat_symbol (librt, __new_aio_cancel, aio_cancel64, GLIBC_2_3);
+#endif
-#if SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_3)
+#if OTHER_SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_3)
#undef ECANCELED
-#define aio_cancel __old_aio_cancel
+#define __aio_cancel __old_aio_cancel
#define ECANCELED 125
#include <rt/aio_cancel.c>
-#undef aio_cancel
-strong_alias (__old_aio_cancel, __old_aio_cancel64);
+#undef __aio_cancel
compat_symbol (librt, __old_aio_cancel, aio_cancel, GLIBC_2_1);
-compat_symbol (librt, __old_aio_cancel64, aio_cancel64, GLIBC_2_1);
+compat_symbol (librt, __old_aio_cancel, aio_cancel64, GLIBC_2_1);
#endif
diff --git a/sysdeps/unix/sysv/linux/sparc/librt-compat.c b/sysdeps/unix/sysv/linux/sparc/librt-compat.c
new file mode 100644
index 0000000000..a3862ba127
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/librt-compat.c
@@ -0,0 +1,24 @@
+/* Placeholder definitions to pull in removed symbol versions. sparc version.
+ Copyright (C) 2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <rt/librt-compat.c>
+
+#if SHLIB_COMPAT (librt, GLIBC_2_3, GLIBC_2_34)
+compat_symbol (librt, __librt_version_placeholder_1,
+ __librt_version_placeholder, GLIBC_2_3);
+#endif
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index cc29540151..b2413a6c4a 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -1474,6 +1474,8 @@ GLIBC_2.1 _sys_errlist D 0x1fc
GLIBC_2.1 _sys_nerr D 0x4
GLIBC_2.1 _sys_siglist D 0x100
GLIBC_2.1 addseverity F
+GLIBC_2.1 aio_cancel F
+GLIBC_2.1 aio_cancel64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
@@ -2165,6 +2167,8 @@ GLIBC_2.3 __uselocale F
GLIBC_2.3 __wcsftime_l F
GLIBC_2.3 _sys_errlist D 0x200
GLIBC_2.3 _sys_nerr D 0x4
+GLIBC_2.3 aio_cancel F
+GLIBC_2.3 aio_cancel64 F
GLIBC_2.3 duplocale F
GLIBC_2.3 fgetxattr F
GLIBC_2.3 flistxattr F
@@ -2389,6 +2393,8 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
index c9d92e6d1a..e00686e679 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.1 aio_cancel F
-GLIBC_2.1 aio_cancel64 F
GLIBC_2.1 aio_error F
GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
@@ -19,8 +17,7 @@ GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
-GLIBC_2.3 aio_cancel F
-GLIBC_2.3 aio_cancel64 F
+GLIBC_2.3 __librt_version_placeholder F
GLIBC_2.3.4 mq_close F
GLIBC_2.3.4 mq_getattr F
GLIBC_2.3.4 mq_notify F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index a9c67ea157..69b05f17b2 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -7,6 +7,8 @@ GLIBC_2.0 dlclose F
GLIBC_2.0 dlerror F
GLIBC_2.0 dlopen F
GLIBC_2.0 dlsym F
+GLIBC_2.1 aio_cancel F
+GLIBC_2.1 aio_cancel64 F
GLIBC_2.1 aio_init F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
@@ -2091,6 +2093,8 @@ GLIBC_2.3 __uselocale F
GLIBC_2.3 __wcsftime_l F
GLIBC_2.3 _sys_errlist D 0x400
GLIBC_2.3 _sys_nerr D 0x4
+GLIBC_2.3 aio_cancel F
+GLIBC_2.3 aio_cancel64 F
GLIBC_2.3 duplocale F
GLIBC_2.3 fgetxattr F
GLIBC_2.3 flistxattr F
@@ -2301,6 +2305,8 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
index 94f5ca8b6f..c7e49f9a98 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.1 aio_cancel F
-GLIBC_2.1 aio_cancel64 F
GLIBC_2.1 aio_error F
GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
@@ -19,8 +17,7 @@ GLIBC_2.2 timer_delete F
GLIBC_2.2 timer_getoverrun F
GLIBC_2.2 timer_gettime F
GLIBC_2.2 timer_settime F
-GLIBC_2.3 aio_cancel F
-GLIBC_2.3 aio_cancel64 F
+GLIBC_2.3 __librt_version_placeholder F
GLIBC_2.3.3 timer_create F
GLIBC_2.3.3 timer_delete F
GLIBC_2.3.3 timer_getoverrun F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index e340fbc8dd..bcb7d29a0f 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -559,6 +559,8 @@ GLIBC_2.2.5 addseverity F
GLIBC_2.2.5 adjtime F
GLIBC_2.2.5 adjtimex F
GLIBC_2.2.5 advance F
+GLIBC_2.2.5 aio_cancel F
+GLIBC_2.2.5 aio_cancel64 F
GLIBC_2.2.5 aio_init F
GLIBC_2.2.5 alarm F
GLIBC_2.2.5 alphasort F
@@ -2259,6 +2261,8 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
index bac8c74b5f..1853412bcc 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.2.5 aio_cancel F
-GLIBC_2.2.5 aio_cancel64 F
GLIBC_2.2.5 aio_error F
GLIBC_2.2.5 aio_error64 F
GLIBC_2.2.5 aio_fsync F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 9e488ae963..bfb215dd72 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -592,6 +592,8 @@ GLIBC_2.16 addseverity F
GLIBC_2.16 adjtime F
GLIBC_2.16 adjtimex F
GLIBC_2.16 advance F
+GLIBC_2.16 aio_cancel F
+GLIBC_2.16 aio_cancel64 F
GLIBC_2.16 aio_init F
GLIBC_2.16 alarm F
GLIBC_2.16 aligned_alloc F
@@ -2362,6 +2364,8 @@ GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
+GLIBC_2.34 aio_cancel F
+GLIBC_2.34 aio_cancel64 F
GLIBC_2.34 aio_init F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
index 2e432fe7d6..310b1bf338 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
@@ -1,6 +1,4 @@
GLIBC_2.16 __mq_open_2 F
-GLIBC_2.16 aio_cancel F
-GLIBC_2.16 aio_cancel64 F
GLIBC_2.16 aio_error F
GLIBC_2.16 aio_error64 F
GLIBC_2.16 aio_fsync F
--
2.31.1
^ permalink raw reply [flat|nested] 45+ messages in thread
* [PATCH 13/35] Linux: Move aio_error, aio_error64 into libc
2021-06-03 23:14 [PATCH 00/35] Linux: Move librt into libc Florian Weimer
` (11 preceding siblings ...)
2021-06-03 23:15 ` [PATCH 12/35] Linux: Move aio_cancel, aio_cancel64 " Florian Weimer
@ 2021-06-03 23:15 ` Florian Weimer
2021-06-03 23:15 ` [PATCH 14/35] Linux: Move aio_fsync, aio_fsync64 " Florian Weimer
` (22 subsequent siblings)
35 siblings, 0 replies; 45+ messages in thread
From: Florian Weimer @ 2021-06-03 23:15 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 ++++
.../unix/sysv/linux/mips/mips64/librt.abilist | 2 --
.../sysv/linux/mips/mips64/n32/libc.abilist | 4 ++++
.../sysv/linux/mips/mips64/n64/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/nios2/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/nios2/librt.abilist | 2 --
.../linux/powerpc/powerpc32/fpu/libc.abilist | 4 ++++
.../linux/powerpc/powerpc32/librt.abilist | 2 --
.../powerpc/powerpc32/nofpu/libc.abilist | 4 ++++
.../linux/powerpc/powerpc64/be/libc.abilist | 4 ++++
.../linux/powerpc/powerpc64/be/librt.abilist | 2 --
.../linux/powerpc/powerpc64/le/libc.abilist | 4 ++++
.../linux/powerpc/powerpc64/le/librt.abilist | 2 --
.../unix/sysv/linux/riscv/rv32/libc.abilist | 4 ++++
.../unix/sysv/linux/riscv/rv32/librt.abilist | 2 --
.../unix/sysv/linux/riscv/rv64/libc.abilist | 4 ++++
.../unix/sysv/linux/riscv/rv64/librt.abilist | 2 --
.../unix/sysv/linux/s390/s390-32/libc.abilist | 4 ++++
.../sysv/linux/s390/s390-32/librt.abilist | 2 --
.../unix/sysv/linux/s390/s390-64/libc.abilist | 4 ++++
.../sysv/linux/s390/s390-64/librt.abilist | 2 --
sysdeps/unix/sysv/linux/sh/be/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/sh/be/librt.abilist | 2 --
sysdeps/unix/sysv/linux/sh/le/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/sh/le/librt.abilist | 2 --
.../sysv/linux/sparc/sparc32/libc.abilist | 4 ++++
.../sysv/linux/sparc/sparc32/librt.abilist | 2 --
.../sysv/linux/sparc/sparc64/libc.abilist | 4 ++++
.../sysv/linux/sparc/sparc64/librt.abilist | 2 --
.../unix/sysv/linux/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 --
64 files changed, 150 insertions(+), 65 deletions(-)
diff --git a/rt/Makefile b/rt/Makefile
index 0ea824ebe8..c6f5c9479c 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 d9a45228b8..ffc94d2742 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
@@ -2351,6 +2353,8 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
+GLIBC_2.34 aio_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 d7a8dbb2f6..868a4abc54 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
@@ -2446,6 +2448,8 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
+GLIBC_2.34 aio_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 22b501ea2b..f3b9d0c8e4 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
@@ -2110,6 +2112,8 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
+GLIBC_2.34 aio_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 1eb18fc392..7f4a4f51e5 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -202,6 +202,8 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
+GLIBC_2.34 aio_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
@@ -908,6 +910,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 216950b6c1..b8081e304a 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.4 aio_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 97d104e75d..16b91f58ae 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -199,6 +199,8 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
+GLIBC_2.34 aio_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
@@ -905,6 +907,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 216950b6c1..b8081e304a 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.4 aio_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 d74047a014..492983f360 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
@@ -2294,6 +2296,8 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
+GLIBC_2.34 aio_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 2d13281a1f..ec63519cd6 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 46e9b50a10..b7b896e7cc 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
@@ -2248,6 +2250,8 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
+GLIBC_2.34 aio_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 9c7f42e69d..32ea1d31f1 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 9417531a3a..b28c17f976 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
@@ -2432,6 +2434,8 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
+GLIBC_2.34 aio_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 9c7f42e69d..32ea1d31f1 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 dab468ed14..7f98c27b56 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
@@ -2284,6 +2286,8 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
+GLIBC_2.34 aio_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 3376822cb8..8dc58eb02c 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -203,6 +203,8 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
+GLIBC_2.34 aio_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
@@ -896,6 +898,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 216950b6c1..b8081e304a 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.4 aio_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 647dbd8445..431461a210 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
@@ -2375,6 +2377,8 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
+GLIBC_2.34 aio_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 9c7f42e69d..32ea1d31f1 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 741775f9af..7399736f5d 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
@@ -2345,6 +2347,8 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
+GLIBC_2.34 aio_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 867c912709..f4016ecd1a 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 e5d1aaad59..03813fdf73 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
@@ -2342,6 +2344,8 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
+GLIBC_2.34 aio_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 867c912709..f4016ecd1a 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 a081b0e93e..e1259a6228 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
@@ -2340,6 +2342,8 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
+GLIBC_2.34 aio_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 c9e82563c1..fbd1bb1039 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 d86a4d79cf..63648b7397 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
@@ -2338,6 +2340,8 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
+GLIBC_2.34 aio_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/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
index c9e82563c1..fbd1bb1039 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.2 aio_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/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index bd9c354b2a..d06e870726 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
@@ -2346,6 +2348,8 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
+GLIBC_2.34 aio_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/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index de45c2d3b6..fccad2d8c1 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
@@ -2340,6 +2342,8 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
+GLIBC_2.34 aio_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/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 2e3b269283..60fd4bb0bd 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
@@ -2384,6 +2386,8 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
+GLIBC_2.34 aio_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 bcdf31b913..6b4c98e612 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 5e4042229d..8ac20ba20c 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
@@ -2402,6 +2404,8 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
+GLIBC_2.34 aio_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 9c7f42e69d..32ea1d31f1 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 5eb4991123..d5a727b626 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
@@ -2435,6 +2437,8 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
+GLIBC_2.34 aio_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 f475d03e11..d3e0096381 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
@@ -2248,6 +2250,8 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
+GLIBC_2.34 aio_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 c324cb8f92..5d624a4fab 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
@@ -2547,6 +2549,8 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
+GLIBC_2.34 aio_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 939e61bb67..c7cdf0726a 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
@@ -2112,6 +2114,8 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
+GLIBC_2.34 aio_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 8d34e34e38..75d9cca676 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
@@ -2312,6 +2314,8 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
+GLIBC_2.34 aio_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 97f20d7152..c222b5a0f8 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
@@ -2400,6 +2402,8 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
+GLIBC_2.34 aio_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 9c7f42e69d..32ea1d31f1 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 c9c74df986..aaf49a20e1 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
@@ -2285,6 +2287,8 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
+GLIBC_2.34 aio_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 07241a3bba..9258bf0be6 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
@@ -2255,6 +2257,8 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
+GLIBC_2.34 aio_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 9c7f42e69d..32ea1d31f1 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 6c53ff3b36..ba4449093b 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
@@ -2252,6 +2254,8 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
+GLIBC_2.34 aio_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 9c7f42e69d..32ea1d31f1 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 b2413a6c4a..c723475029 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
@@ -2395,6 +2397,8 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
+GLIBC_2.34 aio_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 e00686e679..91529f13ea 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 69b05f17b2..6b7a16e0ff 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
@@ -2307,6 +2309,8 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
+GLIBC_2.34 aio_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 bcb7d29a0f..16c57f88f5 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
@@ -2263,6 +2265,8 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
+GLIBC_2.34 aio_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 bfb215dd72..7cb88b0158 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
@@ -2366,6 +2368,8 @@ GLIBC_2.34 __pthread_unregister_cancel_restore F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 aio_cancel F
GLIBC_2.34 aio_cancel64 F
+GLIBC_2.34 aio_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] 45+ messages in thread
* [PATCH 14/35] Linux: Move aio_fsync, aio_fsync64 into libc
2021-06-03 23:14 [PATCH 00/35] Linux: Move librt into libc Florian Weimer
` (12 preceding siblings ...)
2021-06-03 23:15 ` [PATCH 13/35] Linux: Move aio_error, aio_error64 " Florian Weimer
@ 2021-06-03 23:15 ` Florian Weimer
2021-06-03 23:16 ` [PATCH 15/35] Linux: Move aio_read, aio_read64 " Florian Weimer
` (21 subsequent siblings)
35 siblings, 0 replies; 45+ messages in thread
From: Florian Weimer @ 2021-06-03 23:15 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 ++++
.../unix/sysv/linux/mips/mips64/librt.abilist | 2 --
.../sysv/linux/mips/mips64/n32/libc.abilist | 4 ++++
.../sysv/linux/mips/mips64/n64/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/nios2/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/nios2/librt.abilist | 2 --
.../linux/powerpc/powerpc32/fpu/libc.abilist | 4 ++++
.../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 --
64 files changed, 147 insertions(+), 65 deletions(-)
diff --git a/rt/Makefile b/rt/Makefile
index c6f5c9479c..a8d9ef7d18 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 ffc94d2742..c8d6f0deda 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
@@ -2355,6 +2357,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 868a4abc54..3dc95a54f7 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
@@ -2450,6 +2452,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 f3b9d0c8e4..0391848260 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
@@ -2114,6 +2116,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 7f4a4f51e5..ba86272d7e 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -204,6 +204,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
@@ -912,6 +914,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 b8081e304a..14a2ef9d59 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.4 aio_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 16b91f58ae..221549e103 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -201,6 +201,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
@@ -909,6 +911,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 b8081e304a..14a2ef9d59 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.4 aio_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 492983f360..cb8da82bfd 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
@@ -2298,6 +2300,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 ec63519cd6..17ca6c5342 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 b7b896e7cc..424d496daa 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
@@ -2252,6 +2254,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 32ea1d31f1..57ff2fb6b5 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 b28c17f976..a740412d24 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
@@ -2436,6 +2438,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 32ea1d31f1..57ff2fb6b5 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 7f98c27b56..c38e449fed 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
@@ -2288,6 +2290,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 8dc58eb02c..ba5c89d5a0 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -205,6 +205,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
@@ -900,6 +902,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 b8081e304a..14a2ef9d59 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.4 aio_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 431461a210..941c3acd5e 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
@@ -2379,6 +2381,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 32ea1d31f1..57ff2fb6b5 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 7399736f5d..92221a8a6a 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
@@ -2349,6 +2351,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 f4016ecd1a..391cc68456 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 03813fdf73..4452e387f8 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
@@ -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/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
index f4016ecd1a..391cc68456 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 e1259a6228..1ee605dd66 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
@@ -2344,6 +2346,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 fbd1bb1039..848a39faae 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 63648b7397..99e171def4 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
@@ -2342,6 +2344,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/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
index fbd1bb1039..848a39faae 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.2 aio_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/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index d06e870726..79b7a173a4 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
@@ -2350,6 +2352,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/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index fccad2d8c1..6132f8ec4c 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
@@ -2344,6 +2346,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/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 60fd4bb0bd..ad3f2d37c9 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
@@ -2388,6 +2390,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 6b4c98e612..e38236b56c 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 8ac20ba20c..fc8351ee69 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
@@ -2406,6 +2408,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 32ea1d31f1..57ff2fb6b5 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 d5a727b626..f07cdf4d36 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
@@ -2439,6 +2441,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 d3e0096381..9bae232cc5 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
@@ -2252,6 +2254,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 5d624a4fab..5f82539e80 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
@@ -2551,6 +2553,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 c7cdf0726a..4a3e053a61 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
@@ -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/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 75d9cca676..b1691a2db6 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
@@ -2316,6 +2318,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 c222b5a0f8..2a63ac491c 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
@@ -2404,6 +2406,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 32ea1d31f1..57ff2fb6b5 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 aaf49a20e1..ac68fb5c62 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
@@ -2289,6 +2291,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 9258bf0be6..c7e721edab 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
@@ -2259,6 +2261,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 32ea1d31f1..57ff2fb6b5 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 ba4449093b..f919d8b939 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
@@ -2256,6 +2258,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 32ea1d31f1..57ff2fb6b5 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 c723475029..64fb6aaa88 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
@@ -2399,6 +2401,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 91529f13ea..1bb92a6ad8 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 6b7a16e0ff..e5002c509e 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
@@ -2311,6 +2313,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 16c57f88f5..98f8000a05 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
@@ -2267,6 +2269,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 7cb88b0158..cd1d4aeb88 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
@@ -2370,6 +2372,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] 45+ messages in thread
* [PATCH 15/35] Linux: Move aio_read, aio_read64 into libc
2021-06-03 23:14 [PATCH 00/35] Linux: Move librt into libc Florian Weimer
` (13 preceding siblings ...)
2021-06-03 23:15 ` [PATCH 14/35] Linux: Move aio_fsync, aio_fsync64 " Florian Weimer
@ 2021-06-03 23:16 ` Florian Weimer
2021-06-03 23:16 ` [PATCH 16/35] Linux: Move aio_return, aio_return64 " Florian Weimer
` (20 subsequent siblings)
35 siblings, 0 replies; 45+ messages in thread
From: Florian Weimer @ 2021-06-03 23:16 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 ++
.../unix/sysv/linux/mips/mips64/librt.abilist | 2 -
.../sysv/linux/mips/mips64/n32/libc.abilist | 4 ++
.../sysv/linux/mips/mips64/n64/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/nios2/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/nios2/librt.abilist | 2 -
.../linux/powerpc/powerpc32/fpu/libc.abilist | 4 ++
.../linux/powerpc/powerpc32/librt.abilist | 2 -
.../powerpc/powerpc32/nofpu/libc.abilist | 4 ++
.../linux/powerpc/powerpc64/be/libc.abilist | 4 ++
.../linux/powerpc/powerpc64/be/librt.abilist | 2 -
.../linux/powerpc/powerpc64/le/libc.abilist | 4 ++
.../linux/powerpc/powerpc64/le/librt.abilist | 2 -
.../unix/sysv/linux/riscv/rv32/libc.abilist | 4 ++
.../unix/sysv/linux/riscv/rv32/librt.abilist | 2 -
.../unix/sysv/linux/riscv/rv64/libc.abilist | 4 ++
.../unix/sysv/linux/riscv/rv64/librt.abilist | 2 -
.../unix/sysv/linux/s390/s390-32/libc.abilist | 4 ++
.../sysv/linux/s390/s390-32/librt.abilist | 2 -
.../unix/sysv/linux/s390/s390-64/libc.abilist | 4 ++
.../sysv/linux/s390/s390-64/librt.abilist | 2 -
sysdeps/unix/sysv/linux/sh/be/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/sh/be/librt.abilist | 2 -
sysdeps/unix/sysv/linux/sh/le/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/sh/le/librt.abilist | 2 -
.../sysv/linux/sparc/sparc32/libc.abilist | 4 ++
.../sysv/linux/sparc/sparc32/librt.abilist | 2 -
.../sysv/linux/sparc/sparc64/libc.abilist | 4 ++
.../sysv/linux/sparc/sparc64/librt.abilist | 2 -
.../unix/sysv/linux/wordsize-64/aio_read.c | 7 ----
.../unix/sysv/linux/wordsize-64/aio_read64.c | 1 -
.../unix/sysv/linux/x86_64/64/libc.abilist | 4 ++
.../unix/sysv/linux/x86_64/64/librt.abilist | 2 -
.../unix/sysv/linux/x86_64/x32/libc.abilist | 4 ++
.../unix/sysv/linux/x86_64/x32/librt.abilist | 2 -
67 files changed, 185 insertions(+), 76 deletions(-)
delete mode 100644 sysdeps/unix/sysv/linux/wordsize-64/aio_read.c
delete mode 100644 sysdeps/unix/sysv/linux/wordsize-64/aio_read64.c
diff --git a/rt/Makefile b/rt/Makefile
index a8d9ef7d18..9372fbc100 100644
--- a/rt/Makefile
+++ b/rt/Makefile
@@ -29,8 +29,6 @@ routines = \
shm_unlink \
librt-routines = \
- aio_read \
- aio_read64 \
aio_return \
aio_suspend \
aio_write \
@@ -62,6 +60,8 @@ $(librt-routines-var) += \
aio_fsync \
aio_misc \
aio_notify \
+ aio_read \
+ aio_read64 \
aio_sigqueue \
tests := tst-shm tst-timer tst-timer2 \
diff --git a/rt/Versions b/rt/Versions
index 1a0aa77fd0..6db40bebc4 100644
--- a/rt/Versions
+++ b/rt/Versions
@@ -8,6 +8,8 @@ libc {
aio_error64;
aio_fsync;
aio_fsync64;
+ aio_read;
+ aio_read64;
%endif
}
GLIBC_2.2 {
@@ -23,6 +25,8 @@ libc {
aio_error64;
aio_fsync;
aio_fsync64;
+ aio_read;
+ aio_read64;
%endif
shm_open;
shm_unlink;
@@ -51,9 +55,9 @@ librt {
aio_fsync;
aio_fsync64;
aio_init;
-%endif
aio_read;
aio_read64;
+%endif
aio_return;
aio_return64;
aio_suspend;
diff --git a/rt/aio_read.c b/rt/aio_read.c
index 4698e48b1c..1b7a7fcfa9 100644
--- a/rt/aio_read.c
+++ b/rt/aio_read.c
@@ -17,14 +17,45 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <aio.h>
+#include <bits/wordsize.h>
+#if __WORDSIZE == 64
+/* We use an UGLY hack to prevent gcc from finding us cheating. The
+ implementation of aio_read and aio_read64 are identical and so
+ we want to avoid code duplication by using aliases. But gcc sees
+ the different parameter lists and prints a warning. We define here
+ a function so that aio_read64 has no prototype. */
+# define aio_read64 XXX
+# include <aio.h>
+/* And undo the hack. */
+# undef aio_read64
+#else
+# include <aio.h>
+#endif
#include <aio_misc.h>
-
+#include <shlib-compat.h>
int
-aio_read (struct aiocb *aiocbp)
+__aio_read (struct aiocb *aiocbp)
{
return (__aio_enqueue_request ((aiocb_union *) aiocbp, LIO_READ) == NULL
? -1 : 0);
}
+
+#if PTHREAD_IN_LIBC
+versioned_symbol (libc, __aio_read, aio_read, GLIBC_2_34);
+# if __WORDSIZE == 64
+versioned_symbol (libc, __aio_read, aio_read64, GLIBC_2_34);
+# endif
+# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_34)
+compat_symbol (librt, __aio_read, aio_read, GLIBC_2_1);
+# if __WORDSIZE == 64
+compat_symbol (librt, __aio_read, aio_read64, GLIBC_2_1);
+# endif
+# endif
+#else /* !PTHREAD_IN_LIBC */
+strong_alias (__aio_read, aio_read)
+# if __WORDSIZE == 64
+weak_alias (__aio_read, aio_read64)
+#endif
+#endif /* !PTHREAD_IN_LIBC */
diff --git a/rt/aio_read64.c b/rt/aio_read64.c
index 26b9b0b380..3aa169fbf3 100644
--- a/rt/aio_read64.c
+++ b/rt/aio_read64.c
@@ -17,14 +17,26 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <aio.h>
-
-#include <aio_misc.h>
+#include <bits/wordsize.h>
+#if __WORDSIZE != 64
+# include <aio.h>
+# include <aio_misc.h>
+# include <shlib-compat.h>
int
-aio_read64 (struct aiocb64 *aiocbp)
+__aio_read64 (struct aiocb64 *aiocbp)
{
return (__aio_enqueue_request ((aiocb_union *) aiocbp, LIO_READ64) == NULL
? -1 : 0);
}
+
+# if PTHREAD_IN_LIBC
+versioned_symbol (libc, __aio_read64, aio_read64, GLIBC_2_34);
+# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_34)
+compat_symbol (librt, __aio_read64, aio_read64, GLIBC_2_1);
+# endif
+# else /* !PTHREAD_IN_LIBC */
+strong_alias (__aio_read64, aio_read64)
+# endif
+#endif /* __WORDSIZE != 64 */
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index c8d6f0deda..eaf9b0976f 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -596,6 +596,8 @@ GLIBC_2.17 aio_error64 F
GLIBC_2.17 aio_fsync F
GLIBC_2.17 aio_fsync64 F
GLIBC_2.17 aio_init F
+GLIBC_2.17 aio_read F
+GLIBC_2.17 aio_read64 F
GLIBC_2.17 alarm F
GLIBC_2.17 aligned_alloc F
GLIBC_2.17 alphasort F
@@ -2360,6 +2362,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
index 1519e07346..58a853230e 100644
--- a/sysdeps/unix/sysv/linux/aarch64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
@@ -1,6 +1,4 @@
GLIBC_2.17 __mq_open_2 F
-GLIBC_2.17 aio_read F
-GLIBC_2.17 aio_read64 F
GLIBC_2.17 aio_return F
GLIBC_2.17 aio_return64 F
GLIBC_2.17 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 3dc95a54f7..3284cc7f34 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -1509,6 +1509,8 @@ GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
+GLIBC_2.1 aio_read F
+GLIBC_2.1 aio_read64 F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
GLIBC_2.1 argp_error F
@@ -2455,6 +2457,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
index f4dd36f97b..2afa483191 100644
--- a/sysdeps/unix/sysv/linux/alpha/librt.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.1 aio_read F
-GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
GLIBC_2.1 aio_return64 F
GLIBC_2.1 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 0391848260..8577b14ad3 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -557,6 +557,8 @@ GLIBC_2.32 aio_error64 F
GLIBC_2.32 aio_fsync F
GLIBC_2.32 aio_fsync64 F
GLIBC_2.32 aio_init F
+GLIBC_2.32 aio_read F
+GLIBC_2.32 aio_read64 F
GLIBC_2.32 alarm F
GLIBC_2.32 aligned_alloc F
GLIBC_2.32 alphasort F
@@ -2119,6 +2121,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
index 15b9acf33c..e49be2ff36 100644
--- a/sysdeps/unix/sysv/linux/arc/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arc/librt.abilist
@@ -1,6 +1,4 @@
GLIBC_2.32 __mq_open_2 F
-GLIBC_2.32 aio_read F
-GLIBC_2.32 aio_read64 F
GLIBC_2.32 aio_return F
GLIBC_2.32 aio_return64 F
GLIBC_2.32 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index ba86272d7e..625ee667e3 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -207,6 +207,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
@@ -917,6 +919,8 @@ GLIBC_2.4 aio_error64 F
GLIBC_2.4 aio_fsync F
GLIBC_2.4 aio_fsync64 F
GLIBC_2.4 aio_init F
+GLIBC_2.4 aio_read F
+GLIBC_2.4 aio_read64 F
GLIBC_2.4 alarm F
GLIBC_2.4 alphasort F
GLIBC_2.4 alphasort64 F
diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
index 14a2ef9d59..1b717f254d 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.4 aio_read F
-GLIBC_2.4 aio_read64 F
GLIBC_2.4 aio_return F
GLIBC_2.4 aio_return64 F
GLIBC_2.4 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 221549e103..3dcecd838b 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -204,6 +204,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
@@ -914,6 +916,8 @@ GLIBC_2.4 aio_error64 F
GLIBC_2.4 aio_fsync F
GLIBC_2.4 aio_fsync64 F
GLIBC_2.4 aio_init F
+GLIBC_2.4 aio_read F
+GLIBC_2.4 aio_read64 F
GLIBC_2.4 alarm F
GLIBC_2.4 alphasort F
GLIBC_2.4 alphasort64 F
diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
index 14a2ef9d59..1b717f254d 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.4 aio_read F
-GLIBC_2.4 aio_read64 F
GLIBC_2.4 aio_return F
GLIBC_2.4 aio_return64 F
GLIBC_2.4 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index cb8da82bfd..b8bd7d5fa1 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -571,6 +571,8 @@ GLIBC_2.29 aio_error64 F
GLIBC_2.29 aio_fsync F
GLIBC_2.29 aio_fsync64 F
GLIBC_2.29 aio_init F
+GLIBC_2.29 aio_read F
+GLIBC_2.29 aio_read64 F
GLIBC_2.29 alarm F
GLIBC_2.29 aligned_alloc F
GLIBC_2.29 alphasort F
@@ -2303,6 +2305,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
index 17ca6c5342..457f9debe6 100644
--- a/sysdeps/unix/sysv/linux/csky/librt.abilist
+++ b/sysdeps/unix/sysv/linux/csky/librt.abilist
@@ -1,6 +1,4 @@
GLIBC_2.29 __mq_open_2 F
-GLIBC_2.29 aio_read F
-GLIBC_2.29 aio_read64 F
GLIBC_2.29 aio_return F
GLIBC_2.29 aio_return64 F
GLIBC_2.29 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 424d496daa..c740a0dbf0 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -10,6 +10,8 @@ GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
+GLIBC_2.1 aio_read F
+GLIBC_2.1 aio_read64 F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.10 __cxa_at_quick_exit F
@@ -2257,6 +2259,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
index 57ff2fb6b5..decc08762e 100644
--- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.1 aio_read F
-GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
GLIBC_2.1 aio_return64 F
GLIBC_2.1 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index a740412d24..6f55f0cf86 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -1482,6 +1482,8 @@ GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
+GLIBC_2.1 aio_read F
+GLIBC_2.1 aio_read64 F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
GLIBC_2.1 argp_error F
@@ -2441,6 +2443,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
index 57ff2fb6b5..decc08762e 100644
--- a/sysdeps/unix/sysv/linux/i386/librt.abilist
+++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.1 aio_read F
-GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
GLIBC_2.1 aio_return64 F
GLIBC_2.1 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index c38e449fed..56b02ca57f 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -10,6 +10,8 @@ GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
+GLIBC_2.1 aio_read F
+GLIBC_2.1 aio_read64 F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.10 __cxa_at_quick_exit F
@@ -2293,6 +2295,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
index 38dd6dfb53..152692a5a6 100644
--- a/sysdeps/unix/sysv/linux/ia64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.1 aio_read F
-GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
GLIBC_2.1 aio_return64 F
GLIBC_2.1 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index ba5c89d5a0..b2d37e273e 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -208,6 +208,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
@@ -905,6 +907,8 @@ GLIBC_2.4 aio_error64 F
GLIBC_2.4 aio_fsync F
GLIBC_2.4 aio_fsync64 F
GLIBC_2.4 aio_init F
+GLIBC_2.4 aio_read F
+GLIBC_2.4 aio_read64 F
GLIBC_2.4 alarm F
GLIBC_2.4 alphasort F
GLIBC_2.4 alphasort64 F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
index 14a2ef9d59..1b717f254d 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.4 aio_read F
-GLIBC_2.4 aio_read64 F
GLIBC_2.4 aio_return F
GLIBC_2.4 aio_return64 F
GLIBC_2.4 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 941c3acd5e..fe3b59b149 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -1480,6 +1480,8 @@ GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
+GLIBC_2.1 aio_read F
+GLIBC_2.1 aio_read64 F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
GLIBC_2.1 argp_error F
@@ -2384,6 +2386,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
index 57ff2fb6b5..decc08762e 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.1 aio_read F
-GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
GLIBC_2.1 aio_return64 F
GLIBC_2.1 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 92221a8a6a..900a746b57 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -598,6 +598,8 @@ GLIBC_2.18 aio_error64 F
GLIBC_2.18 aio_fsync F
GLIBC_2.18 aio_fsync64 F
GLIBC_2.18 aio_init F
+GLIBC_2.18 aio_read F
+GLIBC_2.18 aio_read64 F
GLIBC_2.18 alarm F
GLIBC_2.18 aligned_alloc F
GLIBC_2.18 alphasort F
@@ -2354,6 +2356,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
index 391cc68456..6f0c3e8d85 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
@@ -1,6 +1,4 @@
GLIBC_2.18 __mq_open_2 F
-GLIBC_2.18 aio_read F
-GLIBC_2.18 aio_read64 F
GLIBC_2.18 aio_return F
GLIBC_2.18 aio_return64 F
GLIBC_2.18 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 4452e387f8..e71ea0c415 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -598,6 +598,8 @@ GLIBC_2.18 aio_error64 F
GLIBC_2.18 aio_fsync F
GLIBC_2.18 aio_fsync64 F
GLIBC_2.18 aio_init F
+GLIBC_2.18 aio_read F
+GLIBC_2.18 aio_read64 F
GLIBC_2.18 alarm F
GLIBC_2.18 aligned_alloc F
GLIBC_2.18 alphasort F
@@ -2351,6 +2353,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
index 391cc68456..6f0c3e8d85 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
@@ -1,6 +1,4 @@
GLIBC_2.18 __mq_open_2 F
-GLIBC_2.18 aio_read F
-GLIBC_2.18 aio_read64 F
GLIBC_2.18 aio_return F
GLIBC_2.18 aio_return64 F
GLIBC_2.18 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 1ee605dd66..f611855cbc 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -1658,6 +1658,8 @@ GLIBC_2.2 aio_error64 F
GLIBC_2.2 aio_fsync F
GLIBC_2.2 aio_fsync64 F
GLIBC_2.2 aio_init F
+GLIBC_2.2 aio_read F
+GLIBC_2.2 aio_read64 F
GLIBC_2.2 alphasort64 F
GLIBC_2.2 argp_err_exit_status D 0x4
GLIBC_2.2 argp_error F
@@ -2349,6 +2351,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
index 848a39faae..6c94c34024 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.2 aio_read F
-GLIBC_2.2 aio_read64 F
GLIBC_2.2 aio_return F
GLIBC_2.2 aio_return64 F
GLIBC_2.2 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 99e171def4..a6e671f1a9 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -1656,6 +1656,8 @@ GLIBC_2.2 aio_error64 F
GLIBC_2.2 aio_fsync F
GLIBC_2.2 aio_fsync64 F
GLIBC_2.2 aio_init F
+GLIBC_2.2 aio_read F
+GLIBC_2.2 aio_read64 F
GLIBC_2.2 alphasort64 F
GLIBC_2.2 argp_err_exit_status D 0x4
GLIBC_2.2 argp_error F
@@ -2347,6 +2349,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
index 848a39faae..6c94c34024 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.2 aio_read F
-GLIBC_2.2 aio_read64 F
GLIBC_2.2 aio_return F
GLIBC_2.2 aio_return64 F
GLIBC_2.2 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 79b7a173a4..9ee47a0326 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -1657,6 +1657,8 @@ GLIBC_2.2 aio_error64 F
GLIBC_2.2 aio_fsync F
GLIBC_2.2 aio_fsync64 F
GLIBC_2.2 aio_init F
+GLIBC_2.2 aio_read F
+GLIBC_2.2 aio_read64 F
GLIBC_2.2 alphasort64 F
GLIBC_2.2 argp_err_exit_status D 0x4
GLIBC_2.2 argp_error F
@@ -2355,6 +2357,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 6132f8ec4c..9b6472a730 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -1653,6 +1653,8 @@ GLIBC_2.2 aio_error64 F
GLIBC_2.2 aio_fsync F
GLIBC_2.2 aio_fsync64 F
GLIBC_2.2 aio_init F
+GLIBC_2.2 aio_read F
+GLIBC_2.2 aio_read64 F
GLIBC_2.2 alphasort64 F
GLIBC_2.2 argp_err_exit_status D 0x4
GLIBC_2.2 argp_error F
@@ -2349,6 +2351,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index ad3f2d37c9..4a1dc57844 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -640,6 +640,8 @@ GLIBC_2.21 aio_error64 F
GLIBC_2.21 aio_fsync F
GLIBC_2.21 aio_fsync64 F
GLIBC_2.21 aio_init F
+GLIBC_2.21 aio_read F
+GLIBC_2.21 aio_read64 F
GLIBC_2.21 alarm F
GLIBC_2.21 aligned_alloc F
GLIBC_2.21 alphasort F
@@ -2393,6 +2395,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
index e38236b56c..e56abf0e35 100644
--- a/sysdeps/unix/sysv/linux/nios2/librt.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/librt.abilist
@@ -1,6 +1,4 @@
GLIBC_2.21 __mq_open_2 F
-GLIBC_2.21 aio_read F
-GLIBC_2.21 aio_read64 F
GLIBC_2.21 aio_return F
GLIBC_2.21 aio_return64 F
GLIBC_2.21 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index fc8351ee69..71483dab4c 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -1487,6 +1487,8 @@ GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
+GLIBC_2.1 aio_read F
+GLIBC_2.1 aio_read64 F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
GLIBC_2.1 argp_error F
@@ -2411,6 +2413,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
index 57ff2fb6b5..decc08762e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.1 aio_read F
-GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
GLIBC_2.1 aio_return64 F
GLIBC_2.1 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index f07cdf4d36..783a066f16 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -1487,6 +1487,8 @@ GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
+GLIBC_2.1 aio_read F
+GLIBC_2.1 aio_read64 F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
GLIBC_2.1 argp_error F
@@ -2444,6 +2446,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 9bae232cc5..4dc88f7a12 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -640,6 +640,8 @@ GLIBC_2.3 aio_error64 F
GLIBC_2.3 aio_fsync F
GLIBC_2.3 aio_fsync64 F
GLIBC_2.3 aio_init F
+GLIBC_2.3 aio_read F
+GLIBC_2.3 aio_read64 F
GLIBC_2.3 alarm F
GLIBC_2.3 alphasort F
GLIBC_2.3 alphasort64 F
@@ -2257,6 +2259,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
index 951344a6ef..d0ddb7852e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.3 aio_read F
-GLIBC_2.3 aio_read64 F
GLIBC_2.3 aio_return F
GLIBC_2.3 aio_return64 F
GLIBC_2.3 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 5f82539e80..1a0c35ec91 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -684,6 +684,8 @@ GLIBC_2.17 aio_error64 F
GLIBC_2.17 aio_fsync F
GLIBC_2.17 aio_fsync64 F
GLIBC_2.17 aio_init F
+GLIBC_2.17 aio_read F
+GLIBC_2.17 aio_read64 F
GLIBC_2.17 alarm F
GLIBC_2.17 aligned_alloc F
GLIBC_2.17 alphasort F
@@ -2556,6 +2558,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
index 1519e07346..58a853230e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
@@ -1,6 +1,4 @@
GLIBC_2.17 __mq_open_2 F
-GLIBC_2.17 aio_read F
-GLIBC_2.17 aio_read64 F
GLIBC_2.17 aio_return F
GLIBC_2.17 aio_return64 F
GLIBC_2.17 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 4a3e053a61..14826bd89d 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -551,6 +551,8 @@ GLIBC_2.33 aio_error64 F
GLIBC_2.33 aio_fsync F
GLIBC_2.33 aio_fsync64 F
GLIBC_2.33 aio_init F
+GLIBC_2.33 aio_read F
+GLIBC_2.33 aio_read64 F
GLIBC_2.33 alarm F
GLIBC_2.33 aligned_alloc F
GLIBC_2.33 alphasort F
@@ -2121,6 +2123,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
index 8e30efa6a1..8e15ebe652 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
@@ -1,6 +1,4 @@
GLIBC_2.33 __mq_open_2 F
-GLIBC_2.33 aio_read F
-GLIBC_2.33 aio_read64 F
GLIBC_2.33 aio_return F
GLIBC_2.33 aio_return64 F
GLIBC_2.33 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index b1691a2db6..ccc5710cf0 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -577,6 +577,8 @@ GLIBC_2.27 aio_error64 F
GLIBC_2.27 aio_fsync F
GLIBC_2.27 aio_fsync64 F
GLIBC_2.27 aio_init F
+GLIBC_2.27 aio_read F
+GLIBC_2.27 aio_read64 F
GLIBC_2.27 alarm F
GLIBC_2.27 aligned_alloc F
GLIBC_2.27 alphasort F
@@ -2321,6 +2323,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
index 7145c7d249..fe48c3cfea 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
@@ -1,6 +1,4 @@
GLIBC_2.27 __mq_open_2 F
-GLIBC_2.27 aio_read F
-GLIBC_2.27 aio_read64 F
GLIBC_2.27 aio_return F
GLIBC_2.27 aio_return64 F
GLIBC_2.27 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 2a63ac491c..0ef5c9f63d 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -1479,6 +1479,8 @@ GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
+GLIBC_2.1 aio_read F
+GLIBC_2.1 aio_read64 F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
GLIBC_2.1 argp_error F
@@ -2409,6 +2411,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
index 57ff2fb6b5..decc08762e 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.1 aio_read F
-GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
GLIBC_2.1 aio_return64 F
GLIBC_2.1 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index ac68fb5c62..f8a810b521 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -577,6 +577,8 @@ GLIBC_2.2 aio_error64 F
GLIBC_2.2 aio_fsync F
GLIBC_2.2 aio_fsync64 F
GLIBC_2.2 aio_init F
+GLIBC_2.2 aio_read F
+GLIBC_2.2 aio_read64 F
GLIBC_2.2 alarm F
GLIBC_2.2 alphasort F
GLIBC_2.2 alphasort64 F
@@ -2294,6 +2296,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
index 0396a04bd2..a65683ca9d 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.2 aio_read F
-GLIBC_2.2 aio_read64 F
GLIBC_2.2 aio_return F
GLIBC_2.2 aio_return64 F
GLIBC_2.2 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index c7e721edab..205086b90f 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -14,6 +14,8 @@ GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
+GLIBC_2.1 aio_read F
+GLIBC_2.1 aio_read64 F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.10 __cxa_at_quick_exit F
@@ -2264,6 +2266,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
index 57ff2fb6b5..decc08762e 100644
--- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.1 aio_read F
-GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
GLIBC_2.1 aio_return64 F
GLIBC_2.1 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index f919d8b939..816bd19400 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -14,6 +14,8 @@ GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
+GLIBC_2.1 aio_read F
+GLIBC_2.1 aio_read64 F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.10 __cxa_at_quick_exit F
@@ -2261,6 +2263,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
index 57ff2fb6b5..decc08762e 100644
--- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.1 aio_read F
-GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
GLIBC_2.1 aio_return64 F
GLIBC_2.1 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 64fb6aaa88..d74b04d5b5 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -1481,6 +1481,8 @@ GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
+GLIBC_2.1 aio_read F
+GLIBC_2.1 aio_read64 F
GLIBC_2.1 alphasort64 F
GLIBC_2.1 argp_err_exit_status D 0x4
GLIBC_2.1 argp_error F
@@ -2404,6 +2406,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
index 1bb92a6ad8..8e45a7572e 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.1 aio_read F
-GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
GLIBC_2.1 aio_return64 F
GLIBC_2.1 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index e5002c509e..273635024f 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -14,6 +14,8 @@ GLIBC_2.1 aio_error64 F
GLIBC_2.1 aio_fsync F
GLIBC_2.1 aio_fsync64 F
GLIBC_2.1 aio_init F
+GLIBC_2.1 aio_read F
+GLIBC_2.1 aio_read64 F
GLIBC_2.1 dlopen F
GLIBC_2.1 dlvsym F
GLIBC_2.10 __cxa_at_quick_exit F
@@ -2316,6 +2318,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
index f4dd36f97b..2afa483191 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.1 aio_read F
-GLIBC_2.1 aio_read64 F
GLIBC_2.1 aio_return F
GLIBC_2.1 aio_return64 F
GLIBC_2.1 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/wordsize-64/aio_read.c b/sysdeps/unix/sysv/linux/wordsize-64/aio_read.c
deleted file mode 100644
index 8310b484d0..0000000000
--- a/sysdeps/unix/sysv/linux/wordsize-64/aio_read.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#define aio_read64 __renamed_aio_read64
-
-#include <rt/aio_read.c>
-
-#undef aio_read64
-
-weak_alias (aio_read, aio_read64)
diff --git a/sysdeps/unix/sysv/linux/wordsize-64/aio_read64.c b/sysdeps/unix/sysv/linux/wordsize-64/aio_read64.c
deleted file mode 100644
index 6a6a102c8d..0000000000
--- a/sysdeps/unix/sysv/linux/wordsize-64/aio_read64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* Defined in aio_read.c. */
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 98f8000a05..bb3779c66a 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -566,6 +566,8 @@ GLIBC_2.2.5 aio_error64 F
GLIBC_2.2.5 aio_fsync F
GLIBC_2.2.5 aio_fsync64 F
GLIBC_2.2.5 aio_init F
+GLIBC_2.2.5 aio_read F
+GLIBC_2.2.5 aio_read64 F
GLIBC_2.2.5 alarm F
GLIBC_2.2.5 alphasort F
GLIBC_2.2.5 alphasort64 F
@@ -2272,6 +2274,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
index f1cce35e0a..e9d2aeb05b 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.2.5 aio_read F
-GLIBC_2.2.5 aio_read64 F
GLIBC_2.2.5 aio_return F
GLIBC_2.2.5 aio_return64 F
GLIBC_2.2.5 aio_suspend F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index cd1d4aeb88..6cec697516 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -599,6 +599,8 @@ GLIBC_2.16 aio_error64 F
GLIBC_2.16 aio_fsync F
GLIBC_2.16 aio_fsync64 F
GLIBC_2.16 aio_init F
+GLIBC_2.16 aio_read F
+GLIBC_2.16 aio_read64 F
GLIBC_2.16 alarm F
GLIBC_2.16 aligned_alloc F
GLIBC_2.16 alphasort F
@@ -2375,6 +2377,8 @@ GLIBC_2.34 aio_error64 F
GLIBC_2.34 aio_fsync F
GLIBC_2.34 aio_fsync64 F
GLIBC_2.34 aio_init F
+GLIBC_2.34 aio_read F
+GLIBC_2.34 aio_read64 F
GLIBC_2.34 call_once F
GLIBC_2.34 cnd_broadcast F
GLIBC_2.34 cnd_destroy F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
index acaa63d92f..bbd0f42caa 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
@@ -1,6 +1,4 @@
GLIBC_2.16 __mq_open_2 F
-GLIBC_2.16 aio_read F
-GLIBC_2.16 aio_read64 F
GLIBC_2.16 aio_return F
GLIBC_2.16 aio_return64 F
GLIBC_2.16 aio_suspend F
--
2.31.1
^ permalink raw reply [flat|nested] 45+ messages in thread
* [PATCH 16/35] Linux: Move aio_return, aio_return64 into libc
2021-06-03 23:14 [PATCH 00/35] Linux: Move librt into libc Florian Weimer
` (14 preceding siblings ...)
2021-06-03 23:16 ` [PATCH 15/35] Linux: Move aio_read, aio_read64 " Florian Weimer
@ 2021-06-03 23:16 ` Florian Weimer
2021-06-03 23:16 ` [PATCH 17/35] Linux: Move aio_suspend, aio_suspend64 from librt to libc Florian Weimer
` (19 subsequent siblings)
35 siblings, 0 replies; 45+ messages in thread
From: Florian Weimer @ 2021-06-03 23:16 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 ++++
sysdeps/unix/sysv/linux/mips/mips64/librt.abilist | 2 --
.../unix/sysv/linux/mips/mips64/n32/libc.abilist | 4 ++++
.../unix/sysv/linux/mips/mips64/n64/libc.abilist | 4 ++++
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 --
64 files changed, 147 insertions(+), 62 deletions(-)
diff --git a/rt/Makefile b/rt/Makefile
index 9372fbc100..da8c380f6a 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 eaf9b0976f..8edf21ded7 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
@@ -2364,6 +2366,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 3284cc7f34..9a9ce357e1 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
@@ -2459,6 +2461,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 8577b14ad3..79e9b9268e 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
@@ -2123,6 +2125,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 625ee667e3..145c21ba78 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -209,6 +209,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
@@ -921,6 +923,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 1b717f254d..a6bb9af91a 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.4 aio_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 3dcecd838b..d291fa6f22 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -206,6 +206,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
@@ -918,6 +920,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 1b717f254d..a6bb9af91a 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.4 aio_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 b8bd7d5fa1..f78a9600da 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
@@ -2307,6 +2309,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 457f9debe6..56820c51ce 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 c740a0dbf0..81f98766c5 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
@@ -2261,6 +2263,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 decc08762e..af67fafe9b 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 6f55f0cf86..122b0367fa 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
@@ -2445,6 +2447,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 decc08762e..af67fafe9b 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 56b02ca57f..d1f2dd29be 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
@@ -2297,6 +2299,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 b2d37e273e..cf2b31e55c 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -210,6 +210,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
@@ -909,6 +911,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 1b717f254d..a6bb9af91a 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.4 aio_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 fe3b59b149..d81f39b4fa 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
@@ -2388,6 +2390,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 decc08762e..af67fafe9b 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 900a746b57..e2ebe74ea3 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
@@ -2358,6 +2360,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 6f0c3e8d85..f78336c1fa 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 e71ea0c415..07afe2ffc6 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
@@ -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/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
index 6f0c3e8d85..f78336c1fa 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 f611855cbc..adacc7fc59 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
@@ -2353,6 +2355,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 6c94c34024..293b92eaec 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 a6e671f1a9..adf9f5a761 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
@@ -2351,6 +2353,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/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
index 6c94c34024..293b92eaec 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.2 aio_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/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 9ee47a0326..c66bd5e186 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
@@ -2359,6 +2361,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/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 9b6472a730..920cb20b32 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
@@ -2353,6 +2355,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/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 4a1dc57844..ec95695394 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
@@ -2397,6 +2399,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 e56abf0e35..ddbdd5e7d8 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 71483dab4c..073ba747b2 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
@@ -2415,6 +2417,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 decc08762e..af67fafe9b 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 783a066f16..b08dae1606 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
@@ -2448,6 +2450,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 4dc88f7a12..1a03002c00 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
@@ -2261,6 +2263,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 1a0c35ec91..8402c23940 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
@@ -2560,6 +2562,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 14826bd89d..476f40cebb 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
@@ -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/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 ccc5710cf0..b2726977bc 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
@@ -2325,6 +2327,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 0ef5c9f63d..81cbe208a5 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
@@ -2413,6 +2415,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 decc08762e..af67fafe9b 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 f8a810b521..6db461e329 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
@@ -2298,6 +2300,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 205086b90f..976b90e77f 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
@@ -2268,6 +2270,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 decc08762e..af67fafe9b 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 816bd19400..a05abc6949 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
@@ -2265,6 +2267,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 decc08762e..af67fafe9b 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 d74b04d5b5..e3265c1106 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
@@ -2408,6 +2410,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 8e45a7572e..0c25f4ea3d 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 273635024f..e2de386040 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
@@ -2320,6 +2322,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 bb3779c66a..423a028d24 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
@@ -2276,6 +2278,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 6cec697516..dd956a41b4 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
@@ -2379,6 +2381,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] 45+ messages in thread
* [PATCH 17/35] Linux: Move aio_suspend, aio_suspend64 from librt to libc
2021-06-03 23:14 [PATCH 00/35] Linux: Move librt into libc Florian Weimer
` (15 preceding siblings ...)
2021-06-03 23:16 ` [PATCH 16/35] Linux: Move aio_return, aio_return64 " Florian Weimer
@ 2021-06-03 23:16 ` Florian Weimer
2021-06-03 23:16 ` [PATCH 18/35] Linux: Move aio_write, aio_write64 into libc Florian Weimer
` (18 subsequent siblings)
35 siblings, 0 replies; 45+ messages in thread
From: Florian Weimer @ 2021-06-03 23:16 UTC (permalink / raw)
To: libc-alpha
The symbols were moved using scripts/move-symbol-to-libc.py.
---
include/aio.h | 4 ++
rt/Makefile | 2 +-
rt/Versions | 6 ++-
rt/aio_suspend.c | 49 +++++++++++++++----
sysdeps/unix/sysv/linux/aarch64/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/aarch64/librt.abilist | 2 -
sysdeps/unix/sysv/linux/alpha/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/alpha/librt.abilist | 2 -
sysdeps/unix/sysv/linux/arc/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/arc/librt.abilist | 2 -
sysdeps/unix/sysv/linux/arm/be/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/arm/be/librt.abilist | 2 -
sysdeps/unix/sysv/linux/arm/le/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/arm/le/librt.abilist | 2 -
sysdeps/unix/sysv/linux/csky/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/csky/librt.abilist | 2 -
sysdeps/unix/sysv/linux/hppa/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/hppa/librt.abilist | 2 -
sysdeps/unix/sysv/linux/i386/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/i386/librt.abilist | 2 -
sysdeps/unix/sysv/linux/ia64/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/ia64/librt.abilist | 2 -
.../sysv/linux/m68k/coldfire/libc.abilist | 4 ++
.../sysv/linux/m68k/coldfire/librt.abilist | 2 -
.../unix/sysv/linux/m68k/m680x0/libc.abilist | 4 ++
.../unix/sysv/linux/m68k/m680x0/librt.abilist | 2 -
.../sysv/linux/microblaze/be/libc.abilist | 4 ++
.../sysv/linux/microblaze/be/librt.abilist | 2 -
.../sysv/linux/microblaze/le/libc.abilist | 4 ++
.../sysv/linux/microblaze/le/librt.abilist | 2 -
.../sysv/linux/mips/mips32/fpu/libc.abilist | 4 ++
.../unix/sysv/linux/mips/mips32/librt.abilist | 2 -
.../sysv/linux/mips/mips32/nofpu/libc.abilist | 4 ++
.../unix/sysv/linux/mips/mips64/librt.abilist | 2 -
.../sysv/linux/mips/mips64/n32/libc.abilist | 4 ++
.../sysv/linux/mips/mips64/n64/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/nios2/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/nios2/librt.abilist | 2 -
.../linux/powerpc/powerpc32/fpu/libc.abilist | 4 ++
.../linux/powerpc/powerpc32/librt.abilist | 2 -
.../powerpc/powerpc32/nofpu/libc.abilist | 4 ++
.../linux/powerpc/powerpc64/be/libc.abilist | 4 ++
.../linux/powerpc/powerpc64/be/librt.abilist | 2 -
.../linux/powerpc/powerpc64/le/libc.abilist | 4 ++
.../linux/powerpc/powerpc64/le/librt.abilist | 2 -
.../unix/sysv/linux/riscv/rv32/libc.abilist | 4 ++
.../unix/sysv/linux/riscv/rv32/librt.abilist | 2 -
.../unix/sysv/linux/riscv/rv64/libc.abilist | 4 ++
.../unix/sysv/linux/riscv/rv64/librt.abilist | 2 -
.../unix/sysv/linux/s390/s390-32/libc.abilist | 4 ++
.../sysv/linux/s390/s390-32/librt.abilist | 2 -
.../unix/sysv/linux/s390/s390-64/libc.abilist | 4 ++
.../sysv/linux/s390/s390-64/librt.abilist | 2 -
sysdeps/unix/sysv/linux/sh/be/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/sh/be/librt.abilist | 2 -
sysdeps/unix/sysv/linux/sh/le/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/sh/le/librt.abilist | 2 -
.../sysv/linux/sparc/sparc32/libc.abilist | 4 ++
.../sysv/linux/sparc/sparc32/librt.abilist | 2 -
.../sysv/linux/sparc/sparc64/libc.abilist | 4 ++
.../sysv/linux/sparc/sparc64/librt.abilist | 2 -
.../unix/sysv/linux/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, 177 insertions(+), 70 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 da8c380f6a..40159e6659 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..906613a709 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 /* __TIMESPEC64 != 64 */
+# if PTHREAD_IN_LIBC
+libc_hidden_ver (___aio_suspend_time64, __aio_suspend_time64)
+# else
+librt_hidden_ver (___aio_suspend_time64, __aio_suspend_time64)
+# endif
+# ifndef SHARED
+strong_alias (___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/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 8edf21ded7..8b32d969c2 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
@@ -2368,6 +2370,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 9a9ce357e1..6cdec57370 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
@@ -2463,6 +2465,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 79e9b9268e..480bfcb4d4 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
@@ -2127,6 +2129,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 145c21ba78..0ead74ac80 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -211,6 +211,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
@@ -925,6 +927,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 a6bb9af91a..72fdc18d83 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.4 aio_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 d291fa6f22..9ea02dccbc 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -208,6 +208,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
@@ -922,6 +924,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 a6bb9af91a..72fdc18d83 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.4 aio_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 f78a9600da..f2d1cef0d1 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
@@ -2311,6 +2313,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 56820c51ce..9cb53aecc9 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
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 81f98766c5..8d2f9be2e6 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
@@ -2265,6 +2267,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 af67fafe9b..f0d68d65d1 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
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 122b0367fa..915619ea46 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
@@ -2449,6 +2451,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 af67fafe9b..f0d68d65d1 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
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index d1f2dd29be..629c703539 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
@@ -2301,6 +2303,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 cf2b31e55c..1e5dbe3b82 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -212,6 +212,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
@@ -913,6 +915,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 a6bb9af91a..72fdc18d83 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.4 aio_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 d81f39b4fa..2f04dd9f9d 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
@@ -2392,6 +2394,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 af67fafe9b..f0d68d65d1 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
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index e2ebe74ea3..2206a5a019 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
@@ -2362,6 +2364,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 f78336c1fa..83f58c4466 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
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 07afe2ffc6..424aae99ab 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
@@ -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/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
index f78336c1fa..83f58c4466 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
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index adacc7fc59..9f806233ad 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
@@ -2357,6 +2359,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 293b92eaec..7d7be4d9ec 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
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index adf9f5a761..f42bea7f3f 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
@@ -2355,6 +2357,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/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
index 293b92eaec..7d7be4d9ec 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.2 aio_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/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index c66bd5e186..0b94c8807f 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
@@ -2363,6 +2365,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/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 920cb20b32..8250ec944c 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
@@ -2357,6 +2359,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/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index ec95695394..42d7e3f4d0 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
@@ -2401,6 +2403,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 ddbdd5e7d8..0c656d887e 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
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 073ba747b2..22b5da8a91 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
@@ -2419,6 +2421,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 af67fafe9b..f0d68d65d1 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
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index b08dae1606..9eb496335e 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
@@ -2452,6 +2454,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 1a03002c00..b74d9de03e 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
@@ -2265,6 +2267,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 8402c23940..00580a8d73 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
@@ -2564,6 +2566,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 476f40cebb..41a87fa8a3 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
@@ -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/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 b2726977bc..ae8203a8e3 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
@@ -2329,6 +2331,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 81cbe208a5..90a7d47f59 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
@@ -2417,6 +2419,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 af67fafe9b..f0d68d65d1 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
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 6db461e329..8f3feb4224 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
@@ -2302,6 +2304,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 976b90e77f..a4bd693268 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
@@ -2272,6 +2274,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 af67fafe9b..f0d68d65d1 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
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index a05abc6949..1150d1ee54 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
@@ -2269,6 +2271,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 af67fafe9b..f0d68d65d1 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
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index e3265c1106..8518f28688 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
@@ -2412,6 +2414,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 0c25f4ea3d..3436b1c79d 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
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index e2de386040..efe3b9dd47 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
@@ -2324,6 +2326,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 423a028d24..9c7ad981e1 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
@@ -2280,6 +2282,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 dd956a41b4..0e9278c659 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
@@ -2383,6 +2385,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] 45+ messages in thread
* [PATCH 18/35] Linux: Move aio_write, aio_write64 into libc
2021-06-03 23:14 [PATCH 00/35] Linux: Move librt into libc Florian Weimer
` (16 preceding siblings ...)
2021-06-03 23:16 ` [PATCH 17/35] Linux: Move aio_suspend, aio_suspend64 from librt to libc Florian Weimer
@ 2021-06-03 23:16 ` Florian Weimer
2021-06-03 23:16 ` [PATCH 19/35] rt: Rework lio_listio implementation Florian Weimer
` (17 subsequent siblings)
35 siblings, 0 replies; 45+ messages in thread
From: Florian Weimer @ 2021-06-03 23:16 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 ++
.../unix/sysv/linux/mips/mips64/librt.abilist | 2 -
.../sysv/linux/mips/mips64/n32/libc.abilist | 4 ++
.../sysv/linux/mips/mips64/n64/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/nios2/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/nios2/librt.abilist | 2 -
.../linux/powerpc/powerpc32/fpu/libc.abilist | 4 ++
.../linux/powerpc/powerpc32/librt.abilist | 2 -
.../powerpc/powerpc32/nofpu/libc.abilist | 4 ++
.../linux/powerpc/powerpc64/be/libc.abilist | 4 ++
.../linux/powerpc/powerpc64/be/librt.abilist | 2 -
.../linux/powerpc/powerpc64/le/libc.abilist | 4 ++
.../linux/powerpc/powerpc64/le/librt.abilist | 2 -
.../unix/sysv/linux/riscv/rv32/libc.abilist | 4 ++
.../unix/sysv/linux/riscv/rv32/librt.abilist | 2 -
.../unix/sysv/linux/riscv/rv64/libc.abilist | 4 ++
.../unix/sysv/linux/riscv/rv64/librt.abilist | 2 -
.../unix/sysv/linux/s390/s390-32/libc.abilist | 4 ++
.../sysv/linux/s390/s390-32/librt.abilist | 2 -
.../unix/sysv/linux/s390/s390-64/libc.abilist | 4 ++
.../sysv/linux/s390/s390-64/librt.abilist | 2 -
sysdeps/unix/sysv/linux/sh/be/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/sh/be/librt.abilist | 2 -
sysdeps/unix/sysv/linux/sh/le/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/sh/le/librt.abilist | 2 -
.../sysv/linux/sparc/sparc32/libc.abilist | 4 ++
.../sysv/linux/sparc/sparc32/librt.abilist | 2 -
.../sysv/linux/sparc/sparc64/libc.abilist | 4 ++
.../sysv/linux/sparc/sparc64/librt.abilist | 2 -
.../unix/sysv/linux/wordsize-64/aio_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 -
67 files changed, 186 insertions(+), 77 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 40159e6659..362ce31834 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 8b32d969c2..db6ba5f81c 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
@@ -2372,6 +2374,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 6cdec57370..03ff54e3ee 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
@@ -2467,6 +2469,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 480bfcb4d4..448ddee2a6 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
@@ -2131,6 +2133,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 0ead74ac80..e926eacc06 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -213,6 +213,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
@@ -929,6 +931,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 72fdc18d83..818fdf1797 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.4 aio_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 9ea02dccbc..857c1546ba 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -210,6 +210,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
@@ -926,6 +928,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 72fdc18d83..818fdf1797 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.4 aio_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 f2d1cef0d1..719441a127 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
@@ -2315,6 +2317,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 9cb53aecc9..4d00665a0c 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 8d2f9be2e6..39d391d78b 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
@@ -2269,6 +2271,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 f0d68d65d1..fa648b6ecf 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 915619ea46..ffe1befcd0 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
@@ -2453,6 +2455,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 f0d68d65d1..fa648b6ecf 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 629c703539..0a4c82d8b0 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
@@ -2305,6 +2307,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 1e5dbe3b82..b475cf1f35 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -214,6 +214,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
@@ -917,6 +919,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 72fdc18d83..818fdf1797 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.4 aio_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 2f04dd9f9d..d935d2024d 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
@@ -2396,6 +2398,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 f0d68d65d1..fa648b6ecf 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 2206a5a019..1ee908c1c7 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
@@ -2366,6 +2368,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 83f58c4466..fd29f320e6 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 424aae99ab..869264be57 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
@@ -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/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
index 83f58c4466..fd29f320e6 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 9f806233ad..82fc943f43 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
@@ -2361,6 +2363,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 7d7be4d9ec..f2cda0ef51 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 f42bea7f3f..b6bae3f9ae 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
@@ -2359,6 +2361,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/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
index 7d7be4d9ec..f2cda0ef51 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.2 aio_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/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 0b94c8807f..bd0d2d147b 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
@@ -2367,6 +2369,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/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 8250ec944c..edad39fe2d 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
@@ -2361,6 +2363,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/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 42d7e3f4d0..501e6cc216 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
@@ -2405,6 +2407,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 0c656d887e..6f34788abc 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 22b5da8a91..9daf696ceb 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
@@ -2423,6 +2425,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 f0d68d65d1..fa648b6ecf 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 9eb496335e..3a31b4b343 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
@@ -2456,6 +2458,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 b74d9de03e..877f9db62b 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
@@ -2269,6 +2271,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 00580a8d73..faabb1e79b 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
@@ -2568,6 +2570,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 41a87fa8a3..08c30656d9 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
@@ -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/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 ae8203a8e3..e89f358a2c 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
@@ -2333,6 +2335,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 90a7d47f59..2b5eff6fbf 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
@@ -2421,6 +2423,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 f0d68d65d1..fa648b6ecf 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 8f3feb4224..e84eb20c4f 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
@@ -2306,6 +2308,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 a4bd693268..0891906730 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
@@ -2276,6 +2278,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 f0d68d65d1..fa648b6ecf 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 1150d1ee54..b16fb34a1d 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
@@ -2273,6 +2275,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 f0d68d65d1..fa648b6ecf 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 8518f28688..ce74524b55 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
@@ -2416,6 +2418,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 3436b1c79d..659154799d 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 efe3b9dd47..80e82903d8 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
@@ -2328,6 +2330,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 9c7ad981e1..1f27b3dd10 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
@@ -2284,6 +2286,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 0e9278c659..4bf905845b 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
@@ -2387,6 +2389,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] 45+ messages in thread
* [PATCH 19/35] rt: Rework lio_listio implementation
2021-06-03 23:14 [PATCH 00/35] Linux: Move librt into libc Florian Weimer
` (17 preceding siblings ...)
2021-06-03 23:16 ` [PATCH 18/35] Linux: Move aio_write, aio_write64 into libc Florian Weimer
@ 2021-06-03 23:16 ` Florian Weimer
2021-06-03 23:16 ` [PATCH 20/35] Linux: Move lio_listio, lio_listio64 from librt to libc Florian Weimer
` (16 subsequent siblings)
35 siblings, 0 replies; 45+ messages in thread
From: Florian Weimer @ 2021-06-03 23:16 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] 45+ messages in thread
* [PATCH 20/35] Linux: Move lio_listio, lio_listio64 from librt to libc
2021-06-03 23:14 [PATCH 00/35] Linux: Move librt into libc Florian Weimer
` (18 preceding siblings ...)
2021-06-03 23:16 ` [PATCH 19/35] rt: Rework lio_listio implementation Florian Weimer
@ 2021-06-03 23:16 ` Florian Weimer
2021-06-03 23:16 ` [PATCH 21/35] Linux: Move mq_close " Florian Weimer
` (15 subsequent siblings)
35 siblings, 0 replies; 45+ messages in thread
From: Florian Weimer @ 2021-06-03 23:16 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 ++++
.../unix/sysv/linux/mips/mips64/librt.abilist | 5 +---
.../sysv/linux/mips/mips64/n32/libc.abilist | 6 ++++
.../sysv/linux/mips/mips64/n64/libc.abilist | 6 ++++
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 --
65 files changed, 247 insertions(+), 101 deletions(-)
diff --git a/rt/Makefile b/rt/Makefile
index 362ce31834..6229254f76 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 db6ba5f81c..e23cd193e1 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
@@ -2393,6 +2395,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 03ff54e3ee..8c7c3b52e2 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
@@ -2488,6 +2490,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
@@ -2773,6 +2777,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 448ddee2a6..137815f56d 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
@@ -2152,6 +2154,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 e926eacc06..4c9422464d 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -232,6 +232,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
@@ -1564,6 +1566,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 818fdf1797..6ccd6bbf6f 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.4 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 857c1546ba..eb6810600c 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -229,6 +229,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
@@ -1561,6 +1563,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 818fdf1797..6ccd6bbf6f 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.4 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 719441a127..f3ad5400b8 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
@@ -2336,6 +2338,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 4d00665a0c..0b883fb981 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 39d391d78b..49afe32f2a 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
@@ -2290,6 +2292,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
@@ -2466,6 +2470,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 fa648b6ecf..32beefa377 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
@@ -15,6 +14,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/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index ffe1befcd0..91ac83fb03 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
@@ -2474,6 +2476,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
@@ -2650,6 +2654,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 fa648b6ecf..32beefa377 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
@@ -15,6 +14,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/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 0a4c82d8b0..9dcbd5a3b2 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
@@ -2326,6 +2328,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
@@ -2502,6 +2506,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 b475cf1f35..ffdeb0f95a 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -233,6 +233,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
@@ -1548,6 +1550,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 818fdf1797..6ccd6bbf6f 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.4 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 d935d2024d..35e5487976 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
@@ -2417,6 +2419,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
@@ -2593,6 +2597,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 fa648b6ecf..32beefa377 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
@@ -15,6 +14,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/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 1ee908c1c7..225add14a2 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
@@ -2387,6 +2389,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 fd29f320e6..84fc5aa572 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 869264be57..90ee7f0620 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
@@ -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
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
index fd29f320e6..84fc5aa572 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 82fc943f43..43a8d84d75 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
@@ -2382,6 +2384,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
@@ -2556,6 +2560,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 f2cda0ef51..cb685723d6 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
@@ -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/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index b6bae3f9ae..b2f9e8336d 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
@@ -2380,6 +2382,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
@@ -2554,6 +2558,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/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
index f2cda0ef51..cb685723d6 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.2 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/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index bd0d2d147b..29676b339f 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
@@ -2388,6 +2390,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
@@ -2562,6 +2566,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/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index edad39fe2d..9b6f8879b0 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
@@ -2382,6 +2384,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
@@ -2556,6 +2560,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/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 501e6cc216..a9c98a973e 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
@@ -2426,6 +2428,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 6f34788abc..d67daa3f0f 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 9daf696ceb..be88d12aac 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
@@ -2444,6 +2446,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 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 fa648b6ecf..32beefa377 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
@@ -15,6 +14,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/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 3a31b4b343..d1dbb2f3ed 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
@@ -2477,6 +2479,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
@@ -2774,6 +2778,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 877f9db62b..cbca8335bd 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
@@ -2290,6 +2292,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
@@ -2575,6 +2579,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 faabb1e79b..20d106a01a 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
@@ -2589,6 +2591,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 08c30656d9..c891a47b22 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
@@ -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/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 e89f358a2c..c90a5e24e7 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
@@ -2354,6 +2356,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 2b5eff6fbf..b5ace97b06 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
@@ -2442,6 +2444,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
@@ -2727,6 +2731,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 fa648b6ecf..32beefa377 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
@@ -15,6 +14,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/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index e84eb20c4f..c113468de7 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
@@ -2327,6 +2329,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
@@ -2612,6 +2616,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 0891906730..2e96bf4ac4 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
@@ -2297,6 +2299,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
@@ -2473,6 +2477,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 fa648b6ecf..32beefa377 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
@@ -15,6 +14,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/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index b16fb34a1d..84366bcdf7 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
@@ -2294,6 +2296,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
@@ -2470,6 +2474,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 fa648b6ecf..32beefa377 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
@@ -15,6 +14,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/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index ce74524b55..0db72aa031 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
@@ -2437,6 +2439,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
@@ -2748,6 +2752,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 659154799d..c0184e3f5a 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
@@ -16,6 +15,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/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 80e82903d8..06f37cde44 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
@@ -2349,6 +2351,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
@@ -2525,6 +2529,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 1f27b3dd10..a938914044 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
@@ -2305,6 +2307,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
@@ -2481,6 +2485,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 4bf905845b..643c84336b 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
@@ -2408,6 +2410,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] 45+ messages in thread
* [PATCH 21/35] Linux: Move mq_close from librt to libc
2021-06-03 23:14 [PATCH 00/35] Linux: Move librt into libc Florian Weimer
` (19 preceding siblings ...)
2021-06-03 23:16 ` [PATCH 20/35] Linux: Move lio_listio, lio_listio64 from librt to libc Florian Weimer
@ 2021-06-03 23:16 ` Florian Weimer
2021-06-03 23:16 ` [PATCH 22/35] Linux: Move mq_setattr " Florian Weimer
` (14 subsequent siblings)
35 siblings, 0 replies; 45+ messages in thread
From: Florian Weimer @ 2021-06-03 23:16 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/librt.abilist | 1 -
sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist | 2 ++
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 -
64 files changed, 79 insertions(+), 31 deletions(-)
diff --git a/rt/Makefile b/rt/Makefile
index 6229254f76..6cf0c753e5 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 e23cd193e1..ebe826a72f 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
@@ -2397,6 +2398,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 8c7c3b52e2..f1e6362196 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
@@ -2492,6 +2493,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 137815f56d..0310b11697 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
@@ -2156,6 +2157,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 4c9422464d..574254fc32 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -234,6 +234,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
@@ -1647,6 +1648,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 6ccd6bbf6f..52097ef71e 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -1,4 +1,3 @@
-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 eb6810600c..b2b0dce8dc 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -231,6 +231,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
@@ -1644,6 +1645,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 6ccd6bbf6f..52097ef71e 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -1,4 +1,3 @@
-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 f3ad5400b8..18615c70fa 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
@@ -2340,6 +2341,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 0b883fb981..44bbcd92d2 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 49afe32f2a..f006462ffa 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
@@ -2294,6 +2295,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 32beefa377..b0fbc2a294 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 91ac83fb03..888de296f7 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
@@ -2478,6 +2479,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 32beefa377..b0fbc2a294 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 9dcbd5a3b2..be0140efb8 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
@@ -2330,6 +2331,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 ffdeb0f95a..89c2fe1fdb 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -235,6 +235,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
@@ -1631,6 +1632,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 6ccd6bbf6f..52097ef71e 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -1,4 +1,3 @@
-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 35e5487976..793e7fd467 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
@@ -2421,6 +2422,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 32beefa377..b0fbc2a294 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 225add14a2..f69321e254 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
@@ -2391,6 +2392,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 84fc5aa572..34f4d18f18 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 90ee7f0620..0cbc16c11a 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
@@ -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/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
index 84fc5aa572..34f4d18f18 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 43a8d84d75..5cd14de6d3 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
@@ -2386,6 +2387,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 cb685723d6..df7de1fd21 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 b2f9e8336d..31db916285 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
@@ -2384,6 +2385,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/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
index cb685723d6..df7de1fd21 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/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/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 29676b339f..99227a360f 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
@@ -2392,6 +2393,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/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 9b6f8879b0..7f378d4cb0 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
@@ -2386,6 +2387,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/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 a9c98a973e..7b98df7c56 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
@@ -2430,6 +2431,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 d67daa3f0f..0093c4a352 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 be88d12aac..0a03d5c56a 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
@@ -2448,6 +2449,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 32beefa377..b0fbc2a294 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 d1dbb2f3ed..24ed2eb836 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
@@ -2481,6 +2482,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 cbca8335bd..08da95d04f 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
@@ -2294,6 +2295,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 20d106a01a..fa9eff0d6f 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
@@ -2593,6 +2594,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 c891a47b22..34ee61172b 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
@@ -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/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 c90a5e24e7..5d320a747f 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
@@ -2358,6 +2359,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 b5ace97b06..0db60dab82 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
@@ -2446,6 +2447,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 32beefa377..b0fbc2a294 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 c113468de7..ec26c28f5f 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
@@ -2331,6 +2332,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 2e96bf4ac4..277261820b 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
@@ -2301,6 +2302,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 32beefa377..b0fbc2a294 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 84366bcdf7..5399cd5e3d 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
@@ -2298,6 +2299,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 32beefa377..b0fbc2a294 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 0db72aa031..13a750d4f2 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
@@ -2441,6 +2442,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 c0184e3f5a..9633980206 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 06f37cde44..f5b2861596 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
@@ -2353,6 +2354,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 a938914044..0dbc0cb1a2 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
@@ -2309,6 +2310,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 643c84336b..d1a3e6ca22 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
@@ -2412,6 +2413,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] 45+ messages in thread
* [PATCH 22/35] Linux: Move mq_setattr from librt to libc
2021-06-03 23:14 [PATCH 00/35] Linux: Move librt into libc Florian Weimer
` (20 preceding siblings ...)
2021-06-03 23:16 ` [PATCH 21/35] Linux: Move mq_close " Florian Weimer
@ 2021-06-03 23:16 ` Florian Weimer
2021-06-03 23:16 ` [PATCH 23/35] Linux: Move mq_getattr " Florian Weimer
` (13 subsequent siblings)
35 siblings, 0 replies; 45+ messages in thread
From: Florian Weimer @ 2021-06-03 23:16 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 ++
.../unix/sysv/linux/mips/mips64/librt.abilist | 1 -
.../sysv/linux/mips/mips64/n32/libc.abilist | 2 ++
.../sysv/linux/mips/mips64/n64/libc.abilist | 2 ++
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 -
66 files changed, 108 insertions(+), 33 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 6cf0c753e5..629d0855db 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 ebe826a72f..fa9c7c62a1 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
@@ -2399,6 +2400,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 f1e6362196..efc4511be9 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
@@ -2494,6 +2495,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 0310b11697..fd71e6e37a 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
@@ -2158,6 +2159,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 574254fc32..324c9a87b7 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -235,6 +235,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
@@ -1649,6 +1650,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 52097ef71e..ff9140c24f 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -3,7 +3,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 b2b0dce8dc..9bb9303b28 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -232,6 +232,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
@@ -1646,6 +1647,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 52097ef71e..ff9140c24f 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -3,7 +3,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 18615c70fa..a5b523b9f0 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
@@ -2342,6 +2343,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 44bbcd92d2..76ff130d09 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 f006462ffa..0716b8850a 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
@@ -2296,6 +2297,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 b0fbc2a294..798e4488c8 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 888de296f7..bbc5b694f3 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
@@ -2480,6 +2481,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 b0fbc2a294..798e4488c8 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 be0140efb8..4442c7901d 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
@@ -2332,6 +2333,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 89c2fe1fdb..02e9ce73ac 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -236,6 +236,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
@@ -1633,6 +1634,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 52097ef71e..ff9140c24f 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -3,7 +3,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 793e7fd467..ccb77676a0 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
@@ -2423,6 +2424,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 b0fbc2a294..798e4488c8 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 f69321e254..6b64225a65 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
@@ -2393,6 +2394,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 34f4d18f18..128059b053 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 0cbc16c11a..5865b804cf 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
@@ -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/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
index 34f4d18f18..128059b053 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 5cd14de6d3..bcaf07ac85 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
@@ -2388,6 +2389,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 df7de1fd21..6957efa4dd 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 31db916285..9a13848933 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
@@ -2386,6 +2387,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/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
index df7de1fd21..6957efa4dd 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/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/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 99227a360f..a9e4f98a20 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
@@ -2394,6 +2395,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/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 7f378d4cb0..9cee9e6383 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
@@ -2388,6 +2389,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/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 7b98df7c56..5c7f6118c5 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
@@ -2432,6 +2433,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 0093c4a352..3f9b40a1a2 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 0a03d5c56a..bd4cabfa1a 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
@@ -2450,6 +2451,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 b0fbc2a294..798e4488c8 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 24ed2eb836..6af1a56f74 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
@@ -2483,6 +2484,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 08da95d04f..eac3865fd3 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
@@ -2296,6 +2297,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 fa9eff0d6f..3c432f1ffe 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
@@ -2595,6 +2596,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 34ee61172b..21a8aae119 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
@@ -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/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 5d320a747f..a49a7fbb76 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
@@ -2360,6 +2361,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 0db60dab82..4260925e51 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
@@ -2448,6 +2449,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 b0fbc2a294..798e4488c8 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 ec26c28f5f..dbffb9d2ac 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
@@ -2333,6 +2334,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 277261820b..ba278810ee 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
@@ -2303,6 +2304,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 b0fbc2a294..798e4488c8 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 5399cd5e3d..c0ba685cb8 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
@@ -2300,6 +2301,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 b0fbc2a294..798e4488c8 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 13a750d4f2..6f8af4233f 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
@@ -2443,6 +2444,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 9633980206..2668338eb0 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 f5b2861596..48e113a3d1 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
@@ -2355,6 +2356,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 0dbc0cb1a2..ec030e244a 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
@@ -2311,6 +2312,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 d1a3e6ca22..4a7630d3e8 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
@@ -2414,6 +2415,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] 45+ messages in thread
* [PATCH 23/35] Linux: Move mq_getattr from librt to libc
2021-06-03 23:14 [PATCH 00/35] Linux: Move librt into libc Florian Weimer
` (21 preceding siblings ...)
2021-06-03 23:16 ` [PATCH 22/35] Linux: Move mq_setattr " Florian Weimer
@ 2021-06-03 23:16 ` Florian Weimer
2021-06-03 23:16 ` [PATCH 24/35] Linux: Move mq_notify " Florian Weimer
` (12 subsequent siblings)
35 siblings, 0 replies; 45+ messages in thread
From: Florian Weimer @ 2021-06-03 23:16 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/librt.abilist | 1 -
sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist | 2 ++
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 -
64 files changed, 75 insertions(+), 32 deletions(-)
diff --git a/rt/Makefile b/rt/Makefile
index 629d0855db..a1d5661216 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 fa9c7c62a1..e192480e09 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
@@ -2400,6 +2401,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 efc4511be9..d937d5b1f8 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
@@ -2495,6 +2496,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 fd71e6e37a..31f687ab4f 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
@@ -2159,6 +2160,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 324c9a87b7..e49023b653 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -235,6 +235,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
@@ -1650,6 +1651,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 ff9140c24f..019efdeb89 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -1,4 +1,3 @@
-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 9bb9303b28..1e903842d2 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -232,6 +232,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
@@ -1647,6 +1648,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 ff9140c24f..019efdeb89 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -1,4 +1,3 @@
-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 a5b523b9f0..8fb5aaf4be 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
@@ -2343,6 +2344,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 76ff130d09..a44c501d49 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 0716b8850a..d3f2a9fbed 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
@@ -2297,6 +2298,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 798e4488c8..3618d3e898 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 bbc5b694f3..d23ded400b 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
@@ -2481,6 +2482,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 798e4488c8..3618d3e898 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 4442c7901d..a84e585a5a 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
@@ -2333,6 +2334,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 02e9ce73ac..a8b6530236 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -236,6 +236,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
@@ -1634,6 +1635,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 ff9140c24f..019efdeb89 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -1,4 +1,3 @@
-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 ccb77676a0..2099088d48 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
@@ -2424,6 +2425,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 798e4488c8..3618d3e898 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 6b64225a65..480542425a 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
@@ -2394,6 +2395,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 128059b053..a03da76f76 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 5865b804cf..f66c0d5641 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
@@ -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/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
index 128059b053..a03da76f76 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 bcaf07ac85..173f533387 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
@@ -2389,6 +2390,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 6957efa4dd..a249a4623f 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 9a13848933..dd536cdd7a 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
@@ -2387,6 +2388,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/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
index 6957efa4dd..a249a4623f 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/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/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index a9e4f98a20..ec9ea80650 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
@@ -2395,6 +2396,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/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 9cee9e6383..500cf81644 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
@@ -2389,6 +2390,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/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 5c7f6118c5..5b22c05d1a 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
@@ -2433,6 +2434,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 3f9b40a1a2..54faf2191a 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 bd4cabfa1a..a4f07abfcb 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
@@ -2451,6 +2452,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 798e4488c8..3618d3e898 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 6af1a56f74..5f3f7e0a65 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
@@ -2484,6 +2485,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 eac3865fd3..45da3fd0a5 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
@@ -2297,6 +2298,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 3c432f1ffe..c21e33b002 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
@@ -2596,6 +2597,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 21a8aae119..ec447c1929 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
@@ -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/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 a49a7fbb76..7996483bbc 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
@@ -2361,6 +2362,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 4260925e51..25dd65a559 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
@@ -2449,6 +2450,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 798e4488c8..3618d3e898 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 dbffb9d2ac..fafa8db1e6 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
@@ -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_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 ba278810ee..31731a61d8 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
@@ -2304,6 +2305,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 798e4488c8..3618d3e898 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 c0ba685cb8..b96bdc0a90 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
@@ -2301,6 +2302,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 798e4488c8..3618d3e898 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 6f8af4233f..49709c7654 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
@@ -2444,6 +2445,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 2668338eb0..31311e85b9 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 48e113a3d1..5c2a1a0235 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
@@ -2356,6 +2357,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 ec030e244a..f006d8985f 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
@@ -2312,6 +2313,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 4a7630d3e8..b08c38fa7c 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
@@ -2415,6 +2416,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] 45+ messages in thread
* [PATCH 24/35] Linux: Move mq_notify from librt to libc
2021-06-03 23:14 [PATCH 00/35] Linux: Move librt into libc Florian Weimer
` (22 preceding siblings ...)
2021-06-03 23:16 ` [PATCH 23/35] Linux: Move mq_getattr " Florian Weimer
@ 2021-06-03 23:16 ` Florian Weimer
2021-06-03 23:16 ` [PATCH 25/35] Linux: Move mq_open, __mq_open_2 " Florian Weimer
` (11 subsequent siblings)
35 siblings, 0 replies; 45+ messages in thread
From: Florian Weimer @ 2021-06-03 23:16 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 +
.../unix/sysv/linux/mips/mips64/librt.abilist | 1 -
.../sysv/linux/mips/mips64/n32/libc.abilist | 2 +
.../sysv/linux/mips/mips64/n64/libc.abilist | 2 +
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 -
67 files changed, 100 insertions(+), 64 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 a3e1cf51b0..b8167b8d69 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 a1d5661216..2376415a38 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 e192480e09..368ed7453b 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
@@ -2402,6 +2403,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 d937d5b1f8..d26f035f0a 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
@@ -2497,6 +2498,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 31f687ab4f..d8e431bc13 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
@@ -2161,6 +2162,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 e49023b653..a97e9d40ae 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -236,6 +236,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
@@ -1652,6 +1653,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 019efdeb89..16c562cc57 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -1,4 +1,3 @@
-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 1e903842d2..0b957d1f10 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -233,6 +233,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
@@ -1649,6 +1650,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 019efdeb89..16c562cc57 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -1,4 +1,3 @@
-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 8fb5aaf4be..6f6bc16b0e 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
@@ -2345,6 +2346,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 a44c501d49..cb268470a2 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 d3f2a9fbed..a5d44d7394 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
@@ -2299,6 +2300,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 3618d3e898..56e82a8a53 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 d23ded400b..7758073583 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
@@ -2483,6 +2484,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 3618d3e898..56e82a8a53 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 a84e585a5a..ae6d041f13 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
@@ -2335,6 +2336,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 a8b6530236..9bbcd02ff2 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -237,6 +237,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
@@ -1636,6 +1637,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 019efdeb89..16c562cc57 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -1,4 +1,3 @@
-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 2099088d48..7ada87505b 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
@@ -2426,6 +2427,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 3618d3e898..56e82a8a53 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 480542425a..86422132f3 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
@@ -2396,6 +2397,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 a03da76f76..039871a931 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 f66c0d5641..6bab3fea30 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
@@ -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/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
index a03da76f76..039871a931 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 173f533387..750d4e704c 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
@@ -2391,6 +2392,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 a249a4623f..7afe4e83cf 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 dd536cdd7a..13fc078266 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
@@ -2389,6 +2390,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/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
index a249a4623f..7afe4e83cf 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/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/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index ec9ea80650..f310320334 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
@@ -2397,6 +2398,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/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 500cf81644..ea8a8d4a4e 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
@@ -2391,6 +2392,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/mq_notify.c b/sysdeps/unix/sysv/linux/mq_notify.c
index e22850a910..473621f590 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 5b22c05d1a..9331ef54cf 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
@@ -2435,6 +2436,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 54faf2191a..552ee96b30 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 a4f07abfcb..f09b309ea5 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
@@ -2453,6 +2454,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 3618d3e898..56e82a8a53 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 5f3f7e0a65..b3b4167fab 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
@@ -2486,6 +2487,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 45da3fd0a5..bef39a8377 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
@@ -2299,6 +2300,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 c21e33b002..73ad8e24f1 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
@@ -2598,6 +2599,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 ec447c1929..793b3d7ff2 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
@@ -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/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 7996483bbc..442faab40d 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
@@ -2363,6 +2364,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 25dd65a559..58167f046f 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
@@ -2451,6 +2452,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 3618d3e898..56e82a8a53 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 fafa8db1e6..8bfa413e81 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
@@ -2336,6 +2337,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 31731a61d8..312f0fd5fc 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
@@ -2306,6 +2307,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 3618d3e898..56e82a8a53 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 b96bdc0a90..a857b38453 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
@@ -2303,6 +2304,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 3618d3e898..56e82a8a53 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 49709c7654..e4c661632e 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
@@ -2446,6 +2447,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 31311e85b9..0990953ee9 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 5c2a1a0235..ecec2ef922 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
@@ -2358,6 +2359,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 f006d8985f..4277301a21 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
@@ -2314,6 +2315,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 b08c38fa7c..6d7a7f41a8 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
@@ -2417,6 +2418,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] 45+ messages in thread
* [PATCH 25/35] Linux: Move mq_open, __mq_open_2 from librt to libc
2021-06-03 23:14 [PATCH 00/35] Linux: Move librt into libc Florian Weimer
` (23 preceding siblings ...)
2021-06-03 23:16 ` [PATCH 24/35] Linux: Move mq_notify " Florian Weimer
@ 2021-06-03 23:16 ` Florian Weimer
2021-06-03 23:17 ` [PATCH 26/35] Linux: Move mq_receive, mq_timedreceive " Florian Weimer
` (10 subsequent siblings)
35 siblings, 0 replies; 45+ messages in thread
From: Florian Weimer @ 2021-06-03 23:16 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 ++++
sysdeps/unix/sysv/linux/mips/mips64/librt.abilist | 3 +--
.../unix/sysv/linux/mips/mips64/n32/libc.abilist | 4 ++++
.../unix/sysv/linux/mips/mips64/n64/libc.abilist | 4 ++++
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 --
65 files changed, 177 insertions(+), 62 deletions(-)
diff --git a/rt/Makefile b/rt/Makefile
index 2376415a38..e4092c67b1 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 368ed7453b..7c65169382 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
@@ -2404,6 +2407,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 d26f035f0a..d8e9a84f1c 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
@@ -2499,6 +2501,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
@@ -2889,6 +2892,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 d8e431bc13..6f15a1aa2d 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
@@ -2163,6 +2166,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 a97e9d40ae..d9bae60a8f 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -191,6 +191,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
@@ -237,6 +238,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
@@ -1654,6 +1656,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
@@ -2525,6 +2528,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 16c562cc57..5c7ced9ace 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.4 mq_open F
GLIBC_2.4 mq_receive F
GLIBC_2.4 mq_send F
GLIBC_2.4 mq_timedreceive F
@@ -9,4 +8,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 0b957d1f10..f4f265420f 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -188,6 +188,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
@@ -234,6 +235,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
@@ -1651,6 +1653,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
@@ -2522,6 +2525,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 16c562cc57..5c7ced9ace 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.4 mq_open F
GLIBC_2.4 mq_receive F
GLIBC_2.4 mq_send F
GLIBC_2.4 mq_timedreceive F
@@ -9,4 +8,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 6f6bc16b0e..a6abf2353f 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
@@ -2301,6 +2303,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
@@ -2347,6 +2350,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 cb268470a2..9d21d0f5dc 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 a5d44d7394..3d142b2b69 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
@@ -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
@@ -2301,6 +2303,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
@@ -2540,6 +2543,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 56e82a8a53..01ae077514 100644
--- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
@@ -4,11 +4,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/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 7758073583..3a3f4ab126 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
@@ -2439,6 +2440,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
@@ -2485,6 +2487,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
@@ -2724,6 +2727,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 56e82a8a53..01ae077514 100644
--- a/sysdeps/unix/sysv/linux/i386/librt.abilist
+++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
@@ -4,11 +4,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/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index ae6d041f13..17bba9dd74 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
@@ -2337,6 +2339,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
@@ -2576,6 +2579,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 9bbcd02ff2..366a0dad61 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -192,6 +192,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
@@ -238,6 +239,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
@@ -1638,6 +1640,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
@@ -2505,6 +2508,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 16c562cc57..5c7ced9ace 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -1,4 +1,3 @@
-GLIBC_2.4 mq_open F
GLIBC_2.4 mq_receive F
GLIBC_2.4 mq_send F
GLIBC_2.4 mq_timedreceive F
@@ -9,4 +8,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 7ada87505b..0657db94c2 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
@@ -2382,6 +2383,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
@@ -2428,6 +2430,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
@@ -2667,6 +2670,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 56e82a8a53..01ae077514 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
@@ -4,11 +4,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/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 86422132f3..f584ccc897 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
@@ -2352,6 +2354,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
@@ -2398,6 +2401,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 039871a931..8a93e4ba3d 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 6bab3fea30..3d479526e1 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
@@ -2349,6 +2351,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 +2398,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 039871a931..8a93e4ba3d 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 750d4e704c..2f5b20d9c0 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
@@ -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
@@ -2393,6 +2395,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
@@ -2628,6 +2631,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 7afe4e83cf..8862820283 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/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/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 13fc078266..38248ca5f0 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
@@ -2345,6 +2346,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
@@ -2391,6 +2393,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/mips/mips64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
index 7afe4e83cf..8862820283 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/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/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index f310320334..253066f66d 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
@@ -2353,6 +2354,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
@@ -2399,6 +2401,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
@@ -2634,6 +2637,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/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index ea8a8d4a4e..3f559df025 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
@@ -2393,6 +2395,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
@@ -2628,6 +2631,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/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 9331ef54cf..12a6a284d4 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
@@ -2391,6 +2393,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
@@ -2437,6 +2440,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 552ee96b30..ec0882982a 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 f09b309ea5..f7af6f34c7 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
@@ -2409,6 +2410,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
@@ -2455,6 +2457,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
@@ -2847,6 +2850,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 56e82a8a53..01ae077514 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
@@ -4,11 +4,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/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index b3b4167fab..0ad9a6a5d5 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
@@ -2442,6 +2443,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
@@ -2488,6 +2490,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
@@ -2892,6 +2895,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 bef39a8377..e2bd0e982c 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
@@ -2301,6 +2303,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
@@ -2693,6 +2696,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 73ad8e24f1..b01e7a68c1 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
@@ -2600,6 +2603,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 793b3d7ff2..9109c9f917 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
@@ -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/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 442faab40d..484d3f3a30 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
@@ -2365,6 +2368,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 58167f046f..e3a4b818fb 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
@@ -2407,6 +2408,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
@@ -2453,6 +2455,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
@@ -2843,6 +2846,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 56e82a8a53..01ae077514 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
@@ -4,11 +4,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/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 8bfa413e81..053647b6d8 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
@@ -2338,6 +2340,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
@@ -2728,6 +2731,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 312f0fd5fc..99c04ff452 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
@@ -2262,6 +2263,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
@@ -2308,6 +2310,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
@@ -2547,6 +2550,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 56e82a8a53..01ae077514 100644
--- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
@@ -4,11 +4,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/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index a857b38453..5a5b9d5086 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
@@ -2259,6 +2260,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
@@ -2305,6 +2307,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
@@ -2544,6 +2547,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 56e82a8a53..01ae077514 100644
--- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
@@ -4,11 +4,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/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index e4c661632e..c811ee54e6 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
@@ -2402,6 +2403,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
@@ -2448,6 +2450,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
@@ -2864,6 +2867,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 0990953ee9..3df12a834a 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
@@ -5,11 +5,10 @@ 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
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/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index ecec2ef922..ddea8c5275 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
@@ -2360,6 +2362,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
@@ -2599,6 +2602,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 4277301a21..9b7da44dc2 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
@@ -2316,6 +2318,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
@@ -2555,6 +2558,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 6d7a7f41a8..7b5cb8e5ae 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
@@ -2419,6 +2422,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] 45+ messages in thread
* [PATCH 26/35] Linux: Move mq_receive, mq_timedreceive from librt to libc
2021-06-03 23:14 [PATCH 00/35] Linux: Move librt into libc Florian Weimer
` (24 preceding siblings ...)
2021-06-03 23:16 ` [PATCH 25/35] Linux: Move mq_open, __mq_open_2 " Florian Weimer
@ 2021-06-03 23:17 ` Florian Weimer
2021-06-03 23:17 ` [PATCH 27/35] Linux: Move mq_send, mq_timedsend " Florian Weimer
` (9 subsequent siblings)
35 siblings, 0 replies; 45+ messages in thread
From: Florian Weimer @ 2021-06-03 23:17 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/aarch64/libc.abilist | 4 +++
sysdeps/unix/sysv/linux/aarch64/librt.abilist | 2 --
sysdeps/unix/sysv/linux/alpha/libc.abilist | 4 +++
sysdeps/unix/sysv/linux/alpha/librt.abilist | 2 --
sysdeps/unix/sysv/linux/arc/libc.abilist | 4 +++
sysdeps/unix/sysv/linux/arc/librt.abilist | 2 --
sysdeps/unix/sysv/linux/arm/be/libc.abilist | 4 +++
sysdeps/unix/sysv/linux/arm/be/librt.abilist | 2 --
sysdeps/unix/sysv/linux/arm/le/libc.abilist | 4 +++
sysdeps/unix/sysv/linux/arm/le/librt.abilist | 2 --
sysdeps/unix/sysv/linux/csky/libc.abilist | 4 +++
sysdeps/unix/sysv/linux/csky/librt.abilist | 2 --
sysdeps/unix/sysv/linux/hppa/libc.abilist | 4 +++
sysdeps/unix/sysv/linux/hppa/librt.abilist | 2 --
sysdeps/unix/sysv/linux/i386/libc.abilist | 4 +++
sysdeps/unix/sysv/linux/i386/librt.abilist | 2 --
sysdeps/unix/sysv/linux/ia64/libc.abilist | 4 +++
sysdeps/unix/sysv/linux/ia64/librt.abilist | 2 --
.../sysv/linux/m68k/coldfire/libc.abilist | 4 +++
.../sysv/linux/m68k/coldfire/librt.abilist | 2 --
.../unix/sysv/linux/m68k/m680x0/libc.abilist | 4 +++
.../unix/sysv/linux/m68k/m680x0/librt.abilist | 2 --
.../sysv/linux/microblaze/be/libc.abilist | 4 +++
.../sysv/linux/microblaze/be/librt.abilist | 2 --
.../sysv/linux/microblaze/le/libc.abilist | 4 +++
.../sysv/linux/microblaze/le/librt.abilist | 2 --
.../sysv/linux/mips/mips32/fpu/libc.abilist | 4 +++
.../unix/sysv/linux/mips/mips32/librt.abilist | 2 --
.../sysv/linux/mips/mips32/nofpu/libc.abilist | 4 +++
.../unix/sysv/linux/mips/mips64/librt.abilist | 2 --
.../sysv/linux/mips/mips64/n32/libc.abilist | 4 +++
.../sysv/linux/mips/mips64/n64/libc.abilist | 4 +++
sysdeps/unix/sysv/linux/mq_receive.c | 9 +++--
sysdeps/unix/sysv/linux/mq_timedreceive.c | 36 +++++++++++++------
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 --
66 files changed, 178 insertions(+), 77 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 e4092c67b1..72cdd648c3 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/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 7c65169382..e855de3b71 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
@@ -2408,7 +2410,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 d8e9a84f1c..255b23223e 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
@@ -2502,7 +2504,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 6f15a1aa2d..aa6a44204d 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
@@ -2167,7 +2169,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 d9bae60a8f..3bc0ddfe2c 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -239,7 +239,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
@@ -1657,7 +1659,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 5c7ced9ace..688e576e26 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -1,6 +1,4 @@
-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 f4f265420f..32501ae7c9 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -236,7 +236,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
@@ -1654,7 +1656,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 5c7ced9ace..688e576e26 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -1,6 +1,4 @@
-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 a6abf2353f..130dac13c6 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
@@ -2351,7 +2353,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 9d21d0f5dc..a2fddc0c8e 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
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 3d142b2b69..23ff5af16c 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
@@ -2304,7 +2306,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 01ae077514..04d8bff765 100644
--- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
@@ -4,9 +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_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/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 3a3f4ab126..c28ae0c712 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
@@ -2488,7 +2490,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 01ae077514..04d8bff765 100644
--- a/sysdeps/unix/sysv/linux/i386/librt.abilist
+++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
@@ -4,9 +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_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/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 17bba9dd74..b4b7bea2d8 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
@@ -2340,7 +2342,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 366a0dad61..0c708b427d 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -240,7 +240,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
@@ -1641,7 +1643,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 5c7ced9ace..688e576e26 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -1,6 +1,4 @@
-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 0657db94c2..13117d8332 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
@@ -2431,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/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
index 01ae077514..04d8bff765 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
@@ -4,9 +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_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/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index f584ccc897..45d05b3077 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
@@ -2402,7 +2404,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 8a93e4ba3d..4c95f61cd5 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
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 3d479526e1..79f2d051aa 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
@@ -2399,7 +2401,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 8a93e4ba3d..4c95f61cd5 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
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 2f5b20d9c0..ef0ee9d68d 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
@@ -2396,7 +2398,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 8862820283..b5796aadb3 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/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/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 38248ca5f0..92cf73c49e 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
@@ -2394,7 +2396,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/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
index 8862820283..b5796aadb3 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/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/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 253066f66d..baccbedce8 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
@@ -2402,7 +2404,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/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 3f559df025..4d2c898966 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
@@ -2396,7 +2398,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/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..0b726ba716 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,23 @@ __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)
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 +81,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 12a6a284d4..c56ef123bc 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
@@ -2441,7 +2443,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 ec0882982a..6f7e63316f 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
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index f7af6f34c7..5584f58cdd 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
@@ -2458,7 +2460,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 01ae077514..04d8bff765 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
@@ -4,9 +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_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/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 0ad9a6a5d5..9aa7ad0ea9 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
@@ -2491,7 +2493,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 e2bd0e982c..3c5699ef11 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
@@ -2304,7 +2306,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 b01e7a68c1..12585936db 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
@@ -2604,7 +2606,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 9109c9f917..ffb3cc7364 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
@@ -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/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 484d3f3a30..086c508836 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
@@ -2369,7 +2371,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 e3a4b818fb..4b85fa5e9f 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
@@ -2456,7 +2458,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 01ae077514..04d8bff765 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
@@ -4,9 +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_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/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 053647b6d8..26f2756e62 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
@@ -2341,7 +2343,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 99c04ff452..bfdfabdb7a 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
@@ -2311,7 +2313,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 01ae077514..04d8bff765 100644
--- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
@@ -4,9 +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_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/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 5a5b9d5086..5481110df9 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
@@ -2308,7 +2310,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 01ae077514..04d8bff765 100644
--- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
@@ -4,9 +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_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/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index c811ee54e6..275babc59f 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
@@ -2451,7 +2453,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 3df12a834a..a0682cde87 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
@@ -5,9 +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_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/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index ddea8c5275..1736a832f3 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
@@ -2363,7 +2365,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 9b7da44dc2..904232ea5b 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
@@ -2319,7 +2321,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 7b5cb8e5ae..2f45055dbc 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
@@ -2423,7 +2425,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] 45+ messages in thread
* [PATCH 27/35] Linux: Move mq_send, mq_timedsend from librt to libc
2021-06-03 23:14 [PATCH 00/35] Linux: Move librt into libc Florian Weimer
` (25 preceding siblings ...)
2021-06-03 23:17 ` [PATCH 26/35] Linux: Move mq_receive, mq_timedreceive " Florian Weimer
@ 2021-06-03 23:17 ` Florian Weimer
2021-06-03 23:17 ` [PATCH 28/35] Linux: Move mq_unlink " Florian Weimer
` (8 subsequent siblings)
35 siblings, 0 replies; 45+ messages in thread
From: Florian Weimer @ 2021-06-03 23:17 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/aarch64/libc.abilist | 4 +++
sysdeps/unix/sysv/linux/aarch64/librt.abilist | 2 --
sysdeps/unix/sysv/linux/alpha/libc.abilist | 4 +++
sysdeps/unix/sysv/linux/alpha/librt.abilist | 2 --
sysdeps/unix/sysv/linux/arc/libc.abilist | 4 +++
sysdeps/unix/sysv/linux/arc/librt.abilist | 2 --
sysdeps/unix/sysv/linux/arm/be/libc.abilist | 4 +++
sysdeps/unix/sysv/linux/arm/be/librt.abilist | 2 --
sysdeps/unix/sysv/linux/arm/le/libc.abilist | 4 +++
sysdeps/unix/sysv/linux/arm/le/librt.abilist | 2 --
sysdeps/unix/sysv/linux/csky/libc.abilist | 4 +++
sysdeps/unix/sysv/linux/csky/librt.abilist | 2 --
sysdeps/unix/sysv/linux/hppa/libc.abilist | 4 +++
sysdeps/unix/sysv/linux/hppa/librt.abilist | 2 --
sysdeps/unix/sysv/linux/i386/libc.abilist | 4 +++
sysdeps/unix/sysv/linux/i386/librt.abilist | 2 --
sysdeps/unix/sysv/linux/ia64/libc.abilist | 4 +++
sysdeps/unix/sysv/linux/ia64/librt.abilist | 2 --
.../sysv/linux/m68k/coldfire/libc.abilist | 4 +++
.../sysv/linux/m68k/coldfire/librt.abilist | 2 --
.../unix/sysv/linux/m68k/m680x0/libc.abilist | 4 +++
.../unix/sysv/linux/m68k/m680x0/librt.abilist | 2 --
.../sysv/linux/microblaze/be/libc.abilist | 4 +++
.../sysv/linux/microblaze/be/librt.abilist | 2 --
.../sysv/linux/microblaze/le/libc.abilist | 4 +++
.../sysv/linux/microblaze/le/librt.abilist | 2 --
.../sysv/linux/mips/mips32/fpu/libc.abilist | 4 +++
.../unix/sysv/linux/mips/mips32/librt.abilist | 2 --
.../sysv/linux/mips/mips32/nofpu/libc.abilist | 4 +++
.../unix/sysv/linux/mips/mips64/librt.abilist | 2 --
.../sysv/linux/mips/mips64/n32/libc.abilist | 4 +++
.../sysv/linux/mips/mips64/n64/libc.abilist | 4 +++
sysdeps/unix/sysv/linux/mq_send.c | 7 +++-
sysdeps/unix/sysv/linux/mq_timedsend.c | 36 +++++++++++++------
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 --
66 files changed, 174 insertions(+), 79 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 72cdd648c3..a6de82c270 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/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index e855de3b71..bc4524c3c8 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
@@ -2411,8 +2413,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 255b23223e..ebad573581 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
@@ -2505,8 +2507,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 aa6a44204d..b4bf198fd9 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
@@ -2170,8 +2172,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 3bc0ddfe2c..7d221d5a44 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -240,8 +240,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
@@ -1660,8 +1662,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 688e576e26..3f6cc02b8b 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.4 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 32501ae7c9..b13534180d 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -237,8 +237,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
@@ -1657,8 +1659,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 688e576e26..3f6cc02b8b 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.4 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 130dac13c6..8ce2ac46dc 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
@@ -2354,8 +2356,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 a2fddc0c8e..6474e3bc74 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_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
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 23ff5af16c..b4cf7382d7 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
@@ -2307,8 +2309,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 04d8bff765..8260d89822 100644
--- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
@@ -4,8 +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_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/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index c28ae0c712..a100310b23 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
@@ -2491,8 +2493,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 04d8bff765..8260d89822 100644
--- a/sysdeps/unix/sysv/linux/i386/librt.abilist
+++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
@@ -4,8 +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_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/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index b4b7bea2d8..8b3581d683 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
@@ -2343,8 +2345,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 0c708b427d..5669ca175a 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -241,8 +241,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
@@ -1644,8 +1646,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 688e576e26..3f6cc02b8b 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.4 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 13117d8332..a3510a8da5 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
@@ -2434,8 +2436,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 04d8bff765..8260d89822 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
@@ -4,8 +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_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/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 45d05b3077..34ec16e64f 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
@@ -2405,8 +2407,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 4c95f61cd5..2fd2f0bdb4 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_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
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 79f2d051aa..e0a37c49fc 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
@@ -2402,8 +2404,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 4c95f61cd5..2fd2f0bdb4 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_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
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index ef0ee9d68d..8497e83efc 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
@@ -2399,8 +2401,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 b5796aadb3..1daa0ecaef 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/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/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 92cf73c49e..b16498fe37 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
@@ -2397,8 +2399,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/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
index b5796aadb3..1daa0ecaef 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/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/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index baccbedce8..6ec26434ab 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
@@ -2405,8 +2407,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/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 4d2c898966..ecb3422205 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
@@ -2399,8 +2401,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/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..4e82e25b7f 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,21 @@ __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)
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 +80,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 c56ef123bc..bf95d2a0a2 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
@@ -2444,8 +2446,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 6f7e63316f..156fde6484 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_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
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 5584f58cdd..3dc4fd7ec5 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
@@ -2461,8 +2463,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 04d8bff765..8260d89822 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
@@ -4,8 +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_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/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 9aa7ad0ea9..cd7953df77 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
@@ -2494,8 +2496,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 3c5699ef11..4c4c691f9b 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
@@ -2307,8 +2309,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 12585936db..5d5202c332 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
@@ -2607,8 +2609,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 ffb3cc7364..105ecfd046 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
@@ -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/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 086c508836..9c4e300735 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
@@ -2372,8 +2374,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 4b85fa5e9f..706a30e0f8 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
@@ -2459,8 +2461,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 04d8bff765..8260d89822 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
@@ -4,8 +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_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/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 26f2756e62..4f08e4d868 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
@@ -2344,8 +2346,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 bfdfabdb7a..398f540874 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
@@ -2314,8 +2316,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 04d8bff765..8260d89822 100644
--- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
@@ -4,8 +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_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/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 5481110df9..354ba17641 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
@@ -2311,8 +2313,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 04d8bff765..8260d89822 100644
--- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
@@ -4,8 +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_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/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 275babc59f..51a02a969c 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
@@ -2454,8 +2456,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 a0682cde87..fb1ab58411 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
@@ -5,8 +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_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/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 1736a832f3..46a3b76412 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
@@ -2366,8 +2368,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 904232ea5b..d5bd8b2e9b 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
@@ -2322,8 +2324,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 2f45055dbc..a126fc0588 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
@@ -2426,8 +2428,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] 45+ messages in thread
* [PATCH 28/35] Linux: Move mq_unlink from librt to libc
2021-06-03 23:14 [PATCH 00/35] Linux: Move librt into libc Florian Weimer
` (26 preceding siblings ...)
2021-06-03 23:17 ` [PATCH 27/35] Linux: Move mq_send, mq_timedsend " Florian Weimer
@ 2021-06-03 23:17 ` Florian Weimer
2021-06-03 23:17 ` [PATCH 29/35] Linux: Move timer helper routines " Florian Weimer
` (7 subsequent siblings)
35 siblings, 0 replies; 45+ messages in thread
From: Florian Weimer @ 2021-06-03 23:17 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/librt.abilist | 2 +-
sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/mips/mips64/n64/libc.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 -
65 files changed, 99 insertions(+), 33 deletions(-)
diff --git a/rt/Makefile b/rt/Makefile
index a6de82c270..0574f11b89 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 bc4524c3c8..4da2087b50 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
@@ -2417,6 +2418,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 ebad573581..09c6b46594 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
@@ -2511,6 +2512,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 b4bf198fd9..7bbea260c4 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
@@ -2176,6 +2177,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 7d221d5a44..a69ff1cfc6 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -244,6 +244,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
@@ -1666,6 +1667,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 3f6cc02b8b..0c58d2a925 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -1,4 +1,3 @@
-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 b13534180d..5843fdd3ac 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -241,6 +241,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
@@ -1663,6 +1664,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 3f6cc02b8b..0c58d2a925 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -1,4 +1,3 @@
-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 8ce2ac46dc..e367d19dcc 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
@@ -2360,6 +2361,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 6474e3bc74..a68d1c3ae3 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 b4cf7382d7..c08dcaffa0 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
@@ -2313,6 +2314,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 8260d89822..eea359a56e 100644
--- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
@@ -4,6 +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_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/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index a100310b23..4966f072a9 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
@@ -2497,6 +2498,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 8260d89822..eea359a56e 100644
--- a/sysdeps/unix/sysv/linux/i386/librt.abilist
+++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
@@ -4,6 +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_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/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 8b3581d683..f7c185d66a 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
@@ -2349,6 +2350,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 5669ca175a..1d5fa00384 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -245,6 +245,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
@@ -1650,6 +1651,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 3f6cc02b8b..0c58d2a925 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -1,4 +1,3 @@
-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 a3510a8da5..481bac83eb 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
@@ -2440,6 +2441,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 8260d89822..eea359a56e 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
@@ -4,6 +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_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/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 34ec16e64f..6beb0360a8 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
@@ -2411,6 +2412,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 2fd2f0bdb4..97a6b25afb 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 e0a37c49fc..26d8885507 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
@@ -2408,6 +2409,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 2fd2f0bdb4..97a6b25afb 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 8497e83efc..17b0d0cc3e 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
@@ -2405,6 +2406,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 1daa0ecaef..51354b072d 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/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/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index b16498fe37..35f2808b65 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
@@ -2403,6 +2404,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/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
index 1daa0ecaef..51354b072d 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/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/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 6ec26434ab..14b175c0e9 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
@@ -2411,6 +2412,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/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index ecb3422205..712773f831 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
@@ -2405,6 +2406,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/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 bf95d2a0a2..16bca8aa54 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
@@ -2450,6 +2451,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 156fde6484..3f1e6df810 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 3dc4fd7ec5..65d93709de 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
@@ -2467,6 +2468,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 8260d89822..eea359a56e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
@@ -4,6 +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_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/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index cd7953df77..6d0de94fa6 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
@@ -2500,6 +2501,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 4c4c691f9b..2df3507cb6 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
@@ -2313,6 +2314,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 5d5202c332..41d0bcea46 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
@@ -2613,6 +2614,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 105ecfd046..6f1b2cc4a2 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
@@ -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/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 9c4e300735..abfb3dac62 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
@@ -2378,6 +2379,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 706a30e0f8..787135a791 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
@@ -2465,6 +2466,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 8260d89822..eea359a56e 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
@@ -4,6 +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_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/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 4f08e4d868..817df83b6f 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
@@ -2350,6 +2351,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 398f540874..8073c87ef4 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
@@ -2320,6 +2321,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 8260d89822..eea359a56e 100644
--- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
@@ -4,6 +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_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/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 354ba17641..aac7df1b9c 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
@@ -2317,6 +2318,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 8260d89822..eea359a56e 100644
--- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
@@ -4,6 +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_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/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 51a02a969c..0cde20d416 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
@@ -2460,6 +2461,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 fb1ab58411..745319ed5c 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
@@ -5,6 +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_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/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 46a3b76412..aa2ccd7777 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
@@ -2372,6 +2373,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 d5bd8b2e9b..69ea71b18c 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
@@ -2328,6 +2329,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 a126fc0588..8d186c3ceb 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
@@ -2432,6 +2433,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] 45+ messages in thread
* [PATCH 29/35] Linux: Move timer helper routines from librt to libc
2021-06-03 23:14 [PATCH 00/35] Linux: Move librt into libc Florian Weimer
` (27 preceding siblings ...)
2021-06-03 23:17 ` [PATCH 28/35] Linux: Move mq_unlink " Florian Weimer
@ 2021-06-03 23:17 ` Florian Weimer
2021-06-03 23:17 ` [PATCH 30/35] Linux: Define TIMER_T_WAS_INT_COMPAT in kernel-posix-timers.h Florian Weimer
` (6 subsequent siblings)
35 siblings, 0 replies; 45+ messages in thread
From: Florian Weimer @ 2021-06-03 23:17 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 c864ad38ca..d7e8ee9d8b 100644
--- a/sysdeps/unix/sysv/linux/Versions
+++ b/sysdeps/unix/sysv/linux/Versions
@@ -194,6 +194,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] 45+ messages in thread
* [PATCH 30/35] Linux: Define TIMER_T_WAS_INT_COMPAT in kernel-posix-timers.h
2021-06-03 23:14 [PATCH 00/35] Linux: Move librt into libc Florian Weimer
` (28 preceding siblings ...)
2021-06-03 23:17 ` [PATCH 29/35] Linux: Move timer helper routines " Florian Weimer
@ 2021-06-03 23:17 ` Florian Weimer
2021-06-03 23:17 ` [PATCH 31/35] Linux: Move timer_create, timer_delete from librt to libc Florian Weimer
` (5 subsequent siblings)
35 siblings, 0 replies; 45+ messages in thread
From: Florian Weimer @ 2021-06-03 23:17 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] 45+ messages in thread
* [PATCH 31/35] Linux: Move timer_create, timer_delete from librt to libc
2021-06-03 23:14 [PATCH 00/35] Linux: Move librt into libc Florian Weimer
` (29 preceding siblings ...)
2021-06-03 23:17 ` [PATCH 30/35] Linux: Define TIMER_T_WAS_INT_COMPAT in kernel-posix-timers.h Florian Weimer
@ 2021-06-03 23:17 ` Florian Weimer
2021-06-03 23:17 ` [PATCH 32/35] Linux: Move timer_getoverrun " Florian Weimer
` (4 subsequent siblings)
35 siblings, 0 replies; 45+ messages in thread
From: Florian Weimer @ 2021-06-03 23:17 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 ++
.../unix/sysv/linux/mips/mips64/librt.abilist | 2 -
.../sysv/linux/mips/mips64/n32/libc.abilist | 4 ++
.../sysv/linux/mips/mips64/n64/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/nios2/libc.abilist | 4 ++
sysdeps/unix/sysv/linux/nios2/librt.abilist | 2 -
.../linux/powerpc/powerpc32/fpu/libc.abilist | 4 ++
.../linux/powerpc/powerpc32/librt.abilist | 2 -
.../powerpc/powerpc32/nofpu/libc.abilist | 4 ++
.../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 -
89 files changed, 275 insertions(+), 240 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 0574f11b89..2d0ad75f69 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 d7e8ee9d8b..573415ef3b 100644
--- a/sysdeps/unix/sysv/linux/Versions
+++ b/sysdeps/unix/sysv/linux/Versions
@@ -120,6 +120,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;
@@ -196,6 +200,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 4da2087b50..c4b0749b3f 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
@@ -2527,6 +2529,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 09c6b46594..3b1b10870c 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
@@ -2621,6 +2625,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 7bbea260c4..f3b60500e8 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
@@ -2286,6 +2288,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 a69ff1cfc6..e50811516d 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -353,6 +353,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
@@ -2269,6 +2271,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 0c58d2a925..f9c27d7913 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.4 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 5843fdd3ac..22793bf139 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -350,6 +350,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
@@ -2266,6 +2268,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 0c58d2a925..f9c27d7913 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.4 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 e367d19dcc..20c8d77ad1 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
@@ -2470,6 +2472,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 a68d1c3ae3..19de53f9ad 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 c08dcaffa0..5ec5d10912 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
@@ -2423,6 +2425,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 eea359a56e..421fa4f34b 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 4966f072a9..231b2601a3 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
@@ -2607,6 +2609,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 eea359a56e..421fa4f34b 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 f7c185d66a..6673c5f715 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
@@ -2459,6 +2463,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 1d5fa00384..5a614614ff 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -354,6 +354,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
@@ -2249,6 +2251,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 0c58d2a925..f9c27d7913 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.4 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 481bac83eb..f535986d22 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
@@ -2550,6 +2552,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 eea359a56e..421fa4f34b 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 6beb0360a8..b388529f33 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
@@ -2521,6 +2523,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 97a6b25afb..2a70b5df18 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 26d8885507..e7a54683bd 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
@@ -2518,6 +2520,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 97a6b25afb..2a70b5df18 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 17b0d0cc3e..f626859e72 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
@@ -2515,6 +2517,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 51354b072d..00fd77bbab 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 35f2808b65..2857d72362 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
@@ -2513,6 +2515,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/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
index 51354b072d..00fd77bbab 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
@@ -1,5 +1,3 @@
-GLIBC_2.2 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/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 14b175c0e9..d69903a236 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
@@ -2521,6 +2523,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/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 712773f831..cea7a13c44 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
@@ -2515,6 +2517,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/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 16bca8aa54..fc8f4b2a34 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
@@ -2560,6 +2562,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 3f1e6df810..926b8661b7 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 65d93709de..3a3453029b 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
@@ -2577,6 +2579,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 eea359a56e..421fa4f34b 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 6d0de94fa6..2ba21f757a 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
@@ -2610,6 +2612,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 2df3507cb6..66694044a4 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
@@ -2423,6 +2427,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 41d0bcea46..7ca6196a98 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
@@ -2723,6 +2725,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 6f1b2cc4a2..bef6b3bffe 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
@@ -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/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 abfb3dac62..16c290c4e4 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
@@ -2488,6 +2490,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 787135a791..74afe6a900 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
@@ -2575,6 +2577,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 eea359a56e..421fa4f34b 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 817df83b6f..30cc1dc7c9 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
@@ -2460,6 +2464,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 8073c87ef4..c14ecf0792 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
@@ -2430,6 +2432,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 eea359a56e..421fa4f34b 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 aac7df1b9c..8a8cd2fbf3 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
@@ -2427,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/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
index eea359a56e..421fa4f34b 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 0cde20d416..b4c7658329 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
@@ -2570,6 +2572,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 745319ed5c..2db0b41152 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 aa2ccd7777..d67359a267 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
@@ -2482,6 +2486,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 69ea71b18c..2af1d79de7 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
@@ -2438,6 +2442,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 8d186c3ceb..c2e52cf10a 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
@@ -2542,6 +2544,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] 45+ messages in thread
* [PATCH 32/35] Linux: Move timer_getoverrun from librt to libc
2021-06-03 23:14 [PATCH 00/35] Linux: Move librt into libc Florian Weimer
` (30 preceding siblings ...)
2021-06-03 23:17 ` [PATCH 31/35] Linux: Move timer_create, timer_delete from librt to libc Florian Weimer
@ 2021-06-03 23:17 ` Florian Weimer
2021-06-03 23:17 ` [PATCH 33/35] Linux: Move timer_gettime " Florian Weimer
` (3 subsequent siblings)
35 siblings, 0 replies; 45+ messages in thread
From: Florian Weimer @ 2021-06-03 23:17 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 +
.../unix/sysv/linux/mips/mips64/librt.abilist | 1 -
.../sysv/linux/mips/mips64/n32/libc.abilist | 2 +
.../sysv/linux/mips/mips64/n64/libc.abilist | 2 +
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 -
78 files changed, 107 insertions(+), 94 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 2d0ad75f69..2c386da431 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 573415ef3b..af1cd38302 100644
--- a/sysdeps/unix/sysv/linux/Versions
+++ b/sysdeps/unix/sysv/linux/Versions
@@ -124,6 +124,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 c4b0749b3f..07e7aa7cb7 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
@@ -2531,6 +2532,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 3b1b10870c..44dfa719d1 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
@@ -2627,6 +2629,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 f3b60500e8..af6b26565d 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
@@ -2290,6 +2291,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 e50811516d..0792cf7e31 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -355,6 +355,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
@@ -2273,6 +2274,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 f9c27d7913..b4895847aa 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -1,4 +1,3 @@
-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 22793bf139..efface2982 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -352,6 +352,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
@@ -2270,6 +2271,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 f9c27d7913..b4895847aa 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -1,4 +1,3 @@
-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 20c8d77ad1..bc37dc3577 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
@@ -2474,6 +2475,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 19de53f9ad..e1fdee6b16 100644
--- a/sysdeps/unix/sysv/linux/csky/librt.abilist
+++ b/sysdeps/unix/sysv/linux/csky/librt.abilist
@@ -1,3 +1,2 @@
-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 5ec5d10912..fddc79b9c5 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
@@ -2427,6 +2428,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 421fa4f34b..22e5dd0ec9 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 231b2601a3..8db3a38d21 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
@@ -2611,6 +2612,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 421fa4f34b..22e5dd0ec9 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 6673c5f715..c9cd0370c5 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
@@ -2465,6 +2467,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 5a614614ff..d88486ac21 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -356,6 +356,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
@@ -2253,6 +2254,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 f9c27d7913..b4895847aa 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -1,4 +1,3 @@
-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 f535986d22..3ed327327c 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
@@ -2554,6 +2555,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 421fa4f34b..22e5dd0ec9 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 b388529f33..8645e96419 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
@@ -2525,6 +2526,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 2a70b5df18..f32831ffaf 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
@@ -1,3 +1,2 @@
-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 e7a54683bd..c3e9839ef8 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
@@ -2522,6 +2523,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 2a70b5df18..f32831ffaf 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
@@ -1,3 +1,2 @@
-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 f626859e72..ee96a63a6e 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
@@ -2519,6 +2520,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 00fd77bbab..a92565949e 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 2857d72362..91ed2f20bb 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
@@ -2517,6 +2518,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/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
index 00fd77bbab..a92565949e 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/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/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index d69903a236..75f1c4eac0 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
@@ -2525,6 +2526,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/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index cea7a13c44..e9710b4079 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
@@ -2519,6 +2520,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/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index fc8f4b2a34..a8d3150c9f 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
@@ -2564,6 +2565,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 926b8661b7..d874b0cfee 100644
--- a/sysdeps/unix/sysv/linux/nios2/librt.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/librt.abilist
@@ -1,3 +1,2 @@
-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 3a3453029b..7a91e15100 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
@@ -2581,6 +2582,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 421fa4f34b..22e5dd0ec9 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 2ba21f757a..948c535117 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
@@ -2614,6 +2615,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 66694044a4..71b1ccd398 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
@@ -2429,6 +2431,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 7ca6196a98..e32bd31860 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
@@ -2727,6 +2728,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 bef6b3bffe..c9f803d38c 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
@@ -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/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 16c290c4e4..86f2c9c940 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
@@ -2492,6 +2493,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 74afe6a900..18bda14ede 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
@@ -2579,6 +2580,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 421fa4f34b..22e5dd0ec9 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 30cc1dc7c9..fcf90947ab 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
@@ -2466,6 +2468,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 c14ecf0792..de7372052a 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
@@ -2434,6 +2435,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 421fa4f34b..22e5dd0ec9 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 8a8cd2fbf3..65fe13865a 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
@@ -2431,6 +2432,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 421fa4f34b..22e5dd0ec9 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 b4c7658329..36b056d6b1 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
@@ -2574,6 +2575,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 2db0b41152..b0c70d8b2a 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 d67359a267..2a69656050 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
@@ -2488,6 +2490,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 2af1d79de7..0fc491c64d 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
@@ -2444,6 +2446,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 c2e52cf10a..a2d178081e 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
@@ -2546,6 +2547,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] 45+ messages in thread
* [PATCH 33/35] Linux: Move timer_gettime from librt to libc
2021-06-03 23:14 [PATCH 00/35] Linux: Move librt into libc Florian Weimer
` (31 preceding siblings ...)
2021-06-03 23:17 ` [PATCH 32/35] Linux: Move timer_getoverrun " Florian Weimer
@ 2021-06-03 23:17 ` Florian Weimer
2021-06-03 23:17 ` [PATCH 34/35] Linux: Move timer_settime " Florian Weimer
` (2 subsequent siblings)
35 siblings, 0 replies; 45+ messages in thread
From: Florian Weimer @ 2021-06-03 23:17 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.
---
include/time.h | 6 +-
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 | 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 | 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 | 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 | 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 +
.../unix/sysv/linux/mips/mips64/librt.abilist | 1 -
.../sysv/linux/mips/mips64/n32/libc.abilist | 2 +
.../sysv/linux/mips/mips64/n64/libc.abilist | 2 +
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 | 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 | 2 +
.../sysv/linux/s390/s390-32/librt.abilist | 1 -
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 | 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 | 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 | 60 ++++++++++++++++---
.../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 -
78 files changed, 131 insertions(+), 99 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 4372bfbd96..92a81b858f 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 2c386da431..3d168f9dc0 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 af1cd38302..27b4b9ec5b 100644
--- a/sysdeps/unix/sysv/linux/Versions
+++ b/sysdeps/unix/sysv/linux/Versions
@@ -125,6 +125,7 @@ libc {
timer_create;
timer_delete;
timer_getoverrun;
+ timer_gettime;
}
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 07e7aa7cb7..132bc7fc1f 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
@@ -2533,6 +2534,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 44dfa719d1..6dfefb451f 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
@@ -2630,6 +2632,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 af6b26565d..bd33035c3e 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
@@ -2292,6 +2293,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 0792cf7e31..a94a299962 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -356,6 +356,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
@@ -2275,6 +2276,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 b4895847aa..b0906ea08a 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.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 efface2982..c6718d3a74 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -353,6 +353,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
@@ -2272,6 +2273,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 b4895847aa..b0906ea08a 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.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 bc37dc3577..dc7aadc27b 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
@@ -2476,6 +2477,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 e1fdee6b16..c3573b2d9e 100644
--- a/sysdeps/unix/sysv/linux/csky/librt.abilist
+++ b/sysdeps/unix/sysv/linux/csky/librt.abilist
@@ -1,2 +1 @@
-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 fddc79b9c5..55ed375cf6 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
@@ -2429,6 +2430,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 22e5dd0ec9..57ce681936 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_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/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 8db3a38d21..8299b919d7 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
@@ -2613,6 +2614,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 22e5dd0ec9..57ce681936 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_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/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 c9cd0370c5..b7c70a41d3 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
@@ -2468,6 +2470,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 d88486ac21..921633dd5b 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -357,6 +357,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
@@ -2255,6 +2256,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 b4895847aa..b0906ea08a 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.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 3ed327327c..1609ab1971 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
@@ -2556,6 +2557,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 22e5dd0ec9..57ce681936 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_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/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 8645e96419..88dfdcf78e 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
@@ -2527,6 +2528,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 f32831ffaf..8f8901c872 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_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 c3e9839ef8..0b2dd534d4 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
@@ -2524,6 +2525,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 f32831ffaf..8f8901c872 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_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 ee96a63a6e..75e7671aee 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
@@ -2521,6 +2522,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 a92565949e..406120e1d8 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_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/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 91ed2f20bb..a1a934c115 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
@@ -2519,6 +2520,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/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
index a92565949e..406120e1d8 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/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/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 75f1c4eac0..6e8f069a52 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
@@ -2527,6 +2528,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/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index e9710b4079..a6ad507d9e 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
@@ -2521,6 +2522,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/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index a8d3150c9f..4ece38246a 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
@@ -2566,6 +2567,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 d874b0cfee..d2298d7d44 100644
--- a/sysdeps/unix/sysv/linux/nios2/librt.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/librt.abilist
@@ -1,2 +1 @@
-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 7a91e15100..43fa1ce5a8 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
@@ -2583,6 +2584,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 22e5dd0ec9..57ce681936 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_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/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 948c535117..53a23d406a 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
@@ -2616,6 +2617,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 71b1ccd398..2c97b206fd 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
@@ -2432,6 +2434,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 e32bd31860..c43d39328d 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
@@ -2729,6 +2730,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 c9f803d38c..2a26211fda 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
@@ -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/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 86f2c9c940..73119b554b 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
@@ -2494,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/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 18bda14ede..16c3fc2e8c 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
@@ -2581,6 +2582,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 22e5dd0ec9..57ce681936 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_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/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 fcf90947ab..2a04b9d2d9 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
@@ -2469,6 +2471,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 de7372052a..fa4a56bedc 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
@@ -2436,6 +2437,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 22e5dd0ec9..57ce681936 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_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/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 65fe13865a..928fb80b5d 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
@@ -2433,6 +2434,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 22e5dd0ec9..57ce681936 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_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/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 36b056d6b1..9fae206d63 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
@@ -2576,6 +2577,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 b0c70d8b2a..e97dcb5e2a 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_gettime F
GLIBC_2.2 timer_settime F
GLIBC_2.3 __librt_version_placeholder F
GLIBC_2.3.4 __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 2a69656050..765fed310f 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
@@ -2491,6 +2493,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..099835b6bd 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)
{
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,18 @@ __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_def (__timer_gettime64)
int
__timer_gettime (timer_t timerid, struct itimerspec *value)
@@ -63,5 +71,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 0fc491c64d..ee6ede5ec0 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
@@ -2447,6 +2449,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 a2d178081e..a37522d210 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
@@ -2548,6 +2549,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] 45+ messages in thread
* [PATCH 34/35] Linux: Move timer_settime from librt to libc
2021-06-03 23:14 [PATCH 00/35] Linux: Move librt into libc Florian Weimer
` (32 preceding siblings ...)
2021-06-03 23:17 ` [PATCH 33/35] Linux: Move timer_gettime " Florian Weimer
@ 2021-06-03 23:17 ` Florian Weimer
2021-06-03 23:17 ` [PATCH 35/35] Linux: Cleanups after librt move Florian Weimer
2021-06-15 20:18 ` [PATCH 00/35] Linux: Move librt into libc Florian Weimer
35 siblings, 0 replies; 45+ messages in thread
From: Florian Weimer @ 2021-06-03 23:17 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.
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 | 10 +++
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 | 2 +
sysdeps/unix/sysv/linux/arm/be/librt.abilist | 2 +-
sysdeps/unix/sysv/linux/arm/le/libc.abilist | 2 +
sysdeps/unix/sysv/linux/arm/le/librt.abilist | 2 +-
sysdeps/unix/sysv/linux/csky/libc.abilist | 2 +
sysdeps/unix/sysv/linux/csky/librt.abilist | 2 +-
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/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 | 2 +
.../sysv/linux/m68k/coldfire/librt.abilist | 2 +-
.../unix/sysv/linux/m68k/m680x0/libc.abilist | 2 +
.../unix/sysv/linux/m68k/m680x0/librt.abilist | 2 +-
.../sysv/linux/microblaze/be/libc.abilist | 2 +
.../sysv/linux/microblaze/be/librt.abilist | 2 +-
.../sysv/linux/microblaze/le/libc.abilist | 2 +
.../sysv/linux/microblaze/le/librt.abilist | 2 +-
.../sysv/linux/mips/mips32/fpu/libc.abilist | 2 +
.../unix/sysv/linux/mips/mips32/librt.abilist | 2 +-
.../sysv/linux/mips/mips32/nofpu/libc.abilist | 2 +
.../unix/sysv/linux/mips/mips64/librt.abilist | 2 +-
.../sysv/linux/mips/mips64/n32/libc.abilist | 2 +
.../sysv/linux/mips/mips64/n64/libc.abilist | 2 +
sysdeps/unix/sysv/linux/nios2/libc.abilist | 2 +
sysdeps/unix/sysv/linux/nios2/librt.abilist | 2 +-
.../linux/powerpc/powerpc32/fpu/libc.abilist | 2 +
.../linux/powerpc/powerpc32/librt.abilist | 2 +-
.../powerpc/powerpc32/nofpu/libc.abilist | 2 +
.../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 | 2 +
.../sysv/linux/s390/s390-32/librt.abilist | 2 +-
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 | 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/librt-compat.c | 2 +-
.../sysv/linux/sparc/sparc32/libc.abilist | 2 +
.../sysv/linux/sparc/sparc32/librt.abilist | 2 +-
.../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 | 70 +++++++++++++++----
.../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 +-
83 files changed, 222 insertions(+), 184 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 92a81b858f..447e0d29eb 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 3d168f9dc0..a41bdb5728 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 27b4b9ec5b..c0ae7d9b4d 100644
--- a/sysdeps/unix/sysv/linux/Versions
+++ b/sysdeps/unix/sysv/linux/Versions
@@ -126,6 +126,7 @@ libc {
timer_delete;
timer_getoverrun;
timer_gettime;
+ timer_settime;
}
GLIBC_2.3.4 {
sched_getaffinity; sched_setaffinity;
@@ -211,6 +212,15 @@ libc {
}
}
+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;
+ }
+}
+
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 132bc7fc1f..546fc700d8 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
@@ -2535,6 +2536,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 6dfefb451f..875d7a2a27 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
@@ -2633,6 +2635,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 bd33035c3e..b29233eb1c 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
@@ -2294,6 +2295,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 a94a299962..e5abc6923e 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -357,6 +357,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
@@ -2277,6 +2278,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 b0906ea08a..0010b34d5c 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -1,2 +1,2 @@
-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 c6718d3a74..a34202d426 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -354,6 +354,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
@@ -2274,6 +2275,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 b0906ea08a..0010b34d5c 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -1,2 +1,2 @@
-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 dc7aadc27b..b064054694 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
@@ -2478,6 +2479,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 c3573b2d9e..1a55315b87 100644
--- a/sysdeps/unix/sysv/linux/csky/librt.abilist
+++ b/sysdeps/unix/sysv/linux/csky/librt.abilist
@@ -1 +1 @@
-GLIBC_2.29 timer_settime 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 55ed375cf6..c4542690e8 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
@@ -2431,6 +2432,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 57ce681936..6d24ce527d 100644
--- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
@@ -1,5 +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.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 8299b919d7..5ab56fc743 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
@@ -2615,6 +2616,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 57ce681936..6d24ce527d 100644
--- a/sysdeps/unix/sysv/linux/i386/librt.abilist
+++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
@@ -1,5 +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.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 b7c70a41d3..1b991555c4 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
@@ -2471,6 +2473,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 921633dd5b..21598ecb8d 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -358,6 +358,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
@@ -2257,6 +2258,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 b0906ea08a..0010b34d5c 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -1,2 +1,2 @@
-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 1609ab1971..76284f00a8 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
@@ -2558,6 +2559,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 57ce681936..6d24ce527d 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
@@ -1,5 +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.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 88dfdcf78e..4aba997bf0 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
@@ -2529,6 +2530,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 8f8901c872..825b445ef7 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
@@ -1 +1 @@
-GLIBC_2.18 timer_settime 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 0b2dd534d4..d61b04b3d6 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
@@ -2526,6 +2527,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 8f8901c872..825b445ef7 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
@@ -1 +1 @@
-GLIBC_2.18 timer_settime 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 75e7671aee..d214e0a486 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
@@ -2523,6 +2524,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 406120e1d8..a7f1518c0b 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/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/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index a1a934c115..c7c7064f67 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
@@ -2521,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/mips/mips64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
index 406120e1d8..a7f1518c0b 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/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/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 6e8f069a52..81665dd457 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
@@ -2529,6 +2530,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/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index a6ad507d9e..a576318238 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
@@ -2523,6 +2524,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/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 4ece38246a..1ecf6d5f0e 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
@@ -2568,6 +2569,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 d2298d7d44..834a4dcc7a 100644
--- a/sysdeps/unix/sysv/linux/nios2/librt.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/librt.abilist
@@ -1 +1 @@
-GLIBC_2.21 timer_settime 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 43fa1ce5a8..fc1df8e60b 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
@@ -2585,6 +2586,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 57ce681936..6d24ce527d 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
@@ -1,5 +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.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 53a23d406a..3e18adf71c 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
@@ -2618,6 +2619,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 2c97b206fd..b2ab0f68a3 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
@@ -2435,6 +2437,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 c43d39328d..0e01094c4e 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
@@ -2731,6 +2732,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 2a26211fda..78c47b3f4e 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
@@ -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/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 73119b554b..7d93424d41 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
@@ -2496,6 +2497,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 16c3fc2e8c..552cc533eb 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
@@ -2583,6 +2584,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 57ce681936..6d24ce527d 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
@@ -1,5 +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.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 2a04b9d2d9..18c9a9db16 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
@@ -2472,6 +2474,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 fa4a56bedc..5ebdf78494 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
@@ -2438,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/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
index 57ce681936..6d24ce527d 100644
--- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
@@ -1,5 +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.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 928fb80b5d..6994abc772 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
@@ -2435,6 +2436,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 57ce681936..6d24ce527d 100644
--- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
@@ -1,5 +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.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 9fae206d63..f3b548fdcf 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
@@ -2578,6 +2579,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 e97dcb5e2a..7ff1ca83b1 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
@@ -1,5 +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 __librt_version_placeholder 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/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 765fed310f..4638f29455 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
@@ -2494,6 +2496,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..15a3c0fefa 100644
--- a/sysdeps/unix/sysv/linux/timer_settime.c
+++ b/sysdeps/unix/sysv/linux/timer_settime.c
@@ -22,7 +22,9 @@
#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,
const struct __itimerspec64 *value,
@@ -30,19 +32,19 @@ __timer_settime64 (timer_t timerid, int flags,
{
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,17 @@ __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_def (__timer_settime64)
int
__timer_settime (timer_t timerid, int flags, const struct itimerspec *value,
@@ -89,5 +97,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 ee6ede5ec0..29f9c73901 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
@@ -2450,6 +2452,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 a37522d210..c5c0a2a843 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
@@ -2550,6 +2551,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] 45+ messages in thread
* [PATCH 35/35] Linux: Cleanups after librt move
2021-06-03 23:14 [PATCH 00/35] Linux: Move librt into libc Florian Weimer
` (33 preceding siblings ...)
2021-06-03 23:17 ` [PATCH 34/35] Linux: Move timer_settime " Florian Weimer
@ 2021-06-03 23:17 ` Florian Weimer
2021-06-15 20:18 ` [PATCH 00/35] Linux: Move librt into libc Florian Weimer
35 siblings, 0 replies; 45+ messages in thread
From: Florian Weimer @ 2021-06-03 23:17 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 e9788d3d4f..f83e7fe757 100644
--- a/elf/Makefile
+++ b/elf/Makefile
@@ -1181,7 +1181,6 @@ localplt-built-dso := $(addprefix $(common-objpfx),\
libc.so \
elf/ld.so \
math/libm.so \
- rt/librt.so \
dlfcn/libdl.so \
resolv/libresolv.so \
)
@@ -1194,6 +1193,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 f7d7a2c7e2..9346115487 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -532,15 +532,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 a41bdb5728..dca20f050d 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 \
@@ -87,6 +92,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)
@@ -94,5 +100,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 634456d489..bdee61611c 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 e4690a7bc4..a5d0099d9a 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 c0ae7d9b4d..d1ac5c4207 100644
--- a/sysdeps/unix/sysv/linux/Versions
+++ b/sysdeps/unix/sysv/linux/Versions
@@ -201,12 +201,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] 45+ messages in thread
* Re: [PATCH 00/35] Linux: Move librt into libc
2021-06-03 23:14 [PATCH 00/35] Linux: Move librt into libc Florian Weimer
` (34 preceding siblings ...)
2021-06-03 23:17 ` [PATCH 35/35] Linux: Cleanups after librt move Florian Weimer
@ 2021-06-15 20:18 ` Florian Weimer
35 siblings, 0 replies; 45+ messages in thread
From: Florian Weimer @ 2021-06-15 20:18 UTC (permalink / raw)
To: Florian Weimer via Libc-alpha
* Florian Weimer via Libc-alpha:
> This series moves librt into libc.
>
> Two functions, shm_open and shm_unlink, are also moved on Hurd. The
> rest is Linux only.
>
> There is some odd stuff going on with 64-bit off_t ABIs with the aio_*
> functions. I tried to make things a little bit more consistent.
>
> mq_notify and timer_create can be simplfied a bit because the fork
> handler can be called directly.
>
> For timer_create MIPS N64 is an outlier, so I had to introduce
> TIMER_T_WAS_INT_COMPAT to flag those 64-bit architectures that underwent
> the int → timer_t transition.
>
> Tested on i686-linux-gnu and x86_64-linux-gnu. Built with
> build-many-glibcs.py.
I'm going to repost this series later this week, rebased on the current
development branch.
There are some non-trivial conflicts with the time64 work.
Thanks,
Florian
^ permalink raw reply [flat|nested] 45+ messages in thread