From: Boris Ranto Date: Thu, 5 Aug 2021 06:36:21 +0000 (+0200) Subject: cmake: Check -flto flags X-Git-Tag: v16.2.11~358^2~17 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=33d249c245f6dcb6ce342b595e9936d255d5cad2;p=ceph.git cmake: Check -flto flags We should check if -flto-partition=none is defined when the compiler does not support symver attribute and fail the build if it is not. Fixes: https://tracker.ceph.com/issues/40060 Co-authored-by: Kefu Chai Signed-off-by: Boris Ranto (cherry picked from commit 5bcfd5caeee90df18809a6f4c9a2e7e8f7734f8b) --- diff --git a/cmake/modules/CephChecks.cmake b/cmake/modules/CephChecks.cmake index e46caf88274d..419edc2dc667 100644 --- a/cmake/modules/CephChecks.cmake +++ b/cmake/modules/CephChecks.cmake @@ -154,6 +154,12 @@ __attribute__((__symver__ (\"func@v2\"))) void func_v2() {}; int main() {}" HAVE_ATTR_SYMVER) + if(NOT HAVE_ATTR_SYMVER) + if(CMAKE_CXX_FLAGS MATCHES "-flto" AND NOT CMAKE_CXX_FLAGS MATCHES "-flto-partition=none") + # https://tracker.ceph.com/issues/40060 + message(FATAL_ERROR "please pass -flto-partition=none as part of CXXFLAGS") + endif() + endif() set(CMAKE_REQUIRED_FLAGS -Wl,--version-script=${CMAKE_CURRENT_BINARY_DIR}/version_script.txt) check_c_source_compiles(" void func_v1() {}