| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 | // -*- mode:doc; -*-// vim: set syntax=asciidoc:[[toolchain]]Cross-compilation toolchain---------------------------A compilation toolchain is the set of tools that allows you to compilecode for your system. It consists of a compiler,binary utils like assembler and linker and aC standard library. The system installed on your development station certainly already hasa compilation toolchain that you can use to compile an applicationthat runs on your system. If you're using a PC, your compilationtoolchain runs on an x86 processor and generates code for an x86processor. Under most Linux systems, the compilation toolchain usesthe GNU libc (glibc) as the C standard library. This compilationtoolchain is called the "host compilation toolchain". The machine onwhich it is running, and on which you're working, is called the "hostsystem" footnote:[This terminology differs from what is used by GNUconfigure, where the host is the machine on which the application willrun (which is usually the same as target)].The compilation toolchain is provided by your distribution, andOpenADK has nothing to do with it (other than using it to build across-compilation toolchain and other tools that are run on thedevelopment host).As said above, the compilation toolchain that comes with your systemruns on and generates code for the processor in your host system. Asyour embedded system has a different processor, you need across-compilation toolchain - a compilation toolchain that runs onyour _host system_ but generates code for your _target system_ (andtarget processor). For example, if your host system uses x86 and yourtarget system uses ARM, the regular compilation toolchain on your hostruns on x86 and generates code for x86, while the cross-compilationtoolchain runs on x86 and generates code for ARM.You can choose between four C libraries:http://www.uclibc-ng.org[uClibc-ng],http://www.uclibc.org[uClibc],http://www.gnu.org/software/libc/libc.html[glibc] andhttp://www.musl-libc.org[musl].There are some configuration options provided in +Toolchain settings+.You can enable or disable the building of following components and toolchainoptions:* Optimization level* Stack Smashing Protection (SSP) support* Position Independent Executable (PIE) support* Link Time Optimization (LTO) support* GNU Hashstyle support* GOLD LD support
 |