LINUX.ORG.RU

История изменений

Исправление GPFault, (текущая версия) :

Мм? А как? Выдернул из макоси нативный сисрут или есть вариант бутстрапнуть?

Разработчки языка Zig сделали вначале поддержку кросскомпиляции в своём языке (и она, ожидаемо рисковлаа остаться почти никому не нужной). А потом пошли по интересному пути - выкатили на этой основе инструмент, который без всякого Zig позволяет кросс-компилять С/C++/Rust. Если кодовая база проекта дотаточно проста в плане зависимостей - это работает.

Для С/C++ - https://zig.news/kristoff/cross-compile-a-c-c-project-with-zig-3599

Для Rust https://github.com/rust-cross/cargo-zigbuil

Вцелом линковщик знает нюансы линковки под каждую из платформ, и реализует их самостоятельно, без отсылки к инструментам платформы. Так он например позволяет на линуксе линковать С/C++-приложеие на произвольную версию glibc, не обязательно на ту, которая стоит в системе, примерно описано в той же статье про С/C++

Исходная версия GPFault, :

Мм? А как? Выдернул из макоси нативный сисрут или есть вариант бутстрапнуть?

Разработчки языка Zig сделали вначале поддержку кросскомпиляции в своём языке (и она, ожидаемо рисковлаа остаться почти никому не нужной). А потом пошли по интересному пути - выкатили на этой основе инструмент, который без всякого Zig позволяет кросс-компилять С/C++/Rust. Если кодовая база проекта дотаточно проста в плане зависимостей - это работает.

Для С/C++ - https://zig.news/kristoff/cross-compile-a-c-c-project-with-zig-3599

Для Rust https://github.com/rust-cross/cargo-zigbuil

Вцелом линковщик знает нюансы линковки под каждую из платформ, и реализует их самостоятельно, без отсылки к инструментам платформы. Так он например позволяет на линуксе линковаться на произвольную версию glibc, не обязательно на ту, которая стоит в системе, описано примерно в той же статье про С/C++.