[foreign-abi] RFR: 8248560: Specify the behaviour of the ForeignLinker returned by CSupport::getSystemLinker

Jorn Vernee jvernee at openjdk.java.net
Tue Sep 15 14:46:50 UTC 2020


Hi,

This patch creates a new class called CLinker, which extends ForeignLinker. The new class documents how linking works
in the class's javadoc. This is done in a separate class since the specification is only relevant to linkers that
support the C ABI.

With the new class there was no more need to have CSupport, so the contents of CSupport has all been move to CLinker.

After some offline discussion with Maurizio, we realized that it doesn't make much sense to expose platform specific
layout constants, since it is not possible to combine them with a platform specific linker any way, so for a particular
platform, there is only one set of layouts that can be used, namely the ones that are dynamically picked based on the
current platform. For that reason, all platform specific layouts have instead been moved to an internal PlatformLayouts
class. In order for downstream APIs (like jextract) to be able to filter out the ABI attributes from layouts, I've
added a String constant to CLinker that is used as a name prefix for all the ABI attribute names, so clients can for
instance filter attribute names using `.startsWith(ABI_ATTR_NAME)`.

The ForeignLinker::name method has been dropped in favor of an internal enum.

Thanks,
Jorn

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

Commit messages:
 - Remove Whitespace
 - ABI name prefix (for jextract)
 - - Move layout constants to CLinker interface

Changes: https://git.openjdk.java.net/panama-foreign/pull/327/files
 Webrev: https://webrevs.openjdk.java.net/?repo=panama-foreign&pr=327&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8248560
  Stats: 2264 lines in 41 files changed: 1121 ins; 1006 del; 137 mod
  Patch: https://git.openjdk.java.net/panama-foreign/pull/327.diff
  Fetch: git fetch https://git.openjdk.java.net/panama-foreign pull/327/head:pull/327

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


More information about the panama-dev mailing list