]> xenbits.xensource.com Git - people/aperard/ovmf.git/commitdiff
BaseTools/tools_def ARM: Disable stack protector with CLANGDWARF
authorArd Biesheuvel <ardb@kernel.org>
Mon, 16 Sep 2024 16:39:35 +0000 (18:39 +0200)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Wed, 18 Sep 2024 02:17:26 +0000 (02:17 +0000)
Clang insists on emitting a movt/movw pair into the function
pro/epilogues to load the stack protector reference value from memory,
and this movt/movw pair may turn out non-consecutively in the
instruction stream.

The resulting symbol reference cannot be fixed up by GenFw, as PE/COFF
always treats movt/movw as a pair, and the ELF-to-PE conversion will
therefore fail.

Just disable the stack protector when using CLANGDWARF.

Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
BaseTools/Conf/tools_def.template

index 87f035a56e6432f734802f49f2de161cf9802aa3..0f110fbb4a1672997fccc6fb079b37f3bf51c64c 100755 (executable)
@@ -2096,7 +2096,7 @@ NOOPT_CLANGDWARF_X64_DLINK2_FLAGS     = DEF(CLANGDWARF_X64_DLINK2_FLAGS) -O0 -fu
 # CLANGDWARF ARM definitions\r
 ##################\r
 DEFINE CLANGDWARF_ARM_TARGET        = -target arm-linux-gnueabi\r
-DEFINE CLANGDWARF_ARM_CC_FLAGS      = DEF(GCC_ARM_CC_FLAGS) DEF(CLANGDWARF_ARM_TARGET) DEF(CLANGDWARF_WARNING_OVERRIDES) -mno-movt\r
+DEFINE CLANGDWARF_ARM_CC_FLAGS      = DEF(GCC_ARM_CC_FLAGS) DEF(CLANGDWARF_ARM_TARGET) DEF(CLANGDWARF_WARNING_OVERRIDES) -mno-movt -fno-stack-protector\r
 DEFINE CLANGDWARF_ARM_DLINK_FLAGS   = DEF(CLANGDWARF_ARM_TARGET) DEF(GCC_ARM_DLINK_FLAGS)\r
 \r
 *_CLANGDWARF_ARM_PP_FLAGS           = DEF(GCC_PP_FLAGS)\r