"Internal error: backend\cod1.c 1895" when trying to build DMD/Druntime/Phobos from source
Vladimir Panteleev
vladimir at thecybershadow.net
Mon Jan 31 17:14:52 PST 2011
On Tue, 01 Feb 2011 00:30:27 +0200, Walter Bright
<newshound2 at digitalmars.com> wrote:
> Vladimir Panteleev wrote:
>> On Mon, 31 Jan 2011 06:13:54 +0200, Walter Bright
>> <newshound2 at digitalmars.com> wrote:
>>
>>> Vladimir Panteleev wrote:
>>>> Compiling the source from the .zip still yields a broken dmd.exe. My
>>>> version and the one from the .zip seem to differ in many small ways.
>>>> The first difference is that in main(), the .zip version calls a
>>>> function to get the address of errno, while my .exe accesses a
>>>> variable directly.
>>>
>>> Check your dmc's errno.h. It should call a function.
>> It's declared as follows:
Actually, it's declared in three files: errno.h, stdlib.h and stddef.h.
mars.c uses only the last two.
> _MT and __cplusplus
Why should _MT be enabled? There is no -D_MT in win32.mak. Are we using
different makefiles?
root/async.c sets _MT explicitly, but the example at hand is from mars.c.
If I add -D_MT to CFLAGS in the makefile, I still get a lot of
differences. The first difference is now one in a function's
prologue/epilogue - the binary from the .zip saves/restores the ECX
register, while my binary doesn't. The functions are otherwise identical.
--
Best regards,
Vladimir mailto:vladimir at thecybershadow.net
More information about the Digitalmars-d
mailing list