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 с ошибкой