
Since I don't follow Phabricator I didn't even suspect you are making all this work.
Yes, looks like I undercommunicated, sorry about that. I started off with the patch to download the tarballs and just went ahead for standartising of mingw-w64 without quite realising how involved that would be (I expected only a few compilation errors...).
I had a patch to migrate to mingw-w64 gcc 4.8.x (and even 4.9.x, which requires extra runtime linker support) both for 64-bit and 32-bit for more than half of the year already. That patch is not such a thorough as yours is (I didn't bother with downloading the tarball and all that stuff), but regarding Linker.c I think it is perhaps more systematic than yours.
Yes, your patch looks much better. I've integrated it and running tests on 64-bit and 32-bit as we speak. Will keep you posted.
Why I didn't exposed it to a broad audience was that I believed there was not much interest and also because starting at some moment I didn't bother to maintain several patches per issue and combined them in one big patch (including some nonportable things) and I didn't want to spend a time to break it apart to per-issue parts.
Most of the prerequisite auxiliary fixes should be in now; the non-backwards compatible ones are part of D339.
During a couple of days I'll extract my patch to Linker.c and put it to Phabricator then, and also I'll comment on Linker.c issues.
Sounds good. By the way, you attached a patch to #9218 https://ghc.haskell.org/trac/ghc/ticket/9218#comment:14; should I consider that an up-to-date version of your proposed change, or should I wait a few days more? Btw, I wonder what the problem does "#define _MSVCRT_ 1" solve? I didn't
need it at all (I never run validate.sh though).
Without it I think I got a bunch of conflicting export definitions from the C library, and removing the ones in Linker.c resulted in runtime crashes. Not quite sure what was going on there. Probably issues due to my patch being rather ad-hoc. -- Gintautas Miliauskas