Patch-Source: https://github.com/chimera-linux/cports/commit/77fdf96a59bddfca32b6737335f01afaf64ff380 reference: https://maskray.me/blog/2021-05-09-fno-semantic-interposition in general, this is not '100% safe'. however: - we only use clang in a few places - chimera has had good success with this flag and not seen issues so, it should be fine to default in our clang too. it should bring some noticable performance gains paired with pic. -- From 73b8ed17fed2145b29bde40a0c658712e34d48c3 Mon Sep 17 00:00:00 2001 From: Daniel Kolesa Date: Tue, 28 Feb 2023 01:59:26 +0100 Subject: [PATCH] clang: default to -fno-semantic-interposition on supported targets --- clang/lib/Driver/ToolChains/Clang.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp index 3704ed85..d3d67a22 100644 --- a/lib/Driver/ToolChains/Clang.cpp +++ b/lib/Driver/ToolChains/Clang.cpp @@ -5072,9 +5072,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, // The supported targets need to call AsmPrinter::getSymbolPreferLocal. bool SupportsLocalAlias = Triple.isAArch64() || Triple.isRISCV() || Triple.isX86(); - if (!A) - CmdArgs.push_back("-fhalf-no-semantic-interposition"); - else if (A->getOption().matches(options::OPT_fsemantic_interposition)) + if (A && A->getOption().matches(options::OPT_fsemantic_interposition)) A->render(Args, CmdArgs); else if (!SupportsLocalAlias) CmdArgs.push_back("-fhalf-no-semantic-interposition"); -- 2.39.0