JDK-8177390: java -version does not differentiate between which port of AArch64 is used

David Holmes david.holmes at oracle.com
Fri Mar 24 00:57:05 UTC 2017


Hi Mario,

On 23/03/2017 8:23 PM, Mario Torre wrote:
> Hi all,
>
> [Sorry for cross posting to the aarch64 mailing list, please try to
> keep all replies to jdk9-dev]

Okay - jdk9-dev only. Though not sure this is the right list to discuss 
this.

> I have a proposed fix for JDK-8177390[1]. The whole issue can be seen
> in details on the aarch64-port-dev thread linked in the bug report[2],
> but to summarise, we now have two implementations for the aarch64, one
> is the "original" community contribution and the other is the Oracle
> version that landed recently in the repositories.
>
> The two versions can be build side by side, which is great since users
> can compare very easily the two implementations, have a feeling of the
> performances, study the differences in the implementations etc...
> however, once compiled there is no easy way to tell which one is
> which, unless you are using the downstream packaged versions, where
> the name of the JDK may offer a small hint.
>
> This is more than just an annoyance, though, it will make life
> extremely difficult for bug reporting and hunting, and the hotspot
> crash files may not help either, so we think this should be fixed asap
> (and the reason why I filed the bug report with a priority a bit
> higher than usual).
>
> It was suggested to play with one of the java.vendor strings to
> address this, so I'm proposing a patch to alter the java.vendor.url to
> point to either the usual java.oracle.com or to the aarg64 project
> page, depending on the choice of the port at compilation time:
>
> http://cr.openjdk.java.net/~neugens/8177390/webrev.1/

AFAICS this will only change the VENDOR_URL if Oracle build the Aarch64 
port versus the ARM64 port - something they don't do. We already have 
the Oracle builds and OpenJDK builds showing different version strings 
("Java SE" versus "OpenJDK") so the suggested change seems to add 
nothing to that. Nor does it help an OpenJDK build that wants to use 
arm64 sources instead of aarch64 sources.

The discussion suggested using arm64 versus aarch64 to distinguish the 
two different builds and that seems the best solution to me. Though we 
have to be careful how we actually implement that. It is a pity the 
basic "java -version" output does not include any OS or CPU information 
as that would have been easy to customize. Changing os.arch is more 
problematic as it is an exported value that users may already depend on 
and neither set of users should have to change.

David
-----

> We would really like to have this patch in before the JDK9 is
> released, I understand that we need to seek guidance from project
> leads for that to happen at this stage of development.
>
> The patch was taken on the jdk9 client repository, I'm not sure if I
> will also need to push separately to 10 or if this will be an
> automatic forward port.
>
> Please, let me know what you think.
>
> Cheers,
> Mario
>
> [1] https://bugs.openjdk.java.net/browse/JDK-8177390
> [2] http://mail.openjdk.java.net/pipermail/aarch64-port-dev/2017-March/004319.html
>


More information about the jdk9-dev mailing list