diff options
Diffstat (limited to 'mk')
-rw-r--r-- | mk/build.mk.sample | 22 | ||||
-rw-r--r-- | mk/config.mk.in | 39 | ||||
-rwxr-xr-x | mk/detect-cpu-count.sh | 26 | ||||
-rw-r--r-- | mk/flavours/bench-cross-ncg.mk | 17 | ||||
-rw-r--r-- | mk/flavours/perf-cross-ncg.mk | 16 | ||||
-rw-r--r-- | mk/flavours/quick-cross-ncg.mk | 17 | ||||
-rwxr-xr-x | mk/get-win32-tarballs.sh | 64 | ||||
-rw-r--r-- | mk/warnings.mk | 16 | ||||
-rw-r--r-- | mk/win32-tarballs.md5sum | 56 |
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 |