configure.txt 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. // -*- mode:doc; -*-
  2. // vim: set syntax=asciidoc:
  3. [[toolchain]]
  4. Cross-compilation toolchain
  5. ---------------------------
  6. A compilation toolchain is the set of tools that allows you to compile
  7. code for your system. It consists of a compiler,
  8. binary utils like assembler and linker and a
  9. C standard library.
  10. The system installed on your development station certainly already has
  11. a compilation toolchain that you can use to compile an application
  12. that runs on your system. If you're using a PC, your compilation
  13. toolchain runs on an x86 processor and generates code for an x86
  14. processor. Under most Linux systems, the compilation toolchain uses
  15. the GNU libc (glibc) as the C standard library. This compilation
  16. toolchain is called the "host compilation toolchain". The machine on
  17. which it is running, and on which you're working, is called the "host
  18. system" footnote:[This terminology differs from what is used by GNU
  19. configure, where the host is the machine on which the application will
  20. run (which is usually the same as target)].
  21. The compilation toolchain is provided by your distribution, and
  22. OpenADK has nothing to do with it (other than using it to build a
  23. cross-compilation toolchain and other tools that are run on the
  24. development host).
  25. As said above, the compilation toolchain that comes with your system
  26. runs on and generates code for the processor in your host system. As
  27. your embedded system has a different processor, you need a
  28. cross-compilation toolchain - a compilation toolchain that runs on
  29. your _host system_ but generates code for your _target system_ (and
  30. target processor). For example, if your host system uses x86 and your
  31. target system uses ARM, the regular compilation toolchain on your host
  32. runs on x86 and generates code for x86, while the cross-compilation
  33. toolchain runs on x86 and generates code for ARM.
  34. You can choose between three C libraries:
  35. http://www.uclibc-ng.org[uClibc-ng],
  36. http://www.gnu.org/software/libc/libc.html[glibc],
  37. http://www.musl-libc.org[musl] and
  38. https://sourceware.org/newlib/[newlib].
  39. There are some configuration options provided in +Toolchain settings+.
  40. You can enable or disable the building of following components and toolchain
  41. options:
  42. * Optimization level
  43. * Stack Smashing Protection (SSP) support
  44. * Position Independent Executable (PIE) support
  45. * Link Time Optimization (LTO) support
  46. * GNU Hashstyle support
  47. * GOLD LD support