summaryrefslogtreecommitdiff
path: root/distrib
diff options
context:
space:
mode:
authorKarel Gardas <karel.gardas@centrum.cz>2014-08-17 23:26:39 +0200
committerKarel Gardas <karel.gardas@centrum.cz>2014-08-17 23:26:40 +0200
commit2d42564ac9ffe768f21078e40886fd066f87d1c3 (patch)
tree6b45864740da2138443c59b45f9e8468752d6001 /distrib
parent96d04186e00fe2202b9953688492bb370d818bf1 (diff)
downloadhaskell-2d42564ac9ffe768f21078e40886fd066f87d1c3.tar.gz
workaround Solaris 11 GNU C CPP issue by using GNU C 3.4 as CPP
Summary: Solaris 11 distributed GNU C 4.5.x is configured in a way that its CPP is not working well while invoked from GHC. GHC runs it with -x assembler-with-cpp and in this particular configuration GNU C CPP does not provide any line-markers so GHC's output of errors or warnings is confusing since it points to preprocessed file in /tmp and not to the original Haskell file. Fortunately old GNU C 3.4.x is still provided by the OS and when installed it'll be used automatically as GHC CPP which is whole logic of this patch. So although we use modern GCC as a C compiler and assembler we use old GCC as a C preprocessor. Test Plan: validate Reviewers: austin Reviewed By: austin Subscribers: phaskell, simonmar, relrod, ezyang, carter Differential Revision: https://phabricator.haskell.org/D151
Diffstat (limited to 'distrib')
-rw-r--r--distrib/configure.ac.in60
1 files changed, 2 insertions, 58 deletions
diff --git a/distrib/configure.ac.in b/distrib/configure.ac.in
index c7a8ead9b0..2ae007240a 100644
--- a/distrib/configure.ac.in
+++ b/distrib/configure.ac.in
@@ -63,64 +63,8 @@ FIND_GCC([WhatGccIsCalled], [gcc], [gcc])
CC="$WhatGccIsCalled"
export CC
-
-dnl ** what cpp to use?
-dnl --------------------------------------------------------------
-AC_ARG_WITH(hs-cpp,
-[AC_HELP_STRING([--with-hs-cpp=ARG],
- [Use ARG as the path to cpp [default=autodetect]])],
-[
- if test "$HostOS" = "mingw32"
- then
- AC_MSG_WARN([Request to use $withval will be ignored])
- else
- HaskellCPPCmd=$withval
- fi
-],
-[
- if test "$HostOS" != "mingw32"
- then
- HaskellCPPCmd=$WhatGccIsCalled
- fi
-]
-)
-
-
-
-dnl ** what cpp flags to use?
-dnl -----------------------------------------------------------
-AC_ARG_WITH(hs-cpp-flags,
- [AC_HELP_STRING([--with-hs-cpp-flags=ARG],
- [Use ARG as the path to hs cpp [default=autodetect]])],
- [
- if test "$HostOS" = "mingw32"
- then
- AC_MSG_WARN([Request to use $withval will be ignored])
- else
- HaskellCPPArgs=$withval
- fi
- ],
-[
- $HaskellCPPCmd -x c /dev/null -dM -E > conftest.txt 2>&1
- if grep "__clang__" conftest.txt >/dev/null 2>&1; then
- HaskellCPPArgs="-E -undef -traditional -Wno-invalid-pp-token -Wno-unicode -Wno-trigraphs "
- else
- $HaskellCPPCmd -v > conftest.txt 2>&1
- if grep "gcc" conftest.txt >/dev/null 2>&1; then
- HaskellCPPArgs="-E -undef -traditional "
- else
- $HaskellCPPCmd --version > conftest.txt 2>&1
- if grep "cpphs" conftest.txt >/dev/null 2>&1; then
- HaskellCPPArgs="--cpp -traditional"
- else
- AC_MSG_WARN([configure can't recognize your CPP program, you may need to set --with-hs-cpp-flags=FLAGS explicitly])
- HaskellCPPArgs=""
- fi
- fi
- fi
- ]
-)
-
+# --with-hs-cpp/--with-hs-cpp-flags
+FP_CPP_CMD_WITH_ARGS(HaskellCPPCmd, HaskellCPPArgs)
dnl ** Which ld to use?
dnl --------------------------------------------------------------