1.1 --- a/common/autoconf/toolchain.m4 Tue Apr 30 14:39:49 2013 -0700 1.2 +++ b/common/autoconf/toolchain.m4 Thu May 02 15:46:38 2013 +0200 1.3 @@ -1030,3 +1030,61 @@ 1.4 AC_SUBST(LDFLAGS_JDKEXE_SUFFIX) 1.5 AC_SUBST(LDFLAGS_CXX_JDK) 1.6 ]) 1.7 + 1.8 + 1.9 +# TOOLCHAIN_COMPILER_CHECK_ARGUMENTS([ARGUMENT], [RUN-IF-TRUE], 1.10 +# [RUN-IF-FALSE]) 1.11 +# ------------------------------------------------------------ 1.12 +# Check that the c and c++ compilers support an argument 1.13 +AC_DEFUN([TOOLCHAIN_COMPILER_CHECK_ARGUMENTS], 1.14 +[ 1.15 + AC_MSG_CHECKING([if compiler supports "$1"]) 1.16 + supports=yes 1.17 + 1.18 + saved_cflags="$CFLAGS" 1.19 + CFLAGS="$CFLAGS $1" 1.20 + AC_LANG_PUSH([C]) 1.21 + AC_COMPILE_IFELSE([ 1.22 + AC_LANG_SOURCE([[int i;]]) 1.23 + ], [], [supports=no]) 1.24 + AC_LANG_POP([C]) 1.25 + CFLAGS="$saved_cflags" 1.26 + 1.27 + saved_cxxflags="$CXXFLAGS" 1.28 + CXXFLAGS="$CXXFLAG $1" 1.29 + AC_LANG_PUSH([C++]) 1.30 + AC_COMPILE_IFELSE([ 1.31 + AC_LANG_SOURCE([[int i;]]) 1.32 + ], [], [supports=no]) 1.33 + AC_LANG_POP([C++]) 1.34 + CXXFLAGS="$saved_cxxflags" 1.35 + 1.36 + AC_MSG_RESULT([$supports]) 1.37 + if test "x$supports" = "xyes" ; then 1.38 + m4_ifval([$2], [$2], [:]) 1.39 + else 1.40 + m4_ifval([$3], [$3], [:]) 1.41 + fi 1.42 +]) 1.43 + 1.44 +AC_DEFUN_ONCE([TOOLCHAIN_SETUP_COMPILER_FLAGS_MISC], 1.45 +[ 1.46 + # Some Zero and Shark settings. 1.47 + # ZERO_ARCHFLAG tells the compiler which mode to build for 1.48 + case "${OPENJDK_TARGET_CPU}" in 1.49 + s390) 1.50 + ZERO_ARCHFLAG="-m31" 1.51 + ;; 1.52 + *) 1.53 + ZERO_ARCHFLAG="-m${OPENJDK_TARGET_CPU_BITS}" 1.54 + esac 1.55 + TOOLCHAIN_COMPILER_CHECK_ARGUMENTS([$ZERO_ARCHFLAG], [], [ZERO_ARCHFLAG=""]) 1.56 + AC_SUBST(ZERO_ARCHFLAG) 1.57 + 1.58 + # Check that the compiler supports -mX flags 1.59 + # Set COMPILER_SUPPORTS_TARGET_BITS_FLAG to 'true' if it does 1.60 + TOOLCHAIN_COMPILER_CHECK_ARGUMENTS([-m${OPENJDK_TARGET_CPU_BITS}], 1.61 + [COMPILER_SUPPORTS_TARGET_BITS_FLAG=true], 1.62 + [COMPILER_SUPPORTS_TARGET_BITS_FLAG=false]) 1.63 + AC_SUBST(COMPILER_SUPPORTS_TARGET_BITS_FLAG) 1.64 +])