[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