RFR: 8352437: -XX:+AOTClassLinking is not compatible with --add-export
Ioi Lam
iklam at openjdk.org
Thu Mar 20 04:54:01 UTC 2025
`-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 )
-------------
Depends on: https://git.openjdk.org/jdk/pull/24122
Commit messages:
- Fixed whitespaces
- clean up
- 8352437: -XX:+AOTClassLinking is not compatible with --add-export
Changes: https://git.openjdk.org/jdk/pull/24124/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=24124&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8352437
Stats: 575 lines in 16 files changed: 457 ins; 65 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
More information about the core-libs-dev
mailing list