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