This solves some of the problems arising from Bionic's off_t being 32 bits wide despite _FILE_OFFSET_BITS==64. See BusyBox bug #6908.
Note that this doesn't solve all such problems since Bionic lacks 64-bit variants of many standard I/O functions: open, creat, lockf, posix_fadvise, posix_fallocate, truncate, sendfile, getrlimit, setrlimit, fopen, freopen, fseeko, ftello, fgetpos, fsetpos, mkstemp. --- include/platform.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/include/platform.h b/include/platform.h index 9893536..1744b3c 100644 --- a/include/platform.h +++ b/include/platform.h @@ -491,6 +491,25 @@ typedef unsigned smalluint; # undef HAVE_NET_ETHERNET_H #endif +/* Bionic system headers lack transparent LFS migrations. */ +#if defined(__BIONIC__) && defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64 +/* from <unistd.h> */ +# define lseek lseek64 +# define pread pread64 +# define pwrite pwrite64 +# define ftruncate ftruncate64 +/* from <sys/types.h> */ +# define off_t off64_t +# define ino_t ino64_t +# define blkcnt_t blkcnt64_t +# define fsblkcnt_t fsblkcnt64_t +# define fsfilcnt_t fsfilcnt64_t +typedef uint64_t ino_t; +typedef uint64_t blkcnt_t; +typedef uint64_t fsblkcnt_t; +typedef uint64_t fsfilcnt_t; +#endif + /* * Now, define prototypes for all the functions defined in platform.c * These must come after all the HAVE_* macros are defined (or not) -- 2.0.5 _______________________________________________ busybox mailing list busybox@busybox.net http://lists.busybox.net/mailman/listinfo/busybox