This appendix describes how you can specify targets and architectures for the ELF utilities.
|The development tools automatically take care of this -- you'll probably never need to worry about it.|
You can specify three aspects of the target system to the utilities that work on ELF files, each in several ways:
In the following summaries, the lists of ways to specify values are in order of decreasing precedence; the ways listed first override those listed later.
A target is an object file format. A given target may be supported for multiple architectures (see "Architecture selection"). A target selection may also have variations for different operating systems or architectures.
The command to list valid target values is objdump -i (the first column of output contains the relevant information). Some sample values are: elf32-i386, elf32-littlemips, and elf32-powerpc.
Here's how to specify the target for the ELF utilities:
An architecture is a type of CPU on which an object file is to run. Its name may contain a colon, separating the name of the processor family from the name of the particular CPU.
The command to list valid architecture values is objdump -i. Sample values include powerpc:common and mips.
Here's how to specify the architecture for the GNU utilities:
A linker emulation is a "personality" of the linker; it gives the linker default values for the other aspects of the target system. In particular, it consists of the linker script, the target, and several "hook" functions that are run at certain stages of the linking process to do special things that some targets require.
The command to list valid linker emulation values is ld -V. Sample values include i386nto, elf32mipnto, and elf32ppcnto.
Ways to specify: