libc++: Use Android support library.
This improves libc++ in several ways:
- It adds a new static helper library under
sources/android/support/ to provide missing functionality
from Bionic, which are required to support wide chars
and UTF-8 encoded multi byte strings properly, as well
as locales and other stuff.
See README file in this directory for more details.
- It makes the ndk-build of libc++ use the support library.
- It provides a work-around for the Bionic limitation in its
<ctype.h> table named _ctype_, which doesn't include a bit
flag for blank characters (there is a _B flag which is only
used on SPACE (32), to implement isprint()).
See .../libcxx/support/android/locale_android.cpp
This removes the need to completely wrap <ctype.h>
in the support library itself.
+ Add two new unit tests to the NDK:
- test-android-support
- test-libc++
The first one builds and runs a small unit test suite
for the support library to verify it works properly.
This is completely independent from libc++.
The second one builds a minimalistic "Hello World"
program. Note that this uses a hack to avoid a runtime
crash (see sources/cxx-stl/llvm-libc++/test/test_1.cc)
TODO:
- Move the support library into its own independent
patch, when we're confident it works well enough.
Change-Id: I662f48a5ae602975a80b732f8738025f7e50a275
168 files changed