[])
])
+AC_ARG_ENABLE(visiblity-hidden,
+[ --disable-visibility-hidden disable usage of -fvisiblity=hidden]
+ disable_visibility_hidden=no, disable_visibility_hidden=yes)
+
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'
+
+ # We require C99 with some GNU extensions, e.g. `linux` macro
+ CFLAGS="$CFLAGS -std=gnu99"
+
# 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
- ])
+ CFLAGS="$CFLAGS -DMONO_DLL_EXPORT"
+ if test x"$disable_visibility_hidden" = xno; then
+ # Don't export any symbols by default
+ SHARED_CFLAGS="-fvisibility=hidden"
+ CFLAGS_FOR_EGLIB="$CFLAGS_FOR_EGLIB -fvisibility=hidden"
+ CXXFLAGS="$CXXFLAGS -fvisibility=hidden"
+ fi
ORIG_CFLAGS=$CFLAGS
# Check for the normal version, since gcc ignores unknown -Wno options
WERROR_CFLAGS="-Werror"
fi
AC_SUBST([WERROR_CFLAGS])
+AC_SUBST([SHARED_CFLAGS])
ac_configure_args="$ac_configure_args \"CPPFLAGS_FOR_EGLIB=$EGLIB_CPPFLAGS\" \"CFLAGS_FOR_EGLIB=$CFLAGS_FOR_EGLIB\""
AC_CONFIG_SUBDIRS(eglib)
AC_CHECK_FUNCS(pthread_attr_getstack pthread_attr_getstacksize)
AC_CHECK_FUNCS(pthread_get_stacksize_np pthread_get_stackaddr_np)
+ dnl **********************************
+ dnl *** Check for mincore ***
+ dnl **********************************
+ AC_MSG_CHECKING(for mincore)
+ AC_TRY_LINK([
+ #include <stdio.h>
+ #include <sys/types.h>
+ #include <sys/mman.h>
+ ], [
+ mincore(NULL, 0, NULL);
+ ], [
+ # Yes, we have it...
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_MINCORE, 1, [Have mincore])
+ ], [
+ AC_MSG_RESULT(no)
+ ])
+
dnl ***********************************
dnl *** Checks for working __thread ***
dnl ***********************************
with_tls=pthread
target_mach=no
;;
+ x86_64*-linux-*)
+ TARGET=AMD64;
+ arch_target=amd64;
+ AC_DEFINE(TARGET_AMD64, 1, [...])
+ AC_DEFINE(TARGET_ANDROID, 1, [...])
+ CPPFLAGS="$CPPFLAGS"
+ sgen_supported=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
+ ;;
aarch64*-linux-*)
TARGET=ARM64;
arch_target=arm64;