X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=configure.ac;h=711427555ab761c10c849decfd0499e573edbe13;hb=4d1784ded998d5eb0ae232b5203aed29c7041b99;hp=7714b10f2546986a5f4c25d2579cf601285582da;hpb=ccdf8c3274d1793ffeddedfd784d49707feea62a;p=mono.git diff --git a/configure.ac b/configure.ac index 7714b10f254..711427555ab 100644 --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,7 @@ # Process this file with autoconf to produce a configure script. #AC_PREREQ([2.62]) -AC_INIT(mono, [4.3.2], +AC_INIT(mono, [4.5.0], [http://bugzilla.xamarin.com/enter_bug.cgi?classification=Mono]) AC_CONFIG_SRCDIR([README.md]) @@ -546,7 +546,7 @@ if test x"$GCC" = xyes; then if test "x$mono_cv_clang" = "xyes"; then # https://bugzilla.samba.org/show_bug.cgi?id=8118 WARN="$WARN -Qunused-arguments" - WARN="$WARN -Wno-unused-function -Wno-tautological-compare -Wno-parentheses-equality -Wno-self-assign -Wno-return-stack-address" + WARN="$WARN -Wno-unused-function -Wno-tautological-compare -Wno-parentheses-equality -Wno-self-assign -Wno-return-stack-address -Wno-constant-logical-operand" fi else # The Sun Forte compiler complains about inline functions that access static variables @@ -976,7 +976,7 @@ AC_ARG_WITH(libgc, [ --with-gc=included,none Controls the Boehm GC config, d 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) -AC_ARG_ENABLE(parallel-mark, [ --enable-parallel-mark Enables GC Parallel Marking], enable_parallel_mark=$enableval, enable_parallel_mark=$parallel_mark) +AC_ARG_ENABLE(parallel-mark, [ --enable-parallel-mark Enables Boehm GC Parallel Marking], enable_parallel_mark=$enableval, enable_parallel_mark=$parallel_mark) if test x$enable_parallel_mark = xyes; then libgc_configure_args="$libgc_configure_args --enable-parallel-mark" fi @@ -2078,6 +2078,7 @@ if test x$host_win32 = xno; then AC_CHECK_FUNCS(setpgid) AC_CHECK_FUNCS(system) AC_CHECK_FUNCS(fork execv execve) + AC_CHECK_FUNCS(accept4) AC_CHECK_SIZEOF(size_t) AC_CHECK_TYPES([blksize_t], [AC_DEFINE(HAVE_BLKSIZE_T)], , [#include @@ -2089,6 +2090,8 @@ if test x$host_win32 = xno; then #include ]) AC_CHECK_TYPES([suseconds_t], [AC_DEFINE(HAVE_SUSECONDS_T)], , [#include ]) + AC_CHECK_TYPES([struct cmsghdr], [AC_DEFINE(HAVE_STRUCT_CMSGHDR)], , + [#include ]) AC_CHECK_TYPES([struct flock], [AC_DEFINE(HAVE_STRUCT_FLOCK)], , [#include #include ]) @@ -2098,6 +2101,16 @@ if test x$host_win32 = xno; then [#include ]) AC_CHECK_TYPES([struct pollfd], [AC_DEFINE(HAVE_STRUCT_POLLFD)], , [#include ]) + AC_CHECK_TYPES([struct sockaddr], [AC_DEFINE(HAVE_STRUCT_SOCKADDR)], , + [#include ]) + AC_CHECK_TYPES([struct sockaddr_storage], [AC_DEFINE(HAVE_STRUCT_SOCKADDR_STORAGE)], , + [#include ]) + AC_CHECK_TYPES([struct sockaddr_in], [AC_DEFINE(HAVE_STRUCT_SOCKADDR_IN)], , + [#include ]) + AC_CHECK_TYPES([struct sockaddr_in6], [AC_DEFINE(HAVE_STRUCT_SOCKADDR_IN6)], , + [#include ]) + AC_CHECK_TYPES([struct sockaddr_un], [AC_DEFINE(HAVE_STRUCT_SOCKADDR_UN)], , + [#include ]) AC_CHECK_TYPES([struct stat], [AC_DEFINE(HAVE_STRUCT_STAT)], , [#include #include @@ -2598,21 +2611,54 @@ if test "x$enable_llvm" = "xyes"; then if test "x$host_win32" = "xno"; then + # Should be something like '2.6' or '2.7svn' + llvm_version=`$LLVM_CONFIG --version` + llvm_api_version=`$LLVM_CONFIG --mono-api-version 2>/dev/null` + AC_MSG_CHECKING(LLVM version) + AC_MSG_RESULT($llvm_version $llvm_api_version) + if echo $llvm_version | grep -q 'mono'; then + if test "x$enable_llvm_version_check" == "xyes"; then + if test "$llvm_version" != "$expected_llvm_version"; then + AC_MSG_ERROR([Expected llvm version $expected_llvm_version, but llvm-config --version returned $llvm_version"]) + fi + fi + else + AC_MSG_ERROR([Compiling with stock LLVM is not supported, please use the Mono LLVM repo at https://github.com/mono/llvm, with the GIT branch which matches this version of mono, i.e. 'mono-2-10' for Mono 2.10.]) + fi + # The output of --cflags seems to include optimizations flags too - LLVM_CFLAGS=`$LLVM_CONFIG --cflags | sed -e 's/-O2//g' | sed -e 's/-O0//g' | sed -e 's/-fomit-frame-pointer//g' | sed -e 's/-fPIC//g'` - LLVM_CXXFLAGS=`$LLVM_CONFIG --cxxflags | sed -e 's/-O2//g' | sed -e 's/-O0//g' | sed -e 's/-fomit-frame-pointer//g' | sed -e 's/-fPIC//g'` + if test $llvm_api_version -gt 100; then + # The --cflags argument includes all kinds of warnings -pendantic etc. + LLVM_CFLAGS="-I$with_llvm/include -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS" + LLVM_CXXFLAGS="-I$with_llvm/include -std=c++11 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS" + else + LLVM_CFLAGS=`$LLVM_CONFIG --cflags | sed -e 's/-O2//g' | sed -e 's/-O0//g' | sed -e 's/-fomit-frame-pointer//g' | sed -e 's/-fPIC//g'` + LLVM_CXXFLAGS=`$LLVM_CONFIG --cxxflags | sed -e 's/-O2//g' | sed -e 's/-O0//g' | sed -e 's/-fomit-frame-pointer//g' | sed -e 's/-fPIC//g'` + fi # LLVM is compiled with -fno-rtti, so we need this too, since our classes inherit # from LLVM classes. LLVM_CXXFLAGS="$LLVM_CXXFLAGS -fno-rtti -fexceptions" LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags` # This might include empty lines LLVM_SYSTEM_LIBS=`$LLVM_CONFIG --system-libs 2>/dev/null | grep -- -` - if test "x$host" != "x$target"; then + llvm_jit_supported=yes + if test $llvm_api_version -gt 100; then + # Based on llvm 3.9, only aot is currently supported + llvm_jit_supported=no + elif test "x$host" != "x$target"; then + # No need for jit libs + llvm_jit_supported=no + fi + if test $llvm_jit_supported = no; then # No need for jit libs LLVM_LIBS=`$LLVM_CONFIG --libs analysis core bitwriter` else LLVM_LIBS=`$LLVM_CONFIG --libs analysis core bitwriter jit mcjit $llvm_codegen` fi + if test "x$LLVM_LIBS" == "x"; then + echo "$LLVM_CONFIG --libs failed." + exit 1 + fi LLVM_LIBS="$LLVM_LIBS $LLVM_LDFLAGS $LLVM_SYSTEM_LIBS" # The c++ standard library used by llvm doesn't show up in $LLVM_SYSTEM_LIBS so add it manually if echo $LLVM_CXXFLAGS | grep -q -- '-stdlib=libc++'; then @@ -2623,21 +2669,6 @@ if test "x$enable_llvm" = "xyes"; then expected_llvm_version="3.4svn-mono-mono/e656cac" - # Should be something like '2.6' or '2.7svn' - llvm_version=`$LLVM_CONFIG --version` - llvm_api_version=`$LLVM_CONFIG --mono-api-version 2>/dev/null` - AC_MSG_CHECKING(LLVM version) - AC_MSG_RESULT($llvm_version) - if echo $llvm_version | grep -q 'mono'; then - if test "x$enable_llvm_version_check" == "xyes"; then - if test "$llvm_version" != "$expected_llvm_version"; then - AC_MSG_ERROR([Expected llvm version $expected_llvm_version, but llvm-config --version returned $llvm_version"]) - fi - fi - else - AC_MSG_ERROR([Compiling with stock LLVM is not supported, please use the Mono LLVM repo at https://github.com/mono/llvm, with the GIT branch which matches this version of mono, i.e. 'mono-2-10' for Mono 2.10.]) - fi - else LLVM_CFLAGS="-I$with_llvm/include -DNDEBUG -D__NO_CTYPE_INLINE -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS" LLVM_CXXFLAGS="$LLVM_CFLAGS -std=gnu++11 -fvisibility-inlines-hidden -fno-rtti -Woverloaded-virtual -Wcast-qual" @@ -3007,6 +3038,7 @@ if test "x$host" != "x$target"; then arch_target=amd64; AC_DEFINE(TARGET_AMD64, 1, [...]) AC_DEFINE(TARGET_PS4, 1, [...]) + AC_DEFINE(DISABLE_HW_TRAPS, 1, [...]) CPPFLAGS="$CPPFLAGS" # Can't use tls, since it depends on the runtime detection of tls offsets # in mono-compiler.h @@ -3178,7 +3210,8 @@ dnl SGEN_DEFINES= AC_ARG_WITH(sgen, [ --with-sgen=yes,no Extra Generational GC, default=yes],[buildsgen=$with_sgen],[buildsgen=yes]) if test x$buildsgen = xyes; then - SGEN_DEFINES="-DHAVE_SGEN_GC -DHAVE_MOVING_COLLECTOR" + AC_DEFINE(HAVE_MOVING_COLLECTOR, 1, [Moving collector]) + SGEN_DEFINES="-DHAVE_SGEN_GC" gc_msg="sgen and $gc_msg" fi AC_SUBST(SGEN_DEFINES) @@ -3464,6 +3497,7 @@ AC_ARG_WITH(monodroid, [ --with-monodroid=yes,no If you want to b AC_ARG_WITH(monotouch, [ --with-monotouch=yes,no If you want to build the Xamarin.iOS assemblies (defaults to no)], [], [with_monotouch=no]) AC_ARG_WITH(monotouch_watch, [ --with-monotouch_watch=yes,no If you want to build the Xamarin.WatchOS assemblies (defaults to no)],[], [with_monotouch_watch=no]) AC_ARG_WITH(monotouch_tv, [ --with-monotouch_tv=yes,no If you want to build the Xamarin.TVOS assemblies (defaults to no)], [], [with_monotouch_tv=no]) +AC_ARG_WITH(bitcode, [ --with-bitcode=yes,no If bitcode is enabled (defaults to no)], [], [with_bitcode=no]) AC_ARG_WITH(xammac, [ --with-xammac=yes,no If you want to build the Xamarin.Mac assemblies (defaults to no)], [], [with_xammac=no]) OPROFILE=no @@ -3517,6 +3551,29 @@ AC_ARG_WITH(checked_build, [ --with-checked-build=yes|no Enable checked bu fi ], [with_checked_build=no]) +if test x$with_checked_build != xno ; then + DISABLED_CHECKED_BUILD_TEST=none + + AC_ARG_ENABLE(checked_build_test, [ --enable-checked-build-test=LIST drop support for LIST checked build tests. LIST is a comma-separated list from: gc, metadata, thread.], + [ + for feature in `echo "$enable_checked_build_test" | sed -e "s/,/ /g"`; do + eval "mono_checked_build_test_disable_$feature='yes'" + done + DISABLED_CHECKED_BUILD_TEST=$enable_checked_build_test + ],[]) + + if test "x$mono_checked_build_test_disable_gc" = "xyes"; then + AC_DEFINE(DISABLE_CHECKED_BUILD_GC, 1, [Disable GC checked build]) + fi + + if test "x$mono_checked_build_test_disable_metadata" = "xyes"; then + AC_DEFINE(DISABLE_CHECKED_BUILD_METADATA, 1, [Disable metadata checked build]) + fi + + if test "x$mono_checked_build_test_disable_thread" = "xyes"; then + AC_DEFINE(DISABLE_CHECKED_BUILD_THREAD, 1, [Disable thread checked build]) + fi +fi AC_CHECK_HEADER([malloc.h], [AC_DEFINE([HAVE_USR_INCLUDE_MALLOC_H], [1], @@ -3577,6 +3634,7 @@ AM_CONDITIONAL(INSTALL_MONODROID, [test "x$with_monodroid" != "xno"]) AM_CONDITIONAL(INSTALL_MONOTOUCH, [test "x$with_monotouch" != "xno"]) AM_CONDITIONAL(INSTALL_MONOTOUCH_WATCH, [test "x$with_monotouch_watch" != "xno"]) AM_CONDITIONAL(INSTALL_MONOTOUCH_TV, [test "x$with_monotouch_tv" != "xno"]) +AM_CONDITIONAL(BITCODE, test "x$with_bitcode" = "xyes") AM_CONDITIONAL(INSTALL_XAMMAC, [test "x$with_xammac" != "xno"]) AM_CONDITIONAL(MIPS_GCC, test ${TARGET}${ac_cv_prog_gcc} = MIPSyes) @@ -3612,6 +3670,9 @@ AC_SUBST(CFLAGS) AC_SUBST(CPPFLAGS) AC_SUBST(LDFLAGS) +#This must always be defined when building the runtime +AC_DEFINE(MONO_INSIDE_RUNTIME,1, [Disable banned functions from being used by the runtime]) + mono_build_root=`pwd` AC_SUBST(mono_build_root)