summaryrefslogtreecommitdiff
path: root/configure.in
diff options
context:
space:
mode:
authorMirco Bauer <meebey@meebey.net>2011-08-07 17:46:41 +0200
committerMirco Bauer <meebey@meebey.net>2011-08-07 17:46:41 +0200
commit35f3a1e228bb8dccbdacdbb70d9bbe209aeb579c (patch)
tree6881d1c227bb689ef70f263115c13d49715da9fa /configure.in
parent8cd4f009eeeb87183cac9783c82e95111a48cebf (diff)
parentf165789868007ccb2d56b70e6e3cac72f3b6cf22 (diff)
downloadmono-35f3a1e228bb8dccbdacdbb70d9bbe209aeb579c.tar.gz
Merge commit 'upstream/2.10.3' into master-experimental-patches/kfreebsd_support
Diffstat (limited to 'configure.in')
-rw-r--r--configure.in135
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