RFR: 8206890: jlink --endian XXX generates unusable image if endian-ness does not match architecture
Jaikiran Pai
jpai at openjdk.org
Wed Jan 11 14:35:35 UTC 2023
On Wed, 11 Jan 2023 13:50:11 GMT, Alan Bateman <alanb at openjdk.org> wrote:
>> 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.
>
> src/java.base/share/classes/jdk/internal/jimage/ImageHeader.java line 199:
>
>> 197: * @throws IOException If any error occurred reading the contents of the image file.
>> 198: */
>> 199: static ByteOrder tryDetectByteOrder(final Path imageFile) throws IOException {
>
> Style-wise I think I would try to keep it consistent with the existing code if you can, meaning the noise/over-use of finals can mostly be removed if you can.
Done. I've updated the PR to remove all the `final` usage from this part of the code and made it consistent with the current code.
-------------
PR: https://git.openjdk.org/jdk/pull/11943
More information about the core-libs-dev
mailing list