3.4.3 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_FORMATcommand names the BFD format to use for the output file (see BFD). UsingOUTPUT_FORMAT(bfdname)is exactly like using --oformat bfdname on the command line (see Command Line Options). If both are used, the command line option takes precedence.You can use
OUTPUT_FORMATwith 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
TARGETcommand names the BFD format to use when reading input files. It affects subsequentINPUTandGROUPcommands. This command is like using -b bfdname on the command line (see Command Line Options). If theTARGETcommand is used butOUTPUT_FORMATis not, then the lastTARGETcommand is also used to set the format for the output file. See BFD.