On Wed, 15 Sep 2021 06:28:25 GMT, Remilia Scarlet 
<github.com+22913521+1996scar...@openjdk.org> wrote:

> Currently, the Platform.is64Bit() hard coded for judging whether the target 
> arch is 64-bit.
> The `classes_nocoops.jsa not found` issue can be found while testing 
> CDSPluginTest.java on 64-bit platform, excluding x64 and AARCH64, like mips64.
> 
> For solving this issue, we assume that the bits of target UNKNOWN arch is 
> same as the runtime platform.
> This patch adds the following lines in the Platform.is64Bit() method.
> 
> ``` java
> if (arch() == Platform.Architecture.UNKNOWN) {
>      return (System.getProperty("os.arch").indexOf("64") != -1);
> }
> 
> 
> Please review this change. Thanks!

The test assumes that it always runs on 64-bit platform and 
`classes_nocoops.jsa` is always created.  It's a test bug.  The test should 
only expect `classes_nocoops.jsa`  exists if it's running on a supported 64-bit 
platform. 

Platform::is64Bit can do better for runtime platform (i.e. `Platform::runtime`) 
that can determine if it's 64-bit from the `sun.arch.data.model` system 
property.   However, for unknown target platform, it's unknown if it's 64-bit 
or not.   So I think fixing the test to check if  `classes_nocoops.jsa`  exists 
only on one of the JDK supported platforms (x64 or aarch64) is a better way to 
resolve your issue.

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

PR: https://git.openjdk.java.net/jdk/pull/5519

Reply via email to