Поддержка архитектуры e2k
Для сборки под архитектуру e2k (Эльбрус) необходим компилятор lcc. На текущий момент, он поставляется только в комплекте с конкретной версией операционной системы или в составе комплекта разработчика от МЦСТ. Для работы с компилятором необходимо только получить доступ к нему, купив ОС или SDK, никаких NDA не требуется. В состав комплекта также входит кросс-компилятор с платформы x86_64 на e2k.
Важно: МЦСТ не гарантирует бинарную совместимость даже между минорными версиями компилятора (например, 1.26.20 и 1.26.24). Приложения (зависимости SDK в том числе) необходимо компилировать с конкретной версией компилятора, предназначенного для системы.
Поддерживаемые версии архитектуры e2k:
- e2kv4 (Эльбрус 8С)
- e2kv5 (Эльбрус 8СВ)
- e2kv6 (Эльбрус 16С, Эльбрус 2С3)
Минимальная версия компилятора: 1.26.20.
Рекомендуемая версия компилятора: 1.28.09+
Ограничения приложений для e2k
Далее, список известных ограничений при создании приложений для e2k с использованием Stappler SDK.
Стиль кода
- Недоступны автоматические операторы сравнения для компиляторов младше 1.28 (не используются в коде SDK, но допустимы для клиентского кода с C++20).
- Недоступны
constexpr static
переменные составных типов, интерпетируются компилятором какextern
.
Инструменты
- Недоступны инструменты, основанные на LLVM (вероятно исправление в следующей версии Эльбрус Линукс), в том числе Mesa Lavapipe, WASI SDK (есть подготовленный патч), компилятор WAMR
- В составе Астра Линукс входит сломанный компонент Vulkan, несмотря на то, что его поддержка есть в системе. Обращайтесь sbkarr@stappler.org за консультацией, как его запустить.