diff options
author | Rich Felker <dalias@aerifal.cx> | 2012-05-04 00:13:23 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2012-05-04 00:13:23 -0400 |
commit | 2dd8d5e1b8ba1118ff1782e96545cb8a2318592c (patch) | |
tree | 529419d70eedc4edbaae416c262806839ac3b630 /include/dirent.h | |
parent | b4560a6da918ce3b63e87a78a3a3956f514e24ce (diff) | |
download | musl-2dd8d5e1b8ba1118ff1782e96545cb8a2318592c.tar.gz |
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/dirent.h')
-rw-r--r-- | include/dirent.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/include/dirent.h b/include/dirent.h index 7b70abd4..d0a6b44e 100644 --- a/include/dirent.h +++ b/include/dirent.h @@ -50,6 +50,16 @@ int scandir(const char *, struct dirent ***, int (*)(const struct dirent *), int #define DTTOIF(x) ((x)<<12) #endif +#ifdef _LARGEFILE64_SOURCE +#define dirent64 dirent +#define readdir64 readdir +#define readdir64_r readdir_r +#define scandir64 scandir +#define alphasort64 alphasort +#define off64_t off_t +#define ino64_t ino_t +#endif + #ifdef __cplusplus } #endif |