Статьи

Документация

Дополнительно

Поддержка архитектуры 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 за консультацией, как его запустить.