openjdk.ruOpenJDK на русском

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), в котором будут находиться наборы изменений, прошедшие рецензирование и одобренные.