Index: CMakeLists.txt =================================================================== --- CMakeLists.txt +++ CMakeLists.txt @@ -832,6 +832,11 @@ add_definitions("-D_LARGE_FILE_API") endif() +# Build with _FILE_OFFSET_BITS=64 on Solaris to match g++ >= 9. +if (UNIX AND ${CMAKE_SYSTEM_NAME} MATCHES "SunOS") + add_definitions("-D_FILE_OFFSET_BITS=64") +endif() + # Work around a broken bfd ld behavior. When linking a binary with a # foo.so library, it will try to find any library that foo.so uses and # check its symbols. This is wasteful (the check was done when foo.so Index: cmake/config-ix.cmake =================================================================== --- cmake/config-ix.cmake +++ cmake/config-ix.cmake @@ -30,6 +30,12 @@ list(APPEND CMAKE_REQUIRED_DEFINITIONS "-D_LARGE_FILE_API") endif() +# Do checks with _FILE_OFFSET_BITS=64 on Solaris, because we will build +# with those too. +if (UNIX AND ${CMAKE_SYSTEM_NAME} MATCHES "SunOS") + list(APPEND CMAKE_REQUIRED_DEFINITIONS "-D_FILE_OFFSET_BITS=64") +endif() + # include checks check_include_file(dlfcn.h HAVE_DLFCN_H) check_include_file(errno.h HAVE_ERRNO_H)