On Thu, 23 Mar 2023 01:46:47 GMT, Jaikiran Pai <j...@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. > > Jaikiran Pai has updated the pull request incrementally with one additional > commit since the last revision: > > ARM is 32 bit as per platform.m4 in OpenJDK build src/jdk.jlink/share/classes/jdk/tools/jlink/internal/JlinkTask.java line 823: > 821: if (order != null) { > 822: this.order = order; > 823: String targetPlatformVal = > readJavaBaseTargetPlatform(cf); Thanks for the update. This should also do the fast-path check `isJavaBaseFromCurrentPlatform(javaBasePath)` as in line 838-860. I suggest to refactor line 838-860 to return the target platform (either runtime platform or from java.base in the given module path). I also suggest to include `endianness` in the `Platform` record class. I sent you a patch offline with these suggestions. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/11943#discussion_r1146654036