[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