[libunwind] r314197 - Skip building unused parts when targeting SJLJ
Martin Storsjo via cfe-commits
cfe-commits at lists.llvm.org
Tue Sep 26 01:07:26 PDT 2017
Author: mstorsjo
Date: Tue Sep 26 01:07:26 2017
New Revision: 314197
URL: http://llvm.org/viewvc/llvm-project?rev=314197&view=rev
Log:
Skip building unused parts when targeting SJLJ
When SJLJ exceptions are used, those functions aren't used.
This fixes build failures on ARM with SJLJ enabled (e.g. on armv7/iOS)
when built using the CMake project files.
Differential Revision: https://reviews.llvm.org/D38249
Modified:
libunwind/trunk/src/UnwindLevel1.c
libunwind/trunk/src/UnwindRegistersRestore.S
libunwind/trunk/src/UnwindRegistersSave.S
libunwind/trunk/src/libunwind.cpp
Modified: libunwind/trunk/src/UnwindLevel1.c
URL: http://llvm.org/viewvc/llvm-project/libunwind/trunk/src/UnwindLevel1.c?rev=314197&r1=314196&r2=314197&view=diff
==============================================================================
--- libunwind/trunk/src/UnwindLevel1.c (original)
+++ libunwind/trunk/src/UnwindLevel1.c Tue Sep 26 01:07:26 2017
@@ -30,7 +30,7 @@
#include "unwind.h"
#include "config.h"
-#if !defined(_LIBUNWIND_ARM_EHABI)
+#if !defined(_LIBUNWIND_ARM_EHABI) && !defined(__USING_SJLJ_EXCEPTIONS__)
static _Unwind_Reason_Code
unwind_phase1(unw_context_t *uc, unw_cursor_t *cursor, _Unwind_Exception *exception_object) {
@@ -503,4 +503,4 @@ _LIBUNWIND_EXPORT void _Unwind_SetIP(str
unw_set_reg(cursor, UNW_REG_IP, value);
}
-#endif // !defined(_LIBUNWIND_ARM_EHABI)
+#endif // !defined(_LIBUNWIND_ARM_EHABI) && !defined(__USING_SJLJ_EXCEPTIONS__)
Modified: libunwind/trunk/src/UnwindRegistersRestore.S
URL: http://llvm.org/viewvc/llvm-project/libunwind/trunk/src/UnwindRegistersRestore.S?rev=314197&r1=314196&r2=314197&view=diff
==============================================================================
--- libunwind/trunk/src/UnwindRegistersRestore.S (original)
+++ libunwind/trunk/src/UnwindRegistersRestore.S Tue Sep 26 01:07:26 2017
@@ -308,7 +308,7 @@ DEFINE_LIBUNWIND_PRIVATE_FUNCTION(_ZN9li
ldp x0, x1, [x0, #0x000] // restore x0,x1
ret x30 // jump to pc
-#elif defined(__arm__) && !defined(__APPLE__)
+#elif defined(__arm__) && !(defined(__APPLE__) || defined(__USING_SJLJ_EXCEPTIONS__))
#if !defined(__ARM_ARCH_ISA_ARM)
.thumb
Modified: libunwind/trunk/src/UnwindRegistersSave.S
URL: http://llvm.org/viewvc/llvm-project/libunwind/trunk/src/UnwindRegistersSave.S?rev=314197&r1=314196&r2=314197&view=diff
==============================================================================
--- libunwind/trunk/src/UnwindRegistersSave.S (original)
+++ libunwind/trunk/src/UnwindRegistersSave.S Tue Sep 26 01:07:26 2017
@@ -289,7 +289,7 @@ DEFINE_LIBUNWIND_FUNCTION(unw_getcontext
mov x0, #0 // return UNW_ESUCCESS
ret
-#elif defined(__arm__) && !defined(__APPLE__)
+#elif defined(__arm__) && !(defined(__APPLE__) || defined(__USING_SJLJ_EXCEPTIONS__))
#if !defined(__ARM_ARCH_ISA_ARM)
.thumb
Modified: libunwind/trunk/src/libunwind.cpp
URL: http://llvm.org/viewvc/llvm-project/libunwind/trunk/src/libunwind.cpp?rev=314197&r1=314196&r2=314197&view=diff
==============================================================================
--- libunwind/trunk/src/libunwind.cpp (original)
+++ libunwind/trunk/src/libunwind.cpp Tue Sep 26 01:07:26 2017
@@ -24,6 +24,7 @@
#include <stdlib.h>
+#if !defined(__USING_SJLJ_EXCEPTIONS__)
#include "AddressSpace.hpp"
#include "UnwindCursor.hpp"
@@ -341,6 +342,7 @@ void _unw_remove_dynamic_fde(unw_word_t
DwarfFDECache<LocalAddressSpace>::removeAllIn((LocalAddressSpace::pint_t)fde);
}
#endif // defined(_LIBUNWIND_SUPPORT_DWARF_UNWIND)
+#endif // !defined(__USING_SJLJ_EXCEPTIONS__)
More information about the cfe-commits
mailing list