[oe] [meta-java][PATCH v2] openjdk-8: gcc-8 fix #4: undefined behaviour (hotspot)

Richard Leitner richard.leitner at skidata.com
Tue Aug 14 11:08:11 UTC 2018


Hi André,

this v2 isn't applying to the current master-next... could you please check?


Applying: openjdk-8: gcc-8 fix #4: undefined behaviour (hotspot)
.git/rebase-apply/patch:101: trailing whitespace.
 
.git/rebase-apply/patch:106: trailing whitespace.
 
.git/rebase-apply/patch:108: trailing whitespace.
-- 
.git/rebase-apply/patch:150: trailing whitespace.
 
.git/rebase-apply/patch:152: trailing whitespace.
-- 
error: patch failed: recipes-core/openjdk/openjdk-8-common.inc:216
error: recipes-core/openjdk/openjdk-8-common.inc: patch does not apply
Patch failed at 0001 openjdk-8: gcc-8 fix #4: undefined behaviour (hotspot)


Thanks!

regards;Richard.L


On 8/14/18 12:42 PM, André Draszik wrote:
> From: André Draszik <andre.draszik at jci.com>
> 
> Using gcc-8, Hotspot is being miscompiled, resulting in non-
> working binaries.
> 
> The reason is undefined behaviour, which gcc-8 even warns about
> and errors out. We have so far have taped over those warnings,
> but it turns out that we simply cannot do that.
> 
> Add patches to address undefined behaviour causing miscompilation
> of hotsport.
> 
> This also means we can remove the -Wno-error=return-type C compiler
> flag again which was recently added in error in
> commit 52fb41cec7d5 ("openjdk-8: fix build for gcc8.x") only hiding
> the compiler warnings/errors that were flagging the incorrect code
> in the first place.
> 
> With these patches applied, the openjdk-8 ARM port works again:
> | RESULTS:
> | RESULTS - ping.PingTest.test_ping - Testcase 964: PASSED (0.04s)
> | RESULTS - ssh.SSHTest.test_ssh - Testcase 224: PASSED (0.68s)
> | RESULTS - java.JavaTest.test_java_exists - Testcase -1: PASSED (0.14s)
> | RESULTS - java.JavaTest.test_java_jar_comp_mode - Testcase -1: FAILED (5.13s)
> | RESULTS - java.JavaTest.test_java_jar_int_mode - Testcase -1: PASSED (4.48s)
> | RESULTS - java.JavaTest.test_java_jar_works - Testcase -1: PASSED (4.44s)
> | RESULTS - java.JavaTest.test_java_version - Testcase -1: PASSED (3.66s)
> | RESULTS - javac.JavacTest.test_javac_exists - Testcase -1: PASSED (0.13s)
> | RESULTS - javac.JavacTest.test_javac_works - Testcase -1: PASSED (30.87s)
> | SUMMARY:
> | openjdk-8-test-image () - Ran 9 tests in 50.263s
> 
> The java.JavaTest.test_java_jar_comp_mode failure can be ignored for now,
> as that test verifies compiled mode which is not available on arm. The
> testcase must be fixed instead.
> 
> (We need to refresh one unrelated existing patch to avoid patch fuzz warnings)
> 
> Signed-off-by: André Draszik <andre.draszik at jci.com>
> 
> ---
> v2:
> *  refresh musl-0007-hotspot-os_linux_x86-remove-glibc-dependencies-fpu_c.patch
>    to avoid patch fuzz warnings
> ---
>  recipes-core/openjdk/openjdk-8-common.inc     |   2 +-
>  .../openjdk-8-release-172b11-common.inc       |  13 +
>  ...4-fix-undefined-behaviour-gcc-v8-fix.patch |  41 +++
>  ...Fix-further-functions-with-a-missing.patch |  38 +++
>  ...o-fix-undefined-behaviour-gcc-v8-fix.patch |  42 ++++
>  ...urn-type-issues-introduced-by-806165.patch |  56 +++++
>  ...ero-build-requires-disabled-warnings.patch | 148 +++++++++++
>  ...return-statement-in-__sync_val_compa.patch |  53 ++++
>  ...g-build-after-8062808-Turn-on-the-Wr.patch |  47 ++++
>  ...pot-Turn-on-the-Wreturn-type-warning.patch | 233 ++++++++++++++++++
>  ..._x86-remove-glibc-dependencies-fpu_c.patch |   2 +-
>  11 files changed, 673 insertions(+), 2 deletions(-)
>  create mode 100644 recipes-core/openjdk/patches-openjdk-8/0012-hotspot-aarch64-fix-undefined-behaviour-gcc-v8-fix.patch
>  create mode 100644 recipes-core/openjdk/patches-openjdk-8/0013-hotspot-aarch64-Fix-further-functions-with-a-missing.patch
>  create mode 100644 recipes-core/openjdk/patches-openjdk-8/0014-hotspot-zero-fix-undefined-behaviour-gcc-v8-fix.patch
>  create mode 100644 recipes-core/openjdk/patches-openjdk-8/0015-hotspot-fix-Wreturn-type-issues-introduced-by-806165.patch
>  create mode 100644 recipes-core/openjdk/patches-openjdk-8/0016-hotspot-Zero-build-requires-disabled-warnings.patch
>  create mode 100644 recipes-core/openjdk/patches-openjdk-8/0017-hotspot-Missing-return-statement-in-__sync_val_compa.patch
>  create mode 100644 recipes-core/openjdk/patches-openjdk-8/0018-hotspot-Fix-debug-build-after-8062808-Turn-on-the-Wr.patch
>  create mode 100644 recipes-core/openjdk/patches-openjdk-8/0019-hotspot-Turn-on-the-Wreturn-type-warning.patch
> 
> diff --git a/recipes-core/openjdk/openjdk-8-common.inc b/recipes-core/openjdk/openjdk-8-common.inc
> index 6b2f5e7..ff6e940 100644
> --- a/recipes-core/openjdk/openjdk-8-common.inc
> +++ b/recipes-core/openjdk/openjdk-8-common.inc
> @@ -216,7 +216,7 @@ EXTRA_OECONF_append = "\
>  # of these changes.
>  FLAGS_GCC6 = "-fno-lifetime-dse -fno-delete-null-pointer-checks"
>  FLAGS_GCC7 = "-fno-lifetime-dse -fno-delete-null-pointer-checks"
> -FLAGS_GCC8 = "-fno-lifetime-dse -fno-delete-null-pointer-checks -Wno-error=return-type"
> +FLAGS_GCC8 = "-fno-lifetime-dse -fno-delete-null-pointer-checks"
>  
>  # All supported cross compilers support the compiler flags that were
>  # added to make compilation with gcc6 work. But the host compiler for
> diff --git a/recipes-core/openjdk/openjdk-8-release-172b11-common.inc b/recipes-core/openjdk/openjdk-8-release-172b11-common.inc
> index 8b30c37..4bcecef 100644
> --- a/recipes-core/openjdk/openjdk-8-release-172b11-common.inc
> +++ b/recipes-core/openjdk/openjdk-8-release-172b11-common.inc
> @@ -17,6 +17,19 @@ PATCHES_URI = "\
>      file://0009-jdk-disable-backtrace-musl-build-fix.patch \
>      file://0010-build-fix-build-on-as-needed-toolchains-generic.patch \
>      file://0011-hotspot-backport-patch-to-fix-misuses-of-strncpy-str.patch \
> +    ${HOTSPOT_UB_PATCH} \
> +"
> +HOTSPOT_UB_PATCH = "\
> +    file://0014-hotspot-zero-fix-undefined-behaviour-gcc-v8-fix.patch \
> +    file://0015-hotspot-fix-Wreturn-type-issues-introduced-by-806165.patch \
> +    file://0016-hotspot-Zero-build-requires-disabled-warnings.patch \
> +    file://0017-hotspot-Missing-return-statement-in-__sync_val_compa.patch \
> +    file://0018-hotspot-Fix-debug-build-after-8062808-Turn-on-the-Wr.patch \
> +    file://0019-hotspot-Turn-on-the-Wreturn-type-warning.patch \
> +"
> +HOTSPOT_UB_PATCH_prepend_aarch64 = "\
> +    file://0012-hotspot-aarch64-fix-undefined-behaviour-gcc-v8-fix.patch \
> +    file://0013-hotspot-aarch64-Fix-further-functions-with-a-missing.patch \
>  "
>  # some patches extracted from http://cr.openjdk.java.net/~rkennke/shark-build-hotspot/webrev.01/hotspot.patch
>  # reported via http://mail.openjdk.java.net/pipermail/build-dev/2015-January/013972.html
> diff --git a/recipes-core/openjdk/patches-openjdk-8/0012-hotspot-aarch64-fix-undefined-behaviour-gcc-v8-fix.patch b/recipes-core/openjdk/patches-openjdk-8/0012-hotspot-aarch64-fix-undefined-behaviour-gcc-v8-fix.patch
> new file mode 100644
> index 0000000..e11c19c
> --- /dev/null
> +++ b/recipes-core/openjdk/patches-openjdk-8/0012-hotspot-aarch64-fix-undefined-behaviour-gcc-v8-fix.patch
> @@ -0,0 +1,41 @@
> +From 1fa1097d45afa2fe2bfd989fbd90578f5c5fc540 Mon Sep 17 00:00:00 2001
> +From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <andre.draszik at jci.com>
> +Date: Mon, 13 Aug 2018 12:14:21 +0100
> +Subject: [PATCH] hotspot/aarch64: fix undefined behaviour (gcc v8 fix)
> +MIME-Version: 1.0
> +Content-Type: text/plain; charset=UTF-8
> +Content-Transfer-Encoding: 8bit
> +
> +Backport patch from
> +  http://hg.openjdk.java.net/aarch64-port/jdk8u/hotspot/rev/253b0c304db6
> +to address segfaults due to undefined behaviour.
> +
> +|# HG changeset patch
> +|# User shade
> +|# Date 1526068247 -7200
> +|# Node ID 253b0c304db6d31be3d3d7cf7cf1b3561a16dc3a
> +|# Parent  1ced2ae00e35e6f855175fc44500b37fbac9e314
> +UB in os_linux_aarch64.cpp SpinPause
> +Reviewed-by: aph, shade, adinn
> +
> +Signed-off-by: André Draszik <andre.draszik at jci.com>
> +Upstream-Status: Backport [http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot/rev/ca4663e58916]
> +---
> + hotspot/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp | 1 +
> + 1 file changed, 1 insertion(+)
> +
> +diff --git a/hotspot/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp b/hotspot/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
> +index 8b985693..f536817e 100644
> +--- a/hotspot/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
> ++++ b/hotspot/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
> +@@ -699,6 +699,7 @@ void os::verify_stack_alignment() {
> + 
> + extern "C" {
> +   int SpinPause() {
> ++    return 0;
> +   }
> + 
> +   void _Copy_conjoint_jshorts_atomic(jshort* from, jshort* to, size_t count) {
> +-- 
> +2.18.0
> +
> diff --git a/recipes-core/openjdk/patches-openjdk-8/0013-hotspot-aarch64-Fix-further-functions-with-a-missing.patch b/recipes-core/openjdk/patches-openjdk-8/0013-hotspot-aarch64-Fix-further-functions-with-a-missing.patch
> new file mode 100644
> index 0000000..0216c68
> --- /dev/null
> +++ b/recipes-core/openjdk/patches-openjdk-8/0013-hotspot-aarch64-Fix-further-functions-with-a-missing.patch
> @@ -0,0 +1,38 @@
> +From 3dffe06da016a959f1d8c3afc292ab92a9d4d137 Mon Sep 17 00:00:00 2001
> +From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <andre.draszik at jci.com>
> +Date: Mon, 13 Aug 2018 17:03:56 +0100
> +Subject: [PATCH] hotspot/aarch64: Fix further functions with a missing return
> + value.
> +MIME-Version: 1.0
> +Content-Type: text/plain; charset=UTF-8
> +Content-Transfer-Encoding: 8bit
> +
> +|# HG changeset patch
> +|# User andrew
> +|# Date 1518669922 0
> +|#      Thu Feb 15 04:45:22 2018 +0000
> +|# Node ID adaf109718c10888cce5b6e73af7f3e15a7ab0db
> +|# Parent  3ade0115344b77e6d00462044e0cf68722685bfe
> +PR3519: Fix further functions with a missing return value.
> +
> +Signed-off-by: André Draszik <andre.draszik at jci.com>
> +Upstream-Status: Backport
> +---
> + hotspot/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp | 1 +
> + 1 file changed, 1 insertion(+)
> +
> +diff --git a/hotspot/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp b/hotspot/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp
> +index 4e98cb39..bbc81b4a 100644
> +--- a/hotspot/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp
> ++++ b/hotspot/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp
> +@@ -205,6 +205,7 @@ Address LIR_Assembler::as_Address(LIR_Address* addr, Register tmp) {
> +       return Address(base, tmp, Address::lsl(addr->scale()));
> +     }
> +   }
> ++  return Address();
> + }
> + 
> + Address LIR_Assembler::as_Address_hi(LIR_Address* addr) {
> +-- 
> +2.18.0
> +
> diff --git a/recipes-core/openjdk/patches-openjdk-8/0014-hotspot-zero-fix-undefined-behaviour-gcc-v8-fix.patch b/recipes-core/openjdk/patches-openjdk-8/0014-hotspot-zero-fix-undefined-behaviour-gcc-v8-fix.patch
> new file mode 100644
> index 0000000..467a1cd
> --- /dev/null
> +++ b/recipes-core/openjdk/patches-openjdk-8/0014-hotspot-zero-fix-undefined-behaviour-gcc-v8-fix.patch
> @@ -0,0 +1,42 @@
> +From 3bd88f93a90876f8ead05de40816da0bd1e39aac Mon Sep 17 00:00:00 2001
> +From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <andre.draszik at jci.com>
> +Date: Mon, 13 Aug 2018 11:49:26 +0100
> +Subject: [PATCH] hotspot/zero: fix undefined behaviour (gcc v8 fix)
> +MIME-Version: 1.0
> +Content-Type: text/plain; charset=UTF-8
> +Content-Transfer-Encoding: 8bit
> +
> +Backport patch from
> +  https://bugs.openjdk.java.net/browse/JDK-8202600
> +  http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot/rev/ca4663e58916
> +to address segfaults due to undefined behaviour.
> +
> +|# HG changeset patch
> +|# User sgehwolf
> +|# Date 1525366788 -7200
> +|# Node ID ca4663e589160509d6aef8ec890815e1330b97bc
> +|# Parent  a27880c1288ba776f65748b68c198df97427f950
> +8202600: [Zero] Undefined behaviour in src/os_cpu/linux_zero/vm/os_linux_zero.cpp
> +Reviewed-by: stuefe, shade, dholmes
> +
> +Signed-off-by: André Draszik <andre.draszik at jci.com>
> +Upstream-Status: Backport [http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot/rev/ca4663e58916]
> +---
> + hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp | 1 +
> + 1 file changed, 1 insertion(+)
> +
> +diff --git a/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp b/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
> +index 1d069c6d..8dcf9d44 100644
> +--- a/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
> ++++ b/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
> +@@ -408,6 +408,7 @@ void os::print_register_info(outputStream *st, void *context) {
> + 
> + extern "C" {
> +   int SpinPause() {
> ++    return 0; // Shouldn't matter.
> +   }
> + 
> + 
> +-- 
> +2.18.0
> +
> diff --git a/recipes-core/openjdk/patches-openjdk-8/0015-hotspot-fix-Wreturn-type-issues-introduced-by-806165.patch b/recipes-core/openjdk/patches-openjdk-8/0015-hotspot-fix-Wreturn-type-issues-introduced-by-806165.patch
> new file mode 100644
> index 0000000..fb7bb59
> --- /dev/null
> +++ b/recipes-core/openjdk/patches-openjdk-8/0015-hotspot-fix-Wreturn-type-issues-introduced-by-806165.patch
> @@ -0,0 +1,56 @@
> +From f6424c46b4af08d0662eec1a5897d5502270a3b1 Mon Sep 17 00:00:00 2001
> +From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <andre.draszik at jci.com>
> +Date: Mon, 13 Aug 2018 16:40:34 +0100
> +Subject: [PATCH 1/5] hotspot: fix -Wreturn-type issues introduced by 8061651
> +MIME-Version: 1.0
> +Content-Type: text/plain; charset=UTF-8
> +Content-Transfer-Encoding: 8bit
> +
> +|# HG changeset patch
> +|# User andrew
> +|# Date 1529475043 -3600
> +|#      Wed Jun 20 07:10:43 2018 +0100
> +|# Node ID f6341f4635dacb56678264d29a88cd052b74036b
> +|# Parent  30520d5018b509b0ae68f5fcc9a5c540e3e5b2de
> +PR3601: Fix additional -Wreturn-type issues introduced by 8061651
> +
> +Signed-off-by: André Draszik <andre.draszik at jci.com>
> +Upstream-Status: Backport
> +---
> + hotspot/src/share/vm/prims/jvm.cpp | 6 +++---
> + 1 file changed, 3 insertions(+), 3 deletions(-)
> +
> +diff --git a/hotspot/src/share/vm/prims/jvm.cpp b/hotspot/src/share/vm/prims/jvm.cpp
> +index 07c36de8..067fd3ac 100644
> +--- a/hotspot/src/share/vm/prims/jvm.cpp
> ++++ b/hotspot/src/share/vm/prims/jvm.cpp
> +@@ -835,7 +835,7 @@ JVM_END
> + JVM_ENTRY(jboolean, JVM_KnownToNotExist(JNIEnv *env, jobject loader, const char *classname))
> +   JVMWrapper("JVM_KnownToNotExist");
> + #if INCLUDE_CDS
> +-  return ClassLoaderExt::known_to_not_exist(env, loader, classname, CHECK_(false));
> ++  return ClassLoaderExt::known_to_not_exist(env, loader, classname, THREAD);
> + #else
> +   return false;
> + #endif
> +@@ -845,7 +845,7 @@ JVM_END
> + JVM_ENTRY(jobjectArray, JVM_GetResourceLookupCacheURLs(JNIEnv *env, jobject loader))
> +   JVMWrapper("JVM_GetResourceLookupCacheURLs");
> + #if INCLUDE_CDS
> +-  return ClassLoaderExt::get_lookup_cache_urls(env, loader, CHECK_NULL);
> ++  return ClassLoaderExt::get_lookup_cache_urls(env, loader, THREAD);
> + #else
> +   return NULL;
> + #endif
> +@@ -855,7 +855,7 @@ JVM_END
> + JVM_ENTRY(jintArray, JVM_GetResourceLookupCache(JNIEnv *env, jobject loader, const char *resource_name))
> +   JVMWrapper("JVM_GetResourceLookupCache");
> + #if INCLUDE_CDS
> +-  return ClassLoaderExt::get_lookup_cache(env, loader, resource_name, CHECK_NULL);
> ++  return ClassLoaderExt::get_lookup_cache(env, loader, resource_name, THREAD);
> + #else
> +   return NULL;
> + #endif
> +-- 
> +2.18.0
> +
> diff --git a/recipes-core/openjdk/patches-openjdk-8/0016-hotspot-Zero-build-requires-disabled-warnings.patch b/recipes-core/openjdk/patches-openjdk-8/0016-hotspot-Zero-build-requires-disabled-warnings.patch
> new file mode 100644
> index 0000000..d6bedbc
> --- /dev/null
> +++ b/recipes-core/openjdk/patches-openjdk-8/0016-hotspot-Zero-build-requires-disabled-warnings.patch
> @@ -0,0 +1,148 @@
> +From 43c1f744e5f6171df3158baf88dd0a64c4b5e439 Mon Sep 17 00:00:00 2001
> +From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <andre.draszik at jci.com>
> +Date: Mon, 13 Aug 2018 16:45:24 +0100
> +Subject: [PATCH 2/5] hotspot: Zero build requires disabled warnings
> +MIME-Version: 1.0
> +Content-Type: text/plain; charset=UTF-8
> +Content-Transfer-Encoding: 8bit
> +
> +|# 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
> +
> +Signed-off-by: André Draszik <andre.draszik at jci.com>
> +Upstream-Status: Backport
> +---
> + hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp  |  2 +-
> + hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp   |  4 ++--
> + .../src/os_cpu/linux_zero/vm/os_linux_zero.cpp   | 16 +++++++++++++---
> + .../os_cpu/linux_zero/vm/thread_linux_zero.hpp   |  3 ++-
> + 4 files changed, 18 insertions(+), 7 deletions(-)
> +
> +diff --git a/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp b/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
> +index 242ce1cf..065471af 100644
> +--- a/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
> ++++ b/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
> +@@ -100,7 +100,7 @@ intptr_t narrow(BasicType type, intptr_t result) {
> +     case T_DOUBLE:
> +     case T_VOID:
> +       return result;
> +-    default  : ShouldNotReachHere();
> ++    default  : ShouldNotReachHere(); return NULL_WORD;
> +   }
> + }
> + 
> +diff --git a/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp b/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp
> +index e23e3eaa..061ed8ce 100644
> +--- a/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp
> ++++ b/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp
> +@@ -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::pass_object() {
> + }
> + 
> + void InterpreterRuntime::SignatureHandlerGeneratorBase::push(BasicType type) {
> +-  ffi_type *ftype;
> ++  ffi_type *ftype = NULL;
> +   switch (type) {
> +   case T_VOID:
> +     ftype = &ffi_type_void;
> +diff --git a/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp b/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
> +index 8dcf9d44..508eb172 100644
> +--- a/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
> ++++ b/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
> +@@ -1,6 +1,6 @@
> + /*
> +  * Copyright (c) 2003, 2013, 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 @@ address os::current_stack_pointer() {
> + 
> + 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 @@ void os::initialize_thread(Thread * thr){
> + 
> + 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 @@ JVM_handle_linux_signal(int sig,
> +   }
> + #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 @@ void os::Linux::init_thread_fpu_state(void) {
> + 
> + int os::Linux::get_fpu_control_word() {
> +   ShouldNotCallThis();
> ++  return -1; // silence compile warnings
> + }
> + 
> + void os::Linux::set_fpu_control_word(int fpu) {
> +diff --git a/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp b/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp
> +index 39f77f85..b9c73dc4 100644
> +--- a/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp
> ++++ b/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp
> +@@ -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
> +-- 
> +2.18.0
> +
> diff --git a/recipes-core/openjdk/patches-openjdk-8/0017-hotspot-Missing-return-statement-in-__sync_val_compa.patch b/recipes-core/openjdk/patches-openjdk-8/0017-hotspot-Missing-return-statement-in-__sync_val_compa.patch
> new file mode 100644
> index 0000000..001e905
> --- /dev/null
> +++ b/recipes-core/openjdk/patches-openjdk-8/0017-hotspot-Missing-return-statement-in-__sync_val_compa.patch
> @@ -0,0 +1,53 @@
> +From 6e1d92639787ac8f506f810776a3f1c35f2cd070 Mon Sep 17 00:00:00 2001
> +From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <andre.draszik at jci.com>
> +Date: Mon, 13 Aug 2018 16:46:33 +0100
> +Subject: [PATCH 3/5] hotspot: Missing return statement in
> + __sync_val_compare_and_swap_8
> +MIME-Version: 1.0
> +Content-Type: text/plain; charset=UTF-8
> +Content-Transfer-Encoding: 8bit
> +
> +|# HG changeset patch
> +|# User andrew
> +|# Date 1518667645 0
> +|#      Thu Feb 15 04:07:25 2018 +0000
> +|# Node ID 1d35411eb7bdf16191e220ffe3b1dc4d5d0c6041
> +|# Parent  999983606f5c61b093c6f6316a7b26c4cd4ca79e
> +8197981, PR3548: Missing return statement in __sync_val_compare_and_swap_8
> +Summary: Fix issue discovered by -Wreturn-type on systems without LP64.
> +Reviewed-by: aph
> +
> +Signed-off-by: André Draszik <andre.draszik at jci.com>
> +Upstream-Status: Backport
> +---
> + hotspot/src/os_cpu/bsd_zero/vm/os_bsd_zero.cpp     | 1 +
> + hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp | 1 +
> + 2 files changed, 2 insertions(+)
> +
> +diff --git a/hotspot/src/os_cpu/bsd_zero/vm/os_bsd_zero.cpp b/hotspot/src/os_cpu/bsd_zero/vm/os_bsd_zero.cpp
> +index c857b552..4aaf78b1 100644
> +--- a/hotspot/src/os_cpu/bsd_zero/vm/os_bsd_zero.cpp
> ++++ b/hotspot/src/os_cpu/bsd_zero/vm/os_bsd_zero.cpp
> +@@ -457,6 +457,7 @@ extern "C" {
> +     long long unsigned int oldval,
> +     long long unsigned int newval) {
> +     ShouldNotCallThis();
> ++    return 0;
> +   }
> + };
> + #endif // !_LP64
> +diff --git a/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp b/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
> +index 508eb172..bb8fa1f1 100644
> +--- a/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
> ++++ b/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
> +@@ -498,6 +498,7 @@ extern "C" {
> +     long long unsigned int oldval,
> +     long long unsigned int newval) {
> +     ShouldNotCallThis();
> ++    return 0;
> +   }
> + };
> + #endif // !_LP64
> +-- 
> +2.18.0
> +
> diff --git a/recipes-core/openjdk/patches-openjdk-8/0018-hotspot-Fix-debug-build-after-8062808-Turn-on-the-Wr.patch b/recipes-core/openjdk/patches-openjdk-8/0018-hotspot-Fix-debug-build-after-8062808-Turn-on-the-Wr.patch
> new file mode 100644
> index 0000000..1421963
> --- /dev/null
> +++ b/recipes-core/openjdk/patches-openjdk-8/0018-hotspot-Fix-debug-build-after-8062808-Turn-on-the-Wr.patch
> @@ -0,0 +1,47 @@
> +From dbf31e2dfd00e20ab49af70f3533a348e8a6515e Mon Sep 17 00:00:00 2001
> +From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <andre.draszik at jci.com>
> +Date: Mon, 13 Aug 2018 16:47:25 +0100
> +Subject: [PATCH 4/5] hotspot: Fix debug build after 8062808: Turn on the
> + -Wreturn-type warning
> +MIME-Version: 1.0
> +Content-Type: text/plain; charset=UTF-8
> +Content-Transfer-Encoding: 8bit
> +
> +|# HG changeset patch
> +|# User goetz
> +|# Date 1415873641 -3600
> +|#      Thu Nov 13 11:14:01 2014 +0100
> +|# Node ID 1878c4c1d04e1f3c6f67a19d36c35863d6b5f906
> +|# Parent  533473c67de6ff767710594639033c8e83523fe5
> +8064786, PR3599: Fix debug build after 8062808: Turn on the -Wreturn-type warning
> +Reviewed-by: stefank, tschatzl
> +
> +Signed-off-by: André Draszik <andre.draszik at jci.com>
> +Upstream-Status: Backport
> +---
> + hotspot/src/share/vm/prims/jni.cpp | 2 ++
> + 1 file changed, 2 insertions(+)
> +
> +diff --git a/hotspot/src/share/vm/prims/jni.cpp b/hotspot/src/share/vm/prims/jni.cpp
> +index 6a6ab936..e2f2ad3b 100644
> +--- a/hotspot/src/share/vm/prims/jni.cpp
> ++++ b/hotspot/src/share/vm/prims/jni.cpp
> +@@ -708,6 +708,7 @@ JNI_ENTRY(jint, jni_Throw(JNIEnv *env, jthrowable obj))
> + 
> +   THROW_OOP_(JNIHandles::resolve(obj), JNI_OK);
> +   ShouldNotReachHere();
> ++  return 0;  // Mute compiler.
> + JNI_END
> + 
> + #ifndef USDT2
> +@@ -734,6 +735,7 @@ JNI_ENTRY(jint, jni_ThrowNew(JNIEnv *env, jclass clazz, const char *message))
> +   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
> + 
> + 
> +-- 
> +2.18.0
> +
> diff --git a/recipes-core/openjdk/patches-openjdk-8/0019-hotspot-Turn-on-the-Wreturn-type-warning.patch b/recipes-core/openjdk/patches-openjdk-8/0019-hotspot-Turn-on-the-Wreturn-type-warning.patch
> new file mode 100644
> index 0000000..0156978
> --- /dev/null
> +++ b/recipes-core/openjdk/patches-openjdk-8/0019-hotspot-Turn-on-the-Wreturn-type-warning.patch
> @@ -0,0 +1,233 @@
> +From cc0d371f17c0ab060eb1e6b42d4bf053a2cbc3ba Mon Sep 17 00:00:00 2001
> +From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <andre.draszik at jci.com>
> +Date: Mon, 13 Aug 2018 16:48:32 +0100
> +Subject: [PATCH 5/5] hotspot: Turn on the -Wreturn-type warning
> +MIME-Version: 1.0
> +Content-Type: text/plain; charset=UTF-8
> +Content-Transfer-Encoding: 8bit
> +
> +|# HG changeset patch
> +|# User stefank
> +|# Date 1525453613 -3600
> +|#      Fri May 04 18:06:53 2018 +0100
> +|# Node ID 07a1135a327362f157955d470fad5df07cc35164
> +|# Parent  de79964656fc652f2085dac4fe99bcc128b5a3b1
> +8062808, PR3548: Turn on the -Wreturn-type warning
> +Reviewed-by: mgerdin, tschatzl, coleenp, jrose, kbarrett
> +
> +Signed-off-by: André Draszik <andre.draszik at jci.com>
> +Upstream-Status: Backport
> +---
> + hotspot/make/linux/makefiles/gcc.make               | 2 +-
> + hotspot/src/cpu/x86/vm/x86_32.ad                    | 1 +
> + hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp    | 1 +
> + hotspot/src/share/vm/classfile/defaultMethods.cpp   | 4 ++--
> + hotspot/src/share/vm/classfile/symbolTable.cpp      | 4 ++--
> + hotspot/src/share/vm/classfile/systemDictionary.cpp | 6 +++---
> + hotspot/src/share/vm/memory/heapInspection.hpp      | 2 +-
> + hotspot/src/share/vm/memory/metaspaceShared.hpp     | 2 +-
> + hotspot/src/share/vm/oops/constantPool.hpp          | 2 +-
> + hotspot/src/share/vm/prims/jvm.cpp                  | 2 +-
> + hotspot/src/share/vm/runtime/reflection.cpp         | 2 +-
> + hotspot/src/share/vm/runtime/sharedRuntime.cpp      | 2 +-
> + hotspot/src/share/vm/services/memTracker.hpp        | 2 +-
> + 13 files changed, 17 insertions(+), 15 deletions(-)
> +
> +diff --git a/hotspot/make/linux/makefiles/gcc.make b/hotspot/make/linux/makefiles/gcc.make
> +index 272afcea..157afff2 100644
> +--- a/hotspot/make/linux/makefiles/gcc.make
> ++++ b/hotspot/make/linux/makefiles/gcc.make
> +@@ -207,7 +207,7 @@ ifeq ($(USE_CLANG), true)
> +   WARNINGS_ARE_ERRORS += -Wno-return-type -Wno-empty-body
> + endif
> + 
> +-WARNING_FLAGS = -Wpointer-arith -Wsign-compare -Wundef -Wunused-function -Wunused-value
> ++WARNING_FLAGS = -Wpointer-arith -Wsign-compare -Wundef -Wunused-function -Wunused-value -Wreturn-type
> + 
> + ifeq ($(USE_CLANG),)
> +   # Since GCC 4.3, -Wconversion has changed its meanings to warn these implicit
> +diff --git a/hotspot/src/cpu/x86/vm/x86_32.ad b/hotspot/src/cpu/x86/vm/x86_32.ad
> +index f42d1a28..c8f4ee16 100644
> +--- a/hotspot/src/cpu/x86/vm/x86_32.ad
> ++++ b/hotspot/src/cpu/x86/vm/x86_32.ad
> +@@ -1250,6 +1250,7 @@ uint MachSpillCopyNode::implementation( CodeBuffer *cbuf, PhaseRegAlloc *ra_, bo
> + 
> + 
> +   Unimplemented();
> ++  return 0; // Mute compiler
> + }
> + 
> + #ifndef PRODUCT
> +diff --git a/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp b/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp
> +index fb96738a..4cdeb372 100644
> +--- a/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp
> ++++ b/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp
> +@@ -541,6 +541,7 @@ JVM_handle_linux_signal(int sig,
> +   err.report_and_die();
> + 
> +   ShouldNotReachHere();
> ++  return true; // Mute compiler
> + }
> + 
> + void os::Linux::init_thread_fpu_state(void) {
> +diff --git a/hotspot/src/share/vm/classfile/defaultMethods.cpp b/hotspot/src/share/vm/classfile/defaultMethods.cpp
> +index 0e3d5d7b..d3df1d15 100644
> +--- a/hotspot/src/share/vm/classfile/defaultMethods.cpp
> ++++ b/hotspot/src/share/vm/classfile/defaultMethods.cpp
> +@@ -506,7 +506,7 @@ Symbol* MethodFamily::generate_method_message(Symbol *klass_name, Method* method
> +   ss.write((const char*)name->bytes(), name->utf8_length());
> +   ss.write((const char*)signature->bytes(), signature->utf8_length());
> +   ss.print(" is abstract");
> +-  return SymbolTable::new_symbol(ss.base(), (int)ss.size(), CHECK_NULL);
> ++  return SymbolTable::new_symbol(ss.base(), (int)ss.size(), THREAD);
> + }
> + 
> + Symbol* MethodFamily::generate_conflicts_message(GrowableArray<Method*>* methods, TRAPS) const {
> +@@ -521,7 +521,7 @@ Symbol* MethodFamily::generate_conflicts_message(GrowableArray<Method*>* methods
> +     ss.print(".");
> +     ss.write((const char*)name->bytes(), name->utf8_length());
> +   }
> +-  return SymbolTable::new_symbol(ss.base(), (int)ss.size(), CHECK_NULL);
> ++  return SymbolTable::new_symbol(ss.base(), (int)ss.size(), THREAD);
> + }
> + 
> + 
> +diff --git a/hotspot/src/share/vm/classfile/symbolTable.cpp b/hotspot/src/share/vm/classfile/symbolTable.cpp
> +index ec97077b..2621a7d6 100644
> +--- a/hotspot/src/share/vm/classfile/symbolTable.cpp
> ++++ b/hotspot/src/share/vm/classfile/symbolTable.cpp
> +@@ -249,7 +249,7 @@ Symbol* SymbolTable::lookup(const char* name, int len, TRAPS) {
> +   MutexLocker ml(SymbolTable_lock, THREAD);
> + 
> +   // Otherwise, add to symbol to table
> +-  return the_table()->basic_add(index, (u1*)name, len, hashValue, true, CHECK_NULL);
> ++  return the_table()->basic_add(index, (u1*)name, len, hashValue, true, THREAD);
> + }
> + 
> + Symbol* SymbolTable::lookup(const Symbol* sym, int begin, int end, TRAPS) {
> +@@ -288,7 +288,7 @@ Symbol* SymbolTable::lookup(const Symbol* sym, int begin, int end, TRAPS) {
> +   // Grab SymbolTable_lock first.
> +   MutexLocker ml(SymbolTable_lock, THREAD);
> + 
> +-  return the_table()->basic_add(index, (u1*)buffer, len, hashValue, true, CHECK_NULL);
> ++  return the_table()->basic_add(index, (u1*)buffer, len, hashValue, true, THREAD);
> + }
> + 
> + Symbol* SymbolTable::lookup_only(const char* name, int len,
> +diff --git a/hotspot/src/share/vm/classfile/systemDictionary.cpp b/hotspot/src/share/vm/classfile/systemDictionary.cpp
> +index 8d2e7f49..62bdba3e 100644
> +--- a/hotspot/src/share/vm/classfile/systemDictionary.cpp
> ++++ b/hotspot/src/share/vm/classfile/systemDictionary.cpp
> +@@ -229,15 +229,15 @@ Klass* SystemDictionary::resolve_or_null(Symbol* class_name, Handle class_loader
> +                  class_name->as_C_string(),
> +                  class_loader.is_null() ? "null" : class_loader->klass()->name()->as_C_string()));
> +   if (FieldType::is_array(class_name)) {
> +-    return resolve_array_class_or_null(class_name, class_loader, protection_domain, CHECK_NULL);
> ++    return resolve_array_class_or_null(class_name, class_loader, protection_domain, THREAD);
> +   } else if (FieldType::is_obj(class_name)) {
> +     ResourceMark rm(THREAD);
> +     // Ignore wrapping L and ;.
> +     TempNewSymbol name = SymbolTable::new_symbol(class_name->as_C_string() + 1,
> +                                    class_name->utf8_length() - 2, CHECK_NULL);
> +-    return resolve_instance_class_or_null(name, class_loader, protection_domain, CHECK_NULL);
> ++    return resolve_instance_class_or_null(name, class_loader, protection_domain, THREAD);
> +   } else {
> +-    return resolve_instance_class_or_null(class_name, class_loader, protection_domain, CHECK_NULL);
> ++    return resolve_instance_class_or_null(class_name, class_loader, protection_domain, THREAD);
> +   }
> + }
> + 
> +diff --git a/hotspot/src/share/vm/memory/heapInspection.hpp b/hotspot/src/share/vm/memory/heapInspection.hpp
> +index 09ee6602..c5fec15c 100644
> +--- a/hotspot/src/share/vm/memory/heapInspection.hpp
> ++++ b/hotspot/src/share/vm/memory/heapInspection.hpp
> +@@ -367,7 +367,7 @@ class HeapInspection : public StackObj {
> +       _csv_format(csv_format), _print_help(print_help),
> +       _print_class_stats(print_class_stats), _columns(columns) {}
> +   void heap_inspection(outputStream* st) NOT_SERVICES_RETURN;
> +-  size_t populate_table(KlassInfoTable* cit, BoolObjectClosure* filter = NULL) NOT_SERVICES_RETURN;
> ++  size_t populate_table(KlassInfoTable* cit, BoolObjectClosure* filter = NULL) NOT_SERVICES_RETURN_(0);
> +   static void find_instances_at_safepoint(Klass* k, GrowableArray<oop>* result) NOT_SERVICES_RETURN;
> +  private:
> +   void iterate_over_heap(KlassInfoTable* cit, BoolObjectClosure* filter = NULL);
> +diff --git a/hotspot/src/share/vm/memory/metaspaceShared.hpp b/hotspot/src/share/vm/memory/metaspaceShared.hpp
> +index 2f3abae6..d58ebecb 100644
> +--- a/hotspot/src/share/vm/memory/metaspaceShared.hpp
> ++++ b/hotspot/src/share/vm/memory/metaspaceShared.hpp
> +@@ -93,7 +93,7 @@ class MetaspaceShared : AllStatic {
> +   static void preload_and_dump(TRAPS) NOT_CDS_RETURN;
> +   static int preload_and_dump(const char * class_list_path,
> +                               GrowableArray<Klass*>* class_promote_order,
> +-                              TRAPS) NOT_CDS_RETURN;
> ++                              TRAPS) NOT_CDS_RETURN_(0);
> + 
> +   static ReservedSpace* shared_rs() {
> +     CDS_ONLY(return _shared_rs);
> +diff --git a/hotspot/src/share/vm/oops/constantPool.hpp b/hotspot/src/share/vm/oops/constantPool.hpp
> +index f170decc..a1e168b2 100644
> +--- a/hotspot/src/share/vm/oops/constantPool.hpp
> ++++ b/hotspot/src/share/vm/oops/constantPool.hpp
> +@@ -349,7 +349,7 @@ class ConstantPool : public Metadata {
> + 
> +   Klass* klass_at(int which, TRAPS) {
> +     constantPoolHandle h_this(THREAD, this);
> +-    return klass_at_impl(h_this, which, CHECK_NULL);
> ++    return klass_at_impl(h_this, which, THREAD);
> +   }
> + 
> +   Symbol* klass_name_at(int which);  // Returns the name, w/o resolving.
> +diff --git a/hotspot/src/share/vm/prims/jvm.cpp b/hotspot/src/share/vm/prims/jvm.cpp
> +index 067fd3ac..b9e5b322 100644
> +--- a/hotspot/src/share/vm/prims/jvm.cpp
> ++++ b/hotspot/src/share/vm/prims/jvm.cpp
> +@@ -4280,7 +4280,7 @@ JVM_ENTRY(jlong,JVM_DTraceActivate(
> +     JVM_DTraceProvider* providers))
> +   JVMWrapper("JVM_DTraceActivate");
> +   return DTraceJSDT::activate(
> +-    version, module_name, providers_count, providers, CHECK_0);
> ++    version, module_name, providers_count, providers, THREAD);
> + JVM_END
> + 
> + JVM_ENTRY(jboolean,JVM_DTraceIsProbeEnabled(JNIEnv* env, jmethodID method))
> +diff --git a/hotspot/src/share/vm/runtime/reflection.cpp b/hotspot/src/share/vm/runtime/reflection.cpp
> +index e2f282ee..679e1775 100644
> +--- a/hotspot/src/share/vm/runtime/reflection.cpp
> ++++ b/hotspot/src/share/vm/runtime/reflection.cpp
> +@@ -1093,7 +1093,7 @@ oop Reflection::invoke(instanceKlassHandle klass, methodHandle reflected_method,
> +   } else {
> +     if (rtype == T_BOOLEAN || rtype == T_BYTE || rtype == T_CHAR || rtype == T_SHORT)
> +       narrow((jvalue*) result.get_value_addr(), rtype, CHECK_NULL);
> +-    return box((jvalue*) result.get_value_addr(), rtype, CHECK_NULL);
> ++    return box((jvalue*) result.get_value_addr(), rtype, THREAD);
> +   }
> + }
> + 
> +diff --git a/hotspot/src/share/vm/runtime/sharedRuntime.cpp b/hotspot/src/share/vm/runtime/sharedRuntime.cpp
> +index 8ffa8ab3..219bcd5c 100644
> +--- a/hotspot/src/share/vm/runtime/sharedRuntime.cpp
> ++++ b/hotspot/src/share/vm/runtime/sharedRuntime.cpp
> +@@ -1038,7 +1038,7 @@ Handle SharedRuntime::find_callee_info(JavaThread* thread, Bytecodes::Code& bc,
> +   // last java frame on stack (which includes native call frames)
> +   vframeStream vfst(thread, true);  // Do not skip and javaCalls
> + 
> +-  return find_callee_info_helper(thread, vfst, bc, callinfo, CHECK_(Handle()));
> ++  return find_callee_info_helper(thread, vfst, bc, callinfo, THREAD);
> + }
> + 
> + 
> +diff --git a/hotspot/src/share/vm/services/memTracker.hpp b/hotspot/src/share/vm/services/memTracker.hpp
> +index 38a027ea..13436a4b 100644
> +--- a/hotspot/src/share/vm/services/memTracker.hpp
> ++++ b/hotspot/src/share/vm/services/memTracker.hpp
> +@@ -64,7 +64,7 @@ class MemTracker : AllStatic {
> +     const NativeCallStack& stack, MEMFLAGS flag = mtNone) { }
> +   static inline void record_virtual_memory_commit(void* addr, size_t size, const NativeCallStack& stack) { }
> +   static inline Tracker get_virtual_memory_uncommit_tracker() { return Tracker(); }
> +-  static inline Tracker get_virtual_memory_release_tracker() { }
> ++  static inline Tracker get_virtual_memory_release_tracker() { return Tracker(); }
> +   static inline void record_virtual_memory_type(void* addr, MEMFLAGS flag) { }
> +   static inline void record_thread_stack(void* addr, size_t size) { }
> +   static inline void release_thread_stack(void* addr, size_t size) { }
> +-- 
> +2.18.0
> +
> diff --git a/recipes-core/openjdk/patches-openjdk-8/musl-0007-hotspot-os_linux_x86-remove-glibc-dependencies-fpu_c.patch b/recipes-core/openjdk/patches-openjdk-8/musl-0007-hotspot-os_linux_x86-remove-glibc-dependencies-fpu_c.patch
> index fcad102..7dcb889 100644
> --- a/recipes-core/openjdk/patches-openjdk-8/musl-0007-hotspot-os_linux_x86-remove-glibc-dependencies-fpu_c.patch
> +++ b/recipes-core/openjdk/patches-openjdk-8/musl-0007-hotspot-os_linux_x86-remove-glibc-dependencies-fpu_c.patch
> @@ -32,7 +32,7 @@ index fb96738a..982ce84d 100644
>   #ifdef AMD64
>   #define REG_SP REG_RSP
>  @@ -543,6 +542,9 @@ JVM_handle_linux_signal(int sig,
> -   ShouldNotReachHere();
> +   return true; // Mute compiler
>   }
>   
>  +#define _FPU_GETCW(cw) __asm__ __volatile__ ("fnstcw %0" : "=m" (*&cw))
> 



More information about the Openembedded-devel mailing list