From 8608657c754e915dbe3805dfff3942dd32b6be51 Mon Sep 17 00:00:00 2001 From: Matthew Pickering Date: Mon, 9 Jan 2023 18:36:15 +0800 Subject: Store bootstrap_llvm_target and use it to set LlvmTarget in bindists This mirrors some existing logic for the bootstrap_target which influences how TargetPlatform is set. As described on #21970 not storing this led to `LlvmTarget` being set incorrectly and hence the wrong `--target` flag being passed to the C compiler. Towards #21970 (cherry picked from commit 64286132cc0db4e227637887f98f5a3ecf7d326a) (cherry picked from commit 48a9e688331fbc2ac91392c654bb7457c5f8a876) --- configure.ac | 2 ++ distrib/configure.ac.in | 2 ++ m4/ghc_llvm_target.m4 | 7 ++++++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index d422705b91..951dd7f2a5 100644 --- a/configure.ac +++ b/configure.ac @@ -694,6 +694,8 @@ GHC_LLVM_TARGET_SET_VAR # we intend to pass trough --targets to llvm as is. LLVMTarget_CPP=` echo "$LlvmTarget"` AC_SUBST(LLVMTarget_CPP) +# The target is substituted into the distrib/configure.ac file +AC_SUBST(LlvmTarget) dnl ** See whether cc supports --target= and set dnl CONF_CC_OPTS_STAGE[012] accordingly. diff --git a/distrib/configure.ac.in b/distrib/configure.ac.in index 0ccbd6ff5d..028b73d8a3 100644 --- a/distrib/configure.ac.in +++ b/distrib/configure.ac.in @@ -18,6 +18,8 @@ dnl-------------------------------------------------------------------- dnl Various things from the source distribution configure bootstrap_target=@TargetPlatform@ +bootstrap_llvm_target=@LlvmTarget@ + TargetHasRTSLinker=@TargetHasRTSLinker@ AC_SUBST(TargetHasRTSLinker) diff --git a/m4/ghc_llvm_target.m4 b/m4/ghc_llvm_target.m4 index abb10d963e..dfb16f78da 100644 --- a/m4/ghc_llvm_target.m4 +++ b/m4/ghc_llvm_target.m4 @@ -50,5 +50,10 @@ AC_DEFUN([GHC_LLVM_TARGET], [ # require it. AC_DEFUN([GHC_LLVM_TARGET_SET_VAR], [ AC_REQUIRE([FPTOOLS_SET_PLATFORMS_VARS]) - GHC_LLVM_TARGET([$target],[$target_cpu],[$target_vendor],[$target_os],[LlvmTarget]) + if test "$bootstrap_llvm_target" != "" + then + LlvmTarget=$bootstrap_llvm_target + else + GHC_LLVM_TARGET([$target],[$target_cpu],[$target_vendor],[$target_os],[LlvmTarget]) + fi ]) -- cgit v1.2.1