summaryrefslogtreecommitdiffstats
path: root/recipes-core/openjdk/patches-openjdk-8/0017-hotspot-Missing-return-statement-in-__sync_val_compa.patch
diff options
context:
space:
mode:
authorAndré Draszik <andre.draszik@jci.com>2018-08-14 13:50:58 +0100
committerRichard Leitner <richard.leitner@skidata.com>2018-08-14 16:41:47 +0200
commite89564dc67cf0136d998a73813c74d9e174f30af (patch)
treeb6b8b90360be488da280b06833c604858fea8c6a /recipes-core/openjdk/patches-openjdk-8/0017-hotspot-Missing-return-statement-in-__sync_val_compa.patch
parentcd17a0f9389594d931d859472c18d166d4996df1 (diff)
downloadmeta-java-e89564dc67cf0136d998a73813c74d9e174f30af.tar.gz
openjdk-8: gcc-8 fix #4: undefined behaviour (hotspot)
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@jci.com> Signed-off-by: Richard Leitner <richard.leitner@skidata.com>
Diffstat (limited to 'recipes-core/openjdk/patches-openjdk-8/0017-hotspot-Missing-return-statement-in-__sync_val_compa.patch')
-rw-r--r--recipes-core/openjdk/patches-openjdk-8/0017-hotspot-Missing-return-statement-in-__sync_val_compa.patch53
1 files changed, 53 insertions, 0 deletions
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 @@
1From 6e1d92639787ac8f506f810776a3f1c35f2cd070 Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <andre.draszik@jci.com>
3Date: Mon, 13 Aug 2018 16:46:33 +0100
4Subject: [PATCH 3/5] hotspot: Missing return statement in
5 __sync_val_compare_and_swap_8
6MIME-Version: 1.0
7Content-Type: text/plain; charset=UTF-8
8Content-Transfer-Encoding: 8bit
9
10|# HG changeset patch
11|# User andrew
12|# Date 1518667645 0
13|# Thu Feb 15 04:07:25 2018 +0000
14|# Node ID 1d35411eb7bdf16191e220ffe3b1dc4d5d0c6041
15|# Parent 999983606f5c61b093c6f6316a7b26c4cd4ca79e
168197981, PR3548: Missing return statement in __sync_val_compare_and_swap_8
17Summary: Fix issue discovered by -Wreturn-type on systems without LP64.
18Reviewed-by: aph
19
20Signed-off-by: André Draszik <andre.draszik@jci.com>
21Upstream-Status: Backport
22---
23 hotspot/src/os_cpu/bsd_zero/vm/os_bsd_zero.cpp | 1 +
24 hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp | 1 +
25 2 files changed, 2 insertions(+)
26
27diff --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
28index c857b552..4aaf78b1 100644
29--- a/hotspot/src/os_cpu/bsd_zero/vm/os_bsd_zero.cpp
30+++ b/hotspot/src/os_cpu/bsd_zero/vm/os_bsd_zero.cpp
31@@ -457,6 +457,7 @@ extern "C" {
32 long long unsigned int oldval,
33 long long unsigned int newval) {
34 ShouldNotCallThis();
35+ return 0;
36 }
37 };
38 #endif // !_LP64
39diff --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
40index 508eb172..bb8fa1f1 100644
41--- a/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
42+++ b/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
43@@ -498,6 +498,7 @@ extern "C" {
44 long long unsigned int oldval,
45 long long unsigned int newval) {
46 ShouldNotCallThis();
47+ return 0;
48 }
49 };
50 #endif // !_LP64
51--
522.18.0
53