Changeset: d5fdc77cd6be Author: Kurt Miller <k...@intricatesoftware.com> Date: 2018-05-29 11:02 -0400 URL: http://hg.openjdk.java.net/bsd-port/jdk8/hotspot/rev/d5fdc77cd6be
Fix SIGSEGV in sun/misc/Unsafe using clang 6.0.0 by reducing compilier optimization level of unsafe.o. Issue is similar to: https://bugs.openjdk.java.net/browse/JDK-8022407 and can be reproduced with: https://gist.github.com/mbelop/6ebb11d7e583562279abfb2e3b733fa5 Investigation, testcase and reported by Mike Belopuhov <m...@belopuhov.com> ! make/bsd/makefiles/gcc.make Changeset: be59128afb76 Author: Kurt Miller <k...@intricatesoftware.com> Date: 2018-05-29 11:44 -0400 URL: http://hg.openjdk.java.net/bsd-port/jdk8/hotspot/rev/be59128afb76 Fix SIGSEGV in share/vm/services/memTracker.cpp caused by using placement new on a const static class member. With clang 6, const static class members are located in read-only memory so it is not possible to use placement new on it. Presumably the use of placement new is to overcome static initialization order being undefined. Use the traditional 'Construct On First Use Idiom' to address the static initialization ordering which removes the need for placement new on read-only memory. Analysis of SIGSEGV and partial patch to remove placement new by Dimitry Andric <d...@freebsd.org>. Complete patch using 'Construct On First Use Idiom' authored by Kurt Miller. ! src/share/vm/services/mallocSiteTable.hpp ! src/share/vm/services/memTracker.cpp ! src/share/vm/services/memTracker.hpp ! src/share/vm/services/virtualMemoryTracker.cpp ! src/share/vm/services/virtualMemoryTracker.hpp ! src/share/vm/utilities/nativeCallStack.cpp ! src/share/vm/utilities/nativeCallStack.hpp