From owner-svn-ports-all@FreeBSD.ORG Sun Mar 15 21:30:06 2015 Return-Path: Delivered-To: svn-ports-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 264C0A93; Sun, 15 Mar 2015 21:30:06 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id CBBB1A0C; Sun, 15 Mar 2015 21:30:05 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t2FLU5K4091865; Sun, 15 Mar 2015 21:30:05 GMT (envelope-from glewis@FreeBSD.org) Received: (from glewis@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t2FLU5Xu091860; Sun, 15 Mar 2015 21:30:05 GMT (envelope-from glewis@FreeBSD.org) Message-Id: <201503152130.t2FLU5Xu091860@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: glewis set sender to glewis@FreeBSD.org using -f From: Greg Lewis Date: Sun, 15 Mar 2015 21:30:05 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r381360 - in head/java/openjdk8: . files X-SVN-Group: ports-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: SVN commit messages for the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Mar 2015 21:30:06 -0000 Author: glewis Date: Sun Mar 15 21:30:04 2015 New Revision: 381360 URL: https://svnweb.freebsd.org/changeset/ports/381360 QAT: https://qat.redports.org/buildarchive/r381360/ Log: . Update to 8u40. Added: head/java/openjdk8/files/patch-8u40-b25 (contents, props changed) Deleted: head/java/openjdk8/files/patch-jdk-src-solaris-native-java-net-bsd_close.c Modified: head/java/openjdk8/Makefile head/java/openjdk8/files/patch-bsd head/java/openjdk8/files/patch-bsd-test Modified: head/java/openjdk8/Makefile ============================================================================== --- head/java/openjdk8/Makefile Sun Mar 15 21:29:13 2015 (r381359) +++ head/java/openjdk8/Makefile Sun Mar 15 21:30:04 2015 (r381360) @@ -2,7 +2,6 @@ PORTNAME= openjdk PORTVERSION= ${JDK_MAJOR_VERSION}.${JDK_UPDATE_VERSION}.${JDK_BUILD_NUMBER:S/^0//} -PORTREVISION= 2 CATEGORIES= java devel MASTER_SITES= http://download.java.net/openjdk/jdk${JDK_MAJOR_VERSION}/promoted/b${DIST_BUILD_NUMBER}/:jdk \ https://adopt-openjdk.ci.cloudbees.com/job/jtreg/${JTREG_JENKINS_BUILD}/artifact/:jtreg \ @@ -37,17 +36,37 @@ BUILD_DEPENDS+= ${UNZIP_CMD}:${PORTSDIR} ONLY_FOR_ARCHS= i386 amd64 WRKSRC= ${WRKDIR}/${PORTNAME} -DOS2UNIX_FILES= jdk/src/share/classes/com/sun/org/apache/xml/internal/security/resource/xmlsecurity_en.properties \ - jdk/src/bsd/doc/man/java.1 \ +DOS2UNIX_FILES= jdk/src/bsd/doc/man/java.1 \ jdk/src/bsd/doc/man/javac.1 \ + jdk/src/bsd/doc/man/javadoc.1 \ jdk/src/bsd/doc/man/javap.1 \ + jdk/src/bsd/doc/man/jcmd.1 \ + jdk/src/bsd/doc/man/jjs.1 \ + jdk/src/bsd/doc/man/jstat.1 \ + jdk/src/bsd/doc/man/keytool.1 \ + jdk/src/bsd/doc/man/policytool.1 \ jdk/src/linux/doc/man/java.1 \ jdk/src/linux/doc/man/javac.1 \ + jdk/src/linux/doc/man/javadoc.1 \ jdk/src/linux/doc/man/javap.1 \ + jdk/src/linux/doc/man/jcmd.1 \ + jdk/src/linux/doc/man/jjs.1 \ + jdk/src/linux/doc/man/jstat.1 \ + jdk/src/linux/doc/man/keytool.1 \ + jdk/src/linux/doc/man/policytool.1 \ + jdk/src/share/classes/com/sun/org/apache/xml/internal/security/resource/xmlsecurity_en.properties \ jdk/src/solaris/doc/sun/man/man1/java.1 \ jdk/src/solaris/doc/sun/man/man1/javac.1 \ + jdk/src/solaris/doc/sun/man/man1/javadoc.1 \ jdk/src/solaris/doc/sun/man/man1/javap.1 \ - nashorn/test/script/jfx.js + jdk/src/solaris/doc/sun/man/man1/jcmd.1 \ + jdk/src/solaris/doc/sun/man/man1/jjs.1 \ + jdk/src/solaris/doc/sun/man/man1/jstat.1 \ + jdk/src/solaris/doc/sun/man/man1/keytool.1 \ + jdk/src/solaris/doc/sun/man/man1/policytool.1 \ + nashorn/test/script/jfx.js \ + nashorn/test/script/jfx/kaleidoscope.js \ + nashorn/test/script/jfx/spread.js SHEBANG_FILES= configure _MAKE_JOBS= # @@ -72,8 +91,8 @@ NO_CCACHE= yes NOPRECIOUSMAKEVARS= yes JDK_MAJOR_VERSION= 8 -JDK_UPDATE_VERSION= 31 -JDK_BUILD_NUMBER= 13 +JDK_UPDATE_VERSION= 40 +JDK_BUILD_NUMBER= 25 DIST_BUILD_NUMBER= 132 JTREG_VERSION= 4.1 JTREG_BUILD_NUMBER= b08 Added: head/java/openjdk8/files/patch-8u40-b25 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/java/openjdk8/files/patch-8u40-b25 Sun Mar 15 21:30:04 2015 (r381360) @@ -0,0 +1,343973 @@ +--- ./.hgtags Mon Dec 08 12:28:03 2014 -0800 ++++ ./.hgtags Wed Feb 04 12:14:35 2015 -0800 +@@ -349,3 +349,29 @@ + 01a98532348477a84b6e3c322fdd12dfed28d96d jdk8u31-b10 + ec85d5d0e3c05b0b6d61f4fc3f41313448ed9b05 jdk8u31-b11 + ca98e3e9727ffdcde2c9980668d0c7f344261938 jdk8u31-b12 ++fde671d8b2537b6be61f67e583164b5b8b33ac5b jdk8u31-b13 ++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 ++3e6d3c8810ee495ba599443e29b0dc72c0dd53fd jdk8u40-b12 ++43ccc2b9d5b7c06baca33162c6aff8900fa76b65 jdk8u40-b13 ++df659b8b0bc82214358e2f0ef340612011d5ed3b jdk8u40-b14 ++60d2bf063f7d8baa4e0954b6400aa6d30f9064f9 jdk8u40-b15 ++64790e9792f88fadd9d25eaf4dcba7e6e96664de jdk8u40-b16 ++e1c506c8e1db7356d120dd7d22b2c50276b6bcee jdk8u40-b17 ++83d1d42c3df409c87ef7cb0126343a009857ca71 jdk8u40-b18 ++ae4980d195b64eec58884b233d7efd312205bac8 jdk8u40-b19 ++b31a07adaef50dacba20e376cff6f1096e745092 jdk8u40-b20 ++765a17e75fd622f7b892381e23c9b2c531d416f0 jdk8u40-b21 ++b6d03a810a61116268fea08517a9632bd66a7363 jdk8u40-b22 ++5dd2ad6c7911a1e21f15a28f13ffad662378a3be jdk8u40-b23 ++5b37e6757d7c95c9c58b07fb3c9eba234567385a jdk8u40-b24 +--- ./Makefile Mon Dec 08 12:28:03 2014 -0800 ++++ ./Makefile Wed Feb 04 12:14:35 2015 -0800 +@@ -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. + +--- ./THIRD_PARTY_README Mon Dec 08 12:28:03 2014 -0800 ++++ ./THIRD_PARTY_README Wed Feb 04 12:14:35 2015 -0800 +@@ -3385,7 +3385,7 @@ + included with JRE 8, JDK 8, and OpenJDK 8. + + Apache Commons Math 3.2 +- Apache Derby 10.10.1.3 ++ Apache Derby 10.11.1.2 + Apache Jakarta BCEL 5.1 + Apache Jakarta Regexp 1.4 + Apache Santuario XML Security for Java 1.5.4 +--- ./common/autoconf/boot-jdk.m4 Mon Dec 08 12:28:03 2014 -0800 ++++ ./common/autoconf/boot-jdk.m4 Wed Feb 04 12:14:35 2015 -0800 +@@ -301,35 +301,59 @@ + [specify JVM arguments to be passed to all invocations of the Boot JDK, overriding the default values, + e.g --with-boot-jdk-jvmargs="-Xmx8G -enableassertions"])]) + +- if test "x$with_boot_jdk_jvmargs" = x; then +- # Not all JVM:s accept the same arguments on the command line. +- # OpenJDK specific increase in thread stack for JDK build, +- # well more specifically, when running javac. +- if test "x$BUILD_NUM_BITS" = x32; then +- STACK_SIZE=768 +- else +- # Running Javac on a JVM on a 64-bit machine, the stack takes more space +- # since 64-bit pointers are pushed on the stach. Apparently, we need +- # to increase the stack space when javacing the JDK.... +- STACK_SIZE=1536 +- fi ++ AC_MSG_CHECKING([flags for boot jdk java command] ) + +- # Minimum amount of heap memory. +- ADD_JVM_ARG_IF_OK([-Xms64M],boot_jdk_jvmargs,[$JAVA]) +- if test "x$OPENJDK_TARGET_OS" = "xmacosx" || test "x$OPENJDK_TARGET_CPU" = "xppc64" ; then +- # Why does macosx need more heap? Its the huge JDK batch. +- ADD_JVM_ARG_IF_OK([-Xmx1600M],boot_jdk_jvmargs,[$JAVA]) +- else +- ADD_JVM_ARG_IF_OK([-Xmx1100M],boot_jdk_jvmargs,[$JAVA]) +- fi +- # When is adding -client something that speeds up the JVM? +- # ADD_JVM_ARG_IF_OK([-client],boot_jdk_jvmargs,[$JAVA]) +- ADD_JVM_ARG_IF_OK([-XX:PermSize=32m],boot_jdk_jvmargs,[$JAVA]) +- ADD_JVM_ARG_IF_OK([-XX:MaxPermSize=160m],boot_jdk_jvmargs,[$JAVA]) +- ADD_JVM_ARG_IF_OK([-XX:ThreadStackSize=$STACK_SIZE],boot_jdk_jvmargs,[$JAVA]) +- # Disable special log output when a debug build is used as Boot JDK... +- ADD_JVM_ARG_IF_OK([-XX:-PrintVMOptions -XX:-UnlockDiagnosticVMOptions -XX:-LogVMOutput],boot_jdk_jvmargs,[$JAVA]) ++ # Disable special log output when a debug build is used as Boot JDK... ++ ADD_JVM_ARG_IF_OK([-XX:-PrintVMOptions -XX:-UnlockDiagnosticVMOptions -XX:-LogVMOutput],boot_jdk_jvmargs,[$JAVA]) ++ ++ # Apply user provided options. ++ ADD_JVM_ARG_IF_OK([$with_boot_jdk_jvmargs],boot_jdk_jvmargs,[$JAVA]) ++ ++ AC_MSG_RESULT([$boot_jdk_jvmargs]) ++ ++ # For now, general JAVA_FLAGS are the same as the boot jdk jvmargs ++ JAVA_FLAGS=$boot_jdk_jvmargs ++ AC_SUBST(JAVA_FLAGS) ++ ++ ++ AC_MSG_CHECKING([flags for boot jdk java command for big workloads]) ++ ++ # Starting amount of heap memory. ++ ADD_JVM_ARG_IF_OK([-Xms64M],boot_jdk_jvmargs_big,[$JAVA]) ++ ++ # Maximum amount of heap memory. ++ # Maximum stack size. ++ if test "x$BUILD_NUM_BITS" = x32; then ++ JVM_MAX_HEAP=1100M ++ STACK_SIZE=768 ++ else ++ # Running Javac on a JVM on a 64-bit machine, takes more space since 64-bit ++ # pointers are used. Apparently, we need to increase the heap and stack ++ # space for the jvm. More specifically, when running javac to build huge ++ # jdk batch ++ JVM_MAX_HEAP=1600M ++ STACK_SIZE=1536 + fi ++ ADD_JVM_ARG_IF_OK([-Xmx$JVM_MAX_HEAP],boot_jdk_jvmargs_big,[$JAVA]) ++ ADD_JVM_ARG_IF_OK([-XX:ThreadStackSize=$STACK_SIZE],boot_jdk_jvmargs_big,[$JAVA]) ++ ADD_JVM_ARG_IF_OK([-XX:PermSize=32m],boot_jdk_jvmargs_big,[$JAVA]) ++ ADD_JVM_ARG_IF_OK([-XX:MaxPermSize=160m],boot_jdk_jvmargs_big,[$JAVA]) + +- AC_SUBST(BOOT_JDK_JVMARGS, $boot_jdk_jvmargs) ++ AC_MSG_RESULT([$boot_jdk_jvmargs_big]) ++ ++ JAVA_FLAGS_BIG=$boot_jdk_jvmargs_big ++ AC_SUBST(JAVA_FLAGS_BIG) ++ ++ ++ AC_MSG_CHECKING([flags for boot jdk java command for small workloads]) ++ ++ # Use serial gc for small short lived tools if possible ++ ADD_JVM_ARG_IF_OK([-XX:+UseSerialGC],boot_jdk_jvmargs_small,[$JAVA]) ++ ADD_JVM_ARG_IF_OK([-Xms32M],boot_jdk_jvmargs_small,[$JAVA]) ++ ADD_JVM_ARG_IF_OK([-Xmx512M],boot_jdk_jvmargs_small,[$JAVA]) ++ ++ AC_MSG_RESULT([$boot_jdk_jvmargs_small]) ++ ++ JAVA_FLAGS_SMALL=$boot_jdk_jvmargs_small ++ AC_SUBST(JAVA_FLAGS_SMALL) + ]) +--- ./common/autoconf/generated-configure.sh Mon Dec 08 12:28:03 2014 -0800 ++++ ./common/autoconf/generated-configure.sh Wed Feb 04 12:14:35 2015 -0800 +@@ -786,7 +786,9 @@ + JAXP_TOPDIR + CORBA_TOPDIR + LANGTOOLS_TOPDIR +-BOOT_JDK_JVMARGS ++JAVA_FLAGS_SMALL ++JAVA_FLAGS_BIG ++JAVA_FLAGS + JAVAC_FLAGS + BOOT_JDK_SOURCETARGET + BOOT_JDK +@@ -7928,7 +7930,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 +@@ -16086,117 +16088,10 @@ + fi + + +- if test "x$with_boot_jdk_jvmargs" = x; then +- # Not all JVM:s accept the same arguments on the command line. +- # OpenJDK specific increase in thread stack for JDK build, +- # well more specifically, when running javac. +- if test "x$BUILD_NUM_BITS" = x32; then +- STACK_SIZE=768 +- else +- # Running Javac on a JVM on a 64-bit machine, the stack takes more space +- # since 64-bit pointers are pushed on the stach. Apparently, we need +- # to increase the stack space when javacing the JDK.... +- STACK_SIZE=1536 +- fi +- +- # Minimum amount of heap memory. +- +- $ECHO "Check if jvm arg is ok: -Xms64M" >&5 +- $ECHO "Command: $JAVA -Xms64M -version" >&5 +- OUTPUT=`$JAVA -Xms64M -version 2>&1` +- FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn` +- FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""` +- if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then +- boot_jdk_jvmargs="$boot_jdk_jvmargs -Xms64M" +- JVM_ARG_OK=true +- else +- $ECHO "Arg failed:" >&5 +- $ECHO "$OUTPUT" >&5 +- JVM_ARG_OK=false +- fi +- +- if test "x$OPENJDK_TARGET_OS" = "xmacosx" || test "x$OPENJDK_TARGET_CPU" = "xppc64" ; then +- # Why does macosx need more heap? Its the huge JDK batch. +- +- $ECHO "Check if jvm arg is ok: -Xmx1600M" >&5 +- $ECHO "Command: $JAVA -Xmx1600M -version" >&5 +- OUTPUT=`$JAVA -Xmx1600M -version 2>&1` +- FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn` +- FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""` +- if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then +- boot_jdk_jvmargs="$boot_jdk_jvmargs -Xmx1600M" +- JVM_ARG_OK=true +- else +- $ECHO "Arg failed:" >&5 +- $ECHO "$OUTPUT" >&5 +- JVM_ARG_OK=false +- fi +- +- else +- +- $ECHO "Check if jvm arg is ok: -Xmx1100M" >&5 +- $ECHO "Command: $JAVA -Xmx1100M -version" >&5 +- OUTPUT=`$JAVA -Xmx1100M -version 2>&1` +- FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn` +- FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""` +- if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then +- boot_jdk_jvmargs="$boot_jdk_jvmargs -Xmx1100M" +- JVM_ARG_OK=true +- else +- $ECHO "Arg failed:" >&5 +- $ECHO "$OUTPUT" >&5 +- JVM_ARG_OK=false +- fi +- +- fi +- # When is adding -client something that speeds up the JVM? +- # ADD_JVM_ARG_IF_OK([-client],boot_jdk_jvmargs,[$JAVA]) +- +- $ECHO "Check if jvm arg is ok: -XX:PermSize=32m" >&5 +- $ECHO "Command: $JAVA -XX:PermSize=32m -version" >&5 +- OUTPUT=`$JAVA -XX:PermSize=32m -version 2>&1` +- FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn` +- FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""` +- if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then +- boot_jdk_jvmargs="$boot_jdk_jvmargs -XX:PermSize=32m" +- JVM_ARG_OK=true +- else +- $ECHO "Arg failed:" >&5 +- $ECHO "$OUTPUT" >&5 +- JVM_ARG_OK=false +- fi +- +- +- $ECHO "Check if jvm arg is ok: -XX:MaxPermSize=160m" >&5 +- $ECHO "Command: $JAVA -XX:MaxPermSize=160m -version" >&5 +- OUTPUT=`$JAVA -XX:MaxPermSize=160m -version 2>&1` +- FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn` +- FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""` +- if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then +- boot_jdk_jvmargs="$boot_jdk_jvmargs -XX:MaxPermSize=160m" +- JVM_ARG_OK=true +- else +- $ECHO "Arg failed:" >&5 +- $ECHO "$OUTPUT" >&5 +- JVM_ARG_OK=false +- fi +- +- +- $ECHO "Check if jvm arg is ok: -XX:ThreadStackSize=$STACK_SIZE" >&5 +- $ECHO "Command: $JAVA -XX:ThreadStackSize=$STACK_SIZE -version" >&5 +- OUTPUT=`$JAVA -XX:ThreadStackSize=$STACK_SIZE -version 2>&1` +- FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn` +- FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""` +- if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then +- boot_jdk_jvmargs="$boot_jdk_jvmargs -XX:ThreadStackSize=$STACK_SIZE" +- JVM_ARG_OK=true +- else +- $ECHO "Arg failed:" >&5 +- $ECHO "$OUTPUT" >&5 +- JVM_ARG_OK=false +- fi +- +- # Disable special log output when a debug build is used as Boot JDK... ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking flags for boot jdk java command " >&5 ++$as_echo_n "checking flags for boot jdk java command ... " >&6; } ++ ++ # Disable special log output when a debug build is used as Boot JDK... + + $ECHO "Check if jvm arg is ok: -XX:-PrintVMOptions -XX:-UnlockDiagnosticVMOptions -XX:-LogVMOutput" >&5 + $ECHO "Command: $JAVA -XX:-PrintVMOptions -XX:-UnlockDiagnosticVMOptions -XX:-LogVMOutput -version" >&5 +@@ -16212,9 +16107,187 @@ + JVM_ARG_OK=false + fi + +- fi +- +- BOOT_JDK_JVMARGS=$boot_jdk_jvmargs ++ ++ # Apply user provided options. ++ ++ $ECHO "Check if jvm arg is ok: $with_boot_jdk_jvmargs" >&5 ++ $ECHO "Command: $JAVA $with_boot_jdk_jvmargs -version" >&5 ++ OUTPUT=`$JAVA $with_boot_jdk_jvmargs -version 2>&1` ++ FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn` ++ FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""` ++ if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then ++ boot_jdk_jvmargs="$boot_jdk_jvmargs $with_boot_jdk_jvmargs" ++ JVM_ARG_OK=true ++ else ++ $ECHO "Arg failed:" >&5 ++ $ECHO "$OUTPUT" >&5 ++ JVM_ARG_OK=false ++ fi ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $boot_jdk_jvmargs" >&5 ++$as_echo "$boot_jdk_jvmargs" >&6; } ++ ++ # For now, general JAVA_FLAGS are the same as the boot jdk jvmargs ++ JAVA_FLAGS=$boot_jdk_jvmargs ++ ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking flags for boot jdk java command for big workloads" >&5 ++$as_echo_n "checking flags for boot jdk java command for big workloads... " >&6; } ++ ++ # Starting amount of heap memory. ++ ++ $ECHO "Check if jvm arg is ok: -Xms64M" >&5 ++ $ECHO "Command: $JAVA -Xms64M -version" >&5 ++ OUTPUT=`$JAVA -Xms64M -version 2>&1` ++ FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn` ++ FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""` ++ if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then ++ boot_jdk_jvmargs_big="$boot_jdk_jvmargs_big -Xms64M" ++ JVM_ARG_OK=true ++ else ++ $ECHO "Arg failed:" >&5 ++ $ECHO "$OUTPUT" >&5 ++ JVM_ARG_OK=false ++ fi ++ ++ ++ # Maximum amount of heap memory. ++ # Maximum stack size. ++ if test "x$BUILD_NUM_BITS" = x32; then ++ JVM_MAX_HEAP=1100M ++ STACK_SIZE=768 ++ else ++ # Running Javac on a JVM on a 64-bit machine, takes more space since 64-bit ++ # pointers are used. Apparently, we need to increase the heap and stack ++ # space for the jvm. More specifically, when running javac to build huge ++ # jdk batch ++ JVM_MAX_HEAP=1600M ++ STACK_SIZE=1536 ++ fi ++ ++ $ECHO "Check if jvm arg is ok: -Xmx$JVM_MAX_HEAP" >&5 ++ $ECHO "Command: $JAVA -Xmx$JVM_MAX_HEAP -version" >&5 ++ OUTPUT=`$JAVA -Xmx$JVM_MAX_HEAP -version 2>&1` ++ FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn` ++ FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""` ++ if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then ++ boot_jdk_jvmargs_big="$boot_jdk_jvmargs_big -Xmx$JVM_MAX_HEAP" ++ JVM_ARG_OK=true ++ else ++ $ECHO "Arg failed:" >&5 ++ $ECHO "$OUTPUT" >&5 ++ JVM_ARG_OK=false ++ fi ++ ++ ++ $ECHO "Check if jvm arg is ok: -XX:ThreadStackSize=$STACK_SIZE" >&5 ++ $ECHO "Command: $JAVA -XX:ThreadStackSize=$STACK_SIZE -version" >&5 ++ OUTPUT=`$JAVA -XX:ThreadStackSize=$STACK_SIZE -version 2>&1` ++ FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn` ++ FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""` ++ if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then ++ boot_jdk_jvmargs_big="$boot_jdk_jvmargs_big -XX:ThreadStackSize=$STACK_SIZE" ++ JVM_ARG_OK=true ++ else ++ $ECHO "Arg failed:" >&5 ++ $ECHO "$OUTPUT" >&5 ++ JVM_ARG_OK=false ++ fi ++ ++ ++ $ECHO "Check if jvm arg is ok: -XX:PermSize=32m" >&5 ++ $ECHO "Command: $JAVA -XX:PermSize=32m -version" >&5 ++ OUTPUT=`$JAVA -XX:PermSize=32m -version 2>&1` ++ FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn` ++ FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""` ++ if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then ++ boot_jdk_jvmargs_big="$boot_jdk_jvmargs_big -XX:PermSize=32m" ++ JVM_ARG_OK=true ++ else ++ $ECHO "Arg failed:" >&5 ++ $ECHO "$OUTPUT" >&5 ++ JVM_ARG_OK=false ++ fi ++ ++ ++ $ECHO "Check if jvm arg is ok: -XX:MaxPermSize=160m" >&5 ++ $ECHO "Command: $JAVA -XX:MaxPermSize=160m -version" >&5 ++ OUTPUT=`$JAVA -XX:MaxPermSize=160m -version 2>&1` ++ FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn` ++ FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""` ++ if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then ++ boot_jdk_jvmargs_big="$boot_jdk_jvmargs_big -XX:MaxPermSize=160m" ++ JVM_ARG_OK=true ++ else ++ $ECHO "Arg failed:" >&5 ++ $ECHO "$OUTPUT" >&5 ++ JVM_ARG_OK=false ++ fi ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $boot_jdk_jvmargs_big" >&5 ++$as_echo "$boot_jdk_jvmargs_big" >&6; } ++ ++ JAVA_FLAGS_BIG=$boot_jdk_jvmargs_big ++ ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking flags for boot jdk java command for small workloads" >&5 ++$as_echo_n "checking flags for boot jdk java command for small workloads... " >&6; } ++ ++ # Use serial gc for small short lived tools if possible ++ ++ $ECHO "Check if jvm arg is ok: -XX:+UseSerialGC" >&5 ++ $ECHO "Command: $JAVA -XX:+UseSerialGC -version" >&5 ++ OUTPUT=`$JAVA -XX:+UseSerialGC -version 2>&1` ++ FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn` ++ FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""` ++ if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then ++ boot_jdk_jvmargs_small="$boot_jdk_jvmargs_small -XX:+UseSerialGC" ++ JVM_ARG_OK=true ++ else ++ $ECHO "Arg failed:" >&5 ++ $ECHO "$OUTPUT" >&5 ++ JVM_ARG_OK=false ++ fi ++ ++ ++ $ECHO "Check if jvm arg is ok: -Xms32M" >&5 ++ $ECHO "Command: $JAVA -Xms32M -version" >&5 ++ OUTPUT=`$JAVA -Xms32M -version 2>&1` ++ FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn` ++ FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""` ++ if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then ++ boot_jdk_jvmargs_small="$boot_jdk_jvmargs_small -Xms32M" ++ JVM_ARG_OK=true ++ else ++ $ECHO "Arg failed:" >&5 ++ $ECHO "$OUTPUT" >&5 ++ JVM_ARG_OK=false ++ fi ++ ++ ++ $ECHO "Check if jvm arg is ok: -Xmx512M" >&5 ++ $ECHO "Command: $JAVA -Xmx512M -version" >&5 ++ OUTPUT=`$JAVA -Xmx512M -version 2>&1` ++ FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn` ++ FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""` ++ if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then ++ boot_jdk_jvmargs_small="$boot_jdk_jvmargs_small -Xmx512M" ++ JVM_ARG_OK=true ++ else ++ $ECHO "Arg failed:" >&5 ++ $ECHO "$OUTPUT" >&5 ++ JVM_ARG_OK=false ++ fi ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $boot_jdk_jvmargs_small" >&5 ++$as_echo "$boot_jdk_jvmargs_small" >&6; } ++ ++ JAVA_FLAGS_SMALL=$boot_jdk_jvmargs_small + + + +--- ./common/autoconf/jdk-options.m4 Mon Dec 08 12:28:03 2014 -0800 ++++ ./common/autoconf/jdk-options.m4 Wed Feb 04 12:14:35 2015 -0800 +@@ -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 +--- ./common/autoconf/spec.gmk.in Mon Dec 08 12:28:03 2014 -0800 ++++ ./common/autoconf/spec.gmk.in Wed Feb 04 12:14:35 2015 -0800 +@@ -249,7 +249,6 @@ + + # The boot jdk to use + BOOT_JDK:=@BOOT_JDK@ +-BOOT_JDK_JVMARGS:=@BOOT_JDK_JVMARGS@ + BOOT_RTJAR:=@BOOT_RTJAR@ + BOOT_TOOLSJAR=$(BOOT_JDK)/lib/tools.jar + +@@ -436,9 +435,12 @@ + POST_STRIP_CMD:=@POST_STRIP_CMD@ + POST_MCS_CMD:=@POST_MCS_CMD@ + +-JAVA_FLAGS:=@BOOT_JDK_JVMARGS@ ++JAVA_FLAGS:=@JAVA_FLAGS@ ++JAVA_FLAGS_BIG:=@JAVA_FLAGS_BIG@ ++JAVA_FLAGS_SMALL:=@JAVA_FLAGS_SMALL@ + +-JAVA=@FIXPATH@ $(BOOT_JDK)/bin/java $(JAVA_FLAGS) ++JAVA=@FIXPATH@ $(BOOT_JDK)/bin/java $(JAVA_FLAGS_BIG) $(JAVA_FLAGS) ++JAVA_SMALL=@FIXPATH@ $(BOOT_JDK)/bin/java $(JAVA_FLAGS_SMALL) $(JAVA_FLAGS) + + JAVAC=@FIXPATH@ $(BOOT_JDK)/bin/javac + # Hotspot sets this variable before reading the SPEC when compiling sa-jdi.jar. Avoid +@@ -451,7 +453,7 @@ + + RMIC=@FIXPATH@ $(BOOT_JDK)/bin/rmic + +-NATIVE2ASCII=@FIXPATH@ $(BOOT_JDK)/bin/native2ascii ++NATIVE2ASCII=@FIXPATH@ $(BOOT_JDK)/bin/native2ascii $(addprefix -J, $(JAVA_FLAGS_SMALL)) + + JARSIGNER=@FIXPATH@ $(BOOT_JDK)/bin/jarsigner + +--- ./common/bin/hgforest.sh Mon Dec 08 12:28:03 2014 -0800 ++++ ./common/bin/hgforest.sh Wed Feb 04 12:14:35 2015 -0800 +@@ -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 *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***