iphone + D, getting closer!

Timo Sintonen t.sintonen at luukku.com
Mon Nov 12 02:14:22 PST 2012


On Monday, 12 November 2012 at 08:31:32 UTC, Johannes Pfau wrote:
> Am Sun, 11 Nov 2012 17:38:08 -0800
> schrieb Dan Olson <zans.is.for.cans at yahoo.com>:
>
>
>> 
>> Even a simple D module with just a extern(C) function depends 
>> on
>> something in druntime, so I have to get part of that to build 
>> first.
>> 
>
> _Dmodule_ref?
> You can just declare it as extern(C) __gshared void* 
> _Dmodule_ref; (But
> IIRC you have to compile with -nophoboslib to make it work)
> It's used by the runtime/compiler to setup the ModuleInfos but 
> you
> don't have to initialize it, it just needs to be declared.

Module initialization code seems to use _Dmodule_ref to make some 
kind of linked list of module constructors even when we do not 
have any. I disabled module stuff from d-glue.cc:2828. The only 
unresolved reference I get now is __aeabi_unwind_cpp_pr1, which 
is found in libgcc.a. This library may not be searched by default 
in cross compilers, but has to be given separately.

  In arm compiler it should be checked in gcc sources that the 
right library for the target processor is generated (Cortex 
libraries for example are not generated by default) The file is 
in one in gcc-source/gcc/config/arm/t-* . If the library is there 
it has to be checked that the linker finds the right one. Command 
gcc -print-libgcc-file-name tells the library name and gcc 
-print-multi-lib tells the available libraries

I have now a minimum libdruntime library for arm-eabi. If there 
are any other unresolved symbols, please let us know.



More information about the D.gnu mailing list