www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - gdc / nokia / arm-*-gnueabi

reply Michael Dominic Kostrzewa <michael.kostrzewa nokia.com> writes:
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
Jan 13 2007
next sibling parent Frits van Bommel <fvbommel REMwOVExCAPSs.nl> writes:
Michael Dominic Kostrzewa wrote:
 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

A link to that has been posted somewhere in these groups a while back. Good work.
 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

I think D.gnu is a more appropriate group for this. Folluwup set.
Jan 13 2007
prev sibling next sibling parent Walter Bright <newshound digitalmars.com> writes:
Michael Dominic Kostrzewa wrote:
 I had to apply some patching here and
 there (mostly to phobos) but nothing specifically magical.

Please let me know what those patches are, so they can be folded in.
Jan 13 2007
prev sibling next sibling parent John Reimer <terminal.node gmail.com> writes:
On Sat, 13 Jan 2007 22:28:16 +0200, Michael Dominic Kostrzewa wrote:

 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

This is great! D will likely prove to be a massive productivity boost for Nokia developers; I'm sure this will eventually be the case even with third party developers working on Nokia-based projects. It would be great if we could get tango working on this device at some point, as well. Feel free to drop in on the irc chat groups #d and #d.tango (freenode) where you'll likely get all the realtime help you need. All the best! -JJR
Jan 13 2007
prev sibling next sibling parent reply =?ISO-8859-1?Q?Lu=EDs_Marques?= <luismarques+spam gmail.com> writes:
Hello Michael,

I just wanted to say, please continue this great effort. It will be very 
appreciated.

Best regards,
Luís
Jan 13 2007
parent reply Walter Bright <newshound digitalmars.com> writes:
Luís Marques wrote:
 I just wanted to say, please continue this great effort. It will be very 
 appreciated.

I agree.
Jan 13 2007
parent Kris <fu bar.com> writes:
== Quote from Walter Bright (newshound digitalmars.com)'s article
 Luís Marques wrote:
 I just wanted to say, please continue this great effort. It will be very
 appreciated.


Yeah, me too. The number of computers on desks is dwarfed by the number of "smart" devices. Getting D running on these platforms has always been a primary key to mass adoption, IMO. It's that foot in the door, with a size-287 boot on the end ... Nice work!
Jan 13 2007
prev sibling parent Chad J <gamerChad _spamIsBad_gmail.com> writes:
Michael Dominic Kostrzewa wrote:
 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
 

I'm sorry I can't really help since compiler crashes scare me, but I would like to say that I love what you are doing. I hope to write games for mobile devices as soon as college goes away, and D is my language of choice. So the more mobile devices with D support, the better. Thank you so much!
Jan 14 2007