JEP 237: Linux/AArch64 Port
Summary
Port JDK 9 to Linux/AArch64.
Motivation
AArch64 is the new processor architecture from ARM Holdings plc. It is a departure from the 32-bit ARM processor architecture, and is effectively a complete redesign. It needs a new OpenJDK port.
Description
We (the AArch64 Porting Project) have ported the JDK to a new platform: Linux/AArch64. We have implemented the template interpreter, the C1 (client) and the C2 (server) JIT compilers.
The focus of this JEP is not the porting effort itself, which has been mostly completed, but rather the integration of the ports into the OpenJDK master repositories.
Currently we have a large number of trivial changesets in the shared part of the HotSpot repository. These are mostly #ifdef's that include the relevant platform-specific files. There are a few changes of other kinds, but again these are guarded by #ifdef AARCH64. Thus, the risk to other platforms is low.
There are also changes to the build machinery of HotSpot and rest of the JDK to add appropriate definitions for endianness, word size, and so on. Again, these should not affect other platforms.
Most of the changes to be integrated won’t affect the current OpenJDK platforms in any way because they are only active on the new platform.
There are also changes in the build system but they shouldn’t cause much trouble.
Here is a patch of the changes needed to the shared code in HotSpot.
All changesets are collected in a staging repository: http://hg.openjdk.java.net/aarch64-port/stage/
Testing
Red Hat and Linaro regularly build and test the ports on the porting platforms as well as on the currently-supported JDK 8 platforms to ensure that no regressions are being introduced which break the existing platforms.
Red Hat is committed to support fully (i.e., regularly update, enhance, and test) the code for the new platforms introduced by this effort.
Risks and Assumptions
There are potentially some issues with the availablility of AArch64 hardware to do this work, but we hope that it will become widely available in the course of this project.
Similarly to the PPC/AIX port, a staging forest owned by the AArch64 Port Project will be created (e.g., aarch64-port/stage) to contain changesets that have been Reviewed and approved.