diff options
65 files changed, 147 insertions, 67 deletions
diff --git a/rt/Makefile b/rt/Makefile index 11924cd9ef..119b757d2a 100644 --- a/rt/Makefile +++ b/rt/Makefile @@ -29,7 +29,6 @@ routines = \ shm_unlink \ librt-routines = \ - aio_fsync \ aio_read \ aio_read64 \ aio_return \ @@ -60,6 +59,7 @@ librt-shared-only-routines = librt-compat $(librt-routines-var) += \ aio_cancel \ aio_error \ + aio_fsync \ aio_misc \ aio_notify \ aio_sigqueue \ diff --git a/rt/Versions b/rt/Versions index aae1d3c47d..1a0aa77fd0 100644 --- a/rt/Versions +++ b/rt/Versions @@ -6,6 +6,8 @@ libc { aio_cancel64; aio_error; aio_error64; + aio_fsync; + aio_fsync64; %endif } GLIBC_2.2 { @@ -19,6 +21,8 @@ libc { aio_init; aio_error; aio_error64; + aio_fsync; + aio_fsync64; %endif shm_open; shm_unlink; @@ -44,10 +48,8 @@ librt { aio_cancel64; aio_error; aio_error64; -%endif aio_fsync; aio_fsync64; -%if !PTHREAD_IN_LIBC aio_init; %endif aio_read; diff --git a/rt/aio_fsync.c b/rt/aio_fsync.c index 5a52e2fec0..73b906a1e2 100644 --- a/rt/aio_fsync.c +++ b/rt/aio_fsync.c @@ -31,10 +31,10 @@ #include <fcntl.h> #include <aio_misc.h> - +#include <shlib-compat.h> int -aio_fsync (int op, struct aiocb *aiocbp) +__aio_fsync (int op, struct aiocb *aiocbp) { if (op != O_DSYNC && __builtin_expect (op != O_SYNC, 0)) { @@ -43,7 +43,7 @@ aio_fsync (int op, struct aiocb *aiocbp) } /* Verify that this is an open file descriptor. */ - if (__glibc_unlikely (fcntl (aiocbp->aio_fildes, F_GETFL) == -1)) + if (__glibc_unlikely (__fcntl (aiocbp->aio_fildes, F_GETFL) == -1)) { __set_errno (EBADF); return -1; @@ -54,4 +54,14 @@ aio_fsync (int op, struct aiocb *aiocbp) ? -1 : 0); } -weak_alias (aio_fsync, aio_fsync64) +#if PTHREAD_IN_LIBC +versioned_symbol (libc, __aio_fsync, aio_fsync, GLIBC_2_34); +versioned_symbol (libc, __aio_fsync, aio_fsync64, GLIBC_2_34); +# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_34) +compat_symbol (librt, __aio_fsync, aio_fsync, GLIBC_2_1); +compat_symbol (librt, __aio_fsync, aio_fsync64, GLIBC_2_1); +# endif +#else /* !PTHREAD_IN_LIBC */ +strong_alias (__aio_fsync, aio_fsync) +weak_alias (__aio_fsync, aio_fsync64) +#endif /* !PTHREAD_IN_LIBC */ diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist index e19168ddc5..cf141fdf08 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist @@ -593,6 +593,8 @@ GLIBC_2.17 aio_cancel F GLIBC_2.17 aio_cancel64 F GLIBC_2.17 aio_error F GLIBC_2.17 aio_error64 F +GLIBC_2.17 aio_fsync F +GLIBC_2.17 aio_fsync64 F GLIBC_2.17 aio_init F GLIBC_2.17 alarm F GLIBC_2.17 aligned_alloc F @@ -2357,6 +2359,8 @@ GLIBC_2.34 aio_cancel F GLIBC_2.34 aio_cancel64 F GLIBC_2.34 aio_error F GLIBC_2.34 aio_error64 F +GLIBC_2.34 aio_fsync F +GLIBC_2.34 aio_fsync64 F GLIBC_2.34 aio_init F GLIBC_2.34 call_once F GLIBC_2.34 cnd_broadcast F diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist index 39e753fdde..1519e07346 100644 --- a/sysdeps/unix/sysv/linux/aarch64/librt.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/librt.abilist @@ -1,6 +1,4 @@ GLIBC_2.17 __mq_open_2 F -GLIBC_2.17 aio_fsync F -GLIBC_2.17 aio_fsync64 F GLIBC_2.17 aio_read F GLIBC_2.17 aio_read64 F GLIBC_2.17 aio_return F diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist index 4efbbef2dc..8d58f3ea87 100644 --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist @@ -1506,6 +1506,8 @@ GLIBC_2.1 aio_cancel F GLIBC_2.1 aio_cancel64 F GLIBC_2.1 aio_error F GLIBC_2.1 aio_error64 F +GLIBC_2.1 aio_fsync F +GLIBC_2.1 aio_fsync64 F GLIBC_2.1 aio_init F GLIBC_2.1 alphasort64 F GLIBC_2.1 argp_err_exit_status D 0x4 @@ -2452,6 +2454,8 @@ GLIBC_2.34 aio_cancel F GLIBC_2.34 aio_cancel64 F GLIBC_2.34 aio_error F GLIBC_2.34 aio_error64 F +GLIBC_2.34 aio_fsync F +GLIBC_2.34 aio_fsync64 F GLIBC_2.34 aio_init F GLIBC_2.34 call_once F GLIBC_2.34 cnd_broadcast F diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist index 09ba914d65..f4dd36f97b 100644 --- a/sysdeps/unix/sysv/linux/alpha/librt.abilist +++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist @@ -1,5 +1,3 @@ -GLIBC_2.1 aio_fsync F -GLIBC_2.1 aio_fsync64 F GLIBC_2.1 aio_read F GLIBC_2.1 aio_read64 F GLIBC_2.1 aio_return F diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist index 60fec8ba00..7579936aca 100644 --- a/sysdeps/unix/sysv/linux/arc/libc.abilist +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist @@ -554,6 +554,8 @@ GLIBC_2.32 aio_cancel F GLIBC_2.32 aio_cancel64 F GLIBC_2.32 aio_error F GLIBC_2.32 aio_ |
