[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