RFR: 8345259: When linking from the run-time image ALL-MODULE-PATH is not accepted
Severin Gehwolf
sgehwolf at openjdk.org
Mon Dec 2 18:31:12 UTC 2024
On Mon, 2 Dec 2024 18:25:22 GMT, Severin Gehwolf <sgehwolf at openjdk.org> wrote:
> 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.
test/jdk/tools/jlink/runtimeImage/BasicJlinkTest.java line 42:
> 40: * @build tests.* jdk.test.lib.process.OutputAnalyzer
> 41: * jdk.test.lib.process.ProcessTools
> 42: * @run main/othervm -Xmx1400m BasicJlinkTest
Note to reviewers: This is just a clean-up of a parameter that isn't being used, so I've removed it here.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/22494#discussion_r1866379442
More information about the core-libs-dev
mailing list