about summary refs log tree commit diff
path: root/include/aio.h
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2012-05-04 00:13:23 -0400
committerRich Felker <dalias@aerifal.cx>2012-05-04 00:13:23 -0400
commit2dd8d5e1b8ba1118ff1782e96545cb8a2318592c (patch)
tree529419d70eedc4edbaae416c262806839ac3b630 /include/aio.h
parentb4560a6da918ce3b63e87a78a3a3956f514e24ce (diff)
downloadmusl-2dd8d5e1b8ba1118ff1782e96545cb8a2318592c.tar.gz
musl-2dd8d5e1b8ba1118ff1782e96545cb8a2318592c.tar.xz
musl-2dd8d5e1b8ba1118ff1782e96545cb8a2318592c.zip
add support for ugly *64 functions with _LARGEFILE64_SOURCE
musl does not support legacy 32-bit-off_t whatsoever. off_t is always
64 bit, and correct programs that use off_t and the standard functions
will just work out of the box. (on glibc, they would require
-D_FILE_OFFSET_BITS=64 to work.) however, some programs instead define
_LARGEFILE64_SOURCE and use alternate versions of all the standard
types and functions with "64" appended to their names.

we do not want code to actually get linked against these functions
(it's ugly and inconsistent), so macros are used instead of prototypes
with weak aliases in the library itself. eventually the weak aliases
may be added at the library level for the sake of using code that was
originally built against glibc, but the macros will still be the
desired solution in the headers.
Diffstat (limited to 'include/aio.h')
-rw-r--r--include/aio.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/include/aio.h b/include/aio.h
index f28ee369..ffb357c9 100644
--- a/include/aio.h
+++ b/include/aio.h
@@ -48,6 +48,19 @@ int aio_fsync(int, struct aiocb *);
 
 int lio_listio(int, struct aiocb *const [], int, struct sigevent *);
 
+#ifdef _LARGEFILE64_SOURCE
+#define aiocb64 aiocb
+#define aio_read64 aio_read
+#define aio_write64 aio_write
+#define aio_error64 aio_error
+#define aio_return64 aio_return
+#define aio_cancel64 aio_cancel
+#define aio_suspend64 aio_suspend
+#define aio_fsync64 aio_fsync
+#defile lio_listio64 lio_listio
+#define off64_t off_t
+#endif
+
 #ifdef __cplusplus
 }
 #endif