RFR: 8347831: Re-examine version check when cross linking
Alan Bateman
alanb at openjdk.org
Thu Nov 6 11:10:09 UTC 2025
On Wed, 5 Nov 2025 17:41:44 GMT, Henry Jen <henryjen at openjdk.org> wrote:
> This PR include build changes from @magicus and jlink change to verify the build signature.
>
> Tested with local builds for MacOS and Linux as below shows that cross linking with same build is working while linking with different build failed with error message.
>
> ❯ export JAVA_HOME=./build/macosx-x86_64-server-fastdebug/images/jdk-bundle/jdk-26.jdk/Contents/Home
>
> ❯ java --version
> openjdk 26-internal 2026-03-17
> OpenJDK Runtime Environment (fastdebug build 26-internal-adhoc.hjen.JDK-8347831)
> OpenJDK 64-Bit Server VM (fastdebug build 26-internal-adhoc.hjen.JDK-8347831, mixed mode, sharing)
>
> ❯ jlink --version
> 26-internal
>
> ❯ jlink --module-path ./build/linux-x86_64-server-release/images/jdk/jmods --add-modules java.base --output linux
>
> ❯ jlink --add-modules java.base --output macos
>
> ❯ jlink --module-path ~/linux/jdk-25.0.1/jmods --add-modules java.base --output linux25
> Error: jlink build N/A-26-internal-adhoc.hjen.JDK-8347831-2026-03-17 does not match target java.base build N/A
>
> ❯ jlink --module-path /Library/Java/JavaVirtualMachines/jdk-25.jdk/Contents/Home/jmods --add-modules java.base --output macos25
> Error: jlink build N/A-26-internal-adhoc.hjen.JDK-8347831-2026-03-17 does not match target java.base build N/A
I'm puzzling as to why the resource has to be saved in the jdk.jlink module. When cross linking, jlink should only need to check the company/version of java.base in the current image vs. company/version of the java.base found on the module path.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/28155#issuecomment-3496614334
More information about the core-libs-dev
mailing list