RFR: 8352437: Support --add-exports with -XX:+AOTClassLinking [v3]

Matias Saavedra Silva matsaave at openjdk.org
Tue Apr 1 19:51:29 UTC 2025


On Thu, 27 Mar 2025 22:13:02 GMT, Ioi Lam <iklam at openjdk.org> wrote:

>> `-XX:+AOTClassLinking` requires the CDS archived full module graph (FMG).
>> 
>> - Before this PR, when  `--add-export` is specified,  FMG is disabled, so AOT caches created with `-XX:+AOTClassLinking` cannot be loaded.
>> - After this PR, if the exact same `--add-export` flags as specified across the training/assembly/production phases, the FMG can be used, so we can use so AOT caches created with `-XX:+AOTClassLinking`.
>> 
>> The change itself is straight-forward: just remember the `--add-export` flags specified during AOT cache creation, and check the exact same ones are used during the production run.
>> 
>> I did a fair amount of refactoring to change the "exact options specified" checks in modules.cpp, so more such options can be easily added in the future (we need to handle `--add-reads` and `--add-opens` in future RFEs).
>> 
>> (Note: this PR depends on #24122 )
>
> Ioi Lam has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains eight commits:
> 
>  - @calvinccheung comments
>  - Merge branch 'master' into 8352437-aot-class-linking-incompatible-with-add-exports
>  - Fixed whitespaces
>  - clean up
>  - 8352437: -XX:+AOTClassLinking is not compatible with --add-export
>  - added comments
>  - added comments
>  - Prototype: support --add-exports in CDS FMG

Changes and cleanup look good! Thanks!

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

Marked as reviewed by matsaave (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/24124#pullrequestreview-2733895429


More information about the hotspot-dev mailing list