Update Mingw-w64 bindist for Windows
authorTamar Christina <tamar@zhox.com>
Tue, 29 Nov 2016 21:58:53 +0000 (16:58 -0500)
committerBen Gamari <ben@smart-cactus.org>
Wed, 30 Nov 2016 01:38:43 +0000 (20:38 -0500)
This updates the binary dists for windows to GCC 6.2.0 and
binutils 2.27.2 which has fixes required for LLVM.

Test Plan: ./validate

Reviewers: simonmar, erikd, austin, bgamari

Reviewed By: simonmar, bgamari

Subscribers: thomie, #ghc_windows_task_force

Differential Revision: https://phabricator.haskell.org/D2749

GHC Trac Issues: #12871, #8974

docs/users_guide/8.2.1-notes.rst
mk/get-win32-tarballs.sh
rts/linker/M32Alloc.c

index 984889f..70b1f80 100644 (file)
@@ -97,6 +97,9 @@ Compiler
 
     data TSyn = (T :: (forall k. k -> Type) -> Type)
 
 
     data TSyn = (T :: (forall k. k -> Type) -> Type)
 
+- The Mingw-w64 toolchain for the Windows version of GHC has been updated. GHC now uses\r
+  `GCC 6.2.0` and `binutils 1.27.2`.
+
 GHCi
 ~~~~
 
 GHCi
 ~~~~
 
index a358dbc..64133de 100755 (executable)
@@ -35,8 +35,11 @@ download_file() {
         fi
     fi
 
         fi
     fi
 
-    echo "${file_md5} *${dest_file}" | md5sum --quiet -c - ||
-        fail "ERROR: ${description} appears to be corrupted, please delete it and try again."
+    if test "$verify" = "1"
+    then
+        echo "${file_md5} *${dest_file}" | md5sum --quiet -c - ||
+            fail "ERROR: ${description} appears to be corrupted, please delete it and try again."
+    fi
 }
 
 download_mingw() {
 }
 
 download_mingw() {
@@ -44,11 +47,14 @@ download_mingw() {
     local file_md5sum_x86="$2"
     local file_md5sum_x64="$3"
 
     local file_md5sum_x86="$2"
     local file_md5sum_x64="$3"
 
-    if test "$mingw_arch" = "i686"
+    if ! test "$mingw_arch" = "sources"
     then
     then
-        local file_md5sum="${file_md5sum_x86}"
-    else
-        local file_md5sum="${file_md5sum_x64}"
+        if test "$mingw_arch" = "i686"
+        then
+            local file_md5sum="${file_md5sum_x86}"
+        else
+            local file_md5sum="${file_md5sum_x64}"
+        fi
     fi
 
     local mingw_toolchain="$(basename $mingw_url)"
     fi
 
     local mingw_toolchain="$(basename $mingw_url)"
@@ -64,23 +70,23 @@ download_mingw() {
 }
 
 download_tarballs() {
 }
 
 download_tarballs() {
-    local mingw_base_url="https://downloads.haskell.org/~ghc/mingw"
+    local mingw_base_url="http://repo.msys2.org/mingw"
     local package_prefix="mingw-w64"
     local format_url="${mingw_base_url}/${mingw_arch}/${package_prefix}-${mingw_arch}"
 
     local package_prefix="mingw-w64"
     local format_url="${mingw_base_url}/${mingw_arch}/${package_prefix}-${mingw_arch}"
 
-    download_mingw "${format_url}-crt-git-5.0.0.4531.49c7046-1-any.pkg.tar.xz"           "dd39323140c0c1b3e065e9edb1a66779" "ac22cedd38229bcd57f5999e4734054f"
-    download_mingw "${format_url}-winpthreads-git-5.0.0.4538.78dca70-1-any.pkg.tar.xz"   "0b14fe27790e94db454fbb3564e79a73" "65cf07b6f42a1a62d1844e08190cab0d"
-    download_mingw "${format_url}-headers-git-5.0.0.4531.49c7046-1-any.pkg.tar.xz"       "6ee9e3c2f9d3e507f60ee33d19417dc2" "f49a19cdea93998c33ac90ceb9570350"
-    download_mingw "${format_url}-libwinpthread-git-5.0.0.4538.78dca70-1-any.pkg.tar.xz" "fbb2114aa7fbb5507e21d8a2ea265cfd" "31ed10e2d8891f6251d968f81bfdd274"
-    download_mingw "${format_url}-zlib-1.2.8-8-any.pkg.tar.xz"                           "7f519cb6defa27a90c5353160cf088d4" "6a2f4a70ccb24acca70a01da331699a6"
-    download_mingw "${format_url}-isl-0.14.1-2-any.pkg.tar.xz"                           "4cd20fe75ed9ef03e260d529042cb742" "dc0e0a7fd23a8193cccb0bf8d7267685"
+    download_mingw "${format_url}-crt-git-5.0.0.4745.d2384c2-1-any.pkg.tar.xz"           "03c9e74ce17702b0f13db8cb2c7ca8ca" "035f08a61ced0b81bb6c09974f7be897"
+    download_mingw "${format_url}-winpthreads-git-5.0.0.4741.2c8939a-1-any.pkg.tar.xz"   "155845f8c897f0c70adee83cfa9ec30c" "ba417ad9fb7cd3ee56e713b2b070adb9"
+    download_mingw "${format_url}-headers-git-5.0.0.4747.0f8f626-1-any.pkg.tar.xz"       "b724d1aaae73c329022ad22374481817" "e8065928b81c9b379286515913eccd68"
+    download_mingw "${format_url}-libwinpthread-git-5.0.0.4741.2c8939a-1-any.pkg.tar.xz" "65b18b67eef3c3d5e5707577dfa8f831" "c280f60a4b80ed6722ce4d9b4f6c550e"
+    download_mingw "${format_url}-zlib-1.2.8-9-any.pkg.tar.xz"                           "87c65e9b2930436a75dfd7d459ae98cb" "60c3a388478f411b7a0908441ebeb537"
+    download_mingw "${format_url}-isl-0.17.1-1-any.pkg.tar.xz"                           "9fce16db004f00e967eb15efe0cdf86b" "39c8b3b8e56b3b0bdef86cf32f1e09ba"
     download_mingw "${format_url}-mpc-1.0.3-2-any.pkg.tar.xz"                            "719e76fa7a54a8676d2e60af3bb13c45" "df1a7d4050568d83c265ae78c32ef30b"
     download_mingw "${format_url}-mpc-1.0.3-2-any.pkg.tar.xz"                            "719e76fa7a54a8676d2e60af3bb13c45" "df1a7d4050568d83c265ae78c32ef30b"
-    download_mingw "${format_url}-mpfr-3.1.3.p0-2-any.pkg.tar.xz"                        "e9cbd2402ac1afe6e86c102223b90dcb" "6e3b9ec27edab394aa41536839afdafe"
-    download_mingw "${format_url}-gmp-6.0.0-3-any.pkg.tar.xz"                            "c02f9759cd0140a6d8ea69ef5a88e167" "2970d4d8b176f8f36ae2d39269b25cce"
-    download_mingw "${format_url}-gcc-libs-5.2.0-3-any.pkg.tar.xz"                       "a9bd2e65cb350cc8f8a6deb6d3b346a8" "9c2ed24989e14fdf0c548a5215374660"
-    download_mingw "${format_url}-binutils-2.25.1-1-any.pkg.tar.xz"                      "997e9c2166fb851916cd8ac1bc9c6180" "7cb9f5f50a7103da41f7ec7547c09707"
-    download_mingw "${format_url}-libiconv-1.14-5-any.pkg.tar.xz"                        "2c99a163689ba8257627bb07274b3f86" "37418c6be92ef20be17cdc9fe844af35"
-    download_mingw "${format_url}-gcc-5.2.0-3-any.pkg.tar.xz"                            "efe6d6afc18aab89dc01e7ddcd2523a6" "0b697ce61112ba6e5a3c4d565957ea4e"
+    download_mingw "${format_url}-mpfr-3.1.4.p3-4-any.pkg.tar.xz"                        "6fdad8f6a522c779932ca4e54e4d7977" "de629f78e908274086a272196c14d37c"
+    download_mingw "${format_url}-gmp-6.1.1-1-any.pkg.tar.xz"                            "e8cc05fc566ddc6c16266da9aec2ddd3" "0faa10641da9266ef4cb39a8f6a4fa19"
+    download_mingw "${format_url}-gcc-libs-6.2.0-2-any.pkg.tar.xz"                       "e6f74da9dcb856cfe9e1da0ed45732e0" "f523d52a6ad940e1cda2bf3065927bd4"
+    download_mingw "${format_url}-binutils-2.27-2-any.pkg.tar.xz"                        "d263d1362dee0c24df80b461eb2ec489" "b1f21340136b75f1660d6ad36bd0768a"
+    download_mingw "${format_url}-libidn-1.32-3-any.pkg.tar.xz"                          "9ecd264a3da0f0f6af8b392c1b183a7b" "6f68259e17b68bbf19efc7b4fb5c1968"
+    download_mingw "${format_url}-gcc-6.2.0-2-any.pkg.tar.xz"                            "095dc33fb7a1cab5dab982aa57713a96" "303bf95f8e6ac5bc068b2ab95749b8f3"
 
     download_file "https://github.com/ghc/ghc-tarballs/blob/master/perl/ghc-perl-1.tar.gz?raw=true" "b21d1681b61cf7a024e854096285b02e" "ghc-tarballs/perl/ghc-perl-1.tar.gz" "Windows Perl binary distributions" "--insecure"
 
 
     download_file "https://github.com/ghc/ghc-tarballs/blob/master/perl/ghc-perl-1.tar.gz?raw=true" "b21d1681b61cf7a024e854096285b02e" "ghc-tarballs/perl/ghc-perl-1.tar.gz" "Windows Perl binary distributions" "--insecure"
 
@@ -102,6 +108,12 @@ download_x86_64() {
     download_tarballs
 }
 
     download_tarballs
 }
 
+download_sources() {
+    mingw_arch="sources"
+    tarball_dest_dir="mingw-w64/sources"
+    download_tarballs
+}
+
 usage() {
     echo "$0 - Download GHC mingw toolchain tarballs"
     echo
 usage() {
     echo "$0 - Download GHC mingw toolchain tarballs"
     echo
@@ -109,16 +121,23 @@ usage() {
     echo
     echo "Where <action> is one of,"
     echo "    download     download the necessary tarballs for the given architecture"
     echo
     echo "Where <action> is one of,"
     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."d
     echo "    verify       verify the existance and correctness of the necessary tarballs"
     echo "    verify       verify the existance and correctness of the necessary tarballs"
-    echo "and <arch> is one of i386, x86_64, or all"
+    echo "and <arch> is one of i386, x86_64,all or mirror (which includes sources)"
 }
 
 case $1 in
     download)
         download=1
 }
 
 case $1 in
     download)
         download=1
+        verify=1
+        ;;
+    fetch)
+        download=1
+        verify=0
         ;;
     verify)
         download=0
         ;;
     verify)
         download=0
+        verify=1
         ;;
     *)
         usage
         ;;
     *)
         usage
@@ -137,6 +156,12 @@ case $2 in
         download_i386
         download_x86_64
         ;;
         download_i386
         download_x86_64
         ;;
+    mirror)
+        download_i386
+        download_x86_64
+        verify=0
+        download_sources
+        ;;
     *)
         usage
         exit 1
     *)
         usage
         exit 1
index c5c3623..6a2996d 100644 (file)
@@ -336,7 +336,6 @@ void *
 m32_alloc(size_t size STG_UNUSED, size_t alignment STG_UNUSED)
 {
     barf("%s: RTS_LINKER_USE_MMAP is %d", __func__, RTS_LINKER_USE_MMAP);
 m32_alloc(size_t size STG_UNUSED, size_t alignment STG_UNUSED)
 {
     barf("%s: RTS_LINKER_USE_MMAP is %d", __func__, RTS_LINKER_USE_MMAP);
-    return NULL;
 }
 
 #else
 }
 
 #else