Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 15 Mar 2015 21:30:05 +0000 (UTC)
From:      Greg Lewis <glewis@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r381360 - in head/java/openjdk8: . files
Message-ID:  <201503152130.t2FLU5Xu091860@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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] [--] <command> [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 ***



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201503152130.t2FLU5Xu091860>