Commit 954804ab authored by Simon Marlow's avatar Simon Marlow
Browse files

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.
parent 5ed66aa2
......@@ -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
......
......@@ -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
......
......@@ -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
......
......@@ -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:
......
......@@ -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
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment