From 7494c3e82b910653341ff1e90a38b51d6bab2e63 Mon Sep 17 00:00:00 2001 From: Andrew John Hughes Date: Sun, 10 Jul 2016 22:00:03 +0100 Subject: [PATCH 1/4] 8156980: Hotspot build doesn't have -std=gnu++98 gcc option 8157358: Syntax error in TOOLCHAIN_CHECK_COMPILER_VERSION Add flags for GCC 6 to JVM_CFLAGS and fix prefix handling Reviewed-by: erikj, kbarrett --- common/autoconf/flags.m4 | 26 +- common/autoconf/generated-configure.sh | 584 ++----------------------- common/autoconf/spec.gmk.in | 2 - common/autoconf/toolchain.m4 | 2 + 4 files changed, 63 insertions(+), 551 deletions(-) diff --git a/common/autoconf/flags.m4 b/common/autoconf/flags.m4 index e4cd491b0ce..6252323d74b 100644 --- a/common/autoconf/flags.m4 +++ b/common/autoconf/flags.m4 @@ -713,6 +713,7 @@ AC_DEFUN([FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK_HELPER], FLAGS_CXX_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [[$]$2CXXSTD_CXXFLAG -Werror], IF_FALSE: [$2CXXSTD_CXXFLAG=""]) $2CXXFLAGS_JDK="${$2CXXFLAGS_JDK} ${$2CXXSTD_CXXFLAG}" + $2JVM_CFLAGS="${$2JVM_CFLAGS} ${$2CXXSTD_CXXFLAG}" AC_SUBST([$2CXXSTD_CXXFLAG]) fi if test "x$OPENJDK_TARGET_OS" = xsolaris; then @@ -768,7 +769,7 @@ AC_DEFUN([FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK_HELPER], $2CFLAGS_JDK="${$2CFLAGS_JDK} -fno-strict-aliasing" ;; esac - TOOLCHAIN_CHECK_COMPILER_VERSION(VERSION: 6, PREFIX: $2, IF_AT_LEAST: FLAGS_SETUP_GCC6_COMPILER_FLAGS) + TOOLCHAIN_CHECK_COMPILER_VERSION(VERSION: 6, PREFIX: $2, IF_AT_LEAST: FLAGS_SETUP_GCC6_COMPILER_FLAGS($2)) elif test "x$TOOLCHAIN_TYPE" = xclang; then $2JVM_CFLAGS="[$]$2JVM_CFLAGS -D_GNU_SOURCE" @@ -1447,19 +1448,24 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_MISC], AC_SUBST(CFLAGS_WARNINGS_ARE_ERRORS) ]) -AC_DEFUN_ONCE([FLAGS_SETUP_GCC6_COMPILER_FLAGS], +# FLAGS_SETUP_GCC6_COMPILER_FLAGS([PREFIX]) +# Arguments: +# $1 - Optional prefix for each variable defined. +AC_DEFUN([FLAGS_SETUP_GCC6_COMPILER_FLAGS], [ # These flags are required for GCC 6 builds as undefined behaviour in OpenJDK code # runs afoul of the more aggressive versions of these optimisations. # Notably, value range propagation now assumes that the this pointer of C++ # member functions is non-null. - NO_NULL_POINTER_CHECK_CFLAG="-fno-delete-null-pointer-checks" - FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$NO_NULL_POINTER_CHECK_CFLAG -Werror], - IF_FALSE: [NO_NULL_POINTER_CHECK_CFLAG=""]) - AC_SUBST([NO_NULL_POINTER_CHECK_CFLAG]) + NO_DELETE_NULL_POINTER_CHECKS_CFLAG="-fno-delete-null-pointer-checks" + dnl Argument check is disabled until FLAGS_COMPILER_CHECK_ARGUMENTS handles cross-compilation + dnl FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$NO_DELETE_NULL_POINTER_CHECKS_CFLAG -Werror], + dnl IF_FALSE: [NO_DELETE_NULL_POINTER_CHECKS_CFLAG=""]) NO_LIFETIME_DSE_CFLAG="-fno-lifetime-dse" - FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$NO_LIFETIME_DSE_CFLAG -Werror], - IF_FALSE: [NO_LIFETIME_DSE_CFLAG=""]) - CFLAGS_JDK="${CFLAGS_JDK} ${NO_NULL_POINTER_CHECK_CFLAG} ${NO_LIFETIME_DSE_CFLAG}" - AC_SUBST([NO_LIFETIME_DSE_CFLAG]) + dnl Argument check is disabled until FLAGS_COMPILER_CHECK_ARGUMENTS handles cross-compilation + dnl FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$NO_LIFETIME_DSE_CFLAG -Werror], + dnl IF_FALSE: [NO_LIFETIME_DSE_CFLAG=""]) + AC_MSG_NOTICE([GCC >= 6 detected; adding ${NO_DELETE_NULL_POINTER_CHECKS_CFLAG} and ${NO_LIFETIME_DSE_CFLAG}]) + $1CFLAGS_JDK="[$]$1CFLAGS_JDK ${NO_DELETE_NULL_POINTER_CHECKS_CFLAG} ${NO_LIFETIME_DSE_CFLAG}" + $1JVM_CFLAGS="[$]$1JVM_CFLAGS ${NO_DELETE_NULL_POINTER_CHECKS_CFLAG} ${NO_LIFETIME_DSE_CFLAG}" ]) diff --git a/common/autoconf/generated-configure.sh b/common/autoconf/generated-configure.sh index e8b5461b512..ffcbb377ad2 100644 --- a/common/autoconf/generated-configure.sh +++ b/common/autoconf/generated-configure.sh @@ -749,8 +749,6 @@ CXXFLAGS_JDKLIB CFLAGS_JDKEXE CFLAGS_JDKLIB MACOSX_VERSION_MIN -NO_LIFETIME_DSE_CFLAG -NO_NULL_POINTER_CHECK_CFLAG CXXSTD_CXXFLAG CXX_O_FLAG_SIZE CXX_O_FLAG_NONE @@ -4092,6 +4090,9 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. +# FLAGS_SETUP_GCC6_COMPILER_FLAGS([PREFIX]) +# Arguments: +# $1 - Optional prefix for each variable defined. # @@ -5094,7 +5095,7 @@ VS_SDK_PLATFORM_NAME_2013= #CUSTOM_AUTOCONF_INCLUDE # Do not change or remove the following line, it is needed for consistency checks: -DATE_WHEN_GENERATED=1467960715 +DATE_WHEN_GENERATED=1468427332 ############################################################################### # @@ -47232,6 +47233,28 @@ $as_echo "$as_me: WARNING: C compiler version number has a part larger than 9999 BUILD_SYSROOT_CFLAGS="$SYSROOT_CFLAGS" BUILD_SYSROOT_LDFLAGS="$SYSROOT_LDFLAGS" BUILD_AR="$AR" + + + if test "x$CC_VERSION_NUMBER" != "x$CXX_VERSION_NUMBER"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: C and C++ compiler have different version numbers, $CC_VERSION_NUMBER vs $CXX_VERSION_NUMBER." >&5 +$as_echo "$as_me: WARNING: C and C++ compiler have different version numbers, $CC_VERSION_NUMBER vs $CXX_VERSION_NUMBER." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This typically indicates a broken setup, and is not supported" >&5 +$as_echo "$as_me: WARNING: This typically indicates a broken setup, and is not supported" >&2;} + fi + + # We only check CC_VERSION_NUMBER since we assume CXX_VERSION_NUMBER is equal. + if [[ "[$]CC_VERSION_NUMBER" =~ (.*\.){3} ]] ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: C compiler version number has more than three parts (X.Y.Z): $CC_VERSION_NUMBER. Comparisons might be wrong." >&5 +$as_echo "$as_me: WARNING: C compiler version number has more than three parts (X.Y.Z): $CC_VERSION_NUMBER. Comparisons might be wrong." >&2;} + fi + + if [[ "[$]CC_VERSION_NUMBER" =~ [0-9]{6} ]] ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: C compiler version number has a part larger than 99999: $CC_VERSION_NUMBER. Comparisons might be wrong." >&5 +$as_echo "$as_me: WARNING: C compiler version number has a part larger than 99999: $CC_VERSION_NUMBER. Comparisons might be wrong." >&2;} + fi + + OPENJDK_BUILD_COMPARABLE_ACTUAL_VERSION=`$AWK -F. '{ printf("%05d%05d%05d\n", $1, $2, $3) }' <<< "$CC_VERSION_NUMBER"` + fi @@ -49781,6 +49804,7 @@ $as_echo "$supports" >&6; } CXXFLAGS_JDK="${CXXFLAGS_JDK} ${CXXSTD_CXXFLAG}" + JVM_CFLAGS="${JVM_CFLAGS} ${CXXSTD_CXXFLAG}" fi if test "x$OPENJDK_TARGET_OS" = xsolaris; then @@ -49913,542 +49937,12 @@ $as_echo "$supports" >&6; } # runs afoul of the more aggressive versions of these optimisations. # Notably, value range propagation now assumes that the this pointer of C++ # member functions is non-null. - NO_NULL_POINTER_CHECK_CFLAG="-fno-delete-null-pointer-checks" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Execute function body - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Execute function body - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the C compiler supports \"$NO_NULL_POINTER_CHECK_CFLAG -Werror\"" >&5 -$as_echo_n "checking if the C compiler supports \"$NO_NULL_POINTER_CHECK_CFLAG -Werror\"... " >&6; } - supports=yes - - saved_cflags="$CFLAGS" - CFLAGS="$CFLAGS $NO_NULL_POINTER_CHECK_CFLAG -Werror" - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int i; -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - supports=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - - CFLAGS="$saved_cflags" - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports" >&5 -$as_echo "$supports" >&6; } - if test "x$supports" = "xyes" ; then - : - C_COMP_SUPPORTS="yes" - else - : - C_COMP_SUPPORTS="no" - fi - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Execute function body - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the C++ compiler supports \"$NO_NULL_POINTER_CHECK_CFLAG -Werror\"" >&5 -$as_echo_n "checking if the C++ compiler supports \"$NO_NULL_POINTER_CHECK_CFLAG -Werror\"... " >&6; } - supports=yes - - saved_cxxflags="$CXXFLAGS" - CXXFLAGS="$CXXFLAG $NO_NULL_POINTER_CHECK_CFLAG -Werror" - ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int i; -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - -else - supports=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - - CXXFLAGS="$saved_cxxflags" - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports" >&5 -$as_echo "$supports" >&6; } - if test "x$supports" = "xyes" ; then - : - CXX_COMP_SUPPORTS="yes" - else - : - CXX_COMP_SUPPORTS="no" - fi - - - - - - - - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if both compilers support \"$NO_NULL_POINTER_CHECK_CFLAG -Werror\"" >&5 -$as_echo_n "checking if both compilers support \"$NO_NULL_POINTER_CHECK_CFLAG -Werror\"... " >&6; } - supports=no - if test "x$C_COMP_SUPPORTS" = "xyes" -a "x$CXX_COMP_SUPPORTS" = "xyes"; then supports=yes; fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports" >&5 -$as_echo "$supports" >&6; } - if test "x$supports" = "xyes" ; then - : - - else - : - NO_NULL_POINTER_CHECK_CFLAG="" - fi - - - - - - - - NO_LIFETIME_DSE_CFLAG="-fno-lifetime-dse" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Execute function body - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Execute function body - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the C compiler supports \"$NO_LIFETIME_DSE_CFLAG -Werror\"" >&5 -$as_echo_n "checking if the C compiler supports \"$NO_LIFETIME_DSE_CFLAG -Werror\"... " >&6; } - supports=yes - - saved_cflags="$CFLAGS" - CFLAGS="$CFLAGS $NO_LIFETIME_DSE_CFLAG -Werror" - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int i; -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - supports=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - - CFLAGS="$saved_cflags" - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports" >&5 -$as_echo "$supports" >&6; } - if test "x$supports" = "xyes" ; then - : - C_COMP_SUPPORTS="yes" - else - : - C_COMP_SUPPORTS="no" - fi - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Execute function body - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the C++ compiler supports \"$NO_LIFETIME_DSE_CFLAG -Werror\"" >&5 -$as_echo_n "checking if the C++ compiler supports \"$NO_LIFETIME_DSE_CFLAG -Werror\"... " >&6; } - supports=yes - - saved_cxxflags="$CXXFLAGS" - CXXFLAGS="$CXXFLAG $NO_LIFETIME_DSE_CFLAG -Werror" - ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int i; -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - -else - supports=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - - CXXFLAGS="$saved_cxxflags" - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports" >&5 -$as_echo "$supports" >&6; } - if test "x$supports" = "xyes" ; then - : - CXX_COMP_SUPPORTS="yes" - else - : - CXX_COMP_SUPPORTS="no" - fi - - - - - - - - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if both compilers support \"$NO_LIFETIME_DSE_CFLAG -Werror\"" >&5 -$as_echo_n "checking if both compilers support \"$NO_LIFETIME_DSE_CFLAG -Werror\"... " >&6; } - supports=no - if test "x$C_COMP_SUPPORTS" = "xyes" -a "x$CXX_COMP_SUPPORTS" = "xyes"; then supports=yes; fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports" >&5 -$as_echo "$supports" >&6; } - if test "x$supports" = "xyes" ; then - : - - else - : - NO_LIFETIME_DSE_CFLAG="" - fi - - - - - - - CFLAGS_JDK="${CFLAGS_JDK} ${NO_NULL_POINTER_CHECK_CFLAG} ${NO_LIFETIME_DSE_CFLAG}" - - + NO_DELETE_NULL_POINTER_CHECKS_CFLAG="-fno-delete-null-pointer-checks" + NO_LIFETIME_DSE_CFLAG="-fno-lifetime-dse" + { $as_echo "$as_me:${as_lineno-$LINENO}: GCC >= 6 detected; adding ${NO_DELETE_NULL_POINTER_CHECKS_CFLAG} and ${NO_LIFETIME_DSE_CFLAG}" >&5 +$as_echo "$as_me: GCC >= 6 detected; adding ${NO_DELETE_NULL_POINTER_CHECKS_CFLAG} and ${NO_LIFETIME_DSE_CFLAG}" >&6;} + CFLAGS_JDK="$CFLAGS_JDK ${NO_DELETE_NULL_POINTER_CHECKS_CFLAG} ${NO_LIFETIME_DSE_CFLAG}" + JVM_CFLAGS="$JVM_CFLAGS ${NO_DELETE_NULL_POINTER_CHECKS_CFLAG} ${NO_LIFETIME_DSE_CFLAG}" else : @@ -51127,6 +50621,7 @@ $as_echo "$supports" >&6; } OPENJDK_BUILD_CXXFLAGS_JDK="${OPENJDK_BUILD_CXXFLAGS_JDK} ${OPENJDK_BUILD_CXXSTD_CXXFLAG}" + OPENJDK_BUILD_JVM_CFLAGS="${OPENJDK_BUILD_JVM_CFLAGS} ${OPENJDK_BUILD_CXXSTD_CXXFLAG}" fi if test "x$OPENJDK_TARGET_OS" = xsolaris; then @@ -51255,6 +50750,17 @@ $as_echo "$supports" >&6; } if test $OPENJDK_BUILD_COMPARABLE_ACTUAL_VERSION -ge $COMPARABLE_REFERENCE_VERSION ; then : + # These flags are required for GCC 6 builds as undefined behaviour in OpenJDK code + # runs afoul of the more aggressive versions of these optimisations. + # Notably, value range propagation now assumes that the this pointer of C++ + # member functions is non-null. + NO_DELETE_NULL_POINTER_CHECKS_CFLAG="-fno-delete-null-pointer-checks" + NO_LIFETIME_DSE_CFLAG="-fno-lifetime-dse" + { $as_echo "$as_me:${as_lineno-$LINENO}: GCC >= 6 detected; adding ${NO_DELETE_NULL_POINTER_CHECKS_CFLAG} and ${NO_LIFETIME_DSE_CFLAG}" >&5 +$as_echo "$as_me: GCC >= 6 detected; adding ${NO_DELETE_NULL_POINTER_CHECKS_CFLAG} and ${NO_LIFETIME_DSE_CFLAG}" >&6;} + OPENJDK_BUILD_CFLAGS_JDK="$OPENJDK_BUILD_CFLAGS_JDK ${NO_DELETE_NULL_POINTER_CHECKS_CFLAG} ${NO_LIFETIME_DSE_CFLAG}" + OPENJDK_BUILD_JVM_CFLAGS="$OPENJDK_BUILD_JVM_CFLAGS ${NO_DELETE_NULL_POINTER_CHECKS_CFLAG} ${NO_LIFETIME_DSE_CFLAG}" + else : diff --git a/common/autoconf/spec.gmk.in b/common/autoconf/spec.gmk.in index 26705337a95..e9cc8ba27c9 100644 --- a/common/autoconf/spec.gmk.in +++ b/common/autoconf/spec.gmk.in @@ -391,8 +391,6 @@ CFLAGS_WARNINGS_ARE_ERRORS:=@CFLAGS_WARNINGS_ARE_ERRORS@ WARNINGS_AS_ERRORS := @WARNINGS_AS_ERRORS@ CFLAGS_CCACHE:=@CFLAGS_CCACHE@ -NO_NULL_POINTER_CHECK_FLAG=@NO_NULL_POINTER_CHECK_CFLAG@ -NO_LIFETIME_DSE_CFLAG=@NO_LIFETIME_DSE_CFLAG@ CXXSTD_CXXFLAG=@CXXSTD_CXXFLAG@ # Tools that potentially need to be cross compilation aware. diff --git a/common/autoconf/toolchain.m4 b/common/autoconf/toolchain.m4 index e87cb24e7f2..288c9b7dcf3 100644 --- a/common/autoconf/toolchain.m4 +++ b/common/autoconf/toolchain.m4 @@ -831,6 +831,8 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_BUILD_COMPILERS], BUILD_SYSROOT_CFLAGS="$SYSROOT_CFLAGS" BUILD_SYSROOT_LDFLAGS="$SYSROOT_LDFLAGS" BUILD_AR="$AR" + + TOOLCHAIN_PREPARE_FOR_VERSION_COMPARISONS([], [OPENJDK_BUILD_]) fi AC_SUBST(BUILD_CC) From 03321f4a59207c7caed3a9053b7bac9fea83ea04 Mon Sep 17 00:00:00 2001 From: Gerald Thornbrugh Date: Fri, 15 Jul 2016 16:52:33 -0700 Subject: [PATCH 2/4] 8144278: [TESTBUG] hotspot/runtime/StackGuardPages/testme.sh should use native library build support Reviewed-by: erikj, dsamersoff, dholmes --- common/autoconf/flags.m4 | 18 ++++++++------ common/autoconf/generated-configure.sh | 34 ++++++++++++++------------ make/Main.gmk | 2 +- 3 files changed, 30 insertions(+), 24 deletions(-) diff --git a/common/autoconf/flags.m4 b/common/autoconf/flags.m4 index 6252323d74b..b3deb92b504 100644 --- a/common/autoconf/flags.m4 +++ b/common/autoconf/flags.m4 @@ -684,7 +684,7 @@ AC_DEFUN([FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK], AC_SUBST(CXXFLAGS_TESTEXE) LDFLAGS_TESTLIB="$LDFLAGS_JDKLIB" - LDFLAGS_TESTEXE="$LDFLAGS_JDKEXE" + LDFLAGS_TESTEXE="$LDFLAGS_JDKEXE $JAVA_BASE_LDFLAGS" AC_SUBST(LDFLAGS_TESTLIB) AC_SUBST(LDFLAGS_TESTEXE) @@ -1148,11 +1148,11 @@ AC_DEFUN([FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK_HELPER], $2LDFLAGS_JDKLIB="${$2LDFLAGS_JDKLIB} ${SHARED_LIBRARY_FLAGS}" if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then - $2LDFLAGS_JDKLIB="${$2LDFLAGS_JDKLIB} \ + $2JAVA_BASE_LDFLAGS="${$2JAVA_BASE_LDFLAGS} \ -libpath:${OUTPUT_ROOT}/support/modules_libs/java.base" $2JDKLIB_LIBS="" else - $2LDFLAGS_JDKLIB="${$2LDFLAGS_JDKLIB} \ + $2JAVA_BASE_LDFLAGS="${$2JAVA_BASE_LDFLAGS} \ -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base\$(OPENJDK_$1_CPU_LIBDIR)" if test "x$1" = "xTARGET"; then @@ -1161,17 +1161,17 @@ AC_DEFUN([FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK_HELPER], # Only add client/minimal dir if client/minimal is being built. # Default to server for other variants. if HOTSPOT_CHECK_JVM_VARIANT(server); then - $2LDFLAGS_JDKLIB="${$2LDFLAGS_JDKLIB} -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base\$(OPENJDK_$1_CPU_LIBDIR)/server" + $2JAVA_BASE_LDFLAGS="${$2JAVA_BASE_LDFLAGS} -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base\$(OPENJDK_$1_CPU_LIBDIR)/server" elif HOTSPOT_CHECK_JVM_VARIANT(client); then - $2LDFLAGS_JDKLIB="${$2LDFLAGS_JDKLIB} -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base\$(OPENJDK_$1_CPU_LIBDIR)/client" + $2JAVA_BASE_LDFLAGS="${$2JAVA_BASE_LDFLAGS} -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base\$(OPENJDK_$1_CPU_LIBDIR)/client" elif HOTSPOT_CHECK_JVM_VARIANT(minimal); then - $2LDFLAGS_JDKLIB="${$2LDFLAGS_JDKLIB} -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base\$(OPENJDK_$1_CPU_LIBDIR)/minimal" + $2JAVA_BASE_LDFLAGS="${$2JAVA_BASE_LDFLAGS} -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base\$(OPENJDK_$1_CPU_LIBDIR)/minimal" else - $2LDFLAGS_JDKLIB="${$2LDFLAGS_JDKLIB} -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base\$(OPENJDK_$1_CPU_LIBDIR)/server" + $2JAVA_BASE_LDFLAGS="${$2JAVA_BASE_LDFLAGS} -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base\$(OPENJDK_$1_CPU_LIBDIR)/server" fi elif test "x$1" = "xBUILD"; then # When building a buildjdk, it's always only the server variant - $2LDFLAGS_JDKLIB="${$2LDFLAGS_JDKLIB} \ + $2JAVA_BASE_LDFLAGS="${$2JAVA_BASE_LDFLAGS} \ -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base\$(OPENJDK_$1_CPU_LIBDIR)/server" fi @@ -1182,6 +1182,8 @@ AC_DEFUN([FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK_HELPER], fi +$2LDFLAGS_JDKLIB="${$2LDFLAGS_JDKLIB} ${$2JAVA_BASE_LDFLAGS}" + # Set $2JVM_LIBS (per os) if test "x$OPENJDK_$1_OS" = xlinux; then $2JVM_LIBS="[$]$2JVM_LIBS -lm -ldl -lpthread" diff --git a/common/autoconf/generated-configure.sh b/common/autoconf/generated-configure.sh index ffcbb377ad2..1a089b76e23 100644 --- a/common/autoconf/generated-configure.sh +++ b/common/autoconf/generated-configure.sh @@ -50429,11 +50429,11 @@ $as_echo "$as_me: GCC >= 6 detected; adding ${NO_DELETE_NULL_POINTER_CHECKS_CFLA LDFLAGS_JDKLIB="${LDFLAGS_JDKLIB} ${SHARED_LIBRARY_FLAGS}" if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then - LDFLAGS_JDKLIB="${LDFLAGS_JDKLIB} \ + JAVA_BASE_LDFLAGS="${JAVA_BASE_LDFLAGS} \ -libpath:${OUTPUT_ROOT}/support/modules_libs/java.base" JDKLIB_LIBS="" else - LDFLAGS_JDKLIB="${LDFLAGS_JDKLIB} \ + JAVA_BASE_LDFLAGS="${JAVA_BASE_LDFLAGS} \ -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base\$(OPENJDK_TARGET_CPU_LIBDIR)" if test "xTARGET" = "xTARGET"; then @@ -50442,17 +50442,17 @@ $as_echo "$as_me: GCC >= 6 detected; adding ${NO_DELETE_NULL_POINTER_CHECKS_CFLA # Only add client/minimal dir if client/minimal is being built. # Default to server for other variants. if [[ " $JVM_VARIANTS " =~ " server " ]] ; then - LDFLAGS_JDKLIB="${LDFLAGS_JDKLIB} -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base\$(OPENJDK_TARGET_CPU_LIBDIR)/server" + JAVA_BASE_LDFLAGS="${JAVA_BASE_LDFLAGS} -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base\$(OPENJDK_TARGET_CPU_LIBDIR)/server" elif [[ " $JVM_VARIANTS " =~ " client " ]] ; then - LDFLAGS_JDKLIB="${LDFLAGS_JDKLIB} -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base\$(OPENJDK_TARGET_CPU_LIBDIR)/client" + JAVA_BASE_LDFLAGS="${JAVA_BASE_LDFLAGS} -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base\$(OPENJDK_TARGET_CPU_LIBDIR)/client" elif [[ " $JVM_VARIANTS " =~ " minimal " ]] ; then - LDFLAGS_JDKLIB="${LDFLAGS_JDKLIB} -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base\$(OPENJDK_TARGET_CPU_LIBDIR)/minimal" + JAVA_BASE_LDFLAGS="${JAVA_BASE_LDFLAGS} -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base\$(OPENJDK_TARGET_CPU_LIBDIR)/minimal" else - LDFLAGS_JDKLIB="${LDFLAGS_JDKLIB} -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base\$(OPENJDK_TARGET_CPU_LIBDIR)/server" + JAVA_BASE_LDFLAGS="${JAVA_BASE_LDFLAGS} -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base\$(OPENJDK_TARGET_CPU_LIBDIR)/server" fi elif test "xTARGET" = "xBUILD"; then # When building a buildjdk, it's always only the server variant - LDFLAGS_JDKLIB="${LDFLAGS_JDKLIB} \ + JAVA_BASE_LDFLAGS="${JAVA_BASE_LDFLAGS} \ -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base\$(OPENJDK_TARGET_CPU_LIBDIR)/server" fi @@ -50463,6 +50463,8 @@ $as_echo "$as_me: GCC >= 6 detected; adding ${NO_DELETE_NULL_POINTER_CHECKS_CFLA fi +LDFLAGS_JDKLIB="${LDFLAGS_JDKLIB} ${JAVA_BASE_LDFLAGS}" + # Set JVM_LIBS (per os) if test "x$OPENJDK_TARGET_OS" = xlinux; then JVM_LIBS="$JVM_LIBS -lm -ldl -lpthread" @@ -51246,11 +51248,11 @@ $as_echo "$as_me: GCC >= 6 detected; adding ${NO_DELETE_NULL_POINTER_CHECKS_CFLA OPENJDK_BUILD_LDFLAGS_JDKLIB="${OPENJDK_BUILD_LDFLAGS_JDKLIB} ${SHARED_LIBRARY_FLAGS}" if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then - OPENJDK_BUILD_LDFLAGS_JDKLIB="${OPENJDK_BUILD_LDFLAGS_JDKLIB} \ + OPENJDK_BUILD_JAVA_BASE_LDFLAGS="${OPENJDK_BUILD_JAVA_BASE_LDFLAGS} \ -libpath:${OUTPUT_ROOT}/support/modules_libs/java.base" OPENJDK_BUILD_JDKLIB_LIBS="" else - OPENJDK_BUILD_LDFLAGS_JDKLIB="${OPENJDK_BUILD_LDFLAGS_JDKLIB} \ + OPENJDK_BUILD_JAVA_BASE_LDFLAGS="${OPENJDK_BUILD_JAVA_BASE_LDFLAGS} \ -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base\$(OPENJDK_BUILD_CPU_LIBDIR)" if test "xBUILD" = "xTARGET"; then @@ -51259,17 +51261,17 @@ $as_echo "$as_me: GCC >= 6 detected; adding ${NO_DELETE_NULL_POINTER_CHECKS_CFLA # Only add client/minimal dir if client/minimal is being built. # Default to server for other variants. if [[ " $JVM_VARIANTS " =~ " server " ]] ; then - OPENJDK_BUILD_LDFLAGS_JDKLIB="${OPENJDK_BUILD_LDFLAGS_JDKLIB} -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base\$(OPENJDK_BUILD_CPU_LIBDIR)/server" + OPENJDK_BUILD_JAVA_BASE_LDFLAGS="${OPENJDK_BUILD_JAVA_BASE_LDFLAGS} -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base\$(OPENJDK_BUILD_CPU_LIBDIR)/server" elif [[ " $JVM_VARIANTS " =~ " client " ]] ; then - OPENJDK_BUILD_LDFLAGS_JDKLIB="${OPENJDK_BUILD_LDFLAGS_JDKLIB} -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base\$(OPENJDK_BUILD_CPU_LIBDIR)/client" + OPENJDK_BUILD_JAVA_BASE_LDFLAGS="${OPENJDK_BUILD_JAVA_BASE_LDFLAGS} -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base\$(OPENJDK_BUILD_CPU_LIBDIR)/client" elif [[ " $JVM_VARIANTS " =~ " minimal " ]] ; then - OPENJDK_BUILD_LDFLAGS_JDKLIB="${OPENJDK_BUILD_LDFLAGS_JDKLIB} -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base\$(OPENJDK_BUILD_CPU_LIBDIR)/minimal" + OPENJDK_BUILD_JAVA_BASE_LDFLAGS="${OPENJDK_BUILD_JAVA_BASE_LDFLAGS} -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base\$(OPENJDK_BUILD_CPU_LIBDIR)/minimal" else - OPENJDK_BUILD_LDFLAGS_JDKLIB="${OPENJDK_BUILD_LDFLAGS_JDKLIB} -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base\$(OPENJDK_BUILD_CPU_LIBDIR)/server" + OPENJDK_BUILD_JAVA_BASE_LDFLAGS="${OPENJDK_BUILD_JAVA_BASE_LDFLAGS} -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base\$(OPENJDK_BUILD_CPU_LIBDIR)/server" fi elif test "xBUILD" = "xBUILD"; then # When building a buildjdk, it's always only the server variant - OPENJDK_BUILD_LDFLAGS_JDKLIB="${OPENJDK_BUILD_LDFLAGS_JDKLIB} \ + OPENJDK_BUILD_JAVA_BASE_LDFLAGS="${OPENJDK_BUILD_JAVA_BASE_LDFLAGS} \ -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base\$(OPENJDK_BUILD_CPU_LIBDIR)/server" fi @@ -51280,6 +51282,8 @@ $as_echo "$as_me: GCC >= 6 detected; adding ${NO_DELETE_NULL_POINTER_CHECKS_CFLA fi +OPENJDK_BUILD_LDFLAGS_JDKLIB="${OPENJDK_BUILD_LDFLAGS_JDKLIB} ${OPENJDK_BUILD_JAVA_BASE_LDFLAGS}" + # Set OPENJDK_BUILD_JVM_LIBS (per os) if test "x$OPENJDK_BUILD_OS" = xlinux; then OPENJDK_BUILD_JVM_LIBS="$OPENJDK_BUILD_JVM_LIBS -lm -ldl -lpthread" @@ -51344,7 +51348,7 @@ $as_echo "$as_me: GCC >= 6 detected; adding ${NO_DELETE_NULL_POINTER_CHECKS_CFLA LDFLAGS_TESTLIB="$LDFLAGS_JDKLIB" - LDFLAGS_TESTEXE="$LDFLAGS_JDKEXE" + LDFLAGS_TESTEXE="$LDFLAGS_JDKEXE $JAVA_BASE_LDFLAGS" diff --git a/make/Main.gmk b/make/Main.gmk index d2c74611d4f..f1267291368 100644 --- a/make/Main.gmk +++ b/make/Main.gmk @@ -704,7 +704,7 @@ else test-image-failure-handler: build-test-failure-handler - build-test-hotspot-jtreg-native: buildtools-jdk + build-test-hotspot-jtreg-native: buildtools-jdk import-hotspot build-test-jdk-jtreg-native: buildtools-jdk From 89577d9c2a20979f2bc41150427a1af479ab60dc Mon Sep 17 00:00:00 2001 From: Alan Burlison Date: Wed, 20 Jul 2016 12:52:45 -0700 Subject: [PATCH 3/4] 8161057: Solaris: deprecated/obsolete compiler flags should be removed Reviewed-by: tbell, dcubed, dholmes --- common/autoconf/flags.m4 | 6 +----- common/autoconf/generated-configure.sh | 14 +++----------- 2 files changed, 4 insertions(+), 16 deletions(-) diff --git a/common/autoconf/flags.m4 b/common/autoconf/flags.m4 index b3deb92b504..cc32499be7b 100644 --- a/common/autoconf/flags.m4 +++ b/common/autoconf/flags.m4 @@ -719,15 +719,11 @@ AC_DEFUN([FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK_HELPER], if test "x$OPENJDK_TARGET_OS" = xsolaris; then $2CFLAGS_JDK="${$2CFLAGS_JDK} -D__solaris__" $2CXXFLAGS_JDK="${$2CXXFLAGS_JDK} -D__solaris__" - $2CFLAGS_JDKLIB_EXTRA='-xstrconst' - CFLAGS_JDK="${CFLAGS_JDK} -qchars=signed -qfullpath -qsaveopt" - CXXFLAGS_JDK="${CXXFLAGS_JDK} -qchars=signed -qfullpath -qsaveopt" fi if test "x$OPENJDK_TARGET_OS" = xsolaris; then $2CFLAGS_JDK="${$2CFLAGS_JDK} -D__solaris__" $2CXXFLAGS_JDK="${$2CXXFLAGS_JDK} -D__solaris__" - $2CFLAGS_JDKLIB_EXTRA='-xstrconst' fi $2CFLAGS_JDK="${$2CFLAGS_JDK} ${$2EXTRA_CFLAGS}" @@ -1113,7 +1109,7 @@ AC_DEFUN([FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK_HELPER], fi elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then LDFLAGS_SOLSTUDIO="-Wl,-z,defs" - $2LDFLAGS_JDK="[$]$2LDFLAGS_JDK $LDFLAGS_SOLSTUDIO -xildoff -ztext" + $2LDFLAGS_JDK="[$]$2LDFLAGS_JDK $LDFLAGS_SOLSTUDIO -ztext" LDFLAGS_CXX_SOLSTUDIO="-norunpath" $2LDFLAGS_CXX_JDK="[$]$2LDFLAGS_CXX_JDK $LDFLAGS_CXX_SOLSTUDIO -xnolib" $2JVM_LDFLAGS="[$]$2JVM_LDFLAGS $LDFLAGS_SOLSTUDIO -library=%none -mt $LDFLAGS_CXX_SOLSTUDIO -z noversion" diff --git a/common/autoconf/generated-configure.sh b/common/autoconf/generated-configure.sh index 1a089b76e23..4a2916e7c58 100644 --- a/common/autoconf/generated-configure.sh +++ b/common/autoconf/generated-configure.sh @@ -5095,7 +5095,7 @@ VS_SDK_PLATFORM_NAME_2013= #CUSTOM_AUTOCONF_INCLUDE # Do not change or remove the following line, it is needed for consistency checks: -DATE_WHEN_GENERATED=1468427332 +DATE_WHEN_GENERATED=1468500131 ############################################################################### # @@ -49810,15 +49810,11 @@ $as_echo "$supports" >&6; } if test "x$OPENJDK_TARGET_OS" = xsolaris; then CFLAGS_JDK="${CFLAGS_JDK} -D__solaris__" CXXFLAGS_JDK="${CXXFLAGS_JDK} -D__solaris__" - CFLAGS_JDKLIB_EXTRA='-xstrconst' - CFLAGS_JDK="${CFLAGS_JDK} -qchars=signed -qfullpath -qsaveopt" - CXXFLAGS_JDK="${CXXFLAGS_JDK} -qchars=signed -qfullpath -qsaveopt" fi if test "x$OPENJDK_TARGET_OS" = xsolaris; then CFLAGS_JDK="${CFLAGS_JDK} -D__solaris__" CXXFLAGS_JDK="${CXXFLAGS_JDK} -D__solaris__" - CFLAGS_JDKLIB_EXTRA='-xstrconst' fi CFLAGS_JDK="${CFLAGS_JDK} ${EXTRA_CFLAGS}" @@ -50394,7 +50390,7 @@ $as_echo "$as_me: GCC >= 6 detected; adding ${NO_DELETE_NULL_POINTER_CHECKS_CFLA fi elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then LDFLAGS_SOLSTUDIO="-Wl,-z,defs" - LDFLAGS_JDK="$LDFLAGS_JDK $LDFLAGS_SOLSTUDIO -xildoff -ztext" + LDFLAGS_JDK="$LDFLAGS_JDK $LDFLAGS_SOLSTUDIO -ztext" LDFLAGS_CXX_SOLSTUDIO="-norunpath" LDFLAGS_CXX_JDK="$LDFLAGS_CXX_JDK $LDFLAGS_CXX_SOLSTUDIO -xnolib" JVM_LDFLAGS="$JVM_LDFLAGS $LDFLAGS_SOLSTUDIO -library=%none -mt $LDFLAGS_CXX_SOLSTUDIO -z noversion" @@ -50629,15 +50625,11 @@ $as_echo "$supports" >&6; } if test "x$OPENJDK_TARGET_OS" = xsolaris; then OPENJDK_BUILD_CFLAGS_JDK="${OPENJDK_BUILD_CFLAGS_JDK} -D__solaris__" OPENJDK_BUILD_CXXFLAGS_JDK="${OPENJDK_BUILD_CXXFLAGS_JDK} -D__solaris__" - OPENJDK_BUILD_CFLAGS_JDKLIB_EXTRA='-xstrconst' - CFLAGS_JDK="${CFLAGS_JDK} -qchars=signed -qfullpath -qsaveopt" - CXXFLAGS_JDK="${CXXFLAGS_JDK} -qchars=signed -qfullpath -qsaveopt" fi if test "x$OPENJDK_TARGET_OS" = xsolaris; then OPENJDK_BUILD_CFLAGS_JDK="${OPENJDK_BUILD_CFLAGS_JDK} -D__solaris__" OPENJDK_BUILD_CXXFLAGS_JDK="${OPENJDK_BUILD_CXXFLAGS_JDK} -D__solaris__" - OPENJDK_BUILD_CFLAGS_JDKLIB_EXTRA='-xstrconst' fi OPENJDK_BUILD_CFLAGS_JDK="${OPENJDK_BUILD_CFLAGS_JDK} ${OPENJDK_BUILD_EXTRA_CFLAGS}" @@ -51213,7 +51205,7 @@ $as_echo "$as_me: GCC >= 6 detected; adding ${NO_DELETE_NULL_POINTER_CHECKS_CFLA fi elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then LDFLAGS_SOLSTUDIO="-Wl,-z,defs" - OPENJDK_BUILD_LDFLAGS_JDK="$OPENJDK_BUILD_LDFLAGS_JDK $LDFLAGS_SOLSTUDIO -xildoff -ztext" + OPENJDK_BUILD_LDFLAGS_JDK="$OPENJDK_BUILD_LDFLAGS_JDK $LDFLAGS_SOLSTUDIO -ztext" LDFLAGS_CXX_SOLSTUDIO="-norunpath" OPENJDK_BUILD_LDFLAGS_CXX_JDK="$OPENJDK_BUILD_LDFLAGS_CXX_JDK $LDFLAGS_CXX_SOLSTUDIO -xnolib" OPENJDK_BUILD_JVM_LDFLAGS="$OPENJDK_BUILD_JVM_LDFLAGS $LDFLAGS_SOLSTUDIO -library=%none -mt $LDFLAGS_CXX_SOLSTUDIO -z noversion" From a4dd98020c9c48a77cfc24906f687bf213b24ef8 Mon Sep 17 00:00:00 2001 From: Michail Chernov Date: Thu, 21 Jul 2016 16:07:41 +0300 Subject: [PATCH 4/4] 8161208: Unable to run jtreg tests with MinimalVM Reviewed-by: dholmes, dfazunen --- test/jtreg-ext/requires/VMProps.java | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/test/jtreg-ext/requires/VMProps.java b/test/jtreg-ext/requires/VMProps.java index 945d754199e..644c8cd366c 100644 --- a/test/jtreg-ext/requires/VMProps.java +++ b/test/jtreg-ext/requires/VMProps.java @@ -23,8 +23,6 @@ package requires; import java.io.IOException; -import java.lang.management.ManagementFactory; -import java.lang.management.RuntimeMXBean; import java.nio.file.Files; import java.nio.file.Paths; import java.util.ArrayList; @@ -35,14 +33,18 @@ import java.util.concurrent.Callable; import java.util.regex.Matcher; import java.util.regex.Pattern; import sun.hotspot.gc.GC; +import sun.hotspot.WhiteBox; /** * The Class to be invoked by jtreg prior Test Suite execution to * collect information about VM. + * Do not use any API's that may not be available in all target VMs. * Properties set by this Class will be available in the @requires expressions. */ public class VMProps implements Callable> { + private static final WhiteBox WB = WhiteBox.getWhiteBox(); + /** * Collects information about VM properties. * This method will be invoked by jtreg. @@ -131,17 +133,14 @@ public class VMProps implements Callable> { * @return "true" if Flight Recorder is enabled, "false" if is disabled. */ protected String vmFlightRecorder() { - RuntimeMXBean runtimeMxBean = ManagementFactory.getRuntimeMXBean(); - List arguments = runtimeMxBean.getInputArguments(); - if (arguments.contains("-XX:+UnlockCommercialFeatures")) { - if (arguments.contains("-XX:+FlightRecorder")) { + Boolean isUnlockedCommercialFatures = WB.getBooleanVMFlag("UnlockCommercialFeatures"); + Boolean isFlightRecorder = WB.getBooleanVMFlag("FlightRecorder"); + String startFROptions = WB.getStringVMFlag("StartFlightRecording"); + if (isUnlockedCommercialFatures != null && isUnlockedCommercialFatures) { + if (isFlightRecorder != null && isFlightRecorder) { return "true"; } - if (arguments.contains("-XX:-FlightRecorder")) { - return "false"; - } - if (arguments.stream() - .anyMatch(option -> option.startsWith("-XX:StartFlightRecording"))) { + if (startFROptions != null && !startFROptions.isEmpty()) { return "true"; } }