Mercurial > hg > release > icedtea6-1.11
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