Enable MONO_ARCH_USE_SIGACTION on i386 and switch it to use struct sigcontext,
which basically gives us exception support and sends those crashes away.
This commit is contained in:
parent
f96a8d695e
commit
fb63ae27cb
@ -1,4 +1,4 @@
|
||||
# $OpenBSD: Makefile,v 1.21 2010/03/22 09:49:59 robert Exp $
|
||||
# $OpenBSD: Makefile,v 1.22 2010/03/22 16:56:13 robert Exp $
|
||||
|
||||
# sync with net/avahi,-mono
|
||||
ONLY_FOR_ARCHS= amd64 i386 powerpc # arm
|
||||
@ -6,7 +6,7 @@ ONLY_FOR_ARCHS= amd64 i386 powerpc # arm
|
||||
COMMENT= cross platform, open source .NET developement framework
|
||||
|
||||
DISTNAME= mono-2.6.3
|
||||
PKGNAME= ${DISTNAME}p2
|
||||
PKGNAME= ${DISTNAME}p3
|
||||
|
||||
CATEGORIES= lang devel
|
||||
|
||||
|
13
lang/mono/patches/patch-mono_mini_mini-x86_h
Normal file
13
lang/mono/patches/patch-mono_mini_mini-x86_h
Normal file
@ -0,0 +1,13 @@
|
||||
$OpenBSD: patch-mono_mini_mini-x86_h,v 1.1 2010/03/22 16:56:13 robert Exp $
|
||||
--- mono/mini/mini-x86.h.orig Mon Mar 22 17:45:19 2010
|
||||
+++ mono/mini/mini-x86.h Mon Mar 22 17:45:56 2010
|
||||
@@ -44,7 +44,8 @@ LONG CALLBACK seh_handler(EXCEPTION_POINTERS* ep);
|
||||
|
||||
#endif /* PLATFORM_WIN32 */
|
||||
|
||||
-#if defined( __linux__) || defined(__sun) || defined(__APPLE__) || defined(__NetBSD__) || defined(__FreeBSD__)
|
||||
+#if defined( __linux__) || defined(__sun) || defined(__APPLE__) || defined(__NetBSD__) || \
|
||||
+ defined(__FreeBSD__) || defined(__OpenBSD__)
|
||||
#define MONO_ARCH_USE_SIGACTION
|
||||
#endif
|
||||
|
20
lang/mono/patches/patch-mono_utils_mono-sigcontext_h
Normal file
20
lang/mono/patches/patch-mono_utils_mono-sigcontext_h
Normal file
@ -0,0 +1,20 @@
|
||||
$OpenBSD: patch-mono_utils_mono-sigcontext_h,v 1.1 2010/03/22 16:56:13 robert Exp $
|
||||
--- mono/utils/mono-sigcontext.h.orig Mon Mar 22 17:35:25 2010
|
||||
+++ mono/utils/mono-sigcontext.h Mon Mar 22 17:38:49 2010
|
||||
@@ -54,6 +54,16 @@
|
||||
#define UCONTEXT_REG_ESI(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs [_REG_ESI])
|
||||
#define UCONTEXT_REG_EDI(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs [_REG_EDI])
|
||||
#define UCONTEXT_REG_EIP(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs [_REG_EIP])
|
||||
+#elif defined(__OpenBSD__)
|
||||
+ #define UCONTEXT_REG_EAX(ctx) ((ctx)->sc_eax)
|
||||
+ #define UCONTEXT_REG_EBX(ctx) ((ctx)->sc_ebx)
|
||||
+ #define UCONTEXT_REG_ECX(ctx) ((ctx)->sc_ecx)
|
||||
+ #define UCONTEXT_REG_EDX(ctx) ((ctx)->sc_edx)
|
||||
+ #define UCONTEXT_REG_EBP(ctx) ((ctx)->sc_ebp)
|
||||
+ #define UCONTEXT_REG_ESP(ctx) ((ctx)->sc_esp)
|
||||
+ #define UCONTEXT_REG_ESI(ctx) ((ctx)->sc_esi)
|
||||
+ #define UCONTEXT_REG_EDI(ctx) ((ctx)->sc_edi)
|
||||
+ #define UCONTEXT_REG_EIP(ctx) ((ctx)->sc_eip)
|
||||
#else
|
||||
#define UCONTEXT_REG_EAX(ctx) (((ucontext_t*)(ctx))->uc_mcontext.gregs [REG_EAX])
|
||||
#define UCONTEXT_REG_EBX(ctx) (((ucontext_t*)(ctx))->uc_mcontext.gregs [REG_EBX])
|
Loading…
Reference in New Issue
Block a user