Please review this bug fix for using `jlink` when linking from the run-time 
image. For regular JDK builds which include the `jmods` folder, that path is 
automatically added as the `--module-path` when not otherwise specified on the 
command line. For JDK builds with JEP 493 enabled, the `jmods` folder doesn't 
exist and the list of module roots needs to be computed from the system 
modules. However, since `jdk.jlink` isn't allowed to be added to the list of 
output modules when linking from the run-time image, the default module path 
doesn't include `jdk.jlink` and modules depending on `jdk.jlink`, currently 
only `jdk.jpackage`. This seems a sensible default since otherwise linking 
using ALL-MODULE-PATH fails, while it works with a JDK build including JMODs. 
See the bug for details about the issue.

When an explicit module path is being added, there is no difference. All 
modules on that path will be added as roots. Tests have been added for the 
same. Thoughts?

Testing:
- [x] GHA, `test/jdk/tools/jlink` (all pass)
- [x] Added jlink test.

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

Commit messages:
 - 8345259: When linking from the run-time image ALL-MODULE-PATH is not accepted

Changes: https://git.openjdk.org/jdk/pull/22494/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=22494&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8345259
  Stats: 184 lines in 3 files changed: 183 ins; 0 del; 1 mod
  Patch: https://git.openjdk.org/jdk/pull/22494.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/22494/head:pull/22494

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

Reply via email to