Итак, мне, вероятно, нужно использовать «кросс-компиляцию» для создания этого gcc / glibc, но результатом должен быть ARM для ARM, а не ARM для x86.Я прав?
Это правильно, но не полный рабочий процесс.Вам нужно больше компиляторов, чем вы можете себе представить.
Это просто вопрос игры с переменными "target", "host"?
Это более сложночем вы могли бы сначала представить.Я хотел бы отослать вас к Crosstool-NG Типам Инструментов и Канадский Крест Википедии для справки.
Небольшое чтение покажет, что вы пытаетесь сделать кросс-нативный компилятор с, я предполагаю, сборкой как x86-glibc-linux, хостом как arm-glibc-linux и целевой как arm-glibc-linux.Вам нужен собственный компилятор (x86-glibc-linux) для создания cross arm-glibc-linux, который работает на x86 (хост).Это потому, что cross native arm-glibc-linux должен создать glibc как часть цепочки инструментов, которая будет работать на ARM.Вам нужно больше, чем компилятор;компоновщик (gold?), библиотеки (shared / static) и т. д.
Crosstool-ng поддерживает это, и, как правило, yocto и дистрибутивы используют его для создания своей версии.Часто есть более эффективные способы сделать это, чем с помощью crosstool-ng, поскольку иногда достаточно только загрузочного компилятора и / или вы можете повторно использовать код, созданный для предыдущей сборки компилятора.См., Например,
«Кросс-нативный» набор инструментов может быть построен как тривиальный случай «канадского» набора инструментов.Это неоптимально, так как это заставляет crosstool-NG собирать инструменты, нацеленные на хост-компьютер, дважды (во-первых, как отдельный набор инструментов, который является обязательным условием для всех сборок в Канаде; во-вторых, как часть временного набора инструментов, созданного как часть канадского).построй сам).Это, вероятно, будет улучшено в будущем.
Однако, если это делается редко, вы можете строить это здание, пока вы занимаетесь другими делами.Мне потребовалось несколько дней, чтобы создать канадский кросс "x86-64-linux / x86-mingw / arm-linux", чтобы позволить разработку Windows для устройства ARM Linux.Если вы думаете, что создадите этот компилятор много раз (например, для отслеживания разработки gcc), вы можете захотеть взглянуть на собственный скрипт вместо crosstool-NG.