<html><body><pre>
C++ support with the Android NDK
================================


The Android platform provides a very minimal C++ runtime support library
(/system/lib/libstdc++) and corresponding headers for it in the NDK.

By default, this 'system' runtime does *not* provide the following:

  - Standard C++ Library support (except a few trivial headers).
  - C++ exceptions support
  - RTTI support

However, the NDK provides various "helper C++ runtimes" which can provide them,
or a subset of these features.

To select the runtime you want to use, define APP_STL inside your
Application.mk to one of the following values:

    system          -&gt; Use the default minimal system C++ runtime library.
    gabi++_static   -&gt; Use the GAbi++ runtime as a static library.
    gabi++_shared   -&gt; Use the GAbi++ runtime as a shared library.
    stlport_static  -&gt; Use the STLport runtime as a static library.
    stlport_shared  -&gt; Use the STLport runtime as a shared library.
    gnustl_static   -&gt; Use the GNU STL as a static library.
    gnustl_shared   -&gt; Use the GNU STL as a shared library.

The 'system' runtime is the default if there is no APP_STL definition in
your Application.mk. As an example, to use the static GNU STL, add a line like:

   APP_STL := gnustl_static

To your Application.mk. You can only select a single C++ runtime that all
your code will depend on. It is not possible to mix shared libraries compiled
against different C++ runtimes.

IMPORTANT: Defining APP_STL in Android.mk has no effect!

If you are not using the NDK build system, you can still use the GNU STL,
see docs/STANDALONE-TOOLCHAIN.html for more details.

The capabilities of the various runtimes vary. See this table:

                 C++       C++   Standard
              Exceptions  RTTI    Library

    system        no       no        no
    gabi++       yes      yes        no
    stlport      yes      yes       yes
    gnustl       yes      yes       yes


I. Runtimes overview:
---------------------

I.1. System runtime:
- - - - - - - - - - -

The system runtime only provides a very small number of C++ standard headers.

This corresponds to the actual C++ runtime provided by the Android platform.
If you use it, your C++ binaries will automatically be linked against the
system libstdc++.

The only headers provided here are the following:

   cassert cctype cerrno cfloat climits cmath csetjmp csignal cstddef
   cstdint cstdio cstdlib cstring ctime cwchar new stl_pair.h typeinfo
   utility

Anything else is _not_ supported, including std::string or std::vector.


I.2. GAbi++ runtime:
- - - - - - - - - - -

This is a new minimalistic runtime that provides the same headers than
the system one, with the addition of RTTI (RunTime Type Information) and
exception handling support.

If you insist on using it, read the "RTTI Support" and
"Static runtime considerations" sections below.


I.3. STLport runtime:
- - - - - - - - - - -

This is a port of STLport (http://www.stlport.org) that can be used on
Android. It will provide you with a complete set of C++ standard library
headers, however it ONLY SUPPORTS RTTI, AND NO EXCEPTIONS!

That's because the library embeds its own copy of GAbi++.

Available as both both static and shared libraries. To use it, use either
one of these two lines in your Application.mk:

   APP_STL := stlport_shared
   APP_STL := stlport_static

Note that 'stlport_shared' is preferred, for reasons explained in
"Static runtime considerations".


I.4. GNU STL runtime:
- - - - - - - - - - -

This is the GNU Standard C++ Library (a.k.a. libstdc++-v3), providing the
more features. Note that the shared library file is named "libgnustl_shared.so"
instead of "libstdc++.so" as on other platforms.

If you want to use it, please read the "C++ Exceptions support",
"RTTI Support" and "Static runtime considerations" sections below.



II. Important Considerations:
-----------------------------


II.1. C++ Exceptions support:
- - - - - - - - - - - - - - -

The NDK toolchain supports C++ exceptions, since NDK r5, however all C++
sources are compiled with -fno-exceptions support by default, for
compatibility reasons with previous releases.

To enable it, use the new LOCAL_CPP_FEATURES variable in your Android.mk,
as in:

    LOCAL_CPP_FEATURES += exceptions

See docs/ANDROID-MK.html for more details about this variable.

Another way to do the same is to define it in your LOCAL_CPPFLAGS definition
(but using LOCAL_CPP_FEATURES is preferred), as in:

    LOCAL_CPPFLAGS += -fexceptions

More simply, add a single line to your Application.mk, the setting will
automatically apply to all your project's NDK modules:

    APP_CPPFLAGS += -fexceptions

IMPORTANT: You *will* have to select a C++ runtime that supports
           exceptions to be able to link / run your code.


II.2. RTTI support:
- - - - - - - - - -

Similarly, the NDK toolchain supports C++ RTTI (RunTime Type Information)
since NDK r5, but all C++ sources are built with -fno-rtti by default for
compatibility reasons. To enable it, add the following to your module
declarations:

    LOCAL_CPP_FEATURES += rtti

This will be equivalent to:

    LOCAL_CPPFLAGS += -frtti

Or more simply to your Application.mk:

    APP_CPPFLAGS += -frtti


II.3. Static runtimes:
- - - - - - - - - - - -

Please keep in mind that the static library variant of a given C++ runtime
SHALL ONLY BE LINKED INTO A SINGLE BINARY for optimal conditions.

What this means is that if your project consists of a single shared
library, you can link against, e.g., stlport_static, and everything will
work correctly.

On the other hand, if you have two shared libraries in your project
(e.g. libfoo.so and libbar.so) which both link against the same static
runtime, each one of them will  include a copy of the runtime's code in
its final binary image. This is problematic because certain global
variables used/provided internally by the runtime are duplicated.

This is likely to result in code that doesn't work correctly, for example:

  - memory allocated in one library, and freed in the other would leak
    or even corrupt the heap.

  - exceptions raised in libfoo.so cannot be caught in libbar.so (and may
    simply crash the program).

  - the buffering of std::cout not working properly

This problem also happens if you want to link an executable and a shared
library to the same static library.

In other words, if your project requires several shared library modules,
then use the shared library variant of your C++ runtime.


II.4. Shared runtimes:
- - - - - - - - - - - -

If you use the shared library variant of a given C++ runtime, keep in mind
that you must load it before any library that depends on it when your
application starts.

As an example, let's consider the case where we have the following modules

  libfoo.so
  libbar.so which is used by libfoo.so
  libstlport_shared.so, used by both libfoo and libbar

You will need to load the libraries in reverse dependency order, as in:

  static {
    System.loadLibrary("stlport_shared");
    System.loadLibrary("bar");
    System.loadLibrary("foo");
  }

Note that you shouldn't use the 'lib' prefix when calling
System.loadLibrary(), unless you specify the full path as in:

    System.loadLibrary("/path/to/libstlport_shared.so")

Which is not recommended, since this hard-codes the path in your code.


III. EXTRAS:

III.1. STLport-specific issues:
-------------------------------

This NDK provides prebuilt static and shared libraries for STLport,
but you can force it to be rebuilt from sources by defining the following
in your environment or your Application.mk before building:

    STLPORT_FORCE_REBUILD := true

STLport is licensed under a BSD-style open-source license. See
sources/cxx-stl/stlport/README for more details about the library.


III.2. GNU libstdc++ license is GPLv3 + linking exception!
----------------------------------------------------------

Be aware that the GNU libstdc++ is covered by the GPLv3 license (and *not*
the LGPLv2 or LGPLv3 as some assume), full details available here:

    http://gcc.gnu.org/onlinedocs/libstdc++/manual/license.html

Be sure that you comply with all clauses of this license.


IV. Future Plans:
-----------------

  - uSTL support?

</pre></body></html>
