Commit Graph

8 Commits

Author SHA1 Message Date
David 'Digit' Turner
da4b8312a1 Add NEON support to the NDK build system + docs
You can now define LOCAL_ARM_NEON to 'true' in your Android.mk
to indicate that a whole module must be compiled with NEON support.

Alternatively, use the .neon suffix when listing source files in
LOCAL_SRC_FILES to indicate that they should be built with NEON
support. E.g.:

  LOCAL_SRC_FILES := foo.c.neon bar.c zoo.c.arm.neon

Note that .arm.neon is supported, but .neon.arm is NOT.

Also added documentation in docs/CPU-ARM-NEON.TXT

Another patch will provide one or more sample applications
to demonstrate all of this.
2010-02-09 13:18:48 -08:00
David 'Digit' Turner
14665046f8 Force ARMv7 builds to use only 16 FP registers.
This is needed because upcoming Cortex-A9 devices implement
VFPv3-D16 instead of the assumed VFPv3-D32 and have thus half
the floating-point registers.
2010-01-28 17:58:56 -08:00
David 'Digit' Turner
f5862d8da6 Add support for armeabi-v7a to the NDK.
This patch modifies the NDK build scripts to support the 'armeabi-v7a' ABI.
(For the record, it corresponds to Thumb-2 + FPU support, to speed up native
code on certain devices like the Droid).

To build for this ABI, the Application.mk file should use a line like:

  APP_ABI := armeabi-v7a

It is also possible to build for both 'armeabi' and 'armeabi-v7a' by using:

  APP_ABI := armeabi armeabi-v7a

This will result in the generation of two distinct shared libraries that both
will be copied to the final application package.

This is dependent on having GCC 4.4.0 prebuilt binaries under
build/prebuilt/<host>/arm-eabi-4.4.0, since gcc 4.2.1 does not support
this new ABI.

Note that this also changes the NDK to use gcc 4.4.0 by default, unless
the user defines NDK_TOOLCHAIN to 'arm-eabi-4.2.1' in its environment to
switch back to the previous one.
2009-11-20 14:07:15 -08:00
David 'Digit' Turner
1dbeeca5c4 Fix NDK usage of libgcc.a when building shared libraries
The main idea is that libgcc.a should appear after object files and
static libraries but before depending shared libraries. This willl
force the linker to copy the libgcc.a functions required by the
generated library into the target binary, instead of relying on
what's available in libc.so and others.

This ensures maximum portability, and prevent problems in the future
when we change the toolchain, which translates to different libgcc.a
functions embedded in libc.so and other exposed native libraries.

However, this will make also generated shared libraries bigger, because
the compiler insists on generating code that depends on a bunch of C++
support functions (even when building from C sources). An increase of
about 8KB per shared library is expected.
2009-09-28 10:41:32 -07:00
David 'Digit' Turner
3caffcfaf8 Force --no-undefined at link time to generate an error when trying to generate a shared library that references undefined symbols.
This can be overriden by defining LOCAL_ALLOW_UNDEFINED_SYMBOLS in your Android.mk to 'true'
2009-05-19 14:58:45 +02:00
David 'Digit' Turner
498455c79f Fix the build-toolchain.sh script which doesn't work due to the new download location of the NDK sources
and a small typo when using wget. Also make --force-download actually work.
2009-05-14 16:43:03 +02:00
Xavier Ducrohet
ad73286470 Fix source download location 2009-05-08 17:31:55 -07:00
David 'Digit' Turner
b9a8479e48 Initial import of new NDK into donut tree 2009-05-07 20:39:04 +02:00