Список целей, поддерживаемых 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' для сопоставления сокращений с полными именами; вы можете прочитать сценарий, если хотите, или использовать его для проверки своих догадок относительно сокращений, например:

А теперь удачи в создании тройки.

Другие вопросы по тегам