From 496919b12f2dc0733e215cc2f08266474c87719e Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Fri, 25 Jun 2021 10:30:36 +0200 Subject: Linux: Move aio_write, aio_write64 into libc 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. Reviewed-by: Adhemerva Zanella --- rt/aio_write.c | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) (limited to 'rt/aio_write.c') diff --git a/rt/aio_write.c b/rt/aio_write.c index ea55f0dbbc..5cf7c67eab 100644 --- a/rt/aio_write.c +++ b/rt/aio_write.c @@ -17,14 +17,40 @@ License along with the GNU C Library; if not, see . */ -#include +#include +#if __WORDSIZE == 64 +# define aio_write64 XXX +# include +/* And undo the hack. */ +# undef aio_write64 +#else +# include +#endif #include - +#include 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 */ -- cgit 1.4.1