Am 25.04.19 um 20:05 schrieb Rainer Emrich:
Does anybody knows what's the plans for D on mingw.
AFAIS the frontend builds and is enabled for mingw. But the D runtime is
disabled for mingw and doesn't build.
A quick dive into the source showed that there is code for mingw target.
But it looks like the wrong configuration is selected.
Any ideas?
Hi Rainer,
it is correct that there are a few leftovers of previous MinGW support
in druntime. That code is quite old: Back then upstream did only support
the custom Digitalmars 32bit C library on Windows and MinGW was the only
compiler targeting the msvcrt runtime. Then at some point upstream added
support for msvcrt (CRuntime_Microsoft versioned code) but also broke
MinGW code. We therefore did not push the MinGW config code when merging
into GCC, as we knew MinGW was broken anyway.
I've did some work on fixing MinGW, but progress there has been delayed
by proper emutls support (integration of GCC emutls with the D garbage
collector). Without such GC support, most things would seem to work, but
you get random crashes once the GC starts to collect live data. We
actually never had proper emutls GC support in MinGW/GDC (I think
someone had patches to implement native TLS in GCC and binutils though).
As we pushed emutls GC support a few days ago, I now revived my
work-in-progress MinGW changes here:
https://github.com/D-Programming-GDC/gcc/pull/14
This likely won't make it into GCC 9.1 anymore though, so it's probably
up for 9.2.
Bet regards,
Johannes