]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
runtime: use _URC_FAILURE on ARM32
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 11 Dec 2018 20:50:59 +0000 (20:50 +0000)
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@267033 138bc75d-0d04-0410-961f-82ee72b054a4

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.
 
 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
 
 #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
 #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");
             }
               // TODO: print gp, pc, sp
               runtime_throw ("no stack map");
             }
-          return _URC_NORMAL_STOP;
+          return STOP_UNWINDING;
         }
       case FOUND:
         break;
         }
       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;
 
   // 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.
 }
 
 // Try to find a stack map, store the result in global variable runtime_usestackmaps.