[Tutorial][Binaries] gdc for android

Iain Buclaw ibuclaw at ubuntu.com
Mon Feb 6 00:54:47 PST 2012


On 6 February 2012 08:11, Johannes Pfau <nospam at example.com> wrote:
> Am Mon, 6 Feb 2012 01:48:32 -0600
> schrieb Andrew Wiley <wiley.andrew.j at gmail.com>:
>
>>
>> Actually, if the Android default is to build against softfloat ABI,
>> you may be stuck with it. If Android doesn't require hardfloat to run
>> and doesn't let developers provide multiple binaries for different
>> platforms (which it might - I don't know), things get very hard.
>>
>> Also, with NEON, one of the things you don't really hear until you
>> start working with these is that NEON isn't actually required in most
>> if not all of the ARM CPU specs. I've specifically dealt with the
>> Tegra 2, which is used in a lot of phones and has no NEON support even
>> though it's ARM Cortex-A9.
>
> There's a official armv7-a ABI for android, it doesn't use 'hard', but
> at least 'softfp' instead of 'soft'.
>
> Just found the relevant documentation: See
> android-ndk-r7/docs/STANDALONE-TOOLCHAIN.html 4/ ABI Compatibility:
> ------------------------
> If you want to target the 'armeabi-v7a' ABI, you will need ensure that
> the following two flags are being used:
>
>  CFLAGS='-march=armv7-a -mfloat-abi=softfp'
>
> If you want to use Neon instructions, you will need one more compiler
> flag:
>
>  CFLAGS='-march=armv7-a -mfloat-abi=softfp -mfpu=neon'
>
> Also, is is *required* to use the following linker flags that routes
> around a CPU bug in some Cortex-A8 implementations:
>
>  LDFLAGS='-Wl,--fix-cortex-a8'
> ------------------------
> so according to those docs, you simply pass those flags to the
> compiler, no need to recompile the compiler.


>From the ARM Neon Intrinisics page:

"These built-in intrinsics for the ARM Advanced SIMD extension are
available when the -mfpu=neon switch is used."


-- 
Iain Buclaw

*(p < e ? p++ : p) = (c & 0x0f) + '0';


More information about the D.gnu mailing list