From 8d3c740f26b1122a60e1ad21576f152013535708 Mon Sep 17 00:00:00 2001 From: Rainer Orth Date: Tue, 30 Jul 2019 10:33:20 +0000 Subject: [PATCH] [CMake] Define _FILE_OFFSET_BITS=64 on Solaris This is the compantion patch to https://reviews.llvm.org/D64482, needed to ensure that builds with host compilers that don't yet predefine _FILE_OFFSET_BITS=64 on Solaris succeed by always making the host and freshly built clang consistent. Tested on x86_64-pc-solaris2.11. Differential Revision: https://reviews.llvm.org/D64483 llvm-svn: 367304 --- llvm/CMakeLists.txt | 5 +++++ llvm/cmake/config-ix.cmake | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt index 642732f..5ea6c57 100644 --- a/llvm/CMakeLists.txt +++ b/llvm/CMakeLists.txt @@ -833,6 +833,11 @@ if (UNIX AND ${CMAKE_SYSTEM_NAME} MATCHES "AIX") 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 diff --git a/llvm/cmake/config-ix.cmake b/llvm/cmake/config-ix.cmake index 0218d42..4c585b8 100644 --- a/llvm/cmake/config-ix.cmake +++ b/llvm/cmake/config-ix.cmake @@ -30,6 +30,12 @@ if (UNIX AND ${CMAKE_SYSTEM_NAME} MATCHES "AIX") 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) -- 2.7.4