changeset 2917:d32a285740a1

Bump shenandoah to aarch64-shenandoah-jdk8u222-b10. Upstream changes: - Adjust code stub sizes for Shenandoah and future backports - [backport] 8217016: Shenandoah: Streamline generation of CAS barriers - [backport] 8217874: Shenandoah: Clobbered register in ShenandoahBarrierSetAssembler::cmpxchg_oop() - [backport] 8220714: C2 Compilation failure when accessing off-heap memory using Unsafe - [backport] 8221278: Shenandoah should not enqueue string dedup candidates during root scan - [backport] 8222403: Shenandoah: Remove ShenandoahAlwaysTrueClosure, use AlwaysTrueClosure instead - [backport] 8222425: Shenandoah: Move commonly used closures to separate files - [backport] 8223446: Shenandoah breaks alignment with some HumongousThreshold values - [backport] 8223447: Stabilize gc/shenandoah/TestStringDedupStress test - [backport] 8223651: Build fails with --with-jvm-features=-jfr and --disable-precompiled-headers - [backport] 8223759: Shenandoah should allow arbitrarily low initial heap size - [backport] 8223762: Shenandoah: overflows in calculations involving heap capacity - [backport] 8223767: Shenandoah fails to build on Solaris x86_64 - [backport] 8223980: Shenandoah: Refactor and fix ObjArrayChunkedTask verification - Enable weak JNI handling with Shenandoah after JDK-8176100 - S7102541: RFE: os::set_native_thread_name() cleanups - S8059575: JEP-JDK-8043304: Test task: Tiered Compilation level transition tests - S8134030: test/serviceability/dcmd/gc/HeapDumpTest fails to verify the dump - S8144332: HSDB could not terminate when close button is pushed. - S8151322: Implement os::set_native_thread_name() on Solaris - S8151539: Remove duplicate AlwaysTrueClosures - S8158232: PPC64: improve byte, int and long array copy stubs by using VSX instructions - S8166684: PPC64: implement intrinsic code with vector instructions for Unsafe.copyMemory() - S8176100: [AArch64] [REDO][REDO] G1 Needs pre barrier on dereference of weak JNI handles - S8176100: [REDO][REDO] G1 Needs pre barrier on dereference of weak JNI handles - S8185969: PPC64: Improve VSR support to use up to 64 registers - S8186325: AArch64: jtreg test hotspot/test/gc/g1/TestJNIWeakG1/TestJNIWeakG1.java SEGV - S8193830: Xalan Update: Xalan Java 2.7.2 - S8202414: Unsafe write after primitive array creation may result in array length change - S8202884: SA: Attach/detach might fail on Linux if debugee application create/destroy threads during attaching - S8210425: [AArch64] sharedRuntimeTrig/sharedRuntimeTrans compiled without optimization - S8210425: [x86] sharedRuntimeTrig/sharedRuntimeTrans compiled without optimization - S8210886: Remove references in xwindows.md to non-existent files. - S8213213: Remove src/java.desktop/unix/classes/sun/awt/X11/keysym2ucs.h - S8217315: Proper units should print more significant digits - S8218020: Fix version number in mesa.md 3rd party legal file - S8220495: Update GIFlib library to the 5.1.8 - S8222670: pathological case of JIT recompilation and code cache bloat - S8223511: Extended AES support - S8223537: testlibrary_tests/ctw/ClassesListTest.java fails with Agent timeout frequently - S8223664: Add jtreg tests for 8223528, backport to jdk8u of 8176100 - S8223883: Fix jni.cpp copyright date after 8223528 - S8224671: AArch64: mauve System.arraycopy test failure - S8224828: aarch64: rflags is not correct after safepoint poll - S8224880: AArch64: java/javac error with AllocatePrefetchDistance - S8225716: G1 GC: Undefined behaviour in G1BlockOffsetTablePart::block_at_or_preceding ChangeLog: 2019-07-17 Andrew John Hughes <gnu_andrew@member.fsf.org> Bump shenandoah to aarch64-shenandoah-jdk8u222-b10. * patches/hotspot/shenandoah/8064786-pr3601.patch: Drop patch applied silently in 8176100. * Makefile.am: (ICEDTEA_PATCHES): Move 8064786/PR3601 to AArch32 only. * NEWS: Updated. * hotspot.map.in: Bump shenandoah to aarch64-shenandoah-jdk8u222-b10. * patches/hotspot/aarch32/6424123-pr3696.patch: Restore unaltered version from before integration of b01, so AArch32 builds again. * patches/hotspot/aarch32/8064786-pr3601.patch: Replace symlink with copy as Shenandoah version has been removed. * patches/hotspot/aarch32/8141570-pr3548.patch, * patches/hotspot/aarch32/8143245-pr3548.patch: Replace symlinks with copies as Shenandoah versions have been modified. * patches/hotspot/shenandoah/8141570-pr3548.patch, * patches/hotspot/shenandoah/8143245-pr3548.patch: Regenerate, due to context being changed by 8210425.
author Andrew John Hughes <gnu_andrew@member.fsf.org>
date Thu, 18 Jul 2019 11:12:47 +0100
parents 41f06bec0e5c
children c289e9719dd3
files ChangeLog Makefile.am NEWS hotspot.map.in patches/hotspot/aarch32/6424123-pr3696.patch patches/hotspot/aarch32/8064786-pr3601.patch patches/hotspot/aarch32/8141570-pr3548.patch patches/hotspot/aarch32/8143245-pr3548.patch patches/hotspot/shenandoah/8064786-pr3601.patch patches/hotspot/shenandoah/8141570-pr3548.patch patches/hotspot/shenandoah/8143245-pr3548.patch
diffstat 11 files changed, 739 insertions(+), 55 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Thu Jul 18 02:38:52 2019 +0100
+++ b/ChangeLog	Thu Jul 18 11:12:47 2019 +0100
@@ -1,3 +1,28 @@
+2019-07-17  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+	Bump shenandoah to aarch64-shenandoah-jdk8u222-b10.
+	* patches/hotspot/shenandoah/8064786-pr3601.patch:
+	Drop patch applied silently in 8176100.
+	* Makefile.am:
+	(ICEDTEA_PATCHES): Move 8064786/PR3601 to
+	AArch32 only.
+	* NEWS: Updated.
+	* hotspot.map.in: Bump shenandoah to
+	aarch64-shenandoah-jdk8u222-b10.
+	* patches/hotspot/aarch32/6424123-pr3696.patch:
+	Restore unaltered version from before integration
+	of b01, so AArch32 builds again.
+	* patches/hotspot/aarch32/8064786-pr3601.patch:
+	Replace symlink with copy as Shenandoah version
+	has been removed.
+	* patches/hotspot/aarch32/8141570-pr3548.patch,
+	* patches/hotspot/aarch32/8143245-pr3548.patch:
+	Replace symlinks with copies as Shenandoah versions
+	have been modified.
+	* patches/hotspot/shenandoah/8141570-pr3548.patch,
+	* patches/hotspot/shenandoah/8143245-pr3548.patch:
+	Regenerate, due to context being changed by 8210425.
+
 2019-07-17  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
 	Bump to icedtea-3.13.0.
--- a/Makefile.am	Thu Jul 18 02:38:52 2019 +0100
+++ b/Makefile.am	Thu Jul 18 11:12:47 2019 +0100
@@ -350,6 +350,7 @@
 if WITH_AARCH32_HSBUILD
 ICEDTEA_PATCHES += \
 	patches/hotspot/$(HSBUILD)/pr3548-aarch32.patch \
+	patches/hotspot/$(HSBUILD)/8064786-pr3601.patch \
 	patches/hotspot/$(HSBUILD)/8078628-pr3208.patch
 endif
 
@@ -376,7 +377,6 @@
 	patches/hotspot/$(HSBUILD)/pr3593.patch \
 	patches/hotspot/$(HSBUILD)/8197981-pr3548.patch \
 	patches/hotspot/$(HSBUILD)/pr3597.patch \
-	patches/hotspot/$(HSBUILD)/8064786-pr3601.patch \
 	patches/hotspot/$(HSBUILD)/pr3601.patch \
 	patches/hotspot/$(HSBUILD)/8207057-pr3613.patch \
 	patches/hotspot/$(HSBUILD)/pr3607.patch \
--- a/NEWS	Thu Jul 18 02:38:52 2019 +0100
+++ b/NEWS	Thu Jul 18 11:12:47 2019 +0100
@@ -183,11 +183,13 @@
 * Shenandoah
   - [backport] 8210879: ClassLoaderStatsClosure does raw oop comparison
   - [backport] 8216973: Kick up cleanup phases in the right places
+  - [backport] 8217016: Shenandoah: Streamline generation of CAS barriers
   - [backport] 8217043: Shenandoah: SIGSEGV in Type::meet_helper() at barrier expansion time
   - [backport] 8217213: shenandoahTaskQueue.hpp includes .inline.hpp file
   - [backport] 8217319: Cleanup Shenandoah includes
   - [backport] 8217343: Shenandoah control thread should be able to run at critical priority
   - [backport] 8217400: Optimized build is broken by Shenandoah changes
+  - [backport] 8217874: Shenandoah: Clobbered register in ShenandoahBarrierSetAssembler::cmpxchg_oop()
   - [backport] 8219524: Shenandoah misreports "committed" size in MemoryMXBean
   - [backport] 8219857: Shenandoah GC may initialize thread's gclab twice
   - [backport] 8219976: GarbageCollectionNotificationInfo always says "No GC" when running Shenandoah
@@ -196,9 +198,20 @@
   - [backport] 8220228: Improve Shenandoah pacing histogram message
   - [backport] 8220350: Refactor ShenandoahHeap::initialize
   - [backport] 8220712: [TESTBUG] gc/shenandoah/compiler/TestMaybeNullUnsafeAccess should run with Shenandoah enabled
+  - [backport] 8220714: C2 Compilation failure when accessing off-heap memory using Unsafe
+  - [backport] 8221278: Shenandoah should not enqueue string dedup candidates during root scan
   - [backport] 8222130: Shenandoah should verify roots after pre-evacuation
   - [backport] 8222185: Shenandoah should report "committed" as capacity
   - [backport] 8222186: Shenandoah should not uncommit below minimum heap size
+  - [backport] 8222403: Shenandoah: Remove ShenandoahAlwaysTrueClosure, use AlwaysTrueClosure instead
+  - [backport] 8222425: Shenandoah: Move commonly used closures to separate files
+  - [backport] 8223446: Shenandoah breaks alignment with some HumongousThreshold values
+  - [backport] 8223447: Stabilize gc/shenandoah/TestStringDedupStress test
+  - [backport] 8223651: Build fails with --with-jvm-features=-jfr and --disable-precompiled-headers
+  - [backport] 8223759: Shenandoah should allow arbitrarily low initial heap size
+  - [backport] 8223762: Shenandoah: overflows in calculations involving heap capacity
+  - [backport] 8223767: Shenandoah fails to build on Solaris x86_64
+  - [backport] 8223980: Shenandoah: Refactor and fix ObjArrayChunkedTask verification
   - [backport] 8222838: Shenandoah: SEGV on accessing cset bitmap for NULL ptr
   - [backport] 8222843: Print Shenandoah cset map addresses in hs_err
   - [backport] Added a few missed worker sessions for worker tasks
@@ -354,6 +367,9 @@
   - JDK8u-only: Use WB-based acmp barrier
   - Prettify Shenandoah JDK 8 logging
   - ShenandoahSATBBufferSize cannot be size_t in 8u
+  - Adjust code stub sizes for Shenandoah and future backports
+  - Enable weak JNI handling with Shenandoah after JDK-8176100
+  - S8210425: [AArch64] sharedRuntimeTrig/sharedRuntimeTrans compiled without optimization
 * AArch64 port
   - S8176100, PR3745: [AArch64] [REDO][REDO] G1 Needs pre barrier on dereference of weak JNI handles
   - S8186325, PR3745: AArch64: jtreg test hotspot/test/gc/g1/TestJNIWeakG1/TestJNIWeakG1.java SEGV
--- a/hotspot.map.in	Thu Jul 18 02:38:52 2019 +0100
+++ b/hotspot.map.in	Thu Jul 18 11:12:47 2019 +0100
@@ -1,4 +1,4 @@
 # version type(drop/hg) url changeset sha256sum
 default drop https://icedtea.classpath.org/download/drops/icedtea8/@ICEDTEA_RELEASE@ 3ffd5d889945 2bfdf42cd972f5f7acfc4ca6fa70790d0659da97ffb8f8526c1b741c0cd55dbd
-shenandoah drop https://icedtea.classpath.org/download/drops/icedtea8/@ICEDTEA_RELEASE@ a33c11783e6b a9a12280e16c9a84c8315aeb8d67a3843f2f3110509cb10292af5cf63b78fb7e
+shenandoah drop https://icedtea.classpath.org/download/drops/icedtea8/@ICEDTEA_RELEASE@ ff69edbcd7ae 8a0708427aa38b75007f8e2cd663c475aa6de0c0aa7de1bfb245ba93115ef5ba
 aarch32 drop https://icedtea.classpath.org/download/drops/icedtea8/@ICEDTEA_RELEASE@ 57f4048a925b 921202baed30726dc833c94817e07a4baa7d3b1e9129af032b09bd7f0e3bcfd1
--- a/patches/hotspot/aarch32/6424123-pr3696.patch	Thu Jul 18 02:38:52 2019 +0100
+++ b/patches/hotspot/aarch32/6424123-pr3696.patch	Thu Jul 18 11:12:47 2019 +0100
@@ -1,1 +1,446 @@
-../shenandoah/6424123-pr3696.patch
\ No newline at end of file
+# HG changeset patch
+# User zgu
+# Date 1549941040 0
+#      Tue Feb 12 03:10:40 2019 +0000
+# Node ID cfb34db6589e222d34e5b736b99ed4f69c261c4f
+# Parent  f8beb13aec9f8c291282ee8ec4473c8627aa7e07
+6424123, PR3696: JVM crashes on failed 'strdup' call
+Summary: Calling os::malloc()/os::strdup() and new os::strdup_check_oom() instead of ::malloc()/::strdup() for native memory tracking purpose
+Reviewed-by: coleenp, ctornqvi, kvn
+
+diff --git openjdk.orig/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp openjdk/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp
+--- openjdk.orig/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp
++++ openjdk/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp
+@@ -29,6 +29,7 @@
+ #include "compiler/disassembler.hpp"
+ #include "memory/resourceArea.hpp"
+ #include "runtime/java.hpp"
++#include "runtime/os.hpp"
+ #include "runtime/stubCodeGenerator.hpp"
+ #include "utilities/defaultStream.hpp"
+ #include "vm_version_ppc.hpp"
+@@ -116,7 +117,7 @@
+                (has_vpmsumb() ? " vpmsumb" : "")
+                // Make sure number of %s matches num_features!
+               );
+-  _features_str = strdup(buf);
++  _features_str = os::strdup(buf);
+   NOT_PRODUCT(if (Verbose) print_features(););
+ 
+   // PPC64 supports 8-byte compare-exchange operations (see
+diff --git openjdk.orig/hotspot/src/cpu/sparc/vm/vm_version_sparc.cpp openjdk/hotspot/src/cpu/sparc/vm/vm_version_sparc.cpp
+--- openjdk.orig/hotspot/src/cpu/sparc/vm/vm_version_sparc.cpp
++++ openjdk/hotspot/src/cpu/sparc/vm/vm_version_sparc.cpp
+@@ -26,6 +26,7 @@
+ #include "asm/macroAssembler.inline.hpp"
+ #include "memory/resourceArea.hpp"
+ #include "runtime/java.hpp"
++#include "runtime/os.hpp"
+ #include "runtime/stubCodeGenerator.hpp"
+ #include "vm_version_sparc.hpp"
+ #ifdef TARGET_OS_FAMILY_linux
+@@ -270,7 +271,7 @@
+                (!has_hardware_fsmuld() ? ", no-fsmuld" : ""));
+ 
+   // buf is started with ", " or is empty
+-  _features_str = strdup(strlen(buf) > 2 ? buf + 2 : buf);
++  _features_str = os::strdup(strlen(buf) > 2 ? buf + 2 : buf);
+ 
+   // UseVIS is set to the smallest of what hardware supports and what
+   // the command line requires.  I.e., you cannot set UseVIS to 3 on
+@@ -485,7 +486,7 @@
+ int VM_Version::parse_features(const char* implementation) {
+   int features = unknown_m;
+   // Convert to UPPER case before compare.
+-  char* impl = os::strdup(implementation);
++  char* impl = os::strdup_check_oom(implementation);
+ 
+   for (int i = 0; impl[i] != 0; i++)
+     impl[i] = (char)toupper((uint)impl[i]);
+diff --git openjdk.orig/hotspot/src/cpu/x86/vm/vm_version_x86.cpp openjdk/hotspot/src/cpu/x86/vm/vm_version_x86.cpp
+--- openjdk.orig/hotspot/src/cpu/x86/vm/vm_version_x86.cpp
++++ openjdk/hotspot/src/cpu/x86/vm/vm_version_x86.cpp
+@@ -27,6 +27,7 @@
+ #include "asm/macroAssembler.inline.hpp"
+ #include "memory/resourceArea.hpp"
+ #include "runtime/java.hpp"
++#include "runtime/os.hpp"
+ #include "runtime/stubCodeGenerator.hpp"
+ #include "vm_version_x86.hpp"
+ #ifdef TARGET_OS_FAMILY_linux
+@@ -527,7 +528,7 @@
+                (supports_bmi1() ? ", bmi1" : ""),
+                (supports_bmi2() ? ", bmi2" : ""),
+                (supports_adx() ? ", adx" : ""));
+-  _features_str = strdup(buf);
++  _features_str = os::strdup(buf);
+ 
+   // UseSSE is set to the smaller of what hardware supports and what
+   // the command line requires.  I.e., you cannot set UseSSE to 2 on
+diff --git openjdk.orig/hotspot/src/os/aix/vm/os_aix.cpp openjdk/hotspot/src/os/aix/vm/os_aix.cpp
+--- openjdk.orig/hotspot/src/os/aix/vm/os_aix.cpp
++++ openjdk/hotspot/src/os/aix/vm/os_aix.cpp
+@@ -56,6 +56,7 @@
+ #include "runtime/mutexLocker.hpp"
+ #include "runtime/objectMonitor.hpp"
+ #include "runtime/orderAccess.inline.hpp"
++#include "runtime/os.hpp"
+ #include "runtime/osThread.hpp"
+ #include "runtime/perfMemory.hpp"
+ #include "runtime/sharedRuntime.hpp"
+@@ -389,10 +390,10 @@
+   // default should be 4K.
+   size_t data_page_size = SIZE_4K;
+   {
+-    void* p = ::malloc(SIZE_16M);
++    void* p = os::malloc(SIZE_16M, mtInternal);
+     guarantee(p != NULL, "malloc failed");
+     data_page_size = os::Aix::query_pagesize(p);
+-    ::free(p);
++    os::free(p);
+   }
+ 
+   // query default shm page size (LDR_CNTRL SHMPSIZE)
+diff --git openjdk.orig/hotspot/src/os/aix/vm/porting_aix.cpp openjdk/hotspot/src/os/aix/vm/porting_aix.cpp
+--- openjdk.orig/hotspot/src/os/aix/vm/porting_aix.cpp
++++ openjdk/hotspot/src/os/aix/vm/porting_aix.cpp
+@@ -23,6 +23,8 @@
+  */
+ 
+ #include "asm/assembler.hpp"
++#include "memory/allocation.inline.hpp"
++#include "runtime/os.hpp"
+ #include "loadlib_aix.hpp"
+ #include "porting_aix.hpp"
+ #include "utilities/debug.hpp"
+@@ -82,7 +84,7 @@
+     while (n) {
+       node* p = n;
+       n = n->next;
+-      free(p->v);
++      os::free(p->v);
+       delete p;
+     }
+   }
+@@ -94,7 +96,7 @@
+       }
+     }
+     node* p = new node;
+-    p->v = strdup(s);
++    p->v = os::strdup_check_oom(s);
+     p->next = first;
+     first = p;
+     return p->v;
+diff --git openjdk.orig/hotspot/src/os/windows/vm/perfMemory_windows.cpp openjdk/hotspot/src/os/windows/vm/perfMemory_windows.cpp
+--- openjdk.orig/hotspot/src/os/windows/vm/perfMemory_windows.cpp
++++ openjdk/hotspot/src/os/windows/vm/perfMemory_windows.cpp
+@@ -29,6 +29,7 @@
+ #include "oops/oop.inline.hpp"
+ #include "os_windows.inline.hpp"
+ #include "runtime/handles.inline.hpp"
++#include "runtime/os.hpp"
+ #include "runtime/perfMemory.hpp"
+ #include "services/memTracker.hpp"
+ #include "utilities/exceptions.hpp"
+@@ -1388,7 +1389,7 @@
+   // the file has been successfully created and the file mapping
+   // object has been created.
+   sharedmem_fileHandle = fh;
+-  sharedmem_fileName = strdup(filename);
++  sharedmem_fileName = os::strdup(filename);
+ 
+   return fmh;
+ }
+diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp openjdk/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp
+--- openjdk.orig/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp
++++ openjdk/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp
+@@ -30,6 +30,7 @@
+ #include "c1/c1_MacroAssembler.hpp"
+ #include "c1/c1_ValueStack.hpp"
+ #include "ci/ciInstance.hpp"
++#include "runtime/os.hpp"
+ #ifdef TARGET_ARCH_x86
+ # include "nativeInst_x86.hpp"
+ # include "vmreg_x86.inline.hpp"
+@@ -880,7 +881,7 @@
+           stringStream st;
+           st.print("bad oop %s at %d", r->as_Register()->name(), _masm->offset());
+ #ifdef SPARC
+-          _masm->_verify_oop(r->as_Register(), strdup(st.as_string()), __FILE__, __LINE__);
++          _masm->_verify_oop(r->as_Register(), os::strdup(st.as_string(), mtCompiler), __FILE__, __LINE__);
+ #else
+           _masm->verify_oop(r->as_Register());
+ #endif
+diff --git openjdk.orig/hotspot/src/share/vm/classfile/classLoader.cpp openjdk/hotspot/src/share/vm/classfile/classLoader.cpp
+--- openjdk.orig/hotspot/src/share/vm/classfile/classLoader.cpp
++++ openjdk/hotspot/src/share/vm/classfile/classLoader.cpp
+@@ -324,7 +324,7 @@
+ }
+ 
+ LazyClassPathEntry::LazyClassPathEntry(const char* path, const struct stat* st, bool throw_exception) : ClassPathEntry() {
+-  _path = strdup(path);
++  _path = os::strdup_check_oom(path);
+   _st = *st;
+   _meta_index = NULL;
+   _resolved_entry = NULL;
+@@ -332,6 +332,10 @@
+   _throw_exception = throw_exception;
+ }
+ 
++LazyClassPathEntry::~LazyClassPathEntry() {
++  os::free((void*) _path);
++}
++
+ bool LazyClassPathEntry::is_jar_file() {
+   return ((_st.st_mode & S_IFREG) == S_IFREG);
+ }
+@@ -538,7 +542,7 @@
+         default:
+         {
+           if (!skipCurrentJar && cur_entry != NULL) {
+-            char* new_name = strdup(package_name);
++            char* new_name = os::strdup_check_oom(package_name);
+             boot_class_path_packages.append(new_name);
+           }
+         }
+diff --git openjdk.orig/hotspot/src/share/vm/classfile/classLoader.hpp openjdk/hotspot/src/share/vm/classfile/classLoader.hpp
+--- openjdk.orig/hotspot/src/share/vm/classfile/classLoader.hpp
++++ openjdk/hotspot/src/share/vm/classfile/classLoader.hpp
+@@ -134,6 +134,8 @@
+   bool is_jar_file();
+   const char* name()  { return _path; }
+   LazyClassPathEntry(const char* path, const struct stat* st, bool throw_exception);
++  virtual ~LazyClassPathEntry();
++
+   u1* open_entry(const char* name, jint* filesize, bool nul_terminate, TRAPS);
+   ClassFileStream* open_stream(const char* name, TRAPS);
+   void set_meta_index(MetaIndex* meta_index) { _meta_index = meta_index; }
+diff --git openjdk.orig/hotspot/src/share/vm/compiler/compilerOracle.cpp openjdk/hotspot/src/share/vm/compiler/compilerOracle.cpp
+--- openjdk.orig/hotspot/src/share/vm/compiler/compilerOracle.cpp
++++ openjdk/hotspot/src/share/vm/compiler/compilerOracle.cpp
+@@ -33,6 +33,7 @@
+ #include "oops/symbol.hpp"
+ #include "runtime/handles.inline.hpp"
+ #include "runtime/jniHandles.hpp"
++#include "runtime/os.hpp"
+ 
+ class MethodMatcher : public CHeapObj<mtCompiler> {
+  public:
+@@ -224,7 +225,7 @@
+                            const T value,  MethodMatcher* next) :
+     MethodMatcher(class_name, class_mode, method_name, method_mode, signature, next),
+                   _type(get_type_for<T>()), _value(copy_value<T>(value)) {
+-    _option = strdup(opt);
++    _option = os::strdup_check_oom(opt);
+   }
+ 
+   ~TypedMethodOptionMatcher() {
+diff --git openjdk.orig/hotspot/src/share/vm/opto/runtime.cpp openjdk/hotspot/src/share/vm/opto/runtime.cpp
+--- openjdk.orig/hotspot/src/share/vm/opto/runtime.cpp
++++ openjdk/hotspot/src/share/vm/opto/runtime.cpp
+@@ -1541,11 +1541,11 @@
+   }
+   NamedCounter* c;
+   if (tag == NamedCounter::BiasedLockingCounter) {
+-    c = new BiasedLockingNamedCounter(strdup(st.as_string()));
++    c = new BiasedLockingNamedCounter(st.as_string());
+   } else if (tag == NamedCounter::RTMLockingCounter) {
+-    c = new RTMLockingNamedCounter(strdup(st.as_string()));
++    c = new RTMLockingNamedCounter(st.as_string());
+   } else {
+-    c = new NamedCounter(strdup(st.as_string()), tag);
++    c = new NamedCounter(st.as_string(), tag);
+   }
+ 
+   // atomically add the new counter to the head of the list.  We only
+diff --git openjdk.orig/hotspot/src/share/vm/opto/runtime.hpp openjdk/hotspot/src/share/vm/opto/runtime.hpp
+--- openjdk.orig/hotspot/src/share/vm/opto/runtime.hpp
++++ openjdk/hotspot/src/share/vm/opto/runtime.hpp
+@@ -74,11 +74,17 @@
+ 
+  public:
+   NamedCounter(const char *n, CounterTag tag = NoTag):
+-    _name(n),
++    _name(n == NULL ? NULL : os::strdup(n)),
+     _count(0),
+     _next(NULL),
+     _tag(tag) {}
+ 
++  ~NamedCounter() {
++    if (_name != NULL) {
++      os::free((void*)_name);
++    }
++  }
++
+   const char * name() const     { return _name; }
+   int count() const             { return _count; }
+   address addr()                { return (address)&_count; }
+diff --git 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
++++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp
+@@ -796,7 +796,7 @@
+   } else {
+     *bldarray = REALLOC_C_HEAP_ARRAY(char*, *bldarray, new_count, mtInternal);
+   }
+-  (*bldarray)[*count] = strdup(arg);
++  (*bldarray)[*count] = os::strdup_check_oom(arg);
+   *count = new_count;
+ }
+ 
+@@ -2055,7 +2055,7 @@
+ }
+ 
+ void Arguments::process_java_launcher_argument(const char* launcher, void* extra_info) {
+-  _sun_java_launcher = strdup(launcher);
++  _sun_java_launcher = os::strdup_check_oom(launcher);
+   if (strcmp("gamma", _sun_java_launcher) == 0) {
+     _created_by_gamma_launcher = true;
+   }
+@@ -3200,7 +3200,7 @@
+       // Redirect GC output to the file. -Xloggc:<filename>
+       // ostream_init_log(), when called will use this filename
+       // to initialize a fileStream.
+-      _gc_log_filename = strdup(tail);
++      _gc_log_filename = os::strdup_check_oom(tail);
+      if (!is_filename_valid(_gc_log_filename)) {
+        jio_fprintf(defaultStream::output_stream(),
+                   "Invalid file name for use with -Xloggc: Filename can only contain the "
+diff --git openjdk.orig/hotspot/src/share/vm/runtime/fprofiler.cpp openjdk/hotspot/src/share/vm/runtime/fprofiler.cpp
+--- openjdk.orig/hotspot/src/share/vm/runtime/fprofiler.cpp
++++ openjdk/hotspot/src/share/vm/runtime/fprofiler.cpp
+@@ -628,10 +628,16 @@
+   }
+ 
+   vmNode(const char* name, const TickPosition where) : ProfilerNode() {
+-    _name = name;
++    _name = os::strdup(name);
+     update(where);
+   }
+ 
++  ~vmNode() {
++    if (_name != NULL) {
++      os::free((void*)_name);
++    }
++  }
++
+   const char *name()    const { return _name; }
+   bool is_compiled()    const { return true; }
+ 
+@@ -783,7 +789,7 @@
+   assert(index >= 0, "Must be positive");
+   // Note that we call strdup below since the symbol may be resource allocated
+   if (!table[index]) {
+-    table[index] = new (this) vmNode(os::strdup(name), where);
++    table[index] = new (this) vmNode(name, where);
+   } else {
+     ProfilerNode* prev = table[index];
+     for(ProfilerNode* node = prev; node; node = node->next()) {
+@@ -793,7 +799,7 @@
+       }
+       prev = node;
+     }
+-    prev->set_next(new (this) vmNode(os::strdup(name), where));
++    prev->set_next(new (this) vmNode(name, where));
+   }
+ }
+ 
+diff --git openjdk.orig/hotspot/src/share/vm/runtime/os.cpp openjdk/hotspot/src/share/vm/runtime/os.cpp
+--- openjdk.orig/hotspot/src/share/vm/runtime/os.cpp
++++ openjdk/hotspot/src/share/vm/runtime/os.cpp
+@@ -542,6 +542,14 @@
+ }
+ 
+ 
++char* os::strdup_check_oom(const char* str, MEMFLAGS flags) {
++  char* p = os::strdup(str, flags);
++  if (p == NULL) {
++    vm_exit_out_of_memory(strlen(str) + 1, OOM_MALLOC_ERROR, "os::strdup_check_oom");
++  }
++  return p;
++}
++
+ 
+ #define paranoid                 0  /* only set to 1 if you suspect checking code has bug */
+ 
+diff --git openjdk.orig/hotspot/src/share/vm/runtime/os.hpp openjdk/hotspot/src/share/vm/runtime/os.hpp
+--- openjdk.orig/hotspot/src/share/vm/runtime/os.hpp
++++ openjdk/hotspot/src/share/vm/runtime/os.hpp
+@@ -717,6 +717,8 @@
+   static void  free    (void *memblock, MEMFLAGS flags = mtNone);
+   static bool  check_heap(bool force = false);      // verify C heap integrity
+   static char* strdup(const char *, MEMFLAGS flags = mtInternal);  // Like strdup
++  // Like strdup, but exit VM when strdup() returns NULL
++  static char* strdup_check_oom(const char*, MEMFLAGS flags = mtInternal);
+ 
+ #ifndef PRODUCT
+   static julong num_mallocs;         // # of calls to malloc/realloc
+diff --git openjdk.orig/hotspot/src/share/vm/runtime/vmStructs.cpp openjdk/hotspot/src/share/vm/runtime/vmStructs.cpp
+--- openjdk.orig/hotspot/src/share/vm/runtime/vmStructs.cpp
++++ openjdk/hotspot/src/share/vm/runtime/vmStructs.cpp
+@@ -51,6 +51,7 @@
+ #include "interpreter/bytecodes.hpp"
+ #include "interpreter/interpreter.hpp"
+ #include "memory/allocation.hpp"
++#include "memory/allocation.inline.hpp"
+ #include "memory/cardTableRS.hpp"
+ #include "memory/defNewGeneration.hpp"
+ #include "memory/freeBlockDictionary.hpp"
+@@ -92,6 +93,7 @@
+ #include "runtime/globals.hpp"
+ #include "runtime/java.hpp"
+ #include "runtime/javaCalls.hpp"
++#include "runtime/os.hpp"
+ #include "runtime/perfMemory.hpp"
+ #include "runtime/serviceThread.hpp"
+ #include "runtime/sharedRuntime.hpp"
+@@ -3301,14 +3303,14 @@
+     }
+   }
+   if (strstr(typeName, " const") == typeName + len - 6) {
+-    char * s = strdup(typeName);
++    char * s = os::strdup_check_oom(typeName);
+     s[len - 6] = '\0';
+     // tty->print_cr("checking \"%s\" for \"%s\"", s, typeName);
+     if (recursiveFindType(origtypes, s, true) == 1) {
+-      free(s);
++      os::free(s);
+       return 1;
+     }
+-    free(s);
++    os::free(s);
+   }
+   if (!isRecurse) {
+     tty->print_cr("type \"%s\" not found", typeName);
+diff --git openjdk.orig/hotspot/src/share/vm/services/management.cpp openjdk/hotspot/src/share/vm/services/management.cpp
+--- openjdk.orig/hotspot/src/share/vm/services/management.cpp
++++ openjdk/hotspot/src/share/vm/services/management.cpp
+@@ -1793,7 +1793,7 @@
+   ResourceMark rm(THREAD); // thread->name() uses ResourceArea
+ 
+   assert(thread->name() != NULL, "All threads should have a name");
+-  _names_chars[_count] = strdup(thread->name());
++  _names_chars[_count] = os::strdup(thread->name());
+   _times->long_at_put(_count, os::is_thread_cpu_time_supported() ?
+                         os::thread_cpu_time(thread) : -1);
+   _count++;
+@@ -1811,7 +1811,7 @@
+ 
+ ThreadTimesClosure::~ThreadTimesClosure() {
+   for (int i = 0; i < _count; i++) {
+-    free(_names_chars[i]);
++    os::free(_names_chars[i]);
+   }
+   FREE_C_HEAP_ARRAY(char *, _names_chars, mtInternal);
+ }
+diff --git openjdk.orig/hotspot/src/share/vm/shark/sharkBuilder.cpp openjdk/hotspot/src/share/vm/shark/sharkBuilder.cpp
+--- openjdk.orig/hotspot/src/share/vm/shark/sharkBuilder.cpp
++++ openjdk/hotspot/src/share/vm/shark/sharkBuilder.cpp
+@@ -413,7 +413,7 @@
+   const char *name;
+   if (value->hasName())
+     // XXX this leaks, but it's only debug code
+-    name = strdup(value->getName().str().c_str());
++    name = os::strdup(value->getName().str().c_str());
+   else
+     name = "unnamed_value";
+ 
--- a/patches/hotspot/aarch32/8064786-pr3601.patch	Thu Jul 18 02:38:52 2019 +0100
+++ b/patches/hotspot/aarch32/8064786-pr3601.patch	Thu Jul 18 11:12:47 2019 +0100
@@ -1,1 +1,28 @@
-../shenandoah/8064786-pr3601.patch
\ No newline at end of file
+# HG changeset patch
+# User goetz
+# Date 1415873641 -3600
+#      Thu Nov 13 11:14:01 2014 +0100
+# Node ID 30520d5018b509b0ae68f5fcc9a5c540e3e5b2de
+# Parent  533473c67de6ff767710594639033c8e83523fe5
+8064786, PR3601: Fix debug build after 8062808: Turn on the -Wreturn-type warning
+Reviewed-by: stefank, tschatzl
+
+diff --git openjdk.orig/hotspot/src/share/vm/prims/jni.cpp openjdk/hotspot/src/share/vm/prims/jni.cpp
+--- openjdk.orig/hotspot/src/share/vm/prims/jni.cpp
++++ openjdk/hotspot/src/share/vm/prims/jni.cpp
+@@ -708,6 +708,7 @@
+ 
+   THROW_OOP_(JNIHandles::resolve(obj), JNI_OK);
+   ShouldNotReachHere();
++  return 0;  // Mute compiler.
+ JNI_END
+ 
+ #ifndef USDT2
+@@ -734,6 +735,7 @@
+   Handle protection_domain (THREAD, k->protection_domain());
+   THROW_MSG_LOADER_(name, (char *)message, class_loader, protection_domain, JNI_OK);
+   ShouldNotReachHere();
++  return 0;  // Mute compiler.
+ JNI_END
+ 
+ 
--- a/patches/hotspot/aarch32/8141570-pr3548.patch	Thu Jul 18 02:38:52 2019 +0100
+++ b/patches/hotspot/aarch32/8141570-pr3548.patch	Thu Jul 18 11:12:47 2019 +0100
@@ -1,1 +1,55 @@
-../shenandoah/8141570-pr3548.patch
\ No newline at end of file
+# HG changeset patch
+# User coleenp
+# Date 1525713256 -3600
+#      Mon May 07 18:14:16 2018 +0100
+# Node ID bcbc64dfb629c5f188bbf59b8f986ad95963ed60
+# Parent  07a1135a327362f157955d470fad5df07cc35164
+8141570, PR3548: Fix Zero interpreter build for --disable-precompiled-headers
+Summary: change to include atomic.inline.hpp and allocation.inline.hpp only in .cpp files and some build fixes from Kim to build on ubuntu without devkits
+Reviewed-by: kbarrett, sgehwolf, erikj
+
+diff --git openjdk.orig/hotspot/make/linux/makefiles/zeroshark.make openjdk/hotspot/make/linux/makefiles/zeroshark.make
+--- openjdk.orig/hotspot/make/linux/makefiles/zeroshark.make
++++ openjdk/hotspot/make/linux/makefiles/zeroshark.make
+@@ -1,5 +1,5 @@
+ #
+-# Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved.
++# Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
+ # Copyright 2007, 2008 Red Hat, Inc.
+ # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ #
+@@ -25,8 +25,15 @@
+ 
+ # Setup common to Zero (non-Shark) and Shark versions of VM
+ 
+-# override this from the main file because some version of llvm do not like -Wundef
+-WARNING_FLAGS = -Wpointer-arith -Wsign-compare -Wunused-function -Wunused-value
++# Some versions of llvm do not like -Wundef
++ifeq ($(USE_CLANG), true)
++  WARNING_FLAGS += -Wno-undef
++endif
++# Suppress some warning flags that are normally turned on for hotspot,
++# because some of the zero code has not been updated accordingly.
++WARNING_FLAGS += -Wno-return-type \
++  -Wno-format-nonliteral -Wno-format-security \
++  -Wno-maybe-uninitialized
+ 
+ # The copied fdlibm routines in sharedRuntimeTrig.o must not be optimized
+ OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT)
+@@ -42,5 +49,3 @@
+ ifeq ($(ARCH_DATA_MODEL), 64)
+   CFLAGS += -D_LP64=1
+ endif
+-
+-OPT_CFLAGS/compactingPermGenGen.o = -O1
+diff --git openjdk.orig/hotspot/src/share/vm/runtime/java.cpp openjdk/hotspot/src/share/vm/runtime/java.cpp
+--- openjdk.orig/hotspot/src/share/vm/runtime/java.cpp
++++ openjdk/hotspot/src/share/vm/runtime/java.cpp
+@@ -45,6 +45,7 @@
+ #include "runtime/arguments.hpp"
+ #include "runtime/biasedLocking.hpp"
+ #include "runtime/compilationPolicy.hpp"
++#include "runtime/deoptimization.hpp"
+ #include "runtime/fprofiler.hpp"
+ #include "runtime/init.hpp"
+ #include "runtime/interfaceSupport.hpp"
--- a/patches/hotspot/aarch32/8143245-pr3548.patch	Thu Jul 18 02:38:52 2019 +0100
+++ b/patches/hotspot/aarch32/8143245-pr3548.patch	Thu Jul 18 11:12:47 2019 +0100
@@ -1,1 +1,146 @@
-../shenandoah/8143245-pr3548.patch
\ No newline at end of file
+# HG changeset patch
+# User sgehwolf
+# Date 1525714161 -3600
+#      Mon May 07 18:29:21 2018 +0100
+# Node ID afb31413c73cbc06420fdb447aa90a7a38258904
+# Parent  bcbc64dfb629c5f188bbf59b8f986ad95963ed60
+8143245, PR3548: Zero build requires disabled warnings
+Reviewed-by: dholmes, coleenp
+
+diff -Nru openjdk.orig/hotspot/make/linux/makefiles/zeroshark.make openjdk/hotspot/make/linux/makefiles/zeroshark.make
+--- openjdk.orig/hotspot/make/linux/makefiles/zeroshark.make	2019-01-29 19:24:20.912427991 +0000
++++ openjdk/hotspot/make/linux/makefiles/zeroshark.make	2019-01-29 19:28:51.204181986 +0000
+@@ -1,5 +1,5 @@
+ #
+-# Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
++# Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
+ # Copyright 2007, 2008 Red Hat, Inc.
+ # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ #
+@@ -29,11 +29,6 @@
+ ifeq ($(USE_CLANG), true)
+   WARNING_FLAGS += -Wno-undef
+ endif
+-# Suppress some warning flags that are normally turned on for hotspot,
+-# because some of the zero code has not been updated accordingly.
+-WARNING_FLAGS += -Wno-return-type \
+-  -Wno-format-nonliteral -Wno-format-security \
+-  -Wno-maybe-uninitialized
+ 
+ # The copied fdlibm routines in sharedRuntimeTrig.o must not be optimized
+ OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT)
+diff -Nru openjdk.orig/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
+--- openjdk.orig/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp	2019-01-16 07:13:59.000000000 +0000
++++ openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp	2019-01-29 19:28:51.208181923 +0000
+@@ -100,7 +100,7 @@
+     case T_DOUBLE:
+     case T_VOID:
+       return result;
+-    default  : ShouldNotReachHere();
++    default  : ShouldNotReachHere(); return NULL_WORD;
+   }
+ }
+ 
+diff -Nru openjdk.orig/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp openjdk/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp
+--- openjdk.orig/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp	2019-01-16 07:13:59.000000000 +0000
++++ openjdk/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp	2019-01-29 19:28:51.208181923 +0000
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
+  * Copyright 2007, 2008, 2010 Red Hat, Inc.
+  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+  *
+@@ -62,7 +62,7 @@
+ }
+ 
+ void InterpreterRuntime::SignatureHandlerGeneratorBase::push(BasicType type) {
+-  ffi_type *ftype;
++  ffi_type *ftype = NULL;
+   switch (type) {
+   case T_VOID:
+     ftype = &ffi_type_void;
+diff -Nru openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
+--- openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp	2019-01-16 07:13:59.000000000 +0000
++++ openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp	2019-01-29 19:29:06.931934919 +0000
+@@ -1,6 +1,6 @@
+ /*
+  * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+- * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc.
++ * Copyright 2016 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
+@@ -61,6 +61,7 @@
+ 
+ frame os::get_sender_for_C_frame(frame* fr) {
+   ShouldNotCallThis();
++  return frame(NULL, NULL); // silence compile warning.
+ }
+ 
+ frame os::current_frame() {
+@@ -98,16 +99,19 @@
+ 
+ address os::Linux::ucontext_get_pc(ucontext_t* uc) {
+   ShouldNotCallThis();
++  return NULL; // silence compile warnings
+ }
+ 
+ ExtendedPC os::fetch_frame_from_context(void* ucVoid,
+                                         intptr_t** ret_sp,
+                                         intptr_t** ret_fp) {
+   ShouldNotCallThis();
++  return NULL; // silence compile warnings
+ }
+ 
+ frame os::fetch_frame_from_context(void* ucVoid) {
+   ShouldNotCallThis();
++  return frame(NULL, NULL); // silence compile warnings
+ }
+ 
+ extern "C" JNIEXPORT int
+@@ -247,11 +251,16 @@
+   }
+ #endif // !PRODUCT
+ 
+-  const char *fmt = "caught unhandled signal %d";
+   char buf[64];
+ 
+-  sprintf(buf, fmt, sig);
++  sprintf(buf, "caught unhandled signal %d", sig);
++
++// Silence -Wformat-security warning for fatal()
++PRAGMA_DIAG_PUSH
++PRAGMA_FORMAT_NONLITERAL_IGNORED
+   fatal(buf);
++PRAGMA_DIAG_POP
++  return true; // silence compiler warnings
+ }
+ 
+ void os::Linux::init_thread_fpu_state(void) {
+@@ -260,6 +269,7 @@
+ 
+ int os::Linux::get_fpu_control_word() {
+   ShouldNotCallThis();
++  return -1; // silence compile warnings
+ }
+ 
+ void os::Linux::set_fpu_control_word(int fpu) {
+diff -Nru openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp openjdk/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp
+--- openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp	2019-01-16 07:13:59.000000000 +0000
++++ openjdk/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp	2019-01-29 19:28:51.208181923 +0000
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
+  * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc.
+  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+  *
+@@ -110,6 +110,7 @@
+                                            void* ucontext,
+                                            bool isInJava) {
+     ShouldNotCallThis();
++    return false; // silence compile warning
+   }
+ 
+   // These routines are only used on cpu architectures that
--- a/patches/hotspot/shenandoah/8064786-pr3601.patch	Thu Jul 18 02:38:52 2019 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-# HG changeset patch
-# User goetz
-# Date 1415873641 -3600
-#      Thu Nov 13 11:14:01 2014 +0100
-# Node ID 30520d5018b509b0ae68f5fcc9a5c540e3e5b2de
-# Parent  533473c67de6ff767710594639033c8e83523fe5
-8064786, PR3601: Fix debug build after 8062808: Turn on the -Wreturn-type warning
-Reviewed-by: stefank, tschatzl
-
-diff --git openjdk.orig/hotspot/src/share/vm/prims/jni.cpp openjdk/hotspot/src/share/vm/prims/jni.cpp
---- openjdk.orig/hotspot/src/share/vm/prims/jni.cpp
-+++ openjdk/hotspot/src/share/vm/prims/jni.cpp
-@@ -708,6 +708,7 @@
- 
-   THROW_OOP_(JNIHandles::resolve(obj), JNI_OK);
-   ShouldNotReachHere();
-+  return 0;  // Mute compiler.
- JNI_END
- 
- #ifndef USDT2
-@@ -734,6 +735,7 @@
-   Handle protection_domain (THREAD, k->protection_domain());
-   THROW_MSG_LOADER_(name, (char *)message, class_loader, protection_domain, JNI_OK);
-   ShouldNotReachHere();
-+  return 0;  // Mute compiler.
- JNI_END
- 
- 
--- a/patches/hotspot/shenandoah/8141570-pr3548.patch	Thu Jul 18 02:38:52 2019 +0100
+++ b/patches/hotspot/shenandoah/8141570-pr3548.patch	Thu Jul 18 11:12:47 2019 +0100
@@ -8,9 +8,9 @@
 Summary: change to include atomic.inline.hpp and allocation.inline.hpp only in .cpp files and some build fixes from Kim to build on ubuntu without devkits
 Reviewed-by: kbarrett, sgehwolf, erikj
 
-diff --git openjdk.orig/hotspot/make/linux/makefiles/zeroshark.make openjdk/hotspot/make/linux/makefiles/zeroshark.make
---- openjdk.orig/hotspot/make/linux/makefiles/zeroshark.make
-+++ openjdk/hotspot/make/linux/makefiles/zeroshark.make
+diff -Nru openjdk.orig/hotspot/make/linux/makefiles/zeroshark.make openjdk/hotspot/make/linux/makefiles/zeroshark.make
+--- openjdk.orig/hotspot/make/linux/makefiles/zeroshark.make	2019-07-11 03:20:53.000000000 +0100
++++ openjdk/hotspot/make/linux/makefiles/zeroshark.make	2019-07-18 02:59:04.550133133 +0100
 @@ -1,5 +1,5 @@
  #
 -# Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved.
@@ -34,17 +34,17 @@
 +  -Wno-format-nonliteral -Wno-format-security \
 +  -Wno-maybe-uninitialized
  
- # The copied fdlibm routines in sharedRuntimeTrig.o must not be optimized
- OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT)
-@@ -42,5 +49,3 @@
+ # If FDLIBM_CFLAGS is non-empty it holds CFLAGS needed to be passed to
+ # the compiler so as to be able to produce optimized objects
+@@ -48,5 +55,3 @@
  ifeq ($(ARCH_DATA_MODEL), 64)
    CFLAGS += -D_LP64=1
  endif
 -
 -OPT_CFLAGS/compactingPermGenGen.o = -O1
-diff --git openjdk.orig/hotspot/src/share/vm/runtime/java.cpp openjdk/hotspot/src/share/vm/runtime/java.cpp
---- openjdk.orig/hotspot/src/share/vm/runtime/java.cpp
-+++ openjdk/hotspot/src/share/vm/runtime/java.cpp
+diff -Nru openjdk.orig/hotspot/src/share/vm/runtime/java.cpp openjdk/hotspot/src/share/vm/runtime/java.cpp
+--- openjdk.orig/hotspot/src/share/vm/runtime/java.cpp	2019-07-11 03:20:53.000000000 +0100
++++ openjdk/hotspot/src/share/vm/runtime/java.cpp	2019-07-18 02:58:37.142553196 +0100
 @@ -45,6 +45,7 @@
  #include "runtime/arguments.hpp"
  #include "runtime/biasedLocking.hpp"
--- a/patches/hotspot/shenandoah/8143245-pr3548.patch	Thu Jul 18 02:38:52 2019 +0100
+++ b/patches/hotspot/shenandoah/8143245-pr3548.patch	Thu Jul 18 11:12:47 2019 +0100
@@ -8,8 +8,8 @@
 Reviewed-by: dholmes, coleenp
 
 diff -Nru openjdk.orig/hotspot/make/linux/makefiles/zeroshark.make openjdk/hotspot/make/linux/makefiles/zeroshark.make
---- openjdk.orig/hotspot/make/linux/makefiles/zeroshark.make	2019-01-29 19:24:20.912427991 +0000
-+++ openjdk/hotspot/make/linux/makefiles/zeroshark.make	2019-01-29 19:28:51.204181986 +0000
+--- openjdk.orig/hotspot/make/linux/makefiles/zeroshark.make	2019-07-18 03:01:29.631909551 +0100
++++ openjdk/hotspot/make/linux/makefiles/zeroshark.make	2019-07-18 03:06:00.171763146 +0100
 @@ -1,5 +1,5 @@
  #
 -# Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
@@ -27,11 +27,11 @@
 -  -Wno-format-nonliteral -Wno-format-security \
 -  -Wno-maybe-uninitialized
  
- # The copied fdlibm routines in sharedRuntimeTrig.o must not be optimized
- OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT)
+ # If FDLIBM_CFLAGS is non-empty it holds CFLAGS needed to be passed to
+ # the compiler so as to be able to produce optimized objects
 diff -Nru openjdk.orig/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
---- openjdk.orig/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp	2019-01-16 07:13:59.000000000 +0000
-+++ openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp	2019-01-29 19:28:51.208181923 +0000
+--- openjdk.orig/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp	2019-07-11 03:20:53.000000000 +0100
++++ openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp	2019-07-18 03:05:46.751968822 +0100
 @@ -100,7 +100,7 @@
      case T_DOUBLE:
      case T_VOID:
@@ -42,8 +42,8 @@
  }
  
 diff -Nru openjdk.orig/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp openjdk/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp
---- openjdk.orig/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp	2019-01-16 07:13:59.000000000 +0000
-+++ openjdk/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp	2019-01-29 19:28:51.208181923 +0000
+--- openjdk.orig/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp	2019-07-11 03:20:53.000000000 +0100
++++ openjdk/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp	2019-07-18 03:05:46.751968822 +0100
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
@@ -61,8 +61,8 @@
    case T_VOID:
      ftype = &ffi_type_void;
 diff -Nru openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
---- openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp	2019-01-16 07:13:59.000000000 +0000
-+++ openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp	2019-01-29 19:29:06.931934919 +0000
+--- openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp	2019-07-11 03:20:53.000000000 +0100
++++ openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp	2019-07-18 03:05:46.751968822 +0100
 @@ -1,6 +1,6 @@
  /*
   * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
@@ -127,8 +127,8 @@
  
  void os::Linux::set_fpu_control_word(int fpu) {
 diff -Nru openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp openjdk/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp
---- openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp	2019-01-16 07:13:59.000000000 +0000
-+++ openjdk/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp	2019-01-29 19:28:51.208181923 +0000
+--- openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp	2019-07-11 03:20:53.000000000 +0100
++++ openjdk/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp	2019-07-18 03:05:46.751968822 +0100
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.