[commit: ghc] master: Revert "Remove RAWCPP_FLAGS" (0511c0a)
git at git.haskell.org
git at git.haskell.org
Mon Dec 1 07:40:34 UTC 2014
Repository : ssh://git@git.haskell.org/ghc
On branch : master
Link : http://ghc.haskell.org/trac/ghc/changeset/0511c0ab09f705c3012b405781c9398a143b0e38/ghc
>---------------------------------------------------------------
commit 0511c0ab09f705c3012b405781c9398a143b0e38
Author: Herbert Valerio Riedel <hvr at gnu.org>
Date: Mon Dec 1 08:37:09 2014 +0100
Revert "Remove RAWCPP_FLAGS"
This reverts commit 460eebec65811c6a7bbe11645df322dda868e80d.
Thomas requested to revert the commit with the words:
> Please revert this commit, it is horribly wrong. I'll have a proper look
> later, but not supplying `-traditional` to the C preprocessor is the cause
> of #9828.
the reverted commit was related to #9094
>---------------------------------------------------------------
0511c0ab09f705c3012b405781c9398a143b0e38
compiler/ghc.mk | 4 ++--
mk/config.mk.in | 9 +++++++++
rules/manual-package-config.mk | 4 ++--
3 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/compiler/ghc.mk b/compiler/ghc.mk
index 640bf75..c1b168e 100644
--- a/compiler/ghc.mk
+++ b/compiler/ghc.mk
@@ -269,10 +269,10 @@ compiler_CPP_OPTS += ${GhcCppOpts}
define preprocessCompilerFiles
# $0 = stage
compiler/stage$1/build/Parser.y: compiler/parser/Parser.y.pp
- $$(CPP) -P $$(compiler_CPP_OPTS) -x c $$< | grep -v '^#pragma GCC' > $$@
+ $$(CPP) $$(RAWCPP_FLAGS) -P $$(compiler_CPP_OPTS) -x c $$< | grep -v '^#pragma GCC' > $$@
compiler/stage$1/build/primops.txt: compiler/prelude/primops.txt.pp compiler/stage$1/$$(PLATFORM_H)
- $$(CPP) -P $$(compiler_CPP_OPTS) -Icompiler/stage$1 -x c $$< | grep -v '^#pragma GCC' > $$@
+ $$(CPP) $$(RAWCPP_FLAGS) -P $$(compiler_CPP_OPTS) -Icompiler/stage$1 -x c $$< | grep -v '^#pragma GCC' > $$@
compiler/stage$1/build/primop-data-decl.hs-incl: compiler/stage$1/build/primops.txt $$$$(genprimopcode_INPLACE)
"$$(genprimopcode_INPLACE)" --data-decl < $$< > $$@
diff --git a/mk/config.mk.in b/mk/config.mk.in
index 4f22c56..0f5820f 100644
--- a/mk/config.mk.in
+++ b/mk/config.mk.in
@@ -626,6 +626,15 @@ CP = cp
# It's not easy to separate the CPP program from its flags, as
# AC_PROG_CPP defines CPP as "/usr/bin/gcc -E"
CPP = @CPP@ @CPPFLAGS@
+#
+# RAWCPP_FLAGS are the flags to give to cpp (viz, gcc -E) to persuade it to
+# behave plausibly on Haskell sources.
+#
+# Clang in particular is a bit more annoying, so we suppress some warnings.
+RAWCPP_FLAGS = -undef -traditional
+ifeq "$(CC_CLANG_BACKEND)" "1"
+RAWCPP_FLAGS += -Wno-invalid-pp-token -Wno-unicode -Wno-trigraphs
+endif
FIND = @FindCmd@
diff --git a/rules/manual-package-config.mk b/rules/manual-package-config.mk
index 56eea70..10629aa 100644
--- a/rules/manual-package-config.mk
+++ b/rules/manual-package-config.mk
@@ -16,7 +16,7 @@ $(call trace, manual-package-config($1))
$(call profStart, manual-package-config($1))
$1/dist/package.conf.inplace : $1/package.conf.in $$$$(ghc-pkg_INPLACE) | $$$$(dir $$$$@)/.
- $$(CPP) -P \
+ $$(CPP) $$(RAWCPP_FLAGS) -P \
-DTOP='"$$(TOP)"' \
$$($1_PACKAGE_CPP_OPTS) \
-x c $$(addprefix -I,$$(GHC_INCLUDE_DIRS)) $$< -o $$@.raw
@@ -29,7 +29,7 @@ $1/dist/package.conf.inplace : $1/package.conf.in $$$$(ghc-pkg_INPLACE) | $$$$(d
# "make install", so we declare it as phony
.PHONY: $1/dist/package.conf.install
$1/dist/package.conf.install: | $$$$(dir $$$$@)/.
- $$(CPP) -P \
+ $$(CPP) $$(RAWCPP_FLAGS) -P \
-DINSTALLING \
-DLIB_DIR='"$$(if $$(filter YES,$$(RelocatableBuild)),$$$$topdir,$$(ghclibdir))"' \
-DINCLUDE_DIR='"$$(if $$(filter YES,$$(RelocatableBuild)),$$$$topdir,$$(ghclibdir))/include"' \
More information about the ghc-commits
mailing list