A couple of tools to generate executable code.
------------------------------------------ | source code --- tool-chain ---> binary | ------------------------------------------ tools: ------ 1.) compiler 2.) assembler 3.) linker compiler: - read source file - optimization - generate assembly language code - do assembler call - do linker call assembler: - generate object file linker: - link object files cross toolchain howto --------------------- gnu autoconf terminology: --host created programs run on specified systems --build program gets build on specified system --target program generates code for specified system (gcc, binutils only) example toolchain compilation:(target may be: mips-unknown-linux-gnu) (origin may be: i686-unknown-linux-gnu)
binutils: --host=$origin --build=$origin --target=$target gcc: --host=$origin --build=$origin --target=$target kernel: --host=$target CC=$target-gcc --build=$origin glibc: --host=$target --build=$origin binutils: --host=$target --build=$origin --target=$target gcc: --host=$target --build=$origin --target=$target and so on ...