changeset 2364:0811a305cdb3

Perform minimal compilation prior to bootstrap build. 2011-03-14 Andrew John Hughes <ahughes@redhat.com> Perform minimal compilation prior to bootstrap build. * Makefile.am: (ICEDTEA_BOOTSTRAP_DIRS): Removed. (ICEDTEA_BOOTSTRAP_RESOURCES): Removed. (ICEDTEA_BOOTSTRAP_CLASSES): Reduced to classes missing altogether or missing required methods. * patches/4964490-generify_hotspot_jdi.patch: Update the servicability agent to build with source/target 1.6. * patches/boot/corba-dependencies.patch: Access JDK sources and classes from langtools build. * patches/boot/ecj-opts.patch: Dropped PREFER_SOURCE CORBA change, incorporated in corba-dependencies. * patches/boot/hotspot-jdk-dependency.patch: Access JDK and generated sources to build servicability agent. * patches/boot/jaxws-jdk-dependency.patch: Access JDK sources for com.sun.net.httpserver. * patches/boot/jaxws-langtools-dependency.patch: Access langtools classes for Javadoc. * patches/boot/langtools-force-old-jdk.patch: Always assume an old JDK is being used, don't try and detect this based on presence of NIO2 classes as these may be prebuilt by rt-class-files.
author Andrew John Hughes <ahughes@redhat.com>
date Mon, 14 Mar 2011 21:22:03 +0000
parents c52c8d297c79
children eeb7d84e7ae5
files ChangeLog Makefile.am patches/4964490-generify_hotspot_jdi.patch patches/boot/corba-dependencies.patch patches/boot/ecj-opts.patch patches/boot/hotspot-jdk-dependency.patch patches/boot/jaxws-jdk-dependency.patch patches/boot/jaxws-langtools-dependency.patch patches/boot/langtools-force-old-jdk.patch
diffstat 9 files changed, 490 insertions(+), 45 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Mon Mar 07 20:15:21 2011 +0000
+++ b/ChangeLog	Mon Mar 14 21:22:03 2011 +0000
@@ -1,3 +1,32 @@
+2011-03-14  Andrew John Hughes  <ahughes@redhat.com>
+
+	Perform minimal compilation prior to bootstrap
+	build.
+	* Makefile.am:
+	(ICEDTEA_BOOTSTRAP_DIRS): Removed.
+	(ICEDTEA_BOOTSTRAP_RESOURCES): Removed.
+	(ICEDTEA_BOOTSTRAP_CLASSES): Reduced to
+	classes missing altogether or missing required
+	methods.
+	* patches/4964490-generify_hotspot_jdi.patch:
+	Update the servicability agent to build with
+	source/target 1.6.
+	* patches/boot/corba-dependencies.patch:
+	Access JDK sources and classes from langtools build.
+	* patches/boot/ecj-opts.patch: Dropped PREFER_SOURCE
+	CORBA change, incorporated in corba-dependencies.
+	* patches/boot/hotspot-jdk-dependency.patch:
+	Access JDK and generated sources to build servicability
+	agent.
+	* patches/boot/jaxws-jdk-dependency.patch:
+	Access JDK sources for com.sun.net.httpserver.
+	* patches/boot/jaxws-langtools-dependency.patch:
+	Access langtools classes for Javadoc.
+	* patches/boot/langtools-force-old-jdk.patch:
+	Always assume an old JDK is being used, don't
+	try and detect this based on presence of NIO2
+	classes as these may be prebuilt by rt-class-files.
+
 2011-01-26  Damien Raude-Morvan <drazzib@drazzib.com>
 
 	Remove NetX and the IcedTea plugin (drop remaining bits from acinclude.m4
--- a/Makefile.am	Mon Mar 07 20:15:21 2011 +0000
+++ b/Makefile.am	Mon Mar 14 21:22:03 2011 +0000
@@ -102,35 +102,15 @@
 
 # Sources used from OpenJDK.
 if LACKS_SUN_AWT_TOOLKIT
-ICEDTEA_BOOTSTRAP_DIRS = \
-	$(SHARE)/com/sun/jdi \
-	$(SHARE)/com/sun/tools/jdi \
-	$(SHARE)/com/sun/net/httpserver \
-	$(SHARE)/java/io \
-	$(SHARE)/java/security/cert \
-	$(SHARE)/java/util \
-	$(SHARE)/java/rmi \
-	$(SHARE)/javax/net/ssl \
-	$(SHARE)/javax/rmi/ssl \
-	$(SHARE)/javax/script \
-	$(SHARE)/javax/security/auth/kerberos \
-	$(SHARE)/javax/security/sasl \
-	$(SHARE)/sun/awt/ \
-	$(SHARE)/sun/rmi/rmic \
-	$(SHARE)/sun/tools/java \
-	$(LANGTOOLS)/com/sun/mirror \
-	$(LANGTOOLS)/com/sun/tools/apt
-
-ICEDTEA_BOOTSTRAP_RESOURCES = \
-	$(LANGTOOLS)/com/sun/tools/javac/resources
-
-# PR42003 - javax.swing.plaf.basic.BasicDirectoryModel
-# PR43389 - javax.management.StandardMBean
+#PR43148 - javac fails due to missing java.util.regex.Matcher.quoteReplacement
+#PR48033 - Missing javax.management.remote.JMXServiceURL
+#PR48034 - javax.management.modelmbean.ModelMBeanInfo
+#PR42003 - Missing javax.swing.plaf.basic.BasicDirectoryModel methods cause OpenJDK build failure 
 ICEDTEA_BOOTSTRAP_CLASSES = \
-	$(SHARE)/javax/swing/plaf/basic/BasicDirectoryModel.java \
-	$(SHARE)/javax/management/StandardMBean.java \
-	$(SHARE)/java/nio/file/SimpleFileVisitor.java \
-	$(SHARE)/javax/management/modelmbean/ModelMBeanInfo.java
+	$(SHARE)/java/util/regex/Matcher.java \
+	$(SHARE)/javax/management/remote/JMXServiceURL.java \
+	$(SHARE)/javax/management/modelmbean/ModelMBeanInfo.java \
+	$(SHARE)/javax/swing/plaf/basic/BasicDirectoryModel.java
 endif
 
 # Settings for javac
@@ -304,7 +284,8 @@
 	patches/parisc.patch \
 	patches/sh4-support.patch \
 	patches/jtreg-httpTest.patch \
-	patches/icedtea-update-bootclasspath.patch
+	patches/icedtea-update-bootclasspath.patch \
+	patches/4964490-generify_hotspot_jdi.patch
 
 # Conditional patches
 
@@ -380,7 +361,12 @@
 	patches/boot/break-processbuilder-dependency.patch \
 	patches/boot/revert-6973616.patch \
 	patches/boot/revert-6941137.patch \
-	patches/boot/ecj-stringswitch.patch
+	patches/boot/ecj-stringswitch.patch \
+	patches/boot/langtools-force-old-jdk.patch \
+	patches/boot/corba-dependencies.patch \
+	patches/boot/jaxws-langtools-dependency.patch \
+	patches/boot/jaxws-jdk-dependency.patch \
+	patches/boot/hotspot-jdk-dependency.patch
 
 if CP39408_JAVAH
 ICEDTEA_BOOT_PATCHES += patches/boot/icedtea-pr39408.patch
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/4964490-generify_hotspot_jdi.patch	Mon Mar 14 21:22:03 2011 +0000
@@ -0,0 +1,274 @@
+# HG changeset patch
+# User andrew
+# Date 1300124050 0
+# Node ID e452443363a7f9dcff60404a0ef0fa5369380ddd
+# Parent  7f338a5e5e66b24a3dd82c57c8d1847e5c6f3878
+4964490: Generify HotSpot JDI implementation
+Summary: Fix errors produced by removing -source/-target 1.4 from SA build.
+
+diff -r 7f338a5e5e66 -r e452443363a7 agent/src/share/classes/sun/jvm/hotspot/HelloWorld.java
+--- openjdk/hotspot/agent/src/share/classes/sun/jvm/hotspot/HelloWorld.java	Mon Jan 10 16:57:36 2011 +0000
++++ openjdk/hotspot/agent/src/share/classes/sun/jvm/hotspot/HelloWorld.java	Mon Mar 14 17:34:10 2011 +0000
+@@ -55,7 +55,7 @@
+     synchronized(lock) {
+       if (useMethodInvoke) {
+         try {
+-          Method method = HelloWorld.class.getMethod("e", null);
++          Method method = HelloWorld.class.getMethod("e");
+           Integer result = (Integer) method.invoke(null, new Object[0]);
+           return result.intValue();
+         }
+diff -r 7f338a5e5e66 -r e452443363a7 agent/src/share/classes/sun/jvm/hotspot/jdi/ByteValueImpl.java
+--- openjdk/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/ByteValueImpl.java	Mon Jan 10 16:57:36 2011 +0000
++++ openjdk/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/ByteValueImpl.java	Mon Mar 14 17:34:10 2011 +0000
+@@ -52,12 +52,10 @@
+         return intValue();
+     }
+ 
+-    public int compareTo(Object obj) {
+-        byte other = ((ByteValue)obj).value();
+-        return value() - other;
++    public int compareTo(ByteValue byteVal) {
++        return value() - byteVal.value();
+     }
+ 
+-
+     public Type type() {
+         return vm.theByteType();
+     }
+diff -r 7f338a5e5e66 -r e452443363a7 agent/src/share/classes/sun/jvm/hotspot/jdi/CharValueImpl.java
+--- openjdk/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/CharValueImpl.java	Mon Jan 10 16:57:36 2011 +0000
++++ openjdk/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/CharValueImpl.java	Mon Mar 14 17:34:10 2011 +0000
+@@ -52,9 +52,8 @@
+         return intValue();
+     }
+ 
+-    public int compareTo(Object obj) {
+-        char other = ((CharValue)obj).value();
+-        return value() - other;
++    public int compareTo(CharValue charVal) {
++        return value() - charVal.value();
+     }
+ 
+     public Type type() {
+diff -r 7f338a5e5e66 -r e452443363a7 agent/src/share/classes/sun/jvm/hotspot/jdi/ConnectorImpl.java
+--- openjdk/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/ConnectorImpl.java	Mon Jan 10 16:57:36 2011 +0000
++++ openjdk/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/ConnectorImpl.java	Mon Mar 14 17:34:10 2011 +0000
+@@ -186,7 +186,7 @@
+         // assert isVMVersionMismatch(throwable), "not a VMVersionMismatch"
+         Class expClass = throwable.getClass();
+         Method targetVersionMethod = expClass.getMethod("getTargetVersion", new Class[0]);
+-        return (String) targetVersionMethod.invoke(throwable, null);
++        return (String) targetVersionMethod.invoke(throwable);
+     }
+ 
+     /** If the causal chain has a sun.jvm.hotspot.runtime.VMVersionMismatchException,
+diff -r 7f338a5e5e66 -r e452443363a7 agent/src/share/classes/sun/jvm/hotspot/jdi/DoubleValueImpl.java
+--- openjdk/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/DoubleValueImpl.java	Mon Jan 10 16:57:36 2011 +0000
++++ openjdk/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/DoubleValueImpl.java	Mon Mar 14 17:34:10 2011 +0000
+@@ -45,8 +45,8 @@
+         }
+     }
+ 
+-    public int compareTo(Object obj) {
+-        double other = ((DoubleValue)obj).value();
++    public int compareTo(DoubleValue doubleVal) {
++        double other = doubleVal.value();
+         if (value() < other) {
+             return -1;
+         } else if (value() == other) {
+diff -r 7f338a5e5e66 -r e452443363a7 agent/src/share/classes/sun/jvm/hotspot/jdi/FieldImpl.java
+--- openjdk/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/FieldImpl.java	Mon Jan 10 16:57:36 2011 +0000
++++ openjdk/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/FieldImpl.java	Mon Mar 14 17:34:10 2011 +0000
+@@ -145,8 +145,7 @@
+     }
+ 
+     // From interface Comparable
+-    public int compareTo(Object object) {
+-        Field field = (Field)object;
++    public int compareTo(Field field) {
+         ReferenceTypeImpl declaringType = (ReferenceTypeImpl)declaringType();
+         int rc = declaringType.compareTo(field.declaringType());
+         if (rc == 0) {
+diff -r 7f338a5e5e66 -r e452443363a7 agent/src/share/classes/sun/jvm/hotspot/jdi/FloatValueImpl.java
+--- openjdk/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/FloatValueImpl.java	Mon Jan 10 16:57:36 2011 +0000
++++ openjdk/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/FloatValueImpl.java	Mon Mar 14 17:34:10 2011 +0000
+@@ -52,8 +52,8 @@
+         return intValue();
+     }
+ 
+-    public int compareTo(Object obj) {
+-        float other = ((FloatValue)obj).value();
++    public int compareTo(FloatValue floatVal) {
++        float other = floatVal.value();
+         if (value() < other) {
+             return -1;
+         } else if (value() == other) {
+diff -r 7f338a5e5e66 -r e452443363a7 agent/src/share/classes/sun/jvm/hotspot/jdi/IntegerValueImpl.java
+--- openjdk/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/IntegerValueImpl.java	Mon Jan 10 16:57:36 2011 +0000
++++ openjdk/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/IntegerValueImpl.java	Mon Mar 14 17:34:10 2011 +0000
+@@ -52,9 +52,8 @@
+         return intValue();
+     }
+ 
+-    public int compareTo(Object obj) {
+-        int other = ((IntegerValue)obj).value();
+-        return value() - other;
++    public int compareTo(IntegerValue integerVal) {
++        return value() - integerVal.value();
+     }
+ 
+     public Type type() {
+diff -r 7f338a5e5e66 -r e452443363a7 agent/src/share/classes/sun/jvm/hotspot/jdi/LocalVariableImpl.java
+--- openjdk/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/LocalVariableImpl.java	Mon Jan 10 16:57:36 2011 +0000
++++ openjdk/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/LocalVariableImpl.java	Mon Mar 14 17:34:10 2011 +0000
+@@ -67,8 +67,8 @@
+         return (int)method.hashCode() + slot();
+     }
+ 
+-    public int compareTo(Object object) {
+-        LocalVariableImpl other = (LocalVariableImpl)object;
++    public int compareTo(LocalVariable localVar) {
++        LocalVariableImpl other = (LocalVariableImpl) localVar;
+         int rc = method.compareTo(other.method);
+         if (rc == 0) {
+             rc = slot() - other.slot();
+diff -r 7f338a5e5e66 -r e452443363a7 agent/src/share/classes/sun/jvm/hotspot/jdi/LocationImpl.java
+--- openjdk/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/LocationImpl.java	Mon Jan 10 16:57:36 2011 +0000
++++ openjdk/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/LocationImpl.java	Mon Mar 14 17:34:10 2011 +0000
+@@ -78,8 +78,7 @@
+         return method().hashCode() + (int)codeIndex();
+     }
+ 
+-    public int compareTo(Object object) {
+-        LocationImpl other = (LocationImpl)object;
++    public int compareTo(Location other) {
+         int rc = method().compareTo(other.method());
+         if (rc == 0) {
+             long diff = codeIndex() - other.codeIndex();
+diff -r 7f338a5e5e66 -r e452443363a7 agent/src/share/classes/sun/jvm/hotspot/jdi/LongValueImpl.java
+--- openjdk/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/LongValueImpl.java	Mon Jan 10 16:57:36 2011 +0000
++++ openjdk/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/LongValueImpl.java	Mon Mar 14 17:34:10 2011 +0000
+@@ -52,8 +52,8 @@
+         return intValue();
+     }
+ 
+-    public int compareTo(Object obj) {
+-        long other = ((LongValue)obj).value();
++    public int compareTo(LongValue longVal) {
++        long other = longVal.value();
+         if (value() < other) {
+             return -1;
+         } else if (value() == other) {
+diff -r 7f338a5e5e66 -r e452443363a7 agent/src/share/classes/sun/jvm/hotspot/jdi/MethodImpl.java
+--- openjdk/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/MethodImpl.java	Mon Jan 10 16:57:36 2011 +0000
++++ openjdk/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/MethodImpl.java	Mon Mar 14 17:34:10 2011 +0000
+@@ -200,8 +200,7 @@
+     }
+ 
+     // From interface Comparable
+-    public int compareTo(Object object) {
+-      Method method = (Method)object;
++    public int compareTo(Method method) {
+         ReferenceTypeImpl declaringType = (ReferenceTypeImpl)declaringType();
+          int rc = declaringType.compareTo(method.declaringType());
+          if (rc == 0) {
+diff -r 7f338a5e5e66 -r e452443363a7 agent/src/share/classes/sun/jvm/hotspot/jdi/ReferenceTypeImpl.java
+--- openjdk/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/ReferenceTypeImpl.java	Mon Jan 10 16:57:36 2011 +0000
++++ openjdk/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/ReferenceTypeImpl.java	Mon Mar 14 17:34:10 2011 +0000
+@@ -99,7 +99,7 @@
+         return saKlass.hashCode();
+     }
+ 
+-    public int compareTo(Object object) {
++    public int compareTo(ReferenceType refType) {
+         /*
+          * Note that it is critical that compareTo() == 0
+          * implies that equals() == true. Otherwise, TreeSet
+@@ -108,7 +108,7 @@
+          * (Classes of the same name loaded by different class loaders
+          * or in different VMs must not return 0).
+          */
+-        ReferenceTypeImpl other = (ReferenceTypeImpl)object;
++        ReferenceTypeImpl other = (ReferenceTypeImpl)refType;
+         int comp = name().compareTo(other.name());
+         if (comp == 0) {
+             Oop rf1 = ref();
+diff -r 7f338a5e5e66 -r e452443363a7 agent/src/share/classes/sun/jvm/hotspot/jdi/ShortValueImpl.java
+--- openjdk/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/ShortValueImpl.java	Mon Jan 10 16:57:36 2011 +0000
++++ openjdk/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/ShortValueImpl.java	Mon Mar 14 17:34:10 2011 +0000
+@@ -52,9 +52,8 @@
+         return intValue();
+     }
+ 
+-    public int compareTo(Object obj) {
+-        short other = ((ShortValue)obj).value();
+-        return value() - other;
++    public int compareTo(ShortValue shortVal) {
++        return value() - shortVal.value();
+     }
+ 
+     public Type type() {
+diff -r 7f338a5e5e66 -r e452443363a7 agent/src/share/classes/sun/jvm/hotspot/jdi/VirtualMachineImpl.java
+--- openjdk/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/VirtualMachineImpl.java	Mon Jan 10 16:57:36 2011 +0000
++++ openjdk/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/VirtualMachineImpl.java	Mon Mar 14 17:34:10 2011 +0000
+@@ -798,12 +798,11 @@
+     }
+ 
+     public String description() {
+-        String[] versionParts = {"" + vmmgr.majorInterfaceVersion(),
+-                                 "" + vmmgr.minorInterfaceVersion(),
+-                                 name()};
+         return java.text.MessageFormat.format(java.util.ResourceBundle.
+                                               getBundle("com.sun.tools.jdi.resources.jdi").getString("version_format"),
+-                                              versionParts);
++                                              "" + vmmgr.majorInterfaceVersion(),
++                                              "" + vmmgr.minorInterfaceVersion(),
++                                              name());
+     }
+ 
+     public String version() {
+diff -r 7f338a5e5e66 -r e452443363a7 make/linux/makefiles/sa.make
+--- openjdk/hotspot/make/linux/makefiles/sa.make	Mon Jan 10 16:57:36 2011 +0000
++++ openjdk/hotspot/make/linux/makefiles/sa.make	Mon Mar 14 17:34:10 2011 +0000
+@@ -97,8 +97,8 @@
+ 	$(foreach file,$(AGENT_FILES1),$(shell echo $(file) >> $(AGENT_FILES1_LIST)))
+ 	$(foreach file,$(AGENT_FILES2),$(shell echo $(file) >> $(AGENT_FILES2_LIST)))
+ 	
+-	$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES1_LIST)
+-	$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES2_LIST)
++	$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES1_LIST)
++	$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES2_LIST)
+ 	
+ 	$(QUIETLY) $(REMOTE) $(COMPILE.RMIC)  -classpath $(SA_CLASSDIR) -d $(SA_CLASSDIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer
+ 	$(QUIETLY) echo "$(SA_BUILD_VERSION_PROP)" > $(SA_PROPERTIES)
+diff -r 7f338a5e5e66 -r e452443363a7 make/solaris/makefiles/sa.make
+--- openjdk/hotspot/make/solaris/makefiles/sa.make	Mon Jan 10 16:57:36 2011 +0000
++++ openjdk/hotspot/make/solaris/makefiles/sa.make	Mon Mar 14 17:34:10 2011 +0000
+@@ -88,8 +88,8 @@
+ 	$(foreach file,$(AGENT_FILES1),$(shell echo $(file) >> $(AGENT_FILES1_LIST)))
+ 	$(foreach file,$(AGENT_FILES2),$(shell echo $(file) >> $(AGENT_FILES2_LIST)))
+ 	
+-	$(QUIETLY) $(COMPILE.JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES1_LIST)
+-	$(QUIETLY) $(COMPILE.JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES2_LIST)
++	$(QUIETLY) $(COMPILE.JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES1_LIST)
++	$(QUIETLY) $(COMPILE.JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES2_LIST)
+ 	
+ 	$(QUIETLY) $(COMPILE.RMIC)  -classpath $(SA_CLASSDIR) -d $(SA_CLASSDIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer
+ 	$(QUIETLY) echo "$(SA_BUILD_VERSION_PROP)" > $(SA_PROPERTIES)
+diff -r 7f338a5e5e66 -r e452443363a7 make/windows/makefiles/sa.make
+--- openjdk/hotspot/make/windows/makefiles/sa.make	Mon Jan 10 16:57:36 2011 +0000
++++ openjdk/hotspot/make/windows/makefiles/sa.make	Mon Mar 14 17:34:10 2011 +0000
+@@ -55,9 +55,9 @@
+ $(GENERATED)\sa-jdi.jar: $(AGENT_FILES1:/=\) $(AGENT_FILES2:/=\)
+ 	@if not exist $(SA_CLASSDIR) mkdir $(SA_CLASSDIR)
+ 	@echo ...Building sa-jdi.jar
+-	@echo ...$(COMPILE_JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -d $(SA_CLASSDIR) ....
+-	@$(COMPILE_JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) $(AGENT_FILES1:/=\)
+-	@$(COMPILE_JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) $(AGENT_FILES2:/=\)
++	@echo ...$(COMPILE_JAVAC) -classpath $(SA_CLASSPATH) -d $(SA_CLASSDIR) ....
++	@$(COMPILE_JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) $(AGENT_FILES1:/=\)
++	@$(COMPILE_JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) $(AGENT_FILES2:/=\)
+ 	$(COMPILE_RMIC) -classpath $(SA_CLASSDIR) -d $(SA_CLASSDIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer
+ 	$(QUIETLY) echo $(SA_BUILD_VERSION_PROP)> $(SA_PROPERTIES)
+ 	$(QUIETLY) rm -f $(SA_CLASSDIR)/sun/jvm/hotspot/utilities/soql/sa.js
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/boot/corba-dependencies.patch	Mon Mar 14 21:22:03 2011 +0000
@@ -0,0 +1,39 @@
+diff -Nru openjdk-boot.orig/corba/make/common/Defs.gmk openjdk-boot/corba/make/common/Defs.gmk
+--- openjdk-boot.orig/corba/make/common/Defs.gmk	2011-03-08 18:49:48.566665532 +0000
++++ openjdk-boot/corba/make/common/Defs.gmk	2011-03-08 18:47:51.734115218 +0000
+@@ -50,6 +50,9 @@
+ ifndef SHARE_SRC
+   SHARE_SRC    = $(TOPDIR)/src/share
+ endif
++ifndef JDK_SRC
++  JDK_SRC = $(JDK_TOPDIR)/src/share
++endif
+ 
+ _OUTPUTDIR=$(TOPDIR)/build/$(PLATFORM)-$(ARCH)
+ 
+@@ -172,7 +175,7 @@
+ # We define an intermediate variable for Java files because
+ # we use its value later to help define $SOURCEPATH
+ 
+-VPATH0.java = $(GENSRCDIR)$(CLASSPATH_SEPARATOR)$(SHARE_SRC)/classes
++VPATH0.java = $(GENSRCDIR)$(CLASSPATH_SEPARATOR)$(SHARE_SRC)/classes$(CLASSPATH_SEPARATOR)$(JDK_SRC)/classes
+ VPATH.java = $(VPATH0.java)
+ vpath %.java $(VPATH.java)
+ vpath %.class $(CLASSBINDIR)
+diff -Nru openjdk-boot.orig/corba/make/common/Rules.gmk openjdk-boot/corba/make/common/Rules.gmk
+--- openjdk-boot.orig/corba/make/common/Rules.gmk	2011-03-08 18:48:19.953282134 +0000
++++ openjdk-boot/corba/make/common/Rules.gmk	2011-03-08 18:48:05.453710200 +0000
+@@ -184,7 +184,12 @@
+ 	@$(MKDIR) -p $(CLASSDESTDIR)
+ 	if [ -s $(JAVA_SOURCE_LIST) ] ; then \
+ 	  $(CAT) $(JAVA_SOURCE_LIST); \
+-	  $(JAVAC_CMD) $(JAVAC_PREFER_SOURCE) -sourcepath "$(SOURCEPATH)" -d $(CLASSDESTDIR) @$(JAVA_SOURCE_LIST); \
++ 	  $(ECHO) $(JAVAC_CMD) -classpath $(ABS_OUTPUTDIR)/corba/classes \
++	  	 -classpath $(LANGTOOLS_DIST)/lib/classes.jar \
++ 		 -sourcepath "$(SOURCEPATH)" -d $(CLASSDESTDIR) @$(JAVA_SOURCE_LIST); \
++ 	  $(JAVAC_CMD) -classpath $(ABS_OUTPUTDIR)/corba/classes \
++	  	 -classpath $(LANGTOOLS_DIST)/lib/classes.jar \
++ 		 -sourcepath "$(SOURCEPATH)" -d $(CLASSDESTDIR) @$(JAVA_SOURCE_LIST); \
+ 	fi
+ 	@$(java-vm-cleanup)
+ 
--- a/patches/boot/ecj-opts.patch	Mon Mar 07 20:15:21 2011 +0000
+++ b/patches/boot/ecj-opts.patch	Mon Mar 14 21:22:03 2011 +0000
@@ -1,18 +1,3 @@
-diff -Nru openjdk-boot.orig/corba/make/common/Rules.gmk openjdk-boot/corba/make/common/Rules.gmk
---- openjdk-boot.orig/corba/make/common/Rules.gmk	2009-10-03 00:02:43.000000000 +0100
-+++ openjdk-boot/corba/make/common/Rules.gmk	2009-12-13 19:03:31.000000000 +0000
-@@ -187,7 +187,10 @@
- 	@$(MKDIR) -p $(CLASSDESTDIR)
- 	if [ -s $(JAVA_SOURCE_LIST) ] ; then \
- 	  $(CAT) $(JAVA_SOURCE_LIST); \
--	  $(JAVAC_CMD) $(JAVAC_PREFER_SOURCE) -sourcepath "$(SOURCEPATH)" -d $(CLASSDESTDIR) @$(JAVA_SOURCE_LIST); \
-+ 	  $(ECHO) $(JAVAC_CMD) -classpath $(ABS_OUTPUTDIR)/corba/classes \
-+ 		 -sourcepath "$(SOURCEPATH)" -d $(CLASSDESTDIR) @$(JAVA_SOURCE_LIST); \
-+ 	  $(JAVAC_CMD) -classpath $(ABS_OUTPUTDIR)/corba/classes \
-+ 		 -sourcepath "$(SOURCEPATH)" -d $(CLASSDESTDIR) @$(JAVA_SOURCE_LIST); \
- 	fi
- 	@$(java-vm-cleanup)
- 
 diff -Nru openjdk-boot.orig/jdk/make/java/nio/Makefile openjdk-boot/jdk/make/java/nio/Makefile
 --- openjdk-boot.orig/jdk/make/java/nio/Makefile	2009-12-13 18:43:31.000000000 +0000
 +++ openjdk-boot/jdk/make/java/nio/Makefile	2009-12-13 19:03:31.000000000 +0000
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/boot/hotspot-jdk-dependency.patch	Mon Mar 14 21:22:03 2011 +0000
@@ -0,0 +1,25 @@
+diff -Nru openjdk-boot.orig/hotspot/make/linux/makefiles/sa.make openjdk-boot/hotspot/make/linux/makefiles/sa.make
+--- openjdk-boot.orig/hotspot/make/linux/makefiles/sa.make	2011-03-14 17:45:38.000000000 +0000
++++ openjdk-boot/hotspot/make/linux/makefiles/sa.make	2011-03-14 19:28:26.633153480 +0000
+@@ -97,8 +97,8 @@
+ 	$(foreach file,$(AGENT_FILES1),$(shell echo $(file) >> $(AGENT_FILES1_LIST)))
+ 	$(foreach file,$(AGENT_FILES2),$(shell echo $(file) >> $(AGENT_FILES2_LIST)))
+ 	
+-	$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES1_LIST)
+-	$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES2_LIST)
++	$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR):$(JDK_TOPDIR)/src/share/classes:$(GENSRCDIR) -d $(SA_CLASSDIR) @$(AGENT_FILES1_LIST)
++	$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR):$(JDK_TOPDIR)/src/share/classes:$(GENSRCDIR) -d $(SA_CLASSDIR) @$(AGENT_FILES2_LIST)
+ 	
+ 	$(QUIETLY) $(REMOTE) $(COMPILE.RMIC)  -classpath $(SA_CLASSDIR) -d $(SA_CLASSDIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer
+ 	$(QUIETLY) echo "$(SA_BUILD_VERSION_PROP)" > $(SA_PROPERTIES)
+diff -Nru openjdk-boot.orig/make/hotspot-rules.gmk openjdk-boot/make/hotspot-rules.gmk
+--- openjdk-boot.orig/make/hotspot-rules.gmk	2011-03-14 19:26:01.289492705 +0000
++++ openjdk-boot/make/hotspot-rules.gmk	2011-03-14 19:26:34.640496978 +0000
+@@ -83,6 +83,7 @@
+ HOTSPOT_BUILD_ARGUMENTS += $(COMMON_BUILD_ARGUMENTS)
+ HOTSPOT_BUILD_ARGUMENTS += ALT_OUTPUTDIR=$(HOTSPOT_OUTPUTDIR)
+ HOTSPOT_BUILD_ARGUMENTS += ALT_EXPORT_PATH=$(HOTSPOT_EXPORT_PATH)
++HOTSPOT_BUILD_ARGUMENTS += GENSRCDIR=$(GENSRCDIR)
+ 
+ # Why do these need to be passed in? Because of windows nmake? and MAKEFLAGS=?
+ #   Or is there something wrong with hotspot/make/Makefile?
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/boot/jaxws-jdk-dependency.patch	Mon Mar 14 21:22:03 2011 +0000
@@ -0,0 +1,43 @@
+--- openjdk-boot.orig/jaxws/build.properties	2011-03-08 18:40:33.955159212 +0000
++++ openjdk-boot/jaxws/build.properties	2011-03-08 20:19:51.000000000 +0000
+@@ -66,6 +66,9 @@
+ # JAXP built files
+ jaxp.classes.dir=${output.dir}/../jaxp/build/classes
+ 
++# JDK sources
++jdk.sources=${jdk.topdir}/src/share/classes
++
+ # Distributed results
+ dist.dir=${output.dir}/dist
+ dist.lib.dir=${dist.dir}/lib
+@@ -110,6 +113,7 @@
+   dist.dir=${dist.dir}${line.separator}\
+   drop.dir=${drop.dir}${line.separator}\
+   drops.dir=${drops.dir}${line.separator}\
++  jdk.topdir=${jdk.topdir}${line.separator}\
+ ${line.separator}
+ 
+ # Failure messages when source cannot be found on the file system
+--- openjdk-boot.orig/jaxws/build.xml	2011-03-08 18:40:29.639288336 +0000
++++ openjdk-boot/jaxws/build.xml	2011-03-08 20:22:31.000000000 +0000
+@@ -125,6 +125,7 @@
+         <javac 
+ 	     includeAntRuntime="false" 
+ 	     classpath="${jaxp.classes.dir}:${build.classes.dir}:${langtools.jar}"
++	     sourcepath="${jdk.sources}"
+ 	     fork="true"
+              destdir="${build.classes.dir}"
+              memoryInitialSize="${javac.memoryInitialSize}"
+--- openjdk-boot.orig/jaxws/make/Makefile	2011-03-08 18:40:14.167751211 +0000
++++ openjdk-boot/jaxws/make/Makefile	2011-03-08 20:18:23.000000000 +0000
+@@ -140,6 +140,10 @@
+   endif
+ endif
+ 
++ifdef JDK_TOPDIR
++  ANT_OPTIONS += -Djdk.topdir=$(JDK_TOPDIR)
++endif
++
+ # Default target and expected 'do everything' target
+ default: all
+ 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/boot/jaxws-langtools-dependency.patch	Mon Mar 14 21:22:03 2011 +0000
@@ -0,0 +1,48 @@
+diff -Nru openjdk-boot.orig/jaxws/build.properties openjdk-boot/jaxws/build.properties
+--- openjdk-boot.orig/jaxws/build.properties	2011-03-08 18:42:23.703875234 +0000
++++ openjdk-boot/jaxws/build.properties	2011-03-08 18:40:33.955159212 +0000
+@@ -32,7 +32,8 @@
+ # other tools, and product versions of all the tools.
+ # Override this path as needed, either on the command line or in 
+ # one of the standard user build.properties files (see build.xml)
+-javac.jar=${bootstrap.dir}/lib/javac.jar
++javac.jar=${langtools.dist}/bootstrap/lib/javac.jar
++langtools.jar=${langtools.dist}/lib/classes.jar
+ 
+ # The tools.jar is needed in the classpath to compile these sources
+ jdk.home=${java.home}/..
+@@ -93,8 +94,9 @@
+   os.name=${os.name}${line.separator}\
+   os.arch=${os.arch}${line.separator}\
+   os.version=${os.version}${line.separator}\
+-  bootstrap.dir=${bootstrap.dir}${line.separator}\
++  bootstrap.dir=${langtools.dist}/bootstrap${line.separator}\
+   javac.jar=${javac.jar}${line.separator}\
++  langtools.jar=${langtools.jar}${line.separator}\
+   javac.memoryInitialSize=${javac.memoryInitialSize}${line.separator}\
+   javac.memoryMaximumSize=${javac.memoryMaximumSize}${line.separator}\
+   javac.source=${javac.source}${line.separator}\
+diff -Nru openjdk-boot.orig/jaxws/build.xml openjdk-boot/jaxws/build.xml
+--- openjdk-boot.orig/jaxws/build.xml	2011-03-08 18:43:11.778436442 +0000
++++ openjdk-boot/jaxws/build.xml	2011-03-08 18:40:29.639288336 +0000
+@@ -124,7 +124,7 @@
+         <mkdir dir="${build.classes.dir}"/>
+         <javac 
+ 	     includeAntRuntime="false" 
+-	     classpath="${jaxp.classes.dir}:${build.classes.dir}:${tools.jar}"
++	     classpath="${jaxp.classes.dir}:${build.classes.dir}:${langtools.jar}"
+ 	     fork="true"
+              destdir="${build.classes.dir}"
+              memoryInitialSize="${javac.memoryInitialSize}"
+diff -Nru openjdk-boot.orig/jaxws/make/Makefile openjdk-boot/jaxws/make/Makefile
+--- openjdk-boot.orig/jaxws/make/Makefile	2011-03-08 18:41:00.178374622 +0000
++++ openjdk-boot/jaxws/make/Makefile	2011-03-08 18:40:14.167751211 +0000
+@@ -120,7 +120,7 @@
+     ANT_JAVA_HOME = JAVA_HOME=$(ALT_BOOTDIR)
+     ANT_OPTIONS += -Djdk.home=$(ALT_BOOTDIR)
+   endif
+-  ANT_OPTIONS += -Dbootstrap.dir=$(ALT_LANGTOOLS_DIST)/bootstrap
++  ANT_OPTIONS += -Dlangtools.dist=$(ALT_LANGTOOLS_DIST)
+ else
+   ifdef ALT_JDK_IMPORT_PATH
+     ANT_JAVA_HOME = JAVA_HOME=$(ALT_JDK_IMPORT_PATH)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/boot/langtools-force-old-jdk.patch	Mon Mar 14 21:22:03 2011 +0000
@@ -0,0 +1,16 @@
+diff -Nru openjdk-boot.orig/langtools/make/build.xml openjdk-boot/langtools/make/build.xml
+--- openjdk-boot.orig/langtools/make/build.xml	2011-03-08 11:36:45.555852490 +0000
++++ openjdk-boot/langtools/make/build.xml	2011-03-08 18:33:09.332454251 +0000
+@@ -185,12 +185,6 @@
+         <isset property="import.jdk.jar"/>
+     </condition>
+ 
+-    <condition property="boot.java.provides.latest.jdk">
+-        <available
+-            ignoresystemclasses="true"
+-            classpath="${boot.java.home}/jre/lib/rt.jar" classname="java.nio.file.Path"/>
+-    </condition>
+-
+     <condition property="bootstrap.exclude.files" value="" else="${require.latest.jdk.files}">
+         <isset property="boot.java.provides.latest.jdk"/>
+     </condition>