docs/manual/configure.txt: explain how to reuse a Buildroot toolchain as external toolchain

Laurent reported that a short tutorial was missing in the manual to
explain how to reuse a Buildroot toolchain as external toolchain.

Signed-off-by: Romain Naour <romain.naour@smile.fr>
Cc: Laurent Guillier <laurent.guillier@smile.fr>
Cc: Matt Weber <matthew.weber@rockwellcollins.com>
Tested-by: Matt Weber <matthew.weber@rockwellcollins.com>
[Thomas: completely rewrite the thing]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
Romain Naour 2019-10-27 11:39:12 +01:00 committed by Thomas Petazzoni
parent a0971ec7ec
commit f7b0b0ad73

View File

@ -206,9 +206,9 @@ Buildroot or crosstool-NG.
If you want to generate a custom toolchain for your project, that can If you want to generate a custom toolchain for your project, that can
be used as an external toolchain in Buildroot, our recommendation is be used as an external toolchain in Buildroot, our recommendation is
definitely to build it with http://crosstool-ng.org[crosstool-NG]. We to build it either with Buildroot itself (see
recommend to build the toolchain separately from Buildroot, and then xref:build-toolchain-with-buildroot[]) or with
_import_ it in Buildroot using the external toolchain backend. http://crosstool-ng.org[crosstool-NG].
Advantages of this backend: Advantages of this backend:
@ -223,7 +223,53 @@ Drawbacks of this backend:
* If your pre-built external toolchain has a bug, may be hard to get a * If your pre-built external toolchain has a bug, may be hard to get a
fix from the toolchain vendor, unless you build your external fix from the toolchain vendor, unless you build your external
toolchain by yourself using Crosstool-NG. toolchain by yourself using Buildroot or Crosstool-NG.
[[build-toolchain-with-buildroot]]
==== Build an external toolchain with Buildroot
The Buildroot internal toolchain option can be used to create an
external toolchain. Here are a series of steps to build an internal
toolchain and package it up for reuse by Buildroot itself (or other
projects).
Create a new Buildroot configuration, with the following details:
* Select the appropriate *Target options* for your target CPU
architecture
* In the *Toolchain* menu, keep the default of *Buildroot toolchain*
for *Toolchain type*, and configure your toolchain as desired
* In the *System configuration* menu, select *None* as the *Init
system* and *none* as */bin/sh*
* In the *Target packages* menu, disable *BusyBox*
* In the *Filesystem images* menu, disable *tar the root filesystem*
Then, we can trigger the build, and also ask Buildroot to generate a
SDK. This will conveniently generate for us a tarball which contains
our toolchain:
-----
make sdk
-----
This produces the SDK tarball in +$(O)/images+, with a name similar to
+arm-buildroot-linux-uclibcgnueabi_sdk-buildroot.tar.gz+. Save this
tarball, as it is now the toolchain that you can re-use as an external
toolchain in other Buildroot projects.
In those other Buildroot projects, in the *Toolchain* menu:
* Set *Toolchain type* to *External toolchain*
* Set *Toolchain* to *Custom toolchain*
* Set *Toolchain origin* to *Toolchain to be downloaded and installed*
* Set *Toolchain URL* to +file:///path/to/your/sdk/tarball.tar.gz+
===== External toolchain wrapper ===== External toolchain wrapper