1*635a8641SAndroid Build Coastguard Worker# On Android, lseek64 should be used, whlie lseek should be in other platfrom. 2*635a8641SAndroid Build Coastguard Worker 3*635a8641SAndroid Build Coastguard Worker--- a/base/files/file_posix.cc 4*635a8641SAndroid Build Coastguard Worker+++ b/base/files/file_posix.cc 5*635a8641SAndroid Build Coastguard Worker@@ -189,7 +189,9 @@ int64_t File::Seek(Whence whence, int64_t offset) { 6*635a8641SAndroid Build Coastguard Worker 7*635a8641SAndroid Build Coastguard Worker SCOPED_FILE_TRACE_WITH_SIZE("Seek", offset); 8*635a8641SAndroid Build Coastguard Worker 9*635a8641SAndroid Build Coastguard Worker-#if defined(OS_ANDROID) 10*635a8641SAndroid Build Coastguard Worker+// Additionally check __BIONIC__ since older versions of Android don't define 11*635a8641SAndroid Build Coastguard Worker+// _FILE_OFFSET_BITS. 12*635a8641SAndroid Build Coastguard Worker+#if _FILE_OFFSET_BITS != 64 || defined(__BIONIC__) 13*635a8641SAndroid Build Coastguard Worker static_assert(sizeof(int64_t) == sizeof(off64_t), "off64_t must be 64 bits"); 14*635a8641SAndroid Build Coastguard Worker return lseek64(file_.get(), static_cast<off64_t>(offset), 15*635a8641SAndroid Build Coastguard Worker static_cast<int>(whence)); 16*635a8641SAndroid Build Coastguard Worker@@ -275,7 +277,7 @@ int File::Write(int64_t offset, const char* data, int size) { 17*635a8641SAndroid Build Coastguard Worker int bytes_written = 0; 18*635a8641SAndroid Build Coastguard Worker int rv; 19*635a8641SAndroid Build Coastguard Worker do { 20*635a8641SAndroid Build Coastguard Worker-#if defined(OS_ANDROID) 21*635a8641SAndroid Build Coastguard Worker+#if _FILE_OFFSET_BITS != 64 || defined(__BIONIC__) 22*635a8641SAndroid Build Coastguard Worker // In case __USE_FILE_OFFSET64 is not used, we need to call pwrite64() 23*635a8641SAndroid Build Coastguard Worker // instead of pwrite(). 24*635a8641SAndroid Build Coastguard Worker static_assert(sizeof(int64_t) == sizeof(off64_t),