JEP 237: Linux/AArch64 Port
Порт на Linux/AArch64
| Ответственный | Andrew Haley |
| Тип | Feature |
| Область | Implementation |
| Статус | Closed / Delivered |
| Выпуск | 9 |
| Компонент | hotspot / compiler |
| Обсуждение | aarch64 dash port dash dev at openjdk dot java dot net |
| Трудоёмкость | L |
| Длительность | S |
| Рецензенты | Mikael Vidstedt, Vladimir Kozlov |
| Одобрен | Mikael Vidstedt |
| Создан | 2014/06/02 17:15 |
| Обновлён | 2017/03/08 23:38 |
| Задача | 8044552 |
Аннотация
Портировать JDK 9 на Linux/AArch64.
Мотивация
AArch64 — новая процессорная архитектура от ARM Holdings plc. Она отходит от 32-битной процессорной архитектуры ARM и по сути представляет собой полностью переработанную архитектуру. Для неё нужен новый порт OpenJDK.
Описание
Мы (AArch64 Porting Project) портировали JDK на новую платформу: Linux/AArch64. Мы реализовали шаблонный интерпретатор, а также JIT-компиляторы C1 (клиентский) и C2 (серверный).
Этот 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 Port Project (например, aarch64-port/stage), в котором будут находиться наборы изменений, прошедшие рецензирование и одобренные.