From: Vsevolod Stakhov Date: Thu, 14 Jul 2016 12:57:10 +0000 (+0100) Subject: [Fix] Further fixes for lto and static linking X-Git-Tag: 1.3.0~87 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=1dd5531694205465a43232b1fa9aa3fa60b4982a;p=rspamd.git [Fix] Further fixes for lto and static linking --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 5d126659d..b3df8a7bb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -649,7 +649,7 @@ ProcessPackage(GLIB2 LIBRARY glib-2.0 INCLUDE glib.h ROOT ${GLIB_ROOT_DIR} MODULES glib-2.0>=2.28) ProcessPackage(GMODULE2 LIBRARY gmodule-2.0 INCLUDE glib.h INCLUDE_SUFFIXES include/glib - ROOT ${GLIB_ROOT_DIR} MODULES gmodule-2.0>=2.28) + ROOT ${GLIB_ROOT_DIR} MODULES gmodule-no-export-2.0>=2.28 gmodule-2.0>=2.28) IF(ENABLE_PCRE2 MATCHES "ON") ProcessPackage(PCRE LIBRARY pcre2 INCLUDE pcre2.h INCLUDE_SUFFIXES include/pcre2 @@ -793,13 +793,26 @@ ENDIF(SUPPORT_FPIC) # Optimization flags IF(NOT CMAKE_C_OPT_FLAGS) IF(ENABLE_OPTIMIZATION MATCHES "ON") - CHECK_C_COMPILER_FLAG(-flto SUPPORT_FLTO) - IF(SUPPORT_FLTO) + CHECK_C_COMPILER_FLAG(-flto SUPPORT_FLTO) + IF(SUPPORT_FLTO) + IF(NOT CMAKE_GCC_AR OR NOT CMAKE_GCC_RANLIB) + FIND_PROGRAM(CMAKE_GCC_AR NAMES "gcc-ar") + FIND_PROGRAM(CMAKE_GCC_AR NAMES "gcc-ranlib") + MARK_AS_ADVANCED(CMAKE_GCC_AR CMAKE_GCC_RANLIB) + ENDIF() + IF(CMAKE_GCC_AR AND CMAKE_GCC_RANLIB) SET(CMAKE_C_OPT_FLAGS "-O3 -fstrict-aliasing -flto") SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -flto") - ELSE() - SET(CMAKE_C_OPT_FLAGS "-O3 -fstrict-aliasing") + SET(CMAKE_C_ARCHIVE_CREATE "${CMAKE_GCC_AR} cr ") + SET(CMAKE_C_ARCHIVE_APPEND_IPO "${CMAKE_GCC_AR} r ") + SET(CMAKE_C_ARCHIVE_FINISH_IPO "${CMAKE_GCC_RANLIB} ") + SET(CMAKE_CXX_ARCHIVE_CREATE "${CMAKE_GCC_AR} cr ") + SET(CMAKE_CXX_ARCHIVE_APPEND_IPO "${CMAKE_GCC_AR} r ") + SET(CMAKE_CXX_ARCHIVE_FINISH_IPO "${CMAKE_GCC_RANLIB} ") ENDIF() + ELSE() + SET(CMAKE_C_OPT_FLAGS "-O3 -fstrict-aliasing") + ENDIF() ELSE(ENABLE_OPTIMIZATION MATCHES "ON") IF(DEBUG_MODE MATCHES "ON") SET(CMAKE_C_OPT_FLAGS "-g -O0 -fstrict-aliasing")