[Pkg-mono-svn-commits] [SCM] mono branch, master-experimental, updated. debian/2.10.1-4-37-g03befb1
Mirco Bauer
meebey at meebey.net
Sun Aug 7 16:04:57 UTC 2011
The following commit has been merged in the master-experimental branch:
commit 35f3a1e228bb8dccbdacdbb70d9bbe209aeb579c
Merge: 8cd4f009eeeb87183cac9783c82e95111a48cebf f165789868007ccb2d56b70e6e3cac72f3b6cf22
Author: Mirco Bauer <meebey at meebey.net>
Date: Sun Aug 7 17:46:41 2011 +0200
Merge commit 'upstream/2.10.3' into master-experimental-patches/kfreebsd_support
diff --combined configure.in
index 3204caf,0350ce7..ff65880
--- a/configure.in
+++ b/configure.in
@@@ -6,7 -6,7 +6,7 @@@ AC_CANONICAL_SYSTE
m4_ifdef([_A][M_PROG_TAR],[_A][M_SET_OPTION([tar-ustar])])
AM_CONFIG_HEADER(config.h)
- AM_INIT_AUTOMAKE(mono,2.10.1)
+ AM_INIT_AUTOMAKE(mono,2.10.3)
AM_MAINTAINER_MODE
API_VER=2.0
@@@ -78,6 -78,7 +78,7 @@@ esa
host_win32=no
target_win32=no
+ platform_android=no
case "$host" in
*-mingw*|*-*-cygwin*)
AC_DEFINE(HOST_WIN32,1,[Host Platform is Win32])
@@@ -127,17 -128,6 +128,17 @@@
with_sigaltstack=no
use_sigposix=yes
;;
+ *-*-kfreebsd*-gnu)
+ platform_win32=no
+ CPPFLAGS="$CPPFLAGS -DGC_FREEBSD_THREADS -D_GNU_SOURCE -D_REENTRANT -DUSE_MMAP -DUSE_MUNMAP -DTHREAD_LOCAL_ALLOC -pthread"
+ libmono_cflags="-D_REENTRANT -DTHREAD_LOCAL_ALLOC -pthread"
+ libmono_ldflags="-lpthread -pthread"
+ libdl="-ldl"
+ libgc_threads=pthreads
+ need_link_unlink=yes
+ with_sigaltstack=no
+ use_sigposix=yes
+ ;;
*-*-*freebsd*)
host_win32=no
if test "x$PTHREAD_CFLAGS" = "x"; then
@@@ -183,6 -173,41 +184,41 @@@
with_sigaltstack=no
use_sigposix=yes
;;
+ *-*-linux-android*)
+ host_win32=no
+ platform_android=yes
+ AC_DEFINE(PLATFORM_ANDROID,1,[Targeting the Android platform])
+ AC_DEFINE(TARGET_ANDROID,1,[Targeting the Android platform])
+
+ CPPFLAGS="$CPPFLAGS -DGC_LINUX_THREADS -D_GNU_SOURCE -D_REENTRANT -DUSE_MMAP"
+ if test "x$disable_munmap" != "xyes"; then
+ CPPFLAGS="$CPPFLAGS -DUSE_MUNMAP"
+ fi
+ libmono_cflags="-D_REENTRANT"
+ libdl="-ldl"
+ libgc_threads=pthreads
+ use_sigposix=yes
+
+ with_tls=pthread
+ with_sigaltstack=no
+ with_static_mono=no
+
+ # Android doesn't support boehm, as it's missing <link.h>
+ support_boehm=no
+ with_gc=sgen
+
+ # isinf(3) requires -lm; see isinf check below
+ LDFLAGS="$LDFLAGS -lm"
+
+ # Bionic's <pthread.h> sets PTHREAD_STACK_MIN=2*PAGE_SIZE; doesn't define
+ # PAGE_SIZE; breaks mono/io-layer/collection.c
+ # Bionic doesn't provide S_IWRITE; breaks io-layer/io.c
+ CFLAGS="$CFLAGS -DPAGE_SIZE=4096 -DS_IWRITE=S_IWUSR"
+ CXXFLAGS="$CXXFLAGS -DPAGE_SIZE=4096 -DS_IWRITE=S_IWUSR"
+
+ # to bypass the underscore linker check, can't work when cross-compiling
+ mono_cv_uscore=yes
+ ;;
*-*-linux*)
host_win32=no
CPPFLAGS="$CPPFLAGS -DGC_LINUX_THREADS -D_GNU_SOURCE -D_REENTRANT -DUSE_MMAP"
@@@ -259,12 -284,12 +295,12 @@@
if test "x$cross_compiling" = "xyes"; then
has_broken_apple_cpp=yes
fi
- dnl Snow Leopard is horribly broken -- it reports itself as i386-apple-darwin10.0.0, but
+ dnl Snow Leopard is horribly broken -- it reports itself as i386-apple-darwin*, but
dnl its gcc defaults to 64-bit mode. They have also deprecated the usage of ucontext
dnl we need to set some flags to build our 32-bit binaries on 10.6 properly
case "$host" in
- dnl Snow Leopard config.guess reports as this
- i*86-*-darwin10*)
+ dnl Snow Leopard and newer config.guess reports as this
+ i*86-*-darwin*)
BROKEN_DARWIN_FLAGS="-arch i386 -D_XOPEN_SOURCE -mmacosx-version-min=10.5"
CPPFLAGS="$CPPFLAGS $BROKEN_DARWIN_FLAGS"
CFLAGS="$CFLAGS $BROKEN_DARWIN_FLAGS"
@@@ -305,6 -330,7 +341,7 @@@ AM_CONDITIONAL(TARGET_WIN32, test x$tar
AM_CONDITIONAL(PLATFORM_LINUX, echo x$target_os | grep -q linux)
AM_CONDITIONAL(PLATFORM_DARWIN, test x$platform_darwin = xyes)
AM_CONDITIONAL(PLATFORM_SIGPOSIX, test x$use_sigposix = xyes)
+ AM_CONDITIONAL(PLATFORM_ANDROID, test x$platform_android = xyes)
AC_CHECK_TOOL(CC, gcc, gcc)
AC_PROG_CC
@@@ -454,6 -480,20 +491,20 @@@ if test x"$GCC" = xyes; the
AC_MSG_RESULT(no)
CFLAGS=$ORIG_CFLAGS
])
+
+ ORIG_CFLAGS=$CFLAGS
+ # Check for the normal version, since gcc ignores unknown -Wno options
+ CFLAGS="$CFLAGS -Wunused-but-set-variable"
+ AC_MSG_CHECKING(for -Wno-unused-but-set-variable option to gcc)
+ AC_TRY_COMPILE([], [
+ void main () { }
+ ], [
+ AC_MSG_RESULT(yes)
+ CFLAGS="$ORIG_CFLAGS -Wno-unused-but-set-variable"
+ ], [
+ AC_MSG_RESULT(no)
+ CFLAGS=$ORIG_CFLAGS
+ ])
else
# The Sun Forte compiler complains about inline functions that access static variables
# so disable all inlining.
@@@ -668,7 -708,7 +719,7 @@@ DISABLED_FEATURES=non
AC_ARG_ENABLE(minimal, [ --enable-minimal=LIST drop support for LIST subsystems.
LIST is a comma-separated list from: aot, profiler, decimal, pinvoke, debug,
- reflection_emit, reflection_emit_save, large_code, logging, com, ssa, generics, attach, jit, simd, soft_debug, normalization, assembly_remapping.],
+ reflection_emit, reflection_emit_save, large_code, logging, com, ssa, generics, attach, jit, simd, soft_debug, normalization, assembly_remapping, shared_perfcounters.],
[
for feature in `echo "$enable_minimal" | sed -e "s/,/ /g"`; do
eval "mono_feature_disable_$feature='yes'"
@@@ -793,6 -833,11 +844,11 @@@ if test "x$mono_feature_disable_assembl
AC_MSG_NOTICE([Disabled Assembly remapping.])
fi
+ if test "x$mono_feature_disable_shared_perfcounters" = "xyes"; then
+ AC_DEFINE(DISABLE_SHARED_PERFCOUNTERS, 1, [Disable shared perfcounters.])
+ AC_MSG_NOTICE([Disabled Shared perfcounters.])
+ fi
+
AC_MSG_CHECKING(for visibility __attribute__)
AC_TRY_COMPILE([], [
void __attribute__ ((visibility ("hidden"))) doit (void) {}
@@@ -824,6 -869,9 +880,9 @@@ if test x$enable_parallel_mark = xyes;
libgc_configure_args="$libgc_configure_args --enable-parallel-mark"
fi
+ AC_ARG_ENABLE(boehm, [ --disable-boehm Disable the Boehm GC.], support_boehm=$enableval,support_boehm=${support_boehm:-yes})
+ AM_CONDITIONAL(SUPPORT_BOEHM, test x$support_boehm = xyes)
+
dnl
dnl Boehm GC configuration
dnl
@@@ -1571,6 -1619,12 +1630,12 @@@ if test x$target_win32 = xno; the
AC_DEFINE(HAVE_EPOLL, 1, [epoll supported])
fi
+ havekqueue=no
+ AC_CHECK_FUNCS(kqueue, , AC_MSG_CHECKING(for kqueue in sys/event.h)
+ AC_TRY_LINK([#include <sys/event.h>],
+ [ kqueue(); ],
+ AC_DEFINE(HAVE_KQUEUE, 1, [Have kqueue]) AC_MSG_RESULT(yes),
+ AC_MSG_RESULT(no)))
dnl ******************************
dnl *** Checks for SIOCGIFCONF ***
dnl ******************************
@@@ -2155,7 -2209,7 +2220,7 @@@ case "$host" i
sgen_supported=true
AOT_SUPPORTED="yes"
;;
- darwin*|openbsd*|freebsd*)
+ darwin*|openbsd*|freebsd*|kfreebsd-gnu*)
sgen_supported=true
;;
esac
@@@ -2170,7 -2224,7 +2235,7 @@@
sgen_supported=true
AOT_SUPPORTED="yes"
;;
- darwin*|openbsd*|freebsd*)
+ darwin*|openbsd*|freebsd*|kfreebsd-gnu*)
sgen_supported=true
;;
esac
@@@ -2273,8 -2327,10 +2338,10 @@@
arch_target=arm;
ACCESS_UNALIGNED="no"
JIT_SUPPORTED=yes
- CPPFLAGS="$CPPFLAGS -DARM_FPU_NONE=1"
+ CPPFLAGS="$CPPFLAGS -DARM_FPU_VFP=1 -D__ARM_EABI__ -DHAVE_ARMV6=1"
jit_wanted=true
+ # libgc's gc_locks.h depends on this
+ NESTED_LIBGC_FLAGS="$NESTED_LIBGC_FLAGS -DHAVE_ARMV6"
sgen_supported=true
;;
arm*-linux*)
@@@ -2307,12 -2363,12 +2374,12 @@@
esac
if test "x$host" != "x$target"; then
+ AC_DEFINE(MONO_CROSS_COMPILE,1,[The runtime is compiled for cross-compiling mode])
case "$target" in
powerpc64-ps3-linux-gnu)
TARGET=POWERPC64
arch_target=powerpc64
AC_DEFINE(TARGET_PS3, 1, [...])
- AC_DEFINE(MONO_CROSS_COMPILE,1,[The runtime is compiled for cross-compiling mode])
# It would be better to just use TARGET_POWERPC64, but lots of code already
# uses this define
AC_DEFINE(__mono_ppc64__, 1, [...])
@@@ -2325,7 -2381,6 +2392,6 @@@
TARGET=POWERPC64
arch_target=powerpc64
AC_DEFINE(TARGET_XBOX360, 1, [...])
- AC_DEFINE(MONO_CROSS_COMPILE,1,[The runtime is compiled for cross-compiling mode])
# It would be better to just use TARGET_POWERPC64, but lots of code already
# uses this define
sizeof_register=8
@@@ -2335,12 -2390,49 +2401,49 @@@
TARGET=AMD64
arch_target=amd64
AC_DEFINE(TARGET_AMD64, 1, [...])
AC_DEFINE(__mono_ilp32__, 1, [64 bit mode with 4 byte longs and pointers])
sizeof_register=8
;;
+ armv7l-unknown-linux-gnueabi*)
+ # TEGRA
+ TARGET=ARM;
+ arch_target=arm;
+ AC_DEFINE(TARGET_ARM, 1, [...])
+ ACCESS_UNALIGNED="no"
+ JIT_SUPPORTED=yes
+ CPPFLAGS="$CPPFLAGS -DARM_FPU_VFP=1 -D__ARM_EABI__"
+ jit_wanted=true
+ # Can't use tls, since it depends on the runtime detection of tls offsets
+ # in mono-compiler.h
+ with_tls=pthread
+ ;;
+ armv5tel-unknown-linux-gnueabi*)
+ TARGET=ARM;
+ arch_target=arm;
+ AC_DEFINE(TARGET_ARM, 1, [...])
+ ACCESS_UNALIGNED="no"
+ JIT_SUPPORTED=yes
+ CPPFLAGS="$CPPFLAGS -D__ARM_EABI__"
+ jit_wanted=true
+ # Can't use tls, since it depends on the runtime detection of tls offsets
+ # in mono-compiler.h
+ with_tls=pthread
+ ;;
+ armv5-*-linux-androideabi*)
+ TARGET=ARM;
+ arch_target=arm;
+ AC_DEFINE(TARGET_ARM, 1, [...])
+ AC_DEFINE(TARGET_ANDROID, 1, [...])
+ ACCESS_UNALIGNED="no"
+ JIT_SUPPORTED=yes
+ CPPFLAGS="$CPPFLAGS -D__ARM_EABI__ -DARM_FPU_NONE=1"
+ jit_wanted=true
+ # Can't use tls, since it depends on the runtime detection of tls offset
+ # in mono-compiler.h
+ with_tls=pthread
+ ;;
*)
- AC_MSG_WARN([Cross compiling is only supported for targets matching 'powerpc64-{ps3,xbox360}-linux-gnu'])
+ AC_MSG_ERROR([Cross compiling is not supported for target $target])
esac
fi
@@@ -2463,11 -2555,6 +2566,11 @@@ case "$host" i
LIBC="libc.so.12"
INTL="libintl.so.0"
;;
+ *-*-kfreebsd*-gnu)
+ LIBC="libc.so.0.1"
+ INTL="libc.so.0.1"
+ X11="libX11.so.6"
+ ;;
*-*-*freebsd*)
LIBC="libc.so"
INTL="libintl.so"
@@@ -2577,6 -2664,18 +2680,18 @@@ if test ${TARGET} = ARM && test x$cross
AC_MSG_RESULT($fpu)
CPPFLAGS="$CPPFLAGS -DARM_FPU_$fpu=1"
unset fpu
+
+ AC_MSG_CHECKING(for ARMV6)
+ AC_TRY_RUN([
+ int main () { __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 5" : : "r" (0) : "memory"); return 0; }
+ ], armv6=yes, armv6=no)
+
+ AC_MSG_RESULT($armv6)
+ if test ${armv6} = yes; then
+ AC_DEFINE(HAVE_ARMV6, 1, "Host supports ARMV6 instructions")
+ # libgc's gc_locks.h depends on this
+ NESTED_LIBGC_FLAGS="$NESTED_LIBGC_FLAGS -DHAVE_ARMV6"
+ fi
fi
if test ${TARGET} = unknown; then
diff --combined mono/metadata/sgen-gc.h
index 2754ee3,bbc5ef5..c60056c
--- a/mono/metadata/sgen-gc.h
+++ b/mono/metadata/sgen-gc.h
@@@ -35,6 -35,10 +35,10 @@@
#include <mono/utils/mono-compiler.h>
#include <mono/metadata/class-internals.h>
#include <mono/metadata/object-internals.h>
+ #include <mono/metadata/sgen-archdep.h>
+ #if defined(__MACH__)
+ #include <mach/mach_port.h>
+ #endif
/*
* Turning on heavy statistics will turn off the managed allocator and
@@@ -88,6 -92,10 +92,10 @@@ typedef struct _SgenThreadInfo SgenThre
struct _SgenThreadInfo {
SgenThreadInfo *next;
ARCH_THREAD_TYPE id;
+ #if defined(__MACH__)
+ thread_port_t mach_port;
+ #endif
+
unsigned int stop_count; /* to catch duplicate signals */
int signal;
int skip;
@@@ -105,6 -113,11 +113,11 @@@
gpointer runtime_data;
gpointer stopped_ip; /* only valid if the thread is stopped */
MonoDomain *stopped_domain; /* ditto */
+
+ #if defined(__MACH__)
+ gpointer regs[ARCH_NUM_REGS]; /* ditto */
+ #endif
+
gpointer *stopped_regs; /* ditto */
#ifndef HAVE_KW_THREAD
char *tlab_start;
@@@ -182,7 -195,7 +195,7 @@@ struct _GCMemSection
typedef struct _SgenPinnedChunk SgenPinnedChunk;
-#if defined(__APPLE__) || defined(__OpenBSD__) || defined(__FreeBSD__)
+#if defined(__APPLE__) || defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
const static int suspend_signal_num = SIGXFSZ;
#else
const static int suspend_signal_num = SIGPWR;
@@@ -579,6 -592,9 +592,9 @@@ void mono_sgen_free_os_memory (void *ad
int mono_sgen_thread_handshake (int signum) MONO_INTERNAL;
SgenThreadInfo* mono_sgen_thread_info_lookup (ARCH_THREAD_TYPE id) MONO_INTERNAL;
SgenThreadInfo** mono_sgen_get_thread_table (void) MONO_INTERNAL;
+ gboolean mono_sgen_suspend_thread (SgenThreadInfo *info) MONO_INTERNAL;
+
+
void mono_sgen_wait_for_suspend_ack (int count) MONO_INTERNAL;
gboolean mono_sgen_is_worker_thread (pthread_t thread) MONO_INTERNAL;
@@@ -765,7 -781,16 +781,16 @@@ mono_sgen_par_object_get_size (MonoVTab
}
}
- #define mono_sgen_safe_object_get_size(o) mono_sgen_par_object_get_size ((MonoVTable*)SGEN_LOAD_VTABLE ((o)), (o))
+ static inline guint
+ mono_sgen_safe_object_get_size (MonoObject *obj)
+ {
+ char *forwarded;
+
+ if ((forwarded = SGEN_OBJECT_IS_FORWARDED (obj)))
+ obj = (MonoObject*)forwarded;
+
+ return mono_sgen_par_object_get_size ((MonoVTable*)SGEN_LOAD_VTABLE (obj), obj);
+ }
const char* mono_sgen_safe_name (void* obj) MONO_INTERNAL;
diff --combined mono/mini/mini-x86.h
index 036639a,6f72f20..17f4162
--- a/mono/mini/mini-x86.h
+++ b/mono/mini/mini-x86.h
@@@ -31,7 -31,8 +31,8 @@@ struct sigcontext
unsigned int eip;
};
- typedef void (* MonoW32ExceptionHandler) (int _dummy, EXCEPTION_RECORD *info, void *context);
+ typedef void (* MonoW32ExceptionHandler) (int _dummy, EXCEPTION_POINTERS *info, void *context);
+
void win32_seh_init(void);
void win32_seh_cleanup(void);
void win32_seh_set_handler(int type, MonoW32ExceptionHandler handler);
@@@ -59,7 -60,7 +60,7 @@@ struct sigcontext
#endif /* __HAIKU__ */
#if defined( __linux__) || defined(__sun) || defined(__APPLE__) || defined(__NetBSD__) || \
- defined(__FreeBSD__) || defined(__OpenBSD__)
+ defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__OpenBSD__)
#define MONO_ARCH_USE_SIGACTION
#endif
@@@ -177,7 -178,7 +178,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
--
mono
More information about the Pkg-mono-svn-commits
mailing list