On 6 February 2012 01:07, Manu <turkey...@gmail.com> wrote: > On 6 February 2012 02:25, Manu <turkey...@gmail.com> wrote: >> >> 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. > > > I just tried with -mfpu=neon, which should allow GCC to generate neon > opcodes for the simd stuff, but it didn't seem to want to do that. In fact > it generates really horrible code where it CALLS an intrinsic for each float > in the vector... > Any idea why this wouldn't work out of the box? > > I wanted to add ARM support to my std.simd work here as a better proof of > concept. > > Iain: was there anything particularly special you needed to do to hook the > x86 SSE stuff to GDC which would need to be duplicated for ARM? gcc.builtins > doesn't seen to have any ARM intrinsics in there either...
Nope - its all arch agnostic. Just requires that: a) The target you are building for has the functions available b) The functions in question can be represented using D types. -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0';