In case there are many arguments passed to the tools, the command line can get very long, and difficult to parse visually. For example, the Linux kernel passes a lot of arguments to gcc (at least 45, which gives 53 with our hard-coded args). Looking at such a command line is daunting. So, add the possibility to print each argument on its own line. Also, enclose all args between single quotes, so the command line can be safely copy-pasted without special chars (spaces, $) being inrerpreted by the shell. Add blurb about toolchain-wrapper to documentation at the same time. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas De Schampheleire <patrickdepinguin@gmail.com> Acked-by: Luca Ceresoli <luca@lucaceresoli.net> Tested-by: Luca Ceresoli <luca@lucaceresoli.net> Acked-by: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
59 lines
1.8 KiB
Plaintext
59 lines
1.8 KiB
Plaintext
// -*- 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 *only* allows to generate
|
|
*http://www.uclibc.org/[uClibc]-based toolchains*.
|
|
|
|
However, it allows to tune major settings, such as:
|
|
|
|
* Linux headers version;
|
|
|
|
* http://www.uclibc.org/[uClibc] configuration (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+.
|
|
|
|
Using the Crosstool-NG backend
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
The http://crosstool-ng.org[crosstool-NG] toolchain backend enables a rather
|
|
limited set of settings under the Buildroot +Toolchain+ menu:
|
|
|
|
* The http://crosstool-ng.org[crosstool-NG] configuration file
|
|
|
|
* Gdb and some toolchain options
|
|
|
|
Then, the toolchain can be fine-tuned by invoking +make ctng-menuconfig+.
|