RFR: 8301697: [s390] Optimized-build is broken

Tyler Steele tsteele at openjdk.org
Thu Feb 9 23:09:43 UTC 2023


On Fri, 3 Feb 2023 04:34:46 GMT, Amit Kumar <duke at openjdk.org> wrote:

> This fix guards `__ asm_assert_eq("killed Z_R14", 0)` & `__asm_assert_mem8_is_zero(in_bytes(JavaThread::exception_pc_offset()), Z_thread, "exception pc already set : "FILE_AND_LINE, 0)` with ASSERT because on s390x  `JavaThread::exception_oop_offset()` is always cleared but `JavaThread::exception_pc_offset()` is being cleared only in ASSERT-def, Which is causing the build failure in Optimized-Debug.

I think these problems exist because the assertions `asm_assert*` are firing when compiling with `debug-level=optimized`. However, their definitions should be trivial with the optimized build because PRODUCT should not be defined[1][2], and the `asm_assert*` definitions are guarded by `#if !defined(PRODUCT)`[3].

It also looks from @shipilev's comment, that s390x cross-compilation is working. Could this be a symptom of something wrong with the s390x build system on native (non-cross) builds?

[1] https://github.com/openjdk/jdk/blob/master/make/hotspot/lib/JvmFlags.gmk#L69-L76
[2] https://github.com/openjdk/jdk/blob/master/make/autoconf/jdk-options.m4#L66-L76
[3] https://github.com/openjdk/jdk/blob/master/src/hotspot/cpu/s390/macroAssembler_s390.cpp#L5315

-------------

PR: https://git.openjdk.org/jdk/pull/12400


More information about the hotspot-dev mailing list