From 76e795f818df09610b769346c402f1408f13131a Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Thu, 10 Oct 2013 20:53:32 +0200 Subject: [PATCH] Fix build on iOS MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit On 32-bit ARM, iOS uses SJLJ for exceptions, which is probably why _Unwind_Backtrace is not available (it's hard to implement reliably without unwind tables). Don't use it there, we don't need it (because we can't JIT). Task-Number: QTBUG-33979 Change-Id: Ifafbb59a32fd23c9b2e93228779535b2324ac4a3 Reviewed-by: Tor Arne Vestbø --- src/qml/jsruntime/qv4stacktrace.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/qml/jsruntime/qv4stacktrace.cpp b/src/qml/jsruntime/qv4stacktrace.cpp index 7b7060d..905111a 100644 --- a/src/qml/jsruntime/qv4stacktrace.cpp +++ b/src/qml/jsruntime/qv4stacktrace.cpp @@ -49,7 +49,11 @@ #include "qv4engine_p.h" #include "qv4unwindhelper_p.h" -#if defined(V4_CXX_ABI_EXCEPTION) || defined(Q_OS_DARWIN) +#if defined(V4_CXX_ABI_EXCEPTION) || (defined(Q_OS_DARWIN) && !defined(Q_PROCESSOR_ARM_32)) +#define USE_UNWIND_BACKTRACE +#endif + +#if defined(USE_UNWIND_BACKTRACE) #include struct BacktraceHelper @@ -95,7 +99,7 @@ NativeStackTrace::NativeStackTrace(ExecutionContext *context) engine = context->engine; currentNativeFrame = 0; -#if defined(V4_CXX_ABI_EXCEPTION) || defined(Q_OS_DARWIN) +#if defined(USE_UNWIND_BACKTRACE) UnwindHelper::prepareForUnwind(context); nativeFrameCount = get_backtrace_from_libunwind(&trace[0], sizeof(trace) / sizeof(trace[0])); -- 2.7.4