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

Jorn Vernee jvernee at openjdk.java.net
Tue Sep 15 16:53:38 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.  The rest of the patch is just mechanical CSupport -> CLinker renames.  Thanks, Jorn

Jorn Vernee has updated the pull request incrementally with one additional commit since the last revision:

  Review comments:
  - remove C_BOOL
  - CLinker javadoc changes
  - rename CLinker::getSystemLinker to CLinker::getInstance()

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

Changes:
  - all: https://git.openjdk.java.net/panama-foreign/pull/327/files
  - new: https://git.openjdk.java.net/panama-foreign/pull/327/files/8b68f36d..24f77111

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=panama-foreign&pr=327&range=01
 - incr: https://webrevs.openjdk.java.net/?repo=panama-foreign&pr=327&range=00-01

  Stats: 68 lines in 4 files changed: 13 ins; 24 del; 31 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