# HG changeset patch # User lana # Date 1426219971 25200 # Node ID 5d1b7333768101f8c54b3ad3ca2ee520b7481572 # Parent d0dfb41e40de9153fc9cdfb7c5e71cd37920b3c2# Parent 36f48966bc7aa98e5521dab006720fd046e22384 Merge diff -r d0dfb41e40de -r 5d1b73337681 common/autoconf/configure.ac --- a/common/autoconf/configure.ac Thu Mar 12 13:35:02 2015 -0700 +++ b/common/autoconf/configure.ac Thu Mar 12 21:12:51 2015 -0700 @@ -195,6 +195,7 @@ # Setup debug symbols (need objcopy from the toolchain for that) JDKOPT_SETUP_DEBUG_SYMBOLS +JDKOPT_SETUP_CODE_COVERAGE ############################################################################### # diff -r d0dfb41e40de -r 5d1b73337681 common/autoconf/flags.m4 --- a/common/autoconf/flags.m4 Thu Mar 12 13:35:02 2015 -0700 +++ b/common/autoconf/flags.m4 Thu Mar 12 21:12:51 2015 -0700 @@ -1,5 +1,5 @@ # -# Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -478,6 +478,8 @@ CFLAGS_JDKLIB_EXTRA="${CFLAGS_JDKLIB_EXTRA} -xregs=no%appl" CXXFLAGS_JDKLIB_EXTRA="${CXXFLAGS_JDKLIB_EXTRA} -xregs=no%appl" fi + CFLAGS_JDKLIB_EXTRA="${CFLAGS_JDKLIB_EXTRA} -errtags=yes -errfmt" + CXXFLAGS_JDKLIB_EXTRA="${CXXFLAGS_JDKLIB_EXTRA} -errtags=yes -errfmt" elif test "x$TOOLCHAIN_TYPE" = xxlc; then LDFLAGS_JDK="${LDFLAGS_JDK} -q64 -brtl -bnolibpath -liconv -bexpall" CFLAGS_JDK="${CFLAGS_JDK} -qchars=signed -q64 -qfullpath -qsaveopt" @@ -529,7 +531,7 @@ # CXXFLAGS_JDK - C++ Compiler flags # COMMON_CCXXFLAGS_JDK - common to C and C++ if test "x$TOOLCHAIN_TYPE" = xgcc; then - COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS $COMMON_CCXXFLAGS_JDK -Wall -Wno-parentheses -Wextra -Wno-unused -Wno-unused-parameter -Wformat=2 \ + COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS $COMMON_CCXXFLAGS_JDK -Wall -Wextra -Wno-unused -Wno-unused-parameter -Wformat=2 \ -pipe -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE" case $OPENJDK_TARGET_CPU_ARCH in arm ) @@ -549,7 +551,6 @@ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS $COMMON_CCXXFLAGS_JDK -DTRACING -DMACRO_MEMSYS_OPS -DBREAKPTS" if test "x$OPENJDK_TARGET_CPU_ARCH" = xx86; then COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DcpuIntel -Di586 -D$OPENJDK_TARGET_CPU_LEGACY_LIB" - CFLAGS_JDK="$CFLAGS_JDK -erroff=E_BAD_PRAGMA_PACK_VALUE" fi CFLAGS_JDK="$CFLAGS_JDK -xc99=%none -xCC -errshort=tags -Xa -v -mt -W0,-noglobal" @@ -676,7 +677,7 @@ # The shared libraries are compiled using the picflag. CFLAGS_JDKLIB="$COMMON_CCXXFLAGS_JDK $CFLAGS_JDK $PICFLAG $CFLAGS_JDKLIB_EXTRA" - CXXFLAGS_JDKLIB="$COMMON_CCXXFLAGS_JDK $CXXFLAGS_JDK $PICFLAG $CXXFLAGS_JDKLIB_EXTRA " + CXXFLAGS_JDKLIB="$COMMON_CCXXFLAGS_JDK $CXXFLAGS_JDK $PICFLAG $CXXFLAGS_JDKLIB_EXTRA" # Executable flags CFLAGS_JDKEXE="$COMMON_CCXXFLAGS_JDK $CFLAGS_JDK" @@ -687,6 +688,19 @@ AC_SUBST(CXXFLAGS_JDKLIB) AC_SUBST(CXXFLAGS_JDKEXE) + # Flags for compiling test libraries + CFLAGS_TESTLIB="$COMMON_CCXXFLAGS_JDK $CFLAGS_JDK $PICFLAG $CFLAGS_JDKLIB_EXTRA" + CXXFLAGS_TESTLIB="$COMMON_CCXXFLAGS_JDK $CXXFLAGS_JDK $PICFLAG $CXXFLAGS_JDKLIB_EXTRA" + + # Flags for compiling test executables + CFLAGS_TESTEXE="$COMMON_CCXXFLAGS_JDK $CFLAGS_JDK" + CXXFLAGS_TESTEXE="$COMMON_CCXXFLAGS_JDK $CXXFLAGS_JDK" + + AC_SUBST(CFLAGS_TESTLIB) + AC_SUBST(CFLAGS_TESTEXE) + AC_SUBST(CXXFLAGS_TESTLIB) + AC_SUBST(CXXFLAGS_TESTEXE) + # Setup LDFLAGS et al. # @@ -800,6 +814,16 @@ AC_SUBST(LDFLAGS_JDKLIB_SUFFIX) AC_SUBST(LDFLAGS_JDKEXE_SUFFIX) AC_SUBST(LDFLAGS_CXX_JDK) + + LDFLAGS_TESTLIB="$LDFLAGS_JDKLIB" + LDFLAGS_TESTEXE="$LDFLAGS_JDKEXE" + LDFLAGS_TESTLIB_SUFFIX="$LDFLAGS_JDKLIB_SUFFIX" + LDFLAGS_TESTEXE_SUFFIX="$LDFLAGS_JDKEXE_SUFFIX" + + AC_SUBST(LDFLAGS_TESTLIB) + AC_SUBST(LDFLAGS_TESTEXE) + AC_SUBST(LDFLAGS_TESTLIB_SUFFIX) + AC_SUBST(LDFLAGS_TESTEXE_SUFFIX) ]) # FLAGS_COMPILER_CHECK_ARGUMENTS([ARGUMENT], [RUN-IF-TRUE], @@ -883,17 +907,31 @@ case "${TOOLCHAIN_TYPE}" in microsoft) + DISABLE_WARNING_PREFIX="-wd" CFLAGS_WARNINGS_ARE_ERRORS="-WX" ;; solstudio) + DISABLE_WARNING_PREFIX="-erroff=" CFLAGS_WARNINGS_ARE_ERRORS="-errtags -errwarn=%all" ;; gcc) + # Prior to gcc 4.4, a -Wno-X where X is unknown for that version of gcc will cause an error + FLAGS_COMPILER_CHECK_ARGUMENTS([-Wno-this-is-a-warning-that-do-not-exist], + [GCC_CAN_DISABLE_WARNINGS=true], + [GCC_CAN_DISABLE_WARNINGS=false] + ) + if test "x$GCC_CAN_DISABLE_WARNINGS" = "xtrue"; then + DISABLE_WARNING_PREFIX="-Wno-" + else + DISABLE_WARNING_PREFIX= + fi CFLAGS_WARNINGS_ARE_ERRORS="-Werror" ;; clang) + DISABLE_WARNING_PREFIX="-Wno-" CFLAGS_WARNINGS_ARE_ERRORS="-Werror" ;; esac + AC_SUBST(DISABLE_WARNING_PREFIX) AC_SUBST(CFLAGS_WARNINGS_ARE_ERRORS) ]) diff -r d0dfb41e40de -r 5d1b73337681 common/autoconf/generated-configure.sh --- a/common/autoconf/generated-configure.sh Thu Mar 12 13:35:02 2015 -0700 +++ b/common/autoconf/generated-configure.sh Thu Mar 12 21:12:51 2015 -0700 @@ -680,16 +680,26 @@ X_CFLAGS XMKMF FIXPATH +GCOV_ENABLED ZIP_DEBUGINFO_FILES ENABLE_DEBUG_SYMBOLS CFLAGS_WARNINGS_ARE_ERRORS +DISABLE_WARNING_PREFIX COMPILER_SUPPORTS_TARGET_BITS_FLAG ZERO_ARCHFLAG +LDFLAGS_TESTEXE_SUFFIX +LDFLAGS_TESTLIB_SUFFIX +LDFLAGS_TESTEXE +LDFLAGS_TESTLIB LDFLAGS_CXX_JDK LDFLAGS_JDKEXE_SUFFIX LDFLAGS_JDKLIB_SUFFIX LDFLAGS_JDKEXE LDFLAGS_JDKLIB +CXXFLAGS_TESTEXE +CXXFLAGS_TESTLIB +CFLAGS_TESTEXE +CFLAGS_TESTLIB CXXFLAGS_JDKEXE CXXFLAGS_JDKLIB CFLAGS_JDKEXE @@ -1084,6 +1094,7 @@ with_extra_ldflags enable_debug_symbols enable_zip_debug_info +enable_native_coverage with_x with_cups with_cups_include @@ -1852,6 +1863,9 @@ --disable-debug-symbols disable generation of debug symbols [enabled] --disable-zip-debug-info disable zipping of debug-info files [enabled] + --enable-native-coverage + enable native compilation with code coverage + data[disabled] --disable-freetype-bundling disable bundling of the freetype library with the build result [enabled on Windows or when using @@ -3736,7 +3750,7 @@ # -# Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -3993,6 +4007,12 @@ +################################################################################ +# +# Gcov coverage data for hotspot +# + + # # Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -4348,7 +4368,7 @@ #CUSTOM_AUTOCONF_INCLUDE # Do not change or remove the following line, it is needed for consistency checks: -DATE_WHEN_GENERATED=1425490712 +DATE_WHEN_GENERATED=1425994551 ############################################################################### # @@ -42349,6 +42369,8 @@ CFLAGS_JDKLIB_EXTRA="${CFLAGS_JDKLIB_EXTRA} -xregs=no%appl" CXXFLAGS_JDKLIB_EXTRA="${CXXFLAGS_JDKLIB_EXTRA} -xregs=no%appl" fi + CFLAGS_JDKLIB_EXTRA="${CFLAGS_JDKLIB_EXTRA} -errtags=yes -errfmt" + CXXFLAGS_JDKLIB_EXTRA="${CXXFLAGS_JDKLIB_EXTRA} -errtags=yes -errfmt" elif test "x$TOOLCHAIN_TYPE" = xxlc; then LDFLAGS_JDK="${LDFLAGS_JDK} -q64 -brtl -bnolibpath -liconv -bexpall" CFLAGS_JDK="${CFLAGS_JDK} -qchars=signed -q64 -qfullpath -qsaveopt" @@ -42415,7 +42437,7 @@ # CXXFLAGS_JDK - C++ Compiler flags # COMMON_CCXXFLAGS_JDK - common to C and C++ if test "x$TOOLCHAIN_TYPE" = xgcc; then - COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS $COMMON_CCXXFLAGS_JDK -Wall -Wno-parentheses -Wextra -Wno-unused -Wno-unused-parameter -Wformat=2 \ + COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS $COMMON_CCXXFLAGS_JDK -Wall -Wextra -Wno-unused -Wno-unused-parameter -Wformat=2 \ -pipe -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE" case $OPENJDK_TARGET_CPU_ARCH in arm ) @@ -42435,7 +42457,6 @@ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS $COMMON_CCXXFLAGS_JDK -DTRACING -DMACRO_MEMSYS_OPS -DBREAKPTS" if test "x$OPENJDK_TARGET_CPU_ARCH" = xx86; then COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DcpuIntel -Di586 -D$OPENJDK_TARGET_CPU_LEGACY_LIB" - CFLAGS_JDK="$CFLAGS_JDK -erroff=E_BAD_PRAGMA_PACK_VALUE" fi CFLAGS_JDK="$CFLAGS_JDK -xc99=%none -xCC -errshort=tags -Xa -v -mt -W0,-noglobal" @@ -42562,7 +42583,7 @@ # The shared libraries are compiled using the picflag. CFLAGS_JDKLIB="$COMMON_CCXXFLAGS_JDK $CFLAGS_JDK $PICFLAG $CFLAGS_JDKLIB_EXTRA" - CXXFLAGS_JDKLIB="$COMMON_CCXXFLAGS_JDK $CXXFLAGS_JDK $PICFLAG $CXXFLAGS_JDKLIB_EXTRA " + CXXFLAGS_JDKLIB="$COMMON_CCXXFLAGS_JDK $CXXFLAGS_JDK $PICFLAG $CXXFLAGS_JDKLIB_EXTRA" # Executable flags CFLAGS_JDKEXE="$COMMON_CCXXFLAGS_JDK $CFLAGS_JDK" @@ -42573,6 +42594,19 @@ + # Flags for compiling test libraries + CFLAGS_TESTLIB="$COMMON_CCXXFLAGS_JDK $CFLAGS_JDK $PICFLAG $CFLAGS_JDKLIB_EXTRA" + CXXFLAGS_TESTLIB="$COMMON_CCXXFLAGS_JDK $CXXFLAGS_JDK $PICFLAG $CXXFLAGS_JDKLIB_EXTRA" + + # Flags for compiling test executables + CFLAGS_TESTEXE="$COMMON_CCXXFLAGS_JDK $CFLAGS_JDK" + CXXFLAGS_TESTEXE="$COMMON_CCXXFLAGS_JDK $CXXFLAGS_JDK" + + + + + + # Setup LDFLAGS et al. # @@ -42687,6 +42721,16 @@ + LDFLAGS_TESTLIB="$LDFLAGS_JDKLIB" + LDFLAGS_TESTEXE="$LDFLAGS_JDKEXE" + LDFLAGS_TESTLIB_SUFFIX="$LDFLAGS_JDKLIB_SUFFIX" + LDFLAGS_TESTEXE_SUFFIX="$LDFLAGS_JDKEXE_SUFFIX" + + + + + + # Some Zero and Shark settings. # ZERO_ARCHFLAG tells the compiler which mode to build for @@ -42835,21 +42879,97 @@ case "${TOOLCHAIN_TYPE}" in microsoft) + DISABLE_WARNING_PREFIX="-wd" CFLAGS_WARNINGS_ARE_ERRORS="-WX" ;; solstudio) + DISABLE_WARNING_PREFIX="-erroff=" CFLAGS_WARNINGS_ARE_ERRORS="-errtags -errwarn=%all" ;; gcc) + # Prior to gcc 4.4, a -Wno-X where X is unknown for that version of gcc will cause an error + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler supports \"-Wno-this-is-a-warning-that-do-not-exist\"" >&5 +$as_echo_n "checking if compiler supports \"-Wno-this-is-a-warning-that-do-not-exist\"... " >&6; } + supports=yes + + saved_cflags="$CFLAGS" + CFLAGS="$CFLAGS -Wno-this-is-a-warning-that-do-not-exist" + 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" + + saved_cxxflags="$CXXFLAGS" + CXXFLAGS="$CXXFLAG -Wno-this-is-a-warning-that-do-not-exist" + 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 + GCC_CAN_DISABLE_WARNINGS=true + else + GCC_CAN_DISABLE_WARNINGS=false + + fi + + if test "x$GCC_CAN_DISABLE_WARNINGS" = "xtrue"; then + DISABLE_WARNING_PREFIX="-Wno-" + else + DISABLE_WARNING_PREFIX= + fi CFLAGS_WARNINGS_ARE_ERRORS="-Werror" ;; clang) + DISABLE_WARNING_PREFIX="-Wno-" CFLAGS_WARNINGS_ARE_ERRORS="-Werror" ;; esac + # Setup debug symbols (need objcopy from the toolchain for that) # @@ -42915,6 +43035,45 @@ + # Check whether --enable-native-coverage was given. +if test "${enable_native_coverage+set}" = set; then : + enableval=$enable_native_coverage; +fi + + GCOV_ENABLED="false" + if test "x$enable_native_coverage" = "xyes"; then + if test "x$TOOLCHAIN_TYPE" = "xgcc"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if native coverage is enabled" >&5 +$as_echo_n "checking if native coverage is enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + GCOV_CFLAGS="-fprofile-arcs -ftest-coverage -fno-inline" + GCOV_LDFLAGS="-fprofile-arcs" + LEGACY_EXTRA_CFLAGS="$LEGACY_EXTRA_CFLAGS $GCOV_CFLAGS" + LEGACY_EXTRA_CXXFLAGS="$LEGACY_EXTRA_CXXFLAGS $GCOV_CFLAGS" + LEGACY_EXTRA_LDFLAGS="$LEGACY_EXTRA_LDFLAGS $GCOV_LDFLAGS" + CFLAGS_JDKLIB="$CFLAGS_JDKLIB $GCOV_CFLAGS" + CFLAGS_JDKEXE="$CFLAGS_JDKEXE $GCOV_CFLAGS" + CXXFLAGS_JDKLIB="$CXXFLAGS_JDKLIB $GCOV_CFLAGS" + CXXFLAGS_JDKEXE="$CXXFLAGS_JDKEXE $GCOV_CFLAGS" + LDFLAGS_JDKLIB="$LDFLAGS_JDKLIB $GCOV_LDFLAGS" + LDFLAGS_JDKEXE="$LDFLAGS_JDKEXE $GCOV_LDFLAGS" + GCOV_ENABLED="true" + else + as_fn_error $? "--enable-native-coverage only works with toolchain type gcc" "$LINENO" 5 + fi + elif test "x$enable_native_coverage" = "xno"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if native coverage is enabled" >&5 +$as_echo_n "checking if native coverage is enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + elif test "x$enable_native_coverage" != "x"; then + as_fn_error $? "--enable-native-coverage can only be assigned \"yes\" or \"no\"" "$LINENO" 5 + fi + + + + ############################################################################### # # Check dependencies for external and internal libraries. diff -r d0dfb41e40de -r 5d1b73337681 common/autoconf/jdk-options.m4 --- a/common/autoconf/jdk-options.m4 Thu Mar 12 13:35:02 2015 -0700 +++ b/common/autoconf/jdk-options.m4 Thu Mar 12 21:12:51 2015 -0700 @@ -640,3 +640,41 @@ AC_SUBST(ENABLE_DEBUG_SYMBOLS) AC_SUBST(ZIP_DEBUGINFO_FILES) ]) + +################################################################################ +# +# Gcov coverage data for hotspot +# +AC_DEFUN_ONCE([JDKOPT_SETUP_CODE_COVERAGE], +[ + AC_ARG_ENABLE(native-coverage, [AS_HELP_STRING([--enable-native-coverage], + [enable native compilation with code coverage data@<:@disabled@:>@])]) + GCOV_ENABLED="false" + if test "x$enable_native_coverage" = "xyes"; then + if test "x$TOOLCHAIN_TYPE" = "xgcc"; then + AC_MSG_CHECKING([if native coverage is enabled]) + AC_MSG_RESULT([yes]) + GCOV_CFLAGS="-fprofile-arcs -ftest-coverage -fno-inline" + GCOV_LDFLAGS="-fprofile-arcs" + LEGACY_EXTRA_CFLAGS="$LEGACY_EXTRA_CFLAGS $GCOV_CFLAGS" + LEGACY_EXTRA_CXXFLAGS="$LEGACY_EXTRA_CXXFLAGS $GCOV_CFLAGS" + LEGACY_EXTRA_LDFLAGS="$LEGACY_EXTRA_LDFLAGS $GCOV_LDFLAGS" + CFLAGS_JDKLIB="$CFLAGS_JDKLIB $GCOV_CFLAGS" + CFLAGS_JDKEXE="$CFLAGS_JDKEXE $GCOV_CFLAGS" + CXXFLAGS_JDKLIB="$CXXFLAGS_JDKLIB $GCOV_CFLAGS" + CXXFLAGS_JDKEXE="$CXXFLAGS_JDKEXE $GCOV_CFLAGS" + LDFLAGS_JDKLIB="$LDFLAGS_JDKLIB $GCOV_LDFLAGS" + LDFLAGS_JDKEXE="$LDFLAGS_JDKEXE $GCOV_LDFLAGS" + GCOV_ENABLED="true" + else + AC_MSG_ERROR([--enable-native-coverage only works with toolchain type gcc]) + fi + elif test "x$enable_native_coverage" = "xno"; then + AC_MSG_CHECKING([if native coverage is enabled]) + AC_MSG_RESULT([no]) + elif test "x$enable_native_coverage" != "x"; then + AC_MSG_ERROR([--enable-native-coverage can only be assigned "yes" or "no"]) + fi + + AC_SUBST(GCOV_ENABLED) +]) diff -r d0dfb41e40de -r 5d1b73337681 common/autoconf/spec.gmk.in --- a/common/autoconf/spec.gmk.in Thu Mar 12 13:35:02 2015 -0700 +++ b/common/autoconf/spec.gmk.in Thu Mar 12 21:12:51 2015 -0700 @@ -292,6 +292,8 @@ # Enable RMIConnector IIOP transport RMICONNECTOR_IIOP=@RMICONNECTOR_IIOP@ +GCOV_ENABLED=@GCOV_ENABLED@ + # Necessary additional compiler flags to compile X11 X_CFLAGS:=@X_CFLAGS@ X_LIBS:=@X_LIBS@ @@ -324,6 +326,7 @@ C_FLAG_DEPS:=@C_FLAG_DEPS@ CXX_FLAG_DEPS:=@CXX_FLAG_DEPS@ +DISABLE_WARNING_PREFIX := @DISABLE_WARNING_PREFIX@ CFLAGS_WARNINGS_ARE_ERRORS:=@CFLAGS_WARNINGS_ARE_ERRORS@ CFLAGS_CCACHE:=@CFLAGS_CCACHE@ @@ -379,6 +382,16 @@ # Sometimes a different linker is needed for c++ executables LDEXECXX:=@FIXPATH@ @LDEXECXX@ +# Compiler and linker flags used when building native tests +CFLAGS_TESTLIB:=@CFLAGS_TESTLIB@ +CXXFLAGS_TESTLIB:=@CXXFLAGS_TESTLIB@ +CFLAGS_TESTEXE:=@CFLAGS_TESTEXE@ +CXXFLAGS_TESTEXE:=@CXXFLAGS_TESTEXE@ +LDFLAGS_TESTLIB:=@LDFLAGS_TESTLIB@ +LDFLAGS_TESTLIB_SUFFIX:=@LDFLAGS_TESTLIB_SUFFIX@ +LDFLAGS_TESTEXE:=@LDFLAGS_TESTEXE@ +LDFLAGS_TESTEXE_SUFFIX:=@LDFLAGS_TESTEXE_SUFFIX@ + # BUILD_CC/BUILD_LD is a compiler/linker that generates code that is runnable on the # build platform. BUILD_CC:=@FIXPATH@ @BUILD_CC@ @@ -701,6 +714,10 @@ TEST_IMAGE_SUBDIR:=test TEST_IMAGE_DIR=$(IMAGES_OUTPUTDIR)/$(TEST_IMAGE_SUBDIR) +# Symbols image +SYMBOLS_IMAGE_SUBDIR:=symbols +SYMBOLS_IMAGE_DIR=$(IMAGES_OUTPUTDIR)/$(SYMBOLS_IMAGE_SUBDIR) + # Macosx bundles directory definitions JDK_BUNDLE_SUBDIR=jdk-bundle/jdk$(JDK_VERSION).jdk/Contents JRE_BUNDLE_SUBDIR=jre-bundle/jre$(JDK_VERSION).jre/Contents diff -r d0dfb41e40de -r 5d1b73337681 common/bin/hgforest.sh --- a/common/bin/hgforest.sh Thu Mar 12 13:35:02 2015 -0700 +++ b/common/bin/hgforest.sh Thu Mar 12 21:12:51 2015 -0700 @@ -26,6 +26,9 @@ usage() { echo "usage: $0 [-h|--help] [-q|--quiet] [-v|--verbose] [-s|--sequential] [--] [commands...]" > ${status_output} + echo "command format : mercurial-command [ "jdk" ] [ extra-url ]" + echo "command option: jdk : used only with clone command to request just the extra repos for JDK-only builds" + echo "command option : extra-url : server hosting the extra repositories" echo "Environment variables which modify behaviour:" echo " HGFOREST_QUIET : (boolean) If 'true' then standard output is redirected to /dev/null" echo " HGFOREST_VERBOSE : (boolean) If 'true' then Mercurial asked to produce verbose output" @@ -179,7 +182,8 @@ trap 'nice_exit' EXIT subrepos="corba jaxp jaxws langtools jdk hotspot nashorn" -subrepos_extra="closed jdk/src/closed jdk/make/closed jdk/test/closed hotspot/make/closed hotspot/src/closed hotspot/test/closed deploy install sponsors pubs" +jdk_subrepos_extra="closed jdk/src/closed jdk/make/closed jdk/test/closed hotspot/make/closed hotspot/src/closed hotspot/test/closed" +subrepos_extra="$jdk_subrepos_extra deploy install sponsors pubs" # Only look in specific locations for possible forests (avoids long searches) pull_default="" @@ -209,6 +213,11 @@ pull_default_tail=`echo ${pull_default} | sed -e 's@^.*://[^/]*/\(.*\)@\1@'` if [ $# -gt 0 ] ; then + if [ "x${1}" = "xjdk" ] ; then + subrepos_extra=$jdk_subrepos_extra + echo "subrepos being cloned are $subrepos_extra" + shift + fi # if there is an "extra sources" path then reparent "extra" repos to that path if [ "x${pull_default}" = "x${pull_default_tail}" ] ; then echo "ERROR: Need initial clone from non-local source" > ${status_output} diff -r d0dfb41e40de -r 5d1b73337681 common/bin/unshuffle_list.txt --- a/common/bin/unshuffle_list.txt Thu Mar 12 13:35:02 2015 -0700 +++ b/common/bin/unshuffle_list.txt Thu Mar 12 21:12:51 2015 -0700 @@ -1299,15 +1299,14 @@ jdk/src/jdk.deploy.osx/macosx/native/libosx/Dispatch.m : jdk/src/macosx/native/com/apple/concurrent/Dispatch.m jdk/src/jdk.deploy.osx/macosx/native/libosx/JavaAppLauncher.m : jdk/src/macosx/native/apple/launcher/JavaAppLauncher.m jdk/src/jdk.deploy.osx/macosx/native/libosx/KeystoreImpl.m : jdk/src/macosx/native/apple/security/KeystoreImpl.m -jdk/src/jdk.dev/share/classes/com/sun/jarsigner : jdk/src/share/classes/com/sun/jarsigner jdk/src/jdk.dev/share/classes/com/sun/tools/hat : jdk/src/share/classes/com/sun/tools/hat -jdk/src/jdk.dev/share/classes/sun/security/tools/jarsigner : jdk/src/share/classes/sun/security/tools/jarsigner -jdk/src/jdk.dev/share/classes/sun/security/tools/policytool : jdk/src/share/classes/sun/security/tools/policytool -jdk/src/jdk.dev/share/classes/sun/tools/jar : jdk/src/share/classes/sun/tools/jar jdk/src/jdk.dev/share/classes/sun/tools/native2ascii : jdk/src/share/classes/sun/tools/native2ascii jdk/src/jdk.hprof.agent/share/classes/com/sun/demo/jvmti/hprof : jdk/src/share/classes/com/sun/demo/jvmti/hprof jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver : jdk/src/share/classes/com/sun/net/httpserver jdk/src/jdk.httpserver/share/classes/sun/net/httpserver : jdk/src/share/classes/sun/net/httpserver +jdk/src/jdk.jartool/share/classes/com/sun/jarsigner : jdk/src/share/classes/com/sun/jarsigner +jdk/src/jdk.jartool/share/classes/sun/security/tools/jarsigner : jdk/src/share/classes/sun/security/tools/jarsigner +jdk/src/jdk.jartool/share/classes/sun/tools/jar : jdk/src/share/classes/sun/tools/jar jdk/src/jdk.jcmd/share/classes/sun/tools/jcmd : jdk/src/share/classes/sun/tools/jcmd jdk/src/jdk.jcmd/share/classes/sun/tools/jinfo : jdk/src/share/classes/sun/tools/jinfo jdk/src/jdk.jcmd/share/classes/sun/tools/jmap : jdk/src/share/classes/sun/tools/jmap @@ -1433,6 +1432,27 @@ jdk/src/jdk.naming.dns/share/classes/sun/net/spi/nameservice/dns : jdk/src/share/classes/sun/net/spi/nameservice/dns jdk/src/jdk.naming.rmi/share/classes/com/sun/jndi/rmi/registry : jdk/src/share/classes/com/sun/jndi/rmi/registry jdk/src/jdk.naming.rmi/share/classes/com/sun/jndi/url/rmi : jdk/src/share/classes/com/sun/jndi/url/rmi +jdk/src/jdk.pack200/share/native/common-unpack/bands.cpp : jdk/src/share/native/com/sun/java/util/jar/pack/bands.cpp +jdk/src/jdk.pack200/share/native/common-unpack/bands.h : jdk/src/share/native/com/sun/java/util/jar/pack/bands.h +jdk/src/jdk.pack200/share/native/common-unpack/bytes.cpp : jdk/src/share/native/com/sun/java/util/jar/pack/bytes.cpp +jdk/src/jdk.pack200/share/native/common-unpack/bytes.h : jdk/src/share/native/com/sun/java/util/jar/pack/bytes.h +jdk/src/jdk.pack200/share/native/common-unpack/coding.cpp : jdk/src/share/native/com/sun/java/util/jar/pack/coding.cpp +jdk/src/jdk.pack200/share/native/common-unpack/coding.h : jdk/src/share/native/com/sun/java/util/jar/pack/coding.h +jdk/src/jdk.pack200/share/native/common-unpack/constants.h : jdk/src/share/native/com/sun/java/util/jar/pack/constants.h +jdk/src/jdk.pack200/share/native/common-unpack/defines.h : jdk/src/share/native/com/sun/java/util/jar/pack/defines.h +jdk/src/jdk.pack200/share/native/common-unpack/unpack.cpp : jdk/src/share/native/com/sun/java/util/jar/pack/unpack.cpp +jdk/src/jdk.pack200/share/native/common-unpack/unpack.h : jdk/src/share/native/com/sun/java/util/jar/pack/unpack.h +jdk/src/jdk.pack200/share/native/common-unpack/utils.cpp : jdk/src/share/native/com/sun/java/util/jar/pack/utils.cpp +jdk/src/jdk.pack200/share/native/common-unpack/utils.h : jdk/src/share/native/com/sun/java/util/jar/pack/utils.h +jdk/src/jdk.pack200/share/native/common-unpack/zip.cpp : jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp +jdk/src/jdk.pack200/share/native/common-unpack/zip.h : jdk/src/share/native/com/sun/java/util/jar/pack/zip.h +jdk/src/jdk.pack200/share/native/libjsdt : jdk/src/share/native/sun/tracing/dtrace +jdk/src/jdk.pack200/share/native/libunpack/jni.cpp : jdk/src/share/native/com/sun/java/util/jar/pack/jni.cpp +jdk/src/jdk.pack200/share/native/unpack200/main.cpp : jdk/src/share/native/com/sun/java/util/jar/pack/main.cpp +jdk/src/jdk.pack200/unix/native/libjsdt/jvm_symbols_md.c : jdk/src/solaris/native/sun/tracing/dtrace/jvm_symbols_md.c +jdk/src/jdk.pack200/windows/native/libjsdt/jvm_symbols_md.c : jdk/src/windows/native/sun/tracing/dtrace/jvm_symbols_md.c +jdk/src/jdk.pack200/windows/native/unpack200/unpack200_proto.exe.manifest : jdk/src/windows/resource/unpack200_proto.exe.manifest +jdk/src/jdk.policytool/share/classes/sun/security/tools/policytool : jdk/src/share/classes/sun/security/tools/policytool jdk/src/jdk.rmic/share/classes/sun/rmi/rmic : jdk/src/share/classes/sun/rmi/rmic jdk/src/jdk.rmic/share/classes/sun/rmi/rmic/newrmic : jdk/src/share/classes/sun/rmi/rmic/newrmic jdk/src/jdk.rmic/share/classes/sun/rmi/rmic/newrmic/jrmp : jdk/src/share/classes/sun/rmi/rmic/newrmic/jrmp @@ -1442,28 +1462,6 @@ jdk/src/jdk.rmic/share/classes/sun/tools/java : jdk/src/share/classes/sun/tools/java jdk/src/jdk.rmic/share/classes/sun/tools/tree : jdk/src/share/classes/sun/tools/tree jdk/src/jdk.rmic/share/classes/sun/tools/util : jdk/src/share/classes/sun/tools/util -jdk/src/jdk.runtime/share/classes/com/sun/tracing : jdk/src/share/classes/com/sun/tracing -jdk/src/jdk.runtime/share/classes/sun/tracing : jdk/src/share/classes/sun/tracing -jdk/src/jdk.runtime/share/native/common-unpack/bands.cpp : jdk/src/share/native/com/sun/java/util/jar/pack/bands.cpp -jdk/src/jdk.runtime/share/native/common-unpack/bands.h : jdk/src/share/native/com/sun/java/util/jar/pack/bands.h -jdk/src/jdk.runtime/share/native/common-unpack/bytes.cpp : jdk/src/share/native/com/sun/java/util/jar/pack/bytes.cpp -jdk/src/jdk.runtime/share/native/common-unpack/bytes.h : jdk/src/share/native/com/sun/java/util/jar/pack/bytes.h -jdk/src/jdk.runtime/share/native/common-unpack/coding.cpp : jdk/src/share/native/com/sun/java/util/jar/pack/coding.cpp -jdk/src/jdk.runtime/share/native/common-unpack/coding.h : jdk/src/share/native/com/sun/java/util/jar/pack/coding.h -jdk/src/jdk.runtime/share/native/common-unpack/constants.h : jdk/src/share/native/com/sun/java/util/jar/pack/constants.h -jdk/src/jdk.runtime/share/native/common-unpack/defines.h : jdk/src/share/native/com/sun/java/util/jar/pack/defines.h -jdk/src/jdk.runtime/share/native/common-unpack/unpack.cpp : jdk/src/share/native/com/sun/java/util/jar/pack/unpack.cpp -jdk/src/jdk.runtime/share/native/common-unpack/unpack.h : jdk/src/share/native/com/sun/java/util/jar/pack/unpack.h -jdk/src/jdk.runtime/share/native/common-unpack/utils.cpp : jdk/src/share/native/com/sun/java/util/jar/pack/utils.cpp -jdk/src/jdk.runtime/share/native/common-unpack/utils.h : jdk/src/share/native/com/sun/java/util/jar/pack/utils.h -jdk/src/jdk.runtime/share/native/common-unpack/zip.cpp : jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp -jdk/src/jdk.runtime/share/native/common-unpack/zip.h : jdk/src/share/native/com/sun/java/util/jar/pack/zip.h -jdk/src/jdk.runtime/share/native/libjsdt : jdk/src/share/native/sun/tracing/dtrace -jdk/src/jdk.runtime/share/native/libunpack/jni.cpp : jdk/src/share/native/com/sun/java/util/jar/pack/jni.cpp -jdk/src/jdk.runtime/share/native/unpack200/main.cpp : jdk/src/share/native/com/sun/java/util/jar/pack/main.cpp -jdk/src/jdk.runtime/unix/native/libjsdt/jvm_symbols_md.c : jdk/src/solaris/native/sun/tracing/dtrace/jvm_symbols_md.c -jdk/src/jdk.runtime/windows/native/libjsdt/jvm_symbols_md.c : jdk/src/windows/native/sun/tracing/dtrace/jvm_symbols_md.c -jdk/src/jdk.runtime/windows/native/unpack200/unpack200_proto.exe.manifest : jdk/src/windows/resource/unpack200_proto.exe.manifest jdk/src/jdk.sctp/macosx/classes/sun/nio/ch/sctp : jdk/src/macosx/classes/sun/nio/ch/sctp jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp : jdk/src/share/classes/com/sun/nio/sctp jdk/src/jdk.sctp/share/classes/sun/nio/ch/sctp : jdk/src/share/classes/sun/nio/ch/sctp diff -r d0dfb41e40de -r 5d1b73337681 make/CompileJavaModules.gmk --- a/make/CompileJavaModules.gmk Thu Mar 12 13:35:02 2015 -0700 +++ b/make/CompileJavaModules.gmk Thu Mar 12 21:12:51 2015 -0700 @@ -1,5 +1,5 @@ # -# Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -42,6 +42,7 @@ ################################################################################ +java.base_ADD_JAVAC_FLAGS := -Xdoclint:all/protected,-reference '-Xdoclint/package:java.*,javax.*' java.base_COPY := .icu .dat .spp content-types.properties hijrah-config-islamic-umalqura.properties java.base_CLEAN := intrinsic.properties @@ -89,10 +90,12 @@ ################################################################################ +java.datatransfer_ADD_JAVAC_FLAGS := -Xdoclint:all/protected,-reference '-Xdoclint/package:java.*,javax.*' java.datatransfer_COPY := flavormap.properties ################################################################################ +java.desktop_ADD_JAVAC_FLAGS := -Xdoclint:all/protected,-missing,-reference '-Xdoclint/package:java.*,javax.*' java.desktop_COPY := .gif .png .wav .txt .xml .css .pf java.desktop_CLEAN := iio-plugin.properties cursors.properties @@ -239,15 +242,18 @@ ################################################################################ +java.scripting_ADD_JAVAC_FLAGS := -Xdoclint:all/protected '-Xdoclint/package:java.*,javax.*' java.scripting_COPY := .js java.scripting_CLEAN := .properties ################################################################################ +java.sql_ADD_JAVAC_FLAGS := -Xdoclint:all/protected '-Xdoclint/package:java.*,javax.*' java.sql_SETUP := GENERATE_JDKBYTECODE_NOWARNINGS ################################################################################ +java.sql.rowset_ADD_JAVAC_FLAGS := -Xdoclint:all/protected '-Xdoclint/package:java.*,javax.*' java.sql.rowset_CLEAN_FILES := $(wildcard \ $(JDK_TOPDIR)/src/java.sql.rowset/share/classes/com/sun/rowset/*.properties \ $(JDK_TOPDIR)/src/java.sql.rowset/share/classes/javax/sql/rowset/*.properties) @@ -261,6 +267,7 @@ ################################################################################ +java.rmi_ADD_JAVAC_FLAGS := -Xdoclint:all/protected '-Xdoclint/package:java.*,javax.*' java.rmi_CLEAN_FILES := $(wildcard \ $(JDK_TOPDIR)/src/java.rmi/share/classes/sun/rmi/registry/resources/*.properties \ $(JDK_TOPDIR)/src/java.rmi/share/classes/sun/rmi/server/resources/*.properties) @@ -309,14 +316,17 @@ ################################################################################ +java.naming_ADD_JAVAC_FLAGS := -Xdoclint:all/protected '-Xdoclint/package:java.*,javax.*' java.naming_CLEAN := jndiprovider.properties ################################################################################ +java.security.saaj_ADD_JAVAC_FLAGS := -Xdoclint:all/protected '-Xdoclint/package:java.*,javax.*' java.security.saaj_CLEAN := .properties ################################################################################ +java.xml.crypto_ADD_JAVAC_FLAGS := -Xdoclint:all/protected '-Xdoclint/package:java.*,javax.*' java.xml.crypto_COPY := .dtd .xml java.xml.crypto_CLEAN := .properties @@ -485,7 +495,7 @@ $1_CLASSPATH := $$($1_CLASSPATH) $$(addprefix $(JDK_OUTPUTDIR)/modules/,jdk.hotspot.agent) endif $1_CLASSPATH := $$(subst $$(SPACE),$$(PATH_SEP),$$($1_CLASSPATH)) - $1_JAVAC_FLAGS := -bootclasspath "$$($1_CLASSPATH)" + $1_JAVAC_FLAGS := -bootclasspath "$$($1_CLASSPATH)" $$($1_ADD_JAVAC_FLAGS) $$(eval $$(call SetupJavaCompilation,$1, \ SETUP := $$(if $$($1_SETUP), $$($1_SETUP), GENERATE_JDKBYTECODE), \ diff -r d0dfb41e40de -r 5d1b73337681 make/Images.gmk --- a/make/Images.gmk Thu Mar 12 13:35:02 2015 -0700 +++ b/make/Images.gmk Thu Mar 12 21:12:51 2015 -0700 @@ -38,7 +38,7 @@ ############################################################################ MAIN_MODULES += java.se java.smartcardio jdk.httpserver jdk.sctp \ - jdk.security.auth jdk.security.jgss jdk.runtime + jdk.security.auth jdk.security.jgss jdk.pack200 # providers PROVIDER_MODULES += jdk.charsets jdk.crypto.ec jdk.crypto.pkcs11 jdk.jvmstat jdk.localedata \ @@ -46,8 +46,8 @@ # tools TOOLS_MODULES += jdk.attach jdk.compiler jdk.dev jdk.javadoc jdk.jcmd jdk.jconsole \ - jdk.hotspot.agent jdk.hprof.agent jdk.jdi jdk.jdwp.agent jdk.rmic \ - jdk.xml.bind jdk.xml.ws + jdk.hotspot.agent jdk.hprof.agent jdk.jartool jdk.jdi jdk.jdwp.agent \ + jdk.policytool jdk.rmic jdk.xml.bind jdk.xml.ws ifeq ($(OPENJDK_TARGET_OS), windows) PROVIDER_MODULES += jdk.crypto.mscapi @@ -488,6 +488,42 @@ JDK_TARGETS += $(COPY_JRTFS_JAR) ################################################################################ +# Code coverage data files + +ifeq ($(GCOV_ENABLED), true) + + GCOV_FIND_EXPR := -type f -name "*.gcno" + + ifeq ($(JVM_VARIANT_CLIENT), true) + $(eval $(call SetupCopyFiles,COPY_HOTSPOT_CLIENT_GCOV_GCNO, \ + SRC := $(HOTSPOT_OUTPUTDIR), \ + DEST := $(SYMBOLS_IMAGE_DIR)/gcov/hotspot/client, \ + FILES := $(shell $(FIND) $(HOTSPOT_OUTPUTDIR)/*compiler1/ $(GCOV_FIND_EXPR)), \ + FLATTEN := true)) + + SYMBOLS_TARGETS += $(COPY_HOTSPOT_CLIENT_GCOV_GCNO) + endif + + ifeq ($(JVM_VARIANT_SERVER), true) + $(eval $(call SetupCopyFiles,COPY_HOTSPOT_SERVER_GCOV_GCNO, \ + SRC := $(HOTSPOT_OUTPUTDIR), \ + DEST := $(SYMBOLS_IMAGE_DIR)/gcov/hotspot/server, \ + FILES := $(shell $(FIND) $(HOTSPOT_OUTPUTDIR)/*compiler2/ $(GCOV_FIND_EXPR)), \ + FLATTEN := true)) + + SYMBOLS_TARGETS += $(COPY_HOTSPOT_SERVER_GCOV_GCNO) + endif + + $(eval $(call SetupCopyFiles,COPY_JDK_GCOV_GCNO, \ + SRC := $(SUPPORT_OUTPUTDIR)/native, \ + DEST := $(SYMBOLS_IMAGE_DIR)/gcov/jdk, \ + FILES := $(shell $(FIND) $(SUPPORT_OUTPUTDIR)/native $(GCOV_FIND_EXPR)))) + + SYMBOLS_TARGETS += $(COPY_JDK_GCOV_GCNO) + +endif + +################################################################################ # Include custom post hook here to make it possible to augment the target lists # before actual target prerequisites are declared. @@ -498,7 +534,8 @@ $(JRE_TARGETS): $(TOOL_JRE_TARGETS) $(JDK_TARGETS): $(TOOL_JDK_TARGETS) -jimages: $(TOOL_JRE_TARGETS) $(TOOL_JDK_TARGETS) $(JRE_TARGETS) $(JDK_TARGETS) +jimages: $(TOOL_JRE_TARGETS) $(TOOL_JDK_TARGETS) $(JRE_TARGETS) $(JDK_TARGETS) \ + $(SYMBOLS_TARGETS) $(JRE_COMPACT1_TARGETS): $(TOOL_JRE_COMPACT1_TARGETS) diff -r d0dfb41e40de -r 5d1b73337681 make/Jprt.gmk --- a/make/Jprt.gmk Thu Mar 12 13:35:02 2015 -0700 +++ b/make/Jprt.gmk Thu Mar 12 21:12:51 2015 -0700 @@ -33,10 +33,16 @@ override JPRT_ARCHIVE_BUNDLE := $(shell $(CYGPATH) -u $(JPRT_ARCHIVE_BUNDLE)) endif ifdef JPRT_ARCHIVE_INSTALL_BUNDLE - override JPRT_ARCHIVE_INSTALL_BUNDLE := $(shell $(CYGPATH) -u $(JPRT_ARCHIVE_INSTALL_BUNDLE)) + override JPRT_ARCHIVE_INSTALL_BUNDLE := \ + $(shell $(CYGPATH) -u $(JPRT_ARCHIVE_INSTALL_BUNDLE)) endif ifdef JPRT_ARCHIVE_TEST_BUNDLE - override JPRT_ARCHIVE_TEST_BUNDLE := $(shell $(CYGPATH) -u $(JPRT_ARCHIVE_TEST_BUNDLE)) + override JPRT_ARCHIVE_TEST_BUNDLE := \ + $(shell $(CYGPATH) -u $(JPRT_ARCHIVE_TEST_BUNDLE)) + endif + ifdef JPRT_ARCHIVE_SYMBOLS_BUNDLE + override JPRT_ARCHIVE_SYMBOLS_BUNDLE := \ + $(shell $(CYGPATH) -u $(JPRT_ARCHIVE_SYMBOLS_BUNDLE)) endif endif @@ -51,6 +57,9 @@ ifndef JPRT_ARCHIVE_TEST_BUNDLE JPRT_ARCHIVE_TEST_BUNDLE=/tmp/jprt_bundles/test-image.zip endif +ifndef JPRT_ARCHIVE_SYMBOLS_BUNDLE + JPRT_ARCHIVE_SYMBOLS_BUNDLE=/tmp/jprt_bundles/symbols-image.zip +endif ifeq ($(SKIP_BOOT_CYCLE), false) jprt_bundle: bootcycle-images @@ -59,6 +68,10 @@ # This target must be called in the context of a SPEC file jprt_bundle: $(JPRT_ARCHIVE_BUNDLE) $(JPRT_ARCHIVE_TEST_BUNDLE) +ifeq ($(GCOV_ENABLED), true) + jprt_bundle: $(JPRT_ARCHIVE_SYMBOLS_BUNDLE) +endif + # This target must be called in the context of a SPEC file $(JPRT_ARCHIVE_BUNDLE): bundles $(MKDIR) -p $(@D) @@ -70,6 +83,11 @@ $(RM) $@ $(CP) $(BUILD_OUTPUT)/bundles/$(TEST_IMAGE_SUBDIR).zip $@ +$(JPRT_ARCHIVE_SYMBOLS_BUNDLE): bundles + $(MKDIR) -p $(@D) + $(RM) $@ + $(CP) $(BUILD_OUTPUT)/bundles/$(SYMBOLS_IMAGE_SUBDIR).zip $@ + SRC_JDK_IMAGE_DIR := $(JDK_IMAGE_DIR) SRC_JRE_IMAGE_DIR := $(JRE_IMAGE_DIR) SRC_TEST_IMAGE_DIR := $(TEST_IMAGE_DIR) @@ -80,11 +98,19 @@ bundles: all @$(call TargetEnter) $(MKDIR) -p $(BUILD_OUTPUT)/bundles - $(CD) $(SRC_JDK_IMAGE_DIR) && $(ZIP) -y -q -r $(BUILD_OUTPUT)/bundles/$(JDK_IMAGE_SUBDIR).zip . - $(CD) $(SRC_JRE_IMAGE_DIR) && $(ZIP) -y -q -r $(BUILD_OUTPUT)/bundles/$(JRE_IMAGE_SUBDIR).zip . - $(CD) $(SRC_TEST_IMAGE_DIR) && $(ZIP) -y -q -r $(BUILD_OUTPUT)/bundles/$(TEST_IMAGE_SUBDIR).zip . + $(CD) $(SRC_JDK_IMAGE_DIR) && $(ZIP) -y -q -r \ + $(BUILD_OUTPUT)/bundles/$(JDK_IMAGE_SUBDIR).zip . + $(CD) $(SRC_JRE_IMAGE_DIR) && $(ZIP) -y -q -r \ + $(BUILD_OUTPUT)/bundles/$(JRE_IMAGE_SUBDIR).zip . + $(CD) $(SRC_TEST_IMAGE_DIR) && $(ZIP) -y -q -r \ + $(BUILD_OUTPUT)/bundles/$(TEST_IMAGE_SUBDIR).zip . if [ -d $(BUILD_OUTPUT)/install/bundles ] ; then \ - $(CD) $(BUILD_OUTPUT)/install/bundles && $(ZIP) -y -q -r $(JPRT_ARCHIVE_INSTALL_BUNDLE) . ; \ + $(CD) $(BUILD_OUTPUT)/install/bundles && $(ZIP) -y -q -r \ + $(JPRT_ARCHIVE_INSTALL_BUNDLE) . ; \ + fi + if [ -d $(SYMBOLS_IMAGE_DIR) ] ; then \ + $(CD) $(SYMBOLS_IMAGE_DIR) && $(ZIP) -y -q -r \ + $(BUILD_OUTPUT)/bundles/$(SYMBOLS_IMAGE_SUBDIR).zip . ; \ fi @$(call TargetExit) diff -r d0dfb41e40de -r 5d1b73337681 make/Main.gmk --- a/make/Main.gmk Thu Mar 12 13:35:02 2015 -0700 +++ b/make/Main.gmk Thu Mar 12 21:12:51 2015 -0700 @@ -531,7 +531,7 @@ # file. CLEAN_DIRS += hotspot jdk bootcycle-build test buildtools support \ - images make-support test-make + images make-support test-make bundles CLEAN_DIR_TARGETS := $(addprefix clean-, $(CLEAN_DIRS)) CLEAN_TESTS += hotspot-jtreg-native jdk-jtreg-native CLEAN_TEST_TARGETS += $(addprefix clean-test-, $(CLEAN_TESTS)) diff -r d0dfb41e40de -r 5d1b73337681 make/common/IdlCompilation.gmk --- a/make/common/IdlCompilation.gmk Thu Mar 12 13:35:02 2015 -0700 +++ b/make/common/IdlCompilation.gmk Thu Mar 12 21:12:51 2015 -0700 @@ -88,15 +88,8 @@ # EXCLUDES # OLDIMPLBASES # DELETES -define SetupIdlCompilation - $(if $(16),$(error Internal makefile error: Too many arguments to SetupIdlCompilation, please update IdlCompilation.gmk)) - $(call EvalDebugWrapper,$(strip $1),$(call SetupIdlCompilationInner,$(strip $1),$2,$3,$4,$5,$6,$7,$8,$9,$(10),$(11),$(12),$(13),$(14),$(15))) -endef - -define SetupIdlCompilationInner - $(foreach i,2 3 4 5 6 7 8 9 10 11 12 13 14 15, $(if $(strip $($i)),$1_$(strip $($i)))$(NEWLINE)) - $(call LogSetupMacroEntry,SetupIdlCompilation($1),$2,$3,$4,$5,$6,$7,$8,$9,$(10),$(11),$(12),$(13),$(14),$(15)) - $(if $(16),$(error Internal makefile error: Too many arguments to SetupIdlCompilation, please update IdlCompilation.gmk)) +SetupIdlCompilation = $(NamedParamsMacroTemplate) +define SetupIdlCompilationBody # Find all existing java files and existing class files. $$(call MakeDir,$$($1_BIN)) diff -r d0dfb41e40de -r 5d1b73337681 make/common/JavaCompilation.gmk --- a/make/common/JavaCompilation.gmk Thu Mar 12 13:35:02 2015 -0700 +++ b/make/common/JavaCompilation.gmk Thu Mar 12 21:12:51 2015 -0700 @@ -59,16 +59,8 @@ # FLAGS:=Flags to be supplied to javac # SERVER_DIR:=Use a javac server (-XDserver) and store the server related files here # SERVER_JVM:=Use this JVM for the server. Defaults to the JVM above. -define SetupJavaCompiler - $(if $(16),$(error Internal makefile error: Too many arguments to SetupJavaCompiler, please update JavaCompilation.gmk)) - $(call EvalDebugWrapper,$(strip $1),$(call SetupJavaCompilerInner,$(strip $1),$2,$3,$4,$5,$6,$7,$8,$9,$(10),$(11),$(12),$(13),$(14),$(15))) -endef - -define SetupJavaCompilerInner - $(foreach i,2 3 4 5 6 7 8 9 10 11 12 13 14 15, $(if $(strip $($i)),$1_$(strip $($i)))$(NEWLINE)) - $(call LogSetupMacroEntry,SetupJavaCompiler($1),$2,$3,$4,$5,$6,$7,$8,$9,$(10),$(11),$(12),$(13),$(14),$(15)) - $(if $(16),$(error Internal makefile error: Too many arguments to SetupJavaCompiler, please update JavaCompilation.gmk)) - +SetupJavaCompiler = $(NamedParamsMacroTemplate) +define SetupJavaCompilerBody # The port file contains the tcp/ip on which the server listens # and the cookie necessary to talk to the server. $1_SJAVAC_PORTFILE:=$$($1_SERVER_DIR)/server.port @@ -84,10 +76,11 @@ # Parameter 1 is the name of the rule. This name is used as variable prefix, # and the targets generated are listed in a variable by that name. # -# Parameter 2 is a list of dependencies for the jar target. If left empty, -# dependencies are searched using SRCS, which should not be empty. -# # Remaining parameters are named arguments. These include: +# DEPENDENCIES:=List of dependencies for the jar target. If left empty, +# dependencies are calculated automatically from the source files found. +# For this to work, the source files must exist when the makefile is +# parsed. # SRCS:=List of directories in where to find files to add to archive # SUFFIXES:=File suffixes to include in jar # INCLUDES:=List of directories/packages in SRCS that should be included @@ -102,17 +95,8 @@ # added to the archive. # EXTRA_MANIFEST_ATTR:=Extra attribute to add to manifest. # CHECK_COMPRESS_JAR Check the COMPRESS_JAR variable -define SetupArchive - $(if $(16),$(error Internal makefile error: Too many arguments to SetupArchive, please update JavaCompilation.gmk)) - $(call EvalDebugWrapper,$(strip $1),$(call SetupArchiveInner,$(strip $1),$2,$3,$4,$5,$6,$7,$8,$9,$(10),$(11),$(12),$(13),$(14),$(15))) -endef - -define SetupArchiveInner - # NOTE: $2 is dependencies, not a named argument! - $(foreach i,3 4 5 6 7 8 9 10 11 12 13 14 15, $(if $(strip $($i)),$1_$(strip $($i)))$(NEWLINE)) - $(call LogSetupMacroEntry,SetupArchive($1),,$3,$4,$5,$6,$7,$8,$9,$(10),$(11),$(12),$(13),$(14),$(15)) - $(if $(findstring $(LOG_LEVEL),trace), $(info *[2] = $(strip $2))) - $(if $(16),$(error Internal makefile error: Too many arguments to SetupArchive, please update JavaCompilation.gmk)) +SetupArchive = $(NamedParamsMacroTemplate) +define SetupArchiveBody $1_JARMAIN:=$(strip $$($1_JARMAIN)) $1_JARNAME:=$$(notdir $$($1_JAR)) @@ -171,29 +155,27 @@ # When this macro is run in the same makefile as the java compilation, dependencies are # transfered in make variables. When the macro is run in a different makefile than the # java compilation, the dependencies need to be found in the filesystem. - ifneq (,$2) - $1_DEPS:=$2 - else + ifeq ($$($1_DEPENDENCIES), ) # Add all source roots to the find cache since we are likely going to run find # on these more than once. The cache will only be updated if necessary. $$(eval $$(call FillCacheFind, $$($1_FIND_LIST))) - $1_DEPS:=$$(filter $$(addprefix %,$$($1_SUFFIXES)), \ + $1_DEPENDENCIES:=$$(filter $$(addprefix %,$$($1_SUFFIXES)), \ $$(call CacheFind,$$($1_SRCS))) ifneq (,$$($1_GREP_INCLUDE_PATTERNS)) - $1_DEPS:=$$(filter $$(addsuffix %,$$($1_GREP_INCLUDE_PATTERNS)),$$($1_DEPS)) + $1_DEPENDENCIES:=$$(filter $$(addsuffix %,$$($1_GREP_INCLUDE_PATTERNS)),$$($1_DEPENDENCIES)) endif ifneq (,$$($1_GREP_EXCLUDE_PATTERNS)) - $1_DEPS:=$$(filter-out $$(addsuffix %,$$($1_GREP_EXCLUDE_PATTERNS)),$$($1_DEPS)) + $1_DEPENDENCIES:=$$(filter-out $$(addsuffix %,$$($1_GREP_EXCLUDE_PATTERNS)),$$($1_DEPENDENCIES)) endif # Look for EXTRA_FILES in all SRCS dirs and as absolute paths. - $1_DEPS+=$$(wildcard $$(foreach src, $$($1_SRCS), \ + $1_DEPENDENCIES+=$$(wildcard $$(foreach src, $$($1_SRCS), \ $$(addprefix $$(src)/, $$($1_EXTRA_FILES))) $$($1_EXTRA_FILES)) ifeq (,$$($1_SKIP_METAINF)) - $1_DEPS+=$$(call CacheFind,$$(wildcard $$(addsuffix /META-INF,$$($1_SRCS)))) + $1_DEPENDENCIES+=$$(call CacheFind,$$(wildcard $$(addsuffix /META-INF,$$($1_SRCS)))) endif endif # The dependency list should never be empty - ifeq ($$(strip $$($1_DEPS)), ) + ifeq ($$(strip $$($1_DEPENDENCIES)), ) $$(warning No dependencies found for $1) endif @@ -288,7 +270,7 @@ $1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, $$(dir $$($1_JAR))_the.$$($1_JARNAME).vardeps) # Here is the rule that creates/updates the jar file. - $$($1_JAR) : $$($1_DEPS) $$($1_MANIFEST) $$($1_VARDEPS_FILE) + $$($1_JAR) : $$($1_DEPENDENCIES) $$($1_MANIFEST) $$($1_VARDEPS_FILE) $(MKDIR) -p $$($1_BIN) $$($1_GREP_INCLUDE_OUTPUT) $$($1_GREP_EXCLUDE_OUTPUT) @@ -429,15 +411,8 @@ # HEADERS:=path to directory where all generated c-headers are written. # DEPENDS:=Extra dependecy # DISABLE_SJAVAC:=Explicitly disable the use of sjavac for this compilation unit. -define SetupJavaCompilation - $(if $(16),$(error Internal makefile error: Too many arguments to SetupJavaCompilation, please update JavaCompilation.gmk)) - $(call EvalDebugWrapper,$(strip $1),$(call SetupJavaCompilationInner,$(strip $1),$2,$3,$4,$5,$6,$7,$8,$9,$(10),$(11),$(12),$(13),$(14),$(15))) -endef - -define SetupJavaCompilationInner - $(foreach i,2 3 4 5 6 7 8 9 10 11 12 13 14 15, $(if $(strip $($i)),$1_$(strip $($i)))$(NEWLINE)) - $(call LogSetupMacroEntry,SetupJavaCompilation($1),$2,$3,$4,$5,$6,$7,$8,$9,$(10),$(11),$(12),$(13),$(14),$(15)) - $(if $(16),$(error Internal makefile error: Too many arguments to SetupJavaCompilation, please update JavaCompilation.gmk)) +SetupJavaCompilation = $(NamedParamsMacroTemplate) +define SetupJavaCompilationBody # Verify arguments ifeq ($$($1_BIN),) @@ -653,7 +628,8 @@ $1_SUFFIXES:=.class $$($1_CLEAN) $$($1_COPY) endif - $$(eval $$(call SetupArchive,ARCHIVE_$1,$$($1), \ + $$(eval $$(call SetupArchive,ARCHIVE_$1, \ + DEPENDENCIES:=$$($1), \ SRCS:=$$($1_BIN), \ SUFFIXES:=$$($1_SUFFIXES), \ EXCLUDE:=$$($1_EXCLUDES), \ diff -r d0dfb41e40de -r 5d1b73337681 make/common/MakeBase.gmk --- a/make/common/MakeBase.gmk Thu Mar 12 13:35:02 2015 -0700 +++ b/make/common/MakeBase.gmk Thu Mar 12 21:12:51 2015 -0700 @@ -374,28 +374,70 @@ # Make sure logging is setup for everyone that includes MakeBase.gmk. $(eval $(call SetupLogging)) -# This is to be called by all SetupFoo macros -define LogSetupMacroEntry - $(if $(27),$(error Internal makefile error: Too many arguments to LogSetupMacroEntry, please update MakeBase.gmk)) - $(if $(findstring $(LOG_LEVEL),debug trace), $(info $1 $(foreach i,2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26,$(if $(strip $($i)),$(NEWLINE) $(strip [$i] $($i)))))) +################################################################################ +# Creates a sequence of increasing numbers (inclusive). +# Param 1 - starting number +# Param 2 - ending number +sequence = \ + $(wordlist $1, $2, $(strip \ + $(eval SEQUENCE_COUNT :=) \ + $(call _sequence-do,$(strip $2)))) + +_sequence-do = \ + $(if $(word $1, $(SEQUENCE_COUNT)),, \ + $(eval SEQUENCE_COUNT += .) \ + $(words $(SEQUENCE_COUNT)) \ + $(call _sequence-do,$1)) + +################################################################################ + +MAX_PARAMS := 30 +PARAM_SEQUENCE := $(call sequence, 2, $(MAX_PARAMS)) + +# Template for creating a macro taking named parameters. To use it, assign the +# template to a variable with the name you want for your macro, using '=' +# assignment. Then define a macro body with the suffix "Body". The Body macro +# should take 1 parameter which should be a unique string for that invocation +# of the macro. +# Ex: +# SetupFoo = $(NamedParamsMacroTemplate) +# define SetupFooBody +# # do something +# # access parameters as $$($1_BAR) +# endef +# Call it like this +# $(eval $(call SetupFoo, BUILD_SOMETHING, \ +# BAR := some parameter value, \ +# )) +define NamedParamsMacroTemplate + $(if $($(MAX_PARAMS)),$(error Internal makefile error: \ + Too many named arguments to macro, please update MAX_PARAMS in MakeBase.gmk)) + # Iterate over 2 3 4... and evaluate the named parameters with $1_ as prefix + $(foreach i,$(PARAM_SEQUENCE), $(if $(strip $($i)),\ + $(strip $1)_$(strip $($i)))$(NEWLINE)) + # Debug print all named parameter names and values + $(if $(findstring $(LOG_LEVEL),debug trace), \ + $(info $0 $(strip $1) $(foreach i,$(PARAM_SEQUENCE), \ + $(if $(strip $($i)),$(NEWLINE) $(strip [$i] $(if $(filter $(LOG_LEVEL), trace), \ + $($i), $(wordlist 1, 20, $($(i))) $(if $(word 21, $($(i))), ...))))))) + + $(if $(DEBUG_$(strip $1)), + $(info -------- <<< Begin expansion of $(strip $1)) \ + $(info $(call $(0)Body,$(strip $1))) \ + $(info -------- >>> End expansion of $(strip $1)) \ + ) + + $(call $(0)Body,$(strip $1)) endef -# Support macro for all SetupFoo macros. -define EvalDebugWrapper - $(if $(DEBUG_$1), - $(info -------- <<< Begin expansion of $1) - $(info $2) - $(info -------- >>> End expansion of $1) - ) - - $2 -endef - +################################################################################ # Make directory without forking mkdir if not needed MakeDir = \ $(strip $(if $(subst $(wildcard $1 $2 $3 $4 $5 $6 $7 $8 $9),,$(strip $1 $2 $3 $4 $5 $6 $7 $8 $9)),\ $(shell $(MKDIR) -p $1 $2 $3 $4 $5 $6 $7 $8 $9))) +################################################################################ + ifeq ($(OPENJDK_TARGET_OS),solaris) # On Solaris, if the target is a symlink and exists, cp won't overwrite. # Cp has to operate in recursive mode to allow for -P flag, to preserve soft links. If the @@ -437,6 +479,7 @@ endef endif +################################################################################ # Convenience functions for working around make's limitations with $(filter ). containing = \ $(strip $(foreach v,$(strip $2),$(if $(findstring $(strip $1),$v),$v))) @@ -457,8 +500,9 @@ $(and $(findstring $(strip $1),$(strip $2)),\ $(findstring $(strip $2),$(strip $1))) +################################################################################ + ifneq ($(DISABLE_CACHE_FIND), true) - ################################################################################ # In Cygwin, finds are very costly, both because of expensive forks and because # of bad file system caching. Find is used extensively in $(shell) commands to # find source files. This makes rerunning make with no or few changes rather @@ -544,16 +588,8 @@ # FLATTEN : Set to flatten the directory structure in the DEST dir. # MACRO : Optionally override the default macro used for making the copy. # Default is 'install-file' - -define SetupCopyFiles - $(if $(16),$(error Internal makefile error: Too many arguments to SetupCopyFiles, please update MakeBase.gmk)) - $(call EvalDebugWrapper,$(strip $1),$(call SetupCopyFilesInner,$(strip $1),$2,$3,$4,$5,$6,$7,$8,$9,$(10),$(11),$(12),$(13),$(14),$(15))) -endef - -define SetupCopyFilesInner - $(foreach i,2 3 4 5 6, $(if $(strip $($i)),$1_$(strip $($i)))$(NEWLINE)) - $(call LogSetupMacroEntry,SetupCopyFiles($1),$2,$3,$4,$5,$6) - $(if $(7),$(error Internal makefile error: Too many arguments to SetupCopyFiles, please update MakeBase.gmk)) +SetupCopyFiles = $(NamedParamsMacroTemplate) +define SetupCopyFilesBody ifeq ($$($1_MACRO), ) $1_MACRO := install-file diff -r d0dfb41e40de -r 5d1b73337681 make/common/NativeCompilation.gmk --- a/make/common/NativeCompilation.gmk Thu Mar 12 13:35:02 2015 -0700 +++ b/make/common/NativeCompilation.gmk Thu Mar 12 21:12:51 2015 -0700 @@ -194,15 +194,9 @@ # CC the compiler to use, default is $(CC) # LDEXE the linker to use for linking executables, default is $(LDEXE) # OPTIMIZATION sets optimization level to NONE, LOW, HIGH, HIGHEST -define SetupNativeCompilation - $(if $(27),$(error Internal makefile error: Too many arguments to SetupNativeCompilation, please update NativeCompilation.gmk)) - $(call EvalDebugWrapper,$(strip $1),$(call SetupNativeCompilationInner,$(strip $1),$2,$3,$4,$5,$6,$7,$8,$9,$(10),$(11),$(12),$(13),$(14),$(15),$(16),$(17),$(18),$(19),$(20),$(21),$(22),$(23),$(24),$(25),$(26))) -endef - -define SetupNativeCompilationInner - $(foreach i,2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26, $(if $(strip $($i)),$1_$(strip $($i)))$(NEWLINE)) - $(call LogSetupMacroEntry,SetupNativeCompilation($1),$2,$3,$4,$5,$6,$7,$8,$9,$(10),$(11),$(12),$(13),$(14),$(15),$(16),$(17),$(18),$(19),$(20),$(21),$(22),$(23),$(24),$(25),$(26)) - $(if $(27),$(error Internal makefile error: Too many arguments to SetupNativeCompilation, please update NativeCompilation.gmk)) +# DISABLED_WARNINGS_ Disable the given warnings for the specified toolchain +SetupNativeCompilation = $(NamedParamsMacroTemplate) +define SetupNativeCompilationBody ifneq (,$$($1_BIN)) $$(error BIN has been replaced with OBJECT_DIR) @@ -398,6 +392,12 @@ $1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_$(OPENJDK_TARGET_OS)_release) endif + # Pick up disabled warnings, if possible on this platform. + ifneq ($(DISABLE_WARNING_PREFIX),) + $1_EXTRA_CFLAGS += $$(addprefix $(DISABLE_WARNING_PREFIX), $$($1_DISABLED_WARNINGS_$(TOOLCHAIN_TYPE))) + $1_EXTRA_CXXFLAGS += $$(addprefix $(DISABLE_WARNING_PREFIX), $$($1_DISABLED_WARNINGS_$(TOOLCHAIN_TYPE))) + endif + ifeq ($$($1_DEBUG_SYMBOLS), true) ifeq ($(ENABLE_DEBUG_SYMBOLS), true) ifdef OPENJDK diff -r d0dfb41e40de -r 5d1b73337681 make/common/RMICompilation.gmk --- a/make/common/RMICompilation.gmk Thu Mar 12 13:35:02 2015 -0700 +++ b/make/common/RMICompilation.gmk Thu Mar 12 21:12:51 2015 -0700 @@ -37,15 +37,8 @@ # RUN_IIOP:=Set to run rmic with -iiop # RUN_IIOP_STDPKG:=Set to run rmic with -iiop -standardPackage # KEEP_GENERATED:=Set to keep generated sources around -define SetupRMICompilation - $(if $(16),$(error Internal makefile error: Too many arguments to SetupRMICompilation, please update RMICompilation.gmk)) - $(call EvalDebugWrapper,$(strip $1),$(call SetupRMICompilationInner,$(strip $1),$2,$3,$4,$5,$6,$7,$8,$9,$(10),$(11),$(12),$(13),$(14),$(15))) -endef - -define SetupRMICompilationInner - $(foreach i,2 3 4 5 6 7 8 9 10 11 12 13 14 15, $(if $(strip $($i)),$1_$(strip $($i)))$(NEWLINE)) - $(call LogSetupMacroEntry,SetupRMICompilation($1),$2,$3,$4,$5,$6,$7,$8,$9,$(10),$(11),$(12),$(13),$(14),$(15)) - $(if $(16),$(error Internal makefile error: Too many arguments to SetupRMICompilation, please update RMICompilation.gmk)) +SetupRMICompilation = $(NamedParamsMacroTemplate) +define SetupRMICompilationBody $1_DEP_FILE := $$($1_STUB_CLASSES_DIR)/_the.$1_rmic.generated diff -r d0dfb41e40de -r 5d1b73337681 make/common/TestFilesCompilation.gmk --- a/make/common/TestFilesCompilation.gmk Thu Mar 12 13:35:02 2015 -0700 +++ b/make/common/TestFilesCompilation.gmk Thu Mar 12 21:12:51 2015 -0700 @@ -46,15 +46,8 @@ # TYPE Must be either PROGRAM or LIBRARY. # SOURCE_DIRS A list of source directories to search # OUTPUT_DIR Where to put the resulting files -define SetupTestFilesCompilation - $(if $(27),$(error Internal makefile error: Too many arguments to SetupTestFilesCompilation, please update BuildJTRegNative.gmk)) - $(call EvalDebugWrapper,$(strip $1),$(call SetupTestFilesCompilationInner,$(strip $1),$2,$3,$4,$5,$6,$7,$8,$9,$(10),$(11),$(12),$(13),$(14),$(15),$(16),$(17),$(18),$(19),$(20),$(21),$(22),$(23),$(24),$(25),$(26))) -endef - -define SetupTestFilesCompilationInner - $(foreach i,2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26, $(if $(strip $($i)),$1_$(strip $($i)))$(NEWLINE)) - $(call LogSetupMacroEntry,SetupTestFileCompilation($1),$2,$3,$4,$5,$6,$7,$8,$9,$(10),$(11),$(12),$(13),$(14),$(15),$(16),$(17),$(18),$(19),$(20),$(21),$(22),$(23),$(24),$(25),$(26)) - $(if $(27),$(error Internal makefile error: Too many arguments to SetupTestFilesCompilation, please update BuildJTRegNative.gmk)) +SetupTestFilesCompilation = $(NamedParamsMacroTemplate) +define SetupTestFilesCompilationBody # Check for duplicate base file names. That would have failed later anyhow, but # this gives a better error message. @@ -68,13 +61,13 @@ ifeq ($$($1_TYPE), LIBRARY) $1_PREFIX = lib $1_OUTPUT_SUBDIR := lib - $1_CFLAGS := $(CFLAGS_JDKLIB) $(CFLAGS_WARNINGS_ARE_ERRORS) - $1_LDFLAGS := $(LDFLAGS_JDKLIB) $(call SET_SHARED_LIBRARY_ORIGIN) + $1_CFLAGS := $(CFLAGS_TESTLIB) $(CFLAGS_WARNINGS_ARE_ERRORS) + $1_LDFLAGS := $(LDFLAGS_TESTLIB) $(call SET_SHARED_LIBRARY_ORIGIN) else ifeq ($$($1_TYPE), PROGRAM) $1_PREFIX = exe $1_OUTPUT_SUBDIR := bin - $1_CFLAGS := $(CFLAGS_JDKEXE) $(CFLAGS_WARNINGS_ARE_ERRORS) - $1_LDFLAGS := $(LDFLAGS_JDKEXE) + $1_CFLAGS := $(CFLAGS_TESTEXE) $(CFLAGS_WARNINGS_ARE_ERRORS) + $1_LDFLAGS := $(LDFLAGS_TESTEXE) else $$(error Unknown type: $$($1_TYPE)) endif diff -r d0dfb41e40de -r 5d1b73337681 make/common/TextFileProcessing.gmk --- a/make/common/TextFileProcessing.gmk Thu Mar 12 13:35:02 2015 -0700 +++ b/make/common/TextFileProcessing.gmk Thu Mar 12 21:12:51 2015 -0700 @@ -77,15 +77,8 @@ # processed first, and replacements will be done on the included fragments as well. # If neither is present, the files will just be copied without modifications. # -define SetupTextFileProcessing - $(if $(16),$(error Internal makefile error: Too many arguments to SetupTextFileProcessing, please update TextFileProcessing.gmk)) - $(call EvalDebugWrapper,$(strip $1),$(call SetupTextFileProcessingInner,$(strip $1),$2,$3,$4,$5,$6,$7,$8,$9,$(10),$(11),$(12),$(13),$(14),$(15))) -endef - -define SetupTextFileProcessingInner - $(foreach i,2 3 4 5 6 7 8 9 10 11 12 13 14 15, $(if $(strip $($i)),$1_$(strip $($i)))$(NEWLINE)) - $(call LogSetupMacroEntry,SetupTextFileProcessing($1),$2,$3,$4,$5,$6,$7,$8,$9,$(10),$(11),$(12),$(13),$(14),$(15)) - $(if $(16),$(error Internal makefile error: Too many arguments to SetupTextFileProcessing, please update TextFileProcessing.gmk)) +SetupTextFileProcessing = $(NamedParamsMacroTemplate) +define SetupTextFileProcessingBody ifneq ($$($1_SOURCE_FILES),) ifneq ($$($1_SOURCE_DIRS),) diff -r d0dfb41e40de -r 5d1b73337681 make/common/ZipArchive.gmk --- a/make/common/ZipArchive.gmk Thu Mar 12 13:35:02 2015 -0700 +++ b/make/common/ZipArchive.gmk Thu Mar 12 21:12:51 2015 -0700 @@ -45,15 +45,8 @@ # SUFFIXES # EXTRA_DEPS # ZIP_OPTIONS extra options to pass to zip -define SetupZipArchive - $(if $(16),$(error Internal makefile error: Too many arguments to SetupZipArchive, please update ZipArchive.gmk)) - $(call EvalDebugWrapper,$(strip $1),$(call SetupZipArchiveInner,$(strip $1),$2,$3,$4,$5,$6,$7,$8,$9,$(10),$(11),$(12),$(13),$(14),$(15))) -endef - -define SetupZipArchiveInner - $(foreach i,2 3 4 5 6 7 8 9 10 11 12 13 14 15, $(if $(strip $($i)),$1_$(strip $($i)))$(NEWLINE)) - $(call LogSetupMacroEntry,SetupZipArchive($1),$2,$3,$4,$5,$6,$7,$8,$9,$(10),$(11),$(12),$(13),$(14),$(15)) - $(if $(16),$(error Internal makefile error: Too many arguments to SetupZipArchive, please update JavaCompilation.gmk)) +SetupZipArchive = $(NamedParamsMacroTemplate) +define SetupZipArchiveBody # To avoid running find over too large sets of files, which causes make to crash # on some configurations (cygwin), use INCLUDES and INCLUDE_FILES to build a set diff -r d0dfb41e40de -r 5d1b73337681 modules.xml --- a/modules.xml Thu Mar 12 13:35:02 2015 -0700 +++ b/modules.xml Thu Mar 12 21:12:51 2015 -0700 @@ -254,10 +254,10 @@ java.sql jdk.charsets jdk.deploy.osx - jdk.dev + jdk.jartool jdk.jconsole jdk.jvmstat - jdk.runtime + jdk.pack200 jdk.security.auth jdk.security.jgss @@ -279,7 +279,7 @@ sun.net.www java.desktop jdk.compiler - jdk.dev + jdk.jartool sun.net.www.protocol.http @@ -353,14 +353,15 @@ sun.security.pkcs jdk.crypto.ec jdk.deploy.osx - jdk.dev + jdk.jartool sun.security.provider java.rmi java.security.jgss jdk.crypto.pkcs11 - jdk.dev + jdk.jartool + jdk.policytool jdk.security.auth @@ -378,7 +379,7 @@ sun.security.tools - jdk.dev + jdk.jartool sun.security.util @@ -392,7 +393,8 @@ jdk.crypto.pkcs11 jdk.crypto.ucrypto jdk.deploy.osx - jdk.dev + jdk.jartool + jdk.policytool jdk.security.auth @@ -401,7 +403,7 @@ jdk.crypto.ec jdk.crypto.pkcs11 jdk.deploy.osx - jdk.dev + jdk.jartool jdk.security.auth @@ -1591,16 +1593,8 @@ jdk.dev java.base - java.scripting java.xml - java.desktop jdk.compiler - jdk.rmic - jdk.xml.bind - jdk.xml.ws - - com.sun.jarsigner - jdk.hotspot.agent @@ -1627,6 +1621,13 @@ + jdk.jartool + java.base + + com.sun.jarsigner + + + jdk.javadoc java.base java.compiler @@ -1720,6 +1721,15 @@ java.rmi + jdk.pack200 + java.base + + + jdk.policytool + java.base + java.desktop + + jdk.rmic java.base java.corba @@ -1727,10 +1737,6 @@ jdk.javadoc - jdk.runtime - java.base - - jdk.scripting.nashorn java.base java.logging diff -r d0dfb41e40de -r 5d1b73337681 test/lib/sun/hotspot/code/BlobType.java --- a/test/lib/sun/hotspot/code/BlobType.java Thu Mar 12 13:35:02 2015 -0700 +++ b/test/lib/sun/hotspot/code/BlobType.java Thu Mar 12 21:12:51 2015 -0700 @@ -32,15 +32,28 @@ public enum BlobType { // Execution level 1 and 4 (non-profiled) nmethods (including native nmethods) - MethodNonProfiled(0, "CodeHeap 'non-profiled nmethods'", "NonProfiledCodeHeapSize"), + MethodNonProfiled(0, "CodeHeap 'non-profiled nmethods'", "NonProfiledCodeHeapSize") { + @Override + public boolean allowTypeWhenOverflow(BlobType type) { + return super.allowTypeWhenOverflow(type) + || type == BlobType.MethodProfiled; + } + }, // Execution level 2 and 3 (profiled) nmethods - MethodProfiled(1, "CodeHeap 'profiled nmethods'", "ProfiledCodeHeapSize"), + MethodProfiled(1, "CodeHeap 'profiled nmethods'", "ProfiledCodeHeapSize") { + @Override + public boolean allowTypeWhenOverflow(BlobType type) { + return super.allowTypeWhenOverflow(type) + || type == BlobType.MethodNonProfiled; + } + }, // Non-nmethods like Buffers, Adapters and Runtime Stubs NonNMethod(2, "CodeHeap 'non-nmethods'", "NonNMethodCodeHeapSize") { @Override public boolean allowTypeWhenOverflow(BlobType type) { return super.allowTypeWhenOverflow(type) - || type == BlobType.MethodNonProfiled; + || type == BlobType.MethodNonProfiled + || type == BlobType.MethodProfiled; } }, // All types (No code cache segmentation) diff -r d0dfb41e40de -r 5d1b73337681 test/make/TestJavaCompilation.gmk --- a/test/make/TestJavaCompilation.gmk Thu Mar 12 13:35:02 2015 -0700 +++ b/test/make/TestJavaCompilation.gmk Thu Mar 12 21:12:51 2015 -0700 @@ -67,7 +67,7 @@ $(TOUCH) $@ $(eval $(call SetupArchive,BUILD_JAR1, \ - $(OUTPUT_DIR)/_jar1_created, \ + DEPENDENCIES := $(OUTPUT_DIR)/_jar1_created, \ SRCS := $(JAR1_SRC_ROOT), \ MANIFEST := $(JAR1_MANIFEST), \ JAR := $(JAR1_FILE))) @@ -143,7 +143,7 @@ $(TOUCH) $@ $(eval $(call SetupArchive,BUILD_JAR2, \ - $(OUTPUT_DIR)/_jar2_created, \ + DEPENDENCIES := $(OUTPUT_DIR)/_jar2_created, \ SRCS := $(JAR2_SRC_ROOT1) $(JAR2_SRC_ROOT2), \ JAR := $(JAR2_FILE))) @@ -196,7 +196,7 @@ $(TOUCH) $@ $(eval $(call SetupArchive,BUILD_JAR3, \ - $(OUTPUT_DIR)/_jar3_created, \ + DEPENDENCIES := $(OUTPUT_DIR)/_jar3_created, \ SRCS := $(JAR3_SRC_ROOT1) $(JAR3_SRC_ROOT2), \ EXTRA_FILES := extra-file \ dir2/file$$$$foo.dollar \ diff -r d0dfb41e40de -r 5d1b73337681 test/make/TestMakeBase.gmk --- a/test/make/TestMakeBase.gmk Thu Mar 12 13:35:02 2015 -0700 +++ b/test/make/TestMakeBase.gmk Thu Mar 12 21:12:51 2015 -0700 @@ -182,5 +182,23 @@ TEST_TARGETS += test-vardep ################################################################################ +# Test sequence + +ifneq ($(call sequence, 1, 1), 1) + $(error Sequence 1, 1 should be "1", but was $(call sequence, 1, 1)) +endif + +ifneq ($(call sequence, 2, 3), 2 3) + $(error Sequence 2, 3 should be "2 3", but was $(call sequence, 2, 3)) +endif + +ifneq ($(call sequence, 4, 9), 4 5 6 7 8 9) + $(error Sequence 4, 9 should be "4 5 6 7 8 9", but was $(call sequence, 4, 9)) +endif + +ifneq ($(call sequence, 5, 15), 5 6 7 8 9 10 11 12 13 14 15) + $(error Sequence 5, 15 should be "5 6 7 8 9 10 11 12 13 14 15", \ + but was $(call sequence, 5, 15)) +endif all: $(TEST_TARGETS)