Increase the bar for bootstrapping GHC to 6.4 (HEAD only)
authorSimon Marlow <simonmar@microsoft.com>
Mon, 21 Jan 2008 11:18:35 +0000 (11:18 +0000)
committerSimon Marlow <simonmar@microsoft.com>
Mon, 21 Jan 2008 11:18:35 +0000 (11:18 +0000)
 - 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
compat/compat.mk
compiler/Makefile
configure.ac
mk/config.mk.in

index be078a8..dafb8a0 100644 (file)
@@ -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
index 9730bdf..4740510 100644 (file)
@@ -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
index ceb47b0..7fb6eea 100644 (file)
@@ -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
index b20a11f..9175078 100644 (file)
@@ -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:
index b241dc9..5825ef3 100644 (file)
@@ -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