跳到主要内容

JEP 237:Linux/AArch64 端口

概括

将 JDK 9 移植到 Linux/AArch64。

动机

AArch64 是 ARM Holdings plc 的新处理器架构。它背离了 32 位 ARM 处理器架构,并且实际上是一次彻底的重新设计。它需要一个新的 OpenJDK 端口。

描述

我们(AArch64 移植项目)已将 JDK 移植到新平台:Linux/AArch64。我们已经实现了模板解释器、C1(客户端)和 C2(服务器)JIT 编译器。

此 JEP 的重点不是移植工作本身(该工作已基本完成),而是将移植集成到 OpenJDK 主存储库中。

目前,我们在 HotSpot 存储库的共享部分中有大量琐碎的变更集。这些大多是#ifdef,其中包括相关的特定于平台的文件。还有一些其他类型的更改,但这些更改再次受到 #ifdef AARCH64 的保护。因此,其他平台的风险较低。

HotSpot 和 JDK 其余部分的构建机制也发生了变化,为字节序、字长等添加了适当的定义。同样,这些不应影响其他平台。

大多数要集成的更改不会以任何方式影响当前的 OpenJDK 平台,因为它们仅在新平台上有效。

构建系统也发生了变化,但不会造成太大麻烦。

以下是 HotSpot 中共享代码所需更改的补丁。

所有变更集都收集在临时存储库中:http://hg.openjdk.java.net/aarch64-port/stage/

测试

Red Hat 和 Linaro 定期在移植平台以及当前支持的 JDK 8 平台上构建和测试移植,以确保不会引入破坏现有平台的回归。

红帽致力于全面支持(即定期更新、增强和测试)此项工作引入的新平台的代码。

风险和假设

AArch64 硬件的可用性可能存在一些问题来完成这项工作,但我们希望它将在该项目的过程中得到广泛使用。

与 PPC/AIX 端口类似,将创建 AArch64 端口项目拥有的暂存林(例如,aarch64-port/stage)以包含已审核和批准的变更集。