changeset 2645:380a9db76b36

Merge
author Andrew John Hughes <ahughes@redhat.com>
date Thu, 07 Jul 2011 13:14:02 +0100
parents 944778c61e3c (current diff) 23404f48955e (diff)
children d987bfbdfd8d
files ChangeLog patches/hotspot/hs20/7032388-work_without_cmov_instruction.patch patches/hotspot/hs20/7036220-shark_llvm_29_headers.patch patches/hotspot/hs20/arm.patch patches/hotspot/hs20/gcc-suffix.patch patches/hotspot/hs20/ia64-fix.patch patches/hotspot/hs20/params-cast-size_t.patch patches/hotspot/hs20/powerpc-stacksize.patch patches/hotspot/hs20/sparc-buildfixes.patch patches/hotspot/hs20/systemtap.patch patches/hotspot/hs20/text-relocations.patch patches/hotspot/original/7032388-work_without_cmov_instruction.patch patches/hotspot/original/arm.patch patches/hotspot/original/gcc-suffix.patch patches/hotspot/original/ia64-fix.patch patches/hotspot/original/no-precompiled-headers.patch patches/hotspot/original/params-cast-size_t.patch patches/hotspot/original/sparc-buildfixes.patch patches/hotspot/original/systemtap.patch patches/hotspot/original/text-relocations.patch patches/hotspot/original/too-many-args.patch patches/jaxp-serial-version-uid.patch patches/openjdk/6599601-mark_sun_toolkit_privileged_code.patch patches/openjdk/6768387-jtable_not_serializable.patch patches/openjdk/6997495-test_correction_6857159.patch patches/openjdk/7029905-demo_applet_html_files.patch patches/openjdk/7042040-no_disk_space_check.patch patches/security/20110215/6878713.patch patches/security/20110607/6213702.patch patches/security/20110607/6618658.patch patches/security/20110607/7012520.patch patches/security/20110607/7013519.patch patches/security/20110607/7013969.patch patches/security/20110607/7013971.patch patches/security/20110607/7016495.patch patches/security/20110607/7020198.patch patches/security/20110607/7020373.patch
diffstat 53 files changed, 1050 insertions(+), 3328 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Wed Jul 06 23:24:30 2011 +0100
+++ b/ChangeLog	Thu Jul 07 13:14:02 2011 +0100
@@ -32,6 +32,29 @@
 
 2011-07-06  Andrew John Hughes  <ahughes@redhat.com>
 
+	* patches/security/20110215/6878713.patch,
+	* patches/security/20110607/6213702.patch,
+	* patches/security/20110607/6618658.patch,
+	* patches/security/20110607/7012520.patch,
+	* patches/security/20110607/7013519.patch,
+	* patches/security/20110607/7013969.patch,
+	* patches/security/20110607/7013971.patch,
+	* patches/security/20110607/7016495.patch,
+	* patches/security/20110607/7020198.patch,
+	* patches/security/20110607/7020373.patch:
+	Removed; upstream.
+	* Makefile.am:
+	(JAXWS_DROP_ZIP): Updatede.
+	(JAXWS_DROP_SHA256SUM): Likewise.
+	(JAXP_DROP_ZIP): Likewise.
+	(JAXP_DROP_SHA256SUM): Likewise.
+	(SECURITY_PATCHES): Set to empty.
+	* patches/xjc.patch: Revert to pre-security
+	patch version (security patch is now part of the
+	tarball, not a patch)
+
+2011-07-06  Andrew John Hughes  <ahughes@redhat.com>
+
 	* overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/ImageFormatException.java,
 	* overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGCodec.java,
 	* overlays/jpeg/openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGDecodeParam.java,
@@ -526,6 +549,54 @@
 	make the test compatible with OpenJDK7/IcedTea7, disabling printing
 	unnecessary information to error output.
 
+2011-05-18  Andrew John Hughes  <ahughes@redhat.com>
+
+	* patches/hotspot/hs20/7032388-work_without_cmov_instruction.patch,
+	* patches/hotspot/hs20/arm.patch,
+	* patches/hotspot/hs20/gcc-suffix.patch,
+	* patches/hotspot/hs20/ia64-fix.patch,
+	* patches/hotspot/hs20/params-cast-size_t.patch,
+	* patches/hotspot/hs20/powerpc-stacksize.patch,
+	* patches/hotspot/hs20/sparc-buildfixes.patch,
+	* patches/hotspot/hs20/systemtap.patch,
+	* patches/hotspot/hs20/text-relocations.patch:
+	Moved to main tree.
+	* patches/hotspot/original/7032388-work_without_cmov_instruction.patch,
+	* patches/hotspot/original/arm.patch,
+	* patches/hotspot/original/gcc-suffix.patch,
+	* patches/hotspot/original/ia64-fix.patch,
+	* patches/hotspot/original/no-precompiled-headers.patch,
+	* patches/hotspot/original/params-cast-size_t.patch,
+	* patches/hotspot/original/sparc-buildfixes.patch,
+	* patches/hotspot/original/systemtap.patch,
+	* patches/hotspot/original/text-relocations.patch,
+	* patches/hotspot/original/too-many-args.patch:
+	Dropped; hs19 no longer supported.
+	* patches/openjdk/6599601-mark_sun_toolkit_privileged_code.patch,
+	* patches/openjdk/6997495-test_correction_6857159.patch,
+	* patches/openjdk/7029905-demo_applet_html_files.patch,
+	* patches/openjdk/7042040-no_disk_space_check.patch:
+	Removed; upstream in OpenJDK6.
+	* INSTALL: Update HotSpot documentation.
+	* Makefile.am:
+	(ICEDTEA_PATCHES): Updated.
+	* acinclude.m4:
+	(IT_WITH_HOTSPOT_BUILD): Set default back to original.
+	* hotspot.map: Remove hs19.
+	* patches/arm.patch,
+	* patches/gcc-suffix.patch,
+	* patches/ia64-fix.patch:
+	Extended with HotSpot segments from hotspot/hs20.
+	* patches/openjdk/6633275-shaped_translucent_windows.patch:
+	Recreated due to copyright header change in Component.java.
+	* patches/openjdk/7032388-work_without_cmov_instruction.patch,
+	* patches/params-cast-size_t.patch,
+	* patches/powerpc-stacksize.patch,
+	* patches/sparc-buildfixes.patch,
+	* patches/systemtap.patch,
+	* patches/text-relocations.patch:
+	Moved from hotspot/hs20.
+
 2011-05-17  Denis Lila <dlila@redhat.com>
 
 	* Makefile.am: Apply patch.
@@ -830,6 +901,12 @@
 
 2011-03-31  Andrew John Hughes  <ahughes@redhat.com>
 
+	* patches/jaxp-serial-version-uid.patch,
+	* patches/openjdk/6768387-jtable_not_serializable.patch:
+	Dropped, upstream.
+
+2011-03-31  Andrew John Hughes  <ahughes@redhat.com>
+
 	S7032388, PR682: Make HotSpot work on machines without
 	cmov instruction again
 	* Makefile.am: Add new patch.
@@ -849,6 +926,13 @@
 2011-03-31  Andrew John Hughes  <ahughes@redhat.com>
 
 	* Makefile.am:
+	(JAXP_DROP_ZIP): Update.
+	(JAXP_DROP_SHA256SUM): Likewise.
+	(ICEDTEA_PATCHES): Drop above.
+
+2011-03-31  Andrew John Hughes  <ahughes@redhat.com>
+
+	* Makefile.am:
 	Revert broken changes in
 	478d3f5f6a59409078b1adcfba24150158b92695
 	(.PHONY): Remove jtregcheck-summary.
@@ -1087,6 +1171,11 @@
 
 2011-03-03  Andrew John Hughes  <ahughes@redhat.com>
 
+	* Makefile.am:
+	Bump to b23.
+
+2011-03-03  Andrew John Hughes  <ahughes@redhat.com>
+
 	* INSTALL: Update documentation
 	to match current settings.
 	* NEWS: Mention change to hs20.
--- a/INSTALL	Wed Jul 06 23:24:30 2011 +0100
+++ b/INSTALL	Thu Jul 07 13:14:02 2011 +0100
@@ -318,16 +318,13 @@
 download stage and just verifies that the zip's MD5 sum matches that
 of the requested build.
 
-At present, IcedTea6 supports the 'original' HotSpot 19 provided as
-part of the upstream tarball and HotSpot 20 ('hs20') from the stable
-hs20 tree at http://hg.openjdk.java.net/hsx/hsx20/master.  The default
-is 'hs20' which will use the version of hs20 specified in hotspot.map.
-Note that the norm. is for up to one alternate (non-default) build to
-be supported and just passing --with-hotspot-build (equivalent to
---with-hotspot-build=yes) will always provide the alternate build
-(currently hs20).  Conversely, passing --without-hotspot-build
-(equivalent to --with-hotspot-build=no) provides the original build
-from the OpenJDK tarball (currently hs19).
+At present, IcedTea6 supports the 'original' HotSpot 20 provided as
+part of the upstream tarball.  Note that the norm. is for up to one
+alternate (non-default) build to be supported and just passing
+--with-hotspot-build (equivalent to --with-hotspot-build=yes) will
+always provide the alternate build.  Conversely, passing
+--without-hotspot-build (equivalent to --with-hotspot-build=no)
+provides the original build from the OpenJDK tarball.
 
 Javascript Support
 ==================
--- a/Makefile.am	Wed Jul 06 23:24:30 2011 +0100
+++ b/Makefile.am	Thu Jul 07 13:14:02 2011 +0100
@@ -2,7 +2,7 @@
 
 OPENJDK_DATE = 28_feb_2011
 OPENJDK_MD5SUM = 2d2bbbb0f9b81f1fec41ec730da8a933
-OPENJDK_VERSION = b22
+OPENJDK_VERSION = b23
 OPENJDK_URL = http://download.java.net/openjdk/jdk6/promoted/$(OPENJDK_VERSION)/
 
 CACAO_VERSION = d6264eb66506
@@ -18,15 +18,14 @@
 JAMVM_SRC_ZIP = jamvm-$(JAMVM_VERSION).tar.gz
 
 JAXWS_DROP_URL = http://icedtea.classpath.org/download/drops
-JAXWS_DROP_ZIP = jdk6-jaxws-b20.zip
-JAXWS_DROP_SHA256SUM = 0c460583898b968a58bf88eb53f90a0e34369e2562d65fb3a143512dfcaeb3eb
+JAXWS_DROP_ZIP = jdk6-jaxws2_1_6-2011_06_08.zip
+JAXWS_DROP_SHA256SUM = be95ff0ae05b474d0bbb3ad8bdb2a23f20cb8c48b1a21f16aa079e43a50c057f
 JAF_DROP_URL = http://icedtea.classpath.org/download/drops
 JAF_DROP_ZIP = jdk6-jaf-b20.zip
 JAF_DROP_SHA256SUM = 78c7b5c9d6271e88ee46abadd018a61f1e9645f8936cc8df1617e5f4f5074012
 JAXP_DROP_URL = http://icedtea.classpath.org/download/drops
-JAXP_DROP_ZIP = jaxp144_01.zip
-JAXP_DROP_SHA256SUM = d72c2e27a479e7e78e0141cfcf3a9c5dbc5677495bd21b2d52dce85d21322186
-
+JAXP_DROP_ZIP = jaxp144_03.zip
+JAXP_DROP_SHA256SUM = c1a5348e17b330a7e4b18431e61a40efd2ba99a7da71102cf2c604478ef96012
 OPENJDK_HG_URL = http://hg.openjdk.java.net/jdk6/jdk6
 
 HOTSPOT_SRC_ZIP = hotspot.tar.gz
@@ -186,20 +185,7 @@
 
 ICEDTEA_FSG_PATCHES =
 
-SECURITY_PATCHES = patches/security/20110607/6213702.patch \
-	patches/security/20110607/6618658.patch \
-	patches/security/20110607/7012520.patch \
-	patches/security/20110607/7013519.patch \
-	patches/security/20110607/7013969.patch \
-	patches/security/20110607/7013971.patch \
-	patches/security/20110607/7016495.patch \
-	patches/security/20110607/7020198.patch \
-	patches/security/20110607/7020373.patch
-
-if WITH_ALT_HSBUILD
-SECURITY_PATCHES += \
-	patches/security/20110215/6878713.patch
-endif
+SECURITY_PATCHES =
 
 ICEDTEA_PATCHES = \
 	$(SECURITY_PATCHES) \
@@ -228,12 +214,11 @@
 	patches/lucene-crash.patch \
 	patches/version.patch \
 	patches/version-hotspot.patch \
-	patches/hotspot/$(HSBUILD)/text-relocations.patch \
+	patches/text-relocations.patch \
 	patches/openjdk/7043921-java_rmi_cgi.patch \
 	patches/use-system-tzdata.patch \
 	patches/headers.patch \
 	patches/gcc-suffix.patch \
-	patches/hotspot/$(HSBUILD)/gcc-suffix.patch \
 	patches/memory-limits.patch \
 	patches/libraries.patch \
 	patches/jvmtiEnv.patch \
@@ -248,7 +233,7 @@
 	patches/alt-jar.patch \
 	patches/jdk-use-ssize_t.patch \
 	patches/use-idx_t.patch \
-	patches/hotspot/$(HSBUILD)/params-cast-size_t.patch \
+	patches/params-cast-size_t.patch \
 	patches/clean-crypto.patch \
 	patches/arch.patch \
 	patches/lc_ctype.patch \
@@ -257,11 +242,10 @@
 	patches/testenv.patch \
 	patches/samejvm-safe.patch \
 	patches/pr261.patch \
-	patches/hotspot/$(HSBUILD)/sparc-buildfixes.patch \
+	patches/sparc-buildfixes.patch \
 	patches/sparc64-linux.patch \
 	patches/sparc-ptracefix.patch \
 	patches/sparc-trapsfix.patch \
-	patches/openjdk/7029905-demo_applet_html_files.patch \
 	patches/jtreg-6592792.patch \
 	patches/s390-noinline.patch \
 	patches/jtreg-dnd.patch \
@@ -279,9 +263,7 @@
 	patches/applet_hole.patch \
 	patches/jtreg-httpTest.patch \
 	patches/arm.patch \
-	patches/hotspot/$(HSBUILD)/arm.patch \
 	patches/debug-dir.patch \
-	patches/openjdk/7042040-no_disk_space_check.patch \
 	patches/override-redirect-metacity.patch \
 	patches/openjdk/6967533-pre_epoch.patch \
 	patches/fonts-rhel.patch \
@@ -302,7 +284,7 @@
 	patches/openjdk/6800846-printing-quality.patch \
 	patches/rh661505-jpeg.patch \
 	patches/6703377-freetypescaler.patch \
-	patches/hotspot/$(HSBUILD)/ia64-fix.patch \
+	patches/ia64-fix.patch \
 	patches/openjdk/6642612-filechooser_button_sizes.patch \
 	patches/jtreg-international-fonts-styles.patch \
 	patches/openjdk/6736649-text_bearings.patch \
@@ -332,17 +314,14 @@
 	patches/openjdk/6766342-AA-simple-shape-performance.patch \
 	patches/openjdk/7016856-pisces-performance.patch \
 	patches/openjdk/6934977-MappedByteBuffer.load.patch \
-	patches/jaxp-serial-version-uid.patch \
 	patches/jtreg-hotspot-bug-6196102.patch \
 	patches/jtreg-double-to-string.patch \
 	patches/openjdk/7023591-AAShapePipe.patch \
 	patches/openjdk/7027667-AAShapePipeRegTest.patch \
 	patches/openjdk/7019861-AA-regression-fix.patch \
-	patches/openjdk/6768387-jtable_not_serializable.patch \
-	patches/openjdk/6599601-mark_sun_toolkit_privileged_code.patch \
 	patches/g356743-libpng-1.5.patch \
 	patches/revert-6885123.patch \
-	patches/hotspot/$(HSBUILD)/7032388-work_without_cmov_instruction.patch \
+	patches/openjdk/7032388-work_without_cmov_instruction.patch \
 	patches/openjdk/7031385-gcc-register-allocation-fix.patch \
 	patches/openjdk/6986968-crash_on_xim_restart.patch \
 	patches/openjdk/7036754-stroker-nan.patch \
@@ -375,21 +354,12 @@
 	patches/openjdk/6796786-invalid_FP_identity_transform.patch \
 	patches/openjdk/7042070-Typo_in_Test6796786.patch \
 	patches/openjdk/6679308-Poor_text_rendering_on_translucent_image.patch
-
-if WITH_ALT_HSBUILD
-ICEDTEA_PATCHES += \
 	patches/pr639-broken_shark_build.patch \
-	patches/hotspot/$(HSBUILD)/powerpc-stacksize.patch \
+	patches/powerpc-stacksize.patch \
 	patches/jtreg-remove-test-6987555.patch \
 	patches/jtreg-remove-test-6991596.patch \
-	patches/hotspot/$(HSBUILD)/7036220-shark_llvm_29_headers.patch \
+	patches/openjdk/7036220-shark_llvm_29_headers.patch \
 	patches/openjdk/7029152-String_intrinsics_miss_optimization.patch
-else
-ICEDTEA_PATCHES += \
-	patches/hotspot/$(HSBUILD)/no-precompiled-headers.patch \
-	patches/hotspot/$(HSBUILD)/too-many-args.patch \
-	patches/openjdk/6997495-test_correction_6857159.patch
-endif
 
 if WITH_RHINO
 ICEDTEA_PATCHES += \
@@ -426,7 +396,6 @@
 
 if ENABLE_SYSTEMTAP
 ICEDTEA_PATCHES += patches/systemtap.patch \
-	patches/hotspot/$(HSBUILD)/systemtap.patch \
 	patches/systemtap-gcc-4.5.patch \
 	patches/systemtap-alloc-size-workaround.patch
 endif
--- a/acinclude.m4	Wed Jul 06 23:24:30 2011 +0100
+++ b/acinclude.m4	Thu Jul 07 13:14:02 2011 +0100
@@ -1081,8 +1081,8 @@
 AC_DEFUN([IT_WITH_HOTSPOT_BUILD],
 [
   ORIGINAL_BUILD="original"
-  ALTERNATE_BUILD="hs20"
-  DEFAULT_BUILD=${ALTERNATE_BUILD}
+  ALTERNATE_BUILD="original"
+  DEFAULT_BUILD=${ORIGINAL_BUILD}
   AC_MSG_CHECKING([which HotSpot build to use])
   AC_ARG_WITH([hotspot-build],
 	      [AS_HELP_STRING(--with-hotspot-build,the HotSpot build to use (see hotspot.map))],
--- a/hotspot.map	Wed Jul 06 23:24:30 2011 +0100
+++ b/hotspot.map	Thu Jul 07 13:14:02 2011 +0100
@@ -1,2 +1,1 @@
 # version url changeset md5sum
-hs20 http://hg.openjdk.java.net/hsx/hsx20/master f0f676c5a2c6 369ad745bf697d525d1a00fc09906829
--- a/patches/arm.patch	Wed Jul 06 23:24:30 2011 +0100
+++ b/patches/arm.patch	Thu Jul 07 13:14:02 2011 +0100
@@ -164,3 +164,60 @@
    Thread* t = ThreadLocalStorage::get_thread_slow();
  
    SignalHandlerMark shm(t);
+diff -Nru openjdk.orig/hotspot/src/cpu/zero/vm/bytecodes_zero.hpp openjdk/hotspot/src/cpu/zero/vm/bytecodes_zero.hpp
+--- openjdk.orig/hotspot/src/cpu/zero/vm/bytecodes_zero.hpp	2011-01-25 22:57:24.000000000 +0000
++++ openjdk/hotspot/src/cpu/zero/vm/bytecodes_zero.hpp	2011-01-28 01:46:18.769782690 +0000
+@@ -1,6 +1,7 @@
+ /*
+  * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+  * Copyright 2009 Red Hat, Inc.
++ * Copyright 2009 Edward Nevill
+  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+  *
+  * This code is free software; you can redistribute it and/or modify it
+@@ -26,6 +27,44 @@
+ #ifndef CPU_ZERO_VM_BYTECODES_ZERO_HPP
+ #define CPU_ZERO_VM_BYTECODES_ZERO_HPP
+ 
+-// This file is intentionally empty
++#ifdef HOTSPOT_ASM
++#define _iaccess_0      ((Bytecodes::Code)0xdb)
++#define _iaccess_1      ((Bytecodes::Code)0xdc)
++#define _iaccess_2      ((Bytecodes::Code)0xdd)
++#define _iaccess_3      ((Bytecodes::Code)0xde)
++
++#define _invokeresolved         ((Bytecodes::Code)0xdf)
++#define _invokespecialresolved  ((Bytecodes::Code)0xe0)
++#define _invokestaticresolved   ((Bytecodes::Code)0xe1)
++
++#define _iload_iload    ((Bytecodes::Code)0xe3)
++#define _iload_iload_N  ((Bytecodes::Code)0xe4)
++
++#define _dmac           ((Bytecodes::Code)0xe6)
++
++        _iload_0_iconst_N       ,       // 231
++        _iload_1_iconst_N       ,       // 232
++        _iload_2_iconst_N       ,       // 233
++        _iload_3_iconst_N       ,       // 234
++        _iload_iconst_N         ,       // 235
++        _iadd_istore_N          ,       // 236
++        _isub_istore_N          ,       // 237
++        _iand_istore_N          ,       // 238
++        _ior_istore_N           ,       // 239
++        _ixor_istore_N          ,       // 240
++        _iadd_u4store           ,       // 241
++        _isub_u4store           ,       // 242
++        _iand_u4store           ,       // 243
++        _ior_u4store            ,       // 244
++        _ixor_u4store           ,       // 245
++        _iload_0_iload          ,       // 246
++        _iload_1_iload          ,       // 247
++        _iload_2_iload          ,       // 248
++        _iload_3_iload          ,       // 249
++        _iload_0_iload_N        ,       // 250
++        _iload_1_iload_N        ,       // 251
++        _iload_2_iload_N        ,       // 252
++        _iload_3_iload_N        ,       // 253
++#endif // HOTSPOT_ASM
+ 
+ #endif // CPU_ZERO_VM_BYTECODES_ZERO_HPP
--- a/patches/gcc-suffix.patch	Wed Jul 06 23:24:30 2011 +0100
+++ b/patches/gcc-suffix.patch	Thu Jul 07 13:14:02 2011 +0100
@@ -46,3 +46,34 @@
    endif
    ifneq ("$(findstring sparc,$(ARCH))", "")
      # sparc or sparcv9
+diff -Nru openjdk.orig/hotspot/agent/src/os/linux/Makefile openjdk/hotspot/agent/src/os/linux/Makefile
+--- openjdk.orig/hotspot/agent/src/os/linux/Makefile	2011-01-25 22:57:24.000000000 +0000
++++ openjdk/hotspot/agent/src/os/linux/Makefile	2011-01-28 00:43:20.632487152 +0000
+@@ -23,7 +23,7 @@
+ #
+ 
+ ARCH := $(shell if ([ `uname -m` = "ia64" ])  ; then echo ia64 ; elif ([ `uname -m` = "x86_64" ]) ; then echo amd64; elif ([ `uname -m` = "sparc64" ]) ; then echo sparc; else echo i386 ; fi )
+-GCC      = gcc
++GCC      = gcc$(GCC_SUFFIX)
+ 
+ JAVAH    = ${JAVA_HOME}/bin/javah
+ 
+diff -Nru openjdk.orig/hotspot/make/linux/makefiles/gcc.make openjdk/hotspot/make/linux/makefiles/gcc.make
+--- openjdk.orig/hotspot/make/linux/makefiles/gcc.make	2011-01-28 00:35:53.000000000 +0000
++++ openjdk/hotspot/make/linux/makefiles/gcc.make	2011-01-28 00:43:56.676866099 +0000
+@@ -28,11 +28,11 @@
+ # When cross-compiling the ALT_COMPILER_PATH points
+ # to the cross-compilation toolset
+ ifdef CROSS_COMPILE_ARCH
+-CPP = $(ALT_COMPILER_PATH)/g++
+-CC  = $(ALT_COMPILER_PATH)/gcc
++CPP = $(ALT_COMPILER_PATH)/g++$(GCC_SUFFIX)
++CC  = $(ALT_COMPILER_PATH)/gcc$(GCC_SUFFIX)
+ else
+-CPP = g++
+-CC  = gcc
++CPP = g++$(GCC_SUFFIX)
++CC  = gcc$(GCC_SUFFIX)
+ endif
+ 
+ AS  = $(CC) -c
--- a/patches/hotspot/hs20/7032388-work_without_cmov_instruction.patch	Wed Jul 06 23:24:30 2011 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,178 +0,0 @@
---- openjdk/hotspot/src/cpu/x86/vm/assembler_x86.cpp	2011-03-30 11:31:16.408872134 -0700
-+++ openjdk/hotspot/src/cpu/x86/vm/assembler_x86.cpp	2011-03-30 11:31:16.084614406 -0700
-@@ -7769,6 +7769,28 @@
-   }
- }
- 
-+void MacroAssembler::cmov32(Condition cc, Register dst, Address src) {
-+  if (VM_Version::supports_cmov()) {
-+    cmovl(cc, dst, src);
-+  } else {
-+    Label L;
-+    jccb(negate_condition(cc), L);
-+    movl(dst, src);
-+    bind(L);
-+  }
-+}
-+
-+void MacroAssembler::cmov32(Condition cc, Register dst, Register src) {
-+  if (VM_Version::supports_cmov()) {
-+    cmovl(cc, dst, src);
-+  } else {
-+    Label L;
-+    jccb(negate_condition(cc), L);
-+    movl(dst, src);
-+    bind(L);
-+  }
-+}
-+
- void MacroAssembler::verify_oop(Register reg, const char* s) {
-   if (!VerifyOops) return;
- 
-@@ -9019,14 +9041,7 @@
-   movl(result, cnt1);
-   subl(cnt1, cnt2);
-   push(cnt1);
--  if (VM_Version::supports_cmov()) {
--    cmovl(Assembler::lessEqual, cnt2, result);
--  } else {
--    Label GT_LABEL;
--    jccb(Assembler::greater, GT_LABEL);
--    movl(cnt2, result);
--    bind(GT_LABEL);
--  }
-+  cmov32(Assembler::lessEqual, cnt2, result);
- 
-   // Is the minimum length zero?
-   testl(cnt2, cnt2);
---- openjdk/hotspot/src/cpu/x86/vm/assembler_x86.hpp	2011-03-30 11:31:17.757655562 -0700
-+++ openjdk/hotspot/src/cpu/x86/vm/assembler_x86.hpp	2011-03-30 11:31:17.553920606 -0700
-@@ -2244,10 +2244,13 @@
- 
-   // Data
- 
--  void cmov(Condition cc, Register dst, Register src) { LP64_ONLY(cmovq(cc, dst, src)) NOT_LP64(cmovl(cc, dst, src)); }
-+  void cmov32( Condition cc, Register dst, Address  src);
-+  void cmov32( Condition cc, Register dst, Register src);
- 
--  void cmovptr(Condition cc, Register dst, Address src) { LP64_ONLY(cmovq(cc, dst, src)) NOT_LP64(cmovl(cc, dst, src)); }
--  void cmovptr(Condition cc, Register dst, Register src) { LP64_ONLY(cmovq(cc, dst, src)) NOT_LP64(cmovl(cc, dst, src)); }
-+  void cmov(   Condition cc, Register dst, Register src) { cmovptr(cc, dst, src); }
-+
-+  void cmovptr(Condition cc, Register dst, Address  src) { LP64_ONLY(cmovq(cc, dst, src)) NOT_LP64(cmov32(cc, dst, src)); }
-+  void cmovptr(Condition cc, Register dst, Register src) { LP64_ONLY(cmovq(cc, dst, src)) NOT_LP64(cmov32(cc, dst, src)); }
- 
-   void movoop(Register dst, jobject obj);
-   void movoop(Address dst, jobject obj);
---- openjdk/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp	2011-03-30 11:31:18.743456717 -0700
-+++ openjdk/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp	2011-03-30 11:31:18.541656202 -0700
-@@ -23,6 +23,7 @@
-  */
- 
- #include "precompiled.hpp"
-+#include "asm/assembler.hpp"
- #include "c1/c1_Compilation.hpp"
- #include "c1/c1_LIRAssembler.hpp"
- #include "c1/c1_MacroAssembler.hpp"
-@@ -569,24 +570,13 @@
-   __ lea          (rdi, Address(rdi, rcx, Address::times_2, arrayOopDesc::base_offset_in_bytes(T_CHAR)));
- 
-   // compute minimum length (in rax) and difference of lengths (on top of stack)
--  if (VM_Version::supports_cmov()) {
--    __ movl     (rbx, Address(rbx, java_lang_String::count_offset_in_bytes()));
--    __ movl     (rax, Address(rax, java_lang_String::count_offset_in_bytes()));
--    __ mov      (rcx, rbx);
--    __ subptr   (rbx, rax); // subtract lengths
--    __ push     (rbx);      // result
--    __ cmov     (Assembler::lessEqual, rax, rcx);
--  } else {
--    Label L;
--    __ movl     (rbx, Address(rbx, java_lang_String::count_offset_in_bytes()));
--    __ movl     (rcx, Address(rax, java_lang_String::count_offset_in_bytes()));
--    __ mov      (rax, rbx);
--    __ subptr   (rbx, rcx);
--    __ push     (rbx);
--    __ jcc      (Assembler::lessEqual, L);
--    __ mov      (rax, rcx);
--    __ bind (L);
--  }
-+  __ movl  (rbx, Address(rbx, java_lang_String::count_offset_in_bytes()));
-+  __ movl  (rax, Address(rax, java_lang_String::count_offset_in_bytes()));
-+  __ mov   (rcx, rbx);
-+  __ subptr(rbx, rax); // subtract lengths
-+  __ push  (rbx);      // result
-+  __ cmov  (Assembler::lessEqual, rax, rcx);
-+
-   // is minimum length 0?
-   Label noLoop, haveResult;
-   __ testptr (rax, rax);
---- openjdk/hotspot/src/cpu/x86/vm/c1_Runtime1_x86.cpp	2011-03-30 11:31:19.824124145 -0700
-+++ openjdk/hotspot/src/cpu/x86/vm/c1_Runtime1_x86.cpp	2011-03-30 11:31:19.606167752 -0700
-@@ -23,6 +23,7 @@
-  */
- 
- #include "precompiled.hpp"
-+#include "asm/assembler.hpp"
- #include "c1/c1_Defs.hpp"
- #include "c1/c1_MacroAssembler.hpp"
- #include "c1/c1_Runtime1.hpp"
---- openjdk/hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp	2011-03-30 11:31:20.910918826 -0700
-+++ openjdk/hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp	2011-03-30 11:31:20.703693030 -0700
-@@ -23,6 +23,7 @@
-  */
- 
- #include "precompiled.hpp"
-+#include "asm/assembler.hpp"
- #include "interpreter/interpreter.hpp"
- #include "interpreter/interpreterRuntime.hpp"
- #include "interpreter/templateTable.hpp"
-@@ -1939,18 +1940,10 @@
-     __ movl(temp, Address(array, h, Address::times_8, 0*wordSize));
-     __ bswapl(temp);
-     __ cmpl(key, temp);
--    if (VM_Version::supports_cmov()) {
--      __ cmovl(Assembler::less        , j, h);   // j = h if (key <  array[h].fast_match())
--      __ cmovl(Assembler::greaterEqual, i, h);   // i = h if (key >= array[h].fast_match())
--    } else {
--      Label set_i, end_of_if;
--      __ jccb(Assembler::greaterEqual, set_i);     // {
--      __ mov(j, h);                                //   j = h;
--      __ jmp(end_of_if);                           // }
--      __ bind(set_i);                              // else {
--      __ mov(i, h);                                //   i = h;
--      __ bind(end_of_if);                          // }
--    }
-+    // j = h if (key <  array[h].fast_match())
-+    __ cmov32(Assembler::less        , j, h);
-+    // i = h if (key >= array[h].fast_match())
-+    __ cmov32(Assembler::greaterEqual, i, h);
-     // while (i+1 < j)
-     __ bind(entry);
-     __ leal(h, Address(i, 1));                   // i+1
-@@ -3478,22 +3471,14 @@
- 
-   // find a free slot in the monitor block (result in rdx)
-   { Label entry, loop, exit;
--    __ movptr(rcx, monitor_block_top);            // points to current entry, starting with top-most entry
--    __ lea(rbx, monitor_block_bot);               // points to word before bottom of monitor block
-+    __ movptr(rcx, monitor_block_top);           // points to current entry, starting with top-most entry
-+
-+    __ lea(rbx, monitor_block_bot);              // points to word before bottom of monitor block
-     __ jmpb(entry);
- 
-     __ bind(loop);
-     __ cmpptr(Address(rcx, BasicObjectLock::obj_offset_in_bytes()), (int32_t)NULL_WORD);  // check if current entry is used
--
--// TODO - need new func here - kbt
--    if (VM_Version::supports_cmov()) {
--      __ cmov(Assembler::equal, rdx, rcx);       // if not used then remember entry in rdx
--    } else {
--      Label L;
--      __ jccb(Assembler::notEqual, L);
--      __ mov(rdx, rcx);                          // if not used then remember entry in rdx
--      __ bind(L);
--    }
-+    __ cmovptr(Assembler::equal, rdx, rcx);      // if not used then remember entry in rdx
-     __ cmpptr(rax, Address(rcx, BasicObjectLock::obj_offset_in_bytes()));   // check if current entry is for same object
-     __ jccb(Assembler::equal, exit);             // if same object then stop searching
-     __ addptr(rcx, entry_size);                  // otherwise advance to next entry
--- a/patches/hotspot/hs20/7036220-shark_llvm_29_headers.patch	Wed Jul 06 23:24:30 2011 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-# HG changeset patch
-# User twisti
-# Date 1302771192 25200
-# Node ID 1fcd6e9c3965f4bf23f6a8f4fbb77fdf74de37a7
-# Parent  3a808be061ffc10da5647e50cc28252d70f21883
-7036220: Shark fails to find LLVM 2.9 System headers during build
-Reviewed-by: gbenson, twisti
-Contributed-by: Xerxes Ranby <xerxes@zafena.se>
-
-diff -r 3a808be061ff -r 1fcd6e9c3965 src/share/vm/shark/llvmHeaders.hpp
---- openjdk/hotspot/src/share/vm/shark/llvmHeaders.hpp	Wed Apr 13 14:33:03 2011 -0700
-+++ openjdk/hotspot/src/share/vm/shark/llvmHeaders.hpp	Thu Apr 14 01:53:12 2011 -0700
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
-  * Copyright 2008, 2009, 2010 Red Hat, Inc.
-  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-  *
-@@ -46,7 +46,11 @@
- #include <llvm/ModuleProvider.h>
- #endif
- #include <llvm/Support/IRBuilder.h>
-+#if SHARK_LLVM_VERSION >= 29
-+#include <llvm/Support/Threading.h>
-+#else
- #include <llvm/System/Threading.h>
-+#endif
- #include <llvm/Target/TargetSelect.h>
- #include <llvm/Type.h>
- #include <llvm/ExecutionEngine/JITMemoryManager.h>
-@@ -55,8 +59,12 @@
- #include <llvm/ExecutionEngine/JIT.h>
- #include <llvm/ADT/StringMap.h>
- #include <llvm/Support/Debug.h>
-+#if SHARK_LLVM_VERSION >= 29
-+#include <llvm/Support/Host.h>
-+#else
- #include <llvm/System/Host.h>
- #endif
-+#endif
- 
- #include <map>
- 
--- a/patches/hotspot/hs20/arm.patch	Wed Jul 06 23:24:30 2011 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-diff -Nru openjdk.orig/hotspot/src/cpu/zero/vm/bytecodes_zero.hpp openjdk/hotspot/src/cpu/zero/vm/bytecodes_zero.hpp
---- openjdk.orig/hotspot/src/cpu/zero/vm/bytecodes_zero.hpp	2011-01-25 22:57:24.000000000 +0000
-+++ openjdk/hotspot/src/cpu/zero/vm/bytecodes_zero.hpp	2011-01-28 01:46:18.769782690 +0000
-@@ -1,6 +1,7 @@
- /*
-  * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
-  * Copyright 2009 Red Hat, Inc.
-+ * Copyright 2009 Edward Nevill
-  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-  *
-  * This code is free software; you can redistribute it and/or modify it
-@@ -26,6 +27,44 @@
- #ifndef CPU_ZERO_VM_BYTECODES_ZERO_HPP
- #define CPU_ZERO_VM_BYTECODES_ZERO_HPP
- 
--// This file is intentionally empty
-+#ifdef HOTSPOT_ASM
-+#define _iaccess_0      ((Bytecodes::Code)0xdb)
-+#define _iaccess_1      ((Bytecodes::Code)0xdc)
-+#define _iaccess_2      ((Bytecodes::Code)0xdd)
-+#define _iaccess_3      ((Bytecodes::Code)0xde)
-+
-+#define _invokeresolved         ((Bytecodes::Code)0xdf)
-+#define _invokespecialresolved  ((Bytecodes::Code)0xe0)
-+#define _invokestaticresolved   ((Bytecodes::Code)0xe1)
-+
-+#define _iload_iload    ((Bytecodes::Code)0xe3)
-+#define _iload_iload_N  ((Bytecodes::Code)0xe4)
-+
-+#define _dmac           ((Bytecodes::Code)0xe6)
-+
-+        _iload_0_iconst_N       ,       // 231
-+        _iload_1_iconst_N       ,       // 232
-+        _iload_2_iconst_N       ,       // 233
-+        _iload_3_iconst_N       ,       // 234
-+        _iload_iconst_N         ,       // 235
-+        _iadd_istore_N          ,       // 236
-+        _isub_istore_N          ,       // 237
-+        _iand_istore_N          ,       // 238
-+        _ior_istore_N           ,       // 239
-+        _ixor_istore_N          ,       // 240
-+        _iadd_u4store           ,       // 241
-+        _isub_u4store           ,       // 242
-+        _iand_u4store           ,       // 243
-+        _ior_u4store            ,       // 244
-+        _ixor_u4store           ,       // 245
-+        _iload_0_iload          ,       // 246
-+        _iload_1_iload          ,       // 247
-+        _iload_2_iload          ,       // 248
-+        _iload_3_iload          ,       // 249
-+        _iload_0_iload_N        ,       // 250
-+        _iload_1_iload_N        ,       // 251
-+        _iload_2_iload_N        ,       // 252
-+        _iload_3_iload_N        ,       // 253
-+#endif // HOTSPOT_ASM
- 
- #endif // CPU_ZERO_VM_BYTECODES_ZERO_HPP
--- a/patches/hotspot/hs20/gcc-suffix.patch	Wed Jul 06 23:24:30 2011 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-diff -Nru openjdk.orig/hotspot/agent/src/os/linux/Makefile openjdk/hotspot/agent/src/os/linux/Makefile
---- openjdk.orig/hotspot/agent/src/os/linux/Makefile	2011-01-25 22:57:24.000000000 +0000
-+++ openjdk/hotspot/agent/src/os/linux/Makefile	2011-01-28 00:43:20.632487152 +0000
-@@ -23,7 +23,7 @@
- #
- 
- ARCH := $(shell if ([ `uname -m` = "ia64" ])  ; then echo ia64 ; elif ([ `uname -m` = "x86_64" ]) ; then echo amd64; elif ([ `uname -m` = "sparc64" ]) ; then echo sparc; else echo i386 ; fi )
--GCC      = gcc
-+GCC      = gcc$(GCC_SUFFIX)
- 
- JAVAH    = ${JAVA_HOME}/bin/javah
- 
-diff -Nru openjdk.orig/hotspot/make/linux/makefiles/gcc.make openjdk/hotspot/make/linux/makefiles/gcc.make
---- openjdk.orig/hotspot/make/linux/makefiles/gcc.make	2011-01-28 00:35:53.000000000 +0000
-+++ openjdk/hotspot/make/linux/makefiles/gcc.make	2011-01-28 00:43:56.676866099 +0000
-@@ -28,11 +28,11 @@
- # When cross-compiling the ALT_COMPILER_PATH points
- # to the cross-compilation toolset
- ifdef CROSS_COMPILE_ARCH
--CPP = $(ALT_COMPILER_PATH)/g++
--CC  = $(ALT_COMPILER_PATH)/gcc
-+CPP = $(ALT_COMPILER_PATH)/g++$(GCC_SUFFIX)
-+CC  = $(ALT_COMPILER_PATH)/gcc$(GCC_SUFFIX)
- else
--CPP = g++
--CC  = gcc
-+CPP = g++$(GCC_SUFFIX)
-+CC  = gcc$(GCC_SUFFIX)
- endif
- 
- AS  = $(CC) -c
--- a/patches/hotspot/hs20/ia64-fix.patch	Wed Jul 06 23:24:30 2011 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
---- openjdk/hotspot/src/share/vm/opto/connode.cpp~	2010-10-08 20:29:24.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/opto/connode.cpp	2010-11-29 07:57:22.000000000 +0000
-@@ -712,12 +712,7 @@
-   if( t == Type::TOP ) return Type::TOP;
-   if( t == Type::FLOAT ) return Type::DOUBLE;
-   const TypeF *tf = t->is_float_constant();
--#ifndef IA64
-   return TypeD::make( (double)tf->getf() );
--#else
--  float x = tf->getf();
--  return TypeD::make( (x == 0.0f) ? (double)x : (double)x + ia64_double_zero );
--#endif
- }
- 
- //=============================================================================
--- a/patches/hotspot/hs20/params-cast-size_t.patch	Wed Jul 06 23:24:30 2011 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,270 +0,0 @@
-diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp
---- openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp	2011-01-25 22:57:24.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp	2011-01-28 01:06:11.887088930 +0000
-@@ -2645,7 +2645,7 @@
-   if (ResizeOldPLAB && CMSOldPLABResizeQuicker) {
-     size_t multiple = _num_blocks[word_sz]/(CMSOldPLABToleranceFactor*CMSOldPLABNumRefills*n_blks);
-     n_blks +=  CMSOldPLABReactivityFactor*multiple*n_blks;
--    n_blks = MIN2(n_blks, CMSOldPLABMax);
-+    n_blks = MIN2(n_blks, (size_t)CMSOldPLABMax);
-   }
-   assert(n_blks > 0, "Error");
-   _cfls->par_get_chunk_of_blocks(word_sz, n_blks, fl);
-diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
---- openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp	2011-01-25 22:57:24.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp	2011-01-28 01:06:11.891088974 +0000
-@@ -955,7 +955,7 @@
-   if (free_percentage < desired_free_percentage) {
-     size_t desired_capacity = (size_t)(used() / ((double) 1 - desired_free_percentage));
-     assert(desired_capacity >= capacity(), "invalid expansion size");
--    expand_bytes = MAX2(desired_capacity - capacity(), MinHeapDeltaBytes);
-+    expand_bytes = MAX2((long unsigned int) (desired_capacity - capacity()), (long unsigned int) MinHeapDeltaBytes);
-   }
-   if (expand_bytes > 0) {
-     if (PrintGCDetails && Verbose) {
-@@ -6238,7 +6238,7 @@
-     HeapWord* curAddr = _markBitMap.startWord();
-     while (curAddr < _markBitMap.endWord()) {
-       size_t remaining  = pointer_delta(_markBitMap.endWord(), curAddr);
--      MemRegion chunk(curAddr, MIN2(CMSBitMapYieldQuantum, remaining));
-+      MemRegion chunk(curAddr, MIN2((size_t) CMSBitMapYieldQuantum, remaining));
-       _markBitMap.clear_large_range(chunk);
-       if (ConcurrentMarkSweepThread::should_yield() &&
-           !foregroundGCIsActive() &&
-@@ -6533,7 +6533,7 @@
-     return;
-   }
-   // Double capacity if possible
--  size_t new_capacity = MIN2(_capacity*2, MarkStackSizeMax);
-+  size_t new_capacity = MIN2((size_t) (_capacity*2), (size_t) MarkStackSizeMax);
-   // Do not give up existing stack until we have managed to
-   // get the double capacity that we desired.
-   ReservedSpace rs(ReservedSpace::allocation_align_size_up(
-diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp openjdk/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp
---- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp	2011-01-28 00:50:00.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp	2011-01-28 01:06:11.891088974 +0000
-@@ -471,7 +471,7 @@
-   _regionStack(),
-   // _finger set in set_non_marking_state
- 
--  _max_task_num(MAX2(ParallelGCThreads, (size_t)1)),
-+  _max_task_num(MAX2((size_t)ParallelGCThreads, (size_t)1)),
-   // _active_tasks set in set_non_marking_state
-   // _tasks set inside the constructor
-   _task_queues(new CMTaskQueueSet((int) _max_task_num)),
-@@ -575,7 +575,7 @@
-       _sleep_factor             = sleep_factor;
-       _marking_task_overhead    = marking_task_overhead;
-     } else {
--      _parallel_marking_threads = MAX2((ParallelGCThreads + 2) / 4, (size_t)1);
-+      _parallel_marking_threads = MAX2((size_t)((ParallelGCThreads + 2) / 4), (size_t)1);
-       _sleep_factor             = 0.0;
-       _marking_task_overhead    = 1.0;
-     }
-@@ -3371,7 +3371,7 @@
-   // of things to do) or totally (at the very end).
-   size_t target_size;
-   if (partially)
--    target_size = MIN2((size_t)_task_queue->max_elems()/3, GCDrainStackTargetSize);
-+    target_size = MIN2((size_t)_task_queue->max_elems()/3, (size_t)GCDrainStackTargetSize);
-   else
-     target_size = 0;
- 
-diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp openjdk/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
---- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp	2011-01-25 22:57:24.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp	2011-01-28 01:06:11.891088974 +0000
-@@ -1074,7 +1074,7 @@
- // This can be done by either mutator threads together with the
- // concurrent refinement threads or GC threads.
- int HeapRegionRemSet::num_par_rem_sets() {
--  return (int)MAX2(DirtyCardQueueSet::num_par_ids() + ConcurrentG1Refine::thread_num(), ParallelGCThreads);
-+  return (int)MAX2(DirtyCardQueueSet::num_par_ids() + ConcurrentG1Refine::thread_num(), (size_t)ParallelGCThreads);
- }
- 
- HeapRegionRemSet::HeapRegionRemSet(G1BlockOffsetSharedArray* bosa,
-diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp
---- openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp	2011-01-25 22:57:24.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp	2011-01-28 01:06:11.891088974 +0000
-@@ -895,8 +895,8 @@
- void PSParallelCompact::initialize_dead_wood_limiter()
- {
-   const size_t max = 100;
--  _dwl_mean = double(MIN2(ParallelOldDeadWoodLimiterMean, max)) / 100.0;
--  _dwl_std_dev = double(MIN2(ParallelOldDeadWoodLimiterStdDev, max)) / 100.0;
-+  _dwl_mean = double(MIN2((size_t) ParallelOldDeadWoodLimiterMean, max)) / 100.0;
-+  _dwl_std_dev = double(MIN2((size_t) ParallelOldDeadWoodLimiterStdDev, max)) / 100.0;
-   _dwl_first_term = 1.0 / (sqrt(2.0 * M_PI) * _dwl_std_dev);
-   DEBUG_ONLY(_dwl_initialized = true;)
-   _dwl_adjustment = normal_distribution(1.0);
-diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp
---- openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp	2011-01-25 22:57:24.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp	2011-01-28 01:06:11.891088974 +0000
-@@ -69,7 +69,7 @@
-   _last_used = current_live;
- 
-   // We have different alignment constraints than the rest of the heap.
--  const size_t alignment = MAX2(MinPermHeapExpansion,
-+  const size_t alignment = MAX2((size_t) MinPermHeapExpansion,
-                                 virtual_space()->alignment());
- 
-   // Compute the desired size:
-diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp openjdk/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp
---- openjdk.orig/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp	2011-01-25 22:57:24.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp	2011-01-28 01:06:11.895089019 +0000
-@@ -188,7 +188,7 @@
-   const size_t num_overflow_elems = of_stack->size();
-   const size_t space_available = queue->max_elems() - queue->size();
-   const size_t num_take_elems = MIN3(space_available / 4,
--                                     ParGCDesiredObjsFromOverflowList,
-+                                     (size_t) ParGCDesiredObjsFromOverflowList,
-                                      num_overflow_elems);
-   // Transfer the most recent num_take_elems from the overflow
-   // stack to our work queue.
-diff -Nru openjdk.orig/hotspot/src/share/vm/memory/collectorPolicy.cpp openjdk/hotspot/src/share/vm/memory/collectorPolicy.cpp
---- openjdk.orig/hotspot/src/share/vm/memory/collectorPolicy.cpp	2011-01-25 22:57:24.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/memory/collectorPolicy.cpp	2011-01-28 01:06:11.891088974 +0000
-@@ -328,7 +328,7 @@
-     // yield a size that is too small) and bound it by MaxNewSize above.
-     // Ergonomics plays here by previously calculating the desired
-     // NewSize and MaxNewSize.
--    max_new_size = MIN2(MAX2(max_new_size, NewSize), MaxNewSize);
-+    max_new_size = MIN2(MAX2(max_new_size, (size_t)NewSize), (size_t)MaxNewSize);
-   }
-   assert(max_new_size > 0, "All paths should set max_new_size");
- 
-@@ -355,7 +355,7 @@
-       // generally small compared to the NewRatio calculation.
-       _min_gen0_size = NewSize;
-       desired_new_size = NewSize;
--      max_new_size = MAX2(max_new_size, NewSize);
-+      max_new_size = MAX2(max_new_size, (size_t) NewSize);
-     } else {
-       // For the case where NewSize is the default, use NewRatio
-       // to size the minimum and initial generation sizes.
-@@ -363,10 +363,10 @@
-       // NewRatio is overly large, the resulting sizes can be too
-       // small.
-       _min_gen0_size = MAX2(scale_by_NewRatio_aligned(min_heap_byte_size()),
--                          NewSize);
-+                          (size_t) NewSize);
-       desired_new_size =
-         MAX2(scale_by_NewRatio_aligned(initial_heap_byte_size()),
--             NewSize);
-+             (size_t) NewSize);
-     }
- 
-     assert(_min_gen0_size > 0, "Sanity check");
-@@ -421,14 +421,14 @@
-       // Adjust gen0 down to accomodate OldSize
-       *gen0_size_ptr = heap_size - min_gen0_size;
-       *gen0_size_ptr =
--        MAX2((uintx)align_size_down(*gen0_size_ptr, min_alignment()),
-+        MAX2((size_t)align_size_down(*gen0_size_ptr, min_alignment()),
-              min_alignment());
-       assert(*gen0_size_ptr > 0, "Min gen0 is too large");
-       result = true;
-     } else {
-       *gen1_size_ptr = heap_size - *gen0_size_ptr;
-       *gen1_size_ptr =
--        MAX2((uintx)align_size_down(*gen1_size_ptr, min_alignment()),
-+        MAX2((size_t)align_size_down(*gen1_size_ptr, min_alignment()),
-                        min_alignment());
-     }
-   }
-@@ -452,7 +452,7 @@
-   // for setting the gen1 maximum.
-   _max_gen1_size = max_heap_byte_size() - _max_gen0_size;
-   _max_gen1_size =
--    MAX2((uintx)align_size_down(_max_gen1_size, min_alignment()),
-+    MAX2((size_t)align_size_down(_max_gen1_size, min_alignment()),
-          min_alignment());
-   // If no explicit command line flag has been set for the
-   // gen1 size, use what is left for gen1.
-@@ -466,11 +466,11 @@
-       "gen0 has an unexpected minimum size");
-     set_min_gen1_size(min_heap_byte_size() - min_gen0_size());
-     set_min_gen1_size(
--      MAX2((uintx)align_size_down(_min_gen1_size, min_alignment()),
-+      MAX2((size_t)align_size_down(_min_gen1_size, min_alignment()),
-            min_alignment()));
-     set_initial_gen1_size(initial_heap_byte_size() - initial_gen0_size());
-     set_initial_gen1_size(
--      MAX2((uintx)align_size_down(_initial_gen1_size, min_alignment()),
-+      MAX2((size_t)align_size_down(_initial_gen1_size, min_alignment()),
-            min_alignment()));
- 
-   } else {
-diff -Nru openjdk.orig/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp openjdk/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp
---- openjdk.orig/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp	2011-01-25 22:57:24.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp	2011-01-28 01:06:11.891088974 +0000
-@@ -240,7 +240,7 @@
-   size_t init_sz;
- 
-   if (TLABSize > 0) {
--    init_sz = MIN2(TLABSize / HeapWordSize, max_size());
-+    init_sz = MIN2((size_t) (TLABSize / HeapWordSize), max_size());
-   } else if (global_stats() == NULL) {
-     // Startup issue - main thread initialized before heap initialized.
-     init_sz = min_size();
-diff -Nru openjdk.orig/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp openjdk/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp
---- openjdk.orig/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp	2011-01-25 22:57:24.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp	2011-01-28 01:06:11.891088974 +0000
-@@ -46,7 +46,7 @@
-   const size_t beg_index = size_t(index);
-   assert(beg_index < len || len == 0, "index too large");
- 
--  const size_t stride = MIN2(len - beg_index, ObjArrayMarkingStride);
-+  const size_t stride = MIN2(len - beg_index, (size_t)ObjArrayMarkingStride);
-   const size_t end_index = beg_index + stride;
-   T* const base = (T*)a->base();
-   T* const beg = base + beg_index;
-@@ -80,7 +80,7 @@
-   const size_t beg_index = size_t(index);
-   assert(beg_index < len || len == 0, "index too large");
- 
--  const size_t stride = MIN2(len - beg_index, ObjArrayMarkingStride);
-+  const size_t stride = MIN2(len - beg_index, (size_t)ObjArrayMarkingStride);
-   const size_t end_index = beg_index + stride;
-   T* const base = (T*)a->base();
-   T* const beg = base + beg_index;
-diff -Nru openjdk.orig/hotspot/src/share/vm/runtime/arguments.cpp openjdk/hotspot/src/share/vm/runtime/arguments.cpp
---- openjdk.orig/hotspot/src/share/vm/runtime/arguments.cpp	2011-01-28 00:49:59.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp	2011-01-28 01:06:11.891088974 +0000
-@@ -1161,7 +1161,7 @@
-     // NewSize was set on the command line and it is larger than
-     // preferred_max_new_size.
-     if (!FLAG_IS_DEFAULT(NewSize)) {   // NewSize explicitly set at command-line
--      FLAG_SET_ERGO(uintx, MaxNewSize, MAX2(NewSize, preferred_max_new_size));
-+      FLAG_SET_ERGO(uintx, MaxNewSize, MAX2((size_t) NewSize, preferred_max_new_size));
-     } else {
-       FLAG_SET_ERGO(uintx, MaxNewSize, preferred_max_new_size);
-     }
-@@ -1180,7 +1180,7 @@
-     // there was no obvious reason.  Also limit to the case where
-     // MaxNewSize has not been set.
- 
--    FLAG_SET_ERGO(intx, NewRatio, MAX2(NewRatio, new_ratio));
-+    FLAG_SET_ERGO(intx, NewRatio, MAX2((intx) NewRatio, new_ratio));
- 
-     // Code along this path potentially sets NewSize and OldSize
- 
-@@ -1222,8 +1222,8 @@
-       // Unless explicitly requested otherwise, make young gen
-       // at least min_new, and at most preferred_max_new_size.
-       if (FLAG_IS_DEFAULT(NewSize)) {
--        FLAG_SET_ERGO(uintx, NewSize, MAX2(NewSize, min_new));
--        FLAG_SET_ERGO(uintx, NewSize, MIN2(preferred_max_new_size, NewSize));
-+	FLAG_SET_ERGO(uintx, NewSize, MAX2((size_t) NewSize, min_new));
-+        FLAG_SET_ERGO(uintx, NewSize, MIN2(preferred_max_new_size, (size_t) NewSize));
-         if (PrintGCDetails && Verbose) {
-           // Too early to use gclog_or_tty
-           tty->print_cr("Ergo set NewSize: " SIZE_FORMAT, NewSize);
-@@ -1234,7 +1234,7 @@
-       // later NewRatio will decide how it grows; see above.
-       if (FLAG_IS_DEFAULT(OldSize)) {
-         if (max_heap > NewSize) {
--          FLAG_SET_ERGO(uintx, OldSize, MIN2(3*NewSize, max_heap - NewSize));
-+	  FLAG_SET_ERGO(uintx, OldSize, MIN2((size_t) 3*NewSize, max_heap - (size_t) NewSize));
-           if (PrintGCDetails && Verbose) {
-             // Too early to use gclog_or_tty
-             tty->print_cr("Ergo set OldSize: " SIZE_FORMAT, OldSize);
--- a/patches/hotspot/hs20/powerpc-stacksize.patch	Wed Jul 06 23:24:30 2011 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
---- openjdk/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp~	2011-02-22 17:51:24.000000000 +0100
-+++ openjdk/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp	2011-02-24 18:58:27.758228950 +0100
-@@ -32,7 +32,11 @@
- //
- 
- define_pd_global(bool,  DontYieldALot,           false);
-+#ifdef __powerpc64__
-+define_pd_global(intx,  ThreadStackSize,         2048);
-+#else
- define_pd_global(intx,  ThreadStackSize,         1536);
-+#endif
- #ifdef _LP64
- define_pd_global(intx,  VMThreadStackSize,       1024);
- #else
---- openjdk/corba/make/common/shared/Defs-java.gmk~	2011-02-24 18:56:20.278228999 +0100
-+++ openjdk/corba/make/common/shared/Defs-java.gmk	2011-02-24 19:01:47.938229001 +0100
-@@ -68,9 +68,9 @@
- 
- # 64-bit builds require a larger thread stack size.
- ifeq ($(ARCH_DATA_MODEL), 32)
--  JAVAC_JVM_FLAGS    += -J-XX:ThreadStackSize=768
-+  JAVAC_JVM_FLAGS    += -J-XX:ThreadStackSize=1024
- else
--  JAVAC_JVM_FLAGS    += -J-XX:ThreadStackSize=1536
-+  JAVAC_JVM_FLAGS    += -J-XX:ThreadStackSize=2048
- endif
- JAVAC_JVM_FLAGS    += $(JAVA_TOOLS_FLAGS:%=-J%)
- 
---- openjdk/jdk/make/common/shared/Defs-java.gmk~	2011-02-24 20:10:20.598229000 +0100
-+++ openjdk/jdk/make/common/shared/Defs-java.gmk	2011-02-24 20:11:45.608228331 +0100
-@@ -75,9 +75,9 @@
- 
- # 64-bit builds require a larger thread stack size.
- ifeq ($(ARCH_DATA_MODEL), 32)
--  JAVAC_JVM_FLAGS    += -J-XX:ThreadStackSize=768
-+  JAVAC_JVM_FLAGS    += -J-XX:ThreadStackSize=1024
- else
--  JAVAC_JVM_FLAGS    += -J-XX:ThreadStackSize=1536
-+  JAVAC_JVM_FLAGS    += -J-XX:ThreadStackSize=2048
- endif
- JAVAC_JVM_FLAGS    += $(JAVA_TOOLS_FLAGS:%=-J%)
- 
--- a/patches/hotspot/hs20/sparc-buildfixes.patch	Wed Jul 06 23:24:30 2011 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-diff -Nru openjdk.orig/hotspot/make/linux/makefiles/defs.make openjdk/hotspot/make/linux/makefiles/defs.make
---- openjdk.orig/hotspot/make/linux/makefiles/defs.make	2011-01-25 22:57:24.000000000 +0000
-+++ openjdk/hotspot/make/linux/makefiles/defs.make	2011-01-28 01:21:25.609237228 +0000
-@@ -58,7 +58,7 @@
- endif
- 
- # sparc
--ifeq ($(ARCH), sparc64)
-+ifneq (,$(filter $(ARCH), sparc sparc64))
-   ifeq ($(ARCH_DATA_MODEL), 64)
-     ARCH_DATA_MODEL  = 64
-     MAKE_ARGS        += LP64=1
-diff -Nru openjdk.orig/hotspot/make/linux/makefiles/gcc.make openjdk/hotspot/make/linux/makefiles/gcc.make
---- openjdk.orig/hotspot/make/linux/makefiles/gcc.make	2011-01-28 01:14:57.000000000 +0000
-+++ openjdk/hotspot/make/linux/makefiles/gcc.make	2011-01-28 01:21:25.609237228 +0000
-@@ -64,6 +64,10 @@
- PICFLAG = -fpic
- endif
- 
-+ifneq ($(filter sparc sparcv9,$(BUILDARCH)),)
-+PICFLAG = -fPIC
-+endif
-+
- VM_PICFLAG/LIBJVM = $(PICFLAG)
- VM_PICFLAG/AOUT   =
- VM_PICFLAG        = $(VM_PICFLAG/$(LINK_INTO))
--- a/patches/hotspot/hs20/systemtap.patch	Wed Jul 06 23:24:30 2011 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,100 +0,0 @@
-diff -Nru openjdk.orig/hotspot/src/share/vm/utilities/dtrace.hpp openjdk/hotspot/src/share/vm/utilities/dtrace.hpp
---- openjdk.orig/hotspot/src/share/vm/utilities/dtrace.hpp	2011-01-25 22:57:24.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/utilities/dtrace.hpp	2011-01-28 02:39:02.052518309 +0000
-@@ -1,5 +1,6 @@
- /*
-  * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright 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
-@@ -25,7 +26,7 @@
- #ifndef SHARE_VM_UTILITIES_DTRACE_HPP
- #define SHARE_VM_UTILITIES_DTRACE_HPP
- 
--#if defined(SOLARIS) && defined(DTRACE_ENABLED)
-+#if defined(DTRACE_ENABLED)
- 
- #include <sys/sdt.h>
- 
-@@ -36,7 +37,7 @@
- #define HS_DTRACE_WORKAROUND_TAIL_CALL_BUG() \
-   do { volatile size_t dtrace_workaround_tail_call_bug = 1; } while (0)
- 
--#else // ndef SOLARIS || ndef DTRACE_ENABLED
-+#else // ndef DTRACE_ENABLED
- 
- #define DTRACE_ONLY(x)
- #define NOT_DTRACE(x) x
-@@ -47,11 +48,18 @@
- #define DTRACE_PROBE3(a,b,c,d,e) {;}
- #define DTRACE_PROBE4(a,b,c,d,e,f) {;}
- #define DTRACE_PROBE5(a,b,c,d,e,f,g) {;}
-+#define DTRACE_PROBE6(a,b,c,d,e,f,g,h) {;}
-+#define DTRACE_PROBE7(a,b,c,d,e,f,g,h,i) {;}
-+#define DTRACE_PROBE8(a,b,c,d,e,f,g,h,i,j) {;}
-+#define DTRACE_PROBE9(a,b,c,d,e,f,g,h,i,j,k) {;}
-+#define DTRACE_PROBE10(a,b,c,d,e,f,g,h,i,j,k,l) {;}
- 
- #define HS_DTRACE_WORKAROUND_TAIL_CALL_BUG()
- 
- #endif
- 
-+#if defined(SOLARIS)
-+// Solaris dtrace needs actual extern function decls.
- #define HS_DTRACE_PROBE_FN(provider,name)\
-   __dtrace_##provider##___##name
- 
-@@ -59,6 +67,11 @@
-   DTRACE_ONLY(extern "C" void HS_DTRACE_PROBE_FN(provider,name) args)
- #define HS_DTRACE_PROBE_CDECL_N(provider,name,args) \
-   DTRACE_ONLY(extern void HS_DTRACE_PROBE_FN(provider,name) args)
-+#else
-+// Systemtap dtrace compatible probes on GNU/Linux don't.
-+#define HS_DTRACE_PROBE_DECL_N(provider,name,args)
-+#define HS_DTRACE_PROBE_CDECL_N(provider,name,args)
-+#endif 
- 
- /* Dtrace probe declarations */
- #define HS_DTRACE_PROBE_DECL(provider,name) \
-@@ -97,6 +110,8 @@
-     uintptr_t,uintptr_t,uintptr_t))
- 
- /* Dtrace probe definitions */
-+#if defined(SOLARIS)
-+// Solaris dtrace uses actual function calls.
- #define HS_DTRACE_PROBE_N(provider,name, args) \
-   DTRACE_ONLY(HS_DTRACE_PROBE_FN(provider,name) args)
- 
-@@ -132,5 +147,31 @@
-   HS_DTRACE_PROBE_N(provider,name,((uintptr_t)a0,(uintptr_t)a1,(uintptr_t)a2,\
-     (uintptr_t)a3,(uintptr_t)a4,(uintptr_t)a5,(uintptr_t)a6,(uintptr_t)a7,\
-     (uintptr_t)a8,(uintptr_t)a9))
-+#else
-+// Systemtap dtrace compatible probes on GNU/Linux use direct macros.
-+#define HS_DTRACE_PROBE(provider,name) HS_DTRACE_PROBE0(provider,name)
-+#define HS_DTRACE_PROBE0(provider,name)\
-+  DTRACE_PROBE(provider,name)
-+#define HS_DTRACE_PROBE1(provider,name,a0)\
-+  DTRACE_PROBE1(provider,name,a0)
-+#define HS_DTRACE_PROBE2(provider,name,a0,a1)\
-+  DTRACE_PROBE2(provider,name,a0,a1)
-+#define HS_DTRACE_PROBE3(provider,name,a0,a1,a2)\
-+  DTRACE_PROBE3(provider,name,a0,a1,a2)
-+#define HS_DTRACE_PROBE4(provider,name,a0,a1,a2,a3)\
-+  DTRACE_PROBE4(provider,name,a0,a1,a2,a3)
-+#define HS_DTRACE_PROBE5(provider,name,a0,a1,a2,a3,a4)\
-+  DTRACE_PROBE5(provider,name,a0,a1,a2,a3,a4)
-+#define HS_DTRACE_PROBE6(provider,name,a0,a1,a2,a3,a4,a5)\
-+  DTRACE_PROBE6(provider,name,a0,a1,a2,a3,a4,a5)
-+#define HS_DTRACE_PROBE7(provider,name,a0,a1,a2,a3,a4,a5,a6)\
-+  DTRACE_PROBE7(provider,name,a0,a1,a2,a3,a4,a5,a6)
-+#define HS_DTRACE_PROBE8(provider,name,a0,a1,a2,a3,a4,a5,a6,a7)\
-+  DTRACE_PROBE8(provider,name,a0,a1,a2,a3,a4,a5,a6,a7)
-+#define HS_DTRACE_PROBE9(provider,name,a0,a1,a2,a3,a4,a5,a6,a7,a8)\
-+  DTRACE_PROBE9(provider,name,a0,a1,a2,a3,a4,a5,a6,a7,a8)
-+#define HS_DTRACE_PROBE10(provider,name,a0,a1,a2,a3,a4,a5,a6,a7,a8)\
-+  DTRACE_PROBE10(provider,name,a0,a1,a2,a3,a4,a5,a6,a7,a8)
-+#endif
- 
- #endif // SHARE_VM_UTILITIES_DTRACE_HPP
--- a/patches/hotspot/hs20/text-relocations.patch	Wed Jul 06 23:24:30 2011 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-diff -Nru openjdk.orig/hotspot/make/linux/makefiles/gcc.make openjdk/hotspot/make/linux/makefiles/gcc.make
---- openjdk.orig/hotspot/make/linux/makefiles/gcc.make	2011-01-25 22:57:24.000000000 +0000
-+++ openjdk/hotspot/make/linux/makefiles/gcc.make	2011-01-28 00:32:20.817556386 +0000
-@@ -58,7 +58,11 @@
- # Compiler flags
- 
- # position-independent code
-+ifneq ($(filter alpha parisc ppc ppc64 s390 s390x sparc sparc64 sparcv9,$(ZERO_LIBARCH)),)
- PICFLAG = -fPIC
-+else
-+PICFLAG = -fpic
-+endif
- 
- VM_PICFLAG/LIBJVM = $(PICFLAG)
- VM_PICFLAG/AOUT   =
-diff -Nru openjdk.orig/hotspot/make/linux/makefiles/rules.make openjdk/hotspot/make/linux/makefiles/rules.make
---- openjdk.orig/hotspot/make/linux/makefiles/rules.make	2011-01-25 22:57:24.000000000 +0000
-+++ openjdk/hotspot/make/linux/makefiles/rules.make	2011-01-28 00:32:52.857892660 +0000
-@@ -146,20 +146,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) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE)
--else
--%.o: %.cpp
--	@echo Compiling $<
--	$(QUIETLY) $(REMOVE_TARGET)
--	$(QUIETLY) $(if $(findstring $@, $(NONPIC_OBJ_FILES)), \
--	   $(subst $(VM_PICFLAG), ,$(COMPILE.CC)) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE), \
--	   $(COMPILE.CC) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE))
--endif
- 
- %.o: %.s
- 	@echo Assembling $<
-diff -Nru openjdk.orig/hotspot/make/solaris/makefiles/rules.make openjdk/hotspot/make/solaris/makefiles/rules.make
---- openjdk.orig/hotspot/make/solaris/makefiles/rules.make	2011-01-25 22:57:24.000000000 +0000
-+++ openjdk/hotspot/make/solaris/makefiles/rules.make	2011-01-28 00:33:15.158126725 +0000
-@@ -146,20 +146,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) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE)
--else
--%.o: %.cpp
--	@echo Compiling $<
--	$(QUIETLY) $(REMOVE_TARGET)
--	$(QUIETLY) $(if $(findstring $@, $(NONPIC_OBJ_FILES)), \
--	   $(subst $(VM_PICFLAG), ,$(COMPILE.CC)) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE), \
--	   $(COMPILE.CC) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE))
--endif
- 
- %.o: %.s
- 	@echo Assembling $<
--- a/patches/hotspot/original/7032388-work_without_cmov_instruction.patch	Wed Jul 06 23:24:30 2011 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,156 +0,0 @@
-diff -Nru openjdk.orig/hotspot/src/cpu/x86/vm/assembler_x86.cpp openjdk/hotspot/src/cpu/x86/vm/assembler_x86.cpp
---- openjdk.orig/hotspot/src/cpu/x86/vm/assembler_x86.cpp	2011-02-28 16:03:14.000000000 +0000
-+++ openjdk/hotspot/src/cpu/x86/vm/assembler_x86.cpp	2011-03-31 03:28:54.031901634 +0100
-@@ -7643,6 +7643,28 @@
-   }
- }
- 
-+void MacroAssembler::cmov32(Condition cc, Register dst, Address src) {
-+  if (VM_Version::supports_cmov()) {
-+    cmovl(cc, dst, src);
-+  } else {
-+    Label L;
-+    jccb(negate_condition(cc), L);
-+    movl(dst, src);
-+    bind(L);
-+  }
-+}
-+
-+void MacroAssembler::cmov32(Condition cc, Register dst, Register src) {
-+  if (VM_Version::supports_cmov()) {
-+    cmovl(cc, dst, src);
-+  } else {
-+    Label L;
-+    jccb(negate_condition(cc), L);
-+    movl(dst, src);
-+    bind(L);
-+  }
-+}
-+
- void MacroAssembler::verify_oop(Register reg, const char* s) {
-   if (!VerifyOops) return;
- 
-@@ -8559,14 +8581,7 @@
-   movl(result, cnt1);
-   subl(cnt1, cnt2);
-   push(cnt1);
--  if (VM_Version::supports_cmov()) {
--    cmovl(Assembler::lessEqual, cnt2, result);
--  } else {
--    Label GT_LABEL;
--    jccb(Assembler::greater, GT_LABEL);
--    movl(cnt2, result);
--    bind(GT_LABEL);
--  }
-+  cmov32(Assembler::lessEqual, cnt2, result);
- 
-   // Is the minimum length zero?
-   testl(cnt2, cnt2);
-diff -Nru openjdk.orig/hotspot/src/cpu/x86/vm/assembler_x86.hpp openjdk/hotspot/src/cpu/x86/vm/assembler_x86.hpp
---- openjdk.orig/hotspot/src/cpu/x86/vm/assembler_x86.hpp	2011-02-28 16:03:14.000000000 +0000
-+++ openjdk/hotspot/src/cpu/x86/vm/assembler_x86.hpp	2011-03-31 03:28:54.031901634 +0100
-@@ -2174,10 +2174,13 @@
- 
-   // Data
- 
--  void cmov(Condition cc, Register dst, Register src) { LP64_ONLY(cmovq(cc, dst, src)) NOT_LP64(cmovl(cc, dst, src)); }
-+  void cmov32( Condition cc, Register dst, Address  src);
-+  void cmov32( Condition cc, Register dst, Register src);
- 
--  void cmovptr(Condition cc, Register dst, Address src) { LP64_ONLY(cmovq(cc, dst, src)) NOT_LP64(cmovl(cc, dst, src)); }
--  void cmovptr(Condition cc, Register dst, Register src) { LP64_ONLY(cmovq(cc, dst, src)) NOT_LP64(cmovl(cc, dst, src)); }
-+  void cmov(   Condition cc, Register dst, Register src) { cmovptr(cc, dst, src); }
-+
-+  void cmovptr(Condition cc, Register dst, Address  src) { LP64_ONLY(cmovq(cc, dst, src)) NOT_LP64(cmov32(cc, dst, src)); }
-+  void cmovptr(Condition cc, Register dst, Register src) { LP64_ONLY(cmovq(cc, dst, src)) NOT_LP64(cmov32(cc, dst, src)); }
- 
-   void movoop(Register dst, jobject obj);
-   void movoop(Address dst, jobject obj);
-diff -Nru openjdk.orig/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp openjdk/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp
---- openjdk.orig/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp	2011-02-28 16:03:14.000000000 +0000
-+++ openjdk/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp	2011-03-31 03:28:54.035901697 +0100
-@@ -559,24 +559,13 @@
-   __ lea    (rdi, Address(rdi, rcx, Address::times_2, arrayOopDesc::base_offset_in_bytes(T_CHAR)));
- 
-   // compute minimum length (in rax) and difference of lengths (on top of stack)
--  if (VM_Version::supports_cmov()) {
--    __ movl     (rbx, Address(rbx, java_lang_String::count_offset_in_bytes()));
--    __ movl     (rax, Address(rax, java_lang_String::count_offset_in_bytes()));
--    __ mov      (rcx, rbx);
--    __ subptr   (rbx, rax); // subtract lengths
--    __ push     (rbx);      // result
--    __ cmov     (Assembler::lessEqual, rax, rcx);
--  } else {
--    Label L;
--    __ movl     (rbx, Address(rbx, java_lang_String::count_offset_in_bytes()));
--    __ movl     (rcx, Address(rax, java_lang_String::count_offset_in_bytes()));
--    __ mov      (rax, rbx);
--    __ subptr   (rbx, rcx);
--    __ push     (rbx);
--    __ jcc      (Assembler::lessEqual, L);
--    __ mov      (rax, rcx);
--    __ bind (L);
--  }
-+  __ movl  (rbx, Address(rbx, java_lang_String::count_offset_in_bytes()));
-+  __ movl  (rax, Address(rax, java_lang_String::count_offset_in_bytes()));
-+  __ mov   (rcx, rbx);
-+  __ subptr(rbx, rax); // subtract lengths
-+  __ push  (rbx);      // result
-+  __ cmov  (Assembler::lessEqual, rax, rcx);
-+
-   // is minimum length 0?
-   Label noLoop, haveResult;
-   __ testptr (rax, rax);
-diff -Nru openjdk.orig/hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp openjdk/hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp
---- openjdk.orig/hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp	2011-02-28 16:03:14.000000000 +0000
-+++ openjdk/hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp	2011-03-31 03:28:54.035901697 +0100
-@@ -1931,18 +1931,10 @@
-     __ movl(temp, Address(array, h, Address::times_8, 0*wordSize));
-     __ bswapl(temp);
-     __ cmpl(key, temp);
--    if (VM_Version::supports_cmov()) {
--      __ cmovl(Assembler::less        , j, h);   // j = h if (key <  array[h].fast_match())
--      __ cmovl(Assembler::greaterEqual, i, h);   // i = h if (key >= array[h].fast_match())
--    } else {
--      Label set_i, end_of_if;
--      __ jccb(Assembler::greaterEqual, set_i);     // {
--      __ mov(j, h);                                //   j = h;
--      __ jmp(end_of_if);                           // }
--      __ bind(set_i);                              // else {
--      __ mov(i, h);                                //   i = h;
--      __ bind(end_of_if);                          // }
--    }
-+    // j = h if (key <  array[h].fast_match())
-+    __ cmov32(Assembler::less        , j, h);
-+    // i = h if (key >= array[h].fast_match())
-+    __ cmov32(Assembler::greaterEqual, i, h);
-     // while (i+1 < j)
-     __ bind(entry);
-     __ leal(h, Address(i, 1));                   // i+1
-@@ -3463,22 +3455,14 @@
- 
-   // find a free slot in the monitor block (result in rdx)
-   { Label entry, loop, exit;
--    __ movptr(rcx, monitor_block_top);            // points to current entry, starting with top-most entry
--    __ lea(rbx, monitor_block_bot);               // points to word before bottom of monitor block
-+    __ movptr(rcx, monitor_block_top);           // points to current entry, starting with top-most entry
-+
-+    __ lea(rbx, monitor_block_bot);              // points to word before bottom of monitor block
-     __ jmpb(entry);
- 
-     __ bind(loop);
-     __ cmpptr(Address(rcx, BasicObjectLock::obj_offset_in_bytes()), (int32_t)NULL_WORD);  // check if current entry is used
--
--// TODO - need new func here - kbt
--    if (VM_Version::supports_cmov()) {
--      __ cmov(Assembler::equal, rdx, rcx);       // if not used then remember entry in rdx
--    } else {
--      Label L;
--      __ jccb(Assembler::notEqual, L);
--      __ mov(rdx, rcx);                          // if not used then remember entry in rdx
--      __ bind(L);
--    }
-+    __ cmovptr(Assembler::equal, rdx, rcx);      // if not used then remember entry in rdx
-     __ cmpptr(rax, Address(rcx, BasicObjectLock::obj_offset_in_bytes()));   // check if current entry is for same object
-     __ jccb(Assembler::equal, exit);             // if same object then stop searching
-     __ addptr(rcx, entry_size);                  // otherwise advance to next entry
--- a/patches/hotspot/original/arm.patch	Wed Jul 06 23:24:30 2011 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-diff -Nru openjdk.orig/hotspot/src/cpu/zero/vm/bytecodes_zero.hpp openjdk/hotspot/src/cpu/zero/vm/bytecodes_zero.hpp
---- openjdk.orig/hotspot/src/cpu/zero/vm/bytecodes_zero.hpp	2010-05-28 11:10:30.000000000 +0100
-+++ openjdk/hotspot/src/cpu/zero/vm/bytecodes_zero.hpp	2010-06-17 17:28:49.000000000 +0100
-@@ -1,6 +1,7 @@
- /*
-  * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
-  * Copyright 2009 Red Hat, Inc.
-+ * Copyright 2009 Edward Nevill
-  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-  *
-  * This code is free software; you can redistribute it and/or modify it
-@@ -23,4 +24,42 @@
-  *
-  */
- 
--// This file is intentionally empty
-+#ifdef HOTSPOT_ASM
-+#define _iaccess_0      ((Bytecodes::Code)0xdb)
-+#define _iaccess_1      ((Bytecodes::Code)0xdc)
-+#define _iaccess_2      ((Bytecodes::Code)0xdd)
-+#define _iaccess_3      ((Bytecodes::Code)0xde)
-+
-+#define _invokeresolved         ((Bytecodes::Code)0xdf)
-+#define _invokespecialresolved  ((Bytecodes::Code)0xe0)
-+#define _invokestaticresolved   ((Bytecodes::Code)0xe1)
-+
-+#define _iload_iload    ((Bytecodes::Code)0xe3)
-+#define _iload_iload_N  ((Bytecodes::Code)0xe4)
-+
-+#define _dmac           ((Bytecodes::Code)0xe6)
-+
-+        _iload_0_iconst_N       ,       // 231
-+        _iload_1_iconst_N       ,       // 232
-+        _iload_2_iconst_N       ,       // 233
-+        _iload_3_iconst_N       ,       // 234
-+        _iload_iconst_N         ,       // 235
-+        _iadd_istore_N          ,       // 236
-+        _isub_istore_N          ,       // 237
-+        _iand_istore_N          ,       // 238
-+        _ior_istore_N           ,       // 239
-+        _ixor_istore_N          ,       // 240
-+        _iadd_u4store           ,       // 241
-+        _isub_u4store           ,       // 242
-+        _iand_u4store           ,       // 243
-+        _ior_u4store            ,       // 244
-+        _ixor_u4store           ,       // 245
-+        _iload_0_iload          ,       // 246
-+        _iload_1_iload          ,       // 247
-+        _iload_2_iload          ,       // 248
-+        _iload_3_iload          ,       // 249
-+        _iload_0_iload_N        ,       // 250
-+        _iload_1_iload_N        ,       // 251
-+        _iload_2_iload_N        ,       // 252
-+        _iload_3_iload_N        ,       // 253
-+#endif // HOTSPOT_ASM
--- a/patches/hotspot/original/gcc-suffix.patch	Wed Jul 06 23:24:30 2011 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-diff -Nru openjdk.orig/hotspot/agent/src/os/linux/Makefile openjdk/hotspot/agent/src/os/linux/Makefile
---- openjdk.orig/hotspot/agent/src/os/linux/Makefile	2010-09-01 01:23:45.000000000 +0100
-+++ openjdk/hotspot/agent/src/os/linux/Makefile	2010-09-19 14:09:17.907131214 +0100
-@@ -23,7 +23,7 @@
- #
- 
- ARCH := $(shell if ([ `uname -m` = "ia64" ])  ; then echo ia64 ; elif ([ `uname -m` = "x86_64" ]) ; then echo amd64; elif ([ `uname -m` = "sparc64" ]) ; then echo sparc; else echo i386 ; fi )
--GCC      = gcc
-+GCC      = gcc$(GCC_SUFFIX)
- 
- JAVAH    = ${JAVA_HOME}/bin/javah
- 
-diff -Nru openjdk.orig/hotspot/make/linux/makefiles/gcc.make openjdk/hotspot/make/linux/makefiles/gcc.make
---- openjdk.orig/hotspot/make/linux/makefiles/gcc.make	2010-09-19 14:07:15.000000000 +0100
-+++ openjdk/hotspot/make/linux/makefiles/gcc.make	2010-09-19 14:09:58.015272246 +0100
-@@ -26,11 +26,11 @@
- # CC, CPP & AS
- 
- ifdef ALT_COMPILER_PATH
--CPP = $(ALT_COMPILER_PATH)/g++
--CC  = $(ALT_COMPILER_PATH)/gcc
-+CPP = $(ALT_COMPILER_PATH)/g++$(GCC_SUFFIX)
-+CC  = $(ALT_COMPILER_PATH)/gcc$(GCC_SUFFIX)
- else
--CPP = g++
--CC  = gcc
-+CPP = g++$(GCC_SUFFIX)
-+CC  = gcc$(GCC_SUFFIX)
- endif
- 
- AS  = $(CC) -c
--- a/patches/hotspot/original/ia64-fix.patch	Wed Jul 06 23:24:30 2011 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
---- openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp~	2010-10-08 20:29:24.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp	2010-11-29 07:56:22.000000000 +0000
-@@ -1287,12 +1287,7 @@
-           jfloat f;
-           jdouble r;
-           f = STACK_FLOAT(-1);
--#ifdef IA64
--          // IA64 gcc bug
--          r = ( f == 0.0f ) ? (jdouble) f : (jdouble) f + ia64_double_zero;
--#else
-           r = (jdouble) f;
--#endif
-           MORE_STACK(-1); // POP
-           SET_STACK_DOUBLE(r, 1);
-           UPDATE_PC_AND_TOS_AND_CONTINUE(1, 2);
---- openjdk/hotspot/src/share/vm/opto/connode.cpp~	2010-10-08 20:29:24.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/opto/connode.cpp	2010-11-29 07:57:22.000000000 +0000
-@@ -712,12 +712,7 @@
-   if( t == Type::TOP ) return Type::TOP;
-   if( t == Type::FLOAT ) return Type::DOUBLE;
-   const TypeF *tf = t->is_float_constant();
--#ifndef IA64
-   return TypeD::make( (double)tf->getf() );
--#else
--  float x = tf->getf();
--  return TypeD::make( (x == 0.0f) ? (double)x : (double)x + ia64_double_zero );
--#endif
- }
- 
- //=============================================================================
--- a/patches/hotspot/original/no-precompiled-headers.patch	Wed Jul 06 23:24:30 2011 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
---- openjdk/hotspot/make/linux/makefiles/gcc.make~	2009-10-30 11:54:26.000000000 +0100
-+++ openjdk/hotspot/make/linux/makefiles/gcc.make	2009-10-30 11:55:34.000000000 +0100
-@@ -34,13 +34,14 @@
- CC_VER_MAJOR := $(shell $(CC) -dumpversion | sed 's/egcs-//' | cut -d'.' -f1)
- CC_VER_MINOR := $(shell $(CC) -dumpversion | sed 's/egcs-//' | cut -d'.' -f2)
- 
-+ifeq (,$(DISABLE_PRECOMPILED_HEADER))
- # check for precompiled headers support
- ifneq "$(shell expr \( $(CC_VER_MAJOR) \> 3 \) \| \( \( $(CC_VER_MAJOR) = 3 \) \& \( $(CC_VER_MINOR) \>= 4 \) \))" "0"
- USE_PRECOMPILED_HEADER=1
- PRECOMPILED_HEADER_DIR=.
- PRECOMPILED_HEADER=$(PRECOMPILED_HEADER_DIR)/incls/_precompiled.incl.gch
- endif
--
-+endif
- 
- #------------------------------------------------------------------------
- # Compiler flags
---- openjdk/hotspot/make/solaris/makefiles/gcc.make~	2009-10-30 11:54:26.000000000 +0100
-+++ openjdk/hotspot/make/solaris/makefiles/gcc.make	2009-10-30 11:56:05.000000000 +0100
-@@ -45,12 +45,14 @@
- $(shell $(CC) -dumpversion | sed 's/egcs-//' | cut -d'.' -f2)
- 
- 
-+ifeq (,$(DISABLE_PRECOMPILED_HEADER))
- # check for precompiled headers support
- ifneq "$(shell expr \( $(CC_VER_MAJOR) \> 3 \) \| \( \( $(CC_VER_MAJOR) = 3 \) \& \( $(CC_VER_MINOR) \>= 4 \) \))" "0"
- USE_PRECOMPILED_HEADER=1
- PRECOMPILED_HEADER_DIR=.
- PRECOMPILED_HEADER=$(PRECOMPILED_HEADER_DIR)/incls/_precompiled.incl.gch
- endif
-+endif
- 
- 
- #------------------------------------------------------------------------
--- a/patches/hotspot/original/params-cast-size_t.patch	Wed Jul 06 23:24:30 2011 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,295 +0,0 @@
-diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp
---- openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp	2010-09-01 01:23:45.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp	2010-09-19 16:07:14.939307365 +0100
-@@ -2619,7 +2619,7 @@
-   if (ResizeOldPLAB && CMSOldPLABResizeQuicker) {
-     size_t multiple = _num_blocks[word_sz]/(CMSOldPLABToleranceFactor*CMSOldPLABNumRefills*n_blks);
-     n_blks +=  CMSOldPLABReactivityFactor*multiple*n_blks;
--    n_blks = MIN2(n_blks, CMSOldPLABMax);
-+    n_blks = MIN2(n_blks, (size_t)CMSOldPLABMax);
-   }
-   assert(n_blks > 0, "Error");
-   _cfls->par_get_chunk_of_blocks(word_sz, n_blks, fl);
-diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
---- openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp	2010-09-01 01:23:45.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp	2010-09-19 16:07:14.915307286 +0100
-@@ -967,7 +967,7 @@
-   if (free_percentage < desired_free_percentage) {
-     size_t desired_capacity = (size_t)(used() / ((double) 1 - desired_free_percentage));
-     assert(desired_capacity >= capacity(), "invalid expansion size");
--    expand_bytes = MAX2(desired_capacity - capacity(), MinHeapDeltaBytes);
-+    expand_bytes = MAX2((long unsigned int) (desired_capacity - capacity()), (long unsigned int) MinHeapDeltaBytes);
-   }
-   if (expand_bytes > 0) {
-     if (PrintGCDetails && Verbose) {
-@@ -6191,7 +6191,7 @@
-     HeapWord* curAddr = _markBitMap.startWord();
-     while (curAddr < _markBitMap.endWord()) {
-       size_t remaining  = pointer_delta(_markBitMap.endWord(), curAddr);
--      MemRegion chunk(curAddr, MIN2(CMSBitMapYieldQuantum, remaining));
-+      MemRegion chunk(curAddr, MIN2((size_t) CMSBitMapYieldQuantum, remaining));
-       _markBitMap.clear_large_range(chunk);
-       if (ConcurrentMarkSweepThread::should_yield() &&
-           !foregroundGCIsActive() &&
-@@ -6484,7 +6484,7 @@
-     return;
-   }
-   // Double capacity if possible
--  size_t new_capacity = MIN2(_capacity*2, MarkStackSizeMax);
-+  size_t new_capacity = MIN2((size_t) (_capacity*2), (size_t) MarkStackSizeMax);
-   // Do not give up existing stack until we have managed to
-   // get the double capacity that we desired.
-   ReservedSpace rs(ReservedSpace::allocation_align_size_up(
-diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp openjdk/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp
---- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp	2010-09-19 15:38:16.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp	2010-09-19 16:07:14.915307286 +0100
-@@ -452,7 +452,7 @@
-   _regionStack(),
-   // _finger set in set_non_marking_state
- 
--  _max_task_num(MAX2(ParallelGCThreads, (size_t)1)),
-+  _max_task_num(MAX2((size_t)ParallelGCThreads, (size_t)1)),
-   // _active_tasks set in set_non_marking_state
-   // _tasks set inside the constructor
-   _task_queues(new CMTaskQueueSet((int) _max_task_num)),
-@@ -503,7 +503,7 @@
-   SATBMarkQueueSet& satb_qs = JavaThread::satb_mark_queue_set();
-   satb_qs.set_buffer_size(G1SATBBufferSize);
- 
--  int size = (int) MAX2(ParallelGCThreads, (size_t)1);
-+  int size = (int) MAX2((size_t)ParallelGCThreads, (size_t)1);
-   _par_cleanup_thread_state = NEW_C_HEAP_ARRAY(ParCleanupThreadState*, size);
-   for (int i = 0 ; i < size; i++) {
-     _par_cleanup_thread_state[i] = new ParCleanupThreadState;
-@@ -562,7 +562,7 @@
-       _sleep_factor             = sleep_factor;
-       _marking_task_overhead    = marking_task_overhead;
-     } else {
--      _parallel_marking_threads = MAX2((ParallelGCThreads + 2) / 4, (size_t)1);
-+      _parallel_marking_threads = MAX2((size_t)((ParallelGCThreads + 2) / 4), (size_t)1);
-       _sleep_factor             = 0.0;
-       _marking_task_overhead    = 1.0;
-     }
-@@ -689,7 +689,7 @@
- }
- 
- ConcurrentMark::~ConcurrentMark() {
--  int size = (int) MAX2(ParallelGCThreads, (size_t)1);
-+  int size = (int) MAX2((size_t)ParallelGCThreads, (size_t)1);
-   for (int i = 0; i < size; i++) delete _par_cleanup_thread_state[i];
-   FREE_C_HEAP_ARRAY(ParCleanupThreadState*,
-                     _par_cleanup_thread_state);
-@@ -1781,7 +1781,7 @@
-   if (has_aborted()) return;
- 
-   int first = 0;
--  int last = (int)MAX2(ParallelGCThreads, (size_t)1);
-+  int last = (int)MAX2((size_t)ParallelGCThreads, (size_t)1);
-   for (int t = 0; t < last; t++) {
-     UncleanRegionList* list = &_par_cleanup_thread_state[t]->list;
-     assert(list->well_formed(), "Inv");
-@@ -3281,7 +3281,7 @@
-   // of things to do) or totally (at the very end).
-   size_t target_size;
-   if (partially)
--    target_size = MIN2((size_t)_task_queue->max_elems()/3, GCDrainStackTargetSize);
-+    target_size = MIN2((size_t)_task_queue->max_elems()/3, (size_t)GCDrainStackTargetSize);
-   else
-     target_size = 0;
- 
-diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp openjdk/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
---- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp	2010-09-01 01:23:45.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp	2010-09-19 16:07:14.915307286 +0100
-@@ -1066,7 +1066,7 @@
- // This can be done by either mutator threads together with the
- // concurrent refinement threads or GC threads.
- int HeapRegionRemSet::num_par_rem_sets() {
--  return (int)MAX2(DirtyCardQueueSet::num_par_ids() + ConcurrentG1Refine::thread_num(), ParallelGCThreads);
-+  return (int)MAX2(DirtyCardQueueSet::num_par_ids() + ConcurrentG1Refine::thread_num(), (size_t)ParallelGCThreads);
- }
- 
- HeapRegionRemSet::HeapRegionRemSet(G1BlockOffsetSharedArray* bosa,
-diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp
---- openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp	2010-09-01 01:23:45.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp	2010-09-19 16:07:14.915307286 +0100
-@@ -864,8 +864,8 @@
- void PSParallelCompact::initialize_dead_wood_limiter()
- {
-   const size_t max = 100;
--  _dwl_mean = double(MIN2(ParallelOldDeadWoodLimiterMean, max)) / 100.0;
--  _dwl_std_dev = double(MIN2(ParallelOldDeadWoodLimiterStdDev, max)) / 100.0;
-+  _dwl_mean = double(MIN2((size_t) ParallelOldDeadWoodLimiterMean, max)) / 100.0;
-+  _dwl_std_dev = double(MIN2((size_t) ParallelOldDeadWoodLimiterStdDev, max)) / 100.0;
-   _dwl_first_term = 1.0 / (sqrt(2.0 * M_PI) * _dwl_std_dev);
-   DEBUG_ONLY(_dwl_initialized = true;)
-   _dwl_adjustment = normal_distribution(1.0);
-diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp
---- openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp	2010-09-01 01:23:45.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp	2010-09-19 16:07:14.915307286 +0100
-@@ -63,7 +63,7 @@
-   _last_used = current_live;
- 
-   // We have different alignment constraints than the rest of the heap.
--  const size_t alignment = MAX2(MinPermHeapExpansion,
-+  const size_t alignment = MAX2((size_t) MinPermHeapExpansion,
-                                 virtual_space()->alignment());
- 
-   // Compute the desired size:
-diff -Nru openjdk.orig/hotspot/src/share/vm/memory/collectorPolicy.cpp openjdk/hotspot/src/share/vm/memory/collectorPolicy.cpp
---- openjdk.orig/hotspot/src/share/vm/memory/collectorPolicy.cpp	2010-09-01 01:23:45.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/memory/collectorPolicy.cpp	2010-09-19 16:07:14.939307365 +0100
-@@ -297,7 +297,7 @@
-     // yield a size that is too small) and bound it by MaxNewSize above.
-     // Ergonomics plays here by previously calculating the desired
-     // NewSize and MaxNewSize.
--    max_new_size = MIN2(MAX2(max_new_size, NewSize), MaxNewSize);
-+    max_new_size = MIN2(MAX2(max_new_size, (size_t)NewSize), (size_t)MaxNewSize);
-   }
-   assert(max_new_size > 0, "All paths should set max_new_size");
- 
-@@ -324,7 +324,7 @@
-       // generally small compared to the NewRatio calculation.
-       _min_gen0_size = NewSize;
-       desired_new_size = NewSize;
--      max_new_size = MAX2(max_new_size, NewSize);
-+      max_new_size = MAX2(max_new_size, (size_t) NewSize);
-     } else {
-       // For the case where NewSize is the default, use NewRatio
-       // to size the minimum and initial generation sizes.
-@@ -332,10 +332,10 @@
-       // NewRatio is overly large, the resulting sizes can be too
-       // small.
-       _min_gen0_size = MAX2(scale_by_NewRatio_aligned(min_heap_byte_size()),
--                          NewSize);
-+                          (size_t) NewSize);
-       desired_new_size =
-         MAX2(scale_by_NewRatio_aligned(initial_heap_byte_size()),
--             NewSize);
-+             (size_t) NewSize);
-     }
- 
-     assert(_min_gen0_size > 0, "Sanity check");
-@@ -390,14 +390,14 @@
-       // Adjust gen0 down to accomodate OldSize
-       *gen0_size_ptr = heap_size - min_gen0_size;
-       *gen0_size_ptr =
--        MAX2((uintx)align_size_down(*gen0_size_ptr, min_alignment()),
-+        MAX2((size_t)align_size_down(*gen0_size_ptr, min_alignment()),
-              min_alignment());
-       assert(*gen0_size_ptr > 0, "Min gen0 is too large");
-       result = true;
-     } else {
-       *gen1_size_ptr = heap_size - *gen0_size_ptr;
-       *gen1_size_ptr =
--        MAX2((uintx)align_size_down(*gen1_size_ptr, min_alignment()),
-+        MAX2((size_t)align_size_down(*gen1_size_ptr, min_alignment()),
-                        min_alignment());
-     }
-   }
-@@ -421,7 +421,7 @@
-   // for setting the gen1 maximum.
-   _max_gen1_size = max_heap_byte_size() - _max_gen0_size;
-   _max_gen1_size =
--    MAX2((uintx)align_size_down(_max_gen1_size, min_alignment()),
-+    MAX2((size_t)align_size_down(_max_gen1_size, min_alignment()),
-          min_alignment());
-   // If no explicit command line flag has been set for the
-   // gen1 size, use what is left for gen1.
-@@ -435,11 +435,11 @@
-       "gen0 has an unexpected minimum size");
-     set_min_gen1_size(min_heap_byte_size() - min_gen0_size());
-     set_min_gen1_size(
--      MAX2((uintx)align_size_down(_min_gen1_size, min_alignment()),
-+      MAX2((size_t)align_size_down(_min_gen1_size, min_alignment()),
-            min_alignment()));
-     set_initial_gen1_size(initial_heap_byte_size() - initial_gen0_size());
-     set_initial_gen1_size(
--      MAX2((uintx)align_size_down(_initial_gen1_size, min_alignment()),
-+      MAX2((size_t)align_size_down(_initial_gen1_size, min_alignment()),
-            min_alignment()));
- 
-   } else {
-diff -Nru openjdk.orig/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp openjdk/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp
---- openjdk.orig/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp	2010-09-01 01:23:45.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp	2010-09-19 16:07:14.939307365 +0100
-@@ -221,7 +221,7 @@
-   size_t init_sz;
- 
-   if (TLABSize > 0) {
--    init_sz = MIN2(TLABSize / HeapWordSize, max_size());
-+    init_sz = MIN2((size_t) (TLABSize / HeapWordSize), max_size());
-   } else if (global_stats() == NULL) {
-     // Startup issue - main thread initialized before heap initialized.
-     init_sz = min_size();
-diff -Nru openjdk.orig/hotspot/src/share/vm/runtime/arguments.cpp openjdk/hotspot/src/share/vm/runtime/arguments.cpp
---- openjdk.orig/hotspot/src/share/vm/runtime/arguments.cpp	2010-09-19 15:38:15.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp	2010-09-19 16:07:14.939307365 +0100
-@@ -1073,7 +1073,7 @@
-     // NewSize was set on the command line and it is larger than
-     // preferred_max_new_size.
-     if (!FLAG_IS_DEFAULT(NewSize)) {   // NewSize explicitly set at command-line
--      FLAG_SET_ERGO(uintx, MaxNewSize, MAX2(NewSize, preferred_max_new_size));
-+      FLAG_SET_ERGO(uintx, MaxNewSize, MAX2((size_t) NewSize, preferred_max_new_size));
-     } else {
-       FLAG_SET_ERGO(uintx, MaxNewSize, preferred_max_new_size);
-     }
-@@ -1092,7 +1092,7 @@
-     // there was no obvious reason.  Also limit to the case where
-     // MaxNewSize has not been set.
- 
--    FLAG_SET_ERGO(intx, NewRatio, MAX2(NewRatio, new_ratio));
-+    FLAG_SET_ERGO(intx, NewRatio, MAX2((intx) NewRatio, new_ratio));
- 
-     // Code along this path potentially sets NewSize and OldSize
- 
-@@ -1134,8 +1134,8 @@
-       // Unless explicitly requested otherwise, make young gen
-       // at least min_new, and at most preferred_max_new_size.
-       if (FLAG_IS_DEFAULT(NewSize)) {
--        FLAG_SET_ERGO(uintx, NewSize, MAX2(NewSize, min_new));
--        FLAG_SET_ERGO(uintx, NewSize, MIN2(preferred_max_new_size, NewSize));
-+	FLAG_SET_ERGO(uintx, NewSize, MAX2((size_t) NewSize, min_new));
-+        FLAG_SET_ERGO(uintx, NewSize, MIN2(preferred_max_new_size, (size_t) NewSize));
-         if (PrintGCDetails && Verbose) {
-           // Too early to use gclog_or_tty
-           tty->print_cr("Ergo set NewSize: " SIZE_FORMAT, NewSize);
-@@ -1146,7 +1146,7 @@
-       // later NewRatio will decide how it grows; see above.
-       if (FLAG_IS_DEFAULT(OldSize)) {
-         if (max_heap > NewSize) {
--          FLAG_SET_ERGO(uintx, OldSize, MIN2(3*NewSize, max_heap - NewSize));
-+	  FLAG_SET_ERGO(uintx, OldSize, MIN2((size_t) 3*NewSize, max_heap - (size_t) NewSize));
-           if (PrintGCDetails && Verbose) {
-             // Too early to use gclog_or_tty
-             tty->print_cr("Ergo set OldSize: " SIZE_FORMAT, OldSize);
---- openjdk.orig/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp	2010-10-28 05:45:16.000000000 -0400
-+++ openjdk/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp	2010-10-28 05:46:22.000000000 -0400
-@@ -37,7 +37,7 @@ void objArrayKlass::objarray_follow_cont
-   const size_t beg_index = size_t(index);
-   assert(beg_index < len || len == 0, "index too large");
- 
--  const size_t stride = MIN2(len - beg_index, ObjArrayMarkingStride);
-+  const size_t stride = MIN2(len - beg_index, (size_t)ObjArrayMarkingStride);
-   const size_t end_index = beg_index + stride;
-   T* const base = (T*)a->base();
-   T* const beg = base + beg_index;
-@@ -71,7 +71,7 @@ void objArrayKlass::objarray_follow_cont
-   const size_t beg_index = size_t(index);
-   assert(beg_index < len || len == 0, "index too large");
- 
--  const size_t stride = MIN2(len - beg_index, ObjArrayMarkingStride);
-+  const size_t stride = MIN2(len - beg_index, (size_t)ObjArrayMarkingStride);
-   const size_t end_index = beg_index + stride;
-   T* const base = (T*)a->base();
-   T* const beg = base + beg_index;
---- openjdk/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp~	2010-10-08 20:29:24.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp	2010-11-29 07:27:56.000000000 +0000
-@@ -163,7 +163,7 @@
-   const size_t num_overflow_elems = of_stack->size();
-   const size_t space_available = queue->max_elems() - queue->size();
-   const size_t num_take_elems = MIN3(space_available / 4,
--                                     ParGCDesiredObjsFromOverflowList,
-+                                     (size_t) ParGCDesiredObjsFromOverflowList,
-                                      num_overflow_elems);
-   // Transfer the most recent num_take_elems from the overflow
-   // stack to our work queue.
--- a/patches/hotspot/original/sparc-buildfixes.patch	Wed Jul 06 23:24:30 2011 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
---- openjdk/hotspot/make/linux/makefiles/gcc.make.orig	2008-12-04 20:29:08.000000000 +0000
-+++ openjdk/hotspot/make/linux/makefiles/gcc.make	2008-12-04 20:32:54.000000000 +0000
-@@ -52,6 +52,10 @@
- PICFLAG = -fpic
- endif
- 
-+ifneq ($(filter sparc sparcv9,$(BUILDARCH)),)
-+PICFLAG = -fPIC
-+endif
-+
- VM_PICFLAG/LIBJVM = $(PICFLAG)
- VM_PICFLAG/AOUT   =
- VM_PICFLAG        = $(VM_PICFLAG/$(LINK_INTO))
---- openjdk/hotspot/make/linux/makefiles/defs.make.orig	2008-12-04 20:29:04.000000000 +0000
-+++ openjdk/hotspot/make/linux/makefiles/defs.make	2008-12-04 20:32:54.000000000 +0000
-@@ -59,7 +59,7 @@
- endif
- 
- # sparc
--ifeq ($(ARCH), sparc64)
-+ifneq (,$(filter $(ARCH), sparc sparc64))
-   ifeq ($(ARCH_DATA_MODEL), 64)
-     ARCH_DATA_MODEL  = 64
-     MAKE_ARGS        += LP64=1
---- openjdk/hotspot/src/cpu/sparc/vm/frame_sparc.hpp.orig	2008-12-04 20:32:19.000000000 +0000
-+++ openjdk/hotspot/src/cpu/sparc/vm/frame_sparc.hpp	2008-12-04 20:32:54.000000000 +0000
-@@ -264,7 +264,7 @@
- 
-  private:
- 
--  constantPoolCacheOop* frame::interpreter_frame_cpoolcache_addr() const;
-+  constantPoolCacheOop* interpreter_frame_cpoolcache_addr() const;
- 
- #ifndef CC_INTERP
- 
--- a/patches/hotspot/original/systemtap.patch	Wed Jul 06 23:24:30 2011 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,98 +0,0 @@
-diff -Nru openjdk.orig/hotspot/src/share/vm/utilities/dtrace.hpp openjdk/hotspot/src/share/vm/utilities/dtrace.hpp
---- openjdk.orig/hotspot/src/share/vm/utilities/dtrace.hpp	2010-08-27 20:30:52.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/utilities/dtrace.hpp	2010-08-27 22:38:19.569540300 +0100
-@@ -1,5 +1,6 @@
- /*
-  * Copyright (c) 2005, 2007, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright 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
-@@ -22,7 +23,7 @@
-  *
-  */
- 
--#if defined(SOLARIS) && defined(DTRACE_ENABLED)
-+#if defined(DTRACE_ENABLED)
- 
- #include <sys/sdt.h>
- 
-@@ -33,7 +34,7 @@
- #define HS_DTRACE_WORKAROUND_TAIL_CALL_BUG() \
-   do { volatile size_t dtrace_workaround_tail_call_bug = 1; } while (0)
- 
--#else // ndef SOLARIS || ndef DTRACE_ENABLED
-+#else // ndef DTRACE_ENABLED
- 
- #define DTRACE_ONLY(x)
- #define NOT_DTRACE(x) x
-@@ -44,11 +45,18 @@
- #define DTRACE_PROBE3(a,b,c,d,e) {;}
- #define DTRACE_PROBE4(a,b,c,d,e,f) {;}
- #define DTRACE_PROBE5(a,b,c,d,e,f,g) {;}
-+#define DTRACE_PROBE6(a,b,c,d,e,f,g,h) {;}
-+#define DTRACE_PROBE7(a,b,c,d,e,f,g,h,i) {;}
-+#define DTRACE_PROBE8(a,b,c,d,e,f,g,h,i,j) {;}
-+#define DTRACE_PROBE9(a,b,c,d,e,f,g,h,i,j,k) {;}
-+#define DTRACE_PROBE10(a,b,c,d,e,f,g,h,i,j,k,l) {;}
- 
- #define HS_DTRACE_WORKAROUND_TAIL_CALL_BUG()
- 
- #endif
- 
-+#if defined(SOLARIS)
-+// Solaris dtrace needs actual extern function decls.
- #define HS_DTRACE_PROBE_FN(provider,name)\
-   __dtrace_##provider##___##name
- 
-@@ -56,6 +64,11 @@
-   DTRACE_ONLY(extern "C" void HS_DTRACE_PROBE_FN(provider,name) args)
- #define HS_DTRACE_PROBE_CDECL_N(provider,name,args) \
-   DTRACE_ONLY(extern void HS_DTRACE_PROBE_FN(provider,name) args)
-+#else
-+// Systemtap dtrace compatible probes on GNU/Linux don't.
-+#define HS_DTRACE_PROBE_DECL_N(provider,name,args)
-+#define HS_DTRACE_PROBE_CDECL_N(provider,name,args)
-+#endif 
- 
- /* Dtrace probe declarations */
- #define HS_DTRACE_PROBE_DECL(provider,name) \
-@@ -94,6 +107,8 @@
-     uintptr_t,uintptr_t,uintptr_t))
- 
- /* Dtrace probe definitions */
-+#if defined(SOLARIS)
-+// Solaris dtrace uses actual function calls.
- #define HS_DTRACE_PROBE_N(provider,name, args) \
-   DTRACE_ONLY(HS_DTRACE_PROBE_FN(provider,name) args)
- 
-@@ -129,3 +144,29 @@
-   HS_DTRACE_PROBE_N(provider,name,((uintptr_t)a0,(uintptr_t)a1,(uintptr_t)a2,\
-     (uintptr_t)a3,(uintptr_t)a4,(uintptr_t)a5,(uintptr_t)a6,(uintptr_t)a7,\
-     (uintptr_t)a8,(uintptr_t)a9))
-+#else
-+// Systemtap dtrace compatible probes on GNU/Linux use direct macros.
-+#define HS_DTRACE_PROBE(provider,name) HS_DTRACE_PROBE0(provider,name)
-+#define HS_DTRACE_PROBE0(provider,name)\
-+  DTRACE_PROBE(provider,name)
-+#define HS_DTRACE_PROBE1(provider,name,a0)\
-+  DTRACE_PROBE1(provider,name,a0)
-+#define HS_DTRACE_PROBE2(provider,name,a0,a1)\
-+  DTRACE_PROBE2(provider,name,a0,a1)
-+#define HS_DTRACE_PROBE3(provider,name,a0,a1,a2)\
-+  DTRACE_PROBE3(provider,name,a0,a1,a2)
-+#define HS_DTRACE_PROBE4(provider,name,a0,a1,a2,a3)\
-+  DTRACE_PROBE4(provider,name,a0,a1,a2,a3)
-+#define HS_DTRACE_PROBE5(provider,name,a0,a1,a2,a3,a4)\
-+  DTRACE_PROBE5(provider,name,a0,a1,a2,a3,a4)
-+#define HS_DTRACE_PROBE6(provider,name,a0,a1,a2,a3,a4,a5)\
-+  DTRACE_PROBE6(provider,name,a0,a1,a2,a3,a4,a5)
-+#define HS_DTRACE_PROBE7(provider,name,a0,a1,a2,a3,a4,a5,a6)\
-+  DTRACE_PROBE7(provider,name,a0,a1,a2,a3,a4,a5,a6)
-+#define HS_DTRACE_PROBE8(provider,name,a0,a1,a2,a3,a4,a5,a6,a7)\
-+  DTRACE_PROBE8(provider,name,a0,a1,a2,a3,a4,a5,a6,a7)
-+#define HS_DTRACE_PROBE9(provider,name,a0,a1,a2,a3,a4,a5,a6,a7,a8)\
-+  DTRACE_PROBE9(provider,name,a0,a1,a2,a3,a4,a5,a6,a7,a8)
-+#define HS_DTRACE_PROBE10(provider,name,a0,a1,a2,a3,a4,a5,a6,a7,a8)\
-+  DTRACE_PROBE10(provider,name,a0,a1,a2,a3,a4,a5,a6,a7,a8)
-+#endif
--- a/patches/hotspot/original/text-relocations.patch	Wed Jul 06 23:24:30 2011 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-diff -Nru openjdk.orig/hotspot/make/linux/makefiles/gcc.make openjdk/hotspot/make/linux/makefiles/gcc.make
---- openjdk.orig/hotspot/make/linux/makefiles/gcc.make	2008-07-17 08:40:27.000000000 +0100
-+++ openjdk/hotspot/make/linux/makefiles/gcc.make	2008-07-21 23:10:50.000000000 +0100
-@@ -46,7 +46,11 @@
- # Compiler flags
- 
- # position-independent code
-+ifneq ($(filter alpha parisc ppc ppc64 s390 s390x sparc sparc64 sparcv9,$(ZERO_LIBARCH)),)
- PICFLAG = -fPIC
-+else
-+PICFLAG = -fpic
-+endif
- 
- 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/too-many-args.patch	Wed Jul 06 23:24:30 2011 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
---- openjdk/hotspot/make/linux/makefiles/sa.make.orig	2010-06-21 23:12:13.000000000 +0200
-+++ openjdk/hotspot/make/linux/makefiles/sa.make	2010-06-28 01:11:27.022322578 +0200
-@@ -45,6 +45,9 @@
- AGENT_FILES1 := $(shell /usr/bin/test -d $(AGENT_DIR) && /bin/ls $(AGENT_FILES1))
- AGENT_FILES2 := $(shell /usr/bin/test -d $(AGENT_DIR) && /bin/ls $(AGENT_FILES2))
- 
-+AGENT_FILES1_LIST := $(TOPDIR)/../agent1.classes.list
-+AGENT_FILES2_LIST := $(TOPDIR)/../agent2.classes.list
-+
- SA_CLASSDIR = $(GENERATED)/saclasses
- 
- SA_BUILD_VERSION_PROP = "sun.jvm.hotspot.runtime.VM.saBuildVersion=$(SA_BUILD_VERSION)"
-@@ -59,7 +62,7 @@
- 	   $(MAKE) -f sa.make $(GENERATED)/sa-jdi.jar; \
- 	fi
- 
--$(GENERATED)/sa-jdi.jar: $(AGENT_FILES1) $(AGENT_FILES2)
-+$(GENERATED)/sa-jdi.jar: $(AGENT_FILES1) $(AGENT_FILES2) agent_files_preclean
- 	$(QUIETLY) echo "Making $@"
- 	$(QUIETLY) if [ "$(BOOT_JAVA_HOME)" = "" ]; then \
- 	  echo "ALT_BOOTDIR, BOOTDIR or JAVA_HOME needs to be defined to build SA"; \
-@@ -74,8 +77,11 @@
- 	  mkdir -p $(SA_CLASSDIR);        \
- 	fi
- 
--	$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) $(AGENT_FILES1)
--	$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) $(AGENT_FILES2)
-+	$(foreach file,$(AGENT_FILES1),$(shell echo $(file) >> $(AGENT_FILES1_LIST)))
-+	$(foreach file,$(AGENT_FILES2),$(shell echo $(file) >> $(AGENT_FILES2_LIST)))
-+
-+	$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES1_LIST)
-+	$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES2_LIST)
- 
- 	$(QUIETLY) $(REMOTE) $(COMPILE.RMIC)  -classpath $(SA_CLASSDIR) -d $(SA_CLASSDIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer
- 	$(QUIETLY) echo "$(SA_BUILD_VERSION_PROP)" > $(SA_PROPERTIES)
-@@ -92,6 +98,10 @@
- 	$(QUIETLY) $(REMOTE) $(RUN.JAVAH) -classpath $(SA_CLASSDIR) -d $(GENERATED) -jni sun.jvm.hotspot.debugger.amd64.AMD64ThreadContext
- 	$(QUIETLY) $(REMOTE) $(RUN.JAVAH) -classpath $(SA_CLASSDIR) -d $(GENERATED) -jni sun.jvm.hotspot.debugger.sparc.SPARCThreadContext
- 
-+agent_files_preclean:
-+	rm -rf $(AGENT_FILES1_LIST) $(AGENT_FILES2_LIST)
-+
- clean:
- 	rm -rf $(SA_CLASSDIR)
- 	rm -rf $(GENERATED)/sa-jdi.jar
-+	rm -rf $(AGENT_FILES1_LIST) $(AGENT_FILES2_LIST)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/ia64-fix.patch	Thu Jul 07 13:14:02 2011 +0100
@@ -0,0 +1,15 @@
+--- openjdk/hotspot/src/share/vm/opto/connode.cpp~	2010-10-08 20:29:24.000000000 +0000
++++ openjdk/hotspot/src/share/vm/opto/connode.cpp	2010-11-29 07:57:22.000000000 +0000
+@@ -712,12 +712,7 @@
+   if( t == Type::TOP ) return Type::TOP;
+   if( t == Type::FLOAT ) return Type::DOUBLE;
+   const TypeF *tf = t->is_float_constant();
+-#ifndef IA64
+   return TypeD::make( (double)tf->getf() );
+-#else
+-  float x = tf->getf();
+-  return TypeD::make( (x == 0.0f) ? (double)x : (double)x + ia64_double_zero );
+-#endif
+ }
+ 
+ //=============================================================================
--- a/patches/jaxp-serial-version-uid.patch	Wed Jul 06 23:24:30 2011 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-diff -Nru openjdk.orig/jaxp/build.properties openjdk/jaxp/build.properties
---- openjdk.orig/jaxp/build.properties	2011-02-28 16:03:34.000000000 +0000
-+++ openjdk/jaxp/build.properties	2011-03-02 17:46:39.609899609 +0000
-@@ -77,6 +77,9 @@
- # Where patches to drop bundle sources live
- patches.dir=patches
- 
-+# Patches to apply
-+jaxp_src.patch.list=6927050.patch serialversionuid.patch
-+
- # Sanity information
- sanity.info= Sanity Settings:${line.separator}\
-   ant.home=${ant.home}${line.separator}\
-diff -Nru openjdk.orig/jaxp/patches/jaxp_src/serialversionuid.patch openjdk/jaxp/patches/jaxp_src/serialversionuid.patch
---- openjdk.orig/jaxp/patches/jaxp_src/serialversionuid.patch	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jaxp/patches/jaxp_src/serialversionuid.patch	2011-03-02 17:46:17.322764393 +0000
-@@ -0,0 +1,36 @@
-+--- src/javax/xml/stream/FactoryConfigurationError.java	2010-06-04 01:51:47.000000000 +0200
-++++ src/javax/xml/stream/FactoryConfigurationError.java	2010-06-04 01:51:47.000000000 +0200
-+@@ -37,6 +37,9 @@
-+  */
-+ public class FactoryConfigurationError extends Error {
-+ 
-++  // explicitly defined serial version ID to match previous versions.
-++  private static final long serialVersionUID = -2994412584589975744L;
-++
-+   Exception nested;
-+ 
-+   /**
-+--- src/javax/xml/transform/TransformerFactoryConfigurationError.java	2011-03-01 14:18:52.000000000 +0100
-++++ src/javax/xml/transform/TransformerFactoryConfigurationError.java	2011-03-02 14:06:02.000000000 +0100
-+@@ -33,6 +33,9 @@
-+  */
-+ public class TransformerFactoryConfigurationError extends Error {
-+ 
-++    // explicitly defined serial version ID to match previous versions.
-++    private static final long serialVersionUID = -6527718720676281516L;
-++
-+     /**
-+      * <code>Exception</code> for the
-+      *  <code>TransformerFactoryConfigurationError</code>.
-+--- src/javax/xml/parsers/FactoryConfigurationError.java	2011-03-01 14:18:52.000000000 +0100
-++++ src/javax/xml/parsers/FactoryConfigurationError.java	2011-03-02 15:12:22.000000000 +0100
-+@@ -37,6 +37,9 @@
-+ 
-+ public class FactoryConfigurationError extends Error {
-+ 
-++    // explicitly defined serial version ID to match previous versions.
-++    private static final long serialVersionUID = -827108682472263355L;
-++
-+     /**
-+      *<code>Exception</code> that represents the error.
-+      */
--- a/patches/openjdk/6599601-mark_sun_toolkit_privileged_code.patch	Wed Jul 06 23:24:30 2011 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-# HG changeset patch
-# User ptisnovs
-# Date 1305021522 -7200
-# Node ID fe6a8ddfe33d460fe19867c6625ee6390934e4b7
-# Parent  593007922695685523c0730db47e379c26490967
-6599601: Permissions/AWTWindowTest and Permissions/DFLoadTest failed in PIT 7.0 B20 on Windows Vista
-Summary: Correction of checking sun.awt.nativedebug flag.
-Reviewed-by: ohair
-
-diff -r 593007922695 -r fe6a8ddfe33d src/share/classes/sun/awt/SunToolkit.java
---- openjdk/jdk/src/share/classes/sun/awt/SunToolkit.java	Tue Jan 11 12:36:43 2011 -0500
-+++ openjdk/jdk/src/share/classes/sun/awt/SunToolkit.java	Tue May 10 11:58:42 2011 +0200
-@@ -70,8 +70,7 @@
- 
-     /* Load debug settings for native code */
-     static {
--        String nativeDebug = System.getProperty("sun.awt.nativedebug");
--        if ("true".equalsIgnoreCase(nativeDebug)) {
-+        if (AccessController.doPrivileged(new GetBooleanAction("sun.awt.nativedebug"))) {
-             DebugSettings.init();
-         }
-     };
--- a/patches/openjdk/6633275-shaped_translucent_windows.patch	Wed Jul 06 23:24:30 2011 +0100
+++ b/patches/openjdk/6633275-shaped_translucent_windows.patch	Thu Jul 07 13:14:02 2011 +0100
@@ -1,6 +1,6 @@
 diff -Nru openjdk.orig/jdk/make/sun/awt/FILES_c_windows.gmk openjdk/jdk/make/sun/awt/FILES_c_windows.gmk
---- openjdk.orig/jdk/make/sun/awt/FILES_c_windows.gmk	2011-02-16 00:40:21.000000000 +0000
-+++ openjdk/jdk/make/sun/awt/FILES_c_windows.gmk	2011-02-16 01:27:24.988327481 +0000
+--- openjdk.orig/jdk/make/sun/awt/FILES_c_windows.gmk	2011-05-18 15:58:49.000000000 +0100
++++ openjdk/jdk/make/sun/awt/FILES_c_windows.gmk	2011-05-18 16:12:18.052791528 +0100
 @@ -1,5 +1,5 @@
  #
 -# Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
@@ -19,8 +19,8 @@
  FILES_cpp = \
  	CmdIDList.cpp \
 diff -Nru openjdk.orig/jdk/make/sun/awt/make.depend openjdk/jdk/make/sun/awt/make.depend
---- openjdk.orig/jdk/make/sun/awt/make.depend	2011-02-16 00:40:21.000000000 +0000
-+++ openjdk/jdk/make/sun/awt/make.depend	2011-02-16 01:27:25.000326551 +0000
+--- openjdk.orig/jdk/make/sun/awt/make.depend	2011-05-18 15:58:49.000000000 +0100
++++ openjdk/jdk/make/sun/awt/make.depend	2011-05-18 16:12:18.068791794 +0100
 @@ -16,7 +16,7 @@
  
  $(OBJDIR)/awt_AWTEvent.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
@@ -107,8 +107,8 @@
  $(OBJDIR)/UnicowsLoader.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
  
 diff -Nru openjdk.orig/jdk/make/sun/awt/Makefile openjdk/jdk/make/sun/awt/Makefile
---- openjdk.orig/jdk/make/sun/awt/Makefile	2011-02-16 00:40:21.000000000 +0000
-+++ openjdk/jdk/make/sun/awt/Makefile	2011-02-16 01:27:24.996326861 +0000
+--- openjdk.orig/jdk/make/sun/awt/Makefile	2011-05-18 15:58:49.000000000 +0100
++++ openjdk/jdk/make/sun/awt/Makefile	2011-05-18 16:12:18.076791927 +0100
 @@ -1,5 +1,5 @@
  #
 -# Copyright (c) 1995, 2008, Oracle and/or its affiliates. All rights reserved.
@@ -125,8 +125,8 @@
  vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/../java2d/loops
  vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/../java2d/pipe
 diff -Nru openjdk.orig/jdk/make/sun/awt/mapfile-mawt-vers openjdk/jdk/make/sun/awt/mapfile-mawt-vers
---- openjdk.orig/jdk/make/sun/awt/mapfile-mawt-vers	2011-02-16 00:40:21.000000000 +0000
-+++ openjdk/jdk/make/sun/awt/mapfile-mawt-vers	2011-02-16 01:27:25.000326551 +0000
+--- openjdk.orig/jdk/make/sun/awt/mapfile-mawt-vers	2011-05-18 15:58:49.000000000 +0100
++++ openjdk/jdk/make/sun/awt/mapfile-mawt-vers	2011-05-18 16:12:18.088792126 +0100
 @@ -291,6 +291,7 @@
  		Java_sun_awt_X11GraphicsConfig_createBackBuffer;
  		Java_sun_awt_X11GraphicsConfig_destroyBackBuffer;
@@ -136,8 +136,8 @@
  		Java_sun_awt_X11GraphicsDevice_getDisplay;
  		Java_sun_awt_X11GraphicsDevice_getDoubleBufferVisuals;
 diff -Nru openjdk.orig/jdk/make/sun/awt/mapfile-vers-linux openjdk/jdk/make/sun/awt/mapfile-vers-linux
---- openjdk.orig/jdk/make/sun/awt/mapfile-vers-linux	2011-02-16 00:40:21.000000000 +0000
-+++ openjdk/jdk/make/sun/awt/mapfile-vers-linux	2011-02-16 01:27:25.000326551 +0000
+--- openjdk.orig/jdk/make/sun/awt/mapfile-vers-linux	2011-05-18 15:58:49.000000000 +0100
++++ openjdk/jdk/make/sun/awt/mapfile-vers-linux	2011-05-18 16:12:18.088792126 +0100
 @@ -406,6 +406,7 @@
  		Java_sun_awt_X11GraphicsConfig_getNumColors;
  		Java_sun_awt_X11GraphicsConfig_getXResolution;
@@ -147,8 +147,8 @@
  		Java_sun_awt_X11GraphicsDevice_getDisplay;
  		Java_sun_awt_X11GraphicsDevice_getDoubleBufferVisuals;
 diff -Nru openjdk.orig/jdk/make/sun/xawt/mapfile-vers openjdk/jdk/make/sun/xawt/mapfile-vers
---- openjdk.orig/jdk/make/sun/xawt/mapfile-vers	2011-02-16 00:40:21.000000000 +0000
-+++ openjdk/jdk/make/sun/xawt/mapfile-vers	2011-02-16 01:27:25.000326551 +0000
+--- openjdk.orig/jdk/make/sun/xawt/mapfile-vers	2011-05-18 15:58:49.000000000 +0100
++++ openjdk/jdk/make/sun/xawt/mapfile-vers	2011-05-18 16:12:18.088792126 +0100
 @@ -216,6 +216,7 @@
          Java_sun_awt_X11GraphicsConfig_createBackBuffer;
  	Java_sun_awt_X11GraphicsConfig_destroyBackBuffer;
@@ -158,8 +158,8 @@
          Java_java_awt_KeyboardFocusManager_initIDs;
          Java_java_awt_Font_initIDs;
 diff -Nru openjdk.orig/jdk/src/share/classes/com/sun/awt/AWTUtilities.java openjdk/jdk/src/share/classes/com/sun/awt/AWTUtilities.java
---- openjdk.orig/jdk/src/share/classes/com/sun/awt/AWTUtilities.java	2011-02-16 00:40:21.000000000 +0000
-+++ openjdk/jdk/src/share/classes/com/sun/awt/AWTUtilities.java	2011-02-16 01:27:25.000326551 +0000
+--- openjdk.orig/jdk/src/share/classes/com/sun/awt/AWTUtilities.java	2011-05-18 15:58:48.000000000 +0100
++++ openjdk/jdk/src/share/classes/com/sun/awt/AWTUtilities.java	2011-05-18 16:12:18.088792126 +0100
 @@ -26,17 +26,37 @@
  package com.sun.awt;
  
@@ -545,15 +545,8 @@
       * Sets a 'mixing-cutout' shape for the given component.
       *
 diff -Nru openjdk.orig/jdk/src/share/classes/java/awt/Component.java openjdk/jdk/src/share/classes/java/awt/Component.java
---- openjdk.orig/jdk/src/share/classes/java/awt/Component.java	2011-02-16 00:40:21.000000000 +0000
-+++ openjdk/jdk/src/share/classes/java/awt/Component.java	2011-02-16 02:00:18.147235768 +0000
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 1995, 2007, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 1995, 2009, Oracle and/or its affiliates. All rights reserved.
-  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-  *
-  * This code is free software; you can redistribute it and/or modify it
+--- openjdk.orig/jdk/src/share/classes/java/awt/Component.java	2011-05-18 15:58:49.000000000 +0100
++++ openjdk/jdk/src/share/classes/java/awt/Component.java	2011-05-18 16:12:18.088792126 +0100
 @@ -806,18 +806,27 @@
              }
      }
@@ -663,8 +656,8 @@
 +    }
  }
 diff -Nru openjdk.orig/jdk/src/share/classes/java/awt/Container.java openjdk/jdk/src/share/classes/java/awt/Container.java
---- openjdk.orig/jdk/src/share/classes/java/awt/Container.java	2011-02-16 00:40:21.000000000 +0000
-+++ openjdk/jdk/src/share/classes/java/awt/Container.java	2011-02-16 01:27:25.004326241 +0000
+--- openjdk.orig/jdk/src/share/classes/java/awt/Container.java	2011-05-18 15:58:48.000000000 +0100
++++ openjdk/jdk/src/share/classes/java/awt/Container.java	2011-05-18 16:12:18.092792193 +0100
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1995, 2008, Oracle and/or its affiliates. All rights reserved.
@@ -683,8 +676,8 @@
       * JDK 1.1 serialVersionUID
       */
 diff -Nru openjdk.orig/jdk/src/share/classes/java/awt/DefaultKeyboardFocusManager.java openjdk/jdk/src/share/classes/java/awt/DefaultKeyboardFocusManager.java
---- openjdk.orig/jdk/src/share/classes/java/awt/DefaultKeyboardFocusManager.java	2011-02-16 00:40:21.000000000 +0000
-+++ openjdk/jdk/src/share/classes/java/awt/DefaultKeyboardFocusManager.java	2011-02-16 01:27:25.004326241 +0000
+--- openjdk.orig/jdk/src/share/classes/java/awt/DefaultKeyboardFocusManager.java	2011-05-18 15:58:48.000000000 +0100
++++ openjdk/jdk/src/share/classes/java/awt/DefaultKeyboardFocusManager.java	2011-05-18 16:12:18.092792193 +0100
 @@ -480,7 +480,7 @@
                  // that a Component outside of the focused Window receives a
                  // FOCUS_GAINED event. We synthesize a WINDOW_GAINED_FOCUS
@@ -695,8 +688,8 @@
                  if (newFocusedWindow != null &&
                      newFocusedWindow != currentFocusedWindow)
 diff -Nru openjdk.orig/jdk/src/share/classes/java/awt/GraphicsConfiguration.java openjdk/jdk/src/share/classes/java/awt/GraphicsConfiguration.java
---- openjdk.orig/jdk/src/share/classes/java/awt/GraphicsConfiguration.java	2011-01-20 23:54:13.000000000 +0000
-+++ openjdk/jdk/src/share/classes/java/awt/GraphicsConfiguration.java	2011-02-16 01:27:25.004326241 +0000
+--- openjdk.orig/jdk/src/share/classes/java/awt/GraphicsConfiguration.java	2011-01-07 21:32:53.000000000 +0000
++++ openjdk/jdk/src/share/classes/java/awt/GraphicsConfiguration.java	2011-05-18 16:12:18.092792193 +0100
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
@@ -726,8 +719,8 @@
      }
 +}
 diff -Nru openjdk.orig/jdk/src/share/classes/java/awt/GraphicsDevice.java openjdk/jdk/src/share/classes/java/awt/GraphicsDevice.java
---- openjdk.orig/jdk/src/share/classes/java/awt/GraphicsDevice.java	2011-02-16 00:40:21.000000000 +0000
-+++ openjdk/jdk/src/share/classes/java/awt/GraphicsDevice.java	2011-02-16 01:27:25.004326241 +0000
+--- openjdk.orig/jdk/src/share/classes/java/awt/GraphicsDevice.java	2011-05-18 15:58:49.000000000 +0100
++++ openjdk/jdk/src/share/classes/java/awt/GraphicsDevice.java	2011-05-18 16:12:18.092792193 +0100
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
@@ -896,8 +889,8 @@
 +    }
  }
 diff -Nru openjdk.orig/jdk/src/share/classes/java/awt/KeyboardFocusManager.java openjdk/jdk/src/share/classes/java/awt/KeyboardFocusManager.java
---- openjdk.orig/jdk/src/share/classes/java/awt/KeyboardFocusManager.java	2011-02-16 00:40:21.000000000 +0000
-+++ openjdk/jdk/src/share/classes/java/awt/KeyboardFocusManager.java	2011-02-16 01:27:25.004326241 +0000
+--- openjdk.orig/jdk/src/share/classes/java/awt/KeyboardFocusManager.java	2011-05-18 15:58:48.000000000 +0100
++++ openjdk/jdk/src/share/classes/java/awt/KeyboardFocusManager.java	2011-05-18 16:12:18.092792193 +0100
 @@ -2210,7 +2210,7 @@
                                                    boolean temporary, boolean focusedWindowChangeAllowed,
                                                    long time)
@@ -939,8 +932,8 @@
              return false;
          }
 diff -Nru openjdk.orig/jdk/src/share/classes/java/awt/peer/WindowPeer.java openjdk/jdk/src/share/classes/java/awt/peer/WindowPeer.java
---- openjdk.orig/jdk/src/share/classes/java/awt/peer/WindowPeer.java	2011-01-20 23:54:15.000000000 +0000
-+++ openjdk/jdk/src/share/classes/java/awt/peer/WindowPeer.java	2011-02-16 01:27:25.004326241 +0000
+--- openjdk.orig/jdk/src/share/classes/java/awt/peer/WindowPeer.java	2011-01-07 21:32:53.000000000 +0000
++++ openjdk/jdk/src/share/classes/java/awt/peer/WindowPeer.java	2011-05-18 16:12:18.096792260 +0100
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1995, 2007, Oracle and/or its affiliates. All rights reserved.
@@ -985,8 +978,8 @@
 +    void updateWindow(BufferedImage backBuffer);
  }
 diff -Nru openjdk.orig/jdk/src/share/classes/java/awt/Window.java openjdk/jdk/src/share/classes/java/awt/Window.java
---- openjdk.orig/jdk/src/share/classes/java/awt/Window.java	2011-01-20 23:54:14.000000000 +0000
-+++ openjdk/jdk/src/share/classes/java/awt/Window.java	2011-02-16 01:27:25.004326241 +0000
+--- openjdk.orig/jdk/src/share/classes/java/awt/Window.java	2011-01-07 21:32:53.000000000 +0000
++++ openjdk/jdk/src/share/classes/java/awt/Window.java	2011-05-18 16:12:18.096792260 +0100
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1995, 2007, Oracle and/or its affiliates. All rights reserved.
@@ -1328,8 +1321,8 @@
  
  
 diff -Nru openjdk.orig/jdk/src/share/classes/javax/swing/RepaintManager.java openjdk/jdk/src/share/classes/javax/swing/RepaintManager.java
---- openjdk.orig/jdk/src/share/classes/javax/swing/RepaintManager.java	2011-01-20 23:54:21.000000000 +0000
-+++ openjdk/jdk/src/share/classes/javax/swing/RepaintManager.java	2011-02-16 01:27:25.008325931 +0000
+--- openjdk.orig/jdk/src/share/classes/javax/swing/RepaintManager.java	2011-01-07 21:32:57.000000000 +0000
++++ openjdk/jdk/src/share/classes/javax/swing/RepaintManager.java	2011-05-18 16:12:18.096792260 +0100
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
@@ -1402,8 +1395,8 @@
  
          for (Component dirty : tmpDirtyComponents.keySet()) {
 diff -Nru openjdk.orig/jdk/src/share/classes/sun/awt/AWTAccessor.java openjdk/jdk/src/share/classes/sun/awt/AWTAccessor.java
---- openjdk.orig/jdk/src/share/classes/sun/awt/AWTAccessor.java	2011-02-16 00:40:21.000000000 +0000
-+++ openjdk/jdk/src/share/classes/sun/awt/AWTAccessor.java	2011-02-16 01:43:59.459209438 +0000
+--- openjdk.orig/jdk/src/share/classes/sun/awt/AWTAccessor.java	2011-05-18 15:58:48.000000000 +0100
++++ openjdk/jdk/src/share/classes/sun/awt/AWTAccessor.java	2011-05-18 16:12:18.096792260 +0100
 @@ -59,10 +59,29 @@
       * An interface of accessor for the java.awt.Component class.
       */
@@ -1518,8 +1511,8 @@
 +
  }
 diff -Nru openjdk.orig/jdk/src/share/classes/sun/awt/EmbeddedFrame.java openjdk/jdk/src/share/classes/sun/awt/EmbeddedFrame.java
---- openjdk.orig/jdk/src/share/classes/sun/awt/EmbeddedFrame.java	2011-01-20 23:54:24.000000000 +0000
-+++ openjdk/jdk/src/share/classes/sun/awt/EmbeddedFrame.java	2011-02-16 01:27:25.008325931 +0000
+--- openjdk.orig/jdk/src/share/classes/sun/awt/EmbeddedFrame.java	2011-01-07 21:32:58.000000000 +0000
++++ openjdk/jdk/src/share/classes/sun/awt/EmbeddedFrame.java	2011-05-18 16:12:18.096792260 +0100
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1996, 2006, Oracle and/or its affiliates. All rights reserved.
@@ -1542,8 +1535,8 @@
 +     }
  } // class EmbeddedFrame
 diff -Nru openjdk.orig/jdk/src/share/classes/sun/awt/SunToolkit.java openjdk/jdk/src/share/classes/sun/awt/SunToolkit.java
---- openjdk.orig/jdk/src/share/classes/sun/awt/SunToolkit.java	2011-02-16 00:40:21.000000000 +0000
-+++ openjdk/jdk/src/share/classes/sun/awt/SunToolkit.java	2011-02-16 01:27:25.008325931 +0000
+--- openjdk.orig/jdk/src/share/classes/sun/awt/SunToolkit.java	2011-05-18 15:58:48.000000000 +0100
++++ openjdk/jdk/src/share/classes/sun/awt/SunToolkit.java	2011-05-18 16:12:18.096792260 +0100
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
@@ -1574,7 +1567,7 @@
  import sun.awt.image.*;
  import sun.security.action.GetPropertyAction;
  import sun.security.action.GetBooleanAction;
-@@ -825,16 +820,31 @@
+@@ -824,16 +819,31 @@
      }
  
      /**
@@ -1614,7 +1607,7 @@
      }
  
      /**
-@@ -1973,6 +1983,18 @@
+@@ -1972,6 +1982,18 @@
          AWTAutoShutdown.getInstance().dumpPeers(aLog);
      }
  
@@ -1633,7 +1626,7 @@
      private static Boolean sunAwtDisableMixing = null;
  
      /**
-@@ -1996,6 +2018,73 @@
+@@ -1995,6 +2017,73 @@
      public boolean isNativeGTKAvailable() {
          return false;
      }
@@ -1709,7 +1702,7 @@
  
 diff -Nru openjdk.orig/jdk/src/share/native/sun/awt/utility/rect.c openjdk/jdk/src/share/native/sun/awt/utility/rect.c
 --- openjdk.orig/jdk/src/share/native/sun/awt/utility/rect.c	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/src/share/native/sun/awt/utility/rect.c	2011-02-16 01:27:25.008325931 +0000
++++ openjdk/jdk/src/share/native/sun/awt/utility/rect.c	2011-05-18 16:12:18.096792260 +0100
 @@ -0,0 +1,102 @@
 +/*
 + * Copyright (c) 2008, 2009, Oracle and/or its affiliates. All rights reserved.
@@ -1814,8 +1807,8 @@
 +}
 +#endif
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/generator/WrapperGenerator.java openjdk/jdk/src/solaris/classes/sun/awt/X11/generator/WrapperGenerator.java
---- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/generator/WrapperGenerator.java	2011-01-20 23:54:40.000000000 +0000
-+++ openjdk/jdk/src/solaris/classes/sun/awt/X11/generator/WrapperGenerator.java	2011-02-16 01:27:25.008325931 +0000
+--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/generator/WrapperGenerator.java	2011-01-07 21:33:04.000000000 +0000
++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/generator/WrapperGenerator.java	2011-05-18 16:12:18.100792327 +0100
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
@@ -1841,8 +1834,8 @@
                          pw.println("\t\tlog.finest(\"Creating\");");
                      }
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/generator/xlibtypes.txt openjdk/jdk/src/solaris/classes/sun/awt/X11/generator/xlibtypes.txt
---- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/generator/xlibtypes.txt	2011-01-20 23:54:40.000000000 +0000
-+++ openjdk/jdk/src/solaris/classes/sun/awt/X11/generator/xlibtypes.txt	2011-02-16 01:27:25.008325931 +0000
+--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/generator/xlibtypes.txt	2011-01-07 21:33:04.000000000 +0000
++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/generator/xlibtypes.txt	2011-05-18 16:12:18.100792327 +0100
 @@ -750,6 +750,7 @@
      pixelStride int
      color_data pointer ColorData
@@ -1852,8 +1845,8 @@
  AwtScreenData
      numConfigs int
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XNETProtocol.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XNETProtocol.java
---- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XNETProtocol.java	2011-01-20 23:54:40.000000000 +0000
-+++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XNETProtocol.java	2011-02-16 01:27:25.008325931 +0000
+--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XNETProtocol.java	2011-01-07 21:33:04.000000000 +0000
++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XNETProtocol.java	2011-05-18 16:12:18.100792327 +0100
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
@@ -1884,8 +1877,8 @@
          if (!active()) {
              return false;
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java
---- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java	2011-01-20 23:54:40.000000000 +0000
-+++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java	2011-02-16 01:27:25.008325931 +0000
+--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java	2011-01-07 21:33:04.000000000 +0000
++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java	2011-05-18 16:12:18.100792327 +0100
 @@ -2181,4 +2181,35 @@
          return new XDesktopPeer();
      }
@@ -1923,8 +1916,8 @@
 +    }
  }
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java
---- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java	2011-01-20 23:54:40.000000000 +0000
-+++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java	2011-02-16 01:27:25.008325931 +0000
+--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java	2011-01-07 21:33:04.000000000 +0000
++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java	2011-05-18 16:12:18.100792327 +0100
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2002, 2007, Oracle and/or its affiliates. All rights reserved.
@@ -2038,8 +2031,8 @@
 +    }
  }
 diff -Nru openjdk.orig/jdk/src/solaris/classes/sun/awt/X11GraphicsConfig.java openjdk/jdk/src/solaris/classes/sun/awt/X11GraphicsConfig.java
---- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11GraphicsConfig.java	2011-02-16 00:40:21.000000000 +0000
-+++ openjdk/jdk/src/solaris/classes/sun/awt/X11GraphicsConfig.java	2011-02-16 01:27:25.008325931 +0000
+--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11GraphicsConfig.java	2011-05-18 15:58:49.000000000 +0100
++++ openjdk/jdk/src/solaris/classes/sun/awt/X11GraphicsConfig.java	2011-05-18 16:12:18.100792327 +0100
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
@@ -2062,8 +2055,8 @@
 +    private native boolean isTranslucencyCapable(long x11ConfigData);
  }
 diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/awt_GraphicsEnv.c openjdk/jdk/src/solaris/native/sun/awt/awt_GraphicsEnv.c
---- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_GraphicsEnv.c	2011-01-20 23:54:42.000000000 +0000
-+++ openjdk/jdk/src/solaris/native/sun/awt/awt_GraphicsEnv.c	2011-02-16 01:27:25.008325931 +0000
+--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_GraphicsEnv.c	2011-01-07 21:33:07.000000000 +0000
++++ openjdk/jdk/src/solaris/native/sun/awt/awt_GraphicsEnv.c	2011-05-18 16:12:18.100792327 +0100
 @@ -323,6 +323,48 @@
      return NULL;
  }
@@ -2200,8 +2193,8 @@
   * Method:    isDBESupported
   * Signature: ()Z
 diff -Nru openjdk.orig/jdk/src/solaris/native/sun/awt/awt_p.h openjdk/jdk/src/solaris/native/sun/awt/awt_p.h
---- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_p.h	2011-01-20 23:54:42.000000000 +0000
-+++ openjdk/jdk/src/solaris/native/sun/awt/awt_p.h	2011-02-16 01:27:25.008325931 +0000
+--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_p.h	2011-01-07 21:33:07.000000000 +0000
++++ openjdk/jdk/src/solaris/native/sun/awt/awt_p.h	2011-05-18 16:12:18.100792327 +0100
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1995, 2005, Oracle and/or its affiliates. All rights reserved.
@@ -2218,8 +2211,8 @@
  
  typedef AwtGraphicsConfigData* AwtGraphicsConfigDataPtr;
 diff -Nru openjdk.orig/jdk/src/windows/classes/sun/awt/Win32GraphicsConfig.java openjdk/jdk/src/windows/classes/sun/awt/Win32GraphicsConfig.java
---- openjdk.orig/jdk/src/windows/classes/sun/awt/Win32GraphicsConfig.java	2011-02-16 00:40:21.000000000 +0000
-+++ openjdk/jdk/src/windows/classes/sun/awt/Win32GraphicsConfig.java	2011-02-16 01:27:25.008325931 +0000
+--- openjdk.orig/jdk/src/windows/classes/sun/awt/Win32GraphicsConfig.java	2011-05-18 15:58:49.000000000 +0100
++++ openjdk/jdk/src/windows/classes/sun/awt/Win32GraphicsConfig.java	2011-05-18 16:12:18.100792327 +0100
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
@@ -2241,8 +2234,8 @@
 +    }
  }
 diff -Nru openjdk.orig/jdk/src/windows/classes/sun/awt/Win32GraphicsEnvironment.java openjdk/jdk/src/windows/classes/sun/awt/Win32GraphicsEnvironment.java
---- openjdk.orig/jdk/src/windows/classes/sun/awt/Win32GraphicsEnvironment.java	2011-02-16 00:40:21.000000000 +0000
-+++ openjdk/jdk/src/windows/classes/sun/awt/Win32GraphicsEnvironment.java	2011-02-16 01:27:25.012325621 +0000
+--- openjdk.orig/jdk/src/windows/classes/sun/awt/Win32GraphicsEnvironment.java	2011-05-18 15:58:49.000000000 +0100
++++ openjdk/jdk/src/windows/classes/sun/awt/Win32GraphicsEnvironment.java	2011-05-18 16:12:18.104792394 +0100
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
@@ -2250,9 +2243,9 @@
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   *
   * This code is free software; you can redistribute it and/or modify it
-@@ -379,4 +379,11 @@
-     private static void dwmCompositionChanged(boolean enabled) {
-         isDWMCompositionEnabled = enabled;
+@@ -384,4 +384,11 @@
+     public boolean isDisplayLocal() {
+         return true;
      }
 +
 +    /**
@@ -2264,7 +2257,7 @@
  }
 diff -Nru openjdk.orig/jdk/src/windows/classes/sun/awt/windows/TranslucentWindowPainter.java openjdk/jdk/src/windows/classes/sun/awt/windows/TranslucentWindowPainter.java
 --- openjdk.orig/jdk/src/windows/classes/sun/awt/windows/TranslucentWindowPainter.java	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/src/windows/classes/sun/awt/windows/TranslucentWindowPainter.java	2011-02-16 01:27:25.012325621 +0000
++++ openjdk/jdk/src/windows/classes/sun/awt/windows/TranslucentWindowPainter.java	2011-05-18 16:12:18.104792394 +0100
 @@ -0,0 +1,398 @@
 +/*
 + * Copyright (c) 2008, 2009, Oracle and/or its affiliates. All rights reserved.
@@ -2665,8 +2658,8 @@
 +    }
 +}
 diff -Nru openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WCanvasPeer.java openjdk/jdk/src/windows/classes/sun/awt/windows/WCanvasPeer.java
---- openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WCanvasPeer.java	2011-01-20 23:54:43.000000000 +0000
-+++ openjdk/jdk/src/windows/classes/sun/awt/windows/WCanvasPeer.java	2011-02-16 01:27:25.012325621 +0000
+--- openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WCanvasPeer.java	2011-01-07 21:33:07.000000000 +0000
++++ openjdk/jdk/src/windows/classes/sun/awt/windows/WCanvasPeer.java	2011-05-18 16:12:18.104792394 +0100
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1996, 2007, Oracle and/or its affiliates. All rights reserved.
@@ -2714,8 +2707,8 @@
          super.print(g);
      }
 diff -Nru openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WComponentPeer.java openjdk/jdk/src/windows/classes/sun/awt/windows/WComponentPeer.java
---- openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WComponentPeer.java	2011-02-16 00:40:21.000000000 +0000
-+++ openjdk/jdk/src/windows/classes/sun/awt/windows/WComponentPeer.java	2011-02-16 01:27:25.012325621 +0000
+--- openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WComponentPeer.java	2011-05-18 15:58:49.000000000 +0100
++++ openjdk/jdk/src/windows/classes/sun/awt/windows/WComponentPeer.java	2011-05-18 16:12:18.104792394 +0100
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1996, 2008, Oracle and/or its affiliates. All rights reserved.
@@ -2842,8 +2835,8 @@
              shapeLog.finer(
                      "*** INFO: Setting shape: PEER: " + this
 diff -Nru openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WFileDialogPeer.java openjdk/jdk/src/windows/classes/sun/awt/windows/WFileDialogPeer.java
---- openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WFileDialogPeer.java	2011-01-20 23:54:43.000000000 +0000
-+++ openjdk/jdk/src/windows/classes/sun/awt/windows/WFileDialogPeer.java	2011-02-16 01:27:25.012325621 +0000
+--- openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WFileDialogPeer.java	2011-01-07 21:33:07.000000000 +0000
++++ openjdk/jdk/src/windows/classes/sun/awt/windows/WFileDialogPeer.java	2011-05-18 16:12:18.104792394 +0100
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1996, 2007, Oracle and/or its affiliates. All rights reserved.
@@ -2863,8 +2856,8 @@
 +    public void updateWindow(java.awt.image.BufferedImage backBuffer) {}
  }
 diff -Nru openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WPrintDialogPeer.java openjdk/jdk/src/windows/classes/sun/awt/windows/WPrintDialogPeer.java
---- openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WPrintDialogPeer.java	2011-01-20 23:54:43.000000000 +0000
-+++ openjdk/jdk/src/windows/classes/sun/awt/windows/WPrintDialogPeer.java	2011-02-16 01:27:25.012325621 +0000
+--- openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WPrintDialogPeer.java	2011-01-07 21:33:07.000000000 +0000
++++ openjdk/jdk/src/windows/classes/sun/awt/windows/WPrintDialogPeer.java	2011-05-18 16:12:18.104792394 +0100
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved.
@@ -2884,8 +2877,8 @@
 +    public void updateWindow(java.awt.image.BufferedImage backBuffer) {}
  }
 diff -Nru openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WToolkit.java openjdk/jdk/src/windows/classes/sun/awt/windows/WToolkit.java
---- openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WToolkit.java	2011-02-16 00:40:21.000000000 +0000
-+++ openjdk/jdk/src/windows/classes/sun/awt/windows/WToolkit.java	2011-02-16 01:27:25.012325621 +0000
+--- openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WToolkit.java	2011-05-18 15:58:49.000000000 +0100
++++ openjdk/jdk/src/windows/classes/sun/awt/windows/WToolkit.java	2011-05-18 16:12:18.104792394 +0100
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1996, 2008, Oracle and/or its affiliates. All rights reserved.
@@ -2929,8 +2922,8 @@
 +    }
  }
 diff -Nru openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WWindowPeer.java openjdk/jdk/src/windows/classes/sun/awt/windows/WWindowPeer.java
---- openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WWindowPeer.java	2011-01-20 23:54:43.000000000 +0000
-+++ openjdk/jdk/src/windows/classes/sun/awt/windows/WWindowPeer.java	2011-02-16 01:27:25.012325621 +0000
+--- openjdk.orig/jdk/src/windows/classes/sun/awt/windows/WWindowPeer.java	2011-01-07 21:33:07.000000000 +0000
++++ openjdk/jdk/src/windows/classes/sun/awt/windows/WWindowPeer.java	2011-05-18 16:12:18.104792394 +0100
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1996, 2007, Oracle and/or its affiliates. All rights reserved.
@@ -3177,8 +3170,8 @@
       * Static inner class, listens for 'activeWindow' KFM property changes and
       * updates the list of active windows per AppContext, so the latest active
 diff -Nru openjdk.orig/jdk/src/windows/classes/sun/java2d/opengl/WGLSurfaceData.java openjdk/jdk/src/windows/classes/sun/java2d/opengl/WGLSurfaceData.java
---- openjdk.orig/jdk/src/windows/classes/sun/java2d/opengl/WGLSurfaceData.java	2011-02-16 00:40:21.000000000 +0000
-+++ openjdk/jdk/src/windows/classes/sun/java2d/opengl/WGLSurfaceData.java	2011-02-16 01:27:25.012325621 +0000
+--- openjdk.orig/jdk/src/windows/classes/sun/java2d/opengl/WGLSurfaceData.java	2011-05-18 15:58:49.000000000 +0100
++++ openjdk/jdk/src/windows/classes/sun/java2d/opengl/WGLSurfaceData.java	2011-05-18 16:12:18.112792526 +0100
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2004, 2008, Oracle and/or its affiliates. All rights reserved.
@@ -3211,8 +3204,8 @@
              return null;
          }
 diff -Nru openjdk.orig/jdk/src/windows/native/sun/awt/utility/rect.h openjdk/jdk/src/windows/native/sun/awt/utility/rect.h
---- openjdk.orig/jdk/src/windows/native/sun/awt/utility/rect.h	2011-01-20 23:54:44.000000000 +0000
-+++ openjdk/jdk/src/windows/native/sun/awt/utility/rect.h	2011-02-16 01:27:25.012325621 +0000
+--- openjdk.orig/jdk/src/windows/native/sun/awt/utility/rect.h	2011-01-07 21:33:08.000000000 +0000
++++ openjdk/jdk/src/windows/native/sun/awt/utility/rect.h	2011-05-18 16:12:18.112792526 +0100
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
@@ -3237,8 +3230,8 @@
  
  #endif // _AWT_RECT_H
 diff -Nru openjdk.orig/jdk/src/windows/native/sun/java2d/d3d/D3DSurfaceData.cpp openjdk/jdk/src/windows/native/sun/java2d/d3d/D3DSurfaceData.cpp
---- openjdk.orig/jdk/src/windows/native/sun/java2d/d3d/D3DSurfaceData.cpp	2011-02-16 00:40:21.000000000 +0000
-+++ openjdk/jdk/src/windows/native/sun/java2d/d3d/D3DSurfaceData.cpp	2011-02-16 01:27:25.012325621 +0000
+--- openjdk.orig/jdk/src/windows/native/sun/java2d/d3d/D3DSurfaceData.cpp	2011-05-18 15:58:49.000000000 +0100
++++ openjdk/jdk/src/windows/native/sun/java2d/d3d/D3DSurfaceData.cpp	2011-05-18 16:12:18.112792526 +0100
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2007, 2008, Oracle and/or its affiliates. All rights reserved.
@@ -3270,8 +3263,8 @@
      // hBitmap is released in UpdateWindow
  
 diff -Nru openjdk.orig/jdk/src/windows/native/sun/java2d/opengl/WGLSurfaceData.c openjdk/jdk/src/windows/native/sun/java2d/opengl/WGLSurfaceData.c
---- openjdk.orig/jdk/src/windows/native/sun/java2d/opengl/WGLSurfaceData.c	2011-02-16 00:40:21.000000000 +0000
-+++ openjdk/jdk/src/windows/native/sun/java2d/opengl/WGLSurfaceData.c	2011-02-16 01:27:25.012325621 +0000
+--- openjdk.orig/jdk/src/windows/native/sun/java2d/opengl/WGLSurfaceData.c	2011-05-18 15:58:49.000000000 +0100
++++ openjdk/jdk/src/windows/native/sun/java2d/opengl/WGLSurfaceData.c	2011-05-18 16:12:18.112792526 +0100
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2004, 2008, Oracle and/or its affiliates. All rights reserved.
@@ -3301,8 +3294,8 @@
      // hBitmap is released in UpdateWindow
  
 diff -Nru openjdk.orig/jdk/src/windows/native/sun/windows/awt_BitmapUtil.cpp openjdk/jdk/src/windows/native/sun/windows/awt_BitmapUtil.cpp
---- openjdk.orig/jdk/src/windows/native/sun/windows/awt_BitmapUtil.cpp	2011-01-20 23:54:44.000000000 +0000
-+++ openjdk/jdk/src/windows/native/sun/windows/awt_BitmapUtil.cpp	2011-02-16 01:27:25.012325621 +0000
+--- openjdk.orig/jdk/src/windows/native/sun/windows/awt_BitmapUtil.cpp	2011-01-07 21:33:08.000000000 +0000
++++ openjdk/jdk/src/windows/native/sun/windows/awt_BitmapUtil.cpp	2011-05-18 16:12:18.112792526 +0100
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
@@ -3549,8 +3542,8 @@
 +                bitmapBitsPtr, NULL, 0);
 +}
 diff -Nru openjdk.orig/jdk/src/windows/native/sun/windows/awt_BitmapUtil.h openjdk/jdk/src/windows/native/sun/windows/awt_BitmapUtil.h
---- openjdk.orig/jdk/src/windows/native/sun/windows/awt_BitmapUtil.h	2011-01-20 23:54:44.000000000 +0000
-+++ openjdk/jdk/src/windows/native/sun/windows/awt_BitmapUtil.h	2011-02-16 01:27:25.012325621 +0000
+--- openjdk.orig/jdk/src/windows/native/sun/windows/awt_BitmapUtil.h	2011-01-07 21:33:08.000000000 +0000
++++ openjdk/jdk/src/windows/native/sun/windows/awt_BitmapUtil.h	2011-05-18 16:12:18.112792526 +0100
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
@@ -3592,8 +3585,8 @@
  
  #endif
 diff -Nru openjdk.orig/jdk/src/windows/native/sun/windows/awt_Component.cpp openjdk/jdk/src/windows/native/sun/windows/awt_Component.cpp
---- openjdk.orig/jdk/src/windows/native/sun/windows/awt_Component.cpp	2011-02-16 00:40:21.000000000 +0000
-+++ openjdk/jdk/src/windows/native/sun/windows/awt_Component.cpp	2011-02-16 01:27:25.012325621 +0000
+--- openjdk.orig/jdk/src/windows/native/sun/windows/awt_Component.cpp	2011-05-18 15:58:49.000000000 +0100
++++ openjdk/jdk/src/windows/native/sun/windows/awt_Component.cpp	2011-05-18 16:12:18.112792526 +0100
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1996, 2007, Oracle and/or its affiliates. All rights reserved.
@@ -3656,8 +3649,8 @@
              // If all the params are zeros, the shape must be simply reset.
              // Otherwise, convert it into a region.
 diff -Nru openjdk.orig/jdk/src/windows/native/sun/windows/awt_Component.h openjdk/jdk/src/windows/native/sun/windows/awt_Component.h
---- openjdk.orig/jdk/src/windows/native/sun/windows/awt_Component.h	2011-02-16 00:40:21.000000000 +0000
-+++ openjdk/jdk/src/windows/native/sun/windows/awt_Component.h	2011-02-16 01:27:25.016325311 +0000
+--- openjdk.orig/jdk/src/windows/native/sun/windows/awt_Component.h	2011-05-18 15:58:49.000000000 +0100
++++ openjdk/jdk/src/windows/native/sun/windows/awt_Component.h	2011-05-18 16:12:18.120792659 +0100
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1996, 2008, Oracle and/or its affiliates. All rights reserved.
@@ -3689,8 +3682,8 @@
  private:
      BOOL m_bSubclassed;
 diff -Nru openjdk.orig/jdk/src/windows/native/sun/windows/awt_Window.cpp openjdk/jdk/src/windows/native/sun/windows/awt_Window.cpp
---- openjdk.orig/jdk/src/windows/native/sun/windows/awt_Window.cpp	2011-02-16 00:40:21.000000000 +0000
-+++ openjdk/jdk/src/windows/native/sun/windows/awt_Window.cpp	2011-02-16 01:27:25.016325311 +0000
+--- openjdk.orig/jdk/src/windows/native/sun/windows/awt_Window.cpp	2011-05-18 15:58:49.000000000 +0100
++++ openjdk/jdk/src/windows/native/sun/windows/awt_Window.cpp	2011-05-18 16:12:18.120792659 +0100
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1996, 2007, Oracle and/or its affiliates. All rights reserved.
@@ -4164,8 +4157,8 @@
  
  } /* extern "C" */
 diff -Nru openjdk.orig/jdk/src/windows/native/sun/windows/awt_Window.h openjdk/jdk/src/windows/native/sun/windows/awt_Window.h
---- openjdk.orig/jdk/src/windows/native/sun/windows/awt_Window.h	2011-02-16 00:40:21.000000000 +0000
-+++ openjdk/jdk/src/windows/native/sun/windows/awt_Window.h	2011-02-16 01:27:25.016325311 +0000
+--- openjdk.orig/jdk/src/windows/native/sun/windows/awt_Window.h	2011-05-18 15:58:49.000000000 +0100
++++ openjdk/jdk/src/windows/native/sun/windows/awt_Window.h	2011-05-18 16:12:18.120792659 +0100
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1996, 2007, Oracle and/or its affiliates. All rights reserved.
@@ -4239,7 +4232,7 @@
      int m_screenNum;
 diff -Nru openjdk.orig/jdk/test/com/sun/awt/Translucency/TranslucentJAppletTest/TranslucentJAppletTest.java openjdk/jdk/test/com/sun/awt/Translucency/TranslucentJAppletTest/TranslucentJAppletTest.java
 --- openjdk.orig/jdk/test/com/sun/awt/Translucency/TranslucentJAppletTest/TranslucentJAppletTest.java	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/test/com/sun/awt/Translucency/TranslucentJAppletTest/TranslucentJAppletTest.java	2011-02-16 01:27:25.016325311 +0000
++++ openjdk/jdk/test/com/sun/awt/Translucency/TranslucentJAppletTest/TranslucentJAppletTest.java	2011-05-18 16:12:18.120792659 +0100
 @@ -0,0 +1,103 @@
 +/*
 + * Copyright (c) 2008, 2009, Oracle and/or its affiliates. All rights reserved.
@@ -4346,7 +4339,7 @@
 +}
 diff -Nru openjdk.orig/jdk/test/com/sun/awt/Translucency/TranslucentShapedFrameTest/TranslucentShapedFrameTest.form openjdk/jdk/test/com/sun/awt/Translucency/TranslucentShapedFrameTest/TranslucentShapedFrameTest.form
 --- openjdk.orig/jdk/test/com/sun/awt/Translucency/TranslucentShapedFrameTest/TranslucentShapedFrameTest.form	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/test/com/sun/awt/Translucency/TranslucentShapedFrameTest/TranslucentShapedFrameTest.form	2011-02-16 01:27:25.016325311 +0000
++++ openjdk/jdk/test/com/sun/awt/Translucency/TranslucentShapedFrameTest/TranslucentShapedFrameTest.form	2011-05-18 16:12:18.120792659 +0100
 @@ -0,0 +1,230 @@
 +<?xml version="1.0" encoding="UTF-8" ?>
 +
@@ -4580,7 +4573,7 @@
 +</Form>
 diff -Nru openjdk.orig/jdk/test/com/sun/awt/Translucency/TranslucentShapedFrameTest/TranslucentShapedFrameTest.java openjdk/jdk/test/com/sun/awt/Translucency/TranslucentShapedFrameTest/TranslucentShapedFrameTest.java
 --- openjdk.orig/jdk/test/com/sun/awt/Translucency/TranslucentShapedFrameTest/TranslucentShapedFrameTest.java	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/test/com/sun/awt/Translucency/TranslucentShapedFrameTest/TranslucentShapedFrameTest.java	2011-02-16 01:27:25.016325311 +0000
++++ openjdk/jdk/test/com/sun/awt/Translucency/TranslucentShapedFrameTest/TranslucentShapedFrameTest.java	2011-05-18 16:12:18.120792659 +0100
 @@ -0,0 +1,359 @@
 +/*
 + * Copyright (c) 2008, 2009, Oracle and/or its affiliates. All rights reserved.
@@ -4943,7 +4936,7 @@
 +}
 diff -Nru openjdk.orig/jdk/test/com/sun/awt/Translucency/TranslucentShapedFrameTest/TSFrame.java openjdk/jdk/test/com/sun/awt/Translucency/TranslucentShapedFrameTest/TSFrame.java
 --- openjdk.orig/jdk/test/com/sun/awt/Translucency/TranslucentShapedFrameTest/TSFrame.java	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/test/com/sun/awt/Translucency/TranslucentShapedFrameTest/TSFrame.java	2011-02-16 01:27:25.016325311 +0000
++++ openjdk/jdk/test/com/sun/awt/Translucency/TranslucentShapedFrameTest/TSFrame.java	2011-05-18 16:12:18.120792659 +0100
 @@ -0,0 +1,306 @@
 +/*
 + * Copyright (c) 2008, 2009, Oracle and/or its affiliates. All rights reserved.
@@ -5253,7 +5246,7 @@
 +}
 diff -Nru openjdk.orig/jdk/test/com/sun/awt/Translucency/WindowOpacity.java openjdk/jdk/test/com/sun/awt/Translucency/WindowOpacity.java
 --- openjdk.orig/jdk/test/com/sun/awt/Translucency/WindowOpacity.java	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/test/com/sun/awt/Translucency/WindowOpacity.java	2011-02-16 01:27:25.016325311 +0000
++++ openjdk/jdk/test/com/sun/awt/Translucency/WindowOpacity.java	2011-05-18 16:12:18.120792659 +0100
 @@ -0,0 +1,461 @@
 +/*
 + * Copyright (c) 2008, 2009, Oracle and/or its affiliates. All rights reserved.
@@ -5718,7 +5711,7 @@
 +}// TestDialog  class
 diff -Nru openjdk.orig/jdk/test/sun/java2d/pipe/RegionOps.java openjdk/jdk/test/sun/java2d/pipe/RegionOps.java
 --- openjdk.orig/jdk/test/sun/java2d/pipe/RegionOps.java	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jdk/test/sun/java2d/pipe/RegionOps.java	2011-02-16 01:27:25.016325311 +0000
++++ openjdk/jdk/test/sun/java2d/pipe/RegionOps.java	2011-05-18 16:12:18.120792659 +0100
 @@ -0,0 +1,533 @@
 +/*
 + * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
--- a/patches/openjdk/6768387-jtable_not_serializable.patch	Wed Jul 06 23:24:30 2011 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,106 +0,0 @@
-# HG changeset patch
-# User alexp
-# Date 1274805592 -14400
-# Node ID 8d59b361635f12e378b41b44c4b953849de0d9fa
-# Parent  1297a41dbb47e58e89f7f639cee933a677998318
-6768387: REGRESSION: JTable no longer serializable
-Reviewed-by: rupashka
-
-diff -r 1297a41dbb47 -r 8d59b361635f src/share/classes/sun/swing/table/DefaultTableCellHeaderRenderer.java
---- openjdk/jdk/src/share/classes/sun/swing/table/DefaultTableCellHeaderRenderer.java	Tue May 25 20:30:54 2010 +0400
-+++ openjdk/jdk/src/share/classes/sun/swing/table/DefaultTableCellHeaderRenderer.java	Tue May 25 20:39:52 2010 +0400
-@@ -24,6 +24,8 @@
-  */
- package sun.swing.table;
- 
-+import sun.swing.DefaultLookup;
-+
- import java.awt.Component;
- import java.awt.Color;
- import java.awt.FontMetrics;
-@@ -31,12 +33,11 @@
- import java.awt.Insets;
- import java.awt.Point;
- import java.awt.Rectangle;
-+import java.io.Serializable;
- import javax.swing.*;
- import javax.swing.plaf.UIResource;
- import javax.swing.border.Border;
- import javax.swing.table.*;
--import sun.swing.DefaultLookup;
--
- 
- public class DefaultTableCellHeaderRenderer extends DefaultTableCellRenderer
-         implements UIResource {
-@@ -186,7 +187,7 @@
-         return new Point(x, y);
-     }
- 
--    private class EmptyIcon implements Icon {
-+    private class EmptyIcon implements Icon, Serializable {
-         int width = 0;
-         int height = 0;
-         public void paintIcon(Component c, Graphics g, int x, int y) {}
-diff -r 1297a41dbb47 -r 8d59b361635f test/javax/swing/JTable/6768387/bug6768387.java
---- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ openjdk/jdk/test/javax/swing/JTable/6768387/bug6768387.java	Tue May 25 20:39:52 2010 +0400
-@@ -0,0 +1,59 @@
-+/*
-+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
-+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-+ *
-+ * This code is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License version 2 only, as
-+ * published by the Free Software Foundation.
-+ *
-+ * This code is distributed in the hope that it will be useful, but WITHOUT
-+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-+ * version 2 for more details (a copy is included in the LICENSE file that
-+ * accompanied this code).
-+ *
-+ * You should have received a copy of the GNU General Public License version
-+ * 2 along with this work; if not, write to the Free Software Foundation,
-+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-+ *
-+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-+ * or visit www.oracle.com if you need additional information or have any
-+ * questions.
-+ */
-+
-+/* @test
-+   @bug 6768387
-+   @summary REGRESSION: JTable no longer serializable
-+   @author Alexander Potochkin
-+   @run main bug6768387
-+*/
-+
-+import javax.swing.*;
-+import javax.swing.table.AbstractTableModel;
-+import java.io.*;
-+
-+public class bug6768387 {
-+
-+    private static void createGui() {
-+        JTable table = new JTable();
-+        OutputStream os;
-+        ObjectOutputStream out;
-+        try {
-+            os = new ByteArrayOutputStream();
-+            out = new ObjectOutputStream(os);
-+            out.writeObject(table);
-+            out.close();
-+        }
-+        catch (Exception ex) {
-+            throw new RuntimeException(ex);
-+        }
-+    }
-+
-+    public static void main(String[] args) throws Exception {
-+        SwingUtilities.invokeAndWait(new Runnable() {
-+            public void run() {
-+                bug6768387.createGui();
-+            }
-+        });
-+    }
-+}
--- a/patches/openjdk/6997495-test_correction_6857159.patch	Wed Jul 06 23:24:30 2011 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-# HG changeset patch
-# User ptisnovs
-# Date 1288875792 -3600
-# Node ID 086898a88056cd9f7de4475b7ebf4cc6c65f2b5e
-# Parent  68d6141ea19de3a9ba98ef753f0da41a61f736a0
-6997495: correction of regression test compiler/6857159/Test6857159
-Summary: Testcase correction.
-Reviewed-by: never
-
-diff -r 68d6141ea19d -r 086898a88056 test/compiler/6857159/Test6857159.java
---- openjdk.old/hotspot/test/compiler/6857159/Test6857159.java	2010-10-08 22:29:24.000000000 +0200
-+++ openjdk/hotspot/test/compiler/6857159/Test6857159.java	2010-11-04 15:27:47.000000000 +0100
-@@ -54,7 +54,7 @@
-     }
- 
-     public static void main(String[] args) throws Exception {
--        for (int i = 0; i < 100000; i++) {
-+        for (int i = 0; i < 20000; i++) {
-             Thread t = null;
-             switch (i % 3) {
-               case 0: t = new ct0(); break;
--- a/patches/openjdk/7029905-demo_applet_html_files.patch	Wed Jul 06 23:24:30 2011 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-# HG changeset patch
-# User ohair
-# Date 1301955066 25200
-# Node ID 9d1f5ad258f89cde283c7c468bfd4d04f91f9c29
-# Parent  aa13e7702cd9d8aca9aa38f1227f966990866944
-7029905: demo applets missing some html files
-Reviewed-by: omajid, mchung, igor
-
-diff -r aa13e7702cd9 -r 9d1f5ad258f8 make/mkdemo/jfc/Font2DTest/Makefile
---- openjdk/jdk/make/mkdemo/jfc/Font2DTest/Makefile	Tue Mar 29 20:19:55 2011 -0700
-+++ openjdk/jdk/make/mkdemo/jfc/Font2DTest/Makefile	Mon Apr 04 15:11:06 2011 -0700
-@@ -33,7 +33,7 @@
- include $(BUILDDIR)/common/Defs.gmk
- 
- DEMO_ROOT       = $(SHARE_SRC)/demo/jfc/$(DEMONAME)
--DEMO_TOPFILES   = ./README.txt
-+DEMO_TOPFILES   = ./README.txt ./$(DEMONAME).html
- DEMO_MAINCLASS  = $(DEMONAME)
- DEMO_DESTDIR    = $(DEMODIR)/jfc/$(DEMONAME)
- 
-diff -r aa13e7702cd9 -r 9d1f5ad258f8 make/mkdemo/jfc/Java2D/Makefile
---- openjdk/jdk/make/mkdemo/jfc/Java2D/Makefile	Tue Mar 29 20:19:55 2011 -0700
-+++ openjdk/jdk/make/mkdemo/jfc/Java2D/Makefile	Mon Apr 04 15:11:06 2011 -0700
-@@ -33,7 +33,7 @@
- include $(BUILDDIR)/common/Defs.gmk
- 
- DEMO_ROOT       = $(CLOSED_SRC)/share/demo/jfc/Java2D
--DEMO_TOPFILES   = ./Java2Demo.html ./README.txt
-+DEMO_TOPFILES   = ./README.txt ./$(DEMONAME).html
- DEMO_MAINCLASS  = java2d.Java2Demo
- DEMO_DESTDIR    = $(DEMODIR)/jfc/Java2D
- 
-diff -r aa13e7702cd9 -r 9d1f5ad258f8 make/mkdemo/jfc/SwingApplet/Makefile
---- openjdk/jdk/make/mkdemo/jfc/SwingApplet/Makefile	Tue Mar 29 20:19:55 2011 -0700
-+++ openjdk/jdk/make/mkdemo/jfc/SwingApplet/Makefile	Mon Apr 04 15:11:06 2011 -0700
-@@ -33,7 +33,7 @@
- include $(BUILDDIR)/common/Defs.gmk
- 
- DEMO_ROOT       = $(SHARE_SRC)/demo/jfc/$(DEMONAME)
--DEMO_TOPFILES   = ./README.txt
-+DEMO_TOPFILES   = ./README.txt ./$(DEMONAME).html
- DEMO_MAINCLASS  = $(DEMONAME)
- DEMO_DESTDIR    = $(DEMODIR)/jfc/$(DEMONAME)
- 
-diff -r aa13e7702cd9 -r 9d1f5ad258f8 make/mkdemo/jfc/SwingSet2/Makefile
---- openjdk/jdk/make/mkdemo/jfc/SwingSet2/Makefile	Tue Mar 29 20:19:55 2011 -0700
-+++ openjdk/jdk/make/mkdemo/jfc/SwingSet2/Makefile	Mon Apr 04 15:11:06 2011 -0700
-@@ -33,7 +33,7 @@
- include $(BUILDDIR)/common/Defs.gmk
- 
- DEMO_ROOT       = $(CLOSED_SRC)/share/demo/jfc/$(DEMONAME)
--DEMO_TOPFILES   = ./README.txt
-+DEMO_TOPFILES   = ./README.txt ./$(DEMONAME).html
- DEMO_MAINCLASS  = $(DEMONAME)
- DEMO_MANIFEST_ATTR = SplashScreen-Image: resources/images/splash.png
- DEMO_DESTDIR    = $(DEMODIR)/jfc/$(DEMONAME)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/openjdk/7032388-work_without_cmov_instruction.patch	Thu Jul 07 13:14:02 2011 +0100
@@ -0,0 +1,178 @@
+--- openjdk/hotspot/src/cpu/x86/vm/assembler_x86.cpp	2011-03-30 11:31:16.408872134 -0700
++++ openjdk/hotspot/src/cpu/x86/vm/assembler_x86.cpp	2011-03-30 11:31:16.084614406 -0700
+@@ -7769,6 +7769,28 @@
+   }
+ }
+ 
++void MacroAssembler::cmov32(Condition cc, Register dst, Address src) {
++  if (VM_Version::supports_cmov()) {
++    cmovl(cc, dst, src);
++  } else {
++    Label L;
++    jccb(negate_condition(cc), L);
++    movl(dst, src);
++    bind(L);
++  }
++}
++
++void MacroAssembler::cmov32(Condition cc, Register dst, Register src) {
++  if (VM_Version::supports_cmov()) {
++    cmovl(cc, dst, src);
++  } else {
++    Label L;
++    jccb(negate_condition(cc), L);
++    movl(dst, src);
++    bind(L);
++  }
++}
++
+ void MacroAssembler::verify_oop(Register reg, const char* s) {
+   if (!VerifyOops) return;
+ 
+@@ -9019,14 +9041,7 @@
+   movl(result, cnt1);
+   subl(cnt1, cnt2);
+   push(cnt1);
+-  if (VM_Version::supports_cmov()) {
+-    cmovl(Assembler::lessEqual, cnt2, result);
+-  } else {
+-    Label GT_LABEL;
+-    jccb(Assembler::greater, GT_LABEL);
+-    movl(cnt2, result);
+-    bind(GT_LABEL);
+-  }
++  cmov32(Assembler::lessEqual, cnt2, result);
+ 
+   // Is the minimum length zero?
+   testl(cnt2, cnt2);
+--- openjdk/hotspot/src/cpu/x86/vm/assembler_x86.hpp	2011-03-30 11:31:17.757655562 -0700
++++ openjdk/hotspot/src/cpu/x86/vm/assembler_x86.hpp	2011-03-30 11:31:17.553920606 -0700
+@@ -2244,10 +2244,13 @@
+ 
+   // Data
+ 
+-  void cmov(Condition cc, Register dst, Register src) { LP64_ONLY(cmovq(cc, dst, src)) NOT_LP64(cmovl(cc, dst, src)); }
++  void cmov32( Condition cc, Register dst, Address  src);
++  void cmov32( Condition cc, Register dst, Register src);
+ 
+-  void cmovptr(Condition cc, Register dst, Address src) { LP64_ONLY(cmovq(cc, dst, src)) NOT_LP64(cmovl(cc, dst, src)); }
+-  void cmovptr(Condition cc, Register dst, Register src) { LP64_ONLY(cmovq(cc, dst, src)) NOT_LP64(cmovl(cc, dst, src)); }
++  void cmov(   Condition cc, Register dst, Register src) { cmovptr(cc, dst, src); }
++
++  void cmovptr(Condition cc, Register dst, Address  src) { LP64_ONLY(cmovq(cc, dst, src)) NOT_LP64(cmov32(cc, dst, src)); }
++  void cmovptr(Condition cc, Register dst, Register src) { LP64_ONLY(cmovq(cc, dst, src)) NOT_LP64(cmov32(cc, dst, src)); }
+ 
+   void movoop(Register dst, jobject obj);
+   void movoop(Address dst, jobject obj);
+--- openjdk/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp	2011-03-30 11:31:18.743456717 -0700
++++ openjdk/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp	2011-03-30 11:31:18.541656202 -0700
+@@ -23,6 +23,7 @@
+  */
+ 
+ #include "precompiled.hpp"
++#include "asm/assembler.hpp"
+ #include "c1/c1_Compilation.hpp"
+ #include "c1/c1_LIRAssembler.hpp"
+ #include "c1/c1_MacroAssembler.hpp"
+@@ -569,24 +570,13 @@
+   __ lea          (rdi, Address(rdi, rcx, Address::times_2, arrayOopDesc::base_offset_in_bytes(T_CHAR)));
+ 
+   // compute minimum length (in rax) and difference of lengths (on top of stack)
+-  if (VM_Version::supports_cmov()) {
+-    __ movl     (rbx, Address(rbx, java_lang_String::count_offset_in_bytes()));
+-    __ movl     (rax, Address(rax, java_lang_String::count_offset_in_bytes()));
+-    __ mov      (rcx, rbx);
+-    __ subptr   (rbx, rax); // subtract lengths
+-    __ push     (rbx);      // result
+-    __ cmov     (Assembler::lessEqual, rax, rcx);
+-  } else {
+-    Label L;
+-    __ movl     (rbx, Address(rbx, java_lang_String::count_offset_in_bytes()));
+-    __ movl     (rcx, Address(rax, java_lang_String::count_offset_in_bytes()));
+-    __ mov      (rax, rbx);
+-    __ subptr   (rbx, rcx);
+-    __ push     (rbx);
+-    __ jcc      (Assembler::lessEqual, L);
+-    __ mov      (rax, rcx);
+-    __ bind (L);
+-  }
++  __ movl  (rbx, Address(rbx, java_lang_String::count_offset_in_bytes()));
++  __ movl  (rax, Address(rax, java_lang_String::count_offset_in_bytes()));
++  __ mov   (rcx, rbx);
++  __ subptr(rbx, rax); // subtract lengths
++  __ push  (rbx);      // result
++  __ cmov  (Assembler::lessEqual, rax, rcx);
++
+   // is minimum length 0?
+   Label noLoop, haveResult;
+   __ testptr (rax, rax);
+--- openjdk/hotspot/src/cpu/x86/vm/c1_Runtime1_x86.cpp	2011-03-30 11:31:19.824124145 -0700
++++ openjdk/hotspot/src/cpu/x86/vm/c1_Runtime1_x86.cpp	2011-03-30 11:31:19.606167752 -0700
+@@ -23,6 +23,7 @@
+  */
+ 
+ #include "precompiled.hpp"
++#include "asm/assembler.hpp"
+ #include "c1/c1_Defs.hpp"
+ #include "c1/c1_MacroAssembler.hpp"
+ #include "c1/c1_Runtime1.hpp"
+--- openjdk/hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp	2011-03-30 11:31:20.910918826 -0700
++++ openjdk/hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp	2011-03-30 11:31:20.703693030 -0700
+@@ -23,6 +23,7 @@
+  */
+ 
+ #include "precompiled.hpp"
++#include "asm/assembler.hpp"
+ #include "interpreter/interpreter.hpp"
+ #include "interpreter/interpreterRuntime.hpp"
+ #include "interpreter/templateTable.hpp"
+@@ -1939,18 +1940,10 @@
+     __ movl(temp, Address(array, h, Address::times_8, 0*wordSize));
+     __ bswapl(temp);
+     __ cmpl(key, temp);
+-    if (VM_Version::supports_cmov()) {
+-      __ cmovl(Assembler::less        , j, h);   // j = h if (key <  array[h].fast_match())
+-      __ cmovl(Assembler::greaterEqual, i, h);   // i = h if (key >= array[h].fast_match())
+-    } else {
+-      Label set_i, end_of_if;
+-      __ jccb(Assembler::greaterEqual, set_i);     // {
+-      __ mov(j, h);                                //   j = h;
+-      __ jmp(end_of_if);                           // }
+-      __ bind(set_i);                              // else {
+-      __ mov(i, h);                                //   i = h;
+-      __ bind(end_of_if);                          // }
+-    }
++    // j = h if (key <  array[h].fast_match())
++    __ cmov32(Assembler::less        , j, h);
++    // i = h if (key >= array[h].fast_match())
++    __ cmov32(Assembler::greaterEqual, i, h);
+     // while (i+1 < j)
+     __ bind(entry);
+     __ leal(h, Address(i, 1));                   // i+1
+@@ -3478,22 +3471,14 @@
+ 
+   // find a free slot in the monitor block (result in rdx)
+   { Label entry, loop, exit;
+-    __ movptr(rcx, monitor_block_top);            // points to current entry, starting with top-most entry
+-    __ lea(rbx, monitor_block_bot);               // points to word before bottom of monitor block
++    __ movptr(rcx, monitor_block_top);           // points to current entry, starting with top-most entry
++
++    __ lea(rbx, monitor_block_bot);              // points to word before bottom of monitor block
+     __ jmpb(entry);
+ 
+     __ bind(loop);
+     __ cmpptr(Address(rcx, BasicObjectLock::obj_offset_in_bytes()), (int32_t)NULL_WORD);  // check if current entry is used
+-
+-// TODO - need new func here - kbt
+-    if (VM_Version::supports_cmov()) {
+-      __ cmov(Assembler::equal, rdx, rcx);       // if not used then remember entry in rdx
+-    } else {
+-      Label L;
+-      __ jccb(Assembler::notEqual, L);
+-      __ mov(rdx, rcx);                          // if not used then remember entry in rdx
+-      __ bind(L);
+-    }
++    __ cmovptr(Assembler::equal, rdx, rcx);      // if not used then remember entry in rdx
+     __ cmpptr(rax, Address(rcx, BasicObjectLock::obj_offset_in_bytes()));   // check if current entry is for same object
+     __ jccb(Assembler::equal, exit);             // if same object then stop searching
+     __ addptr(rcx, entry_size);                  // otherwise advance to next entry
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/openjdk/7036220-shark_llvm_29_headers.patch	Thu Jul 07 13:14:02 2011 +0100
@@ -0,0 +1,44 @@
+# HG changeset patch
+# User twisti
+# Date 1302771192 25200
+# Node ID 1fcd6e9c3965f4bf23f6a8f4fbb77fdf74de37a7
+# Parent  3a808be061ffc10da5647e50cc28252d70f21883
+7036220: Shark fails to find LLVM 2.9 System headers during build
+Reviewed-by: gbenson, twisti
+Contributed-by: Xerxes Ranby <xerxes@zafena.se>
+
+diff -r 3a808be061ff -r 1fcd6e9c3965 src/share/vm/shark/llvmHeaders.hpp
+--- openjdk/hotspot/src/share/vm/shark/llvmHeaders.hpp	Wed Apr 13 14:33:03 2011 -0700
++++ openjdk/hotspot/src/share/vm/shark/llvmHeaders.hpp	Thu Apr 14 01:53:12 2011 -0700
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
+  * Copyright 2008, 2009, 2010 Red Hat, Inc.
+  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+  *
+@@ -46,7 +46,11 @@
+ #include <llvm/ModuleProvider.h>
+ #endif
+ #include <llvm/Support/IRBuilder.h>
++#if SHARK_LLVM_VERSION >= 29
++#include <llvm/Support/Threading.h>
++#else
+ #include <llvm/System/Threading.h>
++#endif
+ #include <llvm/Target/TargetSelect.h>
+ #include <llvm/Type.h>
+ #include <llvm/ExecutionEngine/JITMemoryManager.h>
+@@ -55,8 +59,12 @@
+ #include <llvm/ExecutionEngine/JIT.h>
+ #include <llvm/ADT/StringMap.h>
+ #include <llvm/Support/Debug.h>
++#if SHARK_LLVM_VERSION >= 29
++#include <llvm/Support/Host.h>
++#else
+ #include <llvm/System/Host.h>
+ #endif
++#endif
+ 
+ #include <map>
+ 
--- a/patches/openjdk/7042040-no_disk_space_check.patch	Wed Jul 06 23:24:30 2011 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,115 +0,0 @@
-# HG changeset patch
-# User andrew
-# Date 1305128024 14400
-# Node ID 6b74421f46b04f8cbe898ed4d8896b46be70becf
-# Parent  fe6a8ddfe33d460fe19867c6625ee6390934e4b7
-7042040: Remove disk space sanity check
-Summary: Remove outdated disk space checks using df
-Reviewed-by: ohair, omajid
-
-diff -r fe6a8ddfe33d -r 6b74421f46b0 make/common/shared/Platform.gmk
---- openjdk/jdk/make/common/shared/Platform.gmk	Tue May 10 11:58:42 2011 +0200
-+++ openjdk/jdk/make/common/shared/Platform.gmk	Wed May 11 11:33:44 2011 -0400
-@@ -75,7 +75,6 @@
- #     USING_CYGWIN                windows only: true or false
- #     WINDOWS_NT_VERSION_STRING   windows only: long version name
- #     REQUIRED_OS_VERSION         required OS version, e.g. 5.10, 2.4
--#     REQUIRED_FREE_SPACE         minimum disk space needed for outputdir
- #     ISHIELD_TEMP_MIN            windows only: minimum disk space in temp area
- #     REQUIRED_ZIP_VER            required version of zip
- #     REQUIRED_UNZIP_VER          required version of unzip
-@@ -171,13 +170,6 @@
-   else
-     REQUIRED_OS_VERSION = 5.8
-   endif
--  # Minimum disk space needed as determined by running 'du -sk' on 
--  #    a fully built workspace.
--  ifeq ($(ARCH_FAMILY), sparc)
--    REQUIRED_FREE_SPACE=1300000
--  else
--    REQUIRED_FREE_SPACE=1040000
--  endif
-   # How much RAM does this machine have:
-   MB_OF_MEMORY=$(shell /etc/prtconf | fgrep 'Memory size:' | expand | cut -d' ' -f3)
- endif
-@@ -247,9 +239,6 @@
- 
-   # Suffix for file bundles used in previous release
-   BUNDLE_FILE_SUFFIX=.tar.gz
--  # Minimum disk space needed as determined by running 'du -sk' on 
--  #    a fully built workspace.
--  REQUIRED_FREE_SPACE=1460000
-   LINUX_VERSION_INFO = /etc/redhat-release
-   ifeq ($(ARCH_DATA_MODEL), 32)
-     REQUIRED_LINUX_VER = Advanced Server
-@@ -371,9 +360,6 @@
-   ARCH_VM_SUBDIR=jre/bin
-   # Suffix for file bundles used in previous release
-   BUNDLE_FILE_SUFFIX=.tar
--  # Minimum disk space needed as determined by running 'du -sk' on 
--  #    a fully built workspace.
--  REQUIRED_FREE_SPACE=500000
-   # ISHIELD_TEMP_MIN is the difference of an empty C:\TEMP vs. one after a
-   #     bundles build on windows.
-   ISHIELD_TEMP_MIN=250000
-diff -r fe6a8ddfe33d -r 6b74421f46b0 make/common/shared/Sanity-Settings.gmk
---- openjdk/jdk/make/common/shared/Sanity-Settings.gmk	Tue May 10 11:58:42 2011 +0200
-+++ openjdk/jdk/make/common/shared/Sanity-Settings.gmk	Wed May 11 11:33:44 2011 -0400
-@@ -189,8 +189,6 @@
- endif
- ALL_SETTINGS+=$(call addRequiredVersionSetting,OS_VERSION)
- ALL_SETTINGS+=$(call addRequiredSetting,OS_NAME)
--ALL_SETTINGS+=$(call addRequiredSetting,TEMP_FREE_SPACE)
--ALL_SETTINGS+=$(call addRequiredSetting,FREE_SPACE)
- ALL_SETTINGS+=$(call addRequiredSetting,MB_OF_MEMORY)
- 
- 
-diff -r fe6a8ddfe33d -r 6b74421f46b0 make/common/shared/Sanity.gmk
---- openjdk/jdk/make/common/shared/Sanity.gmk	Tue May 10 11:58:42 2011 +0200
-+++ openjdk/jdk/make/common/shared/Sanity.gmk	Wed May 11 11:33:44 2011 -0400
-@@ -46,8 +46,6 @@
- # Settings and rules to validate the JDK build environment.
- 
- ifeq ($(PLATFORM), solaris)
--  FREE_SPACE := $(shell $(DF) -b $(OUTPUTDIR) | $(TAIL) -1 | $(NAWK) '{print $$2;}')
--  TEMP_FREE_SPACE := $(shell $(DF) -b $(TEMP_DISK) | $(TAIL) -1 | $(NAWK) '{print $$2;}')
-   REQ_PATCH_LIST = $(JDK_TOPDIR)/make/PatchList.solaris
-   ifeq ($(ARCH_FAMILY), sparc)
-     PATCH_POSITION = $$4
-@@ -57,8 +55,6 @@
- endif
- 
- ifeq ($(PLATFORM), linux)
--  FREE_SPACE := $(shell $(DF) --sync -kP $(OUTPUTDIR) | $(TAIL) -1 | $(NAWK) '{print $$4;}')
--  TEMP_FREE_SPACE := $(shell $(DF) --sync -kP $(TEMP_DISK) | $(TAIL) -1 | $(NAWK) '{print $$4;}')
-   ifeq ($(ARCH), amd64)
-     LINUX_VERSION := $(shell \
-         if [ -r "$(LINUX_VERSION_INFO)" ] ; then \
-@@ -82,8 +78,6 @@
- endif
- 
- ifeq ($(PLATFORM), windows)
--  FREE_SPACE := $(shell $(DF) -kP $(OUTPUTDIR) | $(TAIL) -1 | $(NAWK) '{print $$4;}')
--  TEMP_FREE_SPACE := $(shell $(DF) -kP $(TEMP_DISK) | $(TAIL) -1 | $(NAWK) '{print $$4;}')
-   # Localized systeminfo has localized labels, but not localized values.
-   _WINDOWS_VERSION := \
-     $(shell systeminfo 2> $(DEV_NULL) | grep 'Microsoft' | grep 'Windows' | \
-@@ -675,18 +669,6 @@
- 	    "      Either obtain these permissions or set ALT_OUTPUTDIR. \n" \
- 	    "" >> $(ERROR_FILE) ; \
- 	fi
--	@#
--	@# OUTPUTDIR must have enough free space...
--	@#
--	@if [ $(FREE_SPACE) -lt $(REQUIRED_FREE_SPACE) ]; then \
--	  $(ECHO) "WARNING: You may not have enough free space in your OUTPUTDIR. The \n" \
--	    "        current value of OUTPUTDIR is \n" \
--	    "            $(OUTPUTDIR) \n" \
--	    "        You need "$(REQUIRED_FREE_SPACE)" Kbytes free on this device to build \n" \
--	    "        and it appears that only "$(FREE_SPACE)" Kbytes are free. \n" \
--	    "        Either obtain more space or set ALT_OUTPUTDIR to a larger disk. \n" \
--	    "" >> $(WARNING_FILE) ; \
--	fi
- 
- ######################################################
- # if specified, ALT_BOOTDIR must point to non-relative path if set
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/params-cast-size_t.patch	Thu Jul 07 13:14:02 2011 +0100
@@ -0,0 +1,270 @@
+diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp	2011-01-25 22:57:24.000000000 +0000
++++ openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp	2011-01-28 01:06:11.887088930 +0000
+@@ -2645,7 +2645,7 @@
+   if (ResizeOldPLAB && CMSOldPLABResizeQuicker) {
+     size_t multiple = _num_blocks[word_sz]/(CMSOldPLABToleranceFactor*CMSOldPLABNumRefills*n_blks);
+     n_blks +=  CMSOldPLABReactivityFactor*multiple*n_blks;
+-    n_blks = MIN2(n_blks, CMSOldPLABMax);
++    n_blks = MIN2(n_blks, (size_t)CMSOldPLABMax);
+   }
+   assert(n_blks > 0, "Error");
+   _cfls->par_get_chunk_of_blocks(word_sz, n_blks, fl);
+diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp	2011-01-25 22:57:24.000000000 +0000
++++ openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp	2011-01-28 01:06:11.891088974 +0000
+@@ -955,7 +955,7 @@
+   if (free_percentage < desired_free_percentage) {
+     size_t desired_capacity = (size_t)(used() / ((double) 1 - desired_free_percentage));
+     assert(desired_capacity >= capacity(), "invalid expansion size");
+-    expand_bytes = MAX2(desired_capacity - capacity(), MinHeapDeltaBytes);
++    expand_bytes = MAX2((long unsigned int) (desired_capacity - capacity()), (long unsigned int) MinHeapDeltaBytes);
+   }
+   if (expand_bytes > 0) {
+     if (PrintGCDetails && Verbose) {
+@@ -6238,7 +6238,7 @@
+     HeapWord* curAddr = _markBitMap.startWord();
+     while (curAddr < _markBitMap.endWord()) {
+       size_t remaining  = pointer_delta(_markBitMap.endWord(), curAddr);
+-      MemRegion chunk(curAddr, MIN2(CMSBitMapYieldQuantum, remaining));
++      MemRegion chunk(curAddr, MIN2((size_t) CMSBitMapYieldQuantum, remaining));
+       _markBitMap.clear_large_range(chunk);
+       if (ConcurrentMarkSweepThread::should_yield() &&
+           !foregroundGCIsActive() &&
+@@ -6533,7 +6533,7 @@
+     return;
+   }
+   // Double capacity if possible
+-  size_t new_capacity = MIN2(_capacity*2, MarkStackSizeMax);
++  size_t new_capacity = MIN2((size_t) (_capacity*2), (size_t) MarkStackSizeMax);
+   // Do not give up existing stack until we have managed to
+   // get the double capacity that we desired.
+   ReservedSpace rs(ReservedSpace::allocation_align_size_up(
+diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp openjdk/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp	2011-01-28 00:50:00.000000000 +0000
++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp	2011-01-28 01:06:11.891088974 +0000
+@@ -471,7 +471,7 @@
+   _regionStack(),
+   // _finger set in set_non_marking_state
+ 
+-  _max_task_num(MAX2(ParallelGCThreads, (size_t)1)),
++  _max_task_num(MAX2((size_t)ParallelGCThreads, (size_t)1)),
+   // _active_tasks set in set_non_marking_state
+   // _tasks set inside the constructor
+   _task_queues(new CMTaskQueueSet((int) _max_task_num)),
+@@ -575,7 +575,7 @@
+       _sleep_factor             = sleep_factor;
+       _marking_task_overhead    = marking_task_overhead;
+     } else {
+-      _parallel_marking_threads = MAX2((ParallelGCThreads + 2) / 4, (size_t)1);
++      _parallel_marking_threads = MAX2((size_t)((ParallelGCThreads + 2) / 4), (size_t)1);
+       _sleep_factor             = 0.0;
+       _marking_task_overhead    = 1.0;
+     }
+@@ -3371,7 +3371,7 @@
+   // of things to do) or totally (at the very end).
+   size_t target_size;
+   if (partially)
+-    target_size = MIN2((size_t)_task_queue->max_elems()/3, GCDrainStackTargetSize);
++    target_size = MIN2((size_t)_task_queue->max_elems()/3, (size_t)GCDrainStackTargetSize);
+   else
+     target_size = 0;
+ 
+diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp openjdk/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp	2011-01-25 22:57:24.000000000 +0000
++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp	2011-01-28 01:06:11.891088974 +0000
+@@ -1074,7 +1074,7 @@
+ // This can be done by either mutator threads together with the
+ // concurrent refinement threads or GC threads.
+ int HeapRegionRemSet::num_par_rem_sets() {
+-  return (int)MAX2(DirtyCardQueueSet::num_par_ids() + ConcurrentG1Refine::thread_num(), ParallelGCThreads);
++  return (int)MAX2(DirtyCardQueueSet::num_par_ids() + ConcurrentG1Refine::thread_num(), (size_t)ParallelGCThreads);
+ }
+ 
+ HeapRegionRemSet::HeapRegionRemSet(G1BlockOffsetSharedArray* bosa,
+diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp	2011-01-25 22:57:24.000000000 +0000
++++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp	2011-01-28 01:06:11.891088974 +0000
+@@ -895,8 +895,8 @@
+ void PSParallelCompact::initialize_dead_wood_limiter()
+ {
+   const size_t max = 100;
+-  _dwl_mean = double(MIN2(ParallelOldDeadWoodLimiterMean, max)) / 100.0;
+-  _dwl_std_dev = double(MIN2(ParallelOldDeadWoodLimiterStdDev, max)) / 100.0;
++  _dwl_mean = double(MIN2((size_t) ParallelOldDeadWoodLimiterMean, max)) / 100.0;
++  _dwl_std_dev = double(MIN2((size_t) ParallelOldDeadWoodLimiterStdDev, max)) / 100.0;
+   _dwl_first_term = 1.0 / (sqrt(2.0 * M_PI) * _dwl_std_dev);
+   DEBUG_ONLY(_dwl_initialized = true;)
+   _dwl_adjustment = normal_distribution(1.0);
+diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp	2011-01-25 22:57:24.000000000 +0000
++++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp	2011-01-28 01:06:11.891088974 +0000
+@@ -69,7 +69,7 @@
+   _last_used = current_live;
+ 
+   // We have different alignment constraints than the rest of the heap.
+-  const size_t alignment = MAX2(MinPermHeapExpansion,
++  const size_t alignment = MAX2((size_t) MinPermHeapExpansion,
+                                 virtual_space()->alignment());
+ 
+   // Compute the desired size:
+diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp openjdk/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp	2011-01-25 22:57:24.000000000 +0000
++++ openjdk/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp	2011-01-28 01:06:11.895089019 +0000
+@@ -188,7 +188,7 @@
+   const size_t num_overflow_elems = of_stack->size();
+   const size_t space_available = queue->max_elems() - queue->size();
+   const size_t num_take_elems = MIN3(space_available / 4,
+-                                     ParGCDesiredObjsFromOverflowList,
++                                     (size_t) ParGCDesiredObjsFromOverflowList,
+                                      num_overflow_elems);
+   // Transfer the most recent num_take_elems from the overflow
+   // stack to our work queue.
+diff -Nru openjdk.orig/hotspot/src/share/vm/memory/collectorPolicy.cpp openjdk/hotspot/src/share/vm/memory/collectorPolicy.cpp
+--- openjdk.orig/hotspot/src/share/vm/memory/collectorPolicy.cpp	2011-01-25 22:57:24.000000000 +0000
++++ openjdk/hotspot/src/share/vm/memory/collectorPolicy.cpp	2011-01-28 01:06:11.891088974 +0000
+@@ -328,7 +328,7 @@
+     // yield a size that is too small) and bound it by MaxNewSize above.
+     // Ergonomics plays here by previously calculating the desired
+     // NewSize and MaxNewSize.
+-    max_new_size = MIN2(MAX2(max_new_size, NewSize), MaxNewSize);
++    max_new_size = MIN2(MAX2(max_new_size, (size_t)NewSize), (size_t)MaxNewSize);
+   }
+   assert(max_new_size > 0, "All paths should set max_new_size");
+ 
+@@ -355,7 +355,7 @@
+       // generally small compared to the NewRatio calculation.
+       _min_gen0_size = NewSize;
+       desired_new_size = NewSize;
+-      max_new_size = MAX2(max_new_size, NewSize);
++      max_new_size = MAX2(max_new_size, (size_t) NewSize);
+     } else {
+       // For the case where NewSize is the default, use NewRatio
+       // to size the minimum and initial generation sizes.
+@@ -363,10 +363,10 @@
+       // NewRatio is overly large, the resulting sizes can be too
+       // small.
+       _min_gen0_size = MAX2(scale_by_NewRatio_aligned(min_heap_byte_size()),
+-                          NewSize);
++                          (size_t) NewSize);
+       desired_new_size =
+         MAX2(scale_by_NewRatio_aligned(initial_heap_byte_size()),
+-             NewSize);
++             (size_t) NewSize);
+     }
+ 
+     assert(_min_gen0_size > 0, "Sanity check");
+@@ -421,14 +421,14 @@
+       // Adjust gen0 down to accomodate OldSize
+       *gen0_size_ptr = heap_size - min_gen0_size;
+       *gen0_size_ptr =
+-        MAX2((uintx)align_size_down(*gen0_size_ptr, min_alignment()),
++        MAX2((size_t)align_size_down(*gen0_size_ptr, min_alignment()),
+              min_alignment());
+       assert(*gen0_size_ptr > 0, "Min gen0 is too large");
+       result = true;
+     } else {
+       *gen1_size_ptr = heap_size - *gen0_size_ptr;
+       *gen1_size_ptr =
+-        MAX2((uintx)align_size_down(*gen1_size_ptr, min_alignment()),
++        MAX2((size_t)align_size_down(*gen1_size_ptr, min_alignment()),
+                        min_alignment());
+     }
+   }
+@@ -452,7 +452,7 @@
+   // for setting the gen1 maximum.
+   _max_gen1_size = max_heap_byte_size() - _max_gen0_size;
+   _max_gen1_size =
+-    MAX2((uintx)align_size_down(_max_gen1_size, min_alignment()),
++    MAX2((size_t)align_size_down(_max_gen1_size, min_alignment()),
+          min_alignment());
+   // If no explicit command line flag has been set for the
+   // gen1 size, use what is left for gen1.
+@@ -466,11 +466,11 @@
+       "gen0 has an unexpected minimum size");
+     set_min_gen1_size(min_heap_byte_size() - min_gen0_size());
+     set_min_gen1_size(
+-      MAX2((uintx)align_size_down(_min_gen1_size, min_alignment()),
++      MAX2((size_t)align_size_down(_min_gen1_size, min_alignment()),
+            min_alignment()));
+     set_initial_gen1_size(initial_heap_byte_size() - initial_gen0_size());
+     set_initial_gen1_size(
+-      MAX2((uintx)align_size_down(_initial_gen1_size, min_alignment()),
++      MAX2((size_t)align_size_down(_initial_gen1_size, min_alignment()),
+            min_alignment()));
+ 
+   } else {
+diff -Nru openjdk.orig/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp openjdk/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp
+--- openjdk.orig/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp	2011-01-25 22:57:24.000000000 +0000
++++ openjdk/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp	2011-01-28 01:06:11.891088974 +0000
+@@ -240,7 +240,7 @@
+   size_t init_sz;
+ 
+   if (TLABSize > 0) {
+-    init_sz = MIN2(TLABSize / HeapWordSize, max_size());
++    init_sz = MIN2((size_t) (TLABSize / HeapWordSize), max_size());
+   } else if (global_stats() == NULL) {
+     // Startup issue - main thread initialized before heap initialized.
+     init_sz = min_size();
+diff -Nru openjdk.orig/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp openjdk/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp
+--- openjdk.orig/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp	2011-01-25 22:57:24.000000000 +0000
++++ openjdk/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp	2011-01-28 01:06:11.891088974 +0000
+@@ -46,7 +46,7 @@
+   const size_t beg_index = size_t(index);
+   assert(beg_index < len || len == 0, "index too large");
+ 
+-  const size_t stride = MIN2(len - beg_index, ObjArrayMarkingStride);
++  const size_t stride = MIN2(len - beg_index, (size_t)ObjArrayMarkingStride);
+   const size_t end_index = beg_index + stride;
+   T* const base = (T*)a->base();
+   T* const beg = base + beg_index;
+@@ -80,7 +80,7 @@
+   const size_t beg_index = size_t(index);
+   assert(beg_index < len || len == 0, "index too large");
+ 
+-  const size_t stride = MIN2(len - beg_index, ObjArrayMarkingStride);
++  const size_t stride = MIN2(len - beg_index, (size_t)ObjArrayMarkingStride);
+   const size_t end_index = beg_index + stride;
+   T* const base = (T*)a->base();
+   T* const beg = base + beg_index;
+diff -Nru openjdk.orig/hotspot/src/share/vm/runtime/arguments.cpp openjdk/hotspot/src/share/vm/runtime/arguments.cpp
+--- openjdk.orig/hotspot/src/share/vm/runtime/arguments.cpp	2011-01-28 00:49:59.000000000 +0000
++++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp	2011-01-28 01:06:11.891088974 +0000
+@@ -1161,7 +1161,7 @@
+     // NewSize was set on the command line and it is larger than
+     // preferred_max_new_size.
+     if (!FLAG_IS_DEFAULT(NewSize)) {   // NewSize explicitly set at command-line
+-      FLAG_SET_ERGO(uintx, MaxNewSize, MAX2(NewSize, preferred_max_new_size));
++      FLAG_SET_ERGO(uintx, MaxNewSize, MAX2((size_t) NewSize, preferred_max_new_size));
+     } else {
+       FLAG_SET_ERGO(uintx, MaxNewSize, preferred_max_new_size);
+     }
+@@ -1180,7 +1180,7 @@
+     // there was no obvious reason.  Also limit to the case where
+     // MaxNewSize has not been set.
+ 
+-    FLAG_SET_ERGO(intx, NewRatio, MAX2(NewRatio, new_ratio));
++    FLAG_SET_ERGO(intx, NewRatio, MAX2((intx) NewRatio, new_ratio));
+ 
+     // Code along this path potentially sets NewSize and OldSize
+ 
+@@ -1222,8 +1222,8 @@
+       // Unless explicitly requested otherwise, make young gen
+       // at least min_new, and at most preferred_max_new_size.
+       if (FLAG_IS_DEFAULT(NewSize)) {
+-        FLAG_SET_ERGO(uintx, NewSize, MAX2(NewSize, min_new));
+-        FLAG_SET_ERGO(uintx, NewSize, MIN2(preferred_max_new_size, NewSize));
++	FLAG_SET_ERGO(uintx, NewSize, MAX2((size_t) NewSize, min_new));
++        FLAG_SET_ERGO(uintx, NewSize, MIN2(preferred_max_new_size, (size_t) NewSize));
+         if (PrintGCDetails && Verbose) {
+           // Too early to use gclog_or_tty
+           tty->print_cr("Ergo set NewSize: " SIZE_FORMAT, NewSize);
+@@ -1234,7 +1234,7 @@
+       // later NewRatio will decide how it grows; see above.
+       if (FLAG_IS_DEFAULT(OldSize)) {
+         if (max_heap > NewSize) {
+-          FLAG_SET_ERGO(uintx, OldSize, MIN2(3*NewSize, max_heap - NewSize));
++	  FLAG_SET_ERGO(uintx, OldSize, MIN2((size_t) 3*NewSize, max_heap - (size_t) NewSize));
+           if (PrintGCDetails && Verbose) {
+             // Too early to use gclog_or_tty
+             tty->print_cr("Ergo set OldSize: " SIZE_FORMAT, OldSize);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/powerpc-stacksize.patch	Thu Jul 07 13:14:02 2011 +0100
@@ -0,0 +1,42 @@
+--- openjdk/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp~	2011-02-22 17:51:24.000000000 +0100
++++ openjdk/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp	2011-02-24 18:58:27.758228950 +0100
+@@ -32,7 +32,11 @@
+ //
+ 
+ define_pd_global(bool,  DontYieldALot,           false);
++#ifdef __powerpc64__
++define_pd_global(intx,  ThreadStackSize,         2048);
++#else
+ define_pd_global(intx,  ThreadStackSize,         1536);
++#endif
+ #ifdef _LP64
+ define_pd_global(intx,  VMThreadStackSize,       1024);
+ #else
+--- openjdk/corba/make/common/shared/Defs-java.gmk~	2011-02-24 18:56:20.278228999 +0100
++++ openjdk/corba/make/common/shared/Defs-java.gmk	2011-02-24 19:01:47.938229001 +0100
+@@ -68,9 +68,9 @@
+ 
+ # 64-bit builds require a larger thread stack size.
+ ifeq ($(ARCH_DATA_MODEL), 32)
+-  JAVAC_JVM_FLAGS    += -J-XX:ThreadStackSize=768
++  JAVAC_JVM_FLAGS    += -J-XX:ThreadStackSize=1024
+ else
+-  JAVAC_JVM_FLAGS    += -J-XX:ThreadStackSize=1536
++  JAVAC_JVM_FLAGS    += -J-XX:ThreadStackSize=2048
+ endif
+ JAVAC_JVM_FLAGS    += $(JAVA_TOOLS_FLAGS:%=-J%)
+ 
+--- openjdk/jdk/make/common/shared/Defs-java.gmk~	2011-02-24 20:10:20.598229000 +0100
++++ openjdk/jdk/make/common/shared/Defs-java.gmk	2011-02-24 20:11:45.608228331 +0100
+@@ -75,9 +75,9 @@
+ 
+ # 64-bit builds require a larger thread stack size.
+ ifeq ($(ARCH_DATA_MODEL), 32)
+-  JAVAC_JVM_FLAGS    += -J-XX:ThreadStackSize=768
++  JAVAC_JVM_FLAGS    += -J-XX:ThreadStackSize=1024
+ else
+-  JAVAC_JVM_FLAGS    += -J-XX:ThreadStackSize=1536
++  JAVAC_JVM_FLAGS    += -J-XX:ThreadStackSize=2048
+ endif
+ JAVAC_JVM_FLAGS    += $(JAVA_TOOLS_FLAGS:%=-J%)
+ 
--- a/patches/security/20110215/6878713.patch	Wed Jul 06 23:24:30 2011 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,143 +0,0 @@
-# HG changeset patch
-# User kamg
-# Date 1296505046 18000
-# Node ID a6f5011d46a97d3e710aaed5c8ea85af04236c28
-# Parent  2c8e1acf0433db897eb3bc8f6e1276b2c84769b7
-6878713: Verifier heap corruption, relating to backward jsrs
-Summary: Added overflow detection in arena Amalloc methods
-Reviewed-by: coleenp, phh
-
-diff --git a/src/share/vm/memory/allocation.cpp b/src/share/vm/memory/allocation.cpp
---- openjdk/hotspot/src/share/vm/memory/allocation.cpp
-+++ openjdk/hotspot/src/share/vm/memory/allocation.cpp
-@@ -377,6 +377,9 @@ size_t Arena::used() const {
-   return sum;                   // Return total consumed space.
- }
- 
-+void Arena::signal_out_of_memory(size_t sz, const char* whence) const {
-+  vm_exit_out_of_memory(sz, whence);
-+}
- 
- // Grow a new Chunk
- void* Arena::grow( size_t x ) {
-@@ -386,8 +389,9 @@ void* Arena::grow( size_t x ) {
-   Chunk *k = _chunk;            // Get filled-up chunk address
-   _chunk = new (len) Chunk(len);
- 
--  if (_chunk == NULL)
--      vm_exit_out_of_memory(len * Chunk::aligned_overhead_size(), "Arena::grow");
-+  if (_chunk == NULL) {
-+    signal_out_of_memory(len * Chunk::aligned_overhead_size(), "Arena::grow");
-+  }
- 
-   if (k) k->set_next(_chunk);   // Append new chunk to end of linked list
-   else _first = _chunk;
-@@ -484,6 +488,7 @@ void* Arena::malloc(size_t size) {
- // for debugging with UseMallocOnly
- void* Arena::internal_malloc_4(size_t x) {
-   assert( (x&(sizeof(char*)-1)) == 0, "misaligned size" );
-+  check_for_overflow(x, "Arena::internal_malloc_4");
-   if (_hwm + x > _max) {
-     return grow(x);
-   } else {
-diff --git a/src/share/vm/memory/allocation.hpp b/src/share/vm/memory/allocation.hpp
---- openjdk/hotspot/src/share/vm/memory/allocation.hpp
-+++ openjdk/hotspot/src/share/vm/memory/allocation.hpp
-@@ -194,6 +194,15 @@ protected:
-   friend class AllocStats;
-   debug_only(void* malloc(size_t size);)
-   debug_only(void* internal_malloc_4(size_t x);)
-+
-+  void signal_out_of_memory(size_t request, const char* whence) const;
-+
-+  void check_for_overflow(size_t request, const char* whence) const {
-+    if (UINTPTR_MAX - request < (uintptr_t)_hwm) {
-+      signal_out_of_memory(request, whence);
-+    }
-+  }
-+
-  public:
-   Arena();
-   Arena(size_t init_size);
-@@ -207,6 +216,7 @@ protected:
-     assert(is_power_of_2(ARENA_AMALLOC_ALIGNMENT) , "should be a power of 2");
-     x = ARENA_ALIGN(x);
-     debug_only(if (UseMallocOnly) return malloc(x);)
-+    check_for_overflow(x, "Arena::Amalloc");
-     NOT_PRODUCT(_bytes_allocated += x);
-     if (_hwm + x > _max) {
-       return grow(x);
-@@ -220,6 +230,7 @@ protected:
-   void *Amalloc_4(size_t x) {
-     assert( (x&(sizeof(char*)-1)) == 0, "misaligned size" );
-     debug_only(if (UseMallocOnly) return malloc(x);)
-+    check_for_overflow(x, "Arena::Amalloc_4");
-     NOT_PRODUCT(_bytes_allocated += x);
-     if (_hwm + x > _max) {
-       return grow(x);
-@@ -240,6 +251,7 @@ protected:
-     size_t delta = (((size_t)_hwm + DALIGN_M1) & ~DALIGN_M1) - (size_t)_hwm;
-     x += delta;
- #endif
-+    check_for_overflow(x, "Arena::Amalloc_D");
-     NOT_PRODUCT(_bytes_allocated += x);
-     if (_hwm + x > _max) {
-       return grow(x); // grow() returns a result aligned >= 8 bytes.
-diff --git a/src/share/vm/utilities/globalDefinitions_gcc.hpp b/src/share/vm/utilities/globalDefinitions_gcc.hpp
---- openjdk/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp
-+++ openjdk/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp
-@@ -72,6 +72,7 @@
- # endif
- 
- #ifdef LINUX
-+#define __STDC_LIMIT_MACROS
- #include <inttypes.h>
- #include <signal.h>
- #include <ucontext.h>
-diff --git a/src/share/vm/utilities/globalDefinitions_sparcWorks.hpp b/src/share/vm/utilities/globalDefinitions_sparcWorks.hpp
---- openjdk/hotspot/src/share/vm/utilities/globalDefinitions_sparcWorks.hpp
-+++ openjdk/hotspot/src/share/vm/utilities/globalDefinitions_sparcWorks.hpp
-@@ -141,6 +141,17 @@ typedef unsigned int            uintptr_
- // If this gets an error, figure out a symbol XXX that implies the
- // prior definition of intptr_t, and add "&& !defined(XXX)" above.
- #endif
-+#endif
-+
-+// On solaris 8, UINTPTR_MAX is defined as empty.  
-+// Everywhere else it's an actual value.
-+#if UINTPTR_MAX - 1 == -1
-+#undef UINTPTR_MAX
-+#ifdef _LP64
-+#define UINTPTR_MAX UINT64_MAX
-+#else
-+#define UINTPTR_MAX UINT32_MAX
-+#endif /* ifdef _LP64 */
- #endif
- 
- // Additional Java basic types
-diff --git a/src/share/vm/utilities/globalDefinitions_visCPP.hpp b/src/share/vm/utilities/globalDefinitions_visCPP.hpp
---- openjdk/hotspot/src/share/vm/utilities/globalDefinitions_visCPP.hpp
-+++ openjdk/hotspot/src/share/vm/utilities/globalDefinitions_visCPP.hpp
-@@ -36,6 +36,7 @@
- # include <stdio.h> // for va_list
- # include <time.h>
- # include <fcntl.h>
-+# include <limits.h>
- // Need this on windows to get the math constants (e.g., M_PI).
- #define _USE_MATH_DEFINES
- # include <math.h>
-@@ -92,6 +93,14 @@ typedef signed   __int64 ssize_t;
- #else
- typedef signed   int intptr_t;
- typedef signed   int ssize_t;
-+#endif
-+
-+#ifndef UINTPTR_MAX
-+#ifdef _WIN64
-+#define UINTPTR_MAX _UI64_MAX
-+#else
-+#define UINTPTR_MAX _UI32_MAX
-+#endif
- #endif
- 
- //----------------------------------------------------------------------------------------------------
--- a/patches/security/20110607/6213702.patch	Wed Jul 06 23:24:30 2011 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,107 +0,0 @@
-# HG changeset patch
-# User asaha
-# Date 1300988627 25200
-# Node ID bfc1a4516e20e13c84b6597d7bfcbd2fbc3e0c4d
-# Parent  16fbb8d0b834c3e0a95a4d51e22ec77b81192bb3
-6213702: (so) non-blocking sockets with TCP urgent disabled get still selected for read ops (win)
-Reviewed-by: alanb
-
-diff --git a/src/windows/classes/sun/nio/ch/WindowsSelectorImpl.java b/src/windows/classes/sun/nio/ch/WindowsSelectorImpl.java
---- openjdk/jdk/src/windows/classes/sun/nio/ch/WindowsSelectorImpl.java
-+++ openjdk/jdk/src/windows/classes/sun/nio/ch/WindowsSelectorImpl.java
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2002, 2007, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
-  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-  *
-  * This code is free software; you can redistribute it and/or modify it
-@@ -308,14 +308,17 @@ final class WindowsSelectorImpl extends 
-         private int processSelectedKeys(long updateCount) {
-             int numKeysUpdated = 0;
-             numKeysUpdated += processFDSet(updateCount, readFds,
--                                           PollArrayWrapper.POLLIN);
-+                                           PollArrayWrapper.POLLIN,
-+                                           false);
-             numKeysUpdated += processFDSet(updateCount, writeFds,
-                                            PollArrayWrapper.POLLCONN |
--                                           PollArrayWrapper.POLLOUT);
-+                                           PollArrayWrapper.POLLOUT,
-+                                           false);
-             numKeysUpdated += processFDSet(updateCount, exceptFds,
-                                            PollArrayWrapper.POLLIN |
-                                            PollArrayWrapper.POLLCONN |
--                                           PollArrayWrapper.POLLOUT);
-+                                           PollArrayWrapper.POLLOUT,
-+                                           true);
-             return numKeysUpdated;
-         }
- 
-@@ -327,7 +330,8 @@ final class WindowsSelectorImpl extends 
-          *
-          * me.updateCount <= me.clearedCount <= updateCount
-          */
--        private int processFDSet(long updateCount, int[] fds, int rOps) {
-+        private int processFDSet(long updateCount, int[] fds, int rOps,
-+                                 boolean isExceptFds) {
-             int numKeysUpdated = 0;
-             for (int i = 1; i <= fds[0]; i++) {
-                 int desc = fds[i];
-@@ -343,6 +347,17 @@ final class WindowsSelectorImpl extends 
-                 if (me == null)
-                     continue;
-                 SelectionKeyImpl sk = me.ski;
-+
-+                // The descriptor may be in the exceptfds set because there is
-+                // OOB data queued to the socket. If there is OOB data then it
-+                // is discarded and the key is not added to the selected set.
-+                if (isExceptFds &&
-+                    (sk.channel() instanceof SocketChannelImpl) &&
-+                    discardUrgentData(desc))
-+                {
-+                    continue;
-+                }
-+
-                 if (selectedKeys.contains(sk)) { // Key in selected set
-                     if (me.clearedCount != updateCount) {
-                         if (sk.channel.translateAndSetReadyOps(rOps, sk) &&
-@@ -448,6 +463,8 @@ final class WindowsSelectorImpl extends 
-     }
- 
-     private native void resetWakeupSocket0(int wakeupSourceFd);
-+
-+    private native boolean discardUrgentData(int fd);
- 
-     // We increment this counter on each call to updateSelectedKeys()
-     // each entry in  SubSelector.fdsMap has a memorized value of
-diff --git a/src/windows/native/sun/nio/ch/WindowsSelectorImpl.c b/src/windows/native/sun/nio/ch/WindowsSelectorImpl.c
---- openjdk/jdk/src/windows/native/sun/nio/ch/WindowsSelectorImpl.c
-+++ openjdk/jdk/src/windows/native/sun/nio/ch/WindowsSelectorImpl.c
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
-  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-  *
-  * This code is free software; you can redistribute it and/or modify it
-@@ -211,3 +211,20 @@ Java_sun_nio_ch_WindowsSelectorImpl_rese
-         recv(scinFd, bytes, WAKEUP_SOCKET_BUF_SIZE, 0);
-     }
- }
-+
-+JNIEXPORT jboolean JNICALL
-+Java_sun_nio_ch_WindowsSelectorImpl_discardUrgentData(JNIEnv* env, jobject this,
-+                                                      jint s)
-+{
-+    char data[8];
-+    jboolean discarded = JNI_FALSE;
-+    int n;
-+    do {
-+        n = recv(s, data, sizeof(data), MSG_OOB);
-+        if (n > 0) {
-+            discarded = JNI_TRUE;
-+        }
-+    } while (n > 0);
-+    return discarded;
-+}
-+
--- a/patches/security/20110607/6618658.patch	Wed Jul 06 23:24:30 2011 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
---- openjdk/jdk/src/share/classes/java/security/SignedObject.java	2011-02-09 16:33:11.000000000 +0800
-+++ openjdk/jdk/src/share/classes/java/security/SignedObject.java	2011-02-09 16:33:10.000000000 +0800
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 1997, 2003, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
-  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-  *
-  * This code is free software; you can redistribute it and/or modify it
-@@ -249,10 +249,10 @@
-      * a stream.
-      */
-     private void readObject(java.io.ObjectInputStream s)
--         throws java.io.IOException, ClassNotFoundException
--    {
--        s.defaultReadObject();
--        content = content.clone();
--        signature = signature.clone();
-+        throws java.io.IOException, ClassNotFoundException {
-+            java.io.ObjectInputStream.GetField fields = s.readFields();
-+            content = ((byte[])fields.get("content", null)).clone();
-+            signature = ((byte[])fields.get("signature", null)).clone();
-+            thealgorithm = (String)fields.get("thealgorithm", null);
-     }
- }
--- a/patches/security/20110607/7012520.patch	Wed Jul 06 23:24:30 2011 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-# HG changeset patch
-# User dcherepanov
-# Date 1301921550 -14400
-# Node ID 049b0098d27c509fd57843ab4ea7aa5fa5fc84bd
-# Parent  dc0eabbd9955ebe6a40aa931d6f3333e1f50a1b2
-7012520: Heap overflow vulnerability in FileDialog.show()
-Reviewed-by: art, anthony
-
-diff --git a/src/windows/native/sun/windows/awt_FileDialog.cpp b/src/windows/native/sun/windows/awt_FileDialog.cpp
---- openjdk/jdk/src/windows/native/sun/windows/awt_FileDialog.cpp
-+++ openjdk/jdk/src/windows/native/sun/windows/awt_FileDialog.cpp
-@@ -231,11 +231,12 @@ AwtFileDialog::Show(void *p)
-         JavaStringBuffer directoryBuffer(env, directory);
- 
-         fileBuffer = new TCHAR[MAX_PATH+1];
-+        memset(fileBuffer, 0, (MAX_PATH+1) * sizeof(TCHAR));
- 
-         file = (jstring)env->GetObjectField(target, AwtFileDialog::fileID);
-         if (file != NULL) {
-             LPCTSTR tmp = JNU_GetStringPlatformChars(env, file, NULL);
--            _tcscpy(fileBuffer, tmp);
-+            _tcsncpy(fileBuffer, tmp, MAX_PATH-1); // the fileBuffer is double null terminated string
-             JNU_ReleaseStringPlatformChars(env, file, tmp);
-         } else {
-             fileBuffer[0] = _T('\0');
--- a/patches/security/20110607/7013519.patch	Wed Jul 06 23:24:30 2011 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-# HG changeset patch
-# User bae
-# Date 1301414029 -14400
-# Node ID dc0eabbd9955ebe6a40aa931d6f3333e1f50a1b2
-# Parent  bfc1a4516e20e13c84b6597d7bfcbd2fbc3e0c4d
-7013519: [parfait] Integer overflows in 2D code
-Reviewed-by: prr
-
-diff --git a/src/share/native/sun/awt/image/jpeg/imageioJPEG.c b/src/share/native/sun/awt/image/jpeg/imageioJPEG.c
---- openjdk/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c
-+++ openjdk/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c
-@@ -40,6 +40,7 @@
- #include <setjmp.h>
- #include <assert.h>
- #include <string.h>
-+#include <limits.h>
- 
- 
- /* java native interface headers */
-@@ -1921,6 +1922,14 @@ Java_com_sun_imageio_plugins_jpeg_JPEGIm
-     }
- 
-     // Allocate a 1-scanline buffer
-+    if (cinfo->num_components <= 0 ||
-+        cinfo->image_width > (UINT_MAX / (unsigned int)cinfo->num_components))
-+    {
-+        RELEASE_ARRAYS(env, data, src->next_input_byte);
-+        JNU_ThrowByName(env, "javax/imageio/IIOException",
-+                        "Invalid number of color components");
-+        return data->abortFlag;
-+    }
-     scanLinePtr = (JSAMPROW)malloc(cinfo->image_width*cinfo->num_components);
-     if (scanLinePtr == NULL) {
-         RELEASE_ARRAYS(env, data, src->next_input_byte);
-diff --git a/src/share/native/sun/font/layout/SunLayoutEngine.cpp b/src/share/native/sun/font/layout/SunLayoutEngine.cpp
---- openjdk/jdk/src/share/native/sun/font/layout/SunLayoutEngine.cpp
-+++ openjdk/jdk/src/share/native/sun/font/layout/SunLayoutEngine.cpp
-@@ -186,7 +186,11 @@ JNIEXPORT void JNICALL Java_sun_font_Sun
-   jchar buffer[256];
-   jchar* chars = buffer;
-   if (len > 256) {
--    chars = (jchar*)malloc(len * sizeof(jchar));
-+    size_t size = len * sizeof(jchar);
-+    if (size / sizeof(jchar) != len) {
-+      return;
-+    }
-+    chars = (jchar*)malloc(size);
-     if (chars == 0) {
-       return;
-     }
--- a/patches/security/20110607/7013969.patch	Wed Jul 06 23:24:30 2011 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-# HG changeset patch
-# User chegar
-# Date 1298025619 0
-# Node ID 4c569f18b5a1f4eeb7e13fafba7375e39a5b9161
-# Parent  05a59c28ae9fcb8f7c3362a4e1eeeaa1818edbdc
-7013969: NetworkInterface.toString can reveal bindings
-Reviewed-by: alanb, michaelm, hawtin
-
-diff --git a/src/share/classes/java/net/NetworkInterface.java b/src/share/classes/java/net/NetworkInterface.java
---- openjdk/jdk/src/share/classes/java/net/NetworkInterface.java
-+++ openjdk/jdk/src/share/classes/java/net/NetworkInterface.java
-@@ -527,13 +527,8 @@ public final class NetworkInterface {
-         if (displayName != null) {
-             result += " (" + displayName + ")";
-         }
--        result += " index: "+index+" addresses:\n";
--        for (Enumeration e = getInetAddresses(); e.hasMoreElements(); ) {
--            InetAddress addr = (InetAddress)e.nextElement();
--            result += addr+";\n";
--        }
-         return result;
-     }
-+
-     private static native void init();
--
- }
--- a/patches/security/20110607/7013971.patch	Wed Jul 06 23:24:30 2011 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,134 +0,0 @@
-diff -Nru openjdk.orig/jaxws/build.properties openjdk/jaxws/build.properties
---- openjdk.orig/jaxws/build.properties	2011-05-23 22:48:31.989289627 +0100
-+++ openjdk/jaxws/build.properties	2011-05-23 22:49:09.841901697 +0100
-@@ -77,6 +77,9 @@
- # Where patches to drop bundle sources live
- patches.dir=patches
- 
-+# Patches to apply
-+jaxws_src.patch.list=7013971.patch
-+
- # Sanity information
- sanity.info= Sanity Settings:${line.separator}\
-   ant.home=${ant.home}${line.separator}\
-diff -Nru openjdk.orig/jaxws/patches/jaxws_src/7013971.patch openjdk/jaxws/patches/jaxws_src/7013971.patch
---- openjdk.orig/jaxws/patches/jaxws_src/7013971.patch	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jaxws/patches/jaxws_src/7013971.patch	2011-05-23 22:50:07.414832540 +0100
-@@ -0,0 +1,117 @@
-+--- src/com/sun/xml/internal/messaging/saaj/client/p2p/HttpSOAPConnection.java	Tue Jul 21 14:54:59 2009 -0700
-++++ src/com/sun/xml/internal/messaging/saaj/client/p2p/HttpSOAPConnection.java	Mon Feb 14 09:09:00 2011 +0530
-+@@ -72,16 +72,11 @@ public class HttpSOAPConnection extends 
-+         Logger.getLogger(LogDomainConstants.HTTP_CONN_DOMAIN,
-+                          "com.sun.xml.internal.messaging.saaj.client.p2p.LocalStrings");
-+ 
-+-    private static final String defaultProxyHost = null;
-+-    private static final int defaultProxyPort = -1;
-+-
-+     MessageFactory messageFactory = null;
-+ 
-+     boolean closed = false;
-+ 
-+     public HttpSOAPConnection() throws SOAPException {
-+-        proxyHost = defaultProxyHost;
-+-        proxyPort = defaultProxyPort;
-+ 
-+         try {
-+             messageFactory = MessageFactory.newInstance(SOAPConstants.DYNAMIC_SOAP_PROTOCOL);
-+@@ -157,11 +152,7 @@ public class HttpSOAPConnection extends 
-+ 
-+         if (endPoint instanceof URL)
-+             try {
-+-                PriviledgedPost pp =
-+-                    new PriviledgedPost(this, message, (URL) endPoint);
-+-                SOAPMessage response =
-+-                    (SOAPMessage) AccessController.doPrivileged(pp);
-+-
-++                SOAPMessage response = post(message, (URL) endPoint);
-+                 return response;
-+             } catch (Exception ex) {
-+                 // TBD -- chaining?
-+@@ -170,73 +161,6 @@ public class HttpSOAPConnection extends 
-+             log.severe("SAAJ0007.p2p.bad.endPoint.type");
-+             throw new SOAPExceptionImpl("Bad endPoint type " + endPoint);
-+         }
-+-    }
-+-
-+-    static class PriviledgedPost implements PrivilegedExceptionAction {
-+-
-+-        HttpSOAPConnection c;
-+-        SOAPMessage message;
-+-        URL endPoint;
-+-
-+-        PriviledgedPost(
-+-            HttpSOAPConnection c,
-+-            SOAPMessage message,
-+-            URL endPoint) {
-+-            this.c = c;
-+-            this.message = message;
-+-            this.endPoint = endPoint;
-+-        }
-+-
-+-        public Object run() throws Exception {
-+-            return c.post(message, endPoint);
-+-        }
-+-    }
-+-
-+-    // TBD
-+-    //    Fix this to do things better.
-+-
-+-    private String proxyHost = null;
-+-
-+-    static class PriviledgedSetProxyAction implements PrivilegedExceptionAction {
-+-                                                                                                                                             
-+-        String proxyHost = null;
-+-        int proxyPort = 0;
-+-
-+-        PriviledgedSetProxyAction(String host, int port) {
-+-            this.proxyHost = host;
-+-            this.proxyPort = port;
-+-        }
-+-                                                                                                                                             
-+-        public Object run() throws Exception {
-+-            System.setProperty("http.proxyHost", proxyHost);
-+-            System.setProperty("http.proxyPort", new Integer(proxyPort).toString());
-+-            log.log(Level.FINE, "SAAJ0050.p2p.proxy.host", 
-+-                    new String[] { proxyHost });
-+-            log.log(Level.FINE, "SAAJ0051.p2p.proxy.port",
-+-                    new String[] { new Integer(proxyPort).toString() });
-+-            return proxyHost;
-+-        }
-+-    }
-+-
-+-
-+-    public void setProxy(String host, int port) {
-+-        try {
-+-            proxyPort = port;
-+-            PriviledgedSetProxyAction ps = new PriviledgedSetProxyAction(host, port); 
-+-            proxyHost = (String) AccessController.doPrivileged(ps);
-+-        } catch (Exception e) {
-+-            throw new RuntimeException(e);
-+-        }
-+-    }
-+-    
-+-    public String getProxyHost() {
-+-        return proxyHost;
-+-    }
-+-
-+-    private int proxyPort = -1;
-+-
-+-    public int getProxyPort() {
-+-        return proxyPort;
-+     }
-+ 
-+     SOAPMessage post(SOAPMessage message, URL endPoint) throws SOAPException {
-+--- src/com/sun/xml/internal/messaging/saaj/client/p2p/HttpSOAPConnection.java	Mon Feb 14 09:09:00 2011 +0530
-++++ src/com/sun/xml/internal/messaging/saaj/client/p2p/HttpSOAPConnection.java	Wed Feb 16 00:11:00 2011 +0530
-+@@ -201,7 +201,7 @@ public class HttpSOAPConnection extends 
-+             httpConnection.setDoOutput(true);
-+             httpConnection.setDoInput(true);
-+             httpConnection.setUseCaches(false);
-+-            HttpURLConnection.setFollowRedirects(true);
-++            httpConnection.setInstanceFollowRedirects(true);
-+ 
-+             if (message.saveRequired())
-+                 message.saveChanges();
--- a/patches/security/20110607/7016495.patch	Wed Jul 06 23:24:30 2011 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,424 +0,0 @@
-# HG changeset patch
-# User flar
-# Date 1299032055 28800
-# Node ID 50636a6053f85b1355152385560c5856ea14dc3f
-# Parent  4c569f18b5a1f4eeb7e13fafba7375e39a5b9161
-7016495: Crash in Java 2D transforming an image with scale close to zero
-Reviewed-by: prr, bae
-
-diff --git a/src/share/classes/sun/java2d/pipe/DrawImage.java b/src/share/classes/sun/java2d/pipe/DrawImage.java
---- openjdk/jdk/src/share/classes/sun/java2d/pipe/DrawImage.java
-+++ openjdk/jdk/src/share/classes/sun/java2d/pipe/DrawImage.java
-@@ -509,6 +509,9 @@ public class DrawImage implements DrawIm
-          * edges thus has to be h*2+2 in length
-          */
-         int edges[] = new int[(dy2-dy1)*2+2];
-+        // It is important that edges[0]=edges[1]=0 when we call
-+        // Transform in case it must return early and we would
-+        // not want to render anything on an error condition.
-         helper.Transform(tmpmaskblit, srcData, tmpData,
-                          AlphaComposite.Src, null,
-                          itx, interpType,
-diff --git a/src/share/native/sun/java2d/loops/TransformHelper.c b/src/share/native/sun/java2d/loops/TransformHelper.c
---- openjdk/jdk/src/share/native/sun/java2d/loops/TransformHelper.c
-+++ openjdk/jdk/src/share/native/sun/java2d/loops/TransformHelper.c
-@@ -75,6 +75,94 @@ TransformInterpFunc *pBicubicFunc = Bicu
- TransformInterpFunc *pBicubicFunc = BicubicInterp;
- 
- /*
-+ * The dxydxy parameters of the inverse transform determine how
-+ * quickly we step through the source image.  For tiny scale
-+ * factors (on the order of 1E-16 or so) the stepping distances
-+ * are huge.  The image has been scaled so small that stepping
-+ * a single pixel in device space moves the sampling point by
-+ * billions (or more) pixels in the source image space.  These
-+ * huge stepping values can overflow the whole part of the longs
-+ * we use for the fixed point stepping equations and so we need
-+ * a more robust solution.  We could simply iterate over every
-+ * device pixel, use the inverse transform to transform it back
-+ * into the source image coordinate system and then test it for
-+ * being in range and sample pixel-by-pixel, but that is quite
-+ * a bit more expensive.  Fortunately, if the scale factors are
-+ * so tiny that we overflow our long values then the number of
-+ * pixels we are planning to visit should be very tiny.  The only
-+ * exception to that rule is if the scale factor along one
-+ * dimension is tiny (creating the huge stepping values), and
-+ * the scale factor along the other dimension is fairly regular
-+ * or an up-scale.  In that case we have a lot of pixels along
-+ * the direction of the larger axis to sample, but few along the
-+ * smaller axis.  Though, pessimally, with an added shear factor
-+ * such a linearly tiny image could have bounds that cover a large
-+ * number of pixels.  Such odd transformations should be very
-+ * rare and the absolute limit on calculations would involve a
-+ * single reverse transform of every pixel in the output image
-+ * which is not fast, but it should not cause an undue stall
-+ * of the rendering software.
-+ *
-+ * The specific test we will use is to calculate the inverse
-+ * transformed values of every corner of the destination bounds
-+ * (in order to be user-clip independent) and if we can
-+ * perform a fixed-point-long inverse transform of all of
-+ * those points without overflowing we will use the fast
-+ * fixed point algorithm.  Otherwise we will use the safe
-+ * per-pixel transform algorithm.
-+ * The 4 corners are 0,0, 0,dsth, dstw,0, dstw,dsth
-+ * Transformed they are:
-+ *     tx,               ty
-+ *     tx       +dxdy*H, ty       +dydy*H
-+ *     tx+dxdx*W,        ty+dydx*W
-+ *     tx+dxdx*W+dxdy*H, ty+dydx*W+dydy*H
-+ */
-+/* We reject coordinates not less than 1<<30 so that the distance between */
-+/* any 2 of them is less than 1<<31 which would overflow into the sign */
-+/* bit of a signed long value used to represent fixed point coordinates. */
-+#define TX_FIXED_UNSAFE(v)  (fabs(v) >= (1<<30))
-+static jboolean
-+checkOverflow(jint dxoff, jint dyoff,
-+              SurfaceDataBounds *pBounds,
-+              TransformInfo *pItxInfo,
-+              jdouble *retx, jdouble *rety)
-+{
-+    jdouble x, y;
-+
-+    x = dxoff+pBounds->x1+0.5; /* Center of pixel x1 */
-+    y = dyoff+pBounds->y1+0.5; /* Center of pixel y1 */
-+    Transform_transform(pItxInfo, &x, &y);
-+    *retx = x;
-+    *rety = y;
-+    if (TX_FIXED_UNSAFE(x) || TX_FIXED_UNSAFE(y)) {
-+        return JNI_TRUE;
-+    }
-+
-+    x = dxoff+pBounds->x2-0.5; /* Center of pixel x2-1 */
-+    y = dyoff+pBounds->y1+0.5; /* Center of pixel y1 */
-+    Transform_transform(pItxInfo, &x, &y);
-+    if (TX_FIXED_UNSAFE(x) || TX_FIXED_UNSAFE(y)) {
-+        return JNI_TRUE;
-+    }
-+
-+    x = dxoff+pBounds->x1+0.5; /* Center of pixel x1 */
-+    y = dyoff+pBounds->y2-0.5; /* Center of pixel y2-1 */
-+    Transform_transform(pItxInfo, &x, &y);
-+    if (TX_FIXED_UNSAFE(x) || TX_FIXED_UNSAFE(y)) {
-+        return JNI_TRUE;
-+    }
-+
-+    x = dxoff+pBounds->x2-0.5; /* Center of pixel x2-1 */
-+    y = dyoff+pBounds->y2-0.5; /* Center of pixel y2-1 */
-+    Transform_transform(pItxInfo, &x, &y);
-+    if (TX_FIXED_UNSAFE(x) || TX_FIXED_UNSAFE(y)) {
-+        return JNI_TRUE;
-+    }
-+
-+    return JNI_FALSE;
-+}
-+
-+/*
-  * Fill the edge buffer with pairs of coordinates representing the maximum
-  * left and right pixels of the destination surface that should be processed
-  * on each scanline, clipped to the bounds parameter.
-@@ -82,21 +170,19 @@ TransformInterpFunc *pBicubicFunc = Bicu
-  * Only pixels that map back through the specified (inverse) transform to a
-  * source coordinate that falls within the (0, 0, sw, sh) bounds of the
-  * source image should be processed.
-- * pEdgeBuf points to an array of jints that holds MAXEDGES*2 values.
-- * If more storage is needed, then this function allocates a new buffer.
-- * In either case, a pointer to the buffer actually used to store the
-- * results is returned.
-- * The caller is responsible for freeing the buffer if the return value
-- * is not the same as the original pEdgeBuf passed in.
-+ * pEdges points to an array of jints that holds 2 + numedges*2 values where
-+ * numedges should match (pBounds->y2 - pBounds->y1).
-+ * The first two jints in pEdges should be set to y1 and y2 and every pair
-+ * of jints after that represent the xmin,xmax of all pixels in range of
-+ * the transformed blit for the corresponding scanline.
-  */
--static jint *
--calculateEdges(jint *pEdgeBuf,
-+static void
-+calculateEdges(jint *pEdges,
-                SurfaceDataBounds *pBounds,
-                TransformInfo *pItxInfo,
-                jlong xbase, jlong ybase,
-                juint sw, juint sh)
- {
--    jint *pEdges;
-     jlong dxdxlong, dydxlong;
-     jlong dxdylong, dydylong;
-     jlong drowxlong, drowylong;
-@@ -111,10 +197,8 @@ calculateEdges(jint *pEdgeBuf,
-     dy1 = pBounds->y1;
-     dx2 = pBounds->x2;
-     dy2 = pBounds->y2;
--    if ((dy2-dy1) > MAXEDGES) {
--        pEdgeBuf = malloc(2 * (dy2-dy1) * sizeof (*pEdges));
--    }
--    pEdges = pEdgeBuf;
-+    *pEdges++ = dy1;
-+    *pEdges++ = dy2;
- 
-     drowxlong = (dx2-dx1-1) * dxdxlong;
-     drowylong = (dx2-dx1-1) * dydxlong;
-@@ -155,9 +239,21 @@ calculateEdges(jint *pEdgeBuf,
-         ybase += dydylong;
-         dy1++;
-     }
-+}
- 
--    return pEdgeBuf;
--}
-+static void
-+Transform_SafeHelper(JNIEnv *env,
-+                     SurfaceDataOps *srcOps,
-+                     SurfaceDataOps *dstOps,
-+                     SurfaceDataRasInfo *pSrcInfo,
-+                     SurfaceDataRasInfo *pDstInfo,
-+                     NativePrimitive *pMaskBlitPrim,
-+                     CompositeInfo *pCompInfo,
-+                     TransformHelperFunc *pHelperFunc,
-+                     TransformInterpFunc *pInterpFunc,
-+                     RegionData *pClipInfo, TransformInfo *pItxInfo,
-+                     jint *pData, jint *pEdges,
-+                     jint dxoff, jint dyoff, jint sw, jint sh);
- 
- /*
-  * Class:     sun_java2d_loops_TransformHelper
-@@ -187,12 +283,14 @@ Java_sun_java2d_loops_TransformHelper_Tr
-     jint maxlinepix;
-     TransformHelperFunc *pHelperFunc;
-     TransformInterpFunc *pInterpFunc;
--    jint edgebuf[MAXEDGES * 2];
-+    jdouble xorig, yorig;
-+    jint numedges;
-     jint *pEdges;
--    jdouble x, y;
--    jlong xbase, ybase;
--    jlong dxdxlong, dydxlong;
--    jlong dxdylong, dydylong;
-+    jint edgebuf[2 + MAXEDGES * 2];
-+    union {
-+        jlong align;
-+        jint data[LINE_SIZE];
-+    } rgb;
- 
- #ifdef MAKE_STUBS
-     static int th_initialized;
-@@ -269,39 +367,62 @@ Java_sun_java2d_loops_TransformHelper_Tr
-     if (srcOps->Lock(env, srcOps, &srcInfo, pHelperPrim->srcflags)
-         != SD_SUCCESS)
-     {
-+        /* edgeArray should already contain zeros for min/maxy */
-         return;
-     }
-     if (dstOps->Lock(env, dstOps, &dstInfo, pMaskBlitPrim->dstflags)
-         != SD_SUCCESS)
-     {
-         SurfaceData_InvokeUnlock(env, srcOps, &srcInfo);
-+        /* edgeArray should already contain zeros for min/maxy */
-         return;
-     }
-     Region_IntersectBounds(&clipInfo, &dstInfo.bounds);
- 
-+    numedges = (dstInfo.bounds.y2 - dstInfo.bounds.y1);
-+    if (numedges > MAXEDGES) {
-+        pEdges = malloc((2 + 2 * numedges) * sizeof (*pEdges));
-+        if (pEdges == NULL) {
-+            SurfaceData_InvokeUnlock(env, dstOps, &dstInfo);
-+            SurfaceData_InvokeUnlock(env, srcOps, &srcInfo);
-+            /* edgeArray should already contain zeros for min/maxy */
-+            return;
-+        }
-+    } else {
-+        pEdges = edgebuf;
-+    }
-+
-     Transform_GetInfo(env, itxform, &itxInfo);
--    dxdxlong = DblToLong(itxInfo.dxdx);
--    dydxlong = DblToLong(itxInfo.dydx);
--    dxdylong = DblToLong(itxInfo.dxdy);
--    dydylong = DblToLong(itxInfo.dydy);
--    x = dxoff+dstInfo.bounds.x1+0.5; /* Center of pixel x1 */
--    y = dyoff+dstInfo.bounds.y1+0.5; /* Center of pixel y1 */
--    Transform_transform(&itxInfo, &x, &y);
--    xbase = DblToLong(x);
--    ybase = DblToLong(y);
--
--    pEdges = calculateEdges(edgebuf, &dstInfo.bounds, &itxInfo,
--                            xbase, ybase, sx2-sx1, sy2-sy1);
- 
-     if (!Region_IsEmpty(&clipInfo)) {
-         srcOps->GetRasInfo(env, srcOps, &srcInfo);
-         dstOps->GetRasInfo(env, dstOps, &dstInfo);
--        if (srcInfo.rasBase && dstInfo.rasBase) {
--            union {
--                jlong align;
--                jint data[LINE_SIZE];
--            } rgb;
-+        if (srcInfo.rasBase == NULL || dstInfo.rasBase == NULL) {
-+            pEdges[0] = pEdges[1] = 0;
-+        } else if (checkOverflow(dxoff, dyoff, &dstInfo.bounds,
-+                                 &itxInfo, &xorig, &yorig))
-+        {
-+            Transform_SafeHelper(env, srcOps, dstOps,
-+                                 &srcInfo, &dstInfo,
-+                                 pMaskBlitPrim, &compInfo,
-+                                 pHelperFunc, pInterpFunc,
-+                                 &clipInfo, &itxInfo, rgb.data, pEdges,
-+                                 dxoff, dyoff, sx2-sx1, sy2-sy1);
-+        } else {
-             SurfaceDataBounds span;
-+            jlong dxdxlong, dydxlong;
-+            jlong dxdylong, dydylong;
-+            jlong xbase, ybase;
-+
-+            dxdxlong = DblToLong(itxInfo.dxdx);
-+            dydxlong = DblToLong(itxInfo.dydx);
-+            dxdylong = DblToLong(itxInfo.dxdy);
-+            dydylong = DblToLong(itxInfo.dydy);
-+            xbase = DblToLong(xorig);
-+            ybase = DblToLong(yorig);
-+
-+            calculateEdges(pEdges, &dstInfo.bounds, &itxInfo,
-+                           xbase, ybase, sx2-sx1, sy2-sy1);
- 
-             Region_StartIteration(env, &clipInfo);
-             while (Region_NextIteration(&clipInfo, &span)) {
-@@ -318,8 +439,8 @@ Java_sun_java2d_loops_TransformHelper_Tr
- 
-                     /* Note - process at most one scanline at a time. */
- 
--                    dx1 = pEdges[(dy1 - dstInfo.bounds.y1) * 2];
--                    dx2 = pEdges[(dy1 - dstInfo.bounds.y1) * 2 + 1];
-+                    dx1 = pEdges[(dy1 - dstInfo.bounds.y1) * 2 + 2];
-+                    dx2 = pEdges[(dy1 - dstInfo.bounds.y1) * 2 + 3];
-                     if (dx1 < span.x1) dx1 = span.x1;
-                     if (dx2 > span.x2) dx2 = span.x2;
- 
-@@ -376,19 +497,122 @@ Java_sun_java2d_loops_TransformHelper_Tr
-         }
-         SurfaceData_InvokeRelease(env, dstOps, &dstInfo);
-         SurfaceData_InvokeRelease(env, srcOps, &srcInfo);
-+    } else {
-+        pEdges[0] = pEdges[1] = 0;
-     }
-     SurfaceData_InvokeUnlock(env, dstOps, &dstInfo);
-     SurfaceData_InvokeUnlock(env, srcOps, &srcInfo);
-     if (!JNU_IsNull(env, edgeArray)) {
--        (*env)->SetIntArrayRegion(env, edgeArray, 0, 1, &dstInfo.bounds.y1);
--        (*env)->SetIntArrayRegion(env, edgeArray, 1, 1, &dstInfo.bounds.y2);
--        (*env)->SetIntArrayRegion(env, edgeArray,
--                                  2, (dstInfo.bounds.y2 - dstInfo.bounds.y1)*2,
--                                  pEdges);
-+        (*env)->SetIntArrayRegion(env, edgeArray, 0, 2+numedges*2, pEdges);
-     }
-     if (pEdges != edgebuf) {
-         free(pEdges);
-     }
-+}
-+
-+static void
-+Transform_SafeHelper(JNIEnv *env,
-+                     SurfaceDataOps *srcOps,
-+                     SurfaceDataOps *dstOps,
-+                     SurfaceDataRasInfo *pSrcInfo,
-+                     SurfaceDataRasInfo *pDstInfo,
-+                     NativePrimitive *pMaskBlitPrim,
-+                     CompositeInfo *pCompInfo,
-+                     TransformHelperFunc *pHelperFunc,
-+                     TransformInterpFunc *pInterpFunc,
-+                     RegionData *pClipInfo, TransformInfo *pItxInfo,
-+                     jint *pData, jint *pEdges,
-+                     jint dxoff, jint dyoff, jint sw, jint sh)
-+{
-+    SurfaceDataBounds span;
-+    jint dx1, dx2;
-+    jint dy1, dy2;
-+    jint i, iy;
-+
-+    dy1 = pDstInfo->bounds.y1;
-+    dy2 = pDstInfo->bounds.y2;
-+    dx1 = pDstInfo->bounds.x1;
-+    dx2 = pDstInfo->bounds.x2;
-+    pEdges[0] = dy1;
-+    pEdges[1] = dy2;
-+    for (iy = dy1; iy < dy2; iy++) {
-+        jint i = (iy - dy1) * 2;
-+        /* row spans are set to max,min until we find a pixel in range below */
-+        pEdges[i + 2] = dx2;
-+        pEdges[i + 3] = dx1;
-+    }
-+
-+    Region_StartIteration(env, pClipInfo);
-+    while (Region_NextIteration(pClipInfo, &span)) {
-+        dy1 = span.y1;
-+        dy2 = span.y2;
-+        while (dy1 < dy2) {
-+            dx1 = span.x1;
-+            dx2 = span.x2;
-+            i = (dy1 - pDstInfo->bounds.y1) * 2;
-+            while (dx1 < dx2) {
-+                jdouble x, y;
-+                jlong xlong, ylong;
-+
-+                x = dxoff + dx1 + 0.5;
-+                y = dyoff + dy1 + 0.5;
-+                Transform_transform(pItxInfo, &x, &y);
-+                xlong = DblToLong(x);
-+                ylong = DblToLong(y);
-+
-+                /* Process only pixels with centers in bounds
-+                 * Test double values to avoid overflow in conversion
-+                 * to long values and then also test the long values
-+                 * in case they rounded up and out of bounds during
-+                 * the conversion.
-+                 */
-+                if (x >= 0 && y >= 0 && x < sw && y < sh &&
-+                    WholeOfLong(xlong) < sw &&
-+                    WholeOfLong(ylong) < sh)
-+                {
-+                    void *pDst;
-+
-+                    if (pEdges[i + 2] > dx1) {
-+                        pEdges[i + 2] = dx1;
-+                    }
-+                    if (pEdges[i + 3] <= dx1) {
-+                        pEdges[i + 3] = dx1 + 1;
-+                    }
-+
-+                    /* Get IntArgbPre pixel data from source */
-+                    (*pHelperFunc)(pSrcInfo,
-+                                   pData, 1,
-+                                   xlong, 0,
-+                                   ylong, 0);
-+
-+                    /* Interpolate result pixels if needed */
-+                    if (pInterpFunc) {
-+                        (*pInterpFunc)(pData, 1,
-+                                       FractOfLong(xlong-LongOneHalf), 0,
-+                                       FractOfLong(ylong-LongOneHalf), 0);
-+                    }
-+
-+                    /* Store/Composite interpolated pixels into dest */
-+                    pDst = PtrCoord(pDstInfo->rasBase,
-+                                    dx1, pDstInfo->pixelStride,
-+                                    dy1, pDstInfo->scanStride);
-+                    (*pMaskBlitPrim->funcs.maskblit)(pDst, pData,
-+                                                     0, 0, 0,
-+                                                     1, 1,
-+                                                     pDstInfo, pSrcInfo,
-+                                                     pMaskBlitPrim,
-+                                                     pCompInfo);
-+                }
-+
-+                /* Increment to next input pixel */
-+                dx1++;
-+            }
-+
-+            /* Increment to next scanline */
-+            dy1++;
-+        }
-+    }
-+    Region_EndIteration(env, pClipInfo);
- }
- 
- #define BL_INTERP_V1_to_V2_by_F(v1, v2, f) \
--- a/patches/security/20110607/7020198.patch	Wed Jul 06 23:24:30 2011 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,139 +0,0 @@
-# HG changeset patch
-# User alexp
-# Date 1305650123 -14400
-# Node ID 055d6c57c43057e076396142aae7b53272e8a5fa
-# Parent  bf0758eb099e803a6353e96dd02f085e970900d0
-7020198: ImageIcon creates Component with null acc
-Reviewed-by: rupashka
-
-diff --git a/src/share/classes/javax/swing/ImageIcon.java b/src/share/classes/javax/swing/ImageIcon.java
---- openjdk/jdk/src/share/classes/javax/swing/ImageIcon.java
-+++ openjdk/jdk/src/share/classes/javax/swing/ImageIcon.java
-@@ -36,6 +36,9 @@ import java.util.Locale;
- import java.util.Locale;
- import javax.accessibility.*;
- 
-+import sun.awt.AppContext;
-+import java.lang.reflect.Field;
-+import java.security.*;
- 
- /**
-  * An implementation of the Icon interface that paints Icons
-@@ -75,13 +78,59 @@ public class ImageIcon implements Icon, 
-     ImageObserver imageObserver;
-     String description = null;
- 
--    protected final static Component component = new Component() {};
--    protected final static MediaTracker tracker = new MediaTracker(component);
-+   // Fields for twisted backward compatibility only. DO NOT USE.
-+    protected final static Component component;
-+    protected final static MediaTracker tracker;
-+
-+    static {
-+        component = AccessController.doPrivileged(new PrivilegedAction<Component>() {
-+            public Component run() {
-+
-+                try {
-+                    final Component component = createNoPermsComponent();
-+
-+                    // 6482575 - clear the appContext field so as not to leak it
-+                    Field appContextField =
-+
-+                            Component.class.getDeclaredField("appContext");
-+                    appContextField.setAccessible(true);
-+                    appContextField.set(component, null);
-+
-+                    return component;
-+                } catch (Throwable e) {
-+                    // We don't care about component.
-+                    // So don't prevent class initialisation.
-+                    e.printStackTrace();
-+
-+                    return null;
-+                }
-+            }
-+        });
-+        tracker = new MediaTracker(component);
-+    }
-+
-+    private static Component createNoPermsComponent() {
-+        // 7020198 - set acc field to no permissions and no subject
-+        // Note, will have appContext set.
-+        return AccessController.doPrivileged(
-+                new PrivilegedAction<Component>() {
-+                    public Component run() {
-+                        return new Component() {
-+                        };
-+                    }
-+                },
-+                new AccessControlContext(new ProtectionDomain[]{
-+                        new ProtectionDomain(null, null)
-+                })
-+        );
-+    }
- 
-     /**
-      * Id used in loading images from MediaTracker.
-      */
-     private static int mediaTrackerID;
-+
-+    private final static Object TRACKER_KEY = new StringBuilder("TRACKER_KEY");
- 
-     int width = -1;
-     int height = -1;
-@@ -243,17 +292,18 @@ public class ImageIcon implements Icon, 
-      * @param image the image
-      */
-     protected void loadImage(Image image) {
--        synchronized(tracker) {
-+        MediaTracker mTracker = getTracker();
-+        synchronized(mTracker) {
-             int id = getNextID();
- 
--            tracker.addImage(image, id);
-+            mTracker.addImage(image, id);
-             try {
--                tracker.waitForID(id, 0);
-+                mTracker.waitForID(id, 0);
-             } catch (InterruptedException e) {
-                 System.out.println("INTERRUPTED while loading Image");
-             }
--            loadStatus = tracker.statusID(id, false);
--            tracker.removeImage(image, id);
-+            loadStatus = mTracker.statusID(id, false);
-+            mTracker.removeImage(image, id);
- 
-             width = image.getWidth(imageObserver);
-             height = image.getHeight(imageObserver);
-@@ -264,9 +314,30 @@ public class ImageIcon implements Icon, 
-      * Returns an ID to use with the MediaTracker in loading an image.
-      */
-     private int getNextID() {
--        synchronized(tracker) {
-+        synchronized(getTracker()) {
-             return ++mediaTrackerID;
-         }
-+    }
-+
-+    /**
-+     * Returns the MediaTracker for the current AppContext, creating a new
-+     * MediaTracker if necessary.
-+     */
-+    private MediaTracker getTracker() {
-+        Object trackerObj;
-+        AppContext ac = AppContext.getAppContext();
-+        // Opt: Only synchronize if trackerObj comes back null?
-+        // If null, synchronize, re-check for null, and put new tracker
-+        synchronized (ac) {
-+            trackerObj = ac.get(TRACKER_KEY);
-+            if (trackerObj == null) {
-+                Component comp = new Component() {
-+                };
-+                trackerObj = new MediaTracker(comp);
-+                ac.put(TRACKER_KEY, trackerObj);
-+            }
-+        }
-+        return (MediaTracker) trackerObj;
-     }
- 
-     /**
--- a/patches/security/20110607/7020373.patch	Wed Jul 06 23:24:30 2011 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-# HG changeset patch
-# User kamg
-# Date 1300992148 14400
-# Node ID f6b8cfca1b530e9f7fd9a0c95eeb239afdb53177
-# Parent  4863fa64ae5f5c96c36c68c5c2bb765e23a5d697
-7020373: JSR rewriting can overflow memory address size variables
-Summary: Abort if incoming classfile's parameters would cause overflows
-Reviewed-by: coleenp, dcubed, never
-
-diff --git a/src/share/vm/oops/generateOopMap.cpp b/src/share/vm/oops/generateOopMap.cpp
---- openjdk/hotspot/src/share/vm/oops/generateOopMap.cpp
-+++ openjdk/hotspot/src/share/vm/oops/generateOopMap.cpp
-@@ -956,10 +956,21 @@ void GenerateOopMap::init_basic_blocks()
-   // initialize the CellTypeState-related information.
-   init_state();
- 
--  // We allocate space for all state-vectors for all basicblocks in one huge chuck.
--  // Then in the next part of the code, we set a pointer in each _basic_block that
--  // points to each piece.
--  CellTypeState *basicBlockState = NEW_RESOURCE_ARRAY(CellTypeState, bbNo * _state_len);
-+  // We allocate space for all state-vectors for all basicblocks in one huge
-+  // chunk.  Then in the next part of the code, we set a pointer in each
-+  // _basic_block that points to each piece.
-+
-+  // The product of bbNo and _state_len can get large if there are lots of
-+  // basic blocks and stack/locals/monitors.  Need to check to make sure
-+  // we don't overflow the capacity of a pointer.
-+  if ((unsigned)bbNo > UINTPTR_MAX / sizeof(CellTypeState) / _state_len) {
-+    report_error("The amount of memory required to analyze this method "
-+                 "exceeds addressable range");
-+    return;
-+  }
-+
-+  CellTypeState *basicBlockState =
-+      NEW_RESOURCE_ARRAY(CellTypeState, bbNo * _state_len);
-   memset(basicBlockState, 0, bbNo * _state_len * sizeof(CellTypeState));
- 
-   // Make a pass over the basicblocks and assign their state vectors.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/sparc-buildfixes.patch	Thu Jul 07 13:14:02 2011 +0100
@@ -0,0 +1,26 @@
+diff -Nru openjdk.orig/hotspot/make/linux/makefiles/defs.make openjdk/hotspot/make/linux/makefiles/defs.make
+--- openjdk.orig/hotspot/make/linux/makefiles/defs.make	2011-01-25 22:57:24.000000000 +0000
++++ openjdk/hotspot/make/linux/makefiles/defs.make	2011-01-28 01:21:25.609237228 +0000
+@@ -58,7 +58,7 @@
+ endif
+ 
+ # sparc
+-ifeq ($(ARCH), sparc64)
++ifneq (,$(filter $(ARCH), sparc sparc64))
+   ifeq ($(ARCH_DATA_MODEL), 64)
+     ARCH_DATA_MODEL  = 64
+     MAKE_ARGS        += LP64=1
+diff -Nru openjdk.orig/hotspot/make/linux/makefiles/gcc.make openjdk/hotspot/make/linux/makefiles/gcc.make
+--- openjdk.orig/hotspot/make/linux/makefiles/gcc.make	2011-01-28 01:14:57.000000000 +0000
++++ openjdk/hotspot/make/linux/makefiles/gcc.make	2011-01-28 01:21:25.609237228 +0000
+@@ -64,6 +64,10 @@
+ PICFLAG = -fpic
+ endif
+ 
++ifneq ($(filter sparc sparcv9,$(BUILDARCH)),)
++PICFLAG = -fPIC
++endif
++
+ VM_PICFLAG/LIBJVM = $(PICFLAG)
+ VM_PICFLAG/AOUT   =
+ VM_PICFLAG        = $(VM_PICFLAG/$(LINK_INTO))
--- a/patches/systemtap.patch	Wed Jul 06 23:24:30 2011 +0100
+++ b/patches/systemtap.patch	Thu Jul 07 13:14:02 2011 +0100
@@ -60,3 +60,103 @@
  #ifdef ASSERT
      } else if (match_option(option, "-XX:+FullGCALot", &tail)) {
        FLAG_SET_CMDLINE(bool, FullGCALot, true);
+diff -Nru openjdk.orig/hotspot/src/share/vm/utilities/dtrace.hpp openjdk/hotspot/src/share/vm/utilities/dtrace.hpp
+--- openjdk.orig/hotspot/src/share/vm/utilities/dtrace.hpp	2011-01-25 22:57:24.000000000 +0000
++++ openjdk/hotspot/src/share/vm/utilities/dtrace.hpp	2011-01-28 02:39:02.052518309 +0000
+@@ -1,5 +1,6 @@
+ /*
+  * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
++ * Copyright 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
+@@ -25,7 +26,7 @@
+ #ifndef SHARE_VM_UTILITIES_DTRACE_HPP
+ #define SHARE_VM_UTILITIES_DTRACE_HPP
+ 
+-#if defined(SOLARIS) && defined(DTRACE_ENABLED)
++#if defined(DTRACE_ENABLED)
+ 
+ #include <sys/sdt.h>
+ 
+@@ -36,7 +37,7 @@
+ #define HS_DTRACE_WORKAROUND_TAIL_CALL_BUG() \
+   do { volatile size_t dtrace_workaround_tail_call_bug = 1; } while (0)
+ 
+-#else // ndef SOLARIS || ndef DTRACE_ENABLED
++#else // ndef DTRACE_ENABLED
+ 
+ #define DTRACE_ONLY(x)
+ #define NOT_DTRACE(x) x
+@@ -47,11 +48,18 @@
+ #define DTRACE_PROBE3(a,b,c,d,e) {;}
+ #define DTRACE_PROBE4(a,b,c,d,e,f) {;}
+ #define DTRACE_PROBE5(a,b,c,d,e,f,g) {;}
++#define DTRACE_PROBE6(a,b,c,d,e,f,g,h) {;}
++#define DTRACE_PROBE7(a,b,c,d,e,f,g,h,i) {;}
++#define DTRACE_PROBE8(a,b,c,d,e,f,g,h,i,j) {;}
++#define DTRACE_PROBE9(a,b,c,d,e,f,g,h,i,j,k) {;}
++#define DTRACE_PROBE10(a,b,c,d,e,f,g,h,i,j,k,l) {;}
+ 
+ #define HS_DTRACE_WORKAROUND_TAIL_CALL_BUG()
+ 
+ #endif
+ 
++#if defined(SOLARIS)
++// Solaris dtrace needs actual extern function decls.
+ #define HS_DTRACE_PROBE_FN(provider,name)\
+   __dtrace_##provider##___##name
+ 
+@@ -59,6 +67,11 @@
+   DTRACE_ONLY(extern "C" void HS_DTRACE_PROBE_FN(provider,name) args)
+ #define HS_DTRACE_PROBE_CDECL_N(provider,name,args) \
+   DTRACE_ONLY(extern void HS_DTRACE_PROBE_FN(provider,name) args)
++#else
++// Systemtap dtrace compatible probes on GNU/Linux don't.
++#define HS_DTRACE_PROBE_DECL_N(provider,name,args)
++#define HS_DTRACE_PROBE_CDECL_N(provider,name,args)
++#endif 
+ 
+ /* Dtrace probe declarations */
+ #define HS_DTRACE_PROBE_DECL(provider,name) \
+@@ -97,6 +110,8 @@
+     uintptr_t,uintptr_t,uintptr_t))
+ 
+ /* Dtrace probe definitions */
++#if defined(SOLARIS)
++// Solaris dtrace uses actual function calls.
+ #define HS_DTRACE_PROBE_N(provider,name, args) \
+   DTRACE_ONLY(HS_DTRACE_PROBE_FN(provider,name) args)
+ 
+@@ -132,5 +147,31 @@
+   HS_DTRACE_PROBE_N(provider,name,((uintptr_t)a0,(uintptr_t)a1,(uintptr_t)a2,\
+     (uintptr_t)a3,(uintptr_t)a4,(uintptr_t)a5,(uintptr_t)a6,(uintptr_t)a7,\
+     (uintptr_t)a8,(uintptr_t)a9))
++#else
++// Systemtap dtrace compatible probes on GNU/Linux use direct macros.
++#define HS_DTRACE_PROBE(provider,name) HS_DTRACE_PROBE0(provider,name)
++#define HS_DTRACE_PROBE0(provider,name)\
++  DTRACE_PROBE(provider,name)
++#define HS_DTRACE_PROBE1(provider,name,a0)\
++  DTRACE_PROBE1(provider,name,a0)
++#define HS_DTRACE_PROBE2(provider,name,a0,a1)\
++  DTRACE_PROBE2(provider,name,a0,a1)
++#define HS_DTRACE_PROBE3(provider,name,a0,a1,a2)\
++  DTRACE_PROBE3(provider,name,a0,a1,a2)
++#define HS_DTRACE_PROBE4(provider,name,a0,a1,a2,a3)\
++  DTRACE_PROBE4(provider,name,a0,a1,a2,a3)
++#define HS_DTRACE_PROBE5(provider,name,a0,a1,a2,a3,a4)\
++  DTRACE_PROBE5(provider,name,a0,a1,a2,a3,a4)
++#define HS_DTRACE_PROBE6(provider,name,a0,a1,a2,a3,a4,a5)\
++  DTRACE_PROBE6(provider,name,a0,a1,a2,a3,a4,a5)
++#define HS_DTRACE_PROBE7(provider,name,a0,a1,a2,a3,a4,a5,a6)\
++  DTRACE_PROBE7(provider,name,a0,a1,a2,a3,a4,a5,a6)
++#define HS_DTRACE_PROBE8(provider,name,a0,a1,a2,a3,a4,a5,a6,a7)\
++  DTRACE_PROBE8(provider,name,a0,a1,a2,a3,a4,a5,a6,a7)
++#define HS_DTRACE_PROBE9(provider,name,a0,a1,a2,a3,a4,a5,a6,a7,a8)\
++  DTRACE_PROBE9(provider,name,a0,a1,a2,a3,a4,a5,a6,a7,a8)
++#define HS_DTRACE_PROBE10(provider,name,a0,a1,a2,a3,a4,a5,a6,a7,a8)\
++  DTRACE_PROBE10(provider,name,a0,a1,a2,a3,a4,a5,a6,a7,a8)
++#endif
+ 
+ #endif // SHARE_VM_UTILITIES_DTRACE_HPP
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/text-relocations.patch	Thu Jul 07 13:14:02 2011 +0100
@@ -0,0 +1,63 @@
+diff -Nru openjdk.orig/hotspot/make/linux/makefiles/gcc.make openjdk/hotspot/make/linux/makefiles/gcc.make
+--- openjdk.orig/hotspot/make/linux/makefiles/gcc.make	2011-01-25 22:57:24.000000000 +0000
++++ openjdk/hotspot/make/linux/makefiles/gcc.make	2011-01-28 00:32:20.817556386 +0000
+@@ -58,7 +58,11 @@
+ # Compiler flags
+ 
+ # position-independent code
++ifneq ($(filter alpha parisc ppc ppc64 s390 s390x sparc sparc64 sparcv9,$(ZERO_LIBARCH)),)
+ PICFLAG = -fPIC
++else
++PICFLAG = -fpic
++endif
+ 
+ VM_PICFLAG/LIBJVM = $(PICFLAG)
+ VM_PICFLAG/AOUT   =
+diff -Nru openjdk.orig/hotspot/make/linux/makefiles/rules.make openjdk/hotspot/make/linux/makefiles/rules.make
+--- openjdk.orig/hotspot/make/linux/makefiles/rules.make	2011-01-25 22:57:24.000000000 +0000
++++ openjdk/hotspot/make/linux/makefiles/rules.make	2011-01-28 00:32:52.857892660 +0000
+@@ -146,20 +146,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) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE)
+-else
+-%.o: %.cpp
+-	@echo Compiling $<
+-	$(QUIETLY) $(REMOVE_TARGET)
+-	$(QUIETLY) $(if $(findstring $@, $(NONPIC_OBJ_FILES)), \
+-	   $(subst $(VM_PICFLAG), ,$(COMPILE.CC)) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE), \
+-	   $(COMPILE.CC) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE))
+-endif
+ 
+ %.o: %.s
+ 	@echo Assembling $<
+diff -Nru openjdk.orig/hotspot/make/solaris/makefiles/rules.make openjdk/hotspot/make/solaris/makefiles/rules.make
+--- openjdk.orig/hotspot/make/solaris/makefiles/rules.make	2011-01-25 22:57:24.000000000 +0000
++++ openjdk/hotspot/make/solaris/makefiles/rules.make	2011-01-28 00:33:15.158126725 +0000
+@@ -146,20 +146,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) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE)
+-else
+-%.o: %.cpp
+-	@echo Compiling $<
+-	$(QUIETLY) $(REMOVE_TARGET)
+-	$(QUIETLY) $(if $(findstring $@, $(NONPIC_OBJ_FILES)), \
+-	   $(subst $(VM_PICFLAG), ,$(COMPILE.CC)) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE), \
+-	   $(COMPILE.CC) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE))
+-endif
+ 
+ %.o: %.s
+ 	@echo Assembling $<
--- a/patches/xjc.patch	Wed Jul 06 23:24:30 2011 +0100
+++ b/patches/xjc.patch	Thu Jul 07 13:14:02 2011 +0100
@@ -1,18 +1,19 @@
 diff -Nru openjdk.orig/jaxws/build.properties openjdk/jaxws/build.properties
---- openjdk.orig/jaxws/build.properties	2011-05-23 23:27:25.858844463 +0100
-+++ openjdk/jaxws/build.properties	2011-05-23 23:28:12.143588051 +0100
-@@ -78,7 +78,7 @@
+--- openjdk.orig/jaxws/build.properties	2009-12-04 16:41:02.000000000 +0000
++++ openjdk/jaxws/build.properties	2009-12-04 16:41:47.000000000 +0000
+@@ -73,6 +73,9 @@
+ # Where patches to drop bundle sources live
  patches.dir=patches
  
- # Patches to apply
--jaxws_src.patch.list=7013971.patch
-+jaxws_src.patch.list=7013971.patch xjc.patch
- 
++# Patches to apply
++jaxws_src.patch.list=xjc.patch
++
  # Sanity information
  sanity.info= Sanity Settings:${line.separator}\
+   ant.home=${ant.home}${line.separator}\
 diff -Nru openjdk.orig/jaxws/patches/jaxws_src/xjc.patch openjdk/jaxws/patches/jaxws_src/xjc.patch
 --- openjdk.orig/jaxws/patches/jaxws_src/xjc.patch	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/jaxws/patches/jaxws_src/xjc.patch	2011-05-23 23:28:02.719436649 +0100
++++ openjdk/jaxws/patches/jaxws_src/xjc.patch	2009-12-04 16:40:10.000000000 +0000
 @@ -0,0 +1,17 @@
 +--- src/com/sun/tools/internal/xjc/reader/xmlschema/parser/SchemaConstraintChecker.java.prev       2008-10-21 15:50:20.000000000 +0100
 ++++ src/com/sun/tools/internal/xjc/reader/xmlschema/parser/SchemaConstraintChecker.java    2008-10-21 15:57:37.000000000 +0100