X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;ds=inline;f=configure.ac;h=66d9a98c35954be94753c5b8ded2cc0ec650f511;hb=e9ef2be4373c0f09c6bc15b75e92cca93fe8feed;hp=15307f1eddb477a8fc3eae66fe006a13e51430a3;hpb=d795d17c3d853f3d70dea416588a5e338c4c128e;p=mono.git diff --git a/configure.ac b/configure.ac index 15307f1eddb..66d9a98c359 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, [3.6.1], +AC_INIT(mono, [3.10.1], [http://bugzilla.xamarin.com/enter_bug.cgi?classification=Mono]) AC_CONFIG_SRCDIR([README.md]) @@ -36,20 +36,15 @@ case $host_os in *cygwin* ) LN_S='cp -p';; esac -dnl -dnl libgc checks -dnl - -gc_headers=no -gc=included -gc_msg="included Boehm" -use_included_gc=no +# +# libgc defaults +# libgc_configure_args= if test -d $srcdir/libgc ; then - gc_default=included + libgc_default=included else - gc_default=boehm + libgc_default=boehm fi # These variables are the CPPFLAGS/CFLAGS passed to libgc's configure @@ -120,14 +115,14 @@ case "$host" in AC_DEFINE(MINGW_CROSS_COMPILE,1,[Cross-compiling using MinGW]) fi HOST_CC="gcc" - # Windows 2000 is required that includes Internet Explorer 5.01 - CPPFLAGS="$CPPFLAGS -DWINVER=0x0500 -D_WIN32_WINNT=0x0500 -D_WIN32_IE=0x0501 -D_UNICODE -DUNICODE -DWIN32_THREADS -DFD_SETSIZE=1024" - LDFLAGS="$LDFLAGS -lmswsock -lws2_32 -lole32 -loleaut32 -lpsapi -lversion -ladvapi32 -lwinmm -lkernel32" + # Windows XP SP2 is required + CPPFLAGS="$CPPFLAGS -DWINVER=0x0502 -D_WIN32_WINNT=0x0502 -D_WIN32_IE=0x0501 -D_UNICODE -DUNICODE -DWIN32_THREADS -DFD_SETSIZE=1024" + LDFLAGS="$LDFLAGS -lmswsock -lws2_32 -lole32 -loleaut32 -lpsapi -lversion -ladvapi32 -lwinmm -lkernel32 -liphlpapi" libmono_cflags="-mms-bitfields -mwindows" libmono_ldflags="-mms-bitfields -mwindows" libdl= libgc_threads=win32 - gc_default=included + libgc_default=included with_sigaltstack=no with_tls=pthread LN_S=cp @@ -147,6 +142,17 @@ case "$host" in with_sigaltstack=no use_sigposix=yes ;; + *-*-kfreebsd*-gnu) + host_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 @@ -182,7 +188,7 @@ case "$host" in need_link_unlink=yes AC_DEFINE(PTHREAD_POINTER_ID) libdl= - gc_default=boehm + libgc_default=boehm libgc_threads=pthreads with_sigaltstack=no use_sigposix=yes @@ -257,7 +263,7 @@ case "$host" in libmono_cflags="-D_REENTRANT" libdl= libgc_threads=pthreads - gc_default=boehm + libgc_default=boehm use_sigposix=yes ikvm_native=no AC_DEFINE(DISABLE_SOCKETS,1,[Disable sockets support]) @@ -362,6 +368,7 @@ fi AC_SUBST(extra_runtime_ldflags) AM_CONDITIONAL(HOST_WIN32, test x$host_win32 = xyes) AM_CONDITIONAL(TARGET_WIN32, test x$target_win32 = xyes) +AM_CONDITIONAL(PLATFORM_GNU, echo x$target_os | grep -q -- -gnu) 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) @@ -688,8 +695,6 @@ AC_SUBST(GMODULE_LIBS) AC_SUBST(BUILD_GLIB_CFLAGS) AC_SUBST(BUILD_GLIB_LIBS) -AC_ARG_WITH(gc, [ --with-gc=boehm,included,none Controls the Boehm GC config, default=included],[gc=$with_gc],[gc=$gc_default]) - # Enable support for fast thread-local storage # Some systems have broken support, so we allow to disable it. AC_ARG_WITH(tls, [ --with-tls=__thread,pthread select Thread Local Storage implementation (defaults to __thread)],[],[with_tls=__thread]) @@ -762,7 +767,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, appdomains, verifier, reflection_emit, reflection_emit_save, large_code, logging, com, ssa, generics, attach, jit, simd, soft_debug, perfcounters, normalization, assembly_remapping, shared_perfcounters, remoting, - security, sgen_remset, sgen_marksweep_par, sgen_marksweep_fixed, sgen_marksweep_fixed_par, sgen_copying.], + security, sgen_remset, sgen_marksweep_par, sgen_marksweep_fixed, sgen_marksweep_fixed_par, sgen_copying, shared_handles.], [ for feature in `echo "$enable_minimal" | sed -e "s/,/ /g"`; do eval "mono_feature_disable_$feature='yes'" @@ -936,6 +941,11 @@ if test "x$mono_feature_disable_sgen_copying" = "xyes"; then AC_MSG_NOTICE([Disabled major=copying support in SGEN.]) fi +if test "x$mono_feature_disable_shared_handles" = "xyes"; then + AC_DEFINE(DISABLE_SHARED_HANDLES, 1, [Disable inter-process shared handles]) + AC_SUBST(DISABLE_SHARED_HANDLES) +fi + AC_ARG_ENABLE(executables, [ --disable-executables disable the build of the runtime executables], enable_executables=$enableval, enable_executables=yes) AM_CONDITIONAL(DISABLE_EXECUTABLES, test x$enable_executables = xno) @@ -997,22 +1007,28 @@ AC_TRY_COMPILE([ AC_MSG_RESULT(no) ]) +dnl +dnl Boehm GC configuration +dnl + +AC_ARG_WITH(libgc, [ --with-gc=boehm,included,none Controls the Boehm GC config, default=included],[libgc=$with_gc],[libgc=$libgc_default]) + +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) 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 +gc_headers=no +gc_msg="" +use_included_gc=no LIBGC_CPPFLAGS= LIBGC_LIBS= LIBGC_STATIC_LIBS= libgc_dir= -case "x$gc" in +case "x$libgc" in xboehm|xbohem|xyes) AC_CHECK_HEADERS(gc.h gc/gc.h, gc_headers=yes) AC_CHECK_LIB(gc, GC_malloc, found_boehm="yes",,$libdl) @@ -1045,12 +1061,11 @@ case "x$gc" in fi # check whether we need to explicitly allow - # thread registering - AC_CHECK_LIB(gc, GC_allow_register_threads, found_allow_register_threads="yes",,$libdl) - if test "x$found_allow_register_threads" = "xyes"; then - AC_DEFINE(HAVE_GC_ALLOW_REGISTER_THREADS, 1, [GC requires thread registration]) - fi - + # thread registering + AC_CHECK_LIB(gc, GC_allow_register_threads, found_allow_register_threads="yes",,$libdl) + if test "x$found_allow_register_threads" = "xyes"; then + AC_DEFINE(HAVE_GC_ALLOW_REGISTER_THREADS, 1, [GC requires thread registration]) + fi ;; xincluded) @@ -1070,7 +1085,7 @@ case "x$gc" in CFLAGS_FOR_LIBGC="$CFLAGS_FOR_LIBGC -DGC_BUILD -DGC_NOT_DLL" fi - gc_msg="bundled Boehm GC with typed GC" + gc_msg="Included Boehm GC with typed GC" if test x$enable_parallel_mark = xyes; then AC_DEFINE_UNQUOTED(DEFAULT_GC_NAME, "Included Boehm (with typed GC and Parallel Mark)", [GC description]) gc_msg="$gc_msg and parallel mark" @@ -1107,7 +1122,7 @@ AC_SUBST(libgc_dir) AC_SUBST(BOEHM_DEFINES) dnl -dnl End of libgc checks +dnl End of Boehm GC Configuration dnl dnl ************************************* @@ -1184,7 +1199,7 @@ if test x$target_win32 = xno; then AC_CHECK_HEADERS(execinfo.h) - AC_CHECK_HEADERS(sys/auxv.h) + AC_CHECK_HEADERS(sys/auxv.h sys/resource.h) AC_CHECK_FUNCS(getgrgid_r) AC_CHECK_FUNCS(getgrnam_r) @@ -1203,6 +1218,7 @@ if test x$target_win32 = xno; then AC_CHECK_FUNCS(dl_iterate_phdr) AC_CHECK_FUNCS(dladdr) AC_CHECK_FUNCS(sysconf) + AC_CHECK_FUNCS(getrlimit) AC_CHECK_FUNCS(sched_setaffinity) AC_CHECK_FUNCS(sched_getcpu) @@ -2139,7 +2155,6 @@ else AC_MSG_RESULT(no) ]) ]) - AC_CHECK_FUNCS(GetProcessId) AC_CHECK_DECLS(InterlockedExchange64, [], [], [[#include ]]) AC_CHECK_DECLS(InterlockedCompareExchange64, [], [], [[#include ]]) AC_CHECK_DECLS(InterlockedDecrement64, [], [], [[#include ]]) @@ -2147,6 +2162,16 @@ else AC_CHECK_DECLS(InterlockedAdd, [], [], [[#include ]]) AC_CHECK_DECLS(InterlockedAdd64, [], [], [[#include ]]) AC_CHECK_DECLS(__readfsdword, [], [], [[#include ]]) + + AC_MSG_CHECKING(for GetProcessId) + AC_TRY_COMPILE([#include ], [ + GetProcessId (0); + ], [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_GETPROCESSID) + ], [ + AC_MSG_RESULT(no) + ]) fi dnl socklen_t check @@ -2263,6 +2288,7 @@ if test "x$ac_cv_have_dev_random" = "xno" \ fi AC_MSG_CHECKING([if inter-process shared handles are requested]) +# Same as --enable-minimal=shared_handles AC_ARG_ENABLE(shared-handles, [ --disable-shared-handles disable inter-process shared handles], try_shared_handles=$enableval, try_shared_handles=yes) AC_MSG_RESULT($try_shared_handles) if test "x$try_shared_handles" != "xyes"; then @@ -2480,7 +2506,6 @@ TARGET="unknown" ACCESS_UNALIGNED="yes" JIT_SUPPORTED=no -INTERP_SUPPORTED=no LIBC="libc.so.6" INTL="libc.so.6" SQLITE="libsqlite.so.0" @@ -2488,12 +2513,11 @@ SQLITE3="libsqlite3.so.0" X11="libX11.so" GDKX11="libgdk-x11-2.0.so.0" GTKX11="libgtk-x11-2.0.so.0" -XINERAMA="libXinerama.so" +XINERAMA="libXinerama.so.1" sizeof_register="SIZEOF_VOID_P" jit_wanted=true -interp_wanted=false sgen_supported=false boehm_supported=true case "$host" in @@ -2558,7 +2582,7 @@ case "$host" in sgen_supported=true AOT_SUPPORTED="yes" ;; - openbsd*|freebsd*) + openbsd*|freebsd*|kfreebsd-gnu*) sgen_supported=true ;; esac @@ -2580,7 +2604,7 @@ case "$host" in sgen_supported=true AOT_SUPPORTED="yes" ;; - openbsd*|freebsd*) + openbsd*|freebsd*|kfreebsd-gnu*) sgen_supported=true ;; mingw*) @@ -2657,8 +2681,6 @@ case "$host" in ACCESS_UNALIGNED="no" JIT_SUPPORTED=yes CPPFLAGS="$CPPFLAGS -D__ARM_EABI__" - # libgc's gc_locks.h depends on this - CPPFLAGS_FOR_LIBGC="$CPPFLAGS_FOR_LIBGC" sgen_supported=true ;; arm*-linux*) @@ -2725,7 +2747,6 @@ if test "x$host" != "x$target"; then sizeof_register=8 target_byte_order=G_BIG_ENDIAN ;; - powerpc64-xbox360-linux-gnu) TARGET=POWERPC64 arch_target=powerpc64 @@ -2792,6 +2813,20 @@ if test "x$host" != "x$target"; then ;; esac ;; + i686*-linux-*) + TARGET=X86; + arch_target=x86; + AC_DEFINE(TARGET_X86, 1, [...]) + AC_DEFINE(TARGET_ANDROID, 1, [...]) + JIT_SUPPORTED=yes + CPPFLAGS="$CPPFLAGS" + jit_wanted=true + sgen_supported=true + # Can't use tls, since it depends on the runtime detection of tls offsets + # in mono-compiler.h + with_tls=pthread + target_mach=no + ;; aarch64-*) TARGET=ARM64 JIT_SUPPORTED=yes @@ -2924,18 +2959,10 @@ if test x$JIT_SUPPORTED = xyes; then USEJIT=true jit_status="Building and using the JIT" else - if $interp_wanted; then - jit_status="Building the JIT, defaulting to the interpreter" - else - AC_ERROR(No JIT or interpreter support available or selected.) - fi + AC_ERROR(No JIT support available or selected.) fi else - if test x$interp_wanted = xtrue; then - jit_status="interpreter" - else - AC_ERROR(No JIT or interpreter support available or selected.) - fi + AC_ERROR(No JIT support available or selected.) fi AM_CONDITIONAL(USE_JIT, test x$USEJIT = xtrue) @@ -2957,6 +2984,11 @@ case "$host" in 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" @@ -2983,21 +3015,9 @@ case "$host" in done if test "x$X11" = "xlibX11.so"; then - AC_MSG_WARN([Could not find X development libs. Do you have the -devel package installed? Assuming libX11.so.6...]); + AC_MSG_WARN([Could not find libX11.so. Do you have X.org or XFree86 installed? Assuming libX11.so.6...]); X11=libX11.so.6 fi - AC_MSG_CHECKING(for the soname of libXinerama.so) - for i in $x_libraries $dlsearch_path; do - for r in 1 2 3; do - if test -f $i/libXinerama.so.$r; then - XINERAMA=libXinerama.so.$r - AC_MSG_RESULT($XINERAMA) - fi - done - done - if test "x$XINERAMA" = "xlibXinerama.so"; then - AC_MSG_WARN([Could not find Xinerama development libs. Support for multiple monitors might not work...]); - fi ;; esac @@ -3196,7 +3216,7 @@ if test ${ACCESS_UNALIGNED} = no; then CPPFLAGS="$CPPFLAGS -DNO_UNALIGNED_ACCESS" fi -case "x$gc" in +case "x$libgc" in xincluded) # Pass CPPFLAGS to libgc configure # We should use a separate variable for this to avoid passing useless and @@ -3349,8 +3369,7 @@ AM_CONDITIONAL(HOST_ARM64, test x$HOST = xARM64) AM_CONDITIONAL(CROSS_COMPILE, test "x$host" != "x$target") AM_CONDITIONAL(JIT_SUPPORTED, test x$JIT_SUPPORTED = xyes) -AM_CONDITIONAL(INTERP_SUPPORTED, test x$interp_wanted = xtrue) -AM_CONDITIONAL(INCLUDED_LIBGC, test x$gc = xincluded) +AM_CONDITIONAL(INCLUDED_LIBGC, test x$libgc = xincluded) AC_SUBST(LIBC) AC_SUBST(INTL) @@ -3369,11 +3388,7 @@ AC_SUBST(LDFLAGS) mono_build_root=`pwd` AC_SUBST(mono_build_root) -if test x$USEJIT = xtrue; then - mono_runtime=mono/mini/mono -else - mono_runtime=mono/interpreter/mint -fi +mono_runtime=mono/mini/mono AC_SUBST(mono_runtime) mono_cfg_root=$mono_build_root/runtime @@ -3570,7 +3585,6 @@ mono/arch/arm/Makefile mono/arch/arm64/Makefile mono/arch/ia64/Makefile mono/arch/mips/Makefile -mono/interpreter/Makefile mono/tests/Makefile mono/tests/tests-config mono/tests/assemblyresolve/Makefile @@ -3760,6 +3774,8 @@ echo " mcs source: $mcsdir Engine: + Host: $host + Target: $target GC: $gc_msg TLS: $with_tls SIGALTSTACK: $with_sigaltstack