From ac331541486f35c6a54d47abd2d996e897270a85 Mon Sep 17 00:00:00 2001 From: Guillaume Giudicelli Date: Thu, 30 Jan 2025 08:17:16 -0700 Subject: [PATCH] Add a linking test before adding linking flags to disable compact unwinding --- acsm_compiler_flags.m4 | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/acsm_compiler_flags.m4 b/acsm_compiler_flags.m4 index e35a37d..2def975 100644 --- a/acsm_compiler_flags.m4 +++ b/acsm_compiler_flags.m4 @@ -587,7 +587,21 @@ AC_DEFUN([ACSM_SET_CXX_FLAGS], [clang], [ dnl On Darwin with clang + gfortran, we get very many warnings for compact unwinding issues dnl We deliberately keep relying on the less performant dwarf unwinding until the over-production of warnings is solved. - ACSM_LDFLAGS="-Wl,-keep_dwarf_unwind -Wl,-no_compact_unwind" + OLD_ACSM_LDFLAGS="$ACSM_LDFLAGS" + ACSM_LDFLAGS+=" -Wl,-femit-dwarf-unwind=no_compact_unwind" + AC_LINK_IFELSE([AC_LANG_SOURCE([[ + void main(int argc, char **argv) + { + std::cout << "Hello World!" << std::endl; + } + ]])], + [ + AC_MSG_RESULT(<<>>) + ],[ + dnl Failed to link with new flags, remove them + ACSM_LDFLAGS="$OLD_ACSM_LDFLAGS" + ]) + ACSM_CXXFLAGS_OPT="$ACSM_CXXFLAGS_OPT -O2 -felide-constructors -Qunused-arguments -Wunused-parameter -Wunused" dnl devel flags are added on two lines since there are so many