ARM targetting cross-toolchain with GDC
Dawid Ciężarkiewicz
dpc at ucore.info
Thu Feb 23 07:25:59 PST 2012
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.
# 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
If anyone is interested I could upload the compiled binaries
somewhere, as the toolchain is static.
Regards,
Dawid Ciężarkiewicz
More information about the Digitalmars-d
mailing list