X-Git-Url: http://git.tdb.fi/?p=libs%2Fcore.git;a=blobdiff_plain;f=source%2Fio%2Funix%2Fseekable.cpp;h=a402742a52338b7ba2d5f17cd639d6b37ca18c84;hp=2c17114df3d617a1037e3ee6167cff051249fc88;hb=521964476dfb940e197970fa921e515f7dfa3eab;hpb=609c9a508cfdc7b42c46c4f21d17639204165a00 diff --git a/source/io/unix/seekable.cpp b/source/io/unix/seekable.cpp index 2c17114..a402742 100644 --- a/source/io/unix/seekable.cpp +++ b/source/io/unix/seekable.cpp @@ -1,4 +1,4 @@ -#define _LARGEFILE64_SOURCE +#define _FILE_OFFSET_BITS 64 #include #include #include @@ -29,10 +29,17 @@ int sys_seek_type(SeekType st) namespace Msp { namespace IO { +/* Android libc does not recognize _FILE_OFFSET_BITS so this hack is necessary +to get 64-bit seeks. */ +#ifdef __ANDROID__ +#define off_t off64_t +#define lseek lseek64 +#endif + SeekOffset sys_seek(Handle &handle, SeekOffset offset, SeekType type) { - off64_t ret = lseek64(*handle, offset, sys_seek_type(type)); - if(ret==(off64_t)-1) + off_t ret = lseek(*handle, offset, sys_seek_type(type)); + if(ret==(off_t)-1) { if(errno==EINVAL) throw bad_seek(offset, type);