2010-03-21 Zoltan Varga <vargaz@gmail.com>
authorZoltan Varga <vargaz@gmail.com>
Sun, 21 Mar 2010 15:56:10 +0000 (15:56 -0000)
committerZoltan Varga <vargaz@gmail.com>
Sun, 21 Mar 2010 15:56:10 +0000 (15:56 -0000)
* mini.c (SIG_HANDLER_SIGNATURE): Fix the build on platforms without sigaction
(openbsd+amd64 ?).

svn path=/trunk/mono/; revision=153957

mono/mini/ChangeLog
mono/mini/mini.c

index 2fe759166680210a9e80348ec1bdbf470266e2e3..36865de5a15f8f9ec87230db05c4b6ac5b0d136e 100755 (executable)
@@ -1,3 +1,8 @@
+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
index bff8c0f91145ef9ac8fd897e31bc5e0fba07b0d6..8e17a6960e85c3dbfa120f61c4102abec7549d73 100644 (file)
@@ -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
 }