ARM targetting cross-toolchain with GDC

Dawid Ciężarkiewicz dpc at
Thu Feb 23 07:25:59 PST 2012


# 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
       => 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:

(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:

       make install

(I use `./configure --prefix="$HOME/opt"` for home-local

This will give you `ct-ng` command that you can use in any

      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:

If anyone is interested I could upload the compiled binaries
somewhere, as the toolchain is static.

Dawid Ciężarkiewicz

More information about the Digitalmars-d mailing list