summaryrefslogtreecommitdiff
path: root/experimental/mono/ppc32.patch
diff options
context:
space:
mode:
Diffstat (limited to 'experimental/mono/ppc32.patch')
-rw-r--r--experimental/mono/ppc32.patch30
1 files changed, 30 insertions, 0 deletions
diff --git a/experimental/mono/ppc32.patch b/experimental/mono/ppc32.patch
new file mode 100644
index 000000000..818b9d43b
--- /dev/null
+++ b/experimental/mono/ppc32.patch
@@ -0,0 +1,30 @@
+From 121928d29ac1e0aebb80531b3ebcca1a9ffcd618 Mon Sep 17 00:00:00 2001
+From: Bernhard Urban-Forster <lewurm@gmail.com>
+Date: Fri, 6 Dec 2019 11:35:11 +0100
+Subject: [PATCH] [ppc32] delete leftover code from pre-monoctx area (#18072)
+
+Also update assert which doesn't make sense since we have moved over to MonoContext
+
+Some context: e7011c780f676914f559f14f25e76c192bb2b0b2
+
+Fixes: https://github.com/mono/mono/issues/18064
+---
+ mono/mini/exceptions-ppc.c | 5 +----
+ 1 file changed, 1 insertion(+), 4 deletions(-)
+
+diff --git a/mono/mini/exceptions-ppc.c b/mono/mini/exceptions-ppc.c
+index 44d09bcaba1d..d14f8383eba9 100644
+--- mono.old/mono/mini/exceptions-ppc.c
++++ mono.new/mono/mini/exceptions-ppc.c
+@@ -692,10 +692,7 @@ mono_arch_handle_altstack_exception (void *sigctx, MONO_SIG_HANDLER_INFO_TYPE *s
+ /* may need to adjust pointers in the new struct copy, depending on the OS */
+ uc_copy = (MonoContext*)(sp + 16);
+ mono_sigctx_to_monoctx (uc, uc_copy);
+-#if defined(__linux__) && !defined(__mono_ppc64__)
+- uc_copy->uc_mcontext.uc_regs = (gpointer)((char*)uc_copy + ((char*)uc->uc_mcontext.uc_regs - (char*)uc));
+-#endif
+- g_assert (mono_arch_ip_from_context (uc) == mono_arch_ip_from_context (uc_copy));
++ g_assert (mono_arch_ip_from_context (uc) == MONO_CONTEXT_GET_IP (uc_copy));
+ /* at the return form the signal handler execution starts in altstack_handle_and_restore() */
+ UCONTEXT_REG_LNK(uc) = UCONTEXT_REG_NIP(uc);
+ #ifdef PPC_USES_FUNCTION_DESCRIPTOR