X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=mono.git;a=blobdiff_plain;f=configure.ac;h=e30a63cb55bf7b37b8521f9376e0931ff0875661;hp=6ef80db60cbbea8a41de276d7977aa004226f0af;hb=HEAD;hpb=ec9a95dd534b8f029f2d86a2fb9bc7167a87d2b9 diff --git a/configure.ac b/configure.ac index 6ef80db60cb..e30a63cb55b 100644 --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,7 @@ # Process this file with autoconf to produce a configure script. #AC_PREREQ([2.62]) -AC_INIT(mono, [5.7.0], +AC_INIT(mono, [5.9.0], [http://bugzilla.xamarin.com/enter_bug.cgi?classification=Mono]) AC_CONFIG_SRCDIR([README.md]) @@ -117,8 +117,8 @@ host_darwin=no if test "x$enable_wasm" = "xyes"; then -CFLAGS="$CFLAGS -D_REENTRANT -D_GNU_SOURCE -DNO_UNALIGNED_ACCESS -s WASM=1 -DWASM -Os" -CPPFLAGS="$CPPFLAGS -D_REENTRANT -DUSE_MMAP -D_GNU_SOURCE -DNO_UNALIGNED_ACCESS -s WASM=1 -DWASM -Os" +CFLAGS="$CFLAGS -D_REENTRANT -D_GNU_SOURCE -DNO_UNALIGNED_ACCESS -s WASM=1" +CPPFLAGS="$CPPFLAGS -D_REENTRANT -DUSE_MMAP -D_GNU_SOURCE -DNO_UNALIGNED_ACCESS -s WASM=1" libdl="-ldl" libgc_threads=pthreads @@ -554,8 +554,86 @@ AC_CHECK_FUNCS(_finite, , AC_MSG_CHECKING(for _finite in math.h) # for Linux statfs support AC_CHECK_HEADERS(linux/magic.h) +# For Android NDK unified headers +if test x$platform_android = xyes; then + AC_CHECK_HEADERS(machine/endian.h sys/endian.h) + AC_CHECK_HEADERS(android/legacy_signal_inlines.h, [have_android_signal_inlines=yes], [have_android_signal_inlines=no]) + + # Make sure SIGRT{MIN,MAX} work - they will fail to work with unified headers if building for + # API level < 21 *and* android/legacy_signal_inlines.h doesn't declare (and define) the required + # libc APIs to obtain values for SIGRT{MIN,MAX}. We perform the check only if android/legacy_signal_inlines.h + # is found because in other cases the macros will either work (for NDK < 14) or fail if the legacy header + # doesn't contain the required definitions (NDK 14) + if test x$have_android_signal_inlines = xyes; then + AC_MSG_CHECKING([Whether Android SIGRTMIN/SGRTMAX macros are valid]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([#include ],[ + int i; + for (i = SIGRTMIN + 1; i < SIGRTMAX; ++i) { + } + ])],[ + AC_MSG_RESULT(yes) + android_sigrtminmax_work=yes + ],[ + AC_MSG_RESULT(no) + android_sigrtminmax_work=no + ] + ) + + if test x$android_sigrtminmax_work = xno; then + AC_MSG_ERROR([Android SIGRTMIN/SIGRTMAX macros don't work in this NDK]) + fi + fi + + # Attempt to detect whether we're using Android NDK unified headers + AC_CHECK_HEADERS(android/api-level.h, [have_android_api_level=yes], [have_android_api_level=no]) + AC_CHECK_HEADERS(android/versioning.h, [have_android_versioning=yes], [have_android_versioning=no]) + + android_unified_headers=no + if test x$have_android_api_level = xyes; then + if test x$have_android_versioning = xyes; then + AC_MSG_CHECKING([whether using Android NDK unified headers]) + + # Both macros are defined only in the NDK unified headers + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([ + #include + #include + ],[ + #if __ANDROID_API_O__ == 26 && defined(__INTRODUCED_IN) + return 0 + #else + #error __ANDROID_API_O__ != 26 or the __INTRODUCED_IN macro not defined + #endif + ])],[ + AC_MSG_RESULT(yes) + android_unified_headers=yes + ],[ + AC_MSG_RESULT(no) + android_unified_headers=no + ] + ) + fi + fi + + if test x$android_unified_headers = xyes; then + AC_DEFINE(ANDROID_UNIFIED_HEADERS, 1, [Whether Android NDK unified headers are used]) + fi +fi # Android + # not 64 bit clean in cross-compile -AC_CHECK_SIZEOF(void *, 4) +if test "x$enable_wasm" = "xyes"; then +AC_DEFINE(SIZEOF_VOID_P,4) +AC_DEFINE(SIZEOF_LONG,4) +ac_cv_sizeof_void_p="4" +ac_cv_sizeof_long="4" +else +AC_CHECK_SIZEOF(void *) +AC_CHECK_SIZEOF(long) +fi + +AC_CHECK_SIZEOF(int) +AC_CHECK_SIZEOF(long long) AC_CACHE_CHECK([for clang], mono_cv_clang,[ @@ -1502,6 +1580,8 @@ if test x$host_win32 = xno; then AC_CHECK_FUNCS(getpwuid_r) fi + AC_FUNC_STRERROR_R() + dnl **************************************************************** dnl *** Check for sched_setaffinity from glibc versions before *** dnl *** 2.3.4. The older versions of the function only take 2 *** @@ -3065,6 +3145,7 @@ TARGET=WASM HOST=WASM arch_target=wasm AC_DEFINE(TARGET_WASM, 1, [Target wasm]) +AC_DEFINE(HOST_WASM, 1, [Host wasm]) BTLS_SUPPORTED=no with_tls=pthread target_mach=no @@ -3750,10 +3831,6 @@ AC_SUBST(PIDTYPE) AC_DEFINE(HAVE_CLASSIC_WINAPI_SUPPORT, 1, [Use classic Windows API support]) AC_DEFINE(HAVE_UWP_WINAPI_SUPPORT, 0, [Don't use UWP Windows API support]) -AC_CHECK_SIZEOF(int) -AC_CHECK_SIZEOF(void *) -AC_CHECK_SIZEOF(long) -AC_CHECK_SIZEOF(long long) AC_CHECK_FUNCS(strlcpy stpcpy strtok_r rewinddir vasprintf strerror_r) AC_CHECK_FUNCS(getrlimit) AC_CHECK_FUNCS(fork execv execve) @@ -4340,6 +4417,7 @@ 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(WASM, test x$TARGET = xWASM) AM_CONDITIONAL(HOST_X86, test x$HOST = xX86) AM_CONDITIONAL(HOST_AMD64, test x$HOST = xAMD64) AM_CONDITIONAL(HOST_ARM, test x$HOST = xARM) @@ -4371,7 +4449,7 @@ AC_SUBST(mono_build_root) mono_runtime=mono/mini/mono AC_SUBST(mono_runtime) -CSC_LOCATION=`cd $srcdir && pwd`/external/roslyn-binaries/Microsoft.Net.Compilers/Microsoft.Net.Compilers.2.3.1/tools/csc.exe +CSC_LOCATION=`cd $srcdir && pwd`/external/roslyn-binaries/Microsoft.Net.Compilers/Microsoft.Net.Compilers.2.3.2/tools/csc.exe if test $csc_compiler = mcs; then CSC=$mcs_topdir/class/lib/build/mcs.exe