[foreign-memaccess+abi] RFR: 8275332: Variadic functions don't work on Linux/AArch64

Nick Gasson ngasson at openjdk.java.net
Tue Oct 19 09:01:23 UTC 2021


Variable length argument lists are handled differently in the
Mac/Windows and Linux ABIs on AArch64.  Following the recent API refresh
on the foreign-memaccess+abi branch the Mac behaviour was inadvertently
applied on Linux too.  This patch restores the correct behaviour on
Linux and adds a CallArranger unit test so regressions can be more
easily caught.

I just added an extra varArgsOnStack argument to
CallArranger.getBindings() as that seemed the simplest fix, although it
could get unwieldy if there were too many configurable options.

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

Commit messages:
 - 8275332: Variadic functions don't work on Linux/AArch64

Changes: https://git.openjdk.java.net/panama-foreign/pull/601/files
 Webrev: https://webrevs.openjdk.java.net/?repo=panama-foreign&pr=601&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8275332
  Stats: 79 lines in 5 files changed: 50 ins; 0 del; 29 mod
  Patch: https://git.openjdk.java.net/panama-foreign/pull/601.diff
  Fetch: git fetch https://git.openjdk.java.net/panama-foreign pull/601/head:pull/601

PR: https://git.openjdk.java.net/panama-foreign/pull/601


More information about the panama-dev mailing list