# Process this file with autoconf to produce a configure script.
#AC_PREREQ([2.62])
-AC_INIT(mono, [3.0.4],
+AC_INIT(mono, [3.0.7],
[http://bugzilla.xamarin.com/enter_bug.cgi?classification=Mono])
AC_CONFIG_SRCDIR([README])
libgc_threads=pthreads
# This doesn't seem to work as of 7.0 on amd64
with_sigaltstack=no
-# TLS is only partially implemented on -CURRENT (compiler support
-# but NOT library support)
-#
- with_tls=pthread
use_sigposix=yes
;;
*-*-*openbsd*)
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
;;
*-*-nacl*)
host_win32=no
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)
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,
- reflection_emit, reflection_emit_save, large_code, logging, com, ssa, generics, attach, jit, simd, soft_debug, perfcounters, normalization, assembly_remapping, shared_perfcounters,
+ 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,
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
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_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.])
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 *****************************
dnl *** Checks for IP_PKTINFO ***
dnl *****************************
AC_MSG_CHECKING(for IP_PKTINFO)
- AC_TRY_COMPILE([#include <netdb.h>], [
+ AC_TRY_COMPILE([#include <linux/in.h>], [
int level = IP_PKTINFO;
], [
# Yes, we have it...
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 <netdb.h>], [
+ AC_TRY_COMPILE([#include <Ws2ipdef.h>], [
int level = IP_DONTFRAGMENT;
], [
# Yes, we have it...
dnl *** Checks for IP_MTU_DISCOVER ***
dnl **********************************
AC_MSG_CHECKING(for IP_MTU_DISCOVER)
- AC_TRY_COMPILE([#include <netdb.h>], [
+ AC_TRY_COMPILE([#include <linux/in.h>], [
int level = IP_MTU_DISCOVER;
], [
# Yes, we have it...
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 *********************************
;;
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)
AC_CHECK_FUNCS(pthread_kill)
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 *********************************
fi
sgen_supported=true
;;
- alpha*-*-linux* | alpha*-*-osf*)
- TARGET=ALPHA;
- ACCESS_UNALIGNED="no"
- JIT_SUPPORTED=yes
- arch_target=alpha;
- CFLAGS="$CFLAGS -mieee -O0"
- case $host_os in
- linux*)
- LIBC="libc.so.6.1"
- INTL="libc.so.6.1"
- esac
- ;;
*-mingw*|*-*-cygwin*)
# When this is enabled, it leads to very strange crashes at runtime (gcc-3.4.4)
have_visibility_hidden=no
INTL="intl"
;;
- hppa2.0w-hp-hpux11.00 | hppa64-hp-hpux11.00)
- TARGET=HPPA;
- arch_target=hppa;
- LIBC="libc.sl"
- ACCESS_UNALIGNED="no"
- INTERP_SUPPORTED=yes
- interp_wanted=true
- ;;
- hppa*linux*)
- TARGET=HPPA;
- arch_target=hppa;
- ACCESS_UNALIGNED="no"
- JIT_SUPPORTED=yes
- ;;
macppc-*-openbsd* | powerpc*-*-linux* | powerpc-*-openbsd* | \
powerpc-*-sysv* | powerpc-*-darwin* | powerpc-*-netbsd* | powerpc-*-freebsd* )
if test "x$ac_cv_sizeof_void_p" = "x8"; then
JIT_SUPPORTED=yes
sgen_supported=true
AOT_SUPPORTED="yes"
+ if test "x$cross_compiling" != "xno"; then
+ # Provide sane defaults when cross-compiling
+ CPPFLAGS="$CPPFLAGS -DARM_FPU_VFP=1 -D__ARM_EABI__ -DHAVE_ARMV6=1"
+ NESTED_LIBGC_FLAGS="$NESTED_LIBGC_FLAGS -DHAVE_ARMV6"
+ fi
;;
s390-*-linux*)
TARGET=S390;
esac
if test "x$target_mach" = "xyes"; then
- 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"
- ])
-
+ if test "x$TARGET" = "xARM"; 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
mono_debugger_supported=no
AC_ARG_ENABLE(mono-debugger, [ --disable-mono-debugger disable support for the mdb debugger], try_mono_debugger=$enableval, try_mono_debugger=yes)
if test "x$try_mono_debugger" = "xyes"; then
- if test "x$TARGET" = "xAMD64" -o "x$TARGET" = "xX86" -o "x$TARGET" = "xALPHA" -o "x$TARGET" = "xS390x"; then
+ if test "x$TARGET" = "xAMD64" -o "x$TARGET" = "xX86" -o "x$TARGET" = "xS390x"; then
if test x$use_included_gc = xyes; then
case "$host" in
*-*-*linux*)
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.")
AM_CONDITIONAL(SPARC64, test x$TARGET = xSPARC64)
AM_CONDITIONAL(X86, test x$TARGET = xX86)
AM_CONDITIONAL(AMD64, test x$TARGET = xAMD64)
-AM_CONDITIONAL(ALPHA, test x$TARGET = xALPHA)
AM_CONDITIONAL(IA64, test x$TARGET = xIA64)
AM_CONDITIONAL(M68K, test x$TARGET = xM68K)
AM_CONDITIONAL(MIPS, test x$TARGET = xMIPS)
AM_CONDITIONAL(ARM, test x$TARGET = xARM)
AM_CONDITIONAL(S390, test x$TARGET = xS390)
AM_CONDITIONAL(S390x, test x$TARGET = xS390x)
-AM_CONDITIONAL(HPPA, test x$TARGET = xHPPA)
AM_CONDITIONAL(HOST_X86, test x$HOST = xX86)
AM_CONDITIONAL(HOST_AMD64, test x$HOST = xAMD64)
AM_CONDITIONAL(HOST_ARM, test x$HOST = xARM)
mono/arch/Makefile
mono/arch/x86/Makefile
mono/arch/amd64/Makefile
-mono/arch/hppa/Makefile
mono/arch/ppc/Makefile
mono/arch/sparc/Makefile
mono/arch/s390/Makefile
mono/arch/s390x/Makefile
mono/arch/arm/Makefile
-mono/arch/alpha/Makefile
mono/arch/ia64/Makefile
mono/arch/mips/Makefile
mono/interpreter/Makefile
mono/tests/cas/inheritance/Makefile
mono/tests/cas/linkdemand/Makefile
mono/tests/cas/threads/Makefile
+mono/tests/gc-descriptors/Makefile
mono/benchmark/Makefile
mono/monograph/Makefile
mono/io-layer/Makefile