changeset 1561:8fb35b2a8847

2009-01-19 Andrew John Hughes <gnu_andrew@member.fsf.org> Merge with IcedTea6. * patches/hotspot/original/icedtea-sparc64-linux.patch, * patches/icedtea-cc-interp-no-fer.patch, * patches/icedtea-hotspot-6b12-7b24.patch: Removed. * .hgignore, * ChangeLog, * HACKING, * IcedTeaPlugin.cc, * Makefile.am, * acinclude.m4, * configure.ac, * contrib/jck/compile-native-code.sh, * contrib/mixtec-hacks.patch, * contrib/mixtec-sleep-on-bomb.patch, * generated/com/sun/corba/se/impl/logging/ActivationSystemException.java, * generated/com/sun/corba/se/impl/logging/IORSystemException.java, * generated/com/sun/corba/se/impl/logging/InterceptorsSystemException.java, * generated/com/sun/corba/se/impl/logging/NamingSystemException.java, * generated/com/sun/corba/se/impl/logging/OMGSystemException.java, * generated/com/sun/corba/se/impl/logging/ORBUtilSystemException.java, * generated/com/sun/corba/se/impl/logging/POASystemException.java, * generated/com/sun/corba/se/impl/logging/UtilSystemException.java, * hotspot.map, * javac.in, * overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/JARDesc.java, * overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/NetxPanel.java, * overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/Parser.java, * overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/PluginBridge.java, * overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/cache/Resource.java, * overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/cache/ResourceTracker.java, * overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/cache/UpdatePolicy.java, * overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/runtime/JNLPClassLoader.java, * patches/hotspot/original/icedtea-6791168.patch, * patches/hotspot/original/icedtea-core-zero-build.patch, * patches/hotspot/original/icedtea-includedb.patch, * patches/hotspot/original/icedtea-no-precompiled.patch, * patches/hotspot/original/icedtea-parisc-opt.patch, * patches/hotspot/original/icedtea-shark-build.patch, * patches/hotspot/original/icedtea-sparc-buildfixes.patch, * patches/hotspot/original/icedtea-text-relocations.patch, * patches/hotspot/original/icedtea-version.patch, * patches/icedtea-awt-window-size.patch, * patches/icedtea-cc-interp-jvmti.patch, * patches/icedtea-demo-swingapplet.patch, * patches/icedtea-hotspot-6b14-7b24.patch, * patches/icedtea-hotspot7-build-fixes.patch, * patches/icedtea-io_util-overflow.patch, * patches/icedtea-lucene-crash.patch, * patches/icedtea-rhino.patch, * patches/icedtea-samejvm-safe.patch, * patches/icedtea-uname.patch, * patches/icedtea-zero.patch, * plugin/icedtea/netscape/javascript/JSObject.java, * plugin/icedtea/sun/applet/PluginAppletViewer.java, * ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp, * ports/hotspot/src/cpu/zero/vm/disassembler_zero.cpp, * ports/hotspot/src/cpu/zero/vm/globals_zero.hpp, * ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp, * ports/hotspot/src/share/vm/shark/sharkBlock.cpp, * ports/hotspot/src/share/vm/shark/sharkBlock.hpp, * ports/hotspot/src/share/vm/shark/sharkBuilder.hpp, * ports/hotspot/src/share/vm/shark/sharkCompiler.cpp, * ports/hotspot/src/share/vm/shark/sharkFunction.cpp: Merged.
author Andrew John Hughes <gnu_andrew@member.fsf.org>
date Tue, 20 Jan 2009 00:26:05 +0000
parents bdb64f82284d
children 52b6f4605e43
files .hgignore ChangeLog HACKING IcedTeaPlugin.cc Makefile.am acinclude.m4 configure.ac contrib/mixtec-hacks.patch generated/com/sun/corba/se/impl/logging/ActivationSystemException.java generated/com/sun/corba/se/impl/logging/IORSystemException.java generated/com/sun/corba/se/impl/logging/InterceptorsSystemException.java generated/com/sun/corba/se/impl/logging/NamingSystemException.java generated/com/sun/corba/se/impl/logging/OMGSystemException.java generated/com/sun/corba/se/impl/logging/ORBUtilSystemException.java generated/com/sun/corba/se/impl/logging/POASystemException.java generated/com/sun/corba/se/impl/logging/UtilSystemException.java hotspot.map javac.in overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/JARDesc.java overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/NetxPanel.java overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/Parser.java overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/PluginBridge.java overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/cache/Resource.java overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/cache/ResourceTracker.java overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/cache/UpdatePolicy.java overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/runtime/JNLPClassLoader.java patches/hotspot/original/icedtea-shark-build.patch patches/hotspot/original/icedtea-text-relocations.patch patches/hotspot/original/icedtea-version.patch patches/icedtea-hotspot7-build-fixes.patch patches/icedtea-lucene-crash.patch patches/icedtea-rhino.patch patches/icedtea-samejvm-safe.patch patches/icedtea-uname.patch patches/icedtea-zero.patch plugin/icedtea/netscape/javascript/JSObject.java plugin/icedtea/sun/applet/PluginAppletViewer.java ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp ports/hotspot/src/cpu/zero/vm/disassembler_zero.cpp ports/hotspot/src/cpu/zero/vm/globals_zero.hpp ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp ports/hotspot/src/share/vm/shark/sharkBlock.cpp ports/hotspot/src/share/vm/shark/sharkBlock.hpp ports/hotspot/src/share/vm/shark/sharkBuilder.hpp ports/hotspot/src/share/vm/shark/sharkCompiler.cpp ports/hotspot/src/share/vm/shark/sharkFunction.cpp
diffstat 46 files changed, 1315 insertions(+), 374 deletions(-) [+]
line wrap: on
line diff
--- a/.hgignore	Mon Jan 19 02:29:32 2009 +0000
+++ b/.hgignore	Tue Jan 20 00:26:05 2009 +0000
@@ -441,6 +441,18 @@
 rt/javax/net/ssl/X509ExtendedKeyManager.java
 rt/javax/net/ssl/X509KeyManager.java
 rt/javax/net/ssl/X509TrustManager.java
+rt/javax/script/AbstractScriptEngine.java
+rt/javax/script/Bindings.java
+rt/javax/script/Compilable.java
+rt/javax/script/CompiledScript.java
+rt/javax/script/Invocable.java
+rt/javax/script/ScriptContext.java
+rt/javax/script/ScriptEngine.java
+rt/javax/script/ScriptEngineFactory.java
+rt/javax/script/ScriptEngineManager.java
+rt/javax/script/ScriptException.java
+rt/javax/script/SimpleBindings.java
+rt/javax/script/SimpleScriptContext.java
 rt/java/io/
 rt/sun/awt
 rt/netscape/javascript/JSException.java
--- a/ChangeLog	Mon Jan 19 02:29:32 2009 +0000
+++ b/ChangeLog	Tue Jan 20 00:26:05 2009 +0000
@@ -1,3 +1,70 @@
+2009-01-19  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+	Merge with IcedTea6.
+	* patches/hotspot/original/icedtea-sparc64-linux.patch,
+	* patches/icedtea-cc-interp-no-fer.patch,
+	* patches/icedtea-hotspot-6b12-7b24.patch: Removed.
+	* .hgignore,
+	* ChangeLog,
+	* HACKING,
+	* IcedTeaPlugin.cc,
+	* Makefile.am,
+	* acinclude.m4,
+	* configure.ac,
+	* contrib/jck/compile-native-code.sh,
+	* contrib/mixtec-hacks.patch,
+	* contrib/mixtec-sleep-on-bomb.patch,
+	* generated/com/sun/corba/se/impl/logging/ActivationSystemException.java,
+	* generated/com/sun/corba/se/impl/logging/IORSystemException.java,
+	* generated/com/sun/corba/se/impl/logging/InterceptorsSystemException.java,
+	* generated/com/sun/corba/se/impl/logging/NamingSystemException.java,
+	* generated/com/sun/corba/se/impl/logging/OMGSystemException.java,
+	* generated/com/sun/corba/se/impl/logging/ORBUtilSystemException.java,
+	* generated/com/sun/corba/se/impl/logging/POASystemException.java,
+	* generated/com/sun/corba/se/impl/logging/UtilSystemException.java,
+	* hotspot.map,
+	* javac.in,
+	* overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/JARDesc.java,
+	* overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/NetxPanel.java,
+	* overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/Parser.java,
+	* overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/PluginBridge.java,
+	* overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/cache/Resource.java,
+	* overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/cache/ResourceTracker.java,
+	* overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/cache/UpdatePolicy.java,
+	* overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/runtime/JNLPClassLoader.java,
+	* patches/hotspot/original/icedtea-6791168.patch,
+	* patches/hotspot/original/icedtea-core-zero-build.patch,
+	* patches/hotspot/original/icedtea-includedb.patch,
+	* patches/hotspot/original/icedtea-no-precompiled.patch,
+	* patches/hotspot/original/icedtea-parisc-opt.patch,
+	* patches/hotspot/original/icedtea-shark-build.patch,
+	* patches/hotspot/original/icedtea-sparc-buildfixes.patch,
+	* patches/hotspot/original/icedtea-text-relocations.patch,
+	* patches/hotspot/original/icedtea-version.patch,
+	* patches/icedtea-awt-window-size.patch,
+	* patches/icedtea-cc-interp-jvmti.patch,
+	* patches/icedtea-demo-swingapplet.patch,
+	* patches/icedtea-hotspot-6b14-7b24.patch,
+	* patches/icedtea-hotspot7-build-fixes.patch,
+	* patches/icedtea-io_util-overflow.patch,
+	* patches/icedtea-lucene-crash.patch,
+	* patches/icedtea-rhino.patch,
+	* patches/icedtea-samejvm-safe.patch,
+	* patches/icedtea-uname.patch,
+	* patches/icedtea-zero.patch,
+	* plugin/icedtea/netscape/javascript/JSObject.java,
+	* plugin/icedtea/sun/applet/PluginAppletViewer.java,
+	* ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp,
+	* ports/hotspot/src/cpu/zero/vm/disassembler_zero.cpp,
+	* ports/hotspot/src/cpu/zero/vm/globals_zero.hpp,
+	* ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp,
+	* ports/hotspot/src/share/vm/shark/sharkBlock.cpp,
+	* ports/hotspot/src/share/vm/shark/sharkBlock.hpp,
+	* ports/hotspot/src/share/vm/shark/sharkBuilder.hpp,
+	* ports/hotspot/src/share/vm/shark/sharkCompiler.cpp,
+	* ports/hotspot/src/share/vm/shark/sharkFunction.cpp:
+	Merged.
+
 2009-01-18  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
 	Bump to b43.
@@ -12,6 +79,28 @@
 	GenerateSBCS.java using java.util.Scanner for ecj builds.
 	* patches/xrender/icedtea-002.patch: Recreated against b43.
 
+2009-01-17  Mark Wielaard  <mark@klomp.org>
+
+	* patches/icedtea-version.patch (samejvmsafe): Removed the following
+	directories that contain test that are not samevm safe.
+	javax/crypto/Cipher (TestGetInstance)
+	javax/naming (CompareToEqualsTests)
+	sun/rmi (RmicDefault)
+	sun/security/util (OidFormat)
+	sun/security/x509
+	(ExtensibleAlgorithmId,EmailAddressEncoding,AllAttribs)
+
+2009-01-15  Omair Majid  <omajid@redhat.com>
+
+	* patches/icedtea-a11y-property-change.patch: Removed incorrect patch.
+	* HACKING: Remove above patch.
+	* Makefile.am (ICEDTEA_PATCHES): Removed patch.
+
+2009-01-15  Gary Benson  <gbenson@redhat.com>
+
+	* ports/hotspot/src/cpu/zero/vm/globals_zero.hpp
+	(StackShadowPages): Increase for 64-bit builds.
+
 2008-12-22  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
 	* Makefile.am: Fix b42 tarball name and checksum
@@ -50,12 +139,264 @@
 	cleaner solution.
 	* patches/icedtea-version.patch:
 	Remove mjw's patch.  Applied upstream as S6775152.
-	
-2008-12-09  Mark Wielaard  <mark@klomp.org>
+
+2009-01-13  Omair Majid  <omajid@redhat.com>
+
+	* rt/net/sourceforge/jnlp/cache/ResourceTracker.java
+	(downloadResource): Call getVersionedResourceURL to get the versioned jar.
+	(initializeResource): Likewise.
+	(getVersionedResourceURL): New function. Constructs a URL with a
+	version-id as the query.
+
+2009-01-13  Gary Benson  <gbenson@redhat.com>
+
+	* contrib/jck/compile-native-code.sh: Build with -m32 or -m64.
+
+2009-01-13  Matthias Klose  <doko@ubuntu.com>
+
+	* patches/hotspot/14.0b08/icedtea-hotspot-dispatch.patch: Remove,
+	replaced by ...
+	* patches/hotspot/14.0b08/icedtea-6791168.patch: New.
+	* patches/hotspot/14.0b08/icedtea-includedb.patch: Update.
+	* HACKING: Update for the above.
+	* Makefile.am: Update for the above.
+
+2009-01-12  Andrew Haley  <aph@redhat.com>
+
+	* ports/hotspot/src/share/vm/shark/sharkBlock.cpp (SharkBlock::do_ldc):
+        Add logic for ldc(Class).
+
+2009-01-11  Mark Wielaard  <mark@klomp.org>
+
+	* Makefile.am: Escape single quotes in empty bootclasspath.
+
+2009-01-09  Omair Majid  <omajid@redhat.com>
+
+	* patches/icedtea-awt-window-size.patch: New file. Fix X11 window size
+	calculation.
+	* Makefile.am: Apply patch.
+	* HACKING: Document the above.
+
+2009-01-09  Gary Benson  <gbenson@redhat.com>
+
+	* contrib/mixtec-sleep-on-bomb.patch: New file.
+
+2009-01-09  Gary Benson  <gbenson@redhat.com>
+
+	* ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
+	(CppInterpreter::main_loop): Catch unhandled messages.
+
+2009-01-09  Gary Benson  <gbenson@redhat.com>
+
+	* patches/icedtea-cc-interp-jvmti.patch: Also disable pop_frame.
+
+2009-01-08  Matthias Klose  <doko@ubuntu.com>
+
+	PR icedtea/277
+	* patches/hotspot/14.0b08/icedtea-includedb.patch: New.
+	* Makefile.am: Apply.
+	* HACKING: Document the above.
+
+2009-01-08  Matthias Klose  <doko@ubuntu.com>
+
+	* patches/hotspot/14.0b08/icedtea-no-precompiled.patch: Don't use
+	precompiled header files in hotspot.
+	* HACKING: Document the above.
+
+2009-01-08  Christian Thalinger  <christian.thalinger@gmail.com>
+
+	* acinclude.m4 (SET_OS_DIRS): New function.
+	* configure.ac: Call SET_OS_DIRS and made ALSA check conditional.
+	* Makefile.am (LINUX_DIR): Renamed to OS_DIR and use BUILD_OS_DIR
+	variable.
+	(ICEDTEA_ENV, ICEDTEA_ENV_ECJ): Added OS_PATH to PATH.
+
+2009-01-07  Matthias Klose  <doko@ubuntu.com>
+
+	* patches/hotspot/14.0b08/icedtea-hotspot-dispatch.patch: New, fix
+	build failure with GCC-4.4.
+	* Makefile.am: Apply.
+	* HACKING: Document the above.
+
+2009-01-06  Omair Majid  <omajid@redhat.com>
+
+	* patches/icedtea-demo-swingapplet.patch: New file.
+	* Makefile.am (ICEDTEA_PATCHES): Apply the above.
+	* HACKING: Document the above.
+
+2009-01-05  Andrew Haley  <aph@redhat.com>
+
+	* Makefile.am (ICEDTEA_PATCHES): Fix bad checkin.
+
+2008-12-24  Andrew Haley  <aph@redhat.com>
+
+	* ports/hotspot/src/share/vm/shark/sharkFunction.cpp
+	(SharkFunction::initialize): Work around bug in
+	ciTypeFlow::Block::pre_order_at().
+	* ports/hotspot/src/share/vm/shark/sharkCompiler.cpp 
+	(SharkCompiler::compile_method): Allow "*" as a wildcard.
+	* ports/hotspot/src/share/vm/shark/sharkBuilder.hpp (llvm::IRBuilder):
+	type2aelembytes now a mamber function.
+	* ports/hotspot/src/share/vm/shark/sharkBlock.hpp (class
+	SharkBlock): is_private_copy renamed is_backedge_copy.
+	* ports/hotspot/src/share/vm/shark/sharkBlock.cpp (SharkBlock::parse):
+	force_bci if there's a trap.
+	* ports/hotspot/src/cpu/zero/vm/disassembler_zero.cpp: Delete
+	everything.
+
+2008-12-24  Omair Majid  <omajid@redhat.com>
+
+	* patches/icedtea-a11y-property-change.patch: New file.
+	* Makefile.am (ICEDTEA_PATCHES): Apply the above.
+	* HACKING: Document the above.
+
+2008-12-24  Gary Benson  <gbenson@redhat.com>
+
+	* patches/icedtea-cc-interp-jvmti.patch: New file.
+	* patches/icedtea-cc-interp-no-fer.patch: Deleted file.
+	* Makefile.am (ICEDTEA_PATCHES): Apply the above.
+	* HACKING: Document the above.
+
+2008-12-23  Matthias Klose  <doko@ubuntu.com>
+
+	* patches/hotspot/original/icedtea-version.patch: Update.
+
+2008-12-23  Gary Benson  <gbenson@redhat.com>
+
+	* HACKING: Added bug id for my last patch.
+
+2008-12-23  Matthias Klose  <doko@ubuntu.com>
+
+	* Makefile.am (ICEDTEA_ENV, ICEDTEA_ENV_GCJ): Don't explicitely append
+	standard directories to PATH.
+
+2008-12-22  Gary Benson  <gbenson@redhat.com>
+
+	* patches/icedtea-io_util-overflow.patch: New file.
+	* Makefile.am (ICEDTEA_PATCHES): Apply the above.
+	* HACKING: Document the above.
+
+2008-12-21  Matthias Klose  <doko@ubuntu.com>
+
+	* Makefile.am (ICEDTEA_ENV, ICEDTEA_ENV_GCJ): Prepend directories
+	to PATH, don't replace PATH.
+
+2008-12-19  Omair Majid  <omajid@redhat.com>
+
+	* patches/hotspot/14.0b08/icedtea-text-relocations.patch: Build libjvm.so
+	as PIC.
+
+2008-12-19  Andrew Haley  <aph@redhat.com>
+
+	* Makefile.am (stamps/download.stamp): Check MD5sum on hotspot.tar.gz.
+	(stamps/extract.stamp): Use AWK here rather than cut.
+	* hotspot.map: Add md5sum for 14.0b08.
+
+2008-12-17  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+	* acinclude.m4:
+	(FIND_RHINO_JAR): Check for js.jar
+	in Gentoo install location too.
+
+2008-12-17  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
 	* Makefile.am:
-	Add comment to describe wildcard fix.
-	
+	No need to check again that SYSTEM_GCJ_DIR exists.
+	* acinclude.m4:
+	(AC_CHECK_FOR_GCJ_JDK): Added.
+	(AC_CHECK_FOR_OPENJDK): Likewise.
+	(AC_CHECK_FOR_ICEDTEA): Likewise.
+	* configure.ac:
+	Do --with-icedtea/--with-openjdk check earlier.
+	More --with-x-home options to macros in acinclude.m4.
+	Remove redundant erroneous use of GCC_OLD.
+
+2008-12-17  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+	* Makefile.am:
+	Remove use of LIBGCJ_JAR, replacing with
+	SYSTEM_GCJ_DIR/jre/lib/rt.jar.
+	* acinclude.m4:
+	(AC_CHECK_GCC_VERSION): Added.
+	(FIND_LIBGCJ_JAR): Removed.
+	* configure.ac:
+	Call AC_CHECK_GCC_VERSION, don't
+	call FIND_LIBGCJ_JAR.
+	* javac.in:
+	Use SYSTEM_GCJ_DIR/jre/lib/rt.jar not LIBGCJ_JAR.
+
+2008-12-17  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+	* Makefile.am:
+	Remove the HotSpot directory while extracting
+	OpenJDK and then only when HSBUILD is not original.
+
+2008-12-17  Gary Benson  <gbenson@redhat.com>
+
+	* contrib/mixtec-hacks.patch: Updated.
+
+2008-12-17  Gary Benson  <gbenson@redhat.com>
+
+	* ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
+	(_Copy_conjoint_jshorts_atomic): Implemented.
+
+2008-12-17  Matthias Klose  <doko@ubuntu.com>
+
+	* patches/icedtea-zero.patch: Update for PARISC.
+
+2008-12-16  Lillian Angel  <langel@redhat.com>
+
+	* patches/icedtea-version.patch: Moved bug report link
+	patch to following file.
+	* patches/hotspot/14.0b08/icedtea-version.patch: Added patch.
+
+2008-12-16  Andrew Haley  <aph@redhat.com>
+
+	* ports/hotspot/src/share/vm/shark/sharkFunction.cpp
+	(SharkFunction::CreatePopFrame): Remove _LP64 special-case code.
+
+	* ports/hotspot/src/share/vm/shark/sharkBlock.cpp (SharkBlock::parse):
+	Don't call pop() more than once in an arglist.
+
+2008-12-15  Lillian Angel  <langel@redhat.com>
+
+	Fixes #475888
+	* patches/icedtea-version.patch: Added patch to set bug report link to
+	icedtea's bugzilla.
+
+2008-12-11  Deepak Bhole  <dbhole@redhat.com>
+
+	* IcedTeaPlugin.cc: Clean up output shown in non debug mode.
+	* plugin/icedtea/netscape/javascript/JSObject.java: Same.
+	* rt/net/sourceforge/jnlp/NetxPanel.java: Same.
+	* rt/net/sourceforge/jnlp/PluginBridge.java: Same.
+
+2008-12-10  Matthias Klose  <doko@ubuntu.com>
+
+	* patches/hotspot/*/icedtea-text-relocations.patch: Update for PARISC.
+	* patches/icedtea-zero.patch: Likewise.
+	* patches/hotspot/*/icedtea-parisc-opt.patch: New.
+	* Makefile.am (ICEDTEA_PATCHES): Apply icedtea-parisc-opt.patch.
+
+2008-12-10  Deepak Bhole <dbhole@redhat.com>
+
+	* plugin/icedtea/sun/applet/PluginAppletViewer.java: Remove spurious
+	call to getSecuritymanager() that was causing a CCE.
+	* rt/net/sourceforge/jnlp/JARDesc.java: Track if the jar is cacheable or
+	not.
+	* rt/net/sourceforge/jnlp/Parser.java: Provide new cacheable param to
+	JARDesc constructor.
+	* rt/net/sourceforge/jnlp/PluginBridge.java: Track cache_archive and
+	cache_archive_ex parameters in addition to archive.
+	* rt/net/sourceforge/jnlp/cache/Resource.java: Track per resource update
+	policy.
+	* rt/net/sourceforge/jnlp/cache/ResourceTracker.java: Take into account a
+	new update policy of "forced" update on each instantiation.
+	* rt/net/sourceforge/jnlp/cache/UpdatePolicy.java: Create new FORCE update
+	policy.
+	* rt/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: Provide new 
+	cacheable param to JARDesc constructor.
+
 2008-12-09  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
 	* patches/xrender/icedtea-000.patch:
@@ -65,12 +406,119 @@
 	* patches/xrender/icedtea-004.patch:
 	Recreated against OpenJDK7.
 
+2008-12-09  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+	* Makefile.am:
+	Support use of HGREV.
+	* acinclude.m4:
+	(AC_CHECK_WITH_HG_REVISION): Add --with-hg-revision.
+	* configure.ac:
+	Call AC_CHECK_WITH_HG_REVISION.
+
 2008-12-09  Mark Wielaard  <mark@klomp.org>
 
 	* Makefile.am:
 	Fix XRender wildcard to work where
 	srcdir != builddir.
 
+2008-12-09  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+	* Makefile.am:
+	Properly support --with-openjdk-src-dir.
+	* acinclude.m4:
+	Correct the define for OPENJDK_SRC_DIR.
+
+2008-12-09  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+	* Makefile.am:
+	Support downloading from the Mercurial repository.
+	* acinclude.m4:
+	(ENABLE_HG): New macro.
+	* configure.ac:
+	Check for --enable-hg.
+
+2008-12-09  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+	* configure.ac:
+	Capitalise 'XRender' in configure option.
+
+2008-12-09  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+	* Makefile.am:
+	Don't use find to locate the hotspot directory,
+	explicitly use 'hotspot-' plus the changeset.
+
+2008-12-09  Gary Benson  <gbenson@redhat.com>
+
+	* contrib/jck/compile-native-code.sh: Fix library paths.
+
+2008-12-08  Gary Benson  <gbenson@redhat.com>
+
+	* contrib/jck/compile-native-code.sh: New file.
+
+2008-12-07  Matthias Klose  <doko@ubuntu.com>
+
+	* patches/icedtea-uname.patch: Update for PARISC.
+
+2008-12-05  Matthias Klose  <doko@ubuntu.com>
+
+	* patches/icedtea-hotspot7-build-fixes.patch: Update.
+	* patches/hotspot/original/icedtea-core-zero-build.patch: Regenerate
+	from original/icedtea-core-build.patch.
+	* patches/icedtea-hotspot-6b14-7b24.patch: Newly generated.
+	* patches/icedtea-hotspot-6b12-7b24.patch: Remove.
+	* Makefile.am (ICEDTEA_PATCHES): Update for zero, based on original
+	hotspot.
+
+2008-12-05  Lillian Angel  <langel@redhat.com>
+
+	* Makefile.am:
+	(EXTRA_DIST): Added everything under patches/.
+
+2008-12-05  Lillian Angel  <langel@redhat.com>
+
+	* Makefile.am:
+	(EXTRA_DIST): Added autogen.sh
+
+2008-12-05  Lillian Angel  <langel@redhat.com>
+
+	* Makefile.am:
+	(EXTRA_DIST): Added hotspot.map.
+
+2008-12-05  Mark Wielaard  <mwielaard@redhat.com>
+
+	* rt/net/sourceforge/jnlp/runtime/JNLPClassLoader.java:
+	JarIndex.getIndex() can return null when there is no index for the
+	jar. In that case we shouldn't store the null result.
+
+2008-12-05  Matthias Klose  <doko@ubuntu.com>
+
+	* patches/icedtea-lucene-crash.patch: Update for b14.
+	* patches/hotspot/original/icedtea-memory-limits.patch: Likewise.
+	* patches/hotspot/original/icedtea-core-build.patch: Likewise.
+	* patches/hotspot/original/icedtea-static-libstdc++.patch: Likewise.
+	* patches/hotspot/original/icedtea-zero-build.patch: Likewise.
+	* patches/hotspot/original/icedtea-shark-build.patch: Likewise.
+	* patches/hotspot/original/icedtea-sparc64-linux.patch: Likewise.
+	* Makefile.am (ICEDTEA_PATCHES): Remove icedtea-hotspot7-tests.patch,
+	apply patches/icedtea-bytecodeInterpreterWithChecks.patch for original
+	hotspot build.
+	* patches/icedtea-hotspot7-tests.patch: Remove.
+
+2008-12-04  Matthias Klose  <doko@ubuntu.com>
+
+	* patches/hotspot/14.0b08/icedtea-sparc-buildfixes.patch: Readd
+	lost chunks from icedtea-sparc.patch, fix build failure with gcc-4.3.
+	* Makefile.am (ICEDTEA_PATCHES): Apply new patch.
+
+2008-12-04  Matthias Klose  <doko@ubuntu.com>
+
+	* Makefile.am:
+	Prefix the call to uname -m with
+	the ${ARCH_PREFIX}.
+	* acinclude.m4:
+	Apply linux32 on s390 as well.
+
 2008-12-04  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
 	* patches/ecj/icedtea-hotspot-14.0b08.patch,
@@ -116,6 +564,18 @@
 
 2008-12-04  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
+	* Makefile.am:
+	Prefix make invocations with
+	ARCH_PREFIX.  Pass the host, target and
+	build aliases through to the CACAO sub-configure.
+	* acinclude.m4:
+	Define ARCH_PREFIX to ${LINUX32} for
+	x86 and ppc architectures.
+	* configure.ac:
+	Check for linux32.
+
+2008-12-04  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
 	Merge from IcedTea6.
 	* patches/icedtea-ecj-jopt.patch,
 	* patches/icedtea-ecj-pr261.patch,
@@ -217,6 +677,27 @@
 	* pulseaudio/src/java/org/classpath/icedtea/pulseaudio/StreamBufferAttributes.java,
 	* pulseaudio/src/java/org/classpath/icedtea/pulseaudio/StreamSampleSpecification.java: Merged.
 	
+2008-12-04  Gary Benson  <gbenson@redhat.com>
+
+	* .hgignore: Ignore rt/javax/script/*.
+
+2008-12-03  Matthias Klose  <doko@ubuntu.com>
+
+	* Makefile.am: Update for b14.
+	* Makefile.am (ICEDTEA_PATCHES): Remove patches applied in b14.
+	* patches/icedtea-4486841.patch, patches/icedtea-6484091.patch,
+	patches/icedtea-6497740.patch, patches/icedtea-6588160.patch,
+	patches/icedtea-6592792.patch, patches/icedtea-6721753.patch,
+	patches/icedtea-6726779.patch, patches/icedtea-6733959.patch,
+	patches/icedtea-6734167.patch, patches/icedtea-6755943.patch,
+	patches/icedtea-6766136.patch: Remove.
+	* patches/icedtea-rhino.patch: Update.
+
+2008-12-03  Matthias Klose  <doko@ubuntu.com>
+
+	* patches/hotspot/14.0b08/icedtea-shark.patch: Fix path name.
+	* patches/icedtea-fortify-source.patch: Don't introduce new warnings.
+
 2008-12-03  Matthias Klose  <doko@ubuntu.com>
 
 	* Makefile.am (ZERO_PATCHES, ICEDTEA_PATCHES): Fix patch order.
@@ -442,9 +923,9 @@
 
 2008-12-03  Gary Benson  <gbenson@redhat.com>
 
-	* a/ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
+	* ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
 	(os::is_allocatable): New method.
-	* a/ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
+	* ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
 	(os::is_allocatable): Likewise.
 
 2008-12-02  Matthias Klose  <doko@ubuntu.com>
@@ -728,8 +1209,6 @@
 
 	* .hgignore: Add test/jtreg-summary.log.
 
-=======
->>>>>>> other
 2008-11-21  Andrew John Hughes  <ahughes@redhat.com>
 
 	* Makefile.am:
--- a/HACKING	Mon Jan 19 02:29:32 2009 +0000
+++ b/HACKING	Tue Jan 20 00:26:05 2009 +0000
@@ -70,12 +70,18 @@
 * icedtea-alsa-default-device.patch: Fix problems with using the ALSA 'default' device.
 * icedtea-linker-libs-order.patch: When linking, put the referenced libraries after the object files (PR237).
 * icedtea-f2i-overflow.patch: Replaces the code used by [fd]2[il] bytecodes to correctly handle overflows. (PR244)
-* icedtea-cc-interp-no-fer.patch: Report that we cannot force early returns with the C++ interpreter.
 * icedtea-testenv.patch: Provide public reachable machines for net/nio tests.
 * icedtea-samejvm-safe.patch: Add samejvmsafe dirs to TEST.ROOT.
 * icedtea-6728542-epoll.patch: Make EPoll work on non-x86 platforms. (PR265)
 * icedtea-fortify-source.patch: Fix build failures with -D_FORTIFY_SOURCE=2.
 * icedtea-format-warnings.patch: Fix build failures with -Wformat=1.
+* icedtea-io_util-overflow.patch: Replace some code to correctly handle overflows. (S6788196)
+* icedtea-cc-interp-jvmti.patch: Disable some JVMTI capabilities which are unsupported or do not work with the C++ interpreter.
+* icedtea-demo-swingapplet.patch: Add missing html file needed to run the demo.
+* icedtea-6791168.patch: Fix build failure with GCC-4.4 (PR 38725) and compiler warnings.
+* icedtea-no-precompiled.patch: Don't use precompiled header files in hotspot.
+* icedtea-includedb.patch: Add missing include files.
+* icedtea-awt-window-size.patch: Fix X11 window size calculation (S6721088).
 
 The following patches are only applied to OpenJDK6 in IcedTea6:
 
@@ -192,3 +198,4 @@
 * openjdk-color.patch: Include Free java.awt.color and java.awt.image
 (S6662775): Included upstream in OpenJDK6 b06 and OpenJDK7 b28.
 * icedtea-license-headers.patch: Generate GPL header from automulti tool (PR148/S6713083).
+* icedtea-cc-interp-no-fer.patch: Replaced with icedtea-cc-interp-jvmti.patch, of which it is a subset.
--- a/IcedTeaPlugin.cc	Mon Jan 19 02:29:32 2009 +0000
+++ b/IcedTeaPlugin.cc	Tue Jan 20 00:26:05 2009 +0000
@@ -88,7 +88,7 @@
 #define TIMEOUT 20
 
 #define NOT_IMPLEMENTED() \
-  printf ("NOT IMPLEMENTED: %s\n", __PRETTY_FUNCTION__)
+  PLUGIN_DEBUG_1ARG ("NOT IMPLEMENTED: %s\n", __PRETTY_FUNCTION__)
 
 #define ID(object) \
   (object == NULL ? (PRUint32) 0 : reinterpret_cast<JNIReference*> (object)->identifier)
@@ -103,7 +103,7 @@
   {                                         \
     if (plugin_debug)                       \
     {                                       \
-      printf (str);                         \
+      fprintf (stderr, str);                \
     }                                       \
   } while (0)
 
@@ -112,35 +112,35 @@
   {                                         \
     if (plugin_debug)                       \
     {                                       \
-      printf (str, arg1);                   \
+      fprintf (stderr, str, arg1);          \
     }                                       \
   } while (0)
 
-#define PLUGIN_DEBUG_2ARG(str, arg1, arg2) \
+#define PLUGIN_DEBUG_2ARG(str, arg1, arg2)  \
   do                                        \
   {                                         \
     if (plugin_debug)                       \
     {                                       \
-      printf (str, arg1, arg2);             \
+      fprintf (stderr, str, arg1, arg2);    \
     }                                       \
   } while (0)
 
 #define PLUGIN_DEBUG_3ARG(str, arg1, arg2, arg3) \
-  do                                        \
-  {                                         \
-    if (plugin_debug)                       \
-    {                                       \
-      printf (str, arg1, arg2, arg3);       \
-    }                                       \
+  do                                           \
+  {                                            \
+    if (plugin_debug)                          \
+    {                                          \
+      fprintf (stderr, str, arg1, arg2, arg3); \
+    }                                          \
   } while (0)
 
 #define PLUGIN_DEBUG_4ARG(str, arg1, arg2, arg3, arg4) \
-  do                                        \
-  {                                         \
-    if (plugin_debug)                       \
-    {                                       \
-      printf (str, arg1, arg2, arg3, arg4); \
-    }                                       \
+  do                                                 \
+  {                                                  \
+    if (plugin_debug)                                \
+    {                                                \
+      fprintf (stderr, str, arg1, arg2, arg3, arg4); \
+    }                                                \
   } while (0)
 
 #define PLUGIN_DEBUG(message)                                           \
@@ -504,7 +504,7 @@
 #define PROCESS_PENDING_EVENTS_REF(reference) \
     if (jvm_attached == PR_FALSE) \
 	{ \
-	    fprintf(stderr, "Error on Java side detected. Abandoning wait and returning.\n"); \
+	    PLUGIN_DEBUG_0ARG("Error on Java side detected. Abandoning wait and returning.\n"); \
 		return NS_ERROR_FAILURE; \
 	} \
 	if (g_main_context_pending (NULL)) { \
@@ -1500,7 +1500,7 @@
   js_cleared_handles.Init();
   result_map.Init();
   PLUGIN_DEBUG_0ARG ("CONSTRUCTING FACTORY\n");
-  printf("ICEDTEAPLUGIN_DEBUG = %s\n", getenv ("ICEDTEAPLUGIN_DEBUG"));
+  PLUGIN_DEBUG_1ARG("ICEDTEAPLUGIN_DEBUG = %s\n", getenv ("ICEDTEAPLUGIN_DEBUG"));
 }
 
 IcedTeaPluginFactory::~IcedTeaPluginFactory ()
@@ -1617,7 +1617,7 @@
   if (jvm_attached == PR_FALSE)
   {
     // using printf on purpose.. this should happen rarely
-    printf("Initializing JVM...\n");
+    PLUGIN_DEBUG_0ARG("Initializing JVM...\n");
 
     // mark attached right away, in case another initialize() call 
     //is made (happens if multiple applets are present on the same page)
@@ -2295,7 +2295,7 @@
   if (jvm_attached == PR_FALSE)
   {
     // using printf on purpose.. this should happen rarely
-    fprintf(stderr, "WARNING: Looks like the JVM is not up. Attempting to re-initialize...\n");
+    PLUGIN_DEBUG_0ARG("WARNING: Looks like the JVM is not up. Attempting to re-initialize...\n");
 
     // mark attached right away, in case another initialize() call 
     //is made (happens if multiple applets are present on the same page)
@@ -2668,7 +2668,7 @@
 
   PLUGIN_DEBUG_1ARG ("GOT JAVA OBJECT IDENTIFIER: %d\n", object_identifier_return);
   if (object_identifier_return == 0)
-    printf ("WARNING: received object identifier 0\n");
+    PLUGIN_DEBUG_0ARG ("WARNING: received object identifier 0\n");
 
   *object = references.ReferenceObject (object_identifier_return);
 
@@ -4360,7 +4360,7 @@
   PLUGIN_TRACE_LISTENER ();
 
   nsCString shutdownStr("shutdown");
-  printf("stop listening: %uld\n", aStatus);
+  PLUGIN_DEBUG_1ARG("stop listening: %uld\n", aStatus);
 
   nsresult result = NS_OK;
 
@@ -4374,7 +4374,7 @@
     PLUGIN_CHECK_RETURN ("clear async wait", result);
     break;
   default:
-    printf ("ERROR %x\n", aStatus);
+    PLUGIN_DEBUG_1ARG ("ERROR %x\n", aStatus);
     PLUGIN_DEBUG ("Listener: Unknown status value.");
   }
   return NS_OK;
@@ -4740,7 +4740,7 @@
       retval.i = 0;
       break;
     default:
-      printf ("WARNING: didn't handle parse type\n");
+      PLUGIN_DEBUG_0ARG ("WARNING: didn't handle parse type\n");
       break;
     }
 
@@ -4830,7 +4830,7 @@
           break;
         default:
           PLUGIN_ERROR_TWO ("Failed to parse signature", id->signature);
-          printf ("FAILED ID: %d\n", id->identifier);
+          PLUGIN_DEBUG_1ARG ("FAILED ID: %d\n", id->identifier);
           break;
         }
 	
--- a/Makefile.am	Mon Jan 19 02:29:32 2009 +0000
+++ b/Makefile.am	Tue Jan 20 00:26:05 2009 +0000
@@ -1347,15 +1347,15 @@
 	$(JTREG_SOURCES) \
 	IcedTeaPlugin.cc \
 	HACKING $(PULSEAUDIO_SOURCES) fsg.sh \
-	plugin
+	plugin hotspot.map autogen.sh
 
 # The Binary plugs directory is called jdk1.7.0 for historical reasons. The
 # name is completely irrelevant; only contains the plugs to build IcedTea.
 
 # OpenJDK build environment.
-LINUX_DIR = linux-$(BUILD_ARCH_DIR)
-BUILD_OUTPUT_DIR = openjdk/build/$(LINUX_DIR)
-ECJ_BUILD_OUTPUT_DIR = openjdk-ecj/build/$(LINUX_DIR)
+OS_DIR = $(BUILD_OS_DIR)-$(BUILD_ARCH_DIR)
+BUILD_OUTPUT_DIR = openjdk/build/$(OS_DIR)
+ECJ_BUILD_OUTPUT_DIR = openjdk-ecj/build/$(OS_DIR)
 ICEDTEA_BUILD_DIR = \
 	$(abs_top_builddir)/$(BUILD_OUTPUT_DIR)
 ICEDTEA_RT = \
@@ -1391,7 +1391,7 @@
         "JRE_RELEASE_VERSION=1.7.0_$(COMBINED_VERSION)" \
 	"MILESTONE=fcs" \
 	"LANG=C" \
-	"PATH=$(abs_top_builddir)/bootstrap/jdk1.6.0/bin:/usr/bin:/bin:/usr/sbin:/sbin" \
+	"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)" \
@@ -1461,11 +1461,10 @@
         "JRE_RELEASE_VERSION=1.7.0_$(COMBINED_VERSION)" \
 	"MILESTONE=fcs" \
 	"LANG=C" \
-	"PATH=$(abs_top_builddir)/bootstrap/jdk1.6.0/bin:/usr/bin:/bin:/usr/sbin:/sbin" \
+	"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)" \
-	"LIBGCJ_JAR=$(LIBGCJ_JAR)" \
 	"ICEDTEA_RT=$(ICEDTEA_RT)" \
 	"ICEDTEA_BUILD_DIR=$(ICEDTEA_BUILD_DIR_ECJ)" \
 	"ICEDTEA_CLS_DIR=$(ICEDTEA_CLS_DIR_ECJ)" \
@@ -1474,7 +1473,7 @@
 	"BOOTCLASSPATH_CLS_RT=-bootclasspath \
 	  $(ICEDTEA_CLS_DIR_ECJ):$(ICEDTEA_RT)" \
 	"BOOTCLASSPATH_CLS=-bootclasspath $(ICEDTEA_CLS_DIR_ECJ)" \
-	"BOOTCLASSPATH_RT_LIBGCJ=-bootclasspath $(ICEDTEA_RT):$(LIBGCJ_JAR)" \
+	"BOOTCLASSPATH_RT_LIBGCJ=-bootclasspath $(ICEDTEA_RT):$(SYSTEM_GCJ_DIR)/jre/lib/rt.jar" \
 	"CLASSPATH=" \
 	"LD_LIBRARY_PATH=" \
 	"GENSRCDIR=$(abs_top_builddir)/generated" \
@@ -1615,7 +1614,12 @@
 	hg fclone $(NIO2_HG_URL) openjdk;
 else
 if USE_HG
-	$(HG) fclone -r jdk7-$(OPENJDK_VERSION) $(OPENJDK_HG_URL) openjdk;
+if WITH_HGREV
+	$(HG) fclone -r $(HGREV) $(OPENJDK_HG_URL) openjdk;
+else
+	$(HG) fclone $(OPENJDK_HG_URL) openjdk;
+endif
+endif
 else
 	if ! echo "$(OPENJDK_MD5SUM)  $(OPENJDK_SRC_ZIP)" \
 	  | $(MD5SUM) --check ; \
@@ -1633,13 +1637,20 @@
 endif
 endif
 endif
-endif
 if WITH_ALT_HSBUILD
-if USE_ALT_HOTSPOT_SRC_ZIP
-else
-	changeset="`cat $(abs_top_srcdir)/hotspot.map|grep $(HSBUILD)|cut -f2`"; \
-	$(WGET) $(HOTSPOT_URL)$${changeset}.tar.gz -O $(HOTSPOT_SRC_ZIP);
-endif
+	hotspot_md5sum="`$(AWK) 'version==$$1 {print $$3}' version=$(HSBUILD) \
+	  $(abs_top_srcdir)/hotspot.map`" ; \
+	if ! echo "$${hotspot_md5sum}  $(HOTSPOT_SRC_ZIP)" \
+	  | $(MD5SUM) --check ; \
+	then \
+	  if [ $(HOTSPOT_SRC_ZIP) ] ; \
+	  then \
+	    mv $(HOTSPOT_SRC_ZIP) $(HOTSPOT_SRC_ZIP).old ; \
+	  fi ; \
+	  changeset="`$(AWK) 'version==$$1 {print $$2}' version=$(HSBUILD) \
+	    $(abs_top_srcdir)/hotspot.map`" ; \
+	  $(WGET) $(HOTSPOT_URL)$${changeset}.tar.gz -O $(HOTSPOT_SRC_ZIP) ; \
+	fi
 endif
 if WITH_CACAO
 if !USE_SYSTEM_CACAO
@@ -1700,6 +1711,9 @@
 	mkdir -p stamps
 	touch stamps/download.stamp
 
+clean-hgforest:
+	rm -f stamps/hgforest.stamp
+
 stamps/hgforest.stamp:
 if OPENJDK_SRC_DIR_FOUND
 else
@@ -1770,8 +1784,8 @@
 	patches/icedtea-signature-iterator.patch \
 	patches/icedtea-test-atomic-operations.patch \
 	patches/icedtea-zero.patch \
-	patches/icedtea-ia64-bugfix.patch 
-
+	patches/icedtea-ia64-bugfix.patch \
+	patches/hotspot/$(HSBUILD)/icedtea-parisc-opt.patch
 
 # Patches needed when not using the newer OpenJDK 7 HotSpot for zero.
 NON_ZERO_PATCHES = 
@@ -1832,7 +1846,6 @@
 	patches/icedtea-ia64-fdlibm.patch \
 	patches/icedtea-fonts.patch \
 	patches/icedtea-directaudio-close-trick.patch \
-	patches/hotspot/$(HSBUILD)/icedtea-sparc64-linux.patch \
 	patches/hotspot/$(HSBUILD)/icedtea-sparc-ptracefix.patch \
 	patches/hotspot/$(HSBUILD)/icedtea-sparc-trapsfix.patch \
 	patches/icedtea-override-redirect-metacity.patch \
@@ -1869,7 +1882,6 @@
 	patches/icedtea-alsa-default-device.patch \
 	patches/icedtea-linker-libs-order.patch \
 	patches/icedtea-f2i-overflow.patch \
-	patches/icedtea-cc-interp-no-fer.patch \
 	patches/icedtea-testenv.patch \
 	patches/icedtea-format-warnings.patch \
 	patches/icedtea-fortify-source.patch \
@@ -1884,7 +1896,11 @@
         patches/security/icedtea-6733959.patch \
         patches/security/icedtea-6734167.patch \
         patches/security/icedtea-6755943.patch \
-        patches/security/icedtea-6766136.patch
+        patches/security/icedtea-6766136.patch \
+	patches/icedtea-io_util-overflow.patch \
+	patches/icedtea-cc-interp-jvmti.patch \
+	patches/hotspot/$(HSBUILD)/icedtea-6791168.patch \
+	patches/hotspot/$(HSBUILD)/icedtea-includedb.patch
 
 if WITH_RHINO
 ICEDTEA_PATCHES += \
@@ -1917,7 +1933,9 @@
 endif
 
 ICEDTEA_PATCHES += \
-	$(DISTRIBUTION_PATCHES)
+	$(DISTRIBUTION_PATCHES) \
+	patches/icedtea-demo-swingapplet.patch \
+	patches/icedtea-awt-window-size.patch
 
 stamps/extract.stamp: stamps/download.stamp
 if OPENJDK_SRC_DIR_FOUND
@@ -1929,6 +1947,9 @@
 	      *.zip) $(UNZIP) -q $(OPENJDK_SRC_ZIP) ;; \
 	      *.tar.*) $(TAR) xf $(OPENJDK_SRC_ZIP) ;; \
 	    esac; \
+	    if test "x${HSBUILD}" != "xoriginal"; then \
+	      rm -rf openjdk/hotspot ; \
+	    fi ; \
 	  else \
 	    echo "ERROR: Couldn't extract OpenJDK"; \
 	    false; \
@@ -1938,12 +1959,15 @@
 if WITH_ALT_HSBUILD
 	if test -e ${HOTSPOT_SRC_ZIP} ; \
 	then \
-	  rm -rf openjdk/hotspot ; \
+	  if ! test -d openjdk/hotspot ; \
+	  then \
 	    case "$(HOTSPOT_SRC_ZIP)" in \
 	      *.zip) $(UNZIP) -q $(HOTSPOT_SRC_ZIP) ;; \
 	      *.tar.*) $(TAR) xf $(HOTSPOT_SRC_ZIP) ;; \
 	    esac; \
-	  mv $$(find -maxdepth 1 -name 'hotspot-*' -type d) openjdk/hotspot ; \
+	    mv hotspot-$$($(AWK) 'version==$$1 {print $$2}' version=$(HSBUILD) \
+	      $(abs_top_srcdir)/hotspot.map) openjdk/hotspot ; \
+	  fi ; \
 	fi
 endif
 	chmod -R ug+w openjdk 
@@ -2315,30 +2339,23 @@
 	ln -sf $(XALAN2_SERIALIZER_JAR) \
 	  bootstrap/ecj/lib/endorsed/xalan-j2-serializer.jar
 	ln -sf $(XERCES2_JAR) bootstrap/ecj/lib/endorsed/xerces-j2.jar
-	if test -d $(SYSTEM_GCJ_DIR); \
-	then \
-	  mkdir -p bootstrap/ecj/jre/lib; \
-	  ln -sf $(SYSTEM_GCJ_DIR)/jre/lib/rt.jar \
-	    bootstrap/ecj/jre/lib/rt-system.jar; \
-	  ln -sf $(SYSTEM_GCJ_DIR)/jre/lib/$(JRE_ARCH_DIR) \
-	    bootstrap/ecj/jre/lib/; \
-	  if ! test -d bootstrap/ecj/jre/lib/$(INSTALL_ARCH_DIR); \
+	mkdir -p bootstrap/ecj/jre/lib; \
+	ln -sf $(SYSTEM_GCJ_DIR)/jre/lib/rt.jar \
+	  bootstrap/ecj/jre/lib/rt-system.jar; \
+	ln -sf $(SYSTEM_GCJ_DIR)/jre/lib/$(JRE_ARCH_DIR) \
+	  bootstrap/ecj/jre/lib/; \
+	if ! test -d bootstrap/ecj/jre/lib/$(INSTALL_ARCH_DIR); \
 	  then \
-	    ln -sf ./$(JRE_ARCH_DIR) \
-	      bootstrap/ecj/jre/lib/$(INSTALL_ARCH_DIR); \
-	  fi; \
-	  mkdir -p bootstrap/ecj/include; \
-	  for i in $(SYSTEM_GCJ_DIR)/include/*; do \
-	    test -r $$i | continue; \
-	    i=`basename $$i`; \
-	    rm -f bootstrap/ecj/include/$$i; \
-	    ln -s $(SYSTEM_GCJ_DIR)/include/$$i bootstrap/ecj/include/$$i; \
-	  done; \
-	else \
-	  echo $(SYSTEM_GCJ_DIR) " cannot be found. Try reconfiguring with " \
-	    --with-gcj-home=/path/to/java-gcj-devel ; \
-          exit 1; \
-	fi
+	  ln -sf ./$(JRE_ARCH_DIR) \
+	    bootstrap/ecj/jre/lib/$(INSTALL_ARCH_DIR); \
+	fi; \
+	mkdir -p bootstrap/ecj/include; \
+	for i in $(SYSTEM_GCJ_DIR)/include/*; do \
+	  test -r $$i | continue; \
+	  i=`basename $$i`; \
+	  rm -f bootstrap/ecj/include/$$i; \
+	  ln -s $(SYSTEM_GCJ_DIR)/include/$$i bootstrap/ecj/include/$$i; \
+	done; \
 	if test -f $(abs_top_builddir)/bootstrap/jdk1.7.0/jre/lib/tools.jar ; \
 	then \
 	  mkdir -p $(abs_top_builddir)/bootstrap/ecj/lib ; \
@@ -2401,7 +2418,7 @@
 	stamps/ports.stamp stamps/patch.stamp stamps/overlay.stamp \
 	$(ICEDTEAPLUGIN_TARGET) extra-lib/about.jar stamps/cacao.stamp \
 	stamps/visualvm.stamp stamps/pulse-java.stamp
-	$(MAKE) \
+	$(ARCH_PREFIX) $(MAKE) \
 	  $(ICEDTEA_ENV) \
 	  -C openjdk/ \
 	  $(ICEDTEA_BUILD_TARGET)
@@ -2456,7 +2473,7 @@
 	stamps/ports.stamp stamps/patch.stamp stamps/overlay.stamp \
 	$(ICEDTEAPLUGIN_TARGET) extra-lib/about.jar stamps/cacao.stamp \
 	stamps/pulse-java.stamp
-	$(MAKE) \
+	$(ARCH_PREFIX) $(MAKE) \
 	  $(ICEDTEA_ENV) \
 	  -C openjdk/ \
 	  $(ICEDTEA_DEBUG_BUILD_TARGET)
@@ -2508,7 +2525,7 @@
 	touch stamps/icedtea-debug.stamp
 
 clean-icedtea: stamps/download.stamp
-	$(MAKE) \
+	$(ARCH_PREFIX) $(MAKE) \
 	  $(ICEDTEA_ENV) \
 	  -C openjdk/make clobber
 	rm -f stamps/icedtea.stamp stamps/icedtea-debug.stamp
@@ -2535,7 +2552,7 @@
 stamps/icedtea-ecj.stamp: stamps/bootstrap-directory-symlink-ecj.stamp \
 	stamps/hotspot-tools.stamp stamps/plugs.stamp \
 	stamps/ports-ecj.stamp stamps/patch-ecj.stamp stamps/cacao.stamp
-	$(MAKE) \
+	$(ARCH_PREFIX) $(MAKE) \
 	  $(ICEDTEA_ENV_ECJ) \
 	  -C openjdk-ecj \
 	  $(ICEDTEA_BUILD_TARGET)
@@ -2549,7 +2566,7 @@
 	rm -f stamps/bootstrap-directory-symlink-ecj.stamp
 	rm -f stamps/icedtea-ecj.stamp
 	rm -f stamps/icedtea-against-ecj.stamp
-	$(MAKE) hotspot-helper
+	$(ARCH_PREFIX) $(MAKE) hotspot-helper
 	cp $(ECJ_BUILD_OUTPUT_DIR)/$(SERVER_DIR)/libjvm.so \
 	   $(ECJ_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/$(BUILD_ARCH_DIR)/server
 	@echo "Hotspot is served:" $(ECJ_BUILD_OUTPUT_DIR)/j2sdk-image
@@ -2557,13 +2574,13 @@
 hotspot-helper: stamps/bootstrap-directory-symlink-ecj.stamp \
 	stamps/hotspot-tools.stamp stamps/plugs.stamp \
 	stamps/ports-ecj.stamp stamps/patch-ecj.stamp
-	$(MAKE) \
+	$(ARCH_PREFIX) $(MAKE) \
 	  $(ICEDTEA_ENV_ECJ) \
 	  -C openjdk-ecj hotspot
 
 clean-icedtea-ecj: stamps/clone-ecj.stamp
 	rm -f stamps/icedtea-ecj.stamp
-	$(MAKE) \
+	$(ARCH_PREFIX) $(MAKE) \
 	  $(ICEDTEA_ENV_ECJ) \
 	  -C openjdk-ecj clobber
 
@@ -2685,14 +2702,14 @@
             -source 1.5 \
             -sourcepath \
 	      'hotspot-tools:$(OPENJDK_SOURCEPATH_DIRS):$(ABS_SOURCE_DIRS)' \
-            -bootclasspath '' @$< ; \
+            -bootclasspath \'\' @$< ; \
 	else \
 	  $(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g \
 	    -d lib/hotspot-tools \
 	    -source 1.5 \
 	    -sourcepath \
 	      'hotspot-tools:$(OPENJDK_SOURCEPATH_DIRS):$(ABS_SOURCE_DIRS)' \
-	    -bootclasspath '' @$< ; \
+	    -bootclasspath \'\' @$< ; \
 	fi
 	mkdir -p stamps
 	touch stamps/hotspot-tools-class-files.stamp
@@ -2737,14 +2754,14 @@
 	    -source 1.5 \
 	    -sourcepath \
 	      '$(OPENJDK_SOURCEPATH_DIRS):$(abs_top_builddir)/generated' \
-	    -bootclasspath '' @$< ; \
-        else \
+	    -bootclasspath \'\' @$< ; \
+	else \
 	  $(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d lib/rt \
             -source 1.5 \
             -sourcepath \
 	      '$(OPENJDK_SOURCEPATH_DIRS):$(abs_top_builddir)/generated' \
-            -bootclasspath '' @$< ; \
-        fi
+            -bootclasspath \'\' @$< ; \
+	fi
 	mkdir -p stamps
 	touch stamps/rt-class-files.stamp
 
@@ -2782,12 +2799,12 @@
 	  $(JAVAC) $(MEMORY_LIMIT) -g -d extra-lib \
 	    -source 1.5 \
 	    -sourcepath extra -cp $(ICEDTEA_BOOT_DIR)/jre/lib/rt.jar \
-	    -bootclasspath '' @extra-source-files.txt ; \
+	    -bootclasspath \'\' @extra-source-files.txt ; \
 	else \
 	  $(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d extra-lib \
             -source 1.5 \
             -sourcepath extra -cp $(ICEDTEA_BOOT_DIR)/jre/lib/rt.jar \
-            -bootclasspath '' @extra-source-files.txt ; \
+            -bootclasspath \'\' @extra-source-files.txt ; \
 	fi
 	cp -r $(abs_top_srcdir)/extra/net/sourceforge/jnlp/about/resources \
 	  extra-lib/net/sourceforge/jnlp/about	
@@ -2814,6 +2831,9 @@
 if !USE_SYSTEM_CACAO
 	cd cacao/cacao && \
 	./configure \
+	  --host=$(host_alias) \
+	  --build=$(build_alias) \
+	  --target=$(target_alias) \
 	  --prefix=$(abs_top_builddir)/cacao/install \
 	  --with-java-runtime-library=openjdk \
 	  --with-java-runtime-library-prefix=$(abs_top_builddir)/openjdk \
@@ -3078,7 +3098,7 @@
 	ln -s $(SYSTEM_NETBEANS_DIR)/java2/ ./nbbuild/netbeans/java2 ; \
 	ln -s $(SYSTEM_NETBEANS_DIR)/ide9/ ./nbbuild/netbeans/ide9 ; \
 	cd profiler.cvs/libs/jfluid/native/build ; \
-	if ! (uname -a | grep x86_64) ; then \
+	if ! ($(ARCH_PREFIX) uname -a | grep x86_64) ; then \
 	  buildscript=./buildnative-linux-15.sh ; \
 	else \
 	  buildscript=./buildnative-linux64-15.sh ; \
--- a/acinclude.m4	Mon Jan 19 02:29:32 2009 +0000
+++ b/acinclude.m4	Tue Jan 20 00:26:05 2009 +0000
@@ -10,6 +10,7 @@
       BUILD_ARCH_DIR=i586
       INSTALL_ARCH_DIR=i386
       JRE_ARCH_DIR=i386
+      ARCH_PREFIX=${LINUX32}
       ;;
     alpha*-*-*)
       BUILD_ARCH_DIR=alpha
@@ -35,6 +36,7 @@
       BUILD_ARCH_DIR=ppc
       INSTALL_ARCH_DIR=ppc
       JRE_ARCH_DIR=ppc
+      ARCH_PREFIX=${LINUX32}
        ;;
     powerpc64-*-*)
       BUILD_ARCH_DIR=ppc64
@@ -50,6 +52,7 @@
       BUILD_ARCH_DIR=s390
       INSTALL_ARCH_DIR=s390
       JRE_ARCH_DIR=s390
+      ARCH_PREFIX=${LINUX32}
        ;;
     *)
       BUILD_ARCH_DIR=`uname -m`
@@ -60,6 +63,26 @@
   AC_SUBST(BUILD_ARCH_DIR)
   AC_SUBST(INSTALL_ARCH_DIR)
   AC_SUBST(JRE_ARCH_DIR)
+  AC_SUBST(ARCH_PREFIX)
+])
+
+AC_DEFUN([SET_OS_DIRS],
+[
+  case "${host_os}" in
+    *linux*)
+      BUILD_OS_DIR=linux
+      OS_PATH=
+      ;;
+    *solaris*)
+      BUILD_OS_DIR=solaris
+      OS_PATH=/opt/SunStudioExpress/bin:/opt/SUNWpro/bin:/usr/gnu/bin
+      ;;
+    *)
+      AC_MSG_ERROR([unsupported operating system ${host_os}])
+      ;;
+  esac
+  AC_SUBST(BUILD_OS_DIR)
+  AC_SUBST(OS_PATH)
 ])
 
 AC_DEFUN([FIND_JAVAC],
@@ -238,42 +261,14 @@
   AC_SUBST(ECJ_JAR)
 ])
 
-AC_DEFUN([FIND_LIBGCJ_JAR],
+AC_DEFUN([AC_CHECK_GCC_VERSION],
 [
-  AC_ARG_WITH([libgcj-jar],
-              [AS_HELP_STRING(--with-libgcj-jar,specify location of the libgcj 4.3.x jar)],
-  [
-    if test -f "${withval}"; then
-      AC_MSG_CHECKING(for libgcj jar)
-      LIBGCJ_JAR="${withval}"
-      AC_MSG_RESULT(${withval})
-    fi
-  ],
-  [
-    LIBGCJ_JAR=
-  ])
-  if test -z "${LIBGCJ_JAR}"; then
-    AC_MSG_CHECKING(for libgcj-4.3.*.jar, libgcj-4.2.*.jar or libgcj-4.1.*.jar)
-    for jar in /usr/share/java/libgcj-4.3*.jar; do
-      test -e $jar && LIBGCJ_JAR=$jar
-    done
-    if test -n "${LIBGCJ_JAR}"; then
-      AC_MSG_RESULT(${LIBGCJ_JAR})
-    else
-      for jar in /usr/share/java/libgcj-4.1*.jar /usr/share/java/libgcj-4.2*.jar; do
-	test -e $jar && LIBGCJ_JAR=$jar
-      done
-      if test -n ${LIBGCJ_JAR}; then
-	AC_MSG_RESULT(${LIBGCJ_JAR})
-      else
- 	AC_MSG_RESULT(no)
-      fi
-    fi
-  fi
-  if test -z "${LIBGCJ_JAR}"; then
-    AC_MSG_ERROR("A LIBGCJ jar was not found.")
-  fi
-  AC_SUBST(LIBGCJ_JAR)
+  AC_MSG_CHECKING([version of GCC])
+  gcc_ver=`${CC} -dumpversion`
+  gcc_major_ver=`echo ${gcc_ver}|cut -d'.' -f1`
+  gcc_minor_ver=`echo ${gcc_ver}|cut -d'.' -f2`
+  AM_CONDITIONAL(GCC_OLD, test ! ${gcc_major_ver} -ge 4 -a ${gcc_minor_ver} -ge 3)
+  AC_MSG_RESULT([${gcc_ver} (major version ${gcc_major_ver}, minor version ${gcc_minor_ver})])
 ])
 
 AC_DEFUN([FIND_JAVAH],
@@ -1051,3 +1046,143 @@
   AC_MSG_RESULT(${ALT_HOTSPOT_SRC_ZIP})
   AC_SUBST(ALT_HOTSPOT_SRC_ZIP)
 ])
+
+AC_DEFUN([ENABLE_HG],
+[
+  AC_MSG_CHECKING(whether to retrieve the source code from Mercurial)
+  AC_ARG_ENABLE([hg],
+                [AS_HELP_STRING(--enable-hg,download source code from Mercurial [[default=no]])],
+  [
+    case "${enableval}" in
+      no)
+	enable_hg=no
+        ;;
+      *)
+        enable_hg=yes
+        ;;
+    esac
+  ],
+  [
+        enable_hg=no
+  ])
+  AC_MSG_RESULT([${enable_hg}])
+  AM_CONDITIONAL([USE_HG], test x"${enable_hg}" = "xyes")
+])
+
+AC_DEFUN([AC_CHECK_WITH_HG_REVISION],
+[
+  AC_MSG_CHECKING([which Mercurial revision to use])
+  AC_ARG_WITH([hg-revision],
+	      [AS_HELP_STRING(--with-hg-revision,the Mercurial revision to use)],
+  [
+    HGREV="${withval}"
+    AC_MSG_RESULT([${HGREV}])
+  ],
+  [ 
+    HGREV=""
+    AC_MSG_RESULT([tip])
+  ])
+  AC_SUBST([HGREV])
+  AM_CONDITIONAL(WITH_HGREV, test "x${HGREV}" != "x")
+])
+
+AC_DEFUN([AC_CHECK_FOR_GCJ_JDK],
+[
+  AC_MSG_CHECKING([for a GCJ JDK home directory])
+  AC_ARG_WITH([gcj-home],
+	      [AS_HELP_STRING([--with-gcj-home],
+                              [gcj home directory \
+                               (default is /usr/lib/jvm/java-gcj or /usr/lib/jvm/gcj-jdk)])],
+              [
+                if test "x${withval}" = xyes
+                then
+                  SYSTEM_GCJ_DIR=
+                elif test "x${withval}" = xno
+                then
+	          SYSTEM_GCJ_DIR=
+	        else
+                  SYSTEM_GCJ_DIR=${withval}
+                fi
+              ],
+              [
+	        SYSTEM_GCJ_DIR=
+              ])
+  if test -z "${SYSTEM_GCJ_DIR}"; then
+    for dir in /usr/lib/jvm/java-gcj /usr/lib/jvm/gcj-jdk /usr/lib/jvm/cacao ; do
+       test -d $dir && SYSTEM_GCJ_DIR=$dir
+    done
+  fi
+  AC_MSG_RESULT(${SYSTEM_GCJ_DIR})
+  if ! test -d "${SYSTEM_GCJ_DIR}"; then
+    AC_MSG_ERROR("A GCJ JDK home directory could not be found.")
+  fi
+  AC_SUBST(SYSTEM_GCJ_DIR)
+])
+
+AC_DEFUN([AC_CHECK_FOR_OPENJDK],
+[
+  AC_MSG_CHECKING([for an existing OpenJDK installation])
+  AC_ARG_WITH([openjdk-home],
+              [AS_HELP_STRING([--with-openjdk-home],
+                              [OpenJDK home directory \
+                               (default is /usr/lib/jvm/java-openjdk)])],
+              [
+                if test "x${withval}" = xyes
+                then
+                  SYSTEM_OPENJDK_DIR=
+                elif test "x${withval}" = xno
+                then
+	          SYSTEM_OPENJDK_DIR=
+	        else
+                  SYSTEM_OPENJDK_DIR=${withval}
+                fi
+              ],
+              [
+                SYSTEM_OPENJDK_DIR=
+              ])
+  if test -z "${SYSTEM_OPENJDK_DIR}"; then
+    for dir in /usr/lib/jvm/java-openjdk /usr/lib/jvm/openjdk ; do
+       test -d $dir && SYSTEM_OPENJDK_DIR=$dir
+    done
+  fi
+  AC_MSG_RESULT(${SYSTEM_OPENJDK_DIR})
+  if ! test -d "${SYSTEM_OPENJDK_DIR}"; then
+    AC_MSG_ERROR("An OpenJDK home directory could not be found.")
+  fi
+  AC_SUBST(SYSTEM_OPENJDK_DIR)
+])
+
+AC_DEFUN([AC_CHECK_FOR_ICEDTEA],
+[
+  AC_MSG_CHECKING(for an existing IcedTea installation)
+  AC_ARG_WITH([icedtea-home],
+              [AS_HELP_STRING([--with-icedtea-home],
+                              [IcedTea home directory \
+                               (default is /usr/lib/jvm/java-icedtea)])],
+              [
+                if test "x${withval}" = xyes
+                then
+                  SYSTEM_ICEDTEA_DIR=
+                elif test "x${withval}" = xno
+                then
+	          SYSTEM_ICEDTEA_DIR=
+	        else
+                  SYSTEM_ICEDTEA_DIR=${withval}
+                fi
+              ],
+              [
+                SYSTEM_ICEDTEA_DIR=
+              ])
+  if test -z "${SYSTEM_ICEDTEA_DIR}"; then
+    for dir in /usr/lib/jvm/java-icedtea /usr/lib/jvm/icedtea6 /usr/lib/jvm/java-6-openjdk ; do
+       test -d $dir && SYSTEM_ICEDTEA_DIR=$dir
+    done
+  fi
+  AC_MSG_RESULT(${SYSTEM_ICEDTEA_DIR})
+  if ! test -d "${SYSTEM_ICEDTEA_DIR}"; then
+    AC_MSG_ERROR("An IcedTea home directory could not be found.")
+  fi
+  AC_SUBST(SYSTEM_ICEDTEA_DIR)
+])
+
+
--- a/configure.ac	Mon Jan 19 02:29:32 2009 +0000
+++ b/configure.ac	Tue Jan 20 00:26:05 2009 +0000
@@ -34,63 +34,44 @@
 AC_PATH_TOOL([LSB_RELEASE],[lsb_release])
 AC_CHECK_WITH_GCJ
 AC_CHECK_WITH_HOTSPOT_BUILD
-
-AC_MSG_CHECKING([for a JDK home directory])
-AC_ARG_WITH([gcj-home],
-	    [AS_HELP_STRING([--with-gcj-home],
-                            [gcj home directory \
-                             (default is /usr/lib/jvm/java-gcj)])],
-            [
-              if test "x${withval}" = x
-              then
-                SYSTEM_GCJ_DIR=/usr/lib/jvm/java-gcj
-              else
-                SYSTEM_GCJ_DIR=${withval}
-              fi
-            ],
-            [
-              SYSTEM_GCJ_DIR=/usr/lib/jvm/java-gcj
-            ])
-AC_MSG_RESULT(${SYSTEM_GCJ_DIR})
-AC_SUBST(SYSTEM_GCJ_DIR)
+AC_PATH_TOOL([LINUX32],[linux32])
+AC_CHECK_GCC_VERSION
 
-AC_MSG_CHECKING([for an existing OpenJDK installation])
-AC_ARG_WITH([openjdk-home],
-            [AS_HELP_STRING([--with-openjdk-home],
-                            [OpenJDK home directory \
-                             (default is /usr/lib/jvm/java-openjdk)])],
-            [
-              if test "x${withval}" = x
-              then
-                SYSTEM_OPENJDK_DIR=/usr/lib/jvm/java-openjdk
-              else
-                SYSTEM_OPENJDK_DIR=${withval}
-              fi
-            ],
-            [
-              SYSTEM_OPENJDK_DIR=/usr/lib/jvm/java-openjdk
-            ])
-AC_MSG_RESULT(${SYSTEM_OPENJDK_DIR})
-AC_SUBST(SYSTEM_OPENJDK_DIR)
+AC_MSG_CHECKING([whether to build using an existing installation of IcedTea])
+AC_ARG_WITH([icedtea],
+        [AS_HELP_STRING([--with-icedtea],
+                        [build IcedTea with system-installed IcedTea])],
+        [
+          if test "x${withval}" != xno
+          then
+            with_icedtea=true
+          else
+            with_icedtea=false
+          fi
+        ],
+        [
+          with_icedtea=false
+        ])
+AM_CONDITIONAL(WITH_ICEDTEA, test "${with_icedtea}" = true)
+AC_MSG_RESULT(${with_icedtea})
 
-AC_MSG_CHECKING(for an existing IcedTea installation)
-AC_ARG_WITH([icedtea-home],
-            [AS_HELP_STRING([--with-icedtea-home],
-                            [IcedTea home directory \
-                             (default is /usr/lib/jvm/java-icedtea)])],
-            [
-              if test "x${withval}" = x
-              then
-                SYSTEM_ICEDTEA_DIR=/usr/lib/jvm/java-icedtea
-              else
-                SYSTEM_ICEDTEA_DIR=${withval}
-              fi
-            ],
-            [
-              SYSTEM_ICEDTEA_DIR=/usr/lib/jvm/java-icedtea
-            ])
-AC_MSG_RESULT(${SYSTEM_ICEDTEA_DIR})
-AC_SUBST(SYSTEM_ICEDTEA_DIR)
+AC_MSG_CHECKING([whether to build using an existing installation of OpenJDK])
+AC_ARG_WITH([openjdk],
+        [AS_HELP_STRING([--with-openjdk],
+                        [build IcedTea with system-installed OpenJDK])],
+        [
+          if test "x${withval}" != xno
+          then
+            with_openjdk=true
+          else
+            with_openjdk=false
+          fi
+        ],
+        [
+          with_openjdk=false
+        ])
+AM_CONDITIONAL(WITH_OPENJDK, test "${with_openjdk}" = true)
+AC_MSG_RESULT(${with_openjdk})
 
 AC_MSG_CHECKING([for a NetBeans installation])
 AC_ARG_WITH([netbeans-home],
@@ -173,42 +154,6 @@
   FIND_NETBEANS
 fi
 
-AC_MSG_CHECKING(whether to build using an existing installation of IcedTea)
-AC_ARG_WITH([icedtea],
-        [AS_HELP_STRING([--with-icedtea],
-                        [build IcedTea with system-installed IcedTea])],
-        [
-          if test "x${withval}" != xno
-          then
-            with_icedtea=true
-          else
-            with_icedtea=false
-          fi
-        ],
-        [
-          with_icedtea=false
-        ])
-AM_CONDITIONAL(WITH_ICEDTEA, test "${with_icedtea}" = true)
-AC_MSG_RESULT(${with_icedtea})
-
-AC_MSG_CHECKING([whether to build using an existing installation of OpenJDK])
-AC_ARG_WITH([openjdk],
-        [AS_HELP_STRING([--with-openjdk],
-                        [build IcedTea with system-installed OpenJDK])],
-        [
-          if test "x${withval}" != xno
-          then
-            with_openjdk=true
-          else
-            with_openjdk=false
-          fi
-        ],
-        [
-          with_openjdk=false
-        ])
-AM_CONDITIONAL(WITH_OPENJDK, test "${with_openjdk}" = true)
-AC_MSG_RESULT(${with_openjdk})
-
 AC_MSG_CHECKING([how many parallel build jobs to execute])
 AC_ARG_WITH([parallel-jobs],
 	[AS_HELP_STRING([--with-parallel-jobs],
@@ -251,8 +196,11 @@
 AC_SUBST(DIST_ID)
 
 SET_ARCH_DIRS
+SET_OS_DIRS
+
 if test "${with_openjdk}" = true
 then
+  AC_CHECK_FOR_OPENJDK
   JAVA=$SYSTEM_OPENJDK_DIR/bin/java
   AC_SUBST(JAVA)
   JAVAC=${SYSTEM_OPENJDK_DIR}/bin/javac
@@ -266,6 +214,7 @@
 else
 if test "${with_icedtea}" = true
 then
+  AC_CHECK_FOR_ICEDTEA
   JAVA=$SYSTEM_ICEDTEA_DIR/bin/java
   AC_SUBST(JAVA)
   JAVAC=${SYSTEM_ICEDTEA_DIR}/bin/javac
@@ -277,13 +226,13 @@
   RMIC=${SYSTEM_ICEDTEA_DIR}/bin/rmic
   AC_SUBST(RMIC)
 else
+  AC_CHECK_FOR_GCJ_JDK
   FIND_JAVA
   FIND_JAVAC
   FIND_JAVAH
   FIND_JAR
   FIND_RMIC
   FIND_ECJ_JAR
-  FIND_LIBGCJ_JAR
   FIND_XALAN2_JAR
   FIND_XALAN2_SERIALIZER_JAR
   FIND_XERCES2_JAR
@@ -316,6 +265,7 @@
   fi
 fi
 AC_SUBST([HG])
+AC_CHECK_WITH_HG_REVISION
 
 AC_PATH_TOOL([GCJ],[gcj])
 AC_SUBST([GCJ])
@@ -432,15 +382,18 @@
 AC_SUBST(FREETYPE2_CFLAGS)
 AC_SUBST(FREETYPE2_LIBS)
 
-dnl Check for alsa headers and libraries.
-PKG_CHECK_MODULES(ALSA, alsa,[ALSA_FOUND=yes],[ALSA_FOUND=no])
-if test "x${ALSA_FOUND}" = xno
+dnl Check for alsa headers and libraries (only required for Linux).
+if test "x${BUILD_OS_DIR}" = "xlinux"
 then
-  AC_MSG_ERROR([Could not find alsa - \
-  Try installing alsa-lib-devel.])
-fi
+  PKG_CHECK_MODULES(ALSA, alsa,[ALSA_FOUND=yes],[ALSA_FOUND=no])
+  if test "x${ALSA_FOUND}" = xno
+  then
+    AC_MSG_ERROR([Could not find alsa - \
+    Try installing alsa-lib-devel.])
+  fi
 AC_SUBST(ALSA_CFLAGS)
 AC_SUBST(ALSA_LIBS)
+fi
 
 if test "x${enable_pulse_java}" = "xyes"
 then
--- a/contrib/mixtec-hacks.patch	Mon Jan 19 02:29:32 2009 +0000
+++ b/contrib/mixtec-hacks.patch	Tue Jan 20 00:26:05 2009 +0000
@@ -1,7 +1,7 @@
-diff -r 4f4d268762d7 Makefile.am
---- a/Makefile.am	Wed Aug 20 04:24:45 2008 -0400
-+++ b/Makefile.am	Thu Aug 28 03:53:35 2008 -0400
-@@ -442,6 +442,13 @@
+diff -r 515916374161 Makefile.am
+--- a/Makefile.am	Wed Dec 17 07:55:15 2008 -0500
++++ b/Makefile.am	Wed Dec 17 11:59:55 2008 -0500
+@@ -543,6 +543,13 @@
  endif
  
  ICEDTEA_FSG_PATCHES =
@@ -15,15 +15,15 @@
  
  ICEDTEA_PATCHES = \
  	$(ZERO_PATCHES_COND) \
-diff -r 4f4d268762d7 patches/mixtec-assertions.patch
+diff -r 515916374161 patches/mixtec-assertions.patch
 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ b/patches/mixtec-assertions.patch	Thu Aug 28 03:53:35 2008 -0400
++++ b/patches/mixtec-assertions.patch	Wed Dec 17 11:59:55 2008 -0500
 @@ -0,0 +1,14 @@
 +diff -r d384f5a5bd0c hotspot/build/linux/makefiles/product.make
-+--- openjdk/hotspot/build/linux/makefiles/product.make	Mon Aug 06 13:11:51 2007 +0100
-++++ openjdk/hotspot/build/linux/makefiles/product.make	Fri Sep 14 09:58:33 2007 +0100
++--- openjdk/hotspot/make/linux/makefiles/product.make	Mon Aug 06 13:11:51 2007 +0100
+++++ openjdk/hotspot/make/linux/makefiles/product.make	Fri Sep 14 09:58:33 2007 +0100
 +@@ -41,8 +41,8 @@ MAPFILE = $(GAMMADIR)/build/linux/makefi
-+ MAPFILE = $(GAMMADIR)/build/linux/makefiles/mapfile-vers-product
++ MAPFILE = $(GAMMADIR)/make/linux/makefiles/mapfile-vers-product
 + 
 + G_SUFFIX =
 +-SYSDEFS += -DPRODUCT
@@ -33,9 +33,9 @@
 + 
 + # use -g to strip library as -x will discard its symbol table; -x is fine for
 + # executables.
-diff -r 4f4d268762d7 patches/mixtec-no-log-vm-output.patch
+diff -r 515916374161 patches/mixtec-no-log-vm-output.patch
 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ b/patches/mixtec-no-log-vm-output.patch	Thu Aug 28 03:53:35 2008 -0400
++++ b/patches/mixtec-no-log-vm-output.patch	Wed Dec 17 11:59:55 2008 -0500
 @@ -0,0 +1,11 @@
 +--- openjdk-ecj/hotspot/src/share/vm/runtime/globals.hpp	2007-11-13 09:19:54.000000000 -0500
 ++++ openjdk/hotspot/src/share/vm/runtime/globals.hpp	2007-11-13 17:13:24.000000000 -0500
@@ -48,9 +48,9 @@
 +          "Save VM output to hotspot.log, or to LogFile")                    \
 +                                                                             \
 +   diagnostic(ccstr, LogFile, NULL,                                          \
-diff -r 4f4d268762d7 patches/mixtec-no-print-vm-options.patch
+diff -r 515916374161 patches/mixtec-no-print-vm-options.patch
 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ b/patches/mixtec-no-print-vm-options.patch	Thu Aug 28 03:53:35 2008 -0400
++++ b/patches/mixtec-no-print-vm-options.patch	Wed Dec 17 11:59:55 2008 -0500
 @@ -0,0 +1,12 @@
 +diff -r c5904941581b openjdk-ecj/hotspot/src/share/vm/runtime/globals.hpp
 +--- openjdk/hotspot/src/share/vm/runtime/globals.hpp	Tue Nov 13 14:09:56 2007 +0000
@@ -64,13 +64,13 @@
 +          "print VM flag settings")                                          \
 +                                                                             \
 +   diagnostic(bool, SerializeVMOutput, true,                                 \
-diff -r 4f4d268762d7 patches/mixtec-optimization.patch
+diff -r 515916374161 patches/mixtec-optimization.patch
 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ b/patches/mixtec-optimization.patch	Thu Aug 28 03:53:35 2008 -0400
++++ b/patches/mixtec-optimization.patch	Wed Dec 17 11:59:55 2008 -0500
 @@ -0,0 +1,34 @@
-+diff -urN openjdk.orig/hotspot/build/linux/makefiles/gcc.make openjdk/hotspot/build/linux/makefiles/gcc.make
-+--- openjdk.orig/hotspot/build/linux/makefiles/gcc.make	2007-10-12 03:46:25.000000000 -0400
-++++ openjdk/hotspot/build/linux/makefiles/gcc.make	2007-10-12 17:41:02.000000000 -0400
++diff -urN openjdk.orig/hotspot/make/linux/makefiles/gcc.make openjdk/hotspot/make/linux/makefiles/gcc.make
++--- openjdk.orig/hotspot/make/linux/makefiles/gcc.make	2007-10-12 03:46:25.000000000 -0400
+++++ openjdk/hotspot/make/linux/makefiles/gcc.make	2007-10-12 17:41:02.000000000 -0400
 +@@ -111,7 +111,7 @@
 + CFLAGS_WARN/BYFILE = $(CFLAGS_WARN/$@)$(CFLAGS_WARN/DEFAULT$(CFLAGS_WARN/$@)) 
 + 
--- a/generated/com/sun/corba/se/impl/logging/ActivationSystemException.java	Mon Jan 19 02:29:32 2009 +0000
+++ b/generated/com/sun/corba/se/impl/logging/ActivationSystemException.java	Tue Jan 20 00:26:05 2009 +0000
@@ -1,7 +1,7 @@
 // Log wrapper class for Sun private system exceptions in group ACTIVATION
 //
 // Generated by MC.java version 1.0, DO NOT EDIT BY HAND!
-// Generated from input file ../../../../src/share/classes/com/sun/corba/se/spi/logging/data/Activation.mc on Fri Sep 12 21:18:58 GMT 2008
+// Generated from input file ../../../../src/share/classes/com/sun/corba/se/spi/logging/data/Activation.mc on Fri Dec 05 17:29:35 GMT 2008
 
 package com.sun.corba.se.impl.logging ;
 
--- a/generated/com/sun/corba/se/impl/logging/IORSystemException.java	Mon Jan 19 02:29:32 2009 +0000
+++ b/generated/com/sun/corba/se/impl/logging/IORSystemException.java	Tue Jan 20 00:26:05 2009 +0000
@@ -1,7 +1,7 @@
 // Log wrapper class for Sun private system exceptions in group IOR
 //
 // Generated by MC.java version 1.0, DO NOT EDIT BY HAND!
-// Generated from input file ../../../../src/share/classes/com/sun/corba/se/spi/logging/data/IOR.mc on Fri Sep 12 21:18:58 GMT 2008
+// Generated from input file ../../../../src/share/classes/com/sun/corba/se/spi/logging/data/IOR.mc on Fri Dec 05 17:29:35 GMT 2008
 
 package com.sun.corba.se.impl.logging ;
 
--- a/generated/com/sun/corba/se/impl/logging/InterceptorsSystemException.java	Mon Jan 19 02:29:32 2009 +0000
+++ b/generated/com/sun/corba/se/impl/logging/InterceptorsSystemException.java	Tue Jan 20 00:26:05 2009 +0000
@@ -1,7 +1,7 @@
 // Log wrapper class for Sun private system exceptions in group INTERCEPTORS
 //
 // Generated by MC.java version 1.0, DO NOT EDIT BY HAND!
-// Generated from input file ../../../../src/share/classes/com/sun/corba/se/spi/logging/data/Interceptors.mc on Fri Sep 12 21:18:58 GMT 2008
+// Generated from input file ../../../../src/share/classes/com/sun/corba/se/spi/logging/data/Interceptors.mc on Fri Dec 05 17:29:35 GMT 2008
 
 package com.sun.corba.se.impl.logging ;
 
--- a/generated/com/sun/corba/se/impl/logging/NamingSystemException.java	Mon Jan 19 02:29:32 2009 +0000
+++ b/generated/com/sun/corba/se/impl/logging/NamingSystemException.java	Tue Jan 20 00:26:05 2009 +0000
@@ -1,7 +1,7 @@
 // Log wrapper class for Sun private system exceptions in group NAMING
 //
 // Generated by MC.java version 1.0, DO NOT EDIT BY HAND!
-// Generated from input file ../../../../src/share/classes/com/sun/corba/se/spi/logging/data/Naming.mc on Fri Sep 12 21:18:58 GMT 2008
+// Generated from input file ../../../../src/share/classes/com/sun/corba/se/spi/logging/data/Naming.mc on Fri Dec 05 17:29:35 GMT 2008
 
 package com.sun.corba.se.impl.logging ;
 
--- a/generated/com/sun/corba/se/impl/logging/OMGSystemException.java	Mon Jan 19 02:29:32 2009 +0000
+++ b/generated/com/sun/corba/se/impl/logging/OMGSystemException.java	Tue Jan 20 00:26:05 2009 +0000
@@ -1,7 +1,7 @@
 // Log wrapper class for standard exceptions
 //
 // Generated by MC.java version 1.0, DO NOT EDIT BY HAND!
-// Generated from input file ../../../../src/share/classes/com/sun/corba/se/spi/logging/data/OMG.mc on Fri Sep 12 21:18:59 GMT 2008
+// Generated from input file ../../../../src/share/classes/com/sun/corba/se/spi/logging/data/OMG.mc on Fri Dec 05 17:29:35 GMT 2008
 
 package com.sun.corba.se.impl.logging ;
 
--- a/generated/com/sun/corba/se/impl/logging/ORBUtilSystemException.java	Mon Jan 19 02:29:32 2009 +0000
+++ b/generated/com/sun/corba/se/impl/logging/ORBUtilSystemException.java	Tue Jan 20 00:26:05 2009 +0000
@@ -1,7 +1,7 @@
 // Log wrapper class for Sun private system exceptions in group ORBUTIL
 //
 // Generated by MC.java version 1.0, DO NOT EDIT BY HAND!
-// Generated from input file ../../../../src/share/classes/com/sun/corba/se/spi/logging/data/ORBUtil.mc on Fri Sep 12 21:18:59 GMT 2008
+// Generated from input file ../../../../src/share/classes/com/sun/corba/se/spi/logging/data/ORBUtil.mc on Fri Dec 05 17:29:35 GMT 2008
 
 package com.sun.corba.se.impl.logging ;
 
--- a/generated/com/sun/corba/se/impl/logging/POASystemException.java	Mon Jan 19 02:29:32 2009 +0000
+++ b/generated/com/sun/corba/se/impl/logging/POASystemException.java	Tue Jan 20 00:26:05 2009 +0000
@@ -1,7 +1,7 @@
 // Log wrapper class for Sun private system exceptions in group POA
 //
 // Generated by MC.java version 1.0, DO NOT EDIT BY HAND!
-// Generated from input file ../../../../src/share/classes/com/sun/corba/se/spi/logging/data/POA.mc on Fri Sep 12 21:18:59 GMT 2008
+// Generated from input file ../../../../src/share/classes/com/sun/corba/se/spi/logging/data/POA.mc on Fri Dec 05 17:29:36 GMT 2008
 
 package com.sun.corba.se.impl.logging ;
 
--- a/generated/com/sun/corba/se/impl/logging/UtilSystemException.java	Mon Jan 19 02:29:32 2009 +0000
+++ b/generated/com/sun/corba/se/impl/logging/UtilSystemException.java	Tue Jan 20 00:26:05 2009 +0000
@@ -1,7 +1,7 @@
 // Log wrapper class for Sun private system exceptions in group UTIL
 //
 // Generated by MC.java version 1.0, DO NOT EDIT BY HAND!
-// Generated from input file ../../../../src/share/classes/com/sun/corba/se/spi/logging/data/Util.mc on Fri Sep 12 21:18:59 GMT 2008
+// Generated from input file ../../../../src/share/classes/com/sun/corba/se/spi/logging/data/Util.mc on Fri Dec 05 17:29:36 GMT 2008
 
 package com.sun.corba.se.impl.logging ;
 
--- a/hotspot.map	Mon Jan 19 02:29:32 2009 +0000
+++ b/hotspot.map	Tue Jan 20 00:26:05 2009 +0000
@@ -1,1 +1,2 @@
-14.0b08	f9d938ede196
+# version changeset md5sum
+original	f9d938ede196 c8f78d48ac83987bc2adebeebcd354e9
--- a/javac.in	Mon Jan 19 02:29:32 2009 +0000
+++ b/javac.in	Tue Jan 20 00:26:05 2009 +0000
@@ -4,7 +4,7 @@
 use constant STRIP_ARGS => qw(-Werror);
 
 my @bcoption;
-push @bcoption, '-bootclasspath', glob '@LIBGCJ_JAR@'
+push @bcoption, '-bootclasspath', glob '@SYSTEM_GCJ_DIR@/jre/lib/rt.jar'
     unless grep {$_ eq '-bootclasspath'} @ARGV;
 
 # Work around ecj's inability to handle duplicate command-line
--- a/overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/JARDesc.java	Mon Jan 19 02:29:32 2009 +0000
+++ b/overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/JARDesc.java	Tue Jan 20 00:26:05 2009 +0000
@@ -46,6 +46,9 @@
 
     /** whether the JAR contains native libraries */
     private boolean nativeJar;
+    
+    /** whether the JAR can be cached */
+    private boolean cacheable;
 
     /**
      * Create a JAR descriptor.
@@ -57,13 +60,14 @@
      * @param main whether the JAR contains the main class
      * @param nativeJam whether the JAR contains native libraries
      */
-    public JARDesc(URL location, Version version, String part, boolean lazy, boolean main, boolean nativeJar) {
+    public JARDesc(URL location, Version version, String part, boolean lazy, boolean main, boolean nativeJar, boolean cacheable) {
         this.location = location;
         this.version = version;
         this.part = part;
         this.lazy = lazy;
         this.main = main;
         this.nativeJar = nativeJar;
+        this.cacheable = cacheable;
     }
 
     /**
@@ -124,6 +128,15 @@
     public boolean isMain() {
         return main;
     }
+    
+    /**
+     * Returns if this jar is cacheable
+     * 
+     * @return Whether or not this jar is cacheable
+     */
+    public boolean isCacheable() {
+        return cacheable;
+    }
 
 }
 
--- a/overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/NetxPanel.java	Mon Jan 19 02:29:32 2009 +0000
+++ b/overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/NetxPanel.java	Tue Jan 20 00:26:05 2009 +0000
@@ -70,10 +70,13 @@
     		synchronized(JNLPRuntime.initMutex) {
     			//The custom NetX Policy and SecurityManager are set here.
     			if (!JNLPRuntime.isInitialized()) {
-    				System.out.println("initializing JNLPRuntime...");
+    			    if (JNLPRuntime.isDebug())
+    			        System.out.println("initializing JNLPRuntime...");
+
     				JNLPRuntime.initialize();
     			} else {
-    				System.out.println("JNLPRuntime already initialized");
+    			    if (JNLPRuntime.isDebug())
+    			        System.out.println("JNLPRuntime already initialized");
     			}
     		}
 
--- a/overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/Parser.java	Mon Jan 19 02:29:32 2009 +0000
+++ b/overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/Parser.java	Tue Jan 20 00:26:05 2009 +0000
@@ -308,7 +308,7 @@
             if (strict) 
                 throw new ParseException(R("PNativeHasMain"));
 
-        return new JARDesc(location, version, part, lazy, main, nativeJar);
+        return new JARDesc(location, version, part, lazy, main, nativeJar, true);
 
     }
 
--- a/overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/PluginBridge.java	Mon Jan 19 02:29:32 2009 +0000
+++ b/overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/PluginBridge.java	Tue Jan 20 00:26:05 2009 +0000
@@ -29,6 +29,8 @@
 import java.util.List;
 import java.util.ArrayList;
 
+import net.sourceforge.jnlp.runtime.JNLPRuntime;
+
 
 public class PluginBridge extends JNLPFile
 {
@@ -36,7 +38,9 @@
     Version fileVersion = new Version("1.1");
 
     String name;
-    String[] jars;
+    String[] jars = new String[0];
+    String[] cache_jars = new String[0];
+    String[] cache_ex_jars = new String[0];
     Hashtable atts;
 
     public PluginBridge(URL codebase, URL documentBase, String jar, String main,
@@ -46,10 +50,39 @@
         this.codeBase = codebase;
         this.sourceLocation = documentBase;
 
-        if (jar != null) {
-            System.err.println("Jar string: " + jar);
+        // also, see if cache_archive is specified
+        if (atts.get("cache_archive") != null && ((String) atts.get("cache_archive")).length() > 0) {
+            
+            String[] versions = new String[0];
+            
+            // are there accompanying versions?
+            if (atts.get("cache_version") != null) {
+                versions = ((String) atts.get("cache_version")).split(",");
+            }
+            
+            String[] jars = ((String) atts.get("cache_archive")).split(",");
+            cache_jars = new String[jars.length];
+            
+            for (int i=0; i < jars.length; i++) {
+                
+                cache_jars[i] = jars[i].trim();
+
+                if (versions.length > 0) {
+                    cache_jars[i] += ";" + versions[i].trim(); 
+                }
+            }
+        }
+        
+        if (atts.get("cache_archive_ex") != null && ((String) atts.get("cache_archive_ex")).length() > 0) {
+            cache_ex_jars = ((String) atts.get("cache_archive_ex")).split(",");
+        }
+
+        if (jar != null && jar.length() > 0) {
             this.jars = jar.split(",");
-            System.err.println("jars length: " + jars.length);
+            if (JNLPRuntime.isDebug()) {
+                System.err.println("Jar string: " + jar);
+                System.err.println("jars length: " + jars.length);
+            }
         }
         this.atts = atts;
 
@@ -103,11 +136,59 @@
                 //should this be done to sharedResources on init?
                 try
                 {
-                    if (launchType.equals(JARDesc.class) && jars != null)
+                    if (launchType.equals(JARDesc.class))
                     {
                         for (int i = 0; i < jars.length; i++)
                             result.add(new JARDesc(new URL(codeBase, jars[i]),
-                                                   null, null, false, true, false));
+                                                   null, null, false, true, false, true));
+                        
+                        boolean cacheable = true;
+
+                        if (atts.get("cache_option") != null && 
+                                ((String) atts.get("cache_option")).equalsIgnoreCase("no"))
+                            cacheable = false;
+
+                        for (int i = 0; i < cache_jars.length; i++) {
+                            
+                            String[] jar_and_ver = cache_jars[i].split(";");
+                            
+                            String jar = jar_and_ver[0];
+                            Version version = null;
+                            
+                            if (jar_and_ver.length > 1) {
+                                version = new Version(jar_and_ver[1]);
+                            }
+
+                            result.add(new JARDesc(new URL(codeBase, jar),
+                                    version, null, false, true, false, cacheable));
+                        }
+                        
+                        for (int i = 0; i < cache_ex_jars.length; i++) {
+                            String[] jar_info = cache_ex_jars[i].split(";");
+                            
+                            String jar = jar_info[0].trim();
+                            Version version = null;
+                            boolean lazy = true;
+                            
+                            if (jar_info.length > 1) {
+                                
+                                // format is name[[;preload];version]
+
+                                if (jar_info[1].equals("preload")) {
+                                    lazy = false;
+                                } else {
+                                    version = new Version(jar_info[1].trim());
+                                }
+                                
+                                if (jar_info.length > 2) {
+                                    lazy = false;
+                                    version = new Version(jar_info[2].trim());
+                                }
+                            }
+
+                            result.add(new JARDesc(new URL(codeBase, jar),
+                                    version, null, lazy, true, false, false));
+                        }
                     }
                 }
                 catch (MalformedURLException ex)
@@ -132,9 +213,9 @@
                 for (int i = 0; i < objectArray.length; i++)
                     jarArray[i] = (JARDesc) objectArray[i];
 
-                return jarArray;
+                return jarArray;  
             }
-
+            
             public void addResource(Object resource)
             {
                 // todo: honor the current locale, os, arch values
--- a/overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/cache/Resource.java	Mon Jan 19 02:29:32 2009 +0000
+++ b/overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/cache/Resource.java	Tue Jan 20 00:26:05 2009 +0000
@@ -88,23 +88,26 @@
 
     /** the status of the resource */
     int status = UNINITIALIZED;
-
+    
+    /** Update policy for this resource */
+    UpdatePolicy updatePolicy;
 
     /**
      * Create a resource.
      */
-    private Resource(URL location, Version requestVersion) {
+    private Resource(URL location, UpdatePolicy updatePolicy, Version requestVersion) {
         this.location = location;
         this.requestVersion = requestVersion;
+        this.updatePolicy = updatePolicy;
     }
 
     /**
      * Return a shared Resource object representing the given
      * location and version.
      */
-    public static Resource getResource(URL location, Version requestVersion) {
+    public static Resource getResource(URL location, UpdatePolicy updatePolicy, Version requestVersion) {
         synchronized (resources) {
-            Resource resource = new Resource(location, requestVersion);
+            Resource resource = new Resource(location, updatePolicy, requestVersion);
 
             int index = resources.indexOf(resource);
             if (index >= 0) { // return existing object
@@ -152,6 +155,15 @@
     }
 
     /**
+     * Returns the update policy for this resource
+     * 
+     * @return The update policy
+     */
+    public UpdatePolicy getUpdatePolicy() {
+        return this.updatePolicy;
+    }
+
+    /**
      * Returns a human-readable status string.
      */
     private String getStatusString(int flag) {
--- a/overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/cache/ResourceTracker.java	Mon Jan 19 02:29:32 2009 +0000
+++ b/overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/cache/ResourceTracker.java	Tue Jan 20 00:26:05 2009 +0000
@@ -152,7 +152,7 @@
         if (location == null)
             throw new IllegalArgumentException("location==null");
 
-        Resource resource = Resource.getResource(location, version);
+        Resource resource = Resource.getResource(location, updatePolicy, version);
         boolean downloaded = false;
 
         synchronized (resources) {
@@ -215,7 +215,7 @@
             return true;
         }
 
-        if (updatePolicy != UpdatePolicy.ALWAYS) { // save loading entry props file
+        if (updatePolicy != UpdatePolicy.ALWAYS && updatePolicy != UpdatePolicy.FORCE) { // save loading entry props file
             CacheEntry entry = new CacheEntry(resource.location, resource.downloadVersion);
 
             if (entry.isCached() && !updatePolicy.shouldUpdate(entry)) {
@@ -232,6 +232,11 @@
                 return true;
             }
         }
+        
+        if (updatePolicy == UpdatePolicy.FORCE) { // ALWAYS update
+            // When we are "always" updating, we update for each instance. Reset resource status.
+            resource.changeStatus(Integer.MAX_VALUE, 0);
+        }
 
         // may or may not be cached, but check update when connection
         // is open to possibly save network communication time if it
@@ -600,7 +605,7 @@
 
         try {
             // create out second in case in does not exist
-            URLConnection con = resource.location.openConnection();
+            URLConnection con = getVersionedResourceURL(resource).openConnection();
             InputStream in = new BufferedInputStream(con.getInputStream());
             OutputStream out = CacheUtil.getOutputStream(resource.location, resource.downloadVersion);
             byte buf[] = new byte[1024];
@@ -647,9 +652,9 @@
             File localFile = CacheUtil.getCacheFile(resource.location, resource.downloadVersion);
 
             // connect
-            URLConnection connection = resource.location.openConnection(); // this won't change so should be okay unsynchronized
+            URLConnection connection = getVersionedResourceURL(resource).openConnection(); // this won't change so should be okay unsynchronized
             int size = connection.getContentLength();
-            boolean current = CacheUtil.isCurrent(resource.location, resource.requestVersion, connection);
+            boolean current = CacheUtil.isCurrent(resource.location, resource.requestVersion, connection) && resource.getUpdatePolicy() != UpdatePolicy.FORCE;
 
             synchronized(resource) {
                 resource.localFile = localFile;
@@ -691,6 +696,29 @@
         }
     }
 
+    
+ 
+    private URL getVersionedResourceURL(Resource resource) {
+        String actualLocation = resource.location.getProtocol() + "://"
+                + resource.location.getHost();
+        if (resource.location.getPort() != -1) {
+            actualLocation += ":" + resource.location.getPort();
+        }
+        actualLocation += resource.location.getPath();
+        if (resource.requestVersion != null
+                && resource.requestVersion.isVersionId()) {
+            actualLocation += "?version-id=" + resource.requestVersion;
+        }
+        URL versionedURL;
+        try {
+            versionedURL = new URL(actualLocation);
+        } catch (MalformedURLException e) {
+            return resource.location;
+        }
+        return versionedURL;
+    }
+ 
+    
     /**
      * Pick the next resource to download or initialize.  If there
      * are no more resources requested then one is taken from a
--- a/overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/cache/UpdatePolicy.java	Mon Jan 19 02:29:32 2009 +0000
+++ b/overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/cache/UpdatePolicy.java	Tue Jan 20 00:26:05 2009 +0000
@@ -47,6 +47,7 @@
 
     public static UpdatePolicy ALWAYS = new UpdatePolicy(0);
     public static UpdatePolicy SESSION = new UpdatePolicy(-1);
+    public static UpdatePolicy FORCE = new UpdatePolicy(Long.MIN_VALUE);
     public static UpdatePolicy NEVER = new UpdatePolicy(Long.MAX_VALUE);
 
     private long timeDiff = -1;
--- a/overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/runtime/JNLPClassLoader.java	Mon Jan 19 02:29:32 2009 +0000
+++ b/overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/runtime/JNLPClassLoader.java	Tue Jan 20 00:26:05 2009 +0000
@@ -302,6 +302,7 @@
         List initialJars = new ArrayList();
 
         for (int i=0; i < jars.length; i++) {
+
             available.add(jars[i]);
 
             if (jars[i].isEager())
@@ -309,7 +310,7 @@
 
             tracker.addResource(jars[i].getLocation(), 
                                 jars[i].getVersion(), 
-                                JNLPRuntime.getDefaultUpdatePolicy()
+                                jars[i].isCacheable() ? JNLPRuntime.getDefaultUpdatePolicy() : UpdatePolicy.FORCE
                                );
         }
 
@@ -494,8 +495,12 @@
 
                         // there is currently no mechanism to cache files per 
                         // instance.. so only index cached files
-                        if (localFile != null)
-                        	jarIndexes.add(JarIndex.getJarIndex(new JarFile(localFile.getAbsolutePath()), null));
+                        if (localFile != null) {
+                            JarIndex index = JarIndex.getJarIndex(new JarFile(localFile.getAbsolutePath()), null);
+
+                            if (index != null)
+                                jarIndexes.add(index);
+                        }
 
                         if (JNLPRuntime.isDebug())
                             System.err.println("Activate jar: "+location);
@@ -699,7 +704,7 @@
                             JARDesc desc;
                             try {
                                 desc = new JARDesc(new URL(file.getCodeBase(), jarName),
-                                        null, null, false, true, false);
+                                        null, null, false, true, false, true);
                             } catch (MalformedURLException mfe) {
                                 throw new ClassNotFoundException(name);
                             }
--- a/patches/hotspot/original/icedtea-shark-build.patch	Mon Jan 19 02:29:32 2009 +0000
+++ b/patches/hotspot/original/icedtea-shark-build.patch	Tue Jan 20 00:26:05 2009 +0000
@@ -42,7 +42,7 @@
  	$(BUILDTREE) VARIANT=core
  
 +$(SUBDIRS_SHARK): $(BUILDTREE_MAKE)
-+	$(QUIETLY) $(MAKE) -f $(GAMMADIR)/build/$(OSNAME)/Makefile checks
++	$(QUIETLY) $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/Makefile checks
 +	$(BUILDTREE) VARIANT=shark
 +
  # Define INSTALL=y at command line to automatically copy JVM into JAVA_HOME
--- a/patches/hotspot/original/icedtea-text-relocations.patch	Mon Jan 19 02:29:32 2009 +0000
+++ b/patches/hotspot/original/icedtea-text-relocations.patch	Tue Jan 20 00:26:05 2009 +0000
@@ -5,7 +5,7 @@
  # Compiler flags
  
  # position-independent code
-+ifneq ($(filter ppc ppc64 s390 s390x sparc sparc64 sparcv9,$(ZERO_LIBARCH)),)
++ifneq ($(filter parisc ppc ppc64 s390 s390x sparc sparc64 sparcv9,$(ZERO_LIBARCH)),)
  PICFLAG = -fPIC
 +else
 +PICFLAG = -fpic
@@ -13,3 +13,49 @@
  
  VM_PICFLAG/LIBJVM = $(PICFLAG)
  VM_PICFLAG/AOUT   =
+--- rules.make.orig	2008-12-12 11:23:31.000000000 -0500
++++ openjdk/hotspot/make/linux/makefiles/rules.make	2008-12-12 11:32:26.000000000 -0500
+@@ -138,20 +138,10 @@
+ include $(GAMMADIR)/make/pic.make
+ endif
+ 
+-# The non-PIC object files are only generated for 32 bit platforms.
+-ifdef LP64
+ %.o: %.cpp
+ 	@echo Compiling $<
+ 	$(QUIETLY) $(REMOVE_TARGET)
+ 	$(QUIETLY) $(COMPILE.CC) -o $@ $< $(COMPILE_DONE)
+-else
+-%.o: %.cpp
+-	@echo Compiling $<
+-	$(QUIETLY) $(REMOVE_TARGET)
+-	$(QUIETLY) $(if $(findstring $@, $(NONPIC_OBJ_FILES)), \
+-	   $(subst $(VM_PICFLAG), ,$(COMPILE.CC)) -o $@ $< $(COMPILE_DONE), \
+-	   $(COMPILE.CC) -o $@ $< $(COMPILE_DONE))
+-endif
+ 
+ %.o: %.s
+ 	@echo Assembling $<
+--- rules.make.orig	2008-12-12 11:42:55.000000000 -0500
++++ openjdk/hotspot/make/solaris/makefiles/rules.make	2008-12-12 11:44:01.000000000 -0500
+@@ -138,20 +138,10 @@
+ include $(GAMMADIR)/make/pic.make
+ endif
+ 
+-# Sun compiler for 64 bit Solaris does not support building non-PIC object files.
+-ifdef LP64
+ %.o: %.cpp
+ 	@echo Compiling $<
+ 	$(QUIETLY) $(REMOVE_TARGET)
+ 	$(QUIETLY) $(COMPILE.CC) -o $@ $< $(COMPILE_DONE)
+-else
+-%.o: %.cpp
+-	@echo Compiling $<
+-	$(QUIETLY) $(REMOVE_TARGET)
+-	$(QUIETLY) $(if $(findstring $@, $(NONPIC_OBJ_FILES)), \
+-         $(subst $(VM_PICFLAG), ,$(COMPILE.CC)) -o $@ $< $(COMPILE_DONE), \
+-         $(COMPILE.CC) -o $@ $< $(COMPILE_DONE))
+-endif
+ 
+ %.o: %.s
+ 	@echo Assembling $<
--- a/patches/hotspot/original/icedtea-version.patch	Mon Jan 19 02:29:32 2009 +0000
+++ b/patches/hotspot/original/icedtea-version.patch	Tue Jan 20 00:26:05 2009 +0000
@@ -35,4 +35,14 @@
  
    STEP(60, "(printing problematic frame)")
  
+--- arguments.cpp       2008-12-15 12:25:14.000000000 -0500
++++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp  2008-12-15 12:25:32.000000000 -0500
+@@ -25,7 +25,7 @@
+ #include "incls/_precompiled.incl"
+ #include "incls/_arguments.cpp.incl"
 
+-#define DEFAULT_VENDOR_URL_BUG "http://java.sun.com/webapps/bugreport/crash.jsp"
++#define DEFAULT_VENDOR_URL_BUG "http://icedtea.classpath.org/bugzilla"
+ #define DEFAULT_JAVA_LAUNCHER  "generic"
+
+ char**  Arguments::_jvm_flags_array             = NULL;
--- a/patches/icedtea-hotspot7-build-fixes.patch	Mon Jan 19 02:29:32 2009 +0000
+++ b/patches/icedtea-hotspot7-build-fixes.patch	Tue Jan 20 00:26:05 2009 +0000
@@ -1,7 +1,13 @@
+<<<<<<< local
 diff -Nru openjdk.orig/hotspot/src/share/vm/runtime/vm_version.cpp openjdk/hotspot/src/share/vm/runtime/vm_version.cpp
 --- openjdk.orig/hotspot/src/share/vm/runtime/vm_version.cpp	2008-10-30 17:10:16.000000000 +0000
 +++ openjdk/hotspot/src/share/vm/runtime/vm_version.cpp	2008-10-30 17:11:34.000000000 +0000
 @@ -88,9 +88,6 @@
+=======
+--- openjdk/hotspot/src/share/vm/runtime/vm_version.cpp~	2008-12-05 16:02:43.000000000 +0000
++++ openjdk/hotspot/src/share/vm/runtime/vm_version.cpp	2008-12-05 16:13:04.000000000 +0000
+@@ -86,16 +86,12 @@
+>>>>>>> other
    #define VMLP ""
  #endif
  
@@ -11,9 +17,14 @@
  #ifdef TIERED
    #define VMTYPE "Server"
  #else
+<<<<<<< local
 @@ -101,7 +98,6 @@
    #define VMTYPE "Core"
  #endif // COMPILER1 || COMPILER2
+=======
+   #define VMTYPE COMPILER1_PRESENT("Client")   \
+                  COMPILER2_PRESENT("Server")   
+>>>>>>> other
  #endif // TIERED
 -#endif // KERNEL
  
--- a/patches/icedtea-lucene-crash.patch	Mon Jan 19 02:29:32 2009 +0000
+++ b/patches/icedtea-lucene-crash.patch	Tue Jan 20 00:26:05 2009 +0000
@@ -1,23 +1,3 @@
-diff -r 4aebfff4f8a2 hotspot/src/share/vm/opto/parse2.cpp
---- openjdk.orig/hotspot/src/share/vm/opto/parse2.cpp	Mon Sep 15 11:38:34 2008 +0200
-+++ openjdk/hotspot/src/share/vm/opto/parse2.cpp	Thu Sep 25 21:54:26 2008 +0200
-@@ -868,6 +868,8 @@
-   return prob < PROB_MIN;
- }
- 
-+//-------------------------------repush_if_args--------------------------------
-+// Push arguments of an "if" bytecode back onto the stack by adjusting _sp.
- inline void Parse::repush_if_args() {
- #ifndef PRODUCT
-   if (PrintOpto && WizardMode) {
-@@ -896,7 +898,6 @@
-     if (PrintOpto && Verbose)
-       tty->print_cr("Never-taken backedge stops compilation at bci %d",bci());
- #endif
--    repush_if_args(); // to gather stats on loop
-     uncommon_trap(Deoptimization::Reason_unreached,
-                   Deoptimization::Action_reinterpret,
-                   NULL, "cold");
 diff -r 51798f0e554f test/compiler/6707044/LuceneCrash.java
 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
 +++ openjdk/hotspot/test/compiler/6707044/LuceneCrash.java	Thu Sep 25 21:55:28 2008 +0200
--- a/patches/icedtea-rhino.patch	Mon Jan 19 02:29:32 2009 +0000
+++ b/patches/icedtea-rhino.patch	Tue Jan 20 00:26:05 2009 +0000
@@ -1,17 +1,42 @@
+<<<<<<< local
 diff -Nru openjdk.orig/hotspot/src/share/vm/runtime/os.cpp openjdk/hotspot/src/share/vm/runtime/os.cpp
 --- openjdk.orig/hotspot/src/share/vm/runtime/os.cpp	2008-10-23 08:41:05.000000000 +0100
 +++ openjdk/hotspot/src/share/vm/runtime/os.cpp	2008-10-27 23:00:47.000000000 +0000
+=======
+--- openjdk/hotspot/src/share/vm/runtime/os.cpp.orig	2008-11-22 00:11:18.000000000 +0000
++++ openjdk/hotspot/src/share/vm/runtime/os.cpp	2008-12-03 21:16:14.000000000 +0000
+>>>>>>> other
 @@ -886,6 +886,7 @@
          "%/lib/jsse.jar:"
          "%/lib/jce.jar:"
          "%/lib/charsets.jar:"
+<<<<<<< local
 +	"%/lib/rhino.jar:"
+=======
++        "%/lib/rhino.jar:"
+>>>>>>> other
          "%/classes";
      char* sysclasspath = format_boot_path(classpath_format, home, home_len, fileSep, pathSep);
      if (sysclasspath == NULL) return false;
+<<<<<<< local
 diff -Nru openjdk.orig/jdk/make/com/sun/Makefile openjdk/jdk/make/com/sun/Makefile
 --- openjdk.orig/jdk/make/com/sun/Makefile	2008-10-23 08:44:04.000000000 +0100
 +++ openjdk/jdk/make/com/sun/Makefile	2008-10-27 23:00:47.000000000 +0000
+=======
+--- openjdk/jdk/make/com/sun/script/Makefile.orig	2008-11-25 09:01:10.000000000 +0000
++++ openjdk/jdk/make/com/sun/script/Makefile	2008-12-03 21:13:14.000000000 +0000
+@@ -31,6 +31,8 @@
+ 
+ AUTO_FILES_JAVA_DIRS = com/sun/script
+ 
++OTHER_JAVACFLAGS = -classpath $(RHINO_JAR)
++
+ #
+ # Files that need to be copied
+ #
+--- openjdk/jdk/make/com/sun/Makefile.orig	2008-11-25 09:01:09.000000000 +0000
++++ openjdk/jdk/make/com/sun/Makefile	2008-12-03 21:14:36.000000000 +0000
+>>>>>>> other
 @@ -31,15 +31,8 @@
  PRODUCT = sun
  include $(BUILDDIR)/common/Defs.gmk
@@ -26,9 +51,15 @@
  # Omit mirror since it's built with the apt tool.
 -SUBDIRS = $(SCRIPT_SUBDIR) image security crypto/provider jndi jmx \
 +SUBDIRS = script image security crypto/provider jndi jmx \
+<<<<<<< local
      java inputmethods org xml rowset net/httpserver net/ssl demo \
      tools jarsigner tracing servicetag
+=======
+     java inputmethods org rowset net/httpserver net/ssl demo \
+     tools jarsigner
+>>>>>>> other
  
+<<<<<<< local
 diff -Nru openjdk.orig/jdk/make/com/sun/script/Makefile openjdk/jdk/make/com/sun/script/Makefile
 --- openjdk.orig/jdk/make/com/sun/script/Makefile	2008-10-23 08:44:04.000000000 +0100
 +++ openjdk/jdk/make/com/sun/script/Makefile	2008-10-27 23:00:47.000000000 +0000
@@ -45,6 +76,11 @@
 --- openjdk.orig/jdk/make/common/Release.gmk	2008-10-27 23:00:09.000000000 +0000
 +++ openjdk/jdk/make/common/Release.gmk	2008-10-27 23:00:47.000000000 +0000
 @@ -774,6 +774,7 @@
+=======
+--- openjdk/jdk/make/common/Release.gmk.orig	2008-12-03 21:12:23.000000000 +0000
++++ openjdk/jdk/make/common/Release.gmk	2008-12-03 21:13:14.000000000 +0000
+@@ -772,6 +772,7 @@
+>>>>>>> other
  	$(CP) $(RT_JAR) $(JRE_IMAGE_DIR)/lib/rt.jar
  	$(CP) $(RESOURCES_JAR) $(JRE_IMAGE_DIR)/lib/resources.jar
  	$(CP) $(JSSE_JAR) $(JRE_IMAGE_DIR)/lib/jsse.jar
@@ -52,9 +88,36 @@
  	@# Generate meta-index to make boot and extension class loaders lazier
  	$(CD) $(JRE_IMAGE_DIR)/lib && \
  	    $(BOOT_JAVA_CMD) -jar $(BUILDMETAINDEX_JARFILE) \
+<<<<<<< local
 diff -Nru openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/ExternalScriptable.java openjdk/jdk/src/share/classes/com/sun/script/javascript/ExternalScriptable.java
 --- openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/ExternalScriptable.java	2008-10-23 08:44:13.000000000 +0100
 +++ openjdk/jdk/src/share/classes/com/sun/script/javascript/ExternalScriptable.java	2008-10-27 23:00:47.000000000 +0000
+=======
+--- openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoTopLevel.java.orig	2008-11-25 09:02:56.000000000 +0000
++++ openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoTopLevel.java	2008-12-03 21:13:13.000000000 +0000
+@@ -25,7 +25,7 @@
+ 
+ package com.sun.script.javascript;
+ 
+-import sun.org.mozilla.javascript.internal.*;
++import org.mozilla.javascript.*;
+ import javax.script.*;
+ 
+ /**
+--- openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngineFactory.java.orig	2008-11-25 09:02:56.000000000 +0000
++++ openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngineFactory.java	2008-12-03 21:13:05.000000000 +0000
+@@ -26,7 +26,7 @@
+ package com.sun.script.javascript;
+ import javax.script.*;
+ import java.util.*;
+-import sun.org.mozilla.javascript.internal.*;
++import org.mozilla.javascript.*;
+ import com.sun.script.util.*;
+ 
+ /**
+--- openjdk/jdk/src/share/classes/com/sun/script/javascript/ExternalScriptable.java.orig	2008-11-25 09:02:56.000000000 +0000
++++ openjdk/jdk/src/share/classes/com/sun/script/javascript/ExternalScriptable.java	2008-12-03 21:13:14.000000000 +0000
+>>>>>>> other
 @@ -24,7 +24,7 @@
   */
  
@@ -64,6 +127,7 @@
  import javax.script.*;
  import java.util.*;
  
+<<<<<<< local
 diff -Nru openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/JavaAdapter.java openjdk/jdk/src/share/classes/com/sun/script/javascript/JavaAdapter.java
 --- openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/JavaAdapter.java	2008-10-23 08:44:13.000000000 +0100
 +++ openjdk/jdk/src/share/classes/com/sun/script/javascript/JavaAdapter.java	2008-10-27 23:00:47.000000000 +0000
@@ -127,6 +191,10 @@
 diff -Nru openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngine.java openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngine.java
 --- openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngine.java	2008-10-23 08:44:13.000000000 +0100
 +++ openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngine.java	2008-10-27 23:00:47.000000000 +0000
+=======
+--- openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngine.java.orig	2008-11-25 09:02:56.000000000 +0000
++++ openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngine.java	2008-12-03 21:13:05.000000000 +0000
+>>>>>>> other
 @@ -26,7 +26,7 @@
  package com.sun.script.javascript;
  import com.sun.script.util.*;
@@ -136,21 +204,57 @@
  import java.lang.reflect.Method;
  import java.io.*;
  import java.util.*;
+<<<<<<< local
 diff -Nru openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/RhinoTopLevel.java openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoTopLevel.java
 --- openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/RhinoTopLevel.java	2008-10-23 08:44:13.000000000 +0100
 +++ openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoTopLevel.java	2008-10-27 23:00:47.000000000 +0000
+=======
+--- openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoClassShutter.java.orig	2008-11-25 09:02:56.000000000 +0000
++++ openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoClassShutter.java	2008-12-03 21:13:05.000000000 +0000
+@@ -26,7 +26,7 @@
+ package com.sun.script.javascript;
+ 
+ import java.util.*;
+-import sun.org.mozilla.javascript.internal.*;
++import org.mozilla.javascript.*;
+ 
+ /**
+  * This class prevents script access to certain sensitive classes.
+--- openjdk/jdk/src/share/classes/com/sun/script/javascript/JavaAdapter.java.orig	2008-11-25 09:02:56.000000000 +0000
++++ openjdk/jdk/src/share/classes/com/sun/script/javascript/JavaAdapter.java	2008-12-03 21:13:14.000000000 +0000
+@@ -26,7 +26,7 @@
+ package com.sun.script.javascript;
+ 
+ import javax.script.Invocable;
+-import sun.org.mozilla.javascript.internal.*;
++import org.mozilla.javascript.*;
+ 
+ /**
+  * This class implements Rhino-like JavaAdapter to help implement a Java
+--- openjdk/jdk/src/share/classes/com/sun/script/javascript/JSAdapter.java.orig	2008-11-25 09:02:56.000000000 +0000
++++ openjdk/jdk/src/share/classes/com/sun/script/javascript/JSAdapter.java	2008-12-03 21:13:05.000000000 +0000
+>>>>>>> other
 @@ -25,7 +25,7 @@
  
  package com.sun.script.javascript;
  
 -import sun.org.mozilla.javascript.internal.*;
 +import org.mozilla.javascript.*;
+<<<<<<< local
  import javax.script.*;
+=======
+ import java.util.*;
+>>>>>>> other
  
  /**
+<<<<<<< local
 diff -Nru openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/RhinoWrapFactory.java openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoWrapFactory.java
 --- openjdk.orig/jdk/src/share/classes/com/sun/script/javascript/RhinoWrapFactory.java	2008-10-23 08:44:13.000000000 +0100
 +++ openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoWrapFactory.java	2008-10-27 23:00:47.000000000 +0000
+=======
+--- openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoWrapFactory.java.orig	2008-11-25 09:02:56.000000000 +0000
++++ openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoWrapFactory.java	2008-12-03 21:13:14.000000000 +0000
+>>>>>>> other
 @@ -27,7 +27,7 @@
  
  import java.lang.reflect.*;
@@ -160,3 +264,17 @@
  
  /**
   * This wrap factory is used for security reasons. JSR 223 script
+<<<<<<< local
+=======
+--- openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoCompiledScript.java.orig	2008-11-25 09:02:56.000000000 +0000
++++ openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoCompiledScript.java	2008-12-03 21:13:05.000000000 +0000
+@@ -25,7 +25,7 @@
+ 
+ package com.sun.script.javascript;
+ import javax.script.*;
+-import sun.org.mozilla.javascript.internal.*;
++import org.mozilla.javascript.*;
+ 
+ /**
+  * Represents compiled JavaScript code.
+>>>>>>> other
--- a/patches/icedtea-samejvm-safe.patch	Mon Jan 19 02:29:32 2009 +0000
+++ b/patches/icedtea-samejvm-safe.patch	Tue Jan 20 00:26:05 2009 +0000
@@ -9,4 +9,4 @@
 +# -samejvm mode. Only used if the test root (dir containing this file) is
 +# given to jtreg and the -samejvm argument is used, ignored otherwise
 +# (meaning all tests are assumed to be same jvm safe).
-+samejvmsafe=com/sun/crypto com/sun/management com/sun/media com/sun/security java/beans/beancontext java/beans/PropertyChangeSupport java/beans/Statement java/beans/VetoableChangeSupport java/lang/Boolean java/lang/Byte java/lang/Double java/lang/Float java/lang/Integer java/lang/Long java/lang/Short java/lang/Math java/lang/StrictMath java/lang/String java/lang/Throwable java/lang/instrument java/math java/net/URI java/net/URLDecoder java/net/URLEncoder java/nio/Buffer java/nio/ByteOrder java/nio/MappedByteBuffer java/nio/channels/Channels java/nio/channels/DatagramChannel java/nio/channels/spi java/security/cert java/security/Provider java/text java/util/jar java/util/zip java/util/Array java/util/BitSet java/util/Collection java/util/List javax/crypto/Cipher javax/imageio javax/management/openmbean javax/naming javax/rmi javax/sound sun/net/www/protocol sun/misc sun/nio sun/rmi sun/security/pkcs11 sun/security/rsa sun/security/util sun/security/x509 sun/util
++samejvmsafe=com/sun/crypto com/sun/management com/sun/media com/sun/security java/beans/beancontext java/beans/PropertyChangeSupport java/beans/Statement java/beans/VetoableChangeSupport java/lang/Boolean java/lang/Byte java/lang/Double java/lang/Float java/lang/Integer java/lang/Long java/lang/Short java/lang/Math java/lang/StrictMath java/lang/String java/lang/Throwable java/lang/instrument java/math java/net/URI java/net/URLDecoder java/net/URLEncoder java/nio/Buffer java/nio/ByteOrder java/nio/MappedByteBuffer java/nio/channels/Channels java/nio/channels/DatagramChannel java/nio/channels/spi java/security/cert java/security/Provider java/text java/util/jar java/util/zip java/util/Array java/util/BitSet java/util/Collection java/util/List javax/imageio javax/management/openmbean javax/rmi javax/sound sun/net/www/protocol sun/misc sun/nio sun/security/pkcs11 sun/security/rsa sun/util
--- a/patches/icedtea-uname.patch	Mon Jan 19 02:29:32 2009 +0000
+++ b/patches/icedtea-uname.patch	Tue Jan 20 00:26:05 2009 +0000
@@ -5,7 +5,7 @@
    # Arch and OS name/version
    mach := $(shell uname -m)
 +  ifneq (,$(wildcard /usr/bin/dpkg-architecture))
-+    mach := $(shell (dpkg-architecture -qDEB_BUILD_ARCH_CPU 2>/dev/null || echo $(mach)) | sed 's/powerpc$$/ppc/')
++    mach := $(shell (dpkg-architecture -qDEB_BUILD_ARCH_CPU 2>/dev/null || echo $(mach)) | sed 's/powerpc$$/ppc/;s/hppa/parisc/')
 +  endif
    archExpr = case "$(mach)" in \
                  i[3-9]86) \
@@ -27,7 +27,7 @@
    # Arch and OS name/version
    mach := $(shell uname -m)
 +  ifneq (,$(wildcard /usr/bin/dpkg-architecture))
-+    mach := $(shell (dpkg-architecture -qDEB_BUILD_ARCH_CPU 2>/dev/null || echo $(mach)) | sed 's/powerpc$$/ppc/')
++    mach := $(shell (dpkg-architecture -qDEB_BUILD_ARCH_CPU 2>/dev/null || echo $(mach)) | sed 's/powerpc$$/ppc/;s/hppa/parisc/')
 +  endif
    archExpr = case "$(mach)" in \
                  i[3-9]86) \
--- a/patches/icedtea-zero.patch	Mon Jan 19 02:29:32 2009 +0000
+++ b/patches/icedtea-zero.patch	Tue Jan 20 00:26:05 2009 +0000
@@ -22,7 +22,7 @@
 +    {EM_ALPHA,       EM_ALPHA,   ELFCLASS64, ELFDATA2LSB, (char*)"Alpha"},
 +    {EM_MIPS_RS3_LE, EM_MIPS_RS3_LE, ELFCLASS32, ELFDATA2LSB, (char*)"MIPSel"},
 +    {EM_MIPS,        EM_MIPS,    ELFCLASS32, ELFDATA2MSB, (char*)"MIPS"},
-+    {EM_PARISC,      EM_PARISC,  ELFCLASS32, ELFDATA2MSB, (char*)"HPPA"},
++    {EM_PARISC,      EM_PARISC,  ELFCLASS32, ELFDATA2MSB, (char*)"PARISC"},
 +    {EM_68K,         EM_68K,     ELFCLASS32, ELFDATA2MSB, (char*)"M68k"}
    };
  
@@ -39,7 +39,7 @@
 +    static  Elf32_Half running_arch_code=EM_ALPHA;
 +  #elif  (defined MIPSEL)
 +    static  Elf32_Half running_arch_code=EM_MIPS_RS3_LE;
-+  #elif  (defined HPPA)
++  #elif  (defined PARISC)
 +    static  Elf32_Half running_arch_code=EM_PARISC;
 +  #elif  (defined MIPS)
 +    static  Elf32_Half running_arch_code=EM_MIPS;
@@ -48,7 +48,7 @@
    #else
      #error Method os::dll_load requires that one of following is defined:\
 -         IA32, AMD64, IA64, __sparc, __powerpc__
-+         IA32, AMD64, IA64, __sparc, __powerpc__, ARM, S390, ALPHA, MIPS, MIPSEL, HPPA, M68K
++         IA32, AMD64, IA64, __sparc, __powerpc__, ARM, S390, ALPHA, MIPS, MIPSEL, PARISC, M68K
    #endif
  
    // Identify compatability class for VM's architecture and library's architecture
--- a/plugin/icedtea/netscape/javascript/JSObject.java	Mon Jan 19 02:29:32 2009 +0000
+++ b/plugin/icedtea/netscape/javascript/JSObject.java	Tue Jan 20 00:26:05 2009 +0000
@@ -188,9 +188,9 @@
     	if (args == null)
     		args = new Object[0];
 
-        System.err.print ("JSObject.call " + methodName);
+    	PluginDebug.debug ("JSObject.call " + methodName);
         for (int i = 0; i < args.length; i++)
-            System.err.print (" " + args[i]);
+            PluginDebug.debug (" " + args[i]);
         PluginDebug.debug("");
         return PluginAppletViewer.call(internal, methodName, args);
     }
--- a/plugin/icedtea/sun/applet/PluginAppletViewer.java	Mon Jan 19 02:29:32 2009 +0000
+++ b/plugin/icedtea/sun/applet/PluginAppletViewer.java	Tue Jan 20 00:26:05 2009 +0000
@@ -649,7 +649,6 @@
       * Get an applet by name.
       */
      public Applet getApplet(String name) {
- 	AppletSecurity security = (AppletSecurity)System.getSecurityManager();
  	name = name.toLowerCase();
  	SocketPermission panelSp =
  	    new SocketPermission(panel.getCodeBase().getHost(), "connect");
--- a/ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp	Mon Jan 19 02:29:32 2009 +0000
+++ b/ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp	Tue Jan 20 00:26:05 2009 +0000
@@ -156,6 +156,9 @@
       assert(HAS_PENDING_EXCEPTION, "should do");
       break;
     }
+    else {
+      ShouldNotReachHere();
+    }
   }
 
  unwind_and_return:
--- a/ports/hotspot/src/cpu/zero/vm/disassembler_zero.cpp	Mon Jan 19 02:29:32 2009 +0000
+++ b/ports/hotspot/src/cpu/zero/vm/disassembler_zero.cpp	Tue Jan 20 00:26:05 2009 +0000
@@ -26,25 +26,3 @@
 #include "incls/_precompiled.incl"
 #include "incls/_disassembler_zero.cpp.incl"
 
-#ifndef PRODUCT
-void Disassembler::decode(CodeBlob *cb, outputStream *st)
-{
-  Unimplemented();
-}
-
-void Disassembler::decode(nmethod *nm, outputStream *st)
-{
-#ifdef SHARK
-  assert(st == NULL, "it's all going to stderr anyway");
-  ((SharkEntry *) nm->instructions_begin())->llvm_function()->dump();
-#else
-  Unimplemented();
-#endif // SHARK
-}
-
-void Disassembler::decode(u_char *begin, u_char *end, outputStream *st)
-{
-  Unimplemented();
-}
-#endif // PRODUCT
-
--- a/ports/hotspot/src/cpu/zero/vm/globals_zero.hpp	Mon Jan 19 02:29:32 2009 +0000
+++ b/ports/hotspot/src/cpu/zero/vm/globals_zero.hpp	Tue Jan 20 00:26:05 2009 +0000
@@ -1,6 +1,6 @@
 /*
  * Copyright 2000-2006 Sun Microsystems, Inc.  All Rights Reserved.
- * Copyright 2007 Red Hat, Inc.
+ * Copyright 2007, 2008, 2009 Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -28,27 +28,27 @@
 // runtime system.  See globals.hpp for details of what they do.
 //
 
-define_pd_global(bool,  ConvertSleepToYield,      true);
-define_pd_global(bool,  ShareVtableStubs,         true);
-define_pd_global(bool,  CountInterpCalls,         true);
-define_pd_global(bool,  NeedsDeoptSuspend,        false);
+define_pd_global(bool,  ConvertSleepToYield,  true);
+define_pd_global(bool,  ShareVtableStubs,     true);
+define_pd_global(bool,  CountInterpCalls,     true);
+define_pd_global(bool,  NeedsDeoptSuspend,    false);
 
-define_pd_global(bool,  ImplicitNullChecks,       true);
-define_pd_global(bool,  UncommonNullCast,         true);
+define_pd_global(bool,  ImplicitNullChecks,   true);
+define_pd_global(bool,  UncommonNullCast,     true);
 
-define_pd_global(intx,  CodeEntryAlignment,       32);
-define_pd_global(uintx, TLABSize,                 0);
+define_pd_global(intx,  CodeEntryAlignment,   32);
+define_pd_global(uintx, TLABSize,             0);
 #ifdef _LP64
-define_pd_global(uintx, NewSize, ScaleForWordSize(2048 * K));
+define_pd_global(uintx, NewSize,              ScaleForWordSize(2048 * K));
 #else
-define_pd_global(uintx, NewSize, ScaleForWordSize(1024 * K));
+define_pd_global(uintx, NewSize,              ScaleForWordSize(1024 * K));
 #endif // _LP64
-define_pd_global(intx,  InlineFrequencyCount,     100);
-define_pd_global(intx,  PreInflateSpin,           10);
+define_pd_global(intx,  InlineFrequencyCount, 100);
+define_pd_global(intx,  PreInflateSpin,       10);
 
-define_pd_global(intx,  StackYellowPages,         2);
-define_pd_global(intx,  StackRedPages,            1);
-define_pd_global(intx,  StackShadowPages,         3 DEBUG_ONLY(+3));
+define_pd_global(intx,  StackYellowPages,     2);
+define_pd_global(intx,  StackRedPages,        1);
+define_pd_global(intx,  StackShadowPages,     3 LP64_ONLY(+3) DEBUG_ONLY(+3));
 
-define_pd_global(bool,  RewriteBytecodes,         true);
-define_pd_global(bool,  RewriteFrequentPairs,     true);
+define_pd_global(bool,  RewriteBytecodes,     true);
+define_pd_global(bool,  RewriteFrequentPairs, true);
--- a/ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp	Mon Jan 19 02:29:32 2009 +0000
+++ b/ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp	Tue Jan 20 00:26:05 2009 +0000
@@ -388,7 +388,18 @@
 
   void _Copy_conjoint_jshorts_atomic(jshort* from, jshort* to, size_t count)
   {
-    Unimplemented();
+    if (from > to) {
+      jshort *end = from + count;
+      while (from < end)
+        *(to++) = *(from++);
+    }
+    else if (from < to) {
+      jshort *end = from;
+      from += count - 1;
+      to   += count - 1;
+      while (from >= end)
+        *(to--) = *(from--);
+    }
   }
   void _Copy_conjoint_jints_atomic(jint* from, jint* to, size_t count)
   {
--- a/ports/hotspot/src/share/vm/shark/sharkBlock.cpp	Mon Jan 19 02:29:32 2009 +0000
+++ b/ports/hotspot/src/share/vm/shark/sharkBlock.cpp	Tue Jan 20 00:26:05 2009 +0000
@@ -105,6 +105,8 @@
   builder()->SetInsertPoint(entry_block());
 
   if (has_trap()) {
+    iter()->force_bci(start());
+
     current_state()->decache_for_trap();
     builder()->CreateCall2(
       SharkRuntime::uncommon_trap(),
@@ -838,10 +840,12 @@
       do_if(ICmpInst::ICMP_NE, SharkValue::null(), pop());
       break;
     case Bytecodes::_if_acmpeq:
-      do_if(ICmpInst::ICMP_EQ, pop(), pop());
+      b = pop(); a = pop();
+      do_if(ICmpInst::ICMP_EQ, b, a);
       break;
     case Bytecodes::_if_acmpne:
-      do_if(ICmpInst::ICMP_NE, pop(), pop());
+      b = pop(); a = pop();
+      do_if(ICmpInst::ICMP_NE, b, a);
       break;
     case Bytecodes::_ifeq:
       do_if(ICmpInst::ICMP_EQ, SharkValue::jint_constant(0), pop());
@@ -862,22 +866,28 @@
       do_if(ICmpInst::ICMP_SGE, SharkValue::jint_constant(0), pop());
       break;
     case Bytecodes::_if_icmpeq:
-      do_if(ICmpInst::ICMP_EQ, pop(), pop());
+      b = pop(); a = pop();
+      do_if(ICmpInst::ICMP_EQ, b, a);
       break;
     case Bytecodes::_if_icmpne:
-      do_if(ICmpInst::ICMP_NE, pop(), pop());
+      b = pop(); a = pop();
+      do_if(ICmpInst::ICMP_NE, b, a);
       break;
     case Bytecodes::_if_icmplt:
-      do_if(ICmpInst::ICMP_SLT, pop(), pop());
+      b = pop(); a = pop();
+      do_if(ICmpInst::ICMP_SLT, b, a);
       break;
     case Bytecodes::_if_icmple:
-      do_if(ICmpInst::ICMP_SLE, pop(), pop());
+      b = pop(); a = pop();
+      do_if(ICmpInst::ICMP_SLE, b, a);
       break;
     case Bytecodes::_if_icmpgt:
-      do_if(ICmpInst::ICMP_SGT, pop(), pop());
+      b = pop(); a = pop();
+      do_if(ICmpInst::ICMP_SGT, b, a);
       break;
     case Bytecodes::_if_icmpge:
-      do_if(ICmpInst::ICMP_SGE, pop(), pop());
+      b = pop(); a = pop();
+      do_if(ICmpInst::ICMP_SGE, b, a);
       break;
 
     case Bytecodes::_tableswitch:
@@ -1226,10 +1236,11 @@
     SharkConstantPool constants(this);
 
     BasicBlock *resolved   = function()->CreateBlock("resolved");
+    BasicBlock *resolved_class = function()->CreateBlock("resolved_class");
     BasicBlock *unresolved = function()->CreateBlock("unresolved");
     BasicBlock *unknown    = function()->CreateBlock("unknown");
     BasicBlock *done       = function()->CreateBlock("done");
-    
+
     SwitchInst *switchinst = builder()->CreateSwitch(
       constants.tag_at(iter()->get_constant_index()),
       unknown, 5);
@@ -1237,7 +1248,7 @@
     switchinst->addCase(
       LLVMValue::jbyte_constant(JVM_CONSTANT_String), resolved);
     switchinst->addCase(
-      LLVMValue::jbyte_constant(JVM_CONSTANT_Class), resolved);
+      LLVMValue::jbyte_constant(JVM_CONSTANT_Class), resolved_class);
     switchinst->addCase(
       LLVMValue::jbyte_constant(JVM_CONSTANT_UnresolvedString), unresolved);
     switchinst->addCase(
@@ -1250,6 +1261,26 @@
     Value *resolved_value = constants.object_at(iter()->get_constant_index());
     builder()->CreateBr(done);
 
+    builder()->SetInsertPoint(resolved_class);
+    Value *resolved_class_value
+      = constants.object_at(iter()->get_constant_index());
+    resolved_class_value
+      = builder()->CreatePtrToInt(resolved_class_value,
+                                  SharkType::intptr_type());
+    resolved_class_value
+      = (builder()->CreateAdd
+         (resolved_class_value,
+          (LLVMValue::intptr_constant
+           (klassOopDesc::klass_part_offset_in_bytes()
+            + Klass::java_mirror_offset_in_bytes()))));
+    resolved_class_value
+      // FIXME: We need a memory barrier before this load.
+      = (builder()->CreateLoad
+         (builder()->CreateIntToPtr
+          (resolved_class_value,
+           PointerType::getUnqual(SharkType::jobject_type()))));
+    builder()->CreateBr(done);
+
     builder()->SetInsertPoint(unresolved);
     builder()->CreateUnimplemented(__FILE__, __LINE__);
     Value *unresolved_value = LLVMValue::null();
@@ -1262,6 +1293,7 @@
     builder()->SetInsertPoint(done);
     PHINode *phi = builder()->CreatePHI(SharkType::jobject_type(), "constant");
     phi->addIncoming(resolved_value, resolved);
+    phi->addIncoming(resolved_class_value, resolved_class);
     phi->addIncoming(unresolved_value, unresolved);
     value = SharkValue::create_jobject(phi);
   }
--- a/ports/hotspot/src/share/vm/shark/sharkBlock.hpp	Mon Jan 19 02:29:32 2009 +0000
+++ b/ports/hotspot/src/share/vm/shark/sharkBlock.hpp	Tue Jan 20 00:26:05 2009 +0000
@@ -78,7 +78,7 @@
   }
   bool is_private_copy() const
   {
-    return ciblock()->is_private_copy();
+    return ciblock()->is_backedge_copy();
   }
   int max_locals() const
   {
--- a/ports/hotspot/src/share/vm/shark/sharkBuilder.hpp	Mon Jan 19 02:29:32 2009 +0000
+++ b/ports/hotspot/src/share/vm/shark/sharkBuilder.hpp	Tue Jan 20 00:26:05 2009 +0000
@@ -104,7 +104,7 @@
     return CreateArrayAddress(
       arrayoop,
       SharkType::to_arrayType(basic_type),
-      type2aelembytes[basic_type],
+      type2aelembytes(basic_type),
       base_offset, index, name);
   }
 
--- a/ports/hotspot/src/share/vm/shark/sharkCompiler.cpp	Mon Jan 19 02:29:32 2009 +0000
+++ b/ports/hotspot/src/share/vm/shark/sharkCompiler.cpp	Tue Jan 20 00:26:05 2009 +0000
@@ -76,7 +76,8 @@
   if (env->failing())
     return;
   if (SharkPrintTypeflowOf != NULL) {
-    if (!strcmp(SharkPrintTypeflowOf, name))
+    if (!strcmp(SharkPrintTypeflowOf, name) ||
+	!strcmp(SharkPrintTypeflowOf, "*"))
       flow->print_on(tty);
   }
 
--- a/ports/hotspot/src/share/vm/shark/sharkFunction.cpp	Mon Jan 19 02:29:32 2009 +0000
+++ b/ports/hotspot/src/share/vm/shark/sharkFunction.cpp	Tue Jan 20 00:26:05 2009 +0000
@@ -42,8 +42,14 @@
   set_block_insertion_point(NULL);
   _blocks = NEW_RESOURCE_ARRAY(SharkBlock*, flow()->block_count());
   for (int i = 0; i < block_count(); i++)
-    _blocks[i] = new SharkBlock(this, flow()->pre_order_at(i));
-
+    {
+      ciTypeFlow::Block *b = flow()->pre_order_at(i);
+      // Work around a bug in pre_order_at() that does not return the
+      // correct pre-ordering.  If pre_order_at() were correct this
+      // line could simply be:
+      // _blocks[i] = new SharkBlock(this, b);
+      _blocks[b->pre_order()] = new SharkBlock(this, b);
+    }
   // Walk the tree from the start block to determine which
   // blocks are entered and which blocks require phis
   SharkBlock *start_block = block(0);
@@ -190,10 +196,6 @@
       builder()->CreateIntToPtr(
         fp, PointerType::getUnqual(SharkType::intptr_type()))));
 
-#ifdef _LP64
-  if (result_slots == 2)
-    return builder()->CreateAdd(sp, LLVMValue::jint_constant(wordSize));
-#endif // _LP64
   return sp;
 }