Прискорбно наблюдать, как в
GNU Compiler Collection (
GCC) добавляют компиляторы не заботясь о кросс-сборке. Так, например, компилятор
Modula-2 не кросс-компиляемый. Во время конфигурирования просто забыли добавить
—host триплет (что приводит к ошибке сразу) и, кроме того, утилиты
mlink,
mc, которые должны работать на
build-машине, собираются кроссом на целевую машину. В результате, естественно, происходит ошибка при запуске
mlink на
build-машине (во время сборки
GCC).
Подобных ошибок множество, например, при компоновке библиотеки
gmp использутся левые
build,
host,
target триплеты и без наложения pathch-ей на
Makefile.in собрать кроссом
GCC не получится.
Люди забывают, что (в случае
GCC):
—build - это машина, на которой собирают
GCC;
—host - это машина, на которой будет работать собранная коллекция компиляторов (
GCC);
—target - это машина, для которой готовятся программы с помощью
GCC на
host-машине.
В общем, компилятор
Modula-2 не готов и в сборку
GCC добавлен не будет.
Rust, вообще не понятно зачем, добавили в
GCC. Он (
тот что в составе GCC) вообще не может готовить программы.
Отрадно то, что к компилятору
языка D, в составе
GCC, нет никаких претензий. Разве что
runtime у него великоват.