Skip to content

JEP 237: Linux/AArch64 Port | 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 平台上构建和测试移植内容,以确保不会引入破坏现有平台的回归问题。

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

风险和假设

在进行这项工作时,可能存在 AArch64 硬件可用性的问题,但我们希望在项目进行过程中它会得到广泛提供。

类似于 PPC/AIX 移植,将创建一个由 AArch64 移植项目拥有的暂存存储库(例如 aarch64-port/stage),包含已经经过审查和批准的变更集。