Во-первых: вы не пытаетесь эмулировать возможность -b
GCC ld, не так ли?В более подробных терминах: GCC ld может загружать несколько двоичных форматов, см. документацию .Если это то, чего вы хотите достичь, то что-то вроде:
gcc prog.c -Wl,-b -Wl,binary file.o
может спасти вас весь вызов objcopy.
Хотя я не могу найти документацию по проблеме, выводobjdump -i
кажется отсортированным по предпочтениям, поэтому
`objdump -i | head -n 2 | tail -n 1`
следует расширить до обычной целевой архитектуры.Повторюсь: у меня нет документации по этому поведению, поэтому лучше не полагаться на это вслепую.