From 9a657491d1caf6e29c85ce71e95a36eea3e036b1 Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Mon, 23 Jun 2008 14:44:26 +0000 Subject: [PATCH] Fix the build with GHC 6.4 --- compiler/Makefile | 4 ++++ compiler/typecheck/TcTyClsDecls.lhs | 4 ++++ libraries/Makefile | 3 +++ utils/genapply/Makefile | 5 +++++ utils/hsc2hs/Makefile | 4 ++++ utils/runghc/Makefile | 4 ++++ 6 files changed, 24 insertions(+) diff --git a/compiler/Makefile b/compiler/Makefile index 5cce4bc..ce69bae 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 fa10fbf..635fef9 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 ac92a52..0b50b7f 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 ba13de2..64489db 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 c30269d..7763183 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 557940b..54245a3 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" -- 1.7.10.4