Список целей, поддерживаемых binutils
Я слежу за сайтом ( http://wiki.osdev.org/GCC_Cross-Compiler), чтобы научиться кросс-компиляции кода для разных архитектур. Итак, первым шагом является загрузка и компиляция Binutils для конкретной цели.
На сайте говорится, что для назначения переменной TARGET нужно использовать i686-elf, потому что тогда binutils сможет обрабатывать код в формате, заданном $TARGET.
export PREFIX="$HOME/opt/cross"
export TARGET=i686-elf
export PATH="$PREFIX/bin:$PATH"
Итак, мой вопрос в том, что
Могу ли я получить список целей, поддерживаемых Binutils?
Если переменная TARGET может содержать что-либо или должна быть чем-то, что поддерживается Binutils, то есть будет ли ошибка при компиляции исходного кода binutils, если TARGET - это то, что binutils не понимает?
2 ответа
Никогда не видел ответа на этот вопрос, поэтому я дам ему попытку колледжа для тех, кто приезжает из различных поисковых систем. Если кто-то скачивает или клонирует binutils из исходного кода
git clone git://sourceware.org/git/binutils-gdb.git
А потом читает это объяснение binutils
https://sourceware.org/binutils/binutils-porting-guide.txt
Вы найдете ответ.
TL; DR
Прочитайте содержимое config.bfd в каталоге bfd
Все поддерживаемые цели перечислены в
cd /path/to/git/clone/of/binutils/bfd
Обратите внимание на файлы с elf32-[SOME_NAME].c и elf64-[SOME_NAME].c в указанном выше каталоге. Это ваши поддерживаемые цели.
бывший
elf32-cr16.c
будет переводить на,
--target=cr16-elf
Я просто клонировал binutils и нашелgdb/README
есть самая полезная подсказка (ссылка):
The
configure' script accompanying GDB does not provide any query facility to list all supported host and target names or aliases.
configure' вызывает сценарий оболочки Bourne `config.sub' для сопоставления сокращений с полными именами; вы можете прочитать сценарий, если хотите, или использовать его для проверки своих догадок относительно сокращений, например:
А теперь удачи в создании тройки.