summaryrefslogtreecommitdiff
path: root/mk
diff options
context:
space:
mode:
Diffstat (limited to 'mk')
-rw-r--r--mk/build.mk.sample22
-rw-r--r--mk/config.mk.in39
-rwxr-xr-xmk/detect-cpu-count.sh26
-rw-r--r--mk/flavours/bench-cross-ncg.mk17
-rw-r--r--mk/flavours/perf-cross-ncg.mk16
-rw-r--r--mk/flavours/quick-cross-ncg.mk17
-rwxr-xr-xmk/get-win32-tarballs.sh64
-rw-r--r--mk/warnings.mk16
-rw-r--r--mk/win32-tarballs.md5sum56
9 files changed, 197 insertions, 76 deletions
diff --git a/mk/build.mk.sample b/mk/build.mk.sample
index 6bceca3de1..601ab028e5 100644
--- a/mk/build.mk.sample
+++ b/mk/build.mk.sample
@@ -13,17 +13,23 @@
# As above but build GHC using the LLVM backend
#BuildFlavour = perf-llvm
-# Perf build configured for a cross-compiler
+# Perf build configured for a cross-compiler (using the LLVM backend)
#BuildFlavour = perf-cross
+# Perf build configured for a cross-compiler (using the NCG backend)
+#BuildFlavour = perf-cross-ncg
+
# Fast build with optimised libraries, no profiling (RECOMMENDED):
#BuildFlavour = quick
# Fast build with optimised libraries, no profiling, with LLVM:
#BuildFlavour = quick-llvm
-# Fast build configured for a cross compiler
-#BuildFlavour = quick-cross
+# Fast build configured for a cross compiler (using the LLVM backend)
+#BuildFlavour = quick-cross
+
+# Fast build configured for a cross compiler (using the NCG backend)
+#BuildFlavour = quick-cross-ncg
# Even faster build. NOT RECOMMENDED: the libraries will be
# completely unoptimised, so any code built with this compiler
@@ -51,9 +57,12 @@
# As above but build GHC using the LLVM backend
#BuildFlavour = bench-llvm
-# Bench build configured for a cross-compiler
+# Bench build configured for a cross-compiler (using the LLVM backend)
#BuildFlavour = bench-cross
+# Bench build configured for a cross-compiler (using the NCG backend)
+#BuildFlavour = bench-cross-ncg
+
# Use the same settings as validate.
#BuildFlavour = validate
@@ -90,16 +99,13 @@ endif
# https://ghc.haskell.org/trac/ghc/wiki/Building/RunningTests/Running#AdditionalPackages
#BUILD_EXTRA_PKGS=YES
-# Uncomment the following line to enable building DPH
-#BUILD_DPH=YES
-
# Uncomment the following to force `integer-gmp` to use the in-tree GMP 6.1.2
# (other sometimes useful configure-options: `--with-gmp-{includes,libraries}`)
#libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-intree-gmp
# Enable pretty hyperlinked sources
#HADDOCK_DOCS = YES
-#EXTRA_HADDOCK_OPTS += --hyperlinked-source
+#EXTRA_HADDOCK_OPTS += --quickjump --hyperlinked-source
# Don't strip debug and other unneeded symbols from libraries and executables.
STRIP_CMD = :
diff --git a/mk/config.mk.in b/mk/config.mk.in
index 2e920ca76e..7fa0f770a1 100644
--- a/mk/config.mk.in
+++ b/mk/config.mk.in
@@ -66,9 +66,12 @@ GhcHcOpts=-Rghc-timing
# override options from $(GhcHcOpts).
#
# See Note [Stage number in build variables].
+#
+# -haddock is needed so the GHCi :doc command can find docs
+# in the .hi-files for the ghc library
GhcStage1HcOpts=
-GhcStage2HcOpts=-O2
-GhcStage3HcOpts=-O2
+GhcStage2HcOpts=-O2 -haddock
+GhcStage3HcOpts=-O2 -haddock
# Note [Stage number in build variables].
@@ -300,6 +303,7 @@ GhcRTSWays += debug
GhcRTSWays += thr thr_debug thr_l
GhcRTSWays += $(if $(findstring p, $(GhcLibWays)),thr_p,)
GhcRTSWays += $(if $(findstring dyn, $(GhcLibWays)),dyn debug_dyn thr_dyn thr_debug_dyn l_dyn thr_l_dyn,)
+GhcRTSWays += $(if $(findstring p, $(GhcLibWays)),thr_debug_p debug_p,)
# We can only build GHCi threaded if we have a threaded RTS:
GhcThreaded = $(if $(findstring thr,$(GhcRTSWays)),YES,NO)
@@ -311,8 +315,11 @@ GhcThreaded = $(if $(findstring thr,$(GhcRTSWays)),YES,NO)
#
# -O(2) is pretty desirable, otherwise no inlining of prelude
# things (incl "+") happens when compiling with this compiler
+#
+# -haddock is needed so the GHCi :doc command can find the boot
+# library docs in the respective .hi-files
-GhcLibHcOpts=-O2
+GhcLibHcOpts=-O2 -haddock
# Strip local symbols from libraries? This can make the libraries smaller,
# but makes debugging somewhat more difficult. Doesn't work with all ld's.
@@ -359,7 +366,7 @@ SplitObjs = $(if $(and $(filter YES,$(SupportsSplitObjs)),\
# This is not supported on Darwin (where you can use subsections-via-symbols
# instead) and Windows is disabled until we figure the linking performance
# issues related to BFD out. (See #11445, #12913 and related tickets.)
-OsSupportsSplitSections=$(if $(filter $(TargetOS_CPP),mingw32 darwin),NO,YES)
+OsSupportsSplitSections=$(if $(filter $(TargetOS_CPP),darwin),NO,YES)
SupportsSplitSections=$(if $(and $(filter YES,$(OsSupportsSplitSections)),\
$(filter YES,$(LdIsGNULd))),YES,NO)
SplitSections ?= $(SupportsSplitSections)
@@ -510,8 +517,6 @@ endif
GHC_PACKAGE_DB_FLAG = @GHC_PACKAGE_DB_FLAG@
-SUPPORTS_THIS_UNIT_ID = @SUPPORTS_THIS_UNIT_ID@
-
#-----------------------------------------------------------------------------
# C compiler
#
@@ -524,8 +529,6 @@ GccVersion = @GccVersion@
# TargetPlatformFull retains the string passed to configure so we have it in
# the necessary format to pass to libffi's configure.
TargetPlatformFull = @TargetPlatformFull@
-GccLT34 = @GccLT34@
-GccLT44 = @GccLT44@
GccLT46 = @GccLT46@
GccIsClang = @GccIsClang@
@@ -655,6 +658,14 @@ $(eval $(call set_stage_HSC2HS_OPTS,2))
ifeq "$(CrossCompiling)" "YES"
SRC_HSC2HS_OPTS_STAGE1 += --cross-compile
SRC_HSC2HS_OPTS_STAGE2 += --cross-compile
+ifeq "$(Windows_Target)" "YES"
+# We'll assume we compile with gcc or clang, and both support `-S` and can as such use the
+# --via-asm pass, which should be faster and is required for cross compiling to windows, as
+# the c compiler complains about non-constant expressions even though they are constant and
+# end up as constants in the assembly.
+SRC_HSC2HS_OPTS_STAGE1 += --via-asm
+SRC_HSC2HS_OPTS_STAGE2 += --via-asm
+endif
endif
SRC_HSC2HS_OPTS_STAGE0 += --cflag=-D$(HostArch_CPP)_HOST_ARCH --cflag=-D$(HostOS_CPP)_HOST_OS
SRC_HSC2HS_OPTS_STAGE1 += --cflag=-D$(TargetArch_CPP)_HOST_ARCH --cflag=-D$(TargetOS_CPP)_HOST_OS
@@ -731,11 +742,13 @@ HaveDtrace = @HaveDtrace@
USE_DTRACE = $(HaveDtrace)
DTRACE = @DtraceCmd@
+LD_NO_GOLD = @LdNoGoldCmd@
LD = @LdCmd@
NM = @NmCmd@
AR = @ArCmd@
OBJDUMP = @ObjdumpCmd@
+CLANG = @ClangCmd@
LLC = @LlcCmd@
OPT = @OptCmd@
@@ -776,7 +789,7 @@ else ifeq "$(TARGETPLATFORM)" "arm-unknown-linux"
# The hack of using `:` to disable stripping is implemented by ghc-cabal.
STRIP_CMD = :
else
-STRIP_CMD = strip
+STRIP_CMD = @StripCmd@
endif
PATCH_CMD = @PatchCmd@
TAR_CMD = @TarCmd@
@@ -789,13 +802,13 @@ TAR_COMP ?= xz
# select compression command and .tar extension based on TAR_COMP value
ifeq "$(TAR_COMP)" "bzip2"
-TAR_COMP_CMD = $(BZIP2_CMD)
+TAR_COMP_CMD = $(BZIP2_CMD) $(TAR_COMP_OPTS)
TAR_COMP_EXT = bz2
else ifeq "$(TAR_COMP)" "gzip"
-TAR_COMP_CMD = $(GZIP_CMD)
+TAR_COMP_CMD = $(GZIP_CMD) $(TAR_COMP_OPTS)
TAR_COMP_EXT = gz
else ifeq "$(TAR_COMP)" "xz"
-TAR_COMP_CMD = $(XZ_CMD)
+TAR_COMP_CMD = $(XZ_CMD) $(TAR_COMP_OPTS)
TAR_COMP_EXT = xz
else
$(error $$(TAR_COMP) set to unknown value "$(TAR_COMP)" (supported: "bzip2", "gzip", "xz"))
@@ -866,8 +879,6 @@ else
HSCOLOUR_SRCS = YES
endif
-# Build and install DPH?
-BUILD_DPH = NO
# Build and install the "extra" packages (see ./packages)?
BUILD_EXTRA_PKGS = NO
diff --git a/mk/detect-cpu-count.sh b/mk/detect-cpu-count.sh
new file mode 100755
index 0000000000..abc47387d1
--- /dev/null
+++ b/mk/detect-cpu-count.sh
@@ -0,0 +1,26 @@
+#!/bin/sh
+
+detect_cpu_count () {
+ if [ "$CPUS" = "" ]; then
+ # Windows standard environment variable
+ CPUS="$NUMBER_OF_PROCESSORS"
+ fi
+
+ if [ "$CPUS" = "" ]; then
+ # Linux
+ CPUS=`getconf _NPROCESSORS_ONLN 2>/dev/null`
+ fi
+
+ if [ "$CPUS" = "" ]; then
+ # FreeBSD
+ CPUS=`getconf NPROCESSORS_ONLN 2>/dev/null`
+ fi
+
+ if [ "$CPUS" = "" ]; then
+ # nothing helped
+ CPUS="1"
+ fi
+}
+
+detect_cpu_count
+echo "$CPUS"
diff --git a/mk/flavours/bench-cross-ncg.mk b/mk/flavours/bench-cross-ncg.mk
new file mode 100644
index 0000000000..6b686af5c4
--- /dev/null
+++ b/mk/flavours/bench-cross-ncg.mk
@@ -0,0 +1,17 @@
+SRC_HC_OPTS = -O -H64m
+GhcStage1HcOpts = -O
+GhcStage2HcOpts = -O0
+GhcLibHcOpts = -O2
+BUILD_PROF_LIBS = NO
+SplitObjs = NO
+SplitSections = NO
+HADDOCK_DOCS = NO
+BUILD_SPHINX_HTML = NO
+BUILD_SPHINX_PDF = NO
+BUILD_MAN = NO
+WITH_TERMINFO = NO
+
+INTEGER_LIBRARY = integer-simple
+Stage1Only = YES
+DYNAMIC_BY_DEFAULT = NO
+DYNAMIC_GHC_PROGRAMS = NO
diff --git a/mk/flavours/perf-cross-ncg.mk b/mk/flavours/perf-cross-ncg.mk
new file mode 100644
index 0000000000..4b94c48805
--- /dev/null
+++ b/mk/flavours/perf-cross-ncg.mk
@@ -0,0 +1,16 @@
+SRC_HC_OPTS = -O -H64m
+GhcStage1HcOpts = -O2
+GhcStage2HcOpts = -O2
+GhcLibHcOpts = -O2
+BUILD_PROF_LIBS = YES
+#SplitObjs
+HADDOCK_DOCS = NO
+BUILD_SPHINX_HTML = NO
+BUILD_SPHINX_PDF = NO
+BUILD_MAN = NO
+WITH_TERMINFO = NO
+
+INTEGER_LIBRARY = integer-simple
+Stage1Only = YES
+DYNAMIC_BY_DEFAULT = NO
+DYNAMIC_GHC_PROGRAMS = NO
diff --git a/mk/flavours/quick-cross-ncg.mk b/mk/flavours/quick-cross-ncg.mk
new file mode 100644
index 0000000000..97352ccd3e
--- /dev/null
+++ b/mk/flavours/quick-cross-ncg.mk
@@ -0,0 +1,17 @@
+SRC_HC_OPTS = -O0 -H64m
+GhcStage1HcOpts = -O
+GhcStage2HcOpts = -O0
+GhcLibHcOpts = -O
+BUILD_PROF_LIBS = NO
+SplitObjs = NO
+SplitSections = NO
+HADDOCK_DOCS = NO
+BUILD_SPHINX_HTML = NO
+BUILD_SPHINX_PDF = NO
+BUILD_MAN = NO
+WITH_TERMINFO = NO
+
+INTEGER_LIBRARY = integer-simple
+Stage1Only = YES
+DYNAMIC_BY_DEFAULT = NO
+DYNAMIC_GHC_PROGRAMS = NO
diff --git a/mk/get-win32-tarballs.sh b/mk/get-win32-tarballs.sh
index 7f3b544904..32f27059c7 100755
--- a/mk/get-win32-tarballs.sh
+++ b/mk/get-win32-tarballs.sh
@@ -1,8 +1,11 @@
-#!/usr/bin/env sh
+#!/usr/bin/env bash
tarball_dir='ghc-tarballs'
missing_files=0
+# see #12502
+if test -z "$FIND"; then FIND="find"; fi
+
fail() {
echo >&2
echo "$1" >&2
@@ -19,11 +22,11 @@ download_file() {
if ! test -f "${dest_file}"
then
- local curl_cmd="curl -L ${file_url} -o ${dest_file} --create-dirs -# ${extra_curl_opts}"
+ local curl_cmd="curl -f -L ${file_url} -o ${dest_file} --create-dirs -# ${extra_curl_opts}"
if test -n "${backup_url}"; then
- local curl_cmd_bnk="curl -L ${backup_url} -o ${dest_file} --create-dirs -# ${extra_curl_opts}"
+ local curl_cmd_bnk="curl -f -L ${backup_url} -o ${dest_file} --create-dirs -# ${extra_curl_opts}"
else
- local curl_cmd_bnk="echo 1"
+ local curl_cmd_bnk="true"
fi
if test "$download" = "0"
@@ -34,9 +37,10 @@ download_file() {
return
else
echo "Downloading ${description} to ${dest_dir}..."
- $curl_cmd || $curl_cmd_bnk || {
+ $curl_cmd || echo "Checking repo.msys2.org instead of Haskell.org..." && $curl_cmd_bnk || {
rm -f "${dest_file}"
fail "ERROR: Download failed."
+ exit 1
}
fi
fi
@@ -45,10 +49,16 @@ download_file() {
if test "$sigs" = "1" -a ! -f "$sig_file"
then
echo "Downloading ${description} (signature) to ${dest_dir}..."
- local curl_cmd="curl -L ${file_url}.sig -o ${sig_file} --create-dirs -# ${extra_curl_opts}"
- $curl_cmd || {
+ local curl_cmd="curl -f -L ${file_url}.sig -o ${sig_file} --create-dirs -# ${extra_curl_opts}"
+ if test -n "${backup_url}"; then
+ local curl_cmd_bnk="curl -f -L ${backup_url} -o ${sig_file} --create-dirs -# ${extra_curl_opts}"
+ else
+ local curl_cmd_bnk="true"
+ fi
+ $curl_cmd || echo "Checking repo.msys2.org instead of Haskell.org..." && $curl_cmd_bnk || {
rm -f "${dest_file}.sig"
fail "ERROR: Download failed."
+ exit 1
}
fi
@@ -69,6 +79,7 @@ download_mingw() {
-e 's/-sources-/-/' \
-e 's/-libwinpthread-git-/-winpthreads-git-/' `
local mingw_url="${mingw_base_url_primary}/${mingw_url_tmp}"
+ local mingw_url_backup="${mingw_base_url_secondary}/${mingw_url_tmp}"
else
local mingw_url="${mingw_base_url_primary}/$1"
local mingw_url_backup="${mingw_base_url_secondary}/$1"
@@ -91,29 +102,28 @@ download_tarballs() {
local format_url="/${mingw_arch}/${package_prefix}-${mingw_arch}"
download_mingw "${format_url}-crt-git-5.0.0.4795.e3d96cb1-1-any.pkg.tar.xz"
- download_mingw "${format_url}-winpthreads-git-5.0.0.4761.02bea78-1-any.pkg.tar.xz"
- download_mingw "${format_url}-headers-git-5.0.0.4797.31e66d7e-1-any.pkg.tar.xz"
- download_mingw "${format_url}-libwinpthread-git-5.0.0.4761.02bea78-1-any.pkg.tar.xz"
- download_mingw "${format_url}-zlib-1.2.11-1-any.pkg.tar.xz"
- download_mingw "${format_url}-isl-0.17.1-1-any.pkg.tar.xz"
- download_mingw "${format_url}-mpfr-3.1.5.p1-1-any.pkg.tar.xz"
+ download_mingw "${format_url}-winpthreads-git-5.0.0.4850.d1662dc7-1-any.pkg.tar.xz"
+ download_mingw "${format_url}-headers-git-5.0.0.4966.1eee2140-1-any.pkg.tar.xz"
+ download_mingw "${format_url}-libwinpthread-git-5.0.0.4850.d1662dc7-1-any.pkg.tar.xz"
+ download_mingw "${format_url}-zlib-1.2.8-9-any.pkg.tar.xz"
+ download_mingw "${format_url}-isl-0.18-1-any.pkg.tar.xz"
+ download_mingw "${format_url}-mpfr-3.1.6-1-any.pkg.tar.xz"
download_mingw "${format_url}-gmp-6.1.2-1-any.pkg.tar.xz"
- download_mingw "${format_url}-binutils-2.28-1-any.pkg.tar.xz"
- download_mingw "${format_url}-libidn-1.33-1-any.pkg.tar.xz"
- download_mingw "${format_url}-gcc-6.3.0-2-any.pkg.tar.xz"
+ download_mingw "${format_url}-binutils-2.29.1-1-any.pkg.tar.xz"
+ download_mingw "${format_url}-libidn2-2.0.4-1-any.pkg.tar.xz"
+ download_mingw "${format_url}-gcc-7.2.0-1-any.pkg.tar.xz"
# Upstream is unfortunately quite inconsistent in naming
if test "$mingw_arch" != "sources"; then
download_mingw "${format_url}-mpc-1.0.3-2-any.pkg.tar.xz"
- download_mingw "${format_url}-gcc-libs-6.3.0-2-any.pkg.tar.xz"
+ download_mingw "${format_url}-gcc-libs-7.2.0-1-any.pkg.tar.xz"
+ download_file "https://downloads.haskell.org/~ghc/mingw/ghc-perl-1.tar.gz" "ghc-tarballs/perl/ghc-perl-1.tar.gz" "Windows Perl binary distributions" "" ""
else
local format_url="${mingw_base_url}/${mingw_arch}/${package_prefix}"
download_mingw "${format_url}-i686-mpc-1.0.3-2.src.tar.gz"
download_mingw "${format_url}-x86_64-mpc-1.0.3-2.src.tar.gz"
fi
- download_file "https://downloads.haskell.org/~ghc/mingw/ghc-perl-1.tar.gz" "ghc-tarballs/perl/ghc-perl-1.tar.gz" "Windows Perl binary distributions"
-
if ! test "$missing_files" = "0"
then
exit 2
@@ -148,20 +158,24 @@ sync_binaries_and_sources() {
verify=0
download_sources
- for f in $(find ghc-tarballs/mingw-w64 -iname '*.sig'); do
+ for f in $($FIND ghc-tarballs/mingw-w64 -iname '*.sig'); do
echo "Verifying $f"
gpg --verify $f
done
- md5sum `find ghc-tarballs -type f -a -not -iname '*.sig'` >| mk/win32-tarballs.md5sum
+ md5sum `$FIND ghc-tarballs -type f -a -not -iname '*.sig'` >| mk/win32-tarballs.md5sum
chmod -R ugo+rX ghc-tarballs
rsync -av ghc-tarballs/mingw-w64/* downloads.haskell.org:public_html/mingw
- for f in $(find ghc-tarballs/mingw-w64); do
+ for f in $($FIND ghc-tarballs/mingw-w64); do
curl -XPURGE http://downloads.haskell.org/~ghc/mingw/$f
done
}
+show_hashes_for_binaries() {
+ $FIND ghc-tarballs/ -iname "*.*" | xargs md5sum | grep -v "\.sig" | sed -s "s/\*//"
+}
+
usage() {
echo "$0 - Download GHC mingw toolchain tarballs"
echo
@@ -172,6 +186,7 @@ usage() {
echo " download download the necessary tarballs for the given architecture"
echo " fetch download the necessary tarballs for the given architecture but doesn't verify their md5."
echo " verify verify the existence and correctness of the necessary tarballs"
+ echo " hash generate md5 hashes for inclusion in win32-tarballs.md5sum"
echo " sync upload packages downloaded with 'fetch mirror' to haskell.org"
echo ""
echo "and <arch> is one of i386, x86_64,all or mirror (which includes sources)"
@@ -196,6 +211,10 @@ case $1 in
verify=0
sync=1
;;
+ hash)
+ show_hashes_for_binaries
+ exit 1
+ ;;
*)
usage
exit 1
@@ -219,6 +238,7 @@ case $2 in
download_x86_64
verify=0
download_sources
+ show_hashes_for_binaries
;;
*)
if test "$sync" = "1"; then
diff --git a/mk/warnings.mk b/mk/warnings.mk
index af5f4f51d9..0ae81bfcac 100644
--- a/mk/warnings.mk
+++ b/mk/warnings.mk
@@ -8,9 +8,14 @@ SRC_HC_OPTS += -Wall
# isn't supported yet (https://ghc.haskell.org/trac/ghc/wiki/Design/Warnings).
#
# See Note [Stage number in build variables] in mk/config.mk.in.
-SRC_HC_OPTS_STAGE1 += $(WERROR) #-Wcpp-undef
-SRC_HC_OPTS_STAGE2 += $(WERROR) #-Wcpp-undef
+SRC_HC_OPTS_STAGE1 += $(WERROR)
+SRC_HC_OPTS_STAGE2 += $(WERROR)
+# Enable -Wcpp-undef for GHC components only, as we don't (currently) expect
+# core libraries to build in this configuration (see #13636).
+GhcRtsHcOpts += -Wcpp-undef
+GhcStage1HcOpts += -Wcpp-undef
+GhcStage2HcOpts += -Wcpp-undef
ifneq "$(GccIsClang)" "YES"
@@ -23,13 +28,11 @@ SRC_CC_WARNING_OPTS += -Werror=unused-but-set-variable
endif
endif
-ifeq "$(GccLT44)" "NO"
# Suppress the warning about __sync_fetch_and_nand (#9678).
libraries/ghc-prim/cbits/atomic_CC_OPTS += -Wno-sync-nand
# gcc 4.6 gives 3 warnings for giveCapabilityToTask not being inlined
# gcc 4.4 gives 2 warnings for lockClosure not being inlined
SRC_CC_WARNING_OPTS += -Wno-error=inline
-endif
else
@@ -114,6 +117,11 @@ libraries/transformers_dist-install_EXTRA_HC_OPTS += -Wno-unused-matches -Wno-un
libraries/transformers_dist-install_EXTRA_HC_OPTS += -Wno-redundant-constraints
libraries/transformers_dist-install_EXTRA_HC_OPTS += -Wno-orphans
+# parsec has various warnings
+libraries/parsec_dist-install_EXTRA_HC_OPTS += -Wno-name-shadowing -Wno-unused-matches
+libraries/parsec_dist-install_EXTRA_HC_OPTS += -Wno-unused-do-bind -Wno-missing-signatures
+libraries/parsec_dist-install_EXTRA_HC_OPTS += -Wno-unused-imports -Wno-type-defaults
+
# Turn of trustworthy-safe warning
libraries/base_dist-install_EXTRA_HC_OPTS += -Wno-trustworthy-safe
libraries/ghc-prim_dist-install_EXTRA_HC_OPTS += -Wno-trustworthy-safe
diff --git a/mk/win32-tarballs.md5sum b/mk/win32-tarballs.md5sum
index c60487a066..2c2d3df93a 100644
--- a/mk/win32-tarballs.md5sum
+++ b/mk/win32-tarballs.md5sum
@@ -1,39 +1,39 @@
-ec777eeef661d7e51b2e370ecbef486e ghc-tarballs/mingw-w64/sources/mingw-w64-binutils-2.28-1.src.tar.gz
d0b3537c3f56b6f396b3dc23a905d186 ghc-tarballs/mingw-w64/sources/mingw-w64-crt-git-5.0.0.4795.e3d96cb1-1.src.tar.gz
-d7336be322afce1786a1324703f037e1 ghc-tarballs/mingw-w64/sources/mingw-w64-gcc-6.3.0-2.src.tar.gz
+51d1006727d50a599bf30c34537bb6a9 ghc-tarballs/mingw-w64/sources/mingw-w64-binutils-2.29.1-1.src.tar.gz
+4578c232f7ed327bd6a364737cb018f5 ghc-tarballs/mingw-w64/sources/mingw-w64-gcc-7.2.0-1.src.tar.gz
b605210c3d1b03092e3b223d1ccf4001 ghc-tarballs/mingw-w64/sources/mingw-w64-gmp-6.1.2-1.src.tar.gz
-9a8a37d73edcbd130211141a4a4eb6b3 ghc-tarballs/mingw-w64/sources/mingw-w64-headers-git-5.0.0.4797.31e66d7e-1.src.tar.gz
+1ad83604bb58ecf43f26843975046c1c ghc-tarballs/mingw-w64/sources/mingw-w64-headers-git-5.0.0.4966.1eee2140-1.src.tar.gz
5c24d319656ed61e517dfa0fee7e475c ghc-tarballs/mingw-w64/sources/mingw-w64-i686-mpc-1.0.3-2.src.tar.gz
-e0b495821486711fc113de0d9c648498 ghc-tarballs/mingw-w64/sources/mingw-w64-isl-0.17.1-1.src.tar.gz
-dc2409bca461c33e7da0c0cebd8b4dd9 ghc-tarballs/mingw-w64/sources/mingw-w64-libidn-1.33-1.src.tar.gz
-40bea8ba145a8e84d558b3d0ee6ec58e ghc-tarballs/mingw-w64/sources/mingw-w64-mpfr-3.1.5.p1-1.src.tar.gz
-fbbe1bcca01a0dfc728d4c257bbdf82c ghc-tarballs/mingw-w64/sources/mingw-w64-winpthreads-git-5.0.0.4761.02bea78-1.src.tar.gz
+214032557d2474f10c23c33bdaced8e5 ghc-tarballs/mingw-w64/sources/mingw-w64-isl-0.18-1.src.tar.gz
+8c7efe60059c4c80d0d1966c943b5aaa ghc-tarballs/mingw-w64/sources/mingw-w64-libidn2-2.0.4-1.src.tar.gz
+18e9d17e968773c0691c50d9ceeede34 ghc-tarballs/mingw-w64/sources/mingw-w64-mpfr-3.1.6-1.src.tar.gz
+0462bc73a8b15a68dece429f6f33ca81 ghc-tarballs/mingw-w64/sources/mingw-w64-winpthreads-git-5.0.0.4850.d1662dc7-1.src.tar.gz
d4261042f502998006c57f0e6517998e ghc-tarballs/mingw-w64/sources/mingw-w64-x86_64-mpc-1.0.3-2.src.tar.gz
-1c3d0adfc59cc2cc0bdf2a956eb999bd ghc-tarballs/mingw-w64/sources/mingw-w64-zlib-1.2.11-1.src.tar.gz
-c2ea634a76f7e6ba5af529a662a18b23 ghc-tarballs/mingw-w64/x86/mingw-w64-i686-binutils-2.28-1-any.pkg.tar.xz
534bb4756482f3271308576cdadfe5dc ghc-tarballs/mingw-w64/x86/mingw-w64-i686-crt-git-5.0.0.4795.e3d96cb1-1-any.pkg.tar.xz
-1cf082fd47b5c156cfe1d4710b801834 ghc-tarballs/mingw-w64/x86/mingw-w64-i686-gcc-6.3.0-2-any.pkg.tar.xz
-718e0471f51553b4e94e8539c2b9b470 ghc-tarballs/mingw-w64/x86/mingw-w64-i686-gcc-libs-6.3.0-2-any.pkg.tar.xz
+32078e2a67e34ff6c0b1795fe6ed9d36 ghc-tarballs/mingw-w64/sources/mingw-w64-zlib-1.2.8-9.src.tar.gz
+66e4fc3e62c0fa6723c0d27bdb832962 ghc-tarballs/mingw-w64/x86/mingw-w64-i686-binutils-2.29.1-1-any.pkg.tar.xz
+634ad635913713abc0dbcb0ebef8c85b ghc-tarballs/mingw-w64/x86/mingw-w64-i686-gcc-7.2.0-1-any.pkg.tar.xz
+5343540bc6caa7ada564483f3a1fdff7 ghc-tarballs/mingw-w64/x86/mingw-w64-i686-gcc-libs-7.2.0-1-any.pkg.tar.xz
2f97e71e4ec122151c20350433268d8b ghc-tarballs/mingw-w64/x86/mingw-w64-i686-gmp-6.1.2-1-any.pkg.tar.xz
-2afc75ab51093ba5d3a740eec3340f6a ghc-tarballs/mingw-w64/x86/mingw-w64-i686-headers-git-5.0.0.4797.31e66d7e-1-any.pkg.tar.xz
-9fce16db004f00e967eb15efe0cdf86b ghc-tarballs/mingw-w64/x86/mingw-w64-i686-isl-0.17.1-1-any.pkg.tar.xz
-d25d5de6bf10d00046f194e3d584aa4f ghc-tarballs/mingw-w64/x86/mingw-w64-i686-libidn-1.33-1-any.pkg.tar.xz
-8ad554e582ec82a88842eea44b5bfd86 ghc-tarballs/mingw-w64/x86/mingw-w64-i686-libwinpthread-git-5.0.0.4761.02bea78-1-any.pkg.tar.xz
+07f374e6eb4846169921551ee73103e6 ghc-tarballs/mingw-w64/x86/mingw-w64-i686-headers-git-5.0.0.4966.1eee2140-1-any.pkg.tar.xz
+ac7017bd5d69030cfe76e475e213b43a ghc-tarballs/mingw-w64/x86/mingw-w64-i686-isl-0.18-1-any.pkg.tar.xz
+f758e0d121619b166dbe36060c641767 ghc-tarballs/mingw-w64/x86/mingw-w64-i686-libidn2-2.0.4-1-any.pkg.tar.xz
+3c718f86311bdd8c4438513a0f417391 ghc-tarballs/mingw-w64/x86/mingw-w64-i686-libwinpthread-git-5.0.0.4850.d1662dc7-1-any.pkg.tar.xz
719e76fa7a54a8676d2e60af3bb13c45 ghc-tarballs/mingw-w64/x86/mingw-w64-i686-mpc-1.0.3-2-any.pkg.tar.xz
-1424415317cf0ed9f7ee19ae32bba330 ghc-tarballs/mingw-w64/x86/mingw-w64-i686-mpfr-3.1.5.p1-1-any.pkg.tar.xz
-567b70b4e1ff961e1cb4875fa9dbb746 ghc-tarballs/mingw-w64/x86/mingw-w64-i686-winpthreads-git-5.0.0.4761.02bea78-1-any.pkg.tar.xz
-170af43955dd671c61a702f7809d230c ghc-tarballs/mingw-w64/x86/mingw-w64-i686-zlib-1.2.11-1-any.pkg.tar.xz
-e3b8e1ca85fd0d4c69bfc7f77c51301d ghc-tarballs/mingw-w64/x86_64/mingw-w64-x86_64-binutils-2.28-1-any.pkg.tar.xz
3780a25a6f20eef9b143f47f4b615e39 ghc-tarballs/mingw-w64/x86_64/mingw-w64-x86_64-crt-git-5.0.0.4795.e3d96cb1-1-any.pkg.tar.xz
-405e8382778b294ee96b92e4023208af ghc-tarballs/mingw-w64/x86_64/mingw-w64-x86_64-gcc-6.3.0-2-any.pkg.tar.xz
-5e02648f21957b9e80f4e2fe1c1c0fca ghc-tarballs/mingw-w64/x86_64/mingw-w64-x86_64-gcc-libs-6.3.0-2-any.pkg.tar.xz
+9d71b5b4698310a6b961a7d9e273a204 ghc-tarballs/mingw-w64/x86/mingw-w64-i686-mpfr-3.1.6-1-any.pkg.tar.xz
+8912539507692ecf3cebcd5405e1a526 ghc-tarballs/mingw-w64/x86/mingw-w64-i686-winpthreads-git-5.0.0.4850.d1662dc7-1-any.pkg.tar.xz
+87c65e9b2930436a75dfd7d459ae98cb ghc-tarballs/mingw-w64/x86/mingw-w64-i686-zlib-1.2.8-9-any.pkg.tar.xz
+a7e26551a47ce247e432d3f3db416f2b ghc-tarballs/mingw-w64/x86_64/mingw-w64-x86_64-binutils-2.29.1-1-any.pkg.tar.xz
+c4ce9e9a696a76a350d6ed4222fe205e ghc-tarballs/mingw-w64/x86_64/mingw-w64-x86_64-gcc-7.2.0-1-any.pkg.tar.xz
+872a54d953e7d9e6f375e3712d540701 ghc-tarballs/mingw-w64/x86_64/mingw-w64-x86_64-gcc-libs-7.2.0-1-any.pkg.tar.xz
1e1f79abc9fc0534d360c2889b10a9f5 ghc-tarballs/mingw-w64/x86_64/mingw-w64-x86_64-gmp-6.1.2-1-any.pkg.tar.xz
-0384f746a2f6f22258b4b882ceb23f56 ghc-tarballs/mingw-w64/x86_64/mingw-w64-x86_64-headers-git-5.0.0.4797.31e66d7e-1-any.pkg.tar.xz
-39c8b3b8e56b3b0bdef86cf32f1e09ba ghc-tarballs/mingw-w64/x86_64/mingw-w64-x86_64-isl-0.17.1-1-any.pkg.tar.xz
-c38366a4f262ff930550115fc632eeee ghc-tarballs/mingw-w64/x86_64/mingw-w64-x86_64-libidn-1.33-1-any.pkg.tar.xz
-e118ccb1b0a53484817a2ea037a7a548 ghc-tarballs/mingw-w64/x86_64/mingw-w64-x86_64-libwinpthread-git-5.0.0.4761.02bea78-1-any.pkg.tar.xz
+8cce0779e70d5c3ef3564a11fb3bd931 ghc-tarballs/mingw-w64/x86_64/mingw-w64-x86_64-headers-git-5.0.0.4966.1eee2140-1-any.pkg.tar.xz
+e1c25a67656e3667847be1f5eba73862 ghc-tarballs/mingw-w64/x86_64/mingw-w64-x86_64-isl-0.18-1-any.pkg.tar.xz
+6faaa722dce8af954b30e39c4213d657 ghc-tarballs/mingw-w64/x86_64/mingw-w64-x86_64-libidn2-2.0.4-1-any.pkg.tar.xz
+df50f51f32efe8bff7a87f26c6832045 ghc-tarballs/mingw-w64/x86_64/mingw-w64-x86_64-libwinpthread-git-5.0.0.4850.d1662dc7-1-any.pkg.tar.xz
df1a7d4050568d83c265ae78c32ef30b ghc-tarballs/mingw-w64/x86_64/mingw-w64-x86_64-mpc-1.0.3-2-any.pkg.tar.xz
-0778972da5f9b18539cdfe18e86e9400 ghc-tarballs/mingw-w64/x86_64/mingw-w64-x86_64-mpfr-3.1.5.p1-1-any.pkg.tar.xz
-5c55c1e1091595645adc36c4c16b1ea6 ghc-tarballs/mingw-w64/x86_64/mingw-w64-x86_64-winpthreads-git-5.0.0.4761.02bea78-1-any.pkg.tar.xz
-ee5a7e4a9f098efc51f9373365099b11 ghc-tarballs/mingw-w64/x86_64/mingw-w64-x86_64-zlib-1.2.11-1-any.pkg.tar.xz
+d15495e807e2a87b917febedbfb3f5b3 ghc-tarballs/mingw-w64/x86_64/mingw-w64-x86_64-mpfr-3.1.6-1-any.pkg.tar.xz
+c5ffd1a27eb459242b46d76b066e557e ghc-tarballs/mingw-w64/x86_64/mingw-w64-x86_64-winpthreads-git-5.0.0.4850.d1662dc7-1-any.pkg.tar.xz
+60c3a388478f411b7a0908441ebeb537 ghc-tarballs/mingw-w64/x86_64/mingw-w64-x86_64-zlib-1.2.8-9-any.pkg.tar.xz
b21d1681b61cf7a024e854096285b02e ghc-tarballs/perl/ghc-perl-1.tar.gz