We just released version 2024.05 of the Bootlin toolchains, a set of 220 freely available pre-compiled cross-compilation toolchains, targeting a wide range of CPU architectures, with support for the 3 major C libraries used in the embedded Linux world: glibc, uClibc-ng and musl.
Those 2024.05 toolchains are built using Buildroot 2024.05 plus a number of extra patches, and are as usual each available in two variants:
- A bleeding edge variant using the latest version of toolchain components: GCC 14.2, binutils 2.42, GDB 15.1, glibc 2.39, musl 1.2.5, uClibc-ng 1.0.50, Linux headers 5.15
- A stable variant using slightly older toolchain components: GCC 13.3, binutils 2.41, GDB 14.2, glibc 2.39, musl 1.2.5, uClibc-ng 1.0.50, Linux headers 4.19
The attentive reader will notice that Linux headers 4.19 and 5.15 are far from being the latest, but this is intended, so that those toolchains can be used to build user-space code that will work with reasonably old kernels. The even more attentive reader will notice that binutils 2.42 is not the latest release: binutils 2.43 has been released recently, but it was too fresh to be used for our 2024.05 toolchain release. Similarly, glibc 2.39 is not the latest: 2.40 has been released not long ago, but for the same reason, we kept glibc 2.39 for this release. Both binutils 2.43 and glibc 2.40 will be part of the next toolchain update.
In addition, we’ve made a few other packaging changes:
- The toolchain tarballs are now xz-compressed instead of bz2-compressed, as xz compresses better and is becoming more common than bz2 these days
- The toolchains are now cleaned up from files built/installed by Buildroot (needed during the build), but not actually needed in the toolchain. This will reduce the chance of the toolchain conflicting with host-provided tools, and reduces the size of the tarballs
Finally, this 2024.05 release comes with a few additional toolchains:
- The sparcv8 toolchain is back, thanks to the support for this CPU architecture having been resurrected in the Buildroot project
- s390x and riscv32-ilp32d toolchains are now generated based on the uClibc-ng library, since supported was added in upstream uClibc-ng for both CPU architectures
You can find all toolchains for download at toolchains.bootlin.com. For each CPU architecture, you can access the history of all available toolchains, see for example the aarch64 toolchain page.
If you encounter any issue in the usage of those toolchains, you can use our issue tracker.