# HG changeset patch # User asaha # Date 1414195491 25200 # Node ID a676d2d8af0dfa041d7448ab0f6af37b1bd92db6 # Parent 27436b4228863bfb9ebd8d07e4c181ee84624f78# Parent d44f0c527426a559f024ca316f5dfd3bdbe98a06 Merge diff -r 27436b422886 -r a676d2d8af0d .hgtags --- a/.hgtags Mon Oct 20 23:00:27 2014 -0700 +++ b/.hgtags Fri Oct 24 17:04:51 2014 -0700 @@ -342,4 +342,16 @@ 886ace09d0934d5410572764685f13119d523823 jdk8u31-b03 e2d32fe85fb93ce5179c25f5bfd49750a85c9342 jdk8u31-b04 97de4d73edf1435c9b87d765d2ad91bb16c8d913 jdk8u31-b05 +0dccc4aca1859b1ff7dca9db214f7f38c4ddbbce jdk8u40-b00 +f8736a40a35df0c8055c8a94b96e5381b381ad33 jdk8u40-b01 +b6a148730f2b14193c308bc9c866c36ee6c08ed3 jdk8u40-b02 +a0224ac4135108efdbcf316c7c4b02f8a93c35fe jdk8u40-b03 +e9473185d77a9278e47fc916a255c4905aa74d98 jdk8u40-b04 +7e286a0c90fb26766b91e3a19467848f39d1f973 jdk8u40-b05 +8881a63f7f00a4a5611800db7715aecc8f6b3601 jdk8u40-b06 +cf9afcfcb7a41b892fc896c1dbf245d5dcc42395 jdk8u40-b07 +515a912fb5a9a61774fa2afa10f4472589be5602 jdk8u40-b08 +0958d0a9f44efcebe30b17b07240abaa42a2112b jdk8u40-b09 +1053aeab6b12d5cd4e063bf9ee37f20811450084 jdk8u40-b10 +2ffefbac794be27e0c60d7e5f2cb598f04ec2411 jdk8u40-b11 ec4bcc6e4dcf190a165106627ed3eef1e7d94d0c jdk8u45-b00 diff -r 27436b422886 -r a676d2d8af0d Makefile --- a/Makefile Mon Oct 20 23:00:27 2014 -0700 +++ b/Makefile Fri Oct 24 17:04:51 2014 -0700 @@ -66,7 +66,7 @@ # First, find out the valid targets # Run the makefile with an arbitrary SPEC using -p -q (quiet dry-run and dump rules) to find # available PHONY targets. Use this list as valid targets to pass on to the repeated calls. - all_phony_targets=$(filter-out $(global_targets) bundles bundles-only final-images-only, $(strip $(shell \ + all_phony_targets=$(filter-out $(global_targets), $(strip $(shell \ cd $(root_dir) && $(MAKE) -p -q FRC SPEC=$(firstword $(SPEC)) | \ grep ^.PHONY: | head -n 1 | cut -d " " -f 2-))) @@ -79,10 +79,6 @@ endif endif -# Include this after a potential spec file has been included so that the bundles target -# has access to the spec variables. -include $(root_dir)/make/Jprt.gmk - # Here are "global" targets, i.e. targets that can be executed without specifying a single configuration. # If you addd more global targets, please update the variable global_targets in MakeHelpers. diff -r 27436b422886 -r a676d2d8af0d common/autoconf/generated-configure.sh --- a/common/autoconf/generated-configure.sh Mon Oct 20 23:00:27 2014 -0700 +++ b/common/autoconf/generated-configure.sh Fri Oct 24 17:04:51 2014 -0700 @@ -3868,7 +3868,7 @@ #CUSTOM_AUTOCONF_INCLUDE # Do not change or remove the following line, it is needed for consistency checks: -DATE_WHEN_GENERATED=1410971760 +DATE_WHEN_GENERATED=1411155242 ############################################################################### # @@ -7926,7 +7926,7 @@ fi # Replace the commas with AND for use in the build directory name. - ANDED_JVM_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/^,//' -e 's/,$//' -e 's/,/AND/'` + ANDED_JVM_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/^,//' -e 's/,$//' -e 's/,/AND/g'` COUNT_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/server,/1/' -e 's/client,/1/' -e 's/minimal1,/1/' -e 's/kernel,/1/' -e 's/zero,/1/' -e 's/zeroshark,/1/' -e 's/core,/1/'` if test "x$COUNT_VARIANTS" != "x,1"; then BUILDING_MULTIPLE_JVM_VARIANTS=yes diff -r 27436b422886 -r a676d2d8af0d common/autoconf/jdk-options.m4 --- a/common/autoconf/jdk-options.m4 Mon Oct 20 23:00:27 2014 -0700 +++ b/common/autoconf/jdk-options.m4 Fri Oct 24 17:04:51 2014 -0700 @@ -134,7 +134,7 @@ fi # Replace the commas with AND for use in the build directory name. - ANDED_JVM_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/^,//' -e 's/,$//' -e 's/,/AND/'` + ANDED_JVM_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/^,//' -e 's/,$//' -e 's/,/AND/g'` COUNT_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/server,/1/' -e 's/client,/1/' -e 's/minimal1,/1/' -e 's/kernel,/1/' -e 's/zero,/1/' -e 's/zeroshark,/1/' -e 's/core,/1/'` if test "x$COUNT_VARIANTS" != "x,1"; then BUILDING_MULTIPLE_JVM_VARIANTS=yes diff -r 27436b422886 -r a676d2d8af0d common/bin/hgforest.sh --- a/common/bin/hgforest.sh Mon Oct 20 23:00:27 2014 -0700 +++ b/common/bin/hgforest.sh Fri Oct 24 17:04:51 2014 -0700 @@ -1,7 +1,6 @@ #!/bin/sh - # -# Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2009, 2014, 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 @@ -23,165 +22,375 @@ # questions. # -# Shell script for a fast parallel forest command -command="$1" -pull_extra_base="$2" +# Shell script for a fast parallel forest/trees command -if [ "" = "$command" ] ; then - echo No command to hg supplied! - exit 1 +usage() { + echo "usage: $0 [-h|--help] [-q|--quiet] [-v|--verbose] [-s|--sequential] [--] [commands...]" > ${status_output} + 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" + echo " HGFOREST_SEQUENTIAL : (boolean) If 'true' then repos are processed sequentially. Disables concurrency" + echo " HGFOREST_GLOBALOPTS : (string, must begin with space) Additional Mercurial global options" + echo " HGFOREST_REDIRECT : (file path) Redirect standard output to specified file" + echo " HGFOREST_FIFOS : (boolean) Default behaviour for FIFO detection. Does not override FIFOs disabled" + echo " HGFOREST_CONCURRENCY: (positive integer) Number of repos to process concurrently" + echo " HGFOREST_DEBUG : (boolean) If 'true' then temp files are retained" + exit 1 +} + +global_opts="${HGFOREST_GLOBALOPTS:-}" +status_output="${HGFOREST_REDIRECT:-/dev/stdout}" +qflag="${HGFOREST_QUIET:-false}" +vflag="${HGFOREST_VERBOSE:-false}" +sflag="${HGFOREST_SEQUENTIAL:-false}" +while [ $# -gt 0 ] +do + case $1 in + -h | --help ) + usage + ;; + + -q | --quiet ) + qflag="true" + ;; + + -v | --verbose ) + vflag="true" + ;; + + -s | --sequential ) + sflag="true" + ;; + + '--' ) # no more options + shift; break + ;; + + -*) # bad option + usage + ;; + + * ) # non option + break + ;; + esac + shift +done + +# silence standard output? +if [ ${qflag} = "true" ] ; then + global_opts="${global_opts} -q" + status_output="/dev/null" fi +# verbose output? +if [ ${vflag} = "true" ] ; then + global_opts="${global_opts} -v" +fi + +# Make sure we have a command. +if [ $# -lt 1 -o -z "${1:-}" ] ; then + echo "ERROR: No command to hg supplied!" + usage +fi + +command="$1"; shift +command_args="${@:-}" + # Clean out the temporary directory that stores the pid files. tmp=/tmp/forest.$$ rm -f -r ${tmp} mkdir -p ${tmp} + +if [ "${HGFOREST_DEBUG:-false}" = "true" ] ; then + echo "DEBUG: temp files are in: ${tmp}" +fi + +# Check if we can use fifos for monitoring sub-process completion. +echo "1" > ${tmp}/read +while_subshell=1 +while read line; do + while_subshell=0 + break; +done < ${tmp}/read +rm ${tmp}/read + +on_windows=`uname -s | egrep -ic -e 'cygwin|msys'` + +if [ ${while_subshell} = "1" -o ${on_windows} = "1" ]; then + # cygwin has (2014-04-18) broken (single writer only) FIFOs + # msys has (2014-04-18) no FIFOs. + # older shells create a sub-shell for redirect to while + have_fifos="false" +else + have_fifos="${HGFOREST_FIFOS:-true}" +fi + safe_interrupt () { if [ -d ${tmp} ]; then if [ "`ls ${tmp}/*.pid`" != "" ]; then - echo "Waiting for processes ( `cat ${tmp}/*.pid | tr '\n' ' '`) to terminate nicely!" + echo "Waiting for processes ( `cat ${tmp}/.*.pid ${tmp}/*.pid 2> /dev/null | tr '\n' ' '`) to terminate nicely!" > ${status_output} sleep 1 # Pipe stderr to dev/null to silence kill, that complains when trying to kill # a subprocess that has already exited. kill -TERM `cat ${tmp}/*.pid | tr '\n' ' '` 2> /dev/null wait - echo Interrupt complete! + echo "Interrupt complete!" > ${status_output} fi + rm -f -r ${tmp} fi - rm -f -r ${tmp} - exit 1 + exit 130 } nice_exit () { if [ -d ${tmp} ]; then - if [ "`ls ${tmp}`" != "" ]; then + if [ "`ls -A ${tmp} 2> /dev/null`" != "" ]; then wait fi + if [ "${HGFOREST_DEBUG:-false}" != "true" ] ; then + rm -f -r ${tmp} + fi fi - rm -f -r ${tmp} } trap 'safe_interrupt' INT QUIT trap 'nice_exit' EXIT +subrepos="corba jaxp jaxws langtools jdk hotspot nashorn" +subrepos_extra="jdk/src/closed jdk/make/closed jdk/test/closed hotspot/make/closed hotspot/src/closed hotspot/test/closed deploy install sponsors pubs" + # Only look in specific locations for possible forests (avoids long searches) pull_default="" repos="" repos_extra="" -if [ "${command}" = "clone" -o "${command}" = "fclone" ] ; then - subrepos="corba jaxp jaxws langtools jdk hotspot nashorn" - if [ -f .hg/hgrc ] ; then - pull_default=`hg paths default` - if [ "${pull_default}" = "" ] ; then - echo "ERROR: Need initial clone with 'hg paths default' defined" - exit 1 - fi - fi - if [ "${pull_default}" = "" ] ; then - echo "ERROR: Need initial repository to use this script" +if [ "${command}" = "clone" -o "${command}" = "fclone" -o "${command}" = "tclone" ] ; then + # we must be a clone + if [ ! -f .hg/hgrc ] ; then + echo "ERROR: Need initial repository to use this script" > ${status_output} exit 1 fi + + # the clone must know where it came from (have a default pull path). + pull_default=`hg paths default` + if [ "${pull_default}" = "" ] ; then + echo "ERROR: Need initial clone with 'hg paths default' defined" > ${status_output} + exit 1 + fi + + # determine which sub repos need to be cloned. for i in ${subrepos} ; do if [ ! -f ${i}/.hg/hgrc ] ; then repos="${repos} ${i}" fi done - if [ "${pull_extra_base}" != "" ] ; then - subrepos_extra="jdk/src/closed jdk/make/closed jdk/test/closed hotspot/make/closed hotspot/src/closed hotspot/test/closed deploy install sponsors pubs" - pull_default_tail=`echo ${pull_default} | sed -e 's@^.*://[^/]*/\(.*\)@\1@'` - pull_extra="${pull_extra_base}/${pull_default_tail}" + + pull_default_tail=`echo ${pull_default} | sed -e 's@^.*://[^/]*/\(.*\)@\1@'` + + if [ -n "${command_args}" ] ; then + # 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} + exit 1 + fi + pull_extra="${command_args}/${pull_default_tail}" + + # determine which extra subrepos need to be cloned. for i in ${subrepos_extra} ; do if [ ! -f ${i}/.hg/hgrc ] ; then repos_extra="${repos_extra} ${i}" fi done + else + if [ "x${pull_default}" = "x${pull_default_tail}" ] ; then + # local source repo. Clone the "extra" subrepos that exist there. + for i in ${subrepos_extra} ; do + if [ -f ${pull_default}/${i}/.hg/hgrc -a ! -f ${i}/.hg/hgrc ] ; then + # sub-repo there in source but not here + repos_extra="${repos_extra} ${i}" + fi + done + fi fi - at_a_time=2 + # Any repos to deal with? if [ "${repos}" = "" -a "${repos_extra}" = "" ] ; then + echo "No repositories to process." > ${status_output} exit fi + + # Repos to process concurrently. Clone does better with low concurrency. + at_a_time="${HGFOREST_CONCURRENCY:-2}" else - hgdirs=`ls -d ./.hg ./*/.hg ./*/*/.hg ./*/*/*/.hg ./*/*/*/*/.hg 2>/dev/null` - # Derive repository names from the .hg directory locations - for i in ${hgdirs} ; do - repos="${repos} `echo ${i} | sed -e 's@/.hg$@@'`" + # Process command for all of the present repos + for i in . ${subrepos} ${subrepos_extra} ; do + if [ -d ${i}/.hg ] ; then + repos="${repos} ${i}" + fi done + + # Any repos to deal with? + if [ "${repos}" = "" ] ; then + echo "No repositories to process." > ${status_output} + exit + fi + + # any of the repos locked? + locked="" for i in ${repos} ; do if [ -h ${i}/.hg/store/lock -o -f ${i}/.hg/store/lock ] ; then locked="${i} ${locked}" fi done - at_a_time=8 - # Any repos to deal with? - if [ "${repos}" = "" ] ; then - echo "No repositories to process." - exit + if [ "${locked}" != "" ] ; then + echo "ERROR: These repositories are locked: ${locked}" > ${status_output} + exit 1 fi - if [ "${locked}" != "" ] ; then - echo "These repositories are locked: ${locked}" - exit - fi + + # Repos to process concurrently. + at_a_time="${HGFOREST_CONCURRENCY:-8}" fi # Echo out what repositories we do a command on. -echo "# Repositories: ${repos} ${repos_extra}" -echo +echo "# Repositories: ${repos} ${repos_extra}" > ${status_output} -# Run the supplied command on all repos in parallel. -n=0 -for i in ${repos} ${repos_extra} ; do - n=`expr ${n} '+' 1` - repopidfile=`echo ${i} | sed -e 's@./@@' -e 's@/@_@g'` - reponame=`echo ${i} | sed -e :a -e 's/^.\{1,20\}$/ &/;ta'` - pull_base="${pull_default}" - for j in $repos_extra ; do - if [ "$i" = "$j" ] ; then - pull_base="${pull_extra}" - fi - done +if [ "${command}" = "serve" ] ; then + # "serve" is run for all the repos as one command. ( ( - if [ "${command}" = "clone" -o "${command}" = "fclone" ] ; then - pull_newrepo="`echo ${pull_base}/${i} | sed -e 's@\([^:]/\)//*@\1@g'`" - echo hg clone ${pull_newrepo} ${i} - path="`dirname ${i}`" - if [ "${path}" != "." ] ; then - times=0 - while [ ! -d "${path}" ] ## nested repo, ensure containing dir exists - do - times=`expr ${times} '+' 1` - if [ `expr ${times} '%' 10` -eq 0 ] ; then - echo ${path} still not created, waiting... + cwd=`pwd` + serving=`basename ${cwd}` + ( + echo "[web]" + echo "description = ${serving}" + echo "allow_push = *" + echo "push_ssl = False" + + echo "[paths]" + for i in ${repos} ; do + if [ "${i}" != "." ] ; then + echo "/${serving}/${i} = ${i}" + else + echo "/${serving} = ${cwd}" + fi + done + ) > ${tmp}/serve.web-conf + + echo "serving root repo ${serving}" > ${status_output} + + echo "hg${global_opts} serve" > ${status_output} + (PYTHONUNBUFFERED=true hg${global_opts} serve -A ${status_output} -E ${status_output} --pid-file ${tmp}/serve.pid --web-conf ${tmp}/serve.web-conf; echo "$?" > ${tmp}/serve.pid.rc ) 2>&1 & + ) 2>&1 | sed -e "s@^@serve: @" > ${status_output} + ) & +else + # Run the supplied command on all repos in parallel. + + # n is the number of subprocess started or which might still be running. + n=0 + if [ ${have_fifos} = "true" ]; then + # if we have fifos use them to detect command completion. + mkfifo ${tmp}/fifo + exec 3<>${tmp}/fifo + fi + + # iterate over all of the subrepos. + for i in ${repos} ${repos_extra} ; do + n=`expr ${n} '+' 1` + repopidfile=`echo ${i} | sed -e 's@./@@' -e 's@/@_@g'` + reponame=`echo ${i} | sed -e :a -e 's/^.\{1,20\}$/ &/;ta'` + pull_base="${pull_default}" + + # regular repo or "extra" repo? + for j in ${repos_extra} ; do + if [ "${i}" = "${j}" ] ; then + # it's an "extra" + pull_base="${pull_extra}" + fi + done + + # remove trailing slash + pull_base="`echo ${pull_base} | sed -e 's@[/]*$@@'`" + + # execute the command on the subrepo + ( + ( + if [ "${command}" = "clone" -o "${command}" = "fclone" -o "${command}" = "tclone" ] ; then + # some form of clone + clone_newrepo="${pull_base}/${i}" + parent_path="`dirname ${i}`" + if [ "${parent_path}" != "." ] ; then + times=0 + while [ ! -d "${parent_path}" ] ; do ## nested repo, ensure containing dir exists + if [ "${sflag}" = "true" ] ; then + # Missing parent is fatal during sequential operation. + echo "ERROR: Missing parent path: ${parent_path}" > ${status_output} + exit 1 + fi + times=`expr ${times} '+' 1` + if [ `expr ${times} '%' 10` -eq 0 ] ; then + echo "${parent_path} still not created, waiting..." > ${status_output} + fi + sleep 5 + done + fi + # run the clone command. + echo "hg${global_opts} clone ${clone_newrepo} ${i}" > ${status_output} + (PYTHONUNBUFFERED=true hg${global_opts} clone ${clone_newrepo} ${i}; echo "$?" > ${tmp}/${repopidfile}.pid.rc ) 2>&1 & + else + # run the command. + echo "cd ${i} && hg${global_opts} ${command} ${command_args}" > ${status_output} + cd ${i} && (PYTHONUNBUFFERED=true hg${global_opts} ${command} ${command_args}; echo "$?" > ${tmp}/${repopidfile}.pid.rc ) 2>&1 & + fi + + echo $! > ${tmp}/${repopidfile}.pid + ) 2>&1 | sed -e "s@^@${reponame}: @" > ${status_output} + # tell the fifo waiter that this subprocess is done. + if [ ${have_fifos} = "true" ]; then + echo "${i}" >&3 + fi + ) & + + if [ "${sflag}" = "true" ] ; then + # complete this task before starting another. + wait + else + if [ "${have_fifos}" = "true" ]; then + # check on count of running subprocesses and possibly wait for completion + if [ ${n} -ge ${at_a_time} ] ; then + # read will block until there are completed subprocesses + while read repo_done; do + n=`expr ${n} '-' 1` + if [ ${n} -lt ${at_a_time} ] ; then + # we should start more subprocesses + break; fi - sleep 5 - done + done <&3 fi - (PYTHONUNBUFFERED=true hg clone ${pull_newrepo} ${i}; echo "$?" > ${tmp}/${repopidfile}.pid.rc )& else - echo "cd ${i} && hg $*" - cd ${i} && (PYTHONUNBUFFERED=true hg "$@"; echo "$?" > ${tmp}/${repopidfile}.pid.rc )& + # Compare completions to starts + completed="`(ls -a1 ${tmp}/*.pid.rc 2> /dev/null | wc -l) || echo 0`" + while [ `expr ${n} '-' ${completed}` -ge ${at_a_time} ] ; do + # sleep a short time to give time for something to complete + sleep 1 + completed="`(ls -a1 ${tmp}/*.pid.rc 2> /dev/null | wc -l) || echo 0`" + done fi - echo $! > ${tmp}/${repopidfile}.pid - ) 2>&1 | sed -e "s@^@${reponame}: @") & + fi + done +fi - if [ `expr ${n} '%' ${at_a_time}` -eq 0 ] ; then - sleep 2 - echo Waiting 5 secs before spawning next background command. - sleep 3 - fi -done -# Wait for all hg commands to complete +# Wait for all subprocesses to complete wait # Terminate with exit 0 only if all subprocesses were successful ec=0 if [ -d ${tmp} ]; then - for rc in ${tmp}/*.pid.rc ; do + rcfiles="`(ls -a ${tmp}/*.pid.rc 2> /dev/null) || echo ''`" + for rc in ${rcfiles} ; do exit_code=`cat ${rc} | tr -d ' \n\r'` if [ "${exit_code}" != "0" ] ; then - echo "WARNING: ${rc} exited abnormally." + repo="`echo ${rc} | sed -e 's@^'${tmp}'@@' -e 's@/*\([^/]*\)\.pid\.rc$@\1@' -e 's@_@/@g'`" + echo "WARNING: ${repo} exited abnormally (${exit_code})" > ${status_output} ec=1 fi done diff -r 27436b422886 -r a676d2d8af0d get_source.sh --- a/get_source.sh Mon Oct 20 23:00:27 2014 -0700 +++ b/get_source.sh Fri Oct 24 17:04:51 2014 -0700 @@ -1,7 +1,7 @@ #!/bin/sh # -# Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2010, 2014, 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 @@ -25,9 +25,76 @@ # questions. # -# Get clones of all nested repositories -sh ./common/bin/hgforest.sh clone "$@" || exit 1 +to_stderr() { + echo "$@" >&2 +} + +error() { + to_stderr "ERROR: $1" + exit ${2:-126} +} + +warning() { + to_stderr "WARNING: $1" +} + +version_field() { + # rev is typically omitted for minor and major releases + field=`echo ${1}.0 | cut -f ${2} -d .` + if expr 1 + $field >/dev/null 2> /dev/null; then + echo $field + else + echo -1 + fi +} + +# Version check + +# required +reqdmajor=1 +reqdminor=4 +reqdrev=0 + +# requested +rqstmajor=2 +rqstminor=6 +rqstrev=3 + + +# installed +hgwhere="`command -v hg`" +if [ "x$hgwhere" = "x" ]; then + error "Could not locate Mercurial command" +fi + +hgversion="`hg --version 2> /dev/null | sed -n -e 's@^Mercurial Distributed SCM (version \([^+]*\).*)\$@\1@p'`" +if [ "x${hgversion}" = "x" ] ; then + error "Could not determine Mercurial version of $hgwhere" +fi + +hgmajor="`version_field $hgversion 1`" +hgminor="`version_field $hgversion 2`" +hgrev="`version_field $hgversion 3`" + +if [ $hgmajor -eq -1 -o $hgminor -eq -1 -o $hgrev -eq -1 ] ; then + error "Could not determine Mercurial version of $hgwhere from \"$hgversion\"" +fi + + +# Require +if [ $hgmajor -lt $reqdmajor -o \( $hgmajor -eq $reqdmajor -a $hgminor -lt $reqdminor \) -o \( $hgmajor -eq $reqdmajor -a $hgminor -eq $reqdminor -a $hgrev -lt $reqdrev \) ] ; then + error "Mercurial version $reqdmajor.$reqdminor.$reqdrev or later is required. $hgwhere is version $hgversion" +fi + + +# Request +if [ $hgmajor -lt $rqstmajor -o \( $hgmajor -eq $rqstmajor -a $hgminor -lt $rqstminor \) -o \( $hgmajor -eq $rqstmajor -a $hgminor -eq $rqstminor -a $hgrev -lt $rqstrev \) ] ; then + warning "Mercurial version $rqstmajor.$rqstminor.$rqstrev or later is recommended. $hgwhere is version $hgversion" +fi + + +# Get clones of all absent nested repositories (harmless if already exist) +sh ./common/bin/hgforest.sh clone "$@" || exit $? # Update all existing repositories to the latest sources sh ./common/bin/hgforest.sh pull -u - diff -r 27436b422886 -r a676d2d8af0d make/Jprt.gmk --- a/make/Jprt.gmk Mon Oct 20 23:00:27 2014 -0700 +++ b/make/Jprt.gmk Fri Oct 24 17:04:51 2014 -0700 @@ -23,155 +23,11 @@ # questions. # -# This file is included by the root NewerMakefile and contains targets -# and utilities needed by JPRT. +# This file is contains targets utilities needed by JPRT. -# Utilities used in this Makefile. Most of this makefile executes without -# the context of a spec file from configure. -CAT=cat -CMP=cmp -CP=cp -ECHO=echo -MKDIR=mkdir -PRINTF=printf -PWD=pwd -# Insure we have a path that looks like it came from pwd -# (This is mostly for Windows sake and drive letters) -define UnixPath # path -$(shell (cd "$1" && $(PWD))) -endef - -BUILD_DIR_ROOT:=$(root_dir)/build - -ifdef OPENJDK - OPEN_BUILD=true -else - OPEN_BUILD := $(if $(or $(wildcard $(root_dir)/jdk/src/closed), \ - $(wildcard $(root_dir)/jdk/make/closed), \ - $(wildcard $(root_dir)/jdk/test/closed), \ - $(wildcard $(root_dir)/hotspot/src/closed), \ - $(wildcard $(root_dir)/hotspot/make/closed), \ - $(wildcard $(root_dir)/hotspot/test/closed)), \ - false,true) -endif - -HOTSPOT_AVAILABLE := $(if $(wildcard $(root_dir)/hotspot),true,false) - -########################################################################### -# To help in adoption of the new configure&&make build process, a bridge -# build will use the old settings to run configure and do the build. - -# Build with the configure bridge. After running configure, restart make -# to parse the new spec file. -BRIDGE_TARGETS := all -# Add bootcycle-images target if legacy variable is set. -ifeq ($(SKIP_BOOT_CYCLE),false) - BRIDGE_TARGETS += bootcycle-images -endif -bridgeBuild: bridge2configure - @cd $(root_dir) && $(MAKE) -f Makefile $(BRIDGE_TARGETS) - -# Bridge from old Makefile ALT settings to configure options -bridge2configure: $(BUILD_DIR_ROOT)/.bridge2configureOpts - bash ./configure $(strip $(shell $(CAT) $<)) - -# Create a file with configure options created from old Makefile mechanisms. -$(BUILD_DIR_ROOT)/.bridge2configureOpts: $(BUILD_DIR_ROOT)/.bridge2configureOptsLatest - $(RM) $@ - $(CP) $< $@ - -# Use this file to only change when obvious things have changed -$(BUILD_DIR_ROOT)/.bridge2configureOptsLatest: FRC - $(RM) $@.tmp - $(MKDIR) -p $(BUILD_DIR_ROOT) - @$(ECHO) " --with-debug-level=$(if $(DEBUG_LEVEL),$(DEBUG_LEVEL),release) " >> $@.tmp - ifdef ARCH_DATA_MODEL - @$(ECHO) " --with-target-bits=$(ARCH_DATA_MODEL) " >> $@.tmp - endif - ifeq ($(ARCH_DATA_MODEL),32) - @$(ECHO) " --with-jvm-variants=client,server " >> $@.tmp - endif - ifdef ALT_PARALLEL_COMPILE_JOBS - @$(ECHO) " --with-num-cores=$(ALT_PARALLEL_COMPILE_JOBS) " >> $@.tmp - endif - ifdef ALT_BOOTDIR - @$(ECHO) " --with-boot-jdk=$(call UnixPath,$(ALT_BOOTDIR)) " >> $@.tmp - endif - ifdef ALT_CUPS_HEADERS_PATH - @$(ECHO) " --with-cups-include=$(call UnixPath,$(ALT_CUPS_HEADERS_PATH)) " >> $@.tmp - endif - ifdef ALT_FREETYPE_HEADERS_PATH - @$(ECHO) " --with-freetype=$(call UnixPath,$(ALT_FREETYPE_HEADERS_PATH)/..) " >> $@.tmp - endif - ifdef ENABLE_SJAVAC - @$(ECHO) " --enable-sjavac" >> $@.tmp - endif - ifdef JDK_UPDATE_VERSION - @$(ECHO) " --with-update-version=$(JDK_UPDATE_VERSION)" >> $@.tmp - endif - ifeq ($(HOTSPOT_AVAILABLE),false) - ifdef ALT_JDK_IMPORT_PATH - @$(ECHO) " --with-import-hotspot=$(call UnixPath,$(ALT_JDK_IMPORT_PATH)) " >> $@.tmp - endif - endif - ifeq ($(OPEN_BUILD),true) - @$(ECHO) " --enable-openjdk-only " >> $@.tmp - else -# Todo: move to closed? - ifdef ALT_MOZILLA_HEADERS_PATH - @$(ECHO) " --with-mozilla-headers=$(call UnixPath,$(ALT_MOZILLA_HEADERS_PATH)) " >> $@.tmp - endif - ifdef ALT_JUNIT_DIR - @$(ECHO) " --with-junit-dir=$(call UnixPath,$(ALT_JUNIT_DIR)) " >> $@.tmp - endif - ifdef ANT_HOME - @$(ECHO) " --with-ant-home=$(call UnixPath,$(ANT_HOME)) " >> $@.tmp - endif - ifdef ALT_JAVAFX_ZIP_DIR - @$(ECHO) " --with-javafx-zip-dir=$(call UnixPath,$(ALT_JAVAFX_ZIP_DIR)) " >> $@.tmp - endif - ifdef ALT_JMC_ZIP_DIR - @$(ECHO) " --with-jmc-zip-dir=$(call UnixPath,$(ALT_JMC_ZIP_DIR)) " >> $@.tmp - endif - ifdef ALT_WIXDIR - @$(ECHO) " --with-wix=$(call UnixPath,$(ALT_WIXDIR)) " >> $@.tmp - endif - ifdef ALT_INSTALL_LZMA_PATH - @$(ECHO) " --with-lzma-path=$(call UnixPath,$(ALT_INSTALL_LZMA_PATH)) " >> $@.tmp - endif - ifdef ALT_INSTALL_UPX_PATH - @$(ECHO) " --with-upx-path=$(call UnixPath,$(ALT_INSTALL_UPX_PATH)) " >> $@.tmp - endif - ifdef ALT_INSTALL_UPX_FILENAME - @$(ECHO) " --with-upx-filename=$(call UnixPath,$(ALT_INSTALL_UPX_FILENAME)) " >> $@.tmp - endif ifdef ALT_BSDIFF_DIR @$(ECHO) " --with-bsdiff-dir=$(call UnixPath,$(ALT_BSDIFF_DIR)) " >> $@.tmp endif - ifdef ALT_CCSS_SIGNING_DIR - @$(ECHO) " --with-ccss-signing=$(call UnixPath,$(ALT_CCSS_SIGNING_DIR)) " >> $@.tmp - endif - ifdef ALT_SLASH_JAVA - @$(ECHO) " --with-java-devtools=$(call UnixPath,$(ALT_SLASH_JAVA)/devtools) " >> $@.tmp - endif - ifdef ALT_SPARKLE_FRAMEWORK_DIR - @$(ECHO) " --with-sparkle-framework=$(call UnixPath,$(ALT_SPARKLE_FRAMEWORK_DIR)) " >> $@.tmp - endif - endif - @if [ -f $@ ] ; then \ - if ! $(CMP) $@ $@.tmp > /dev/null ; then \ - $(CP) $@.tmp $@ ; \ - fi ; \ - else \ - $(CP) $@.tmp $@ ; \ - fi - $(RM) $@.tmp - -PHONY_LIST += bridge2configure bridgeBuild - -########################################################################### -# JPRT targets - ifndef JPRT_ARCHIVE_BUNDLE JPRT_ARCHIVE_BUNDLE=/tmp/jprt_bundles/j2sdk-image.zip endif @@ -179,22 +35,9 @@ JPRT_ARCHIVE_INSTALL_BUNDLE=/tmp/jprt_bundles/product-install.zip endif -# These targets execute in a SPEC free context, before calling bridgeBuild -# to generate the SPEC. -jprt_build_product: DEBUG_LEVEL=release -jprt_build_product: BUILD_DIRNAME=*-release -jprt_build_product: jprt_build_generic - -jprt_build_fastdebug: DEBUG_LEVEL=fastdebug -jprt_build_fastdebug: BUILD_DIRNAME=*-fastdebug -jprt_build_fastdebug: jprt_build_generic - -jprt_build_debug: DEBUG_LEVEL=slowdebug -jprt_build_debug: BUILD_DIRNAME=*-debug -jprt_build_debug: jprt_build_generic - -jprt_build_generic: BRIDGE_TARGETS+=jprt_bundle -jprt_build_generic: bridgeBuild +ifeq ($(SKIP_BOOT_CYCLE), false) + jprt_bundle: bootcycle-images +endif # This target must be called in the context of a SPEC file jprt_bundle: $(JPRT_ARCHIVE_BUNDLE) @@ -241,14 +84,6 @@ @$(call TargetExit) -# Keep track of phony targets -PHONY_LIST += jprt_build_product jprt_build_fastdebug jprt_build_debug \ - jprt_build_generic bundles jprt_bundle \ - final-images final-images-only - ########################################################################### # Phony targets -.PHONY: $(PHONY_LIST) - -# Force target -FRC: +.PHONY: jprt_bundle bundles bundles-only final-images final-images-only diff -r 27436b422886 -r a676d2d8af0d make/Main.gmk --- a/make/Main.gmk Mon Oct 20 23:00:27 2014 -0700 +++ b/make/Main.gmk Fri Oct 24 17:04:51 2014 -0700 @@ -242,4 +242,6 @@ .PHONY: clean-langtools clean-corba clean-jaxp clean-jaxws clean-hotspot clean-jdk clean-nashorn clean-images clean-docs clean-test clean-overlay-images clean-bootcycle-build .PHONY: profiles profiles-only profiles-oscheck +include $(root_dir)/make/Jprt.gmk + FRC: # Force target diff -r 27436b422886 -r a676d2d8af0d make/MakeHelpers.gmk --- a/make/MakeHelpers.gmk Mon Oct 20 23:00:27 2014 -0700 +++ b/make/MakeHelpers.gmk Fri Oct 24 17:04:51 2014 -0700 @@ -50,7 +50,7 @@ # Global targets are possible to run either with or without a SPEC. The prototypical # global target is "help". -global_targets=help jprt% bridgeBuild bridge2configure +global_targets=help ############################## # Functions diff -r 27436b422886 -r a676d2d8af0d make/common/NON_CORE_PKGS.gmk --- a/make/common/NON_CORE_PKGS.gmk Mon Oct 20 23:00:27 2014 -0700 +++ b/make/common/NON_CORE_PKGS.gmk Fri Oct 24 17:04:51 2014 -0700 @@ -95,7 +95,8 @@ endif JDK_PKGS = jdk \ - jdk.net + jdk.net \ + jdk.management.cmm # non-core packages in rt.jar NON_CORE_PKGS = $(DOMAPI_PKGS) \ diff -r 27436b422886 -r a676d2d8af0d make/jprt.properties --- a/make/jprt.properties Mon Oct 20 23:00:27 2014 -0700 +++ b/make/jprt.properties Fri Oct 24 17:04:51 2014 -0700 @@ -1,5 +1,5 @@ # -# Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2006, 2014, 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 @@ -23,132 +23,463 @@ # questions. # -# Properties for jprt +############## +# +# Global settings +# # The current release name -my.jdk.update.version=25 +my.jdk.update.version=40 jprt.tools.default.release=jdk8u${my.jdk.update.version} -# Unix toolkit to use for building on windows -jprt.windows.jdk8.build.unix.toolkit=cygwin +# Check if this is the equivalent of a hotspot push job +# Interpret -testset hotspot to mean exactly that +my.is.hotspot.job.hotspot=true +my.is.hotspot.job=${my.is.hotspot.job.${jprt.test.set}} -# The different build flavors we want, we override here so we just get these 2 -jprt.build.flavors=product,fastdebug - -# Standard list of jprt build targets for this source tree -jprt.build.targets= \ - solaris_sparcv9_5.10-{product|fastdebug}, \ - solaris_x64_5.10-{product|fastdebug}, \ - linux_i586_2.6-{product|fastdebug}, \ - linux_x64_2.6-{product|fastdebug}, \ - macosx_x64_10.7-{product|fastdebug}, \ - windows_i586_6.1-{product|fastdebug}, \ - windows_x64_6.1-{product|fastdebug} - -# User can select the test set with jprt submit "-testset name" option -jprt.my.test.set=${jprt.test.set} - -# Test target list (no fastdebug & limited c2 testing) -jprt.my.test.target.set= \ - solaris_sparcv9_5.10-product-c2-TESTNAME, \ - solaris_x64_5.10-product-c2-TESTNAME, \ - linux_i586_2.6-product-{c1|c2}-TESTNAME, \ - linux_x64_2.6-product-c2-TESTNAME, \ - macosx_x64_10.7-product-c2-TESTNAME, \ - windows_i586_6.1-product-c1-TESTNAME, \ - windows_x64_6.1-product-c2-TESTNAME - -# Default vm test targets (testset=default) -jprt.vm.default.test.targets= \ - ${jprt.my.test.target.set:TESTNAME=jvm98}, \ - ${jprt.my.test.target.set:TESTNAME=scimark} - -# Default jdk test targets (testset=default) -jprt.make.rule.default.test.targets= \ - ${jprt.my.test.target.set:TESTNAME=langtools_jtreg}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_lang}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_math}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_util} - - -# Default vm test targets (testset=core) -jprt.vm.core.test.targets= - -# Core jdk test targets (testset=core) -jprt.make.rule.core.test.targets= \ - ${jprt.my.test.target.set:TESTNAME=jdk_lang}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_math}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_util}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_io}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_net}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_nio}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_security1}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_security2}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_security3}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_rmi}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_text}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_time}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_other}, \ - ${jprt.my.test.target.set:TESTNAME=core_tools} - -# Svc vm test targets (testset=svc) -jprt.vm.svc.test.targets= - -# Core jdk test targets (testset=svc) -jprt.make.rule.svc.test.targets= \ - ${jprt.my.test.target.set:TESTNAME=jdk_management}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_instrument}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_jmx}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_jdi}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_jfr}, \ - ${jprt.my.test.target.set:TESTNAME=svc_tools} - -# All vm test targets (testset=all) -jprt.vm.all.test.targets= \ - ${jprt.vm.default.test.targets}, \ - ${jprt.my.test.target.set:TESTNAME=runThese}, \ - ${jprt.my.test.target.set:TESTNAME=jbb_default} - -# All jdk test targets (testset=all) -jprt.make.rule.all.test.targets= \ - ${jprt.make.rule.core.test.targets}, \ - ${jprt.make.rule.svc.test.targets}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_awt}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_beans1}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_beans2}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_beans3}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_sound}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_swing} - -# PIT vm test targets (testset=pit) -jprt.vm.pit.test.targets= \ - ${jprt.vm.all.test.targets} - -# PIT jdk test targets (testset=pit) -jprt.make.rule.pit.test.targets= \ - ${jprt.my.test.target.set:TESTNAME=langtools_jtreg}, \ - ${jprt.make.rule.core.test.targets}, \ - ${jprt.make.rule.svc.test.targets} - -# JCK test targets in test/Makefile (no windows) -jprt.my.jck.test.target.set= \ - solaris_sparcv9_5.10-product-c2-JCK7TESTRULE, \ - solaris_x64_5.10-product-c2-JCK7TESTRULE, \ - linux_i586_2.6-product-c1-JCK7TESTRULE, \ - linux_x64_2.6-product-c2-JCK7TESTRULE - -# JCK testset targets (e.g. jprt submit -testset jck ... ) -jprt.make.rule.jck.test.targets= \ - ${jprt.my.jck.test.target.set:JCK7TESTRULE=jck7devtools}, \ - ${jprt.my.jck.test.target.set:JCK7TESTRULE=jck7runtime}, \ - ${jprt.my.jck.test.target.set:JCK7TESTRULE=jck7compiler} - -# Select list to use (allow for testset to be empty too) -jprt.make.rule..test.targets=${jprt.make.rule.default.test.targets} -jprt.make.rule.test.targets=${jprt.make.rule.${jprt.my.test.set}.test.targets} -jprt.vm..test.targets=${jprt.vm.default.test.targets} -jprt.test.targets=${jprt.vm.${jprt.my.test.set}.test.targets} +# Disable syncing the source after builds and tests are done +jprt.sync.push=${my.is.hotspot.job ? false : true} # Directories to be excluded from the source bundles jprt.bundle.exclude.src.dirs=build dist webrev +# Use configure when building +jprt.build.use.configure=true + +# Set make target to use for different build flavors +jprt.build.flavor.debugOpen.target=jprt_bundle +jprt.build.flavor.fastdebug.target=jprt_bundle +jprt.build.flavor.product.target=jprt_bundle +jprt.build.flavor.productOpen.target=jprt_bundle + +# Use these configure args to define debug level +jprt.debug.build.configure.args=--with-debug-level=slowdebug +jprt.fastdebug.build.configure.args=--with-debug-level=fastdebug +jprt.product.build.configure.args=--with-debug-level=release +jprt.debugOpen.build.configure.args=${jprt.debug.build.configure.args} --enable-openjdk-only +jprt.fastdebugOpen.build.configure.args=${jprt.fastdebug.build.configure.args} --enable-openjdk-only +jprt.productOpen.build.configure.args=${jprt.product.build.configure.args} --enable-openjdk-only + +# Select build flavors and build targets +jprt.build.flavors=${my.is.hotspot.job ? ${my.build.flavors.hotspot} : ${my.build.flavors.default}} +jprt.build.targets=${my.is.hotspot.job ? ${my.build.targets.hotspot} : ${my.build.targets.default}} + +# Select test targets - jprt default for jprt.test.set is "default" +jprt.test.targets=${my.test.targets.${jprt.test.set}} +jprt.make.rule.test.targets=${my.make.rule.test.targets.${jprt.test.set}} + +# 7155453: Work-around to prevent popups on OSX from blocking test completion +# but the work-around is added to all platforms to be consistent +jprt.jbb.options=-Djava.awt.headless=true + +######## +# +# Build options (generic) +# + +# Configure args common to all builds +# Also allows for additional, testset specific configure arguments to be set +jprt.build.configure.args= \ + --with-boot-jdk=$ALT_BOOTDIR \ + --with-jobs=$ALT_PARALLEL_COMPILE_JOBS \ + --with-update-version=${my.jdk.update.version} \ + ${my.additional.build.configure.args.${jprt.test.set}} + +# i586 is often cross-compiled from 64-bit machines, so need to set target bits explicitly +jprt.i586.build.configure.args= \ + --with-target-bits=32 + +# i586 platforms have both client and server, but to allow for overriding the exact configuration +# on a per-build flavor basis the value is set for the individual build flavors +# All other platforms only build server, which is the default setting from configure +my.i586.default.build.configure.args= \ + --with-jvm-variants=client,server +jprt.i586.debug.build.configure.args= \ + ${my.i586.default.build.configure.args} \ + ${jprt.debug.build.configure.args} +jprt.i586.fastdebug.build.configure.args= \ + ${my.i586.default.build.configure.args} \ + ${jprt.fastdebug.build.configure.args} +jprt.i586.product.build.configure.args= \ + ${my.i586.default.build.configure.args} \ + ${jprt.product.build.configure.args} +jprt.i586.debugOpen.build.configure.args= \ + ${my.i586.default.build.configure.args} \ + ${jprt.debugOpen.build.configure.args} +jprt.i586.fastdebugOpen.build.configure.args= \ + ${my.i586.default.build.configure.args} \ + ${jprt.fastdebugOpen.build.configure.args} +jprt.i586.productOpen.build.configure.args= \ + ${my.i586.default.build.configure.args} \ + ${jprt.productOpen.build.configure.args} + +######## +# +# Build targets and options (default/jdk) +# + +# The default build flavors +my.build.flavors.default=fastdebug,product + +# Standard list of jprt build targets for this source tree +my.build.targets.default= \ + solaris_sparcv9_5.10-{product|fastdebug}, \ + solaris_x64_5.10-{product|fastdebug}, \ + linux_i586_2.6-{product|fastdebug}, \ + linux_x64_2.6-{product|fastdebug}, \ + macosx_x64_10.7-{product|fastdebug}, \ + windows_i586_6.1-{product|fastdebug}, \ + windows_x64_6.1-{product|fastdebug} + +# Test target list (no fastdebug & limited c2 testing) +my.test.target.set= \ + solaris_sparcv9_5.10-product-c2-TESTNAME, \ + solaris_x64_5.10-product-c2-TESTNAME, \ + linux_i586_2.6-product-{c1|c2}-TESTNAME, \ + linux_x64_2.6-product-c2-TESTNAME, \ + macosx_x64_10.7-product-c2-TESTNAME, \ + windows_i586_6.1-product-c1-TESTNAME, \ + windows_x64_6.1-product-c2-TESTNAME + +# Default vm test targets (testset=default) +my.test.targets.default= \ + ${my.test.target.set:TESTNAME=jvm98}, \ + ${my.test.target.set:TESTNAME=scimark} + +# Default jdk test targets (testset=default) +my.make.rule.test.targets.default= \ + ${my.test.target.set:TESTNAME=langtools_jtreg}, \ + ${my.test.target.set:TESTNAME=jdk_lang}, \ + ${my.test.target.set:TESTNAME=jdk_math}, \ + ${my.test.target.set:TESTNAME=jdk_util} + +# Default vm test targets (testset=core) +my.test.targets.core= + +# Core jdk test targets (testset=core) +my.make.rule.test.targets.core= \ + ${my.test.target.set:TESTNAME=jdk_lang}, \ + ${my.test.target.set:TESTNAME=jdk_math}, \ + ${my.test.target.set:TESTNAME=jdk_util}, \ + ${my.test.target.set:TESTNAME=jdk_io}, \ + ${my.test.target.set:TESTNAME=jdk_net}, \ + ${my.test.target.set:TESTNAME=jdk_nio}, \ + ${my.test.target.set:TESTNAME=jdk_security1}, \ + ${my.test.target.set:TESTNAME=jdk_security2}, \ + ${my.test.target.set:TESTNAME=jdk_security3}, \ + ${my.test.target.set:TESTNAME=jdk_security4}, \ + ${my.test.target.set:TESTNAME=jdk_rmi}, \ + ${my.test.target.set:TESTNAME=jdk_text}, \ + ${my.test.target.set:TESTNAME=jdk_time}, \ + ${my.test.target.set:TESTNAME=jdk_other}, \ + ${my.test.target.set:TESTNAME=core_tools} + +# Svc vm test targets (testset=svc) +my.test.targets.svc= + +# Core jdk test targets (testset=svc) +my.make.rule.test.targets.svc= \ + ${my.test.target.set:TESTNAME=jdk_management}, \ + ${my.test.target.set:TESTNAME=jdk_instrument}, \ + ${my.test.target.set:TESTNAME=jdk_jmx}, \ + ${my.test.target.set:TESTNAME=jdk_jdi}, \ + ${my.test.target.set:TESTNAME=jdk_jfr}, \ + ${my.test.target.set:TESTNAME=jdk_rm}, \ + ${my.test.target.set:TESTNAME=svc_tools} + +# All vm test targets (testset=all) +my.test.targets.all= \ + ${my.test.targets.default}, \ + ${my.test.target.set:TESTNAME=runThese}, \ + ${my.test.target.set:TESTNAME=jbb_default} + +# All jdk test targets (testset=all) +my.make.rule.test.targets.all= \ + ${my.make.rule.test.targets.core}, \ + ${my.make.rule.test.targets.svc}, \ + ${my.test.target.set:TESTNAME=jdk_awt}, \ + ${my.test.target.set:TESTNAME=jdk_beans1}, \ + ${my.test.target.set:TESTNAME=jdk_beans2}, \ + ${my.test.target.set:TESTNAME=jdk_beans3}, \ + ${my.test.target.set:TESTNAME=jdk_sound}, \ + ${my.test.target.set:TESTNAME=jdk_swing} + +# PIT vm test targets (testset=pit) +my.test.targets.pit= \ + ${my.test.targets.all} + +# PIT jdk test targets (testset=pit) +my.make.rule.test.targets.pit= \ + ${my.test.target.set:TESTNAME=langtools_jtreg}, \ + ${my.make.rule.test.targets.core}, \ + ${my.make.rule.test.targets.svc} + +# JCK test targets in test/Makefile (no windows) +my.test.target.set.jck= \ + solaris_sparcv9_5.10-product-c2-JCK7TESTRULE, \ + solaris_x64_5.10-product-c2-JCK7TESTRULE, \ + linux_i586_2.6-product-c1-JCK7TESTRULE, \ + linux_x64_2.6-product-c2-JCK7TESTRULE + +# JCK testset targets +my.make.rule.test.targets.jck= \ + ${my.test.target.set.jck:JCK7TESTRULE=jck7devtools}, \ + ${my.test.target.set.jck:JCK7TESTRULE=jck7runtime}, \ + ${my.test.target.set.jck:JCK7TESTRULE=jck7compiler} + + +############# +# +# Hotspot related settings (testset=hotspot) +# + +# The hotspot build flavors +my.build.flavors.hotspot= \ + debugOpen,fastdebug,product,productOpen, \ + ${my.additional.build.flavors.hotspot} + +# Platforms built for hotspot push jobs +my.build.targets.hotspot= \ + solaris_sparcv9_5.10-{product|fastdebug|optimized}, \ + solaris_x64_5.10-{product|fastdebug}, \ + linux_i586_2.6-{product|fastdebug}, \ + linux_x64_2.6-{product|fastdebug|optimized}, \ + macosx_x64_10.7-{product|fastdebug}, \ + windows_i586_6.1-{product|fastdebug}, \ + windows_x64_6.1-{product|fastdebug|optimized}, \ + solaris_x64_5.10-{debugOpen}, \ + linux_x64_2.6-{productOpen}, \ + ${my.additional.build.targets.hotspot} + +# Tests to run on the various platforms for hotspot push jobs +my.test.targets.hotspot.solaris.sparcv9= \ + solaris_sparcv9_5.10-{product|fastdebug}-c2-jvm98, \ + solaris_sparcv9_5.10-{product|fastdebug}-c2-jvm98_nontiered, \ + solaris_sparcv9_5.10-{product|fastdebug}-c2-scimark, \ + solaris_sparcv9_5.10-product-c2-runThese, \ + solaris_sparcv9_5.10-{product|fastdebug}-c2-GCBasher_SerialGC, \ + solaris_sparcv9_5.10-{product|fastdebug}-c2-GCBasher_ParallelGC, \ + solaris_sparcv9_5.10-{product|fastdebug}-c2-GCBasher_ParNewGC, \ + solaris_sparcv9_5.10-{product|fastdebug}-c2-GCBasher_CMS, \ + solaris_sparcv9_5.10-{product|fastdebug}-c2-GCBasher_G1, \ + solaris_sparcv9_5.10-{product|fastdebug}-c2-GCBasher_ParOldGC, \ + solaris_sparcv9_5.10-{product|fastdebug}-c2-GCOld_SerialGC, \ + solaris_sparcv9_5.10-{product|fastdebug}-c2-GCOld_ParallelGC, \ + solaris_sparcv9_5.10-{product|fastdebug}-c2-GCOld_ParNewGC, \ + solaris_sparcv9_5.10-{product|fastdebug}-c2-GCOld_CMS, \ + solaris_sparcv9_5.10-{product|fastdebug}-c2-GCOld_G1, \ + solaris_sparcv9_5.10-{product|fastdebug}-c2-GCOld_ParOldGC, \ + solaris_sparcv9_5.10-{product|fastdebug}-c2-jbb_default_nontiered, \ + solaris_sparcv9_5.10-{product|fastdebug}-c2-jbb_SerialGC, \ + solaris_sparcv9_5.10-{product|fastdebug}-c2-jbb_ParallelGC, \ + solaris_sparcv9_5.10-{product|fastdebug}-c2-jbb_CMS, \ + solaris_sparcv9_5.10-{product|fastdebug}-c2-jbb_G1, \ + solaris_sparcv9_5.10-{product|fastdebug}-c2-jbb_ParOldGC + +my.test.targets.hotspot.solaris.x64= \ + solaris_x64_5.10-{product|fastdebug}-c2-jvm98, \ + solaris_x64_5.10-{product|fastdebug}-c2-jvm98_nontiered, \ + solaris_x64_5.10-{product|fastdebug}-c2-scimark, \ + solaris_x64_5.10-product-c2-runThese, \ + solaris_x64_5.10-product-c2-runThese_Xcomp, \ + solaris_x64_5.10-{product|fastdebug}-c2-GCBasher_SerialGC, \ + solaris_x64_5.10-{product|fastdebug}-c2-GCBasher_ParallelGC, \ + solaris_x64_5.10-{product|fastdebug}-c2-GCBasher_ParNewGC, \ + solaris_x64_5.10-{product|fastdebug}-c2-GCBasher_CMS, \ + solaris_x64_5.10-{product|fastdebug}-c2-GCBasher_G1, \ + solaris_x64_5.10-{product|fastdebug}-c2-GCBasher_ParOldGC, \ + solaris_x64_5.10-{product|fastdebug}-c2-GCOld_SerialGC, \ + solaris_x64_5.10-{product|fastdebug}-c2-GCOld_ParallelGC, \ + solaris_x64_5.10-{product|fastdebug}-c2-GCOld_ParNewGC, \ + solaris_x64_5.10-{product|fastdebug}-c2-GCOld_CMS, \ + solaris_x64_5.10-{product|fastdebug}-c2-GCOld_G1, \ + solaris_x64_5.10-{product|fastdebug}-c2-GCOld_ParOldGC, \ + solaris_x64_5.10-{product|fastdebug}-c2-jbb_default_nontiered, \ + solaris_x64_5.10-{product|fastdebug}-c2-jbb_SerialGC, \ + solaris_x64_5.10-{product|fastdebug}-c2-jbb_ParallelGC, \ + solaris_x64_5.10-{product|fastdebug}-c2-GCOld_CMS, \ + solaris_x64_5.10-{product|fastdebug}-c2-GCOld_G1, \ + solaris_x64_5.10-{product|fastdebug}-c2-GCOld_ParOldGC + +my.test.targets.hotspot.linux.i586= \ + linux_i586_2.6-{product|fastdebug}-{c1|c2}-jvm98, \ + linux_i586_2.6-{product|fastdebug}-c2-jvm98_nontiered, \ + linux_i586_2.6-{product|fastdebug}-{c1|c2}-scimark, \ + linux_i586_2.6-product-c1-runThese_Xcomp, \ + linux_i586_2.6-fastdebug-c1-runThese_Xshare, \ + linux_i586_2.6-fastdebug-c2-runThese_Xcomp, \ + linux_i586_2.6-{product|fastdebug}-{c1|c2}-GCBasher_SerialGC, \ + linux_i586_2.6-{product|fastdebug}-{c1|c2}-GCBasher_ParallelGC, \ + linux_i586_2.6-{product|fastdebug}-{c1|c2}-GCBasher_ParNewGC, \ + linux_i586_2.6-{product|fastdebug}-{c1|c2}-GCBasher_CMS, \ + linux_i586_2.6-{product|fastdebug}-{c1|c2}-GCBasher_G1, \ + linux_i586_2.6-{product|fastdebug}-{c1|c2}-GCBasher_ParOldGC, \ + linux_i586_2.6-product-{c1|c2}-GCOld_SerialGC, \ + linux_i586_2.6-product-{c1|c2}-GCOld_ParallelGC, \ + linux_i586_2.6-product-{c1|c2}-GCOld_ParNewGC, \ + linux_i586_2.6-product-{c1|c2}-GCOld_CMS, \ + linux_i586_2.6-product-{c1|c2}-GCOld_G1, \ + linux_i586_2.6-product-{c1|c2}-GCOld_ParOldGC, \ + linux_i586_2.6-{product|fastdebug}-c1-jbb_SerialGC, \ + linux_i586_2.6-{product|fastdebug}-c2-jbb_default_nontiered, \ + linux_i586_2.6-{product|fastdebug}-c1-jbb_ParallelGC, \ + linux_i586_2.6-{product|fastdebug}-c1-jbb_CMS, \ + linux_i586_2.6-{product|fastdebug}-c1-jbb_G1, \ + linux_i586_2.6-{product|fastdebug}-c1-jbb_ParOldGC + +my.test.targets.hotspot.linux.x64= \ + linux_x64_2.6-{product|fastdebug}-c2-jvm98, \ + linux_x64_2.6-{product|fastdebug}-c2-jvm98_nontiered, \ + linux_x64_2.6-{product|fastdebug}-c2-scimark, \ + linux_x64_2.6-{product|fastdebug}-c2-GCBasher_SerialGC, \ + linux_x64_2.6-{product|fastdebug}-c2-GCBasher_ParallelGC, \ + linux_x64_2.6-{product|fastdebug}-c2-GCBasher_ParNewGC, \ + linux_x64_2.6-{product|fastdebug}-c2-GCBasher_CMS, \ + linux_x64_2.6-{product|fastdebug}-c2-GCBasher_G1, \ + linux_x64_2.6-{product|fastdebug}-c2-GCBasher_ParOldGC, \ + linux_x64_2.6-{product|fastdebug}-c2-GCOld_SerialGC, \ + linux_x64_2.6-{product|fastdebug}-c2-GCOld_ParallelGC, \ + linux_x64_2.6-{product|fastdebug}-c2-GCOld_ParNewGC, \ + linux_x64_2.6-{product|fastdebug}-c2-GCOld_CMS, \ + linux_x64_2.6-{product|fastdebug}-c2-GCOld_G1, \ + linux_x64_2.6-{product|fastdebug}-c2-GCOld_ParOldGC, \ + linux_x64_2.6-{product|fastdebug}-c2-jbb_default_nontiered, \ + linux_x64_2.6-{product|fastdebug}-c2-jbb_ParallelGC, \ + linux_x64_2.6-{product|fastdebug}-c2-jbb_G1, \ + linux_x64_2.6-{product|fastdebug}-c2-jbb_ParOldGC + +my.test.targets.hotspot.macosx.x64= \ + macosx_x64_10.7-{product|fastdebug}-c2-jvm98, \ + macosx_x64_10.7-{product|fastdebug}-c2-jvm98_nontiered, \ + macosx_x64_10.7-{product|fastdebug}-c2-scimark, \ + macosx_x64_10.7-{product|fastdebug}-c2-GCBasher_SerialGC, \ + macosx_x64_10.7-{product|fastdebug}-c2-GCBasher_ParallelGC, \ + macosx_x64_10.7-{product|fastdebug}-c2-GCBasher_ParNewGC, \ + macosx_x64_10.7-{product|fastdebug}-c2-GCBasher_CMS, \ + macosx_x64_10.7-{product|fastdebug}-c2-GCBasher_G1, \ + macosx_x64_10.7-{product|fastdebug}-c2-GCBasher_ParOldGC, \ + macosx_x64_10.7-{product|fastdebug}-c2-GCOld_SerialGC, \ + macosx_x64_10.7-{product|fastdebug}-c2-GCOld_ParallelGC, \ + macosx_x64_10.7-{product|fastdebug}-c2-GCOld_ParNewGC, \ + macosx_x64_10.7-{product|fastdebug}-c2-GCOld_CMS, \ + macosx_x64_10.7-{product|fastdebug}-c2-GCOld_G1, \ + macosx_x64_10.7-{product|fastdebug}-c2-GCOld_ParOldGC, \ + macosx_x64_10.7-{product|fastdebug}-c2-jbb_default_nontiered, \ + macosx_x64_10.7-{product|fastdebug}-c2-jbb_ParallelGC, \ + macosx_x64_10.7-{product|fastdebug}-c2-jbb_G1, \ + macosx_x64_10.7-{product|fastdebug}-c2-jbb_ParOldGC + +my.test.targets.hotspot.windows.i586= \ + windows_i586_6.1-{product|fastdebug}-{c1|c2}-jvm98, \ + windows_i586_6.1-{product|fastdebug}-c2-jvm98_nontiered, \ + windows_i586_6.1-{product|fastdebug}-{c1|c2}-scimark, \ + windows_i586_6.1-product-{c1|c2}-runThese, \ + windows_i586_6.1-product-{c1|c2}-runThese_Xcomp, \ + windows_i586_6.1-fastdebug-c1-runThese_Xshare, \ + windows_i586_6.1-{product|fastdebug}-{c1|c2}-GCBasher_SerialGC, \ + windows_i586_6.1-{product|fastdebug}-{c1|c2}-GCBasher_ParallelGC, \ + windows_i586_6.1-{product|fastdebug}-{c1|c2}-GCBasher_ParNewGC, \ + windows_i586_6.1-{product|fastdebug}-{c1|c2}-GCBasher_CMS, \ + windows_i586_6.1-{product|fastdebug}-{c1|c2}-GCBasher_G1, \ + windows_i586_6.1-{product|fastdebug}-{c1|c2}-GCBasher_ParOldGC, \ + windows_i586_6.1-product-{c1|c2}-GCOld_SerialGC, \ + windows_i586_6.1-product-{c1|c2}-GCOld_ParallelGC, \ + windows_i586_6.1-product-{c1|c2}-GCOld_ParNewGC, \ + windows_i586_6.1-product-{c1|c2}-GCOld_CMS, \ + windows_i586_6.1-product-{c1|c2}-GCOld_G1, \ + windows_i586_6.1-product-{c1|c2}-GCOld_ParOldGC, \ + windows_i586_6.1-{product|fastdebug}-{c1|c2}-jbb_default, \ + windows_i586_6.1-{product|fastdebug}-c2-jbb_default_nontiered, \ + windows_i586_6.1-product-{c1|c2}-jbb_ParallelGC, \ + windows_i586_6.1-product-{c1|c2}-jbb_CMS, \ + windows_i586_6.1-product-{c1|c2}-jbb_G1, \ + windows_i586_6.1-product-{c1|c2}-jbb_ParOldGC + +my.test.targets.hotspot.windows.x64= \ + windows_x64_6.1-{product|fastdebug}-c2-jvm98, \ + windows_x64_6.1-{product|fastdebug}-c2-jvm98_nontiered, \ + windows_x64_6.1-{product|fastdebug}-c2-scimark, \ + windows_x64_6.1-product-c2-runThese, \ + windows_x64_6.1-product-c2-runThese_Xcomp, \ + windows_x64_6.1-{product|fastdebug}-c2-GCBasher_SerialGC, \ + windows_x64_6.1-{product|fastdebug}-c2-GCBasher_ParallelGC, \ + windows_x64_6.1-{product|fastdebug}-c2-GCBasher_ParNewGC, \ + windows_x64_6.1-{product|fastdebug}-c2-GCBasher_CMS, \ + windows_x64_6.1-{product|fastdebug}-c2-GCBasher_G1, \ + windows_x64_6.1-{product|fastdebug}-c2-GCBasher_ParOldGC, \ + windows_x64_6.1-{product|fastdebug}-c2-GCOld_SerialGC, \ + windows_x64_6.1-{product|fastdebug}-c2-GCOld_ParallelGC, \ + windows_x64_6.1-{product|fastdebug}-c2-GCOld_ParNewGC, \ + windows_x64_6.1-{product|fastdebug}-c2-GCOld_CMS, \ + windows_x64_6.1-{product|fastdebug}-c2-GCOld_G1, \ + windows_x64_6.1-{product|fastdebug}-c2-GCOld_ParOldGC, \ + windows_x64_6.1-{product|fastdebug}-c2-jbb_default, \ + windows_x64_6.1-{product|fastdebug}-c2-jbb_default_nontiered, \ + windows_x64_6.1-product-c2-jbb_CMS, \ + windows_x64_6.1-product-c2-jbb_ParallelGC, \ + windows_x64_6.1-product-c2-jbb_G1, \ + windows_x64_6.1-product-c2-jbb_ParOldGC + +# Some basic "smoke" tests for OpenJDK builds +my.test.targets.hotspot.open= \ + solaris_x64_5.10-{productOpen|fastdebugOpen}-c2-jvm98, \ + linux_x64_2.6-{productOpen|fastdebugOpen}-c2-jvm98 + +# The complete list of test targets for jprt +my.test.targets.hotspot= \ + ${my.test.targets.hotspot.open}, \ + ${my.test.targets.hotspot.solaris.sparcv9}, \ + ${my.test.targets.hotspot.solaris.x64}, \ + ${my.test.targets.hotspot.linux.i586}, \ + ${my.test.targets.hotspot.linux.x64}, \ + ${my.test.targets.hotspot.macosx.x64}, \ + ${my.test.targets.hotspot.windows.i586}, \ + ${my.test.targets.hotspot.windows.x64}, \ + ${my.test.targets.hotspot.solaris.sparcv9}, \ + ${my.test.targets.hotspot.solaris.x64}, \ + ${my.test.targets.hotspot.linux.x64}, \ + ${my.test.targets.hotspot.windows.i586}, \ + ${my.test.targets.hotspot.windows.x64}, \ + ${my.additional.test.targets.hotspot} + + +# Make file based test targets + +my.make.rule.test.targets.hotspot.clienttests= \ + linux_i586_2.6-*-c1-hotspot_clienttest, \ + windows_i586_6.1-*-c1-hotspot_clienttest + +my.make.rule.test.targets.hotspot.servertests= \ + solaris_sparcv9_5.10-*-c2-hotspot_servertest, \ + solaris_x64_5.10-*-c2-hotspot_servertest, \ + linux_i586_2.6-*-c2-hotspot_servertest, \ + linux_x64_2.6-*-c2-hotspot_servertest, \ + macosx_x64_10.7-*-c2-hotspot_servertest, \ + windows_i586_6.1-*-c2-hotspot_servertest, \ + windows_x64_6.1-*-c2-hotspot_servertest + +my.make.rule.test.targets.hotspot.internalvmtests= \ + solaris_sparcv9_5.10-fastdebug-c2-hotspot_internalvmtests, \ + solaris_x64_5.10-fastdebug-c2-hotspot_internalvmtests, \ + linux_i586_2.6-fastdebug-c2-hotspot_internalvmtests, \ + linux_x64_2.6-fastdebug-c2-hotspot_internalvmtests, \ + macosx_x64_10.7-fastdebug-c2-hotspot_internalvmtests, \ + windows_i586_6.1-fastdebug-c2-hotspot_internalvmtests, \ + windows_x64_6.1-fastdebug-c2-hotspot_internalvmtests + +my.make.rule.test.targets.hotspot.wbapitests= \ + solaris_sparcv9_5.10-{product|fastdebug}-c2-hotspot_wbapitest, \ + solaris_x64_5.10-{product|fastdebug}-c2-hotspot_wbapitest, \ + linux_i586_2.6-{product|fastdebug}-c2-hotspot_wbapitest, \ + linux_x64_2.6-{product|fastdebug}-c2-hotspot_wbapitest, \ + windows_i586_6.1-{product|fastdebug}-c2-hotspot_wbapitest, \ + windows_x64_6.1-{product|fastdebug}-c2-hotspot_wbapitest, \ + linux_i586_2.6-{product|fastdebug}-c1-hotspot_wbapitest, \ + windows_i586_6.1-{product|fastdebug}-c1-hotspot_wbapitest + +my.make.rule.test.targets.hotspot= \ + ${my.make.rule.test.targets.hotspot.clienttests}, \ + ${my.make.rule.test.targets.hotspot.servertests}, \ + ${my.make.rule.test.targets.hotspot.internalvmtests}, \ + ${my.make.rule.test.targets.hotspot.wbapitests}, \ + ${my.additional.make.rule.test.targets.hotspot} diff -r 27436b422886 -r a676d2d8af0d test/Makefile --- a/test/Makefile Mon Oct 20 23:00:27 2014 -0700 +++ b/test/Makefile Fri Oct 24 17:04:51 2014 -0700 @@ -33,6 +33,7 @@ # This makefile depends on the availability of sibling directories. LANGTOOLS_DIR=$(TOPDIR)/langtools JDK_DIR=$(TOPDIR)/jdk +HOTSPOT_DIR=$(TOPDIR)/hotspot # Macro to run a test target in a subdir define SUBDIR_TEST # subdirectory target @@ -62,6 +63,9 @@ jdk_% core_%s svc_%: @$(NO_STOPPING)$(call SUBDIR_TEST, $(JDK_DIR), TEST="$@" $@) +hotspot_%: + @$(NO_STOPPING)$(call SUBDIR_TEST, $(HOTSPOT_DIR), TEST="$@" $@) + ################################################################ # Phony targets (e.g. these are not filenames)