Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZoltan Varga <vargaz@gmail.com>2010-03-21 18:56:10 +0300
committerZoltan Varga <vargaz@gmail.com>2010-03-21 18:56:10 +0300
commit5e0e7e046981292a85fd0fa88b8b0dd708d892fb (patch)
tree8de570605dcd08f71b5f31c428cbe2d2ed315f86
parent6822317f27dc9f001a9beea6eab75626b0075143 (diff)
2010-03-21 Zoltan Varga <vargaz@gmail.com>
* mini.c (SIG_HANDLER_SIGNATURE): Fix the build on platforms without sigaction (openbsd+amd64 ?). svn path=/trunk/mono/; revision=153957
-rwxr-xr-xmono/mini/ChangeLog5
-rw-r--r--mono/mini/mini.c13
2 files changed, 12 insertions, 6 deletions
diff --git a/mono/mini/ChangeLog b/mono/mini/ChangeLog
index 2fe75916668..36865de5a15 100755
--- a/mono/mini/ChangeLog
+++ b/mono/mini/ChangeLog
@@ -1,5 +1,10 @@
2010-03-21 Zoltan Varga <vargaz@gmail.com>
+ * mini.c (SIG_HANDLER_SIGNATURE): Fix the build on platforms without sigaction
+ (openbsd+amd64 ?).
+
+2010-03-21 Zoltan Varga <vargaz@gmail.com>
+
* mini-ppc.c (mono_arch_emit_exceptions): Avoid an assert in ppc_patch () for
some large methods with lots of exception handlers. Fixes #440924.
diff --git a/mono/mini/mini.c b/mono/mini/mini.c
index bff8c0f9114..8e17a6960e8 100644
--- a/mono/mini/mini.c
+++ b/mono/mini/mini.c
@@ -5260,18 +5260,19 @@ SIG_HANDLER_SIGNATURE (mono_sigill_signal_handler)
mono_arch_handle_exception (ctx, exc, FALSE);
}
+#if defined(MONO_ARCH_USE_SIGACTION) || defined(HOST_WIN32)
+#define HAVE_SIG_INFO
+#endif
+
void
SIG_HANDLER_SIGNATURE (mono_sigsegv_signal_handler)
{
-#ifndef MONO_ARCH_SIGSEGV_ON_ALTSTACK
- MonoException *exc = NULL;
-#endif
MonoJitInfo *ji;
MonoJitTlsData *jit_tls = TlsGetValue (mono_jit_tls_id);
GET_CONTEXT;
-#ifdef MONO_ARCH_SOFT_DEBUG_SUPPORTED
+#if defined(MONO_ARCH_SOFT_DEBUG_SUPPORTED) && defined(HAVE_SIG_INFO)
if (mono_arch_is_single_step_event (info, ctx)) {
mono_debugger_agent_single_step_event (ctx);
return;
@@ -5281,7 +5282,7 @@ SIG_HANDLER_SIGNATURE (mono_sigsegv_signal_handler)
}
#endif
-#ifndef HOST_WIN32
+#if !defined(HOST_WIN32) && defined(HAVE_SIG_INFO)
if (mono_aot_is_pagefault (info->si_addr)) {
mono_aot_handle_pagefault (info->si_addr);
return;
@@ -5331,7 +5332,7 @@ SIG_HANDLER_SIGNATURE (mono_sigsegv_signal_handler)
mono_handle_native_sigsegv (SIGSEGV, ctx);
}
- mono_arch_handle_exception (ctx, exc, FALSE);
+ mono_arch_handle_exception (ctx, NULL, FALSE);
#endif
}