Skip to content
Snippets Groups Projects
Commit d6f8398f authored by Dimitry Andric's avatar Dimitry Andric
Browse files

java/openjdk12: fix build with clang 12

During an exp-run for llvm 12 (see bug 255570), it turned out that
java/openjdk11 does not build with clang 12.0.0:

Creating support/demos/image/jfc/J2Ddemo/J2Ddemo.jar
/usr/local/bin/bash: line 5: 49140 Abort trap		   (core dumped) /wrkdirs/usr/ports/java/openjdk12/work/openjdk-jdk12u-jdk-12.0.2-10-4/build/bsd-x86_64-server-release/support/interim-image/bin/java -XX:DumpLoadedClassList=/wrkdirs/usr/ports/java/openjdk12/work/openjdk-jdk12u-jdk-12.0.2-10-4/build/bsd-x86_64-server-release/support/link_opt/classlist.raw -Djava.lang.invoke.MethodHandle.TRACE_RESOLVE=true -cp /wrkdirs/usr/ports/java/openjdk12/work/openjdk-jdk12u-jdk-12.0.2-10-4/build/bsd-x86_64-server-release/support/classlist.jar build.tools.classlist.HelloClasslist > /dev/null 2>&1 > /wrkdirs/usr/ports/java/openjdk12/work/openjdk-jdk12u-jdk-12.0.2-10-4/build/bsd-x86_64-server-release/support/link_opt/default_jli_trace.txt
gmake[4]: *** [GenerateLinkOptData.gmk:66: /wrkdirs/usr/ports/java/openjdk12/work/openjdk-jdk12u-jdk-12.0.2-10-4/build/bsd-x86_64-server-release/support/link_opt/classlist] Error 134

This is due to missing backports of upstream commits:

commit c484d8904285652246c3af212a4211b9a8955149
Author: Thomas Stuefe <stuefe@openjdk.org>
Date:	Tue Mar 16 05:49:01 2021 +0000

    8263557: Possible NULL dereference in Arena::destruct_contents()

    Reviewed-by: kbarrett, coleenp

commit 34ae46e2bca691f989d4d84129baf545ff8a7469
Author: Andrew Haley <aph@openjdk.org>
Date:	Thu Mar 19 14:53:57 2020 +0000

    8241296: Segfault in JNIHandleBlock::oops_do()

    Reviewed-by: stefank

Approved by:	maintainer timeout (2 weeks)
PR:		255901
MFH:		2021Q2
parent a47b2844
No related branches found
No related tags found
No related merge requests found
commit 34ae46e2bca691f989d4d84129baf545ff8a7469
Author: Andrew Haley <aph@openjdk.org>
Date: Thu Mar 19 14:53:57 2020 +0000
8241296: Segfault in JNIHandleBlock::oops_do()
Reviewed-by: stefank
diff --git src/hotspot/share/runtime/thread.cpp src/hotspot/share/runtime/thread.cpp
index b93e70a0353..b1571f2d594 100644
--- src/hotspot/share/runtime/thread.cpp
+++ src/hotspot/share/runtime/thread.cpp
@@ -888,7 +888,9 @@ bool Thread::claim_par_threads_do(uintx claim_token) {
}
void Thread::oops_do(OopClosure* f, CodeBlobClosure* cf) {
- active_handles()->oops_do(f);
+ if (active_handles() != NULL) {
+ active_handles()->oops_do(f);
+ }
// Do oop for ThreadShadow
f->do_oop((oop*)&_pending_exception);
handle_area()->oops_do(f);
commit c484d8904285652246c3af212a4211b9a8955149
Author: Thomas Stuefe <stuefe@openjdk.org>
Date: Tue Mar 16 05:49:01 2021 +0000
8263557: Possible NULL dereference in Arena::destruct_contents()
Reviewed-by: kbarrett, coleenp
diff --git src/hotspot/share/memory/arena.cpp src/hotspot/share/memory/arena.cpp
index 8388f68c359..16059bed9be 100644
--- src/hotspot/share/memory/arena.cpp
+++ src/hotspot/share/memory/arena.cpp
@@ -310,7 +310,9 @@ void Arena::destruct_contents() {
// reset size before chop to avoid a rare racing condition
// that can have total arena memory exceed total chunk memory
set_size_in_bytes(0);
- _first->chop();
+ if (_first != NULL) {
+ _first->chop();
+ }
reset();
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment