commit:     15f4b287d4e51821577b32f7f7d435d0e9030461
Author:     Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org>
AuthorDate: Thu Apr 23 20:41:15 2020 +0000
Commit:     Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org>
CommitDate: Thu Apr 23 20:41:47 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=15f4b287

dev-java/openjdk: add patch to 11.0.7 to fix SIGSEGV in bootstrap

Happens if bootstrap jvm was compiled with 11.0.7 (like -bin version)

Bug: https://bugs.gentoo.org/719118
Package-Manager: Portage-2.3.99, Repoman-2.3.22
Signed-off-by: Georgy Yakovlev <gyakovlev <AT> gentoo.org>

 .../openjdk/files/openjdk-11.0.7_p10-sigsegv.patch | 55 ++++++++++++++++++++++
 dev-java/openjdk/openjdk-11.0.7_p10.ebuild         |  4 ++
 2 files changed, 59 insertions(+)

diff --git a/dev-java/openjdk/files/openjdk-11.0.7_p10-sigsegv.patch 
b/dev-java/openjdk/files/openjdk-11.0.7_p10-sigsegv.patch
new file mode 100644
index 00000000000..04c61c06589
--- /dev/null
+++ b/dev-java/openjdk/files/openjdk-11.0.7_p10-sigsegv.patch
@@ -0,0 +1,55 @@
+
+# HG changeset patch
+# User ccheung
+# Date 1564075552 25200
+# Node ID f1332f6025515e4fc9e42fbf79f983d782abaaf0
+# Parent  966fc6d784a737ec25cd0b1be48109a4a3fa02ad
+8228407: JVM crashes with shared archive file mismatch
+Summary: Stop processing other header fields if initial header check has 
failed.
+Reviewed-by: dholmes, jiangli
+
+diff -r 966fc6d784a7 -r f1332f602551 src/hotspot/share/memory/filemap.cpp
+--- a/src/hotspot/share/memory/filemap.cpp     Mon Mar 02 12:30:59 2020 +0100
++++ b/src/hotspot/share/memory/filemap.cpp     Thu Jul 25 10:25:52 2019 -0700
+@@ -1287,7 +1287,9 @@
+   }
+ 
+   init_from_file(_fd);
+-  if (!validate_header()) {
++  // UseSharedSpaces could be disabled if the checking of some of the header 
fields in
++  // init_from_file has failed.
++  if (!UseSharedSpaces || !validate_header()) {
+     return false;
+   }
+   return true;
+diff -r 966fc6d784a7 -r f1332f602551 
test/hotspot/jtreg/runtime/appcds/SharedArchiveConsistency.java
+--- a/test/hotspot/jtreg/runtime/appcds/SharedArchiveConsistency.java  Mon Mar 
02 12:30:59 2020 +0100
++++ b/test/hotspot/jtreg/runtime/appcds/SharedArchiveConsistency.java  Thu Jul 
25 10:25:52 2019 -0700
+@@ -385,8 +385,16 @@
+         output.shouldNotContain("Checksum verification failed");
+ 
+         copyFile(orgJsaFile, jsa);
++        // modify _jvm_ident and run with -Xshare:auto
++        System.out.println("\n2b. Corrupt _jvm_ident run with 
-Xshare:auto\n");
++        modifyJvmIdent();
++        output = TestCommon.execAuto(execArgs);
++        output.shouldContain("The shared archive file was created by a 
different version or build of HotSpot");
++        output.shouldContain("Hello World");
++
++        copyFile(orgJsaFile, jsa);
+         // modify _magic and _paths_misc_info_size, test should fail
+-        System.out.println("\n2b. Corrupt _magic and _paths_misc_info_size, 
should fail\n");
++        System.out.println("\n2c. Corrupt _magic and _paths_misc_info_size, 
should fail\n");
+         modifyHeaderIntField(offset_magic, 0x00000000);
+         modifyHeaderIntField(offset_paths_misc_info_size, Integer.MAX_VALUE);
+         output = TestCommon.execCommon(execArgs);
+@@ -395,7 +403,7 @@
+ 
+         copyFile(orgJsaFile, jsa);
+         // modify _version and _paths_misc_info_size, test should fail
+-        System.out.println("\n2c. Corrupt _version and _paths_misc_info_size, 
should fail\n");
++        System.out.println("\n2d. Corrupt _version and _paths_misc_info_size, 
should fail\n");
+         modifyHeaderIntField(offset_version, 0x00000000);
+         modifyHeaderIntField(offset_paths_misc_info_size, Integer.MAX_VALUE);
+         output = TestCommon.execCommon(execArgs);
+

diff --git a/dev-java/openjdk/openjdk-11.0.7_p10.ebuild 
b/dev-java/openjdk/openjdk-11.0.7_p10.ebuild
index 9df2e6c723a..76d41a4eb08 100644
--- a/dev-java/openjdk/openjdk-11.0.7_p10.ebuild
+++ b/dev-java/openjdk/openjdk-11.0.7_p10.ebuild
@@ -77,6 +77,10 @@ REQUIRED_USE="javafx? ( alsa !headless-awt )"
 
 S="${WORKDIR}/jdk${SLOT}u-jdk-${MY_PV}"
 
+PATCHES=(
+       "${FILESDIR}/${P}-sigsegv.patch"
+)
+
 # The space required to build varies wildly depending on USE flags,
 # ranging from 2GB to 16GB. This function is certainly not exact but
 # should be close enough to be useful.

Reply via email to