> `-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