gdc / nokia / arm-*-gnueabi

Michael Dominic Kostrzewa michael.kostrzewa at nokia.com
Sat Jan 13 12:28:16 PST 2007


Hey

I'm building an arm gdc cross-compiler that'll compile D code to run on
maemo[0] platforms (nokia 770[1] and nokia n800[2] internet tablets).
There is a bunch of us here at nokia interested in experimenting with
D/making it a core part of our platform in the long run.

The good:
I was able to build an arm-*-linux cross-compiling gdc toolchain & phobos.
It works perfectly. The produced code runs correctly on the device, even
including the garbagge-collector. I had to apply some patching here and
there (mostly to phobos) but nothing specifically magical. 

Screenshot:
http://www.flickr.com/photo_zoom.gne?id=329290303&size=l

The bad:
We're no longer using arm-*-linux target. We're using the newer
arm-*-linux-gnueabi (armel) abi. This is a more powerfull eabi that allows
thumb interworking, etc. The gdc doesn't seem to work when compiled for
this target. To be precise -- the cc1d segfaults during compilation of
certain language structs (it happens when trying to compile phobos). The
segfaults are not totally random nor _very_ often (ie. it's possible to
compile some phobos files without problems). But something is obviously
broken ;)

Some data:

Debug backtrace of cc1d leading to segfault:
http://pastebin.ca/315685

Outout during phobos building:
http://pastebin.ca/315687

Strace of cc1d leading to segfault:
http://pastebin.ca/315694

I'm building gdc using gcc-3.4.4 from CodeSourcery (this is our default
toolchain). 

Any help/pointers would be appreciated! 

Regards,

[0]: http://www.maemo.org
[1]: http://www.nokia.com/770
[2]: http://www.nseries.com/n800

-- 
Michael Dominic Kostrzewa
Nokia - Multimedia
Helsinki




More information about the Digitalmars-d mailing list