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 06:58:13 UTC 2022


> 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.

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

Changes:
  - all: https://git.openjdk.java.net/loom/pull/87/files
  - new: https://git.openjdk.java.net/loom/pull/87/files/bc4ad8d5..c7cce805

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=loom&pr=87&range=02
 - incr: https://webrevs.openjdk.java.net/?repo=loom&pr=87&range=01-02

  Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod
  Patch: https://git.openjdk.java.net/loom/pull/87.diff
  Fetch: git fetch https://git.openjdk.java.net/loom pull/87/head:pull/87

PR: https://git.openjdk.java.net/loom/pull/87


More information about the loom-dev mailing list