On Friday, 10 October 2014 at 16:14:56 UTC, Rainer Schuetze wrote:


On 10.10.2014 10:37, Szymon Gatner wrote:
I would like to try recently merged COFF support on Win32 for a hybrid
D/C++ application.

Until now I tried that (hybridizing) only with DMD from the official
installer and in x64 mode.

My question is: how to try the same in 32 bits?

You need a recent version of dmd, druntime and phobos from github: https://github.com/D-Programming-Language

If you have never built these yourself, Digger might be of great help: https://github.com/CyberShadow/Digger/releases. It will also fetch these from github and download tools needed for building. Digger doesn't know about COFF32 yet, though.

Then build druntime inside its directory:
make -f win64.mak MODEL=32mscoff "CC=\"%VCINSTALLDIR%\bin\cl.exe\"" target unittest

and phobos:
make -f win64.mak MODEL=32mscoff "CC=\"%VCINSTALLDIR%\bin\cl.exe\"" "AR=\"%VCINSTALLDIR%\bin\lib.exe\""

Add a configuration section [Environment32mscoff] to your sc.ini and add options matching these:

https://github.com/D-Programming-Language/dmd/blob/master/ini/windows/bin/sc.ini#L84

Building is done with option -m32mscoff instead of -m32/-m64.


Hi, thanks for all the information.

I got Digger (pretty nice tool btw) and it pulled all neccessary repos from GitHub. As my understanding is that I should not be doing "Build" with Diggger I just opened Windows console, entered druntime dir and typed:

d:\digger-1.0\repo\druntime>make -f win64.mak MODEL=32mscoff "CC=\"%VCINSTALLDIR
%\bin\cl.exe\""

and got:

dmd -c -o- -Isrc -Iimport -Hfimport\core\sync\barrier.di src\core\sync\barrier.d

src\core\stdc\stdio.d(859): Error: found 'nothrow' when expecting '{' src\core\stdc\stdio.d(861): Error: mismatched number of curly brackets src\core\stdc\stdio.d(862): Error: mismatched number of curly brackets src\core\stdc\stdio.d(863): Error: mismatched number of curly brackets src\core\stdc\stdio.d(864): Error: mismatched number of curly brackets src\core\stdc\stdio.d(865): Error: mismatched number of curly brackets src\core\stdc\stdio.d(866): Error: mismatched number of curly brackets src\core\stdc\stdio.d(867): Error: mismatched number of curly brackets
src\core\stdc\stdio.d(871): Error: asm statements must end in ';'
src\core\stdc\stdio.d(874): Error: found 'private' instead of statement src\core\stdc\stdio.d(884): Error: no identifier for declarator add src\core\stdc\stdio.d(887): Error: no identifier for declarator usDone
src\core\stdc\stdio.d(887): Error: Declaration expected, not ':'
src\core\stdc\stdio.d(894): Error: Declaration expected, not '('
src\core\stdc\stdio.d(896): Error: Declaration expected, not 'foreach'
src\core\stdc\stdio.d(896): Error: Declaration expected, not '0'
src\core\stdc\stdio.d(901): Error: no identifier for declarator __fhnd_info[fd]
src\core\stdc\stdio.d(901): Error: Declaration expected, not '='
src\core\stdc\stdio.d(902): Error: Declaration expected, not 'return'
src\core\stdc\stdio.d(904): Error: unrecognized declaration

--- errorlevel 1

Reply via email to