26.1 Host and Target
We will first discuss using GNU Autotools to build cross compilation tools.
For example, the information in this section will explain how to
configure and build the GNU cc compiler as a cross compiler.
When building cross compilation tools, there are two different systems
involved: the system on which the tools will run, and the system for
which the tools will generate code. The system on which the tools will
run is called the host system. The system for which the tools
generate code is called the target system.
For example, suppose you have a compiler which runs on a GNU/Linux
system and generates ELF programs for a MIPS-based embedded
system. In this case, the GNU/Linux system is the host, and the
MIPS ELF system is the target. Such a compiler could be
called a GNU/Linux cross MIPS ELF compiler, or,
equivalently, a `i386-linux-gnu' cross `mips-elf' compiler.
We discussed the latter sorts of names earlier; see 3.4 Configuration Names.
Naturally, most programs are not cross compilation tools. For those
programs, it does not make sense to speak of a target. It only makes
sense to speak of a target for programs like the GNU compiler or
the GNU binutils which actually produce running code. For example,
it does not make sense to speak of the target of a program like
Most cross compilation tools can also serve as native tools. For a
native compilation tool, it is still meaningful to speak of a target.
For a native tool, the target is the same as the host. For example, for
a GNU/Linux native compiler, the host is GNU/Linux, and the target is