regularfry
regularfry

Reputation: 3268

What's the "correct" way to determine target and architecture for GNU binutils?

In my build chain, I need to do this:

objcopy -I binary -O $BFDNAME -B $BFDARCH <this> <that>

in order to get a binary file into library form. Because I want other people to be able to use this, I need to know how to get $BFDNAME and $BFDARCH from their toolchain when they run the build. I can get the values locally by running objdump -f against a file I've already built, but is there a better way which won't leave me compiling throw-away files just to get configuration values?

Upvotes: 5

Views: 3993

Answers (2)

dasup
dasup

Reputation: 3835

Thank you for pointing this out, regularfry! Your answer helped me to find another solution which works without specifying the architecture at all:

ld -r -b binary -o data.o data.txt

On my system (Ubuntu Linux, binutils 2.22) both objcopy and ld approaches produce identical object files.

All credit goes to: http://stupefydeveloper.blogspot.de/2008/08/cc-embed-binary-data-into-elf.html

Upvotes: 4

regularfry
regularfry

Reputation: 3268

For future reference, the answer seems to be this: the first entry in the output of objdump -i is the default, native format of the system.

Upvotes: 3

Related Questions