跳到主要内容

JEP 237:Linux/AArch64 移植

QWen Max 中英对照

概述

将 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),以包含已经过评审和批准的变更集。