From: Matthias Maier Date: Fri, 13 May 2022 20:57:15 +0000 (-0500) Subject: CMake: remove -Wl,--as-needed flag setup X-Git-Tag: v9.4.0-rc1~217^2 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=609fa4feb42b6c273e2c4c0009e5ac74c0b706a8;p=dealii.git CMake: remove -Wl,--as-needed flag setup The issue with the current handling of the --Wl,--as-needed flag is the fact that we set it internally but later on filter it (unconditionally) for user projects. This has the issue that it is currently not possible to set --Wl,--as-needed by hand when needed. Thus, let us simply remove the setup and the workarounds. --- diff --git a/cmake/config/CMakeLists.txt b/cmake/config/CMakeLists.txt index 54763e068c..8255cf2576 100644 --- a/cmake/config/CMakeLists.txt +++ b/cmake/config/CMakeLists.txt @@ -64,12 +64,6 @@ INSTALL(FILES ${_macros} # # ######################################################################## -# -# Do not force --as-needed for executables on user side: -# - -STRIP_FLAG(DEAL_II_LINKER_FLAGS "-Wl,--as-needed") - # # Strip -Wno-deprecated-declarations from DEAL_II_CXX_FLAGS so that # deprecation warnings are actually shown for user code: diff --git a/cmake/macros/macro_check_compiler_setup.cmake b/cmake/macros/macro_check_compiler_setup.cmake index 6572e56356..ef8c3a3d67 100644 --- a/cmake/macros/macro_check_compiler_setup.cmake +++ b/cmake/macros/macro_check_compiler_setup.cmake @@ -26,29 +26,11 @@ # MACRO(CHECK_COMPILER_SETUP _compiler_flags_unstr _linker_flags_unstr _var) - # - # Strip -Wl,--as-needed from the list of linker flags. This works around - # a serious regression with ld.bfd in combination with -Wl,--as-needed - # when compiling a simple - # - # int main () { return 0; } - # - # and linking against a *huge* list of (entirely unused) libraries. - # - # Ideally, one should use ld.gold [1] instead of ld.bfd - but because - # this is not always possible, simply disable -Wl,--as-needed. - # - # See https://github.com/dealii/dealii/issues/3686 - # - # [1] https://lwn.net/Articles/274859/ - # - STRING(REPLACE "-Wl,--as-needed" "" _linker_flags "${_linker_flags_unstr}") - # # Strip leading and trailing whitespace to make CMake 2.8.8 happy # STRING(STRIP "${_compiler_flags_unstr}" _compiler_flags) - STRING(STRIP "${_linker_flags}" _linker_flags) + STRING(STRIP "${_linker_flags_unstr}" _linker_flags) # # Rerun this test if flags have changed: diff --git a/cmake/setup_compiler_flags_gnu.cmake b/cmake/setup_compiler_flags_gnu.cmake index 737a90b821..bd28e195b2 100644 --- a/cmake/setup_compiler_flags_gnu.cmake +++ b/cmake/setup_compiler_flags_gnu.cmake @@ -65,12 +65,6 @@ ENABLE_IF_SUPPORTED(DEAL_II_CXX_FLAGS "-pedantic") # ENABLE_IF_SUPPORTED(DEAL_II_CXX_FLAGS "-fPIC") -# -# Check whether the -as-needed flag is available. If so set it to link -# the deal.II library with it. -# -ENABLE_IF_LINKS(DEAL_II_LINKER_FLAGS "-Wl,--as-needed") - # # Setup various warnings: # diff --git a/cmake/setup_compiler_flags_intel.cmake b/cmake/setup_compiler_flags_intel.cmake index b83493f848..817fe5e169 100644 --- a/cmake/setup_compiler_flags_intel.cmake +++ b/cmake/setup_compiler_flags_intel.cmake @@ -39,12 +39,6 @@ ENDIF() # ENABLE_IF_SUPPORTED(DEAL_II_CXX_FLAGS "-fpic") -# -# Check whether the -as-needed flag is available. If so set it to link -# the deal.II library with it. -# -ENABLE_IF_LINKS(DEAL_II_LINKER_FLAGS "-Wl,--as-needed") - # # Enable verbose warnings: #