aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@gcc.gnu.org>2018-12-11 20:50:59 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2018-12-11 20:50:59 +0000
commitbe68937be28ad63bd6f7a75d0fa5c851ba4afc2b (patch)
tree98f59c62064bac4ce953a9287e059cbd3454ac3d
parent582d2481f7380441c345bf1dfe698f90f34dd6cf (diff)
downloadgcc-be68937be28ad63bd6f7a75d0fa5c851ba4afc2b.zip
gcc-be68937be28ad63bd6f7a75d0fa5c851ba4afc2b.tar.gz
gcc-be68937be28ad63bd6f7a75d0fa5c851ba4afc2b.tar.bz2
runtime: use _URC_FAILURE on ARM32
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
-rw-r--r--gcc/go/gofrontend/MERGE2
-rw-r--r--libgo/runtime/go-unwind.c10
2 files changed, 9 insertions, 3 deletions
diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE
index 062f9c7..ccdfb1c 100644
--- a/gcc/go/gofrontend/MERGE
+++ b/gcc/go/gofrontend/MERGE
@@ -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.
diff --git a/libgo/runtime/go-unwind.c b/libgo/runtime/go-unwind.c
index a1a9558..c44755f 100644
--- a/libgo/runtime/go-unwind.c
+++ b/libgo/runtime/go-unwind.c
@@ -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.