GHC MinGW distribution
kyrab at mail.ru
Tue Jun 10 05:48:13 UTC 2014
On 6/10/2014 03:46, Robin KAY wrote:
> Dear All,
> I wanted to enquire about the prospects for updating the version of
> MinGW which ships with the Windows binary distribution of GHC. The
> version included as of 7.8.2 is now several years old and in some
> cases I've found that it's incompatible with the libraries produced by
> newer versions of MinGW (as to be expected, per my understanding).
> Specifically, my HsQML binding for Qt can't be used with the libraries
> from the official Windows binary distribution of Qt 5 because the
> resulting executables crash on start-up with runtime
> incompatibilities. I'm in the process of trying to build
> out-of-the-box compatible Qt binaries against GHC's MinGW, but Qt's
> stated minimum requirements on the tool-chain version aren't
> encouraging. The only way I currently have of making this work is for
> users to edit their GHC settings file to point GHC at a version of
> gcc.exe from a newer MinGW (such as the one which ships with Qt). The
> fact that this seems to work is encouraging, but it's still a bit of a
> difficult process to put people through.
> I know that Windows developers are in short supply, so I would like to
> offer what assistance I can in making this happen. There appear to be
> copies of MinGW stored in the GHC repository at
> http://git.haskell.org/ghc-tarballs.git/tree . Does the build system
> use these automatically or are they just there for reference?
My experience is as follows:
1. 64-bit GHC uses mingw-w64 runtime/toolchain. Mingw-64 runtime and
binutils may be upgraded to the most recent versions and gcc may be
upgraded to versions up to 4.8.x. Gcc 4.9 is incompatible with GHC's
runtime linker now. Btw, did anybody try GHC + gcc 4.9 on linux?
2. 32-bit GHC uses mingw runtime/toolchain. I didn't try to upgrade it
for a long time but I think it shall succeed too (latest mingw gcc is
4.8.1). Btw, mingw runtime/toolchain development is stalled and it lags
behind mingw-w64 *considerably*. It is possible to use 32-bit mingw-w64
runtime/toolchain with GHC, but it requires some patches to be made. I
have such a patchset ready and can provide it if GHC HQ decide to switch
32-bit GHC distribution to mingw-w64 runtime/toolchain.
It is also important using mingw-w64 opens the door to *plenty* of
prebuilt packages available through Msys2 project, see
More information about the ghc-devs