Hello community,

here is the log from the commit of package java-1_9_0-openjdk for 
openSUSE:Factory checked in at 2015-02-18 11:39:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/java-1_9_0-openjdk (Old)
 and      /work/SRC/openSUSE:Factory/.java-1_9_0-openjdk.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "java-1_9_0-openjdk"

Changes:
--------
--- /work/SRC/openSUSE:Factory/java-1_9_0-openjdk/java-1_9_0-openjdk.changes    
2015-01-30 15:07:41.000000000 +0100
+++ 
/work/SRC/openSUSE:Factory/.java-1_9_0-openjdk.new/java-1_9_0-openjdk.changes   
    2015-02-18 12:09:08.000000000 +0100
@@ -1,0 +2,11 @@
+Tue Feb 17 15:37:17 UTC 2015 - [email protected]
+
+- Upgrade to upstream tag jdk9-b50
+- Update the aarch64 hotspot to the current tip of aarch64-port
+  stage repository
+- Added patch
+  * fix-system-jpeg-loading.patch
+    - correct the case mismatch that prevented JPEG decoder from
+      working correctly (boo#905950)
+
+-------------------------------------------------------------------

Old:
----
  0064e246d83f.tar.bz2
  33e7e6998048.tar.bz2
  5b102fc29edf.tar.bz2
  833051855168.tar.bz2
  a13c49c5f289.tar.bz2
  cc775a4a24c7.tar.bz2
  ebb2eb7f1aec.tar.bz2
  f08660f30051.tar.bz2
  f624acc711e2.tar.bz2

New:
----
  00f3abb1f174.tar.bz2
  1ccb6ef2f40b.tar.bz2
  224f593393e5.tar.bz2
  32e48a0d59e1.tar.bz2
  45a30e7ee623.tar.bz2
  74ead7bddde1.tar.bz2
  d1f37d39ff24.tar.bz2
  e0947f58c9c1.tar.bz2
  f6b8edd397ee.tar.bz2
  fix-system-jpeg-loading.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ java-1_9_0-openjdk.spec ++++++
--- /var/tmp/diff_new_pack.W7dlaq/_old  2015-02-18 12:09:11.000000000 +0100
+++ /var/tmp/diff_new_pack.W7dlaq/_new  2015-02-18 12:09:11.000000000 +0100
@@ -33,20 +33,20 @@
 %global minorver        9
 %global microver        0
 %global updatever       0
-%global buildver        b48
+%global buildver        b50
 %global root_project    jdk9
 %global root_repository jdk9
-%global root_revision   0064e246d83f
-%global corba_revision  a13c49c5f289
-%global hotspot_revision cc775a4a24c7
-%global jaxp_revision   833051855168
-%global jaxws_revision  33e7e6998048
-%global jdk_revision    ebb2eb7f1aec
-%global langtools_revision 5b102fc29edf
-%global nashorn_revision f08660f30051
+%global root_revision   d1f37d39ff24
+%global corba_revision  224f593393e5
+%global hotspot_revision e0947f58c9c1
+%global jaxp_revision   74ead7bddde1
+%global jaxws_revision  45a30e7ee623
+%global jdk_revision    f6b8edd397ee
+%global langtools_revision 1ccb6ef2f40b
+%global nashorn_revision 32e48a0d59e1
 %global aarch64_project aarch64-port
 %global aarch64_repository stage
-%global aarch64_hotspot_revision f624acc711e2
+%global aarch64_hotspot_revision 00f3abb1f174
 %global icedtea_sound_version 1.0.1
 # priority must be 6 digits in total
 %global priority        %(echo "10000 * %{majorver} + 1000 * %{minorver} + 100 
* %{microver} + %{updatever}" | bc)
@@ -224,6 +224,7 @@
 # Patch for PPC/PPC64
 Patch103:       ppc-zero-hotspot.patch
 # Patches for system libraries
+Patch203:       fix-system-jpeg-loading.patch
 Patch204:       system-giflib5.patch
 Patch205:       link-with-as-needed.patch
 BuildRequires:  alsa-lib-devel
@@ -482,6 +483,7 @@
 rm -rvf jdk/src/java.desktop/share/native/liblcms/cms*
 rm -rvf jdk/src/java.desktop/share/native/liblcms/lcms2*
 
+%patch203 -p1
 %patch204 -p1
 %patch205 -p1
 

++++++ 0064e246d83f.tar.bz2 -> 00f3abb1f174.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/java-1_9_0-openjdk/0064e246d83f.tar.bz2 
/work/SRC/openSUSE:Factory/.java-1_9_0-openjdk.new/00f3abb1f174.tar.bz2 differ: 
char 11, line 1

++++++ 0064e246d83f.tar.bz2 -> 1ccb6ef2f40b.tar.bz2 ++++++
++++ 739084 lines of diff (skipped)

++++++ 5b102fc29edf.tar.bz2 -> 224f593393e5.tar.bz2 ++++++
++++ 836697 lines of diff (skipped)

++++++ 0064e246d83f.tar.bz2 -> 32e48a0d59e1.tar.bz2 ++++++
++++ 516145 lines of diff (skipped)

++++++ 0064e246d83f.tar.bz2 -> 45a30e7ee623.tar.bz2 ++++++
++++ 694089 lines of diff (skipped)

++++++ 0064e246d83f.tar.bz2 -> 74ead7bddde1.tar.bz2 ++++++
++++ 822130 lines of diff (skipped)

++++++ 0064e246d83f.tar.bz2 -> d1f37d39ff24.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jdk9-0064e246d83f/.hg_archival.txt 
new/jdk9-d1f37d39ff24/.hg_archival.txt
--- old/jdk9-0064e246d83f/.hg_archival.txt      2015-01-25 08:22:16.000000000 
+0100
+++ new/jdk9-d1f37d39ff24/.hg_archival.txt      2015-02-06 00:41:43.000000000 
+0100
@@ -1,4 +1,4 @@
 repo: cfeea66a3fa8ca3686a7cfa2d0ce8ab0169f168d
-node: 0064e246d83f6f9fc245c19b6d05041ecaf4b6d4
+node: d1f37d39ff2421f956a6ddf316cf763807bc3363
 branch: default
-tag: jdk9-b48
+tag: jdk9-b50
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jdk9-0064e246d83f/.hgtags 
new/jdk9-d1f37d39ff24/.hgtags
--- old/jdk9-0064e246d83f/.hgtags       2015-01-25 08:22:16.000000000 +0100
+++ new/jdk9-d1f37d39ff24/.hgtags       2015-02-06 00:41:43.000000000 +0100
@@ -290,3 +290,5 @@
 3dd628fde2086218d548841022ee8436b6b88185 jdk9-b45
 12f1e276447bcc81516e85367d53e4f08897049d jdk9-b46
 b6cca3e6175a69f39e5799b7349ddb0176630291 jdk9-b47
+0064e246d83f6f9fc245c19b6d05041ecaf4b6d4 jdk9-b48
+d91ed1951b948210590ce1394bea5515357246ba jdk9-b49
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jdk9-0064e246d83f/common/autoconf/basics.m4 
new/jdk9-d1f37d39ff24/common/autoconf/basics.m4
--- old/jdk9-0064e246d83f/common/autoconf/basics.m4     2015-01-25 
08:22:16.000000000 +0100
+++ new/jdk9-d1f37d39ff24/common/autoconf/basics.m4     2015-02-06 
00:41:43.000000000 +0100
@@ -987,3 +987,26 @@
     IS_RECONFIGURE=no
   fi
 ])
+
+# Check for support for specific options in bash
+AC_DEFUN_ONCE([BASIC_CHECK_BASH_OPTIONS],
+[
+  # Test if bash supports pipefail.
+  AC_MSG_CHECKING([if bash supports pipefail])
+  if ${BASH} -c 'set -o pipefail'; then
+    BASH_ARGS="$BASH_ARGS -o pipefail"
+    AC_MSG_RESULT([yes])
+  else
+    AC_MSG_RESULT([no])
+  fi
+
+  AC_MSG_CHECKING([if bash supports errexit (-e)])
+  if ${BASH} -e -c 'true'; then
+    BASH_ARGS="$BASH_ARGS -e"
+    AC_MSG_RESULT([yes])
+  else
+    AC_MSG_RESULT([no])
+  fi
+
+  AC_SUBST(BASH_ARGS)
+])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/jdk9-0064e246d83f/common/autoconf/bootcycle-spec.gmk.in 
new/jdk9-d1f37d39ff24/common/autoconf/bootcycle-spec.gmk.in
--- old/jdk9-0064e246d83f/common/autoconf/bootcycle-spec.gmk.in 2015-01-25 
08:22:16.000000000 +0100
+++ new/jdk9-d1f37d39ff24/common/autoconf/bootcycle-spec.gmk.in 2015-02-06 
00:41:43.000000000 +0100
@@ -46,8 +46,12 @@
 BOOT_JDK := $(JDK_IMAGE_DIR)
 
 # The bootcycle build has a different output directory
-BUILD_OUTPUT:=@BUILD_OUTPUT@/bootcycle-build
-SJAVAC_SERVER_DIR:=$(subst @BUILD_OUTPUT@,$(BUILD_OUTPUT),$(SJAVAC_SERVER_DIR))
+OLD_BUILD_OUTPUT:=@BUILD_OUTPUT@
+BUILD_OUTPUT:=$(OLD_BUILD_OUTPUT)/bootcycle-build
+# The HOTSPOT_DIST dir is not defined relative to BUILD_OUTPUT in spec.gmk. 
Must not
+# use space in this patsubst to avoid leading space in HOTSPOT_DIST.
+HOTSPOT_DIST:=$(patsubst $(OLD_BUILD_OUTPUT)%,$(BUILD_OUTPUT)%,$(HOTSPOT_DIST))
+SJAVAC_SERVER_DIR:=$(patsubst $(OLD_BUILD_OUTPUT)%, $(BUILD_OUTPUT)%, 
$(SJAVAC_SERVER_DIR))
 
 JAVA_CMD:=$(BOOT_JDK)/bin/java
 JAVAC_CMD:=$(BOOT_JDK)/bin/javac
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jdk9-0064e246d83f/common/autoconf/configure.ac 
new/jdk9-d1f37d39ff24/common/autoconf/configure.ac
--- old/jdk9-0064e246d83f/common/autoconf/configure.ac  2015-01-25 
08:22:16.000000000 +0100
+++ new/jdk9-d1f37d39ff24/common/autoconf/configure.ac  2015-02-06 
00:41:43.000000000 +0100
@@ -113,6 +113,7 @@
 
 # Setup tools that requires more complex handling, or that is not needed by 
the configure script.
 BASIC_SETUP_COMPLEX_TOOLS
+BASIC_CHECK_BASH_OPTIONS
 
 # Check if pkg-config is available.
 PKG_PROG_PKG_CONFIG
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/jdk9-0064e246d83f/common/autoconf/generated-configure.sh 
new/jdk9-d1f37d39ff24/common/autoconf/generated-configure.sh
--- old/jdk9-0064e246d83f/common/autoconf/generated-configure.sh        
2015-01-25 08:22:16.000000000 +0100
+++ new/jdk9-d1f37d39ff24/common/autoconf/generated-configure.sh        
2015-02-06 00:41:43.000000000 +0100
@@ -853,6 +853,7 @@
 OS_VERSION_MINOR
 OS_VERSION_MAJOR
 PKG_CONFIG
+BASH_ARGS
 CODESIGN
 XATTR
 DSYMUTIL
@@ -3522,6 +3523,9 @@
 
 
 
+# Check for support for specific options in bash
+
+
 #
 # Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -4329,7 +4333,7 @@
 #CUSTOM_AUTOCONF_INCLUDE
 
 # Do not change or remove the following line, it is needed for consistency 
checks:
-DATE_WHEN_GENERATED=1420811523
+DATE_WHEN_GENERATED=1421247827
 
 ###############################################################################
 #
@@ -19609,6 +19613,32 @@
   fi
 
 
+  # Test if bash supports pipefail.
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if bash supports pipefail" 
>&5
+$as_echo_n "checking if bash supports pipefail... " >&6; }
+  if ${BASH} -c 'set -o pipefail'; then
+    BASH_ARGS="$BASH_ARGS -o pipefail"
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+  else
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+  fi
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if bash supports errexit 
(-e)" >&5
+$as_echo_n "checking if bash supports errexit (-e)... " >&6; }
+  if ${BASH} -e -c 'true'; then
+    BASH_ARGS="$BASH_ARGS -e"
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+  else
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+  fi
+
+
+
+
 # Check if pkg-config is available.
 
 
@@ -27408,8 +27438,8 @@
     # The trailing space for everyone except PATH is no typo, but is needed due
     # to trailing \ in the Windows paths. These will be stripped later.
     $ECHO "$WINPATH_BASH -c 'echo VS_PATH="'\"$PATH\" > set-vs-env.sh' >> 
$EXTRACT_VC_ENV_BAT_FILE
-    $ECHO "$WINPATH_BASH -c 'echo VS_INCLUDE="'\"$INCLUDE\;$include \" >> 
set-vs-env.sh' >> $EXTRACT_VC_ENV_BAT_FILE
-    $ECHO "$WINPATH_BASH -c 'echo VS_LIB="'\"$LIB\;$lib \" >> set-vs-env.sh' 
>> $EXTRACT_VC_ENV_BAT_FILE
+    $ECHO "$WINPATH_BASH -c 'echo VS_INCLUDE="'\"$INCLUDE \" >> set-vs-env.sh' 
>> $EXTRACT_VC_ENV_BAT_FILE
+    $ECHO "$WINPATH_BASH -c 'echo VS_LIB="'\"$LIB \" >> set-vs-env.sh' >> 
$EXTRACT_VC_ENV_BAT_FILE
     $ECHO "$WINPATH_BASH -c 'echo VCINSTALLDIR="'\"$VCINSTALLDIR \" >> 
set-vs-env.sh' >> $EXTRACT_VC_ENV_BAT_FILE
     $ECHO "$WINPATH_BASH -c 'echo WindowsSdkDir="'\"$WindowsSdkDir \" >> 
set-vs-env.sh' >> $EXTRACT_VC_ENV_BAT_FILE
     $ECHO "$WINPATH_BASH -c 'echo WINDOWSSDKDIR="'\"$WINDOWSSDKDIR \" >> 
set-vs-env.sh' >> $EXTRACT_VC_ENV_BAT_FILE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jdk9-0064e246d83f/common/autoconf/spec.gmk.in 
new/jdk9-d1f37d39ff24/common/autoconf/spec.gmk.in
--- old/jdk9-0064e246d83f/common/autoconf/spec.gmk.in   2015-01-25 
08:22:16.000000000 +0100
+++ new/jdk9-d1f37d39ff24/common/autoconf/spec.gmk.in   2015-02-06 
00:41:43.000000000 +0100
@@ -78,6 +78,11 @@
 OUTPUT_SYNC_SUPPORTED:=@OUTPUT_SYNC_SUPPORTED@
 OUTPUT_SYNC:=@OUTPUT_SYNC@
 
+# Override the shell with bash
+BASH:=@BASH@
+BASH_ARGS:=@BASH_ARGS@
+SHELL:=$(BASH) $(BASH_ARGS)
+
 # The "human readable" name of this configuration
 CONF_NAME:=@CONF_NAME@
 
@@ -243,7 +248,7 @@
 HOTSPOT_OUTPUTDIR=$(BUILD_OUTPUT)/hotspot
 JDK_OUTPUTDIR=$(BUILD_OUTPUT)/jdk
 IMAGES_OUTPUTDIR=$(BUILD_OUTPUT)/images
-TESTMAKE_OUTPUTDIR=$(BUILD_OUTPUT)/testmake
+TESTMAKE_OUTPUTDIR=$(BUILD_OUTPUT)/test-make
 MAKESUPPORT_OUTPUTDIR=$(BUILD_OUTPUT)/make-support
 
 HOTSPOT_DIST=@HOTSPOT_DIST@
@@ -495,7 +500,6 @@
 # Tools adhering to a minimal and common standard of posix compliance.
 AWK:=@AWK@
 BASENAME:=@BASENAME@
-BASH:=@BASH@
 CAT:=@CAT@
 CCACHE:=@CCACHE@
 # CD is going away, but remains to cater for legacy makefiles.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jdk9-0064e246d83f/common/bin/unshuffle_list.txt 
new/jdk9-d1f37d39ff24/common/bin/unshuffle_list.txt
--- old/jdk9-0064e246d83f/common/bin/unshuffle_list.txt 2015-01-25 
08:22:16.000000000 +0100
+++ new/jdk9-d1f37d39ff24/common/bin/unshuffle_list.txt 2015-02-06 
00:41:43.000000000 +0100
@@ -123,6 +123,7 @@
 jdk/src/java.base/share/classes/java/math : jdk/src/share/classes/java/math
 jdk/src/java.base/share/classes/java/net : jdk/src/share/classes/java/net
 jdk/src/java.base/share/classes/java/nio : jdk/src/share/classes/java/nio
+jdk/src/java.base/share/classes/java/security/acl : 
jdk/src/share/classes/java/security/acl
 jdk/src/java.base/share/classes/java/security/cert : 
jdk/src/share/classes/java/security/cert
 jdk/src/java.base/share/classes/java/security/interfaces : 
jdk/src/share/classes/java/security/interfaces
 jdk/src/java.base/share/classes/java/security : 
jdk/src/share/classes/java/security
@@ -179,6 +180,7 @@
 jdk/src/java.base/share/classes/sun/nio/cs : jdk/src/share/classes/sun/nio/cs
 jdk/src/java.base/share/classes/sun/nio/fs : jdk/src/share/classes/sun/nio/fs
 jdk/src/java.base/share/classes/sun/reflect : jdk/src/share/classes/sun/reflect
+jdk/src/java.base/share/classes/sun/security/acl : 
jdk/src/share/classes/sun/security/acl
 jdk/src/java.base/share/classes/sun/security/action : 
jdk/src/share/classes/sun/security/action
 jdk/src/java.base/share/classes/sun/security/internal : 
jdk/src/share/classes/sun/security/internal
 jdk/src/java.base/share/classes/sun/security/jca : 
jdk/src/share/classes/sun/security/jca
@@ -1211,8 +1213,6 @@
 jdk/src/java.rmi/unix/bin/java-rmi.cgi.sh : jdk/src/solaris/bin/java-rmi.cgi.sh
 jdk/src/java.scripting/share/classes/javax/script : 
jdk/src/share/classes/javax/script
 jdk/src/java.scripting/share/classes/com/sun/tools/script/shell : 
jdk/src/share/classes/com/sun/tools/script/shell
-jdk/src/java.security.acl/share/classes/java/security/acl : 
jdk/src/share/classes/java/security/acl
-jdk/src/java.security.acl/share/classes/sun/security/acl : 
jdk/src/share/classes/sun/security/acl
 jdk/src/java.security.jgss/macosx/native/libosxkrb5/nativeccache.c : 
jdk/src/share/native/sun/security/krb5/nativeccache.c
 jdk/src/java.security.jgss/macosx/native/libosxkrb5/SCDynamicStoreConfig.m : 
jdk/src/macosx/native/sun/security/krb5/SCDynamicStoreConfig.m
 jdk/src/java.security.jgss/share/classes/javax/security/auth/kerberos : 
jdk/src/share/classes/javax/security/auth/kerberos
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jdk9-0064e246d83f/make/Images.gmk 
new/jdk9-d1f37d39ff24/make/Images.gmk
--- old/jdk9-0064e246d83f/make/Images.gmk       2015-01-25 08:22:16.000000000 
+0100
+++ new/jdk9-d1f37d39ff24/make/Images.gmk       2015-02-06 00:41:43.000000000 
+0100
@@ -111,14 +111,16 @@
 # Use this file inside the image as target for make rule
 JIMAGE_TARGET_FILE := bin/java$(EXE_SUFFIX)
 
-$(JDK_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(DEPENDENCIES)
+$(JDK_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(DEPENDENCIES) \
+    $(call DependOnVariable, JDK_MODULES_LIST)
        $(ECHO) Creating jdk jimage
        $(RM) -r $(JDK_IMAGE_DIR) $(JDK_SORTED_MODULES)
        $(JIMAGE_TOOL) --mods $(JDK_MODULES_LIST) --output $(JDK_IMAGE_DIR) \
            $(MODULES_XML) > $(JDK_SORTED_MODULES)
        $(TOUCH) $@
 
-$(JRE_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(DEPENDENCIES)
+$(JRE_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(DEPENDENCIES) \
+    $(call DependOnVariable, JRE_MODULES_LIST)
        $(ECHO) Creating jre jimage
        $(RM) -r $(JRE_IMAGE_DIR) $(JRE_SORTED_MODULES)
        $(JIMAGE_TOOL) --mods $(JRE_MODULES_LIST) --output $(JRE_IMAGE_DIR) \
@@ -131,7 +133,8 @@
 
 COMPACT_EXTRA_MODULES := jdk.localedata jdk.crypto.pkcs11 jdk.crypto.ec
 
-$(JRE_COMPACT1_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(DEPENDENCIES)
+$(JRE_COMPACT1_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(DEPENDENCIES) \
+    $(call DependOnVariable, JRE_COMPACT1_MODULES_LIST)
        $(ECHO) Creating jre compact1 jimage
        $(RM) -r $(JRE_COMPACT1_IMAGE_DIR) $(JRE_COMPACT1_SORTED_MODULES)
        $(JIMAGE_TOOL) \
@@ -140,7 +143,8 @@
            $(MODULES_XML) > $(JRE_COMPACT1_SORTED_MODULES)
        $(TOUCH) $@
 
-$(JRE_COMPACT2_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(DEPENDENCIES)
+$(JRE_COMPACT2_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(DEPENDENCIES) \
+    $(call DependOnVariable, JRE_COMPACT2_MODULES_LIST)
        $(ECHO) Creating jre compact2 jimage
        $(RM) -r $(JRE_COMPACT2_IMAGE_DIR) $(JRE_COMPACT2_SORTED_MODULES)
        $(JIMAGE_TOOL) \
@@ -149,7 +153,8 @@
            $(MODULES_XML) > $(JRE_COMPACT2_SORTED_MODULES)
        $(TOUCH) $@
 
-$(JRE_COMPACT3_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(DEPENDENCIES)
+$(JRE_COMPACT3_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(DEPENDENCIES) \
+    $(call DependOnVariable, JRE_COMPACT3_MODULES_LIST)
        $(ECHO) Creating jre compact3 jimage
        $(RM) -r $(JRE_COMPACT3_IMAGE_DIR) $(JRE_COMPACT3_SORTED_MODULES)
        $(JIMAGE_TOOL) \
@@ -368,45 +373,59 @@
 
 # Common way to emit a line into the release or info file
 define info-file-item # name value
-       $(PRINTF) '%s="%s"\n' $1 $2 >> $@
+  $(PRINTF) '%s="%s"\n' $1 $2 >> $@
 endef
 
 # Param 1 - The file containing the MODULES list
 define create-info-file
-       $(ECHO) $(LOG_INFO) Generating $(patsubst $(OUTPUT_ROOT)/%,%,$@)
-       $(MKDIR) -p $(@D)
-       $(RM) $@
-       $(call info-file-item, "JAVA_VERSION", "$(JDK_VERSION)")
-       $(call info-file-item, "OS_NAME", "$(REQUIRED_OS_NAME)")
-       $(call info-file-item, "OS_VERSION", "$(REQUIRED_OS_VERSION)")
-       $(call info-file-item, "OS_ARCH", "$(OPENJDK_TARGET_CPU_LEGACY)")
-       $(if $(JDK_ARCH_ABI_PROP_NAME), \
-         $(call info-file-item, "SUN_ARCH_ABI", "$(JDK_ARCH_ABI_PROP_NAME)"))
-       $(call info-file-item, "SOURCE", "$(ALL_SOURCE_TIPS)")
-       $(call info-file-item, "MODULES", "`$(CAT) $1`")
+  $(call info-file-item, "JAVA_VERSION", "$(JDK_VERSION)")
+  $(call info-file-item, "OS_NAME", "$(REQUIRED_OS_NAME)")
+  $(call info-file-item, "OS_VERSION", "$(REQUIRED_OS_VERSION)")
+  $(call info-file-item, "OS_ARCH", "$(OPENJDK_TARGET_CPU_LEGACY)")
+  $(if $(JDK_ARCH_ABI_PROP_NAME), \
+    $(call info-file-item, "SUN_ARCH_ABI", "$(JDK_ARCH_ABI_PROP_NAME)"))
+  $(call info-file-item, "SOURCE", "$(ALL_SOURCE_TIPS)")
+  $(call info-file-item, "MODULES", "`$(CAT) $1`")
+endef
+
+# Param 1 - The file containing the MODULES list
+define prepare-info-file
+  $(ECHO) $(LOG_INFO) Generating $(patsubst $(OUTPUT_ROOT)/%,%,$@)
+  $(MKDIR) -p $(@D)
+  $(RM) $@
+endef
+
+define info-file
+  $(call prepare-info-file, $1)
+  $(call create-info-file, $1)
 endef
 
+# Create a variable dependency file common for all release info files. The
+# sorted module list will only change if the image is regenerated, which will
+# trigger a rebuild of these files anyway.
+INFO_FILE_VARDEPS := $(call DependOnVariable, create-info-file)
+
 ALL_SOURCE_TIPS = $(shell \
     if [ -f $(SUPPORT_OUTPUTDIR)/source_tips ] ; then \
       $(CAT) $(SUPPORT_OUTPUTDIR)/source_tips ; \
     fi)
 
-$(JRE_INFO_FILE): $(OUTPUT_ROOT)/spec.gmk $(SUPPORT_OUTPUTDIR)/source_tips
-       $(call create-info-file, $(JRE_SORTED_MODULES))
+$(JRE_INFO_FILE): $(INFO_FILE_VARDEPS) $(SUPPORT_OUTPUTDIR)/source_tips
+       $(call info-file, $(JRE_SORTED_MODULES))
 
-$(JDK_INFO_FILE): $(OUTPUT_ROOT)/spec.gmk $(SUPPORT_OUTPUTDIR)/source_tips
-       $(call create-info-file, $(JDK_SORTED_MODULES))
+$(JDK_INFO_FILE): $(INFO_FILE_VARDEPS) $(SUPPORT_OUTPUTDIR)/source_tips
+       $(call info-file, $(JDK_SORTED_MODULES))
 
-$(JRE_COMPACT1_INFO_FILE): $(OUTPUT_ROOT)/spec.gmk 
$(SUPPORT_OUTPUTDIR)/source_tips
-       $(call create-info-file, $(JRE_COMPACT1_SORTED_MODULES))
+$(JRE_COMPACT1_INFO_FILE): $(INFO_FILE_VARDEPS) 
$(SUPPORT_OUTPUTDIR)/source_tips
+       $(call info-file, $(JRE_COMPACT1_SORTED_MODULES))
        $(call info-file-item, "JAVA_PROFILE", "compact1")
 
-$(JRE_COMPACT2_INFO_FILE): $(OUTPUT_ROOT)/spec.gmk 
$(SUPPORT_OUTPUTDIR)/source_tips
-       $(call create-info-file, $(JRE_COMPACT2_SORTED_MODULES))
+$(JRE_COMPACT2_INFO_FILE): $(INFO_FILE_VARDEPS) 
$(SUPPORT_OUTPUTDIR)/source_tips
+       $(call info-file, $(JRE_COMPACT2_SORTED_MODULES))
        $(call info-file-item, "JAVA_PROFILE", "compact2")
 
-$(JRE_COMPACT3_INFO_FILE): $(OUTPUT_ROOT)/spec.gmk 
$(SUPPORT_OUTPUTDIR)/source_tips
-       $(call create-info-file, $(JRE_COMPACT3_SORTED_MODULES))
+$(JRE_COMPACT3_INFO_FILE): $(INFO_FILE_VARDEPS) 
$(SUPPORT_OUTPUTDIR)/source_tips
+       $(call info-file, $(JRE_COMPACT3_SORTED_MODULES))
        $(call info-file-item, "JAVA_PROFILE", "compact3")
 
 JRE_TARGETS += $(JRE_INFO_FILE)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jdk9-0064e246d83f/make/Main.gmk 
new/jdk9-d1f37d39ff24/make/Main.gmk
--- old/jdk9-0064e246d83f/make/Main.gmk 2015-01-25 08:22:16.000000000 +0100
+++ new/jdk9-d1f37d39ff24/make/Main.gmk 2015-02-06 00:41:43.000000000 +0100
@@ -402,6 +402,8 @@
 
   verify-modules: exploded-image
 
+  test-make: clean-test-make
+
 endif
 
 
################################################################################
@@ -446,7 +448,7 @@
 # alias for ease of use.
 jdk: exploded-image
 
-images: test-image jimages demos samples zip-security
+images: test-image jimages demos samples zip-security verify-modules
 
 ifeq ($(OPENJDK_TARGET_OS), macosx)
   images: mac-bundles
@@ -477,7 +479,7 @@
 # file.
 
 CLEAN_DIRS += hotspot jdk bootcycle-build test buildtools support \
-    images make-support
+    images make-support test-make
 CLEAN_DIR_TARGETS := $(addprefix clean-, $(CLEAN_DIRS))
 CLEAN_PHASES := gensrc java native include
 CLEAN_PHASE_TARGETS := $(addprefix clean-, $(CLEAN_PHASES))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jdk9-0064e246d83f/make/ZipSource.gmk 
new/jdk9-d1f37d39ff24/make/ZipSource.gmk
--- old/jdk9-0064e246d83f/make/ZipSource.gmk    2015-01-25 08:22:16.000000000 
+0100
+++ new/jdk9-d1f37d39ff24/make/ZipSource.gmk    2015-02-06 00:41:43.000000000 
+0100
@@ -71,7 +71,7 @@
         
$(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_API_DIR)/native/libjli/java_md*)))
 
 # This dir needs to exist before macro is evaluated to avoid warning from find.
-$(eval $(call MakeDir, $(SUPPORT_OUTPUTDIR)/src))
+$(call MakeDir, $(SUPPORT_OUTPUTDIR)/src)
 $(eval $(call SetupZipArchive,BUILD_SRC_ZIP, \
     SRC := $(SRC_ZIP_SRCS) $(SUPPORT_OUTPUTDIR)/src, \
     INCLUDES := $(SRC_ZIP_INCLUDES) launcher, \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jdk9-0064e246d83f/make/common/IdlCompilation.gmk 
new/jdk9-d1f37d39ff24/make/common/IdlCompilation.gmk
--- old/jdk9-0064e246d83f/make/common/IdlCompilation.gmk        2015-01-25 
08:22:16.000000000 +0100
+++ new/jdk9-d1f37d39ff24/make/common/IdlCompilation.gmk        2015-02-06 
00:41:43.000000000 +0100
@@ -99,7 +99,7 @@
   $(if $(16),$(error Internal makefile error: Too many arguments to 
SetupIdlCompilation, please update IdlCompilation.gmk))
 
   # Find all existing java files and existing class files.
-  $$(eval $$(call MakeDir,$$($1_BIN)))
+  $$(call MakeDir,$$($1_BIN))
   $1_SRCS := $$(shell find $$($1_SRC) -name "*.idl")
   $1_BINS := $$(shell find $$($1_BIN) -name "*.java")
   # Prepend the source/bin path to the filter expressions.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jdk9-0064e246d83f/make/common/JavaCompilation.gmk 
new/jdk9-d1f37d39ff24/make/common/JavaCompilation.gmk
--- old/jdk9-0064e246d83f/make/common/JavaCompilation.gmk       2015-01-25 
08:22:16.000000000 +0100
+++ new/jdk9-d1f37d39ff24/make/common/JavaCompilation.gmk       2015-02-06 
00:41:43.000000000 +0100
@@ -126,17 +126,20 @@
   $1_FIND_PATTERNS:=$(FALSE_FIND_PATTERN) $$(patsubst 
%,$(SPACE)-o$(SPACE)-name$(SPACE)$(DQUOTE)*%$(DQUOTE),$$($1_SUFFIXES))
   # On windows, a lot of includes/excludes risk making the command line too 
long, so
   # writing the grep patterns to files.
+  # Grep returns 1 if nothing is matched. Do not fail the build for this.
   ifneq (,$$($1_INCLUDES))
     $1_GREP_INCLUDE_PATTERNS:=$$(call EscapeDollar, \
         $$(foreach src,$$($1_SRCS), $$(addprefix $$(src)/,$$($1_INCLUDES))))
     # If there are a lot of include patterns, output to file to shorten 
command lines
     ifeq ($$(word 20,$$($1_GREP_INCLUDE_PATTERNS)),)
-      $1_GREP_INCLUDES:=| $(GREP) $$(patsubst 
%,$(SPACE)-e$(SPACE)$(DQUOTE)%$(DQUOTE),$$($1_GREP_INCLUDE_PATTERNS))
+      $1_GREP_INCLUDES:=| ( $(GREP) $$(patsubst 
%,$(SPACE)-e$(SPACE)$(DQUOTE)%$(DQUOTE),$$($1_GREP_INCLUDE_PATTERNS)) \
+          || test "$$$$?" = "1" )
     else
       $1_GREP_INCLUDE_OUTPUT:=$(RM) $$($1_BIN)/_the.$$($1_JARNAME)_include 
$$(NEWLINE) \
           $$(call ListPathsSafely,$1_GREP_INCLUDE_PATTERNS,\n, \
           >> $$($1_BIN)/_the.$$($1_JARNAME)_include)
-      $1_GREP_INCLUDES:=| $(GREP) -f $$($1_BIN)/_the.$$($1_JARNAME)_include
+      $1_GREP_INCLUDES:=| ( $(GREP) -f $$($1_BIN)/_the.$$($1_JARNAME)_include \
+          || test "$$$$?" = "1" )
     endif
   endif
   ifneq (,$$($1_EXCLUDES)$$($1_EXCLUDE_FILES))
@@ -145,12 +148,14 @@
         $$($1_EXCLUDES) $$($1_EXCLUDE_FILES))))
     # If there are a lot of include patterns, output to file to shorten 
command lines
     ifeq ($$(word 20,$$($1_GREP_EXCLUDE_PATTERNS)),)
-      $1_GREP_EXCLUDES:=| $(GREP) -v $$(patsubst 
%,$(SPACE)-e$(SPACE)$(DQUOTE)%$(DQUOTE),$$($1_GREP_EXCLUDE_PATTERNS))
+      $1_GREP_EXCLUDES:=| ( $(GREP) -v $$(patsubst 
%,$(SPACE)-e$(SPACE)$(DQUOTE)%$(DQUOTE),$$($1_GREP_EXCLUDE_PATTERNS)) \
+          || test "$$$$?" = "1" )
     else
       $1_GREP_EXCLUDE_OUTPUT=$(RM) $$($1_BIN)/_the.$$($1_JARNAME)_exclude 
$$(NEWLINE) \
           $$(call ListPathsSafely,$1_GREP_EXCLUDE_PATTERNS,\n, \
           >> $$($1_BIN)/_the.$$($1_JARNAME)_exclude)
-      $1_GREP_EXCLUDES:=| $(GREP) -v -f $$($1_BIN)/_the.$$($1_JARNAME)_exclude
+      $1_GREP_EXCLUDES:=| ( $(GREP) -v -f 
$$($1_BIN)/_the.$$($1_JARNAME)_exclude \
+          || test "$$$$?" = "1" )
     endif
   endif
 
@@ -222,9 +227,11 @@
       $$($1_CAPTURE_EXTRA_FILES)
 
   # The capture metainf macro finds all files below the META-INF directory 
that are newer than the jar-file.
+  # Find returns non zero if the META-INF dir does not exist, ignore this.
   ifeq (,$$($1_SKIP_METAINF))
     $1_CAPTURE_METAINF =$$(foreach src,$$($1_SRCS), \
-        ( $(FIND) $$(src)/META-INF -type f -a -newer $$@ 2> /dev/null | $(SED) 
's|$$(src)/|-C $$(src) |g' >> \
+        ( ( $(FIND) $$(src)/META-INF -type f -a -newer $$@ 2> /dev/null || 
true ) \
+            | $(SED) 's|$$(src)/|-C $$(src) |g' >> \
         $$($1_BIN)/_the.$$($1_JARNAME)_contents ) $$(NEWLINE) )
   endif
   # The capture deletes macro finds all deleted files and concatenates them. 
The resulting file
@@ -248,9 +255,11 @@
             >> $$($1_BIN)/_the.$$($1_JARNAME)_contents $$(NEWLINE)) \
       $$($1_CAPTURE_EXTRA_FILES)
 
+  # Find returns non zero if the META-INF dir does not exist, ignore this.
   ifeq (,$$($1_SKIP_METAINF))
     $1_SCAPTURE_METAINF=$$(foreach src,$$($1_SRCS), \
-        ( $(FIND) $$(src)/META-INF -type f 2> /dev/null | $(SED) 
's|$$(src)/|-C $$(src) |g' >> \
+        ( ( $(FIND) $$(src)/META-INF -type f 2> /dev/null || true ) \
+            | $(SED) 's|$$(src)/|-C $$(src) |g' >> \
         $$($1_BIN)/_the.$$($1_JARNAME)_contents) $$(NEWLINE) )
   endif
   $1_SUPDATE_CONTENTS=$(JAR) $$($1_JAR_UPDATE_OPTIONS) $$@ 
@$$($1_BIN)/_the.$$($1_JARNAME)_contents $$(NEWLINE)
@@ -270,19 +279,37 @@
     $1_JAR_UPDATE_OPTIONS := uf
   endif
 
+  # Include all variables of significance in the vardeps file
+  $1_VARDEPS := $(JAR) $$($1_JAR_CREATE_OPTIONS) $$($1_MANIFEST) $(RELEASE) 
$(COMPANY_NAME) \
+      $$($1_JARMAIN) $$($1_EXTRA_MANIFEST_ATTR)
+  $1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, $$(dir 
$$($1_JAR))_the.$$($1_JARNAME).vardeps)
+
   # Here is the rule that creates/updates the jar file.
-  $$($1_JAR) : $$($1_DEPS)
+  $$($1_JAR) : $$($1_DEPS) $$($1_MANIFEST) $$($1_VARDEPS_FILE)
        $(MKDIR) -p $$($1_BIN)
        $$($1_GREP_INCLUDE_OUTPUT)
        $$($1_GREP_EXCLUDE_OUTPUT)
-       $$(if $$($1_MANIFEST), \
-         $(SED) -e "s#@@RELEASE@@#$(RELEASE)#" \
-             -e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" $$($1_MANIFEST) > 
$$($1_MANIFEST_FILE) \
+        # If the vardeps file is part of the newer prereq list, it means that
+        # either the jar file does not exist, or we need to recreate it from
+        # from scratch anyway since a simple update will not catch all the 
+        # potential changes.
+       $$(if $$(filter $$($1_VARDEPS_FILE) $$($1_MANIFEST), $$?), \
+         $$(if $$($1_MANIFEST), \
+           $(SED) -e "s#@@RELEASE@@#$(RELEASE)#" \
+               -e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" $$($1_MANIFEST) > 
$$($1_MANIFEST_FILE) $$(NEWLINE) \
+         , \
+           $(RM) $$($1_MANIFEST_FILE) && $(TOUCH) $$($1_MANIFEST_FILE) 
$$(NEWLINE)) \
+         $$(if $$($1_JARMAIN), \
+           $(ECHO) "Main-Class: $$(strip $$($1_JARMAIN))" >> 
$$($1_MANIFEST_FILE) $$(NEWLINE)) \
+         $$(if $$($1_EXTRA_MANIFEST_ATTR), \
+           $(PRINTF) "$$($1_EXTRA_MANIFEST_ATTR)\n" >> $$($1_MANIFEST_FILE) 
$$(NEWLINE)) \
+         $(ECHO) Creating $$($1_NAME) $$(NEWLINE) \
+         $(JAR) $$($1_JAR_CREATE_OPTIONS) $$@ $$($1_MANIFEST_FILE) $$(NEWLINE) 
\
+         $$($1_SCAPTURE_CONTENTS) \
+         $$($1_SCAPTURE_METAINF) \
+         $$($1_SUPDATE_CONTENTS) \
+         $$($1_JARINDEX) && true \
        , \
-         $(RM) $$($1_MANIFEST_FILE) && $(TOUCH) $$($1_MANIFEST_FILE))
-       $$(if $$($1_JARMAIN),$(ECHO) "Main-Class: $$(strip $$($1_JARMAIN))" >> 
$$($1_MANIFEST_FILE))
-       $$(if $$($1_EXTRA_MANIFEST_ATTR),$(PRINTF) 
"$$($1_EXTRA_MANIFEST_ATTR)\n" >> $$($1_MANIFEST_FILE))
-       $$(if $$(wildcard $$@), \
          $(ECHO) Modifying $$($1_NAME) $$(NEWLINE) \
          $$($1_CAPTURE_CONTENTS) \
          $$($1_CAPTURE_METAINF) \
@@ -294,12 +321,6 @@
            $(ZIP) -q -d $$@ `$(CAT) $$($1_DELETESS_FILE)` ; \
          fi $$(NEWLINE) \
          $$($1_UPDATE_CONTENTS) true $$(NEWLINE) \
-         $$($1_JARINDEX) && true \
-       , \
-         $(ECHO) Creating $$($1_NAME) && $(JAR) $$($1_JAR_CREATE_OPTIONS) $$@ 
$$($1_MANIFEST_FILE) $$(NEWLINE) \
-         $$($1_SCAPTURE_CONTENTS) \
-         $$($1_SCAPTURE_METAINF) \
-         $$($1_SUPDATE_CONTENTS) \
          $$($1_JARINDEX) && true )
 
   # Add jar to target list
@@ -431,7 +452,7 @@
   $1_SRC:=$$(call ADD_SRCS,$$($1_SRC))
   # Make sure the dirs exist.
   $$(foreach d,$$($1_SRC), $$(if $$(wildcard $$d),,$$(error SRC specified to 
SetupJavaCompilation $1 contains missing directory $$d)))
-  $$(eval $$(call MakeDir,$$($1_BIN)))
+  $$(call MakeDir,$$($1_BIN))
   # Add all source roots to the find cache since we are likely going to run 
find
   # on these more than once. The cache will only be updated if necessary.
   $$(eval $$(call FillCacheFind,$$($1_SRC)))
@@ -475,23 +496,23 @@
     $1_ALL_COPIES += $$(filter $$(addprefix %,$$($1_COPY)),$$($1_ALL_SRCS))
     # Copy these explicitly
     $1_ALL_COPIES += $$($1_COPY_FILES)
-    # Copy must also respect filters.
-    ifneq (,$$($1_INCLUDES))
-      $1_ALL_COPIES := $$(filter $$($1_SRC_INCLUDES),$$($1_ALL_COPIES))
-    endif
-    ifneq (,$$($1_EXCLUDES))
-      $1_ALL_COPIES := $$(filter-out $$($1_SRC_EXCLUDES),$$($1_ALL_COPIES))
-    endif
-    ifneq (,$$($1_EXCLUDE_FILES))
-      $1_ALL_COPIES := $$(filter-out 
$$($1_EXCLUDE_FILES_PATTERN),$$($1_ALL_COPIES))
-    endif
   endif
-    ifneq (,$$($1_ALL_COPIES))
-      # Yep, there are files to be copied!
-      $1_ALL_COPY_TARGETS:=
-          $$(foreach i,$$($1_ALL_COPIES),$$(eval $$(call 
add_file_to_copy,$1,$$i)))
-      # Now we can depend on $$($1_ALL_COPY_TARGETS) to copy all files!
-    endif
+  # Copy must also respect filters.
+  ifneq (,$$($1_INCLUDES))
+    $1_ALL_COPIES := $$(filter $$($1_SRC_INCLUDES),$$($1_ALL_COPIES))
+  endif
+  ifneq (,$$($1_EXCLUDES))
+    $1_ALL_COPIES := $$(filter-out $$($1_SRC_EXCLUDES),$$($1_ALL_COPIES))
+  endif
+  ifneq (,$$($1_EXCLUDE_FILES))
+    $1_ALL_COPIES := $$(filter-out 
$$($1_EXCLUDE_FILES_PATTERN),$$($1_ALL_COPIES))
+  endif
+  ifneq (,$$($1_ALL_COPIES))
+    # Yep, there are files to be copied!
+    $1_ALL_COPY_TARGETS:=
+        $$(foreach i,$$($1_ALL_COPIES),$$(eval $$(call 
add_file_to_copy,$1,$$i)))
+    # Now we can depend on $$($1_ALL_COPY_TARGETS) to copy all files!
+  endif
 
   # Find all property files to be copied and cleaned from source to bin.
   ifneq (,$$($1_CLEAN)$$($1_CLEAN_FILES))
@@ -535,9 +556,14 @@
     $1_SJAVAC:=$$(subst 
com.sun.tools.javac.Main,com.sun.tools.sjavac.Main,$$($1_JAVAC))
 
     # Set the $1_REMOTE to spawn a background javac server.
-    $1_REMOTE:=--server:portfile=$$($1_SJAVAC_PORTFILE),id=$1,sjavac=$$(subst 
$$(SPACE),%20,$$(subst $$(COMMA),%2C,$$(strip $$($1_SERVER_JVM) $$($1_SJAVAC))))
+    $1_REMOTE:=--server:portfile=$$($1_SJAVAC_PORTFILE),id=$1,sjavac=$$(subst \
+        $$(SPACE),%20,$$(subst $$(COMMA),%2C,$$(strip $$($1_SERVER_JVM) 
$$($1_SJAVAC))))
 
-    $$($1_BIN)/_the.$1_batch: $$($1_SRCS) $$($1_DEPENDS)
+    $1_VARDEPS := $$($1_JVM) $$($1_SJAVAC) $$($1_SJAVAC_ARGS) $$($1_FLAGS) \
+        $$($1_HEADERS_ARG) $$($1_BIN)
+    $1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, 
$$($1_BIN)/_the.$1.vardeps)
+
+    $$($1_BIN)/_the.$1_batch: $$($1_SRCS) $$($1_DEPENDS) $$($1_VARDEPS_FILE)
        $(MKDIR) -p $$(@D) $$(dir $$($1_SJAVAC_PORTFILE))
         # As a workaround for sjavac not tracking api changed from the 
classpath, force full
         # recompile if an external dependency, which is something other than a 
source
@@ -592,8 +618,11 @@
       $1_HEADER_TARGETS := $$($1_HEADERS)/_the.$1_headers
     endif
 
+    $1_VARDEPS := $$($1_JVM) $$($1_JAVAC) $$($1_FLAGS) $$($1_BIN) 
$$($1_HEADERS_ARG)
+    $1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, 
$$($1_BIN)/_the.$1.vardeps)
+
     # When not using sjavac, pass along all sources to javac using an @file.
-    $$($1_BIN)/_the.$1_batch: $$($1_SRCS) $$($1_DEPENDS)
+    $$($1_BIN)/_the.$1_batch: $$($1_SRCS) $$($1_DEPENDS) $$($1_VARDEPS_FILE)
        $(MKDIR) -p $$(@D)
        $(RM) $$($1_BIN)/_the.$1_batch $$($1_BIN)/_the.$1_batch.tmp
        $$(call ListPathsSafely,$1_SRCS,\n, >> $$($1_BIN)/_the.$1_batch.tmp)
@@ -659,4 +688,5 @@
   $(if $(findstring yes, $(ENABLE_SJAVAC)), $(strip $2)/_the.$(strip 
$1)_pubapi, \
       $(strip $2)/_the.$(strip $1)_batch)
 endef
-endif
+
+endif # _JAVA_COMPILATION_GMK
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jdk9-0064e246d83f/make/common/MakeBase.gmk 
new/jdk9-d1f37d39ff24/make/common/MakeBase.gmk
--- old/jdk9-0064e246d83f/make/common/MakeBase.gmk      2015-01-25 
08:22:16.000000000 +0100
+++ new/jdk9-d1f37d39ff24/make/common/MakeBase.gmk      2015-02-06 
00:41:43.000000000 +0100
@@ -349,7 +349,7 @@
     # (and causing a crash on Cygwin).
     # Default shell seems to always be /bin/sh. Must override with bash to get 
this to work on Solaris.
     # Only use time if it's GNU time which supports format and output file.
-    WRAPPER_SHELL:=$$(BASH) $$(SRC_ROOT)/common/bin/shell-tracer.sh $$(if 
$$(findstring yes,$$(IS_GNU_TIME)),$$(TIME),-) 
$$(OUTPUT_ROOT)/build-trace-time.log $$(BASH)
+    WRAPPER_SHELL:=$$(BASH) $$(SRC_ROOT)/common/bin/shell-tracer.sh $$(if 
$$(findstring yes,$$(IS_GNU_TIME)),$$(TIME),-) 
$$(OUTPUT_ROOT)/build-trace-time.log $$(SHELL)
     SHELL=$$(warning $$(if $$@,Building $$@,Running shell command) $$(if $$<, 
(from $$<))$$(if $$?, ($$(wordlist 1, 20, $$?) $$(if $$(wordlist 21, 22, $$?), 
... [in total $$(words $$?) files]) newer)))$$(WRAPPER_SHELL)
   endif
   # Never remove warning messages; this is just for completeness
@@ -392,11 +392,9 @@
 endef
 
 # Make directory without forking mkdir if not needed
-define MakeDir
-  ifneq ($$(wildcard $1 $2 $3 $4 $5 $6 $7 $8 $9),$$(strip $1 $2 $3 $4 $5 $6 $7 
$8 $9))
-    $$(shell $(MKDIR) -p $1 $2 $3 $4 $5 $6 $7 $8 $9)
-  endif
-endef
+MakeDir = \
+    $(strip $(if $(subst $(wildcard $1 $2 $3 $4 $5 $6 $7 $8 $9),,$(strip $1 $2 
$3 $4 $5 $6 $7 $8 $9)),\
+      $(shell $(MKDIR) -p $1 $2 $3 $4 $5 $6 $7 $8 $9)))
 
 ifeq ($(OPENJDK_TARGET_OS),solaris)
   # On Solaris, if the target is a symlink and exists, cp won't overwrite.
@@ -446,6 +444,11 @@
 # Filter out duplicate sub strings while preserving order. Keeps the first 
occurance.
 uniq = $(if $1,$(firstword $1) $(call uniq,$(filter-out $(firstword $1),$1)))
 
+# String equals
+equals = \
+    $(and $(findstring $(strip $1),$(strip $2)),\
+        $(findstring $(strip $2),$(strip $1)))
+
 ifneq ($(DISABLE_CACHE_FIND), true)
   
################################################################################
   # In Cygwin, finds are very costly, both because of expensive forks and 
because
@@ -543,6 +546,80 @@
 endef
 
 
################################################################################
+# ShellQuote
+#
+# Quotes a string with single quotes and replaces single quotes with '\'' so 
+# that the contents survives being given to the shell.
+
+ShellQuote = \
+    $(SQUOTE)$(subst $(SQUOTE),$(SQUOTE)\$(SQUOTE)$(SQUOTE),$(strip 
$1))$(SQUOTE)
+
+################################################################################
+# Write to and read from file
+
+# Param 1 - File to read
+ReadFile = \
+    $(shell $(CAT) $1)
+
+# Param 1 - Text to write
+# Param 2 - File to write to
+# Use printf to get consistent behavior on all platforms.
+WriteFile = \
+    $(shell $(PRINTF) "%s" $(call ShellQuote, $1) > $2)
+
+################################################################################
+# DependOnVariable
+#
+# This macro takes a variable name and puts the value in a file only if the 
+# value has changed since last. The name of the file is returned. This can be 
+# used to create rule dependencies on make variable values. The following
+# example would get rebuilt if the value of SOME_VAR was changed:
+#
+# path/to/some-file: $(call DependOnVariable, SOME_VAR)
+#         echo $(SOME_VAR) > $@
+#
+# Note that leading and trailing white space in the value is ignored.
+#
+
+# Defines the sub directory structure to store variable value file in
+DependOnVariableDirName = \
+    $(strip $(subst $(SRC_ROOT)/,,\
+        $(if $(filter /%, $(firstword $(MAKEFILE_LIST))), \
+          $(firstword $(MAKEFILE_LIST)), \
+          $(CURDIR)/$(firstword $(MAKEFILE_LIST)))))
+
+# Defines the name of the file to store variable value in. Generates a name
+# unless parameter 2 is given.
+# Param 1 - Name of variable
+# Param 2 - (optional) name of file to store value in
+DependOnVariableFileName = \
+    $(strip $(if $(strip $2), $2, \
+      $(MAKESUPPORT_OUTPUTDIR)/vardeps/$(DependOnVariableDirName)/$(strip 
$1).vardeps))
+
+# Does the actual work with parameters stripped.
+# If the file exists AND the contents is the same as the variable, do nothing
+# else print a new file.
+# Always returns the name of the file where the value was printed.
+# Param 1 - Name of variable
+# Param 2 - (optional) name of file to store value in
+DependOnVariableHelper = \
+    $(strip $(if $(and $(wildcard $(call DependOnVariableFileName, $1, $2)),\
+        $(call equals, $(strip $($1)), \
+            $(call ReadFile, $(call DependOnVariableFileName, $1, $2)))),,\
+      $(call MakeDir, $(dir $(call DependOnVariableFileName, $1, $2))) \
+      $(if $(findstring $(LOG_LEVEL), trace), \
+          $(info Variable $1: >$(strip $($1))<) \
+          $(info File: >$(call ReadFile, $(call DependOnVariableFileName, $1, 
$2))<)) \
+      $(call WriteFile, $($1), $(call DependOnVariableFileName, $1, $2))) \
+    $(call DependOnVariableFileName, $1, $2))
+
+# Main macro
+# Param 1 - Name of variable
+# Param 2 - (optional) name of file to store value in
+DependOnVariable = \
+    $(call DependOnVariableHelper,$(strip $1),$(strip $2))
+
+################################################################################
 
 # Hook to include the corresponding custom file, if present.
 $(eval $(call IncludeCustomExtension, , common/MakeBase.gmk))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jdk9-0064e246d83f/make/common/NativeCompilation.gmk 
new/jdk9-d1f37d39ff24/make/common/NativeCompilation.gmk
--- old/jdk9-0064e246d83f/make/common/NativeCompilation.gmk     2015-01-25 
08:22:16.000000000 +0100
+++ new/jdk9-d1f37d39ff24/make/common/NativeCompilation.gmk     2015-02-06 
00:41:43.000000000 +0100
@@ -114,7 +114,7 @@
       endif
     endif
 
-    $$($1_$2_OBJ) : $2 | $$($1_BUILD_INFO)
+    $$($1_$2_OBJ) : $2 $$($1_COMPILE_VARDEPS_FILE) | $$($1_BUILD_INFO)
        $(ECHO) $(LOG_INFO) "Compiling $$(notdir $2) (for $$(notdir 
$$($1_TARGET)))"
         ifneq ($(TOOLCHAIN_TYPE), microsoft)
           # The Solaris studio compiler doesn't output the full path to the 
object file in the
@@ -133,7 +133,8 @@
          ($$($1_$2_COMP) $$($1_$2_FLAGS) -showIncludes 
$$($1_$2_DEBUG_OUT_FLAGS) \
              $(CC_OUT_OPTION)$$($1_$2_OBJ) $2 ; echo $$$$? > 
$$($1_$2_DEP).exitvalue) \
              | $(TEE) $$($1_$2_DEP).raw | $(GREP) -v -e "^Note: including 
file:" \
-             -e "^$(notdir $2)$$$$" ; exit `cat $$($1_$2_DEP).exitvalue`
+             -e "^$(notdir $2)$$$$" || test "$$$$?" = "1" ; \
+             exit `cat $$($1_$2_DEP).exitvalue`
          $(RM) $$($1_$2_DEP).exitvalue
          ($(ECHO) $$@: \\ \
          && $(SED) $(WINDOWS_SHOWINCLUDE_SED_PATTERN) $$($1_$2_DEP).raw) > 
$$($1_$2_DEP)
@@ -306,7 +307,7 @@
   endif
 
   # Make sure the dirs exist.
-  $$(eval $$(call MakeDir,$$($1_OBJECT_DIR) $$($1_OUTPUT_DIR)))
+  $$(call MakeDir,$$($1_OBJECT_DIR) $$($1_OUTPUT_DIR))
   $$(foreach d,$$($1_SRC), $$(if $$(wildcard $$d),,$$(error SRC specified to 
SetupNativeCompilation $1 contains missing directory $$d)))
 
   # Find all files in the source trees. Sort to remove duplicates.
@@ -426,15 +427,16 @@
 
   $1_BUILD_INFO := $$($1_OBJECT_DIR)/_build-info.marker
 
-  # Setup rule for printing progress info when compiling source files.
-  # This is a rough heuristic and may not always print accurate information.
-  $$($1_BUILD_INFO): $$($1_SRCS)
-        ifeq ($$(wildcard $$($1_TARGET)),)
-         $(ECHO) 'Creating $$($1_BASENAME) from $$(words $$?) file(s)'
-        else
-         $(ECHO) 'Updating $$($1_BASENAME) from $$(words $$?) file(s)'
-        endif
-       $(TOUCH) $$@
+  # Track variable changes for all variables that affect the compilation 
command
+  # lines for all object files in this setup. This includes at least all the 
+  # variables used in the call to add_native_source below.
+  $1_COMPILE_VARDEPS := $$($1_CFLAGS) $$($1_EXTRA_CFLAGS) $(SYSROOT_CFLAGS) \
+      $$($1_CXXFLAGS) $$($1_EXTRA_CXXFLAGS) \
+      $$($1_CC) $$($1_CXX) $$($1_OBJC) $$($1_ASFLAGS) \
+      $$(foreach s, $$($1_SRCS), \
+          $$($1_$$(notdir $$s)_CFLAGS) $$($1_$$(notdir $$s)_CXXFLAGS))
+  $1_COMPILE_VARDEPS_FILE := $$(call DependOnVariable, $1_COMPILE_VARDEPS, \
+      $$($1_OBJECT_DIR)/$$($1_NOSUFFIX).comp.vardeps)
 
   # Now call add_native_source for each source file we are going to compile.
   $$(foreach p,$$($1_SRCS), \
@@ -444,13 +446,28 @@
           $$($1_CXXFLAGS) $$($1_EXTRA_CXXFLAGS) $(SYSROOT_CFLAGS), \
           $$($1_CXX),$$($1_OBJC),$$($1_ASFLAGS))))
 
+  # Setup rule for printing progress info when compiling source files.
+  # This is a rough heuristic and may not always print accurate information.
+  $$($1_BUILD_INFO): $$($1_SRCS) $$($1_COMPILE_VARDEPS_FILE)
+        ifeq ($$(wildcard $$($1_TARGET)),)
+         $(ECHO) 'Creating $$($1_BASENAME) from $$(words $$(filter-out 
%.vardeps, $$?)) file(s)'
+        else
+         $(ECHO) 'Updating $$($1_BASENAME) from $$(words $$(filter-out 
%.vardeps, $$?)) file(s)'
+        endif
+       $(TOUCH) $$@
+
   # On windows we need to create a resource file
   ifeq ($(OPENJDK_TARGET_OS), windows)
     ifneq (,$$($1_VERSIONINFO_RESOURCE))
       $1_RES:=$$($1_OBJECT_DIR)/$$($1_BASENAME).res
       $1_RES_DEP:=$$($1_RES).d
       -include $$($1_RES_DEP)
-      $$($1_RES): $$($1_VERSIONINFO_RESOURCE)
+
+      $1_RES_VARDEPS := $(RC) $$($1_RC_FLAGS)
+      $1_RES_VARDEPS_FILE := $$(call DependOnVariable, $1_RES_VARDEPS, \
+          $$($1_RES).vardeps)
+
+      $$($1_RES): $$($1_VERSIONINFO_RESOURCE) $$($1_RES_VARDEPS_FILE)
                $(ECHO) $(LOG_INFO) "Compiling resource $$(notdir 
$$($1_VERSIONINFO_RESOURCE)) (for $$(notdir $$($1_TARGET)))"
                $(RC) $$($1_RC_FLAGS) $(CC_OUT_OPTION)$$@ 
$$($1_VERSIONINFO_RESOURCE)
                 # Windows RC compiler does not support -showIncludes, so we 
mis-use CL for this.
@@ -462,7 +479,9 @@
     ifneq (,$$($1_MANIFEST))
       $1_GEN_MANIFEST:=$$($1_OBJECT_DIR)/$$($1_PROGRAM).manifest
       
IMVERSIONVALUE:=$(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION).$(JDK_UPDATE_VERSION).$(COOKED_BUILD_NUMBER)
-      $$($1_GEN_MANIFEST): $$($1_MANIFEST)
+      $1_MANIFEST_VARDEPS_FILE := $$(call DependOnVariable, IMVERSIONVALUE, \
+          $$($1_GEN_MANIFEST).vardeps)
+      $$($1_GEN_MANIFEST): $$($1_MANIFEST) $$($1_MANIFEST_VARDEPS_FILE)
                $(SED) 
's%IMVERSION%$$(IMVERSIONVALUE)%g;s%PROGRAM%$$($1_PROGRAM)%g' $$< > $$@
     endif
   endif
@@ -575,8 +594,13 @@
 
     $1_EXTRA_LDFLAGS_SUFFIX += $(GLOBAL_LDFLAGS_SUFFIX)
 
+    $1_VARDEPS := $$($1_LD) $(SYSROOT_LDFLAGS) $$($1_LDFLAGS) 
$$($1_EXTRA_LDFLAGS) \
+        $$($1_LDFLAGS_SUFFIX) $$($1_EXTRA_LDFLAGS_SUFFIX)
+    $1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, \
+        $$($1_OBJECT_DIR)/$$($1_NOSUFFIX).vardeps)
+
     $$($1_TARGET): $$($1_EXPECTED_OBJS) $$($1_RES) $$($1_REAL_MAPFILE) \
-        $$($1_DEBUGINFO_EXTRA_DEPS)
+        $$($1_DEBUGINFO_EXTRA_DEPS) $$($1_VARDEPS_FILE)
                $(ECHO) $(LOG_INFO) "Linking $$($1_BASENAME)"
                $$($1_LD) $$($1_LDFLAGS) $$($1_EXTRA_LDFLAGS) 
$(SYSROOT_LDFLAGS) \
                    $(LD_OUT_OPTION)$$@ \
@@ -592,8 +616,12 @@
   endif
 
   ifneq (,$$($1_STATIC_LIBRARY))
+    $1_VARDEPS := $(AR) $$($1_ARFLAGS) $$($1_LDFLAGS_SUFFIX) 
$$($1_EXTRA_LDFLAGS_SUFFIX)
+    $1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, \
+        $$($1_OBJECT_DIR)/$$($1_NOSUFFIX).vardeps)
+
     # Generating a static library, ie object file archive.
-    $$($1_TARGET): $$($1_EXPECTED_OBJS) $$($1_RES)
+    $$($1_TARGET): $$($1_EXPECTED_OBJS) $$($1_RES) $$($1_VARDEPS_FILE)
        $(ECHO) $(LOG_INFO) "Archiving $$($1_STATIC_LIBRARY)"
        $(AR) $$($1_ARFLAGS) $(AR_OUT_OPTION)$$($1_TARGET) $$($1_EXPECTED_OBJS) 
\
            $$($1_RES) $$($1_LDFLAGS_SUFFIX) $$($1_EXTRA_LDFLAGS_SUFFIX)
@@ -603,8 +631,13 @@
     # A executable binary has been specified, setup the target for it.
     $1_EXTRA_LDFLAGS_SUFFIX += $(GLOBAL_LDFLAGS_SUFFIX)
 
+    $1_VARDEPS := $$($1_LDEXE) $(SYSROOT_LDFLAGS) $$($1_LDFLAGS) 
$$($1_EXTRA_LDFLAGS) \
+        $$($1_LDFLAGS_SUFFIX) $$($1_EXTRA_LDFLAGS_SUFFIX)
+    $1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, \
+        $$($1_OBJECT_DIR)/$$($1_NOSUFFIX).vardeps)
+
     $$($1_TARGET): $$($1_EXPECTED_OBJS) $$($1_RES) $$($1_GEN_MANIFEST) \
-        $$($1_DEBUGINFO_EXTRA_DEPS)
+        $$($1_DEBUGINFO_EXTRA_DEPS) $$($1_VARDEPS_FILE)
                $(ECHO) $(LOG_INFO) "Linking executable $$($1_BASENAME)"
                $$($1_LDEXE) $$($1_LDFLAGS) $$($1_EXTRA_LDFLAGS) 
$(SYSROOT_LDFLAGS) \
                    $(EXE_OUT_OPTION)$$($1_TARGET) \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jdk9-0064e246d83f/make/common/TextFileProcessing.gmk 
new/jdk9-d1f37d39ff24/make/common/TextFileProcessing.gmk
--- old/jdk9-0064e246d83f/make/common/TextFileProcessing.gmk    2015-01-25 
08:22:16.000000000 +0100
+++ new/jdk9-d1f37d39ff24/make/common/TextFileProcessing.gmk    2015-02-06 
00:41:43.000000000 +0100
@@ -34,7 +34,7 @@
 # param 3 = the target base directory
 # param 4 = the target file name (possibly with a partial path)
 define SetupSingleTextFileForProcessing
-  $(strip $3)/$(strip $4): $2
+  $(strip $3)/$(strip $4): $2 $$($1_VARDEPS_FILE)
        $(ECHO) $(LOG_INFO) "Processing $(strip $4)"
        $(MKDIR) -p '$$(@D)'
        $(RM) '$$@' '[email protected]' '[email protected]'
@@ -193,6 +193,9 @@
     $1_INCLUDES_COMMAND_LINE := $(CAT)
   endif
 
+  $1_VARDEPS := $$($1_INCLUDES_COMMAND_LINE) $$($1_REPLACEMENTS_COMMAND_LINE)
+  $1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS)
+
   # Reset target list before populating it
   $1 :=
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jdk9-0064e246d83f/modules.xml 
new/jdk9-d1f37d39ff24/modules.xml
--- old/jdk9-0064e246d83f/modules.xml   2015-01-25 08:22:16.000000000 +0100
+++ new/jdk9-d1f37d39ff24/modules.xml   2015-02-06 00:41:43.000000000 +0100
@@ -108,6 +108,9 @@
       <name>java.security</name>
     </export>
     <export>
+      <name>java.security.acl</name>
+    </export>
+    <export>
       <name>java.security.cert</name>
     </export>
     <export>
@@ -446,7 +449,6 @@
     <depend re-exports="true">java.management</depend>
     <depend re-exports="true">java.naming</depend>
     <depend re-exports="true">java.prefs</depend>
-    <depend re-exports="true">java.security.acl</depend>
     <depend re-exports="true">java.security.jgss</depend>
     <depend re-exports="true">java.security.sasl</depend>
     <depend re-exports="true">java.sql.rowset</depend>
@@ -891,13 +893,6 @@
     <depend re-exports="true">java.xml.ws</depend>
   </module>
   <module>
-    <name>java.security.acl</name>
-    <depend>java.base</depend>
-    <export>
-      <name>java.security.acl</name>
-    </export>
-  </module>
-  <module>
     <name>java.security.jgss</name>
     <depend>java.base</depend>
     <depend>java.naming</depend>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jdk9-0064e246d83f/test/make/TestJavaCompilation.gmk 
new/jdk9-d1f37d39ff24/test/make/TestJavaCompilation.gmk
--- old/jdk9-0064e246d83f/test/make/TestJavaCompilation.gmk     2015-01-25 
08:22:16.000000000 +0100
+++ new/jdk9-d1f37d39ff24/test/make/TestJavaCompilation.gmk     2015-02-06 
00:41:43.000000000 +0100
@@ -50,6 +50,9 @@
 clean-jar1:
        $(RM) -r $(OUTPUT_DIR)/_jar1* $(OUTPUT_DIR)/jar1*
 
+$(JAR1_MANIFEST): | $(OUTPUT_DIR)/_jar1_created
+       $(ECHO) "Test-Attribute: value" > $(JAR1_MANIFEST)
+
 $(OUTPUT_DIR)/_jar1_created: $(DEPS)
        $(RM) -r $(JAR1_SRC_ROOT)
        $(RM) $(JAR1_FILE)
@@ -61,7 +64,6 @@
        $(TOUCH) $(JAR1_SRC_ROOT)/dir1/file1.class
        $(TOUCH) $(JAR1_SRC_ROOT)/dir2/file2.class
        $(TOUCH) $(JAR1_SRC_ROOT)/META-INF/metafile
-       $(ECHO) "Test-Attribute: value" > $(JAR1_MANIFEST)
        $(TOUCH) $@
 
 $(eval $(call SetupArchive,BUILD_JAR1, \
@@ -77,7 +79,7 @@
        $(DIFF) -r $(JAR1_SRC_ROOT)/dir1 $(JAR1_UNZIP)/dir1
        $(DIFF) -r $(JAR1_SRC_ROOT)/dir2 $(JAR1_UNZIP)/dir2
        $(DIFF) -r $(JAR1_SRC_ROOT)/META-INF/metafile 
$(JAR1_UNZIP)/META-INF/metafile
-       if [ "`$(GREP) 'Test-Attribute: value' $(JAR1_MANIFEST)`" = "" ]; then \
+       if [ "`$(GREP) 'Test-Attribute: value' 
$(JAR1_UNZIP)/META-INF/MANIFEST.MF`" = "" ]; then \
          $(ECHO) "Could not find Test-Attribute in manifest of $(JAR1_FILE)"; \
          exit 1; \
        fi
@@ -88,7 +90,7 @@
 
 # Change a source file and call this makefile again to force the jar to be 
 # updated. 
-$(OUTPUT_DIR)_jar1_updated: $(OUTPUT_DIR)/_jar1_verified
+$(OUTPUT_DIR)/_jar1_updated: $(OUTPUT_DIR)/_jar1_verified
        $(ECHO) updated > $(JAR1_SRC_ROOT)/dir1/file1.class
        $(ECHO) updated > $(JAR1_SRC_ROOT)/META-INF/metafile
        $(TOUCH) $(OUTPUT_DIR)/_jar1_created
@@ -96,9 +98,26 @@
        $(TOUCH) $@
 
 update-jar1: $(OUTPUT_DIR)_jar1_updated
-TEST_TARGETS += $(OUTPUT_DIR)_jar1_updated
 
-.PHONY: clean-jar1 create-jar1 update-jar1
+# Change the manifest file and call this makefile again to force the jar
+# to be updated
+$(OUTPUT_DIR)/_jar1_updated_manifest: $(OUTPUT_DIR)/_jar1_updated
+       $(ECHO) "Test-Attribute: foobar" > $(JAR1_MANIFEST)
+       +$(MAKE) -f $(THIS_FILE) $(BUILD_JAR1)
+       $(RM) -r $(JAR1_UNZIP)
+       $(MKDIR) -p $(JAR1_UNZIP)
+       $(CD) $(JAR1_UNZIP) && $(UNZIP) $(JAR1_FILE) $(LOG_DEBUG)
+       if [ "`$(GREP) 'Test-Attribute: foobar' 
$(JAR1_UNZIP)/META-INF/MANIFEST.MF`" = "" ]; then \
+         $(ECHO) "Could not find Test-Attribute in manifest of $(JAR1_FILE)"; \
+         exit 1; \
+       fi
+       $(TOUCH) $@
+
+update-jar1-manifest: $(OUTPUT_DIR)/_jar1_updated_manifest
+
+TEST_TARGETS += $(OUTPUT_DIR)/_jar1_updated 
$(OUTPUT_DIR)/_jar1_updated_manifest
+
+.PHONY: clean-jar1 create-jar1 update-jar1 update-jar1-manifest
 
 
################################################################################
 # Test: jar2
@@ -139,14 +158,14 @@
 create-jar2: $(OUTPUT_DIR)/_jar2_verified
 TEST_TARGETS += $(OUTPUT_DIR)/_jar2_verified
 
-$(OUTPUT_DIR)_jar2_updated: $(OUTPUT_DIR)/_jar2_verified
+$(OUTPUT_DIR)/_jar2_updated: $(OUTPUT_DIR)/_jar2_verified
        $(ECHO) updated > $(JAR2_SRC_ROOT1)/dir1/file1.class
        $(TOUCH) $(OUTPUT_DIR)/_jar2_created
        +$(MAKE) -f $(THIS_FILE) $(OUTPUT_DIR)/_jar2_verified
        $(TOUCH) $@
 
-update-jar2: $(OUTPUT_DIR)_jar2_updated
-TEST_TARGETS += $(OUTPUT_DIR)_jar2_updated
+update-jar2: $(OUTPUT_DIR)/_jar2_updated
+TEST_TARGETS += $(OUTPUT_DIR)/_jar2_updated
 
 .PHONY: clean-jar2 create-jar2 update-jar2
 
@@ -200,14 +219,14 @@
 create-jar3: $(OUTPUT_DIR)/_jar3_verified
 TEST_TARGETS += $(OUTPUT_DIR)/_jar3_verified
 
-$(OUTPUT_DIR)_jar3_updated: $(OUTPUT_DIR)/_jar3_verified
+$(OUTPUT_DIR)/_jar3_updated: $(OUTPUT_DIR)/_jar3_verified
        $(ECHO) updated > $(JAR3_SRC_ROOT2)/extra-file
        $(TOUCH) $(OUTPUT_DIR)/_jar3_created
        +$(MAKE) -f $(THIS_FILE) $(OUTPUT_DIR)/_jar3_verified
        $(TOUCH) $@
 
-update-jar3: $(OUTPUT_DIR)_jar3_updated
-TEST_TARGETS += $(OUTPUT_DIR)_jar3_updated
+update-jar3: $(OUTPUT_DIR)/_jar3_updated
+TEST_TARGETS += $(OUTPUT_DIR)/_jar3_updated
 
 .PHONY: clean-jar3 create-jar3 update-jar3
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jdk9-0064e246d83f/test/make/TestMakeBase.gmk 
new/jdk9-d1f37d39ff24/test/make/TestMakeBase.gmk
--- old/jdk9-0064e246d83f/test/make/TestMakeBase.gmk    2015-01-25 
08:22:16.000000000 +0100
+++ new/jdk9-d1f37d39ff24/test/make/TestMakeBase.gmk    2015-02-06 
00:41:43.000000000 +0100
@@ -33,7 +33,14 @@
     $(SRC_ROOT)/make/common/MakeBase.gmk \
     #
 
+# On macosx, file system timestamps only have 1 second resultion so must add
+# sleeps to properly test dependencies.
+ifeq ($(OPENJDK_BUILD_OS), macosx)
+  SLEEP_ON_MAC := sleep 1
+endif
+
 OUTPUT_DIR := $(TESTMAKE_OUTPUTDIR)/make-base
+$(call MakeDir, $(OUTPUT_DIR))
 
 
################################################################################
 # Escape $
@@ -56,5 +63,124 @@
 TEST_TARGETS += $(ESCAPE_DOLLAR_DIR)/_escape_dollar
 
 
################################################################################
+# Test Equals
+
+EQUALS_VALUE1 := value1$(SPACE)
+EQUALS_VALUE2 := value2
+
+ifneq ($(call equals, $(EQUALS_VALUE1), $(EQUALS_VALUE2)), )
+  $(error The strings >$(EQUALS_VALUE1)< and >$(EQUALS_VALUE2)< are equal)
+endif
+
+ifeq ($(call equals, $(EQUALS_VALUE1), $(EQUALS_VALUE1)), )
+  $(error The strings >$(EQUALS_VALUE1)< and >$(EQUALS_VALUE1)< are not equal)
+endif
+
+################################################################################
+# Test ShellQuote
+
+SHELL_QUOTE_VALUE := foo '""' "''" bar
+SHELL_QUOTE_RESULT := $(shell $(ECHO) $(call ShellQuote, \
+    $(SHELL_QUOTE_VALUE)))
+
+ifneq ($(SHELL_QUOTE_VALUE), $(SHELL_QUOTE_RESULT))
+  $(error Expected: >$(SHELL_QUOTE_VALUE)< - Result: >$(SHELL_QUOTE_RESULT)<)
+endif
+
+################################################################################
+# Test read and write to file
+
+READ_WRITE_FILE := $(OUTPUT_DIR)/read-write
+READ_WRITE_VALUE := foo '""' "''" \t\n\\ bar
+$(call WriteFile, $(READ_WRITE_VALUE), $(READ_WRITE_FILE))
+READ_WRITE_RESULT := $(call ReadFile, $(READ_WRITE_FILE))
+
+ifneq ($(READ_WRITE_VALUE), $(READ_WRITE_RESULT))
+  $(error Expected: >$(READ_WRITE_VALUE)< - Result: >$(READ_WRITE_RESULT)<)
+endif
+
+################################################################################
+# Test creating dependencies on make variables
+
+VARDEP_DIR := $(OUTPUT_DIR)/vardep
+VARDEP_SRC_FILE := $(VARDEP_DIR)/src-file
+VARDEP_TARGET_FILE := $(VARDEP_DIR)/target-file
+VARDEP_FLAG_FILE := $(VARDEP_DIR)/flag-file
+
+$(VARDEP_DIR)/src-file:
+       $(MKDIR) -p $(@D)
+       $(ECHO) "some string XXX" > $@
+
+$(VARDEP_TARGET_FILE): $(VARDEP_DIR)/src-file \
+    $(call DependOnVariable, VARDEP_TEST_VAR)
+       $(MKDIR) -p $(@D)
+       $(SED) -e 's/XXX/$(VARDEP_TEST_VAR)/g' $< > $@
+       $(TOUCH) $(VARDEP_FLAG_FILE)
+
+test-vardep:
+       $(RM) $(VARDEP_SRC_FILE) $(VARDEP_TARGET_FILE) $(VARDEP_FLAG_FILE)
+        #
+        # Simply create the target file and verify that it has the correct 
value
+        #
+       $(MAKE) -f $(THIS_FILE) VARDEP_TEST_VAR=value1 $(VARDEP_TARGET_FILE)
+       $(PRINTF) "Expecting value1: %s\n" "`$(CAT) $(VARDEP_DIR)/target-file`"
+       test "some string value1" = "`$(CAT) $(VARDEP_DIR)/target-file`"
+       test -e $(VARDEP_FLAG_FILE)
+        #
+        # Make the target file again and verify that the value is updated with 
+        # the new value
+        #
+       $(SLEEP_ON_MAC)
+       $(MAKE) -f $(THIS_FILE) VARDEP_TEST_VAR=value2 $(VARDEP_TARGET_FILE)
+       $(PRINTF) "Expecting value2: %s\n" "`$(CAT) $(VARDEP_DIR)/target-file`"
+       test "some string value2" = "`$(CAT) $(VARDEP_DIR)/target-file`"
+       test -e $(VARDEP_FLAG_FILE)
+        #
+        # Make the target again with the same value and verify that the recipe
+        # was never run by checking that the flag file was not recreated
+        #
+       $(SLEEP_ON_MAC)
+       $(RM) $(VARDEP_FLAG_FILE)
+       $(MAKE) -f $(THIS_FILE) VARDEP_TEST_VAR=value2 $(VARDEP_TARGET_FILE)
+       $(PRINTF) "Expecting value2: %s\n" "`$(CAT) $(VARDEP_DIR)/target-file`"
+       test "some string value2" = "`$(CAT) $(VARDEP_DIR)/target-file`"
+       test ! -e $(VARDEP_FLAG_FILE)
+        #
+        # Test running with spaces at the end and the middle of the value
+        # and verify that the file isn't rewritten the second time
+        #
+       $(MAKE) -f $(THIS_FILE) VARDEP_TEST_VAR="value3  foo " 
$(VARDEP_TARGET_FILE)
+       $(RM) $(VARDEP_FLAG_FILE)
+       $(MAKE) -f $(THIS_FILE) VARDEP_TEST_VAR="value3 foo" 
$(VARDEP_TARGET_FILE)
+       test ! -e $(VARDEP_FLAG_FILE)
+       $(MAKE) -f $(THIS_FILE) VARDEP_TEST_VAR=" value3  foo" 
$(VARDEP_TARGET_FILE)
+       test ! -e $(VARDEP_FLAG_FILE)
+
+# Test specifying a specific value file to store variable in
+VARDEP_VALUE_FILE := $(VARDEP_DIR)/value-file
+VARDEP_TEST_VAR2 := value3
+
+VARDEP_RETURN_VALUE := $(call DependOnVariable, VARDEP_TEST_VAR2, 
$(VARDEP_VALUE_FILE))
+ifneq ($(VARDEP_VALUE_FILE), $(VARDEP_RETURN_VALUE))
+  $(error Expected: $(VARDEP_VALUE_FILE) - DependOnVariable: 
$(VARDEP_RETURN_VALUE))
+endif
+VARDEP_FILE_CONTENTS := $(shell $(CAT) $(VARDEP_VALUE_FILE))
+ifneq ($(VARDEP_TEST_VAR2), $(VARDEP_FILE_CONTENTS))
+  $(error Expected: $(VARDEP_TEST_VAR2) - DependOnVariable file contained: \
+      $(VARDEP_FILE_CONTENTS))
+endif
+
+# Test with a variable value containing some problematic characters
+VARDEP_TEST_VAR3 := foo '""' "''" bar
+VARDEP_VALUE_FILE := $(call DependOnVariable, VARDEP_TEST_VAR3)
+VARDEP_FILE_CONTENTS := $(shell $(CAT) $(VARDEP_VALUE_FILE))
+ifneq ($(VARDEP_TEST_VAR3), $(VARDEP_FILE_CONTENTS))
+  $(error Expected: >$(VARDEP_TEST_VAR3)< - DependOnVariable file contained: \
+      >$(VARDEP_FILE_CONTENTS)<)
+endif
+
+TEST_TARGETS += test-vardep
+
+################################################################################
 
 all: $(TEST_TARGETS)

++++++ 0064e246d83f.tar.bz2 -> e0947f58c9c1.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/java-1_9_0-openjdk/0064e246d83f.tar.bz2 
/work/SRC/openSUSE:Factory/.java-1_9_0-openjdk.new/e0947f58c9c1.tar.bz2 differ: 
char 11, line 1

++++++ 0064e246d83f.tar.bz2 -> f6b8edd397ee.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/java-1_9_0-openjdk/0064e246d83f.tar.bz2 
/work/SRC/openSUSE:Factory/.java-1_9_0-openjdk.new/f6b8edd397ee.tar.bz2 differ: 
char 11, line 1

++++++ fix-system-jpeg-loading.patch ++++++
--- jdk9/jdk/make/lib/Awt2dLibraries.gmk        2015-02-06 00:43:20.000000000 
+0100
+++ jdk9/jdk/make/lib/Awt2dLibraries.gmk        2015-02-17 16:35:03.242205439 
+0100
@@ -476,7 +476,7 @@
 ifeq ($(USE_EXTERNAL_LIBJPEG), true)
   LIBJPEG_LIBS := -ljpeg
   BUILD_LIBJAVAJPEG_INCLUDE_FILES := \
-      imageIOJPEG.c \
+      imageioJPEG.c \
       jpegdecoder.c
   BUILD_LIBJAVAJPEG_HEADERS :=
 else
-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to