Recently, I got an opportunity to explore toolchain basics. In this post, I will restrict my definitions/terms to C/Linux based development environment though toolchain term is used even in other development environments.
What is a toolchain?
A toolchain is used to build binaries for target system. In addition, toolchain helps in inspecting binaries, debugging, profiling etc etc.
What are the different components of a toolchain?
- Mandatory:
- GNU binutils: a set of development tools required to build and manage binaries - assembler, linker, strip, nm, objdump, readelf, ar, addr2line, gprof ..
- Compiler: gcc
- libc: glibc or eglibc or uClibc
- Optional:
- Debugger: gdb
References:
http://elinux.org/Toolchains