versionsort64, aio*64 and lio*64 symbols were missing, they are only needed for glibc ABI compatibility, on the source level dirent.h and aio.h already redirect them.
@@ -1,6 +1,7 @@
#include <aio.h>
#include <pthread.h>
#include <errno.h>
+#include "libc.h"
int aio_cancel(int fd, struct aiocb *cb)
{
@@ -14,3 +15,5 @@ int aio_cancel(int fd, struct aiocb *cb)
}
return cb->__err==EINPROGRESS ? AIO_NOTCANCELED : AIO_ALLDONE;
+
+LFS64(aio_cancel);
@@ -1,6 +1,9 @@
int aio_error(const struct aiocb *cb)
return cb->__err;
+LFS64(aio_error);
@@ -1,5 +1,6 @@
int aio_fsync(int op, struct aiocb *cb)
@@ -7,3 +8,5 @@ int aio_fsync(int op, struct aiocb *cb)
errno = EINVAL;
return -1;
+LFS64(aio_fsync);
@@ -105,3 +105,6 @@ int aio_write(struct aiocb *cb)
cb->aio_lio_opcode = LIO_WRITE;
return new_req(cb);
+LFS64(aio_read);
+LFS64(aio_write);
ssize_t aio_return(struct aiocb *cb)
return cb->__ret;
+LFS64(aio_return);
#include "pthread_impl.h"
/* Due to the requirement that aio_suspend be async-signal-safe, we cannot
* use any locks, wait queues, etc. that would make it more efficient. The
@@ -55,3 +56,5 @@ int aio_suspend(const struct aiocb *const cbs[], int cnt, const struct timespec
+LFS64(aio_suspend);
@@ -141,3 +141,4 @@ int lio_listio(int mode, struct aiocb *restrict const *restrict cbs, int cnt, st
return 0;
+LFS64(lio_listio);
@@ -1,8 +1,12 @@
#define _GNU_SOURCE
#include <string.h>
#include <dirent.h>
int versionsort(const struct dirent **a, const struct dirent **b)
return strverscmp((*a)->d_name, (*b)->d_name);
+#undef versionsort64
+LFS64(versionsort);