summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Marlow <marlowsd@gmail.com>2014-03-20 15:47:18 +0000
committerSimon Marlow <marlowsd@gmail.com>2014-03-27 12:36:14 +0000
commit6189c7674fc5c735db1a446d0b222369a3767369 (patch)
tree2bd674daab6a9778d259fbb5d1af09a4a58237ba
parentf86825462bf1d14ea6aad1029a5ec9d7a08049df (diff)
downloadhaskell-6189c7674fc5c735db1a446d0b222369a3767369.tar.gz
--with-gcc overrides CC_STAGE0 when not cross-compiling (#8498)
-rw-r--r--aclocal.m418
-rw-r--r--configure.ac7
2 files changed, 23 insertions, 2 deletions
diff --git a/aclocal.m4 b/aclocal.m4
index c2a7ba2d7f..be38031686 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -643,6 +643,10 @@ AC_ARG_WITH($2,
else
$1=$withval
fi
+
+ # Remember that we set this manually. Used to override CC_STAGE0
+ # and friends later, if we are not cross-compiling.
+ With_$2=$withval
],
[
if test "$HostOS" != "mingw32"
@@ -685,6 +689,10 @@ AC_ARG_WITH($2,
else
$1=$withval
fi
+
+ # Remember that we set this manually. Used to override CC_STAGE0
+ # and friends later, if we are not cross-compiling.
+ With_$2=$withval
],
[
if test "$HostOS" != "mingw32"
@@ -2058,7 +2066,8 @@ AC_DEFUN([FIND_GCC],[
$1="$CC"
else
FP_ARG_WITH_PATH_GNU_PROG_OPTIONAL([$1], [$2], [$3])
- # From Xcode 5 on, OS X command line tools do not include gcc anymore. Use clang.
+ # From Xcode 5 on, OS X command line tools do not include gcc
+ # anymore. Use clang.
if test -z "$$1"
then
FP_ARG_WITH_PATH_GNU_PROG_OPTIONAL([$1], [clang], [clang])
@@ -2071,4 +2080,11 @@ AC_DEFUN([FIND_GCC],[
AC_SUBST($1)
])
+AC_DEFUN([MAYBE_OVERRIDE_STAGE0],[
+ if test ! -z "$With_$1" -a "$CrossCompiling" != "YES"; then
+ AC_MSG_NOTICE([Not cross-compiling, so --with-$1 also sets $2])
+ $2=$With_$1
+ fi
+])
+
# LocalWords: fi
diff --git a/configure.ac b/configure.ac
index 0a4df23605..9f0edaa663 100644
--- a/configure.ac
+++ b/configure.ac
@@ -474,6 +474,11 @@ FIND_GCC([WhatGccIsCalled], [gcc], [gcc])
CC="$WhatGccIsCalled"
export CC
+# If --with-gcc was used, and we're not cross-compiling, then it also
+# applies to the stage0 compiler.
+MAYBE_OVERRIDE_STAGE0([gcc],[CC_STAGE0])
+MAYBE_OVERRIDE_STAGE0([ar],[AR_STAGE0])
+
dnl ** Which ld to use?
dnl --------------------------------------------------------------
FP_ARG_WITH_PATH_GNU_PROG([LD], [ld], [ld])
@@ -583,8 +588,8 @@ FP_PROG_LD_FILELIST
FPTOOLS_SET_C_LD_FLAGS([target],[CFLAGS],[LDFLAGS],[IGNORE_LINKER_LD_FLAGS],[CPPFLAGS])
FPTOOLS_SET_C_LD_FLAGS([build],[CONF_CC_OPTS_STAGE0],[CONF_GCC_LINKER_OPTS_STAGE0],[CONF_LD_LINKER_OPTS_STAGE0],[CONF_CPP_OPTS_STAGE0])
FPTOOLS_SET_C_LD_FLAGS([target],[CONF_CC_OPTS_STAGE1],[CONF_GCC_LINKER_OPTS_STAGE1],[CONF_LD_LINKER_OPTS_STAGE1],[CONF_CPP_OPTS_STAGE1])
-# Stage 3 won't be supported by cross-compilation
FPTOOLS_SET_C_LD_FLAGS([target],[CONF_CC_OPTS_STAGE2],[CONF_GCC_LINKER_OPTS_STAGE2],[CONF_LD_LINKER_OPTS_STAGE2],[CONF_CPP_OPTS_STAGE2])
+# Stage 3 won't be supported by cross-compilation
FP_GCC_EXTRA_FLAGS