Since [JEP 483: Ahead-of-Time Class Loading & 
Linking](https://openjdk.org/jeps/483), VM options such as `-XX:AOTCache `are 
implemented as aliases of "classical" CDS options such as 
`-XX:SharedArchiveFile`.

In anticipation of the [JEP: Ahead-of-time Command Line 
Ergonomics](https://bugs.openjdk.org/browse/JDK-8350022), we should refactor 
the code that deals with the AOT options. Specifically, as we expect the JVM to 
be able to load from an "input AOT cache" and write to an "output AOT cache", 
we should clearly identify the input and output caches in separate APIs:


const char* CDSConfig::input_static_archive_path();
const char* CDSConfig::input_dynamic_archive_path();
const char* CDSConfig::output_archive_path();


This PR also cleans up the code by:
- renaming a few function to reflect what they actually do
- moving more "config" management code into cdsConfig.cpp

There's also a behavioral bug fix: before this PR, `-XX:AOTCache` was handled 
by the `ergo_init_classic_archive_paths()` function, which allows two files to 
be specified. E.g., `java -XX:AOTCache=static.jsa:dynamic.jsa`. That's because 
`-XX:AOTCache` was implemented as an alias of `-XX:SharedArchiveFile`, and the 
latter allows this usage.

However, this behavior is not specified in JEP 483. Allowing two files in 
-XX:AOTCache will cause unnecessary complexity when we implement [JDK-8353598: 
Allow AOT cache to be used in training 
run](https://bugs.openjdk.org/browse/JDK-8353598). Therefore, I added new test 
cases to disallow the use of two files.  This also means that we don't need to 
modify  the already over-complicated `ergo_init_classic_archive_paths()` for 
the AOT use cases

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

Depends on: https://git.openjdk.org/jdk/pull/24272

Commit messages:
 - Minimized changes in ergo_init_classic_archive_paths()
 - Clean up CDS input/output path handling

Changes: https://git.openjdk.org/jdk/pull/24401/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=24401&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8353597
  Stats: 304 lines in 15 files changed: 156 ins; 55 del; 93 mod
  Patch: https://git.openjdk.org/jdk/pull/24401.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/24401/head:pull/24401

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

Reply via email to