Commit Graph

6 Commits

Author SHA1 Message Date
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