ARM targetting cross-toolchain with GDC

Andrey vangelisforever at yandex.ru
Thu Jun 13 07:28:19 PDT 2013


On Monday, 22 April 2013 at 17:22:50 UTC, Timofei Bolshakov wrote:
> Hi, Dawid!
>
> On Thursday, 23 February 2012 at 15:25:59 UTC, Dawid 
> Ciężarkiewicz wrote:
>> 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
>
> I tried to do that and build failed:
>
> [DEBUG]    ==> Executing: 'sh' './gcc/d/setup-gcc.sh'
> [ALL  ]    This version of GCC (4.4) is not supported.
>
> do you have somewhere corrected code / config?
>
>>
>> If anyone is interested I could upload the compiled binaries
>> somewhere, as the toolchain is static.
>
> I will greatly appreciate that!
>
>>

I have the same trouble.
And I don't know how resolve it..
I tried to change config 
"/$HOME/opt/lib/ct-ng.hg+../config/cc/gcc.in" by added gcc 4.7.0 
support, but this way compile has another errors:

[INFO ]  Installing C library
[INFO ]  Installing C library: done in 441.77s (at 17:52)
[INFO ]  
=================================================================
[INFO ]  Installing final compiler
[WARN ]    Building d language(s) is not yet supported. Will 
try...
[ERROR]    configure: error:
[ERROR]
[ERROR]  >>
[ERROR]  >>  Build failed in step 'Installing final compiler'
[ERROR]  >>        called in step '(top-level)'
[ERROR]  >>
[ERROR]  >>  Error happened in: 
CT_DoExecLog[scripts/functions at 172]
[ERROR]  >>        called from: 
do_cc_backend[scripts/build/cc/gcc.sh at 753]
[ERROR]  >>        called from: do_cc[scripts/build/cc/gcc.sh at 525]
[ERROR]  >>        called from: main[scripts/crosstool-NG.sh at 597]
[ERROR]  >>




More information about the Digitalmars-d mailing list