# Process this file with autoconf to produce a configure script.
#AC_PREREQ([2.62])
-AC_INIT(mono, [3.0.7],
+AC_INIT(mono, [3.0.10],
[http://bugzilla.xamarin.com/enter_bug.cgi?classification=Mono])
AC_CONFIG_SRCDIR([README])
CFLAGS_FOR_EGLIB=$CFLAGS
#
-# These are the flags that need to be stored in the mono.pc file for
+# These are the flags that need to be stored in the mono.pc file for
# compiling code that will embed Mono
#
libmono_cflags=""
AC_DEFINE(PTHREAD_POINTER_ID, 1, [pthread is a pointer])
libdl=
libgc_threads=pthreads
- # This doesn't seem to work as of 7.0 on amd64
- with_sigaltstack=no
use_sigposix=yes
;;
*-*-*openbsd*)
;;
arm*-darwin*)
has_dtrace=no
- ;;
+ ;;
esac
;;
*-*-haiku*)
olive_topdir='$(top_srcdir)/'$olivedir
fi
-# gettext: prepare the translation directories.
+# gettext: prepare the translation directories.
# we do not configure the full gettext, as we consume it dynamically from C#
AM_PO_SUBDIRS
fi
fi
-AC_ARG_WITH([libgdiplus],
- [ --with-libgdiplus=installed|sibling|<path> Override the libgdiplus used for System.Drawing tests (defaults to installed)],
+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
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)
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,
- sgen_remset, sgen_marksweep_par, sgen_marksweep_fixed, sgen_marksweep_fixed_par, sgen_copying.],
+ 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'"
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.])
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
dnl ****************************************************************
AC_MSG_CHECKING(for sched_setaffinity from glibc < 2.3.4)
AC_TRY_COMPILE([#include <sched.h>], [
- int mask = 1;
+ int mask = 1;
sched_setaffinity(0, &mask);
return 0;
], [
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
if test $large_offt = no; then
AC_MSG_WARN([No 64 bit file size support available])
fi
-
+
dnl *****************************
dnl *** Checks for libsocket ***
dnl *****************************
AC_MSG_RESULT(no)
])
])
-
+
dnl **********************************
dnl *** Check for gethostbyname2_r ***
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(sem_init, pthread rt posix4)
- AC_SEARCH_LIBS(shm_open, pthread rt posix4)
+ AC_SEARCH_LIBS(shm_open, pthread rt posix4)
AC_CHECK_FUNCS(shm_open)
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_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_TRY_LINK([#include <math.h>],
+ [ isfinite(0.0); ],
AC_DEFINE(HAVE_ISFINITE, 1, [Have isfinite]) AC_MSG_RESULT(yes),
AC_MSG_RESULT(no)))
AC_DEFINE(HAVE_SIGNBIT, 1, [Have signbit])
], [
AC_MSG_RESULT(no)
- ])
+ ])
dnl **********************************
dnl *** epoll ***
dnl **********************************
- 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])
+ 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_FUNCS(kqueue, , AC_MSG_CHECKING(for kqueue in sys/event.h)
- AC_TRY_LINK([#include <sys/event.h>],
+ AC_TRY_LINK([#include <sys/event.h>],
[ 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 * 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 * back
dnl **************************************
if test x$havekqueue = xyes; then
if x$platform_darwin = xno; then
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_RESULT(no)
])
-
+
dnl **********************************
dnl *** Checks for MonoPosixHelper ***
dnl **********************************
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_SIZEOF(size_t)
- AC_CHECK_TYPES([blksize_t], [AC_DEFINE(HAVE_BLKSIZE_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([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 <utime.h>])
AC_CHECK_MEMBERS(
- [struct dirent.d_off, struct dirent.d_reclen, struct dirent.d_type],,,
+ [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],,,
+ [struct passwd.pw_gecos],,,
[#include <sys/types.h>
#include <pwd.h>])
AC_CHECK_MEMBERS(
- [struct statfs.f_flags],,,
+ [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, ,
dnl kinfo_proc.kp_proc works on darwin but fails on other simil-bsds
AC_CHECK_MEMBERS(
- [struct kinfo_proc.kp_proc],,,
+ [struct kinfo_proc.kp_proc],,,
[#include <sys/types.h>
#include <sys/param.h>
#include <sys/sysctl.h>
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>],
+ AC_TRY_LINK([#include <math.h>],
[ static void *p = &trunc; ],
[
- AC_DEFINE(HAVE_TRUNC)
+ AC_DEFINE(HAVE_TRUNC)
AC_MSG_RESULT(yes)
ac_cv_trunc=yes
],
*** 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)
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
CPPFLAGS="$CPPFLAGS -D__native_client_codegen__"
AC_MSG_RESULT($llvm_version)
if echo $llvm_version | grep -q 'mono'; then
AC_DEFINE(LLVM_MONO_BRANCH, 1, [Whenever we are using the mono branch of LLVM])
- LLVM_CXXFLAGS="$LLVM_CXXFLAGS -DLLVM_MONO_BRANCH"
+ LLVM_CXXFLAGS="$LLVM_CXXFLAGS -DLLVM_MONO_BRANCH"
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
;;
cygwin*)
sgen_supported=true
- have_visibility_hidden=no
+ have_visibility_hidden=no
;;
haiku*)
LIBC=libroot.so
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
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
NESTED_LIBGC_FLAGS="$NESTED_LIBGC_FLAGS -DHAVE_ARMV6"
fi
;;
+# 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"
+# ;;
s390-*-linux*)
TARGET=S390;
arch_target=s390;
AC_DEFINE(__mono_ilp32__, 1, [64 bit mode with 4 byte longs and pointers])
sizeof_register=8
;;
- *-*-nacl)
+# 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 \
+# -DARM_FPU_VFP=1 -D__ARM_EABI__ \
+# -D__arm__ \
+# -D__portable_native_client__ \
+# -DARM_FPU_VFP=1 \
+# -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, [...])
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
AC_DEFINE(HAVE_DEPRECATED, 1, [Support for the deprecated attribute])
fi
-dnl
+dnl
dnl Simple Generational checks (sgen)
dnl
if $sgen_supported; then
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
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
+ # On some linux distributions, TLS works in executables, but linking
# against a shared library containing TLS fails with:
# undefined reference to `__tls_get_addr'
#
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*)
;;
*86-apple-darwin*)
mono_debugger_supported=yes
- ;;
+ ;;
esac
fi
fi
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
+ # 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\""
fi
], [with_lazy_gc_thread_creation=no])
-AC_CHECK_HEADER([malloc.h],
- [AC_DEFINE([HAVE_USR_INCLUDE_MALLOC_H], [1],
+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
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)
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
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
+
+ if test "x$test_bcl_opt" = "xyes"; then
echo "BCL_OPTIMIZE = 1" >> $srcdir/$mcsdir/build/config.make
fi
mcs source: $mcsdir
Engine:
- GC: $gc_msg
+ GC: $gc_msg
TLS: $with_tls
SIGALTSTACK: $with_sigaltstack
Engine: $jit_status