Index: libcxxabi/src/cxa_default_handlers.cpp =================================================================== --- libcxxabi/src/cxa_default_handlers.cpp +++ libcxxabi/src/cxa_default_handlers.cpp @@ -25,6 +25,7 @@ __attribute__((noreturn)) static void demangling_terminate_handler() { +#ifndef _LIBCXXABI_NO_EXCEPTIONS // If there might be an uncaught exception using namespace __cxxabiv1; __cxa_eh_globals* globals = __cxa_get_globals_fast(); @@ -71,6 +72,7 @@ abort_message("terminating with %s foreign exception", cause); } } +#endif // Else just note that we're terminating abort_message("terminating"); } Index: libcxxabi/src/cxa_handlers.cpp =================================================================== --- libcxxabi/src/cxa_handlers.cpp +++ libcxxabi/src/cxa_handlers.cpp @@ -73,6 +73,7 @@ void terminate() _NOEXCEPT { +#ifndef _LIBCXXABI_NO_EXCEPTIONS // If there might be an uncaught exception using namespace __cxxabiv1; __cxa_eh_globals* globals = __cxa_get_globals_fast(); @@ -87,6 +88,7 @@ __terminate(exception_header->terminateHandler); } } +#endif __terminate(get_terminate()); }