Compiler message:
tif_unix.c:170:12: error: call to 'mmap' declared with attribute error:
mmap is not available with _FILE_OFFSET_BITS=64 when using GCC until android-21.
Either raise your minSdkVersion, disable _FILE_OFFSET_BITS=64, or switch to Clang.
# Large file support
if(UNIX OR MINGW)
- # This might not catch every possibility catered for by
- # AC_SYS_LARGEFILE.
- add_definitions(-D_FILE_OFFSET_BITS=64)
- set(FILE_OFFSET_BITS 64)
+ if(ANDROID AND (ANDROID_NATIVE_API_LEVEL LESS 21) AND (NOT "${CMAKE_CXX_COMPILER_ID}" MATCHES Clang))
+ # Android NDK build problem: 'mmap' issue with GCC and API<21
+ else()
+ # This might not catch every possibility catered for by
+ # AC_SYS_LARGEFILE.
+ add_definitions(-D_FILE_OFFSET_BITS=64)
+ set(FILE_OFFSET_BITS 64)
+ endif()
endif()
# Documentation install directory (default to cmake project docdir)
# endif
#endif
-/* Number of bits in a file offset, on hosts where this is settable. */
-#define _FILE_OFFSET_BITS @FILE_OFFSET_BITS@
-
/* Define to `__inline__' or `__inline' if that's what the C compiler
calls it, or to nothing if 'inline' is not supported under any name. */
#ifndef __cplusplus