/usr/src/gcc-4.9/debian/patches/libjava-sjlj.diff is in gcc-4.9-source 4.9.3-13ubuntu2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | # DP: Don't try to use _Unwind_Backtrace on SJLJ targets.
# DP: See bug #387875, #388505, GCC PR 29206.
---
libjava/sysdep/generic/backtrace.h | 17 +++++++++++++++++
1 files changed, 17 insertions(+), 0 deletions(-)
Index: b/src/libjava/sysdep/generic/backtrace.h
===================================================================
--- a/src/libjava/sysdep/generic/backtrace.h
+++ b/src/libjava/sysdep/generic/backtrace.h
@@ -13,6 +13,20 @@
#include <java-stack.h>
+#ifdef SJLJ_EXCEPTIONS
+
+#undef _Unwind_GetIPInfo
+#define _Unwind_GetIPInfo(ctx,ip_before_insn) \
+ (abort (), (void) (ctx), *ip_before_insn = 1, 0)
+
+#undef _Unwind_GetRegionStart
+#define _Unwind_GetRegionStart(ctx) \
+ (abort (), (void) (ctx), 0)
+
+#undef _Unwind_Backtrace
+#define _Unwind_Backtrace(trace_fn,state_ptr) \
+ (fallback_backtrace (trace_fn, state_ptr))
+
/* Unwind through the call stack calling TRACE_FN with STATE for every stack
frame. Returns the reason why the unwinding was stopped. */
_Unwind_Reason_Code
@@ -20,4 +34,7 @@
{
return _URC_NO_REASON;
}
+
+#endif /* SJLJ_EXCEPTIONS */
+
#endif
|