summaryrefslogtreecommitdiff
path: root/include/stdio.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/stdio.h
parentb4560a6da918ce3b63e87a78a3a3956f514e24ce (diff)
downloadmusl-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/stdio.h')
-rw-r--r--include/stdio.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/include/stdio.h b/include/stdio.h
index dca8acc0..355f4259 100644
--- a/include/stdio.h
+++ b/include/stdio.h
@@ -167,6 +167,18 @@ char *fgets_unlocked(char *, int, FILE *);
int fputs_unlocked(const char *, FILE *);
#endif
+#ifdef _LARGEFILE64_SOURCE
+#define tmpfile64 tmpfile
+#define fopen64 fopen
+#define freopen64 freopen
+#define fseeko64 fseeko
+#define ftello64 ftello
+#define fgetpos64 fgetpos
+#define fsetpos64 fsetpos
+#define fpos64_t fpos_t
+#define off64_t off_t
+#endif
+
#ifdef __cplusplus
}
#endif