changeset 2045:3d6ec111052e

Merge
author Andrew John Hughes <ahughes@redhat.com>
date Tue, 30 Mar 2010 13:42:04 +0100
parents 832b1c20603a (current diff) 433756a5db2c (diff)
children bc942c2695f5
files ChangeLog Makefile.am
diffstat 16 files changed, 841 insertions(+), 96 deletions(-) [+]
line wrap: on
line diff
--- a/.hgignore	Tue Mar 30 13:40:33 2010 +0100
+++ b/.hgignore	Tue Mar 30 13:42:04 2010 +0100
@@ -7,7 +7,6 @@
 cacao
 netbeans
 visualvm
-openjdk
 bootstrap
 debian
 lib
@@ -38,13 +37,16 @@
 test/jtreg.jar
 test/jtreg/classes
 test/jtreg-summary.log
-test/check-.*log
+test/check-*.log
 generated/sun/awt/X11/generator/sizer.32.orig
 pulseaudio/bin
-pulseaudio/.*\.o
+pulseaudio/*.o
 pulseaudio/src/native/org_.*.h
-pulseaudio/.*jar
+pulseaudio/*.jar
 pulse-java.jar
 hotspot.tar.gz
 ports/hotspot/src/cpu/zero/vm/bytecodes_arm.s
 plugin/tests/LiveConnect/*jar
+
+syntax: regexp
+^openjdk
--- a/ChangeLog	Tue Mar 30 13:40:33 2010 +0100
+++ b/ChangeLog	Tue Mar 30 13:42:04 2010 +0100
@@ -10,12 +10,78 @@
 	Dropped, applied upstream.
 	* Makefile.am: Remove above.
 
+2010-03-29  Andrew John Hughes  <ahughes@redhat.com>
+
+	* .hgignore:
+	Use a regular expression to match openjdk
+	to avoid matching patches/openjdk.
+	* Makefile.am:
+	(NETX_BOOTSTRAP_CLASSES): Classes required to
+	bootstrap NetX (only partial so far).
+	(ICEDTEA_BOOTSTRAP_CLASSES): Include
+	NETX_BOOTSTRAP_CLASSES.
+	(IT_LANGUAGE_SOURCE_VERSION): Source version to compile as.
+	(IT_CLASS_TARGET_VERSION): Class file version to target.
+	(IT_JAVACFLAGS): Add above flags to javac compilation.
+	(ICEDTEA_PATCHES): Add 6873059 source/target fixes from OpenJDK7.
+	(liveconnect.stamp): Use ICEDTEA_RT on classpath instead of system rt.jar and lib/rt.
+	(netx.stamp): Likewise.
+	(extra-class-files.stamp): Use ICEDTEA_RT as bootclasspath.
+	Use standard IT_JAVACFLAGS options.
+	(pulse-java-jar.stamp): Remove unneeded conditional.
+	(pulse-java-class.stamp): Use IT_JAVACFLAGS and ICEDTEA_RT on bootclasspath.
+	(rewriter.stamp): Use IT_JAVACFLAGS.
+	(plugin-tests.stamp): Likewise.
+	(jtreg.stamp): Likewise.
+	(rt-class-files.stamp): Likewise.
+	(rt.stamp): Include org.classpath classes in rt.jar if NIO2 is enabled.
+	* generated/org/classpath/icedtea/java/nio/channels/AcceptPendingException.java,
+	* generated/org/classpath/icedtea/java/nio/channels/IllegalChannelGroupException.java,
+	* generated/org/classpath/icedtea/java/nio/channels/InterruptedByTimeoutException.java,
+	* generated/org/classpath/icedtea/java/nio/channels/ReadPendingException.java,
+	* generated/org/classpath/icedtea/java/nio/channels/ShutdownChannelGroupException.java,
+	* generated/org/classpath/icedtea/java/nio/channels/WritePendingException.java,
+	* generated/sun/nio/fs/UnixConstants.java:
+	Add generated files needed for NIO2.
+	* javac.in: Move to OpenJDK7 Perl version so that flag duplication avoidance
+	works correctly.
+	* patches/ecj/icedtea-hotspot.patch: Regenerated.
+	* patches/openjdk/6873059-javac-versioning-corba.patch,
+	* patches/openjdk/6873059-javac-versioning-hotspot.patch,
+	* patches/openjdk/6873059-javac-versioning-jdk.patch:
+	Backported from OpenJDK7.
+	* THANKYOU: Add C. K. Jester-Young who created
+	the initial Perl version of javac.in.
+
 2010-03-28  Andrew John Hughes  <ahughes@redhat.com>
 
 	* patches/icedtea-override.patch:
 	Remove @Override on interface method
 	in sun/net/www/protocol/https/HttpsClient.java
 
+2009-08-21  Andrew John Hughes  <ahughes@redhat.com>
+
+	* javac.in:
+	Remove 1.7 setting.  Add ecj_parms so same
+	parameters are used for all ecj invocations.
+
+2009-07-21  Andrew John Hughes  <ahughes@redhat.com>
+
+	* javac.in:
+	Move ecj opt generation to a subroutine so it is only
+	performed when needed.
+
+2008-11-10  Andrew John Hughes  <ahughes@redhat.com>
+
+	* javac.in:
+	Update with native ecj changes.
+
+2008-09-18  C. K. Jester-Young  <cky944@gmail.com>
+
+	* javac.in:
+	Convert to Perl script to avoid
+	quoting errors.
+
 2010-03-25  Matthias Klose  <doko@ubuntu.com>
 
 	* configure.ac: Bump version to 1.9pre.
@@ -29,6 +95,13 @@
 2010-03-19  Andrew John Hughes  <ahughes@redhat.com>
 
 	* Makefile.am:
+	(ICEDTEA_ENV): Remove BINARY_PLUGS_PATH.
+	(tools.stamp): Removed.
+	(clean-tools): Removed.
+
+2010-03-19  Andrew John Hughes  <ahughes@redhat.com>
+
+	* Makefile.am:
 	(ICEDTEA_ENV_ECJ): Include ICEDTEA_ENV.
 	Remove duplication between ICEDTEA_ENV
 	and ICEDTEA_ENV_ECJ.
--- a/Makefile.am	Tue Mar 30 13:40:33 2010 +0100
+++ b/Makefile.am	Tue Mar 30 13:42:04 2010 +0100
@@ -88,18 +88,29 @@
 	$(LANGTOOLS)/com/sun/mirror \
 	$(LANGTOOLS)/com/sun/tools/apt
 
+# PR43578 - java.security.CodeSource.getCodeSigners() missing
+# PR43582 - Missing javax.swing.JTable.setFillsViewportHeight
+# PR43585 - java.security.KeyStore.TrustedCertificateEntry class missing
+NETX_BOOTSTRAP_CLASSES = \
+	$(SHARE)/java/security/CodeSource.java \
+	$(SHARE)/javax/swing/JTable.java \
+	$(SHARE)/java/security/KeyStore.java
+
 # PR42003 - javax.swing.plaf.basic.BasicDirectoryModel
 # PR43389 - javax.management.StandardMBean
 ICEDTEA_BOOTSTRAP_CLASSES = \
 	$(SHARE)/javax/swing/plaf/basic/BasicDirectoryModel.java \
-	$(SHARE)/javax/management/StandardMBean.java
+	$(SHARE)/javax/management/StandardMBean.java \
+	$(NETX_BOOTSTRAP_CLASSES)
 
 # FIXME (javac): Settings for javac go here
 
 # Flags
 IT_CFLAGS=$(CFLAGS) $(ARCHFLAG)
 IT_JAVAC_SETTINGS=-g -encoding utf-8 $(JAVACFLAGS) $(MEMORY_LIMIT) $(PREFER_SOURCE)
-IT_JAVACFLAGS=$(IT_JAVAC_SETTINGS)
+IT_LANGUAGE_SOURCE_VERSION=6
+IT_CLASS_TARGET_VERSION=6
+IT_JAVACFLAGS=$(IT_JAVAC_SETTINGS) -source $(IT_LANGUAGE_SOURCE_VERSION) -target $(IT_CLASS_TARGET_VERSION)
 
 # Conditional defintions
 
@@ -293,7 +304,10 @@
 	patches/extensions/netx.patch \
 	patches/extensions/netx-dist.patch \
 	patches/extensions/netx-umask.patch \
-	patches/icedtea-jtreg-httpTest.patch
+	patches/icedtea-jtreg-httpTest.patch \
+	patches/openjdk/6873059-javac-versioning-corba.patch \
+	patches/openjdk/6873059-javac-versioning-hotspot.patch \
+	patches/openjdk/6873059-javac-versioning-jdk.patch
 
 if WITH_RHINO
 ICEDTEA_PATCHES += \
@@ -360,7 +374,6 @@
 	patches/ecj/bootver.patch \
 	patches/ecj/getannotation-cast.patch \
 	patches/ecj/override.patch
-
 if DTDTYPE_QNAME
 ICEDTEA_ECJ_PATCHES += \
 	patches/ecj/icedtea-jaxws-getdtdtype.patch
@@ -403,7 +416,6 @@
 	LANG="C" \
 	PATH="$(abs_top_builddir)/bootstrap/jdk1.6.0/bin:$(OS_PATH):$$PATH" \
 	ALT_BOOTDIR="$(ICEDTEA_BOOT_DIR)" \
-	ALT_BINARY_PLUGS_PATH="$(abs_top_builddir)/bootstrap/jdk1.7.0" \
 	BUILD_ARCH_DIR="$(BUILD_ARCH_DIR)" \
 	ICEDTEA_BUILD_DIR="$(ICEDTEA_BUILD_DIR)" \
 	ICEDTEA_CLS_DIR="$(ICEDTEA_CLS_DIR)" \
@@ -1528,7 +1540,7 @@
 	  mkdir -p $(abs_top_builddir)/liveconnect && \
 	  $(ICEDTEA_BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
 	      -d $(abs_top_builddir)/liveconnect \
-	      -classpath $(abs_top_builddir)/lib/rt:$(abs_top_builddir)/netx.build:$(SYSTEM_JDK_DIR)/jre/lib/rt.jar \
+	      -classpath $(abs_top_builddir)/netx.build:$(ICEDTEA_RT) \
 	      -sourcepath $(SOURCEPATH_DIRS) \
 	      -bootclasspath \'\' \
 	      @liveconnect-source-files.txt ; \
@@ -1566,9 +1578,8 @@
 	mkdir -p $(abs_top_builddir)/netx.build
 	$(ICEDTEA_BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
 	    -d $(abs_top_builddir)/netx.build \
-	    -classpath $(abs_top_builddir)/lib/rt:$(SYSTEM_JDK_DIR)/jre/lib/rt.jar \
 	    -sourcepath $(NETX_SRCDIR):$(SOURCEPATH_DIRS) \
-	    -bootclasspath \'\' \
+	    -classpath $(ICEDTEA_RT) -bootclasspath \'\' \
 	    @netx-source-files.txt
 	cp -r $(NETX_RESOURCE_DIR) $(abs_top_builddir)/netx.build/net/sourceforge/jnlp
 	mkdir -p stamps
@@ -1600,10 +1611,9 @@
 stamps/extra-class-files.stamp: $(INITIAL_BOOTSTRAP_LINK_STAMP) \
   extra-source-files.txt stamps/netx.stamp
 	mkdir -p extra-lib
-	$(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d extra-lib \
-          -source 1.5 \
-          -sourcepath extra -cp netx.build:$(ICEDTEA_RT) \
-          -bootclasspath \'\' @extra-source-files.txt
+	$(ICEDTEA_BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) -d extra-lib \
+          -sourcepath extra -cp netx.build \
+          -bootclasspath $(ICEDTEA_RT) @extra-source-files.txt
 	cp -r $(NETX_EXTRA_DIR) extra-lib/net/sourceforge/jnlp/about
 	mkdir -p stamps
 	touch $@
@@ -1641,20 +1651,15 @@
 
 stamps/pulse-java-jar.stamp: stamps/pulse-java-class.stamp
 	mkdir -p $(PULSE_JAVA_CLASS_DIR);
-	if ! test -d $(ICEDTEA_BOOT_DIR) ; \
-	then \
-	  $(JAR) cf pulse-java.jar -C $(PULSE_JAVA_CLASS_DIR) .; \
-	else \
-	  $(ICEDTEA_BOOT_DIR)/bin/jar cf pulse-java.jar -C $(PULSE_JAVA_CLASS_DIR) .; \
-	fi
+	$(ICEDTEA_BOOT_DIR)/bin/jar cf pulse-java.jar -C $(PULSE_JAVA_CLASS_DIR) .;
 	mkdir -p stamps
 	touch stamps/pulse-java-jar.stamp
 
 stamps/pulse-java-class.stamp: $(INITIAL_BOOTSTRAP_LINK_STAMP)
 	mkdir -p $(PULSE_JAVA_CLASS_DIR)
 	(cd $(PULSE_JAVA_JAVA_SRCDIR); \
-	 $(ICEDTEA_BOOT_DIR)/bin/javac -g -d $(PULSE_JAVA_CLASS_DIR) \
-	  -bootclasspath '$(ICEDTEA_BOOT_DIR)/jre/lib/rt.jar' \
+	 $(ICEDTEA_BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) -d $(PULSE_JAVA_CLASS_DIR) \
+	  -bootclasspath $(ICEDTEA_RT) \
 	  org/classpath/icedtea/pulseaudio/*.java \
 	)
 	cp -r $(PULSE_JAVA_JAVA_SRCDIR)/META-INF $(PULSE_JAVA_CLASS_DIR)
@@ -1692,7 +1697,7 @@
 if WITH_RHINO
 	mkdir -p $(abs_top_builddir)/rewriter
 	(cd $(abs_top_srcdir)/rewriter ; \
-	 $(ICEDTEA_BOOT_DIR)/bin/javac -g \
+	 $(ICEDTEA_BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
 	 -d $(abs_top_builddir)/rewriter $(REWRITER_SRCS) \
 	)
 endif
@@ -1935,10 +1940,10 @@
 stamps/plugin-tests.stamp: $(INITIAL_BOOTSTRAP_LINK_STAMP) $(PLUGIN_TEST_SRCS) \
  stamps/plugin.stamp
 	mkdir -p plugin/tests/LiveConnect
-	$(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g \
+	$(ICEDTEA_BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
 	 -d plugin/tests/LiveConnect \
 	 -classpath liveconnect/lib/classes.jar \
-	 -source 1.5 $(PLUGIN_TEST_SRCS) ;
+	 $(PLUGIN_TEST_SRCS) ;
 	$(ICEDTEA_BOOT_DIR)/bin/jar cf plugin/tests/LiveConnect/PluginTest.jar \
 	  plugin/tests/LiveConnect/*.class ;
 	cp -a $(abs_top_srcdir)/plugin/tests/LiveConnect/*.{js,html} plugin/tests/LiveConnect ;
@@ -1952,7 +1957,7 @@
 stamps/jtreg.stamp: stamps/icedtea-against-icedtea.stamp
 	rm -rf test/jtreg/classes
 	mkdir -p test/jtreg/classes
-	$(ICEDTEA_BOOT_DIR)/bin/javac -g -d test/jtreg/classes -source 1.5 \
+	$(ICEDTEA_BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) -d test/jtreg/classes \
 	   -encoding iso-8859-1 `find $(abs_top_srcdir)/test/jtreg/com -name '*.java'`
 	(cd $(abs_top_srcdir)/test/jtreg; \
 	 $(ICEDTEA_BOOT_DIR)/bin/jar cfm $(abs_top_builddir)/test/jtreg.jar \
@@ -2051,11 +2056,10 @@
 
 stamps/rt-class-files.stamp: $(INITIAL_BOOTSTRAP_LINK_STAMP) rt-source-files.txt
 	mkdir -p lib/rt
-	$(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d lib/rt \
-          -source 1.5 \
-          -sourcepath $(SOURCEPATH_DIRS) \
+	$(ICEDTEA_BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) -d lib/rt \
+          -sourcepath $(SOURCEPATH_DIRS) -bootclasspath \'\' \
           -classpath $(SYSTEM_JDK_DIR)/jre/lib/rt.jar \
-	  -bootclasspath \'\' @rt-source-files.txt ;
+	  @rt-source-files.txt ;
 	mkdir -p stamps
 	touch stamps/rt-class-files.stamp
 
@@ -2071,30 +2075,15 @@
 	mkdir -p stamps
 if LACKS_SUN_AWT_TOOLKIT
 	$(ICEDTEA_BOOT_DIR)/bin/jar uf $(ICEDTEA_RT) -C lib/rt com -C lib/rt java \
-	  -C lib/rt javax -C lib/rt sun ;
+	  -C lib/rt javax -C lib/rt sun 
+if ENABLE_NIO2
+	if [ -e lib/rt/org/classpath ] ; then \
+	    $(ICEDTEA_BOOT_DIR)/bin/jar uf $(ICEDTEA_RT) -C lib/rt org/classpath ; \
+	fi
+endif
 endif
 	touch stamps/rt.stamp
 
-# tools.jar
-stamps/tools.stamp:
-	mkdir -p bootstrap/jdk1.7.0/jre/lib/
-	ln -sf $(ICEDTEA_RT) $(abs_top_builddir)/bootstrap/jdk1.7.0/jre/lib/tools.jar
-	if test -d bootstrap/ecj ; \
-	then \
-	  mkdir -p bootstrap/ecj/lib/; \
-	  ln -sf $(abs_top_builddir)/bootstrap/jdk1.7.0/jre/lib/tools.jar \
-	    $(abs_top_builddir)/bootstrap/ecj/lib/tools.jar; \
-	fi
-	mkdir -p stamps
-	touch stamps/tools.stamp
-
-clean-tools-jar: 
-	rm -f bootstrap/jdk1.7.0/jre/lib/tools.jar
-	if test -d bootstrap/ecj/lib ; then \
-	  rm -f $(abs_top_builddir)/bootstrap/ecj/lib/tools.jar; \
-	fi
-	rm -f stamps/tools.stamp
-
 # Target Aliases
 # ===============
 
--- a/THANKYOU	Tue Mar 30 13:40:33 2010 +0100
+++ b/THANKYOU	Tue Mar 30 13:42:04 2010 +0100
@@ -5,3 +5,4 @@
 us know. Please keep this list in alphabetic order.
 
 Alon Bar-Lev (alon.barlev@gmail.com)
+C. K. Jester-Young  (cky944@gmail.com)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/generated/org/classpath/icedtea/java/nio/channels/AcceptPendingException.java	Tue Mar 30 13:42:04 2010 +0100
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2000-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+// -- This file was mechanically generated: Do not edit! -- //
+
+package org.classpath.icedtea.java.nio.channels;
+
+
+/**
+ * Unchecked exception thrown when an attempt is made to initiate an accept
+ * operation on a channel and a previous accept operation has not completed.
+ *
+ * @since 1.7
+ */
+
+public class AcceptPendingException
+    extends IllegalStateException
+{
+
+    private static final long serialVersionUID = 2721339977965416421L;
+
+    /**
+     * Constructs an instance of this class.
+     */
+    public AcceptPendingException() { }
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/generated/org/classpath/icedtea/java/nio/channels/IllegalChannelGroupException.java	Tue Mar 30 13:42:04 2010 +0100
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2000-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+// -- This file was mechanically generated: Do not edit! -- //
+
+package org.classpath.icedtea.java.nio.channels;
+
+
+/**
+ * Unchecked exception thrown when an attempt is made to open a channel
+ * in a group that was not created by the same provider. 
+ *
+ * @since 1.7
+ */
+
+public class IllegalChannelGroupException
+    extends IllegalArgumentException
+{
+
+    private static final long serialVersionUID = -2495041211157744253L;
+
+    /**
+     * Constructs an instance of this class.
+     */
+    public IllegalChannelGroupException() { }
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/generated/org/classpath/icedtea/java/nio/channels/InterruptedByTimeoutException.java	Tue Mar 30 13:42:04 2010 +0100
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2000-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+// -- This file was mechanically generated: Do not edit! -- //
+
+package org.classpath.icedtea.java.nio.channels;
+
+
+/**
+ * Checked exception received by a thread when a timeout elapses before an
+ * asynchronous operation completes.
+ *
+ * @since 1.7
+ */
+
+public class InterruptedByTimeoutException
+    extends java.io.IOException
+{
+
+    private static final long serialVersionUID = -4268008601014042947L;
+
+    /**
+     * Constructs an instance of this class.
+     */
+    public InterruptedByTimeoutException() { }
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/generated/org/classpath/icedtea/java/nio/channels/ReadPendingException.java	Tue Mar 30 13:42:04 2010 +0100
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2000-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+// -- This file was mechanically generated: Do not edit! -- //
+
+package org.classpath.icedtea.java.nio.channels;
+
+
+/**
+ * Unchecked exception thrown when an attempt is made to read from an
+ * asynchronous socket channel and a previous read has not completed.
+ *
+ * @since 1.7
+ */
+
+public class ReadPendingException
+    extends IllegalStateException
+{
+
+    private static final long serialVersionUID = 1986315242191227217L;
+
+    /**
+     * Constructs an instance of this class.
+     */
+    public ReadPendingException() { }
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/generated/org/classpath/icedtea/java/nio/channels/ShutdownChannelGroupException.java	Tue Mar 30 13:42:04 2010 +0100
@@ -0,0 +1,52 @@
+/*
+ * Copyright 2000-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+// -- This file was mechanically generated: Do not edit! -- //
+
+package org.classpath.icedtea.java.nio.channels;
+
+
+/**
+ * Unchecked exception thrown when an attempt is made to construct a channel in 
+ * a group that is shutdown or the completion handler for an I/O operation 
+ * cannot be invoked because the channel group is shutdown.
+ *
+ * @since 1.7
+ */
+
+public class ShutdownChannelGroupException
+    extends IllegalStateException
+{
+
+    private static final long serialVersionUID = -3903801676350154157L;
+
+    /**
+     * Constructs an instance of this class.
+     */
+    public ShutdownChannelGroupException() { }
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/generated/org/classpath/icedtea/java/nio/channels/WritePendingException.java	Tue Mar 30 13:42:04 2010 +0100
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2000-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+// -- This file was mechanically generated: Do not edit! -- //
+
+package org.classpath.icedtea.java.nio.channels;
+
+
+/**
+ * Unchecked exception thrown when an attempt is made to write to an
+ * asynchronous socket channel and a previous write has not completed.
+ *
+ * @since 1.7
+ */
+
+public class WritePendingException
+    extends IllegalStateException
+{
+
+    private static final long serialVersionUID = 7031871839266032276L;
+
+    /**
+     * Constructs an instance of this class.
+     */
+    public WritePendingException() { }
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/generated/sun/nio/fs/UnixConstants.java	Tue Mar 30 13:42:04 2010 +0100
@@ -0,0 +1,79 @@
+/*
+ * Copyright 2007-2008 Sun Microsystems, Inc.  All Rights Reserved.
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+// AUTOMATICALLY GENERATED FILE - DO NOT EDIT                                  
+package sun.nio.fs;                                                            
+class UnixConstants {                                                          
+    private UnixConstants() { }                                                
+    static final int O_RDONLY = 0;
+    static final int O_WRONLY = 1;
+    static final int O_RDWR = 2;
+    static final int O_APPEND = 0x400;
+    static final int O_CREAT = 0x40;
+    static final int O_EXCL = 0x80;
+    static final int O_TRUNC = 0x200;
+    static final int O_SYNC = 0x1000;
+    static final int O_DSYNC = 0x1000;
+    static final int O_NOFOLLOW = 0x20000;
+    static final int AT_SYMLINK_NOFOLLOW = 0x100;
+    static final int AT_REMOVEDIR = 0x200;
+    static final int S_IAMB = 0x1ff;
+    static final int S_IRUSR = 256;
+    static final int S_IWUSR = 128;
+    static final int S_IXUSR = 64;
+    static final int S_IRGRP = 32;
+    static final int S_IWGRP = 16;
+    static final int S_IXGRP = 8;
+    static final int S_IROTH = 4;
+    static final int S_IWOTH = 2;
+    static final int S_IXOTH = 1;
+    static final int S_IFMT = 0xf000;
+    static final int S_IFREG = 0x8000;
+    static final int S_IFDIR = 0x4000;
+    static final int S_IFLNK = 0xa000;
+    static final int S_IFCHR = 0x2000;
+    static final int S_IFBLK = 0x6000;
+    static final int S_IFIFO = 0x1000;
+    static final int R_OK = 4;
+    static final int W_OK = 2;
+    static final int X_OK = 1;
+    static final int F_OK = 0;
+    static final int ENOENT = 2;
+    static final int EACCES = 13;
+    static final int EEXIST = 17;
+    static final int ENOTDIR = 20;
+    static final int EINVAL = 22;
+    static final int EXDEV = 18;
+    static final int EISDIR = 21;
+    static final int ENOTEMPTY = 39;
+    static final int ENOSPC = 28;
+    static final int EAGAIN = 11;
+    static final int ENOSYS = 38;
+    static final int ELOOP = 40;
+    static final int EROFS = 30;
+    static final int ENODATA = 61;
+    static final int ERANGE = 34;
+}                                                                              
--- a/javac.in	Tue Mar 30 13:40:33 2010 +0100
+++ b/javac.in	Tue Mar 30 13:42:04 2010 +0100
@@ -1,41 +1,54 @@
-#!/bin/sh
+#!/usr/bin/perl -w
+use strict;
+use constant NO_DUP_ARGS => qw(-source -target -d -encoding);
+use constant STRIP_ARGS => qw(-Werror -implicit:none);
 
-case "$*" in
-  *-bootclasspath*) ;;
-  *) bcoption="-bootclasspath @abs_top_builddir@/bootstrap/jdk1.6.0/jre/lib/rt.jar"
-esac
+my $ECJ_WARNINGS="-nowarn";
+
+my @bcoption;
+push @bcoption, '-bootclasspath', glob '@abs_top_builddir@/bootstrap/jdk1.6.0/jre/lib/rt.jar'
+    unless grep {$_ eq '-bootclasspath'} @ARGV;
+my @ecj_parms = ($ECJ_WARNINGS, @bcoption);
 
 # Work around ecj's inability to handle duplicate command-line
-# options.
-
-NEW_ARGS="$@"
+# options and unknown javac options.
+sub gen_ecj_opts
+{
+    my @new_args = @{$_[0]};
 
-if echo "$@" | grep -q '\-source\ .*\-source\ '
-then
-  NEW_ARGS=`echo $NEW_ARGS | sed -e 's/-source\ *1\.[3456]//1'`
-fi
+    for my $opt (NO_DUP_ARGS) 
+    {
+	my @indices = reverse grep {$new_args[$_] eq $opt} 0..$#new_args;
+	if (@indices > 1) {
+	    shift @indices;    # keep last instance only
+	    splice @new_args, $_, 2 for @indices;
+	}
+    }
 
-if echo "$@" | grep -q '\-d\ .*\-d\ '
-then
-  NEW_ARGS=`echo $NEW_ARGS | sed -e 's/-d\ *[^\ ]*//1'`
-fi
+    for my $opt (STRIP_ARGS) 
+    {
+	my @indices = reverse grep {$new_args[$_] eq $opt} 0..$#new_args;
+	splice @new_args, $_, 1 for @indices;
+    }
 
-if echo "$@" | grep -q '\-encoding\ .*\-encoding\ '
-then
-  NEW_ARGS=`echo $NEW_ARGS | sed -e 's/-encoding\ *[^\ ]*//1'`
-fi
-
-if echo "$@" | grep -q '\-Werror'
-then
-  NEW_ARGS=`echo $NEW_ARGS | sed -e 's/-Werror//1'`
-fi
+    return @new_args;
+}
 
-if [ -e @abs_top_builddir@/native-ecj ] ; then
-    @abs_top_builddir@/native-ecj -1.5 -nowarn $bcoption $NEW_ARGS ;
-elif [ ! -z "@ECJ@" ] ; then
-    @ECJ@ -1.5 -nowarn $bcoption $NEW_ARGS
+if ( -e "@abs_top_builddir@/native-ecj" )
+{
+    my @ecj_args = gen_ecj_opts( \@ARGV );
+    exec '@abs_top_builddir@/native-ecj', @ecj_parms, @ecj_args ;
+}
+elsif ( -e "@ECJ_JAR@" )
+{
+    my @ecj_args = gen_ecj_opts( \@ARGV );
+    my @CLASSPATH = ('@ECJ_JAR@');
+    push @CLASSPATH, split /:/, $ENV{"CLASSPATH"} if exists $ENV{"CLASSPATH"};
+    $ENV{"CLASSPATH"} = join ':', @CLASSPATH;
+    exec '@JAVA@', 'org.eclipse.jdt.internal.compiler.batch.Main', @ecj_parms, @ecj_args;
+}
 else
-    CLASSPATH=@ECJ_JAR@${CLASSPATH:+:}$CLASSPATH \
-     @JAVA@ org.eclipse.jdt.internal.compiler.batch.Main -1.5 -nowarn $bcoption $NEW_ARGS
-fi
-
+{
+    my @ecj_args = gen_ecj_opts( \@ARGV );
+    exec '@ECJ@', @ecj_parms, @ecj_args ;
+}
--- a/patches/ecj/icedtea-hotspot.patch	Tue Mar 30 13:40:33 2010 +0100
+++ b/patches/ecj/icedtea-hotspot.patch	Tue Mar 30 13:42:04 2010 +0100
@@ -1,6 +1,6 @@
 diff -Nru openjdk-ecj.orig/hotspot/make/linux/Makefile openjdk-ecj/hotspot/make/linux/Makefile
---- openjdk-ecj.orig/hotspot/make/linux/Makefile	2008-10-24 10:16:06.000000000 +0100
-+++ openjdk-ecj/hotspot/make/linux/Makefile	2008-10-24 13:32:48.000000000 +0100
+--- openjdk-ecj.orig/hotspot/make/linux/Makefile	2010-03-29 21:34:14.000000000 +0100
++++ openjdk-ecj/hotspot/make/linux/Makefile	2010-03-29 21:40:39.000000000 +0100
 @@ -287,42 +287,36 @@
  
  $(TARGETS_C2):  $(SUBDIRS_C2)
@@ -45,18 +45,16 @@
  	cd $(OSNAME)_$(VARIANTARCH)_shark/$(patsubst %shark,%,$@) && $(MAKE) $(MFLAGS) install
  endif
 diff -Nru openjdk-ecj.orig/hotspot/make/linux/makefiles/sa.make openjdk-ecj/hotspot/make/linux/makefiles/sa.make
---- openjdk-ecj.orig/hotspot/make/linux/makefiles/sa.make	2008-10-24 10:16:06.000000000 +0100
-+++ openjdk-ecj/hotspot/make/linux/makefiles/sa.make	2008-10-24 13:32:48.000000000 +0100
+--- openjdk-ecj.orig/hotspot/make/linux/makefiles/sa.make	2010-03-29 21:34:15.000000000 +0100
++++ openjdk-ecj/hotspot/make/linux/makefiles/sa.make	2010-03-29 21:41:28.000000000 +0100
 @@ -74,8 +74,8 @@
  	  mkdir -p $(SA_CLASSDIR);        \
  	fi
  
--	$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -source 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -g -d $(SA_CLASSDIR) $(AGENT_FILES1)
--	$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -source 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -g -d $(SA_CLASSDIR) $(AGENT_FILES2)
-+	$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -source 1.4 -classpath $(SA_CLASSPATH):$(BOOT_JAVA_HOME)/jre/lib/rt.jar -sourcepath $(AGENT_SRC_DIR) -g -d $(SA_CLASSDIR) $(AGENT_FILES1)
-+	$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -source 1.4 -classpath $(SA_CLASSPATH):$(BOOT_JAVA_HOME)/jre/lib/rt.jar -sourcepath $(AGENT_SRC_DIR) -g -d $(SA_CLASSDIR) $(AGENT_FILES2)
+-	$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) $(AGENT_FILES1)
+-	$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) $(AGENT_FILES2)
++	$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH):$(BOOT_JAVA_HOME)/jre/lib/rt.jar -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) $(AGENT_FILES1)
++	$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH):$(BOOT_JAVA_HOME)/jre/lib/rt.jar -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) $(AGENT_FILES2)
  
  	$(QUIETLY) $(REMOTE) $(COMPILE.RMIC)  -classpath $(SA_CLASSDIR) -d $(SA_CLASSDIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer
  	$(QUIETLY) echo "$(SA_BUILD_VERSION_PROP)" > $(SA_PROPERTIES)
-
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/openjdk/6873059-javac-versioning-corba.patch	Tue Mar 30 13:42:04 2010 +0100
@@ -0,0 +1,23 @@
+# HG changeset patch
+# User andrew
+# Date 1250728138 -3600
+# Node ID 8001ba2bf10d8f6f9f26bf3684e9fd06ddb145ba
+# Parent  175bd68779546078dbdb6dacd7f0aced79ed22b1
+6873059: Explicitly use -source 6 -target 6 when compiling with the boot jdk javac
+Summary: The bootstrap javac currently uses the default source and targets of the boot javac
+Reviewed-by: jjg, ohair
+
+diff -r 175bd6877954 -r 8001ba2bf10d make/common/shared/Defs-java.gmk
+--- openjdk.orig/corba/make/common/shared/Defs-java.gmk	Fri Aug 14 08:49:25 2009 -0700
++++ openjdk/corba/make/common/shared/Defs-java.gmk	Thu Aug 20 01:28:58 2009 +0100
+@@ -179,7 +179,9 @@
+ ifeq ($(COMPILER_WARNINGS_FATAL), true)
+   BOOT_JAVACFLAGS  += -Werror
+ endif
+-BOOT_JAVACFLAGS  += -encoding ascii
++BOOT_SOURCE_LANGUAGE_VERSION = 6
++BOOT_TARGET_CLASS_VERSION = 6
++BOOT_JAVACFLAGS  += -encoding ascii -source $(BOOT_SOURCE_LANGUAGE_VERSION) -target $(BOOT_TARGET_CLASS_VERSION)
+ 
+ BOOT_JAVA_CMD      = $(BOOTDIR)/bin/java $(JAVA_TOOLS_FLAGS)
+ BOOT_JAVAC_CMD     = $(BOOTDIR)/bin/javac $(JAVAC_JVM_FLAGS) $(BOOT_JAVACFLAGS)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/openjdk/6873059-javac-versioning-hotspot.patch	Tue Mar 30 13:42:04 2010 +0100
@@ -0,0 +1,245 @@
+# HG changeset patch
+# User andrew
+# Date 1252756207 -3600
+# Node ID 0fc81f0a8ca8642c9e4b6901fa23b59c29ac81d7
+# Parent  682194ca1d8d5e705da06c5974ffcda76b0a7add
+6873059: Explicitly use -source 6 -target 6 when compiling with the boot jdk
+Summary: The build fails if the bootstrap JDK defaults to <1.5
+Reviewed-by: jcoomes
+
+diff -Nru openjdk.orig/hotspot/make/linux/makefiles/jvmti.make openjdk/hotspot/make/linux/makefiles/jvmti.make
+--- openjdk.orig/hotspot/make/linux/makefiles/jvmti.make	2010-03-29 21:25:49.000000000 +0100
++++ openjdk/hotspot/make/linux/makefiles/jvmti.make	2010-03-29 21:30:06.000000000 +0100
+@@ -70,10 +70,10 @@
+ both = $(JvmtiGenClass) $(JvmtiSrcDir)/jvmti.xml $(JvmtiSrcDir)/jvmtiLib.xsl
+ 
+ $(JvmtiGenClass): $(JvmtiGenSource)
+-	$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -g -d $(JvmtiOutDir) $(JvmtiGenSource)
++	$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -d $(JvmtiOutDir) $(JvmtiGenSource)
+ 
+ $(JvmtiEnvFillClass): $(JvmtiEnvFillSource)
+-	$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -g -d $(JvmtiOutDir) $(JvmtiEnvFillSource)
++	$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -d $(JvmtiOutDir) $(JvmtiEnvFillSource)
+ 
+ $(JvmtiOutDir)/jvmtiEnter.cpp: $(both) $(JvmtiSrcDir)/jvmtiEnter.xsl
+ 	@echo Generating $@
+diff -Nru openjdk.orig/hotspot/make/linux/makefiles/rules.make openjdk/hotspot/make/linux/makefiles/rules.make
+--- openjdk.orig/hotspot/make/linux/makefiles/rules.make	2010-03-29 21:25:49.000000000 +0100
++++ openjdk/hotspot/make/linux/makefiles/rules.make	2010-03-29 21:30:06.000000000 +0100
+@@ -122,12 +122,20 @@
+ endif
+ endif
+ 
++COMPILE.JAVAC += $(BOOTSTRAP_JAVAC_FLAGS)
++
+ SUM = /usr/bin/sum
+ 
+ # 'gmake MAKE_VERBOSE=y' gives all the gory details.
+ QUIETLY$(MAKE_VERBOSE)  = @
+ RUN.JAR$(MAKE_VERBOSE) += >/dev/null
+ 
++# Settings for javac
++BOOT_SOURCE_LANGUAGE_VERSION = 6
++BOOT_TARGET_CLASS_VERSION = 6
++JAVAC_FLAGS = -g -encoding ascii
++BOOTSTRAP_JAVAC_FLAGS = $(JAVAC_FLAGS) -source $(BOOT_SOURCE_LANGUAGE_VERSION) -target $(BOOT_TARGET_CLASS_VERSION)
++
+ # With parallel makes, print a message at the end of compilation.
+ ifeq    ($(findstring j,$(MFLAGS)),j)
+ COMPILE_DONE    = && { echo Done with $<; }
+diff -Nru openjdk.orig/hotspot/make/linux/makefiles/sa.make openjdk/hotspot/make/linux/makefiles/sa.make
+--- openjdk.orig/hotspot/make/linux/makefiles/sa.make	2010-03-29 21:25:48.000000000 +0100
++++ openjdk/hotspot/make/linux/makefiles/sa.make	2010-03-29 21:30:06.000000000 +0100
+@@ -74,8 +74,8 @@
+ 	  mkdir -p $(SA_CLASSDIR);        \
+ 	fi
+ 
+-	$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -source 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -g -d $(SA_CLASSDIR) $(AGENT_FILES1)
+-	$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -source 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -g -d $(SA_CLASSDIR) $(AGENT_FILES2)
++	$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) $(AGENT_FILES1)
++	$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) $(AGENT_FILES2)
+ 
+ 	$(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.orig/hotspot/make/linux/makefiles/top.make openjdk/hotspot/make/linux/makefiles/top.make
+--- openjdk.orig/hotspot/make/linux/makefiles/top.make	2010-03-29 21:25:49.000000000 +0100
++++ openjdk/hotspot/make/linux/makefiles/top.make	2010-03-29 21:30:06.000000000 +0100
+@@ -24,7 +24,7 @@
+ 
+ # top.make is included in the Makefile in the build directories.
+ # It DOES NOT include the vm dependency info in order to be faster.
+-# It's main job is to implement the incremental form of make lists.
++# Its main job is to implement the incremental form of make lists.
+ # It also:
+ #   -builds and runs adlc via adlc.make
+ #   -generates JVMTI source and docs via jvmti.make (JSR-163)
+@@ -116,7 +116,7 @@
+ # make makeDeps: (and zap the cached db files to force a nonincremental run)
+ 
+ $(GENERATED)/$(MakeDepsClass): $(MakeDepsSources)
+-	@$(REMOTE) $(COMPILE.JAVAC) -classpath $(GAMMADIR)/src/share/tools/MakeDeps -g -d $(GENERATED) $(MakeDepsSources)
++	@$(REMOTE) $(COMPILE.JAVAC) -classpath $(GAMMADIR)/src/share/tools/MakeDeps -d $(GENERATED) $(MakeDepsSources)
+ 	@echo Removing $(Incremental_Lists) to force regeneration.
+ 	@rm -f $(Incremental_Lists)
+ 	@$(CDG) echo >$(Cached_plat)
+diff -Nru openjdk.orig/hotspot/make/solaris/makefiles/jvmti.make openjdk/hotspot/make/solaris/makefiles/jvmti.make
+--- openjdk.orig/hotspot/make/solaris/makefiles/jvmti.make	2010-02-17 03:11:04.000000000 +0000
++++ openjdk/hotspot/make/solaris/makefiles/jvmti.make	2010-03-29 21:30:06.000000000 +0100
+@@ -69,10 +69,10 @@
+ both = $(JvmtiGenClass) $(JvmtiSrcDir)/jvmti.xml $(JvmtiSrcDir)/jvmtiLib.xsl
+ 
+ $(JvmtiGenClass): $(JvmtiGenSource)
+-	$(QUIETLY) $(COMPILE.JAVAC) -g -d $(JvmtiOutDir) $(JvmtiGenSource)
++	$(QUIETLY) $(COMPILE.JAVAC) -d $(JvmtiOutDir) $(JvmtiGenSource)
+ 
+ $(JvmtiEnvFillClass): $(JvmtiEnvFillSource)
+-	$(QUIETLY) $(COMPILE.JAVAC) -g -d $(JvmtiOutDir) $(JvmtiEnvFillSource)
++	$(QUIETLY) $(COMPILE.JAVAC) -d $(JvmtiOutDir) $(JvmtiEnvFillSource)
+ 
+ $(JvmtiOutDir)/jvmtiEnter.cpp: $(both) $(JvmtiSrcDir)/jvmtiEnter.xsl
+ 	@echo Generating $@
+diff -Nru openjdk.orig/hotspot/make/solaris/makefiles/rules.make openjdk/hotspot/make/solaris/makefiles/rules.make
+--- openjdk.orig/hotspot/make/solaris/makefiles/rules.make	2010-03-29 21:25:49.000000000 +0100
++++ openjdk/hotspot/make/solaris/makefiles/rules.make	2010-03-29 21:30:06.000000000 +0100
+@@ -122,12 +122,20 @@
+ endif
+ endif
+ 
++COMPILE.JAVAC += $(BOOTSTRAP_JAVAC_FLAGS)
++
+ SUM = /usr/bin/sum
+ 
+ # 'gmake MAKE_VERBOSE=y' gives all the gory details.
+ QUIETLY$(MAKE_VERBOSE)  = @
+ RUN.JAR$(MAKE_VERBOSE) += >/dev/null
+ 
++# Settings for javac
++BOOT_SOURCE_LANGUAGE_VERSION = 6
++BOOT_TARGET_CLASS_VERSION = 6
++JAVAC_FLAGS = -g -encoding ascii
++BOOTSTRAP_JAVAC_FLAGS = $(JAVAC_FLAGS) -source $(BOOT_SOURCE_LANGUAGE_VERSION) -target $(BOOT_TARGET_CLASS_VERSION)
++
+ # With parallel makes, print a message at the end of compilation.
+ ifeq    ($(findstring j,$(MFLAGS)),j)
+ COMPILE_DONE    = && { echo Done with $<; }
+diff -Nru openjdk.orig/hotspot/make/solaris/makefiles/sa.make openjdk/hotspot/make/solaris/makefiles/sa.make
+--- openjdk.orig/hotspot/make/solaris/makefiles/sa.make	2010-02-17 03:11:04.000000000 +0000
++++ openjdk/hotspot/make/solaris/makefiles/sa.make	2010-03-29 21:30:06.000000000 +0100
+@@ -67,8 +67,8 @@
+ 	$(QUIETLY) if [ ! -d $(SA_CLASSDIR) ] ; then \
+ 	  mkdir -p $(SA_CLASSDIR);        \
+ 	fi
+-	$(QUIETLY) $(COMPILE.JAVAC) -source 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -g -d $(SA_CLASSDIR) $(AGENT_FILES1)
+-	$(QUIETLY) $(COMPILE.JAVAC) -source 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -g -d $(SA_CLASSDIR) $(AGENT_FILES2)
++	$(QUIETLY) $(COMPILE.JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) $(AGENT_FILES1)
++	$(QUIETLY) $(COMPILE.JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) $(AGENT_FILES2)
+ 	
+ 	$(QUIETLY) $(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.orig/hotspot/make/solaris/makefiles/top.make openjdk/hotspot/make/solaris/makefiles/top.make
+--- openjdk.orig/hotspot/make/solaris/makefiles/top.make	2010-02-17 03:11:04.000000000 +0000
++++ openjdk/hotspot/make/solaris/makefiles/top.make	2010-03-29 21:30:06.000000000 +0100
+@@ -24,7 +24,7 @@
+ 
+ # top.make is included in the Makefile in the build directories.
+ # It DOES NOT include the vm dependency info in order to be faster.
+-# It's main job is to implement the incremental form of make lists.
++# Its main job is to implement the incremental form of make lists.
+ # It also:
+ #   -builds and runs adlc via adlc.make
+ #   -generates JVMTI source and docs via jvmti.make (JSR-163)
+@@ -112,7 +112,7 @@
+ # make makeDeps: (and zap the cached db files to force a nonincremental run)
+ 
+ $(GENERATED)/$(MakeDepsClass): $(MakeDepsSources)
+-	@$(COMPILE.JAVAC) -classpath $(GAMMADIR)/src/share/tools/MakeDeps -g -d $(GENERATED) $(MakeDepsSources)
++	@$(COMPILE.JAVAC) -classpath $(GAMMADIR)/src/share/tools/MakeDeps -d $(GENERATED) $(MakeDepsSources)
+ 	@echo Removing $(Incremental_Lists) to force regeneration.
+ 	@rm -f $(Incremental_Lists)
+ 	@$(CDG) echo >$(Cached_plat)
+diff -Nru openjdk.orig/hotspot/make/windows/makefiles/generated.make openjdk/hotspot/make/windows/makefiles/generated.make
+--- openjdk.orig/hotspot/make/windows/makefiles/generated.make	2010-02-17 03:11:04.000000000 +0000
++++ openjdk/hotspot/make/windows/makefiles/generated.make	2010-03-29 21:30:06.000000000 +0100
+@@ -91,7 +91,7 @@
+ classes/MakeDeps.class: $(MakeDepsSources)
+ 	if exist classes rmdir /s /q classes
+ 	mkdir classes
+-	$(COMPILE_JAVAC) -classpath $(WorkSpace)\src\share\tools\MakeDeps -g -d classes $(MakeDepsSources)
++	$(COMPILE_JAVAC) -classpath $(WorkSpace)\src\share\tools\MakeDeps -d classes $(MakeDepsSources)
+ 
+ !if ("$(Variant)" == "compiler2") || ("$(Variant)" == "tiered")
+ 
+diff -Nru openjdk.orig/hotspot/make/windows/makefiles/jvmti.make openjdk/hotspot/make/windows/makefiles/jvmti.make
+--- openjdk.orig/hotspot/make/windows/makefiles/jvmti.make	2010-02-17 03:11:04.000000000 +0000
++++ openjdk/hotspot/make/windows/makefiles/jvmti.make	2010-03-29 21:30:06.000000000 +0100
+@@ -68,10 +68,10 @@
+         @if not exist $(JvmtiOutDir) mkdir $(JvmtiOutDir)
+ 
+ $(JvmtiGenClass): $(JvmtiGenSource)
+-	$(COMPILE_JAVAC) -g -d $(JvmtiOutDir) $(JvmtiGenSource)
++	$(COMPILE_JAVAC) -d $(JvmtiOutDir) $(JvmtiGenSource)
+ 
+ $(JvmtiEnvFillClass): $(JvmtiEnvFillSource)
+-	@$(COMPILE_JAVAC) -g -d $(JvmtiOutDir) $(JvmtiEnvFillSource)
++	@$(COMPILE_JAVAC) -d $(JvmtiOutDir) $(JvmtiEnvFillSource)
+ 
+ $(JvmtiOutDir)/jvmtiEnter.cpp: $(both) $(JvmtiSrcDir)/jvmtiEnter.xsl
+ 	@echo Generating $@
+diff -Nru openjdk.orig/hotspot/make/windows/makefiles/rules.make openjdk/hotspot/make/windows/makefiles/rules.make
+--- openjdk.orig/hotspot/make/windows/makefiles/rules.make	2010-02-17 03:11:04.000000000 +0000
++++ openjdk/hotspot/make/windows/makefiles/rules.make	2010-03-29 21:30:42.000000000 +0100
+@@ -29,7 +29,7 @@
+ RUN_JAVAP=$(BootStrapDir)\bin\javap
+ RUN_JAVAH=$(BootStrapDir)\bin\javah
+ RUN_JAR=$(BootStrapDir)\bin\jar
+-COMPILE_JAVAC=$(BootStrapDir)\bin\javac
++COMPILE_JAVAC=$(BootStrapDir)\bin\javac $(BOOTSTRAP_JAVAC_FLAGS)
+ COMPILE_RMIC=$(BootStrapDir)\bin\rmic
+ BOOT_JAVA_HOME=$(BootStrapDir)
+ !else
+@@ -37,11 +37,17 @@
+ RUN_JAVAP=javap
+ RUN_JAVAH=javah
+ RUN_JAR=jar
+-COMPILE_JAVAC=javac
++COMPILE_JAVAC=javac $(BOOTSTRAP_JAVAC_FLAGS)
+ COMPILE_RMIC=rmic
+ BOOT_JAVA_HOME=
+ !endif
+ 
++# Settings for javac
++BOOT_SOURCE_LANGUAGE_VERSION=6
++BOOT_TARGET_CLASS_VERSION=6
++JAVAC_FLAGS=-g -encoding ascii
++BOOTSTRAP_JAVAC_FLAGS=$(JAVAC_FLAGS) -source $(BOOT_SOURCE_LANGUAGE_VERSION) -target $(BOOT_TARGET_CLASS_VERSION)
++
+ !if "$(MSC_VER)" == "1200"
+ VcVersion=VC6
+ ProjectFile=vm.dsp
+diff -Nru openjdk.orig/hotspot/make/windows/makefiles/sa.make openjdk/hotspot/make/windows/makefiles/sa.make
+--- openjdk.orig/hotspot/make/windows/makefiles/sa.make	2010-02-17 03:11:04.000000000 +0000
++++ openjdk/hotspot/make/windows/makefiles/sa.make	2010-03-29 21:30:06.000000000 +0100
+@@ -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 -classpath $(SA_CLASSPATH) -g -d $(SA_CLASSDIR) ....
+-	@$(COMPILE_JAVAC) -source 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -g -d $(SA_CLASSDIR) $(AGENT_FILES1:/=\)
+-	@$(COMPILE_JAVAC) -source 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -g -d $(SA_CLASSDIR) $(AGENT_FILES2:/=\)
++	@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:/=\)
+ 	$(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
+diff -Nru openjdk.orig/hotspot/make/windows/projectfiles/common/Makefile openjdk/hotspot/make/windows/projectfiles/common/Makefile
+--- openjdk.orig/hotspot/make/windows/projectfiles/common/Makefile	2010-02-17 03:11:04.000000000 +0000
++++ openjdk/hotspot/make/windows/projectfiles/common/Makefile	2010-03-29 21:30:06.000000000 +0100
+@@ -179,6 +179,6 @@
+ $(HOTSPOTBUILDSPACE)/classes/MakeDeps.class: $(MakeDepsSources)
+ 	@if exist $(HOTSPOTBUILDSPACE)\classes rmdir /s /q $(HOTSPOTBUILDSPACE)\classes
+ 	@mkdir $(HOTSPOTBUILDSPACE)\classes
+-	@$(COMPILE_JAVAC) -classpath $(HOTSPOTWORKSPACE)\src\share\tools\MakeDeps -g -d $(HOTSPOTBUILDSPACE)/classes $(MakeDepsSources)
++	@$(COMPILE_JAVAC) -classpath $(HOTSPOTWORKSPACE)\src\share\tools\MakeDeps -d $(HOTSPOTBUILDSPACE)/classes $(MakeDepsSources)
+ 
+ FORCE:
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/openjdk/6873059-javac-versioning-jdk.patch	Tue Mar 30 13:42:04 2010 +0100
@@ -0,0 +1,15 @@
+diff -Nru openjdk.orig/jdk/make/common/shared/Defs-java.gmk openjdk/jdk/make/common/shared/Defs-java.gmk
+--- openjdk.orig/jdk/make/common/shared/Defs-java.gmk	2010-03-29 23:19:08.000000000 +0100
++++ openjdk/jdk/make/common/shared/Defs-java.gmk	2010-03-29 23:22:38.000000000 +0100
+@@ -186,7 +186,10 @@
+ ifeq ($(COMPILER_WARNINGS_FATAL), true)
+   BOOT_JAVACFLAGS  += -Werror
+ endif
+-BOOT_JAVACFLAGS  += -encoding ascii
++
++BOOT_SOURCE_LANGUAGE_VERSION = 6
++BOOT_TARGET_CLASS_VERSION = 6
++BOOT_JAVACFLAGS  += -encoding ascii -source $(BOOT_SOURCE_LANGUAGE_VERSION) -target $(BOOT_TARGET_CLASS_VERSION)
+ 
+ BOOT_JAVACFLAGS  += $(NO_PROPRIETARY_API_WARNINGS)
+