[Tutorial][Binaries] gdc for android

Johannes Pfau nospam at example.com
Mon Feb 6 00:11:04 PST 2012


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.


More information about the D.gnu mailing list