From e89564dc67cf0136d998a73813c74d9e174f30af Mon Sep 17 00:00:00 2001 From: André Draszik Date: Tue, 14 Aug 2018 13:50:58 +0100 Subject: openjdk-8: gcc-8 fix #4: undefined behaviour (hotspot) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Signed-off-by: Richard Leitner --- recipes-core/openjdk/openjdk-8-release-172b11-common.inc | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'recipes-core/openjdk/openjdk-8-release-172b11-common.inc') 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 -- cgit v1.2.3-54-g00ecf