What is Toolchain?
- A toolchain is a collection of programming tools.
- It consists of a compiler, linker, assembler, and a debugger.
- The GNU toolchain is a programming tools produced by the GNU Project.
The toolchain used for embedded development is a cross toolchain (cross compiler). In other words, when the host and target architectures are different, the toolchain is called a cross compiler (e.g. if we develop a code on a Linux machine based on the x64 architecture, but we're compiling for an ARM target, then we need Linux-based ARM-targeting cross compiler).
When talking about toolchains, one must distinguish three different machines:
- the build machine, on which the toolchain is built
- the host machine, on which the toolchain is executed
- the target machine, for which the toolchain generates code