summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lynagh <igloo@earth.li>2008-06-23 14:44:26 +0000
committerIan Lynagh <igloo@earth.li>2008-06-23 14:44:26 +0000
commit9a657491d1caf6e29c85ce71e95a36eea3e036b1 (patch)
tree52efd41f503e023f2bb7a25fdcad33366d3e0941
parentf2e53b6f1045941243d2d5e76e9b01b6e769ddd9 (diff)
downloadhaskell-9a657491d1caf6e29c85ce71e95a36eea3e036b1.tar.gz
Fix the build with GHC 6.4
-rw-r--r--compiler/Makefile4
-rw-r--r--compiler/typecheck/TcTyClsDecls.lhs4
-rw-r--r--libraries/Makefile3
-rw-r--r--utils/genapply/Makefile5
-rw-r--r--utils/hsc2hs/Makefile4
-rw-r--r--utils/runghc/Makefile4
6 files changed, 24 insertions, 0 deletions
diff --git a/compiler/Makefile b/compiler/Makefile
index 5cce4bc4dc..ce69bae2f2 100644
--- a/compiler/Makefile
+++ b/compiler/Makefile
@@ -685,6 +685,10 @@ parser/Lexer_HC_OPTS += -funbox-strict-fields
# prototype via a global option instead of a myriad of per-file OPTIONS
SRC_HC_OPTS += '-\#include "cutils.h"'
+ifeq "$(ghc_ge_605)" "NO"
+utils/LazyUniqFM_HC_OPTS += -fallow-undecidable-instances
+endif
+
# ----------------------------------------------------------------------------
# Generate supporting stuff for prelude/PrimOp.lhs
# from prelude/primops.txt
diff --git a/compiler/typecheck/TcTyClsDecls.lhs b/compiler/typecheck/TcTyClsDecls.lhs
index fa10fbf203..635fef9da8 100644
--- a/compiler/typecheck/TcTyClsDecls.lhs
+++ b/compiler/typecheck/TcTyClsDecls.lhs
@@ -224,6 +224,10 @@ mkGlobalThings decls things
= (name, AClass cl)
mk_thing (L _ decl, ~(ATyCon tc))
= (tcdName decl, ATyCon tc)
+#if __GLASGOW_HASKELL__ < 605
+-- Old GHCs don't understand that ~... matches anything
+ mk_thing _ = panic "mkGlobalThings: Can't happen"
+#endif
\end{code}
diff --git a/libraries/Makefile b/libraries/Makefile
index ac92a526de..0b50b7ffbd 100644
--- a/libraries/Makefile
+++ b/libraries/Makefile
@@ -173,6 +173,9 @@ boot: $(BOOTSTRAP_STAMPS) ifBuildable/ifBuildable \
# We ought to be depending on %/Setup.*hs, but make makes that difficult.
CABAL_GHC_FLAGS = -Wall
+ifeq "$(ghc_ge_605)" "NO"
+CABAL_GHC_FLAGS += -cpp
+endif
$(foreach SUBDIR,$(SUBDIRS),$(SUBDIR)/setup/Setup): \
%/setup/Setup: $(BOOTSTRAP_STAMPS)
diff --git a/utils/genapply/Makefile b/utils/genapply/Makefile
index ba13de2374..64489db1ac 100644
--- a/utils/genapply/Makefile
+++ b/utils/genapply/Makefile
@@ -17,7 +17,12 @@ SRC_HC_OPTS += -package pretty
endif
# Try to get dependencies right...
+ifeq "$(ghc_ge_605)" "YES"
SRC_HC_OPTS += -fforce-recomp
+else
+SRC_HC_OPTS += -no-recomp
+endif
+
GenApply.o : $(GHC_INCLUDE_DIR)/ghcconfig.h
GenApply.o : $(GHC_INCLUDE_DIR)/MachRegs.h
GenApply.o : $(GHC_INCLUDE_DIR)/Constants.h
diff --git a/utils/hsc2hs/Makefile b/utils/hsc2hs/Makefile
index c30269dd20..7763183c8b 100644
--- a/utils/hsc2hs/Makefile
+++ b/utils/hsc2hs/Makefile
@@ -14,6 +14,10 @@ SRC_HC_OPTS += $(addprefix -optc, $(MACOSX_DEPLOYMENT_CC_OPTS))
SRC_LD_OPTS += $(addprefix -optl, $(MACOSX_DEPLOYMENT_LD_OPTS))
endif
+ifeq "$(ghc_ge_605)" "NO"
+SRC_HC_OPTS += -cpp
+endif
+
# This causes libghccompat.a to be used:
include $(GHC_COMPAT_DIR)/compat.mk
diff --git a/utils/runghc/Makefile b/utils/runghc/Makefile
index 557940b611..54245a3397 100644
--- a/utils/runghc/Makefile
+++ b/utils/runghc/Makefile
@@ -10,6 +10,10 @@ SRC_HC_OPTS += $(addprefix -optc, $(MACOSX_DEPLOYMENT_CC_OPTS))
SRC_LD_OPTS += $(addprefix -optl, $(MACOSX_DEPLOYMENT_LD_OPTS))
endif
+ifeq "$(ghc_ge_605)" "NO"
+SRC_HC_OPTS += -cpp
+endif
+
# We have two version: the inplace version compiled by the bootstrap compiler
# and the install version compiled by the stage 1 compiler
ifeq "$(stage)" "2"