On 6 February 2012 00:04, Johannes Pfau <nos...@example.com> wrote: > Am Sun, 5 Feb 2012 18:04:12 +0100 > schrieb Johannes Pfau <nos...@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.