ReadMe.md

lcc

В данном репозитории предоставлено окружение для сборки и запуска программ под Эльбрус.

Работа в окружении

В контейнере или после вызова скрипта установки появится возможность вызывать кросскомпилятор. Для сборки c++ кода нужно использовать l++, а для c кода - lcc.

Для запуска бинарных файлов используется команда e2k. Она вызывает qemu с необходимыми ключами.

e2k a.out

Для использования систем сборок нужно устанавливать системные переменные CXX и CC как l++ и lcc. Сделать это можно так:

export CXX=l++
export CC=lcc

Путь к файлам компилятора: /opt/mcst/

Установка окружения

Если требуется установить окружение на систему, то сперва требуется установить необходимые пакеты. Пакеты для Ubuntu:

  • build-essential
  • ninja-build
  • python3
  • python3-pip
  • libglib2.0-dev

После этого можно вызвать скрипт install.sh, и через некоторое время окружение будет установлено.
Он изменит файл /etc/environment и для применения изменений нужно будет либо перезапустить систему, либо перечитать environment файл с помощью команды source /etc/environment. До перезапуска в новых терминальных сессиях обновлений не будет, и нужно будет каждый раз перечитывать файл с помощью source.

Использование контейнера

Установка контейнера из registry

Для установки контейнера из облака можно вызвать команду:

docker pull registry.gitflic.ru/project/mrognor/lcc-env/lcc-container

Локальная сборка контейнера

Для сборки контейнера локально можно использовать скрипт build.sh

Запуск контейнера

Для запуска контейнера используется скрипт container.sh. Он монтирует директорию из которой он запущен в контейнер и позволяет передавать файлы между контейнером и хостовой системой. Также скрипт делает так, что все файлы, созданные в контейнере, создаются из под пользовательской учетной записи.

При запуске приоритет будет отдан локально собранному контейнеру.

Таким образом, можно вести разработку в хостовой системе, а контейнер использовать только для сборки и запуска тестов.

Учетные данные контейнера

Базовый пользователь - ubuntu, пароль - 1234.
Root пользователь - root, пароль - root

Описание файлов

  1. build_image.sh - скрипт собирает образ из Dockerfile.
  2. container.sh - скрипт запускает контейнер.
  3. Dockerfile - в данном файле описан контейнер.
  4. install.sh - скрипт производит установку и настройку окружения в систему. Скрипт не устанавливает системные пакеты.
  5. delete.sh - скрипт откатывает все, что сделал install.sh

Версии

lcc - lcc-1.27.21.e2k-v6.5.10-e2c3

Статья на хабре

Чуть больше информации можно получить в статье на хабре.

Ресурсы

  1. Сайт мцст - https://dev.mcst.ru/
  2. Git Openelbrus - https://git.openelbrus.ru/mcst
Описание

Окружение для сборки и запуска программ под Эльбрус

Конвейеры
0 успешных
0 с ошибкой