id summary reporter owner description type status milestone component version severity resolution keywords cc 13230 _FILE_OFFSET_BITS=64 breaks compilation with Android NDK r15 and API<24 d.mikhirev@… Beman Dawes "Behavior of `_FILE_OFFSET_BITS` in Android NDK is described at android.googlesource.com/platform/bionic/+/master/docs/32-bit-abi.md > Android support for `_FILE_OFFSET_BITS=64` (which turns off_t into `off64_t` and replaces each `off_t` function with its `off64_t` counterpart, such as `lseek` in the source becoming `lseek64` at runtime) was added late. Even when it became available for the platform, it wasn‘t available from the NDK until !r15. Before NDK !r15, `_FILE_OFFSET_BITS=64` silently did nothing: all code compiled with that was actually using a 32-bit `off_t`. With a new enough NDK, the situation becomes complicated. If you’re targeting an API before 21, almost all functions that take an `off_t` become unavailable. You‘ve asked for their 64-bit equivalents, and none of them (except `lseek`/`lseek64`) exist. As you increase your target API level, you’ll have more and more of the functions available. API 12 adds some of the `` functions, API 21 adds mmap, and by API 24 you have everything including ``. In `filesystem/src/operations.cpp` `_FILE_OFFSET_BITS` is unconditionally defined to `64` in hope that > at worst, these defines may have no effect It actually breaks compilation with Android NDK !r15 if `__ANDROID_API__` is less than 24." Bugs new To Be Determined filesystem Boost 1.65.0 Problem