Since 2017, Bootlin is freely providing ready-to-use pre-built cross-compilation toolchains at https://toolchains.bootlin.com/. We are now providing over 150 toolchains, for a wide range of CPU architectures, covering the glibc, uClibc-ng and musl C libraries, with up-to-date gcc, binutils, gdb and C library support.
We recently contributed an improvement to Buildroot that allows those toolchains to very easily be used in Buildroot configurations: the Bootlin toolchains are now all known by Buildroot as existing external toolchains, next to toolchains from other vendors such as ARM, Synopsys and others.
If you are building a Buildroot system for a CPU architecture variant that has a matching toolchain available from bootlin.toolchains.com, then Bootlin toolchains will naturally show up in the
Toolchain sub-menu, when the selected
Toolchain type is
External toolchain. For example, if the selected CPU architecture is ARM little endian Cortex-A9, with VFP you will see:
Once Bootlin toolchains is selected, a new sub-option Bootlin toolchain variant appears, which allows to choose between the different toolchains applicable to the selected CPU architecture:
This hopefully should make Bootlin toolchains easier to use for Buildroot users.
Internally, this support for Bootlin toolchains in Buildroot is generated and updated using the support/scripts/gen-bootlin-toolchains script. In addition to making the toolchains available to the user, it allows generates some Buildroot test cases for each toolchain, so that each of those configuration is tested by Buildroot continuous integration, see support/testing/tests/toolchain/test_external_bootlin.py.
2 thoughts on “Bootlin toolchains integration in Buildroot”
Thank you for all you do to support this community. I’ve only recently been working with embedded Linux, but your toolchains, training materials, and contributions to Buildroot have made the journey a lot easier.
Thanks a lot James, glad to hear our training materials and contributions are useful!