[Pkg-mono-svn-commits] [SCM] mono branch, debian/patches/kfreebsd_support, updated. upstream/2.6.3-3-g378d7a0
Jo Shields
directhex at apebox.org
Tue Jun 22 07:51:28 UTC 2010
The following commit has been merged in the debian/patches/kfreebsd_support branch:
commit 378d7a045addeef6cd3bfe12bf14f3f47fd7d89e
Author: Jo Shields <directhex at apebox.org>
Date: Tue Jun 22 08:48:39 2010 +0100
Fix up kfreebsd support (i hope):
* don't use gregs on kfreebsd
* set kfreebsd to use POSIX signals
* use kfreebsd as well as freebsd in several ifdefs
diff --git a/configure.in b/configure.in
index 1b63d5e..4280f97 100644
--- a/configure.in
+++ b/configure.in
@@ -125,6 +125,7 @@ case "$host" in
libgc_threads=pthreads
need_link_unlink=yes
with_sigaltstack=no
+ use_sigposix=yes
;;
*-*-*freebsd*)
platform_win32=no
diff --git a/mono/mini/exceptions-amd64.c b/mono/mini/exceptions-amd64.c
index 983e7d2..3dca193 100644
--- a/mono/mini/exceptions-amd64.c
+++ b/mono/mini/exceptions-amd64.c
@@ -715,7 +715,13 @@ mono_arch_handle_exception (void *sigctx, gpointer obj, gboolean test_only)
static inline guint64*
gregs_from_ucontext (ucontext_t *ctx)
{
- return (guint64 *) UCONTEXT_GREGS (ctx);
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
+ guint64 *gregs = (guint64 *) &ctx->uc_mcontext;
+#else
+ guint64 *gregs = (guint64 *) &ctx->uc_mcontext.gregs;
+#endif
+
+ return gregs;
}
#endif
void
diff --git a/mono/mini/mini-x86.h b/mono/mini/mini-x86.h
index 59545d4..b83c937 100644
--- a/mono/mini/mini-x86.h
+++ b/mono/mini/mini-x86.h
@@ -44,7 +44,7 @@ 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(__FreeBSD_kernel__)
#define MONO_ARCH_USE_SIGACTION
#endif
@@ -150,7 +150,7 @@ typedef struct {
gboolean need_stack_frame;
} MonoCompileArch;
-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__)
+#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__) || defined(__FreeBSD_kernel__)
# define SC_EAX sc_eax
# define SC_EBX sc_ebx
# define SC_ECX sc_ecx
diff --git a/mono/utils/mono-sigcontext.h b/mono/utils/mono-sigcontext.h
index bd888a6..6dc89a4 100644
--- a/mono/utils/mono-sigcontext.h
+++ b/mono/utils/mono-sigcontext.h
@@ -5,14 +5,14 @@
#if defined(__i386__)
-#if defined(__FreeBSD__) || defined(__APPLE__)
+#if defined(__FreeBSD__) || defined(__APPLE__) || defined(__FreeBSD_kernel__)
#include <ucontext.h>
#endif
#if defined(__APPLE__)
#include <AvailabilityMacros.h>
#endif
-#if defined(__FreeBSD__)
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
#define UCONTEXT_REG_EAX(ctx) (((ucontext_t*)(ctx))->uc_mcontext.mc_eax)
#define UCONTEXT_REG_EBX(ctx) (((ucontext_t*)(ctx))->uc_mcontext.mc_ebx)
#define UCONTEXT_REG_ECX(ctx) (((ucontext_t*)(ctx))->uc_mcontext.mc_ecx)
--
mono
More information about the Pkg-mono-svn-commits
mailing list