Przeglądaj źródła

ARM: Disable C++ exception catching on Symbian.

Mike Pall 14 lat temu
rodzic
commit
77bb8de93d
2 zmienionych plików z 5 dodań i 5 usunięć
  1. 2 2
      src/buildvm_asm.c
  2. 3 3
      src/lj_err.c

+ 2 - 2
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"

+ 3 - 3
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 <unwind.h>
 
+#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,