diff --git a/src/buildvm_asm.c b/src/buildvm_asm.c index 35f413b9..49d6ffca 100644 --- a/src/buildvm_asm.c +++ b/src/buildvm_asm.c @@ -191,7 +191,7 @@ void emit_asm(BuildCtx *ctx) if (ctx->mode != BUILD_machasm) fprintf(ctx->fp, ".Lbegin:\n"); -#if LJ_TARGET_ARM && defined(__GNUC__) +#if LJ_TARGET_ARM && defined(__GNUC__) && !defined(__symbian__) /* This should really be moved into buildvm_arm.dasc. */ fprintf(ctx->fp, ".fnstart\n" @@ -227,7 +227,7 @@ void emit_asm(BuildCtx *ctx) #endif } -#if LJ_TARGET_ARM && defined(__GNUC__) +#if LJ_TARGET_ARM && defined(__GNUC__) && !defined(__symbian__) fprintf(ctx->fp, ".globl lj_err_unwind_arm\n" ".personality lj_err_unwind_arm\n" diff --git a/src/lj_err.c b/src/lj_err.c index 11f0922f..61178805 100644 --- a/src/lj_err.c +++ b/src/lj_err.c @@ -531,7 +531,7 @@ static void *err_unwind(lua_State *L, void *stopcf, int errcode) /* -- External frame unwinding -------------------------------------------- */ -#if defined(__GNUC__) +#if defined(__GNUC__) && !defined(__symbian__) #ifdef __clang__ /* http://llvm.org/bugs/show_bug.cgi?id=8703 */ @@ -540,13 +540,13 @@ static void *err_unwind(lua_State *L, void *stopcf, int errcode) #include +#if !LJ_TARGET_ARM + #define LJ_UEXCLASS 0x4c55414a49543200ULL /* LUAJIT2\0 */ #define LJ_UEXCLASS_MAKE(c) (LJ_UEXCLASS | (_Unwind_Exception_Class)(c)) #define LJ_UEXCLASS_CHECK(cl) (((cl) ^ LJ_UEXCLASS) <= 0xff) #define LJ_UEXCLASS_ERRCODE(cl) ((int)((cl) & 0xff)) -#if !LJ_TARGET_ARM - /* DWARF2 personality handler referenced from interpreter .eh_frame. */ LJ_FUNCA int lj_err_unwind_dwarf(int version, _Unwind_Action actions, _Unwind_Exception_Class uexclass, struct _Unwind_Exception *uex,