diff --git a/debian/patches/libcxx/libcxxabi-arm-ehabi-fix.patch b/debian/patches/libcxx/libcxxabi-arm-ehabi-fix.patch index a9e64b6d..5a9dd3ca 100644 --- a/debian/patches/libcxx/libcxxabi-arm-ehabi-fix.patch +++ b/debian/patches/libcxx/libcxxabi-arm-ehabi-fix.patch @@ -7,11 +7,11 @@ sure their ABI stays in sync. No known upstream bug about this. -Index: llvm-toolchain-snapshot_9~svn353687/libcxxabi/src/cxa_exception.cpp +Index: llvm-toolchain-snapshot_10~svn373627/libcxxabi/src/cxa_exception.cpp =================================================================== ---- llvm-toolchain-snapshot_9~svn353687.orig/libcxxabi/src/cxa_exception.cpp -+++ llvm-toolchain-snapshot_9~svn353687/libcxxabi/src/cxa_exception.cpp -@@ -276,15 +276,16 @@ __cxa_throw(void *thrown_object, std::ty +--- llvm-toolchain-snapshot_10~svn373627.orig/libcxxabi/src/cxa_exception.cpp ++++ llvm-toolchain-snapshot_10~svn373627/libcxxabi/src/cxa_exception.cpp +@@ -275,15 +275,16 @@ __cxa_throw(void *thrown_object, std::ty #ifdef __USING_SJLJ_EXCEPTIONS__ _Unwind_SjLj_RaiseException(&exception_header->unwindHeader); @@ -30,7 +30,7 @@ Index: llvm-toolchain-snapshot_9~svn353687/libcxxabi/src/cxa_exception.cpp // 2.5.3 Exception Handlers /* The adjusted pointer is computed by the personality routine during phase 1 -@@ -547,7 +548,11 @@ void __cxa_end_catch() { +@@ -546,7 +547,11 @@ void __cxa_end_catch() { // to touch a foreign exception in any way, that is undefined // behavior. They likely can't since the only way to catch // a foreign exception is with catch (...)! @@ -42,7 +42,7 @@ Index: llvm-toolchain-snapshot_9~svn353687/libcxxabi/src/cxa_exception.cpp globals->caughtExceptions = 0; } } -@@ -604,8 +609,10 @@ void __cxa_rethrow() { +@@ -603,8 +608,10 @@ void __cxa_rethrow() { } #ifdef __USING_SJLJ_EXCEPTIONS__ _Unwind_SjLj_RaiseException(&exception_header->unwindHeader); @@ -54,7 +54,7 @@ Index: llvm-toolchain-snapshot_9~svn353687/libcxxabi/src/cxa_exception.cpp #endif // If we get here, some kind of unwinding error has occurred. -@@ -729,8 +736,10 @@ __cxa_rethrow_primary_exception(void* th +@@ -728,8 +735,10 @@ __cxa_rethrow_primary_exception(void* th dep_exception_header->unwindHeader.exception_cleanup = dependent_exception_cleanup; #ifdef __USING_SJLJ_EXCEPTIONS__ _Unwind_SjLj_RaiseException(&dep_exception_header->unwindHeader); @@ -66,13 +66,13 @@ Index: llvm-toolchain-snapshot_9~svn353687/libcxxabi/src/cxa_exception.cpp #endif // Some sort of unwinding error. Note that terminate is a handler. __cxa_begin_catch(&dep_exception_header->unwindHeader); -Index: llvm-toolchain-snapshot_9~svn353687/libcxxabi/src/cxa_exception.h +Index: llvm-toolchain-snapshot_10~svn373627/libcxxabi/src/cxa_exception.h =================================================================== ---- llvm-toolchain-snapshot_9~svn353687.orig/libcxxabi/src/cxa_exception.h -+++ llvm-toolchain-snapshot_9~svn353687/libcxxabi/src/cxa_exception.h -@@ -27,6 +27,45 @@ uint64_t __getExceptionClass (const _Un - void __setExceptionClass ( _Unwind_Exception*, uint64_t); - bool __isOurExceptionClass(const _Unwind_Exception*); +--- llvm-toolchain-snapshot_10~svn373627.orig/libcxxabi/src/cxa_exception.h ++++ llvm-toolchain-snapshot_10~svn373627/libcxxabi/src/cxa_exception.h +@@ -27,6 +27,45 @@ _LIBCXXABI_HIDDEN uint64_t __getExceptio + _LIBCXXABI_HIDDEN void __setExceptionClass ( _Unwind_Exception*, uint64_t); + _LIBCXXABI_HIDDEN bool __isOurExceptionClass(const _Unwind_Exception*); +#if LIBCXXABI_ARM_EHABI +// GCC has _Unwind_Control_Block in unwind.h (unwind_arm_common.h)