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