From e7b6adc811fcc49c83ae3001c17c1f73721f4239f143dff73deff3d03f28322e Mon Sep 17 00:00:00 2001 From: Fridrich Strba Date: Tue, 14 Jul 2015 21:01:58 +0000 Subject: [PATCH 01/19] OBS-URL: https://build.opensuse.org/package/show/Java:Factory/java-1_8_0-openjdk?expand=0&rev=96 --- 050f5654fa19.tar.bz2 | 3 +++ 15b679d327da.tar.bz2 | 3 --- 1ad2c1aa7aac.tar.bz2 | 3 +++ 20e6cadfac43.tar.bz2 | 3 --- 3639e38bd73f.tar.bz2 | 3 +++ 3b9b39af6c36.tar.bz2 | 3 +++ 3ee37a71b2ab.tar.bz2 | 3 +++ 50fb9bed64c9.tar.bz2 | 3 --- 5321d26956b2.tar.bz2 | 3 --- 70d4f640f931.tar.bz2 | 3 --- 847af465a542.tar.bz2 | 3 --- bad02ac45d59.tar.bz2 | 3 --- d5477c6d1678.tar.bz2 | 3 --- e0167ec9d759.tar.bz2 | 3 --- e27a094cb423.tar.bz2 | 3 +++ e465c106bfe3.tar.bz2 | 3 +++ ee8642297369.tar.bz2 | 3 +++ f01ca5e6b907.tar.bz2 | 3 +++ java-1_8_0-openjdk.spec | 24 ++++++++++++------------ 19 files changed, 39 insertions(+), 39 deletions(-) create mode 100644 050f5654fa19.tar.bz2 delete mode 100644 15b679d327da.tar.bz2 create mode 100644 1ad2c1aa7aac.tar.bz2 delete mode 100644 20e6cadfac43.tar.bz2 create mode 100644 3639e38bd73f.tar.bz2 create mode 100644 3b9b39af6c36.tar.bz2 create mode 100644 3ee37a71b2ab.tar.bz2 delete mode 100644 50fb9bed64c9.tar.bz2 delete mode 100644 5321d26956b2.tar.bz2 delete mode 100644 70d4f640f931.tar.bz2 delete mode 100644 847af465a542.tar.bz2 delete mode 100644 bad02ac45d59.tar.bz2 delete mode 100644 d5477c6d1678.tar.bz2 delete mode 100644 e0167ec9d759.tar.bz2 create mode 100644 e27a094cb423.tar.bz2 create mode 100644 e465c106bfe3.tar.bz2 create mode 100644 ee8642297369.tar.bz2 create mode 100644 f01ca5e6b907.tar.bz2 diff --git a/050f5654fa19.tar.bz2 b/050f5654fa19.tar.bz2 new file mode 100644 index 0000000..c741e93 --- /dev/null +++ b/050f5654fa19.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:adb3fbbf9608d982eedcd80cd8f6faa4b6e2018a4c942070543bd7483097df84 +size 2733540 diff --git a/15b679d327da.tar.bz2 b/15b679d327da.tar.bz2 deleted file mode 100644 index 7459a89..0000000 --- a/15b679d327da.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d8349c12d1cf37de34a5da0def4826be126302688caffa2614d2e2769468b38e -size 396658 diff --git a/1ad2c1aa7aac.tar.bz2 b/1ad2c1aa7aac.tar.bz2 new file mode 100644 index 0000000..89e3008 --- /dev/null +++ b/1ad2c1aa7aac.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ef5284fd83cfd843fb657443385dabe0cf2eb6939f785f93e4c90a801da06fb9 +size 8094510 diff --git a/20e6cadfac43.tar.bz2 b/20e6cadfac43.tar.bz2 deleted file mode 100644 index 77d2558..0000000 --- a/20e6cadfac43.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3d99cfc4e92eba7f6d81aa63766f1d00a5475ca3ba864dfc6a30acc89c109fd7 -size 45430836 diff --git a/3639e38bd73f.tar.bz2 b/3639e38bd73f.tar.bz2 new file mode 100644 index 0000000..c9f2c1f --- /dev/null +++ b/3639e38bd73f.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:21f0cd6c91e93df6ca24de3c9518ea083721b6a9ca317d423e6c873e483dd1a3 +size 7757002 diff --git a/3b9b39af6c36.tar.bz2 b/3b9b39af6c36.tar.bz2 new file mode 100644 index 0000000..316c65c --- /dev/null +++ b/3b9b39af6c36.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f3e85315160533090f3f5bb79aec95c19f4365ea36f0ad2ee3b4e6617a791bf7 +size 1021519 diff --git a/3ee37a71b2ab.tar.bz2 b/3ee37a71b2ab.tar.bz2 new file mode 100644 index 0000000..d11ceba --- /dev/null +++ b/3ee37a71b2ab.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:65b8aed83613b6fd12c341eef0fd994e678c100910d6482d0b610b2a6394051e +size 397351 diff --git a/50fb9bed64c9.tar.bz2 b/50fb9bed64c9.tar.bz2 deleted file mode 100644 index 10e4030..0000000 --- a/50fb9bed64c9.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fc0f3b1b29c3ff4491df797a793ba56b71813258d0c83042b63d6499314769dc -size 1020900 diff --git a/5321d26956b2.tar.bz2 b/5321d26956b2.tar.bz2 deleted file mode 100644 index 8b69114..0000000 --- a/5321d26956b2.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:17f9e769657ca0666947089b6c71d05c038677b545b353c133d970e4c5af3c26 -size 7752627 diff --git a/70d4f640f931.tar.bz2 b/70d4f640f931.tar.bz2 deleted file mode 100644 index a44fc45..0000000 --- a/70d4f640f931.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:dd5ae53ff1c3a99804bb11441e545c1fac457b9d60b5d92a53ad33bf90b23f87 -size 8054853 diff --git a/847af465a542.tar.bz2 b/847af465a542.tar.bz2 deleted file mode 100644 index f5d018d..0000000 --- a/847af465a542.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:198f1405804c6a26cea0eccf11ec844f7e3df8bf5afb3e474567d4325592193c -size 2375514 diff --git a/bad02ac45d59.tar.bz2 b/bad02ac45d59.tar.bz2 deleted file mode 100644 index 2ac6ecb..0000000 --- a/bad02ac45d59.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d5af79db8aa5ef9e1fb2c99f0b545af43212ab8f98de02a95bcfce8b4e570a2f -size 2530808 diff --git a/d5477c6d1678.tar.bz2 b/d5477c6d1678.tar.bz2 deleted file mode 100644 index a53841d..0000000 --- a/d5477c6d1678.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:32d84ace1a73e975982eeec9bb37c4955d534cfd1884b619674e6d0151b6cc1e -size 2745246 diff --git a/e0167ec9d759.tar.bz2 b/e0167ec9d759.tar.bz2 deleted file mode 100644 index 54ed338..0000000 --- a/e0167ec9d759.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2162a314ef70f4938e164776156bebf6ceaf750cb596a01aadbe88a24b5f227a -size 2731809 diff --git a/e27a094cb423.tar.bz2 b/e27a094cb423.tar.bz2 new file mode 100644 index 0000000..7e18438 --- /dev/null +++ b/e27a094cb423.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b58c9a73828acc2b838548417e1dbbb5bd5f1f3b126d090002f81f32cc7fecff +size 2374834 diff --git a/e465c106bfe3.tar.bz2 b/e465c106bfe3.tar.bz2 new file mode 100644 index 0000000..399e6ad --- /dev/null +++ b/e465c106bfe3.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2d5d66811dc1f686948fd76b81dab3603042b644f3b2ec4ea59bfcca92ddb266 +size 2531264 diff --git a/ee8642297369.tar.bz2 b/ee8642297369.tar.bz2 new file mode 100644 index 0000000..5dda769 --- /dev/null +++ b/ee8642297369.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af50c2ef686efd7bc9e6ea1ba8d6b0322716131a7778f9e952e0c93a88ff7890 +size 45439562 diff --git a/f01ca5e6b907.tar.bz2 b/f01ca5e6b907.tar.bz2 new file mode 100644 index 0000000..b5955cf --- /dev/null +++ b/f01ca5e6b907.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d9b550ac2464ce2283d32e4fe7776dac9ee9253751d70580460e0e674af345c7 +size 2747615 diff --git a/java-1_8_0-openjdk.spec b/java-1_8_0-openjdk.spec index 705669e..047946a 100644 --- a/java-1_8_0-openjdk.spec +++ b/java-1_8_0-openjdk.spec @@ -29,21 +29,21 @@ %global syslibdir %{_libdir} %global archname %{name} # Standard JPackage naming and versioning defines. -%global updatever 45 -%global buildver b14 +%global updatever 51 +%global buildver b16 %global root_project jdk8u -%global root_repository jdk8u -%global root_revision 15b679d327da -%global corba_revision 50fb9bed64c9 -%global hotspot_revision 5321d26956b2 -%global jaxp_revision e0167ec9d759 -%global jaxws_revision bad02ac45d59 -%global jdk_revision 20e6cadfac43 -%global langtools_revision 847af465a542 -%global nashorn_revision d5477c6d1678 +%global root_repository jdk8u60 +%global root_revision 3ee37a71b2ab +%global corba_revision 3b9b39af6c36 +%global hotspot_revision 3639e38bd73f +%global jaxp_revision 050f5654fa19 +%global jaxws_revision e465c106bfe3 +%global jdk_revision ee8642297369 +%global langtools_revision e27a094cb423 +%global nashorn_revision f01ca5e6b907 %global aarch64_project aarch64-port %global aarch64_repository jdk8 -%global aarch64_hotspot_revision 70d4f640f931 +%global aarch64_hotspot_revision 1ad2c1aa7aac %global icedtea_sound_version 1.0.1 # priority must be 6 digits in total %global priority 1805 From 73aee6932098259b7c0a29b606ecee5df992c5cb51b7f810982c9cc1c82ee4aa Mon Sep 17 00:00:00 2001 From: Fridrich Strba Date: Tue, 14 Jul 2015 21:27:39 +0000 Subject: [PATCH 02/19] OBS-URL: https://build.opensuse.org/package/show/Java:Factory/java-1_8_0-openjdk?expand=0&rev=97 --- hotspot-support-kernel-4.patch | 11 ----------- java-1_8_0-openjdk.spec | 3 --- 2 files changed, 14 deletions(-) delete mode 100644 hotspot-support-kernel-4.patch diff --git a/hotspot-support-kernel-4.patch b/hotspot-support-kernel-4.patch deleted file mode 100644 index 0aacbc4..0000000 --- a/hotspot-support-kernel-4.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- jdk8/hotspot/make/linux/Makefile 2015-05-05 15:23:20.129959059 +0200 -+++ jdk8/hotspot/make/linux/Makefile 2015-05-05 15:23:52.314222316 +0200 -@@ -229,7 +229,7 @@ - # Solaris 2.5.1, 2.6). - # Disable this check by setting DISABLE_HOTSPOT_OS_VERSION_CHECK=ok. - --SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 3% -+SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 3% 4% - OS_VERSION := $(shell uname -r) - EMPTY_IF_NOT_SUPPORTED = $(filter $(SUPPORTED_OS_VERSION),$(OS_VERSION)) - diff --git a/java-1_8_0-openjdk.spec b/java-1_8_0-openjdk.spec index 047946a..6f55ce9 100644 --- a/java-1_8_0-openjdk.spec +++ b/java-1_8_0-openjdk.spec @@ -215,8 +215,6 @@ Patch8: compare-pointer-with-literal.patch Patch9: aarch64-misc.patch # From icedtea: Increase default memory limits Patch10: memory-limits.patch -# Fix hotspot for kernel 4.0 -Patch11: hotspot-support-kernel-4.patch # Fix use of unintialized memory in adlc parser Patch12: adlc-parser.patch # Fix: implicit-pointer-decl @@ -515,7 +513,6 @@ rm -rvf jdk/src/share/native/sun/java2d/cmm/lcms/lcms2* %patch8 -p1 %patch9 -p1 %patch10 -p1 -%patch11 -p1 %patch12 -p1 %patch13 -p1 From 91acc714807ef97b6820a0a2a4d5f5c0fb36bd88450c4fb4bf7d0cd1755e9da8 Mon Sep 17 00:00:00 2001 From: Fridrich Strba Date: Tue, 14 Jul 2015 21:32:14 +0000 Subject: [PATCH 03/19] OBS-URL: https://build.opensuse.org/package/show/Java:Factory/java-1_8_0-openjdk?expand=0&rev=98 --- hotspot-support-kernel-4.patch | 11 +++++++++++ java-1_8_0-openjdk.spec | 3 +++ 2 files changed, 14 insertions(+) create mode 100644 hotspot-support-kernel-4.patch diff --git a/hotspot-support-kernel-4.patch b/hotspot-support-kernel-4.patch new file mode 100644 index 0000000..0aacbc4 --- /dev/null +++ b/hotspot-support-kernel-4.patch @@ -0,0 +1,11 @@ +--- jdk8/hotspot/make/linux/Makefile 2015-05-05 15:23:20.129959059 +0200 ++++ jdk8/hotspot/make/linux/Makefile 2015-05-05 15:23:52.314222316 +0200 +@@ -229,7 +229,7 @@ + # Solaris 2.5.1, 2.6). + # Disable this check by setting DISABLE_HOTSPOT_OS_VERSION_CHECK=ok. + +-SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 3% ++SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 3% 4% + OS_VERSION := $(shell uname -r) + EMPTY_IF_NOT_SUPPORTED = $(filter $(SUPPORTED_OS_VERSION),$(OS_VERSION)) + diff --git a/java-1_8_0-openjdk.spec b/java-1_8_0-openjdk.spec index 6f55ce9..047946a 100644 --- a/java-1_8_0-openjdk.spec +++ b/java-1_8_0-openjdk.spec @@ -215,6 +215,8 @@ Patch8: compare-pointer-with-literal.patch Patch9: aarch64-misc.patch # From icedtea: Increase default memory limits Patch10: memory-limits.patch +# Fix hotspot for kernel 4.0 +Patch11: hotspot-support-kernel-4.patch # Fix use of unintialized memory in adlc parser Patch12: adlc-parser.patch # Fix: implicit-pointer-decl @@ -513,6 +515,7 @@ rm -rvf jdk/src/share/native/sun/java2d/cmm/lcms/lcms2* %patch8 -p1 %patch9 -p1 %patch10 -p1 +%patch11 -p1 %patch12 -p1 %patch13 -p1 From 3e1f883cef35910a7fdbb7f8afd771d5a8627d45632092f51afd233784461b49 Mon Sep 17 00:00:00 2001 From: Fridrich Strba Date: Tue, 14 Jul 2015 21:34:28 +0000 Subject: [PATCH 04/19] OBS-URL: https://build.opensuse.org/package/show/Java:Factory/java-1_8_0-openjdk?expand=0&rev=99 --- java-1_8_0-openjdk.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/java-1_8_0-openjdk.spec b/java-1_8_0-openjdk.spec index 047946a..568633d 100644 --- a/java-1_8_0-openjdk.spec +++ b/java-1_8_0-openjdk.spec @@ -515,7 +515,9 @@ rm -rvf jdk/src/share/native/sun/java2d/cmm/lcms/lcms2* %patch8 -p1 %patch9 -p1 %patch10 -p1 +%ifnarch %aarch64 %patch11 -p1 +%endif %patch12 -p1 %patch13 -p1 From 2956f57012a7f8a5ade55f240fc5d1b352bec197226a653cd92f4edeac0b6def Mon Sep 17 00:00:00 2001 From: Fridrich Strba Date: Tue, 14 Jul 2015 21:43:15 +0000 Subject: [PATCH 05/19] OBS-URL: https://build.opensuse.org/package/show/Java:Factory/java-1_8_0-openjdk?expand=0&rev=100 --- java-1_8_0-openjdk.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/java-1_8_0-openjdk.spec b/java-1_8_0-openjdk.spec index 568633d..7bffce8 100644 --- a/java-1_8_0-openjdk.spec +++ b/java-1_8_0-openjdk.spec @@ -539,7 +539,9 @@ rm -rvf jdk/src/share/native/sun/java2d/cmm/lcms/lcms2* %patch101 -p1 %endif +%ifnarch %aarch64 %patch102 -p1 +%endif %ifarch ppc ppc64 ppc64le # PPC fixes From 99b0d6c5e5559b69e2af05c2e1a2781f4c39035b6040006db3e1a0231dc75d16 Mon Sep 17 00:00:00 2001 From: Fridrich Strba Date: Wed, 15 Jul 2015 16:33:19 +0000 Subject: [PATCH 06/19] OBS-URL: https://build.opensuse.org/package/show/Java:Factory/java-1_8_0-openjdk?expand=0&rev=101 --- aarch64-8035938.patch | 27 +++++++++++ aarch64-8071731.patch | 30 ++++++++++++ aarch64-8075838.patch | 104 ++++++++++++++++++++++++++++++++++++++++ java-1_8_0-openjdk.spec | 13 +++++ 4 files changed, 174 insertions(+) create mode 100644 aarch64-8035938.patch create mode 100644 aarch64-8071731.patch create mode 100644 aarch64-8075838.patch diff --git a/aarch64-8035938.patch b/aarch64-8035938.patch new file mode 100644 index 0000000..f09cf58 --- /dev/null +++ b/aarch64-8035938.patch @@ -0,0 +1,27 @@ + +# HG changeset patch +# User kevinw +# Date 1422481386 0 +# Node ID 62c4bd276cbe409c0cbc7632df1ed7eb33048fb3 +# Parent 9773891321c4267baf5fa067b6df4e83ff21b3a5 +8035938: Memory leak in JvmtiEnv::GetConstantPool +Reviewed-by: sspitsyn, dcubed + +diff -r 9773891321c4 -r 62c4bd276cbe src/share/vm/prims/jvmtiClassFileReconstituter.hpp +--- jdk8/hotspot/src/share/vm/prims/jvmtiClassFileReconstituter.hpp Thu Apr 23 09:10:15 2015 -0700 ++++ jdk8/hotspot/src/share/vm/prims/jvmtiClassFileReconstituter.hpp Wed Jan 28 21:43:06 2015 +0000 +@@ -68,11 +68,11 @@ + + ~JvmtiConstantPoolReconstituter() { + if (_symmap != NULL) { +- os::free(_symmap, mtClass); ++ delete _symmap; + _symmap = NULL; + } + if (_classmap != NULL) { +- os::free(_classmap, mtClass); ++ delete _classmap; + _classmap = NULL; + } + } + diff --git a/aarch64-8071731.patch b/aarch64-8071731.patch new file mode 100644 index 0000000..ff95e07 --- /dev/null +++ b/aarch64-8071731.patch @@ -0,0 +1,30 @@ + +# HG changeset patch +# User roland +# Date 1425891593 -3600 +# Node ID 3816de51b5e7d6050584057fae5f2262dae53d7e +# Parent 23bf458e359fed77978ec165b729527180904cd5 +8071731: Better scaling for C1 +Reviewed-by: kvn, iveresov + +diff -r 23bf458e359f -r 3816de51b5e7 src/share/vm/c1/c1_LIRGenerator.cpp +--- jdk8/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp Mon Mar 23 11:15:48 2015 -0700 ++++ jdk8/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp Mon Mar 09 09:59:53 2015 +0100 +@@ -2204,7 +2204,15 @@ + if (log2_scale != 0) { + // temporary fix (platform dependent code without shift on Intel would be better) + // TODO: ARM also allows embedded shift in the address +- __ shift_left(index_op, log2_scale, index_op); ++ LIR_Opr tmp = new_pointer_register(); ++ if (TwoOperandLIRForm) { ++ __ move(index_op, tmp); ++ index_op = tmp; ++ } ++ __ shift_left(index_op, log2_scale, tmp); ++ if (!TwoOperandLIRForm) { ++ index_op = tmp; ++ } + } + + LIR_Address* addr = new LIR_Address(base_op, index_op, x->basic_type()); + diff --git a/aarch64-8075838.patch b/aarch64-8075838.patch new file mode 100644 index 0000000..538399d --- /dev/null +++ b/aarch64-8075838.patch @@ -0,0 +1,104 @@ + +# HG changeset patch +# User vlivanov +# Date 1429027828 -10800 +# Node ID 928e1994ad43272f808ca22b9cc1b08a7ce2824f +# Parent 62c4bd276cbe409c0cbc7632df1ed7eb33048fb3 +8075838: Method for typing MethodTypes +Reviewed-by: jrose, ahgross, alanb, bmoloden + +diff -r 62c4bd276cbe -r 928e1994ad43 src/share/vm/classfile/systemDictionary.cpp +--- jdk8/hotspot/src/share/vm/classfile/systemDictionary.cpp Wed Jan 28 21:43:06 2015 +0000 ++++ jdk8/hotspot/src/share/vm/classfile/systemDictionary.cpp Tue Apr 14 19:10:28 2015 +0300 +@@ -2349,9 +2349,6 @@ + assert(!THREAD->is_Compiler_thread(), ""); + Handle method_type = + SystemDictionary::find_method_handle_type(signature, accessing_klass, CHECK_(empty)); +- if (false) { // FIXME: Decide if the Java upcall should resolve signatures. +- method_type = java_lang_String::create_from_symbol(signature, CHECK_(empty)); +- } + + KlassHandle mh_klass = SystemDictionary::MethodHandle_klass(); + int ref_kind = JVM_REF_invokeVirtual; +@@ -2383,6 +2380,24 @@ + return unpack_method_and_appendix(mname, accessing_klass, appendix_box, appendix_result, THREAD); + } + ++// Decide if we can globally cache a lookup of this class, to be returned to any client that asks. ++// We must ensure that all class loaders everywhere will reach this class, for any client. ++// This is a safe bet for public classes in java.lang, such as Object and String. ++// We also include public classes in java.lang.invoke, because they appear frequently in system-level method types. ++// Out of an abundance of caution, we do not include any other classes, not even for packages like java.util. ++static bool is_always_visible_class(oop mirror) { ++ Klass* klass = java_lang_Class::as_Klass(mirror); ++ if (klass->oop_is_objArray()) { ++ klass = ObjArrayKlass::cast(klass)->bottom_klass(); // check element type ++ } ++ if (klass->oop_is_typeArray()) { ++ return true; // primitive array ++ } ++ assert(klass->oop_is_instance(), klass->external_name()); ++ return klass->is_public() && ++ (InstanceKlass::cast(klass)->is_same_class_package(SystemDictionary::Object_klass()) || // java.lang ++ InstanceKlass::cast(klass)->is_same_class_package(SystemDictionary::MethodHandle_klass())); // java.lang.invoke ++} + + // Ask Java code to find or construct a java.lang.invoke.MethodType for the given + // signature, as interpreted relative to the given class loader. +@@ -2405,32 +2420,33 @@ + } + + Handle class_loader, protection_domain; +- bool is_on_bcp = true; // keep this true as long as we can materialize from the boot classloader ++ if (accessing_klass.not_null()) { ++ class_loader = Handle(THREAD, InstanceKlass::cast(accessing_klass())->class_loader()); ++ protection_domain = Handle(THREAD, InstanceKlass::cast(accessing_klass())->protection_domain()); ++ } ++ bool can_be_cached = true; + int npts = ArgumentCount(signature).size(); + objArrayHandle pts = oopFactory::new_objArray(SystemDictionary::Class_klass(), npts, CHECK_(empty)); + int arg = 0; +- Handle rt; // the return type from the signature ++ Handle rt; // the return type from the signature + ResourceMark rm(THREAD); + for (SignatureStream ss(signature); !ss.is_done(); ss.next()) { + oop mirror = NULL; +- if (is_on_bcp) { +- // Note: class_loader & protection_domain are both null at this point. +- mirror = ss.as_java_mirror(class_loader, protection_domain, ++ if (can_be_cached) { ++ // Use neutral class loader to lookup candidate classes to be placed in the cache. ++ mirror = ss.as_java_mirror(Handle(), Handle(), + SignatureStream::ReturnNull, CHECK_(empty)); +- if (mirror == NULL) { +- // fall back from BCP to accessing_klass +- if (accessing_klass.not_null()) { +- class_loader = Handle(THREAD, InstanceKlass::cast(accessing_klass())->class_loader()); +- protection_domain = Handle(THREAD, InstanceKlass::cast(accessing_klass())->protection_domain()); +- } +- is_on_bcp = false; ++ if (mirror == NULL || (ss.is_object() && !is_always_visible_class(mirror))) { ++ // Fall back to accessing_klass context. ++ can_be_cached = false; + } + } +- if (!is_on_bcp) { ++ if (!can_be_cached) { + // Resolve, throwing a real error if it doesn't work. + mirror = ss.as_java_mirror(class_loader, protection_domain, + SignatureStream::NCDFError, CHECK_(empty)); + } ++ assert(!oopDesc::is_null(mirror), ss.as_symbol(THREAD)->as_C_string()); + if (ss.at_return_type()) + rt = Handle(THREAD, mirror); + else +@@ -2462,7 +2478,7 @@ + &args, CHECK_(empty)); + Handle method_type(THREAD, (oop) result.get_jobject()); + +- if (is_on_bcp) { ++ if (can_be_cached) { + // We can cache this MethodType inside the JVM. + MutexLocker ml(SystemDictionary_lock, THREAD); + spe = invoke_method_table()->find_entry(index, hash, signature, null_iid); + diff --git a/java-1_8_0-openjdk.spec b/java-1_8_0-openjdk.spec index 7bffce8..9a980e7 100644 --- a/java-1_8_0-openjdk.spec +++ b/java-1_8_0-openjdk.spec @@ -227,6 +227,13 @@ Patch14: zero-javadoc-verbose.patch Patch15: cplusplus-interpreter.patch # Fix crash on zero virtual machine built with gcc5 Patch16: zero-dummy.patch +# July 2015 security fixes backported to aarch64 hotspot +# 8071731: Better scaling for C1 +Patch20: aarch64-8071731.patch +# 8035938: Memory leak in JvmtiEnv::GetConstantPool +Patch21: aarch64-8035938.patch +# 8075838: Method for typing MethodTypes +Patch22: aarch64-8075838.patch # # OpenJDK specific patches # @@ -530,6 +537,12 @@ rm -rvf jdk/src/share/native/sun/java2d/cmm/lcms/lcms2* %patch15 -p1 %endif +%ifarch %aarch64 +%patch20 -p1 +%patch21 -p1 +%patch22 -p1 +%endif + %patch99 -p1 # s390 build fixes From 0ec40380239d59da6e1a9908dc0b23b2d759907f4be9de8d381bed78ed46346f Mon Sep 17 00:00:00 2001 From: Fridrich Strba Date: Wed, 15 Jul 2015 18:37:08 +0000 Subject: [PATCH 07/19] OBS-URL: https://build.opensuse.org/package/show/Java:Factory/java-1_8_0-openjdk?expand=0&rev=102 --- aarch64-8035938.patch | 27 --------------------------- java-1_8_0-openjdk.spec | 5 +---- 2 files changed, 1 insertion(+), 31 deletions(-) delete mode 100644 aarch64-8035938.patch diff --git a/aarch64-8035938.patch b/aarch64-8035938.patch deleted file mode 100644 index f09cf58..0000000 --- a/aarch64-8035938.patch +++ /dev/null @@ -1,27 +0,0 @@ - -# HG changeset patch -# User kevinw -# Date 1422481386 0 -# Node ID 62c4bd276cbe409c0cbc7632df1ed7eb33048fb3 -# Parent 9773891321c4267baf5fa067b6df4e83ff21b3a5 -8035938: Memory leak in JvmtiEnv::GetConstantPool -Reviewed-by: sspitsyn, dcubed - -diff -r 9773891321c4 -r 62c4bd276cbe src/share/vm/prims/jvmtiClassFileReconstituter.hpp ---- jdk8/hotspot/src/share/vm/prims/jvmtiClassFileReconstituter.hpp Thu Apr 23 09:10:15 2015 -0700 -+++ jdk8/hotspot/src/share/vm/prims/jvmtiClassFileReconstituter.hpp Wed Jan 28 21:43:06 2015 +0000 -@@ -68,11 +68,11 @@ - - ~JvmtiConstantPoolReconstituter() { - if (_symmap != NULL) { -- os::free(_symmap, mtClass); -+ delete _symmap; - _symmap = NULL; - } - if (_classmap != NULL) { -- os::free(_classmap, mtClass); -+ delete _classmap; - _classmap = NULL; - } - } - diff --git a/java-1_8_0-openjdk.spec b/java-1_8_0-openjdk.spec index 9a980e7..3821c17 100644 --- a/java-1_8_0-openjdk.spec +++ b/java-1_8_0-openjdk.spec @@ -230,10 +230,8 @@ Patch16: zero-dummy.patch # July 2015 security fixes backported to aarch64 hotspot # 8071731: Better scaling for C1 Patch20: aarch64-8071731.patch -# 8035938: Memory leak in JvmtiEnv::GetConstantPool -Patch21: aarch64-8035938.patch # 8075838: Method for typing MethodTypes -Patch22: aarch64-8075838.patch +Patch21: aarch64-8075838.patch # # OpenJDK specific patches # @@ -540,7 +538,6 @@ rm -rvf jdk/src/share/native/sun/java2d/cmm/lcms/lcms2* %ifarch %aarch64 %patch20 -p1 %patch21 -p1 -%patch22 -p1 %endif %patch99 -p1 From bbd52315040f90bb5f9ac2b5ec770fb8d7c0d9401d4dc7fe78c168bcc2db6442 Mon Sep 17 00:00:00 2001 From: Fridrich Strba Date: Wed, 15 Jul 2015 18:39:10 +0000 Subject: [PATCH 08/19] OBS-URL: https://build.opensuse.org/package/show/Java:Factory/java-1_8_0-openjdk?expand=0&rev=103 --- aarch64-8035938.patch | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 aarch64-8035938.patch diff --git a/aarch64-8035938.patch b/aarch64-8035938.patch new file mode 100644 index 0000000..a263c7c --- /dev/null +++ b/aarch64-8035938.patch @@ -0,0 +1,27 @@ + +# HG changeset patch +# User kevinw +# Date 1422481386 0 +# Node ID 62c4bd276cbe409c0cbc7632df1ed7eb33048fb3 +# Parent 9773891321c4267baf5fa067b6df4e83ff21b3a5 +8035938: Memory leak in JvmtiEnv::GetConstantPool +Reviewed-by: sspitsyn, dcubed + +diff -r 9773891321c4 -r 62c4bd276cbe src/share/vm/prims/jvmtiClassFileReconstituter.hpp +--- a/src/share/vm/prims/jvmtiClassFileReconstituter.hpp Thu Apr 23 09:10:15 2015 -0700 ++++ b/src/share/vm/prims/jvmtiClassFileReconstituter.hpp Wed Jan 28 21:43:06 2015 +0000 +@@ -68,11 +68,11 @@ + + ~JvmtiConstantPoolReconstituter() { + if (_symmap != NULL) { +- os::free(_symmap, mtClass); ++ delete _symmap; + _symmap = NULL; + } + if (_classmap != NULL) { +- os::free(_classmap, mtClass); ++ delete _classmap; + _classmap = NULL; + } + } + From 70793566ad37dfd8f0764c456e7753b9fc9604fb937cbb7e9e258a75c0d1c473 Mon Sep 17 00:00:00 2001 From: Fridrich Strba Date: Wed, 15 Jul 2015 18:39:58 +0000 Subject: [PATCH 09/19] OBS-URL: https://build.opensuse.org/package/show/Java:Factory/java-1_8_0-openjdk?expand=0&rev=104 --- java-1_8_0-openjdk.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java-1_8_0-openjdk.spec b/java-1_8_0-openjdk.spec index 3821c17..3822c61 100644 --- a/java-1_8_0-openjdk.spec +++ b/java-1_8_0-openjdk.spec @@ -43,7 +43,7 @@ %global nashorn_revision f01ca5e6b907 %global aarch64_project aarch64-port %global aarch64_repository jdk8 -%global aarch64_hotspot_revision 1ad2c1aa7aac +%global aarch64_hotspot_revision 70d4f640f931 %global icedtea_sound_version 1.0.1 # priority must be 6 digits in total %global priority 1805 From a00a936dea418ad9c43d7a6b04ef27343060568c7af1c1ee8174c8f9758d4cc9 Mon Sep 17 00:00:00 2001 From: Fridrich Strba Date: Wed, 15 Jul 2015 18:46:35 +0000 Subject: [PATCH 10/19] OBS-URL: https://build.opensuse.org/package/show/Java:Factory/java-1_8_0-openjdk?expand=0&rev=105 --- 1ad2c1aa7aac.tar.bz2 | 3 --- 70d4f640f931.tar.bz2 | 3 +++ java-1_8_0-openjdk.spec | 9 ++++----- 3 files changed, 7 insertions(+), 8 deletions(-) delete mode 100644 1ad2c1aa7aac.tar.bz2 create mode 100644 70d4f640f931.tar.bz2 diff --git a/1ad2c1aa7aac.tar.bz2 b/1ad2c1aa7aac.tar.bz2 deleted file mode 100644 index 89e3008..0000000 --- a/1ad2c1aa7aac.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ef5284fd83cfd843fb657443385dabe0cf2eb6939f785f93e4c90a801da06fb9 -size 8094510 diff --git a/70d4f640f931.tar.bz2 b/70d4f640f931.tar.bz2 new file mode 100644 index 0000000..b737733 --- /dev/null +++ b/70d4f640f931.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7f2729c0fb1d90951defdfd36376da8838f5a4e18d3952fd8a192b0a5f9cb7f8 +size 8054662 diff --git a/java-1_8_0-openjdk.spec b/java-1_8_0-openjdk.spec index 3822c61..5ac75b7 100644 --- a/java-1_8_0-openjdk.spec +++ b/java-1_8_0-openjdk.spec @@ -230,8 +230,10 @@ Patch16: zero-dummy.patch # July 2015 security fixes backported to aarch64 hotspot # 8071731: Better scaling for C1 Patch20: aarch64-8071731.patch +# 8035938: Memory leak in JvmtiEnv::GetConstantPool +Patch21: aarch64-8035938.patch # 8075838: Method for typing MethodTypes -Patch21: aarch64-8075838.patch +Patch22: aarch64-8075838.patch # # OpenJDK specific patches # @@ -531,13 +533,12 @@ rm -rvf jdk/src/share/native/sun/java2d/cmm/lcms/lcms2* %patch16 -p1 %endif -%ifnarch %aarch64 %patch15 -p1 -%endif %ifarch %aarch64 %patch20 -p1 %patch21 -p1 +%patch22 -p1 %endif %patch99 -p1 @@ -549,9 +550,7 @@ rm -rvf jdk/src/share/native/sun/java2d/cmm/lcms/lcms2* %patch101 -p1 %endif -%ifnarch %aarch64 %patch102 -p1 -%endif %ifarch ppc ppc64 ppc64le # PPC fixes From ba56369013d85c0adf5387b9d4f1682b15ed8a4f9528b947599f63bac896078e Mon Sep 17 00:00:00 2001 From: Fridrich Strba Date: Wed, 15 Jul 2015 18:48:34 +0000 Subject: [PATCH 11/19] OBS-URL: https://build.opensuse.org/package/show/Java:Factory/java-1_8_0-openjdk?expand=0&rev=106 --- aarch64-8035938.patch | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/aarch64-8035938.patch b/aarch64-8035938.patch index a263c7c..f09cf58 100644 --- a/aarch64-8035938.patch +++ b/aarch64-8035938.patch @@ -8,8 +8,8 @@ Reviewed-by: sspitsyn, dcubed diff -r 9773891321c4 -r 62c4bd276cbe src/share/vm/prims/jvmtiClassFileReconstituter.hpp ---- a/src/share/vm/prims/jvmtiClassFileReconstituter.hpp Thu Apr 23 09:10:15 2015 -0700 -+++ b/src/share/vm/prims/jvmtiClassFileReconstituter.hpp Wed Jan 28 21:43:06 2015 +0000 +--- jdk8/hotspot/src/share/vm/prims/jvmtiClassFileReconstituter.hpp Thu Apr 23 09:10:15 2015 -0700 ++++ jdk8/hotspot/src/share/vm/prims/jvmtiClassFileReconstituter.hpp Wed Jan 28 21:43:06 2015 +0000 @@ -68,11 +68,11 @@ ~JvmtiConstantPoolReconstituter() { From 690352c40a43f109680e6fd08a4224b4120fd4aaf513a1777d5b94685ab3930c Mon Sep 17 00:00:00 2001 From: Fridrich Strba Date: Wed, 15 Jul 2015 19:18:00 +0000 Subject: [PATCH 12/19] OBS-URL: https://build.opensuse.org/package/show/Java:Factory/java-1_8_0-openjdk?expand=0&rev=107 --- java-1_8_0-openjdk.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/java-1_8_0-openjdk.spec b/java-1_8_0-openjdk.spec index 5ac75b7..e370ca3 100644 --- a/java-1_8_0-openjdk.spec +++ b/java-1_8_0-openjdk.spec @@ -533,7 +533,9 @@ rm -rvf jdk/src/share/native/sun/java2d/cmm/lcms/lcms2* %patch16 -p1 %endif +%ifnarch %aarch64 %patch15 -p1 +%endif %ifarch %aarch64 %patch20 -p1 From 1dfabbab9880a2f73b748f94c9fad1d4a21df4109c03253f13a05abda78df153 Mon Sep 17 00:00:00 2001 From: Fridrich Strba Date: Thu, 16 Jul 2015 08:43:54 +0000 Subject: [PATCH 13/19] OBS-URL: https://build.opensuse.org/package/show/Java:Factory/java-1_8_0-openjdk?expand=0&rev=108 --- 1ad2c1aa7aac.tar.bz2 | 3 +++ 70d4f640f931.tar.bz2 | 3 --- java-1_8_0-openjdk.spec | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 1ad2c1aa7aac.tar.bz2 delete mode 100644 70d4f640f931.tar.bz2 diff --git a/1ad2c1aa7aac.tar.bz2 b/1ad2c1aa7aac.tar.bz2 new file mode 100644 index 0000000..89e3008 --- /dev/null +++ b/1ad2c1aa7aac.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ef5284fd83cfd843fb657443385dabe0cf2eb6939f785f93e4c90a801da06fb9 +size 8094510 diff --git a/70d4f640f931.tar.bz2 b/70d4f640f931.tar.bz2 deleted file mode 100644 index b737733..0000000 --- a/70d4f640f931.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7f2729c0fb1d90951defdfd36376da8838f5a4e18d3952fd8a192b0a5f9cb7f8 -size 8054662 diff --git a/java-1_8_0-openjdk.spec b/java-1_8_0-openjdk.spec index e370ca3..e2f9d07 100644 --- a/java-1_8_0-openjdk.spec +++ b/java-1_8_0-openjdk.spec @@ -43,7 +43,7 @@ %global nashorn_revision f01ca5e6b907 %global aarch64_project aarch64-port %global aarch64_repository jdk8 -%global aarch64_hotspot_revision 70d4f640f931 +%global aarch64_hotspot_revision 1ad2c1aa7aac %global icedtea_sound_version 1.0.1 # priority must be 6 digits in total %global priority 1805 From fac9ed83fb02dfd96e7c1170e167704e876041c5ed04195af50e96fab33b0e13 Mon Sep 17 00:00:00 2001 From: Fridrich Strba Date: Thu, 16 Jul 2015 08:44:45 +0000 Subject: [PATCH 14/19] OBS-URL: https://build.opensuse.org/package/show/Java:Factory/java-1_8_0-openjdk?expand=0&rev=109 --- java-1_8_0-openjdk.spec | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/java-1_8_0-openjdk.spec b/java-1_8_0-openjdk.spec index e2f9d07..7e8e552 100644 --- a/java-1_8_0-openjdk.spec +++ b/java-1_8_0-openjdk.spec @@ -230,10 +230,8 @@ Patch16: zero-dummy.patch # July 2015 security fixes backported to aarch64 hotspot # 8071731: Better scaling for C1 Patch20: aarch64-8071731.patch -# 8035938: Memory leak in JvmtiEnv::GetConstantPool -Patch21: aarch64-8035938.patch # 8075838: Method for typing MethodTypes -Patch22: aarch64-8075838.patch +Patch21: aarch64-8075838.patch # # OpenJDK specific patches # @@ -540,7 +538,6 @@ rm -rvf jdk/src/share/native/sun/java2d/cmm/lcms/lcms2* %ifarch %aarch64 %patch20 -p1 %patch21 -p1 -%patch22 -p1 %endif %patch99 -p1 From 29a0f33816831376f82caadb389311173ea34b73ad48204676993f1284f3ecb5 Mon Sep 17 00:00:00 2001 From: Fridrich Strba Date: Thu, 16 Jul 2015 08:56:49 +0000 Subject: [PATCH 15/19] OBS-URL: https://build.opensuse.org/package/show/Java:Factory/java-1_8_0-openjdk?expand=0&rev=110 --- java-1_8_0-openjdk.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/java-1_8_0-openjdk.spec b/java-1_8_0-openjdk.spec index 7e8e552..3821c17 100644 --- a/java-1_8_0-openjdk.spec +++ b/java-1_8_0-openjdk.spec @@ -549,7 +549,9 @@ rm -rvf jdk/src/share/native/sun/java2d/cmm/lcms/lcms2* %patch101 -p1 %endif +%ifnarch %aarch64 %patch102 -p1 +%endif %ifarch ppc ppc64 ppc64le # PPC fixes From 50dd3ad7b43051135315dcdd35f00f2455b467765499166015f870478ccffb99 Mon Sep 17 00:00:00 2001 From: Fridrich Strba Date: Mon, 20 Jul 2015 17:54:51 +0000 Subject: [PATCH 16/19] OBS-URL: https://build.opensuse.org/package/show/Java:Factory/java-1_8_0-openjdk?expand=0&rev=111 --- 11098f828fb8.tar.bz2 | 3 +++ 1ad2c1aa7aac.tar.bz2 | 3 --- java-1_8_0-openjdk.spec | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) create mode 100644 11098f828fb8.tar.bz2 delete mode 100644 1ad2c1aa7aac.tar.bz2 diff --git a/11098f828fb8.tar.bz2 b/11098f828fb8.tar.bz2 new file mode 100644 index 0000000..203bbcf --- /dev/null +++ b/11098f828fb8.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:56a548f40f303c1f13047c4bc88bc9ee1d3674c36c24ff7404f7cadb155c011c +size 8095454 diff --git a/1ad2c1aa7aac.tar.bz2 b/1ad2c1aa7aac.tar.bz2 deleted file mode 100644 index 89e3008..0000000 --- a/1ad2c1aa7aac.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ef5284fd83cfd843fb657443385dabe0cf2eb6939f785f93e4c90a801da06fb9 -size 8094510 diff --git a/java-1_8_0-openjdk.spec b/java-1_8_0-openjdk.spec index 3821c17..359dfa5 100644 --- a/java-1_8_0-openjdk.spec +++ b/java-1_8_0-openjdk.spec @@ -43,7 +43,7 @@ %global nashorn_revision f01ca5e6b907 %global aarch64_project aarch64-port %global aarch64_repository jdk8 -%global aarch64_hotspot_revision 1ad2c1aa7aac +%global aarch64_hotspot_revision 11098f828fb8 %global icedtea_sound_version 1.0.1 # priority must be 6 digits in total %global priority 1805 @@ -183,7 +183,7 @@ Source7: http://hg.openjdk.java.net/%{root_project}/%{root_repository}/na # Hotspot version from aarch64-port repository (using the _tip_ of the http://hg.openjdk.java.net/%{aarch64_project}/%{aarch64_repository}/hotspot) Source8: http://hg.openjdk.java.net/%{aarch64_project}/%{aarch64_repository}/hotspot/archive/%{aarch64_hotspot_revision}.tar.bz2 # Pulseaudio plugin -Source9: http://icedtea.classpath.org/download/source/icedtea-sound-%{icedtea_sound_version}.tar.xz +Source9: http://icedtea.wildebeest.org/download/source/icedtea-sound-%{icedtea_sound_version}.tar.xz # Systemtap tapsets. Zipped up to keep it small. Source10: systemtap-tapset.tar.gz # Desktop files. Adapated from IcedTea. From 45473b17e2f256127d647844ce73216c0f2bbd1b9107213ee0eda9dc89344379 Mon Sep 17 00:00:00 2001 From: Fridrich Strba Date: Tue, 21 Jul 2015 05:33:33 +0000 Subject: [PATCH 17/19] OBS-URL: https://build.opensuse.org/package/show/Java:Factory/java-1_8_0-openjdk?expand=0&rev=112 --- aarch64-8035938.patch | 27 ----------- aarch64-8071731.patch | 30 ------------ aarch64-8075838.patch | 104 ---------------------------------------- java-1_8_0-openjdk.spec | 9 ---- 4 files changed, 170 deletions(-) delete mode 100644 aarch64-8035938.patch delete mode 100644 aarch64-8071731.patch delete mode 100644 aarch64-8075838.patch diff --git a/aarch64-8035938.patch b/aarch64-8035938.patch deleted file mode 100644 index f09cf58..0000000 --- a/aarch64-8035938.patch +++ /dev/null @@ -1,27 +0,0 @@ - -# HG changeset patch -# User kevinw -# Date 1422481386 0 -# Node ID 62c4bd276cbe409c0cbc7632df1ed7eb33048fb3 -# Parent 9773891321c4267baf5fa067b6df4e83ff21b3a5 -8035938: Memory leak in JvmtiEnv::GetConstantPool -Reviewed-by: sspitsyn, dcubed - -diff -r 9773891321c4 -r 62c4bd276cbe src/share/vm/prims/jvmtiClassFileReconstituter.hpp ---- jdk8/hotspot/src/share/vm/prims/jvmtiClassFileReconstituter.hpp Thu Apr 23 09:10:15 2015 -0700 -+++ jdk8/hotspot/src/share/vm/prims/jvmtiClassFileReconstituter.hpp Wed Jan 28 21:43:06 2015 +0000 -@@ -68,11 +68,11 @@ - - ~JvmtiConstantPoolReconstituter() { - if (_symmap != NULL) { -- os::free(_symmap, mtClass); -+ delete _symmap; - _symmap = NULL; - } - if (_classmap != NULL) { -- os::free(_classmap, mtClass); -+ delete _classmap; - _classmap = NULL; - } - } - diff --git a/aarch64-8071731.patch b/aarch64-8071731.patch deleted file mode 100644 index ff95e07..0000000 --- a/aarch64-8071731.patch +++ /dev/null @@ -1,30 +0,0 @@ - -# HG changeset patch -# User roland -# Date 1425891593 -3600 -# Node ID 3816de51b5e7d6050584057fae5f2262dae53d7e -# Parent 23bf458e359fed77978ec165b729527180904cd5 -8071731: Better scaling for C1 -Reviewed-by: kvn, iveresov - -diff -r 23bf458e359f -r 3816de51b5e7 src/share/vm/c1/c1_LIRGenerator.cpp ---- jdk8/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp Mon Mar 23 11:15:48 2015 -0700 -+++ jdk8/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp Mon Mar 09 09:59:53 2015 +0100 -@@ -2204,7 +2204,15 @@ - if (log2_scale != 0) { - // temporary fix (platform dependent code without shift on Intel would be better) - // TODO: ARM also allows embedded shift in the address -- __ shift_left(index_op, log2_scale, index_op); -+ LIR_Opr tmp = new_pointer_register(); -+ if (TwoOperandLIRForm) { -+ __ move(index_op, tmp); -+ index_op = tmp; -+ } -+ __ shift_left(index_op, log2_scale, tmp); -+ if (!TwoOperandLIRForm) { -+ index_op = tmp; -+ } - } - - LIR_Address* addr = new LIR_Address(base_op, index_op, x->basic_type()); - diff --git a/aarch64-8075838.patch b/aarch64-8075838.patch deleted file mode 100644 index 538399d..0000000 --- a/aarch64-8075838.patch +++ /dev/null @@ -1,104 +0,0 @@ - -# HG changeset patch -# User vlivanov -# Date 1429027828 -10800 -# Node ID 928e1994ad43272f808ca22b9cc1b08a7ce2824f -# Parent 62c4bd276cbe409c0cbc7632df1ed7eb33048fb3 -8075838: Method for typing MethodTypes -Reviewed-by: jrose, ahgross, alanb, bmoloden - -diff -r 62c4bd276cbe -r 928e1994ad43 src/share/vm/classfile/systemDictionary.cpp ---- jdk8/hotspot/src/share/vm/classfile/systemDictionary.cpp Wed Jan 28 21:43:06 2015 +0000 -+++ jdk8/hotspot/src/share/vm/classfile/systemDictionary.cpp Tue Apr 14 19:10:28 2015 +0300 -@@ -2349,9 +2349,6 @@ - assert(!THREAD->is_Compiler_thread(), ""); - Handle method_type = - SystemDictionary::find_method_handle_type(signature, accessing_klass, CHECK_(empty)); -- if (false) { // FIXME: Decide if the Java upcall should resolve signatures. -- method_type = java_lang_String::create_from_symbol(signature, CHECK_(empty)); -- } - - KlassHandle mh_klass = SystemDictionary::MethodHandle_klass(); - int ref_kind = JVM_REF_invokeVirtual; -@@ -2383,6 +2380,24 @@ - return unpack_method_and_appendix(mname, accessing_klass, appendix_box, appendix_result, THREAD); - } - -+// Decide if we can globally cache a lookup of this class, to be returned to any client that asks. -+// We must ensure that all class loaders everywhere will reach this class, for any client. -+// This is a safe bet for public classes in java.lang, such as Object and String. -+// We also include public classes in java.lang.invoke, because they appear frequently in system-level method types. -+// Out of an abundance of caution, we do not include any other classes, not even for packages like java.util. -+static bool is_always_visible_class(oop mirror) { -+ Klass* klass = java_lang_Class::as_Klass(mirror); -+ if (klass->oop_is_objArray()) { -+ klass = ObjArrayKlass::cast(klass)->bottom_klass(); // check element type -+ } -+ if (klass->oop_is_typeArray()) { -+ return true; // primitive array -+ } -+ assert(klass->oop_is_instance(), klass->external_name()); -+ return klass->is_public() && -+ (InstanceKlass::cast(klass)->is_same_class_package(SystemDictionary::Object_klass()) || // java.lang -+ InstanceKlass::cast(klass)->is_same_class_package(SystemDictionary::MethodHandle_klass())); // java.lang.invoke -+} - - // Ask Java code to find or construct a java.lang.invoke.MethodType for the given - // signature, as interpreted relative to the given class loader. -@@ -2405,32 +2420,33 @@ - } - - Handle class_loader, protection_domain; -- bool is_on_bcp = true; // keep this true as long as we can materialize from the boot classloader -+ if (accessing_klass.not_null()) { -+ class_loader = Handle(THREAD, InstanceKlass::cast(accessing_klass())->class_loader()); -+ protection_domain = Handle(THREAD, InstanceKlass::cast(accessing_klass())->protection_domain()); -+ } -+ bool can_be_cached = true; - int npts = ArgumentCount(signature).size(); - objArrayHandle pts = oopFactory::new_objArray(SystemDictionary::Class_klass(), npts, CHECK_(empty)); - int arg = 0; -- Handle rt; // the return type from the signature -+ Handle rt; // the return type from the signature - ResourceMark rm(THREAD); - for (SignatureStream ss(signature); !ss.is_done(); ss.next()) { - oop mirror = NULL; -- if (is_on_bcp) { -- // Note: class_loader & protection_domain are both null at this point. -- mirror = ss.as_java_mirror(class_loader, protection_domain, -+ if (can_be_cached) { -+ // Use neutral class loader to lookup candidate classes to be placed in the cache. -+ mirror = ss.as_java_mirror(Handle(), Handle(), - SignatureStream::ReturnNull, CHECK_(empty)); -- if (mirror == NULL) { -- // fall back from BCP to accessing_klass -- if (accessing_klass.not_null()) { -- class_loader = Handle(THREAD, InstanceKlass::cast(accessing_klass())->class_loader()); -- protection_domain = Handle(THREAD, InstanceKlass::cast(accessing_klass())->protection_domain()); -- } -- is_on_bcp = false; -+ if (mirror == NULL || (ss.is_object() && !is_always_visible_class(mirror))) { -+ // Fall back to accessing_klass context. -+ can_be_cached = false; - } - } -- if (!is_on_bcp) { -+ if (!can_be_cached) { - // Resolve, throwing a real error if it doesn't work. - mirror = ss.as_java_mirror(class_loader, protection_domain, - SignatureStream::NCDFError, CHECK_(empty)); - } -+ assert(!oopDesc::is_null(mirror), ss.as_symbol(THREAD)->as_C_string()); - if (ss.at_return_type()) - rt = Handle(THREAD, mirror); - else -@@ -2462,7 +2478,7 @@ - &args, CHECK_(empty)); - Handle method_type(THREAD, (oop) result.get_jobject()); - -- if (is_on_bcp) { -+ if (can_be_cached) { - // We can cache this MethodType inside the JVM. - MutexLocker ml(SystemDictionary_lock, THREAD); - spe = invoke_method_table()->find_entry(index, hash, signature, null_iid); - diff --git a/java-1_8_0-openjdk.spec b/java-1_8_0-openjdk.spec index 359dfa5..b6cfdb0 100644 --- a/java-1_8_0-openjdk.spec +++ b/java-1_8_0-openjdk.spec @@ -228,10 +228,6 @@ Patch15: cplusplus-interpreter.patch # Fix crash on zero virtual machine built with gcc5 Patch16: zero-dummy.patch # July 2015 security fixes backported to aarch64 hotspot -# 8071731: Better scaling for C1 -Patch20: aarch64-8071731.patch -# 8075838: Method for typing MethodTypes -Patch21: aarch64-8075838.patch # # OpenJDK specific patches # @@ -535,11 +531,6 @@ rm -rvf jdk/src/share/native/sun/java2d/cmm/lcms/lcms2* %patch15 -p1 %endif -%ifarch %aarch64 -%patch20 -p1 -%patch21 -p1 -%endif - %patch99 -p1 # s390 build fixes From 6b7d8bfebc47ee03ed55fd6cf3d03a8763a7786c2c8c36273b734fe8b801385b Mon Sep 17 00:00:00 2001 From: Fridrich Strba Date: Tue, 21 Jul 2015 15:47:51 +0000 Subject: [PATCH 18/19] OBS-URL: https://build.opensuse.org/package/show/Java:Factory/java-1_8_0-openjdk?expand=0&rev=113 --- java-1_8_0-openjdk.spec | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/java-1_8_0-openjdk.spec b/java-1_8_0-openjdk.spec index b6cfdb0..b119016 100644 --- a/java-1_8_0-openjdk.spec +++ b/java-1_8_0-openjdk.spec @@ -167,7 +167,7 @@ Name: java-1_8_0-openjdk Version: %{javaver}.%{updatever} Release: 0 -Summary: OpenJDK Runtime Environment +Summary: OpenJDK 8 Runtime Environment License: Apache-1.1 and Apache-2.0 and GPL-1.0+ and GPL-2.0 and GPL-2.0-with-classpath-exception and LGPL-2.0 and MPL-1.0 and MPL-1.1 and SUSE-Public-Domain and W3C Group: Development/Languages Url: http://openjdk.java.net/ @@ -340,10 +340,10 @@ BuildRequires: pulseaudio >= 0.9.11 %endif %description -The OpenJDK runtime environment. +The OpenJDK 8 runtime environment. %package headless -Summary: OpenJDK Runtime Environment +Summary: OpenJDK 8 Runtime Environment Group: Development/Languages # Require jpackage-utils for ownership of /usr/lib/jvm/ Requires: jpackage-utils @@ -376,10 +376,10 @@ Requires(post): tzdata-java8 %endif %description headless -The OpenJDK runtime environment without audio and video support. +The OpenJDK 8 runtime environment without audio and video support. %package devel -Summary: OpenJDK Development Environment +Summary: OpenJDK 8 Development Environment Group: Development/Tools # Require base package. Requires: %{name} = %{version}-%{release} @@ -397,26 +397,26 @@ Provides: java-sdk-%{javaver}-openjdk = %{version} Provides: java-sdk-openjdk = %{version} %description devel -The OpenJDK development tools. +The OpenJDK 8 development tools. %package demo -Summary: OpenJDK Demos +Summary: OpenJDK 8 Demos Group: Development/Languages Requires: %{name} = %{version}-%{release} %description demo -The OpenJDK demos. +The OpenJDK 8 demos. %package src -Summary: OpenJDK Source Bundle +Summary: OpenJDK 8 Source Bundle Group: Development/Languages Requires: %{name} = %{version}-%{release} %description src -The OpenJDK source bundle. +The OpenJDK 8 source bundle. %package javadoc -Summary: OpenJDK API Documentation +Summary: OpenJDK 8 API Documentation Group: Documentation Requires: jpackage-utils # Post requires update-alternatives to install javadoc alternative. @@ -431,23 +431,23 @@ BuildArch: noarch %endif %description javadoc -The OpenJDK API documentation. +The OpenJDK 8 API documentation. %package accessibility -Summary: OpenJDK accessibility connector +Summary: OpenJDK 8 accessibility connector Group: Development/Languages Requires: %{name} = %{version}-%{release} Requires: java-atk-wrapper %description accessibility -Enables accessibility support in OpenJDK by using java-atk-wrapper. This allows -compatible at-spi2 based accessibility programs to work for AWT and Swing-based -programs. +Enables accessibility support in OpenJDK 8 by using java-atk-wrapper. +This allows compatible at-spi2 based accessibility programs to work +for AWT and Swing-based programs. -Please note, the java-atk-wrapper is still in beta, and OpenJDK itself is still -being tuned to be working with accessibility features. There are known issues -with accessibility on, so please do not install this package unless you really -need to. +Please note, the java-atk-wrapper is still in beta, and OpenJDK 8 +itself is still being tuned to be working with accessibility features. +There are known issues with accessibility on, so please do not install +this package unless you really need to. %prep %setup -q -n %{root_repository}-%{root_revision} From 2098fba855bb8621d5865961945865a8ef2b60765ecba9fa3a85719e2c4f3455 Mon Sep 17 00:00:00 2001 From: Fridrich Strba Date: Wed, 22 Jul 2015 08:38:46 +0000 Subject: [PATCH 19/19] OBS-URL: https://build.opensuse.org/package/show/Java:Factory/java-1_8_0-openjdk?expand=0&rev=114 --- java-1_8_0-openjdk.changes | 55 ++++++++++++++++++++++++++++++++++++++ java-1_8_0-openjdk.spec | 2 +- 2 files changed, 56 insertions(+), 1 deletion(-) diff --git a/java-1_8_0-openjdk.changes b/java-1_8_0-openjdk.changes index c482c15..7078bfd 100644 --- a/java-1_8_0-openjdk.changes +++ b/java-1_8_0-openjdk.changes @@ -1,3 +1,58 @@ +------------------------------------------------------------------- +Wed Jul 22 08:21:13 UTC 2015 - fstrba@suse.com + +- Upgrade to upstream tag jdk8u51-b16 + * Security fix release of July 15, 2015 (bsc#938248, bsc#937828) +- Security issues fixed: + * CVE-2015-2590: Vulnerability in the Java SE, Java SE Embedded + component of Oracle Java SE (subcomponent: Libraries). + * CVE-2015-2597: Vulnerability in the Java SE component of Oracle + Java SE (subcomponent: Install). + * CVE-2015-2601: Vulnerability in the Java SE, JRockit, Java SE + Embedded component of Oracle Java SE (subcomponent: JCE). + * CVE-2015-2613: Vulnerability in the Java SE, Java SE Embedded + component of Oracle Java SE (subcomponent: JCE). + * CVE-2015-2619: Vulnerability in the Java SE, JavaFX, Java SE + Embedded component of Oracle Java SE (subcomponent: 2D). + * CVE-2015-2621: Vulnerability in the Java SE, Java SE Embedded + component of Oracle Java SE (subcomponent: JMX). + * CVE-2015-2625: Vulnerability in the Java SE, JRockit, Java SE + Embedded component of Oracle Java SE (subcomponent: JSSE). + * CVE-2015-2627: Vulnerability in the Java SE component of Oracle + Java SE (subcomponent: Install). + * CVE-2015-2628: Vulnerability in the Java SE, Java SE Embedded + component of Oracle Java SE (subcomponent: CORBA). + * CVE-2015-2632; Vulnerability in the Java SE component of Oracle + Java SE (subcomponent: 2D). + * CVE-2015-2637: Vulnerability in the Java SE, JavaFX, Java SE + Embedded component of Oracle Java SE (subcomponent: 2D). + * CVE-2015-2638: Vulnerability in the Java SE, JavaFX, Java SE + Embedded component of Oracle Java SE (subcomponent: 2D). + * CVE-2015-2659: Vulnerability in the Java SE, Java SE Embedded + component of Oracle Java SE (subcomponent: Security). + * CVE-2015-2664: Vulnerability in the Java SE component of Oracle + Java SE (subcomponent: Deployment). + * CVE-2015-2808: Vulnerability in the Java SE, JRockit, Java SE + Embedded component of Oracle Java SE (subcomponent: JSSE). + * CVE-2015-4000: Vulnerability in the Java SE, JRockit, Java SE + Embedded component of Oracle Java SE (subcomponent: JSSE). + * CVE-2015-4729: Vulnerability in the Java SE component of Oracle + Java SE (subcomponent: Deployment). + * CVE-2015-4731: Vulnerability in the Java SE, Java SE Embedded + component of Oracle Java SE (subcomponent: JMX). + * CVE-2015-4732: Vulnerability in the Java SE, Java SE Embedded + component of Oracle Java SE (subcomponent: Libraries). + * CVE-2015-4733: Vulnerability in the Java SE, Java SE Embedded + component of Oracle Java SE (subcomponent: RMI). + * CVE-2015-4736: Vulnerability in the Java SE component of Oracle + Java SE (subcomponent: Deployment). + * CVE-2015-4748: Vulnerability in the Java SE, JRockit, Java SE + Embedded component of Oracle Java SE (subcomponent: Security). + * CVE-2015-4749: Vulnerability in the Java SE, JRockit, Java SE + Embedded component of Oracle Java SE (subcomponent: JNDI). + * CVE-2015-4760: Vulnerability in the Java SE component of Oracle + Java SE (subcomponent: 2D). + ------------------------------------------------------------------- Thu Jun 18 13:38:54 UTC 2015 - tchvatal@suse.com diff --git a/java-1_8_0-openjdk.spec b/java-1_8_0-openjdk.spec index b119016..191a7cf 100644 --- a/java-1_8_0-openjdk.spec +++ b/java-1_8_0-openjdk.spec @@ -183,7 +183,7 @@ Source7: http://hg.openjdk.java.net/%{root_project}/%{root_repository}/na # Hotspot version from aarch64-port repository (using the _tip_ of the http://hg.openjdk.java.net/%{aarch64_project}/%{aarch64_repository}/hotspot) Source8: http://hg.openjdk.java.net/%{aarch64_project}/%{aarch64_repository}/hotspot/archive/%{aarch64_hotspot_revision}.tar.bz2 # Pulseaudio plugin -Source9: http://icedtea.wildebeest.org/download/source/icedtea-sound-%{icedtea_sound_version}.tar.xz +Source9: http://icedtea.classpath.org/download/source/icedtea-sound-%{icedtea_sound_version}.tar.xz # Systemtap tapsets. Zipped up to keep it small. Source10: systemtap-tapset.tar.gz # Desktop files. Adapated from IcedTea.