runtime: use _URC_FAILURE on ARM32
authorIan Lance Taylor <ian@gcc.gnu.org>
Tue, 11 Dec 2018 20:50:59 +0000 (20:50 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Tue, 11 Dec 2018 20:50:59 +0000 (20:50 +0000)
    ARM32 EABI unwinder does not define _URC_NORMAL_STOP. Instead,
    it has _URC_FAILURE. Use _URC_FAILURE there.

    Should fix ARM32 build.

    Reviewed-on: https://go-review.googlesource.com/c/153417

From-SVN: r267033

gcc/go/gofrontend/MERGE
libgo/runtime/go-unwind.c

index 062f9c798176623fd7945612ac130c447cf7e615..ccdfb1c61ffb9e814a6f19935cc4dfa8de6a8a47 100644 (file)
@@ -1,4 +1,4 @@
-f0266d382f8965b7bcaa380aa963498c1884505e
+4db15776701a7cfc1abcef08f7a98c63343d17e6
 
 The first line of this file holds the git revision number of the last
 merge done from the gofrontend repository.
index a1a9558597bfac7ecc19f717163d36c52427b236..c44755f971c54213f133a82f8b8e0dc79aa439c1 100644 (file)
@@ -392,6 +392,12 @@ parse_lsda_header (struct _Unwind_Context *context, const unsigned char *p,
 #define CONTINUE_UNWINDING return _URC_CONTINUE_UNWIND
 #endif
 
+#ifdef __ARM_EABI_UNWINDER__
+#define STOP_UNWINDING _URC_FAILURE
+#else
+#define STOP_UNWINDING _URC_NORMAL_STOP
+#endif
+
 #ifdef __USING_SJLJ_EXCEPTIONS__
 #define PERSONALITY_FUNCTION    __gccgo_personality_sj0
 #define __builtin_eh_return_data_regno(x) x
@@ -751,7 +757,7 @@ scanstackwithmap_callback (struct _Unwind_Context *context, void *arg)
               // TODO: print gp, pc, sp
               runtime_throw ("no stack map");
             }
-          return _URC_NORMAL_STOP;
+          return STOP_UNWINDING;
         }
       case FOUND:
         break;
@@ -799,7 +805,7 @@ probestackmaps_callback (struct _Unwind_Context *context,
 
   // Found a stack map. No need to keep unwinding.
   runtime_usestackmaps = true;
-  return _URC_NORMAL_STOP;
+  return STOP_UNWINDING;
 }
 
 // Try to find a stack map, store the result in global variable runtime_usestackmaps.