#### 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_FORMAT` command names the BFD format to use for the output file (see BFD). Using `OUTPUT_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_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 (see 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. See BFD.