Tuesday, May 20, 2014

Toolchain basics


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
UA-48797665-1