changeset 2924:6879be7790c8

Bump shenandoah to aarch64-shenandoah-jdk8u232-b01 Upstream changes: - S8075136: Unnecessary sign extension for byte array access - S8152856: Xcode 7.3 -Wshift-negative-value compile failure on Mac OS X - S8185900: hotspot build failed with gcc version Red Hat 4.4.7-3 - S8185979: PPC64: Implement SHA2 intrinsic - S8202353: os::readdir should use readdir instead of readdir_r - S8210761: libjsig is being compiled without optimization - S8218721: C1's CEE optimization produces safepoint poll with invalid debug information - S8219807: C2 crash in IfNode::up_one_dom(Node*, bool) - S8225636: SA can't handle prelinked libraries - S8228405: Incorrect format strings in PhaseIdealLoop::rc_predicate - S8228406: Superfluous change in chaitin.hpp ChangeLog: 2019-08-20 Andrew John Hughes <gnu_andrew@member.fsf.org> Bump shenandoah to aarch64-shenandoah-jdk8u232-b01 * patches/hotspot/shenandoah/8187667-pr3517-readdir_r.patch, * patches/hotspot/shenandoah/8196978-pr3517-gcc_4_pragmas.patch: Removed as readdir_r issue was fixed upstream in 8u232-b01. * Makefile.am: (ICEDTEA_PATCHES): Move above readdir_r patches to AArch32-only section. * NEWS: Updated. * hotspot.map.in: Bump shenandoah to aarch64-shenandoah-jdk8u232-b01. * patches/hotspot/aarch32/6424123-pr3696.patch: Replace symlink with a copy of the Shenandoah version, so the Shenandoah one can be updated for 8u232-b01. * patches/hotspot/aarch32/8187667-pr3517-readdir_r.patch, * patches/hotspot/aarch32/8196978-pr3517-gcc_4_pragmas.patch: Replace symlinks with copies as these patches have been removed for Shenandoah. * patches/hotspot/aarch32/pr1368.patch: Replace symlink with a copy of the Shenandoah version, so the Shenandoah one can be updated for 8u232-b01. * patches/hotspot/shenandoah/6424123-pr3696.patch: Fix context in vm_version_ppc.cpp altered by "8185979: PPC64: Implement SHA2 intrinsic" * patches/hotspot/shenandoah/8158260-pr2991-rh1341258.patch: Alter placement of new flag in vm_version_ppc.cpp so it is no longer affected by 8185979. * patches/hotspot/shenandoah/pr1368.patch: Fix context in jsig.make files for each platform as "8210761: libjsig is being compiled without optimization" changed them.
author Andrew John Hughes <gnu_andrew@member.fsf.org>
date Mon, 26 Aug 2019 19:26:15 +0100
parents 24442d0a377d
children 3b2c386a649a
files ChangeLog Makefile.am NEWS hotspot.map.in patches/hotspot/aarch32/6424123-pr3696.patch patches/hotspot/aarch32/8187667-pr3517-readdir_r.patch patches/hotspot/aarch32/8196978-pr3517-gcc_4_pragmas.patch patches/hotspot/aarch32/pr1368.patch patches/hotspot/shenandoah/6424123-pr3696.patch patches/hotspot/shenandoah/8158260-pr2991-rh1341258.patch patches/hotspot/shenandoah/8187667-pr3517-readdir_r.patch patches/hotspot/shenandoah/8196978-pr3517-gcc_4_pragmas.patch patches/hotspot/shenandoah/pr1368.patch
diffstat 13 files changed, 1188 insertions(+), 183 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Wed Aug 14 18:35:23 2019 +0100
+++ b/ChangeLog	Mon Aug 26 19:26:15 2019 +0100
@@ -1,3 +1,36 @@
+2019-08-20  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+	Bump shenandoah to aarch64-shenandoah-jdk8u232-b01
+	* patches/hotspot/shenandoah/8187667-pr3517-readdir_r.patch,
+	* patches/hotspot/shenandoah/8196978-pr3517-gcc_4_pragmas.patch:
+	Removed as readdir_r issue was fixed upstream in 8u232-b01.
+	* Makefile.am:
+	(ICEDTEA_PATCHES): Move above readdir_r patches to AArch32-only
+	section.
+	* NEWS: Updated.
+	* hotspot.map.in: Bump shenandoah to
+	aarch64-shenandoah-jdk8u232-b01.
+	* patches/hotspot/aarch32/6424123-pr3696.patch:
+	Replace symlink with a copy of the Shenandoah version, so the
+	Shenandoah one can be updated for 8u232-b01.
+	* patches/hotspot/aarch32/8187667-pr3517-readdir_r.patch,
+	* patches/hotspot/aarch32/8196978-pr3517-gcc_4_pragmas.patch:
+	Replace symlinks with copies as these patches have been removed
+	for Shenandoah.
+	* patches/hotspot/aarch32/pr1368.patch:
+	Replace symlink with a copy of the Shenandoah version, so the
+	Shenandoah one can be updated for 8u232-b01.
+	* patches/hotspot/shenandoah/6424123-pr3696.patch:
+	Fix context in vm_version_ppc.cpp altered by
+	"8185979: PPC64: Implement SHA2 intrinsic"
+	* patches/hotspot/shenandoah/8158260-pr2991-rh1341258.patch:
+	Alter placement of new flag in vm_version_ppc.cpp so it
+	is no longer affected by 8185979.
+	* patches/hotspot/shenandoah/pr1368.patch:
+	Fix context in jsig.make files for each platform as
+	"8210761: libjsig is being compiled without optimization"
+	changed them.
+
 2019-05-09  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
 	Start 3.14.0 release cycle.
--- a/Makefile.am	Wed Aug 14 18:35:23 2019 +0100
+++ b/Makefile.am	Mon Aug 26 19:26:15 2019 +0100
@@ -351,6 +351,8 @@
 ICEDTEA_PATCHES += \
 	patches/hotspot/$(HSBUILD)/pr3548-aarch32.patch \
 	patches/hotspot/$(HSBUILD)/8078628-pr3208.patch \
+	patches/hotspot/$(HSBUILD)/8187667-pr3517-readdir_r.patch \
+	patches/hotspot/$(HSBUILD)/8196978-pr3517-gcc_4_pragmas.patch \
 	patches/hotspot/$(HSBUILD)/8223511.patch
 endif
 
@@ -369,8 +371,6 @@
 	patches/hotspot/$(HSBUILD)/pr2777.patch \
 	patches/hotspot/$(HSBUILD)/werror.patch \
 	patches/hotspot/$(HSBUILD)/8043780-pr3368.patch \
-	patches/hotspot/$(HSBUILD)/8187667-pr3517-readdir_r.patch \
-	patches/hotspot/$(HSBUILD)/8196978-pr3517-gcc_4_pragmas.patch \
 	patches/hotspot/$(HSBUILD)/8062808-pr3548.patch \
 	patches/hotspot/$(HSBUILD)/8141570-pr3548.patch \
 	patches/hotspot/$(HSBUILD)/8143245-pr3548.patch \
--- a/NEWS	Wed Aug 14 18:35:23 2019 +0100
+++ b/NEWS	Mon Aug 26 19:26:15 2019 +0100
@@ -12,6 +12,19 @@
 
 New in release 3.14.0 (2019-10-XX):
 
+* Shenandoah
+  - S8075136: Unnecessary sign extension for byte array access
+  - S8152856: Xcode 7.3 -Wshift-negative-value compile failure on Mac OS X
+  - S8185900: hotspot build failed with gcc version Red Hat 4.4.7-3
+  - S8185979: PPC64: Implement SHA2 intrinsic
+  - S8202353: os::readdir should use readdir instead of readdir_r
+  - S8210761: libjsig is being compiled without optimization
+  - S8218721: C1's CEE optimization produces safepoint poll with invalid debug information
+  - S8219807: C2 crash in IfNode::up_one_dom(Node*, bool)
+  - S8225636: SA can't handle prelinked libraries
+  - S8228405: Incorrect format strings in PhaseIdealLoop::rc_predicate
+  - S8228406: Superfluous change in chaitin.hpp
+
 New in release 3.13.0 (2019-07-18):
 
 * Security fixes
--- a/hotspot.map.in	Wed Aug 14 18:35:23 2019 +0100
+++ b/hotspot.map.in	Mon Aug 26 19:26:15 2019 +0100
@@ -1,4 +1,4 @@
 # version type(drop/hg) url changeset sha256sum
 default drop https://icedtea.classpath.org/download/drops/icedtea8/@ICEDTEA_RELEASE@ ab8fadcbbde6 29592d513662e853f3156a7afb961eb805f92ea731469bbe1e9812365f573372
-shenandoah drop https://icedtea.classpath.org/download/drops/icedtea8/@ICEDTEA_RELEASE@ ff69edbcd7ae 8a0708427aa38b75007f8e2cd663c475aa6de0c0aa7de1bfb245ba93115ef5ba
+shenandoah drop https://icedtea.classpath.org/download/drops/icedtea8/@ICEDTEA_RELEASE@ eaa9fc3d8b61 bf157a6e7261343042b56b7e767c706b1da0168f040bdb4d59e3aa85c367bd6f
 aarch32 drop https://icedtea.classpath.org/download/drops/icedtea8/@ICEDTEA_RELEASE@ 26d64a5c4b9a 68816570a5953d9b04f9b8b15f53f47f2ef4ea76bc16f9935bd94cebc07679c8
--- a/patches/hotspot/aarch32/6424123-pr3696.patch	Wed Aug 14 18:35:23 2019 +0100
+++ b/patches/hotspot/aarch32/6424123-pr3696.patch	Mon Aug 26 19:26:15 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 -Nru 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	2019-05-24 18:37:52.434845994 +0100
++++ openjdk/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp	2019-05-24 18:40:20.600564335 +0100
+@@ -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"
+@@ -127,7 +128,7 @@
+                (has_vsx()     ? " vsx"     : "")
+                // Make sure number of %s matches num_features!
+               );
+-  _features_str = strdup(buf);
++  _features_str = os::strdup(buf);
+   if (Verbose) {
+     print_features();
+   }
+diff -Nru 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	2019-05-24 18:37:52.434845994 +0100
++++ openjdk/hotspot/src/cpu/sparc/vm/vm_version_sparc.cpp	2019-05-24 18:40:00.480874165 +0100
+@@ -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 -Nru 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	2019-05-24 18:37:52.438845932 +0100
++++ openjdk/hotspot/src/cpu/x86/vm/vm_version_x86.cpp	2019-05-24 18:40:00.484874104 +0100
+@@ -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 -Nru 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	2019-05-02 01:23:49.000000000 +0100
++++ openjdk/hotspot/src/os/aix/vm/os_aix.cpp	2019-05-24 18:40:00.484874104 +0100
+@@ -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 -Nru 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	2019-05-02 01:23:49.000000000 +0100
++++ openjdk/hotspot/src/os/aix/vm/porting_aix.cpp	2019-05-24 18:40:00.484874104 +0100
+@@ -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 -Nru 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	2019-05-02 01:23:49.000000000 +0100
++++ openjdk/hotspot/src/os/windows/vm/perfMemory_windows.cpp	2019-05-24 18:40:00.484874104 +0100
+@@ -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 -Nru 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	2019-05-02 01:23:49.000000000 +0100
++++ openjdk/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp	2019-05-24 18:40:00.484874104 +0100
+@@ -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"
+@@ -883,7 +884,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 -Nru 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	2019-05-02 01:23:49.000000000 +0100
++++ openjdk/hotspot/src/share/vm/classfile/classLoader.cpp	2019-05-24 18:40:00.484874104 +0100
+@@ -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 -Nru 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	2019-05-02 01:23:49.000000000 +0100
++++ openjdk/hotspot/src/share/vm/classfile/classLoader.hpp	2019-05-24 18:40:00.484874104 +0100
+@@ -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 -Nru 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	2019-05-02 01:23:49.000000000 +0100
++++ openjdk/hotspot/src/share/vm/compiler/compilerOracle.cpp	2019-05-24 18:40:00.484874104 +0100
+@@ -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:
+@@ -219,7 +220,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 -Nru 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	2019-05-02 01:23:49.000000000 +0100
++++ openjdk/hotspot/src/share/vm/opto/runtime.cpp	2019-05-24 18:40:00.484874104 +0100
+@@ -1567,11 +1567,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 -Nru 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	2019-05-02 01:23:49.000000000 +0100
++++ openjdk/hotspot/src/share/vm/opto/runtime.hpp	2019-05-24 18:40:00.484874104 +0100
+@@ -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 -Nru 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	2019-05-24 18:37:55.414800103 +0100
++++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp	2019-05-24 18:40:00.484874104 +0100
+@@ -805,7 +805,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;
+ }
+ 
+@@ -2256,7 +2256,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;
+   }
+@@ -3416,7 +3416,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 -Nru 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	2019-05-02 01:23:49.000000000 +0100
++++ openjdk/hotspot/src/share/vm/runtime/fprofiler.cpp	2019-05-24 18:40:00.484874104 +0100
+@@ -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 -Nru 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	2019-05-02 01:23:49.000000000 +0100
++++ openjdk/hotspot/src/share/vm/runtime/os.cpp	2019-05-24 18:40:00.484874104 +0100
+@@ -550,6 +550,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 -Nru 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	2019-05-02 01:23:49.000000000 +0100
++++ openjdk/hotspot/src/share/vm/runtime/os.hpp	2019-05-24 18:40:00.484874104 +0100
+@@ -720,6 +720,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 -Nru 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	2019-05-02 01:23:49.000000000 +0100
++++ openjdk/hotspot/src/share/vm/runtime/vmStructs.cpp	2019-05-24 18:40:00.488874042 +0100
+@@ -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"
+@@ -3328,14 +3330,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 -Nru 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	2019-05-02 01:23:49.000000000 +0100
++++ openjdk/hotspot/src/share/vm/services/management.cpp	2019-05-24 18:40:00.488874042 +0100
+@@ -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 -Nru 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	2019-05-02 01:23:49.000000000 +0100
++++ openjdk/hotspot/src/share/vm/shark/sharkBuilder.cpp	2019-05-24 18:40:00.488874042 +0100
+@@ -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/8187667-pr3517-readdir_r.patch	Wed Aug 14 18:35:23 2019 +0100
+++ b/patches/hotspot/aarch32/8187667-pr3517-readdir_r.patch	Mon Aug 26 19:26:15 2019 +0100
@@ -1,1 +1,33 @@
-../shenandoah/8187667-pr3517-readdir_r.patch
\ No newline at end of file
+# HG changeset patch
+# User ehelin
+# Date 1517861444 0
+#      Mon Feb 05 20:10:44 2018 +0000
+# Node ID 3df435e5c2807c1596d5ff98698b493c82384317
+# Parent  fb479b2ec08dc13d45b22180bc48807d6796b857
+8187667, PR3517: Disable deprecation warning for readdir_r
+Reviewed-by: dholmes, sjohanss
+
+diff --git a/src/os/linux/vm/os_linux.inline.hpp b/src/os/linux/vm/os_linux.inline.hpp
+--- openjdk/hotspot/src/os/linux/vm/os_linux.inline.hpp
++++ openjdk/hotspot/src/os/linux/vm/os_linux.inline.hpp
+@@ -116,6 +116,11 @@
+ 
+ inline struct dirent* os::readdir(DIR* dirp, dirent *dbuf)
+ {
++// readdir_r has been deprecated since glibc 2.24.
++// See https://sourceware.org/bugzilla/show_bug.cgi?id=19056 for more details.
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
++
+   dirent* p;
+   int status;
+   assert(dirp != NULL, "just checking");
+@@ -129,6 +134,8 @@
+     return NULL;
+   } else
+     return p;
++
++#pragma GCC diagnostic pop
+ }
+ 
+ inline int os::closedir(DIR *dirp) {
--- a/patches/hotspot/aarch32/8196978-pr3517-gcc_4_pragmas.patch	Wed Aug 14 18:35:23 2019 +0100
+++ b/patches/hotspot/aarch32/8196978-pr3517-gcc_4_pragmas.patch	Mon Aug 26 19:26:15 2019 +0100
@@ -1,1 +1,40 @@
-../shenandoah/8196978-pr3517-gcc_4_pragmas.patch
\ No newline at end of file
+# HG changeset patch
+# User andrew
+# Date 1518051572 0
+#      Thu Feb 08 00:59:32 2018 +0000
+# Node ID 3ade0115344b77e6d00462044e0cf68722685bfe
+# Parent  3df435e5c2807c1596d5ff98698b493c82384317
+8196978, PR3517: JDK-8187667 fails on GCC 4.4.7 as found on RHEL 6
+Summary: Move pragma to above function definition and turn off push/pop pragma warnings on GCC < 4.6
+Reviewed-by: aph
+
+diff --git a/src/os/linux/vm/os_linux.inline.hpp b/src/os/linux/vm/os_linux.inline.hpp
+--- openjdk/hotspot/src/os/linux/vm/os_linux.inline.hpp
++++ openjdk/hotspot/src/os/linux/vm/os_linux.inline.hpp
+@@ -114,12 +114,12 @@
+   return ::ftruncate64(fd, length);
+ }
+ 
++// readdir_r has been deprecated since glibc 2.24.
++// See https://sourceware.org/bugzilla/show_bug.cgi?id=19056 for more details.
++PRAGMA_DIAG_PUSH
++#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+ inline struct dirent* os::readdir(DIR* dirp, dirent *dbuf)
+ {
+-// readdir_r has been deprecated since glibc 2.24.
+-// See https://sourceware.org/bugzilla/show_bug.cgi?id=19056 for more details.
+-#pragma GCC diagnostic push
+-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+ 
+   dirent* p;
+   int status;
+@@ -135,8 +135,8 @@
+   } else
+     return p;
+ 
+-#pragma GCC diagnostic pop
+ }
++PRAGMA_DIAG_POP
+ 
+ inline int os::closedir(DIR *dirp) {
+   assert(dirp != NULL, "argument is NULL");
--- a/patches/hotspot/aarch32/pr1368.patch	Wed Aug 14 18:35:23 2019 +0100
+++ b/patches/hotspot/aarch32/pr1368.patch	Mon Aug 26 19:26:15 2019 +0100
@@ -1,1 +1,517 @@
-../shenandoah/pr1368.patch
\ No newline at end of file
+# HG changeset patch
+# User andrew
+# Date 1452532602 0
+#      Mon Jan 11 17:16:42 2016 +0000
+# Node ID be477dd4629d2155bde02047cc81ca4f8b657a49
+# Parent  e04f994581e23e89757774cd2033413bc650a831
+PR1368: Ensure debug data is available for all libraries and binaries without redundant files
+
+diff -Nru openjdk.orig/hotspot/make/aix/makefiles/defs.make openjdk/hotspot/make/aix/makefiles/defs.make
+--- openjdk.orig/hotspot/make/aix/makefiles/defs.make	2019-01-16 07:13:59.000000000 +0000
++++ openjdk/hotspot/make/aix/makefiles/defs.make	2019-01-25 14:24:31.999871188 +0000
+@@ -186,12 +186,14 @@
+ # client and server subdirectories have symbolic links to ../libjsig.so
+ EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.$(LIBRARY_SUFFIX)
+ #ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
++#ifneq ($(STRIP_POLICY),no_strip)
+ #  ifeq ($(ZIP_DEBUGINFO_FILES),1)
+ #    EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.diz
+ #  else
+ #    EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.debuginfo
+ #  endif
+ #endif
++#endif
+ EXPORT_SERVER_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/server
+ EXPORT_CLIENT_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/client
+ EXPORT_MINIMAL_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/minimal
+@@ -200,24 +202,28 @@
+   EXPORT_LIST += $(EXPORT_SERVER_DIR)/Xusage.txt
+   EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.$(LIBRARY_SUFFIX)
+ #  ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
++#  ifneq ($(STRIP_POLICY),no_strip)
+ #    ifeq ($(ZIP_DEBUGINFO_FILES),1)
+ #      EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.diz
+ #    else
+ #      EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.debuginfo
+ #    endif
+ #  endif
++#  endif
+ endif
+ 
+ ifeq ($(JVM_VARIANT_CLIENT),true)
+   EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt
+   EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.$(LIBRARY_SUFFIX)
+ #  ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
++#  ifneq ($(STRIP_POLICY),no_strip)
+ #    ifeq ($(ZIP_DEBUGINFO_FILES),1)
+ #      EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.diz
+ #    else
+ #      EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.debuginfo
+ #    endif
+ #  endif
++#  endif
+ endif
+ 
+ # Serviceability Binaries
+diff -Nru openjdk.orig/hotspot/make/aix/makefiles/jsig.make openjdk/hotspot/make/aix/makefiles/jsig.make
+--- openjdk.orig/hotspot/make/aix/makefiles/jsig.make	2019-01-16 07:13:59.000000000 +0000
++++ openjdk/hotspot/make/aix/makefiles/jsig.make	2019-01-25 14:24:31.999871188 +0000
+@@ -60,6 +60,7 @@
+                          $(LFLAGS_JSIG) $(JSIG_DEBUG_CFLAGS) -o $@ $< -ldl
+ 
+ #ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
++#ifneq ($(STRIP_POLICY),no_strip)
+ #	$(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJSIG_DEBUGINFO)
+ #	$(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJSIG_DEBUGINFO) $@
+ #  ifeq ($(STRIP_POLICY),all_strip)
+@@ -75,6 +76,7 @@
+ #	$(RM) $(LIBJSIG_DEBUGINFO)
+ #  endif
+ #endif
++#endif
+ 
+ install_jsig: $(LIBJSIG)
+ 	@echo "Copying $(LIBJSIG) to $(DEST_JSIG)"
+diff -Nru openjdk.orig/hotspot/make/aix/makefiles/saproc.make openjdk/hotspot/make/aix/makefiles/saproc.make
+--- openjdk.orig/hotspot/make/aix/makefiles/saproc.make	2019-01-16 07:13:59.000000000 +0000
++++ openjdk/hotspot/make/aix/makefiles/saproc.make	2019-01-25 14:24:31.999871188 +0000
+@@ -88,8 +88,10 @@
+ 	           -o $@                                                \
+ 	           -lthread_db
+ ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
++  ifneq ($(STRIP_POLICY),no_strip)
+ 	$(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBSAPROC_DEBUGINFO)
+ 	$(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBSAPROC_DEBUGINFO) $@
++  endif
+   ifeq ($(STRIP_POLICY),all_strip)
+ 	$(QUIETLY) $(STRIP) $@
+   else
+@@ -99,8 +101,10 @@
+     endif
+   endif
+   ifeq ($(ZIP_DEBUGINFO_FILES),1)
++    ifneq ($(STRIP_POLICY),no_strip)
+ 	$(ZIPEXE) -q -y $(LIBSAPROC_DIZ) $(LIBSAPROC_DEBUGINFO)
+ 	$(RM) $(LIBSAPROC_DEBUGINFO)
++    endif
+   endif
+ endif
+ 
+diff -Nru openjdk.orig/hotspot/make/aix/makefiles/vm.make openjdk/hotspot/make/aix/makefiles/vm.make
+--- openjdk.orig/hotspot/make/aix/makefiles/vm.make	2019-01-16 07:13:59.000000000 +0000
++++ openjdk/hotspot/make/aix/makefiles/vm.make	2019-01-25 14:24:31.999871188 +0000
+@@ -330,6 +330,7 @@
+ #	}
+ 
+ #ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
++#ifneq ($(STRIP_POLICY),no_strip)
+ #	$(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJVM_DEBUGINFO)
+ #	$(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DEBUGINFO) $@
+ #    ifeq ($(STRIP_POLICY),all_strip)
+@@ -345,6 +346,7 @@
+ #	$(RM) $(LIBJVM_DEBUGINFO)
+ #  endif
+ #endif
++#endif
+ 
+ DEST_SUBDIR        = $(JDK_LIBDIR)/$(VM_SUBDIR)
+ DEST_JVM           = $(DEST_SUBDIR)/$(LIBJVM)
+diff -Nru openjdk.orig/hotspot/make/bsd/makefiles/defs.make openjdk/hotspot/make/bsd/makefiles/defs.make
+--- openjdk.orig/hotspot/make/bsd/makefiles/defs.make	2019-01-16 07:13:59.000000000 +0000
++++ openjdk/hotspot/make/bsd/makefiles/defs.make	2019-01-25 14:24:31.999871188 +0000
+@@ -269,6 +269,7 @@
+ EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.$(LIBRARY_SUFFIX)
+ 
+ ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
++ifneq ($(STRIP_POLICY),no_strip)
+   ifeq ($(ZIP_DEBUGINFO_FILES),1)
+       EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.diz
+   else
+@@ -279,6 +280,7 @@
+     endif
+   endif
+ endif
++endif
+ 
+ EXPORT_SERVER_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/server
+ EXPORT_CLIENT_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/client
+@@ -289,6 +291,7 @@
+   EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.$(LIBRARY_SUFFIX)
+ 
+   ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
++  ifneq ($(STRIP_POLICY),no_strip)
+     ifeq ($(ZIP_DEBUGINFO_FILES),1)
+         EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.diz
+     else
+@@ -299,6 +302,7 @@
+       endif
+     endif
+   endif
++  endif
+ endif
+ 
+ ifeq ($(JVM_VARIANT_CLIENT),true)
+@@ -306,6 +310,7 @@
+   EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.$(LIBRARY_SUFFIX)
+ 
+   ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
++  ifneq ($(STRIP_POLICY),no_strip)
+     ifeq ($(ZIP_DEBUGINFO_FILES),1)
+         EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.diz
+     else
+@@ -316,6 +321,7 @@
+       endif
+     endif
+   endif
++  endif
+ endif
+ 
+ ifeq ($(JVM_VARIANT_MINIMAL1),true)
+@@ -329,6 +335,7 @@
+                         $(EXPORT_LIB_DIR)/sa-jdi.jar
+ 
+ ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
++ifneq ($(STRIP_POLICY),no_strip)
+   ifeq ($(ZIP_DEBUGINFO_FILES),1)
+       ADD_SA_BINARIES/x86 += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.diz
+   else
+@@ -346,6 +353,7 @@
+                             $(EXPORT_LIB_DIR)/sa-jdi.jar
+ 
+ ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
++ifneq ($(STRIP_POLICY),no_strip)
+   ifeq ($(ZIP_DEBUGINFO_FILES),1)
+       ADD_SA_BINARIES/universal += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.diz
+   else
+@@ -356,6 +364,7 @@
+     endif
+   endif
+ endif
++endif
+ 
+ ADD_SA_BINARIES/ppc   =
+ ADD_SA_BINARIES/ia64  =
+@@ -398,6 +407,7 @@
+     UNIVERSAL_COPY_LIST += $(EXPORT_JRE_LIB_DIR)/server/Xusage.txt
+     UNIVERSAL_COPY_LIST += $(EXPORT_JRE_LIB_DIR)/client/Xusage.txt
+     ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
++    ifneq ($(STRIP_POLICY),no_strip)
+       ifeq ($(ZIP_DEBUGINFO_FILES),1)
+           UNIVERSAL_COPY_LIST += $(EXPORT_JRE_LIB_DIR)/server/libjvm.diz
+           UNIVERSAL_COPY_LIST += $(EXPORT_JRE_LIB_DIR)/client/libjvm.diz
+@@ -410,6 +420,7 @@
+           UNIVERSAL_COPY_LIST += $(EXPORT_JRE_LIB_DIR)/libsaproc.$(LIBRARY_SUFFIX).dSYM
+       endif
+     endif
++    endif
+ 
+   endif
+ endif
+diff -Nru openjdk.orig/hotspot/make/bsd/makefiles/jsig.make openjdk/hotspot/make/bsd/makefiles/jsig.make
+--- openjdk.orig/hotspot/make/bsd/makefiles/jsig.make	2019-01-16 07:13:59.000000000 +0000
++++ openjdk/hotspot/make/bsd/makefiles/jsig.make	2019-01-25 14:29:06.939548251 +0000
+@@ -64,6 +64,7 @@
+ 	$(QUIETLY) $(CC) $(SYMFLAG) $(ARCHFLAG) $(SHARED_FLAG) $(PICFLAG) \
+                          $(LFLAGS_JSIG) $(JSIG_DEBUG_CFLAGS) $(EXTRA_CFLAGS) -o $@ $<
+ ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
++ifneq ($(STRIP_POLICY),no_strip)
+   ifeq ($(OS_VENDOR), Darwin)
+ 	$(DSYMUTIL) $@
+     ifeq ($(ZIP_DEBUGINFO_FILES),1)
+@@ -87,6 +88,7 @@
+     endif
+   endif
+ endif
++endif
+ 
+ install_jsig: $(LIBJSIG)
+ 	@echo "Copying $(LIBJSIG) to $(DEST_JSIG)"
+diff -Nru openjdk.orig/hotspot/make/bsd/makefiles/saproc.make openjdk/hotspot/make/bsd/makefiles/saproc.make
+--- openjdk.orig/hotspot/make/bsd/makefiles/saproc.make	2019-01-16 07:13:59.000000000 +0000
++++ openjdk/hotspot/make/bsd/makefiles/saproc.make	2019-01-25 14:24:31.999871188 +0000
+@@ -137,6 +137,7 @@
+ 	           -o $@                                                \
+ 	           $(SALIBS)
+ ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
++ifneq ($(STRIP_POLICY),no_strip)
+   ifeq ($(OS_VENDOR), Darwin)
+ 	$(DSYMUTIL) $@
+     ifeq ($(ZIP_DEBUGINFO_FILES),1)
+@@ -160,6 +161,7 @@
+     endif
+   endif
+ endif
++endif
+ 
+ install_saproc: $(BUILDLIBSAPROC)
+ 	@echo "Copying $(LIBSAPROC) to $(DEST_SAPROC)"
+diff -Nru openjdk.orig/hotspot/make/bsd/makefiles/vm.make openjdk/hotspot/make/bsd/makefiles/vm.make
+--- openjdk.orig/hotspot/make/bsd/makefiles/vm.make	2019-01-16 07:13:59.000000000 +0000
++++ openjdk/hotspot/make/bsd/makefiles/vm.make	2019-01-25 14:24:31.999871188 +0000
+@@ -342,6 +342,7 @@
+ 	}
+ 
+ ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
++ifneq ($(STRIP_POLICY),no_strip)
+   ifeq ($(OS_VENDOR), Darwin)
+ 	$(DSYMUTIL) $@
+     ifeq ($(ZIP_DEBUGINFO_FILES),1)
+@@ -365,6 +366,7 @@
+     endif
+   endif
+ endif
++endif
+ 
+ DEST_SUBDIR        = $(JDK_LIBDIR)/$(VM_SUBDIR)
+ DEST_JVM           = $(DEST_SUBDIR)/$(LIBJVM)
+diff -Nru openjdk.orig/hotspot/make/solaris/makefiles/defs.make openjdk/hotspot/make/solaris/makefiles/defs.make
+--- openjdk.orig/hotspot/make/solaris/makefiles/defs.make	2019-01-16 07:13:59.000000000 +0000
++++ openjdk/hotspot/make/solaris/makefiles/defs.make	2019-01-25 14:24:31.999871188 +0000
+@@ -226,12 +226,14 @@
+ # client and server subdirectories have symbolic links to ../libjsig.$(LIBRARY_SUFFIX)
+ EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.$(LIBRARY_SUFFIX)
+ ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
++ifneq ($(STRIP_POLICY),no_strip)
+   ifeq ($(ZIP_DEBUGINFO_FILES),1)
+     EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.diz
+   else
+     EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.debuginfo
+   endif
+ endif
++endif
+ 
+ EXPORT_SERVER_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/server
+ EXPORT_CLIENT_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/client
+@@ -246,6 +248,7 @@
+     EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_dtrace.$(LIBRARY_SUFFIX)
+   endif
+   ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
++  ifneq ($(STRIP_POLICY),no_strip)
+     ifeq ($(ZIP_DEBUGINFO_FILES),1)
+       EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.diz
+       EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_db.diz
+@@ -264,6 +267,7 @@
+       endif
+     endif
+   endif
++  endif
+ endif
+ ifeq ($(JVM_VARIANT_CLIENT),true)
+   EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt
+@@ -275,6 +279,7 @@
+     EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_dtrace.$(LIBRARY_SUFFIX)
+   endif
+   ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
++  ifneq ($(STRIP_POLICY),no_strip)
+     ifeq ($(ZIP_DEBUGINFO_FILES),1)
+       EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.diz
+       EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_db.diz
+@@ -293,10 +298,12 @@
+       endif
+     endif
+   endif
++  endif
+ endif
+ 
+ EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX)
+ ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
++ifneq ($(STRIP_POLICY),no_strip)
+   ifeq ($(ZIP_DEBUGINFO_FILES),1)
+     EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.diz
+   else
+diff -Nru openjdk.orig/hotspot/make/solaris/makefiles/jsig.make openjdk/hotspot/make/solaris/makefiles/jsig.make
+--- openjdk.orig/hotspot/make/solaris/makefiles/jsig.make	2019-01-16 07:13:59.000000000 +0000
++++ openjdk/hotspot/make/solaris/makefiles/jsig.make	2019-01-25 14:24:31.999871188 +0000
+@@ -52,8 +52,10 @@
+ 	$(QUIETLY) $(CC) $(SYMFLAG) $(ARCHFLAG) $(SHARED_FLAG) $(PICFLAG) \
+                          $(LFLAGS_JSIG) -o $@ $(JSIGSRCDIR)/jsig.c -ldl
+ ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
++  ifneq ($(STRIP_POLICY),no_strip)
+ 	$(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJSIG_DEBUGINFO)
+ 	$(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJSIG_DEBUGINFO) $@
++  endif
+   ifeq ($(STRIP_POLICY),all_strip)
+ 	$(QUIETLY) $(STRIP) $@
+   else
+@@ -62,10 +64,12 @@
+     # implied else here is no stripping at all
+     endif
+   endif
++  ifneq ($(STRIP_POLICY),no_strip)
+   ifeq ($(ZIP_DEBUGINFO_FILES),1)
+ 	$(ZIPEXE) -q -y $(LIBJSIG_DIZ) $(LIBJSIG_DEBUGINFO)
+ 	$(RM) $(LIBJSIG_DEBUGINFO)
+   endif
++  endif
+ endif
+ 
+ install_jsig: $(LIBJSIG)
+diff -Nru openjdk.orig/hotspot/make/solaris/makefiles/saproc.make openjdk/hotspot/make/solaris/makefiles/saproc.make
+--- openjdk.orig/hotspot/make/solaris/makefiles/saproc.make	2019-01-16 07:13:59.000000000 +0000
++++ openjdk/hotspot/make/solaris/makefiles/saproc.make	2019-01-25 14:24:31.999871188 +0000
+@@ -121,8 +121,10 @@
+ 	           -c -o $(SADISOBJ)
+ 	
+ ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
++  ifneq ($(STRIP_POLICY),no_strip)
+ 	$(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBSAPROC_DEBUGINFO)
+ 	$(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBSAPROC_DEBUGINFO) $@
++  endif
+   ifeq ($(STRIP_POLICY),all_strip)
+ 	$(QUIETLY) $(STRIP) $@
+   else
+@@ -132,8 +134,10 @@
+     endif
+   endif
+   ifeq ($(ZIP_DEBUGINFO_FILES),1)
++    ifneq ($(STRIP_POLICY),no_strip)
+ 	$(ZIPEXE) -q -y $(LIBSAPROC_DIZ) $(LIBSAPROC_DEBUGINFO)
+ 	$(RM) $(LIBSAPROC_DEBUGINFO)
++    endif
+   endif
+ endif
+ 
+diff -Nru openjdk.orig/hotspot/make/solaris/makefiles/vm.make openjdk/hotspot/make/solaris/makefiles/vm.make
+--- openjdk.orig/hotspot/make/solaris/makefiles/vm.make	2019-01-16 07:13:59.000000000 +0000
++++ openjdk/hotspot/make/solaris/makefiles/vm.make	2019-01-25 14:24:32.003871126 +0000
+@@ -299,8 +299,10 @@
+ 	$(QUIETLY) $(LINK_LIB.CXX/POST_HOOK)
+ 	$(QUIETLY) rm -f $@.1 && ln -s $@ $@.1
+ ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
++  ifneq ($(STRIP_POLICY),no_strip)
+ 	$(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJVM_DEBUGINFO)
+ 	$(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DEBUGINFO) $@
++  endif
+   ifeq ($(STRIP_POLICY),all_strip)
+ 	$(QUIETLY) $(STRIP) $@
+   else
+@@ -309,10 +311,12 @@
+     # implied else here is no stripping at all
+     endif
+   endif
++  ifneq ($(STRIP_POLICY),no_strip)
+   ifeq ($(ZIP_DEBUGINFO_FILES),1)
+ 	$(ZIPEXE) -q -y $(LIBJVM_DIZ) $(LIBJVM_DEBUGINFO)
+ 	$(RM) $(LIBJVM_DEBUGINFO)
+   endif
++  endif
+ endif
+ endif # filter -sbfast -xsbfast
+ 
+diff -Nru openjdk.orig/hotspot/make/windows/makefiles/debug.make openjdk/hotspot/make/windows/makefiles/debug.make
+--- openjdk.orig/hotspot/make/windows/makefiles/debug.make	2019-01-16 07:13:59.000000000 +0000
++++ openjdk/hotspot/make/windows/makefiles/debug.make	2019-01-25 14:24:32.003871126 +0000
+@@ -60,11 +60,13 @@
+ 	$(MT) /manifest $@.manifest /outputresource:$@;#2
+ !endif
+ !if "$(ENABLE_FULL_DEBUG_SYMBOLS)" == "1"
++!if "$(STRIP_POLICY)" != "no_strip"
+ !if "$(ZIP_DEBUGINFO_FILES)" == "1"
+ 	$(ZIPEXE) -q $*.diz $*.map $*.pdb
+ 	$(RM) $*.map $*.pdb
+ !endif
+ !endif
++!endif
+ 
+ !include $(WorkSpace)/make/windows/makefiles/shared.make
+ !include $(WorkSpace)/make/windows/makefiles/sa.make
+diff -Nru openjdk.orig/hotspot/make/windows/makefiles/defs.make openjdk/hotspot/make/windows/makefiles/defs.make
+--- openjdk.orig/hotspot/make/windows/makefiles/defs.make	2019-01-16 07:13:59.000000000 +0000
++++ openjdk/hotspot/make/windows/makefiles/defs.make	2019-01-25 14:24:32.003871126 +0000
+@@ -253,6 +253,7 @@
+   EXPORT_LIST += $(EXPORT_SERVER_DIR)/Xusage.txt
+   EXPORT_LIST += $(EXPORT_SERVER_DIR)/jvm.$(LIBRARY_SUFFIX)
+   ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
++  ifneq ($(STRIP_POLICY),no_strip)
+     ifeq ($(ZIP_DEBUGINFO_FILES),1)
+       EXPORT_LIST += $(EXPORT_SERVER_DIR)/jvm.diz
+     else
+@@ -260,11 +261,13 @@
+       EXPORT_LIST += $(EXPORT_SERVER_DIR)/jvm.map
+     endif
+   endif
++  endif
+ endif
+ ifeq ($(JVM_VARIANT_CLIENT),true)
+   EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt
+   EXPORT_LIST += $(EXPORT_CLIENT_DIR)/jvm.$(LIBRARY_SUFFIX)
+   ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
++  ifneq ($(STRIP_POLICY),no_strip)
+     ifeq ($(ZIP_DEBUGINFO_FILES),1)
+       EXPORT_LIST += $(EXPORT_CLIENT_DIR)/jvm.diz
+     else
+@@ -272,6 +275,7 @@
+       EXPORT_LIST += $(EXPORT_CLIENT_DIR)/jvm.map
+     endif
+   endif
++  endif
+ endif
+ 
+ EXPORT_LIST += $(EXPORT_LIB_DIR)/jvm.lib
+@@ -279,6 +283,7 @@
+ ifeq ($(BUILD_WIN_SA), 1)
+   EXPORT_LIST += $(EXPORT_JRE_BIN_DIR)/sawindbg.$(LIBRARY_SUFFIX)
+   ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
++  ifneq ($(STRIP_POLICY),no_strip)
+     ifeq ($(ZIP_DEBUGINFO_FILES),1)
+       EXPORT_LIST += $(EXPORT_JRE_BIN_DIR)/sawindbg.diz
+     else
+@@ -286,6 +291,7 @@
+       EXPORT_LIST += $(EXPORT_JRE_BIN_DIR)/sawindbg.map
+     endif
+   endif
++  endif
+   EXPORT_LIST += $(EXPORT_LIB_DIR)/sa-jdi.jar
+   # Must pass this down to nmake.
+   MAKE_ARGS += BUILD_WIN_SA=1
+diff -Nru openjdk.orig/hotspot/make/windows/makefiles/fastdebug.make openjdk/hotspot/make/windows/makefiles/fastdebug.make
+--- openjdk.orig/hotspot/make/windows/makefiles/fastdebug.make	2019-01-16 07:13:59.000000000 +0000
++++ openjdk/hotspot/make/windows/makefiles/fastdebug.make	2019-01-25 14:24:32.003871126 +0000
+@@ -59,11 +59,13 @@
+ 	$(MT) /manifest $@.manifest /outputresource:$@;#2
+ !endif
+ !if "$(ENABLE_FULL_DEBUG_SYMBOLS)" == "1"
++!if "$(STRIP_POLICY)" != "no_strip"
+ !if "$(ZIP_DEBUGINFO_FILES)" == "1"
+ 	$(ZIPEXE) -q $*.diz $*.map $*.pdb
+ 	$(RM) $*.map $*.pdb
+ !endif
+ !endif
++!endif
+ 
+ !include $(WorkSpace)/make/windows/makefiles/shared.make
+ !include $(WorkSpace)/make/windows/makefiles/sa.make
+diff -Nru openjdk.orig/hotspot/make/windows/makefiles/product.make openjdk/hotspot/make/windows/makefiles/product.make
+--- openjdk.orig/hotspot/make/windows/makefiles/product.make	2019-01-16 07:13:59.000000000 +0000
++++ openjdk/hotspot/make/windows/makefiles/product.make	2019-01-25 14:24:32.003871126 +0000
+@@ -62,11 +62,13 @@
+ 	$(MT) /manifest $@.manifest /outputresource:$@;#2
+ !endif
+ !if "$(ENABLE_FULL_DEBUG_SYMBOLS)" == "1"
++!if "$(STRIP_POLICY)" != "no_strip"
+ !if "$(ZIP_DEBUGINFO_FILES)" == "1"
+ 	$(ZIPEXE) -q $*.diz $*.map $*.pdb
+ 	$(RM) $*.map $*.pdb
+ !endif
+ !endif
++!endif
+ 
+ !include $(WorkSpace)/make/windows/makefiles/shared.make
+ !include $(WorkSpace)/make/windows/makefiles/sa.make
+diff -Nru openjdk.orig/hotspot/make/windows/makefiles/sa.make openjdk/hotspot/make/windows/makefiles/sa.make
+--- openjdk.orig/hotspot/make/windows/makefiles/sa.make	2019-01-16 07:13:59.000000000 +0000
++++ openjdk/hotspot/make/windows/makefiles/sa.make	2019-01-25 14:24:32.003871126 +0000
+@@ -154,11 +154,13 @@
+ 	$(MT) -manifest $(@F).manifest -outputresource:$(@F);#2
+ !endif
+ !if "$(ENABLE_FULL_DEBUG_SYMBOLS)" == "1"
++!if "$(STRIP_POLICY)" != "no_strip"
+ !if "$(ZIP_DEBUGINFO_FILES)" == "1"
+ 	$(ZIPEXE) -q $*.diz $*.map $*.pdb
+ 	$(RM) $*.map $*.pdb
+ !endif
+ !endif
++!endif
+ 	-@rm -f $*.obj
+ 
+ cleanall :
--- a/patches/hotspot/shenandoah/6424123-pr3696.patch	Wed Aug 14 18:35:23 2019 +0100
+++ b/patches/hotspot/shenandoah/6424123-pr3696.patch	Mon Aug 26 19:26:15 2019 +0100
@@ -9,8 +9,8 @@
 Reviewed-by: coleenp, ctornqvi, kvn
 
 diff -Nru 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	2019-05-24 18:37:52.434845994 +0100
-+++ openjdk/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp	2019-05-24 18:40:20.600564335 +0100
+--- openjdk.orig/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp	2019-08-19 19:42:21.019730407 +0100
++++ openjdk/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp	2019-08-20 22:35:02.284104505 +0100
 @@ -29,6 +29,7 @@
  #include "compiler/disassembler.hpp"
  #include "memory/resourceArea.hpp"
@@ -19,8 +19,8 @@
  #include "runtime/stubCodeGenerator.hpp"
  #include "utilities/defaultStream.hpp"
  #include "vm_version_ppc.hpp"
-@@ -127,7 +128,7 @@
-                (has_vsx()     ? " vsx"     : "")
+@@ -128,7 +129,7 @@
+                (has_vshasig() ? " sha"     : "")
                 // Make sure number of %s matches num_features!
                );
 -  _features_str = strdup(buf);
@@ -29,8 +29,8 @@
      print_features();
    }
 diff -Nru 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	2019-05-24 18:37:52.434845994 +0100
-+++ openjdk/hotspot/src/cpu/sparc/vm/vm_version_sparc.cpp	2019-05-24 18:40:00.480874165 +0100
+--- openjdk.orig/hotspot/src/cpu/sparc/vm/vm_version_sparc.cpp	2019-08-19 19:42:21.023730346 +0100
++++ openjdk/hotspot/src/cpu/sparc/vm/vm_version_sparc.cpp	2019-08-20 20:14:51.229365428 +0100
 @@ -26,6 +26,7 @@
  #include "asm/macroAssembler.inline.hpp"
  #include "memory/resourceArea.hpp"
@@ -58,8 +58,8 @@
    for (int i = 0; impl[i] != 0; i++)
      impl[i] = (char)toupper((uint)impl[i]);
 diff -Nru 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	2019-05-24 18:37:52.438845932 +0100
-+++ openjdk/hotspot/src/cpu/x86/vm/vm_version_x86.cpp	2019-05-24 18:40:00.484874104 +0100
+--- openjdk.orig/hotspot/src/cpu/x86/vm/vm_version_x86.cpp	2019-08-19 19:42:21.023730346 +0100
++++ openjdk/hotspot/src/cpu/x86/vm/vm_version_x86.cpp	2019-08-20 20:14:51.229365428 +0100
 @@ -27,6 +27,7 @@
  #include "asm/macroAssembler.inline.hpp"
  #include "memory/resourceArea.hpp"
@@ -78,8 +78,8 @@
    // 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 -Nru 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	2019-05-02 01:23:49.000000000 +0100
-+++ openjdk/hotspot/src/os/aix/vm/os_aix.cpp	2019-05-24 18:40:00.484874104 +0100
+--- openjdk.orig/hotspot/src/os/aix/vm/os_aix.cpp	2019-07-25 17:40:16.000000000 +0100
++++ openjdk/hotspot/src/os/aix/vm/os_aix.cpp	2019-08-20 20:14:51.229365428 +0100
 @@ -56,6 +56,7 @@
  #include "runtime/mutexLocker.hpp"
  #include "runtime/objectMonitor.hpp"
@@ -102,8 +102,8 @@
  
    // query default shm page size (LDR_CNTRL SHMPSIZE)
 diff -Nru 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	2019-05-02 01:23:49.000000000 +0100
-+++ openjdk/hotspot/src/os/aix/vm/porting_aix.cpp	2019-05-24 18:40:00.484874104 +0100
+--- openjdk.orig/hotspot/src/os/aix/vm/porting_aix.cpp	2019-07-25 17:40:16.000000000 +0100
++++ openjdk/hotspot/src/os/aix/vm/porting_aix.cpp	2019-08-20 20:14:51.229365428 +0100
 @@ -23,6 +23,8 @@
   */
  
@@ -132,8 +132,8 @@
      first = p;
      return p->v;
 diff -Nru 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	2019-05-02 01:23:49.000000000 +0100
-+++ openjdk/hotspot/src/os/windows/vm/perfMemory_windows.cpp	2019-05-24 18:40:00.484874104 +0100
+--- openjdk.orig/hotspot/src/os/windows/vm/perfMemory_windows.cpp	2019-07-25 17:40:16.000000000 +0100
++++ openjdk/hotspot/src/os/windows/vm/perfMemory_windows.cpp	2019-08-20 20:14:51.233365366 +0100
 @@ -29,6 +29,7 @@
  #include "oops/oop.inline.hpp"
  #include "os_windows.inline.hpp"
@@ -142,7 +142,7 @@
  #include "runtime/perfMemory.hpp"
  #include "services/memTracker.hpp"
  #include "utilities/exceptions.hpp"
-@@ -1388,7 +1389,7 @@
+@@ -1382,7 +1383,7 @@
    // the file has been successfully created and the file mapping
    // object has been created.
    sharedmem_fileHandle = fh;
@@ -152,8 +152,8 @@
    return fmh;
  }
 diff -Nru 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	2019-05-02 01:23:49.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp	2019-05-24 18:40:00.484874104 +0100
+--- openjdk.orig/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp	2019-07-25 17:40:16.000000000 +0100
++++ openjdk/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp	2019-08-20 20:14:51.233365366 +0100
 @@ -30,6 +30,7 @@
  #include "c1/c1_MacroAssembler.hpp"
  #include "c1/c1_ValueStack.hpp"
@@ -172,8 +172,8 @@
            _masm->verify_oop(r->as_Register());
  #endif
 diff -Nru 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	2019-05-02 01:23:49.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/classfile/classLoader.cpp	2019-05-24 18:40:00.484874104 +0100
+--- openjdk.orig/hotspot/src/share/vm/classfile/classLoader.cpp	2019-07-25 17:40:16.000000000 +0100
++++ openjdk/hotspot/src/share/vm/classfile/classLoader.cpp	2019-08-20 20:14:51.233365366 +0100
 @@ -324,7 +324,7 @@
  }
  
@@ -204,8 +204,8 @@
            }
          }
 diff -Nru 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	2019-05-02 01:23:49.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/classfile/classLoader.hpp	2019-05-24 18:40:00.484874104 +0100
+--- openjdk.orig/hotspot/src/share/vm/classfile/classLoader.hpp	2019-07-25 17:40:16.000000000 +0100
++++ openjdk/hotspot/src/share/vm/classfile/classLoader.hpp	2019-08-20 20:14:51.233365366 +0100
 @@ -134,6 +134,8 @@
    bool is_jar_file();
    const char* name()  { return _path; }
@@ -216,8 +216,8 @@
    ClassFileStream* open_stream(const char* name, TRAPS);
    void set_meta_index(MetaIndex* meta_index) { _meta_index = meta_index; }
 diff -Nru 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	2019-05-02 01:23:49.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/compiler/compilerOracle.cpp	2019-05-24 18:40:00.484874104 +0100
+--- openjdk.orig/hotspot/src/share/vm/compiler/compilerOracle.cpp	2019-07-25 17:40:16.000000000 +0100
++++ openjdk/hotspot/src/share/vm/compiler/compilerOracle.cpp	2019-08-20 20:14:51.233365366 +0100
 @@ -33,6 +33,7 @@
  #include "oops/symbol.hpp"
  #include "runtime/handles.inline.hpp"
@@ -236,9 +236,9 @@
  
    ~TypedMethodOptionMatcher() {
 diff -Nru 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	2019-05-02 01:23:49.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/opto/runtime.cpp	2019-05-24 18:40:00.484874104 +0100
-@@ -1567,11 +1567,11 @@
+--- openjdk.orig/hotspot/src/share/vm/opto/runtime.cpp	2019-07-25 17:40:16.000000000 +0100
++++ openjdk/hotspot/src/share/vm/opto/runtime.cpp	2019-08-20 20:14:51.233365366 +0100
+@@ -1579,11 +1579,11 @@
    }
    NamedCounter* c;
    if (tag == NamedCounter::BiasedLockingCounter) {
@@ -254,8 +254,8 @@
  
    // atomically add the new counter to the head of the list.  We only
 diff -Nru 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	2019-05-02 01:23:49.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/opto/runtime.hpp	2019-05-24 18:40:00.484874104 +0100
+--- openjdk.orig/hotspot/src/share/vm/opto/runtime.hpp	2019-07-25 17:40:16.000000000 +0100
++++ openjdk/hotspot/src/share/vm/opto/runtime.hpp	2019-08-20 20:14:51.233365366 +0100
 @@ -74,11 +74,17 @@
  
   public:
@@ -276,9 +276,9 @@
    int count() const             { return _count; }
    address addr()                { return (address)&_count; }
 diff -Nru 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	2019-05-24 18:37:55.414800103 +0100
-+++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp	2019-05-24 18:40:00.484874104 +0100
-@@ -805,7 +805,7 @@
+--- openjdk.orig/hotspot/src/share/vm/runtime/arguments.cpp	2019-08-19 19:42:21.823718056 +0100
++++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp	2019-08-20 20:14:51.233365366 +0100
+@@ -802,7 +802,7 @@
    } else {
      *bldarray = REALLOC_C_HEAP_ARRAY(char*, *bldarray, new_count, mtInternal);
    }
@@ -287,7 +287,7 @@
    *count = new_count;
  }
  
-@@ -2256,7 +2256,7 @@
+@@ -2242,7 +2242,7 @@
  }
  
  void Arguments::process_java_launcher_argument(const char* launcher, void* extra_info) {
@@ -296,7 +296,7 @@
    if (strcmp("gamma", _sun_java_launcher) == 0) {
      _created_by_gamma_launcher = true;
    }
-@@ -3416,7 +3416,7 @@
+@@ -3402,7 +3402,7 @@
        // Redirect GC output to the file. -Xloggc:<filename>
        // ostream_init_log(), when called will use this filename
        // to initialize a fileStream.
@@ -306,8 +306,8 @@
         jio_fprintf(defaultStream::output_stream(),
                    "Invalid file name for use with -Xloggc: Filename can only contain the "
 diff -Nru 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	2019-05-02 01:23:49.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/runtime/fprofiler.cpp	2019-05-24 18:40:00.484874104 +0100
+--- openjdk.orig/hotspot/src/share/vm/runtime/fprofiler.cpp	2019-07-25 17:40:16.000000000 +0100
++++ openjdk/hotspot/src/share/vm/runtime/fprofiler.cpp	2019-08-20 20:14:51.233365366 +0100
 @@ -628,10 +628,16 @@
    }
  
@@ -345,8 +345,8 @@
  }
  
 diff -Nru 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	2019-05-02 01:23:49.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/runtime/os.cpp	2019-05-24 18:40:00.484874104 +0100
+--- openjdk.orig/hotspot/src/share/vm/runtime/os.cpp	2019-07-25 17:40:16.000000000 +0100
++++ openjdk/hotspot/src/share/vm/runtime/os.cpp	2019-08-20 20:14:51.233365366 +0100
 @@ -550,6 +550,14 @@
  }
  
@@ -363,9 +363,9 @@
  #define paranoid                 0  /* only set to 1 if you suspect checking code has bug */
  
 diff -Nru 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	2019-05-02 01:23:49.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/runtime/os.hpp	2019-05-24 18:40:00.484874104 +0100
-@@ -720,6 +720,8 @@
+--- openjdk.orig/hotspot/src/share/vm/runtime/os.hpp	2019-07-25 17:40:16.000000000 +0100
++++ openjdk/hotspot/src/share/vm/runtime/os.hpp	2019-08-20 20:14:51.233365366 +0100
+@@ -719,6 +719,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
@@ -375,8 +375,8 @@
  #ifndef PRODUCT
    static julong num_mallocs;         // # of calls to malloc/realloc
 diff -Nru 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	2019-05-02 01:23:49.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/runtime/vmStructs.cpp	2019-05-24 18:40:00.488874042 +0100
+--- openjdk.orig/hotspot/src/share/vm/runtime/vmStructs.cpp	2019-07-25 17:40:16.000000000 +0100
++++ openjdk/hotspot/src/share/vm/runtime/vmStructs.cpp	2019-08-20 20:14:51.233365366 +0100
 @@ -51,6 +51,7 @@
  #include "interpreter/bytecodes.hpp"
  #include "interpreter/interpreter.hpp"
@@ -412,8 +412,8 @@
    if (!isRecurse) {
      tty->print_cr("type \"%s\" not found", typeName);
 diff -Nru 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	2019-05-02 01:23:49.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/services/management.cpp	2019-05-24 18:40:00.488874042 +0100
+--- openjdk.orig/hotspot/src/share/vm/services/management.cpp	2019-07-25 17:40:16.000000000 +0100
++++ openjdk/hotspot/src/share/vm/services/management.cpp	2019-08-20 20:14:51.237365305 +0100
 @@ -1793,7 +1793,7 @@
    ResourceMark rm(THREAD); // thread->name() uses ResourceArea
  
@@ -433,8 +433,8 @@
    FREE_C_HEAP_ARRAY(char *, _names_chars, mtInternal);
  }
 diff -Nru 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	2019-05-02 01:23:49.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/shark/sharkBuilder.cpp	2019-05-24 18:40:00.488874042 +0100
+--- openjdk.orig/hotspot/src/share/vm/shark/sharkBuilder.cpp	2019-07-25 17:40:16.000000000 +0100
++++ openjdk/hotspot/src/share/vm/shark/sharkBuilder.cpp	2019-08-20 20:14:51.237365305 +0100
 @@ -413,7 +413,7 @@
    const char *name;
    if (value->hasName())
--- a/patches/hotspot/shenandoah/8158260-pr2991-rh1341258.patch	Wed Aug 14 18:35:23 2019 +0100
+++ b/patches/hotspot/shenandoah/8158260-pr2991-rh1341258.patch	Mon Aug 26 19:26:15 2019 +0100
@@ -12,18 +12,18 @@
 diff -Nru 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	2019-01-16 07:13:59.000000000 +0000
 +++ openjdk/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp	2019-01-25 13:46:51.799453897 +0000
-@@ -201,6 +201,11 @@
-     FLAG_SET_DEFAULT(UseSHA512Intrinsics, false);
+@@ -237,6 +251,11 @@
+   if (FLAG_IS_DEFAULT(UseMontgomerySquareIntrinsic)) {
+     UseMontgomerySquareIntrinsic = true;
    }
- 
++
 +  // This machine allows unaligned memory accesses
 +  if (FLAG_IS_DEFAULT(UseUnalignedAccesses)) {
 +    FLAG_SET_DEFAULT(UseUnalignedAccesses, true);
 +  }
-+
-   if (FLAG_IS_DEFAULT(UseMontgomeryMultiplyIntrinsic)) {
-     UseMontgomeryMultiplyIntrinsic = true;
-   }
+ }
+ 
+ void VM_Version::print_features() {
 diff -Nru 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	2019-01-16 07:13:59.000000000 +0000
 +++ openjdk/hotspot/src/cpu/sparc/vm/vm_version_sparc.cpp	2019-01-25 13:46:51.799453897 +0000
--- a/patches/hotspot/shenandoah/8187667-pr3517-readdir_r.patch	Wed Aug 14 18:35:23 2019 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-# HG changeset patch
-# User ehelin
-# Date 1517861444 0
-#      Mon Feb 05 20:10:44 2018 +0000
-# Node ID 3df435e5c2807c1596d5ff98698b493c82384317
-# Parent  fb479b2ec08dc13d45b22180bc48807d6796b857
-8187667, PR3517: Disable deprecation warning for readdir_r
-Reviewed-by: dholmes, sjohanss
-
-diff --git a/src/os/linux/vm/os_linux.inline.hpp b/src/os/linux/vm/os_linux.inline.hpp
---- openjdk/hotspot/src/os/linux/vm/os_linux.inline.hpp
-+++ openjdk/hotspot/src/os/linux/vm/os_linux.inline.hpp
-@@ -116,6 +116,11 @@
- 
- inline struct dirent* os::readdir(DIR* dirp, dirent *dbuf)
- {
-+// readdir_r has been deprecated since glibc 2.24.
-+// See https://sourceware.org/bugzilla/show_bug.cgi?id=19056 for more details.
-+#pragma GCC diagnostic push
-+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-+
-   dirent* p;
-   int status;
-   assert(dirp != NULL, "just checking");
-@@ -129,6 +134,8 @@
-     return NULL;
-   } else
-     return p;
-+
-+#pragma GCC diagnostic pop
- }
- 
- inline int os::closedir(DIR *dirp) {
--- a/patches/hotspot/shenandoah/8196978-pr3517-gcc_4_pragmas.patch	Wed Aug 14 18:35:23 2019 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-# HG changeset patch
-# User andrew
-# Date 1518051572 0
-#      Thu Feb 08 00:59:32 2018 +0000
-# Node ID 3ade0115344b77e6d00462044e0cf68722685bfe
-# Parent  3df435e5c2807c1596d5ff98698b493c82384317
-8196978, PR3517: JDK-8187667 fails on GCC 4.4.7 as found on RHEL 6
-Summary: Move pragma to above function definition and turn off push/pop pragma warnings on GCC < 4.6
-Reviewed-by: aph
-
-diff --git a/src/os/linux/vm/os_linux.inline.hpp b/src/os/linux/vm/os_linux.inline.hpp
---- openjdk/hotspot/src/os/linux/vm/os_linux.inline.hpp
-+++ openjdk/hotspot/src/os/linux/vm/os_linux.inline.hpp
-@@ -114,12 +114,12 @@
-   return ::ftruncate64(fd, length);
- }
- 
-+// readdir_r has been deprecated since glibc 2.24.
-+// See https://sourceware.org/bugzilla/show_bug.cgi?id=19056 for more details.
-+PRAGMA_DIAG_PUSH
-+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
- inline struct dirent* os::readdir(DIR* dirp, dirent *dbuf)
- {
--// readdir_r has been deprecated since glibc 2.24.
--// See https://sourceware.org/bugzilla/show_bug.cgi?id=19056 for more details.
--#pragma GCC diagnostic push
--#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
- 
-   dirent* p;
-   int status;
-@@ -135,8 +135,8 @@
-   } else
-     return p;
- 
--#pragma GCC diagnostic pop
- }
-+PRAGMA_DIAG_POP
- 
- inline int os::closedir(DIR *dirp) {
-   assert(dirp != NULL, "argument is NULL");
--- a/patches/hotspot/shenandoah/pr1368.patch	Wed Aug 14 18:35:23 2019 +0100
+++ b/patches/hotspot/shenandoah/pr1368.patch	Mon Aug 26 19:26:15 2019 +0100
@@ -7,8 +7,8 @@
 PR1368: Ensure debug data is available for all libraries and binaries without redundant files
 
 diff -Nru openjdk.orig/hotspot/make/aix/makefiles/defs.make openjdk/hotspot/make/aix/makefiles/defs.make
---- openjdk.orig/hotspot/make/aix/makefiles/defs.make	2019-01-16 07:13:59.000000000 +0000
-+++ openjdk/hotspot/make/aix/makefiles/defs.make	2019-01-25 14:24:31.999871188 +0000
+--- openjdk.orig/hotspot/make/aix/makefiles/defs.make	2019-07-25 17:40:16.000000000 +0100
++++ openjdk/hotspot/make/aix/makefiles/defs.make	2019-08-19 19:12:11.819510751 +0100
 @@ -186,12 +186,14 @@
  # client and server subdirectories have symbolic links to ../libjsig.so
  EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.$(LIBRARY_SUFFIX)
@@ -54,17 +54,17 @@
  
  # Serviceability Binaries
 diff -Nru openjdk.orig/hotspot/make/aix/makefiles/jsig.make openjdk/hotspot/make/aix/makefiles/jsig.make
---- openjdk.orig/hotspot/make/aix/makefiles/jsig.make	2019-01-16 07:13:59.000000000 +0000
-+++ openjdk/hotspot/make/aix/makefiles/jsig.make	2019-01-25 14:24:31.999871188 +0000
-@@ -60,6 +60,7 @@
-                          $(LFLAGS_JSIG) $(JSIG_DEBUG_CFLAGS) -o $@ $< -ldl
+--- openjdk.orig/hotspot/make/aix/makefiles/jsig.make	2019-07-25 17:40:16.000000000 +0100
++++ openjdk/hotspot/make/aix/makefiles/jsig.make	2019-08-19 19:15:34.696397884 +0100
+@@ -65,6 +65,7 @@
+                          $(LFLAGS_JSIG) $(JSIG_DEBUG_CFLAGS) $(JSIG_OPT_FLAGS) -o $@ $< -ldl
  
  #ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
 +#ifneq ($(STRIP_POLICY),no_strip)
  #	$(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJSIG_DEBUGINFO)
  #	$(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJSIG_DEBUGINFO) $@
  #  ifeq ($(STRIP_POLICY),all_strip)
-@@ -75,6 +76,7 @@
+@@ -80,6 +81,7 @@
  #	$(RM) $(LIBJSIG_DEBUGINFO)
  #  endif
  #endif
@@ -73,8 +73,8 @@
  install_jsig: $(LIBJSIG)
  	@echo "Copying $(LIBJSIG) to $(DEST_JSIG)"
 diff -Nru openjdk.orig/hotspot/make/aix/makefiles/saproc.make openjdk/hotspot/make/aix/makefiles/saproc.make
---- openjdk.orig/hotspot/make/aix/makefiles/saproc.make	2019-01-16 07:13:59.000000000 +0000
-+++ openjdk/hotspot/make/aix/makefiles/saproc.make	2019-01-25 14:24:31.999871188 +0000
+--- openjdk.orig/hotspot/make/aix/makefiles/saproc.make	2019-07-25 17:40:16.000000000 +0100
++++ openjdk/hotspot/make/aix/makefiles/saproc.make	2019-08-19 19:12:11.819510751 +0100
 @@ -88,8 +88,10 @@
  	           -o $@                                                \
  	           -lthread_db
@@ -98,9 +98,9 @@
  endif
  
 diff -Nru openjdk.orig/hotspot/make/aix/makefiles/vm.make openjdk/hotspot/make/aix/makefiles/vm.make
---- openjdk.orig/hotspot/make/aix/makefiles/vm.make	2019-01-16 07:13:59.000000000 +0000
-+++ openjdk/hotspot/make/aix/makefiles/vm.make	2019-01-25 14:24:31.999871188 +0000
-@@ -330,6 +330,7 @@
+--- openjdk.orig/hotspot/make/aix/makefiles/vm.make	2019-07-25 17:40:16.000000000 +0100
++++ openjdk/hotspot/make/aix/makefiles/vm.make	2019-08-19 19:12:11.819510751 +0100
+@@ -331,6 +331,7 @@
  #	}
  
  #ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
@@ -108,7 +108,7 @@
  #	$(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJVM_DEBUGINFO)
  #	$(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DEBUGINFO) $@
  #    ifeq ($(STRIP_POLICY),all_strip)
-@@ -345,6 +346,7 @@
+@@ -346,6 +347,7 @@
  #	$(RM) $(LIBJVM_DEBUGINFO)
  #  endif
  #endif
@@ -117,8 +117,8 @@
  DEST_SUBDIR        = $(JDK_LIBDIR)/$(VM_SUBDIR)
  DEST_JVM           = $(DEST_SUBDIR)/$(LIBJVM)
 diff -Nru openjdk.orig/hotspot/make/bsd/makefiles/defs.make openjdk/hotspot/make/bsd/makefiles/defs.make
---- openjdk.orig/hotspot/make/bsd/makefiles/defs.make	2019-01-16 07:13:59.000000000 +0000
-+++ openjdk/hotspot/make/bsd/makefiles/defs.make	2019-01-25 14:24:31.999871188 +0000
+--- openjdk.orig/hotspot/make/bsd/makefiles/defs.make	2019-07-25 17:40:16.000000000 +0100
++++ openjdk/hotspot/make/bsd/makefiles/defs.make	2019-08-19 19:12:11.819510751 +0100
 @@ -269,6 +269,7 @@
  EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.$(LIBRARY_SUFFIX)
  
@@ -208,17 +208,17 @@
    endif
  endif
 diff -Nru openjdk.orig/hotspot/make/bsd/makefiles/jsig.make openjdk/hotspot/make/bsd/makefiles/jsig.make
---- openjdk.orig/hotspot/make/bsd/makefiles/jsig.make	2019-01-16 07:13:59.000000000 +0000
-+++ openjdk/hotspot/make/bsd/makefiles/jsig.make	2019-01-25 14:29:06.939548251 +0000
-@@ -64,6 +64,7 @@
+--- openjdk.orig/hotspot/make/bsd/makefiles/jsig.make	2019-07-25 17:40:16.000000000 +0100
++++ openjdk/hotspot/make/bsd/makefiles/jsig.make	2019-08-19 19:16:26.555602172 +0100
+@@ -69,6 +69,7 @@
  	$(QUIETLY) $(CC) $(SYMFLAG) $(ARCHFLAG) $(SHARED_FLAG) $(PICFLAG) \
-                          $(LFLAGS_JSIG) $(JSIG_DEBUG_CFLAGS) $(EXTRA_CFLAGS) -o $@ $<
+                          $(LFLAGS_JSIG) $(JSIG_DEBUG_CFLAGS) $(JSIG_OPT_FLAGS) $(EXTRA_CFLAGS) -o $@ $<
  ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
 +ifneq ($(STRIP_POLICY),no_strip)
    ifeq ($(OS_VENDOR), Darwin)
  	$(DSYMUTIL) $@
      ifeq ($(ZIP_DEBUGINFO_FILES),1)
-@@ -87,6 +88,7 @@
+@@ -92,6 +93,7 @@
      endif
    endif
  endif
@@ -227,8 +227,8 @@
  install_jsig: $(LIBJSIG)
  	@echo "Copying $(LIBJSIG) to $(DEST_JSIG)"
 diff -Nru openjdk.orig/hotspot/make/bsd/makefiles/saproc.make openjdk/hotspot/make/bsd/makefiles/saproc.make
---- openjdk.orig/hotspot/make/bsd/makefiles/saproc.make	2019-01-16 07:13:59.000000000 +0000
-+++ openjdk/hotspot/make/bsd/makefiles/saproc.make	2019-01-25 14:24:31.999871188 +0000
+--- openjdk.orig/hotspot/make/bsd/makefiles/saproc.make	2019-07-25 17:40:16.000000000 +0100
++++ openjdk/hotspot/make/bsd/makefiles/saproc.make	2019-08-19 19:12:11.819510751 +0100
 @@ -137,6 +137,7 @@
  	           -o $@                                                \
  	           $(SALIBS)
@@ -246,9 +246,9 @@
  install_saproc: $(BUILDLIBSAPROC)
  	@echo "Copying $(LIBSAPROC) to $(DEST_SAPROC)"
 diff -Nru openjdk.orig/hotspot/make/bsd/makefiles/vm.make openjdk/hotspot/make/bsd/makefiles/vm.make
---- openjdk.orig/hotspot/make/bsd/makefiles/vm.make	2019-01-16 07:13:59.000000000 +0000
-+++ openjdk/hotspot/make/bsd/makefiles/vm.make	2019-01-25 14:24:31.999871188 +0000
-@@ -342,6 +342,7 @@
+--- openjdk.orig/hotspot/make/bsd/makefiles/vm.make	2019-07-25 17:40:16.000000000 +0100
++++ openjdk/hotspot/make/bsd/makefiles/vm.make	2019-08-19 19:12:11.819510751 +0100
+@@ -343,6 +343,7 @@
  	}
  
  ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
@@ -256,7 +256,7 @@
    ifeq ($(OS_VENDOR), Darwin)
  	$(DSYMUTIL) $@
      ifeq ($(ZIP_DEBUGINFO_FILES),1)
-@@ -365,6 +366,7 @@
+@@ -366,6 +367,7 @@
      endif
    endif
  endif
@@ -265,8 +265,8 @@
  DEST_SUBDIR        = $(JDK_LIBDIR)/$(VM_SUBDIR)
  DEST_JVM           = $(DEST_SUBDIR)/$(LIBJVM)
 diff -Nru openjdk.orig/hotspot/make/solaris/makefiles/defs.make openjdk/hotspot/make/solaris/makefiles/defs.make
---- openjdk.orig/hotspot/make/solaris/makefiles/defs.make	2019-01-16 07:13:59.000000000 +0000
-+++ openjdk/hotspot/make/solaris/makefiles/defs.make	2019-01-25 14:24:31.999871188 +0000
+--- openjdk.orig/hotspot/make/solaris/makefiles/defs.make	2019-07-25 17:40:16.000000000 +0100
++++ openjdk/hotspot/make/solaris/makefiles/defs.make	2019-08-19 19:12:11.819510751 +0100
 @@ -226,12 +226,14 @@
  # client and server subdirectories have symbolic links to ../libjsig.$(LIBRARY_SUFFIX)
  EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.$(LIBRARY_SUFFIX)
@@ -320,11 +320,11 @@
      EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.diz
    else
 diff -Nru openjdk.orig/hotspot/make/solaris/makefiles/jsig.make openjdk/hotspot/make/solaris/makefiles/jsig.make
---- openjdk.orig/hotspot/make/solaris/makefiles/jsig.make	2019-01-16 07:13:59.000000000 +0000
-+++ openjdk/hotspot/make/solaris/makefiles/jsig.make	2019-01-25 14:24:31.999871188 +0000
-@@ -52,8 +52,10 @@
+--- openjdk.orig/hotspot/make/solaris/makefiles/jsig.make	2019-07-25 17:40:16.000000000 +0100
++++ openjdk/hotspot/make/solaris/makefiles/jsig.make	2019-08-19 19:16:51.731215886 +0100
+@@ -57,8 +57,10 @@
  	$(QUIETLY) $(CC) $(SYMFLAG) $(ARCHFLAG) $(SHARED_FLAG) $(PICFLAG) \
-                          $(LFLAGS_JSIG) -o $@ $(JSIGSRCDIR)/jsig.c -ldl
+                          $(LFLAGS_JSIG) $(JSIG_OPT_FLAGS) -o $@ $(JSIGSRCDIR)/jsig.c -ldl
  ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
 +  ifneq ($(STRIP_POLICY),no_strip)
  	$(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJSIG_DEBUGINFO)
@@ -333,7 +333,7 @@
    ifeq ($(STRIP_POLICY),all_strip)
  	$(QUIETLY) $(STRIP) $@
    else
-@@ -62,10 +64,12 @@
+@@ -67,10 +69,12 @@
      # implied else here is no stripping at all
      endif
    endif
@@ -347,8 +347,8 @@
  
  install_jsig: $(LIBJSIG)
 diff -Nru openjdk.orig/hotspot/make/solaris/makefiles/saproc.make openjdk/hotspot/make/solaris/makefiles/saproc.make
---- openjdk.orig/hotspot/make/solaris/makefiles/saproc.make	2019-01-16 07:13:59.000000000 +0000
-+++ openjdk/hotspot/make/solaris/makefiles/saproc.make	2019-01-25 14:24:31.999871188 +0000
+--- openjdk.orig/hotspot/make/solaris/makefiles/saproc.make	2019-07-25 17:40:16.000000000 +0100
++++ openjdk/hotspot/make/solaris/makefiles/saproc.make	2019-08-19 19:12:11.819510751 +0100
 @@ -121,8 +121,10 @@
  	           -c -o $(SADISOBJ)
  	
@@ -372,9 +372,9 @@
  endif
  
 diff -Nru openjdk.orig/hotspot/make/solaris/makefiles/vm.make openjdk/hotspot/make/solaris/makefiles/vm.make
---- openjdk.orig/hotspot/make/solaris/makefiles/vm.make	2019-01-16 07:13:59.000000000 +0000
-+++ openjdk/hotspot/make/solaris/makefiles/vm.make	2019-01-25 14:24:32.003871126 +0000
-@@ -299,8 +299,10 @@
+--- openjdk.orig/hotspot/make/solaris/makefiles/vm.make	2019-07-25 17:40:16.000000000 +0100
++++ openjdk/hotspot/make/solaris/makefiles/vm.make	2019-08-19 19:12:11.819510751 +0100
+@@ -300,8 +300,10 @@
  	$(QUIETLY) $(LINK_LIB.CXX/POST_HOOK)
  	$(QUIETLY) rm -f $@.1 && ln -s $@ $@.1
  ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
@@ -385,7 +385,7 @@
    ifeq ($(STRIP_POLICY),all_strip)
  	$(QUIETLY) $(STRIP) $@
    else
-@@ -309,10 +311,12 @@
+@@ -310,10 +312,12 @@
      # implied else here is no stripping at all
      endif
    endif
@@ -399,8 +399,8 @@
  endif # filter -sbfast -xsbfast
  
 diff -Nru openjdk.orig/hotspot/make/windows/makefiles/debug.make openjdk/hotspot/make/windows/makefiles/debug.make
---- openjdk.orig/hotspot/make/windows/makefiles/debug.make	2019-01-16 07:13:59.000000000 +0000
-+++ openjdk/hotspot/make/windows/makefiles/debug.make	2019-01-25 14:24:32.003871126 +0000
+--- openjdk.orig/hotspot/make/windows/makefiles/debug.make	2019-07-25 17:40:16.000000000 +0100
++++ openjdk/hotspot/make/windows/makefiles/debug.make	2019-08-19 19:12:11.819510751 +0100
 @@ -60,11 +60,13 @@
  	$(MT) /manifest $@.manifest /outputresource:$@;#2
  !endif
@@ -416,8 +416,8 @@
  !include $(WorkSpace)/make/windows/makefiles/shared.make
  !include $(WorkSpace)/make/windows/makefiles/sa.make
 diff -Nru openjdk.orig/hotspot/make/windows/makefiles/defs.make openjdk/hotspot/make/windows/makefiles/defs.make
---- openjdk.orig/hotspot/make/windows/makefiles/defs.make	2019-01-16 07:13:59.000000000 +0000
-+++ openjdk/hotspot/make/windows/makefiles/defs.make	2019-01-25 14:24:32.003871126 +0000
+--- openjdk.orig/hotspot/make/windows/makefiles/defs.make	2019-07-25 17:40:16.000000000 +0100
++++ openjdk/hotspot/make/windows/makefiles/defs.make	2019-08-19 19:12:11.819510751 +0100
 @@ -253,6 +253,7 @@
    EXPORT_LIST += $(EXPORT_SERVER_DIR)/Xusage.txt
    EXPORT_LIST += $(EXPORT_SERVER_DIR)/jvm.$(LIBRARY_SUFFIX)
@@ -465,8 +465,8 @@
    # Must pass this down to nmake.
    MAKE_ARGS += BUILD_WIN_SA=1
 diff -Nru openjdk.orig/hotspot/make/windows/makefiles/fastdebug.make openjdk/hotspot/make/windows/makefiles/fastdebug.make
---- openjdk.orig/hotspot/make/windows/makefiles/fastdebug.make	2019-01-16 07:13:59.000000000 +0000
-+++ openjdk/hotspot/make/windows/makefiles/fastdebug.make	2019-01-25 14:24:32.003871126 +0000
+--- openjdk.orig/hotspot/make/windows/makefiles/fastdebug.make	2019-07-25 17:40:16.000000000 +0100
++++ openjdk/hotspot/make/windows/makefiles/fastdebug.make	2019-08-19 19:12:11.819510751 +0100
 @@ -59,11 +59,13 @@
  	$(MT) /manifest $@.manifest /outputresource:$@;#2
  !endif
@@ -482,8 +482,8 @@
  !include $(WorkSpace)/make/windows/makefiles/shared.make
  !include $(WorkSpace)/make/windows/makefiles/sa.make
 diff -Nru openjdk.orig/hotspot/make/windows/makefiles/product.make openjdk/hotspot/make/windows/makefiles/product.make
---- openjdk.orig/hotspot/make/windows/makefiles/product.make	2019-01-16 07:13:59.000000000 +0000
-+++ openjdk/hotspot/make/windows/makefiles/product.make	2019-01-25 14:24:32.003871126 +0000
+--- openjdk.orig/hotspot/make/windows/makefiles/product.make	2019-07-25 17:40:16.000000000 +0100
++++ openjdk/hotspot/make/windows/makefiles/product.make	2019-08-19 19:12:11.819510751 +0100
 @@ -62,11 +62,13 @@
  	$(MT) /manifest $@.manifest /outputresource:$@;#2
  !endif
@@ -499,9 +499,9 @@
  !include $(WorkSpace)/make/windows/makefiles/shared.make
  !include $(WorkSpace)/make/windows/makefiles/sa.make
 diff -Nru openjdk.orig/hotspot/make/windows/makefiles/sa.make openjdk/hotspot/make/windows/makefiles/sa.make
---- openjdk.orig/hotspot/make/windows/makefiles/sa.make	2019-01-16 07:13:59.000000000 +0000
-+++ openjdk/hotspot/make/windows/makefiles/sa.make	2019-01-25 14:24:32.003871126 +0000
-@@ -154,11 +154,13 @@
+--- openjdk.orig/hotspot/make/windows/makefiles/sa.make	2019-07-25 17:40:16.000000000 +0100
++++ openjdk/hotspot/make/windows/makefiles/sa.make	2019-08-19 19:12:11.819510751 +0100
+@@ -165,11 +165,13 @@
  	$(MT) -manifest $(@F).manifest -outputresource:$(@F);#2
  !endif
  !if "$(ENABLE_FULL_DEBUG_SYMBOLS)" == "1"