Review Request JDK-8175819: OS name and arch in JMOD files should match the values as in the bundle name

classic Classic list List threaded Threaded
28 messages Options
12
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Review Request JDK-8175819: OS name and arch in JMOD files should match the values as in the bundle name

Mandy Chung
Webrev:
  http://cr.openjdk.java.net/~mchung/jdk9/webrevs/8175819/webrev.00/

This revisits the OS name and arch in packaging JDK modules
to extend the module descriptor with ModuleTarget class file
attribute.  We considered matching with the system properties.
Linux x64 JDK can run on a system whose `os.arch` system
property value can be `amd64` or `i586` or `x86_x64`.  
Similiarly, windows x86/x64 JDK can run on a system whose
`os.name` system property starts with “Windows” as the
os.name property is set to "Windows XXX" for example
"Windows Server 2012 R2”.  It might be worth considering
multiple OS arch values in ModuleTarget in the future.

JDK bundle names are revised in JDK 9.  This is a good
alternative to be consistent with $OS-$ARCH value in
the bundle names.  This patch proposes to package JDK modules
with OS name and arch to match the values as in JDK bundle names.
jlink will generate the `release` file and set OS_NAME and
OS_ARCH to those values.  This also proposes to drop
OS_VERSION to align with the ModuleTarget class file attribute.

This shows the old and new value of OS_NAME/OS_ARCH properties
in the `release` file:

            JDK 8               JDK 9
            -----               -----
OS_NAME     Linux               linux
            SunOS               solaris
            Darwin              osx
            Windows             windows
             
OS_ARCH     i386,x86            x86
            i586,amd64,x86_64   x64
            sparcv9             sparcv9
            arm                 arm32
            aarch64             arm64

Mandy
 
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Review Request JDK-8175819: OS name and arch in JMOD files should match the values as in the bundle name

mark.reinhold
2017/4/3 11:41:03 -0700, [hidden email]:

> Webrev:
>   http://cr.openjdk.java.net/~mchung/jdk9/webrevs/8175819/webrev.00/
>
> ...
>
> This shows the old and new value of OS_NAME/OS_ARCH properties
> in the `release` file:
>
>             JDK 8               JDK 9
>             -----               -----
> OS_NAME     Linux               linux
>             SunOS               solaris
>             Darwin              osx
>             Windows             windows
>              
> OS_ARCH     i386,x86            x86
>             i586,amd64,x86_64   x64
>             sparcv9             sparcv9
>             arm                 arm32
>             aarch64             arm64

I suggest we use "amd64" instead of "x64" (or any other variants).
"x64" is confusingly close to "x86", and while it's used by some
companies (including Oracle), it's not used all that widely.  "amd64" is
better known, matches the long-standing value of the "os.arch" system
property (on Linux and Windows, anyway) and, as a side benefit, honors
the originators of the architecture.

- Mark
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Review Request JDK-8175819: OS name and arch in JMOD files should match the values as in the bundle name

Simon Nash
On 03/04/2017 21:15, [hidden email] wrote:

> 2017/4/3 11:41:03 -0700, [hidden email]:
>> Webrev:
>>   http://cr.openjdk.java.net/~mchung/jdk9/webrevs/8175819/webrev.00/
>>
>> ...
>>
>> This shows the old and new value of OS_NAME/OS_ARCH properties
>> in the `release` file:
>>
>>             JDK 8               JDK 9
>>             -----               -----
>> OS_NAME     Linux               linux
>>             SunOS               solaris
>>             Darwin              osx
>>             Windows             windows
>>              
>> OS_ARCH     i386,x86            x86
>>             i586,amd64,x86_64   x64
>>             sparcv9             sparcv9
>>             arm                 arm32
>>             aarch64             arm64
>
> I suggest we use "amd64" instead of "x64" (or any other variants).
> "x64" is confusingly close to "x86", and while it's used by some
> companies (including Oracle), it's not used all that widely.  "amd64" is
> better known, matches the long-standing value of the "os.arch" system
> property (on Linux and Windows, anyway) and, as a side benefit, honors
> the originators of the architecture.
>
> - Mark
>

I am not sure why we would change to osx for Mac when the Mac developers
have recently dropped the Mac OS X terminology and changed it to macOS.

Simon
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Review Request JDK-8175819: OS name and arch in JMOD files should match the values as in the bundle name

Mandy Chung

> On Apr 3, 2017, at 1:35 PM, Simon Nash <[hidden email]> wrote:
>
> On 03/04/2017 21:15, [hidden email] wrote:
>
> I am not sure why we would change to osx for Mac when the Mac developers
> have recently dropped the Mac OS X terminology and changed it to macOS.

Just to be clear, there is no plan to change the value of the
‘os.name’ system property and its value is “Mac OS X”.  
Changing the value of the system property ‘os.name’ would
break existing applications.

In JDK 8, OS_NAME in the release file is “Darwin” which is
what this patch would change.

Mandy
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Review Request JDK-8175819: OS name and arch in JMOD files should match the values as in the bundle name

Simon Nash
On 03/04/2017 22:07, Mandy Chung wrote:

>> On Apr 3, 2017, at 1:35 PM, Simon Nash <[hidden email]> wrote:
>>
>> On 03/04/2017 21:15, [hidden email] wrote:
>>
>> I am not sure why we would change to osx for Mac when the Mac developers
>> have recently dropped the Mac OS X terminology and changed it to macOS.
>
> Just to be clear, there is no plan to change the value of the
> ‘os.name’ system property and its value is “Mac OS X”.  
> Changing the value of the system property ‘os.name’ would
> break existing applications.
>
> In JDK 8, OS_NAME in the release file is “Darwin” which is
> what this patch would change.
>
> Mandy

I understand that the os.name property value cannot be changed for compatibility
reasons and therefore this name needs to stay as the "historic" Mac OS X.

My comment was regarding the change of value for OS_NAME.  Given that there is
no compatibility issue here, does it make sense for the new value to be something
that is no longer current in Apple terminology?

Simon


Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Review Request JDK-8175819: OS name and arch in JMOD files should match the values as in the bundle name

mark.reinhold
In reply to this post by Simon Nash
2017/4/3 13:35:30 -0700, [hidden email]:

> On 03/04/2017 21:15, [hidden email] wrote:
>> 2017/4/3 11:41:03 -0700, [hidden email]:
>>> Webrev:
>>>  http://cr.openjdk.java.net/~mchung/jdk9/webrevs/8175819/webrev.00/
>>>
>>> ...
>>>
>>> This shows the old and new value of OS_NAME/OS_ARCH properties
>>> in the `release` file:
>>>
>>>            JDK 8               JDK 9
>>>            -----               -----
>>> OS_NAME     Linux               linux
>>>            SunOS               solaris
>>>            Darwin              osx
>>>            Windows             windows
>>>            
>>> OS_ARCH     i386,x86            x86
>>>            i586,amd64,x86_64   x64
>>>            sparcv9             sparcv9
>>>            arm                 arm32
>>>            aarch64             arm64
>
> I am not sure why we would change to osx for Mac when the Mac developers
> have recently dropped the Mac OS X terminology and changed it to macOS.

Agreed -- we should change OS_NAME from "Darwin" to "macos".

- Mark
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Review Request JDK-8175819: OS name and arch in JMOD files should match the values as in the bundle name

Mandy Chung

> On Apr 3, 2017, at 2:39 PM, [hidden email] wrote:
>
> 2017/4/3 13:35:30 -0700, [hidden email]:
>> On 03/04/2017 21:15, [hidden email] wrote:
>>> 2017/4/3 11:41:03 -0700, [hidden email]:
>>>> Webrev:
>>>> http://cr.openjdk.java.net/~mchung/jdk9/webrevs/8175819/webrev.00/
>>>>
>>>> ...
>>>>
>>>> This shows the old and new value of OS_NAME/OS_ARCH properties
>>>> in the `release` file:
>>>>
>>>>           JDK 8               JDK 9
>>>>           -----               -----
>>>> OS_NAME     Linux               linux
>>>>           SunOS               solaris
>>>>           Darwin              osx
>>>>           Windows             windows
>>>>
>>>> OS_ARCH     i386,x86            x86
>>>>           i586,amd64,x86_64   x64
>>>>           sparcv9             sparcv9
>>>>           arm                 arm32
>>>>           aarch64             arm64
>>
>> I am not sure why we would change to osx for Mac when the Mac developers
>> have recently dropped the Mac OS X terminology and changed it to macOS.
>
> Agreed -- we should change OS_NAME from "Darwin" to "macos”.

OK.  Should the bundle names be updated to reflect this change?
In any case, it is a separate issue.

           JDK 8               JDK 9
           -----               -----
OS_NAME    Linux               linux
           SunOS               solaris
           Darwin              macos
           Windows             windows

OS_ARCH    i386,x86            x86
           i586,amd64,x86_64   amd64
           sparcv9             sparcv9
           arm                 arm32
           aarch64             arm64

Mandy

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Review Request JDK-8175819: OS name and arch in JMOD files should match the values as in the bundle name

mark.reinhold
2017/4/3 14:50:52 -0700, [hidden email]:

>> On Apr 3, 2017, at 2:39 PM, [hidden email] wrote:
>> 2017/4/3 13:35:30 -0700, [hidden email]:
>>> ...
>>>
>>> I am not sure why we would change to osx for Mac when the Mac developers
>>> have recently dropped the Mac OS X terminology and changed it to macOS.
>>
>> Agreed -- we should change OS_NAME from "Darwin" to "macos”.
>
> OK.  Should the bundle names be updated to reflect this change?

Probably not worth doing at this late stage in 9; let's fix these in 10.

> In any case, it is a separate issue.

Yep.

>            JDK 8               JDK 9
>            -----               -----
> OS_NAME    Linux               linux
>            SunOS               solaris
>            Darwin              macos
>            Windows             windows
>
> OS_ARCH    i386,x86            x86
>            i586,amd64,x86_64   amd64
>            sparcv9             sparcv9
>            arm                 arm32
>            aarch64             arm64

Looks good.

Thanks,
- Mark
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Review Request JDK-8175819: OS name and arch in JMOD files should match the values as in the bundle name

Mandy Chung

> On Apr 3, 2017, at 4:10 PM, [hidden email] wrote:
>
> 2017/4/3 14:50:52 -0700, [hidden email]:
>>> On Apr 3, 2017, at 2:39 PM, [hidden email] wrote:
>>> 2017/4/3 13:35:30 -0700, [hidden email]:
>>>> ...
>>>>
>>>> I am not sure why we would change to osx for Mac when the Mac developers
>>>> have recently dropped the Mac OS X terminology and changed it to macOS.
>>>
>>> Agreed -- we should change OS_NAME from "Darwin" to "macos”.
>>
>> OK.  Should the bundle names be updated to reflect this change?
>
> Probably not worth doing at this late stage in 9; let's fix these in 10.

That's what I was thinking too.  I created a JBS issue target for 10:

Mandy
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Review Request JDK-8175819: OS name and arch in JMOD files should match the values as in the bundle name

Alan Bateman
In reply to this post by Simon Nash
On 03/04/2017 22:38, Simon Nash wrote:

> :
>
> My comment was regarding the change of value for OS_NAME.  Given that
> there is
> no compatibility issue here, does it make sense for the new value to
> be something
> that is no longer current in Apple terminology?
Just on compatibility then just to say that the `release` file is a
supported interface. So changing the value of OS_NAME ("Darwin" ->
"macos" and "SunOS" -> "solaris") might mean that scripts or tools that
read it will need to be updated. Mandy will get this change documented
in the release notes and I wouldn't expect updating scripts to deal with
additional or new values should be a major issue.

-Alan.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Review Request JDK-8175819: OS name and arch in JMOD files should match the values as in the bundle name

Alan Bateman
In reply to this post by Mandy Chung
On 03/04/2017 19:41, Mandy Chung wrote:

> Webrev:
>    http://cr.openjdk.java.net/~mchung/jdk9/webrevs/8175819/webrev.00/
>
I went through the updates to jlink, assuming test SystemModulesTest
will be aligned to the recent mails.

In DefaultImageBuilder.storeFiles then
map(ResourcePoolModule::osName).orElse(null) would be cleaner.

I'm sure Volker or someone maintaining the AIX port will ask for
jdk.tools.jlink.internal.Platform to be extended to handle that platform.

-Alan.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Review Request JDK-8175819: OS name and arch in JMOD files should match the values as in the bundle name

Magnus Ihse Bursie
In reply to this post by Mandy Chung

On 2017-04-03 23:50, Mandy Chung wrote:

>> On Apr 3, 2017, at 2:39 PM, [hidden email] wrote:
>>
>> 2017/4/3 13:35:30 -0700, [hidden email]:
>>> On 03/04/2017 21:15, [hidden email] wrote:
>>>> 2017/4/3 11:41:03 -0700, [hidden email]:
>>>>> Webrev:
>>>>> http://cr.openjdk.java.net/~mchung/jdk9/webrevs/8175819/webrev.00/
>>>>>
>>>>> ...
>>>>>
>>>>> This shows the old and new value of OS_NAME/OS_ARCH properties
>>>>> in the `release` file:
>>>>>
>>>>>            JDK 8               JDK 9
>>>>>            -----               -----
>>>>> OS_NAME     Linux               linux
>>>>>            SunOS               solaris
>>>>>            Darwin              osx
>>>>>            Windows             windows
>>>>>
>>>>> OS_ARCH     i386,x86            x86
>>>>>            i586,amd64,x86_64   x64
>>>>>            sparcv9             sparcv9
>>>>>            arm                 arm32
>>>>>            aarch64             arm64
>>> I am not sure why we would change to osx for Mac when the Mac developers
>>> have recently dropped the Mac OS X terminology and changed it to macOS.
>> Agreed -- we should change OS_NAME from "Darwin" to "macos”.
> OK.  Should the bundle names be updated to reflect this change?
> In any case, it is a separate issue.
>
>             JDK 8               JDK 9
>             -----               -----
> OS_NAME    Linux               linux
>             SunOS               solaris
>             Darwin              macos
>             Windows             windows
>
> OS_ARCH    i386,x86            x86
>             i586,amd64,x86_64   amd64
>             sparcv9             sparcv9
>             arm                 arm32
>             aarch64             arm64
If we are making changes to the original proposal from JDK-8175819, then
I just want to add my few cents:

Why change from the well-established "aarch64" to the virtually unused
"arm64"? As far as I know, using the name "arm64" for the aarch64
platform is something that has only been done in the (recently opened)
closed Oracle port. This change, however, proposes to change the value
in the release file even for the open aarch64 port, which has always
been known by that name.

/Magnus

>
> Mandy
>

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Review Request JDK-8175819: OS name and arch in JMOD files should match the values as in the bundle name

Andrew Dinn
In reply to this post by Mandy Chung
On 03/04/17 19:41, Mandy Chung wrote:

> Webrev:
>   http://cr.openjdk.java.net/~mchung/jdk9/webrevs/8175819/webrev.00/
>
> This revisits the OS name and arch in packaging JDK modules
> to extend the module descriptor with ModuleTarget class file
> attribute.  We considered matching with the system properties.
> Linux x64 JDK can run on a system whose `os.arch` system
> property value can be `amd64` or `i586` or `x86_x64`.  
> Similiarly, windows x86/x64 JDK can run on a system whose
> `os.name` system property starts with “Windows” as the
> os.name property is set to "Windows XXX" for example
> "Windows Server 2012 R2”.  It might be worth considering
> multiple OS arch values in ModuleTarget in the future.
>
> JDK bundle names are revised in JDK 9.  This is a good
> alternative to be consistent with $OS-$ARCH value in
> the bundle names.  This patch proposes to package JDK modules
> with OS name and arch to match the values as in JDK bundle names.
> jlink will generate the `release` file and set OS_NAME and
> OS_ARCH to those values.  This also proposes to drop
> OS_VERSION to align with the ModuleTarget class file attribute.
>
> This shows the old and new value of OS_NAME/OS_ARCH properties
> in the `release` file:
>
>             JDK 8               JDK 9
>             -----               -----
> OS_NAME     Linux               linux
>             SunOS               solaris
>             Darwin              osx
>             Windows             windows
>              
> OS_ARCH     i386,x86            x86
>             i586,amd64,x86_64   x64
>             sparcv9             sparcv9
>             arm                 arm32
>             aarch64             arm64

arm64 is *not* a correct name for the AArch64 architecture. There is in
fact no arm64 architecture. The latter name has been used to identify
the Oracle-developed port but that fact does not sanction its use for
OS_ARCH.

regards,


Andrew Dinn
-----------
Senior Principal Software Engineer
Red Hat UK Ltd
Registered in England and Wales under Company Registration No. 03798903
Directors: Michael Cunningham, Michael ("Mike") O'Neill, Eric Shander
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Review Request JDK-8175819: OS name and arch in JMOD files should match the values as in the bundle name

Erik Joelsson
In reply to this post by Mandy Chung
Hello,

I don't quite understand this. In the proposition below it says osx, and
x64, but in platform.m4 you generate macos and amd64. Does this then get
translated again and why are we introducing yet another name for the
operating system on Apple computers?

/Erik


On 2017-04-03 20:41, Mandy Chung wrote:

> Webrev:
>    http://cr.openjdk.java.net/~mchung/jdk9/webrevs/8175819/webrev.00/
>
> This revisits the OS name and arch in packaging JDK modules
> to extend the module descriptor with ModuleTarget class file
> attribute.  We considered matching with the system properties.
> Linux x64 JDK can run on a system whose `os.arch` system
> property value can be `amd64` or `i586` or `x86_x64`.
> Similiarly, windows x86/x64 JDK can run on a system whose
> `os.name` system property starts with “Windows” as the
> os.name property is set to "Windows XXX" for example
> "Windows Server 2012 R2”.  It might be worth considering
> multiple OS arch values in ModuleTarget in the future.
>
> JDK bundle names are revised in JDK 9.  This is a good
> alternative to be consistent with $OS-$ARCH value in
> the bundle names.  This patch proposes to package JDK modules
> with OS name and arch to match the values as in JDK bundle names.
> jlink will generate the `release` file and set OS_NAME and
> OS_ARCH to those values.  This also proposes to drop
> OS_VERSION to align with the ModuleTarget class file attribute.
>
> This shows the old and new value of OS_NAME/OS_ARCH properties
> in the `release` file:
>
>              JDK 8               JDK 9
>              -----               -----
> OS_NAME     Linux               linux
>              SunOS               solaris
>              Darwin              osx
>              Windows             windows
>              
> OS_ARCH     i386,x86            x86
>              i586,amd64,x86_64   x64
>              sparcv9             sparcv9
>              arm                 arm32
>              aarch64             arm64
>
> Mandy
>  

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Review Request JDK-8175819: OS name and arch in JMOD files should match the values as in the bundle name

Erik Joelsson
Oh, I missed the further discussion before I posted this and the webrev
was apparently updated in place to reflect that discussion. Please
ignore my comment below.

/Erik


On 2017-04-04 11:57, Erik Joelsson wrote:

> Hello,
>
> I don't quite understand this. In the proposition below it says osx,
> and x64, but in platform.m4 you generate macos and amd64. Does this
> then get translated again and why are we introducing yet another name
> for the operating system on Apple computers?
>
> /Erik
>
>
> On 2017-04-03 20:41, Mandy Chung wrote:
>> Webrev:
>> http://cr.openjdk.java.net/~mchung/jdk9/webrevs/8175819/webrev.00/
>>
>> This revisits the OS name and arch in packaging JDK modules
>> to extend the module descriptor with ModuleTarget class file
>> attribute.  We considered matching with the system properties.
>> Linux x64 JDK can run on a system whose `os.arch` system
>> property value can be `amd64` or `i586` or `x86_x64`.
>> Similiarly, windows x86/x64 JDK can run on a system whose
>> `os.name` system property starts with “Windows” as the
>> os.name property is set to "Windows XXX" for example
>> "Windows Server 2012 R2”.  It might be worth considering
>> multiple OS arch values in ModuleTarget in the future.
>>
>> JDK bundle names are revised in JDK 9.  This is a good
>> alternative to be consistent with $OS-$ARCH value in
>> the bundle names.  This patch proposes to package JDK modules
>> with OS name and arch to match the values as in JDK bundle names.
>> jlink will generate the `release` file and set OS_NAME and
>> OS_ARCH to those values.  This also proposes to drop
>> OS_VERSION to align with the ModuleTarget class file attribute.
>>
>> This shows the old and new value of OS_NAME/OS_ARCH properties
>> in the `release` file:
>>
>>              JDK 8               JDK 9
>>              -----               -----
>> OS_NAME     Linux               linux
>>              SunOS               solaris
>>              Darwin              osx
>>              Windows             windows
>>               OS_ARCH     i386,x86            x86
>>              i586,amd64,x86_64   x64
>>              sparcv9             sparcv9
>>              arm                 arm32
>>              aarch64             arm64
>>
>> Mandy
>

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Review Request JDK-8175819: OS name and arch in JMOD files should match the values as in the bundle name

mark.reinhold
In reply to this post by Magnus Ihse Bursie
2017/4/4 1:04:22 -0700, [hidden email]:

> On 2017-04-03 23:50, Mandy Chung wrote:
>> ...
>>
>>            JDK 8               JDK 9
>>            -----               -----
>> OS_NAME    Linux               linux
>>            SunOS               solaris
>>            Darwin              macos
>>            Windows             windows
>>
>> OS_ARCH    i386,x86            x86
>>            i586,amd64,x86_64   amd64
>>            sparcv9             sparcv9
>>            arm                 arm32
>>            aarch64             arm64
>
> If we are making changes to the original proposal from JDK-8175819, then
> I just want to add my few cents:
>
> Why change from the well-established "aarch64" to the virtually unused
> "arm64"? As far as I know, using the name "arm64" for the aarch64
> platform is something that has only been done in the (recently opened)
> closed Oracle port. This change, however, proposes to change the value
> in the release file even for the open aarch64 port, which has always
> been known by that name.

The trouble here is that "arm64" and "aarch64" are effectively synonyms
for the ISA, but in the JDK we've wound up using them as the names of
two different ports.

A JMOD file built for the 64-bit ARM architecture will (one hopes) run
equally well on either port.  Which name should we use in JMOD files,
"arm64" or "aarch64"?  My sense is that "arm64" is more immediately
understood by developers at large even if "aarch64" is more correct
in the eyes of ARM Holdings plc, but I could be wrong.

For what it's worth, the Linux distros aren't consistent: Debian-based
distros use "arm64", while Red Hat / Fedora seem to prefer "aarch64".

- Mark
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [aarch64-port-dev ] Review Request JDK-8175819: OS name and arch in JMOD files should match the values as in the bundle name

Andrew Haley
On 04/04/17 16:12, [hidden email] wrote:
> The trouble here is that "arm64" and "aarch64" are effectively synonyms
> for the ISA, but in the JDK we've wound up using them as the names of
> two different ports.
>
> A JMOD file built for the 64-bit ARM architecture will (one hopes) run
> equally well on either port.  Which name should we use in JMOD files,
> "arm64" or "aarch64"?  My sense is that "arm64" is more immediately
> understood by developers at large even if "aarch64" is more correct
> in the eyes of ARM Holdings plc, but I could be wrong.

I think that you are wrong.

> For what it's worth, the Linux distros aren't consistent: Debian-based
> distros use "arm64", while Red Hat / Fedora seem to prefer "aarch64".

The name of the processor architecture is "AArch64".  The name of the
Linux kernel architecture is "arm64"; the name of all of userspace is
"aarch64", on all distros.  The kernel is out of step here, for no
better reason than Linus Torvalds didn't like "aarch64".

Andrew.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [aarch64-port-dev ] Review Request JDK-8175819: OS name and arch in JMOD files should match the values as in the bundle name

Bob Vandette
In reply to this post by mark.reinhold

> On Apr 4, 2017, at 11:12 AM, [hidden email] wrote:
>
> 2017/4/4 1:04:22 -0700, [hidden email]:
>> On 2017-04-03 23:50, Mandy Chung wrote:
>>> ...
>>>
>>>           JDK 8               JDK 9
>>>           -----               -----
>>> OS_NAME    Linux               linux
>>>           SunOS               solaris
>>>           Darwin              macos
>>>           Windows             windows
>>>
>>> OS_ARCH    i386,x86            x86
>>>           i586,amd64,x86_64   amd64
>>>           sparcv9             sparcv9
>>>           arm                 arm32
>>>           aarch64             arm64
>>
>> If we are making changes to the original proposal from JDK-8175819, then
>> I just want to add my few cents:
>>
>> Why change from the well-established "aarch64" to the virtually unused
>> "arm64"? As far as I know, using the name "arm64" for the aarch64
>> platform is something that has only been done in the (recently opened)
>> closed Oracle port. This change, however, proposes to change the value
>> in the release file even for the open aarch64 port, which has always
>> been known by that name.
>
> The trouble here is that "arm64" and "aarch64" are effectively synonyms
> for the ISA, but in the JDK we've wound up using them as the names of
> two different ports.

Well sort of …   We are only using arm64 as a configure option to enable building
the unified ARM32/64 port and a label in Jira to identify which port a bug or RFE is related to.

Both 64-bit ARM ports have been using aarch64 for the os.name property
since day one and I think we should stick to this name in the release file to
avoid any confusion.  

Bob.

>
> A JMOD file built for the 64-bit ARM architecture will (one hopes) run
> equally well on either port.  Which name should we use in JMOD files,
> "arm64" or "aarch64"?  My sense is that "arm64" is more immediately
> understood by developers at large even if "aarch64" is more correct
> in the eyes of ARM Holdings plc, but I could be wrong.
>
> For what it's worth, the Linux distros aren't consistent: Debian-based
> distros use "arm64", while Red Hat / Fedora seem to prefer "aarch64".
>
> - Mark

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [aarch64-port-dev ] Review Request JDK-8175819: OS name and arch in JMOD files should match the values as in the bundle name

mark.reinhold
In reply to this post by Andrew Haley
2017/4/4 8:22:50 -0700, [hidden email]:

> On 04/04/17 16:12, [hidden email] wrote:
>> The trouble here is that "arm64" and "aarch64" are effectively synonyms
>> for the ISA, but in the JDK we've wound up using them as the names of
>> two different ports.
>>
>> A JMOD file built for the 64-bit ARM architecture will (one hopes) run
>> equally well on either port.  Which name should we use in JMOD files,
>> "arm64" or "aarch64"?  My sense is that "arm64" is more immediately
>> understood by developers at large even if "aarch64" is more correct
>> in the eyes of ARM Holdings plc, but I could be wrong.
>
> I think that you are wrong.
>
>> For what it's worth, the Linux distros aren't consistent: Debian-based
>> distros use "arm64", while Red Hat / Fedora seem to prefer "aarch64".
>
> The name of the processor architecture is "AArch64".  The name of the
> Linux kernel architecture is "arm64"; the name of all of userspace is
> "aarch64", on all distros.  The kernel is out of step here, for no
> better reason than Linus Torvalds didn't like "aarch64".

Thanks for the background -- I wasn't aware of that.

Given that "os.arch" is "aarch64" for both ports, as Bob points out,
then we should use "aarch64" in JMOD files as well.

This does raise another question, though: Should we use "aarch32"
instead of "arm32" for the 32-bit ARM architecture?

- Mark
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [aarch64-port-dev ] Review Request JDK-8175819: OS name and arch in JMOD files should match the values as in the bundle name

Andrew Haley
On 04/04/17 17:35, [hidden email] wrote:
> This does raise another question, though: Should we use "aarch32"
> instead of "arm32" for the 32-bit ARM architecture?

Probably not.  I believe that "aarch32" is historical revisionism
coming from ARM: it didn't exist as a name before AArch64 came out.
AFAICR...

Andrew.
12
Loading...