RFR: 8304006: jlink should create the jimage file in the native endian for the target platform [v9]
Jaikiran Pai
jpai at openjdk.org
Sat Mar 18 13:17:04 UTC 2023
> Can I please get a review for this change which proposes to fix the issue reported in https://bugs.openjdk.org/browse/JDK-8206890?
>
> The `jlink` command allows a `--endian` option to specify the byte order in the generated image. Before this change, when such a image was being launched, the code would assume the byte order in the image to be the native order of the host where the image is being launched. That would result in failure to launch java, as noted in the linked issue.
>
> The commit in this PR, changes relevant places to not assume native order and instead determine the byte order by reading the magic bytes in the image file's header content.
>
> A new jtreg test has been added which reproduces the issue and verifies the fix.
Jaikiran Pai has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 20 additional commits since the last revision:
- Mandy's suggestion - pass along target platform to the DefaultImageBuilder to prevent reparsing the value from the ModuleTarget
- Mandy's suggestion to use Platform class for additional arch support. Plus, Jim's suggestion to use a runtime resource for endianness mapping
- merge latest from master branch
- don't hardcode the .jmod extension while determining java.base module location
- Path.resolve(String) instead of Path.resolve(Path)
- no need for security manager checks in jlink
- only include known supported arch
- Alan's suggestion - look into the ModuleTarget attribute in module-info.class only if this is a cross-platform image generation
- missed ppc64 from the arch mapping
- undo unintentional copyright year change
- ... and 10 more: https://git.openjdk.org/jdk/compare/75ddac94...f4b71700
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/11943/files
- new: https://git.openjdk.org/jdk/pull/11943/files/da590e9d..f4b71700
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=11943&range=08
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=11943&range=07-08
Stats: 77621 lines in 772 files changed: 48489 ins; 20061 del; 9071 mod
Patch: https://git.openjdk.org/jdk/pull/11943.diff
Fetch: git fetch https://git.openjdk.org/jdk pull/11943/head:pull/11943
PR: https://git.openjdk.org/jdk/pull/11943
More information about the core-libs-dev
mailing list