On Mon, 13 Mar 2023 10:32:06 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 two additional 
> commits since the last revision:
> 
>  - 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

src/jdk.jlink/share/classes/jdk/tools/jlink/internal/JlinkTask.java line 897:

> 895:                         (PrivilegedExceptionAction<Boolean>) () -> 
> Files.isSameFile(javaBasePath,
> 896:                                 
> currentPlatformJmods.resolve(Path.of("java.base.jmod"))));
> 897:             } catch (PrivilegedActionException e) {

jlink doesn't run with a security manager so no need for the 
AccessController.doPriv.

Assuming the name of the jmod file is probably okay.

src/jdk.jlink/share/classes/jdk/tools/jlink/internal/JlinkTask.java line 976:

> 974:                 default -> null;
> 975:             };
> 976:         }

To add to Jim's comment, the other thing we think about here is mapping the 
value of the ModuleTarget attribute to endianness, meaning don't parse it to 
extract the architecture.

-------------

PR: https://git.openjdk.org/jdk/pull/11943

Reply via email to