RFR: 8304915: Create jdk.internal.util.Architecture enum and apply [v15]

Martin Doerr mdoerr at openjdk.org
Wed Apr 19 13:26:02 UTC 2023


On Mon, 17 Apr 2023 20:59:06 GMT, Roger Riggs <rriggs at openjdk.org> wrote:

>> Define an internal jdk.internal.util.Architecture enumeration and static methods to replace uses of the system property `os.arch`.
>> The enumeration values are defined to match those used in the build.
>> The initial values are: `X64, X86, AARCH64, RISCV64, S390, PPC64`
>> Note that `amd64` and `x86_64` in the build are represented by `X64`.
>> The value of the system property `os.arch` is unchanged.
>> 
>> The API is similar to the jdk.internal.util.OperatingSystem enum created by #[12931](https://git.openjdk.org/jdk/pull/12931).
>> Uses in `java.base` and a few others are included but other modules will be done in separate PRs.
>
> Roger Riggs has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 17 commits:
> 
>  - Merge branch 'master' into 8304915-arch-enum
>  - ArchTest on Debian RISC-V 64 confirmed by reviewer
>  - Fixed isPPC64().
>    Consolidated switch cases in ArchTest.
>    Moved mapping of build TARGET_OS and TARGET_CPU to the build
>    to avoid multiple mappings in more than one place.
>  - Correct mapping and test of ppc64
>  - Add ppc64 as mapping to PPC64 Architecture
>  - Modified test to check Architecture is64bits() and isLittleEndian()
>    against Unsafe respective values.
>    Relocated code mapping OS name and arch name from PlatformProps to
>    OperatingSystem and Architecture. Kept the mapping of names
>    in the template close to where the values are filled in by the build.
>  - Remove unused static and import of Stabile
>  - Rename OperatingSystemProps to PlatformProps.
>    Refactor OperatingSystem initialization to use strings instead of integers.
>  - Revised mapping mechanism of build target architecture names to enum values.
>    Unrecognized values from the build are mapped to enum value "OTHER".
>    Renamed PPC64LE to PPC64 to reflect only the architecture, not the endianness.
>    Added an `isLittleEndian` method to return the endianness (not currently used anywhere)
>  - Revert changes to jdk.accessibility AccessBridge
>  - ... and 7 more: https://git.openjdk.org/jdk/compare/8858d543...99a93b7e

test/jdk/jdk/internal/util/ArchTest.java line 71:

> 69:             case "aarch64" -> AARCH64;
> 70:             case "riscv64" -> RISCV64;
> 71:             case "s390x", "s390" -> S390;  // unverified

This was also verified according to comments. Right, @offamitkumar?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/13357#discussion_r1171335657



More information about the client-libs-dev mailing list