From 8c1e3b30803c0bcc777de9c33f4a439bd8b5e033 Mon Sep 17 00:00:00 2001 From: Wolfgang Bangerth Date: Thu, 29 Oct 2015 20:25:29 -0500 Subject: [PATCH] Workaround linker bug when compiling expand_instantiations. Do so by removing -fuse-ld=gold from the list of linker flags for this program. --- cmake/scripts/CMakeLists.txt | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/cmake/scripts/CMakeLists.txt b/cmake/scripts/CMakeLists.txt index ad2cf0e876..a51f8cb04c 100644 --- a/cmake/scripts/CMakeLists.txt +++ b/cmake/scripts/CMakeLists.txt @@ -14,8 +14,22 @@ ## --------------------------------------------------------------------- ADD_EXECUTABLE(expand_instantiations_exe expand_instantiations.cc) + +# +# We run into a bug when compiling expand_instantiations with +# -fuse-ld=gold -pthreads, see https://github.com/dealii/dealii/issues/1798 +# Work around this by stripping -fuse-ld=gold out of the build flags +# for the script. This does little harm because linking this one file +# is so exceedingly cheap that there is no speed difference between +# using gold or the old BFD ld linker. +# +# If we are on a system where -fuse-ld=gold simply isn't part of the +# linker flag, filtering this one command out of the list of flags +# does not harm either. +# +STRING(REPLACE "-fuse-ld=gold" "" _expand_instantiations_link_flags ${DEAL_II_LINKER_FLAGS} ) SET_TARGET_PROPERTIES(expand_instantiations_exe PROPERTIES - LINK_FLAGS "${DEAL_II_LINKER_FLAGS}" + LINK_FLAGS "${_expand_instantiations_link_flags}" LINKER_LANGUAGE "CXX" COMPILE_DEFINITIONS "${DEAL_II_DEFINITIONS}" COMPILE_FLAGS "${DEAL_II_CXX_FLAGS}" -- 2.39.5