--- a/include/typeinfo +++ b/include/typeinfo @@ -44,6 +44,7 @@ namespace __cxxabiv1 class __class_type_info; } // namespace __cxxabiv1 +#ifndef __GXX_MERGED_TYPEINFO_NAMES #if !__GXX_WEAK__ // If weak symbols are not supported, typeinfo names are not merged. #define __GXX_MERGED_TYPEINFO_NAMES 0 @@ -51,6 +52,7 @@ namespace __cxxabiv1 // On platforms that support weak symbols, typeinfo names are merged. #define __GXX_MERGED_TYPEINFO_NAMES 1 #endif +#endif namespace std { --- a/include/unwind-cxx.h +++ b/include/unwind-cxx.h @@ -173,6 +173,7 @@ extern std::unexpected_handler __unexpec // This is the exception class we report -- "GNUCC++\0". const _Unwind_Exception_Class __gxx_exception_class +#ifndef __ARM_EABI_UNWINDER__ = ((((((((_Unwind_Exception_Class) 'G' << 8 | (_Unwind_Exception_Class) 'N') << 8 | (_Unwind_Exception_Class) 'U') @@ -181,6 +182,9 @@ const _Unwind_Exception_Class __gxx_exce << 8 | (_Unwind_Exception_Class) '+') << 8 | (_Unwind_Exception_Class) '+') << 8 | (_Unwind_Exception_Class) '\0'); +#else += "GNUC++"; +#endif // GNU C++ personality routine, Version 0. extern "C" _Unwind_Reason_Code __gxx_personality_v0