Тулчейн Rust на Redox собирается рецептами Cookbook, с кэшем и общей LLVM
26.02.2026Сборка компилятора Rust на Redox переведена на штатные рецепты Cookbook. Это дало кэширование через sccache, линковку с разделяемыми библиотеками LLVM вместо статической, а также rustdoc и линкер rust-lld на самой Redox.
Зачем тулчейн ставится рецептами
Компилятор — большая программа, собирающаяся долго и требующая множества зависимостей. Обычно для таких сборок пишут отдельную процедуру. Но Redox строит систему рецептов, где каждая программа описывается единообразно: версия, зависимости, параметры, патчи.
Перевод тулчейна на рецепты означает, что он собирается тем же механизмом, что и всё остальное. Отсюда три следствия, каждое из которых важно само по себе.
Кэширование через sccache
sccache — кэш результатов компиляции, созданный для непрерывной сборки. Повторная сборка того же кода берёт результат из кэша вместо компиляции заново.
Для сборки самого компилятора это особенно заметно: зависимостей много, и повторные попытки неизбежны. С кэшем эксперимент «а заработает ли, если пересобрать» перестаёт занимать часы.
Общие библиотеки LLVM вместо статических
Компилятор линкуется либо сам с собой, либо с разделяемыми библиотеками. Первый вариант надёжнее, второй — быстрее собирается и меньше по размеру.
Для Redox это часть более широкого движения: компилятор должен работать на Redox, значит, сборка под Redox тоже должна быть по-настоящему своя. В коммите от 26 февраля библиотеки LLVM для Redox сделаны разделяемыми, а префикс сборки — собираемым на самой системе, с режимом самостоятельной сборки.
rustdoc и rust-lld
rustdoc — генератор документации крейтов. Он включён и для сборки под Linux, и под Redox. Это позволяет публиковать документацию крейта с самой Redox, а не только с внешней машины.
rust-lld — линкер на Rust, написанный внутри проекта Rust. На Redox он теперь используется как основной линкер, для чего потребовался обходной путь. Обычно собственный линкер линкует быстрее и потребляет меньше памяти, чем GNU ld.
Оригинал
Коммит Build prefix on Redox OS, add self hosted mode от 26 февраля 2026 года в репозитории redox-os/redox; начало перевода — Boostrap rust from cookbook от 11 февраля, обходной путь для rust-lld — 12-го, rustdoc — 24-го. Сводка «This Month in Redox — February 2026», раздел «Rust In Cookbook!»
Упоминаний: 1 · Просмотров: 5