Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Добавление информации о настройке rustup #46

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions md/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
49 changes: 49 additions & 0 deletions md/base/set-rustup.md
Original file line number Diff line number Diff line change
@@ -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-программах, если они не компилируются после выполнения инструкций выше.