diff options
author | Zoltan Varga <vargaz@gmail.com> | 2010-03-21 18:56:10 +0300 |
---|---|---|
committer | Zoltan Varga <vargaz@gmail.com> | 2010-03-21 18:56:10 +0300 |
commit | 5e0e7e046981292a85fd0fa88b8b0dd708d892fb (patch) | |
tree | 8de570605dcd08f71b5f31c428cbe2d2ed315f86 | |
parent | 6822317f27dc9f001a9beea6eab75626b0075143 (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-x | mono/mini/ChangeLog | 5 | ||||
-rw-r--r-- | mono/mini/mini.c | 13 |
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 } |