On Sunday, 18 January 2015 at 16:32:54 UTC, ketmar via
Digitalmars-d wrote:
Hello.
it seems that current dmd.exe segfaults in Wine (at least on my
GNU/Linux x86 box, with freshly created WINEPREFIX), which
forces me to
switch between windoze VM and working environment if i want to
write
some win32 program (and i have to :-( ).
so i have a bunch of questions:
1. does anybody observes the same behavior with Wine?
I used dmd under Wine years ago and didn't have a problem
building a small utility, no recent use though.
2. does anybody tried to build dmd.exe with MinGW (this is not
related
to crashes, i think, but i like to build dmd.exe with
cross-compiler)?
Not me.
3. does anybody thought about allowing each dmd version to
create all
kind of object files on any platform, and how much is this
wanted?
Yes, Rainer had a pull that started dmd along this path by
changing the command-line options, but Walter didn't want dmd to
give any indication that cross-compiling was supported without
the rest of the work done so he vetoed it:
https://github.com/D-Programming-Language/dmd/pull/3542
I can't imagine that it's _that_ hard to go the rest of the way
by turning all the current target preprocessor macros into
runtime logic and filling in what few OS-specific gaps are
necessary, especially for a single host/target pair. I've
considered doing it but don't really have a need for it, so I
held off. ddmd might make the job easier, to the extent the
frontend won't rely on host headers anymore.
as for "3": i know that i need a linker too, which is not
ported (and
will not be). yet i seen some attempts to rewrite optlink in D,
and if
windows version of dmd will be able to generte proper COFFs (is
-ms32coff doing that already?), it will be possible to use
MinGW linker
and cross-linker with it.
Yes, dmd generates 32-bit COFF right now and I'm sure you can
find a cross-linker that will work.
allowing dmd to utilize MinGW toolchain will open some
possibilities
for those who either already has MinGW and don't want to use
DMC, or
for those who doing cross-compiles. as dmd alread can be build
with
GCC, i don't think that this will take alot of efforts.
actually, i made bare-bones "mingw.mak", and made some source
fixes
here and there, and now i got "dmd.exe" compiled with MinGW
cross-compiler. it shows dmd help when i launch it with wine,
but
crashes when i'm trying to compile "hello world" (the
"official" dmd
crashes with it too). as i don't have windows box to check it,
i don't
know if it really works.
You can install Win7 for four months without a license, whether
in a VM or spare partition. I've done that before, sometimes
wiping and installing on top after four months to start the timer
again. ;) Maybe Win8 allows the same, or you can test on the
Win10 Preview.