[runtime] Fix a crash on Windows during the cleanup phase caused by using a destroyed...
[mono.git] / configure.ac
index 1d40df3cc814a9802098ad6ce8f0f950998e96ad..07aac9cffd2fb536aae118a21aa502309a6c33a6 100644 (file)
@@ -1,7 +1,7 @@
 # Process this file with autoconf to produce a configure script.
 #AC_PREREQ([2.62])
 
-AC_INIT(mono, [4.1.0],
+AC_INIT(mono, [4.3.0],
         [http://bugzilla.xamarin.com/enter_bug.cgi?classification=Mono])
 
 AC_CONFIG_SRCDIR([README.md])
@@ -41,12 +41,6 @@ esac
 #
 libgc_configure_args=
 
-if test -d $srcdir/libgc ; then
-  libgc_default=included
-else
-  libgc_default=boehm
-fi
-
 # These variables are the CPPFLAGS/CFLAGS passed to libgc's configure
 # libgc should inherit the original CFLAGS/CPPFLAGS passed to configure, i.e. -O0
 CPPFLAGS_FOR_LIBGC=$CPPFLAGS
@@ -117,7 +111,6 @@ case "$host" in
                libmono_ldflags="-mms-bitfields -mwindows"
                libdl=
                libgc_threads=win32
-               libgc_default=included
                with_sigaltstack=no
                with_tls=pthread
                LN_S=cp
@@ -183,7 +176,6 @@ case "$host" in
                need_link_unlink=yes
                AC_DEFINE(PTHREAD_POINTER_ID)
                libdl=
-               libgc_default=boehm
                libgc_threads=pthreads
                with_sigaltstack=no
                use_sigposix=yes
@@ -258,7 +250,6 @@ case "$host" in
                libmono_cflags="-D_REENTRANT"
                libdl=
                libgc_threads=pthreads
-               libgc_default=boehm
                use_sigposix=yes
                ikvm_native=no
                AC_DEFINE(DISABLE_SOCKETS,1,[Disable sockets support])
@@ -300,7 +291,7 @@ case "$host" in
                host_win32=no
                platform_darwin=yes
                target_mach=yes
-               CPPFLAGS="$CPPFLAGS -no-cpp-precomp -D_THREAD_SAFE -DGC_MACOSX_THREADS -DPLATFORM_MACOSX -DUSE_MMAP -DUSE_MUNMAP"
+               CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE -DGC_MACOSX_THREADS -DPLATFORM_MACOSX -DUSE_MMAP -DUSE_MUNMAP"
                libmono_cflags="-D_THREAD_SAFE"
                need_link_unlink=yes
                AC_DEFINE(PTHREAD_POINTER_ID)
@@ -437,7 +428,7 @@ AC_PROG_LD_GNU
 
 AM_ICONV()
 
-AC_CHECK_HEADERS(sys/filio.h sys/sockio.h netdb.h utime.h sys/utime.h semaphore.h sys/un.h linux/rtc.h sys/syscall.h sys/mkdev.h sys/uio.h sys/param.h sys/sysctl.h libproc.h)
+AC_CHECK_HEADERS(sys/filio.h sys/sockio.h netdb.h utime.h sys/utime.h semaphore.h sys/un.h linux/rtc.h sys/syscall.h sys/mkdev.h sys/uio.h sys/param.h sys/sysctl.h libproc.h sys/prctl.h)
 AC_CHECK_HEADERS(sys/param.h sys/socket.h sys/ipc.h sys/sem.h sys/utsname.h alloca.h ucontext.h pwd.h sys/select.h netinet/tcp.h netinet/in.h unistd.h sys/types.h link.h asm/sigcontext.h sys/inotify.h arpa/inet.h complex.h)
 AC_CHECK_HEADERS([linux/netlink.h linux/rtnetlink.h],
                   [], [], [#include <stddef.h>
@@ -1010,7 +1001,7 @@ 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_WITH(libgc,   [  --with-gc=included,none  Controls the Boehm GC config, default=included],[libgc=$with_gc],[libgc=included])
 
 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)
@@ -1020,55 +1011,13 @@ if test x$enable_parallel_mark = xyes; then
        libgc_configure_args="$libgc_configure_args --enable-parallel-mark"
 fi
 
-gc_headers=no
 gc_msg=""
-use_included_gc=no
 LIBGC_CPPFLAGS=
 LIBGC_LIBS=
 LIBGC_STATIC_LIBS=
 libgc_dir=
 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)
-
-               if test "x$found_boehm" != "xyes"; then
-                       AC_MSG_ERROR("GC requested but libgc not found! Install libgc or run configure with --with-gc=none.")
-               fi
-               if test "x$gc_headers" != "xyes"; then
-                       AC_MSG_ERROR("GC requested but header files not found! You may need to install them by hand.")
-               fi
-
-               LIBGC_LIBS="-lgc $libdl"
-               LIBGC_STATIC_LIBS="$LIBGC_LIBS"
-               libmono_ldflags="$libmono_ldflags -lgc"
-               BOEHM_DEFINES="-DHAVE_BOEHM_GC"
-
-               # AC_CHECK_FUNCS does not work for some reason...
-               AC_CHECK_LIB(gc, GC_gcj_malloc, found_gcj_malloc="yes",,$libdl)
-               if test "x$found_gcj_malloc" = "xyes"; then
-                       BOEHM_DEFINES="-DHAVE_GC_GCJ_MALLOC $BOEHM_DEFINES"
-                       AC_DEFINE_UNQUOTED(DEFAULT_GC_NAME, "System Boehm (with typed GC)", [GC description])
-                       gc_msg="System Boehm with typed GC"
-               else
-                       AC_DEFINE_UNQUOTED(DEFAULT_GC_NAME, "System Boehm (no typed GC)", [GC description])
-                       gc_msg="System Boehm (without typed GC)"
-               fi
-               AC_CHECK_LIB(gc, GC_enable, found_gc_enable="yes",,$libdl)
-               if test "x$found_gc_enable" = "xyes"; then
-                       BOEHM_DEFINES="-DHAVE_GC_ENABLE $BOEHM_DEFINES"
-               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
-               ;;
-
        xincluded)
-               use_included_gc=yes
                if test "x$support_boehm" = "xyes"; then
                        libgc_dir=libgc
                fi
@@ -1077,7 +1026,7 @@ case "x$libgc" in
                LIBGC_LIBS='$(top_builddir)/libgc/libmonogc.la'
                LIBGC_STATIC_LIBS='$(top_builddir)/libgc/libmonogc-static.la'
 
-               BOEHM_DEFINES="-DHAVE_BOEHM_GC -DHAVE_GC_H -DUSE_INCLUDED_LIBGC -DHAVE_GC_GCJ_MALLOC -DHAVE_GC_ENABLE"
+               BOEHM_DEFINES="-DHAVE_BOEHM_GC"
 
                if test x$target_win32 = xyes; then
                        BOEHM_DEFINES="$BOEHM_DEFINES -DGC_NOT_DLL"
@@ -1093,6 +1042,10 @@ case "x$libgc" in
                fi
                ;;
 
+       xboehm|xbohem|xyes)
+               AC_MSG_WARN("External Boehm is no longer supported")
+               ;;
+
        xsgen)
                AC_MSG_WARN("Use --with-sgen instead, --with-gc= controls Boehm configuration")
                ;;
@@ -1113,7 +1066,6 @@ if test "x$large_heap" = "xyes"; then
    CPPFLAGS="$CPPFLAGS -DLARGE_CONFIG"
 fi
 
-AM_CONDITIONAL(INCLUDED_LIBGC, test x$use_included_gc = xyes)
 AC_SUBST(LIBGC_CPPFLAGS)
 AC_SUBST(LIBGC_LIBS)
 AC_SUBST(LIBGC_STATIC_LIBS)
@@ -1224,6 +1176,7 @@ if test x$host_win32 = xno; then
        AC_CHECK_FUNCS(dladdr)
        AC_CHECK_FUNCS(sysconf)
        AC_CHECK_FUNCS(getrlimit)
+       AC_CHECK_FUNCS(prctl)
 
        AC_CHECK_FUNCS(sched_setaffinity)
        AC_CHECK_FUNCS(sched_getcpu)
@@ -2145,6 +2098,7 @@ if test x$host_win32 = xno; then
        AC_CHECK_FUNCS(fstatat mknodat readlinkat)
        AC_CHECK_FUNCS(readv writev preadv pwritev)
        AC_CHECK_FUNCS(setpgid)
+       AC_CHECK_FUNCS(system)
        AC_CHECK_SIZEOF(size_t)
        AC_CHECK_TYPES([blksize_t], [AC_DEFINE(HAVE_BLKSIZE_T)], , 
                [#include <sys/types.h>
@@ -3287,7 +3241,7 @@ case "$host" in
        X11="libX11.so.6"
        ;;
     *-*-*freebsd*)
-       LIBC="libc.so"
+       LIBC="libc.so.7"
        INTL="libintl.so"
        SQLITE="libsqlite.so"
        SQLITE3="libsqlite3.so"
@@ -3539,8 +3493,8 @@ esac
 
 AC_ARG_WITH(profile4_5,[  --with-profile4_5=yes,no        If you want to install the 4.5 FX (defaults to yes)],                [], [with_profile4_5=yes])
 AC_ARG_WITH(monodroid, [  --with-monodroid=yes,no         If you want to build the MonoDroid assemblies (defaults to no)],     [], [with_monodroid=no])
-AC_ARG_WITH(monotouch, [  --with-monotouch=yes,no,only    If you want to build the MonoTouch assemblies (defaults to no)],     [], [with_monotouch=no])
-AC_ARG_WITH(xammac,    [  --with-xammac=yes,no,only       If you want to build the Xamarin.Mac assemblies (defaults to no)],   [], [with_xammac=no])
+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(xammac,    [  --with-xammac=yes,no            If you want to build the Xamarin.Mac assemblies (defaults to no)],   [], [with_xammac=no])
 
 OPROFILE=no
 AC_ARG_WITH(oprofile,[  --with-oprofile=no,<oprofile install dir>   Enable oprofile support (defaults to no)],[
@@ -3643,8 +3597,6 @@ AM_CONDITIONAL(INSTALL_4_5, [test "x$with_profile4_5" = xyes])
 AM_CONDITIONAL(INSTALL_MONODROID, [test "x$with_monodroid" != "xno"])
 AM_CONDITIONAL(INSTALL_MONOTOUCH, [test "x$with_monotouch" != "xno"])
 AM_CONDITIONAL(INSTALL_XAMMAC, [test "x$with_xammac" != "xno"])
-AM_CONDITIONAL(ONLY_MONOTOUCH, [test "x$with_monotouch" = "xonly"])
-AM_CONDITIONAL(ONLY_XAMMAC, [test "x$with_xammac" = "xonly"])
 
 AM_CONDITIONAL(MIPS_GCC, test ${TARGET}${ac_cv_prog_gcc} = MIPSyes)
 AM_CONDITIONAL(MIPS_SGI, test ${TARGET}${ac_cv_prog_gcc} = MIPSno)
@@ -3665,8 +3617,6 @@ AM_CONDITIONAL(HOST_ARM, test x$HOST = xARM)
 AM_CONDITIONAL(HOST_ARM64, test x$HOST = xARM64)
 AM_CONDITIONAL(CROSS_COMPILE, test "x$host" != "x$target")
 
-AM_CONDITIONAL(INCLUDED_LIBGC, test x$libgc = xincluded)
-
 AC_SUBST(LIBC)
 AC_SUBST(INTL)
 AC_SUBST(SQLITE)