diff options
author | Mirco Bauer <meebey@meebey.net> | 2011-08-07 17:46:41 +0200 |
---|---|---|
committer | Mirco Bauer <meebey@meebey.net> | 2011-08-07 17:46:41 +0200 |
commit | 35f3a1e228bb8dccbdacdbb70d9bbe209aeb579c (patch) | |
tree | 6881d1c227bb689ef70f263115c13d49715da9fa /configure.in | |
parent | 8cd4f009eeeb87183cac9783c82e95111a48cebf (diff) | |
parent | f165789868007ccb2d56b70e6e3cac72f3b6cf22 (diff) | |
download | mono-35f3a1e228bb8dccbdacdbb70d9bbe209aeb579c.tar.gz |
Merge commit 'upstream/2.10.3' into master-experimental-patches/kfreebsd_support
Diffstat (limited to 'configure.in')
-rw-r--r-- | configure.in | 135 |
1 files changed, 125 insertions, 10 deletions
diff --git a/configure.in b/configure.in index 3204caf971..ff658805d3 100644 --- a/configure.in +++ b/configure.in @@ -6,7 +6,7 @@ AC_CANONICAL_SYSTEM 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 @@ esac host_win32=no target_win32=no +platform_android=no case "$host" in *-mingw*|*-*-cygwin*) AC_DEFINE(HOST_WIN32,1,[Host Platform is Win32]) @@ -183,6 +184,41 @@ case "$host" in 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 +295,12 @@ case "$host" in 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 +341,7 @@ AM_CONDITIONAL(TARGET_WIN32, test x$target_win32 = xyes) 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 +491,20 @@ if test x"$GCC" = xyes; then 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 +719,7 @@ DISABLED_FEATURES=none 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 +844,11 @@ if test "x$mono_feature_disable_assembly_remapping" = "xyes"; then 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 +880,9 @@ if test x$enable_parallel_mark = xyes; then 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 +1630,12 @@ if test x$target_win32 = xno; then 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 ****************************** @@ -2273,8 +2338,10 @@ case "$host" in 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 +2374,12 @@ case "$host" in 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 +2392,6 @@ if test "x$host" != "x$target"; then 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 +2401,49 @@ if test "x$host" != "x$target"; then TARGET=AMD64 arch_target=amd64 AC_DEFINE(TARGET_AMD64, 1, [...]) - AC_DEFINE(MONO_CROSS_COMPILE,1,[The runtime is compiled for cross-compiling mode]) 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 @@ -2577,6 +2680,18 @@ if test ${TARGET} = ARM && test x$cross_compiling = xno && test x$enable_mcs_bui 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 |