summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--aclocal.m422
-rw-r--r--configure.ac21
-rw-r--r--distrib/configure.ac.in21
3 files changed, 46 insertions, 18 deletions
diff --git a/aclocal.m4 b/aclocal.m4
index c247f917e0..226e15aec5 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -2114,6 +2114,28 @@ AC_DEFUN([FIND_LLVM_PROG],[
fi
])
+# FIND_LD
+# Find the version of `ld` to use. This is used in both in the top level
+# configure.ac and in distrib/configure.ac.in.
+#
+# $1 = the variable to set
+#
+AC_DEFUN([FIND_LD],[
+ FP_ARG_WITH_PATH_GNU_PROG([LD], [ld], [ld])
+ case $target in
+ arm*linux*)
+ # Arm requires use of the binutils ld.gold linker.
+ # This case should catch at least arm-unknown-linux-gnueabihf and
+ # arm-linux-androideabi.
+ FP_ARG_WITH_PATH_GNU_PROG([LD_GOLD], [ld.gold], [ld.gold])
+ $1="$LD_GOLD"
+ ;;
+ *)
+ $1="$LD"
+ ;;
+ esac
+])
+
# FIND_GHC_BOOTSTRAP_PROG()
# --------------------------------
# Parse the bootstrap GHC's compier settings file for the location of things
diff --git a/configure.ac b/configure.ac
index fc6b3c217e..d5d9ab3032 100644
--- a/configure.ac
+++ b/configure.ac
@@ -437,19 +437,7 @@ AC_SUBST([HaskellCPPArgs])
dnl ** Which ld to use?
dnl --------------------------------------------------------------
-FP_ARG_WITH_PATH_GNU_PROG([LD], [ld], [ld])
-case $target in
-arm*linux*)
- # Arm requires use of the binutils ld.gold linker.
- # This case should catch at least arm-unknown-linux-gnueabihf and
- # arm-linux-androideabi.
- FP_ARG_WITH_PATH_GNU_PROG([LD_GOLD], [ld.gold], [ld.gold])
- LdCmd="$LD_GOLD"
- ;;
-*)
- LdCmd="$LD"
- ;;
-esac
+FIND_LD([LdCmd])
AC_SUBST([LdCmd])
dnl ** Which nm to use?
@@ -487,17 +475,18 @@ esac
# tools we are looking for. In the past, GHC supported a number of
# versions of LLVM simultaneously, but that stopped working around
# 3.5/3.6 release of LLVM.
-llvm_version=3.6
+LlvmVersion=3.6
+AC_SUBST([LlvmVersion])
dnl ** Which LLVM llc to use?
dnl --------------------------------------------------------------
-FIND_LLVM_PROG([LLC], [llc], [llc], [$llvm_version])
+FIND_LLVM_PROG([LLC], [llc], [llc], [$LlvmVersion])
LlcCmd="$LLC"
AC_SUBST([LlcCmd])
dnl ** Which LLVM opt to use?
dnl --------------------------------------------------------------
-FIND_LLVM_PROG([OPT], [opt], [opt], [$llvm_version])
+FIND_LLVM_PROG([OPT], [opt], [opt], [$LlvmVersion])
OptCmd="$OPT"
AC_SUBST([OptCmd])
diff --git a/distrib/configure.ac.in b/distrib/configure.ac.in
index ab5c29933a..0fcd869491 100644
--- a/distrib/configure.ac.in
+++ b/distrib/configure.ac.in
@@ -68,10 +68,27 @@ FP_CPP_CMD_WITH_ARGS(HaskellCPPCmd, HaskellCPPArgs)
AC_SUBST([HaskellCPPCmd])
AC_SUBST([HaskellCPPArgs])
+# Here is where we re-target which specific version of the LLVM
+# tools we are looking for. In the past, GHC supported a number of
+# versions of LLVM simultaneously, but that stopped working around
+# 3.5/3.6 release of LLVM.
+LlvmVersion=@LlvmVersion@
+
+dnl ** Which LLVM llc to use?
+dnl --------------------------------------------------------------
+FIND_LLVM_PROG([LLC], [llc], [llc], [$LlvmVersion])
+LlcCmd="$LLC"
+AC_SUBST([LlcCmd])
+
+dnl ** Which LLVM opt to use?
+dnl --------------------------------------------------------------
+FIND_LLVM_PROG([OPT], [opt], [opt], [$LlvmVersion])
+OptCmd="$OPT"
+AC_SUBST([OptCmd])
+
dnl ** Which ld to use?
dnl --------------------------------------------------------------
-FP_ARG_WITH_PATH_GNU_PROG([LD], [ld], [ld])
-LdCmd="$LD"
+FIND_LD([LdCmd])
AC_SUBST([LdCmd])
FP_GCC_VERSION