[Mono.Debugger.Soft] Implemented TypeMirror.GetMethodsByNameFlags() for older runtimes.
[mono.git] / configure.in
index 97f8f479bb827d7dc9d92987b4e7cc93ff3b0f7d..02bd8a184385e94c99ee1ad27b6acf19c4867475 100644 (file)
@@ -1,7 +1,7 @@
 # Process this file with autoconf to produce a configure script.
 #AC_PREREQ([2.62])
 
-AC_INIT(mono, [2.11],
+AC_INIT(mono, [2.11.1],
         [http://bugzilla.xamarin.com/enter_bug.cgi?classification=Mono])
 
 AC_CONFIG_SRCDIR([README])
@@ -225,6 +225,7 @@ case "$host" in
 
                # to bypass the underscore linker check, can't work when cross-compiling
                mono_cv_uscore=yes
+               mono_cv_clang=no
                ;;
        *-*-linux*)
                host_win32=no
@@ -485,15 +486,15 @@ AC_CHECK_SIZEOF(void *, 4)
 
 WARN=''
 if test x"$GCC" = xyes; then
-        WARN='-Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes  -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wno-cast-qual -Wwrite-strings'
+        WARN='-Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes  -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wno-cast-qual -Wwrite-strings -Wno-switch-enum'
                # The runtime code does not respect ANSI C strict aliasing rules
                CFLAGS="$CFLAGS -fno-strict-aliasing"
 
                ORIG_CFLAGS=$CFLAGS
                CFLAGS="$CFLAGS -Wdeclaration-after-statement"
                AC_MSG_CHECKING(for -Wdeclaration-after-statement option to gcc)
-               AC_TRY_COMPILE([], [
-                                                  void main () { }
+               AC_TRY_COMPILE([],[
+                               return 0;
                ], [
                   AC_MSG_RESULT(yes)
                ], [
@@ -505,8 +506,8 @@ if test x"$GCC" = xyes; then
                # 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_TRY_COMPILE([],[
+                               return 0;
                ], [
                   AC_MSG_RESULT(yes)
                   CFLAGS="$ORIG_CFLAGS -Wno-unused-but-set-variable"
@@ -526,6 +527,22 @@ fi
 CFLAGS="$CFLAGS -g $WARN"
 CFLAGS_FOR_LIBGC="$CFLAGS_FOR_LIBGC -g"
 
+AC_CACHE_CHECK([for clang],
+       mono_cv_clang,[
+       AC_TRY_RUN([
+               int main () {
+                       #ifdef __clang__
+                               return 0;
+                       #else
+                               return 1;
+                       #endif
+               }
+       ],
+       [mono_cv_clang=yes],
+       [mono_cv_clang=no],
+       [])
+])
+
 # Where's the 'mcs' source tree?
 if test -d $srcdir/mcs; then
   mcsdir=mcs
@@ -681,13 +698,13 @@ AM_CONDITIONAL(SHARED_MONO, test x$with_shared_mono != xno)
 AC_ARG_ENABLE(mcs-build, [  --disable-mcs-build disable the build of the mcs directory], try_mcs_build=$enableval, enable_mcs_build=yes)
 
 AC_ARG_WITH(xen_opt,   [  --with-xen_opt=yes,no          Enable Xen-specific behaviour (defaults to yes)],[],[with_xen_opt=yes])
-if test "x$with_xen_opt" = "xyes"; then
+if test "x$with_xen_opt" = "xyes" -a "x$mono_cv_clang" = "xno"; then
        AC_DEFINE(MONO_XEN_OPT, 1, [Xen-specific behaviour])
        ORIG_CFLAGS=$CFLAGS
        CFLAGS="$CFLAGS -mno-tls-direct-seg-refs"
        AC_MSG_CHECKING(for -mno-tls-direct-seg-refs option to gcc)
        AC_TRY_COMPILE([], [
-                                          void main () { }
+               return 0;
        ], [
           AC_MSG_RESULT(yes)
           # Pass it to libgc as well
@@ -842,10 +859,15 @@ if test "x$mono_feature_disable_shared_perfcounters" = "xyes"; then
        AC_MSG_NOTICE([Disabled Shared perfcounters.])
 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)
+
 AC_MSG_CHECKING(for visibility __attribute__)
-AC_TRY_COMPILE([], [
-   void __attribute__ ((visibility ("hidden"))) doit (void) {}
-   void main () { doit (); }
+AC_COMPILE_IFELSE([
+       AC_LANG_SOURCE([[
+               void __attribute__ ((visibility ("hidden"))) doit (void) {}
+               int main () { doit (); return 0; }
+       ]])
 ], [
    have_visibility_hidden=yes
    AC_MSG_RESULT(yes)
@@ -1077,10 +1099,9 @@ if test x$target_win32 = xno; then
        dnl ****************************************************************
        AC_MSG_CHECKING(for sched_setaffinity from glibc < 2.3.4)
        AC_TRY_COMPILE([#include <sched.h>], [
-               int main() {
             int mask = 1; 
             sched_setaffinity(0, &mask);
-        }
+                       return 0;
        ], [
                # Yes, we have it...
                AC_MSG_RESULT(yes)
@@ -2178,12 +2199,11 @@ case "$host" in
                JIT_SUPPORTED=yes
 
                AC_MSG_CHECKING(for mips n32)
-               AC_TRY_COMPILE([], [
-               void main () {
+               AC_TRY_COMPILE([],[
                #if _MIPS_SIM != _ABIN32
                #error Not mips n32
                #endif
-               }
+               return 0;
                ],[
                AC_MSG_RESULT(yes)
                sizeof_register=8
@@ -2608,7 +2628,7 @@ if test "x$TARGET" = "xAMD64" -o "x$TARGET" = "xX86"; then
                # undefined reference to `__tls_get_addr'
                #
                rm -f conftest.c conftest.so conftest
-               echo "static __thread int foo; void main () { foo = 5; }" > conftest.c
+               echo "static __thread int foo; int main () { foo = 5; return 0; }" > conftest.c
                $CC -fPIC --shared -o conftest.so conftest.c > /dev/null 2>&1
                $CC -o conftest conftest.so > /dev/null 2>&1
                if test ! -f conftest; then
@@ -2649,6 +2669,21 @@ fi
 AM_CONDITIONAL(MONO_DEBUGGER_SUPPORTED, test x$mono_debugger_supported = xyes)
 AC_MSG_RESULT($mono_debugger_supported)
 
+AC_ARG_ENABLE(icall-symbol-map,[ --enable-icall-symbol-map Generate tables which map icall functions to their C symbols], icall_symbol_map=$enableval, icall_symbol_map=no)
+if test "x$icall_symbol_map" = "xyes"; then
+   AC_DEFINE(ENABLE_ICALL_SYMBOL_MAP, 1, [Icall symbol map enabled])
+fi
+
+AC_ARG_ENABLE(icall-export,[ --enable-icall-export Export icall functions], icall_export=$enableval, icall_export=no)
+if test "x$icall_export" = "xyes"; then
+   AC_DEFINE(ENABLE_ICALL_EXPORT, 1, [Icall export enabled])
+fi
+
+AC_ARG_ENABLE(icall-tables,[ --disable-icall-tables Disable the runtime lookup of icalls], icall_tables=$enableval, icall_tables=yes)
+if test "x$icall_tables" = "xno"; then
+   AC_DEFINE(DISABLE_ICALL_TABLES, 1, [Icall tables disabled])
+fi
+
 if test "x$with_tls" = "x__thread"; then
        AC_DEFINE(HAVE_KW_THREAD, 1, [Have __thread keyword])
        # Pass the information to libgc
@@ -2657,7 +2692,10 @@ if test "x$with_tls" = "x__thread"; then
        AC_TRY_COMPILE([static __thread int foo __attribute__((tls_model("initial-exec")));], [
                ], [
                        AC_MSG_RESULT(yes)
-                       AC_DEFINE(HAVE_TLS_MODEL_ATTR, 1, [tld_model available])
+                       # CLANG doesn't support this yet, and it prints warnings about it
+                       if test "x$mono_cv_clang" = "xno"; then
+                               AC_DEFINE(HAVE_TLS_MODEL_ATTR, 1, [tld_model available])
+                       fi
                ], [
                        AC_MSG_RESULT(no)
        ])
@@ -2798,10 +2836,8 @@ AC_CHECK_HEADER([malloc.h],
 # instead of libmono-static.a
 if test "x$enable_shared" = "xno"; then
    LIBMONO_LA=.libs/libmono-static.a
-   PROFILER_LIBS=
 else
    LIBMONO_LA=libmono-$API_VER.la
-   PROFILER_LIBS=libmono-profiler-cov.la libmono-profiler-aot.la libmono-profiler-iomap.la libmono-profiler-log.la
 fi
 AC_SUBST(LIBMONO_LA)
 
@@ -3024,7 +3060,13 @@ AC_CONFIG_COMMANDS([runtime/etc/mono/4.5/web.config],
 ],[LN_S='$LN_S'])
 
 if test x$enable_quiet_build = xyes; then
-   AC_CONFIG_COMMANDS([quiet], [for i in `find mono libgc support -name Makefile.in | sed -e 's/Makefile.in/Makefile/g'`; do if test -f $i; then $srcdir/scripts/patch-quiet.sh $i; fi; done], [shell=$SHELL])
+   AC_CONFIG_COMMANDS([quiet],
+[  for i in `find mono libgc support -name Makefile`; do
+          if [ grep -q 'generated by automake' $i ]; then
+                 $srcdir/scripts/patch-quiet.sh $i;
+          fi;
+   done
+], [shell=$SHELL])
    AC_CONFIG_COMMANDS([quiet-libtool], [sed -e 's/echo "copying selected/# "copying selected/g' < libtool > libtool.tmp && mv libtool.tmp libtool && chmod a+x libtool; sed -e 's/$ECHO "copying selected/# "copying selected/g' < libtool > libtool.tmp && mv libtool.tmp libtool && chmod a+x libtool])
 fi
 
@@ -3105,6 +3147,9 @@ msvc/Makefile
 po/Makefile
 ])
 
+# Update all submodules recursively to ensure everything is checked out
+$srcdir/scripts/update_submodules
+
 if test x$host_win32 = xyes; then
    # Get rid of 'cyg' prefixes in library names
    sed -e "s/\/cyg\//\/\//" libtool > libtool.new; mv libtool.new libtool; chmod 755 libtool
@@ -3135,7 +3180,6 @@ fi
     echo "exec_prefix=$exec_prefix" >> $mcs_topdir/build/config.make
     echo "sysconfdir=$sysconfdir" >> $mcs_topdir/build/config.make
     echo 'mono_libdir=${exec_prefix}/lib' >> $mcs_topdir/build/config.make
-    echo 'MCS_FLAGS = $(PLATFORM_DEBUG_FLAGS)' >> $mcs_topdir/build/config.make
     echo 'IL_FLAGS = /debug' >> $mcs_topdir/build/config.make
     echo "RUNTIME = $mono_build_root/runtime/mono-wrapper" >> $mcs_topdir/build/config.make
     echo "ILDISASM = $mono_build_root/runtime/monodis-wrapper" >> $mcs_topdir/build/config.make
@@ -3221,7 +3265,6 @@ echo "
        oprofile:      $OPROFILE
        BigArrays:     $enable_big_arrays
        DTrace:        $enable_dtrace
-       Parallel Mark: $enable_parallel_mark
        LLVM Back End: $enable_llvm (dynamically loaded: $enable_loadedllvm)
 
     Libraries: