summaryrefslogtreecommitdiff
path: root/debian/patches/libjava-armel-unwind.diff
diff options
context:
space:
mode:
authorIgor Pashev <pashev.igor@gmail.com>2017-05-13 13:54:49 +0300
committerIgor Pashev <pashev.igor@gmail.com>2017-05-13 13:54:49 +0300
commit42156b5190f4fa150e1fab6777eb81e69d4db8c9 (patch)
tree3bf47de81cf1f89892789535a036d2d55d93a136 /debian/patches/libjava-armel-unwind.diff
downloadgcc-9-42156b5190f4fa150e1fab6777eb81e69d4db8c9.tar.gz
Imported gcc-6 (6.3.0-17)debian/6.3.0-17
Diffstat (limited to 'debian/patches/libjava-armel-unwind.diff')
-rw-r--r--debian/patches/libjava-armel-unwind.diff19
1 files changed, 19 insertions, 0 deletions
diff --git a/debian/patches/libjava-armel-unwind.diff b/debian/patches/libjava-armel-unwind.diff
new file mode 100644
index 0000000..12c78b3
--- /dev/null
+++ b/debian/patches/libjava-armel-unwind.diff
@@ -0,0 +1,19 @@
+# DP: On armel, apply kludge to fix unwinder infinitely looping 'til it runs out
+# DP: of memory (http://gcc.gnu.org/ml/java/2008-06/msg00010.html).
+
+---
+ libjava/stacktrace.cc | 3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+--- a/src/libjava/stacktrace.cc
++++ b/src/libjava/stacktrace.cc
+@@ -115,6 +115,9 @@ _Jv_StackTrace::UnwindTraceFn (struct _Unwind_Context *context, void *state_ptr)
+ // Check if the trace buffer needs to be extended.
+ if (pos == state->length)
+ {
++ // http://gcc.gnu.org/ml/java/2008-06/msg00010.html
++ return _URC_END_OF_STACK;
++
+ int newLength = state->length * 2;
+ void *newFrames = _Jv_AllocBytes (newLength * sizeof(_Jv_StackFrame));
+ memcpy (newFrames, state->frames, state->length * sizeof(_Jv_StackFrame));