restore_context (&ctx);
}
+/*
+ * This works around a gcc 4.5 bug:
+ * https://bugs.launchpad.net/ubuntu/+source/gcc-4.5/+bug/721531
+ */
+#if defined(__GNUC__)
+__attribute__((noinline))
+#endif
+static gpointer
+get_handle_signal_exception_addr (void)
+{
+ return handle_signal_exception;
+}
+
/*
* This is the function called from the signal handler
*/
sp -= 16;
UCONTEXT_REG_SP (sigctx) = sp;
- UCONTEXT_REG_PC (sigctx) = (gsize)handle_signal_exception;
+ UCONTEXT_REG_PC (sigctx) = (gsize)get_handle_signal_exception_addr ();
#ifdef UCONTEXT_REG_CPSR
if ((gsize)UCONTEXT_REG_PC (sigctx) & 1)
/* Transition to thumb */
return (void*) UCONTEXT_REG_PC (my_uc);
#endif
}
-
-gboolean
-mono_arch_has_unwind_info (gconstpointer addr)
-{
- return FALSE;
-}
-