diff --git a/md/SUMMARY.md b/md/SUMMARY.md index 28da8ae..e0295ea 100644 --- a/md/SUMMARY.md +++ b/md/SUMMARY.md @@ -30,6 +30,7 @@ - [Очистка и сохранение](cross-compiler/cleanup.md) - [Объявление дополнительных переменных](cross-compiler/env.md) - [Сборка базовой системы](base/README.md) + - [Настройка rustup](base/set-rustup.md) - [Создание файлов и каталогов](base/create-files.md) - [libgcc](base/libgcc.md) - [musl](base/musl.md) diff --git a/md/base/set-rustup.md b/md/base/set-rustup.md new file mode 100644 index 0000000..54f8205 --- /dev/null +++ b/md/base/set-rustup.md @@ -0,0 +1,49 @@ +# Настройка rustup + +На языке программирования Rust написан ряд программ, входящих в состав Linux for ARM. Для их компиляции вам необходимо установить кросс-компилятор этого ЯП. Мы не будем его собирать вручную, поскольку это медленнее и в чём-то даже сложнее сборки кросс-компилятора для языков С,С++, поэтому воспользуемся программой `rustup` для установки нужного нам инструментария, предварительно скомпилированного разработчиками. + +Скачайте и запустите `rustup`: + +```bash +curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh +``` + +Установите стабильную версию языка: + +```bash +rustup default stable +``` + +Добавьте поддержку архитектуры `$LFA_TGT`: + +```bash +rustup target add aarch64-unknown-linux-musl +``` + +Объявите переменную окружения `$CARGO_BUILD` с аргументами для системы сборки `cargo`: + +```bash +export CARGO_BUILD="build --release --target aarch64-unknown-linux-musl" +echo "CARGO_BUILD=\"$CARGO_BUILD\"" >> ~/.bashrc +``` + +Теперь для сборки программ, написанных на языке программирования Rust, вам нужно будет ввести команду[^1]: + +```bash +cargo $CARGO_BUILD +``` + +## Настройка для программ не из проекта LFA + +В случае, если вы пытаетесь скомпилировать другую Rust-программу, но она не собирается даже после выполнения инструкций выше, попробуйте создать в папке с исходниками этой программы подпапку `.cargo`, в котором будет расположен файл `config.toml` с определением ряда параметров сборки: + +```bash +mkdir -v .cargo +cat > .cargo/config.toml << EOF +[target.aarch64-unknown-linux-musl] +linker = "$LFA_TGT-gcc" +ar = "$LFA_TGT-ar" +EOF +``` + +[^1]: Для некоторых программ нужно будет также создать конфиг `.cargo/config.toml`, где будут содержаться имена сторонних инструментов, использующихся при компиляции программ на Rust. В micro init и pkg этот конфиг уже существует. Вы можете использовать его в других Rust-программах, если они не компилируются после выполнения инструкций выше.