Need help making minimal bare metal ARM Cortex-M D program

Mike none at none.com
Sun Nov 24 06:44:12 PST 2013


On Sunday, 24 November 2013 at 14:21:57 UTC, Johannes Pfau wrote:
> Cortex-M is the 'bare metal' branch of ARM where you usually 
> don't run
> linux so druntime won't work anyway. There are some compiler 
> fixes in
> my branch that could be interesting though:
> https://github.com/jpf91/GDC/commits/arm
>

I'm aware of the druntime will not work, which is why I'm trying 
to find a way to write and compile code _without_ the druntime or 
phobos.  See my re-post.

>> Also, when I tried to follow the crosstools instructions here 
>> (http://wiki.dlang.org/GDC/Cross_Compiler) I found that the 
>> latest crosstools was missing some of the options that are 
>> needed.
>
> You mean options for bare metal builds or options described in 
> the
> wiki? I'm not sure if crosstool-NG works well with bare metal 
> builds.
>
> GCC build scripts can be annoying, especially when 
> cross-compiling.
> Your best bet is still crosstool-NG though, what exactly are the
> missing options?

A couple of the options don't seem to exist in crosstools.  
Specifically "Go to C compiler, select Other languages and enter 
d".  Pretty hard to tell the compiler to support D without this 
option.

The GNU Tools for ARM scripts are specifically written for 
cross-compiling, and even Canadian cross compiling. When I run 
the build scripts, I get:

cat ~/mylongdir/src/gcc/gcc/BASE-VER: No such file or directory.

I looked through the shell script, but code like this

GCC_VER=`cat $SRCDIR/$GCC/gcc/BASE-VER`
GCC_VER_NAME=`echo $GCC_VER | cut -d'.' -f1,2 | sed -e 's/\./_/g'`

is a little hard for me to figure out.

Again, the problem here is not with GDC; it's that I don't know 
enough about the Linux tools to know what its trying to do here 
and what I can do about it.

LLVM, clang, and LDC built on the first try after 3 weekends 
struggling with GCC.





More information about the Digitalmars-d mailing list