forked from OSchip/llvm-project
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 llvm-svn: 314197
This commit is contained in:
parent
3b6ea6a4e2
commit
b51c49aa52
|
@ -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(struct _Unwind_Context *context,
|
|||
unw_set_reg(cursor, UNW_REG_IP, value);
|
||||
}
|
||||
|
||||
#endif // !defined(_LIBUNWIND_ARM_EHABI)
|
||||
#endif // !defined(_LIBUNWIND_ARM_EHABI) && !defined(__USING_SJLJ_EXCEPTIONS__)
|
||||
|
|
|
@ -308,7 +308,7 @@ DEFINE_LIBUNWIND_PRIVATE_FUNCTION(_ZN9libunwind15Registers_arm646jumptoEv)
|
|||
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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 fde) {
|
|||
DwarfFDECache<LocalAddressSpace>::removeAllIn((LocalAddressSpace::pint_t)fde);
|
||||
}
|
||||
#endif // defined(_LIBUNWIND_SUPPORT_DWARF_UNWIND)
|
||||
#endif // !defined(__USING_SJLJ_EXCEPTIONS__)
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue