From 954804ab61ee91361bb344b09dfe850caacc232b Mon Sep 17 00:00:00 2001 From: Simon Marlow Date: Mon, 21 Jan 2008 11:18:35 +0000 Subject: [PATCH] Increase the bar for bootstrapping GHC to 6.4 (HEAD only) - remove $(ghc_ge_601), $(ghc_ge_602), $(ghc_ge_603) - configure now checks the GHC version number - there are probably various cleanups that we can now do in compat/ and compiler/, but I haven't done those yet. --- compat/Makefile | 2 -- compat/compat.mk | 6 ------ compiler/Makefile | 17 ++--------------- configure.ac | 14 ++++++-------- mk/config.mk.in | 6 ------ 5 files changed, 8 insertions(+), 37 deletions(-) diff --git a/compat/Makefile b/compat/Makefile index be078a8..dafb8a0 100644 --- a/compat/Makefile +++ b/compat/Makefile @@ -60,7 +60,6 @@ SRC_CC_OPTS += -D__GHC_PATCHLEVEL__=$(GhcPatchLevel) # This module shouldn't be compiled itself, only #included into other files EXCLUDED_SRCS += System/FilePath/Internal.hs -ifeq "$(ghc_ge_603)" "YES" ifneq "$(ghc_ge_607)" "YES" # GHC 6.3+ has Cabal, but we're replacing it: SRC_HC_OPTS += -ignore-package Cabal @@ -68,7 +67,6 @@ SRC_HC_OPTS += -ignore-package Cabal # only GHC 6.3+ has -ignore-package SRC_HC_OPTS += -ignore-package filepath endif -endif ifeq "$(ghc_ge_607)" "YES" SRC_HC_OPTS += -package directory diff --git a/compat/compat.mk b/compat/compat.mk index 9730bdf..4740510 100644 --- a/compat/compat.mk +++ b/compat/compat.mk @@ -15,9 +15,7 @@ SRC_HC_OPTS += -i$(GHC_COMPAT_DIR) SRC_LD_OPTS += -L$(GHC_COMPAT_DIR) -lghccompat # Do *not* use the installed Cabal: -ifeq "$(ghc_ge_603)" "YES" SRC_HC_OPTS += -ignore-package Cabal -endif ifeq "$(ghc_ge_607)" "YES" SRC_HC_OPTS += -package directory @@ -25,10 +23,6 @@ SRC_HC_OPTS += -package pretty SRC_HC_OPTS += -package containers endif -ifeq "$(ghc_ge_603)" "NO" -SRC_HC_OPTS += -package unix -endif - # And similarly for when booting from .hc files: HC_BOOT_LD_OPTS += -L$(GHC_COMPAT_DIR) HC_BOOT_LIBS += -lghccompat diff --git a/compiler/Makefile b/compiler/Makefile index ceb47b0..7fb6eea 100644 --- a/compiler/Makefile +++ b/compiler/Makefile @@ -112,7 +112,7 @@ stage_dirs : $(MKDIRHIER) stage$(stage)/$$i; \ done -ifeq "$(stage) $(ghc_ge_603)" "1 YES" +ifeq "$(stage)" "1" UsingHsBoot = YES else ifneq "$(findstring $(stage), 2 3)" "" @@ -173,7 +173,7 @@ SRC_HC_OPTS += $(patsubst %, -i$(odir)/%, $(ALL_DIRS)) SRC_HC_OPTS += -Wall -fno-warn-name-shadowing # Turn off orphan warnings, but only if the flag exists (i.e. not if we # are building stage 1 and using GHC < 6.3). -ifneq "$(stage) $(ghc_ge_603)" "1 NO" +ifneq "$(stage)" "1 NO" SRC_HC_OPTS += -fno-warn-orphans endif @@ -567,12 +567,10 @@ SRC_HC_OPTS += -package Cabal PKG_DEPENDS += Cabal endif -ifeq "$(ghc_ge_603)" "YES" # Ignore lang, to avoid potential clash with the Generics module if # lang happens to be a dependency of some exposed package in the local # GHC installation (eg. wxHaskell did this around 6.4). SRC_HC_OPTS += -ignore-package lang -endif SRC_CC_OPTS += -Iparser -I. -O SRC_HC_OPTS += -recomp $(GhcHcOpts) $(GhcStage$(stage)HcOpts) @@ -594,17 +592,6 @@ prelude/PrimOp_HC_OPTS = -H80m main/ParsePkgConf_HC_OPTS += -fno-warn-incomplete-patterns parser/Parser_HC_OPTS += -fno-warn-incomplete-patterns -ifeq "$(ghc_ge_603)" "NO" -# Use -fvia-C since the NCG can't handle the narrow16Int# (and intToInt16#?) -# primops on all platforms. -parser/Parser_HC_OPTS += -fvia-C -# because the NCG can't handle the 64-bit math in here -prelude/PrelRules_HC_OPTS += -fvia-C -# ByteCodeItbls uses primops that the NCG doesn't support. -ghci/ByteCodeItbls_HC_OPTS += -fvia-C -ghci/ByteCodeLink_HC_OPTS += -fvia-C -monly-3-regs -endif - # Careful optimisation of the parser: we don't want to throw everything # at it, because that takes too long and doesn't buy much, but we do want # to inline certain key external functions, so we instruct GHC not to diff --git a/configure.ac b/configure.ac index b20a11f..9175078 100644 --- a/configure.ac +++ b/configure.ac @@ -654,14 +654,8 @@ if test "$WithGhc" != ""; then AC_SUBST(GhcPatchLevel)dnl GhcMinVersion2=`echo "$GhcMinVersion" | sed 's/^\\(.\\)$/0\\1/'` GhcCanonVersion="$GhcMajVersion$GhcMinVersion2" - if test $GhcCanonVersion -ge 601; then ghc_ge_601=YES; else ghc_ge_601=NO; fi - if test $GhcCanonVersion -ge 602; then ghc_ge_602=YES; else ghc_ge_602=NO; fi - if test $GhcCanonVersion -ge 603; then ghc_ge_603=YES; else ghc_ge_603=NO; fi if test $GhcCanonVersion -ge 605; then ghc_ge_605=YES; else ghc_ge_605=NO; fi if test $GhcCanonVersion -ge 607; then ghc_ge_607=YES; else ghc_ge_607=NO; fi - AC_SUBST(ghc_ge_601)dnl - AC_SUBST(ghc_ge_602)dnl - AC_SUBST(ghc_ge_603)dnl AC_SUBST(ghc_ge_605)dnl AC_SUBST(ghc_ge_607)dnl fi @@ -752,8 +746,12 @@ fi; fi; dnl ** Must have GHC to build GHC, unless --enable-hc-boot is on -if test "$BootingFromHc" = "NO" -a "$WithGhc" = "" -a -d "$srcdir/compiler"; then -AC_MSG_ERROR([GHC is required unless bootstrapping from .hc files.]) +if test "$BootingFromHc" = "NO" -a -d "$srcdir/compiler"; then + if test "$WithGhc" = ""; then + AC_MSG_ERROR([GHC is required unless bootstrapping from .hc files.]) + fi + FP_COMPARE_VERSIONS([$GhcVersion],[-lt],[6.4], + [AC_MSG_ERROR([GHC version 6.4 or later is required to compile GHC.])])dnl fi; # This uses GHC, so put it after the "GHC is required" check above: diff --git a/mk/config.mk.in b/mk/config.mk.in index b241dc9..5825ef3 100644 --- a/mk/config.mk.in +++ b/mk/config.mk.in @@ -877,9 +877,6 @@ GhcPatchLevel = @ProjectPatchLevel@ GhcMajVersion = @GhcMajVersion@ GhcMinVersion = @GhcMinVersion@ -ghc_ge_601 = YES -ghc_ge_602 = YES -ghc_ge_603 = YES ghc_ge_605 = YES ghc_ge_607 = YES @@ -893,9 +890,6 @@ GhcMajVersion = @GhcMajVersion@ GhcMinVersion = @GhcMinVersion@ # Some useful GHC version predicates: -ghc_ge_601 = @ghc_ge_601@ -ghc_ge_602 = @ghc_ge_602@ -ghc_ge_603 = @ghc_ge_603@ ghc_ge_605 = @ghc_ge_605@ ghc_ge_607 = @ghc_ge_607@ endif -- 1.7.10.4