Commands dealing with object file formats
-----------------------------------------
A couple of linker script commands deal with object file formats.
`OUTPUT_FORMAT(BFDNAME)'
`OUTPUT_FORMAT(DEFAULT, BIG, LITTLE)'
The `OUTPUT_FORMAT' command names the BFD format to use for the
output file (Note:BFD). Using `OUTPUT_FORMAT(BFDNAME)' is
exactly like using `--oformat BFDNAME' on the command line (Note:Command Line Options.). If both are used, the command
line option takes precedence.
You can use `OUTPUT_FORMAT' with three arguments to use different
formats based on the `-EB' and `-EL' command line options. This
permits the linker script to set the output format based on the
desired endianness.
If neither `-EB' nor `-EL' are used, then the output format will
be the first argument, DEFAULT. If `-EB' is used, the output
format will be the second argument, BIG. If `-EL' is used, the
output format will be the third argument, LITTLE.
For example, the default linker script for the MIPS ELF target
uses this command:
OUTPUT_FORMAT(elf32-bigmips, elf32-bigmips, elf32-littlemips)
This says that the default format for the output file is
`elf32-bigmips', but if the user uses the `-EL' command line
option, the output file will be created in the `elf32-littlemips'
format.
`TARGET(BFDNAME)'
The `TARGET' command names the BFD format to use when reading input
files. It affects subsequent `INPUT' and `GROUP' commands. This
command is like using `-b BFDNAME' on the command line (Note:Command Line Options.). If the `TARGET' command is used
but `OUTPUT_FORMAT' is not, then the last `TARGET' command is also
used to set the format for the output file. Note:BFD.