Rename configure.in -> configure.ac. Based on PR #976.
authorAlex Rønne Petersen <alexrp@xamarin.com>
Sun, 25 May 2014 17:00:43 +0000 (19:00 +0200)
committerAlex Rønne Petersen <alexrp@xamarin.com>
Sun, 25 May 2014 17:04:06 +0000 (19:04 +0200)
19 files changed:
.gitattributes
Makefile.am
autogen.sh
build-mingw32.sh
configure.ac [new file with mode: 0644]
configure.in [deleted file]
libgc/Makefile.direct
libgc/README.Mono
libgc/autogen.sh
libgc/configure.ac [new file with mode: 0644]
libgc/configure.in [deleted file]
libgc/doc/README
libgc/doc/README.changes
libgc/version.h
mono/io-layer/io.c
mono/metadata/Makefile.am.in
mono/utils/atomic.h
mono/utils/gc_wrapper.h
winconfig.h

index c7e0c474a2dcaab7cec15a4004a7f66ffa893f44..5c4cb01ff15ecaa8cc8e61dd4101ee6985956522 100644 (file)
@@ -1,5 +1,5 @@
 # ensure LF endings on all checkouts
-configure.in crlf=input
+configure.ac crlf=input
 
 # ensure native line endings on checkout
 *.c    crlf
index 30f8cdef0f477fde761d3e515ed5b9faf9aa343e..aa4bd78da9fb33e04fc70cc0b4ea1b5de863da99 100644 (file)
@@ -160,9 +160,9 @@ package-inputs:
        done
        echo "</root>" >> msvc/scripts/order.xml
 
-# Update llvm version in configure.in to the output of $LLVM_DIR/bin/llvm-config --version
+# Update llvm version in configure.ac to the output of $LLVM_DIR/bin/llvm-config --version
 update-llvm-version:
        if test "x$$LLVM_DIR" = "x"; then echo "Set the make variable LLVM_DIR to the directory containing the LLVM installation."; exit 1; fi
-       REV=`$(LLVM_DIR)/bin/llvm-config --version` && sed -e "s,expected_llvm_version=.*,expected_llvm_version=\"$$REV\"," < configure.in > tmp && mv tmp configure.in && echo "Version set to $$REV."
+       REV=`$(LLVM_DIR)/bin/llvm-config --version` && sed -e "s,expected_llvm_version=.*,expected_llvm_version=\"$$REV\"," < configure.ac > tmp && mv tmp configure.ac && echo "Version set to $$REV."
 
 
index a576ed6672afab5a9697e610ce8b6a9e0265b208..5213ecffd3c8f41d5c323cbbb2104d1a4663380f 100755 (executable)
@@ -37,7 +37,7 @@ if [ -z "$LIBTOOL" ]; then
   fi
 fi
 
-(grep "^AM_PROG_LIBTOOL" $srcdir/configure.in >/dev/null) && {
+(grep "^AM_PROG_LIBTOOL" $srcdir/configure.ac >/dev/null) && {
   ($LIBTOOL --version) < /dev/null > /dev/null 2>&1 || {
     echo
     echo "**Error**: You must have \`libtool' installed to compile Mono."
@@ -47,8 +47,8 @@ fi
   }
 }
 
-grep "^AM_GNU_GETTEXT" $srcdir/configure.in >/dev/null && {
-  grep "sed.*POTFILES" $srcdir/configure.in >/dev/null || \
+grep "^AM_GNU_GETTEXT" $srcdir/configure.ac >/dev/null && {
+  grep "sed.*POTFILES" $srcdir/configure.ac >/dev/null || \
   (gettext --version) < /dev/null > /dev/null 2>&1 || {
     echo
     echo "**Error**: You must have \`gettext' installed to compile Mono."
@@ -95,7 +95,7 @@ xlc )
 esac
 
 
-if grep "^AM_PROG_LIBTOOL" configure.in >/dev/null; then
+if grep "^AM_PROG_LIBTOOL" configure.ac >/dev/null; then
   if test -z "$NO_LIBTOOLIZE" ; then 
     echo "Running libtoolize..."
     ${LIBTOOL}ize --force --copy
@@ -138,7 +138,7 @@ aclocal -Wnone -I m4 -I . $ACLOCAL_FLAGS || {
   exit 1
 }
 
-if grep "^AC_CONFIG_HEADERS" configure.in >/dev/null; then
+if grep "^AC_CONFIG_HEADERS" configure.ac >/dev/null; then
   echo "Running autoheader..."
   autoheader || { echo "**Error**: autoheader failed."; exit 1; }
 fi
index 8bcb5ff973c1eb516b0550121872b754aef841ee..4c8ed8c1dc4f6e04ae258737d01c76442172c609 100755 (executable)
@@ -57,7 +57,7 @@ function setup ()
     CROSS_DLL_DIR="$CROSS_DIR/bin"
     PATH=$CROSS_BIN_DIR:$PATH
 
-    MONO_VERSION=`grep AC_INIT configure.in | cut -d ',' -f 2|tr -d '\[ \]'`
+    MONO_VERSION=`grep AC_INIT configure.ac | cut -d ',' -f 2|tr -d '\[ \]'`
     
     if [ -d ./.git ]; then
        MONO_GIT_COMMIT="`git log -1 --format=format:%t`"
diff --git a/configure.ac b/configure.ac
new file mode 100644 (file)
index 0000000..dbea6ae
--- /dev/null
@@ -0,0 +1,3791 @@
+# Process this file with autoconf to produce a configure script.
+#AC_PREREQ([2.62])
+
+AC_INIT(mono, [3.4.1],
+        [http://bugzilla.xamarin.com/enter_bug.cgi?classification=Mono])
+
+AC_CONFIG_SRCDIR([README.md])
+AC_CONFIG_MACRO_DIR([m4])
+AC_CANONICAL_SYSTEM
+AC_CANONICAL_HOST
+
+# Gross hack to enable 'make dist' on automake 1.9+tar 1.14.
+# The extra brackets are to foil regex-based scans.
+m4_ifdef([_A][M_PROG_TAR],[_A][M_SET_OPTION([tar-ustar])])
+
+AM_INIT_AUTOMAKE([1.9 dist-bzip2 tar-ustar no-dist-gzip foreign subdir-objects])
+AC_CONFIG_HEADERS([config.h])
+AM_MAINTAINER_MODE
+
+API_VER=2.0
+AC_SUBST(API_VER)
+
+AC_PROG_LN_S
+
+m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
+
+case $host_os in
+*cygwin* )
+                echo "Run configure using ./configure --host=i686-pc-mingw32"
+                exit 1
+esac
+
+# In case of cygwin, override LN_S, irrespective of what it determines.
+# The build uses cygwin, but the actual runtime doesn't.
+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_configure_args=
+
+if test -d $srcdir/libgc ; then
+  gc_default=included
+else
+  gc_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
+CFLAGS_FOR_LIBGC=$CFLAGS
+CPPFLAGS_FOR_EGLIB=$CPPFLAGS
+CFLAGS_FOR_EGLIB=$CFLAGS
+
+#
+# These are the flags that need to be stored in the mono.pc file for 
+# compiling code that will embed Mono
+#
+libmono_cflags=""
+libmono_ldflags=""
+AC_SUBST(libmono_cflags)
+AC_SUBST(libmono_ldflags)
+
+# Variable to have relocatable .pc files (lib, or lib64)
+reloc_libdir=`basename ${libdir}`
+AC_SUBST(reloc_libdir)
+
+dnl if linker handles the version script
+no_version_script=no
+
+# Set to yes if Unix sockets cannot be created in an anonymous namespace
+need_link_unlink=no
+
+#Set to extra linker flags to be passed to the runtime binaries (mono /mono-sgen)
+extra_runtime_ldflags=""
+
+# Thread configuration inspired by sleepycat's db
+AC_MSG_CHECKING([host platform characteristics])
+libgc_threads=no
+has_dtrace=no
+parallel_mark=yes
+ikvm_native=yes
+
+case "$host" in
+       powerpc*-*-linux*)
+               # https://bugzilla.novell.com/show_bug.cgi?id=504411
+               disable_munmap=yes
+       ;;
+esac
+
+host_win32=no
+target_win32=no
+platform_android=no
+platform_darwin=no
+case "$host" in
+       *-mingw*|*-*-cygwin*)
+               AC_DEFINE(HOST_WIN32,1,[Host Platform is Win32])
+               AC_DEFINE(DISABLE_PORTABILITY,1,[Disable the io-portability layer])
+               AC_DEFINE(PLATFORM_NO_SYMLINKS,1,[This platform does not support symlinks])
+               host_win32=yes
+               mono_cv_clang=no
+               if test "x$cross_compiling" = "xno"; then
+                       target_win32=yes
+                       if test "x$host" == "x$build" -a "x$host" == "x$target"; then
+                               AC_DEFINE(TARGET_WIN32,1,[Target OS is Win32])
+                       fi
+               else
+                       target_win32=yes
+                       AC_DEFINE(TARGET_WIN32,1,[Target OS is Win32/MinGW])
+                       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"
+               libmono_cflags="-mms-bitfields -mwindows"
+               libmono_ldflags="-mms-bitfields -mwindows"
+               libdl=
+               libgc_threads=win32
+               gc_default=included
+               with_sigaltstack=no
+               LN_S=cp
+               # This forces libgc to use the DllMain based thread registration code on win32
+               libgc_configure_args="$libgc_configure_args --enable-win32-dllmain=yes"
+               ;;
+       *-*-*netbsd*)
+               host_win32=no
+               CPPFLAGS="$CPPFLAGS -D_REENTRANT -DGC_NETBSD_THREADS -D_GNU_SOURCE"
+               libmono_cflags="-D_REENTRANT"
+               LDFLAGS="$LDFLAGS -pthread"
+               CPPFLAGS="$CPPFLAGS -DPLATFORM_BSD"
+               libmono_ldflags="-pthread"
+               need_link_unlink=yes
+               libdl="-ldl"
+               libgc_threads=pthreads
+               with_sigaltstack=no
+               use_sigposix=yes
+               ;;
+       *-*-*freebsd*)
+               host_win32=no
+               if test "x$PTHREAD_CFLAGS" = "x"; then
+                       CPPFLAGS="$CPPFLAGS -DGC_FREEBSD_THREADS"
+                       libmono_cflags=
+               else
+                       CPPFLAGS="$CPPFLAGS $PTHREAD_CFLAGS -DGC_FREEBSD_THREADS"
+                       libmono_cflags="$PTHREAD_CFLAGS"
+               fi
+               if test "x$PTHREAD_LIBS" = "x"; then
+                       LDFLAGS="$LDFLAGS -pthread -L/usr/local/lib"
+                       libmono_ldflags="-pthread"
+               else
+                       LDFLAGS="$LDFLAGS $PTHREAD_LIBS -L/usr/local/lib"
+                       libmono_ldflags="$PTHREAD_LIBS"
+               fi
+               CPPFLAGS="$CPPFLAGS -DPLATFORM_BSD"
+               need_link_unlink=yes
+               AC_DEFINE(PTHREAD_POINTER_ID, 1, [pthread is a pointer])
+               libdl=
+               libgc_threads=pthreads
+               use_sigposix=yes
+               has_dtrace=yes
+               ;;
+       *-*-*openbsd*)
+               host_win32=no
+               CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE -DGC_OPENBSD_THREADS -DPLATFORM_BSD -D_REENTRANT -DUSE_MMAP"
+               if test "x$disable_munmap" != "xyes"; then
+               CPPFLAGS="$CPPFLAGS -DUSE_MUNMAP"
+               fi
+               libmono_cflags="-D_THREAD_SAFE -D_REENTRANT"
+               LDFLAGS="$LDFLAGS -pthread"
+               need_link_unlink=yes
+               AC_DEFINE(PTHREAD_POINTER_ID)
+               libdl=
+               gc_default=boehm
+               libgc_threads=pthreads
+               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"
+
+               # The configure check can't detect this
+               AC_DEFINE(HAVE_LARGE_FILE_SUPPORT, 1, [Have large file support])
+
+               # to bypass the underscore linker check, can't work when cross-compiling
+               mono_cv_uscore=yes
+               mono_cv_clang=no
+               ;;
+       *-*-linux*)
+               host_win32=no
+               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
+               if test "x$cross_compiling" != "xno"; then
+                       # to bypass the underscore linker check, not
+                       # available during cross-compilation
+                       mono_cv_uscore=no
+                fi
+               case "$host" in
+               aarch64-*)
+                       support_boehm=no
+                       with_gc=sgen
+                       ;;
+               esac
+               ;;
+       *-*-nacl*)
+               host_win32=no
+               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=
+               libgc_threads=pthreads
+               gc_default=boehm
+               use_sigposix=yes
+               ikvm_native=no
+               AC_DEFINE(DISABLE_SOCKETS,1,[Disable sockets support])
+               AC_DEFINE(DISABLE_ATTACH, 1, [Disable agent attach support])
+               ;;
+       *-*-hpux*)
+               host_win32=no
+               CPPFLAGS="$CPPFLAGS -DGC_HPUX_THREADS -D_HPUX_SOURCE -D_XOPEN_SOURCE_EXTENDED -D_REENTRANT"
+               # +ESdbgasm only valid on bundled cc on RISC
+               # silently ignored for ia64
+               if test $GCC != "yes"; then
+                       CFLAGS="$CFLAGS +ESdbgasm"
+                       # Arrange for run-time dereferencing of null
+                       # pointers to produce a SIGSEGV signal.
+                       LDFLAGS="$LDFLAGS -z"
+               fi
+               CFLAGS="$CFLAGS +ESdbgasm"
+               LDFLAGS="$LDFLAGS -z"
+               libmono_cflags="-D_REENTRANT"
+               libmono_ldflags="-lpthread"
+               libgc_threads=pthreads
+               need_link_unlink=yes
+               use_sigposix=yes
+               ;;
+       *-*-solaris*)
+               host_win32=no
+               CPPFLAGS="$CPPFLAGS -DGC_SOLARIS_THREADS -DGC_SOLARIS_PTHREADS -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DUSE_MMAP -DUSE_MUNMAP -DPLATFORM_SOLARIS"
+               need_link_unlink=yes
+               libmono_cflags="-D_REENTRANT"
+               libgc_threads=pthreads
+               # This doesn't seem to work on solaris/x86, but the configure test runs
+               with_tls=pthread
+               has_dtrace=yes
+               use_sigposix=yes
+               enable_solaris_tar_check=yes
+               ;;
+       *-*-darwin*)
+               parallel_mark="Disabled_Currently_Hangs_On_MacOSX"
+               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 -DGetCurrentProcess=MonoGetCurrentProcess -DGetCurrentThread=MonoGetCurrentThread -DCreateEvent=MonoCreateEvent"
+               libmono_cflags="-D_THREAD_SAFE"
+               need_link_unlink=yes
+               AC_DEFINE(PTHREAD_POINTER_ID)
+               AC_DEFINE(USE_MACH_SEMA, 1, [...])
+               no_version_script=yes
+               libdl=
+               libgc_threads=pthreads
+               has_dtrace=yes
+               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-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 and newer config.guess reports as this
+                       i*86-*-darwin*)
+                               BROKEN_DARWIN_FLAGS="-arch i386 -D_XOPEN_SOURCE"
+                               BROKEN_DARWIN_CPPFLAGS="-D_XOPEN_SOURCE"
+                               CPPFLAGS="$CPPFLAGS $BROKEN_DARWIN_CPPFLAGS"
+                               CFLAGS="$CFLAGS $BROKEN_DARWIN_FLAGS"
+                               CXXFLAGS="$CXXFLAGS $BROKEN_DARWIN_FLAGS"
+                               CCASFLAGS="$CCASFLAGS $BROKEN_DARWIN_FLAGS"
+                               CPPFLAGS_FOR_LIBGC="$CPPFLAGS_FOR_LIBGC $BROKEN_DARWIN_CPPFLAGS"
+                               CFLAGS_FOR_LIBGC="$CFLAGS_FOR_LIBGC $BROKEN_DARWIN_FLAGS"
+                               CPPFLAGS_FOR_EGLIB="$CPPFLAGS_FOR_EGLIB $BROKEN_DARWIN_CPPFLAGS"
+                               CFLAGS_FOR_EGLIB="$CFLAGS_FOR_EGLIB $BROKEN_DARWIN_FLAGS"
+                               ;;
+                       x*64-*-darwin*)
+                               ;;
+                       arm*-darwin*)
+                               has_dtrace=no
+                               ;;                      
+               esac
+               ;;
+       *-*-haiku*)
+               host_win32=no
+               CPPFLAGS="$CPPFLAGS -D_REENTRANT -D_THREAD_SAFE"
+               libmono_cflags="-D_REENTRANT -D_THREAD_SAFE"
+               libdl=
+               LIBS="$LIBS -lnetwork"
+               need_link_unlink=yes
+               AC_DEFINE(PTHREAD_POINTER_ID)
+               libgc_threads=pthreads
+               use_sigposix=yes
+               ;;
+       *)
+               AC_MSG_WARN([*** Please add $host to configure.ac checks!])
+               host_win32=no
+               libdl="-ldl"
+               ;;
+esac
+AC_MSG_RESULT(ok)
+
+if test x$need_link_unlink = xyes; then
+   AC_DEFINE(NEED_LINK_UNLINK, 1, [Define if Unix sockets cannot be created in an anonymous namespace])
+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_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
+AC_CHECK_TOOL(CXX, g++, g++)
+AC_PROG_CXX
+AM_PROG_AS
+AC_PROG_INSTALL
+AC_PROG_AWK
+AM_PROG_CC_C_O
+dnl We should use AM_PROG_AS, but it's not available on automake/aclocal 1.4
+: ${CCAS='$(CC)'}
+# Set ASFLAGS if not already set.
+: ${CCASFLAGS='$(CFLAGS)'}
+AC_SUBST(CCAS)
+AC_SUBST(CCASFLAGS)
+
+# AC_PROG_CXX helpfully sets CXX to g++ even if no c++ compiler is found so check
+# GXX instead. See http://lists.gnu.org/archive/html/bug-autoconf/2002-04/msg00056.html
+if test "x$CXX" = "xg++"; then
+       if test "x$GXX" != "xyes"; then
+               # automake/libtool is so broken, it requires g++ even if the c++ sources
+               # are inside automake conditionals
+               AC_MSG_ERROR([You need to install g++])
+       fi
+fi
+
+dnl may require a specific autoconf version
+dnl AC_PROG_CC_FOR_BUILD
+dnl CC_FOR_BUILD not automatically detected
+CC_FOR_BUILD=$CC
+CFLAGS_FOR_BUILD=$CFLAGS
+BUILD_EXEEXT=
+if test "x$cross_compiling" = "xyes"; then
+       CC_FOR_BUILD=cc
+       CFLAGS_FOR_BUILD=
+       BUILD_EXEEXT=""
+fi
+AC_SUBST(CC_FOR_BUILD)
+AC_SUBST(CFLAGS_FOR_BUILD)
+AC_SUBST(HOST_CC)
+AC_SUBST(BUILD_EXEEXT)
+
+AM_CONDITIONAL(CROSS_COMPILING, [test x$cross_compiling = xyes])
+AM_CONDITIONAL(USE_BATCH_FILES, [test x$host_win32 = xyes -a x$cross_compiling = xyes])
+
+# Set STDC_HEADERS
+AC_HEADER_STDC
+AC_LIBTOOL_WIN32_DLL
+# This causes monodis to not link correctly
+#AC_DISABLE_FAST_INSTALL
+AM_PROG_LIBTOOL
+# Use dolt (http://dolt.freedesktop.org/) instead of libtool for building.
+DOLT
+
+export_ldflags=`(./libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh`
+AC_SUBST(export_ldflags)
+
+# Test whenever ld supports -version-script
+AC_PROG_LD
+AC_PROG_LD_GNU
+if test "x$lt_cv_prog_gnu_ld" = "xno"; then
+   no_version_script=yes
+fi
+
+AM_ICONV()
+
+AM_CONDITIONAL(NO_VERSION_SCRIPT, test x$no_version_script = xyes)
+
+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 libproc.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)
+AC_CHECK_HEADERS([linux/netlink.h linux/rtnetlink.h],
+                  [], [], [#include <stddef.h>
+                 #include <sys/socket.h>
+                 #include <linux/socket.h>])
+
+AC_CHECK_HEADERS(sys/user.h, [], [],
+[
+#ifdef HAVE_SYS_PARAM_H
+# include <sys/param.h>
+#endif
+])
+
+AC_CHECK_HEADER(zlib.h, [have_zlib=yes], [have_zlib=no])
+if test x$have_zlib = xyes; then
+   AC_TRY_COMPILE([#include <zlib.h>], [
+   #if defined(ZLIB_VERNUM) && (ZLIB_VERNUM >= 0x1230)
+   return 0;
+   #else
+   #error No good zlib found
+   #endif
+   ],[
+       AC_MSG_RESULT(Using system zlib)
+       zlib_msg="system zlib"
+       AC_DEFINE(HAVE_SYS_ZLIB,1,[Have system zlib])
+   ],[
+       AC_MSG_RESULT(Using embedded zlib)
+       have_zlib=no
+       zlib_msg="bundled zlib"
+   ])
+fi
+
+AM_CONDITIONAL(HAVE_ZLIB, test x$have_zlib = xyes)
+AC_DEFINE(HAVE_ZLIB,1,[Have system zlib])
+
+# for mono/metadata/debug-symfile.c
+AC_CHECK_HEADERS(elf.h)
+
+# for support
+AC_CHECK_HEADERS(poll.h)
+AC_CHECK_HEADERS(sys/poll.h)
+AC_CHECK_HEADERS(sys/wait.h)
+AC_CHECK_HEADERS(grp.h)
+AC_CHECK_HEADERS(syslog.h)
+
+# for mono/dis
+AC_CHECK_HEADERS(wchar.h)
+AC_CHECK_HEADERS(ieeefp.h)
+AC_MSG_CHECKING(for isinf)
+AC_TRY_LINK([#include <math.h>], [
+       int f = isinf (1);
+], [
+       AC_MSG_RESULT(yes)
+       AC_DEFINE(HAVE_ISINF, 1, [isinf available])
+], [
+       # We'll have to use signals
+       AC_MSG_RESULT(no)
+])
+# mingw
+AC_CHECK_FUNCS(_finite, , AC_MSG_CHECKING(for _finite in math.h)
+       AC_TRY_LINK([#include <math.h>], 
+       [ _finite(0.0); ], 
+       AC_DEFINE(HAVE__FINITE, 1, [Have _finite in -lm]) AC_MSG_RESULT(yes),
+       AC_MSG_RESULT(no)))
+
+# for Linux statfs support
+AC_CHECK_HEADERS(linux/magic.h)
+
+# not 64 bit clean in cross-compile
+AC_CHECK_SIZEOF(void *, 4)
+
+AC_CACHE_CHECK([for clang],
+       mono_cv_clang,[
+       AC_TRY_COMPILE([], [
+               #ifdef __clang__
+               #else
+               #error "FAILED"
+               #endif
+               return 0;
+       ],
+       [mono_cv_clang=yes],
+       [mono_cv_clang=no],
+       [])
+])
+
+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 -Wno-switch -Wno-switch-enum -Wno-unused-value'
+               # The runtime code does not respect ANSI C strict aliasing rules
+               CFLAGS="$CFLAGS -fno-strict-aliasing"
+
+               # We rely on signed overflow to behave
+               CFLAGS="$CFLAGS -fwrapv"
+
+               ORIG_CFLAGS=$CFLAGS
+               CFLAGS="$CFLAGS -Wdeclaration-after-statement"
+               AC_MSG_CHECKING(for -Wdeclaration-after-statement option to gcc)
+               AC_TRY_COMPILE([],[
+                               return 0;
+               ], [
+                  AC_MSG_RESULT(yes)
+               ], [
+                  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 -Werror"
+               AC_MSG_CHECKING(for -Wno-unused-but-set-variable option to gcc)
+               AC_TRY_COMPILE([],[
+                               return 0;
+               ], [
+                  AC_MSG_RESULT(yes)
+                  CFLAGS="$ORIG_CFLAGS -Wno-unused-but-set-variable"
+               ], [
+                  AC_MSG_RESULT(no)
+                  CFLAGS=$ORIG_CFLAGS
+               ])
+
+               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"
+               fi
+else
+       # The Sun Forte compiler complains about inline functions that access static variables
+       # so disable all inlining.
+       case "$host" in
+       *-*-solaris*)
+               CFLAGS="$CFLAGS -Dinline="
+               ;;
+       esac
+fi
+CFLAGS="$CFLAGS -g $WARN"
+CFLAGS_FOR_LIBGC="$CFLAGS_FOR_LIBGC -g"
+
+# Where's the 'mcs' source tree?
+if test -d $srcdir/mcs; then
+  mcsdir=mcs
+else
+  mcsdir=../mcs
+fi
+
+AC_ARG_WITH(mcs-path, [  --with-mcs-path=/path/to/mcs      Specify an alternate mcs source tree],
+       if test x$with_mcs_path != "x" -a -d $with_mcs_path ; then
+               mcsdir=$with_mcs_path
+       fi
+)
+
+AC_ARG_WITH(jumptables, [  --with-jumptables=yes,no      enable/disable support for jumptables (ARM-only for now) (defaults to no)],[],[with_jumptables=no])
+
+#
+# A sanity check to catch cases where the package was unpacked
+# with an ancient tar program (Solaris)
+#
+AC_ARG_ENABLE(solaris-tar-check,
+[  --disable-solaris-tar-check    disable solaris tar check],
+   do_solaris_tar_check=no, do_solaris_tar_check=yes)
+
+if test x"$do_solaris_tar_check" = xyes -a x"$enable_solaris_tar_check" = xyes; then
+       AC_MSG_CHECKING(integrity of package)
+       if test -f $mcsdir/class/System.Runtime.Serialization.Formatters.Soap/System.Runtime.Serialization.Formatters.Soap/SoapTypeMapper.cs
+       then
+               AC_MSG_RESULT(ok)
+       else
+               errorm="Your mono distribution is incomplete;  if unpacking from a tar file, make sure you use GNU tar;  see http://www.mono-project.com/IncompletePackage for more details"
+               AC_MSG_ERROR([$errorm])
+       fi
+fi
+
+if test "x$with_mcs_path" != "x"; then
+mcs_topdir=$(cd "$mcsdir" && pwd)
+mcs_topdir_from_srcdir=$mcs_topdir
+else
+mcs_topdir=$(cd "$srcdir/$mcsdir" && pwd)
+mcs_topdir_from_srcdir='$(top_builddir)'/$mcsdir
+fi
+
+# Convert mcs_topdir* paths to Windows syntax.
+if test x$cross_compiling$host_win32 = xnoyes; then
+  mcs_topdir=$(cygpath -m $mcs_topdir)
+  case $mcs_topdir_from_srcdir in
+    /cygdrive/*)
+       mcs_topdir_from_srcdir=$(cygpath -m $mcs_topdir_from_srcdir)
+       ;;
+  esac
+fi
+
+AC_SUBST([mcs_topdir])
+AC_SUBST([mcs_topdir_from_srcdir])
+
+# Where's the 'olive' source tree?
+if test -d $srcdir/olive; then
+  olivedir=olive
+else
+  olivedir=../olive
+fi
+
+if test -d $srcdir/$olivedir; then
+olive_topdir='$(top_srcdir)/'$olivedir
+fi
+
+# gettext: prepare the translation directories. 
+# we do not configure the full gettext, as we consume it dynamically from C#
+AM_PO_SUBDIRS
+
+if test "x$USE_NLS" = "xyes"; then
+   AC_CHECK_PROG(HAVE_MSGFMT, msgfmt,yes,no)
+
+   if test "x$HAVE_MSGFMT" = "xno"; then
+         AC_MSG_ERROR([msgfmt not found. You need to install the 'gettext' package, or pass --enable-nls=no to configure.])
+   fi
+fi
+
+AC_ARG_WITH([libgdiplus], 
+       [  --with-libgdiplus=installed|sibling|<path>   Override the libgdiplus used for System.Drawing tests (defaults to installed)], 
+       [], [with_libgdiplus=installed])
+
+case $with_libgdiplus in
+no|installed) libgdiplus_loc= ;;
+yes|sibling) libgdiplus_loc=`cd ../libgdiplus && pwd`/src/libgdiplus.la ;;
+/*) libgdiplus_loc=$with_libgdiplus ;;
+*) libgdiplus_loc=`pwd`/$with_libgdiplus ;;
+esac
+AC_SUBST([libgdiplus_loc])
+
+AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
+
+pkg_config_path=
+AC_ARG_WITH(crosspkgdir, [  --with-crosspkgdir=/path/to/pkg-config/dir      Change pkg-config dir to custom dir],
+       if test x$with_crosspkgdir = "x"; then
+               if test -s $PKG_CONFIG_PATH; then
+                       pkg_config_path=$PKG_CONFIG_PATH
+               fi
+       else
+               pkg_config_path=$with_crosspkgdir
+               PKG_CONFIG_PATH=$pkg_config_path
+               export PKG_CONFIG_PATH
+       fi
+)
+
+ac_configure_args="$ac_configure_args \"CPPFLAGS_FOR_EGLIB=$EGLIB_CPPFLAGS\" \"CFLAGS_FOR_EGLIB=$CFLAGS_FOR_EGLIB\""
+AC_CONFIG_SUBDIRS(eglib)
+
+GLIB_CFLAGS='-I$(top_srcdir)/eglib/src -I$(top_builddir)/eglib/src'
+GLIB_LIBS='-L$(top_builddir)/eglib/src -leglib -lm'
+BUILD_GLIB_CFLAGS="$GLIB_CFLAGS"
+BUILD_GLIB_LIBS="$GLIB_LIBS"
+GMODULE_CFLAGS="$GLIB_CFLAGS"
+GMODULE_LIBS="$GLIB_LIBS"
+  
+AC_SUBST(GLIB_CFLAGS)
+AC_SUBST(GLIB_LIBS)
+AC_SUBST(GMODULE_CFLAGS)
+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])
+
+# Enable support for using sigaltstack for SIGSEGV and stack overflow handling
+# This does not work on some platforms (bug #55253)
+AC_ARG_WITH(sigaltstack, [  --with-sigaltstack=yes,no      enable/disable support for sigaltstack (defaults to yes)],[],[with_sigaltstack=yes])
+
+AC_ARG_WITH(static_mono, [  --with-static_mono=yes,no      link mono statically to libmono (faster) (defaults to yes)],[],[with_static_mono=yes])
+AC_ARG_WITH(shared_mono, [  --with-shared_mono=yes,no      build a shared libmono library (defaults to yes)],[],[with_shared_mono=yes])
+# Same as --with-shared_mono=no
+AC_ARG_ENABLE(libraries, [  --disable-libraries disable the build of libmono], enable_libraries=$enableval, enable_libraries=yes)
+
+if test "x$enable_static" = "xno"; then
+   with_static_mono=no
+fi
+
+if test "x$enable_shared" = "xno"; then
+   with_shared_mono=no
+fi
+
+if test "x$enable_libraries" = "xno"; then
+   with_shared_mono=no
+fi
+
+AM_CONDITIONAL(DISABLE_LIBRARIES, test x$enable_libraries = xno)
+
+case $host in
+*nacl* ) with_shared_mono=yes;;
+esac
+
+if test "x$host_win32" = "xyes"; then
+   # Boehm GC requires the runtime to be in its own dll
+   with_static_mono=no
+fi
+
+AM_CONDITIONAL(STATIC_MONO, test x$with_static_mono != xno)
+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" -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([], [
+               return 0;
+       ], [
+          AC_MSG_RESULT(yes)
+          # Pass it to libgc as well
+          CFLAGS_FOR_LIBGC="$CFLAGS_FOR_LIBGC -mno-tls-direct-seg-refs"
+       ], [
+          AC_MSG_RESULT(no)
+          CFLAGS=$ORIG_CFLAGS
+       ])
+fi
+
+AC_ARG_ENABLE(small-config, [  --enable-small-config Enable tweaks to reduce requirements (and capabilities)], enable_small_config=$enableval, enable_small_config=no)
+
+if test x$enable_small_config = xyes; then
+       AC_DEFINE(MONO_SMALL_CONFIG,1,[Reduce runtime requirements (and capabilities)])
+       CFLAGS_FOR_LIBGC="$CFLAGS_FOR_LIBGC -DSMALL_CONFIG"
+fi
+
+AC_ARG_ENABLE(system-aot, [  --enable-system-aot  Enable the Ahead-Of-Time compilation of system assemblies during the build (on by default on some platforms)], enable_system_aot=$enableval, enable_system_aot=default)
+
+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.],
+[
+       for feature in `echo "$enable_minimal" | sed -e "s/,/ /g"`; do
+               eval "mono_feature_disable_$feature='yes'"
+       done
+       DISABLED_FEATURES=$enable_minimal
+       disabled="Disabled:      $enable_minimal"
+],[])
+
+AC_DEFINE_UNQUOTED(DISABLED_FEATURES, "$DISABLED_FEATURES", [String of disabled features])
+
+if test "x$mono_feature_disable_aot" = "xyes"; then
+       AC_DEFINE(DISABLE_AOT_COMPILER, 1, [Disable AOT Compiler])
+       AC_MSG_NOTICE([Disabled AOT compiler])
+fi
+
+if test "x$mono_feature_disable_profiler" = "xyes"; then
+       AC_DEFINE(DISABLE_PROFILER, 1, [Disable default profiler support])
+       AC_MSG_NOTICE([Disabled support for the profiler])
+fi
+AM_CONDITIONAL(DISABLE_PROFILER, test x$mono_feature_disable_profiler = xyes)
+
+if test "x$mono_feature_disable_decimal" = "xyes"; then
+       AC_DEFINE(DISABLE_DECIMAL, 1, [Disable System.Decimal support])
+       AC_MSG_NOTICE([Disabled support for decimal])
+fi
+
+if test "x$mono_feature_disable_pinvoke" = "xyes"; then
+       AC_DEFINE(DISABLE_PINVOKE, 1, [Disable P/Invoke support])
+       AC_MSG_NOTICE([Disabled support for P/Invoke])
+fi
+
+if test "x$mono_feature_disable_debug" = "xyes"; then
+       AC_DEFINE(DISABLE_DEBUG, 1, [Disable runtime debugging support])
+       AC_MSG_NOTICE([Disabled support for runtime debugging])
+fi
+
+if test "x$mono_feature_disable_reflection_emit" = "xyes"; then
+       AC_DEFINE(DISABLE_REFLECTION_EMIT, 1, [Disable reflection emit support])
+       mono_feature_disable_reflection_emit_save=yes
+       AC_MSG_NOTICE([Disabled support for Reflection.Emit])
+fi
+
+if test "x$mono_feature_disable_reflection_emit_save" = "xyes"; then
+       AC_DEFINE(DISABLE_REFLECTION_EMIT_SAVE, 1, [Disable assembly saving support in reflection emit])
+       AC_MSG_NOTICE([Disabled support for Reflection.Emit.Save])
+fi
+
+if test "x$mono_feature_disable_large_code" = "xyes"; then
+       AC_DEFINE(DISABLE_LARGE_CODE, 1, [Disable support for huge assemblies])
+       AC_MSG_NOTICE([Disabled support for large assemblies])
+fi
+
+if test "x$mono_feature_disable_logging" = "xyes"; then
+       AC_DEFINE(DISABLE_LOGGING, 1, [Disable support debug logging])
+       AC_MSG_NOTICE([Disabled support for logging])
+fi
+
+if test "x$mono_feature_disable_com" = "xyes"; then
+       AC_DEFINE(DISABLE_COM, 1, [Disable COM support])
+       AC_MSG_NOTICE([Disabled COM support])
+fi
+
+if test "x$mono_feature_disable_ssa" = "xyes"; then
+       AC_DEFINE(DISABLE_SSA, 1, [Disable advanced SSA JIT optimizations])
+       AC_MSG_NOTICE([Disabled SSA JIT optimizations])
+fi
+
+if test "x$mono_feature_disable_generics" = "xyes"; then
+       AC_DEFINE(DISABLE_GENERICS, 1, [Disable generics support])
+       AC_MSG_NOTICE([Disabled Generics Support])
+fi
+
+if test "x$mono_feature_disable_shadowcopy" = "xyes"; then
+       AC_DEFINE(DISABLE_SHADOW_COPY, 1, [Disable Shadow Copy for AppDomains])
+       AC_MSG_NOTICE([Disabled Shadow copy for AppDomains])
+fi
+
+if test "x$mono_feature_disable_portability" = "xyes"; then
+       AC_DEFINE(DISABLE_PORTABILITY, 1, [Disables the IO portability layer])
+       AC_MSG_NOTICE([Disabled IO Portability layer])
+fi
+
+if test "x$mono_feature_disable_attach" = "xyes"; then
+       AC_DEFINE(DISABLE_ATTACH, 1, [Disable agent attach support])
+       AC_MSG_NOTICE([Disabled agent attach])
+fi
+
+if test "x$mono_feature_disable_full_messages" = "xyes"; then
+       AC_DEFINE(DISABLE_FULL_MESSAGES, 1, [Disables building in the full table of WAPI messages])
+       AC_MSG_NOTICE([Disabled full messages for Win32 errors, only core message strings shipped])
+fi
+
+if test "x$mono_feature_disable_verifier" = "xyes"; then
+       AC_DEFINE(DISABLE_VERIFIER, 1, [Disables the verifier])
+       AC_MSG_NOTICE([Disabled the metadata and IL verifiers])
+fi
+
+if test "x$mono_feature_disable_jit" = "xyes"; then
+       AC_DEFINE(DISABLE_JIT, 1, [Disable the JIT, only full-aot mode will be supported by the runtime.])
+       AC_MSG_NOTICE([Disabled the JIT engine, only full AOT will be supported])
+fi
+
+AM_CONDITIONAL(DISABLE_JIT, test x$mono_feature_disable_jit = xyes)
+
+if test "x$mono_feature_disable_simd" = "xyes"; then
+       AC_DEFINE(DISABLE_SIMD, 1, [Disable SIMD intrinsics related optimizations.])
+       AC_MSG_NOTICE([Disabled SIMD support])
+fi
+
+if test "x$mono_feature_disable_soft_debug" = "xyes"; then
+       AC_DEFINE(DISABLE_SOFT_DEBUG, 1, [Disable Soft Debugger Agent.])
+       AC_MSG_NOTICE([Disabled Soft Debugger.])
+fi
+
+if test "x$mono_feature_disable_perfcounters" = "xyes"; then
+       AC_DEFINE(DISABLE_PERFCOUNTERS, 1, [Disable Performance Counters.])
+       AC_MSG_NOTICE([Disabled Performance Counters.])
+fi
+if test "x$mono_feature_disable_normalization" = "xyes"; then
+       AC_DEFINE(DISABLE_NORMALIZATION, 1, [Disable String normalization support.])
+       AC_MSG_NOTICE([Disabled String normalization support.])
+fi
+
+if test "x$mono_feature_disable_assembly_remapping" = "xyes"; then
+       AC_DEFINE(DISABLE_ASSEMBLY_REMAPPING, 1, [Disable assembly remapping.])
+       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
+
+if test "x$mono_feature_disable_appdomains" = "xyes"; then
+       AC_DEFINE(DISABLE_APPDOMAINS, 1, [Disable support for multiple appdomains.])
+       AC_MSG_NOTICE([Disabled support for multiple appdomains.])
+fi
+
+if test "x$mono_feature_disable_remoting" = "xyes"; then
+       AC_DEFINE(DISABLE_REMOTING, 1, [Disable remoting support (This disables type proxies and make com non-functional)])
+       AC_MSG_NOTICE([Disabled remoting])
+fi
+
+if test "x$mono_feature_disable_security" = "xyes"; then
+       AC_DEFINE(DISABLE_SECURITY, 1, [Disable CAS/CoreCLR security])
+       AC_MSG_NOTICE([Disabled CAS/CoreCLR security manager (used e.g. for Moonlight)])
+fi
+
+if test "x$mono_feature_disable_sgen_remset" = "xyes"; then
+       AC_DEFINE(DISABLE_SGEN_REMSET, 1, [Disable wbarrier=remset support in SGEN.])
+       AC_MSG_NOTICE([Disabled wbarrier=remset support in SGEN.])
+fi
+
+if test "x$mono_feature_disable_sgen_marksweep_par" = "xyes"; then
+       AC_DEFINE(DISABLE_SGEN_MAJOR_MARKSWEEP_PAR, 1, [Disable major=marksweep-par support in SGEN.])
+       AC_MSG_NOTICE([Disabled major=marksweep-par support in SGEN.])
+fi
+
+if test "x$mono_feature_disable_sgen_marksweep_fixed" = "xyes"; then
+       AC_DEFINE(DISABLE_SGEN_MAJOR_MARKSWEEP_FIXED, 1, [Disable major=marksweep-fixed support in SGEN.])
+       AC_MSG_NOTICE([Disabled major=marksweep-fixed support in SGEN.])
+fi
+
+if test "x$mono_feature_disable_sgen_marksweep_fixed_par" = "xyes"; then
+       AC_DEFINE(DISABLE_SGEN_MAJOR_MARKSWEEP_FIXED_PAR, 1, [Disable major=marksweep-fixed-par support in SGEN.])
+       AC_MSG_NOTICE([Disabled major=marksweep-fixed-par support in SGEN.])
+fi
+
+if test "x$mono_feature_disable_sgen_copying" = "xyes"; then
+       AC_DEFINE(DISABLE_SGEN_MAJOR_COPYING, 1, [Disable major=copying support in SGEN.])
+       AC_MSG_NOTICE([Disabled major=copying support in SGEN.])
+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)
+
+has_extension_module=no
+AC_ARG_ENABLE(extension-module, [  --enable-extension-module=LIST enable the core-extensions from LIST],
+[
+       for extension in `echo "$enable_extension_module" | sed -e "s/,/ /g"`; do
+               if test x$extension = xdefault ; then
+                       has_extension_module=yes;
+               fi
+       done
+       if test x$enable_extension_module = xyes; then
+               has_extension_module=yes;
+       fi
+], [])
+
+AM_CONDITIONAL([HAS_EXTENSION_MODULE], [test x$has_extension_module != xno])
+
+if test x$has_extension_module != xno ; then
+       AC_DEFINE([ENABLE_EXTENSION_MODULE], 1, [Extension module enabled])
+       AC_MSG_NOTICE([Enabling mono extension module.])
+fi
+
+AC_ARG_ENABLE(gsharing, [  --enable-gsharing Enable gsharing], enable_gsharing=$enableval, enable_gsharing=no)
+if test x$enable_gsharing = xyes; then
+       AC_DEFINE(ENABLE_GSHAREDVT,1,[Gsharing])
+fi
+
+AC_ARG_ENABLE(native-types, [  --enable-native-types Enable native types], enable_native_types=$enableval, enable_native_types=no)
+if test x$enable_native_types = xyes; then
+       AC_DEFINE(MONO_NATIVE_TYPES,1,[native types])
+fi
+
+AC_MSG_CHECKING(for visibility __attribute__)
+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)
+], [
+   have_visibility_hidden=no
+   AC_MSG_RESULT(no)
+])
+
+AC_MSG_CHECKING(for deprecated __attribute__)
+AC_TRY_COMPILE([
+     int doit (void) __attribute__ ((deprecated));
+     int doit (void) { return 0; }
+], [
+       return 0;
+], [
+   have_deprecated=yes
+   AC_MSG_RESULT(yes)
+], [
+   have_deprecated=no
+   AC_MSG_RESULT(no)
+])
+
+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
+LIBGC_CPPFLAGS=
+LIBGC_LIBS=
+LIBGC_STATIC_LIBS=
+libgc_dir=
+case "x$gc" 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
+               libgc_dir=libgc
+
+               LIBGC_CPPFLAGS='-I$(top_srcdir)/libgc/include'
+               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"
+
+               if test x$target_win32 = xyes; then
+                       BOEHM_DEFINES="$BOEHM_DEFINES -DGC_NOT_DLL"
+                       CFLAGS_FOR_LIBGC="$CFLAGS_FOR_LIBGC -DGC_BUILD -DGC_NOT_DLL"
+               fi
+
+               gc_msg="bundled 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"
+               else
+                       AC_DEFINE_UNQUOTED(DEFAULT_GC_NAME, "Included Boehm (with typed GC)", [GC description])
+               fi
+               ;;
+
+       xsgen)
+               AC_MSG_WARN("Use --with-sgen instead, --with-gc= controls Boehm configuration")
+               ;;
+
+       xnone)
+               AC_MSG_WARN("Compiling mono without GC.")
+               AC_DEFINE_UNQUOTED(DEFAULT_GC_NAME, "none", [GC description])
+               AC_DEFINE(HAVE_NULL_GC,1,[No GC support.])
+               ;;
+       *)
+               AC_MSG_ERROR([Invalid argument to --with-gc.])
+               ;;
+esac
+
+AC_ARG_WITH(large-heap, [  --with-large-heap=yes,no       Enable support for GC heaps larger than 3GB (defaults to no)], [large_heap=$withval], [large_heap=no])
+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)
+AC_SUBST(libgc_dir)
+AC_SUBST(BOEHM_DEFINES)
+
+dnl
+dnl End of libgc checks
+dnl
+
+dnl *************************************
+dnl *** Checks for zero length arrays ***
+dnl *************************************
+AC_MSG_CHECKING(whether $CC supports zero length arrays)
+AC_TRY_COMPILE([
+       struct s {
+               int  length;
+               char data [0];
+       };
+], [], [
+       AC_MSG_RESULT(yes)
+       AC_DEFINE_UNQUOTED(MONO_ZERO_LEN_ARRAY, 0, [Length of zero length arrays])
+], [
+       AC_MSG_RESULT(no)
+       AC_DEFINE_UNQUOTED(MONO_ZERO_LEN_ARRAY, 1, [Length of zero length arrays])
+])
+
+AC_CHECK_HEADERS(nacl/nacl_dyncode.h)
+
+if test x$target_win32 = xno; then
+
+       dnl hires monotonic clock support
+       AC_SEARCH_LIBS(clock_gettime, rt)
+
+       dnl dynamic loader support
+       AC_CHECK_FUNC(dlopen, DL_LIB="",
+               AC_CHECK_LIB(dl, dlopen, DL_LIB="-ldl", dl_support=no)
+       )
+       if test x$dl_support = xno; then
+               AC_MSG_WARN([No dynamic loading support available])
+       else
+               LIBS="$LIBS $DL_LIB"
+               AC_DEFINE(HAVE_DL_LOADER,1,[dlopen-based dynamic loader available])
+               dnl from glib's configure.ac
+               AC_CACHE_CHECK([for preceeding underscore in symbols],
+                       mono_cv_uscore,[
+                       AC_TRY_RUN([#include <dlfcn.h>
+                       int mono_underscore_test (void) { return 42; }
+                       int main() {
+                         void *f1 = (void*)0, *f2 = (void*)0, *handle;
+                         handle = dlopen ((void*)0, 0);
+                         if (handle) {
+                           f1 = dlsym (handle, "mono_underscore_test");
+                           f2 = dlsym (handle, "_mono_underscore_test");
+                         } return (!f2 || f1);
+                       }],
+                               [mono_cv_uscore=yes],
+                               [mono_cv_uscore=no],
+                       [])
+               ])
+               if test "x$mono_cv_uscore" = "xyes"; then
+                       MONO_DL_NEED_USCORE=1
+               else
+                       MONO_DL_NEED_USCORE=0
+               fi
+               AC_SUBST(MONO_DL_NEED_USCORE)
+               AC_CHECK_FUNC(dlerror)
+       fi
+
+       dnl ******************************************************************
+       dnl *** Checks for the IKVM JNI interface library                  ***
+       dnl ******************************************************************
+       AC_ARG_WITH(ikvm-native, [  --with-ikvm-native=yes,no      build the IKVM JNI interface library (defaults to yes)],[with_ikvm_native=$withval],[with_ikvm_native=$ikvm_native])
+
+       ikvm_native_dir=
+       if test x$with_ikvm_native = xyes; then
+               ikvm_native_dir=ikvm-native
+               jdk_headers_found="IKVM Native"
+       fi
+
+       AC_SUBST(ikvm_native_dir)
+
+       AC_CHECK_HEADERS(execinfo.h)
+
+       AC_CHECK_HEADERS(sys/auxv.h)
+
+       AC_CHECK_FUNCS(getgrgid_r)
+       AC_CHECK_FUNCS(getgrnam_r)
+       AC_CHECK_FUNCS(getpwnam_r)
+       AC_CHECK_FUNCS(getpwuid_r)
+       AC_CHECK_FUNCS(getresuid)
+       AC_CHECK_FUNCS(setresuid)
+       AC_CHECK_FUNCS(kqueue)
+       AC_CHECK_FUNCS(backtrace_symbols)
+       AC_CHECK_FUNCS(mkstemp)
+       AC_CHECK_FUNCS(mmap)
+       AC_CHECK_FUNCS(madvise)
+       AC_CHECK_FUNCS(getrusage)
+       AC_CHECK_FUNCS(getpriority)
+       AC_CHECK_FUNCS(setpriority)
+       AC_CHECK_FUNCS(dl_iterate_phdr)
+       AC_CHECK_FUNCS(dladdr)
+       AC_CHECK_FUNCS(sysconf)
+
+       AC_CHECK_FUNCS(sched_setaffinity)
+       AC_CHECK_FUNCS(sched_getcpu)
+
+       dnl ****************************************************************
+       dnl *** Check for sched_setaffinity from glibc versions before   ***
+       dnl *** 2.3.4. The older versions of the function only take 2    ***
+       dnl *** parameters, not 3.                                       ***
+       dnl ***                                                          ***
+       dnl *** Because the interface change was not made in a minor     ***
+       dnl *** version rev, the __GLIBC__ and __GLIBC_MINOR__ macros    ***
+       dnl *** won't always indicate the interface sched_affinity has.  ***
+       dnl ****************************************************************
+       AC_MSG_CHECKING(for sched_setaffinity from glibc < 2.3.4)
+       AC_TRY_COMPILE([#include <sched.h>], [
+            int mask = 1; 
+            sched_setaffinity(0, &mask);
+                       return 0;
+       ], [
+               # Yes, we have it...
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(GLIBC_BEFORE_2_3_4_SCHED_SETAFFINITY, 1, [Have GLIBC_BEFORE_2_3_4_SCHED_SETAFFINITY])
+       ], [
+               # We have the new, three-parameter version
+               AC_MSG_RESULT(no)
+       ])
+
+
+       dnl ******************************************************************
+       dnl *** Check for large file support                               ***
+       dnl *** (If we were using autoconf 2.50 we'd use AC_SYS_LARGEFILE) ***
+       dnl ******************************************************************
+       
+       # Check that off_t can represent 2**63 - 1 correctly, working around
+       # potential compiler bugs.  Defines LARGE_FILE_SUPPORT, adds $1 to
+       # CPPFLAGS and sets $large_offt to yes if the test succeeds
+       large_offt=no
+       AC_DEFUN([LARGE_FILES], [
+               large_CPPFLAGS=$CPPFLAGS
+               CPPFLAGS="$CPPFLAGS $1"
+               AC_TRY_COMPILE([
+                       #include <sys/types.h>
+                       #include <limits.h>
+               ], [
+                       /* Lifted this compile time assert method from: http://www.jaggersoft.com/pubs/CVu11_3.html */
+                       #define COMPILE_TIME_ASSERT(pred) \
+                               switch(0){case 0:case pred:;}
+                       COMPILE_TIME_ASSERT(sizeof(off_t) * CHAR_BIT == 64);
+               ], [
+                       AC_MSG_RESULT(ok)
+                       AC_DEFINE(HAVE_LARGE_FILE_SUPPORT, 1, [Have large file support])
+                       large_CPPFLAGS="$large_CPPFLAGS $1"
+                       large_offt=yes
+               ], [
+                       AC_MSG_RESULT(no)
+               ])
+               CPPFLAGS=$large_CPPFLAGS
+       ])
+
+       AC_MSG_CHECKING(if off_t is 64 bits wide)
+       LARGE_FILES("")
+       if test $large_offt = no; then
+               AC_MSG_CHECKING(if _FILE_OFFSET_BITS=64 gives 64 bit off_t)
+               LARGE_FILES("-D_FILE_OFFSET_BITS=64")
+       fi
+       if test $large_offt = no; then
+               AC_MSG_WARN([No 64 bit file size support available])
+       fi
+       
+       dnl *****************************
+       dnl *** Checks for libsocket  ***
+       dnl *****************************
+       AC_CHECK_LIB(socket, socket, LIBS="$LIBS -lsocket")
+
+       case "$host" in
+               *-*-*freebsd*)
+                       dnl *****************************
+                       dnl *** Checks for libinotify ***
+                       dnl *****************************
+                       AC_CHECK_LIB(inotify, inotify_init, LIBS="$LIBS -linotify")
+       esac
+
+       dnl *******************************
+       dnl *** Checks for MSG_NOSIGNAL ***
+       dnl *******************************
+       AC_MSG_CHECKING(for MSG_NOSIGNAL)
+       AC_TRY_COMPILE([#include <sys/socket.h>], [
+               int f = MSG_NOSIGNAL;
+       ], [
+               # Yes, we have it...
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_MSG_NOSIGNAL, 1, [Have MSG_NOSIGNAL])
+       ], [
+               # We'll have to use signals
+               AC_MSG_RESULT(no)
+       ])
+
+       dnl *****************************
+       dnl *** Checks for IPPROTO_IP ***
+       dnl *****************************
+       AC_MSG_CHECKING(for IPPROTO_IP)
+       AC_TRY_COMPILE([#include <netinet/in.h>], [
+               int level = IPPROTO_IP;
+       ], [
+               # Yes, we have it...
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_IPPROTO_IP, 1, [Have IPPROTO_IP])
+       ], [
+               # We'll have to use getprotobyname
+               AC_MSG_RESULT(no)
+       ])
+
+       dnl *******************************
+       dnl *** Checks for IPPROTO_IPV6 ***
+       dnl *******************************
+       AC_MSG_CHECKING(for IPPROTO_IPV6)
+       AC_TRY_COMPILE([#include <netinet/in.h>], [
+               int level = IPPROTO_IPV6;
+       ], [
+               # Yes, we have it...
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_IPPROTO_IPV6, 1, [Have IPPROTO_IPV6])
+       ], [
+               # We'll have to use getprotobyname
+               AC_MSG_RESULT(no)
+       ])
+
+       dnl ******************************
+       dnl *** Checks for IPPROTO_TCP ***
+       dnl ******************************
+       AC_MSG_CHECKING(for IPPROTO_TCP)
+       AC_TRY_COMPILE([#include <netinet/in.h>], [
+               int level = IPPROTO_TCP;
+       ], [
+               # Yes, we have it...
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_IPPROTO_TCP, 1, [Have IPPROTO_TCP])
+       ], [
+               # We'll have to use getprotobyname
+               AC_MSG_RESULT(no)
+       ])
+
+       dnl *****************************
+       dnl *** Checks for SOL_IP     ***
+       dnl *****************************
+       AC_MSG_CHECKING(for SOL_IP)
+       AC_TRY_COMPILE([#include <netdb.h>], [
+               int level = SOL_IP;
+       ], [
+               # Yes, we have it...
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_SOL_IP, 1, [Have SOL_IP])
+       ], [
+               # We'll have to use getprotobyname
+               AC_MSG_RESULT(no)
+       ])
+
+       dnl *****************************
+       dnl *** Checks for SOL_IPV6     ***
+       dnl *****************************
+       AC_MSG_CHECKING(for SOL_IPV6)
+       AC_TRY_COMPILE([#include <netdb.h>], [
+               int level = SOL_IPV6;
+       ], [
+               # Yes, we have it...
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_SOL_IPV6, 1, [Have SOL_IPV6])
+       ], [
+               # We'll have to use getprotobyname
+               AC_MSG_RESULT(no)
+       ])
+
+       dnl *****************************
+       dnl *** Checks for SOL_TCP    ***
+       dnl *****************************
+       AC_MSG_CHECKING(for SOL_TCP)
+       AC_TRY_COMPILE([#include <netdb.h>], [
+               int level = SOL_TCP;
+       ], [
+               # Yes, we have it...
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_SOL_TCP, 1, [Have SOL_TCP])
+       ], [
+               # We'll have to use getprotobyname
+               AC_MSG_RESULT(no)
+       ])
+
+       dnl *****************************
+       dnl *** Checks for IP_PKTINFO ***
+       dnl *****************************
+       AC_MSG_CHECKING(for IP_PKTINFO)
+       AC_TRY_COMPILE([#include <linux/in.h>], [
+               int level = IP_PKTINFO;
+       ], [
+               # Yes, we have it...
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_IP_PKTINFO, 1, [Have IP_PKTINFO])
+       ], [
+               AC_MSG_RESULT(no)
+       ])
+
+       dnl *****************************
+       dnl *** Checks for IPV6_PKTINFO ***
+       dnl *****************************
+       AC_MSG_CHECKING(for IPV6_PKTINFO)
+       AC_TRY_COMPILE([#include <netdb.h>], [
+               int level = IPV6_PKTINFO;
+       ], [
+               # Yes, we have it...
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_IPV6_PKTINFO, 1, [Have IPV6_PKTINFO])
+       ], [
+               AC_MSG_RESULT(no)
+       ])
+
+       dnl **********************************
+       dnl *** Checks for IP_DONTFRAG     ***
+       dnl **********************************
+       AC_MSG_CHECKING(for IP_DONTFRAG)
+       AC_TRY_COMPILE([#include <netinet/in.h>], [
+               int level = IP_DONTFRAG;
+       ], [
+               # Yes, we have it...
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_IP_DONTFRAG, 1, [Have IP_DONTFRAG])
+       ], [
+               AC_MSG_RESULT(no)
+       ])
+
+       dnl **********************************
+       dnl *** Checks for IP_DONTFRAGMENT ***
+       dnl **********************************
+       AC_MSG_CHECKING(for IP_DONTFRAGMENT)
+       AC_TRY_COMPILE([#include <Ws2ipdef.h>], [
+               int level = IP_DONTFRAGMENT;
+       ], [
+               # Yes, we have it...
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_IP_DONTFRAGMENT, 1, [Have IP_DONTFRAGMENT])
+       ], [
+               AC_MSG_RESULT(no)
+       ])
+
+       dnl **********************************
+       dnl *** Checks for IP_MTU_DISCOVER ***
+       dnl **********************************
+       AC_MSG_CHECKING(for IP_MTU_DISCOVER)
+       AC_TRY_COMPILE([#include <linux/in.h>], [
+               int level = IP_MTU_DISCOVER;
+       ], [
+               # Yes, we have it...
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_IP_MTU_DISCOVER, 1, [Have IP_MTU_DISCOVER])
+       ], [
+               AC_MSG_RESULT(no)
+       ])
+
+       dnl **********************************
+       dnl *** Checks for  IP_PMTUDISC_DO ***
+       dnl **********************************
+       AC_MSG_CHECKING(for IP_PMTUDISC_DO)
+       AC_TRY_COMPILE([#include <linux/in.h>], [
+               int level = IP_PMTUDISC_DO;
+       ], [
+               # Yes, we have it...
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_IP_PMTUDISC_DO, 1, [Have IP_PMTUDISC_DO])
+       ], [
+               AC_MSG_RESULT(no)
+       ])
+
+       dnl *********************************
+       dnl *** Check for struct ip_mreqn ***
+       dnl *********************************
+       AC_MSG_CHECKING(for struct ip_mreqn)
+       AC_TRY_COMPILE([#include <netinet/in.h>], [
+               struct ip_mreqn mreq;
+               mreq.imr_address.s_addr = 0;
+       ], [
+               # Yes, we have it...
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_STRUCT_IP_MREQN, 1, [Have struct ip_mreqn])
+       ], [
+               # We'll just have to try and use struct ip_mreq
+               AC_MSG_RESULT(no)
+               AC_MSG_CHECKING(for struct ip_mreq)
+               AC_TRY_COMPILE([#include <netinet/in.h>], [
+                       struct ip_mreq mreq;
+                       mreq.imr_interface.s_addr = 0;
+               ], [
+                       # Yes, we have it...
+                       AC_MSG_RESULT(yes)
+                       AC_DEFINE(HAVE_STRUCT_IP_MREQ, 1, [Have struct ip_mreq])
+               ], [
+                       # No multicast support
+                       AC_MSG_RESULT(no)
+               ])
+       ])
+       
+       dnl **********************************
+       dnl *** Check for gethostbyname2_r ***
+       dnl **********************************
+       AC_MSG_CHECKING(for gethostbyname2_r)
+               AC_TRY_LINK([#include <netdb.h>], [
+               gethostbyname2_r(NULL,0,NULL,NULL,0,NULL,NULL);
+       ], [
+               # Yes, we have it...
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_GETHOSTBYNAME2_R, 1, [Have gethostbyname2_r])
+       ], [
+               AC_MSG_RESULT(no)
+       ])
+
+       dnl *****************************
+       dnl *** Checks for libnsl     ***
+       dnl *****************************
+       AC_CHECK_FUNC(gethostbyaddr, , AC_CHECK_LIB(nsl, gethostbyaddr, LIBS="$LIBS -lnsl"))
+
+       AC_CHECK_FUNCS(inet_pton inet_aton)
+
+       dnl ***********************************************
+       dnl *** Checks for size of sockaddr_un.sun_path ***
+       dnl ***********************************************
+       # AC_CHECK_SIZEOF can't cope with struct members :-(
+       AC_MSG_CHECKING(size of sockaddr_un.sun_path)
+       AC_CACHE_VAL(mono_cv_sizeof_sunpath,
+               [AC_TRY_RUN([
+                       #include <sys/types.h>
+                       #include <stdio.h>
+                       #include <sys/un.h>
+
+                       int main(void) {
+                               struct sockaddr_un sock_un;
+                               FILE *f=fopen("conftestval", "w");
+                               if(!f) exit(1);
+                               fprintf(f, "%d\n", sizeof(sock_un.sun_path));
+                               exit(0);
+                       }
+               ], mono_cv_sizeof_sunpath=`cat conftestval`,
+                  mono_cv_sizeof_sunpath=0,
+                  mono_cv_sizeof_sunpath=0)])dnl
+       AC_MSG_RESULT($mono_cv_sizeof_sunpath)
+       AC_DEFINE_UNQUOTED(MONO_SIZEOF_SUNPATH, $mono_cv_sizeof_sunpath, [Sizeof sock_un.sun_path])
+
+       dnl *****************************
+       dnl *** Checks for libxnet    ***
+       dnl *****************************
+       case "${host}" in
+               *solaris* )
+                       AC_MSG_CHECKING(for Solaris XPG4 support)
+                       if test -f /usr/lib/libxnet.so; then
+                               CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=500"
+                               CPPFLAGS="$CPPFLAGS -D__EXTENSIONS__"
+                               CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED=1"
+                               LIBS="$LIBS -lxnet"
+                               AC_MSG_RESULT(yes)
+                       else
+                               AC_MSG_RESULT(no)
+                       fi
+
+                       if test "$GCC" = "yes"; then
+                               CFLAGS="$CFLAGS -Wno-char-subscripts"
+                       fi
+               ;;
+       esac
+
+       dnl *****************************
+       dnl *** Checks for libpthread ***
+       dnl *****************************
+# on FreeBSD -STABLE, the pthreads functions all reside in libc_r
+# and libpthread does not exist
+#
+       case "${host}" in
+               *-*-*freebsd*)
+                       AC_CHECK_LIB(pthread, main, LIBS="$LIBS -pthread")
+               ;;
+               *-*-*openbsd*)
+                       AC_CHECK_LIB(pthread, main, LIBS="$LIBS -pthread")
+               ;;
+               *)
+                       AC_CHECK_LIB(pthread, main, LIBS="$LIBS -lpthread")
+               ;;
+       esac
+       AC_CHECK_HEADERS(pthread.h)
+       AC_CHECK_HEADERS(pthread_np.h)
+       AC_CHECK_FUNCS(pthread_mutex_timedlock)
+       AC_CHECK_FUNCS(pthread_getattr_np pthread_attr_get_np pthread_setname_np)
+       AC_CHECK_FUNCS(pthread_kill)
+       AC_MSG_CHECKING(for PTHREAD_MUTEX_RECURSIVE)
+       AC_TRY_COMPILE([ #include <pthread.h>], [
+               pthread_mutexattr_t attr;
+               pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
+       ], [
+               AC_MSG_RESULT(ok)
+       ], [
+               AC_MSG_RESULT(no)
+               AC_ERROR(Posix system lacks support for recursive mutexes)
+       ])
+       AC_CHECK_FUNCS(pthread_attr_setstacksize)
+       AC_CHECK_FUNCS(pthread_attr_getstack pthread_attr_getstacksize)
+       AC_CHECK_FUNCS(pthread_get_stacksize_np pthread_get_stackaddr_np)
+
+       dnl ***********************************
+       dnl *** Checks for signals
+       dnl ***********************************
+       AC_CHECK_HEADERS(signal.h)
+       AC_CHECK_FUNCS(sigaction)
+
+       dnl ***********************************
+       dnl *** Checks for working __thread ***
+       dnl ***********************************
+       AC_MSG_CHECKING(for working __thread)
+       if test "x$with_tls" != "x__thread"; then
+               AC_MSG_RESULT(disabled)
+       elif test "x$cross_compiling" = "xyes"; then
+               AC_MSG_RESULT(cross compiling, assuming yes)
+       else
+               AC_TRY_RUN([
+                       #if defined(__APPLE__) && defined(__clang__)
+                       #error "__thread does not currently work with clang on Mac OS X"
+                       #endif
+                       
+                       #include <pthread.h>
+                       __thread int i;
+                       static int res1, res2;
+
+                       void thread_main (void *arg)
+                       {
+                               i = arg;
+                               sleep (1);
+                               if (arg == 1)
+                                       res1 = (i == arg);
+                               else
+                                       res2 = (i == arg);
+                       }
+
+                       int main () {
+                               pthread_t t1, t2;
+
+                               i = 5;
+
+                               pthread_create (&t1, NULL, thread_main, 1);
+                               pthread_create (&t2, NULL, thread_main, 2);
+
+                               pthread_join (t1, NULL);
+                               pthread_join (t2, NULL);
+
+                               return !(res1 + res2 == 2);
+                       }
+               ], [
+                               AC_MSG_RESULT(yes)
+               ], [
+                               AC_MSG_RESULT(no)
+                               with_tls=pthread
+               ])
+       fi
+
+       dnl **************************************
+       dnl *** Checks for working sigaltstack ***
+       dnl **************************************
+       AC_MSG_CHECKING(for working sigaltstack)
+       if test "x$with_sigaltstack" != "xyes"; then
+               AC_MSG_RESULT(disabled)
+       elif test "x$cross_compiling" = "xyes"; then
+               AC_MSG_RESULT(cross compiling, assuming yes)
+       else
+               AC_TRY_RUN([
+                       #include <stdio.h>
+                       #include <stdlib.h>
+                       #include <unistd.h>
+                       #include <signal.h>
+                       #include <pthread.h>
+                       #include <sys/wait.h>
+                       #if defined(__FreeBSD__) || defined(__NetBSD__)
+                       #define SA_STACK SA_ONSTACK
+                       #endif
+                       static void
+                       sigsegv_signal_handler (int _dummy, siginfo_t *info, void *context)
+                       {
+                               exit (0);
+                       }
+
+                       volatile char*__ptr = NULL;
+                       static void *
+                       loop (void *ignored)
+                       {
+                               *__ptr = 0;
+                               return NULL;
+                       }
+
+                       static void
+                       child ()
+                       {
+                               struct sigaction sa;
+                       #ifdef __APPLE__
+                               stack_t sas;
+                       #else
+                               struct sigaltstack sas;
+                       #endif
+                               pthread_t id;
+                               pthread_attr_t attr;
+
+                               sa.sa_sigaction = sigsegv_signal_handler;
+                               sigemptyset (&sa.sa_mask);
+                               sa.sa_flags = SA_SIGINFO | SA_ONSTACK;
+                               if (sigaction (SIGSEGV, &sa, NULL) == -1) {
+                                       perror ("sigaction");
+                                       return;
+                               }
+
+                               /* x86 darwin deliver segfaults using SIGBUS */
+                               if (sigaction (SIGBUS, &sa, NULL) == -1) {
+                                       perror ("sigaction");
+                                       return;
+                               }
+                               sas.ss_sp = malloc (SIGSTKSZ);
+                               sas.ss_size = SIGSTKSZ;
+                               sas.ss_flags = 0;
+                               if (sigaltstack (&sas, NULL) == -1) {
+                                       perror ("sigaltstack");
+                                       return;
+                               }
+
+                               pthread_attr_init (&attr);
+                               if (pthread_create(&id, &attr, loop, &attr) != 0) {
+                                       printf ("pthread_create\n");
+                                       return;
+                               }
+
+                               sleep (100);
+                       }
+
+                       int
+                       main ()
+                       {
+                               pid_t son;
+                               int status;
+                               int i;
+
+                               son = fork ();
+                               if (son == -1) {
+                                       return 1;
+                               }
+
+                               if (son == 0) {
+                                       child ();
+                                       return 0;
+                               }
+
+                               for (i = 0; i < 300; ++i) {
+                                       waitpid (son, &status, WNOHANG);
+                                       if (WIFEXITED (status) && WEXITSTATUS (status) == 0)
+                                               return 0;
+                                       usleep (10000);
+                               }
+
+                               kill (son, SIGKILL);
+                               return 1;
+                       }
+
+               ], [
+                               AC_MSG_RESULT(yes)
+                               AC_DEFINE(HAVE_WORKING_SIGALTSTACK, 1, [Have a working sigaltstack])
+               ], [
+                               with_sigaltstack=no
+                               AC_MSG_RESULT(no)
+               ])
+       fi
+
+       dnl ********************************
+       dnl *** Checks for semaphore lib ***
+       dnl ********************************
+       # 'Real Time' functions on Solaris
+       # posix4 on Solaris 2.6
+       # pthread (first!) on Linux
+       AC_SEARCH_LIBS(sem_init, pthread rt posix4) 
+
+       AC_SEARCH_LIBS(shm_open, pthread rt posix4) 
+       AC_CHECK_FUNCS(shm_open)
+
+       dnl ********************************
+       dnl *** Checks for timezone stuff **
+       dnl ********************************
+       AC_CACHE_CHECK(for tm_gmtoff in struct tm, ac_cv_struct_tm_gmtoff,
+               AC_TRY_COMPILE([
+                       #include <time.h>
+                       ], [
+                       struct tm tm;
+                       tm.tm_gmtoff = 1;
+                       ], ac_cv_struct_tm_gmtoff=yes, ac_cv_struct_tm_gmtoff=no))
+       if test $ac_cv_struct_tm_gmtoff = yes; then
+               AC_DEFINE(HAVE_TM_GMTOFF, 1, [Have tm_gmtoff])
+       else
+               AC_CACHE_CHECK(for timezone variable, ac_cv_var_timezone,
+                       AC_TRY_COMPILE([
+                               #include <time.h>
+                       ], [
+                               timezone = 1;
+                       ], ac_cv_var_timezone=yes, ac_cv_var_timezone=no))
+               if test $ac_cv_var_timezone = yes; then
+                       AC_DEFINE(HAVE_TIMEZONE, 1, [Have timezone variable])
+               else
+                       AC_ERROR(unable to find a way to determine timezone)
+               fi
+       fi
+
+       dnl *********************************
+       dnl *** Checks for math functions ***
+       dnl *********************************
+       AC_SEARCH_LIBS(sqrtf, m)
+       if test "x$has_broken_apple_cpp" != "xyes"; then
+               AC_CHECK_FUNCS(finite, , AC_MSG_CHECKING(for finite in math.h)
+                       AC_TRY_LINK([#include <math.h>], 
+                       [ finite(0.0); ], 
+                       AC_DEFINE(HAVE_FINITE, 1, [Have finite in -lm]) AC_MSG_RESULT(yes),
+                       AC_MSG_RESULT(no)))
+       fi
+        AC_CHECK_FUNCS(isfinite, , AC_MSG_CHECKING(for isfinite in math.h)
+                AC_TRY_LINK([#include <math.h>], 
+                [ isfinite(0.0); ], 
+                AC_DEFINE(HAVE_ISFINITE, 1, [Have isfinite]) AC_MSG_RESULT(yes),
+                AC_MSG_RESULT(no)))
+
+       dnl ****************************************************************
+       dnl *** Checks for working poll() (macosx defines it but doesn't ***
+       dnl *** have it in the library (duh))                            ***
+       dnl ****************************************************************
+       AC_CHECK_FUNCS(poll)
+
+       dnl *************************
+       dnl *** Check for signbit ***
+       dnl *************************
+       AC_MSG_CHECKING(for signbit)
+       AC_TRY_LINK([#include <math.h>], [
+               int s = signbit(1.0);
+       ], [
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_SIGNBIT, 1, [Have signbit])
+       ], [
+               AC_MSG_RESULT(no)
+       ]) 
+
+       dnl **********************************
+       dnl *** epoll                      ***
+       dnl **********************************
+       if test "x$ac_cv_header_nacl_nacl_dyncode_h" = "xno"; then
+               AC_CHECK_HEADERS(sys/epoll.h)
+               haveepoll=no
+               AC_CHECK_FUNCS(epoll_ctl, [haveepoll=yes], )
+               if test "x$haveepoll" = "xyes" -a "x$ac_cv_header_sys_epoll_h" = "xyes"; then
+                       AC_DEFINE(HAVE_EPOLL, 1, [epoll supported])
+               fi
+       fi
+
+       havekqueue=no
+
+       AC_CHECK_HEADERS(sys/event.h)
+       AC_CHECK_FUNCS(kqueue, [havekqueue=yes], )
+
+       dnl **************************************
+       dnl * Darwin has a race that prevents us from using reliably:
+       dnl * http://lists.apple.com/archives/darwin-dev/2011/Jun/msg00016.html
+       dnl * Since kqueue is mostly used for scaling large web servers, 
+       dnl * and very few folks run Mono on large web servers on OSX, falling
+       dnl * back 
+       dnl **************************************
+       if test "x$havekqueue" = "xyes" -a "x$ac_cv_header_sys_event_h" = "xyes"; then
+               if test "x$platform_darwin" = "xno"; then
+                       AC_DEFINE(USE_KQUEUE_FOR_THREADPOOL, 1, [Use kqueue for the threadpool])
+               fi
+       fi
+
+       dnl ******************************
+       dnl *** Checks for SIOCGIFCONF ***
+       dnl ******************************
+       AC_CHECK_HEADERS(sys/ioctl.h)
+       AC_CHECK_HEADERS(net/if.h, [], [],
+          [
+          #ifdef HAVE_SYS_TYPES_H
+          # include <sys/types.h>
+          #endif
+          #ifdef HAVE_SYS_SOCKET_H
+          # include <sys/socket.h>
+          #endif
+          ])
+       AC_MSG_CHECKING(for ifreq)
+       AC_TRY_COMPILE([
+               #include <stdio.h>
+               #include <sys/ioctl.h>
+               #include <net/if.h>
+               ], [
+               struct ifconf ifc;
+               struct ifreq *ifr;
+               void *x;
+               ifc.ifc_len = 0;
+               ifc.ifc_buf = NULL;
+               x = (void *) &ifr->ifr_addr;
+               ],[
+                       AC_MSG_RESULT(yes)
+                       AC_DEFINE(HAVE_SIOCGIFCONF, 1, [Can get interface list])
+               ], [
+                       AC_MSG_RESULT(no)
+               ])
+       dnl **********************************
+       dnl ***     Checks for sin_len     ***
+       dnl **********************************
+       AC_MSG_CHECKING(for sockaddr_in.sin_len)
+       AC_TRY_COMPILE([
+               #include <netinet/in.h>
+               ], [
+               struct sockaddr_in saddr;
+               saddr.sin_len = sizeof (saddr);
+               ],[
+                       AC_MSG_RESULT(yes)
+                       AC_DEFINE(HAVE_SOCKADDR_IN_SIN_LEN, 1, [sockaddr_in has sin_len])
+               ], [
+                       AC_MSG_RESULT(no)
+               ])      
+       dnl **********************************
+       dnl ***    Checks for sin6_len     ***
+       dnl **********************************
+       AC_MSG_CHECKING(for sockaddr_in6.sin6_len)
+       AC_TRY_COMPILE([
+               #include <netinet/in.h>
+               ], [
+               struct sockaddr_in6 saddr6;
+               saddr6.sin6_len = sizeof (saddr6);
+               ],[
+                       AC_MSG_RESULT(yes)
+                       AC_DEFINE(HAVE_SOCKADDR_IN6_SIN_LEN, 1, [sockaddr_in6 has sin6_len])
+               ], [
+                       AC_MSG_RESULT(no)
+               ])
+       dnl **********************************
+       dnl *** Check for getifaddrs       ***
+       dnl **********************************
+       AC_MSG_CHECKING(for getifaddrs)
+               AC_TRY_LINK([
+               #include <stdio.h>
+               #include <sys/types.h>
+               #include <sys/socket.h>
+               #include <ifaddrs.h>
+       ], [
+               getifaddrs(NULL);
+       ], [
+               # Yes, we have it...
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_GETIFADDRS, 1, [Have getifaddrs])
+       ], [
+               AC_MSG_RESULT(no)
+       ])
+       dnl **********************************
+       dnl *** Check for if_nametoindex   ***
+       dnl **********************************
+       AC_MSG_CHECKING(for if_nametoindex)
+               AC_TRY_LINK([
+               #include <stdio.h>
+               #include <sys/types.h>
+               #include <sys/socket.h>
+               #include <net/if.h>
+       ], [
+               if_nametoindex(NULL);
+       ], [
+               # Yes, we have it...
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_IF_NAMETOINDEX, 1, [Have if_nametoindex])
+       ], [
+               AC_MSG_RESULT(no)
+       ])
+                       
+       dnl **********************************
+       dnl *** Checks for MonoPosixHelper ***
+       dnl **********************************
+       AC_CHECK_HEADERS(checklist.h)
+       AC_CHECK_HEADERS(pathconf.h)
+       AC_CHECK_HEADERS(fstab.h)
+       AC_CHECK_HEADERS(attr/xattr.h)
+       AC_CHECK_HEADERS(sys/extattr.h)
+       AC_CHECK_HEADERS(sys/sendfile.h)
+       AC_CHECK_HEADERS(sys/statvfs.h)
+       AC_CHECK_HEADERS(sys/statfs.h)
+       AC_CHECK_HEADERS(sys/vfstab.h)
+       AC_CHECK_HEADERS(sys/xattr.h)
+       AC_CHECK_HEADERS(sys/mman.h)
+       AC_CHECK_HEADERS(sys/param.h)
+       AC_CHECK_HEADERS(sys/mount.h, [], [],
+               [
+               #ifdef HAVE_SYS_PARAM_H
+               # include <sys/param.h>
+               #endif
+               ])
+       AC_CHECK_HEADERS(sys/mount.h)
+       AC_CHECK_FUNCS(confstr)
+       AC_CHECK_FUNCS(seekdir telldir)
+       AC_CHECK_FUNCS(getdomainname)
+       AC_CHECK_FUNCS(setdomainname)
+       AC_CHECK_FUNCS(endgrent getgrent fgetgrent setgrent)
+       AC_CHECK_FUNCS(setgroups)
+       AC_CHECK_FUNCS(endpwent getpwent fgetpwent setpwent)
+       AC_CHECK_FUNCS(getfsstat)
+       AC_CHECK_FUNCS(lutimes futimes)
+       AC_CHECK_FUNCS(mremap)
+       AC_CHECK_FUNCS(remap_file_pages)
+       AC_CHECK_FUNCS(posix_fadvise)
+       AC_CHECK_FUNCS(posix_fallocate)
+       AC_CHECK_FUNCS(posix_madvise)
+       AC_CHECK_FUNCS(vsnprintf)
+       AC_CHECK_FUNCS(sendfile)
+       AC_CHECK_FUNCS(gethostid sethostid)
+       AC_CHECK_FUNCS(sethostname)
+       AC_CHECK_FUNCS(statfs)
+       AC_CHECK_FUNCS(fstatfs)
+       AC_CHECK_FUNCS(statvfs)
+       AC_CHECK_FUNCS(fstatvfs)
+       AC_CHECK_FUNCS(stime)
+       AC_CHECK_FUNCS(strerror_r)
+       AC_CHECK_FUNCS(ttyname_r)
+       AC_CHECK_FUNCS(psignal)
+       AC_CHECK_FUNCS(getlogin_r)
+       AC_CHECK_FUNCS(lockf)
+       AC_CHECK_FUNCS(swab)
+       AC_CHECK_FUNCS(setusershell endusershell)
+       AC_CHECK_FUNCS(futimens utimensat)
+       AC_CHECK_FUNCS(fstatat mknodat readlinkat)
+       AC_CHECK_FUNCS(readv writev preadv pwritev)
+       AC_CHECK_FUNCS(setpgid)
+       AC_CHECK_SIZEOF(size_t)
+       AC_CHECK_TYPES([blksize_t], [AC_DEFINE(HAVE_BLKSIZE_T)], , 
+               [#include <sys/types.h>
+                #include <sys/stat.h>
+                #include <unistd.h>])
+       AC_CHECK_TYPES([blkcnt_t], [AC_DEFINE(HAVE_BLKCNT_T)], ,
+               [#include <sys/types.h>
+                #include <sys/stat.h>
+                #include <unistd.h>])
+       AC_CHECK_TYPES([suseconds_t], [AC_DEFINE(HAVE_SUSECONDS_T)], ,
+               [#include <sys/time.h>])
+       AC_CHECK_TYPES([struct flock], [AC_DEFINE(HAVE_STRUCT_FLOCK)], ,
+               [#include <unistd.h>
+                #include <fcntl.h>])
+       AC_CHECK_TYPES([struct iovec], [AC_DEFINE(HAVE_STRUCT_IOVEC)], ,
+               [#include <sys/uio.h>])
+       AC_CHECK_TYPES([struct pollfd], [AC_DEFINE(HAVE_STRUCT_POLLFD)], ,
+               [#include <sys/poll.h>])
+       AC_CHECK_TYPES([struct stat], [AC_DEFINE(HAVE_STRUCT_STAT)], ,
+               [#include <sys/types.h>
+                #include <sys/stat.h>
+                #include <unistd.h>])
+       AC_CHECK_TYPES([struct timespec], [AC_DEFINE(HAVE_STRUCT_TIMESPEC)], ,
+               [#include <time.h>])
+       AC_CHECK_TYPES([struct timeval], [AC_DEFINE(HAVE_STRUCT_TIMEVAL)], ,
+               [#include <sys/time.h>
+                #include <sys/types.h>
+                #include <utime.h>])
+       AC_CHECK_TYPES([struct timezone], [AC_DEFINE(HAVE_STRUCT_TIMEZONE)], ,
+               [#include <sys/time.h>])
+       AC_CHECK_TYPES([struct utimbuf], [AC_DEFINE(HAVE_STRUCT_UTIMBUF)], ,
+               [#include <sys/types.h>
+                #include <utime.h>])
+       AC_CHECK_MEMBERS(
+               [struct dirent.d_off, struct dirent.d_reclen, struct dirent.d_type],,, 
+               [#include <sys/types.h>
+                #include <dirent.h>])
+       AC_CHECK_MEMBERS(
+               [struct passwd.pw_gecos],,, 
+               [#include <sys/types.h>
+                #include <pwd.h>])
+       AC_CHECK_MEMBERS(
+               [struct statfs.f_flags],,, 
+               [#include <sys/types.h>
+                #include <sys/vfs.h>])
+       AC_CHECK_MEMBERS(
+               [struct stat.st_atim, struct stat.st_mtim, struct stat.st_ctim],,, 
+               [#include <sys/types.h>
+                #include <sys/stat.h>
+                #include <unistd.h>])
+
+       dnl Favour xattr through glibc, but use libattr if we have to
+       AC_CHECK_FUNC(lsetxattr, ,
+               AC_CHECK_LIB(attr, lsetxattr, XATTR_LIB="-lattr",)
+       )
+       AC_SUBST(XATTR_LIB)
+
+       dnl kinfo_proc.kp_proc works on darwin but fails on other simil-bsds
+       AC_CHECK_MEMBERS(
+               [struct kinfo_proc.kp_proc],,, 
+               [#include <sys/types.h>
+                #include <sys/param.h>
+                #include <sys/sysctl.h>
+                #include <sys/proc.h>
+                ])
+
+       dnl *********************************
+       dnl *** Checks for Windows compilation ***
+       dnl *********************************
+       AC_CHECK_HEADERS(sys/time.h)
+       AC_CHECK_HEADERS(sys/param.h)
+       AC_CHECK_HEADERS(dirent.h)
+
+       dnl ******************************************
+       dnl *** Checks for OSX and iOS compilation ***
+       dnl ******************************************
+       AC_CHECK_HEADERS(CommonCrypto/CommonDigest.h)
+
+       dnl *********************************
+       dnl *** Check for Console 2.0 I/O ***
+       dnl *********************************
+       AC_CHECK_HEADERS([curses.h])
+       AC_CHECK_HEADERS([term.h], [], [],
+       [#if HAVE_CURSES_H
+        #include <curses.h>
+        #endif
+       ])
+       AC_CHECK_HEADERS([termios.h])
+
+       dnl * This is provided in io-layer, but on windows it's only available
+       dnl * on xp+
+       AC_DEFINE(HAVE_GETPROCESSID, 1, [Define if GetProcessId is available])
+else
+       dnl *********************************
+       dnl *** Checks for Windows compilation ***
+       dnl *********************************
+       AC_CHECK_HEADERS(winternl.h)
+
+       jdk_headers_found=no
+       AC_CHECK_LIB(ws2_32, main, LIBS="$LIBS -lws2_32", AC_ERROR(bad mingw install?))
+       AC_CHECK_LIB(psapi, main, LIBS="$LIBS -lpsapi", AC_ERROR(bad mingw install?))
+       AC_CHECK_LIB(ole32, main, LIBS="$LIBS -lole32", AC_ERROR(bad mingw install?))
+       AC_CHECK_LIB(winmm, main, LIBS="$LIBS -lwinmm", AC_ERROR(bad mingw install?))
+       AC_CHECK_LIB(oleaut32, main, LIBS="$LIBS -loleaut32", AC_ERROR(bad mingw install?))
+       AC_CHECK_LIB(advapi32, main, LIBS="$LIBS -ladvapi32", AC_ERROR(bad mingw install?))
+       AC_CHECK_LIB(version, main, LIBS="$LIBS -lversion", AC_ERROR(bad mingw install?))
+
+       dnl *********************************
+       dnl *** Check for struct ip_mreqn ***
+       dnl *********************************
+       AC_MSG_CHECKING(for struct ip_mreqn)
+       AC_TRY_COMPILE([#include <ws2tcpip.h>], [
+               struct ip_mreqn mreq;
+               mreq.imr_address.s_addr = 0;
+       ], [
+               # Yes, we have it...
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_STRUCT_IP_MREQN)
+       ], [
+               # We'll just have to try and use struct ip_mreq
+               AC_MSG_RESULT(no)
+               AC_MSG_CHECKING(for struct ip_mreq)
+               AC_TRY_COMPILE([#include <ws2tcpip.h>], [
+                       struct ip_mreq mreq;
+                       mreq.imr_interface.s_addr = 0;
+               ], [
+                       # Yes, we have it...
+                       AC_MSG_RESULT(yes)
+                       AC_DEFINE(HAVE_STRUCT_IP_MREQ)
+               ], [
+                       # No multicast support
+                       AC_MSG_RESULT(no)
+               ])
+       ])
+       AC_CHECK_FUNCS(GetProcessId)
+       AC_CHECK_DECLS(InterlockedExchange64, [], [], [[#include <windows.h>]])
+       AC_CHECK_DECLS(InterlockedCompareExchange64, [], [], [[#include <windows.h>]])
+       AC_CHECK_DECLS(InterlockedDecrement64, [], [], [[#include <windows.h>]])
+       AC_CHECK_DECLS(InterlockedIncrement64, [], [], [[#include <windows.h>]])
+       AC_CHECK_DECLS(InterlockedAdd, [], [], [[#include <windows.h>]])
+       AC_CHECK_DECLS(InterlockedAdd64, [], [], [[#include <windows.h>]])
+       AC_CHECK_DECLS(__readfsdword, [], [], [[#include <windows.h>]])
+fi
+
+dnl socklen_t check
+AC_MSG_CHECKING(for socklen_t)
+AC_TRY_COMPILE([
+#include <sys/types.h>
+#include <sys/socket.h>
+],[
+  socklen_t foo;
+],[
+ac_cv_c_socklen_t=yes
+       AC_DEFINE(HAVE_SOCKLEN_T, 1, [Have socklen_t])
+       AC_MSG_RESULT(yes)
+],[
+       AC_MSG_RESULT(no)
+])
+
+AC_MSG_CHECKING(for array element initializer support)
+AC_TRY_COMPILE([#include <sys/socket.h>], [
+       const int array[] = {[1] = 2,};
+], [
+       # Yes, we have it...
+       AC_MSG_RESULT(yes)
+       AC_DEFINE(HAVE_ARRAY_ELEM_INIT,1,[Supports C99 array initialization])
+], [
+       # We'll have to use signals
+       AC_MSG_RESULT(no)
+])
+
+AC_CHECK_FUNCS(trunc, , AC_MSG_CHECKING(for trunc in math.h)
+       # Simply calling trunc (0.0) is no good since gcc will optimize the call away
+       AC_TRY_LINK([#include <math.h>], 
+       [ static void *p = &trunc; ],
+       [
+               AC_DEFINE(HAVE_TRUNC) 
+               AC_MSG_RESULT(yes)
+               ac_cv_trunc=yes
+       ],
+       AC_MSG_RESULT(no)))
+
+if test "x$ac_cv_truncl" != "xyes"; then
+   AC_CHECK_LIB(sunmath, aintl, [ AC_DEFINE(HAVE_AINTL, 1, [Has the 'aintl' function]) LIBS="$LIBS -lsunmath"])
+fi
+
+AC_CHECK_FUNCS(round)
+AC_CHECK_FUNCS(rint)
+AC_CHECK_FUNCS(execvp)
+
+dnl ****************************
+dnl *** Look for /dev/random ***
+dnl ****************************
+
+AC_MSG_CHECKING([if usage of random device is requested])
+AC_ARG_ENABLE(dev-random,
+[  --disable-dev-random    disable the use of the random device (enabled by default)],
+try_dev_random=$enableval, try_dev_random=yes)
+
+AC_MSG_RESULT($try_dev_random)
+
+case "{$build}" in
+    *-openbsd*)
+    NAME_DEV_RANDOM="/dev/srandom"
+    ;;
+
+dnl Win32 does not have /dev/random, they have their own method...
+
+    *-mingw*|*-*-cygwin*)
+    ac_cv_have_dev_random=no
+    ;;
+
+dnl Everywhere else, it's /dev/random
+
+    *)
+    NAME_DEV_RANDOM="/dev/random"
+    ;;
+esac
+
+AC_DEFINE_UNQUOTED(NAME_DEV_RANDOM, "$NAME_DEV_RANDOM", [Name of /dev/random])
+
+dnl Now check if the device actually exists
+
+if test "x$try_dev_random" = "xyes"; then
+    AC_CACHE_CHECK(for random device, ac_cv_have_dev_random,
+    [if test -r "$NAME_DEV_RANDOM" ; then
+        ac_cv_have_dev_random=yes; else ac_cv_have_dev_random=no; fi])
+    if test "x$ac_cv_have_dev_random" = "xyes"; then
+        AC_DEFINE(HAVE_CRYPT_RNG, 1, [Have /dev/random])
+    fi
+else
+    AC_MSG_CHECKING(for random device)
+    ac_cv_have_dev_random=no
+    AC_MSG_RESULT(has been disabled)
+fi
+
+if test "x$host_win32" = "xyes"; then
+    AC_DEFINE(HAVE_CRYPT_RNG)
+fi
+
+if test "x$ac_cv_have_dev_random" = "xno" \
+    && test "x$host_win32" = "xno"; then
+    AC_MSG_WARN([[
+***
+*** A system-provided entropy source was not found on this system.
+*** Because of this, the System.Security.Cryptography random number generator
+*** will throw a NotImplemented exception.
+***
+*** If you are seeing this message, and you know your system DOES have an
+*** entropy collection in place, please contact <crichton@gimp.org> and
+*** provide information about the system and how to access the random device.
+***
+*** Otherwise you can install either egd or prngd and set the environment
+*** variable MONO_EGD_SOCKET to point to the daemon's socket to use that.
+***]])
+fi
+AC_MSG_CHECKING([if inter-process shared handles are requested])
+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
+       AC_DEFINE(DISABLE_SHARED_HANDLES, 1, [Disable inter-process shared handles])
+       AC_SUBST(DISABLE_SHARED_HANDLES)
+fi
+
+AC_ARG_ENABLE(bcl-opt, [  --disable-bcl-opt    BCL is compiled with no optimizations (allows accurate BCL debugging)], test_bcl_opt=$enableval, test_bcl_opt=yes)
+
+AC_ARG_ENABLE(nunit-tests, [  --enable-nunit-tests     Run the nunit tests of the class library on 'make check'])
+AM_CONDITIONAL(ENABLE_NUNIT_TESTS, [test x$enable_nunit_tests = xyes])
+
+AC_MSG_CHECKING([if big-arrays are to be enabled])
+AC_ARG_ENABLE(big-arrays,  [  --enable-big-arrays      Enable the allocation and indexing of arrays greater than Int32.MaxValue], enable_big_arrays=$enableval, enable_big_arrays=no)
+if test "x$enable_big_arrays" = "xyes" ; then
+    if  test "x$ac_cv_sizeof_void_p" = "x8"; then
+       AC_DEFINE(MONO_BIG_ARRAYS,1,[Enable the allocation and indexing of arrays greater than Int32.MaxValue])
+    else
+        AC_MSG_ERROR([The allocation and indexing of arrays greater than Int32.MaxValue is not supported on this platform.])
+    fi
+fi
+AC_MSG_RESULT($enable_big_arrays)
+
+dnl **************
+dnl *** DTRACE ***
+dnl **************
+
+AC_ARG_ENABLE(dtrace,[  --enable-dtrace        Enable DTrace probes], enable_dtrace=$enableval, enable_dtrace=$has_dtrace)
+
+if test "x$enable_dtrace" = "xyes"; then
+   if test "x$has_dtrace" = "xno"; then
+         AC_MSG_ERROR([DTrace probes are not supported on this platform.])
+   fi
+   AC_PATH_PROG(DTRACE, [dtrace], [no], [$PATH:/usr/sbin])
+   if test "x$DTRACE" = "xno"; then
+         AC_MSG_RESULT([dtrace utility not found, dtrace support disabled.])
+         enable_dtrace=no
+   elif ! $DTRACE -h -s $srcdir/data/mono.d > /dev/null 2>&1; then
+         AC_MSG_RESULT([dtrace doesn't support -h option, dtrace support disabled.])
+         enable_dtrace=no
+   fi
+fi
+
+dtrace_g=no
+if test "x$enable_dtrace" = "xyes"; then
+       AC_DEFINE(ENABLE_DTRACE, 1, [Enable DTrace probes])
+       DTRACEFLAGS=
+       if test "x$ac_cv_sizeof_void_p" = "x8"; then
+               case "$host" in
+                       powerpc-*-darwin*)
+                       DTRACEFLAGS="-arch ppc64"
+                       ;;
+                       i*86-*-darwin*)
+                       DTRACEFLAGS="-arch x86_64"
+                       ;;
+                       *)
+                       DTRACEFLAGS=-64
+                       ;;
+               esac
+       else
+               case "$host" in
+                       powerpc-*-darwin*)
+                       DTRACEFLAGS="-arch ppc"
+                       ;;
+                       i*86-*-darwin*)
+                       DTRACEFLAGS="-arch i386"
+                       ;;
+                       *)
+                       DTRACEFLAGS=-32
+                       ;;
+               esac
+       fi
+       AC_SUBST(DTRACEFLAGS)
+       case "$host" in
+               *-*-solaris*)
+               dtrace_g=yes
+               ;;
+       esac
+       AC_CHECK_HEADERS([sys/sdt.h])
+fi
+AM_CONDITIONAL(ENABLE_DTRACE, [test x$enable_dtrace = xyes])
+AM_CONDITIONAL(DTRACE_G_REQUIRED, [test x$dtrace_g = xyes])
+
+dnl **************
+dnl ***  NaCl  ***
+dnl **************
+
+AC_ARG_ENABLE(nacl_codegen, [  --enable-nacl-codegen      Enable Native Client code generation], enable_nacl_codegen=$enableval, enable_nacl_codegen=no)
+AC_ARG_ENABLE(nacl_gc, [  --enable-nacl-gc           Enable Native Client garbage collection], enable_nacl_gc=$enableval, enable_nacl_gc=no)
+
+AM_CONDITIONAL(NACL_CODEGEN, test x$enable_nacl_codegen != xno)
+
+dnl
+dnl Hack to use system mono for operations in build/install not allowed in NaCl.
+dnl
+nacl_self_host=""
+if test "x$ac_cv_header_nacl_nacl_dyncode_h" = "xyes"; then
+   nacl_self_host="nacl_self_host"
+fi
+AC_SUBST(nacl_self_host)
+
+if test "x$enable_nacl_codegen" = "xyes"; then
+   MONO_NACL_ALIGN_MASK_OFF=1
+   AC_DEFINE(TARGET_NACL, 1, [...])
+   AC_DEFINE(__native_client_codegen__, 1, [...])
+else
+   MONO_NACL_ALIGN_MASK_OFF=0
+   AC_DEFINE(__default_codegen__, 1, [...])
+fi
+if test "x$enable_nacl_gc" = "xyes"; then
+   if test "x$TARGET" = "xAMD64" -o "x$TARGET" = "xX86"; then
+      INSTRUMENT_CFLAG="-finstrument-for-thread-suspension"
+   else
+      # Not yet implemented
+      INSTRUMENT_CFLAG=""
+   fi
+   CPPFLAGS="$CPPFLAGS $INSTRUMENT_CFLAG -D__native_client_gc__"
+fi
+AC_SUBST(MONO_NACL_ALIGN_MASK_OFF)
+
+dnl **************
+dnl ***  LLVM  ***
+dnl **************
+
+AC_ARG_ENABLE(llvm,[  --enable-llvm    Enable the LLVM back-end], enable_llvm=$enableval, enable_llvm=no)
+AC_ARG_ENABLE(loadedllvm,[  --enable-loadedllvm        Load the LLVM back-end dynamically], enable_llvm=$enableval && enable_loadedllvm=$enableval, enable_loadedllvm=no)
+AC_ARG_ENABLE(llvm-version-check,[  --enable-llvm-version-check Check that the LLVM matches the version expected by mono], enable_llvm_version_check=$enableval, enable_llvm_version_check=no)
+
+AC_ARG_WITH(llvm, [  --with-llvm=<llvm prefix>    Enable the LLVM back-end], enable_llvm=yes,)
+
+if test "x$enable_llvm" = "xyes"; then
+   if test "x$with_llvm" != "x"; then
+         LLVM_CONFIG=$with_llvm/bin/llvm-config
+         if test ! -x $LLVM_CONFIG; then
+                AC_MSG_ERROR([LLVM executable $LLVM_CONFIG not found.])
+      fi
+   else
+      AC_PATH_PROG(LLVM_CONFIG, llvm-config, no)
+      if test "x$LLVM_CONFIG" = "xno"; then
+            AC_MSG_ERROR([llvm-config not found.])
+      fi
+   fi
+
+   llvm_codegen="x86codegen"
+   case "$target" in
+   arm*)
+               llvm_codegen="armcodegen"
+               ;;
+   esac
+
+   # 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 is compiled with -fno-rtti, so we need this too, since our classes inherit
+   # from LLVM classes.
+   LLVM_CXXFLAGS="`$LLVM_CONFIG --cxxflags` -fno-rtti"
+   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
+      # No need for jit libs
+      LLVM_LIBS=`$LLVM_CONFIG --libs core bitwriter`
+   else
+      LLVM_LIBS=`$LLVM_CONFIG --libs core bitwriter jit mcjit $llvm_codegen`
+   fi
+   LLVM_LIBS="$LLVM_LIBS $LLVM_LDFLAGS $LLVM_SYSTEM_LIBS -lstdc++"
+
+   expected_llvm_version="3.4svn-mono-mono/e656cac"
+
+   # Should be something like '2.6' or '2.7svn'
+   llvm_version=`$LLVM_CONFIG --version`
+   major_version=`echo $llvm_version | cut -c 1`
+   minor_version=`echo $llvm_version | cut -c 3`
+   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
+         if test "x$llvm_api_version" = "x"; then
+               LLVM_CFLAGS="$LLVM_CFLAGS -DLLVM_API_VERSION=0"
+               LLVM_CXXFLAGS="$LLVM_CXXFLAGS -DLLVM_API_VERSION=0"
+         else
+               LLVM_CFLAGS="$LLVM_CFLAGS -DLLVM_API_VERSION=$llvm_api_version"
+               LLVM_CXXFLAGS="$LLVM_CXXFLAGS -DLLVM_API_VERSION=$llvm_api_version"
+         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
+
+   AC_DEFINE_UNQUOTED(LLVM_MAJOR_VERSION, $major_version, [Major version of LLVM libraries])
+   AC_DEFINE_UNQUOTED(LLVM_MINOR_VERSION, $minor_version, [Minor version of LLVM libraries])
+   AC_DEFINE_UNQUOTED(LLVM_VERSION, "$llvm_version", [Full version of LLVM libraties])
+
+   # Have to pass these on the command line since mini-llvm-cpp.h already includes
+   # llvm's config.h
+   LLVM_CXXFLAGS="$LLVM_CXXFLAGS -DLLVM_MAJOR_VERSION=$major_version -DLLVM_MINOR_VERSION=$minor_version"
+
+   AC_SUBST(LLVM_CFLAGS)
+   AC_SUBST(LLVM_CXXFLAGS)
+   AC_SUBST(LLVM_LIBS)
+   AC_SUBST(LLVM_LDFLAGS)
+   AC_DEFINE(ENABLE_LLVM, 1, [Enable the LLVM back end])
+fi
+
+AM_CONDITIONAL(ENABLE_LLVM, [test x$enable_llvm = xyes])
+if test "x$enable_loadedllvm" = "xyes"; then
+   AC_DEFINE(MONO_LLVM_LOADED, 1, [The LLVM back end is dynamically loaded])
+fi
+AM_CONDITIONAL(LOADED_LLVM, [test x$enable_loadedllvm = xyes])
+
+TARGET="unknown"
+ACCESS_UNALIGNED="yes"
+
+JIT_SUPPORTED=no
+INTERP_SUPPORTED=no
+LIBC="libc.so.6"
+INTL="libc.so.6"
+SQLITE="libsqlite.so.0"
+SQLITE3="libsqlite3.so.0"
+X11="libX11.so"
+XINERAMA="libXinerama.so"
+
+sizeof_register="SIZEOF_VOID_P"
+
+jit_wanted=true
+interp_wanted=false
+sgen_supported=false
+boehm_supported=true
+case "$host" in
+       mips*)
+               TARGET=MIPS;
+               arch_target=mips;
+               sgen_supported=true
+               ACCESS_UNALIGNED="no"
+               JIT_SUPPORTED=yes
+
+               AC_MSG_CHECKING(for mips n32)
+               AC_TRY_COMPILE([],[
+               #if _MIPS_SIM != _ABIN32
+               #error Not mips n32
+               #endif
+               return 0;
+               ],[
+               AC_MSG_RESULT(yes)
+               sizeof_register=8
+               ],[
+               AC_MSG_RESULT(no)
+               ])
+               ;;
+       i*86-*-*)
+               TARGET=X86;
+               arch_target=x86;
+               JIT_SUPPORTED=yes
+               case $host_os in
+                 solaris*)
+                       LIBC="libc.so"
+                       INTL="libintl.so"
+                       if test "x$ac_cv_sizeof_void_p" = "x8"; then
+                               TARGET=AMD64
+                               arch_target=amd64
+                       fi
+
+                       # On solaris 10 x86, gcc prints a warning saying 'visibility attribute not supported on this configuration; ignored', but linking fails. A test case:
+                       # int astruct __attribute__ ((visibility ("hidden")));
+                       # void foo ()
+                       # {
+                       #       void *p = &astruct;
+                       # }
+                       # gcc -fPIC --shared -o libfoo.so foo.c
+                       # yields:
+                       # foo.c:6: warning: visibility attribute not supported in this configuration; ignored
+                       # ld: fatal: relocation error: R_386_GOTOFF: file /var/tmp//ccxYR96k.o: symbol astruct: relocation must bind locally
+                       have_visibility_hidden=no
+                       sgen_supported=true
+                       ;;
+                 mingw*|cygwin*)
+                       sgen_supported=true
+                       have_visibility_hidden=no                 
+                       ;;
+                 haiku*)
+                       LIBC=libroot.so
+                       ;;
+                 linux*)
+                       sgen_supported=true
+                       AOT_SUPPORTED="yes"
+                       ;;
+                 darwin*)
+                       sgen_supported=true
+                       AOT_SUPPORTED="yes"
+                       ;;
+                 darwin*|openbsd*|freebsd*)
+                       sgen_supported=true
+                       ;;
+               esac
+               ;;
+       x86_64-*-* | amd64-*-*)
+               TARGET=AMD64;
+               arch_target=amd64;
+               JIT_SUPPORTED=yes
+               if test "x$ac_cv_sizeof_void_p" = "x4"; then
+                       AC_DEFINE(__mono_ilp32__, 1, [64 bit mode with 4 byte longs and pointers])
+                       sizeof_register=8
+               fi
+               case $host_os in
+                 linux*)
+                       sgen_supported=true
+                       AOT_SUPPORTED="yes"
+                       ;;
+                 darwin*|openbsd*|freebsd*)
+                       sgen_supported=true
+                       ;;
+               esac
+               case "$host" in
+                       x86_64-*-nacl*)
+                               AC_DEFINE(__mono_ilp32__, 1, [64 bit mode with 4 byte longs and pointers])
+                               sizeof_register=8
+                               ;;
+               esac
+               ;;
+       ia64-*-*)
+               TARGET=IA64
+               arch_target=ia64
+               ACCESS_UNALIGNED="no"
+               JIT_SUPPORTED=yes
+               LIBC="libc.so.6.1"
+               INTL="libc.so.6.1"
+               AC_CHECK_LIB(unwind, _U_dyn_register, [], [AC_MSG_ERROR(library libunwind not found)])
+               libmono_ldflags="-lunwind"
+               ;;
+       sparc*-*-*)
+               if test "x$ac_cv_sizeof_void_p" = "x8"; then
+                  TARGET=SPARC64
+               else
+                       TARGET=SPARC
+               fi
+               arch_target=sparc;
+               JIT_SUPPORTED=yes
+               ACCESS_UNALIGNED="no"
+               case $host_os in
+                 linux*) ;;
+                 *)
+                       LIBC="libc.so"
+                       INTL="libintl.so"
+               esac
+               if test x"$GCC" = xyes; then
+                       # We don't support v8 cpus
+                       CFLAGS="$CFLAGS -Wno-cast-align -mcpu=v9"
+               fi
+               if test x"$AR" = xfalse; then
+                       AC_MSG_ERROR([The required utility 'ar' is not found in your PATH. Usually it can be found in /usr/ccs/bin.])
+               fi
+               sgen_supported=true
+               ;;
+       *-mingw*|*-*-cygwin*)
+               # When this is enabled, it leads to very strange crashes at runtime (gcc-3.4.4)
+               have_visibility_hidden=no
+               INTL="intl"
+               ;;
+       macppc-*-openbsd* | powerpc*-*-linux* | powerpc-*-openbsd* | \
+        powerpc-*-sysv* | powerpc-*-darwin* | powerpc-*-netbsd* | powerpc-*-freebsd* )
+               if test "x$ac_cv_sizeof_void_p" = "x8"; then
+                       TARGET=POWERPC64;
+                       CPPFLAGS="$CPPFLAGS -D__mono_ppc__ -D__mono_ppc64__"
+                       CFLAGS="$CFLAGS -mminimal-toc"
+               else
+                       TARGET=POWERPC;
+                       CPPFLAGS="$CPPFLAGS -D__mono_ppc__"
+               fi
+               arch_target=ppc;
+               JIT_SUPPORTED=yes
+               case $host_os in
+                 linux*|darwin*)
+                       sgen_supported=true
+                       ;;
+               esac
+               ;;
+       arm*-darwin*)
+               TARGET=ARM;
+               arch_target=arm;
+               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*)
+               TARGET=ARM;
+               arch_target=arm;
+               ACCESS_UNALIGNED="no"
+               JIT_SUPPORTED=yes
+               sgen_supported=true
+               AOT_SUPPORTED="yes"
+               CPPFLAGS="$CPPFLAGS -D__ARM_EABI__"
+               ;;
+# TODO: make proper support for NaCl host.
+#        arm*-*nacl)
+#              TARGET=ARM;
+#              arch_target=arm;
+#              ACCESS_UNALIGNED="no"
+#              JIT_SUPPORTED=yes
+#              sgen_supported=true
+#              AOT_SUPPORTED="no"
+#              ;;
+       aarch64-*)
+               # https://lkml.org/lkml/2012/7/15/133
+               TARGET=ARM64
+               arch_target=arm64
+               JIT_SUPPORTED=yes
+               sgen_supported=true
+               boehm_supported=false
+               ;;
+       s390x-*-linux*)
+               TARGET=S390X;
+               arch_target=s390x;
+               ACCESS_UNALIGNED="yes"
+               JIT_SUPPORTED=yes
+               sgen_supported=true
+               CFLAGS="$CFLAGS -mbackchain -D__USE_STRING_INLINES"
+               ;;
+esac
+
+HOST=$TARGET
+
+if test "x$host" != "x$target"; then
+   AC_DEFINE(MONO_CROSS_COMPILE,1,[The runtime is compiled for cross-compiling mode])
+   enable_mcs_build=no
+   case "$target" in
+   arm*-darwin*)
+               TARGET=ARM;
+               arch_target=arm;
+               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
+               ;;
+   powerpc64-ps3-linux-gnu)
+               TARGET=POWERPC64
+               arch_target=powerpc64
+               AC_DEFINE(TARGET_PS3, 1, [...])
+               # It would be better to just use TARGET_POWERPC64, but lots of code already
+               # uses this define
+               AC_DEFINE(__mono_ppc64__, 1, [...])
+               AC_DEFINE(__mono_ilp32__, 1, [64 bit mode with 4 byte longs and pointers])
+               sizeof_register=8
+               target_byte_order=G_BIG_ENDIAN
+               ;;
+
+   powerpc64-xbox360-linux-gnu)
+               TARGET=POWERPC64
+               arch_target=powerpc64
+               AC_DEFINE(TARGET_XBOX360, 1, [...])
+               # It would be better to just use TARGET_POWERPC64, but lots of code already
+               # uses this define
+               sizeof_register=8
+               target_byte_order=G_BIG_ENDIAN
+               ;;
+   x86_64-*-nacl)
+               TARGET=AMD64
+               arch_target=amd64
+               AC_DEFINE(TARGET_AMD64, 1, [...])
+               AC_DEFINE(__mono_ilp32__, 1, [64 bit mode with 4 byte longs and pointers])
+               sizeof_register=8
+               ;;
+# TODO: make proper support for NaCl target.
+#   arm*-*nacl)
+#              TARGET=ARM
+#              arch_target=arm
+#              AC_DEFINE(TARGET_ARM, 1, [...])
+#              ACCESS_UNALIGNED="no"
+#              JIT_SUPPORTED=yes
+#              sizeof_register=4
+#               CPPFLAGS="$CPPFLAGS \
+#                    -D__ARM_EABI__ \
+#                    -D__arm__ \
+#                    -D__portable_native_client__ \
+#                    -Dtimezone=_timezone \
+#                    -DDISABLE_SOCKETS \
+#                    -DDISABLE_ATTACH \
+#                    -DUSE_NEWLIB"
+#              jit_wanted=true
+               # Can't use tls, since it depends on the runtime detection of tls offsets
+               # in mono-compiler.h
+#              with_tls=pthread
+#              ;;
+   i686-*-nacl)
+               TARGET=X86
+               arch_target=x86
+               AC_DEFINE(TARGET_X86, 1, [...])
+               sizeof_register=4
+               ;;
+   arm*-linux-*)
+               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__"
+               jit_wanted=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
+               case "$target" in
+               armv7l-unknown-linux-gnueabi*)
+                       # TEGRA
+                       CPPFLAGS="$CPPFLAGS"
+                       ;;
+               armv5-*-linux-androideabi*)
+                       CPPFLAGS="$CPPFLAGS"
+                       ;;
+               esac
+               ;;
+       aarch64-*)
+               TARGET=ARM64
+               JIT_SUPPORTED=yes
+               jit_wanted=true
+               ;;
+       *)
+               AC_MSG_ERROR([Cross compiling is not supported for target $target])
+       esac
+fi
+
+case "$TARGET" in
+X86)
+       AC_DEFINE(TARGET_X86, 1, [...])
+       ;;
+AMD64)
+       AC_DEFINE(TARGET_AMD64, 1, [...])
+       ;;
+ARM)
+       AC_DEFINE(TARGET_ARM, 1, [...])
+       ;;
+ARM64)
+       AC_DEFINE(TARGET_ARM64, 1, [...])
+       ;;
+POWERPC)
+       AC_DEFINE(TARGET_POWERPC, 1, [...])
+       ;;
+POWERPC64)
+       AC_DEFINE(TARGET_POWERPC, 1, [...])
+       AC_DEFINE(TARGET_POWERPC64, 1, [...])
+       ;;
+S390X)
+       AC_DEFINE(TARGET_S390X, 1, [...])
+       ;;
+MIPS)
+       AC_DEFINE(TARGET_MIPS, 1, [...])
+       ;;
+IA64)
+       AC_DEFINE(TARGET_IA64, 1, [...])
+       ;;
+SPARC)
+       AC_DEFINE(TARGET_SPARC, 1, [...])
+       ;;
+SPARC64)
+       AC_DEFINE(TARGET_SPARC64, 1, [...])
+       ;;
+esac
+
+dnl Use GCC atomic ops if they work on the target.
+if test x$GCC = "xyes"; then
+       case $TARGET in
+       X86 | AMD64 | ARM | ARM64 | POWERPC | POWERPC64 | MIPS | S390X | SPARC | SPARC64)
+               AC_DEFINE(USE_GCC_ATOMIC_OPS, 1, [...])
+               ;;
+       esac
+fi
+
+if test "x$target_mach" = "xyes"; then
+   if test "x$TARGET" = "xARM" -o "x$TARGET" = "xARM64"; then
+         AC_DEFINE(TARGET_IOS,1,[The JIT/AOT targets iOS])
+         CPPFLAGS_FOR_LIBGC="$CPPFLAGS_FOR_LIBGC -DTARGET_IOS"
+         CFLAGS_FOR_LIBGC="$CFLAGS_FOR_LIBGC -DTARGET_IOS"
+   else
+       AC_TRY_COMPILE([#include "TargetConditionals.h"],[
+       #if TARGET_IPHONE_SIMULATOR == 1 || TARGET_OS_IPHONE == 1
+       #error fail this for ios
+       #endif
+       return 0;
+       ], [
+                 AC_DEFINE(TARGET_OSX,1,[The JIT/AOT targets OSX])
+          CPPFLAGS_FOR_LIBGC="$CPPFLAGS_FOR_LIBGC -DTARGET_OSX"
+          CFLAGS_FOR_LIBGC="$CFLAGS_FOR_LIBGC -DTARGET_OSX"
+       ], [
+          AC_DEFINE(TARGET_IOS,1,[The JIT/AOT targets iOS])
+          CPPFLAGS_FOR_LIBGC="$CPPFLAGS_FOR_LIBGC -DTARGET_IOS"
+          CFLAGS_FOR_LIBGC="$CFLAGS_FOR_LIBGC -DTARGET_IOS"
+       ])
+       fi
+   AC_DEFINE(TARGET_MACH,1,[The JIT/AOT targets Apple platforms])
+fi
+
+if test "x$sizeof_register" = "x4"; then
+   AC_DEFINE(SIZEOF_REGISTER,4,[size of machine integer registers])
+elif test "x$sizeof_register" = "x8"; then
+   AC_DEFINE(SIZEOF_REGISTER,8,[size of machine integer registers])
+else
+   AC_DEFINE(SIZEOF_REGISTER,SIZEOF_VOID_P,[size of machine integer registers])
+fi
+
+if test "x$target_byte_order" = "xG_BIG_ENDIAN"; then
+   AC_DEFINE(TARGET_BYTE_ORDER,G_BIG_ENDIAN,[byte order of target])
+elif test "x$target_byte_order" = "xG_LITTLE_ENDIAN"; then
+   AC_DEFINE(TARGET_BYTE_ORDER,G_LITTLE_ENDIAN,[byte order of target])
+else
+   AC_DEFINE(TARGET_BYTE_ORDER,G_BYTE_ORDER,[byte order of target])
+fi
+
+if test "x$have_visibility_hidden" = "xyes"; then
+   AC_DEFINE(HAVE_VISIBILITY_HIDDEN, 1, [Support for the visibility ("hidden") attribute])
+fi
+
+if test "x$have_deprecated" = "xyes"; then
+   AC_DEFINE(HAVE_DEPRECATED, 1, [Support for the deprecated attribute])
+fi
+
+dnl 
+dnl Simple Generational checks (sgen)
+dnl
+if $sgen_supported; then
+   build_sgen_default=yes
+else
+   build_sgen_default=no
+fi
+SGEN_DEFINES=
+AC_ARG_WITH(sgen, [  --with-sgen=yes,no             Extra Generational GC, default=yes],[buildsgen=$with_sgen],[buildsgen=$build_sgen_default])
+if test x$buildsgen = xyes; then
+   if $sgen_supported; then
+       SGEN_DEFINES="-DHAVE_SGEN_GC -DHAVE_MOVING_COLLECTOR"
+       gc_msg="sgen and $gc_msg"
+   else
+       buildsgen=no
+       AC_MSG_WARN("Sgen is not supported on this platform")
+   fi
+fi
+AC_SUBST(SGEN_DEFINES)
+AM_CONDITIONAL(SUPPORT_SGEN, test x$buildsgen = xyes)
+
+USEJIT=false
+if test x$JIT_SUPPORTED = xyes; then
+   if $jit_wanted; 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
+   fi
+else
+   if test x$interp_wanted = xtrue; then
+      jit_status="interpreter"
+   else
+      AC_ERROR(No JIT or interpreter support available or selected.)
+   fi
+fi
+
+AM_CONDITIONAL(USE_JIT, test x$USEJIT = xtrue)
+
+libsuffix=".so"
+
+case "$host" in
+     *-*-darwin*)
+       libsuffix=".dylib"
+       LIBC="libc.dylib"
+       INTL="libintl.dylib"
+       SQLITE="libsqlite.0.dylib"
+       SQLITE3="libsqlite3.0.dylib"
+       X11="libX11.dylib"
+       ;;
+     *-*-*netbsd*)
+       LIBC="libc.so.12"
+       INTL="libintl.so.0"
+       ;;
+    *-*-*freebsd*)
+       LIBC="libc.so"
+       INTL="libintl.so"
+       SQLITE="libsqlite.so"
+       SQLITE3="libsqlite3.so"
+       ;;
+    *-*-*openbsd*)
+       LIBC="libc.so"
+       INTL="libintl.so"
+        SQLITE="libsqlite.so"
+        SQLITE3="libsqlite3.so"
+       ;;
+    *-*-*linux*)
+       AC_PATH_X
+       dlsearch_path=`(libtool --config ; echo eval echo \\$sys_lib_dlsearch_path_spec) | sh`
+       AC_MSG_CHECKING(for the soname of libX11.so)
+       for i in $x_libraries $dlsearch_path; do
+               for r in 4 5 6; do
+                       if test -f $i/libX11.so.$r; then
+                               X11=libX11.so.$r
+                               AC_MSG_RESULT($X11)
+                       fi
+               done
+       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...]);
+               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
+
+
+AC_SUBST(libsuffix)
+
+if test "x$TARGET" = "xAMD64" -o "x$TARGET" = "xX86"; then
+       if test "x$with_tls" = "x__thread"; then
+               #
+               # On some linux distributions, TLS works in executables, but linking 
+               # against a shared library containing TLS fails with:
+               # undefined reference to `__tls_get_addr'
+               #
+               rm -f conftest.c conftest.so conftest
+               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
+                  AC_MSG_WARN([Disabling usage of __thread.]);
+                  with_tls=pthread
+               fi
+               rm -f conftest.c conftest.so conftest
+       fi
+fi
+
+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
+       CPPFLAGS="$CPPFLAGS -DUSE_COMPILER_TLS"
+       AC_MSG_CHECKING(if the tls_model attribute is supported)
+       AC_TRY_COMPILE([static __thread int foo __attribute__((tls_model("initial-exec")));], [
+               ], [
+                       AC_MSG_RESULT(yes)
+                       AC_DEFINE(HAVE_TLS_MODEL_ATTR, 1, [tls_model available])
+               ], [
+                       AC_MSG_RESULT(no)
+       ])
+fi
+
+if test ${TARGET} = ARM; then
+       dnl ******************************************
+       dnl *** Check to see what FPU is available ***
+       dnl ******************************************
+       AC_MSG_CHECKING(which FPU to use)
+
+       #
+       # This is a bit tricky:
+       #
+       # if (__ARM_PCS_VFP) {
+       #       /* mfloat-abi=hard == VFP with hard ABI */
+       # } elif (!__SOFTFP__) {
+       #       /* mfloat-abi=softfp == VFP with soft ABI */
+       # } else {
+       #       /* mfloat-abi=soft == no VFP */
+       # }
+       #
+       # The exception is iOS (w/ GCC) where none of the above
+       # are defined (but iOS always uses the 'softfp' ABI).
+       #
+       # No support for FPA.
+       #
+
+       fpu=NONE
+
+       # iOS GCC always uses the 'softfp' ABI.
+       if test x"$GCC" = xyes && test x$platform_darwin = xyes; then
+               fpu=VFP
+       fi
+
+       # Are we using the 'hard' ABI?
+       if test x$fpu = xNONE; then
+               AC_TRY_COMPILE([], [
+                       #ifndef __ARM_PCS_VFP
+                       #error "Float ABI is not 'hard'"
+                       #endif
+                       return 0;
+               ], [
+                       fpu=VFP_HARD
+               ], [
+                       fpu=NONE
+               ])
+       fi
+
+       # No 'hard' ABI. 'soft' or 'softfp'?
+       if test x$fpu = xNONE; then
+               AC_TRY_COMPILE([], [
+                       #ifdef __SOFTFP__
+                       #error "Float ABI is not 'softfp'"
+                       #endif
+                       return 0;
+               ], [
+                       fpu=VFP
+               ], [
+                       fpu=NONE
+               ])
+       fi
+
+       AC_MSG_RESULT($fpu)
+       CPPFLAGS="$CPPFLAGS -DARM_FPU_$fpu=1"
+       unset fpu
+
+       dnl *********************************************
+       dnl *** Check which ARM version(s) we can use ***
+       dnl *********************************************
+       AC_MSG_CHECKING(which ARM version to use)
+
+       AC_TRY_COMPILE([], [
+               #if !defined(__ARM_ARCH_5T__) && !defined(__ARM_ARCH_5TE__) && !defined(__ARM_ARCH_5TEJ__)
+               #error Not on ARM v5.
+               #endif
+               return 0;
+       ], [
+               arm_v5=yes
+
+               arm_ver=ARMv5
+       ], [])
+
+       AC_TRY_COMPILE([], [
+               #if !defined(__ARM_ARCH_6J__) && !defined(__ARM_ARCH_6ZK__) && !defined(__ARM_ARCH_6K__) && !defined(__ARM_ARCH_6T2__) && !defined(__ARM_ARCH_6M__)
+               #error Not on ARM v6.
+               #endif
+               return 0;
+       ], [
+               arm_v5=yes
+               arm_v6=yes
+
+               arm_ver=ARMv6
+       ], [])
+
+       AC_TRY_COMPILE([], [
+               #if !defined(__ARM_ARCH_7A__) && !defined(__ARM_ARCH_7R__) && !defined(__ARM_ARCH_7EM__) && !defined(__ARM_ARCH_7M__) && !defined(__ARM_ARCH_7S__)
+               #error Not on ARM v7.
+               #endif
+               return 0;
+       ], [
+               arm_v5=yes
+               arm_v6=yes
+               arm_v7=yes
+
+               arm_ver=ARMv7
+       ], [])
+
+       AC_MSG_RESULT($arm_ver)
+
+       if test x$arm_v5 = xyes; then
+               AC_DEFINE(HAVE_ARMV5, 1, [ARM v5])
+               CPPFLAGS_FOR_LIBGC="$CPPFLAGS_FOR_LIBGC -DHAVE_ARMV5=1"
+       fi
+
+       if test x$arm_v6 = xyes; then
+               AC_DEFINE(HAVE_ARMV6, 1, [ARM v6])
+               CPPFLAGS_FOR_LIBGC="$CPPFLAGS_FOR_LIBGC -DHAVE_ARMV6=1"
+       fi
+
+       if test x$arm_v7 = xyes; then
+               AC_DEFINE(HAVE_ARMV7, 1, [ARM v7])
+               CPPFLAGS_FOR_LIBGC="$CPPFLAGS_FOR_LIBGC -DHAVE_ARMV7=1"
+       fi
+fi
+
+if test ${TARGET} = ARM; then
+       if test "x${with_jumptables}" = "xyes"; then
+                AC_DEFINE(USE_JUMP_TABLES, 1, Use jump tables in JIT)
+        fi
+fi
+
+if test ${TARGET} = unknown; then
+       CPPFLAGS="$CPPFLAGS -DNO_PORT"
+       AC_MSG_WARN("mono has not been ported to $host: some things may not work.")
+fi
+
+if test ${ACCESS_UNALIGNED} = no; then
+       CPPFLAGS="$CPPFLAGS -DNO_UNALIGNED_ACCESS"
+fi
+
+case "x$gc" in
+       xincluded)
+               # Pass CPPFLAGS to libgc configure
+               # We should use a separate variable for this to avoid passing useless and
+               # potentially problematic defines to libgc (like -D_FILE_OFFSET_BITS=64)
+               # This should be executed late so we pick up the final version of CPPFLAGS
+               # The problem with this approach, is that during a reconfigure, the main
+               # configure scripts gets invoked with these arguments, so we use separate
+               # variables understood by libgc's configure to pass CPPFLAGS and CFLAGS.
+               TMP_CPPFLAGS="$CPPFLAGS $CPPFLAGS_FOR_LIBGC"
+               if test x$TARGET = xSPARC -o x$TARGET = xSPARC64; then
+                       TMP_CPPFLAGS=`echo $TMP_CPPFLAGS | sed -e 's/-D_FILE_OFFSET_BITS=64//g'`
+               fi
+               # Don't pass -finstrument-for-thread-suspension in, 
+               # if these are instrumented it will be very bad news 
+               # (infinite recursion, undefined parking behavior, etc)
+               TMP_CPPFLAGS=`echo $TMP_CPPFLAGS | sed -e 's/-finstrument-for-thread-suspension//g'`
+               ac_configure_args="$ac_configure_args --disable-embed-check --with-libgc-threads=$libgc_threads $libgc_configure_args \"CPPFLAGS_FOR_LIBGC=$TMP_CPPFLAGS\" \"CFLAGS_FOR_LIBGC=$CFLAGS_FOR_LIBGC\""
+               AC_CONFIG_SUBDIRS(libgc)
+               ;;
+esac
+
+AC_ARG_WITH(profile2,  [  --with-profile2=yes,no          If you want to install the 2.0/3.5 FX (defaults to yes)],            [], [with_profile2=yes])
+AC_ARG_WITH(profile4,  [  --with-profile4=yes,no          If you want to install the 4.0 FX (defaults to yes)],                [], [with_profile4=yes])
+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])
+
+OPROFILE=no
+AC_ARG_WITH(oprofile,[  --with-oprofile=no,<oprofile install dir>   Enable oprofile support (defaults to no)],[
+       if test x$with_oprofile != xno; then
+           oprofile_include=$with_oprofile/include
+           if test ! -f $oprofile_include/opagent.h; then
+                 AC_MSG_ERROR([oprofile include file not found at $oprofile_include/opagent.h])
+               fi
+           OPROFILE=yes
+               OPROFILE_CFLAGS="-I$oprofile_include"
+           OPROFILE_LIBS="-L$with_oprofile/lib/oprofile -lopagent"
+           AC_DEFINE(HAVE_OPROFILE,1,[Have oprofile support])
+       fi
+])
+
+MALLOC_MEMPOOLS=no
+AC_ARG_WITH(malloc_mempools,[  --with-malloc-mempools=yes,no  Use malloc for each single mempool allocation (only for runtime debugging, defaults to no)],[
+       if test x$with_malloc_mempools = xyes; then
+               MALLOC_MEMPOOLS=yes
+               AC_DEFINE(USE_MALLOC_FOR_MEMPOOLS,1,[Use malloc for each single mempool allocation])
+       fi
+])
+
+
+DISABLE_MCS_DOCS=no
+AC_ARG_WITH(mcs_docs,[  --with-mcs-docs=yes,no         If you want to build the documentation under mcs (defaults to yes)],[
+       if test x$with_mcs_docs != xyes; then
+               DISABLE_MCS_DOCS=yes
+       fi
+])
+if test x$with_profile4 != xyes; then
+       DISABLE_MCS_DOCS=yes
+fi
+
+AC_ARG_WITH(lazy_gc_thread_creation, [  --with-lazy-gc-thread-creation=yes|no      Enable lazy runtime thread creation, embedding host must do it explicitly (defaults to no)],[
+       if test x$with_lazy_gc_thread_creation != xno ; then
+               AC_DEFINE(LAZY_GC_THREAD_CREATION,1,[Enable lazy gc thread creation by the embedding host.])
+       fi
+], [with_lazy_gc_thread_creation=no])
+
+AC_CHECK_HEADER([malloc.h], 
+               [AC_DEFINE([HAVE_USR_INCLUDE_MALLOC_H], [1], 
+                       [Define to 1 if you have /usr/include/malloc.h.])],,)
+
+if test x"$GCC" = xyes; then
+       # Implicit function declarations are not 64 bit safe
+       # Do this late, since this causes lots of configure tests to fail
+       CFLAGS="$CFLAGS -Werror-implicit-function-declaration"
+       # jay has a lot of implicit declarations
+       JAY_CFLAGS="-Wno-implicit-function-declaration"
+fi
+
+# When --disable-shared is used, libtool transforms libmono-2.0.la into libmono-2.0.so
+# instead of libmono-static.a
+if test "x$enable_shared" = "xno" -a "x$enable_executables" = "xyes"; then
+   LIBMONO_LA=libmini-static.la
+else
+   if test x$buildsgen = xyes; then
+      LIBMONO_LA=libmonosgen-$API_VER.la
+   else
+      LIBMONO_LA=libmonoboehm-$API_VER.la
+   fi
+fi
+AC_SUBST(LIBMONO_LA)
+
+dnl
+dnl Consistency settings
+dnl
+if test x$cross_compiling = xyes -o x$enable_mcs_build = xno; then
+   DISABLE_MCS_DOCS=yes
+   with_profile2=no
+   with_profile4=no
+   with_profile4_5=no
+   with_monodroid=no
+   with_monotouch=no
+   with_xammac=no
+fi
+
+if test x$DISABLE_MCS_DOCS = xyes; then
+   docs_dir=""
+else
+   docs_dir=docs
+fi
+AC_SUBST(docs_dir)
+
+## Maybe should also disable if mcsdir is invalid.  Let's punt the issue for now.
+AM_CONDITIONAL(BUILD_MCS, [test x$cross_compiling = xno && test x$enable_mcs_build != xno])
+
+AM_CONDITIONAL(HAVE_OPROFILE, test x$OPROFILE = xyes)
+AC_SUBST(OPROFILE_CFLAGS)
+AC_SUBST(OPROFILE_LIBS)
+
+libmono_ldflags="$libmono_ldflags $LIBS"
+
+AM_CONDITIONAL(INSTALL_2_0, [test "x$with_profile2" = xyes])
+AM_CONDITIONAL(INSTALL_4_0, [test "x$with_profile4" = xyes])
+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)
+AM_CONDITIONAL(SPARC, test x$TARGET = xSPARC)
+AM_CONDITIONAL(SPARC64, test x$TARGET = xSPARC64)
+AM_CONDITIONAL(X86, test x$TARGET = xX86)
+AM_CONDITIONAL(AMD64, test x$TARGET = xAMD64)
+AM_CONDITIONAL(IA64, test x$TARGET = xIA64)
+AM_CONDITIONAL(MIPS, test x$TARGET = xMIPS)
+AM_CONDITIONAL(POWERPC, test x$TARGET = xPOWERPC)
+AM_CONDITIONAL(POWERPC64, test x$TARGET = xPOWERPC64)
+AM_CONDITIONAL(ARM, test x$TARGET = xARM)
+AM_CONDITIONAL(ARM64, test x$TARGET = xARM64)
+AM_CONDITIONAL(S390X, test x$TARGET = xS390X)
+AM_CONDITIONAL(HOST_X86, test x$HOST = xX86)
+AM_CONDITIONAL(HOST_AMD64, test x$HOST = xAMD64)
+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(JIT_SUPPORTED, test x$JIT_SUPPORTED = xyes)
+AM_CONDITIONAL(INTERP_SUPPORTED, test x$interp_wanted = xtrue)
+AM_CONDITIONAL(INCLUDED_LIBGC, test x$gc = xincluded)
+
+AC_SUBST(LIBC)
+AC_SUBST(INTL)
+AC_SUBST(SQLITE)
+AC_SUBST(SQLITE3)
+AC_SUBST(X11)
+AC_SUBST(XINERAMA)
+AC_DEFINE_UNQUOTED(ARCHITECTURE,"$arch_target",[The architecture this is running on])
+AC_SUBST(arch_target)
+AC_SUBST(CFLAGS)
+AC_SUBST(CPPFLAGS)
+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
+AC_SUBST(mono_runtime)
+
+mono_cfg_root=$mono_build_root/runtime
+if test x$host_win32 = xyes; then
+  if test "x$cross_compiling" = "xno"; then
+    mono_cfg_dir=`cygpath -w -a $mono_cfg_root`\\etc
+  else
+    mono_cfg_dir=`echo $mono_cfg_root | tr '/' '\\'`\\etc
+  fi
+else
+  mono_cfg_dir=$mono_cfg_root/etc
+fi
+AC_SUBST(mono_cfg_dir)
+
+AC_CONFIG_FILES([po/mcs/Makefile.in])
+
+AC_CONFIG_FILES([runtime/mono-wrapper],[chmod +x runtime/mono-wrapper])
+AC_CONFIG_FILES([runtime/monodis-wrapper],[chmod +x runtime/monodis-wrapper])
+
+AC_CONFIG_COMMANDS([runtime/etc/mono/1.0/machine.config],
+[   depth=../../../..
+    case $srcdir in
+    [[\\/$]]* | ?:[[\\/]]* ) reldir=$srcdir ;;
+    .) reldir=$depth ;;
+    *) reldir=$depth/$srcdir ;;
+    esac
+    $ac_aux_dir/install-sh -d runtime/etc/mono/1.0
+    cd runtime/etc/mono/1.0
+    rm -f machine.config
+    $LN_S $reldir/data/net_1_1/machine.config machine.config
+    cd $depth
+],[LN_S='$LN_S'])
+
+AC_CONFIG_COMMANDS([runtime/etc/mono/2.0/machine.config],
+[   depth=../../../..
+    case $srcdir in
+    [[\\/$]]* | ?:[[\\/]]* ) reldir=$srcdir ;;
+    .) reldir=$depth ;;
+    *) reldir=$depth/$srcdir ;;
+    esac
+    $ac_aux_dir/install-sh -d runtime/etc/mono/2.0
+    cd runtime/etc/mono/2.0
+    rm -f machine.config
+    $LN_S $reldir/data/net_2_0/machine.config machine.config
+    cd $depth
+],[LN_S='$LN_S'])
+
+AC_CONFIG_COMMANDS([runtime/etc/mono/2.0/web.config],
+[   depth=../../../..
+    case $srcdir in
+    [[\\/$]]* | ?:[[\\/]]* ) reldir=$srcdir ;;
+    .) reldir=$depth ;;
+    *) reldir=$depth/$srcdir ;;
+    esac
+    $ac_aux_dir/install-sh -d runtime/etc/mono/2.0
+    cd runtime/etc/mono/2.0
+    rm -f web.config
+    $LN_S $reldir/data/net_2_0/web.config web.config
+    cd $depth
+],[LN_S='$LN_S'])
+
+AC_CONFIG_COMMANDS([runtime/etc/mono/browscap.ini],
+[   depth=../../..
+    case $srcdir in
+    [[\\/$]]* | ?:[[\\/]]* ) reldir=$srcdir ;;
+    .) reldir=$depth ;;
+    *) reldir=$depth/$srcdir ;;
+    esac
+    $ac_aux_dir/install-sh -d runtime/etc/mono/
+    cd runtime/etc/mono/
+    rm -f browscap.ini
+    $LN_S $reldir/data/browscap.ini browscap.ini
+    cd $depth
+],[LN_S='$LN_S'])
+
+AC_CONFIG_COMMANDS([runtime/etc/mono/2.0/Browsers/Compat.browser],
+[   depth=../../../../..
+    case $srcdir in
+    [[\\/$]]* | ?:[[\\/]]* ) reldir=$srcdir ;;
+    .) reldir=$depth ;;
+    *) reldir=$depth/$srcdir ;;
+    esac
+    $ac_aux_dir/install-sh -d runtime/etc/mono/2.0/Browsers/
+    cd runtime/etc/mono/2.0/Browsers
+    rm -f Compat.browser
+    $LN_S $reldir/data/Browsers/Compat.browser Compat.browser
+    cd $depth
+],[LN_S='$LN_S'])
+
+AC_CONFIG_COMMANDS([runtime/etc/mono/4.0/Browsers/Compat.browser],
+[   depth=../../../../..
+    case $srcdir in
+    [[\\/$]]* | ?:[[\\/]]* ) reldir=$srcdir ;;
+    .) reldir=$depth ;;
+    *) reldir=$depth/$srcdir ;;
+    esac
+    $ac_aux_dir/install-sh -d runtime/etc/mono/4.0/Browsers/
+    cd runtime/etc/mono/4.0/Browsers
+    rm -f Compat.browser
+    $LN_S $reldir/data/Browsers/Compat.browser Compat.browser
+    cd $depth
+],[LN_S='$LN_S'])
+
+AC_CONFIG_COMMANDS([runtime/etc/mono/4.5/Browsers/Compat.browser],
+[   depth=../../../../..
+    case $srcdir in
+    [[\\/$]]* | ?:[[\\/]]* ) reldir=$srcdir ;;
+    .) reldir=$depth ;;
+    *) reldir=$depth/$srcdir ;;
+    esac
+    $ac_aux_dir/install-sh -d runtime/etc/mono/4.5/Browsers/
+    cd runtime/etc/mono/4.5/Browsers
+    rm -f Compat.browser
+    $LN_S $reldir/data/Browsers/Compat.browser Compat.browser
+    cd $depth
+],[LN_S='$LN_S'])
+
+AC_CONFIG_COMMANDS([runtime/etc/mono/4.0/machine.config],
+[   depth=../../../..
+    case $srcdir in
+    [[\\/$]]* | ?:[[\\/]]* ) reldir=$srcdir ;;
+    .) reldir=$depth ;;
+    *) reldir=$depth/$srcdir ;;
+    esac
+    $ac_aux_dir/install-sh -d runtime/etc/mono/4.0
+    cd runtime/etc/mono/4.0
+    rm -f machine.config
+    $LN_S $reldir/data/net_4_0/machine.config machine.config
+    cd $depth
+],[LN_S='$LN_S'])
+
+AC_CONFIG_COMMANDS([runtime/etc/mono/4.0/web.config],
+[   depth=../../../..
+    case $srcdir in
+    [[\\/$]]* | ?:[[\\/]]* ) reldir=$srcdir ;;
+    .) reldir=$depth ;;
+    *) reldir=$depth/$srcdir ;;
+    esac
+    $ac_aux_dir/install-sh -d runtime/etc/mono/4.0
+    cd runtime/etc/mono/4.0
+    rm -f web.config
+    $LN_S $reldir/data/net_4_0/web.config web.config
+    cd $depth
+],[LN_S='$LN_S'])
+
+AC_CONFIG_COMMANDS([runtime/etc/mono/4.5/machine.config],
+[   depth=../../../..
+    case $srcdir in
+    [[\\/$]]* | ?:[[\\/]]* ) reldir=$srcdir ;;
+    .) reldir=$depth ;;
+    *) reldir=$depth/$srcdir ;;
+    esac
+    $ac_aux_dir/install-sh -d runtime/etc/mono/4.5
+    cd runtime/etc/mono/4.5
+    rm -f machine.config
+    $LN_S $reldir/data/net_4_5/machine.config machine.config
+    cd $depth
+],[LN_S='$LN_S'])
+
+AC_CONFIG_COMMANDS([runtime/etc/mono/4.5/web.config],
+[   depth=../../../..
+    case $srcdir in
+    [[\\/$]]* | ?:[[\\/]]* ) reldir=$srcdir ;;
+    .) reldir=$depth ;;
+    *) reldir=$depth/$srcdir ;;
+    esac
+    $ac_aux_dir/install-sh -d runtime/etc/mono/4.5
+    cd runtime/etc/mono/4.5
+    rm -f web.config
+    $LN_S $reldir/data/net_4_5/web.config web.config
+    cd $depth
+],[LN_S='$LN_S'])
+
+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])
+
+AC_OUTPUT([
+Makefile
+mono-core.spec
+mono-uninstalled.pc
+scripts/mono-find-provides
+scripts/mono-find-requires
+mono/Makefile
+mono/utils/Makefile
+mono/metadata/Makefile
+mono/dis/Makefile
+mono/cil/Makefile
+mono/arch/Makefile
+mono/arch/x86/Makefile
+mono/arch/amd64/Makefile
+mono/arch/ppc/Makefile
+mono/arch/sparc/Makefile
+mono/arch/s390x/Makefile
+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
+mono/tests/cas/Makefile
+mono/tests/cas/assembly/Makefile
+mono/tests/cas/demand/Makefile
+mono/tests/cas/inheritance/Makefile
+mono/tests/cas/linkdemand/Makefile
+mono/tests/cas/threads/Makefile
+mono/tests/gc-descriptors/Makefile
+mono/unit-tests/Makefile
+mono/benchmark/Makefile
+mono/monograph/Makefile
+mono/io-layer/Makefile
+mono/mini/Makefile
+mono/profiler/Makefile
+m4/Makefile
+ikvm-native/Makefile
+scripts/Makefile
+man/Makefile
+docs/Makefile
+data/Makefile
+data/net_2_0/Makefile
+data/net_4_0/Makefile
+data/net_4_5/Makefile
+data/net_2_0/Browsers/Makefile
+data/net_4_0/Browsers/Makefile
+data/net_4_5/Browsers/Makefile
+data/mint.pc
+data/mono-2.pc
+data/monosgen-2.pc
+data/mono.pc
+data/mono-cairo.pc
+data/mono-nunit.pc
+data/mono-options.pc
+data/mono-lineeditor.pc
+data/monodoc.pc
+data/dotnet.pc
+data/dotnet35.pc
+data/wcf.pc
+data/cecil.pc
+data/system.web.extensions_1.0.pc
+data/system.web.extensions.design_1.0.pc
+data/system.web.mvc.pc
+data/system.web.mvc2.pc
+data/system.web.mvc3.pc
+data/aspnetwebstack.pc
+data/reactive.pc
+samples/Makefile
+support/Makefile
+data/config
+tools/Makefile
+tools/locale-builder/Makefile
+tools/sgen/Makefile
+runtime/Makefile
+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
+   # libtool seems to inherit -mno-cygwin from our CFLAGS, and uses it to compile its executable
+   # wrapper scripts which use exec(). gcc has no problem compiling+linking this, but the resulting
+   # executable doesn't work...
+   sed -e "s,-mno-cygwin,,g" libtool > libtool.new; mv libtool.new libtool; chmod 755 libtool
+fi
+
+if test x$platform_darwin = xyes; then
+   # This doesn't seem to be required and it slows down parallel builds
+   sed -e 's,lock_old_archive_extraction=yes,lock_old_archive_extraction=no,g' < libtool > libtool.new && mv libtool.new libtool && chmod +x libtool
+fi
+
+(
+  case $prefix in
+  NONE) prefix=$ac_default_prefix ;;
+  esac
+  case $exec_prefix in
+  NONE) exec_prefix='${prefix}' ;;
+  esac
+
+  #
+  # If we are cross compiling, we don't build in the mcs/ tree.  Let us not clobber
+  # any existing config.make.  This allows people to share the same source tree
+  # with different build directories, one native and one cross
+  #
+  if test x$cross_compiling = xno && test x$enable_mcs_build != xno; then
+
+    test -w $mcs_topdir/build || chmod +w $mcs_topdir/build
+
+    echo "prefix=$prefix" > $mcs_topdir/build/config.make
+    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 '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
+    echo "JAY_CFLAGS = $JAY_CFLAGS" >> $mcs_topdir/build/config.make
+
+    case $INSTALL in
+    [[\\/$]]* | ?:[[\\/]]* ) mcs_INSTALL=$INSTALL ;;
+    *) mcs_INSTALL=$mono_build_root/$INSTALL ;;
+    esac
+
+    echo "INSTALL = $mcs_INSTALL" >> $mcs_topdir/build/config.make
+
+    export VERSION
+    [myver=$($AWK 'BEGIN {
+      split (ENVIRON["VERSION"] ".0.0.0", vsplit, ".")
+      if(length(vsplit [1]) > 4) {
+        split (substr(ENVIRON["VERSION"], 0, 4) "." substr(ENVIRON["VERSION"], 5) ".0.0", vsplit, ".")
+      }
+      print vsplit [1] "." vsplit [2] "." vsplit [3] "." vsplit [4]
+    }')]
+
+    echo "MONO_VERSION = $myver" >> $mcs_topdir/build/config.make
+
+    if test x$platform_darwin = xyes; then
+      echo "PLATFORM = darwin" >> $mcs_topdir/build/config.make
+    fi
+
+       if test x$AOT_SUPPORTED = xyes -a x$enable_system_aot = xdefault; then
+          enable_system_aot=yes
+       fi
+
+       if test "x$enable_loadedllvm" = "xyes"; then
+          # This seems to fail on the x86 buildbots
+          enable_system_aot=no
+       fi
+
+    if test x$host_win32 = xno -a x$enable_system_aot = xyes; then
+      echo "ENABLE_AOT = 1" >> $mcs_topdir/build/config.make
+    fi
+
+    if test x$DISABLE_MCS_DOCS = xyes; then
+      echo "DISABLE_MCS_DOCS = yes" >> $mcs_topdir/build/config.make
+    fi
+
+    if test x$has_extension_module != xno; then
+        echo "EXTENSION_MODULE = 1" >> $srcdir/$mcsdir/build/config.make
+    fi
+
+       default_profile=net_2_0
+    if test -z "$INSTALL_4_0_TRUE"; then :
+               default_profile=net_4_0
+    fi
+    if test -z "$INSTALL_MONODROID_TRUE"; then :
+               default_profile=monodroid
+    fi
+    if test -z "$INSTALL_MONOTOUCH_TRUE"; then :
+               default_profile=monotouch
+    fi
+       if test -z "$INSTALL_XAMMAC_TRUE"; then :
+               default_profile=xammac
+       fi
+    if test -z "$INSTALL_4_5_TRUE"; then :
+               default_profile=net_4_5
+    fi
+    
+    echo "DEFAULT_PROFILE = $default_profile" >> $srcdir/$mcsdir/build/config.make
+    
+    if test "x$test_bcl_opt" = "xyes"; then    
+      echo "BCL_OPTIMIZE = 1" >> $srcdir/$mcsdir/build/config.make
+    fi
+
+  fi
+
+  # if we have an olive folder, override the default settings
+  if test -d $olivedir; then
+
+    if test x$cross_compiling = xno && test x$enable_olive_build != xno; then
+
+      test -w $srcdir/$olivedir/build || chmod +w $srcdir/$olivedir/build
+
+      echo "prefix=$prefix" > $srcdir/$olivedir/build/config.make
+      echo "exec_prefix=$exec_prefix" >> $srcdir/$olivedir/build/config.make
+      echo 'mono_libdir=${exec_prefix}/lib' >> $srcdir/$olivedir/build/config.make
+      echo 'MCS_FLAGS = $(PLATFORM_DEBUG_FLAGS)' >> $srcdir/$olivedir/build/config.make
+      echo "RUNTIME = $mono_build_root/runtime/mono-wrapper" >> $srcdir/$olivedir/build/config.make
+      echo "MONO_VERSION = $myver" >> $srcdir/$olivedir/build/config.make
+    fi
+  fi
+
+)
+
+libgdiplus_msg=${libgdiplus_loc:-assumed to be installed}
+
+echo "
+        mcs source:    $mcsdir
+
+   Engine:
+       GC:            $gc_msg 
+       TLS:           $with_tls
+       SIGALTSTACK:   $with_sigaltstack
+       Engine:        $jit_status
+       oprofile:      $OPROFILE
+       BigArrays:     $enable_big_arrays
+       DTrace:        $enable_dtrace
+       LLVM Back End: $enable_llvm (dynamically loaded: $enable_loadedllvm)
+
+   Libraries:
+       .NET 2.0/3.5:  $with_profile2
+       .NET 4.0:      $with_profile4
+       .NET 4.5:      $with_profile4_5
+       MonoDroid:     $with_monodroid
+       MonoTouch:     $with_monotouch
+       Xamarin.Mac:   $with_xammac
+       JNI support:   $jdk_headers_found
+       libgdiplus:    $libgdiplus_msg
+       zlib:          $zlib_msg
+       $disabled
+"
+if test x$with_static_mono = xno -a "x$host_win32" != "xyes"; then
+   AC_MSG_WARN(Turning off static Mono is a risk, you might run into unexpected bugs)
+fi
diff --git a/configure.in b/configure.in
deleted file mode 100644 (file)
index 32c3efe..0000000
+++ /dev/null
@@ -1,3791 +0,0 @@
-# Process this file with autoconf to produce a configure script.
-#AC_PREREQ([2.62])
-
-AC_INIT(mono, [3.4.1],
-        [http://bugzilla.xamarin.com/enter_bug.cgi?classification=Mono])
-
-AC_CONFIG_SRCDIR([README.md])
-AC_CONFIG_MACRO_DIR([m4])
-AC_CANONICAL_SYSTEM
-AC_CANONICAL_HOST
-
-# Gross hack to enable 'make dist' on automake 1.9+tar 1.14.
-# The extra brackets are to foil regex-based scans.
-m4_ifdef([_A][M_PROG_TAR],[_A][M_SET_OPTION([tar-ustar])])
-
-AM_INIT_AUTOMAKE([1.9 dist-bzip2 tar-ustar no-dist-gzip foreign subdir-objects])
-AC_CONFIG_HEADERS([config.h])
-AM_MAINTAINER_MODE
-
-API_VER=2.0
-AC_SUBST(API_VER)
-
-AC_PROG_LN_S
-
-m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
-
-case $host_os in
-*cygwin* )
-                echo "Run configure using ./configure --host=i686-pc-mingw32"
-                exit 1
-esac
-
-# In case of cygwin, override LN_S, irrespective of what it determines.
-# The build uses cygwin, but the actual runtime doesn't.
-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_configure_args=
-
-if test -d $srcdir/libgc ; then
-  gc_default=included
-else
-  gc_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
-CFLAGS_FOR_LIBGC=$CFLAGS
-CPPFLAGS_FOR_EGLIB=$CPPFLAGS
-CFLAGS_FOR_EGLIB=$CFLAGS
-
-#
-# These are the flags that need to be stored in the mono.pc file for 
-# compiling code that will embed Mono
-#
-libmono_cflags=""
-libmono_ldflags=""
-AC_SUBST(libmono_cflags)
-AC_SUBST(libmono_ldflags)
-
-# Variable to have relocatable .pc files (lib, or lib64)
-reloc_libdir=`basename ${libdir}`
-AC_SUBST(reloc_libdir)
-
-dnl if linker handles the version script
-no_version_script=no
-
-# Set to yes if Unix sockets cannot be created in an anonymous namespace
-need_link_unlink=no
-
-#Set to extra linker flags to be passed to the runtime binaries (mono /mono-sgen)
-extra_runtime_ldflags=""
-
-# Thread configuration inspired by sleepycat's db
-AC_MSG_CHECKING([host platform characteristics])
-libgc_threads=no
-has_dtrace=no
-parallel_mark=yes
-ikvm_native=yes
-
-case "$host" in
-       powerpc*-*-linux*)
-               # https://bugzilla.novell.com/show_bug.cgi?id=504411
-               disable_munmap=yes
-       ;;
-esac
-
-host_win32=no
-target_win32=no
-platform_android=no
-platform_darwin=no
-case "$host" in
-       *-mingw*|*-*-cygwin*)
-               AC_DEFINE(HOST_WIN32,1,[Host Platform is Win32])
-               AC_DEFINE(DISABLE_PORTABILITY,1,[Disable the io-portability layer])
-               AC_DEFINE(PLATFORM_NO_SYMLINKS,1,[This platform does not support symlinks])
-               host_win32=yes
-               mono_cv_clang=no
-               if test "x$cross_compiling" = "xno"; then
-                       target_win32=yes
-                       if test "x$host" == "x$build" -a "x$host" == "x$target"; then
-                               AC_DEFINE(TARGET_WIN32,1,[Target OS is Win32])
-                       fi
-               else
-                       target_win32=yes
-                       AC_DEFINE(TARGET_WIN32,1,[Target OS is Win32/MinGW])
-                       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"
-               libmono_cflags="-mms-bitfields -mwindows"
-               libmono_ldflags="-mms-bitfields -mwindows"
-               libdl=
-               libgc_threads=win32
-               gc_default=included
-               with_sigaltstack=no
-               LN_S=cp
-               # This forces libgc to use the DllMain based thread registration code on win32
-               libgc_configure_args="$libgc_configure_args --enable-win32-dllmain=yes"
-               ;;
-       *-*-*netbsd*)
-               host_win32=no
-               CPPFLAGS="$CPPFLAGS -D_REENTRANT -DGC_NETBSD_THREADS -D_GNU_SOURCE"
-               libmono_cflags="-D_REENTRANT"
-               LDFLAGS="$LDFLAGS -pthread"
-               CPPFLAGS="$CPPFLAGS -DPLATFORM_BSD"
-               libmono_ldflags="-pthread"
-               need_link_unlink=yes
-               libdl="-ldl"
-               libgc_threads=pthreads
-               with_sigaltstack=no
-               use_sigposix=yes
-               ;;
-       *-*-*freebsd*)
-               host_win32=no
-               if test "x$PTHREAD_CFLAGS" = "x"; then
-                       CPPFLAGS="$CPPFLAGS -DGC_FREEBSD_THREADS"
-                       libmono_cflags=
-               else
-                       CPPFLAGS="$CPPFLAGS $PTHREAD_CFLAGS -DGC_FREEBSD_THREADS"
-                       libmono_cflags="$PTHREAD_CFLAGS"
-               fi
-               if test "x$PTHREAD_LIBS" = "x"; then
-                       LDFLAGS="$LDFLAGS -pthread -L/usr/local/lib"
-                       libmono_ldflags="-pthread"
-               else
-                       LDFLAGS="$LDFLAGS $PTHREAD_LIBS -L/usr/local/lib"
-                       libmono_ldflags="$PTHREAD_LIBS"
-               fi
-               CPPFLAGS="$CPPFLAGS -DPLATFORM_BSD"
-               need_link_unlink=yes
-               AC_DEFINE(PTHREAD_POINTER_ID, 1, [pthread is a pointer])
-               libdl=
-               libgc_threads=pthreads
-               use_sigposix=yes
-               has_dtrace=yes
-               ;;
-       *-*-*openbsd*)
-               host_win32=no
-               CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE -DGC_OPENBSD_THREADS -DPLATFORM_BSD -D_REENTRANT -DUSE_MMAP"
-               if test "x$disable_munmap" != "xyes"; then
-               CPPFLAGS="$CPPFLAGS -DUSE_MUNMAP"
-               fi
-               libmono_cflags="-D_THREAD_SAFE -D_REENTRANT"
-               LDFLAGS="$LDFLAGS -pthread"
-               need_link_unlink=yes
-               AC_DEFINE(PTHREAD_POINTER_ID)
-               libdl=
-               gc_default=boehm
-               libgc_threads=pthreads
-               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"
-
-               # The configure check can't detect this
-               AC_DEFINE(HAVE_LARGE_FILE_SUPPORT, 1, [Have large file support])
-
-               # to bypass the underscore linker check, can't work when cross-compiling
-               mono_cv_uscore=yes
-               mono_cv_clang=no
-               ;;
-       *-*-linux*)
-               host_win32=no
-               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
-               if test "x$cross_compiling" != "xno"; then
-                       # to bypass the underscore linker check, not
-                       # available during cross-compilation
-                       mono_cv_uscore=no
-                fi
-               case "$host" in
-               aarch64-*)
-                       support_boehm=no
-                       with_gc=sgen
-                       ;;
-               esac
-               ;;
-       *-*-nacl*)
-               host_win32=no
-               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=
-               libgc_threads=pthreads
-               gc_default=boehm
-               use_sigposix=yes
-               ikvm_native=no
-               AC_DEFINE(DISABLE_SOCKETS,1,[Disable sockets support])
-               AC_DEFINE(DISABLE_ATTACH, 1, [Disable agent attach support])
-               ;;
-       *-*-hpux*)
-               host_win32=no
-               CPPFLAGS="$CPPFLAGS -DGC_HPUX_THREADS -D_HPUX_SOURCE -D_XOPEN_SOURCE_EXTENDED -D_REENTRANT"
-               # +ESdbgasm only valid on bundled cc on RISC
-               # silently ignored for ia64
-               if test $GCC != "yes"; then
-                       CFLAGS="$CFLAGS +ESdbgasm"
-                       # Arrange for run-time dereferencing of null
-                       # pointers to produce a SIGSEGV signal.
-                       LDFLAGS="$LDFLAGS -z"
-               fi
-               CFLAGS="$CFLAGS +ESdbgasm"
-               LDFLAGS="$LDFLAGS -z"
-               libmono_cflags="-D_REENTRANT"
-               libmono_ldflags="-lpthread"
-               libgc_threads=pthreads
-               need_link_unlink=yes
-               use_sigposix=yes
-               ;;
-       *-*-solaris*)
-               host_win32=no
-               CPPFLAGS="$CPPFLAGS -DGC_SOLARIS_THREADS -DGC_SOLARIS_PTHREADS -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DUSE_MMAP -DUSE_MUNMAP -DPLATFORM_SOLARIS"
-               need_link_unlink=yes
-               libmono_cflags="-D_REENTRANT"
-               libgc_threads=pthreads
-               # This doesn't seem to work on solaris/x86, but the configure test runs
-               with_tls=pthread
-               has_dtrace=yes
-               use_sigposix=yes
-               enable_solaris_tar_check=yes
-               ;;
-       *-*-darwin*)
-               parallel_mark="Disabled_Currently_Hangs_On_MacOSX"
-               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 -DGetCurrentProcess=MonoGetCurrentProcess -DGetCurrentThread=MonoGetCurrentThread -DCreateEvent=MonoCreateEvent"
-               libmono_cflags="-D_THREAD_SAFE"
-               need_link_unlink=yes
-               AC_DEFINE(PTHREAD_POINTER_ID)
-               AC_DEFINE(USE_MACH_SEMA, 1, [...])
-               no_version_script=yes
-               libdl=
-               libgc_threads=pthreads
-               has_dtrace=yes
-               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-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 and newer config.guess reports as this
-                       i*86-*-darwin*)
-                               BROKEN_DARWIN_FLAGS="-arch i386 -D_XOPEN_SOURCE"
-                               BROKEN_DARWIN_CPPFLAGS="-D_XOPEN_SOURCE"
-                               CPPFLAGS="$CPPFLAGS $BROKEN_DARWIN_CPPFLAGS"
-                               CFLAGS="$CFLAGS $BROKEN_DARWIN_FLAGS"
-                               CXXFLAGS="$CXXFLAGS $BROKEN_DARWIN_FLAGS"
-                               CCASFLAGS="$CCASFLAGS $BROKEN_DARWIN_FLAGS"
-                               CPPFLAGS_FOR_LIBGC="$CPPFLAGS_FOR_LIBGC $BROKEN_DARWIN_CPPFLAGS"
-                               CFLAGS_FOR_LIBGC="$CFLAGS_FOR_LIBGC $BROKEN_DARWIN_FLAGS"
-                               CPPFLAGS_FOR_EGLIB="$CPPFLAGS_FOR_EGLIB $BROKEN_DARWIN_CPPFLAGS"
-                               CFLAGS_FOR_EGLIB="$CFLAGS_FOR_EGLIB $BROKEN_DARWIN_FLAGS"
-                               ;;
-                       x*64-*-darwin*)
-                               ;;
-                       arm*-darwin*)
-                               has_dtrace=no
-                               ;;                      
-               esac
-               ;;
-       *-*-haiku*)
-               host_win32=no
-               CPPFLAGS="$CPPFLAGS -D_REENTRANT -D_THREAD_SAFE"
-               libmono_cflags="-D_REENTRANT -D_THREAD_SAFE"
-               libdl=
-               LIBS="$LIBS -lnetwork"
-               need_link_unlink=yes
-               AC_DEFINE(PTHREAD_POINTER_ID)
-               libgc_threads=pthreads
-               use_sigposix=yes
-               ;;
-       *)
-               AC_MSG_WARN([*** Please add $host to configure.in checks!])
-               host_win32=no
-               libdl="-ldl"
-               ;;
-esac
-AC_MSG_RESULT(ok)
-
-if test x$need_link_unlink = xyes; then
-   AC_DEFINE(NEED_LINK_UNLINK, 1, [Define if Unix sockets cannot be created in an anonymous namespace])
-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_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
-AC_CHECK_TOOL(CXX, g++, g++)
-AC_PROG_CXX
-AM_PROG_AS
-AC_PROG_INSTALL
-AC_PROG_AWK
-AM_PROG_CC_C_O
-dnl We should use AM_PROG_AS, but it's not available on automake/aclocal 1.4
-: ${CCAS='$(CC)'}
-# Set ASFLAGS if not already set.
-: ${CCASFLAGS='$(CFLAGS)'}
-AC_SUBST(CCAS)
-AC_SUBST(CCASFLAGS)
-
-# AC_PROG_CXX helpfully sets CXX to g++ even if no c++ compiler is found so check
-# GXX instead. See http://lists.gnu.org/archive/html/bug-autoconf/2002-04/msg00056.html
-if test "x$CXX" = "xg++"; then
-       if test "x$GXX" != "xyes"; then
-               # automake/libtool is so broken, it requires g++ even if the c++ sources
-               # are inside automake conditionals
-               AC_MSG_ERROR([You need to install g++])
-       fi
-fi
-
-dnl may require a specific autoconf version
-dnl AC_PROG_CC_FOR_BUILD
-dnl CC_FOR_BUILD not automatically detected
-CC_FOR_BUILD=$CC
-CFLAGS_FOR_BUILD=$CFLAGS
-BUILD_EXEEXT=
-if test "x$cross_compiling" = "xyes"; then
-       CC_FOR_BUILD=cc
-       CFLAGS_FOR_BUILD=
-       BUILD_EXEEXT=""
-fi
-AC_SUBST(CC_FOR_BUILD)
-AC_SUBST(CFLAGS_FOR_BUILD)
-AC_SUBST(HOST_CC)
-AC_SUBST(BUILD_EXEEXT)
-
-AM_CONDITIONAL(CROSS_COMPILING, [test x$cross_compiling = xyes])
-AM_CONDITIONAL(USE_BATCH_FILES, [test x$host_win32 = xyes -a x$cross_compiling = xyes])
-
-# Set STDC_HEADERS
-AC_HEADER_STDC
-AC_LIBTOOL_WIN32_DLL
-# This causes monodis to not link correctly
-#AC_DISABLE_FAST_INSTALL
-AM_PROG_LIBTOOL
-# Use dolt (http://dolt.freedesktop.org/) instead of libtool for building.
-DOLT
-
-export_ldflags=`(./libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh`
-AC_SUBST(export_ldflags)
-
-# Test whenever ld supports -version-script
-AC_PROG_LD
-AC_PROG_LD_GNU
-if test "x$lt_cv_prog_gnu_ld" = "xno"; then
-   no_version_script=yes
-fi
-
-AM_ICONV()
-
-AM_CONDITIONAL(NO_VERSION_SCRIPT, test x$no_version_script = xyes)
-
-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 libproc.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)
-AC_CHECK_HEADERS([linux/netlink.h linux/rtnetlink.h],
-                  [], [], [#include <stddef.h>
-                 #include <sys/socket.h>
-                 #include <linux/socket.h>])
-
-AC_CHECK_HEADERS(sys/user.h, [], [],
-[
-#ifdef HAVE_SYS_PARAM_H
-# include <sys/param.h>
-#endif
-])
-
-AC_CHECK_HEADER(zlib.h, [have_zlib=yes], [have_zlib=no])
-if test x$have_zlib = xyes; then
-   AC_TRY_COMPILE([#include <zlib.h>], [
-   #if defined(ZLIB_VERNUM) && (ZLIB_VERNUM >= 0x1230)
-   return 0;
-   #else
-   #error No good zlib found
-   #endif
-   ],[
-       AC_MSG_RESULT(Using system zlib)
-       zlib_msg="system zlib"
-       AC_DEFINE(HAVE_SYS_ZLIB,1,[Have system zlib])
-   ],[
-       AC_MSG_RESULT(Using embedded zlib)
-       have_zlib=no
-       zlib_msg="bundled zlib"
-   ])
-fi
-
-AM_CONDITIONAL(HAVE_ZLIB, test x$have_zlib = xyes)
-AC_DEFINE(HAVE_ZLIB,1,[Have system zlib])
-
-# for mono/metadata/debug-symfile.c
-AC_CHECK_HEADERS(elf.h)
-
-# for support
-AC_CHECK_HEADERS(poll.h)
-AC_CHECK_HEADERS(sys/poll.h)
-AC_CHECK_HEADERS(sys/wait.h)
-AC_CHECK_HEADERS(grp.h)
-AC_CHECK_HEADERS(syslog.h)
-
-# for mono/dis
-AC_CHECK_HEADERS(wchar.h)
-AC_CHECK_HEADERS(ieeefp.h)
-AC_MSG_CHECKING(for isinf)
-AC_TRY_LINK([#include <math.h>], [
-       int f = isinf (1);
-], [
-       AC_MSG_RESULT(yes)
-       AC_DEFINE(HAVE_ISINF, 1, [isinf available])
-], [
-       # We'll have to use signals
-       AC_MSG_RESULT(no)
-])
-# mingw
-AC_CHECK_FUNCS(_finite, , AC_MSG_CHECKING(for _finite in math.h)
-       AC_TRY_LINK([#include <math.h>], 
-       [ _finite(0.0); ], 
-       AC_DEFINE(HAVE__FINITE, 1, [Have _finite in -lm]) AC_MSG_RESULT(yes),
-       AC_MSG_RESULT(no)))
-
-# for Linux statfs support
-AC_CHECK_HEADERS(linux/magic.h)
-
-# not 64 bit clean in cross-compile
-AC_CHECK_SIZEOF(void *, 4)
-
-AC_CACHE_CHECK([for clang],
-       mono_cv_clang,[
-       AC_TRY_COMPILE([], [
-               #ifdef __clang__
-               #else
-               #error "FAILED"
-               #endif
-               return 0;
-       ],
-       [mono_cv_clang=yes],
-       [mono_cv_clang=no],
-       [])
-])
-
-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 -Wno-switch -Wno-switch-enum -Wno-unused-value'
-               # The runtime code does not respect ANSI C strict aliasing rules
-               CFLAGS="$CFLAGS -fno-strict-aliasing"
-
-               # We rely on signed overflow to behave
-               CFLAGS="$CFLAGS -fwrapv"
-
-               ORIG_CFLAGS=$CFLAGS
-               CFLAGS="$CFLAGS -Wdeclaration-after-statement"
-               AC_MSG_CHECKING(for -Wdeclaration-after-statement option to gcc)
-               AC_TRY_COMPILE([],[
-                               return 0;
-               ], [
-                  AC_MSG_RESULT(yes)
-               ], [
-                  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 -Werror"
-               AC_MSG_CHECKING(for -Wno-unused-but-set-variable option to gcc)
-               AC_TRY_COMPILE([],[
-                               return 0;
-               ], [
-                  AC_MSG_RESULT(yes)
-                  CFLAGS="$ORIG_CFLAGS -Wno-unused-but-set-variable"
-               ], [
-                  AC_MSG_RESULT(no)
-                  CFLAGS=$ORIG_CFLAGS
-               ])
-
-               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"
-               fi
-else
-       # The Sun Forte compiler complains about inline functions that access static variables
-       # so disable all inlining.
-       case "$host" in
-       *-*-solaris*)
-               CFLAGS="$CFLAGS -Dinline="
-               ;;
-       esac
-fi
-CFLAGS="$CFLAGS -g $WARN"
-CFLAGS_FOR_LIBGC="$CFLAGS_FOR_LIBGC -g"
-
-# Where's the 'mcs' source tree?
-if test -d $srcdir/mcs; then
-  mcsdir=mcs
-else
-  mcsdir=../mcs
-fi
-
-AC_ARG_WITH(mcs-path, [  --with-mcs-path=/path/to/mcs      Specify an alternate mcs source tree],
-       if test x$with_mcs_path != "x" -a -d $with_mcs_path ; then
-               mcsdir=$with_mcs_path
-       fi
-)
-
-AC_ARG_WITH(jumptables, [  --with-jumptables=yes,no      enable/disable support for jumptables (ARM-only for now) (defaults to no)],[],[with_jumptables=no])
-
-#
-# A sanity check to catch cases where the package was unpacked
-# with an ancient tar program (Solaris)
-#
-AC_ARG_ENABLE(solaris-tar-check,
-[  --disable-solaris-tar-check    disable solaris tar check],
-   do_solaris_tar_check=no, do_solaris_tar_check=yes)
-
-if test x"$do_solaris_tar_check" = xyes -a x"$enable_solaris_tar_check" = xyes; then
-       AC_MSG_CHECKING(integrity of package)
-       if test -f $mcsdir/class/System.Runtime.Serialization.Formatters.Soap/System.Runtime.Serialization.Formatters.Soap/SoapTypeMapper.cs
-       then
-               AC_MSG_RESULT(ok)
-       else
-               errorm="Your mono distribution is incomplete;  if unpacking from a tar file, make sure you use GNU tar;  see http://www.mono-project.com/IncompletePackage for more details"
-               AC_MSG_ERROR([$errorm])
-       fi
-fi
-
-if test "x$with_mcs_path" != "x"; then
-mcs_topdir=$(cd "$mcsdir" && pwd)
-mcs_topdir_from_srcdir=$mcs_topdir
-else
-mcs_topdir=$(cd "$srcdir/$mcsdir" && pwd)
-mcs_topdir_from_srcdir='$(top_builddir)'/$mcsdir
-fi
-
-# Convert mcs_topdir* paths to Windows syntax.
-if test x$cross_compiling$host_win32 = xnoyes; then
-  mcs_topdir=$(cygpath -m $mcs_topdir)
-  case $mcs_topdir_from_srcdir in
-    /cygdrive/*)
-       mcs_topdir_from_srcdir=$(cygpath -m $mcs_topdir_from_srcdir)
-       ;;
-  esac
-fi
-
-AC_SUBST([mcs_topdir])
-AC_SUBST([mcs_topdir_from_srcdir])
-
-# Where's the 'olive' source tree?
-if test -d $srcdir/olive; then
-  olivedir=olive
-else
-  olivedir=../olive
-fi
-
-if test -d $srcdir/$olivedir; then
-olive_topdir='$(top_srcdir)/'$olivedir
-fi
-
-# gettext: prepare the translation directories. 
-# we do not configure the full gettext, as we consume it dynamically from C#
-AM_PO_SUBDIRS
-
-if test "x$USE_NLS" = "xyes"; then
-   AC_CHECK_PROG(HAVE_MSGFMT, msgfmt,yes,no)
-
-   if test "x$HAVE_MSGFMT" = "xno"; then
-         AC_MSG_ERROR([msgfmt not found. You need to install the 'gettext' package, or pass --enable-nls=no to configure.])
-   fi
-fi
-
-AC_ARG_WITH([libgdiplus], 
-       [  --with-libgdiplus=installed|sibling|<path>   Override the libgdiplus used for System.Drawing tests (defaults to installed)], 
-       [], [with_libgdiplus=installed])
-
-case $with_libgdiplus in
-no|installed) libgdiplus_loc= ;;
-yes|sibling) libgdiplus_loc=`cd ../libgdiplus && pwd`/src/libgdiplus.la ;;
-/*) libgdiplus_loc=$with_libgdiplus ;;
-*) libgdiplus_loc=`pwd`/$with_libgdiplus ;;
-esac
-AC_SUBST([libgdiplus_loc])
-
-AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
-
-pkg_config_path=
-AC_ARG_WITH(crosspkgdir, [  --with-crosspkgdir=/path/to/pkg-config/dir      Change pkg-config dir to custom dir],
-       if test x$with_crosspkgdir = "x"; then
-               if test -s $PKG_CONFIG_PATH; then
-                       pkg_config_path=$PKG_CONFIG_PATH
-               fi
-       else
-               pkg_config_path=$with_crosspkgdir
-               PKG_CONFIG_PATH=$pkg_config_path
-               export PKG_CONFIG_PATH
-       fi
-)
-
-ac_configure_args="$ac_configure_args \"CPPFLAGS_FOR_EGLIB=$EGLIB_CPPFLAGS\" \"CFLAGS_FOR_EGLIB=$CFLAGS_FOR_EGLIB\""
-AC_CONFIG_SUBDIRS(eglib)
-
-GLIB_CFLAGS='-I$(top_srcdir)/eglib/src -I$(top_builddir)/eglib/src'
-GLIB_LIBS='-L$(top_builddir)/eglib/src -leglib -lm'
-BUILD_GLIB_CFLAGS="$GLIB_CFLAGS"
-BUILD_GLIB_LIBS="$GLIB_LIBS"
-GMODULE_CFLAGS="$GLIB_CFLAGS"
-GMODULE_LIBS="$GLIB_LIBS"
-  
-AC_SUBST(GLIB_CFLAGS)
-AC_SUBST(GLIB_LIBS)
-AC_SUBST(GMODULE_CFLAGS)
-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])
-
-# Enable support for using sigaltstack for SIGSEGV and stack overflow handling
-# This does not work on some platforms (bug #55253)
-AC_ARG_WITH(sigaltstack, [  --with-sigaltstack=yes,no      enable/disable support for sigaltstack (defaults to yes)],[],[with_sigaltstack=yes])
-
-AC_ARG_WITH(static_mono, [  --with-static_mono=yes,no      link mono statically to libmono (faster) (defaults to yes)],[],[with_static_mono=yes])
-AC_ARG_WITH(shared_mono, [  --with-shared_mono=yes,no      build a shared libmono library (defaults to yes)],[],[with_shared_mono=yes])
-# Same as --with-shared_mono=no
-AC_ARG_ENABLE(libraries, [  --disable-libraries disable the build of libmono], enable_libraries=$enableval, enable_libraries=yes)
-
-if test "x$enable_static" = "xno"; then
-   with_static_mono=no
-fi
-
-if test "x$enable_shared" = "xno"; then
-   with_shared_mono=no
-fi
-
-if test "x$enable_libraries" = "xno"; then
-   with_shared_mono=no
-fi
-
-AM_CONDITIONAL(DISABLE_LIBRARIES, test x$enable_libraries = xno)
-
-case $host in
-*nacl* ) with_shared_mono=yes;;
-esac
-
-if test "x$host_win32" = "xyes"; then
-   # Boehm GC requires the runtime to be in its own dll
-   with_static_mono=no
-fi
-
-AM_CONDITIONAL(STATIC_MONO, test x$with_static_mono != xno)
-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" -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([], [
-               return 0;
-       ], [
-          AC_MSG_RESULT(yes)
-          # Pass it to libgc as well
-          CFLAGS_FOR_LIBGC="$CFLAGS_FOR_LIBGC -mno-tls-direct-seg-refs"
-       ], [
-          AC_MSG_RESULT(no)
-          CFLAGS=$ORIG_CFLAGS
-       ])
-fi
-
-AC_ARG_ENABLE(small-config, [  --enable-small-config Enable tweaks to reduce requirements (and capabilities)], enable_small_config=$enableval, enable_small_config=no)
-
-if test x$enable_small_config = xyes; then
-       AC_DEFINE(MONO_SMALL_CONFIG,1,[Reduce runtime requirements (and capabilities)])
-       CFLAGS_FOR_LIBGC="$CFLAGS_FOR_LIBGC -DSMALL_CONFIG"
-fi
-
-AC_ARG_ENABLE(system-aot, [  --enable-system-aot  Enable the Ahead-Of-Time compilation of system assemblies during the build (on by default on some platforms)], enable_system_aot=$enableval, enable_system_aot=default)
-
-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.],
-[
-       for feature in `echo "$enable_minimal" | sed -e "s/,/ /g"`; do
-               eval "mono_feature_disable_$feature='yes'"
-       done
-       DISABLED_FEATURES=$enable_minimal
-       disabled="Disabled:      $enable_minimal"
-],[])
-
-AC_DEFINE_UNQUOTED(DISABLED_FEATURES, "$DISABLED_FEATURES", [String of disabled features])
-
-if test "x$mono_feature_disable_aot" = "xyes"; then
-       AC_DEFINE(DISABLE_AOT_COMPILER, 1, [Disable AOT Compiler])
-       AC_MSG_NOTICE([Disabled AOT compiler])
-fi
-
-if test "x$mono_feature_disable_profiler" = "xyes"; then
-       AC_DEFINE(DISABLE_PROFILER, 1, [Disable default profiler support])
-       AC_MSG_NOTICE([Disabled support for the profiler])
-fi
-AM_CONDITIONAL(DISABLE_PROFILER, test x$mono_feature_disable_profiler = xyes)
-
-if test "x$mono_feature_disable_decimal" = "xyes"; then
-       AC_DEFINE(DISABLE_DECIMAL, 1, [Disable System.Decimal support])
-       AC_MSG_NOTICE([Disabled support for decimal])
-fi
-
-if test "x$mono_feature_disable_pinvoke" = "xyes"; then
-       AC_DEFINE(DISABLE_PINVOKE, 1, [Disable P/Invoke support])
-       AC_MSG_NOTICE([Disabled support for P/Invoke])
-fi
-
-if test "x$mono_feature_disable_debug" = "xyes"; then
-       AC_DEFINE(DISABLE_DEBUG, 1, [Disable runtime debugging support])
-       AC_MSG_NOTICE([Disabled support for runtime debugging])
-fi
-
-if test "x$mono_feature_disable_reflection_emit" = "xyes"; then
-       AC_DEFINE(DISABLE_REFLECTION_EMIT, 1, [Disable reflection emit support])
-       mono_feature_disable_reflection_emit_save=yes
-       AC_MSG_NOTICE([Disabled support for Reflection.Emit])
-fi
-
-if test "x$mono_feature_disable_reflection_emit_save" = "xyes"; then
-       AC_DEFINE(DISABLE_REFLECTION_EMIT_SAVE, 1, [Disable assembly saving support in reflection emit])
-       AC_MSG_NOTICE([Disabled support for Reflection.Emit.Save])
-fi
-
-if test "x$mono_feature_disable_large_code" = "xyes"; then
-       AC_DEFINE(DISABLE_LARGE_CODE, 1, [Disable support for huge assemblies])
-       AC_MSG_NOTICE([Disabled support for large assemblies])
-fi
-
-if test "x$mono_feature_disable_logging" = "xyes"; then
-       AC_DEFINE(DISABLE_LOGGING, 1, [Disable support debug logging])
-       AC_MSG_NOTICE([Disabled support for logging])
-fi
-
-if test "x$mono_feature_disable_com" = "xyes"; then
-       AC_DEFINE(DISABLE_COM, 1, [Disable COM support])
-       AC_MSG_NOTICE([Disabled COM support])
-fi
-
-if test "x$mono_feature_disable_ssa" = "xyes"; then
-       AC_DEFINE(DISABLE_SSA, 1, [Disable advanced SSA JIT optimizations])
-       AC_MSG_NOTICE([Disabled SSA JIT optimizations])
-fi
-
-if test "x$mono_feature_disable_generics" = "xyes"; then
-       AC_DEFINE(DISABLE_GENERICS, 1, [Disable generics support])
-       AC_MSG_NOTICE([Disabled Generics Support])
-fi
-
-if test "x$mono_feature_disable_shadowcopy" = "xyes"; then
-       AC_DEFINE(DISABLE_SHADOW_COPY, 1, [Disable Shadow Copy for AppDomains])
-       AC_MSG_NOTICE([Disabled Shadow copy for AppDomains])
-fi
-
-if test "x$mono_feature_disable_portability" = "xyes"; then
-       AC_DEFINE(DISABLE_PORTABILITY, 1, [Disables the IO portability layer])
-       AC_MSG_NOTICE([Disabled IO Portability layer])
-fi
-
-if test "x$mono_feature_disable_attach" = "xyes"; then
-       AC_DEFINE(DISABLE_ATTACH, 1, [Disable agent attach support])
-       AC_MSG_NOTICE([Disabled agent attach])
-fi
-
-if test "x$mono_feature_disable_full_messages" = "xyes"; then
-       AC_DEFINE(DISABLE_FULL_MESSAGES, 1, [Disables building in the full table of WAPI messages])
-       AC_MSG_NOTICE([Disabled full messages for Win32 errors, only core message strings shipped])
-fi
-
-if test "x$mono_feature_disable_verifier" = "xyes"; then
-       AC_DEFINE(DISABLE_VERIFIER, 1, [Disables the verifier])
-       AC_MSG_NOTICE([Disabled the metadata and IL verifiers])
-fi
-
-if test "x$mono_feature_disable_jit" = "xyes"; then
-       AC_DEFINE(DISABLE_JIT, 1, [Disable the JIT, only full-aot mode will be supported by the runtime.])
-       AC_MSG_NOTICE([Disabled the JIT engine, only full AOT will be supported])
-fi
-
-AM_CONDITIONAL(DISABLE_JIT, test x$mono_feature_disable_jit = xyes)
-
-if test "x$mono_feature_disable_simd" = "xyes"; then
-       AC_DEFINE(DISABLE_SIMD, 1, [Disable SIMD intrinsics related optimizations.])
-       AC_MSG_NOTICE([Disabled SIMD support])
-fi
-
-if test "x$mono_feature_disable_soft_debug" = "xyes"; then
-       AC_DEFINE(DISABLE_SOFT_DEBUG, 1, [Disable Soft Debugger Agent.])
-       AC_MSG_NOTICE([Disabled Soft Debugger.])
-fi
-
-if test "x$mono_feature_disable_perfcounters" = "xyes"; then
-       AC_DEFINE(DISABLE_PERFCOUNTERS, 1, [Disable Performance Counters.])
-       AC_MSG_NOTICE([Disabled Performance Counters.])
-fi
-if test "x$mono_feature_disable_normalization" = "xyes"; then
-       AC_DEFINE(DISABLE_NORMALIZATION, 1, [Disable String normalization support.])
-       AC_MSG_NOTICE([Disabled String normalization support.])
-fi
-
-if test "x$mono_feature_disable_assembly_remapping" = "xyes"; then
-       AC_DEFINE(DISABLE_ASSEMBLY_REMAPPING, 1, [Disable assembly remapping.])
-       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
-
-if test "x$mono_feature_disable_appdomains" = "xyes"; then
-       AC_DEFINE(DISABLE_APPDOMAINS, 1, [Disable support for multiple appdomains.])
-       AC_MSG_NOTICE([Disabled support for multiple appdomains.])
-fi
-
-if test "x$mono_feature_disable_remoting" = "xyes"; then
-       AC_DEFINE(DISABLE_REMOTING, 1, [Disable remoting support (This disables type proxies and make com non-functional)])
-       AC_MSG_NOTICE([Disabled remoting])
-fi
-
-if test "x$mono_feature_disable_security" = "xyes"; then
-       AC_DEFINE(DISABLE_SECURITY, 1, [Disable CAS/CoreCLR security])
-       AC_MSG_NOTICE([Disabled CAS/CoreCLR security manager (used e.g. for Moonlight)])
-fi
-
-if test "x$mono_feature_disable_sgen_remset" = "xyes"; then
-       AC_DEFINE(DISABLE_SGEN_REMSET, 1, [Disable wbarrier=remset support in SGEN.])
-       AC_MSG_NOTICE([Disabled wbarrier=remset support in SGEN.])
-fi
-
-if test "x$mono_feature_disable_sgen_marksweep_par" = "xyes"; then
-       AC_DEFINE(DISABLE_SGEN_MAJOR_MARKSWEEP_PAR, 1, [Disable major=marksweep-par support in SGEN.])
-       AC_MSG_NOTICE([Disabled major=marksweep-par support in SGEN.])
-fi
-
-if test "x$mono_feature_disable_sgen_marksweep_fixed" = "xyes"; then
-       AC_DEFINE(DISABLE_SGEN_MAJOR_MARKSWEEP_FIXED, 1, [Disable major=marksweep-fixed support in SGEN.])
-       AC_MSG_NOTICE([Disabled major=marksweep-fixed support in SGEN.])
-fi
-
-if test "x$mono_feature_disable_sgen_marksweep_fixed_par" = "xyes"; then
-       AC_DEFINE(DISABLE_SGEN_MAJOR_MARKSWEEP_FIXED_PAR, 1, [Disable major=marksweep-fixed-par support in SGEN.])
-       AC_MSG_NOTICE([Disabled major=marksweep-fixed-par support in SGEN.])
-fi
-
-if test "x$mono_feature_disable_sgen_copying" = "xyes"; then
-       AC_DEFINE(DISABLE_SGEN_MAJOR_COPYING, 1, [Disable major=copying support in SGEN.])
-       AC_MSG_NOTICE([Disabled major=copying support in SGEN.])
-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)
-
-has_extension_module=no
-AC_ARG_ENABLE(extension-module, [  --enable-extension-module=LIST enable the core-extensions from LIST],
-[
-       for extension in `echo "$enable_extension_module" | sed -e "s/,/ /g"`; do
-               if test x$extension = xdefault ; then
-                       has_extension_module=yes;
-               fi
-       done
-       if test x$enable_extension_module = xyes; then
-               has_extension_module=yes;
-       fi
-], [])
-
-AM_CONDITIONAL([HAS_EXTENSION_MODULE], [test x$has_extension_module != xno])
-
-if test x$has_extension_module != xno ; then
-       AC_DEFINE([ENABLE_EXTENSION_MODULE], 1, [Extension module enabled])
-       AC_MSG_NOTICE([Enabling mono extension module.])
-fi
-
-AC_ARG_ENABLE(gsharing, [  --enable-gsharing Enable gsharing], enable_gsharing=$enableval, enable_gsharing=no)
-if test x$enable_gsharing = xyes; then
-       AC_DEFINE(ENABLE_GSHAREDVT,1,[Gsharing])
-fi
-
-AC_ARG_ENABLE(native-types, [  --enable-native-types Enable native types], enable_native_types=$enableval, enable_native_types=no)
-if test x$enable_native_types = xyes; then
-       AC_DEFINE(MONO_NATIVE_TYPES,1,[native types])
-fi
-
-AC_MSG_CHECKING(for visibility __attribute__)
-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)
-], [
-   have_visibility_hidden=no
-   AC_MSG_RESULT(no)
-])
-
-AC_MSG_CHECKING(for deprecated __attribute__)
-AC_TRY_COMPILE([
-     int doit (void) __attribute__ ((deprecated));
-     int doit (void) { return 0; }
-], [
-       return 0;
-], [
-   have_deprecated=yes
-   AC_MSG_RESULT(yes)
-], [
-   have_deprecated=no
-   AC_MSG_RESULT(no)
-])
-
-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
-LIBGC_CPPFLAGS=
-LIBGC_LIBS=
-LIBGC_STATIC_LIBS=
-libgc_dir=
-case "x$gc" 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
-               libgc_dir=libgc
-
-               LIBGC_CPPFLAGS='-I$(top_srcdir)/libgc/include'
-               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"
-
-               if test x$target_win32 = xyes; then
-                       BOEHM_DEFINES="$BOEHM_DEFINES -DGC_NOT_DLL"
-                       CFLAGS_FOR_LIBGC="$CFLAGS_FOR_LIBGC -DGC_BUILD -DGC_NOT_DLL"
-               fi
-
-               gc_msg="bundled 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"
-               else
-                       AC_DEFINE_UNQUOTED(DEFAULT_GC_NAME, "Included Boehm (with typed GC)", [GC description])
-               fi
-               ;;
-
-       xsgen)
-               AC_MSG_WARN("Use --with-sgen instead, --with-gc= controls Boehm configuration")
-               ;;
-
-       xnone)
-               AC_MSG_WARN("Compiling mono without GC.")
-               AC_DEFINE_UNQUOTED(DEFAULT_GC_NAME, "none", [GC description])
-               AC_DEFINE(HAVE_NULL_GC,1,[No GC support.])
-               ;;
-       *)
-               AC_MSG_ERROR([Invalid argument to --with-gc.])
-               ;;
-esac
-
-AC_ARG_WITH(large-heap, [  --with-large-heap=yes,no       Enable support for GC heaps larger than 3GB (defaults to no)], [large_heap=$withval], [large_heap=no])
-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)
-AC_SUBST(libgc_dir)
-AC_SUBST(BOEHM_DEFINES)
-
-dnl
-dnl End of libgc checks
-dnl
-
-dnl *************************************
-dnl *** Checks for zero length arrays ***
-dnl *************************************
-AC_MSG_CHECKING(whether $CC supports zero length arrays)
-AC_TRY_COMPILE([
-       struct s {
-               int  length;
-               char data [0];
-       };
-], [], [
-       AC_MSG_RESULT(yes)
-       AC_DEFINE_UNQUOTED(MONO_ZERO_LEN_ARRAY, 0, [Length of zero length arrays])
-], [
-       AC_MSG_RESULT(no)
-       AC_DEFINE_UNQUOTED(MONO_ZERO_LEN_ARRAY, 1, [Length of zero length arrays])
-])
-
-AC_CHECK_HEADERS(nacl/nacl_dyncode.h)
-
-if test x$target_win32 = xno; then
-
-       dnl hires monotonic clock support
-       AC_SEARCH_LIBS(clock_gettime, rt)
-
-       dnl dynamic loader support
-       AC_CHECK_FUNC(dlopen, DL_LIB="",
-               AC_CHECK_LIB(dl, dlopen, DL_LIB="-ldl", dl_support=no)
-       )
-       if test x$dl_support = xno; then
-               AC_MSG_WARN([No dynamic loading support available])
-       else
-               LIBS="$LIBS $DL_LIB"
-               AC_DEFINE(HAVE_DL_LOADER,1,[dlopen-based dynamic loader available])
-               dnl from glib's configure.in
-               AC_CACHE_CHECK([for preceeding underscore in symbols],
-                       mono_cv_uscore,[
-                       AC_TRY_RUN([#include <dlfcn.h>
-                       int mono_underscore_test (void) { return 42; }
-                       int main() {
-                         void *f1 = (void*)0, *f2 = (void*)0, *handle;
-                         handle = dlopen ((void*)0, 0);
-                         if (handle) {
-                           f1 = dlsym (handle, "mono_underscore_test");
-                           f2 = dlsym (handle, "_mono_underscore_test");
-                         } return (!f2 || f1);
-                       }],
-                               [mono_cv_uscore=yes],
-                               [mono_cv_uscore=no],
-                       [])
-               ])
-               if test "x$mono_cv_uscore" = "xyes"; then
-                       MONO_DL_NEED_USCORE=1
-               else
-                       MONO_DL_NEED_USCORE=0
-               fi
-               AC_SUBST(MONO_DL_NEED_USCORE)
-               AC_CHECK_FUNC(dlerror)
-       fi
-
-       dnl ******************************************************************
-       dnl *** Checks for the IKVM JNI interface library                  ***
-       dnl ******************************************************************
-       AC_ARG_WITH(ikvm-native, [  --with-ikvm-native=yes,no      build the IKVM JNI interface library (defaults to yes)],[with_ikvm_native=$withval],[with_ikvm_native=$ikvm_native])
-
-       ikvm_native_dir=
-       if test x$with_ikvm_native = xyes; then
-               ikvm_native_dir=ikvm-native
-               jdk_headers_found="IKVM Native"
-       fi
-
-       AC_SUBST(ikvm_native_dir)
-
-       AC_CHECK_HEADERS(execinfo.h)
-
-       AC_CHECK_HEADERS(sys/auxv.h)
-
-       AC_CHECK_FUNCS(getgrgid_r)
-       AC_CHECK_FUNCS(getgrnam_r)
-       AC_CHECK_FUNCS(getpwnam_r)
-       AC_CHECK_FUNCS(getpwuid_r)
-       AC_CHECK_FUNCS(getresuid)
-       AC_CHECK_FUNCS(setresuid)
-       AC_CHECK_FUNCS(kqueue)
-       AC_CHECK_FUNCS(backtrace_symbols)
-       AC_CHECK_FUNCS(mkstemp)
-       AC_CHECK_FUNCS(mmap)
-       AC_CHECK_FUNCS(madvise)
-       AC_CHECK_FUNCS(getrusage)
-       AC_CHECK_FUNCS(getpriority)
-       AC_CHECK_FUNCS(setpriority)
-       AC_CHECK_FUNCS(dl_iterate_phdr)
-       AC_CHECK_FUNCS(dladdr)
-       AC_CHECK_FUNCS(sysconf)
-
-       AC_CHECK_FUNCS(sched_setaffinity)
-       AC_CHECK_FUNCS(sched_getcpu)
-
-       dnl ****************************************************************
-       dnl *** Check for sched_setaffinity from glibc versions before   ***
-       dnl *** 2.3.4. The older versions of the function only take 2    ***
-       dnl *** parameters, not 3.                                       ***
-       dnl ***                                                          ***
-       dnl *** Because the interface change was not made in a minor     ***
-       dnl *** version rev, the __GLIBC__ and __GLIBC_MINOR__ macros    ***
-       dnl *** won't always indicate the interface sched_affinity has.  ***
-       dnl ****************************************************************
-       AC_MSG_CHECKING(for sched_setaffinity from glibc < 2.3.4)
-       AC_TRY_COMPILE([#include <sched.h>], [
-            int mask = 1; 
-            sched_setaffinity(0, &mask);
-                       return 0;
-       ], [
-               # Yes, we have it...
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(GLIBC_BEFORE_2_3_4_SCHED_SETAFFINITY, 1, [Have GLIBC_BEFORE_2_3_4_SCHED_SETAFFINITY])
-       ], [
-               # We have the new, three-parameter version
-               AC_MSG_RESULT(no)
-       ])
-
-
-       dnl ******************************************************************
-       dnl *** Check for large file support                               ***
-       dnl *** (If we were using autoconf 2.50 we'd use AC_SYS_LARGEFILE) ***
-       dnl ******************************************************************
-       
-       # Check that off_t can represent 2**63 - 1 correctly, working around
-       # potential compiler bugs.  Defines LARGE_FILE_SUPPORT, adds $1 to
-       # CPPFLAGS and sets $large_offt to yes if the test succeeds
-       large_offt=no
-       AC_DEFUN([LARGE_FILES], [
-               large_CPPFLAGS=$CPPFLAGS
-               CPPFLAGS="$CPPFLAGS $1"
-               AC_TRY_COMPILE([
-                       #include <sys/types.h>
-                       #include <limits.h>
-               ], [
-                       /* Lifted this compile time assert method from: http://www.jaggersoft.com/pubs/CVu11_3.html */
-                       #define COMPILE_TIME_ASSERT(pred) \
-                               switch(0){case 0:case pred:;}
-                       COMPILE_TIME_ASSERT(sizeof(off_t) * CHAR_BIT == 64);
-               ], [
-                       AC_MSG_RESULT(ok)
-                       AC_DEFINE(HAVE_LARGE_FILE_SUPPORT, 1, [Have large file support])
-                       large_CPPFLAGS="$large_CPPFLAGS $1"
-                       large_offt=yes
-               ], [
-                       AC_MSG_RESULT(no)
-               ])
-               CPPFLAGS=$large_CPPFLAGS
-       ])
-
-       AC_MSG_CHECKING(if off_t is 64 bits wide)
-       LARGE_FILES("")
-       if test $large_offt = no; then
-               AC_MSG_CHECKING(if _FILE_OFFSET_BITS=64 gives 64 bit off_t)
-               LARGE_FILES("-D_FILE_OFFSET_BITS=64")
-       fi
-       if test $large_offt = no; then
-               AC_MSG_WARN([No 64 bit file size support available])
-       fi
-       
-       dnl *****************************
-       dnl *** Checks for libsocket  ***
-       dnl *****************************
-       AC_CHECK_LIB(socket, socket, LIBS="$LIBS -lsocket")
-
-       case "$host" in
-               *-*-*freebsd*)
-                       dnl *****************************
-                       dnl *** Checks for libinotify ***
-                       dnl *****************************
-                       AC_CHECK_LIB(inotify, inotify_init, LIBS="$LIBS -linotify")
-       esac
-
-       dnl *******************************
-       dnl *** Checks for MSG_NOSIGNAL ***
-       dnl *******************************
-       AC_MSG_CHECKING(for MSG_NOSIGNAL)
-       AC_TRY_COMPILE([#include <sys/socket.h>], [
-               int f = MSG_NOSIGNAL;
-       ], [
-               # Yes, we have it...
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_MSG_NOSIGNAL, 1, [Have MSG_NOSIGNAL])
-       ], [
-               # We'll have to use signals
-               AC_MSG_RESULT(no)
-       ])
-
-       dnl *****************************
-       dnl *** Checks for IPPROTO_IP ***
-       dnl *****************************
-       AC_MSG_CHECKING(for IPPROTO_IP)
-       AC_TRY_COMPILE([#include <netinet/in.h>], [
-               int level = IPPROTO_IP;
-       ], [
-               # Yes, we have it...
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_IPPROTO_IP, 1, [Have IPPROTO_IP])
-       ], [
-               # We'll have to use getprotobyname
-               AC_MSG_RESULT(no)
-       ])
-
-       dnl *******************************
-       dnl *** Checks for IPPROTO_IPV6 ***
-       dnl *******************************
-       AC_MSG_CHECKING(for IPPROTO_IPV6)
-       AC_TRY_COMPILE([#include <netinet/in.h>], [
-               int level = IPPROTO_IPV6;
-       ], [
-               # Yes, we have it...
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_IPPROTO_IPV6, 1, [Have IPPROTO_IPV6])
-       ], [
-               # We'll have to use getprotobyname
-               AC_MSG_RESULT(no)
-       ])
-
-       dnl ******************************
-       dnl *** Checks for IPPROTO_TCP ***
-       dnl ******************************
-       AC_MSG_CHECKING(for IPPROTO_TCP)
-       AC_TRY_COMPILE([#include <netinet/in.h>], [
-               int level = IPPROTO_TCP;
-       ], [
-               # Yes, we have it...
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_IPPROTO_TCP, 1, [Have IPPROTO_TCP])
-       ], [
-               # We'll have to use getprotobyname
-               AC_MSG_RESULT(no)
-       ])
-
-       dnl *****************************
-       dnl *** Checks for SOL_IP     ***
-       dnl *****************************
-       AC_MSG_CHECKING(for SOL_IP)
-       AC_TRY_COMPILE([#include <netdb.h>], [
-               int level = SOL_IP;
-       ], [
-               # Yes, we have it...
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_SOL_IP, 1, [Have SOL_IP])
-       ], [
-               # We'll have to use getprotobyname
-               AC_MSG_RESULT(no)
-       ])
-
-       dnl *****************************
-       dnl *** Checks for SOL_IPV6     ***
-       dnl *****************************
-       AC_MSG_CHECKING(for SOL_IPV6)
-       AC_TRY_COMPILE([#include <netdb.h>], [
-               int level = SOL_IPV6;
-       ], [
-               # Yes, we have it...
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_SOL_IPV6, 1, [Have SOL_IPV6])
-       ], [
-               # We'll have to use getprotobyname
-               AC_MSG_RESULT(no)
-       ])
-
-       dnl *****************************
-       dnl *** Checks for SOL_TCP    ***
-       dnl *****************************
-       AC_MSG_CHECKING(for SOL_TCP)
-       AC_TRY_COMPILE([#include <netdb.h>], [
-               int level = SOL_TCP;
-       ], [
-               # Yes, we have it...
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_SOL_TCP, 1, [Have SOL_TCP])
-       ], [
-               # We'll have to use getprotobyname
-               AC_MSG_RESULT(no)
-       ])
-
-       dnl *****************************
-       dnl *** Checks for IP_PKTINFO ***
-       dnl *****************************
-       AC_MSG_CHECKING(for IP_PKTINFO)
-       AC_TRY_COMPILE([#include <linux/in.h>], [
-               int level = IP_PKTINFO;
-       ], [
-               # Yes, we have it...
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_IP_PKTINFO, 1, [Have IP_PKTINFO])
-       ], [
-               AC_MSG_RESULT(no)
-       ])
-
-       dnl *****************************
-       dnl *** Checks for IPV6_PKTINFO ***
-       dnl *****************************
-       AC_MSG_CHECKING(for IPV6_PKTINFO)
-       AC_TRY_COMPILE([#include <netdb.h>], [
-               int level = IPV6_PKTINFO;
-       ], [
-               # Yes, we have it...
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_IPV6_PKTINFO, 1, [Have IPV6_PKTINFO])
-       ], [
-               AC_MSG_RESULT(no)
-       ])
-
-       dnl **********************************
-       dnl *** Checks for IP_DONTFRAG     ***
-       dnl **********************************
-       AC_MSG_CHECKING(for IP_DONTFRAG)
-       AC_TRY_COMPILE([#include <netinet/in.h>], [
-               int level = IP_DONTFRAG;
-       ], [
-               # Yes, we have it...
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_IP_DONTFRAG, 1, [Have IP_DONTFRAG])
-       ], [
-               AC_MSG_RESULT(no)
-       ])
-
-       dnl **********************************
-       dnl *** Checks for IP_DONTFRAGMENT ***
-       dnl **********************************
-       AC_MSG_CHECKING(for IP_DONTFRAGMENT)
-       AC_TRY_COMPILE([#include <Ws2ipdef.h>], [
-               int level = IP_DONTFRAGMENT;
-       ], [
-               # Yes, we have it...
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_IP_DONTFRAGMENT, 1, [Have IP_DONTFRAGMENT])
-       ], [
-               AC_MSG_RESULT(no)
-       ])
-
-       dnl **********************************
-       dnl *** Checks for IP_MTU_DISCOVER ***
-       dnl **********************************
-       AC_MSG_CHECKING(for IP_MTU_DISCOVER)
-       AC_TRY_COMPILE([#include <linux/in.h>], [
-               int level = IP_MTU_DISCOVER;
-       ], [
-               # Yes, we have it...
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_IP_MTU_DISCOVER, 1, [Have IP_MTU_DISCOVER])
-       ], [
-               AC_MSG_RESULT(no)
-       ])
-
-       dnl **********************************
-       dnl *** Checks for  IP_PMTUDISC_DO ***
-       dnl **********************************
-       AC_MSG_CHECKING(for IP_PMTUDISC_DO)
-       AC_TRY_COMPILE([#include <linux/in.h>], [
-               int level = IP_PMTUDISC_DO;
-       ], [
-               # Yes, we have it...
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_IP_PMTUDISC_DO, 1, [Have IP_PMTUDISC_DO])
-       ], [
-               AC_MSG_RESULT(no)
-       ])
-
-       dnl *********************************
-       dnl *** Check for struct ip_mreqn ***
-       dnl *********************************
-       AC_MSG_CHECKING(for struct ip_mreqn)
-       AC_TRY_COMPILE([#include <netinet/in.h>], [
-               struct ip_mreqn mreq;
-               mreq.imr_address.s_addr = 0;
-       ], [
-               # Yes, we have it...
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_STRUCT_IP_MREQN, 1, [Have struct ip_mreqn])
-       ], [
-               # We'll just have to try and use struct ip_mreq
-               AC_MSG_RESULT(no)
-               AC_MSG_CHECKING(for struct ip_mreq)
-               AC_TRY_COMPILE([#include <netinet/in.h>], [
-                       struct ip_mreq mreq;
-                       mreq.imr_interface.s_addr = 0;
-               ], [
-                       # Yes, we have it...
-                       AC_MSG_RESULT(yes)
-                       AC_DEFINE(HAVE_STRUCT_IP_MREQ, 1, [Have struct ip_mreq])
-               ], [
-                       # No multicast support
-                       AC_MSG_RESULT(no)
-               ])
-       ])
-       
-       dnl **********************************
-       dnl *** Check for gethostbyname2_r ***
-       dnl **********************************
-       AC_MSG_CHECKING(for gethostbyname2_r)
-               AC_TRY_LINK([#include <netdb.h>], [
-               gethostbyname2_r(NULL,0,NULL,NULL,0,NULL,NULL);
-       ], [
-               # Yes, we have it...
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_GETHOSTBYNAME2_R, 1, [Have gethostbyname2_r])
-       ], [
-               AC_MSG_RESULT(no)
-       ])
-
-       dnl *****************************
-       dnl *** Checks for libnsl     ***
-       dnl *****************************
-       AC_CHECK_FUNC(gethostbyaddr, , AC_CHECK_LIB(nsl, gethostbyaddr, LIBS="$LIBS -lnsl"))
-
-       AC_CHECK_FUNCS(inet_pton inet_aton)
-
-       dnl ***********************************************
-       dnl *** Checks for size of sockaddr_un.sun_path ***
-       dnl ***********************************************
-       # AC_CHECK_SIZEOF can't cope with struct members :-(
-       AC_MSG_CHECKING(size of sockaddr_un.sun_path)
-       AC_CACHE_VAL(mono_cv_sizeof_sunpath,
-               [AC_TRY_RUN([
-                       #include <sys/types.h>
-                       #include <stdio.h>
-                       #include <sys/un.h>
-
-                       int main(void) {
-                               struct sockaddr_un sock_un;
-                               FILE *f=fopen("conftestval", "w");
-                               if(!f) exit(1);
-                               fprintf(f, "%d\n", sizeof(sock_un.sun_path));
-                               exit(0);
-                       }
-               ], mono_cv_sizeof_sunpath=`cat conftestval`,
-                  mono_cv_sizeof_sunpath=0,
-                  mono_cv_sizeof_sunpath=0)])dnl
-       AC_MSG_RESULT($mono_cv_sizeof_sunpath)
-       AC_DEFINE_UNQUOTED(MONO_SIZEOF_SUNPATH, $mono_cv_sizeof_sunpath, [Sizeof sock_un.sun_path])
-
-       dnl *****************************
-       dnl *** Checks for libxnet    ***
-       dnl *****************************
-       case "${host}" in
-               *solaris* )
-                       AC_MSG_CHECKING(for Solaris XPG4 support)
-                       if test -f /usr/lib/libxnet.so; then
-                               CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=500"
-                               CPPFLAGS="$CPPFLAGS -D__EXTENSIONS__"
-                               CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED=1"
-                               LIBS="$LIBS -lxnet"
-                               AC_MSG_RESULT(yes)
-                       else
-                               AC_MSG_RESULT(no)
-                       fi
-
-                       if test "$GCC" = "yes"; then
-                               CFLAGS="$CFLAGS -Wno-char-subscripts"
-                       fi
-               ;;
-       esac
-
-       dnl *****************************
-       dnl *** Checks for libpthread ***
-       dnl *****************************
-# on FreeBSD -STABLE, the pthreads functions all reside in libc_r
-# and libpthread does not exist
-#
-       case "${host}" in
-               *-*-*freebsd*)
-                       AC_CHECK_LIB(pthread, main, LIBS="$LIBS -pthread")
-               ;;
-               *-*-*openbsd*)
-                       AC_CHECK_LIB(pthread, main, LIBS="$LIBS -pthread")
-               ;;
-               *)
-                       AC_CHECK_LIB(pthread, main, LIBS="$LIBS -lpthread")
-               ;;
-       esac
-       AC_CHECK_HEADERS(pthread.h)
-       AC_CHECK_HEADERS(pthread_np.h)
-       AC_CHECK_FUNCS(pthread_mutex_timedlock)
-       AC_CHECK_FUNCS(pthread_getattr_np pthread_attr_get_np pthread_setname_np)
-       AC_CHECK_FUNCS(pthread_kill)
-       AC_MSG_CHECKING(for PTHREAD_MUTEX_RECURSIVE)
-       AC_TRY_COMPILE([ #include <pthread.h>], [
-               pthread_mutexattr_t attr;
-               pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
-       ], [
-               AC_MSG_RESULT(ok)
-       ], [
-               AC_MSG_RESULT(no)
-               AC_ERROR(Posix system lacks support for recursive mutexes)
-       ])
-       AC_CHECK_FUNCS(pthread_attr_setstacksize)
-       AC_CHECK_FUNCS(pthread_attr_getstack pthread_attr_getstacksize)
-       AC_CHECK_FUNCS(pthread_get_stacksize_np pthread_get_stackaddr_np)
-
-       dnl ***********************************
-       dnl *** Checks for signals
-       dnl ***********************************
-       AC_CHECK_HEADERS(signal.h)
-       AC_CHECK_FUNCS(sigaction)
-
-       dnl ***********************************
-       dnl *** Checks for working __thread ***
-       dnl ***********************************
-       AC_MSG_CHECKING(for working __thread)
-       if test "x$with_tls" != "x__thread"; then
-               AC_MSG_RESULT(disabled)
-       elif test "x$cross_compiling" = "xyes"; then
-               AC_MSG_RESULT(cross compiling, assuming yes)
-       else
-               AC_TRY_RUN([
-                       #if defined(__APPLE__) && defined(__clang__)
-                       #error "__thread does not currently work with clang on Mac OS X"
-                       #endif
-                       
-                       #include <pthread.h>
-                       __thread int i;
-                       static int res1, res2;
-
-                       void thread_main (void *arg)
-                       {
-                               i = arg;
-                               sleep (1);
-                               if (arg == 1)
-                                       res1 = (i == arg);
-                               else
-                                       res2 = (i == arg);
-                       }
-
-                       int main () {
-                               pthread_t t1, t2;
-
-                               i = 5;
-
-                               pthread_create (&t1, NULL, thread_main, 1);
-                               pthread_create (&t2, NULL, thread_main, 2);
-
-                               pthread_join (t1, NULL);
-                               pthread_join (t2, NULL);
-
-                               return !(res1 + res2 == 2);
-                       }
-               ], [
-                               AC_MSG_RESULT(yes)
-               ], [
-                               AC_MSG_RESULT(no)
-                               with_tls=pthread
-               ])
-       fi
-
-       dnl **************************************
-       dnl *** Checks for working sigaltstack ***
-       dnl **************************************
-       AC_MSG_CHECKING(for working sigaltstack)
-       if test "x$with_sigaltstack" != "xyes"; then
-               AC_MSG_RESULT(disabled)
-       elif test "x$cross_compiling" = "xyes"; then
-               AC_MSG_RESULT(cross compiling, assuming yes)
-       else
-               AC_TRY_RUN([
-                       #include <stdio.h>
-                       #include <stdlib.h>
-                       #include <unistd.h>
-                       #include <signal.h>
-                       #include <pthread.h>
-                       #include <sys/wait.h>
-                       #if defined(__FreeBSD__) || defined(__NetBSD__)
-                       #define SA_STACK SA_ONSTACK
-                       #endif
-                       static void
-                       sigsegv_signal_handler (int _dummy, siginfo_t *info, void *context)
-                       {
-                               exit (0);
-                       }
-
-                       volatile char*__ptr = NULL;
-                       static void *
-                       loop (void *ignored)
-                       {
-                               *__ptr = 0;
-                               return NULL;
-                       }
-
-                       static void
-                       child ()
-                       {
-                               struct sigaction sa;
-                       #ifdef __APPLE__
-                               stack_t sas;
-                       #else
-                               struct sigaltstack sas;
-                       #endif
-                               pthread_t id;
-                               pthread_attr_t attr;
-
-                               sa.sa_sigaction = sigsegv_signal_handler;
-                               sigemptyset (&sa.sa_mask);
-                               sa.sa_flags = SA_SIGINFO | SA_ONSTACK;
-                               if (sigaction (SIGSEGV, &sa, NULL) == -1) {
-                                       perror ("sigaction");
-                                       return;
-                               }
-
-                               /* x86 darwin deliver segfaults using SIGBUS */
-                               if (sigaction (SIGBUS, &sa, NULL) == -1) {
-                                       perror ("sigaction");
-                                       return;
-                               }
-                               sas.ss_sp = malloc (SIGSTKSZ);
-                               sas.ss_size = SIGSTKSZ;
-                               sas.ss_flags = 0;
-                               if (sigaltstack (&sas, NULL) == -1) {
-                                       perror ("sigaltstack");
-                                       return;
-                               }
-
-                               pthread_attr_init (&attr);
-                               if (pthread_create(&id, &attr, loop, &attr) != 0) {
-                                       printf ("pthread_create\n");
-                                       return;
-                               }
-
-                               sleep (100);
-                       }
-
-                       int
-                       main ()
-                       {
-                               pid_t son;
-                               int status;
-                               int i;
-
-                               son = fork ();
-                               if (son == -1) {
-                                       return 1;
-                               }
-
-                               if (son == 0) {
-                                       child ();
-                                       return 0;
-                               }
-
-                               for (i = 0; i < 300; ++i) {
-                                       waitpid (son, &status, WNOHANG);
-                                       if (WIFEXITED (status) && WEXITSTATUS (status) == 0)
-                                               return 0;
-                                       usleep (10000);
-                               }
-
-                               kill (son, SIGKILL);
-                               return 1;
-                       }
-
-               ], [
-                               AC_MSG_RESULT(yes)
-                               AC_DEFINE(HAVE_WORKING_SIGALTSTACK, 1, [Have a working sigaltstack])
-               ], [
-                               with_sigaltstack=no
-                               AC_MSG_RESULT(no)
-               ])
-       fi
-
-       dnl ********************************
-       dnl *** Checks for semaphore lib ***
-       dnl ********************************
-       # 'Real Time' functions on Solaris
-       # posix4 on Solaris 2.6
-       # pthread (first!) on Linux
-       AC_SEARCH_LIBS(sem_init, pthread rt posix4) 
-
-       AC_SEARCH_LIBS(shm_open, pthread rt posix4) 
-       AC_CHECK_FUNCS(shm_open)
-
-       dnl ********************************
-       dnl *** Checks for timezone stuff **
-       dnl ********************************
-       AC_CACHE_CHECK(for tm_gmtoff in struct tm, ac_cv_struct_tm_gmtoff,
-               AC_TRY_COMPILE([
-                       #include <time.h>
-                       ], [
-                       struct tm tm;
-                       tm.tm_gmtoff = 1;
-                       ], ac_cv_struct_tm_gmtoff=yes, ac_cv_struct_tm_gmtoff=no))
-       if test $ac_cv_struct_tm_gmtoff = yes; then
-               AC_DEFINE(HAVE_TM_GMTOFF, 1, [Have tm_gmtoff])
-       else
-               AC_CACHE_CHECK(for timezone variable, ac_cv_var_timezone,
-                       AC_TRY_COMPILE([
-                               #include <time.h>
-                       ], [
-                               timezone = 1;
-                       ], ac_cv_var_timezone=yes, ac_cv_var_timezone=no))
-               if test $ac_cv_var_timezone = yes; then
-                       AC_DEFINE(HAVE_TIMEZONE, 1, [Have timezone variable])
-               else
-                       AC_ERROR(unable to find a way to determine timezone)
-               fi
-       fi
-
-       dnl *********************************
-       dnl *** Checks for math functions ***
-       dnl *********************************
-       AC_SEARCH_LIBS(sqrtf, m)
-       if test "x$has_broken_apple_cpp" != "xyes"; then
-               AC_CHECK_FUNCS(finite, , AC_MSG_CHECKING(for finite in math.h)
-                       AC_TRY_LINK([#include <math.h>], 
-                       [ finite(0.0); ], 
-                       AC_DEFINE(HAVE_FINITE, 1, [Have finite in -lm]) AC_MSG_RESULT(yes),
-                       AC_MSG_RESULT(no)))
-       fi
-        AC_CHECK_FUNCS(isfinite, , AC_MSG_CHECKING(for isfinite in math.h)
-                AC_TRY_LINK([#include <math.h>], 
-                [ isfinite(0.0); ], 
-                AC_DEFINE(HAVE_ISFINITE, 1, [Have isfinite]) AC_MSG_RESULT(yes),
-                AC_MSG_RESULT(no)))
-
-       dnl ****************************************************************
-       dnl *** Checks for working poll() (macosx defines it but doesn't ***
-       dnl *** have it in the library (duh))                            ***
-       dnl ****************************************************************
-       AC_CHECK_FUNCS(poll)
-
-       dnl *************************
-       dnl *** Check for signbit ***
-       dnl *************************
-       AC_MSG_CHECKING(for signbit)
-       AC_TRY_LINK([#include <math.h>], [
-               int s = signbit(1.0);
-       ], [
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_SIGNBIT, 1, [Have signbit])
-       ], [
-               AC_MSG_RESULT(no)
-       ]) 
-
-       dnl **********************************
-       dnl *** epoll                      ***
-       dnl **********************************
-       if test "x$ac_cv_header_nacl_nacl_dyncode_h" = "xno"; then
-               AC_CHECK_HEADERS(sys/epoll.h)
-               haveepoll=no
-               AC_CHECK_FUNCS(epoll_ctl, [haveepoll=yes], )
-               if test "x$haveepoll" = "xyes" -a "x$ac_cv_header_sys_epoll_h" = "xyes"; then
-                       AC_DEFINE(HAVE_EPOLL, 1, [epoll supported])
-               fi
-       fi
-
-       havekqueue=no
-
-       AC_CHECK_HEADERS(sys/event.h)
-       AC_CHECK_FUNCS(kqueue, [havekqueue=yes], )
-
-       dnl **************************************
-       dnl * Darwin has a race that prevents us from using reliably:
-       dnl * http://lists.apple.com/archives/darwin-dev/2011/Jun/msg00016.html
-       dnl * Since kqueue is mostly used for scaling large web servers, 
-       dnl * and very few folks run Mono on large web servers on OSX, falling
-       dnl * back 
-       dnl **************************************
-       if test "x$havekqueue" = "xyes" -a "x$ac_cv_header_sys_event_h" = "xyes"; then
-               if test "x$platform_darwin" = "xno"; then
-                       AC_DEFINE(USE_KQUEUE_FOR_THREADPOOL, 1, [Use kqueue for the threadpool])
-               fi
-       fi
-
-       dnl ******************************
-       dnl *** Checks for SIOCGIFCONF ***
-       dnl ******************************
-       AC_CHECK_HEADERS(sys/ioctl.h)
-       AC_CHECK_HEADERS(net/if.h, [], [],
-          [
-          #ifdef HAVE_SYS_TYPES_H
-          # include <sys/types.h>
-          #endif
-          #ifdef HAVE_SYS_SOCKET_H
-          # include <sys/socket.h>
-          #endif
-          ])
-       AC_MSG_CHECKING(for ifreq)
-       AC_TRY_COMPILE([
-               #include <stdio.h>
-               #include <sys/ioctl.h>
-               #include <net/if.h>
-               ], [
-               struct ifconf ifc;
-               struct ifreq *ifr;
-               void *x;
-               ifc.ifc_len = 0;
-               ifc.ifc_buf = NULL;
-               x = (void *) &ifr->ifr_addr;
-               ],[
-                       AC_MSG_RESULT(yes)
-                       AC_DEFINE(HAVE_SIOCGIFCONF, 1, [Can get interface list])
-               ], [
-                       AC_MSG_RESULT(no)
-               ])
-       dnl **********************************
-       dnl ***     Checks for sin_len     ***
-       dnl **********************************
-       AC_MSG_CHECKING(for sockaddr_in.sin_len)
-       AC_TRY_COMPILE([
-               #include <netinet/in.h>
-               ], [
-               struct sockaddr_in saddr;
-               saddr.sin_len = sizeof (saddr);
-               ],[
-                       AC_MSG_RESULT(yes)
-                       AC_DEFINE(HAVE_SOCKADDR_IN_SIN_LEN, 1, [sockaddr_in has sin_len])
-               ], [
-                       AC_MSG_RESULT(no)
-               ])      
-       dnl **********************************
-       dnl ***    Checks for sin6_len     ***
-       dnl **********************************
-       AC_MSG_CHECKING(for sockaddr_in6.sin6_len)
-       AC_TRY_COMPILE([
-               #include <netinet/in.h>
-               ], [
-               struct sockaddr_in6 saddr6;
-               saddr6.sin6_len = sizeof (saddr6);
-               ],[
-                       AC_MSG_RESULT(yes)
-                       AC_DEFINE(HAVE_SOCKADDR_IN6_SIN_LEN, 1, [sockaddr_in6 has sin6_len])
-               ], [
-                       AC_MSG_RESULT(no)
-               ])
-       dnl **********************************
-       dnl *** Check for getifaddrs       ***
-       dnl **********************************
-       AC_MSG_CHECKING(for getifaddrs)
-               AC_TRY_LINK([
-               #include <stdio.h>
-               #include <sys/types.h>
-               #include <sys/socket.h>
-               #include <ifaddrs.h>
-       ], [
-               getifaddrs(NULL);
-       ], [
-               # Yes, we have it...
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_GETIFADDRS, 1, [Have getifaddrs])
-       ], [
-               AC_MSG_RESULT(no)
-       ])
-       dnl **********************************
-       dnl *** Check for if_nametoindex   ***
-       dnl **********************************
-       AC_MSG_CHECKING(for if_nametoindex)
-               AC_TRY_LINK([
-               #include <stdio.h>
-               #include <sys/types.h>
-               #include <sys/socket.h>
-               #include <net/if.h>
-       ], [
-               if_nametoindex(NULL);
-       ], [
-               # Yes, we have it...
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_IF_NAMETOINDEX, 1, [Have if_nametoindex])
-       ], [
-               AC_MSG_RESULT(no)
-       ])
-                       
-       dnl **********************************
-       dnl *** Checks for MonoPosixHelper ***
-       dnl **********************************
-       AC_CHECK_HEADERS(checklist.h)
-       AC_CHECK_HEADERS(pathconf.h)
-       AC_CHECK_HEADERS(fstab.h)
-       AC_CHECK_HEADERS(attr/xattr.h)
-       AC_CHECK_HEADERS(sys/extattr.h)
-       AC_CHECK_HEADERS(sys/sendfile.h)
-       AC_CHECK_HEADERS(sys/statvfs.h)
-       AC_CHECK_HEADERS(sys/statfs.h)
-       AC_CHECK_HEADERS(sys/vfstab.h)
-       AC_CHECK_HEADERS(sys/xattr.h)
-       AC_CHECK_HEADERS(sys/mman.h)
-       AC_CHECK_HEADERS(sys/param.h)
-       AC_CHECK_HEADERS(sys/mount.h, [], [],
-               [
-               #ifdef HAVE_SYS_PARAM_H
-               # include <sys/param.h>
-               #endif
-               ])
-       AC_CHECK_HEADERS(sys/mount.h)
-       AC_CHECK_FUNCS(confstr)
-       AC_CHECK_FUNCS(seekdir telldir)
-       AC_CHECK_FUNCS(getdomainname)
-       AC_CHECK_FUNCS(setdomainname)
-       AC_CHECK_FUNCS(endgrent getgrent fgetgrent setgrent)
-       AC_CHECK_FUNCS(setgroups)
-       AC_CHECK_FUNCS(endpwent getpwent fgetpwent setpwent)
-       AC_CHECK_FUNCS(getfsstat)
-       AC_CHECK_FUNCS(lutimes futimes)
-       AC_CHECK_FUNCS(mremap)
-       AC_CHECK_FUNCS(remap_file_pages)
-       AC_CHECK_FUNCS(posix_fadvise)
-       AC_CHECK_FUNCS(posix_fallocate)
-       AC_CHECK_FUNCS(posix_madvise)
-       AC_CHECK_FUNCS(vsnprintf)
-       AC_CHECK_FUNCS(sendfile)
-       AC_CHECK_FUNCS(gethostid sethostid)
-       AC_CHECK_FUNCS(sethostname)
-       AC_CHECK_FUNCS(statfs)
-       AC_CHECK_FUNCS(fstatfs)
-       AC_CHECK_FUNCS(statvfs)
-       AC_CHECK_FUNCS(fstatvfs)
-       AC_CHECK_FUNCS(stime)
-       AC_CHECK_FUNCS(strerror_r)
-       AC_CHECK_FUNCS(ttyname_r)
-       AC_CHECK_FUNCS(psignal)
-       AC_CHECK_FUNCS(getlogin_r)
-       AC_CHECK_FUNCS(lockf)
-       AC_CHECK_FUNCS(swab)
-       AC_CHECK_FUNCS(setusershell endusershell)
-       AC_CHECK_FUNCS(futimens utimensat)
-       AC_CHECK_FUNCS(fstatat mknodat readlinkat)
-       AC_CHECK_FUNCS(readv writev preadv pwritev)
-       AC_CHECK_FUNCS(setpgid)
-       AC_CHECK_SIZEOF(size_t)
-       AC_CHECK_TYPES([blksize_t], [AC_DEFINE(HAVE_BLKSIZE_T)], , 
-               [#include <sys/types.h>
-                #include <sys/stat.h>
-                #include <unistd.h>])
-       AC_CHECK_TYPES([blkcnt_t], [AC_DEFINE(HAVE_BLKCNT_T)], ,
-               [#include <sys/types.h>
-                #include <sys/stat.h>
-                #include <unistd.h>])
-       AC_CHECK_TYPES([suseconds_t], [AC_DEFINE(HAVE_SUSECONDS_T)], ,
-               [#include <sys/time.h>])
-       AC_CHECK_TYPES([struct flock], [AC_DEFINE(HAVE_STRUCT_FLOCK)], ,
-               [#include <unistd.h>
-                #include <fcntl.h>])
-       AC_CHECK_TYPES([struct iovec], [AC_DEFINE(HAVE_STRUCT_IOVEC)], ,
-               [#include <sys/uio.h>])
-       AC_CHECK_TYPES([struct pollfd], [AC_DEFINE(HAVE_STRUCT_POLLFD)], ,
-               [#include <sys/poll.h>])
-       AC_CHECK_TYPES([struct stat], [AC_DEFINE(HAVE_STRUCT_STAT)], ,
-               [#include <sys/types.h>
-                #include <sys/stat.h>
-                #include <unistd.h>])
-       AC_CHECK_TYPES([struct timespec], [AC_DEFINE(HAVE_STRUCT_TIMESPEC)], ,
-               [#include <time.h>])
-       AC_CHECK_TYPES([struct timeval], [AC_DEFINE(HAVE_STRUCT_TIMEVAL)], ,
-               [#include <sys/time.h>
-                #include <sys/types.h>
-                #include <utime.h>])
-       AC_CHECK_TYPES([struct timezone], [AC_DEFINE(HAVE_STRUCT_TIMEZONE)], ,
-               [#include <sys/time.h>])
-       AC_CHECK_TYPES([struct utimbuf], [AC_DEFINE(HAVE_STRUCT_UTIMBUF)], ,
-               [#include <sys/types.h>
-                #include <utime.h>])
-       AC_CHECK_MEMBERS(
-               [struct dirent.d_off, struct dirent.d_reclen, struct dirent.d_type],,, 
-               [#include <sys/types.h>
-                #include <dirent.h>])
-       AC_CHECK_MEMBERS(
-               [struct passwd.pw_gecos],,, 
-               [#include <sys/types.h>
-                #include <pwd.h>])
-       AC_CHECK_MEMBERS(
-               [struct statfs.f_flags],,, 
-               [#include <sys/types.h>
-                #include <sys/vfs.h>])
-       AC_CHECK_MEMBERS(
-               [struct stat.st_atim, struct stat.st_mtim, struct stat.st_ctim],,, 
-               [#include <sys/types.h>
-                #include <sys/stat.h>
-                #include <unistd.h>])
-
-       dnl Favour xattr through glibc, but use libattr if we have to
-       AC_CHECK_FUNC(lsetxattr, ,
-               AC_CHECK_LIB(attr, lsetxattr, XATTR_LIB="-lattr",)
-       )
-       AC_SUBST(XATTR_LIB)
-
-       dnl kinfo_proc.kp_proc works on darwin but fails on other simil-bsds
-       AC_CHECK_MEMBERS(
-               [struct kinfo_proc.kp_proc],,, 
-               [#include <sys/types.h>
-                #include <sys/param.h>
-                #include <sys/sysctl.h>
-                #include <sys/proc.h>
-                ])
-
-       dnl *********************************
-       dnl *** Checks for Windows compilation ***
-       dnl *********************************
-       AC_CHECK_HEADERS(sys/time.h)
-       AC_CHECK_HEADERS(sys/param.h)
-       AC_CHECK_HEADERS(dirent.h)
-
-       dnl ******************************************
-       dnl *** Checks for OSX and iOS compilation ***
-       dnl ******************************************
-       AC_CHECK_HEADERS(CommonCrypto/CommonDigest.h)
-
-       dnl *********************************
-       dnl *** Check for Console 2.0 I/O ***
-       dnl *********************************
-       AC_CHECK_HEADERS([curses.h])
-       AC_CHECK_HEADERS([term.h], [], [],
-       [#if HAVE_CURSES_H
-        #include <curses.h>
-        #endif
-       ])
-       AC_CHECK_HEADERS([termios.h])
-
-       dnl * This is provided in io-layer, but on windows it's only available
-       dnl * on xp+
-       AC_DEFINE(HAVE_GETPROCESSID, 1, [Define if GetProcessId is available])
-else
-       dnl *********************************
-       dnl *** Checks for Windows compilation ***
-       dnl *********************************
-       AC_CHECK_HEADERS(winternl.h)
-
-       jdk_headers_found=no
-       AC_CHECK_LIB(ws2_32, main, LIBS="$LIBS -lws2_32", AC_ERROR(bad mingw install?))
-       AC_CHECK_LIB(psapi, main, LIBS="$LIBS -lpsapi", AC_ERROR(bad mingw install?))
-       AC_CHECK_LIB(ole32, main, LIBS="$LIBS -lole32", AC_ERROR(bad mingw install?))
-       AC_CHECK_LIB(winmm, main, LIBS="$LIBS -lwinmm", AC_ERROR(bad mingw install?))
-       AC_CHECK_LIB(oleaut32, main, LIBS="$LIBS -loleaut32", AC_ERROR(bad mingw install?))
-       AC_CHECK_LIB(advapi32, main, LIBS="$LIBS -ladvapi32", AC_ERROR(bad mingw install?))
-       AC_CHECK_LIB(version, main, LIBS="$LIBS -lversion", AC_ERROR(bad mingw install?))
-
-       dnl *********************************
-       dnl *** Check for struct ip_mreqn ***
-       dnl *********************************
-       AC_MSG_CHECKING(for struct ip_mreqn)
-       AC_TRY_COMPILE([#include <ws2tcpip.h>], [
-               struct ip_mreqn mreq;
-               mreq.imr_address.s_addr = 0;
-       ], [
-               # Yes, we have it...
-               AC_MSG_RESULT(yes)
-               AC_DEFINE(HAVE_STRUCT_IP_MREQN)
-       ], [
-               # We'll just have to try and use struct ip_mreq
-               AC_MSG_RESULT(no)
-               AC_MSG_CHECKING(for struct ip_mreq)
-               AC_TRY_COMPILE([#include <ws2tcpip.h>], [
-                       struct ip_mreq mreq;
-                       mreq.imr_interface.s_addr = 0;
-               ], [
-                       # Yes, we have it...
-                       AC_MSG_RESULT(yes)
-                       AC_DEFINE(HAVE_STRUCT_IP_MREQ)
-               ], [
-                       # No multicast support
-                       AC_MSG_RESULT(no)
-               ])
-       ])
-       AC_CHECK_FUNCS(GetProcessId)
-       AC_CHECK_DECLS(InterlockedExchange64, [], [], [[#include <windows.h>]])
-       AC_CHECK_DECLS(InterlockedCompareExchange64, [], [], [[#include <windows.h>]])
-       AC_CHECK_DECLS(InterlockedDecrement64, [], [], [[#include <windows.h>]])
-       AC_CHECK_DECLS(InterlockedIncrement64, [], [], [[#include <windows.h>]])
-       AC_CHECK_DECLS(InterlockedAdd, [], [], [[#include <windows.h>]])
-       AC_CHECK_DECLS(InterlockedAdd64, [], [], [[#include <windows.h>]])
-       AC_CHECK_DECLS(__readfsdword, [], [], [[#include <windows.h>]])
-fi
-
-dnl socklen_t check
-AC_MSG_CHECKING(for socklen_t)
-AC_TRY_COMPILE([
-#include <sys/types.h>
-#include <sys/socket.h>
-],[
-  socklen_t foo;
-],[
-ac_cv_c_socklen_t=yes
-       AC_DEFINE(HAVE_SOCKLEN_T, 1, [Have socklen_t])
-       AC_MSG_RESULT(yes)
-],[
-       AC_MSG_RESULT(no)
-])
-
-AC_MSG_CHECKING(for array element initializer support)
-AC_TRY_COMPILE([#include <sys/socket.h>], [
-       const int array[] = {[1] = 2,};
-], [
-       # Yes, we have it...
-       AC_MSG_RESULT(yes)
-       AC_DEFINE(HAVE_ARRAY_ELEM_INIT,1,[Supports C99 array initialization])
-], [
-       # We'll have to use signals
-       AC_MSG_RESULT(no)
-])
-
-AC_CHECK_FUNCS(trunc, , AC_MSG_CHECKING(for trunc in math.h)
-       # Simply calling trunc (0.0) is no good since gcc will optimize the call away
-       AC_TRY_LINK([#include <math.h>], 
-       [ static void *p = &trunc; ],
-       [
-               AC_DEFINE(HAVE_TRUNC) 
-               AC_MSG_RESULT(yes)
-               ac_cv_trunc=yes
-       ],
-       AC_MSG_RESULT(no)))
-
-if test "x$ac_cv_truncl" != "xyes"; then
-   AC_CHECK_LIB(sunmath, aintl, [ AC_DEFINE(HAVE_AINTL, 1, [Has the 'aintl' function]) LIBS="$LIBS -lsunmath"])
-fi
-
-AC_CHECK_FUNCS(round)
-AC_CHECK_FUNCS(rint)
-AC_CHECK_FUNCS(execvp)
-
-dnl ****************************
-dnl *** Look for /dev/random ***
-dnl ****************************
-
-AC_MSG_CHECKING([if usage of random device is requested])
-AC_ARG_ENABLE(dev-random,
-[  --disable-dev-random    disable the use of the random device (enabled by default)],
-try_dev_random=$enableval, try_dev_random=yes)
-
-AC_MSG_RESULT($try_dev_random)
-
-case "{$build}" in
-    *-openbsd*)
-    NAME_DEV_RANDOM="/dev/srandom"
-    ;;
-
-dnl Win32 does not have /dev/random, they have their own method...
-
-    *-mingw*|*-*-cygwin*)
-    ac_cv_have_dev_random=no
-    ;;
-
-dnl Everywhere else, it's /dev/random
-
-    *)
-    NAME_DEV_RANDOM="/dev/random"
-    ;;
-esac
-
-AC_DEFINE_UNQUOTED(NAME_DEV_RANDOM, "$NAME_DEV_RANDOM", [Name of /dev/random])
-
-dnl Now check if the device actually exists
-
-if test "x$try_dev_random" = "xyes"; then
-    AC_CACHE_CHECK(for random device, ac_cv_have_dev_random,
-    [if test -r "$NAME_DEV_RANDOM" ; then
-        ac_cv_have_dev_random=yes; else ac_cv_have_dev_random=no; fi])
-    if test "x$ac_cv_have_dev_random" = "xyes"; then
-        AC_DEFINE(HAVE_CRYPT_RNG, 1, [Have /dev/random])
-    fi
-else
-    AC_MSG_CHECKING(for random device)
-    ac_cv_have_dev_random=no
-    AC_MSG_RESULT(has been disabled)
-fi
-
-if test "x$host_win32" = "xyes"; then
-    AC_DEFINE(HAVE_CRYPT_RNG)
-fi
-
-if test "x$ac_cv_have_dev_random" = "xno" \
-    && test "x$host_win32" = "xno"; then
-    AC_MSG_WARN([[
-***
-*** A system-provided entropy source was not found on this system.
-*** Because of this, the System.Security.Cryptography random number generator
-*** will throw a NotImplemented exception.
-***
-*** If you are seeing this message, and you know your system DOES have an
-*** entropy collection in place, please contact <crichton@gimp.org> and
-*** provide information about the system and how to access the random device.
-***
-*** Otherwise you can install either egd or prngd and set the environment
-*** variable MONO_EGD_SOCKET to point to the daemon's socket to use that.
-***]])
-fi
-AC_MSG_CHECKING([if inter-process shared handles are requested])
-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
-       AC_DEFINE(DISABLE_SHARED_HANDLES, 1, [Disable inter-process shared handles])
-       AC_SUBST(DISABLE_SHARED_HANDLES)
-fi
-
-AC_ARG_ENABLE(bcl-opt, [  --disable-bcl-opt    BCL is compiled with no optimizations (allows accurate BCL debugging)], test_bcl_opt=$enableval, test_bcl_opt=yes)
-
-AC_ARG_ENABLE(nunit-tests, [  --enable-nunit-tests     Run the nunit tests of the class library on 'make check'])
-AM_CONDITIONAL(ENABLE_NUNIT_TESTS, [test x$enable_nunit_tests = xyes])
-
-AC_MSG_CHECKING([if big-arrays are to be enabled])
-AC_ARG_ENABLE(big-arrays,  [  --enable-big-arrays      Enable the allocation and indexing of arrays greater than Int32.MaxValue], enable_big_arrays=$enableval, enable_big_arrays=no)
-if test "x$enable_big_arrays" = "xyes" ; then
-    if  test "x$ac_cv_sizeof_void_p" = "x8"; then
-       AC_DEFINE(MONO_BIG_ARRAYS,1,[Enable the allocation and indexing of arrays greater than Int32.MaxValue])
-    else
-        AC_MSG_ERROR([The allocation and indexing of arrays greater than Int32.MaxValue is not supported on this platform.])
-    fi
-fi
-AC_MSG_RESULT($enable_big_arrays)
-
-dnl **************
-dnl *** DTRACE ***
-dnl **************
-
-AC_ARG_ENABLE(dtrace,[  --enable-dtrace        Enable DTrace probes], enable_dtrace=$enableval, enable_dtrace=$has_dtrace)
-
-if test "x$enable_dtrace" = "xyes"; then
-   if test "x$has_dtrace" = "xno"; then
-         AC_MSG_ERROR([DTrace probes are not supported on this platform.])
-   fi
-   AC_PATH_PROG(DTRACE, [dtrace], [no], [$PATH:/usr/sbin])
-   if test "x$DTRACE" = "xno"; then
-         AC_MSG_RESULT([dtrace utility not found, dtrace support disabled.])
-         enable_dtrace=no
-   elif ! $DTRACE -h -s $srcdir/data/mono.d > /dev/null 2>&1; then
-         AC_MSG_RESULT([dtrace doesn't support -h option, dtrace support disabled.])
-         enable_dtrace=no
-   fi
-fi
-
-dtrace_g=no
-if test "x$enable_dtrace" = "xyes"; then
-       AC_DEFINE(ENABLE_DTRACE, 1, [Enable DTrace probes])
-       DTRACEFLAGS=
-       if test "x$ac_cv_sizeof_void_p" = "x8"; then
-               case "$host" in
-                       powerpc-*-darwin*)
-                       DTRACEFLAGS="-arch ppc64"
-                       ;;
-                       i*86-*-darwin*)
-                       DTRACEFLAGS="-arch x86_64"
-                       ;;
-                       *)
-                       DTRACEFLAGS=-64
-                       ;;
-               esac
-       else
-               case "$host" in
-                       powerpc-*-darwin*)
-                       DTRACEFLAGS="-arch ppc"
-                       ;;
-                       i*86-*-darwin*)
-                       DTRACEFLAGS="-arch i386"
-                       ;;
-                       *)
-                       DTRACEFLAGS=-32
-                       ;;
-               esac
-       fi
-       AC_SUBST(DTRACEFLAGS)
-       case "$host" in
-               *-*-solaris*)
-               dtrace_g=yes
-               ;;
-       esac
-       AC_CHECK_HEADERS([sys/sdt.h])
-fi
-AM_CONDITIONAL(ENABLE_DTRACE, [test x$enable_dtrace = xyes])
-AM_CONDITIONAL(DTRACE_G_REQUIRED, [test x$dtrace_g = xyes])
-
-dnl **************
-dnl ***  NaCl  ***
-dnl **************
-
-AC_ARG_ENABLE(nacl_codegen, [  --enable-nacl-codegen      Enable Native Client code generation], enable_nacl_codegen=$enableval, enable_nacl_codegen=no)
-AC_ARG_ENABLE(nacl_gc, [  --enable-nacl-gc           Enable Native Client garbage collection], enable_nacl_gc=$enableval, enable_nacl_gc=no)
-
-AM_CONDITIONAL(NACL_CODEGEN, test x$enable_nacl_codegen != xno)
-
-dnl
-dnl Hack to use system mono for operations in build/install not allowed in NaCl.
-dnl
-nacl_self_host=""
-if test "x$ac_cv_header_nacl_nacl_dyncode_h" = "xyes"; then
-   nacl_self_host="nacl_self_host"
-fi
-AC_SUBST(nacl_self_host)
-
-if test "x$enable_nacl_codegen" = "xyes"; then
-   MONO_NACL_ALIGN_MASK_OFF=1
-   AC_DEFINE(TARGET_NACL, 1, [...])
-   AC_DEFINE(__native_client_codegen__, 1, [...])
-else
-   MONO_NACL_ALIGN_MASK_OFF=0
-   AC_DEFINE(__default_codegen__, 1, [...])
-fi
-if test "x$enable_nacl_gc" = "xyes"; then
-   if test "x$TARGET" = "xAMD64" -o "x$TARGET" = "xX86"; then
-      INSTRUMENT_CFLAG="-finstrument-for-thread-suspension"
-   else
-      # Not yet implemented
-      INSTRUMENT_CFLAG=""
-   fi
-   CPPFLAGS="$CPPFLAGS $INSTRUMENT_CFLAG -D__native_client_gc__"
-fi
-AC_SUBST(MONO_NACL_ALIGN_MASK_OFF)
-
-dnl **************
-dnl ***  LLVM  ***
-dnl **************
-
-AC_ARG_ENABLE(llvm,[  --enable-llvm    Enable the LLVM back-end], enable_llvm=$enableval, enable_llvm=no)
-AC_ARG_ENABLE(loadedllvm,[  --enable-loadedllvm        Load the LLVM back-end dynamically], enable_llvm=$enableval && enable_loadedllvm=$enableval, enable_loadedllvm=no)
-AC_ARG_ENABLE(llvm-version-check,[  --enable-llvm-version-check Check that the LLVM matches the version expected by mono], enable_llvm_version_check=$enableval, enable_llvm_version_check=no)
-
-AC_ARG_WITH(llvm, [  --with-llvm=<llvm prefix>    Enable the LLVM back-end], enable_llvm=yes,)
-
-if test "x$enable_llvm" = "xyes"; then
-   if test "x$with_llvm" != "x"; then
-         LLVM_CONFIG=$with_llvm/bin/llvm-config
-         if test ! -x $LLVM_CONFIG; then
-                AC_MSG_ERROR([LLVM executable $LLVM_CONFIG not found.])
-      fi
-   else
-      AC_PATH_PROG(LLVM_CONFIG, llvm-config, no)
-      if test "x$LLVM_CONFIG" = "xno"; then
-            AC_MSG_ERROR([llvm-config not found.])
-      fi
-   fi
-
-   llvm_codegen="x86codegen"
-   case "$target" in
-   arm*)
-               llvm_codegen="armcodegen"
-               ;;
-   esac
-
-   # 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 is compiled with -fno-rtti, so we need this too, since our classes inherit
-   # from LLVM classes.
-   LLVM_CXXFLAGS="`$LLVM_CONFIG --cxxflags` -fno-rtti"
-   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
-      # No need for jit libs
-      LLVM_LIBS=`$LLVM_CONFIG --libs core bitwriter`
-   else
-      LLVM_LIBS=`$LLVM_CONFIG --libs core bitwriter jit mcjit $llvm_codegen`
-   fi
-   LLVM_LIBS="$LLVM_LIBS $LLVM_LDFLAGS $LLVM_SYSTEM_LIBS -lstdc++"
-
-   expected_llvm_version="3.4svn-mono-mono/e656cac"
-
-   # Should be something like '2.6' or '2.7svn'
-   llvm_version=`$LLVM_CONFIG --version`
-   major_version=`echo $llvm_version | cut -c 1`
-   minor_version=`echo $llvm_version | cut -c 3`
-   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
-         if test "x$llvm_api_version" = "x"; then
-               LLVM_CFLAGS="$LLVM_CFLAGS -DLLVM_API_VERSION=0"
-               LLVM_CXXFLAGS="$LLVM_CXXFLAGS -DLLVM_API_VERSION=0"
-         else
-               LLVM_CFLAGS="$LLVM_CFLAGS -DLLVM_API_VERSION=$llvm_api_version"
-               LLVM_CXXFLAGS="$LLVM_CXXFLAGS -DLLVM_API_VERSION=$llvm_api_version"
-         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
-
-   AC_DEFINE_UNQUOTED(LLVM_MAJOR_VERSION, $major_version, [Major version of LLVM libraries])
-   AC_DEFINE_UNQUOTED(LLVM_MINOR_VERSION, $minor_version, [Minor version of LLVM libraries])
-   AC_DEFINE_UNQUOTED(LLVM_VERSION, "$llvm_version", [Full version of LLVM libraties])
-
-   # Have to pass these on the command line since mini-llvm-cpp.h already includes
-   # llvm's config.h
-   LLVM_CXXFLAGS="$LLVM_CXXFLAGS -DLLVM_MAJOR_VERSION=$major_version -DLLVM_MINOR_VERSION=$minor_version"
-
-   AC_SUBST(LLVM_CFLAGS)
-   AC_SUBST(LLVM_CXXFLAGS)
-   AC_SUBST(LLVM_LIBS)
-   AC_SUBST(LLVM_LDFLAGS)
-   AC_DEFINE(ENABLE_LLVM, 1, [Enable the LLVM back end])
-fi
-
-AM_CONDITIONAL(ENABLE_LLVM, [test x$enable_llvm = xyes])
-if test "x$enable_loadedllvm" = "xyes"; then
-   AC_DEFINE(MONO_LLVM_LOADED, 1, [The LLVM back end is dynamically loaded])
-fi
-AM_CONDITIONAL(LOADED_LLVM, [test x$enable_loadedllvm = xyes])
-
-TARGET="unknown"
-ACCESS_UNALIGNED="yes"
-
-JIT_SUPPORTED=no
-INTERP_SUPPORTED=no
-LIBC="libc.so.6"
-INTL="libc.so.6"
-SQLITE="libsqlite.so.0"
-SQLITE3="libsqlite3.so.0"
-X11="libX11.so"
-XINERAMA="libXinerama.so"
-
-sizeof_register="SIZEOF_VOID_P"
-
-jit_wanted=true
-interp_wanted=false
-sgen_supported=false
-boehm_supported=true
-case "$host" in
-       mips*)
-               TARGET=MIPS;
-               arch_target=mips;
-               sgen_supported=true
-               ACCESS_UNALIGNED="no"
-               JIT_SUPPORTED=yes
-
-               AC_MSG_CHECKING(for mips n32)
-               AC_TRY_COMPILE([],[
-               #if _MIPS_SIM != _ABIN32
-               #error Not mips n32
-               #endif
-               return 0;
-               ],[
-               AC_MSG_RESULT(yes)
-               sizeof_register=8
-               ],[
-               AC_MSG_RESULT(no)
-               ])
-               ;;
-       i*86-*-*)
-               TARGET=X86;
-               arch_target=x86;
-               JIT_SUPPORTED=yes
-               case $host_os in
-                 solaris*)
-                       LIBC="libc.so"
-                       INTL="libintl.so"
-                       if test "x$ac_cv_sizeof_void_p" = "x8"; then
-                               TARGET=AMD64
-                               arch_target=amd64
-                       fi
-
-                       # On solaris 10 x86, gcc prints a warning saying 'visibility attribute not supported on this configuration; ignored', but linking fails. A test case:
-                       # int astruct __attribute__ ((visibility ("hidden")));
-                       # void foo ()
-                       # {
-                       #       void *p = &astruct;
-                       # }
-                       # gcc -fPIC --shared -o libfoo.so foo.c
-                       # yields:
-                       # foo.c:6: warning: visibility attribute not supported in this configuration; ignored
-                       # ld: fatal: relocation error: R_386_GOTOFF: file /var/tmp//ccxYR96k.o: symbol astruct: relocation must bind locally
-                       have_visibility_hidden=no
-                       sgen_supported=true
-                       ;;
-                 mingw*|cygwin*)
-                       sgen_supported=true
-                       have_visibility_hidden=no                 
-                       ;;
-                 haiku*)
-                       LIBC=libroot.so
-                       ;;
-                 linux*)
-                       sgen_supported=true
-                       AOT_SUPPORTED="yes"
-                       ;;
-                 darwin*)
-                       sgen_supported=true
-                       AOT_SUPPORTED="yes"
-                       ;;
-                 darwin*|openbsd*|freebsd*)
-                       sgen_supported=true
-                       ;;
-               esac
-               ;;
-       x86_64-*-* | amd64-*-*)
-               TARGET=AMD64;
-               arch_target=amd64;
-               JIT_SUPPORTED=yes
-               if test "x$ac_cv_sizeof_void_p" = "x4"; then
-                       AC_DEFINE(__mono_ilp32__, 1, [64 bit mode with 4 byte longs and pointers])
-                       sizeof_register=8
-               fi
-               case $host_os in
-                 linux*)
-                       sgen_supported=true
-                       AOT_SUPPORTED="yes"
-                       ;;
-                 darwin*|openbsd*|freebsd*)
-                       sgen_supported=true
-                       ;;
-               esac
-               case "$host" in
-                       x86_64-*-nacl*)
-                               AC_DEFINE(__mono_ilp32__, 1, [64 bit mode with 4 byte longs and pointers])
-                               sizeof_register=8
-                               ;;
-               esac
-               ;;
-       ia64-*-*)
-               TARGET=IA64
-               arch_target=ia64
-               ACCESS_UNALIGNED="no"
-               JIT_SUPPORTED=yes
-               LIBC="libc.so.6.1"
-               INTL="libc.so.6.1"
-               AC_CHECK_LIB(unwind, _U_dyn_register, [], [AC_MSG_ERROR(library libunwind not found)])
-               libmono_ldflags="-lunwind"
-               ;;
-       sparc*-*-*)
-               if test "x$ac_cv_sizeof_void_p" = "x8"; then
-                  TARGET=SPARC64
-               else
-                       TARGET=SPARC
-               fi
-               arch_target=sparc;
-               JIT_SUPPORTED=yes
-               ACCESS_UNALIGNED="no"
-               case $host_os in
-                 linux*) ;;
-                 *)
-                       LIBC="libc.so"
-                       INTL="libintl.so"
-               esac
-               if test x"$GCC" = xyes; then
-                       # We don't support v8 cpus
-                       CFLAGS="$CFLAGS -Wno-cast-align -mcpu=v9"
-               fi
-               if test x"$AR" = xfalse; then
-                       AC_MSG_ERROR([The required utility 'ar' is not found in your PATH. Usually it can be found in /usr/ccs/bin.])
-               fi
-               sgen_supported=true
-               ;;
-       *-mingw*|*-*-cygwin*)
-               # When this is enabled, it leads to very strange crashes at runtime (gcc-3.4.4)
-               have_visibility_hidden=no
-               INTL="intl"
-               ;;
-       macppc-*-openbsd* | powerpc*-*-linux* | powerpc-*-openbsd* | \
-        powerpc-*-sysv* | powerpc-*-darwin* | powerpc-*-netbsd* | powerpc-*-freebsd* )
-               if test "x$ac_cv_sizeof_void_p" = "x8"; then
-                       TARGET=POWERPC64;
-                       CPPFLAGS="$CPPFLAGS -D__mono_ppc__ -D__mono_ppc64__"
-                       CFLAGS="$CFLAGS -mminimal-toc"
-               else
-                       TARGET=POWERPC;
-                       CPPFLAGS="$CPPFLAGS -D__mono_ppc__"
-               fi
-               arch_target=ppc;
-               JIT_SUPPORTED=yes
-               case $host_os in
-                 linux*|darwin*)
-                       sgen_supported=true
-                       ;;
-               esac
-               ;;
-       arm*-darwin*)
-               TARGET=ARM;
-               arch_target=arm;
-               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*)
-               TARGET=ARM;
-               arch_target=arm;
-               ACCESS_UNALIGNED="no"
-               JIT_SUPPORTED=yes
-               sgen_supported=true
-               AOT_SUPPORTED="yes"
-               CPPFLAGS="$CPPFLAGS -D__ARM_EABI__"
-               ;;
-# TODO: make proper support for NaCl host.
-#        arm*-*nacl)
-#              TARGET=ARM;
-#              arch_target=arm;
-#              ACCESS_UNALIGNED="no"
-#              JIT_SUPPORTED=yes
-#              sgen_supported=true
-#              AOT_SUPPORTED="no"
-#              ;;
-       aarch64-*)
-               # https://lkml.org/lkml/2012/7/15/133
-               TARGET=ARM64
-               arch_target=arm64
-               JIT_SUPPORTED=yes
-               sgen_supported=true
-               boehm_supported=false
-               ;;
-       s390x-*-linux*)
-               TARGET=S390X;
-               arch_target=s390x;
-               ACCESS_UNALIGNED="yes"
-               JIT_SUPPORTED=yes
-               sgen_supported=true
-               CFLAGS="$CFLAGS -mbackchain -D__USE_STRING_INLINES"
-               ;;
-esac
-
-HOST=$TARGET
-
-if test "x$host" != "x$target"; then
-   AC_DEFINE(MONO_CROSS_COMPILE,1,[The runtime is compiled for cross-compiling mode])
-   enable_mcs_build=no
-   case "$target" in
-   arm*-darwin*)
-               TARGET=ARM;
-               arch_target=arm;
-               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
-               ;;
-   powerpc64-ps3-linux-gnu)
-               TARGET=POWERPC64
-               arch_target=powerpc64
-               AC_DEFINE(TARGET_PS3, 1, [...])
-               # It would be better to just use TARGET_POWERPC64, but lots of code already
-               # uses this define
-               AC_DEFINE(__mono_ppc64__, 1, [...])
-               AC_DEFINE(__mono_ilp32__, 1, [64 bit mode with 4 byte longs and pointers])
-               sizeof_register=8
-               target_byte_order=G_BIG_ENDIAN
-               ;;
-
-   powerpc64-xbox360-linux-gnu)
-               TARGET=POWERPC64
-               arch_target=powerpc64
-               AC_DEFINE(TARGET_XBOX360, 1, [...])
-               # It would be better to just use TARGET_POWERPC64, but lots of code already
-               # uses this define
-               sizeof_register=8
-               target_byte_order=G_BIG_ENDIAN
-               ;;
-   x86_64-*-nacl)
-               TARGET=AMD64
-               arch_target=amd64
-               AC_DEFINE(TARGET_AMD64, 1, [...])
-               AC_DEFINE(__mono_ilp32__, 1, [64 bit mode with 4 byte longs and pointers])
-               sizeof_register=8
-               ;;
-# TODO: make proper support for NaCl target.
-#   arm*-*nacl)
-#              TARGET=ARM
-#              arch_target=arm
-#              AC_DEFINE(TARGET_ARM, 1, [...])
-#              ACCESS_UNALIGNED="no"
-#              JIT_SUPPORTED=yes
-#              sizeof_register=4
-#               CPPFLAGS="$CPPFLAGS \
-#                    -D__ARM_EABI__ \
-#                    -D__arm__ \
-#                    -D__portable_native_client__ \
-#                    -Dtimezone=_timezone \
-#                    -DDISABLE_SOCKETS \
-#                    -DDISABLE_ATTACH \
-#                    -DUSE_NEWLIB"
-#              jit_wanted=true
-               # Can't use tls, since it depends on the runtime detection of tls offsets
-               # in mono-compiler.h
-#              with_tls=pthread
-#              ;;
-   i686-*-nacl)
-               TARGET=X86
-               arch_target=x86
-               AC_DEFINE(TARGET_X86, 1, [...])
-               sizeof_register=4
-               ;;
-   arm*-linux-*)
-               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__"
-               jit_wanted=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
-               case "$target" in
-               armv7l-unknown-linux-gnueabi*)
-                       # TEGRA
-                       CPPFLAGS="$CPPFLAGS"
-                       ;;
-               armv5-*-linux-androideabi*)
-                       CPPFLAGS="$CPPFLAGS"
-                       ;;
-               esac
-               ;;
-       aarch64-*)
-               TARGET=ARM64
-               JIT_SUPPORTED=yes
-               jit_wanted=true
-               ;;
-       *)
-               AC_MSG_ERROR([Cross compiling is not supported for target $target])
-       esac
-fi
-
-case "$TARGET" in
-X86)
-       AC_DEFINE(TARGET_X86, 1, [...])
-       ;;
-AMD64)
-       AC_DEFINE(TARGET_AMD64, 1, [...])
-       ;;
-ARM)
-       AC_DEFINE(TARGET_ARM, 1, [...])
-       ;;
-ARM64)
-       AC_DEFINE(TARGET_ARM64, 1, [...])
-       ;;
-POWERPC)
-       AC_DEFINE(TARGET_POWERPC, 1, [...])
-       ;;
-POWERPC64)
-       AC_DEFINE(TARGET_POWERPC, 1, [...])
-       AC_DEFINE(TARGET_POWERPC64, 1, [...])
-       ;;
-S390X)
-       AC_DEFINE(TARGET_S390X, 1, [...])
-       ;;
-MIPS)
-       AC_DEFINE(TARGET_MIPS, 1, [...])
-       ;;
-IA64)
-       AC_DEFINE(TARGET_IA64, 1, [...])
-       ;;
-SPARC)
-       AC_DEFINE(TARGET_SPARC, 1, [...])
-       ;;
-SPARC64)
-       AC_DEFINE(TARGET_SPARC64, 1, [...])
-       ;;
-esac
-
-dnl Use GCC atomic ops if they work on the target.
-if test x$GCC = "xyes"; then
-       case $TARGET in
-       X86 | AMD64 | ARM | ARM64 | POWERPC | POWERPC64 | MIPS | S390X | SPARC | SPARC64)
-               AC_DEFINE(USE_GCC_ATOMIC_OPS, 1, [...])
-               ;;
-       esac
-fi
-
-if test "x$target_mach" = "xyes"; then
-   if test "x$TARGET" = "xARM" -o "x$TARGET" = "xARM64"; then
-         AC_DEFINE(TARGET_IOS,1,[The JIT/AOT targets iOS])
-         CPPFLAGS_FOR_LIBGC="$CPPFLAGS_FOR_LIBGC -DTARGET_IOS"
-         CFLAGS_FOR_LIBGC="$CFLAGS_FOR_LIBGC -DTARGET_IOS"
-   else
-       AC_TRY_COMPILE([#include "TargetConditionals.h"],[
-       #if TARGET_IPHONE_SIMULATOR == 1 || TARGET_OS_IPHONE == 1
-       #error fail this for ios
-       #endif
-       return 0;
-       ], [
-                 AC_DEFINE(TARGET_OSX,1,[The JIT/AOT targets OSX])
-          CPPFLAGS_FOR_LIBGC="$CPPFLAGS_FOR_LIBGC -DTARGET_OSX"
-          CFLAGS_FOR_LIBGC="$CFLAGS_FOR_LIBGC -DTARGET_OSX"
-       ], [
-          AC_DEFINE(TARGET_IOS,1,[The JIT/AOT targets iOS])
-          CPPFLAGS_FOR_LIBGC="$CPPFLAGS_FOR_LIBGC -DTARGET_IOS"
-          CFLAGS_FOR_LIBGC="$CFLAGS_FOR_LIBGC -DTARGET_IOS"
-       ])
-       fi
-   AC_DEFINE(TARGET_MACH,1,[The JIT/AOT targets Apple platforms])
-fi
-
-if test "x$sizeof_register" = "x4"; then
-   AC_DEFINE(SIZEOF_REGISTER,4,[size of machine integer registers])
-elif test "x$sizeof_register" = "x8"; then
-   AC_DEFINE(SIZEOF_REGISTER,8,[size of machine integer registers])
-else
-   AC_DEFINE(SIZEOF_REGISTER,SIZEOF_VOID_P,[size of machine integer registers])
-fi
-
-if test "x$target_byte_order" = "xG_BIG_ENDIAN"; then
-   AC_DEFINE(TARGET_BYTE_ORDER,G_BIG_ENDIAN,[byte order of target])
-elif test "x$target_byte_order" = "xG_LITTLE_ENDIAN"; then
-   AC_DEFINE(TARGET_BYTE_ORDER,G_LITTLE_ENDIAN,[byte order of target])
-else
-   AC_DEFINE(TARGET_BYTE_ORDER,G_BYTE_ORDER,[byte order of target])
-fi
-
-if test "x$have_visibility_hidden" = "xyes"; then
-   AC_DEFINE(HAVE_VISIBILITY_HIDDEN, 1, [Support for the visibility ("hidden") attribute])
-fi
-
-if test "x$have_deprecated" = "xyes"; then
-   AC_DEFINE(HAVE_DEPRECATED, 1, [Support for the deprecated attribute])
-fi
-
-dnl 
-dnl Simple Generational checks (sgen)
-dnl
-if $sgen_supported; then
-   build_sgen_default=yes
-else
-   build_sgen_default=no
-fi
-SGEN_DEFINES=
-AC_ARG_WITH(sgen, [  --with-sgen=yes,no             Extra Generational GC, default=yes],[buildsgen=$with_sgen],[buildsgen=$build_sgen_default])
-if test x$buildsgen = xyes; then
-   if $sgen_supported; then
-       SGEN_DEFINES="-DHAVE_SGEN_GC -DHAVE_MOVING_COLLECTOR"
-       gc_msg="sgen and $gc_msg"
-   else
-       buildsgen=no
-       AC_MSG_WARN("Sgen is not supported on this platform")
-   fi
-fi
-AC_SUBST(SGEN_DEFINES)
-AM_CONDITIONAL(SUPPORT_SGEN, test x$buildsgen = xyes)
-
-USEJIT=false
-if test x$JIT_SUPPORTED = xyes; then
-   if $jit_wanted; 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
-   fi
-else
-   if test x$interp_wanted = xtrue; then
-      jit_status="interpreter"
-   else
-      AC_ERROR(No JIT or interpreter support available or selected.)
-   fi
-fi
-
-AM_CONDITIONAL(USE_JIT, test x$USEJIT = xtrue)
-
-libsuffix=".so"
-
-case "$host" in
-     *-*-darwin*)
-       libsuffix=".dylib"
-       LIBC="libc.dylib"
-       INTL="libintl.dylib"
-       SQLITE="libsqlite.0.dylib"
-       SQLITE3="libsqlite3.0.dylib"
-       X11="libX11.dylib"
-       ;;
-     *-*-*netbsd*)
-       LIBC="libc.so.12"
-       INTL="libintl.so.0"
-       ;;
-    *-*-*freebsd*)
-       LIBC="libc.so"
-       INTL="libintl.so"
-       SQLITE="libsqlite.so"
-       SQLITE3="libsqlite3.so"
-       ;;
-    *-*-*openbsd*)
-       LIBC="libc.so"
-       INTL="libintl.so"
-        SQLITE="libsqlite.so"
-        SQLITE3="libsqlite3.so"
-       ;;
-    *-*-*linux*)
-       AC_PATH_X
-       dlsearch_path=`(libtool --config ; echo eval echo \\$sys_lib_dlsearch_path_spec) | sh`
-       AC_MSG_CHECKING(for the soname of libX11.so)
-       for i in $x_libraries $dlsearch_path; do
-               for r in 4 5 6; do
-                       if test -f $i/libX11.so.$r; then
-                               X11=libX11.so.$r
-                               AC_MSG_RESULT($X11)
-                       fi
-               done
-       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...]);
-               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
-
-
-AC_SUBST(libsuffix)
-
-if test "x$TARGET" = "xAMD64" -o "x$TARGET" = "xX86"; then
-       if test "x$with_tls" = "x__thread"; then
-               #
-               # On some linux distributions, TLS works in executables, but linking 
-               # against a shared library containing TLS fails with:
-               # undefined reference to `__tls_get_addr'
-               #
-               rm -f conftest.c conftest.so conftest
-               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
-                  AC_MSG_WARN([Disabling usage of __thread.]);
-                  with_tls=pthread
-               fi
-               rm -f conftest.c conftest.so conftest
-       fi
-fi
-
-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
-       CPPFLAGS="$CPPFLAGS -DUSE_COMPILER_TLS"
-       AC_MSG_CHECKING(if the tls_model attribute is supported)
-       AC_TRY_COMPILE([static __thread int foo __attribute__((tls_model("initial-exec")));], [
-               ], [
-                       AC_MSG_RESULT(yes)
-                       AC_DEFINE(HAVE_TLS_MODEL_ATTR, 1, [tls_model available])
-               ], [
-                       AC_MSG_RESULT(no)
-       ])
-fi
-
-if test ${TARGET} = ARM; then
-       dnl ******************************************
-       dnl *** Check to see what FPU is available ***
-       dnl ******************************************
-       AC_MSG_CHECKING(which FPU to use)
-
-       #
-       # This is a bit tricky:
-       #
-       # if (__ARM_PCS_VFP) {
-       #       /* mfloat-abi=hard == VFP with hard ABI */
-       # } elif (!__SOFTFP__) {
-       #       /* mfloat-abi=softfp == VFP with soft ABI */
-       # } else {
-       #       /* mfloat-abi=soft == no VFP */
-       # }
-       #
-       # The exception is iOS (w/ GCC) where none of the above
-       # are defined (but iOS always uses the 'softfp' ABI).
-       #
-       # No support for FPA.
-       #
-
-       fpu=NONE
-
-       # iOS GCC always uses the 'softfp' ABI.
-       if test x"$GCC" = xyes && test x$platform_darwin = xyes; then
-               fpu=VFP
-       fi
-
-       # Are we using the 'hard' ABI?
-       if test x$fpu = xNONE; then
-               AC_TRY_COMPILE([], [
-                       #ifndef __ARM_PCS_VFP
-                       #error "Float ABI is not 'hard'"
-                       #endif
-                       return 0;
-               ], [
-                       fpu=VFP_HARD
-               ], [
-                       fpu=NONE
-               ])
-       fi
-
-       # No 'hard' ABI. 'soft' or 'softfp'?
-       if test x$fpu = xNONE; then
-               AC_TRY_COMPILE([], [
-                       #ifdef __SOFTFP__
-                       #error "Float ABI is not 'softfp'"
-                       #endif
-                       return 0;
-               ], [
-                       fpu=VFP
-               ], [
-                       fpu=NONE
-               ])
-       fi
-
-       AC_MSG_RESULT($fpu)
-       CPPFLAGS="$CPPFLAGS -DARM_FPU_$fpu=1"
-       unset fpu
-
-       dnl *********************************************
-       dnl *** Check which ARM version(s) we can use ***
-       dnl *********************************************
-       AC_MSG_CHECKING(which ARM version to use)
-
-       AC_TRY_COMPILE([], [
-               #if !defined(__ARM_ARCH_5T__) && !defined(__ARM_ARCH_5TE__) && !defined(__ARM_ARCH_5TEJ__)
-               #error Not on ARM v5.
-               #endif
-               return 0;
-       ], [
-               arm_v5=yes
-
-               arm_ver=ARMv5
-       ], [])
-
-       AC_TRY_COMPILE([], [
-               #if !defined(__ARM_ARCH_6J__) && !defined(__ARM_ARCH_6ZK__) && !defined(__ARM_ARCH_6K__) && !defined(__ARM_ARCH_6T2__) && !defined(__ARM_ARCH_6M__)
-               #error Not on ARM v6.
-               #endif
-               return 0;
-       ], [
-               arm_v5=yes
-               arm_v6=yes
-
-               arm_ver=ARMv6
-       ], [])
-
-       AC_TRY_COMPILE([], [
-               #if !defined(__ARM_ARCH_7A__) && !defined(__ARM_ARCH_7R__) && !defined(__ARM_ARCH_7EM__) && !defined(__ARM_ARCH_7M__) && !defined(__ARM_ARCH_7S__)
-               #error Not on ARM v7.
-               #endif
-               return 0;
-       ], [
-               arm_v5=yes
-               arm_v6=yes
-               arm_v7=yes
-
-               arm_ver=ARMv7
-       ], [])
-
-       AC_MSG_RESULT($arm_ver)
-
-       if test x$arm_v5 = xyes; then
-               AC_DEFINE(HAVE_ARMV5, 1, [ARM v5])
-               CPPFLAGS_FOR_LIBGC="$CPPFLAGS_FOR_LIBGC -DHAVE_ARMV5=1"
-       fi
-
-       if test x$arm_v6 = xyes; then
-               AC_DEFINE(HAVE_ARMV6, 1, [ARM v6])
-               CPPFLAGS_FOR_LIBGC="$CPPFLAGS_FOR_LIBGC -DHAVE_ARMV6=1"
-       fi
-
-       if test x$arm_v7 = xyes; then
-               AC_DEFINE(HAVE_ARMV7, 1, [ARM v7])
-               CPPFLAGS_FOR_LIBGC="$CPPFLAGS_FOR_LIBGC -DHAVE_ARMV7=1"
-       fi
-fi
-
-if test ${TARGET} = ARM; then
-       if test "x${with_jumptables}" = "xyes"; then
-                AC_DEFINE(USE_JUMP_TABLES, 1, Use jump tables in JIT)
-        fi
-fi
-
-if test ${TARGET} = unknown; then
-       CPPFLAGS="$CPPFLAGS -DNO_PORT"
-       AC_MSG_WARN("mono has not been ported to $host: some things may not work.")
-fi
-
-if test ${ACCESS_UNALIGNED} = no; then
-       CPPFLAGS="$CPPFLAGS -DNO_UNALIGNED_ACCESS"
-fi
-
-case "x$gc" in
-       xincluded)
-               # Pass CPPFLAGS to libgc configure
-               # We should use a separate variable for this to avoid passing useless and
-               # potentially problematic defines to libgc (like -D_FILE_OFFSET_BITS=64)
-               # This should be executed late so we pick up the final version of CPPFLAGS
-               # The problem with this approach, is that during a reconfigure, the main
-               # configure scripts gets invoked with these arguments, so we use separate
-               # variables understood by libgc's configure to pass CPPFLAGS and CFLAGS.
-               TMP_CPPFLAGS="$CPPFLAGS $CPPFLAGS_FOR_LIBGC"
-               if test x$TARGET = xSPARC -o x$TARGET = xSPARC64; then
-                       TMP_CPPFLAGS=`echo $TMP_CPPFLAGS | sed -e 's/-D_FILE_OFFSET_BITS=64//g'`
-               fi
-               # Don't pass -finstrument-for-thread-suspension in, 
-               # if these are instrumented it will be very bad news 
-               # (infinite recursion, undefined parking behavior, etc)
-               TMP_CPPFLAGS=`echo $TMP_CPPFLAGS | sed -e 's/-finstrument-for-thread-suspension//g'`
-               ac_configure_args="$ac_configure_args --disable-embed-check --with-libgc-threads=$libgc_threads $libgc_configure_args \"CPPFLAGS_FOR_LIBGC=$TMP_CPPFLAGS\" \"CFLAGS_FOR_LIBGC=$CFLAGS_FOR_LIBGC\""
-               AC_CONFIG_SUBDIRS(libgc)
-               ;;
-esac
-
-AC_ARG_WITH(profile2,  [  --with-profile2=yes,no          If you want to install the 2.0/3.5 FX (defaults to yes)],            [], [with_profile2=yes])
-AC_ARG_WITH(profile4,  [  --with-profile4=yes,no          If you want to install the 4.0 FX (defaults to yes)],                [], [with_profile4=yes])
-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])
-
-OPROFILE=no
-AC_ARG_WITH(oprofile,[  --with-oprofile=no,<oprofile install dir>   Enable oprofile support (defaults to no)],[
-       if test x$with_oprofile != xno; then
-           oprofile_include=$with_oprofile/include
-           if test ! -f $oprofile_include/opagent.h; then
-                 AC_MSG_ERROR([oprofile include file not found at $oprofile_include/opagent.h])
-               fi
-           OPROFILE=yes
-               OPROFILE_CFLAGS="-I$oprofile_include"
-           OPROFILE_LIBS="-L$with_oprofile/lib/oprofile -lopagent"
-           AC_DEFINE(HAVE_OPROFILE,1,[Have oprofile support])
-       fi
-])
-
-MALLOC_MEMPOOLS=no
-AC_ARG_WITH(malloc_mempools,[  --with-malloc-mempools=yes,no  Use malloc for each single mempool allocation (only for runtime debugging, defaults to no)],[
-       if test x$with_malloc_mempools = xyes; then
-               MALLOC_MEMPOOLS=yes
-               AC_DEFINE(USE_MALLOC_FOR_MEMPOOLS,1,[Use malloc for each single mempool allocation])
-       fi
-])
-
-
-DISABLE_MCS_DOCS=no
-AC_ARG_WITH(mcs_docs,[  --with-mcs-docs=yes,no         If you want to build the documentation under mcs (defaults to yes)],[
-       if test x$with_mcs_docs != xyes; then
-               DISABLE_MCS_DOCS=yes
-       fi
-])
-if test x$with_profile4 != xyes; then
-       DISABLE_MCS_DOCS=yes
-fi
-
-AC_ARG_WITH(lazy_gc_thread_creation, [  --with-lazy-gc-thread-creation=yes|no      Enable lazy runtime thread creation, embedding host must do it explicitly (defaults to no)],[
-       if test x$with_lazy_gc_thread_creation != xno ; then
-               AC_DEFINE(LAZY_GC_THREAD_CREATION,1,[Enable lazy gc thread creation by the embedding host.])
-       fi
-], [with_lazy_gc_thread_creation=no])
-
-AC_CHECK_HEADER([malloc.h], 
-               [AC_DEFINE([HAVE_USR_INCLUDE_MALLOC_H], [1], 
-                       [Define to 1 if you have /usr/include/malloc.h.])],,)
-
-if test x"$GCC" = xyes; then
-       # Implicit function declarations are not 64 bit safe
-       # Do this late, since this causes lots of configure tests to fail
-       CFLAGS="$CFLAGS -Werror-implicit-function-declaration"
-       # jay has a lot of implicit declarations
-       JAY_CFLAGS="-Wno-implicit-function-declaration"
-fi
-
-# When --disable-shared is used, libtool transforms libmono-2.0.la into libmono-2.0.so
-# instead of libmono-static.a
-if test "x$enable_shared" = "xno" -a "x$enable_executables" = "xyes"; then
-   LIBMONO_LA=libmini-static.la
-else
-   if test x$buildsgen = xyes; then
-      LIBMONO_LA=libmonosgen-$API_VER.la
-   else
-      LIBMONO_LA=libmonoboehm-$API_VER.la
-   fi
-fi
-AC_SUBST(LIBMONO_LA)
-
-dnl
-dnl Consistency settings
-dnl
-if test x$cross_compiling = xyes -o x$enable_mcs_build = xno; then
-   DISABLE_MCS_DOCS=yes
-   with_profile2=no
-   with_profile4=no
-   with_profile4_5=no
-   with_monodroid=no
-   with_monotouch=no
-   with_xammac=no
-fi
-
-if test x$DISABLE_MCS_DOCS = xyes; then
-   docs_dir=""
-else
-   docs_dir=docs
-fi
-AC_SUBST(docs_dir)
-
-## Maybe should also disable if mcsdir is invalid.  Let's punt the issue for now.
-AM_CONDITIONAL(BUILD_MCS, [test x$cross_compiling = xno && test x$enable_mcs_build != xno])
-
-AM_CONDITIONAL(HAVE_OPROFILE, test x$OPROFILE = xyes)
-AC_SUBST(OPROFILE_CFLAGS)
-AC_SUBST(OPROFILE_LIBS)
-
-libmono_ldflags="$libmono_ldflags $LIBS"
-
-AM_CONDITIONAL(INSTALL_2_0, [test "x$with_profile2" = xyes])
-AM_CONDITIONAL(INSTALL_4_0, [test "x$with_profile4" = xyes])
-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)
-AM_CONDITIONAL(SPARC, test x$TARGET = xSPARC)
-AM_CONDITIONAL(SPARC64, test x$TARGET = xSPARC64)
-AM_CONDITIONAL(X86, test x$TARGET = xX86)
-AM_CONDITIONAL(AMD64, test x$TARGET = xAMD64)
-AM_CONDITIONAL(IA64, test x$TARGET = xIA64)
-AM_CONDITIONAL(MIPS, test x$TARGET = xMIPS)
-AM_CONDITIONAL(POWERPC, test x$TARGET = xPOWERPC)
-AM_CONDITIONAL(POWERPC64, test x$TARGET = xPOWERPC64)
-AM_CONDITIONAL(ARM, test x$TARGET = xARM)
-AM_CONDITIONAL(ARM64, test x$TARGET = xARM64)
-AM_CONDITIONAL(S390X, test x$TARGET = xS390X)
-AM_CONDITIONAL(HOST_X86, test x$HOST = xX86)
-AM_CONDITIONAL(HOST_AMD64, test x$HOST = xAMD64)
-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(JIT_SUPPORTED, test x$JIT_SUPPORTED = xyes)
-AM_CONDITIONAL(INTERP_SUPPORTED, test x$interp_wanted = xtrue)
-AM_CONDITIONAL(INCLUDED_LIBGC, test x$gc = xincluded)
-
-AC_SUBST(LIBC)
-AC_SUBST(INTL)
-AC_SUBST(SQLITE)
-AC_SUBST(SQLITE3)
-AC_SUBST(X11)
-AC_SUBST(XINERAMA)
-AC_DEFINE_UNQUOTED(ARCHITECTURE,"$arch_target",[The architecture this is running on])
-AC_SUBST(arch_target)
-AC_SUBST(CFLAGS)
-AC_SUBST(CPPFLAGS)
-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
-AC_SUBST(mono_runtime)
-
-mono_cfg_root=$mono_build_root/runtime
-if test x$host_win32 = xyes; then
-  if test "x$cross_compiling" = "xno"; then
-    mono_cfg_dir=`cygpath -w -a $mono_cfg_root`\\etc
-  else
-    mono_cfg_dir=`echo $mono_cfg_root | tr '/' '\\'`\\etc
-  fi
-else
-  mono_cfg_dir=$mono_cfg_root/etc
-fi
-AC_SUBST(mono_cfg_dir)
-
-AC_CONFIG_FILES([po/mcs/Makefile.in])
-
-AC_CONFIG_FILES([runtime/mono-wrapper],[chmod +x runtime/mono-wrapper])
-AC_CONFIG_FILES([runtime/monodis-wrapper],[chmod +x runtime/monodis-wrapper])
-
-AC_CONFIG_COMMANDS([runtime/etc/mono/1.0/machine.config],
-[   depth=../../../..
-    case $srcdir in
-    [[\\/$]]* | ?:[[\\/]]* ) reldir=$srcdir ;;
-    .) reldir=$depth ;;
-    *) reldir=$depth/$srcdir ;;
-    esac
-    $ac_aux_dir/install-sh -d runtime/etc/mono/1.0
-    cd runtime/etc/mono/1.0
-    rm -f machine.config
-    $LN_S $reldir/data/net_1_1/machine.config machine.config
-    cd $depth
-],[LN_S='$LN_S'])
-
-AC_CONFIG_COMMANDS([runtime/etc/mono/2.0/machine.config],
-[   depth=../../../..
-    case $srcdir in
-    [[\\/$]]* | ?:[[\\/]]* ) reldir=$srcdir ;;
-    .) reldir=$depth ;;
-    *) reldir=$depth/$srcdir ;;
-    esac
-    $ac_aux_dir/install-sh -d runtime/etc/mono/2.0
-    cd runtime/etc/mono/2.0
-    rm -f machine.config
-    $LN_S $reldir/data/net_2_0/machine.config machine.config
-    cd $depth
-],[LN_S='$LN_S'])
-
-AC_CONFIG_COMMANDS([runtime/etc/mono/2.0/web.config],
-[   depth=../../../..
-    case $srcdir in
-    [[\\/$]]* | ?:[[\\/]]* ) reldir=$srcdir ;;
-    .) reldir=$depth ;;
-    *) reldir=$depth/$srcdir ;;
-    esac
-    $ac_aux_dir/install-sh -d runtime/etc/mono/2.0
-    cd runtime/etc/mono/2.0
-    rm -f web.config
-    $LN_S $reldir/data/net_2_0/web.config web.config
-    cd $depth
-],[LN_S='$LN_S'])
-
-AC_CONFIG_COMMANDS([runtime/etc/mono/browscap.ini],
-[   depth=../../..
-    case $srcdir in
-    [[\\/$]]* | ?:[[\\/]]* ) reldir=$srcdir ;;
-    .) reldir=$depth ;;
-    *) reldir=$depth/$srcdir ;;
-    esac
-    $ac_aux_dir/install-sh -d runtime/etc/mono/
-    cd runtime/etc/mono/
-    rm -f browscap.ini
-    $LN_S $reldir/data/browscap.ini browscap.ini
-    cd $depth
-],[LN_S='$LN_S'])
-
-AC_CONFIG_COMMANDS([runtime/etc/mono/2.0/Browsers/Compat.browser],
-[   depth=../../../../..
-    case $srcdir in
-    [[\\/$]]* | ?:[[\\/]]* ) reldir=$srcdir ;;
-    .) reldir=$depth ;;
-    *) reldir=$depth/$srcdir ;;
-    esac
-    $ac_aux_dir/install-sh -d runtime/etc/mono/2.0/Browsers/
-    cd runtime/etc/mono/2.0/Browsers
-    rm -f Compat.browser
-    $LN_S $reldir/data/Browsers/Compat.browser Compat.browser
-    cd $depth
-],[LN_S='$LN_S'])
-
-AC_CONFIG_COMMANDS([runtime/etc/mono/4.0/Browsers/Compat.browser],
-[   depth=../../../../..
-    case $srcdir in
-    [[\\/$]]* | ?:[[\\/]]* ) reldir=$srcdir ;;
-    .) reldir=$depth ;;
-    *) reldir=$depth/$srcdir ;;
-    esac
-    $ac_aux_dir/install-sh -d runtime/etc/mono/4.0/Browsers/
-    cd runtime/etc/mono/4.0/Browsers
-    rm -f Compat.browser
-    $LN_S $reldir/data/Browsers/Compat.browser Compat.browser
-    cd $depth
-],[LN_S='$LN_S'])
-
-AC_CONFIG_COMMANDS([runtime/etc/mono/4.5/Browsers/Compat.browser],
-[   depth=../../../../..
-    case $srcdir in
-    [[\\/$]]* | ?:[[\\/]]* ) reldir=$srcdir ;;
-    .) reldir=$depth ;;
-    *) reldir=$depth/$srcdir ;;
-    esac
-    $ac_aux_dir/install-sh -d runtime/etc/mono/4.5/Browsers/
-    cd runtime/etc/mono/4.5/Browsers
-    rm -f Compat.browser
-    $LN_S $reldir/data/Browsers/Compat.browser Compat.browser
-    cd $depth
-],[LN_S='$LN_S'])
-
-AC_CONFIG_COMMANDS([runtime/etc/mono/4.0/machine.config],
-[   depth=../../../..
-    case $srcdir in
-    [[\\/$]]* | ?:[[\\/]]* ) reldir=$srcdir ;;
-    .) reldir=$depth ;;
-    *) reldir=$depth/$srcdir ;;
-    esac
-    $ac_aux_dir/install-sh -d runtime/etc/mono/4.0
-    cd runtime/etc/mono/4.0
-    rm -f machine.config
-    $LN_S $reldir/data/net_4_0/machine.config machine.config
-    cd $depth
-],[LN_S='$LN_S'])
-
-AC_CONFIG_COMMANDS([runtime/etc/mono/4.0/web.config],
-[   depth=../../../..
-    case $srcdir in
-    [[\\/$]]* | ?:[[\\/]]* ) reldir=$srcdir ;;
-    .) reldir=$depth ;;
-    *) reldir=$depth/$srcdir ;;
-    esac
-    $ac_aux_dir/install-sh -d runtime/etc/mono/4.0
-    cd runtime/etc/mono/4.0
-    rm -f web.config
-    $LN_S $reldir/data/net_4_0/web.config web.config
-    cd $depth
-],[LN_S='$LN_S'])
-
-AC_CONFIG_COMMANDS([runtime/etc/mono/4.5/machine.config],
-[   depth=../../../..
-    case $srcdir in
-    [[\\/$]]* | ?:[[\\/]]* ) reldir=$srcdir ;;
-    .) reldir=$depth ;;
-    *) reldir=$depth/$srcdir ;;
-    esac
-    $ac_aux_dir/install-sh -d runtime/etc/mono/4.5
-    cd runtime/etc/mono/4.5
-    rm -f machine.config
-    $LN_S $reldir/data/net_4_5/machine.config machine.config
-    cd $depth
-],[LN_S='$LN_S'])
-
-AC_CONFIG_COMMANDS([runtime/etc/mono/4.5/web.config],
-[   depth=../../../..
-    case $srcdir in
-    [[\\/$]]* | ?:[[\\/]]* ) reldir=$srcdir ;;
-    .) reldir=$depth ;;
-    *) reldir=$depth/$srcdir ;;
-    esac
-    $ac_aux_dir/install-sh -d runtime/etc/mono/4.5
-    cd runtime/etc/mono/4.5
-    rm -f web.config
-    $LN_S $reldir/data/net_4_5/web.config web.config
-    cd $depth
-],[LN_S='$LN_S'])
-
-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])
-
-AC_OUTPUT([
-Makefile
-mono-core.spec
-mono-uninstalled.pc
-scripts/mono-find-provides
-scripts/mono-find-requires
-mono/Makefile
-mono/utils/Makefile
-mono/metadata/Makefile
-mono/dis/Makefile
-mono/cil/Makefile
-mono/arch/Makefile
-mono/arch/x86/Makefile
-mono/arch/amd64/Makefile
-mono/arch/ppc/Makefile
-mono/arch/sparc/Makefile
-mono/arch/s390x/Makefile
-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
-mono/tests/cas/Makefile
-mono/tests/cas/assembly/Makefile
-mono/tests/cas/demand/Makefile
-mono/tests/cas/inheritance/Makefile
-mono/tests/cas/linkdemand/Makefile
-mono/tests/cas/threads/Makefile
-mono/tests/gc-descriptors/Makefile
-mono/unit-tests/Makefile
-mono/benchmark/Makefile
-mono/monograph/Makefile
-mono/io-layer/Makefile
-mono/mini/Makefile
-mono/profiler/Makefile
-m4/Makefile
-ikvm-native/Makefile
-scripts/Makefile
-man/Makefile
-docs/Makefile
-data/Makefile
-data/net_2_0/Makefile
-data/net_4_0/Makefile
-data/net_4_5/Makefile
-data/net_2_0/Browsers/Makefile
-data/net_4_0/Browsers/Makefile
-data/net_4_5/Browsers/Makefile
-data/mint.pc
-data/mono-2.pc
-data/monosgen-2.pc
-data/mono.pc
-data/mono-cairo.pc
-data/mono-nunit.pc
-data/mono-options.pc
-data/mono-lineeditor.pc
-data/monodoc.pc
-data/dotnet.pc
-data/dotnet35.pc
-data/wcf.pc
-data/cecil.pc
-data/system.web.extensions_1.0.pc
-data/system.web.extensions.design_1.0.pc
-data/system.web.mvc.pc
-data/system.web.mvc2.pc
-data/system.web.mvc3.pc
-data/aspnetwebstack.pc
-data/reactive.pc
-samples/Makefile
-support/Makefile
-data/config
-tools/Makefile
-tools/locale-builder/Makefile
-tools/sgen/Makefile
-runtime/Makefile
-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
-   # libtool seems to inherit -mno-cygwin from our CFLAGS, and uses it to compile its executable
-   # wrapper scripts which use exec(). gcc has no problem compiling+linking this, but the resulting
-   # executable doesn't work...
-   sed -e "s,-mno-cygwin,,g" libtool > libtool.new; mv libtool.new libtool; chmod 755 libtool
-fi
-
-if test x$platform_darwin = xyes; then
-   # This doesn't seem to be required and it slows down parallel builds
-   sed -e 's,lock_old_archive_extraction=yes,lock_old_archive_extraction=no,g' < libtool > libtool.new && mv libtool.new libtool && chmod +x libtool
-fi
-
-(
-  case $prefix in
-  NONE) prefix=$ac_default_prefix ;;
-  esac
-  case $exec_prefix in
-  NONE) exec_prefix='${prefix}' ;;
-  esac
-
-  #
-  # If we are cross compiling, we don't build in the mcs/ tree.  Let us not clobber
-  # any existing config.make.  This allows people to share the same source tree
-  # with different build directories, one native and one cross
-  #
-  if test x$cross_compiling = xno && test x$enable_mcs_build != xno; then
-
-    test -w $mcs_topdir/build || chmod +w $mcs_topdir/build
-
-    echo "prefix=$prefix" > $mcs_topdir/build/config.make
-    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 '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
-    echo "JAY_CFLAGS = $JAY_CFLAGS" >> $mcs_topdir/build/config.make
-
-    case $INSTALL in
-    [[\\/$]]* | ?:[[\\/]]* ) mcs_INSTALL=$INSTALL ;;
-    *) mcs_INSTALL=$mono_build_root/$INSTALL ;;
-    esac
-
-    echo "INSTALL = $mcs_INSTALL" >> $mcs_topdir/build/config.make
-
-    export VERSION
-    [myver=$($AWK 'BEGIN {
-      split (ENVIRON["VERSION"] ".0.0.0", vsplit, ".")
-      if(length(vsplit [1]) > 4) {
-        split (substr(ENVIRON["VERSION"], 0, 4) "." substr(ENVIRON["VERSION"], 5) ".0.0", vsplit, ".")
-      }
-      print vsplit [1] "." vsplit [2] "." vsplit [3] "." vsplit [4]
-    }')]
-
-    echo "MONO_VERSION = $myver" >> $mcs_topdir/build/config.make
-
-    if test x$platform_darwin = xyes; then
-      echo "PLATFORM = darwin" >> $mcs_topdir/build/config.make
-    fi
-
-       if test x$AOT_SUPPORTED = xyes -a x$enable_system_aot = xdefault; then
-          enable_system_aot=yes
-       fi
-
-       if test "x$enable_loadedllvm" = "xyes"; then
-          # This seems to fail on the x86 buildbots
-          enable_system_aot=no
-       fi
-
-    if test x$host_win32 = xno -a x$enable_system_aot = xyes; then
-      echo "ENABLE_AOT = 1" >> $mcs_topdir/build/config.make
-    fi
-
-    if test x$DISABLE_MCS_DOCS = xyes; then
-      echo "DISABLE_MCS_DOCS = yes" >> $mcs_topdir/build/config.make
-    fi
-
-    if test x$has_extension_module != xno; then
-        echo "EXTENSION_MODULE = 1" >> $srcdir/$mcsdir/build/config.make
-    fi
-
-       default_profile=net_2_0
-    if test -z "$INSTALL_4_0_TRUE"; then :
-               default_profile=net_4_0
-    fi
-    if test -z "$INSTALL_MONODROID_TRUE"; then :
-               default_profile=monodroid
-    fi
-    if test -z "$INSTALL_MONOTOUCH_TRUE"; then :
-               default_profile=monotouch
-    fi
-       if test -z "$INSTALL_XAMMAC_TRUE"; then :
-               default_profile=xammac
-       fi
-    if test -z "$INSTALL_4_5_TRUE"; then :
-               default_profile=net_4_5
-    fi
-    
-    echo "DEFAULT_PROFILE = $default_profile" >> $srcdir/$mcsdir/build/config.make
-    
-    if test "x$test_bcl_opt" = "xyes"; then    
-      echo "BCL_OPTIMIZE = 1" >> $srcdir/$mcsdir/build/config.make
-    fi
-
-  fi
-
-  # if we have an olive folder, override the default settings
-  if test -d $olivedir; then
-
-    if test x$cross_compiling = xno && test x$enable_olive_build != xno; then
-
-      test -w $srcdir/$olivedir/build || chmod +w $srcdir/$olivedir/build
-
-      echo "prefix=$prefix" > $srcdir/$olivedir/build/config.make
-      echo "exec_prefix=$exec_prefix" >> $srcdir/$olivedir/build/config.make
-      echo 'mono_libdir=${exec_prefix}/lib' >> $srcdir/$olivedir/build/config.make
-      echo 'MCS_FLAGS = $(PLATFORM_DEBUG_FLAGS)' >> $srcdir/$olivedir/build/config.make
-      echo "RUNTIME = $mono_build_root/runtime/mono-wrapper" >> $srcdir/$olivedir/build/config.make
-      echo "MONO_VERSION = $myver" >> $srcdir/$olivedir/build/config.make
-    fi
-  fi
-
-)
-
-libgdiplus_msg=${libgdiplus_loc:-assumed to be installed}
-
-echo "
-        mcs source:    $mcsdir
-
-   Engine:
-       GC:            $gc_msg 
-       TLS:           $with_tls
-       SIGALTSTACK:   $with_sigaltstack
-       Engine:        $jit_status
-       oprofile:      $OPROFILE
-       BigArrays:     $enable_big_arrays
-       DTrace:        $enable_dtrace
-       LLVM Back End: $enable_llvm (dynamically loaded: $enable_loadedllvm)
-
-   Libraries:
-       .NET 2.0/3.5:  $with_profile2
-       .NET 4.0:      $with_profile4
-       .NET 4.5:      $with_profile4_5
-       MonoDroid:     $with_monodroid
-       MonoTouch:     $with_monotouch
-       Xamarin.Mac:   $with_xammac
-       JNI support:   $jdk_headers_found
-       libgdiplus:    $libgdiplus_msg
-       zlib:          $zlib_msg
-       $disabled
-"
-if test x$with_static_mono = xno -a "x$host_win32" != "xyes"; then
-   AC_MSG_WARN(Turning off static Mono is a risk, you might run into unexpected bugs)
-fi
index 1f03b511c3b298c6fc71abcdbfc3bc2d090d944e..8b4dff1fb73f4d315793d370fc99b8b9a9fa3e6f 100644 (file)
@@ -331,7 +331,7 @@ DOC_FILES= README.QUICK doc/README.Mac doc/README.MacOSX doc/README.OS2 \
 TESTS= tests/test.c tests/test_cpp.cc tests/trace_test.c \
        tests/leak_test.c tests/thread_leak_test.c tests/middle.c
 
-GNU_BUILD_FILES= configure.in Makefile.am configure acinclude.m4 \
+GNU_BUILD_FILES= configure.ac Makefile.am configure acinclude.m4 \
                 libtool.m4 install-sh configure.host Makefile.in \
                 aclocal.m4 config.sub config.guess \
                 include/Makefile.am include/Makefile.in \
index bf2fbf7df7ae99df3c6207fd7bddd4785018c2f6..559d3ec493225613625077655994455c6dfca6c5 100644 (file)
@@ -5,8 +5,8 @@ This is a modified version of Boehm GC 6.1 for Mono.
   - Makefile changes:
 
     libgc has a lot of configurable options which are AC_DEFINE()d in its
-    configure.in.  To make it easier to build and bundle it with Mono, I
-    replaced most of the orignal configure.in and the makefiles with custom
+    configure.ac.  To make it easier to build and bundle it with Mono, I
+    replaced most of the orignal configure.ac and the makefiles with custom
     versions which just define what we actually need for Mono.
 
     This means that you can just run configure in this directory and it'll
@@ -58,7 +58,7 @@ This is a modified version of Boehm GC 6.1 for Mono.
 
         cvs diff -u -r LIBGC
 
-  When importing new upstream versions, don't import the new configure.in or any of the
+  When importing new upstream versions, don't import the new configure.ac or any of the
   Makefile.am's; they've been replaced by custom versions.  Just import all the new source
   files and it should be fine.
 
index 376c387885677ce108f2841a1faa8061a235fa29..10ae8cf6831ad2b6fe0977605ab8e6113ff3045e 100755 (executable)
@@ -22,7 +22,7 @@ if [ -z "$LIBTOOL" ]; then
   fi
 fi
 
-(grep "^AM_PROG_LIBTOOL" $srcdir/configure.in >/dev/null) && {
+(grep "^AM_PROG_LIBTOOL" $srcdir/configure.ac >/dev/null) && {
   ($LIBTOOL --version) < /dev/null > /dev/null 2>&1 || {
     echo
     echo "**Error**: You must have \`libtool' installed to compile Mono."
@@ -32,8 +32,8 @@ fi
   }
 }
 
-grep "^AM_GNU_GETTEXT" $srcdir/configure.in >/dev/null && {
-  grep "sed.*POTFILES" $srcdir/configure.in >/dev/null || \
+grep "^AM_GNU_GETTEXT" $srcdir/configure.ac >/dev/null && {
+  grep "sed.*POTFILES" $srcdir/configure.ac >/dev/null || \
   (gettext --version) < /dev/null > /dev/null 2>&1 || {
     echo
     echo "**Error**: You must have \`gettext' installed to compile Mono."
@@ -80,7 +80,7 @@ xlc )
 esac
 
 
-if grep "^AC_PROG_LIBTOOL" configure.in >/dev/null; then
+if grep "^AC_PROG_LIBTOOL" configure.ac >/dev/null; then
   if test -z "$NO_LIBTOOLIZE" ; then 
     echo "Running libtoolize..."
     ${LIBTOOL}ize --force --copy
@@ -99,7 +99,7 @@ aclocal $ACLOCAL_FLAGS || {
   exit 1
 }
 
-if grep "^AC_CONFIG_HEADERS" configure.in >/dev/null; then
+if grep "^AC_CONFIG_HEADERS" configure.ac >/dev/null; then
   echo "Running autoheader..."
   autoheader || { echo "**Error**: autoheader failed."; exit 1; }
 fi
diff --git a/libgc/configure.ac b/libgc/configure.ac
new file mode 100644 (file)
index 0000000..837e2cb
--- /dev/null
@@ -0,0 +1,550 @@
+# Copyright (c) 1999-2001 by Red Hat, Inc. All rights reserved.
+# 
+# THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
+# OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
+# 
+# Permission is hereby granted to use or copy this program
+# for any purpose,  provided the above notices are retained on all copies.
+# Permission to modify the code and to distribute modified code is granted,
+# provided the above notices are retained, and a notice that the code was
+# modified is included with the above copyright notice.
+#
+# Original author: Tom Tromey
+# Modified by: Grzegorz Jakacki <jakacki at acm dot org>
+
+dnl Process this file with autoconf to produce configure.
+
+AC_PREREQ([2.53])
+AC_INIT([libgc-mono], [6.6], [Hans_Boehm@hp.com])
+
+AM_INIT_AUTOMAKE([1.9 no-define foreign])
+AC_CONFIG_SRCDIR(gcj_mlc.c)
+AC_CONFIG_MACRO_DIR([m4])
+AC_CANONICAL_HOST
+
+AC_SUBST(PACKAGE)
+AC_SUBST(GC_VERSION)
+
+AC_PROG_CC
+AC_PROG_CXX
+
+m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
+
+dnl automake 1.6 and later need the AM_PROG_AS macro.
+ifdef([AM_PROG_AS],[AM_PROG_AS],[])
+AC_CHECK_TOOL(AR, ar)
+AC_CHECK_TOOL(RANLIB, ranlib, :)  # :)
+
+AC_PROG_INSTALL
+
+AM_MAINTAINER_MODE
+
+. [$]{srcdir}/configure.host
+
+# We use a separate variable to pass down CPPFLAGS and CFLAGS from the main mono 
+# configure, because of autoconf brokeness
+if test "x$CPPFLAGS_FOR_LIBGC" != "x"; then
+   CPPFLAGS=$CPPFLAGS_FOR_LIBGC
+fi
+if test "x$CFLAGS_FOR_LIBGC" != "x"; then
+   CFLAGS=$CFLAGS_FOR_LIBGC
+fi
+
+GC_CFLAGS=${gc_cflags}
+AC_SUBST(GC_CFLAGS)
+
+case $enable_embed_check in
+no) ;;
+*) AC_MSG_ERROR([This module is now part of 'mono' and cannot be built as a stand-alone module any longer.]) ;;
+esac
+
+THREADS=$with_libgc_threads
+
+AC_ARG_ENABLE(win32-dllmain,
+[  --enable-win32-dllmain    Define the DllMain function in win32_threads.c even if the collector is not built as a dll],
+)
+
+AC_ARG_ENABLE(parallel-mark,
+[  --enable-parallel-mark      parallelize marking and free list construction],
+   [case "$THREADS" in
+      no | none | single)
+       AC_MSG_ERROR([Parallel mark requires --enable-threads=x spec])
+       ;;
+    esac]
+)
+
+AC_ARG_ENABLE(cplusplus,
+[  --enable-cplusplus          install C++ support],
+)
+
+AM_CPPFLAGS=-I${srcdir}/include
+THREADDLLIBS=
+## Libraries needed to support dynamic loading and/or threads.
+case "$THREADS" in
+ no | none | single)
+    THREADS=none
+    ;;
+ posix | pthreads)
+    THREADS=posix
+    AC_CHECK_LIB(pthread, pthread_self, THREADDLLIBS="-lpthread",,)
+    case "$host" in
+     x86-*-linux* | ia64-*-linux* | i386-*-linux* | i486-*-linux* | i586-*-linux* | i686-*-linux* | x86_64-*-linux* | alpha*-*-linux* | s390*-*-linux* | sparc*-*-linux* | powerpc-*-linux*)
+       AC_DEFINE(GC_LINUX_THREADS)
+       AC_DEFINE(_REENTRANT)
+        if test "${enable_parallel_mark}" = yes; then
+         AC_DEFINE(PARALLEL_MARK)
+       fi
+       AC_DEFINE(THREAD_LOCAL_ALLOC)
+       ;;
+     *-*-linux* | *-*-nacl*)
+       AC_DEFINE(GC_LINUX_THREADS)
+       AC_DEFINE(_REENTRANT)
+       ;;
+     *-*-aix*)
+       AC_DEFINE(GC_AIX_THREADS)
+       AC_DEFINE(_REENTRANT)
+       ;;
+     *-*-hpux*)
+       AC_MSG_WARN("Only HP/UX 11 threads are supported.")
+       AC_DEFINE(GC_HPUX_THREADS)
+       AC_DEFINE(_POSIX_C_SOURCE,199506L)
+       if test "${enable_parallel_mark}" = yes; then
+         AC_DEFINE(PARALLEL_MARK)
+       fi
+       AC_DEFINE(THREAD_LOCAL_ALLOC)
+       THREADDLLIBS="-lpthread -lrt"
+       ;;
+      *-*-freebsd*)
+       AC_DEFINE(GC_FREEBSD_THREADS)
+       if test "x$PTHREAD_CFLAGS" != "x"; then
+               AM_CPPFLAGS="$AM_CPPFLAGS $PTHREAD_CFLAGS"
+       fi
+       if test "x$PTHREAD_LIBS" = "x"; then
+               THREADDLLIBS=-pthread
+       else
+               THREADDLLIBS="$PTHREAD_LIBS"
+       fi
+       AC_DEFINE(THREAD_LOCAL_ALLOC)
+       ;;
+     *-*-solaris*)
+       AC_DEFINE(GC_SOLARIS_THREADS)
+       AC_DEFINE(GC_SOLARIS_PTHREADS)
+       ;;
+     *-*-irix*)
+       AC_DEFINE(GC_IRIX_THREADS)
+       ;;
+     *-*-cygwin*)
+       AC_DEFINE(GC_WIN32_THREADS)
+       ;;
+     *-*-darwin*)
+       AC_DEFINE(GC_DARWIN_THREADS)
+       AC_DEFINE(THREAD_LOCAL_ALLOC)
+       if test "${enable_parallel_mark}" = yes; then
+         AC_DEFINE(PARALLEL_MARK)
+       fi
+       ;;
+     *-*-netbsd*)
+       AC_DEFINE(GC_NETBSD_THREADS)
+       if test "${enable_parallel_mark}" = yes; then
+         AC_DEFINE(PARALLEL_MARK)
+       fi
+       AC_DEFINE(THREAD_LOCAL_ALLOC)
+       ;;
+     *-*-openbsd*)
+       AC_DEFINE(GC_OPENBSD_THREADS)
+       if test "${enable_parallel_mark}" = yes; then
+         AC_DEFINE(PARALLEL_MARK)
+       fi
+       AC_DEFINE(THREAD_LOCAL_ALLOC)
+       ;;
+     *-*-osf*)
+       AC_DEFINE(GC_OSF1_THREADS)
+        if test "${enable_parallel_mark}" = yes; then
+         AC_DEFINE(PARALLEL_MARK)
+         AC_DEFINE(THREAD_LOCAL_ALLOC)
+         # May want to enable it in other cases, too.
+         # Measurements havent yet been done.
+       fi
+       AM_CPPFLAGS="$AM_CPPFLAGS -pthread"
+       THREADDLLIBS="-lpthread -lrt"
+       ;;
+      *)
+       AC_MSG_ERROR("Pthreads not supported by the GC on this platform.")
+       ;;
+    esac
+    ;;
+ win32)
+    AC_DEFINE(GC_WIN32_THREADS)
+    dnl Wine getenv may not return NULL for missing entry
+    AC_DEFINE(NO_GETENV)
+       if test "${enable_win32_dllmain}" = yes; then
+          AC_DEFINE(GC_INSIDE_DLL)
+       fi
+    ;;
+ dgux386)
+    THREADS=dgux386
+    AC_MSG_RESULT($THREADDLLIBS)
+    # Use pthread GCC  switch
+    THREADDLLIBS=-pthread
+    if test "${enable_parallel_mark}" = yes; then
+        AC_DEFINE(PARALLEL_MARK)
+    fi
+    AC_DEFINE(THREAD_LOCAL_ALLOC)
+    AC_DEFINE(GC_DGUX386_THREADS)
+    AC_DEFINE(DGUX_THREADS)
+    # Enable _POSIX4A_DRAFT10_SOURCE with flag -pthread
+    AM_CPPFLAGS="-pthread $AM_CPPFLAGS"
+    ;;
+ aix)
+    THREADS=posix
+    THREADDLLIBS=-lpthread
+    AC_DEFINE(GC_AIX_THREADS)
+    AC_DEFINE(_REENTRANT)
+    ;;
+ decosf1 | irix | mach | os2 | solaris | dce | vxworks)
+    AC_MSG_ERROR(thread package $THREADS not yet supported)
+    ;;
+ *)
+    AC_MSG_ERROR($THREADS is an unknown thread package)
+    ;;
+esac
+AC_SUBST(THREADDLLIBS)
+
+case "$host" in 
+   powerpc-*-darwin*)
+      powerpc_darwin=true
+      ;;
+esac
+AM_CONDITIONAL(POWERPC_DARWIN,test x$powerpc_darwin = xtrue)
+
+# Check if the GCC builtin __sync_bool_compare_and_swap is available.
+# It is preferred in gc_locks.h for PPC as GCC 4.4 has a problem with the inline assembly there.
+AC_MSG_CHECKING(for __sync_bool_compare_and_swap)
+AC_TRY_COMPILE([],[
+volatile unsigned int foo = 0;
+int main(int argc, char** argv) {
+    unsigned int r1 = __sync_bool_compare_and_swap(&foo, 0, 1);
+    return 0;
+}
+], [
+AC_MSG_RESULT(yes)
+AC_DEFINE(HAS___SYNC_BOOL_COMPARE_AND_SWAP)
+], [
+AC_MSG_RESULT(no)
+])
+
+AC_MSG_CHECKING(for xlc)
+AC_TRY_COMPILE([],[
+ #ifndef __xlC__
+ # error
+ #endif
+], [compiler_xlc=yes], [compiler_xlc=no])
+AC_MSG_RESULT($compiler_xlc)
+AM_CONDITIONAL(COMPILER_XLC,test $compiler_xlc = yes)
+if test $compiler_xlc = yes -a "$powerpc_darwin" = true; then
+  # the darwin stack-frame-walking code is completely broken on xlc
+  AC_DEFINE(DARWIN_DONT_PARSE_STACK)
+fi
+
+# We never want libdl on darwin. It is a fake libdl that just ends up making
+# dyld calls anyway
+case "$host" in
+  *-*-darwin*) ;;
+  *) 
+    AC_CHECK_LIB(dl, dlopen, THREADDLLIBS="$THREADDLLIBS -ldl")
+    ;;
+esac
+
+AC_SUBST(EXTRA_TEST_LIBS)
+
+target_all=libgc.la
+AC_SUBST(target_all)
+
+dnl If the target is an eCos system, use the appropriate eCos
+dnl I/O routines.
+dnl FIXME: this should not be a local option but a global target
+dnl system; at present there is no eCos target.
+TARGET_ECOS="no"
+AC_ARG_WITH(ecos,
+[  --with-ecos             enable runtime eCos target support],
+TARGET_ECOS="$with_ecos"
+)
+
+addobjs=
+addlibs=
+addincludes=
+addtests=
+CXXAM_CPPFLAGS=
+case "$TARGET_ECOS" in
+   no)
+      ;;
+   *)
+      AC_DEFINE(ECOS)
+      CXXINCLUDES="-I${TARGET_ECOS}/include"
+      addobjs="$addobjs ecos.lo"
+      ;;
+esac
+
+if test "${enable_cplusplus}" = yes; then
+      addincludes="$addincludes include/gc_cpp.h include/gc_allocator.h"
+      addtests="$addtests test_cpp"
+fi
+
+AM_CONDITIONAL(CPLUSPLUS, test "${enable_cplusplus}" = yes)
+
+AC_SUBST(CXX)
+
+AC_SUBST(AM_CPPFLAGS)
+AC_SUBST(CXXINCLUDES)
+
+# Configuration of shared libraries
+#
+AC_MSG_CHECKING(whether to build shared libraries)
+AC_ENABLE_SHARED
+
+case "$host" in
+ alpha-*-openbsd*)
+     enable_shared=no
+     AC_MSG_RESULT(no)
+     ;;
+ *)
+     AC_MSG_RESULT(yes)
+     ;;
+esac
+
+# Configuration of machine-dependent code
+#
+AC_MSG_CHECKING(which machine-dependent code should be used) 
+machdep=
+case "$host" in
+ alpha-*-openbsd*)
+    machdep="alpha_mach_dep.lo"
+    if test x"${ac_cv_lib_dl_dlopen}" != xyes ; then
+       AC_MSG_WARN(OpenBSD/Alpha without dlopen(). Shared library support is disabled)
+    fi
+    ;;
+ alpha*-*-linux*)
+    machdep="alpha_mach_dep.lo"
+    ;;
+ i?86-*-solaris2.[[89]] | i?86-*-solaris2.1?)
+    AC_DEFINE(SOLARIS25_PROC_VDB_BUG_FIXED)
+    ;;
+ mipstx39-*-elf*)
+    machdep="mips_ultrix_mach_dep.lo"
+    AC_DEFINE(STACKBASE, __stackbase)
+    AC_DEFINE(DATASTART_IS_ETEXT)
+    ;;
+ mips-dec-ultrix*)
+    machdep="mips_ultrix_mach-dep.lo"
+    ;;
+ mips-nec-sysv*|mips-unknown-sysv*)
+    ;;
+ mips*-*-linux*) 
+    ;; 
+ mips-*-*)
+    machdep="mips_sgi_mach_dep.lo"
+    AC_DEFINE(NO_EXECUTE_PERMISSION)
+    ;;
+ sparc-*-netbsd*)
+    machdep="sparc_netbsd_mach_dep.lo"
+    ;;
+ sparc-sun-solaris2.3)
+    machdep="sparc_mach_dep.lo"
+    AC_DEFINE(SUNOS53_SHARED_LIB)
+    ;;
+ sparc*-sun-solaris2.*)
+    machdep="sparc_mach_dep.lo"
+    ;;
+ ia64-*-*)
+     machdep="mach_dep.lo ia64_save_regs_in_stack.lo"
+       target_ia64=true
+    ;;
+ *-*-nacl*)
+    AC_DEFINE(NO_EXECUTE_PERMISSION)
+    ;;
+esac
+if test x"$machdep" = x; then
+AC_MSG_RESULT($machdep)
+   machdep="mach_dep.lo"
+fi
+addobjs="$addobjs $machdep"
+#
+# Adding object files directly to _LIBADD breaks -j builds, so we need to add the sources
+# instead, but _SOURCES can't contain autoconf substitutions, so add them using automake
+# conditionals.
+#
+#AC_SUBST(addobjs)
+AC_SUBST(addincludes)
+AC_SUBST(addlibs)
+AC_SUBST(addtests)
+
+AM_CONDITIONAL(TARGET_IA64,test x$target_ia64 = xtrue)
+
+AC_PROG_LIBTOOL
+# Use dolt (http://dolt.freedesktop.org/) instead of libtool for building.
+DOLT
+
+#
+# Check for AViiON Machines running DGUX
+#
+ac_is_dgux=no
+AC_CHECK_HEADER(sys/dg_sys_info.h,
+[ac_is_dgux=yes;])
+
+    ## :GOTCHA: we do not check anything but sys/dg_sys_info.h
+if test $ac_is_dgux = yes; then
+    if test "$enable_full_debug" = "yes"; then
+      CFLAGS="-g -mstandard -DDGUX -D_DGUX_SOURCE -Di386 -mno-legend -O2"
+      CXXFLAGS="-g -mstandard -DDGUX -D_DGUX_SOURCE -Di386 -mno-legend -O2"
+    else
+      CFLAGS="-DDGUX -D_DGUX_SOURCE -Di386 -mno-legend -O2"
+      CXXFLAGS="-DDGUX -D_DGUX_SOURCE -Di386 -mno-legend -O2"
+    fi
+    AC_SUBST(CFLAGS)
+    AC_SUBST(CXXFLAGS)
+fi
+
+dnl We use these options to decide which functions to include.
+AC_ARG_WITH(target-subdir,
+[  --with-target-subdir=SUBDIR
+                          configuring with a cross compiler])
+AC_ARG_WITH(cross-host,
+[  --with-cross-host=HOST  configuring with a cross compiler])
+
+# automake wants to see AC_EXEEXT.  But we don't need it.  And having
+# it is actually a problem, because the compiler we're passed can't
+# necessarily do a full link.  So we fool automake here.
+if false; then
+  # autoconf 2.50 runs AC_EXEEXT by default, and the macro expands
+  # to nothing, so nothing would remain between `then' and `fi' if it
+  # were not for the `:' below.
+  :
+  AC_EXEEXT
+fi
+
+AC_MSG_CHECKING([for threads package to use])
+AC_MSG_RESULT($THREADS)
+
+dnl As of 4.13a2, the collector will not properly work on Solaris when
+dnl built with gcc and -O.  So we remove -O in the appropriate case.
+dnl Not needed anymore on Solaris.
+AC_MSG_CHECKING(whether Solaris gcc optimization fix is necessary)
+case "$host" in
+ *aix*)
+    if test "$GCC" = yes; then
+       AC_MSG_RESULT(yes)
+       new_CFLAGS=
+       for i in $CFLAGS; do
+         case "$i" in
+          -O*)
+             ;;
+          *)
+             new_CFLAGS="$new_CFLAGS $i"
+             ;;
+         esac
+       done
+       CFLAGS="$new_CFLAGS"
+    else
+       AC_MSG_RESULT(no)
+    fi
+    ;;
+ *) AC_MSG_RESULT(no) ;;
+esac
+
+dnl We need to override the top-level CFLAGS.  This is how we do it.
+MY_CFLAGS="$CFLAGS"
+AC_SUBST(MY_CFLAGS)
+
+dnl Include defines that have become de facto standard.
+dnl ALL_INTERIOR_POINTERS can be overridden in startup code.
+AC_DEFINE(SILENT)
+AC_DEFINE(NO_SIGNALS)
+AC_DEFINE(NO_EXECUTE_PERMISSION)
+dnl AC_DEFINE(ALL_INTERIOR_POINTERS)
+
+dnl By default, make the library as general as possible.
+AC_DEFINE(JAVA_FINALIZATION)
+AC_DEFINE(GC_GCJ_SUPPORT)
+AC_DEFINE(ATOMIC_UNCOLLECTABLE)
+
+dnl This is something of a hack.  When cross-compiling we turn off
+dnl some functionality.  We also enable the "small" configuration.
+dnl These is only correct when targetting an embedded system.  FIXME.
+if test -n "${with_cross_host}"; then
+   AC_DEFINE(NO_SIGSET)
+   AC_DEFINE(NO_CLOCK)
+   AC_DEFINE(SMALL_CONFIG)
+   AC_DEFINE(NO_DEBUGGING)
+fi
+
+UNWINDLIBS=
+AC_ARG_ENABLE(full-debug,
+[  --enable-full-debug include full support for pointer backtracing etc.],
+[ if test "$enable_full_debug" = "yes"; then
+    AC_MSG_WARN("Should define GC_DEBUG and use debug alloc. in clients.")
+    AC_DEFINE(KEEP_BACK_PTRS)
+    AC_DEFINE(DBG_HDRS_ALL)
+    case $host in
+      ia64-*-linux* )
+       AC_DEFINE(MAKE_BACK_GRAPH)
+       AC_DEFINE(SAVE_CALL_COUNT, 8)
+        AC_CHECK_LIB(unwind, backtrace, [
+         AC_DEFINE(GC_HAVE_BUILTIN_BACKTRACE)
+         UNWINDLIBS=-lunwind
+         AC_MSG_WARN("Client code may need to link against libunwind.")
+       ])
+      ;;
+      x86-*-linux* | i586-*-linux* | i686-*-linux* | x86_64-*-linux* )
+       AC_DEFINE(MAKE_BACK_GRAPH)
+       AC_MSG_WARN("Client must not use -fomit-frame-pointer.")
+       AC_DEFINE(SAVE_CALL_COUNT, 8)
+      ;;
+      i[3456]86-*-dgux*)
+       AC_DEFINE(MAKE_BACK_GRAPH)
+      ;;
+    esac ]
+  fi)
+
+AC_SUBST(UNWINDLIBS)
+
+AC_ARG_ENABLE(redirect-malloc,
+[  --enable-redirect-malloc  redirect malloc and friends to GC routines])
+
+if test "${enable_redirect_malloc}" = yes; then
+    if test "${enable_full_debug}" = yes; then
+       AC_DEFINE(REDIRECT_MALLOC, GC_debug_malloc_replacement)
+       AC_DEFINE(REDIRECT_REALLOC, GC_debug_realloc_replacement)
+       AC_DEFINE(REDIRECT_FREE, GC_debug_free)
+    else
+       AC_DEFINE(REDIRECT_MALLOC, GC_malloc)
+    fi
+fi
+
+AC_DEFINE(_IN_LIBGC)
+
+AC_ARG_ENABLE(gc-assertions,
+[  --enable-gc-assertions  collector-internal assertion checking])
+if test "${enable_gc_assertions}" = yes; then
+    AC_DEFINE(GC_ASSERTIONS)
+fi
+
+AC_ARG_ENABLE(quiet-build, [  --enable-quiet-build  Enable quiet libgc build (on by default)], enable_quiet_build=$enableval, enable_quiet_build=yes)
+AM_CONDITIONAL(USE_LIBDIR, test -z "$with_cross_host")
+
+if test "${multilib}" = "yes"; then
+  multilib_arg="--enable-multilib"
+else
+  multilib_arg=
+fi
+
+AC_OUTPUT(Makefile
+m4/Makefile
+include/Makefile
+include/private/Makefile
+doc/Makefile,,
+srcdir=${srcdir}
+host=${host}
+CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
+CC="${CC}"
+DEFS="$DEFS"
+)
diff --git a/libgc/configure.in b/libgc/configure.in
deleted file mode 100644 (file)
index 837e2cb..0000000
+++ /dev/null
@@ -1,550 +0,0 @@
-# Copyright (c) 1999-2001 by Red Hat, Inc. All rights reserved.
-# 
-# THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
-# OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
-# 
-# Permission is hereby granted to use or copy this program
-# for any purpose,  provided the above notices are retained on all copies.
-# Permission to modify the code and to distribute modified code is granted,
-# provided the above notices are retained, and a notice that the code was
-# modified is included with the above copyright notice.
-#
-# Original author: Tom Tromey
-# Modified by: Grzegorz Jakacki <jakacki at acm dot org>
-
-dnl Process this file with autoconf to produce configure.
-
-AC_PREREQ([2.53])
-AC_INIT([libgc-mono], [6.6], [Hans_Boehm@hp.com])
-
-AM_INIT_AUTOMAKE([1.9 no-define foreign])
-AC_CONFIG_SRCDIR(gcj_mlc.c)
-AC_CONFIG_MACRO_DIR([m4])
-AC_CANONICAL_HOST
-
-AC_SUBST(PACKAGE)
-AC_SUBST(GC_VERSION)
-
-AC_PROG_CC
-AC_PROG_CXX
-
-m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
-
-dnl automake 1.6 and later need the AM_PROG_AS macro.
-ifdef([AM_PROG_AS],[AM_PROG_AS],[])
-AC_CHECK_TOOL(AR, ar)
-AC_CHECK_TOOL(RANLIB, ranlib, :)  # :)
-
-AC_PROG_INSTALL
-
-AM_MAINTAINER_MODE
-
-. [$]{srcdir}/configure.host
-
-# We use a separate variable to pass down CPPFLAGS and CFLAGS from the main mono 
-# configure, because of autoconf brokeness
-if test "x$CPPFLAGS_FOR_LIBGC" != "x"; then
-   CPPFLAGS=$CPPFLAGS_FOR_LIBGC
-fi
-if test "x$CFLAGS_FOR_LIBGC" != "x"; then
-   CFLAGS=$CFLAGS_FOR_LIBGC
-fi
-
-GC_CFLAGS=${gc_cflags}
-AC_SUBST(GC_CFLAGS)
-
-case $enable_embed_check in
-no) ;;
-*) AC_MSG_ERROR([This module is now part of 'mono' and cannot be built as a stand-alone module any longer.]) ;;
-esac
-
-THREADS=$with_libgc_threads
-
-AC_ARG_ENABLE(win32-dllmain,
-[  --enable-win32-dllmain    Define the DllMain function in win32_threads.c even if the collector is not built as a dll],
-)
-
-AC_ARG_ENABLE(parallel-mark,
-[  --enable-parallel-mark      parallelize marking and free list construction],
-   [case "$THREADS" in
-      no | none | single)
-       AC_MSG_ERROR([Parallel mark requires --enable-threads=x spec])
-       ;;
-    esac]
-)
-
-AC_ARG_ENABLE(cplusplus,
-[  --enable-cplusplus          install C++ support],
-)
-
-AM_CPPFLAGS=-I${srcdir}/include
-THREADDLLIBS=
-## Libraries needed to support dynamic loading and/or threads.
-case "$THREADS" in
- no | none | single)
-    THREADS=none
-    ;;
- posix | pthreads)
-    THREADS=posix
-    AC_CHECK_LIB(pthread, pthread_self, THREADDLLIBS="-lpthread",,)
-    case "$host" in
-     x86-*-linux* | ia64-*-linux* | i386-*-linux* | i486-*-linux* | i586-*-linux* | i686-*-linux* | x86_64-*-linux* | alpha*-*-linux* | s390*-*-linux* | sparc*-*-linux* | powerpc-*-linux*)
-       AC_DEFINE(GC_LINUX_THREADS)
-       AC_DEFINE(_REENTRANT)
-        if test "${enable_parallel_mark}" = yes; then
-         AC_DEFINE(PARALLEL_MARK)
-       fi
-       AC_DEFINE(THREAD_LOCAL_ALLOC)
-       ;;
-     *-*-linux* | *-*-nacl*)
-       AC_DEFINE(GC_LINUX_THREADS)
-       AC_DEFINE(_REENTRANT)
-       ;;
-     *-*-aix*)
-       AC_DEFINE(GC_AIX_THREADS)
-       AC_DEFINE(_REENTRANT)
-       ;;
-     *-*-hpux*)
-       AC_MSG_WARN("Only HP/UX 11 threads are supported.")
-       AC_DEFINE(GC_HPUX_THREADS)
-       AC_DEFINE(_POSIX_C_SOURCE,199506L)
-       if test "${enable_parallel_mark}" = yes; then
-         AC_DEFINE(PARALLEL_MARK)
-       fi
-       AC_DEFINE(THREAD_LOCAL_ALLOC)
-       THREADDLLIBS="-lpthread -lrt"
-       ;;
-      *-*-freebsd*)
-       AC_DEFINE(GC_FREEBSD_THREADS)
-       if test "x$PTHREAD_CFLAGS" != "x"; then
-               AM_CPPFLAGS="$AM_CPPFLAGS $PTHREAD_CFLAGS"
-       fi
-       if test "x$PTHREAD_LIBS" = "x"; then
-               THREADDLLIBS=-pthread
-       else
-               THREADDLLIBS="$PTHREAD_LIBS"
-       fi
-       AC_DEFINE(THREAD_LOCAL_ALLOC)
-       ;;
-     *-*-solaris*)
-       AC_DEFINE(GC_SOLARIS_THREADS)
-       AC_DEFINE(GC_SOLARIS_PTHREADS)
-       ;;
-     *-*-irix*)
-       AC_DEFINE(GC_IRIX_THREADS)
-       ;;
-     *-*-cygwin*)
-       AC_DEFINE(GC_WIN32_THREADS)
-       ;;
-     *-*-darwin*)
-       AC_DEFINE(GC_DARWIN_THREADS)
-       AC_DEFINE(THREAD_LOCAL_ALLOC)
-       if test "${enable_parallel_mark}" = yes; then
-         AC_DEFINE(PARALLEL_MARK)
-       fi
-       ;;
-     *-*-netbsd*)
-       AC_DEFINE(GC_NETBSD_THREADS)
-       if test "${enable_parallel_mark}" = yes; then
-         AC_DEFINE(PARALLEL_MARK)
-       fi
-       AC_DEFINE(THREAD_LOCAL_ALLOC)
-       ;;
-     *-*-openbsd*)
-       AC_DEFINE(GC_OPENBSD_THREADS)
-       if test "${enable_parallel_mark}" = yes; then
-         AC_DEFINE(PARALLEL_MARK)
-       fi
-       AC_DEFINE(THREAD_LOCAL_ALLOC)
-       ;;
-     *-*-osf*)
-       AC_DEFINE(GC_OSF1_THREADS)
-        if test "${enable_parallel_mark}" = yes; then
-         AC_DEFINE(PARALLEL_MARK)
-         AC_DEFINE(THREAD_LOCAL_ALLOC)
-         # May want to enable it in other cases, too.
-         # Measurements havent yet been done.
-       fi
-       AM_CPPFLAGS="$AM_CPPFLAGS -pthread"
-       THREADDLLIBS="-lpthread -lrt"
-       ;;
-      *)
-       AC_MSG_ERROR("Pthreads not supported by the GC on this platform.")
-       ;;
-    esac
-    ;;
- win32)
-    AC_DEFINE(GC_WIN32_THREADS)
-    dnl Wine getenv may not return NULL for missing entry
-    AC_DEFINE(NO_GETENV)
-       if test "${enable_win32_dllmain}" = yes; then
-          AC_DEFINE(GC_INSIDE_DLL)
-       fi
-    ;;
- dgux386)
-    THREADS=dgux386
-    AC_MSG_RESULT($THREADDLLIBS)
-    # Use pthread GCC  switch
-    THREADDLLIBS=-pthread
-    if test "${enable_parallel_mark}" = yes; then
-        AC_DEFINE(PARALLEL_MARK)
-    fi
-    AC_DEFINE(THREAD_LOCAL_ALLOC)
-    AC_DEFINE(GC_DGUX386_THREADS)
-    AC_DEFINE(DGUX_THREADS)
-    # Enable _POSIX4A_DRAFT10_SOURCE with flag -pthread
-    AM_CPPFLAGS="-pthread $AM_CPPFLAGS"
-    ;;
- aix)
-    THREADS=posix
-    THREADDLLIBS=-lpthread
-    AC_DEFINE(GC_AIX_THREADS)
-    AC_DEFINE(_REENTRANT)
-    ;;
- decosf1 | irix | mach | os2 | solaris | dce | vxworks)
-    AC_MSG_ERROR(thread package $THREADS not yet supported)
-    ;;
- *)
-    AC_MSG_ERROR($THREADS is an unknown thread package)
-    ;;
-esac
-AC_SUBST(THREADDLLIBS)
-
-case "$host" in 
-   powerpc-*-darwin*)
-      powerpc_darwin=true
-      ;;
-esac
-AM_CONDITIONAL(POWERPC_DARWIN,test x$powerpc_darwin = xtrue)
-
-# Check if the GCC builtin __sync_bool_compare_and_swap is available.
-# It is preferred in gc_locks.h for PPC as GCC 4.4 has a problem with the inline assembly there.
-AC_MSG_CHECKING(for __sync_bool_compare_and_swap)
-AC_TRY_COMPILE([],[
-volatile unsigned int foo = 0;
-int main(int argc, char** argv) {
-    unsigned int r1 = __sync_bool_compare_and_swap(&foo, 0, 1);
-    return 0;
-}
-], [
-AC_MSG_RESULT(yes)
-AC_DEFINE(HAS___SYNC_BOOL_COMPARE_AND_SWAP)
-], [
-AC_MSG_RESULT(no)
-])
-
-AC_MSG_CHECKING(for xlc)
-AC_TRY_COMPILE([],[
- #ifndef __xlC__
- # error
- #endif
-], [compiler_xlc=yes], [compiler_xlc=no])
-AC_MSG_RESULT($compiler_xlc)
-AM_CONDITIONAL(COMPILER_XLC,test $compiler_xlc = yes)
-if test $compiler_xlc = yes -a "$powerpc_darwin" = true; then
-  # the darwin stack-frame-walking code is completely broken on xlc
-  AC_DEFINE(DARWIN_DONT_PARSE_STACK)
-fi
-
-# We never want libdl on darwin. It is a fake libdl that just ends up making
-# dyld calls anyway
-case "$host" in
-  *-*-darwin*) ;;
-  *) 
-    AC_CHECK_LIB(dl, dlopen, THREADDLLIBS="$THREADDLLIBS -ldl")
-    ;;
-esac
-
-AC_SUBST(EXTRA_TEST_LIBS)
-
-target_all=libgc.la
-AC_SUBST(target_all)
-
-dnl If the target is an eCos system, use the appropriate eCos
-dnl I/O routines.
-dnl FIXME: this should not be a local option but a global target
-dnl system; at present there is no eCos target.
-TARGET_ECOS="no"
-AC_ARG_WITH(ecos,
-[  --with-ecos             enable runtime eCos target support],
-TARGET_ECOS="$with_ecos"
-)
-
-addobjs=
-addlibs=
-addincludes=
-addtests=
-CXXAM_CPPFLAGS=
-case "$TARGET_ECOS" in
-   no)
-      ;;
-   *)
-      AC_DEFINE(ECOS)
-      CXXINCLUDES="-I${TARGET_ECOS}/include"
-      addobjs="$addobjs ecos.lo"
-      ;;
-esac
-
-if test "${enable_cplusplus}" = yes; then
-      addincludes="$addincludes include/gc_cpp.h include/gc_allocator.h"
-      addtests="$addtests test_cpp"
-fi
-
-AM_CONDITIONAL(CPLUSPLUS, test "${enable_cplusplus}" = yes)
-
-AC_SUBST(CXX)
-
-AC_SUBST(AM_CPPFLAGS)
-AC_SUBST(CXXINCLUDES)
-
-# Configuration of shared libraries
-#
-AC_MSG_CHECKING(whether to build shared libraries)
-AC_ENABLE_SHARED
-
-case "$host" in
- alpha-*-openbsd*)
-     enable_shared=no
-     AC_MSG_RESULT(no)
-     ;;
- *)
-     AC_MSG_RESULT(yes)
-     ;;
-esac
-
-# Configuration of machine-dependent code
-#
-AC_MSG_CHECKING(which machine-dependent code should be used) 
-machdep=
-case "$host" in
- alpha-*-openbsd*)
-    machdep="alpha_mach_dep.lo"
-    if test x"${ac_cv_lib_dl_dlopen}" != xyes ; then
-       AC_MSG_WARN(OpenBSD/Alpha without dlopen(). Shared library support is disabled)
-    fi
-    ;;
- alpha*-*-linux*)
-    machdep="alpha_mach_dep.lo"
-    ;;
- i?86-*-solaris2.[[89]] | i?86-*-solaris2.1?)
-    AC_DEFINE(SOLARIS25_PROC_VDB_BUG_FIXED)
-    ;;
- mipstx39-*-elf*)
-    machdep="mips_ultrix_mach_dep.lo"
-    AC_DEFINE(STACKBASE, __stackbase)
-    AC_DEFINE(DATASTART_IS_ETEXT)
-    ;;
- mips-dec-ultrix*)
-    machdep="mips_ultrix_mach-dep.lo"
-    ;;
- mips-nec-sysv*|mips-unknown-sysv*)
-    ;;
- mips*-*-linux*) 
-    ;; 
- mips-*-*)
-    machdep="mips_sgi_mach_dep.lo"
-    AC_DEFINE(NO_EXECUTE_PERMISSION)
-    ;;
- sparc-*-netbsd*)
-    machdep="sparc_netbsd_mach_dep.lo"
-    ;;
- sparc-sun-solaris2.3)
-    machdep="sparc_mach_dep.lo"
-    AC_DEFINE(SUNOS53_SHARED_LIB)
-    ;;
- sparc*-sun-solaris2.*)
-    machdep="sparc_mach_dep.lo"
-    ;;
- ia64-*-*)
-     machdep="mach_dep.lo ia64_save_regs_in_stack.lo"
-       target_ia64=true
-    ;;
- *-*-nacl*)
-    AC_DEFINE(NO_EXECUTE_PERMISSION)
-    ;;
-esac
-if test x"$machdep" = x; then
-AC_MSG_RESULT($machdep)
-   machdep="mach_dep.lo"
-fi
-addobjs="$addobjs $machdep"
-#
-# Adding object files directly to _LIBADD breaks -j builds, so we need to add the sources
-# instead, but _SOURCES can't contain autoconf substitutions, so add them using automake
-# conditionals.
-#
-#AC_SUBST(addobjs)
-AC_SUBST(addincludes)
-AC_SUBST(addlibs)
-AC_SUBST(addtests)
-
-AM_CONDITIONAL(TARGET_IA64,test x$target_ia64 = xtrue)
-
-AC_PROG_LIBTOOL
-# Use dolt (http://dolt.freedesktop.org/) instead of libtool for building.
-DOLT
-
-#
-# Check for AViiON Machines running DGUX
-#
-ac_is_dgux=no
-AC_CHECK_HEADER(sys/dg_sys_info.h,
-[ac_is_dgux=yes;])
-
-    ## :GOTCHA: we do not check anything but sys/dg_sys_info.h
-if test $ac_is_dgux = yes; then
-    if test "$enable_full_debug" = "yes"; then
-      CFLAGS="-g -mstandard -DDGUX -D_DGUX_SOURCE -Di386 -mno-legend -O2"
-      CXXFLAGS="-g -mstandard -DDGUX -D_DGUX_SOURCE -Di386 -mno-legend -O2"
-    else
-      CFLAGS="-DDGUX -D_DGUX_SOURCE -Di386 -mno-legend -O2"
-      CXXFLAGS="-DDGUX -D_DGUX_SOURCE -Di386 -mno-legend -O2"
-    fi
-    AC_SUBST(CFLAGS)
-    AC_SUBST(CXXFLAGS)
-fi
-
-dnl We use these options to decide which functions to include.
-AC_ARG_WITH(target-subdir,
-[  --with-target-subdir=SUBDIR
-                          configuring with a cross compiler])
-AC_ARG_WITH(cross-host,
-[  --with-cross-host=HOST  configuring with a cross compiler])
-
-# automake wants to see AC_EXEEXT.  But we don't need it.  And having
-# it is actually a problem, because the compiler we're passed can't
-# necessarily do a full link.  So we fool automake here.
-if false; then
-  # autoconf 2.50 runs AC_EXEEXT by default, and the macro expands
-  # to nothing, so nothing would remain between `then' and `fi' if it
-  # were not for the `:' below.
-  :
-  AC_EXEEXT
-fi
-
-AC_MSG_CHECKING([for threads package to use])
-AC_MSG_RESULT($THREADS)
-
-dnl As of 4.13a2, the collector will not properly work on Solaris when
-dnl built with gcc and -O.  So we remove -O in the appropriate case.
-dnl Not needed anymore on Solaris.
-AC_MSG_CHECKING(whether Solaris gcc optimization fix is necessary)
-case "$host" in
- *aix*)
-    if test "$GCC" = yes; then
-       AC_MSG_RESULT(yes)
-       new_CFLAGS=
-       for i in $CFLAGS; do
-         case "$i" in
-          -O*)
-             ;;
-          *)
-             new_CFLAGS="$new_CFLAGS $i"
-             ;;
-         esac
-       done
-       CFLAGS="$new_CFLAGS"
-    else
-       AC_MSG_RESULT(no)
-    fi
-    ;;
- *) AC_MSG_RESULT(no) ;;
-esac
-
-dnl We need to override the top-level CFLAGS.  This is how we do it.
-MY_CFLAGS="$CFLAGS"
-AC_SUBST(MY_CFLAGS)
-
-dnl Include defines that have become de facto standard.
-dnl ALL_INTERIOR_POINTERS can be overridden in startup code.
-AC_DEFINE(SILENT)
-AC_DEFINE(NO_SIGNALS)
-AC_DEFINE(NO_EXECUTE_PERMISSION)
-dnl AC_DEFINE(ALL_INTERIOR_POINTERS)
-
-dnl By default, make the library as general as possible.
-AC_DEFINE(JAVA_FINALIZATION)
-AC_DEFINE(GC_GCJ_SUPPORT)
-AC_DEFINE(ATOMIC_UNCOLLECTABLE)
-
-dnl This is something of a hack.  When cross-compiling we turn off
-dnl some functionality.  We also enable the "small" configuration.
-dnl These is only correct when targetting an embedded system.  FIXME.
-if test -n "${with_cross_host}"; then
-   AC_DEFINE(NO_SIGSET)
-   AC_DEFINE(NO_CLOCK)
-   AC_DEFINE(SMALL_CONFIG)
-   AC_DEFINE(NO_DEBUGGING)
-fi
-
-UNWINDLIBS=
-AC_ARG_ENABLE(full-debug,
-[  --enable-full-debug include full support for pointer backtracing etc.],
-[ if test "$enable_full_debug" = "yes"; then
-    AC_MSG_WARN("Should define GC_DEBUG and use debug alloc. in clients.")
-    AC_DEFINE(KEEP_BACK_PTRS)
-    AC_DEFINE(DBG_HDRS_ALL)
-    case $host in
-      ia64-*-linux* )
-       AC_DEFINE(MAKE_BACK_GRAPH)
-       AC_DEFINE(SAVE_CALL_COUNT, 8)
-        AC_CHECK_LIB(unwind, backtrace, [
-         AC_DEFINE(GC_HAVE_BUILTIN_BACKTRACE)
-         UNWINDLIBS=-lunwind
-         AC_MSG_WARN("Client code may need to link against libunwind.")
-       ])
-      ;;
-      x86-*-linux* | i586-*-linux* | i686-*-linux* | x86_64-*-linux* )
-       AC_DEFINE(MAKE_BACK_GRAPH)
-       AC_MSG_WARN("Client must not use -fomit-frame-pointer.")
-       AC_DEFINE(SAVE_CALL_COUNT, 8)
-      ;;
-      i[3456]86-*-dgux*)
-       AC_DEFINE(MAKE_BACK_GRAPH)
-      ;;
-    esac ]
-  fi)
-
-AC_SUBST(UNWINDLIBS)
-
-AC_ARG_ENABLE(redirect-malloc,
-[  --enable-redirect-malloc  redirect malloc and friends to GC routines])
-
-if test "${enable_redirect_malloc}" = yes; then
-    if test "${enable_full_debug}" = yes; then
-       AC_DEFINE(REDIRECT_MALLOC, GC_debug_malloc_replacement)
-       AC_DEFINE(REDIRECT_REALLOC, GC_debug_realloc_replacement)
-       AC_DEFINE(REDIRECT_FREE, GC_debug_free)
-    else
-       AC_DEFINE(REDIRECT_MALLOC, GC_malloc)
-    fi
-fi
-
-AC_DEFINE(_IN_LIBGC)
-
-AC_ARG_ENABLE(gc-assertions,
-[  --enable-gc-assertions  collector-internal assertion checking])
-if test "${enable_gc_assertions}" = yes; then
-    AC_DEFINE(GC_ASSERTIONS)
-fi
-
-AC_ARG_ENABLE(quiet-build, [  --enable-quiet-build  Enable quiet libgc build (on by default)], enable_quiet_build=$enableval, enable_quiet_build=yes)
-AM_CONDITIONAL(USE_LIBDIR, test -z "$with_cross_host")
-
-if test "${multilib}" = "yes"; then
-  multilib_arg="--enable-multilib"
-else
-  multilib_arg=
-fi
-
-AC_OUTPUT(Makefile
-m4/Makefile
-include/Makefile
-include/private/Makefile
-doc/Makefile,,
-srcdir=${srcdir}
-host=${host}
-CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-CC="${CC}"
-DEFS="$DEFS"
-)
index a19cb3021b0aa9568f3ec265e4aca5a2961606ce..eaba6e509d36612d6258fbd20f6f56f8b2fff744 100644 (file)
@@ -6,7 +6,7 @@ Copyright (c) 1999-2004 Hewlett-Packard Development Company, L.P.
 The file linux_threads.c is also
 Copyright (c) 1998 by Fergus Henderson.  All rights reserved.
 
-The files Makefile.am, and configure.in are
+The files Makefile.am, and configure.ac are
 Copyright (c) 2001 by Red Hat Inc. All rights reserved.
 
 Several files supporting GNU-style builds are copyrighted by the Free
index 97b0b684dde5b556750993056e3240d3bee1c2f5..fa6f279f518a5fac4b4778e9e869e4d82bb0539c 100644 (file)
@@ -1269,7 +1269,7 @@ Since 6.0alpha6:
    many places.  (Thanks to Benjamin Lerman.)
  - Made win32_threads.c more tolerant of detaching a thread that it didn't
    know about.  (Thanks to Paul Nash.)
- - Added Makefile.am and configure.in from gcc to the distribution, with
+ - Added Makefile.am and configure.ac from gcc to the distribution, with
    minimal changes.  For the moment, those are just placeholders.  In the
    future, we're planning to switch to a GNU-style build environment for
    Un*x-like systems, though the old Makefile will remain as a backup.
@@ -1491,7 +1491,7 @@ Since 6.1alpha3:
  - Fixed a formatting error in dbg_mlc.c.  Added prototype to GC_abort()
    declaration.   (Thanks to Michael Smith.)
  - Removed "source" argument to GC_find_start().  Eliminate GC_FIND_START().
- - Added win32 recognition code in configure.in.  Changed some of the
+ - Added win32 recognition code in configure.ac.  Changed some of the
    dllimport/export defines in gc.h.  (Thanks to Adam Megacz.)
  - GC_malloc_many didn't set hb_last_reclaimed when it called 
    GC_reclaim_generic.  (I'm not sure this matters much, but ...)
@@ -1629,7 +1629,7 @@ Since 6.1alpha4:
 
 Since 6.1alpha5:
  - Added GC_MAXIMUM_HEAP_SIZE environment variable.
- - Fix configure.in for MIPS/LINUX. (Thanks to H.J. Lu.)
+ - Fix configure.ac for MIPS/LINUX. (Thanks to H.J. Lu.)
  - Double page hash table size for -DLARGE_CONFIG.
  - Integrated Bo Thorsen's X86-64 support.
  - STACKBOTTOM definition for LINUX/MIPS was partially changed back.
@@ -1942,7 +1942,7 @@ Since 6.3alpha1:
    There is also still some code duplication with pthread_support.c.
    (Thread descriptors did become much smaller, since Ben Hutchings
    removed the thread context from them.)
- - Integrated a Solaris configure.in patch from Rainer Orth.
+ - Integrated a Solaris configure.ac patch from Rainer Orth.
  - Added GC_IGNORE_FB and associated warning to very partially address
    the issue of the collector treating a mapped frame buffer as part
    of the root set.  (Thanks to David Peroutka for providing some
@@ -2151,7 +2151,7 @@ Since 6.3:
    it seems to be incorrect if the preceding memory op is a load.
  - Fixed print_block_list to print the correct kind number for
    STUBBORN.  (Thanks to Rutger Ovidus.)
- - Have configure.in generate an error if it is asked to support
+ - Have configure.ac generate an error if it is asked to support
    pthreads, but doesn't know how to.
  - Added Kazuhiro Inaoka's patch for Renesas M32R support.
  - Have the GNU build mechanism link with -ldl.  Rename THREADLIBS
index e1fe24bd0abe84e8b3f15b950721c724ec612f20..9fcbb7b651fb0e5be116c17ecbf954b19c90c8d6 100644 (file)
@@ -1,4 +1,4 @@
-/* The version here should match that in configure/configure.in        */
+/* The version here should match that in configure/configure.ac        */
 /* Eventually this one may become unnecessary.  For now we need        */
 /* it to keep the old-style build process working.             */
 #define GC_TMP_VERSION_MAJOR 6
@@ -14,7 +14,7 @@
      GC_TMP_VERSION_MINOR != GC_VERSION_MINOR || \
      defined(GC_ALPHA_VERSION) != (GC_TMP_ALPHA_VERSION != GC_NOT_ALPHA) || \
      defined(GC_ALPHA_VERSION) && GC_TMP_ALPHA_VERSION != GC_ALPHA_VERSION
-#   error Inconsistent version info.  Check README, version.h, and configure.in.
+#   error Inconsistent version info.  Check README, version.h, and configure.ac.
 # endif
 #else
 # define GC_VERSION_MAJOR GC_TMP_VERSION_MAJOR
index 40c9591a8972cd4bfae302bf34f684ff40ba6c99..9e2fb959697245a7cab2e78ef642f118e752bc8e 100755 (executable)
@@ -705,7 +705,7 @@ static gboolean file_setendoffile(gpointer handle)
        }
        
 #ifdef FTRUNCATE_DOESNT_EXTEND
-       /* I haven't bothered to write the configure.in stuff for this
+       /* I haven't bothered to write the configure.ac stuff for this
         * because I don't know if any platform needs it.  I'm leaving
         * this code just in case though
         */
index e4867a8a81a5dbb069d520cdbdd4983235a7e1c1..fa6228326346f1b492131ccfa1c1752958f4ba94 100644 (file)
@@ -75,7 +75,7 @@ AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/mono $(LIBGC_CPPFLAGS) $(GLIB_CFLA
 #  mono-config.c uses MONO_CFG_DIR
 #
 # This won't result in many more false positives than AC_DEFINEing them
-# in configure.in.
+# in configure.ac.
 #
 assembly.lo mono-config.lo: Makefile
 
index c8c70007bc751d0a55d612c230a28450c79e968f..c1a1a94b47597e5e288ba306348925bf391c06a2 100755 (executable)
@@ -167,7 +167,7 @@ static inline void InterlockedWrite16(volatile gint16 *dst, gint16 val)
        mono_memory_barrier ();
 }
 
-/* Prefer GCC atomic ops if the target supports it (see configure.in). */
+/* Prefer GCC atomic ops if the target supports it (see configure.ac). */
 #elif defined(USE_GCC_ATOMIC_OPS)
 
 static inline gint32 InterlockedCompareExchange(volatile gint32 *dest,
index b4ea3770ad2af85b15e3a08af7de2fc77da7a5da..6da0fb2fc8d9c7a98fafaf697b2fc0e9b8e4d501 100644 (file)
        
 #      if defined(HAVE_KW_THREAD) && defined(USE_INCLUDED_LIBGC) && !defined(__powerpc__)
         /* The local alloc stuff is in pthread_support.c, but solaris uses solaris_threads.c */
-        /* It is also disabled on solaris/x86 by libgc/configure.in */
+        /* It is also disabled on solaris/x86 by libgc/configure.ac */
         /* 
                 * ARM has no definition for some atomic functions in gc_locks.h and
-                * support is also disabled in libgc/configure.in.
+                * support is also disabled in libgc/configure.ac.
                 */
 #       if !defined(__sparc__) && !defined(__sun) && !defined(__arm__) && !defined(__mips__)
 #                  define GC_REDIRECT_TO_LOCAL
index 1084339a44f2172c1cb4b8758d216c541bf72168..427e21f35a88bd246c81c8002f86f50d5d079253 100644 (file)
@@ -1,5 +1,5 @@
 /* config.h.  Generated from config.h.in by configure.  */
-/* config.h.in.  Generated from configure.in by autoheader.  */
+/* config.h.in.  Generated from configure.ac by autoheader.  */
 
 /* The architecture this is running on */
 #if defined(_M_IA64)