ARM targetting cross-toolchain with GDC

Iain Buclaw ibuclaw at ubuntu.com
Thu Feb 23 11:41:53 PST 2012


On 23 February 2012 18:03, Johannes Pfau <nospam at example.com> wrote:
> Am Thu, 23 Feb 2012 15:25:59 +0000 (UTC)
> schrieb Dawid Ciężarkiewicz <dpc at ucore.info>:
>
>> Hi,
>>
>> # Introduction
>>
>> I've started some initial work to get a working GDC crosscompiler
>> targeting ARM platforms. Currently I'm able to compile the
>> toolchain and produce a working "Hello World!" binary that I'm
>> able to execute on my BeagleBoard developement platform with
>> ArchLinux installed. The generated assembly looks sane,
>> unfortunately the program hangs, but I'm able to debug it in gdb
>> and I see it loops somewhere at:
>>
>>        2261    in
>> /home/dpc/lab/d-cross/test-tc-1/.build/src/gcc-4.6.2/libphobos/gc/gcx.d
>>        => 0x2f950 <_D2gc3gcx2GC6mallocMFkkPkZPv+648>:  str     r2,
>> [r4, r9, lsl #2]
>>
>> I'm going to investigate this and possibly fix with time. Anyone
>> interested in getting this to work seamlessly is kindly requested
>> to join efforts and share the results.
>
> That's issue 120:
> https://bitbucket.org/goshawk/gdc/issue/120/fsection-anchors-broken-on-arm
>
>>
>> # How to compile
>>
>> There's a crosstool-ng tool that is a great way to assemble and
>> build (cross-)toolchains. I've added some hacks to integrate the
>> gdc repository and thus add a gdc support.
>>
>> I've pushed the forked crosstools-ng here:
>>
>> https://bitbucket.org/xdpcx/crosstool-ng-dlang/
>>
>> (I prefer git, but original crosstools-ng is using hg, so I
>> sticked with it).
>>
>> Grab that code and learn to how to use ct-ng.
>>
>> Basically installing crosstool-ng it's just a metter of
>> downloading and doing:
>>
>>        ./bootstrap
>>        ./configure
>>        make
>>        make install
>>
>> (I use `./configure --prefix="$HOME/opt"` for home-local
>> configuration.)
>>
>> This will give you `ct-ng` command that you can use in any
>> directory
>>
>>       cd ~/my/toolchain/buildir
>>       mkdir src
>>       cp ~/config/that/i/prepared/for/you/config .config
>>       ct-ng menuconfig
>>       ct-ng build
>>       ls arm-none-linux-eabi
>>
>> I attach the mentioned config.
>>
>> Actually, as I don't know how to attach it I've put it here:
>> http://pastebin.ca/2121043
>
> Integrating GDC with crosstools is nice. If you find the time, could
> you please add a page to the GDC wiki on how to setup/use crosstool-ng?
>
>> If anyone is interested I could upload the compiled binaries
>> somewhere, as the toolchain is static.
>>
>> Regards,
>> Dawid Ciężarkiewicz
>
>

Does crosstools allow you to build a cross compiler for architecture X?


-- 
Iain Buclaw

*(p < e ? p++ : p) = (c & 0x0f) + '0';


More information about the Digitalmars-d mailing list