| // -*- mode:doc; -*- |
| // vim: set syntax=asciidoc: |
| |
| [[toolchain-custom]] |
| Customizing the toolchain |
| ~~~~~~~~~~~~~~~~~~~~~~~~~ |
| |
| There are three distinct types of toolchain backend supported in Buildroot, |
| available under the menu +Toolchain+, invoking +make menuconfig+. |
| |
| Using the external toolchain backend |
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| |
| There is no way of tuning an external toolchain since Buildroot does not |
| generate it. |
| |
| It also requires to set the Buildroot settings according to the toolchain ones |
| (see xref:external-toolchain-backend[]). |
| |
| When using an external toolchain, Buildroot generates a wrapper program, that |
| passes the appropriate options (according to the configuration) to the |
| external toolchain programs. In case you need to debug this wrapper, you can |
| set the environment variable BR_DEBUG_WRAPPER to either one of: |
| |
| * +0+, empty or not set: no debug |
| |
| * +1+: trace all arguments on a single line |
| |
| * +2+: trace one argument per line |
| |
| Using the internal Buildroot toolchain backend |
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| |
| The internal Buildroot toolchain backend allows to generate toolchains |
| based on http://www.uclibc.org/[uClibc], |
| https://www.gnu.org/software/libc/[glibc] and |
| http://www.eglibc.org/[eglibc]. |
| Generation of (e)glibc-based toolchains is still experimental in |
| Buildroot. |
| |
| It allows to tune major settings, such as: |
| |
| * Linux headers version; |
| |
| * C library configuration (only available for |
| http://www.uclibc.org/[uClibc], see xref:uclibc-custom[uClibc]); |
| |
| * Binutils, GCC, Gdb and toolchain options. |
| |
| These settings are available after selecting the +Buildroot toolchain+ type in |
| the menu +Toolchain+. |