RFR: Loom: Add missing stubs to fix build failures on PPC64, S390, ARM32 and Zero [v3]
Hao Sun
haosun at openjdk.java.net
Fri Jan 28 12:33:35 UTC 2022
On Fri, 28 Jan 2022 06:58:13 GMT, Hao Sun <haosun at openjdk.org> wrote:
>> PPC64, S390, ARM32, Zero stubs were initially introduced to Loom in
>> commit 3a89cd5 [1]. However, necessary updates were missing afterward,
>> leading to compilation failures.
>>
>> 1. frame_helpers.inline.hpp
>>
>> In commit 854a81a [2], platform specific implementation was extracted
>> from continuation.cpp to frame_helpers.inline.hpp, and the corresponding
>> headers for only x86 and aarch64 were created then.
>>
>> This same updates should be done to PPC64/S390/ARM32/Zero as well.
>> Otherwise, the following compilation error would be emitted.
>>
>>
>> ~/jdk_src/src/hotspot/share/runtime/frame_helpers.inline.hpp:326:1:
>> fatal error: frame_helpers_ppc.inline.hpp: No such file or directory
>>
>> 326 | #include CPU_HEADER_INLINE(frame_helpers)
>>
>> | ^~~~~~~~~~~~~~~~~
>>
>> compilation terminated.
>>
>>
>> Fix: see the updates in continuation_XX.inline.hpp and
>> frame_helpers_XX.inline.hpp.
>>
>> 2. ZGC support for PPC64
>>
>> ZGC support for Loom was implemented two years ago in commit 05b1b53
>> [3]. Recently ZGC for PPC64 was supported in the mainline. See commit
>> 337b73a [4].
>>
>> However, stub `BarrierSetNMethod::arm()` is missing for PPC64 platform.
>>
>> Here is the snippet of error log when cross-compiling on PPC64 in my
>> local test environment.
>>
>>
>> * For target
>> * hotspot_variant-server_libjvm_gtest_objs_BUILD_GTEST_LIBJVM_link:
>
> Hao Sun has updated the pull request incrementally with one additional commit since the last revision:
>
> Fix compilation warning in ARM32 build
>
> The following error message would be emitted for ARM32 build.
>
> ```
> /home/runner/work/loom/loom/jdk/src/hotspot/share/oops/instanceStackChunkKlass.cpp:283:28: error: format '%ld' expects argument of type 'long int', but argument 5 has type 'intptr_t' {aka 'int'} [-Werror=format=]
> 283 | assert (offset >= 0, "Derived pointer offset is %ld", offset);
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~
> | |
> ... (rest of output omitted)
> ```
>
> The fix is easy, i.e. using INTPTR_FORMAT.
The build test in GHA passed now. See https://github.com/shqking/loom/actions/runs/1760254363
Could you please help to take a review @shipilev ? Thanks.
-------------
PR: https://git.openjdk.java.net/loom/pull/87
More information about the loom-dev
mailing list