[Tutorial][Binaries] gdc for android

Manu turkeyman at gmail.com
Sun Feb 5 16:25:08 PST 2012


On 6 February 2012 00:04, Johannes Pfau <nospam at example.com> wrote:

> Am Sun, 5 Feb 2012 18:04:12 +0100
> schrieb Johannes Pfau <nospam at example.com>:
>
> > I will probably need some more time to get this working...
> >
>
> I have some good news:
> http://www.mediafire.com/?107we120sh3xx
>
> I fixed that problem and then the whole build worked fine. I'll post
> build instructions soon, but the binaries are ready. I only did a
> simple gdc -c test.d to check the compiler, but it seems to work.
>
> Linking against druntime fails, as it uses functions which are not
> available on Android (backtrace, signal stuff).
>
> I also built a simple hello world on linux (printf, no runtime) and ran
> it on my android phone, and it worked!
>
> In case you haven't used GDC without runtime before, a short
> introduction:
>
> * use gdc -nophoboslib to make gdc not link against phobos (and afaik,
>  druntime)
> * theres also -nostdlib in case you need it
> * complex code may require -fno-section-anchors because of bug #120
> * You'll get an error about a missing _Dmodule_ref symbol. That symbol
>  is used by module constructors and not generated by gdc if
>  -nophoboslib was passed. As long as you don't run the module
>  constructors, you can add a fake _Dmodule_ref in a .c file:
>
> ------------
> void* _Dmodule_ref;
> ------------
>
> * The compiler defines version(Android)
>
> Here's my hello world:
> ------------
> version(Android)
> {
>    pragma(msg, "Hello Android!");
> }
>
> extern(C)
> {
>    int printf(in char* format, ...);
> }
>
> extern(C) void main()
> {
>    printf("Hello, %s!\n".ptr, "Android".ptr);
> }
> ------------
>
> compile the _Dmodule_ref into hack.o, then use
> gdc -nophoboslib hello.d hack.o
>

Amazing! You sir, are a genius!
I'm gonna have to have some fun with that after work tomorrow :)

I reckon this binary distro should be put on d-p-l somewhere obvious.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/d.gnu/attachments/20120206/7e74e4d2/attachment.html>


More information about the D.gnu mailing list