Расширение поддержки архитектур
Основная цель внедряемых изменений — использование GCC для генерации кода в компиляторе Rust. Это критически важно для архитектур, которые поддерживаются ядром Linux и GCC, но отсутствуют в экосистеме LLVM. Среди таких архитектур — m68k, Alpha, а также различные встроенные системы и микроконтроллеры (MCU). Это позволит разработчикам применять оптимизации GCC и писать безопасный код на Rust для широкого спектра «железа».
Технические детали и исправления
Разработчики уже начали вносить патчи, устраняющие ошибки сборки, связанные с неоднозначностью компонента rustc-dev. Работы ведутся в рамках проекта rustc_codegen_gcc (доступен на GitHub), который не следует путать с фронтендом GCC для Rust (gccrs). На данный момент поддержка остается экспериментальной, но базовые барьеры для интеграции в основное дерево ядра начинают устраняться.
Сравнение подходов к компиляции Rust в Linux
| Характеристика | Стандартный подход (LLVM) | Экспериментальный подход (GCC) |
|---|---|---|
| Бэкенд | LLVM (через rustc) | rustc_codegen_gcc |
| Поддерживаемые архитектуры | Основные (x86, ARM, RISC-V и др.) | Дополнительные (m68k, Alpha, MCU) |
| Статус в Linux 7.3 | Основной рабочий инструмент | Начальная фаза исправления ошибок сборки |
Дополнительные улучшения
Помимо работы с GCC, пулл-реквест для Linux 7.3 включает исправления предупреждений компилятора Clang и обновления различных модулей Rust, используемых в ядре. Эти изменения направлены на повышение стабильности и чистоты кодовой базы. Полный список изменений доступен в официальном pull-реквесте разработчиков.
Источник: Phoronix ↗
