summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Pickering <matthewtpickering@gmail.com>2023-01-09 18:36:15 +0800
committerZubin Duggal <zubin.duggal@gmail.com>2023-04-15 17:12:01 +0530
commit8608657c754e915dbe3805dfff3942dd32b6be51 (patch)
treee99df1464484f1c6b7de2828235802c7bb33f98d
parent8b5d4df0861a36837c66b919366c7bb186d3002d (diff)
downloadhaskell-8608657c754e915dbe3805dfff3942dd32b6be51.tar.gz
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)
-rw-r--r--configure.ac2
-rw-r--r--distrib/configure.ac.in2
-rw-r--r--m4/ghc_llvm_target.m47
3 files changed, 10 insertions, 1 deletions
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=<triple> 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
])