--- /dev/null
+--- 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
+ \r
+ // This is the exception class we report -- "GNUCC++\0".\r
+ const _Unwind_Exception_Class __gxx_exception_class\r
++#ifndef __ARM_EABI_UNWINDER__\r
+ = ((((((((_Unwind_Exception_Class) 'G' \r
+ << 8 | (_Unwind_Exception_Class) 'N')\r
+ << 8 | (_Unwind_Exception_Class) 'U')\r
+@@ -181,6 +182,9 @@ const _Unwind_Exception_Class __gxx_exce
+ << 8 | (_Unwind_Exception_Class) '+')\r
+ << 8 | (_Unwind_Exception_Class) '+')\r
+ << 8 | (_Unwind_Exception_Class) '\0');\r
++#else\r
++= "GNUC++";\r
++#endif\r
+ \r
+ // GNU C++ personality routine, Version 0.\r
+ extern "C" _Unwind_Reason_Code __gxx_personality_v0\r