Integrated: 8336768: Allow captureCallState and critical linker options to be combined

Jorn Vernee jvernee at openjdk.org
Tue Dec 3 12:30:47 UTC 2024


On Fri, 22 Nov 2024 14:31:23 GMT, Jorn Vernee <jvernee at openjdk.org> wrote:

> Allow `captureCallState` and `critical(true)` linker options to be combined. This allows passing a Java array to capture call state.
> 
> One caveat is that the linker expects the memory to be aligned, which means that at least an `int[]` has to be used (i.e. `byte[]` will no work).
> 
> This patch contains two implementations: one for the linkers that use `CallingSequenceBuilder`. That one is quite straight-forward, as we can just mimic what we already do for other memory segment arguments, but also for the capture state segment. i.e. split it into base and offset, and pass that down to our downcall stub. The stub will then add the offset and oop together, and pass use the resulting address to write to.
> 
> The other implementation is for the fallback linker. This handles the capture state a little differently, but essentially currently just passes the native address to the back end for the native code to write the captured state into. I've just added another heap base parameter for that capture state segment to the back end, which is then turned into a native address using JNI's `GetPrimitiveArrayCritical`, similarly to what we do for other heap segments.
> 
> Testing: `jdk_foreign` test suite.

This pull request has now been integrated.

Changeset: 8cad0431
Author:    Jorn Vernee <jvernee at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/8cad0431ff17992fadbb593319ad3821b32e3b7e
Stats:     201 lines in 14 files changed: 113 ins; 21 del; 67 mod

8336768: Allow captureCallState and critical linker options to be combined

Reviewed-by: mcimadamore

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

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


More information about the core-libs-dev mailing list