> `-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: https://git.openjdk.org/jdk/pull/24124/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=24124&range=02
  Stats: 580 lines in 15 files changed: 463 ins; 64 del; 53 mod
  Patch: https://git.openjdk.org/jdk/pull/24124.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/24124/head:pull/24124

PR: https://git.openjdk.org/jdk/pull/24124

Reply via email to