changeset 2919:c2328cdd73cc

Bump aarch32 to jdk8u222-b08-aarch32-190710. Upstream changes: - [aarch32] fix crash 'guarantee(sect->end() <= tend) failed: sanity' - Remove debug output - S7102541: RFE: os::set_native_thread_name() cleanups - S8055814: [TESTBUG] runtime/NMT/NMTWithCDS.java fails with product builds due to missing UnlockDiagnosticVMOptions - 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. - S8150013: ParNew: Prune nmethods scavengable list. - S8151322: Implement os::set_native_thread_name() on Solaris - S8151539: Remove duplicate AlwaysTrueClosures - S8154156: PPC64: improve array copy stubs by using vector instructions - 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: [aarch32] [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 - 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 - S8209951: Problematic sparc intrinsic: com.sun.crypto.provider.CipherBlockChaining - 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 - S8213825: assert(false) failed: Non-balanced monitor enter/exit! Likely JNI locking - S8217315: Proper units should print more significant digits - S8217597: [TESTBUG] old version docker does not support --cpus - S8218020: Fix version number in mesa.md 3rd party legal file - S8220495: Update GIFlib library to the 5.1.8 - S8220718: Missing ResourceMark in nmethod::metadata_do - S8221355: Performance regression after JDK-8155635 backport into 8u - S8222670: pathological case of JIT recompilation and code cache bloat - 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 - S8225716: G1 GC: Undefined behaviour in G1BlockOffsetTablePart::block_at_or_preceding ChangeLog: 2019-07-18 Andrew John Hughes <gnu_andrew@member.fsf.org> Bump aarch32 to jdk8u222-b08-aarch32-190710. * patches/hotspot/aarch32/8064786-pr3601.patch: Removed, now that AArch32 is also using 8u222. * Makefile.am: (ICEDTEA_PATCHES): Remove 8064786/PR3601 from AArch32 section and add 8223511. * NEWS: Updated. * hotspot.map.in: Bump aarch32 to jdk8u222-b08-aarch32-190710. * patches/hotspot/aarch32/6424123-pr3696.patch, * patches/hotspot/aarch32/8141570-pr3548.patch, * patches/hotspot/aarch32/8143245-pr3548.patch: Change back to using symlinks to Shenandoah versions now both are based on 8u222. * patches/hotspot/aarch32/8223511.patch: Backport of HotSpot security fix from 8u222-b09 which is not yet in the AArch32 repo.
author Andrew John Hughes <gnu_andrew@member.fsf.org>
date Thu, 18 Jul 2019 19:52:10 +0100
parents c289e9719dd3
children 511c08c29c8b
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/aarch32/8223511.patch
diffstat 9 files changed, 78 insertions(+), 678 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Thu Jul 18 11:43:51 2019 +0100
+++ b/ChangeLog	Thu Jul 18 19:52:10 2019 +0100
@@ -1,3 +1,23 @@
+2019-07-18  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+	Bump aarch32 to jdk8u222-b08-aarch32-190710.
+	* patches/hotspot/aarch32/8064786-pr3601.patch:
+	Removed, now that AArch32 is also using 8u222.
+	* Makefile.am:
+	(ICEDTEA_PATCHES): Remove 8064786/PR3601 from
+	AArch32 section and add 8223511.
+	* NEWS: Updated.
+	* hotspot.map.in: Bump aarch32 to
+	jdk8u222-b08-aarch32-190710.
+	* patches/hotspot/aarch32/6424123-pr3696.patch,
+	* patches/hotspot/aarch32/8141570-pr3548.patch,
+	* patches/hotspot/aarch32/8143245-pr3548.patch:
+	Change back to using symlinks to Shenandoah
+	versions now both are based on 8u222.
+	* patches/hotspot/aarch32/8223511.patch:
+	Backport of HotSpot security fix from 8u222-b09
+	which is not yet in the AArch32 repo.
+
 2019-07-18  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
 	S8210425, PR3745: [AArch64]
--- a/Makefile.am	Thu Jul 18 11:43:51 2019 +0100
+++ b/Makefile.am	Thu Jul 18 19:52:10 2019 +0100
@@ -350,8 +350,8 @@
 if WITH_AARCH32_HSBUILD
 ICEDTEA_PATCHES += \
 	patches/hotspot/$(HSBUILD)/pr3548-aarch32.patch \
-	patches/hotspot/$(HSBUILD)/8064786-pr3601.patch \
-	patches/hotspot/$(HSBUILD)/8078628-pr3208.patch
+	patches/hotspot/$(HSBUILD)/8078628-pr3208.patch \
+	patches/hotspot/$(HSBUILD)/8223511.patch
 endif
 
 ICEDTEA_PATCHES += \
--- a/NEWS	Thu Jul 18 11:43:51 2019 +0100
+++ b/NEWS	Thu Jul 18 19:52:10 2019 +0100
@@ -376,6 +376,10 @@
   - S8224671, PR3745: AArch64: mauve System.arraycopy test failure
   - S8224828, PR3745: aarch64: rflags is not correct after safepoint poll
   - S8224880, PR3745: AArch64: java/javac error with AllocatePrefetchDistance
+* AArch32 port
+  - [aarch32] fix crash 'guarantee(sect->end() <= tend) failed: sanity'
+  - Remove debug output
+  - S8176100: [aarch32] [REDO][REDO] G1 Needs pre barrier on dereference of weak JNI handles
 
 New in release 3.12.0 (2019-05-01):
 
--- a/hotspot.map.in	Thu Jul 18 11:43:51 2019 +0100
+++ b/hotspot.map.in	Thu Jul 18 19:52:10 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
-aarch32 drop https://icedtea.classpath.org/download/drops/icedtea8/@ICEDTEA_RELEASE@ 57f4048a925b 921202baed30726dc833c94817e07a4baa7d3b1e9129af032b09bd7f0e3bcfd1
+aarch32 drop https://icedtea.classpath.org/download/drops/icedtea8/@ICEDTEA_RELEASE@ 26d64a5c4b9a 68816570a5953d9b04f9b8b15f53f47f2ef4ea76bc16f9935bd94cebc07679c8
--- a/patches/hotspot/aarch32/6424123-pr3696.patch	Thu Jul 18 11:43:51 2019 +0100
+++ b/patches/hotspot/aarch32/6424123-pr3696.patch	Thu Jul 18 19:52:10 2019 +0100
@@ -1,446 +1,1 @@
-# 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";
- 
+../shenandoah/6424123-pr3696.patch
\ No newline at end of file
--- a/patches/hotspot/aarch32/8064786-pr3601.patch	Thu Jul 18 11:43:51 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/aarch32/8141570-pr3548.patch	Thu Jul 18 11:43:51 2019 +0100
+++ b/patches/hotspot/aarch32/8141570-pr3548.patch	Thu Jul 18 19:52:10 2019 +0100
@@ -1,55 +1,1 @@
-# 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"
+../shenandoah/8141570-pr3548.patch
\ No newline at end of file
--- a/patches/hotspot/aarch32/8143245-pr3548.patch	Thu Jul 18 11:43:51 2019 +0100
+++ b/patches/hotspot/aarch32/8143245-pr3548.patch	Thu Jul 18 19:52:10 2019 +0100
@@ -1,146 +1,1 @@
-# 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
+../shenandoah/8143245-pr3548.patch
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/hotspot/aarch32/8223511.patch	Thu Jul 18 19:52:10 2019 +0100
@@ -0,0 +1,48 @@
+# HG changeset patch
+# User andrew
+# Date 1562260843 -3600
+#      Thu Jul 04 18:20:43 2019 +0100
+# Node ID 55f693ba975d445d83a59cc32367ec4c2452b0c5
+# Parent  9deea71d83dd9ddef034f11fdbde6bdcad96b74f
+8223511: Extended AES support
+Reviewed-by: phh, mbalao, bae
+
+diff --git openjdk.orig/hotspot/src/share/vm/classfile/vmSymbols.hpp openjdk/hotspot/src/share/vm/classfile/vmSymbols.hpp
+--- openjdk.orig/hotspot/src/share/vm/classfile/vmSymbols.hpp
++++ openjdk/hotspot/src/share/vm/classfile/vmSymbols.hpp
+@@ -832,21 +832,21 @@
+   do_class(com_sun_crypto_provider_aescrypt,      "com/sun/crypto/provider/AESCrypt")                                   \
+   do_intrinsic(_aescrypt_encryptBlock, com_sun_crypto_provider_aescrypt, encryptBlock_name, byteArray_int_byteArray_int_signature, F_R)   \
+   do_intrinsic(_aescrypt_decryptBlock, com_sun_crypto_provider_aescrypt, decryptBlock_name, byteArray_int_byteArray_int_signature, F_R)   \
+-   do_name(     encryptBlock_name,                                 "encryptBlock")                                      \
+-   do_name(     decryptBlock_name,                                 "decryptBlock")                                      \
++   do_name(     encryptBlock_name,                                 "implEncryptBlock")                                  \
++   do_name(     decryptBlock_name,                                 "implDecryptBlock")                                  \
+    do_signature(byteArray_int_byteArray_int_signature,             "([BI[BI)V")                                         \
+                                                                                                                         \
+   do_class(com_sun_crypto_provider_cipherBlockChaining,            "com/sun/crypto/provider/CipherBlockChaining")       \
+    do_intrinsic(_cipherBlockChaining_encryptAESCrypt, com_sun_crypto_provider_cipherBlockChaining, encrypt_name, byteArray_int_int_byteArray_int_signature, F_R)   \
+    do_intrinsic(_cipherBlockChaining_decryptAESCrypt, com_sun_crypto_provider_cipherBlockChaining, decrypt_name, byteArray_int_int_byteArray_int_signature, F_R)   \
+-   do_name(     encrypt_name,                                      "encrypt")                                           \
+-   do_name(     decrypt_name,                                      "decrypt")                                           \
++   do_name(     encrypt_name,                                      "implEncrypt")                                       \
++   do_name(     decrypt_name,                                      "implDecrypt")                                       \
+    do_signature(byteArray_int_int_byteArray_int_signature,         "([BII[BI)I")                                        \
+                                                                                                                         \
+   /* support for sun.security.provider.SHA */                                                                           \
+   do_class(sun_security_provider_sha,                              "sun/security/provider/SHA")                         \
+   do_intrinsic(_sha_implCompress, sun_security_provider_sha, implCompress_name, implCompress_signature, F_R)            \
+-   do_name(     implCompress_name,                                 "implCompress")                                      \
++   do_name(     implCompress_name,                                 "implCompress0")                                     \
+    do_signature(implCompress_signature,                            "([BI)V")                                            \
+                                                                                                                         \
+   /* support for sun.security.provider.SHA2 */                                                                          \
+@@ -860,7 +860,7 @@
+   /* support for sun.security.provider.DigestBase */                                                                    \
+   do_class(sun_security_provider_digestbase,                       "sun/security/provider/DigestBase")                  \
+   do_intrinsic(_digestBase_implCompressMB, sun_security_provider_digestbase, implCompressMB_name, implCompressMB_signature, F_R)   \
+-   do_name(     implCompressMB_name,                               "implCompressMultiBlock")                            \
++   do_name(     implCompressMB_name,                               "implCompressMultiBlock0")                           \
+    do_signature(implCompressMB_signature,                          "([BII)I")                                           \
+                                                                                                                         \
+   /* support for java.util.zip */                                                                                       \