Introducing toolchains
A toolchain is a set of tools, binaries, and libraries used to build applications to run on a computer platform. In Yocto, the default toolchains are based on GNU components with GPL licenses.
Getting ready
A GNU toolchain contains the following components:
- Assembler (GNU as): This is part of the binutils package
- Linker (GNU ld): This is also part of the binutils package
- Compiler (GNU gcc): Latest versions have support for C, C++, Java, Ada, Fortran, Go, and Objective C/C++
- Debugger (GNU gdb): This is the GNU debugger
- Binary file tools (
objdump
,nm
,objcopy
,readelf
,strip
, and so on): These are part of the binutils package.
These components are enough to build bare-metal applications, bootloaders like U-Boot, or operating systems like the Linux kernel, as they don't need a C library and they implement the C library functions they need. However, for Linux user space applications, a POSIX-compliant C library is needed. The GNU C library, glibc
, is the default C library used...