I want to install and build just the toolchain for my Buildroot project. make help
suggests that the command make <options> toolchain
should work; however, running that command simply returns Nothing to be done for 'toolchain'.
and output/host
is never created.

- 2,395
- 2
- 19
- 39
2 Answers
You first have to configure Buildroot in order to instruct it about what toolchain you want to produce. See Buildroot quick start in the Buildroot user manual.
If you just downloaded Buildroot, the steps to produce a toolchain are:
- run
make menuconfig
- In
Target options
select your hardware platform and ABI - In
Toolchain
configure the kind of toolchain you want - exit saving
- run
make toolchain
The toolchain is in output/host/
.
EDIT: if you need a toolchain, build the SDK is possibly better, see the answer by @mxxk

- 1,591
- 8
- 19
-
4Buildroot really should give an error when you try to do 'make toolchain' before running configure, so I've submitted http://patchwork.ozlabs.org/patch/776011/ – Arnout Jun 14 '17 at 22:15
-
4FYI, Arnout fixed this and now an unconfigured Buildroot will print an error when you run 'make toolchain', instead of the old misleading message.The fix will be in the next Buildroot release, 2017.08. (FYI The change is in commit https://git.buildroot.net/buildroot/commit/?id=503439f99a8b1a7f762ed184082b0c97800ffae5) – Luca Ceresoli Jul 12 '17 at 12:55
A more recent way to build just the toolchain, which can be used both within and outside of Buildroot, is documented in the Buildroot manual.
Though make toolchain
in Luca's answer does build the toolchain, it also places other host dependencies into output/host/
, making it slightly more difficult to get a clean toolchain as compared to make sdk
below, which produces a toolchain tarball in output/images/
:
6.1.3. 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 toarm-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.

- 9,514
- 5
- 38
- 46