Thread overview
D on amd64
Oct 13, 2005
Alejandro Pulver
Oct 14, 2005
Thomas Kühne
Oct 14, 2005
Alejandro Pulver
Oct 14, 2005
David Friedman
Oct 14, 2005
Alejandro Pulver
Oct 18, 2005
Walter Bright
October 13, 2005
Hello,

I tried to compile the D compiler version 0.15 with GCC sources version 3.4.5-20050920 on FreeBSD/amd64, and I got the following error:

checking If /work/a/ports/lang/gdc/work/gcc-3.4-20050920/gcc/gdc -B/work/a/ports/lang/gdc/work/gcc-3.4-20050920/gcc/ -B/usr/local/x86_64-portbld-freebsd5.4/bin/ -B/usr/local/x86_64-portbld-freebsd5.4/lib/ -isystem /usr/local/x86_64-portbld-freebsd5.4/include -isystem /usr/local/x86_64-portbld-freebsd5.4/sys-include can compile D sources... Assertion failed: (sizeof(long) == 4), function number, file d/dmd/lexer.c, line 1696.
actest.d:0: internal compiler error: Abort trap

Complete log is at:
http://www.ijs.si/~lesi/other/gdc/gdc-0.15_1.log

The same happens on sparc64.

What can I do?

Thanks and Best Regards,
Ale
October 14, 2005
In article <op.sylfdnftx4us65@phobos.mars.bsd>, Alejandro Pulver says...
>
>Hello,
>
>I tried to compile the D compiler version 0.15 with GCC sources version 3.4.5-20050920 on FreeBSD/amd64, and I got the following error:
>
>checking If /work/a/ports/lang/gdc/work/gcc-3.4-20050920/gcc/gdc
>-B/work/a/ports/lang/gdc/work/gcc-3.4-20050920/gcc/
>-B/usr/local/x86_64-portbld-freebsd5.4/bin/
>-B/usr/local/x86_64-portbld-freebsd5.4/lib/ -isystem
>/usr/local/x86_64-portbld-freebsd5.4/include -isystem
>/usr/local/x86_64-portbld-freebsd5.4/sys-include can compile D sources...
>Assertion failed: (sizeof(long) == 4), function number, file
>d/dmd/lexer.c, line 1696.
>actest.d:0: internal compiler error: Abort trap
>
>Complete log is at: http://www.ijs.si/~lesi/other/gdc/gdc-0.15_1.log
>
>The same happens on sparc64.
>
>What can I do?
>
>Thanks and Best Regards,
>Ale

GDC isn't yet 64bit clean. You might try to crosscompile for 32bit and use multilib or equivialent.

I am using GDC and DMD on AMD64 (Linux Gentoo). GDC was compiled using gcc32 instead of gcc64. DMD is a bit tricky to setup:

1) extract dmd in /opt

2) fix access rights for /opt/dmd/bin/dmd

3) emerge emul-linux*
type "ldd /opt/dmd/bin/dmd" if you are unsure what 32bit libs are still missing

4) use a wrapper script for invoking dmd

---/usr/local/bin/dmd---
#!/bin/sh
PATH=/opt/dmd/bin:$PATH
/opt/dmd/bin/dmd $*

4) add a GCC wrapper, so that DMD calls gcc32 and not gcc

---/opt/dmd/bin/gcc---
#!/bin/sh
gcc32 $*

5) DMD should now compile - but remember it will produce 32bit object code.

Thomas


October 14, 2005
Alejandro Pulver wrote:
> Hello,
> 
> I tried to compile the D compiler version 0.15 with GCC sources version  3.4.5-20050920 on FreeBSD/amd64, and I got the following error:
> 
> checking If /work/a/ports/lang/gdc/work/gcc-3.4-20050920/gcc/gdc  -B/work/a/ports/lang/gdc/work/gcc-3.4-20050920/gcc/  -B/usr/local/x86_64-portbld-freebsd5.4/bin/  -B/usr/local/x86_64-portbld-freebsd5.4/lib/ -isystem  /usr/local/x86_64-portbld-freebsd5.4/include -isystem  /usr/local/x86_64-portbld-freebsd5.4/sys-include can compile D sources...  Assertion failed: (sizeof(long) == 4), function number, file  d/dmd/lexer.c, line 1696.
> actest.d:0: internal compiler error: Abort trap
> 
> Complete log is at:
> http://www.ijs.si/~lesi/other/gdc/gdc-0.15_1.log
> 
> The same happens on sparc64.
> 
> What can I do?
> 
> Thanks and Best Regards,
> Ale

You can change the assert in lexer.c to be assert(sizeof(long) >= 4). The compiler itself should be able to run as a 64-bit program, but only 32-bit targets are working now.

David
October 14, 2005
On Fri, 14 Oct 2005 04:54:39 -0300, Thomas Kühne <thomas-dloop@kuehne.cn> wrote:

> In article <op.sylfdnftx4us65@phobos.mars.bsd>, Alejandro Pulver says...
>>
>> Hello,
>>
>> I tried to compile the D compiler version 0.15 with GCC sources version
>> 3.4.5-20050920 on FreeBSD/amd64, and I got the following error:
>>
>> checking If /work/a/ports/lang/gdc/work/gcc-3.4-20050920/gcc/gdc
>> -B/work/a/ports/lang/gdc/work/gcc-3.4-20050920/gcc/
>> -B/usr/local/x86_64-portbld-freebsd5.4/bin/
>> -B/usr/local/x86_64-portbld-freebsd5.4/lib/ -isystem
>> /usr/local/x86_64-portbld-freebsd5.4/include -isystem
>> /usr/local/x86_64-portbld-freebsd5.4/sys-include can compile D sources...
>> Assertion failed: (sizeof(long) == 4), function number, file
>> d/dmd/lexer.c, line 1696.
>> actest.d:0: internal compiler error: Abort trap
>>
>> Complete log is at:
>> http://www.ijs.si/~lesi/other/gdc/gdc-0.15_1.log
>>
>> The same happens on sparc64.
>>
>> What can I do?
>>
>> Thanks and Best Regards,
>> Ale
>
> GDC isn't yet 64bit clean. You might try to crosscompile for 32bit and use
> multilib or equivialent.
>
> I am using GDC and DMD on AMD64 (Linux Gentoo). GDC was compiled using gcc32
> instead of gcc64. DMD is a bit tricky to setup:
>
> 1) extract dmd in /opt
>
> 2) fix access rights for /opt/dmd/bin/dmd
>
> 3) emerge emul-linux*
> type "ldd /opt/dmd/bin/dmd" if you are unsure what 32bit libs are still missing
>
> 4) use a wrapper script for invoking dmd
>
> ---/usr/local/bin/dmd---
> #!/bin/sh
> PATH=/opt/dmd/bin:$PATH
> /opt/dmd/bin/dmd $*
>
> 4) add a GCC wrapper, so that DMD calls gcc32 and not gcc
>
> ---/opt/dmd/bin/gcc---
> #!/bin/sh
> gcc32 $*
>
> 5) DMD should now compile - but remember it will produce 32bit object code.
>
> Thomas
>
>

Hello,

Thank you for the information, I just wanted to know if GDC was supporting 64-bit target machines.

Best Regards,
Ale
October 14, 2005
On Fri, 14 Oct 2005 10:03:55 -0300, David Friedman <d3rdclsmail_a@t_earthlink_d.t_net> wrote:

> Alejandro Pulver wrote:
>> Hello,
>>  I tried to compile the D compiler version 0.15 with GCC sources version  3.4.5-20050920 on FreeBSD/amd64, and I got the following error:
>>  checking If /work/a/ports/lang/gdc/work/gcc-3.4-20050920/gcc/gdc  -B/work/a/ports/lang/gdc/work/gcc-3.4-20050920/gcc/  -B/usr/local/x86_64-portbld-freebsd5.4/bin/  -B/usr/local/x86_64-portbld-freebsd5.4/lib/ -isystem  /usr/local/x86_64-portbld-freebsd5.4/include -isystem  /usr/local/x86_64-portbld-freebsd5.4/sys-include can compile D sources...  Assertion failed: (sizeof(long) == 4), function number, file  d/dmd/lexer.c, line 1696.
>> actest.d:0: internal compiler error: Abort trap
>>  Complete log is at:
>> http://www.ijs.si/~lesi/other/gdc/gdc-0.15_1.log
>>  The same happens on sparc64.
>>  What can I do?
>>  Thanks and Best Regards,
>> Ale
>
> You can change the assert in lexer.c to be assert(sizeof(long) >= 4). The compiler itself should be able to run as a 64-bit program, but only 32-bit targets are working now.
>
> David

O.K. Thank you for the information.

Best Regards,
Ale
October 18, 2005
"Alejandro Pulver" <alejandro@vanet.biz> wrote in message news:op.sylfdnftx4us65@phobos.mars.bsd...
> Assertion failed: (sizeof(long) == 4), function number, file
> d/dmd/lexer.c, line 1696.
> actest.d:0: internal compiler error: Abort trap

I've fixed the problem in the source, it'll go out in the next update.

> What can I do?

For now, just delete that line. It'll still work.