History log of /ndk/sources/cxx-stl/gabi++/src/helper_func_internal.h
Revision Date Author Comments
116c66e0fd83a166a969d4759d98765ab1207759 10-Mar-2014 WenHan Gu <Wenhan.gu@mediatek.com> Expose personality routine symbol.

This is necessary for unknown arch testing.
For example, if executable A needs libB.so, and libB uses libgabi++_static.a,
the problem is libB.so has __gxx_personality_v0, but it is hidden, so
executable A cannot link to final result since it has undefined reference.

Change-Id: I0233efc8626799e57ab7c1b3ffb7adde551d49e8
2319d708f6756fde7f18e0bf276715f001521c5a 30-Oct-2013 David 'Digit' Turner <digit@android.com> gabi++: Add std::get_new_handler() and __cxa_deleted_virtual()

This patch adds two missing functions to GAbi++:

- std::get_new_handler() is used to retrieve the current std::new_handler

- __cxa_deleted_virtual() is used in C++11 vtables to point to
'deleted methods'.

+ Add missing _GABIXX_NOEXCEPT and _GABIXX_NORETURN declarations.

+ Change throw() declarations into _GABIXX_NOEXCEPT, when compiling
C++11, this translates into the allegedly more efficient 'noexcept'
statement.

Change-Id: Ia5beaba8b6926372b96fa154b23bb118ab064f3e
ce2be28ffd56784d084ece009d26a37f829cff00 29-Jul-2013 David 'Digit' Turner <digit@android.com> gabi++: Introduced _GABIXX_HIDDEN macro.

This patch introduces a new GAbi++ macro used to declare
functions that are internal to the library, and should never be
exposed to client code. This doesn't affect the visibility of
other symbols.

Change-Id: I1e4b8e9796fabcfefe4a6f98a47599dc0898fe85
7a9c37698a1e2cdd865b5db7b14f9781cb696da6 28-Jul-2013 David 'Digit' Turner <digit@android.com> gabi++: Fix terminate / unexpected thread-safety.

This patch makes all operations on terminate and unexpected
handlers properly thread-safe. This also marks the appropriate
functions as "noreturn".

+ Move internal <cxxabi.h> declarations to internal header
src/cxxabi_defines.h

+ Add new <gabixx_config.h> header.

+ Move some exception-specific code to src/exception.cc

+ Rename __cxxabiv1::fatalError() to __gabixx::__fatal_error() in
src/fatal_error.cc

+ Get rid of __cxa_thread_info.

Change-Id: If79bf0263cc5f0be1bbf782a7874125fd4923d17
fdf89810ae76eac8def019716322018499531410 04-Mar-2013 Albert J. Wong <ajwong@google.com> Make Hello World run with libcxx and gabi++.

This change does 2 things:

(1) Modifies gabi++ source compatible with libcxx.
(2) Adds stubs for missing libc functions needed by libcxx.

It introduces a new macro, GXXABI_LIBCXX, into gabi++ which conditionally
enables and disables functions in gabi++ to make the exported API behave
like libcxxabi's. Existing gabi++ code is also refactored to remove
symbols + APIs that shouldn't really be in namespace std.

Locale handling code has been patched to hobble along in the c-abi, but
there are TODOs.

The exception handling logic in gabi++ isn't complete, nor are the
libc stubs. Where incomplete functionality is introduced a
preprocess warning is left to indicate lack of functionality.

After this CL, it is possible to make a running Hello World using
libcxx on Android.

Change-Id: Iceafd6f8d6dead6b64320b0c0f852d579cceb34c
7ae983a6ba4bf8ed27a64c492ed5a7178e389bc8 21-Nov-2012 David 'Digit' Turner <digit@android.com> GAbi++: Improve fatal error handling.

This patch does two things to improve fatal error handling in GAbi++:

- Change the default std::terminate() implementation to crash the
current process instead of calling abort(), in order to improve
debugging. See source code comments for details.

- Introduce a new internal fatalError() function that is used to
report errors to stderr and/or the log, then call std::terminate().

+ Add missing 'exceptions' tags to LOCAL_CPP_FEATURES.

Change-Id: I7e95ddc445ec85524a5091df464802e2f0be83ff
419afd910dc325e65df10b53e99e49c1eded6d26 19-Nov-2012 WenHan Gu <Wenhan.gu@mediatek.com> Make gabi++ support C++ exception handling.

After applying this patch, we can make gabi++
support full features on C++ exception handling.

This CL has run through tests in both ndk and GCC testsuites
(196 tests total) that are related to exception handling.
It achieves the same pass rate as gnustl library does!

NDK documentation states that upstream might support exception in gabi++.
Therefore, I did this patch to achieve the goal.

Change-Id: I59a448364b35054fcd9ba6ee33ca87380090d675