From 711f52336429d69e797d01f1c17e31d7e688e35c Mon Sep 17 00:00:00 2001 From: Stephan Bergmann Date: Tue, 11 Dec 2018 15:01:30 +0100 Subject: [PATCH] Adapt gcc3_linux_arm __cxa_exception to NDK 18 libc++abi ...which adds a member, and will be relevant when switching armeabi-v7a to libc++/libc++abi/libunwind (coming soon). Change-Id: I1f98f50ca299a583e73e0dbd6c8c94d973329f3a Reviewed-on: https://gerrit.libreoffice.org/64966 Tested-by: Jenkins Reviewed-by: Stephan Bergmann --- bridges/source/cpp_uno/gcc3_linux_arm/share.hxx | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/bridges/source/cpp_uno/gcc3_linux_arm/share.hxx b/bridges/source/cpp_uno/gcc3_linux_arm/share.hxx index a39fe26a97b8..ac380969e21b 100644 --- a/bridges/source/cpp_uno/gcc3_linux_arm/share.hxx +++ b/bridges/source/cpp_uno/gcc3_linux_arm/share.hxx @@ -64,6 +64,15 @@ public: namespace __cxxabiv1 { struct __cxa_exception { +#if defined _LIBCPPABI_VERSION // detect libc++abi +#if defined __LP64__ || defined __ARM_EABI__ + // Quoting android-ndk-r18b/sources/cxx-stl/llvm-libc++abi/src/cxa_exception.hpp: "This is a + // new field to support C++ 0x exception_ptr. For binary compatibility it is at the start of + // this struct which is prepended to the object thrown in __cxa_allocate_exception." + std::size_t referenceCount; +#endif +#endif + std::type_info *exceptionType; void (*exceptionDestructor)(void *);