News

2024-08-18 - 2024.05 toolchains released

Publication of toolchains updated to Buildroot 2024.05 and a number of extra patches, which now means that:

  • The bleeding-edge toolchains are based on gcc 14.2, binutils 2.42, gdb 15.1, kernel headers 5.15, glibc 2.39, musl 1.2.5 or uclibc-ng 1.0.50.
  • The stable toolchains are based on gcc 13.3, binutils 2.41, gdb 14.2, kernel headers 4.19, glibc 2.39, musl 1.2.5 or uclibc-ng 1.0.50.

Also worth noting:

  • The toolchain tarballs are now xz-compressed instead of bz2-compressed
  • The toolchain tarballs are cleaned up from a lot of useless files that resulted only from the Buildroot build process but are in fact not needed for the toolchain itself
  • The sparcv8 toolchain is back, as support for this architecture has been resurrected in upstream Buildroot.
  • There are now toolchains for the s390x built using the musl C library, since support for this architecture was merged in upstream musl
  • There are now toolchains for the riscv32-ilp32d built using the uClibc-ng C library, since support for this architecture was merged in upstream uClibc-ng
2024-03-03 - 2024.02 toolchains released

Publication of toolchains updated to Buildroot 2024.02 and a number of extra patches, which now means that:

  • The bleeding-edge toolchains are based on gcc 13.2, binutils 2.42, gdb 14.1, kernel headers 5.15, glibc 2.39, musl 1.2.5 or uclibc-ng 1.0.45.
  • The stable toolchains are based on gcc 12.3, binutils 2.41, gdb 13.2, kernel headers 4.19, glibc 2.39, musl 1.2.5 or uclibc-ng 1.0.45.

Also worth noting:

  • There are now toolchains for RISC-V 32-bit with the musl C library, as this is a new feature from musl 1.2.5
2023-12-27 - 2023.11 toolchains released

Publication of toolchains updated to Buildroot 2023.11, which now means that:

  • The bleeding-edge toolchains are based on gcc 13.2, binutils 2.41, gdb 14.1, kernel headers 5.10, glibc 2.38, musl 1.2.4 or uclibc-ng 1.0.45.
  • The stable toolchains are based on gcc 12.3, binutils 2.40, gdb 13.2, kernel headers 4.14, glibc 2.38, musl 1.2.4 or uclibc-ng 1.0.45.

Also worth noting:

  • The glibc version is no longer affected by CVE-2023-4911
  • The gdb build has been fixed to no longer rely on uninstalled libbfd.so and libopcodes.so libraries
  • The zlib library, which was incorrectly present in the toolchain sysroot, is gone, fixing various build failures encountered with 2023.08 toolchains.
  • There are now toolchains for m68k 68xxx based on uclibc and musl in addition to glibc, which was already supported
2023-08-05 - 2023.08 toolchains released

Publication of toolchains updated to Buildroot 2023.08 beta, which now means that:

  • The bleeding-edge toolchains are based on gcc 13.2, binutils 2.41, gdb 13.2, kernel headers 5.10, glibc 2.37, musl 1.2.4 or uclibc-ng 1.0.43.
  • The stable toolchains are based on gcc 12.3, binutils 2.40, gdb 12.1, kernel headers 4.14, glibc 2.37, musl 1.2.4 or uclibc-ng 1.0.43.

The sparcv8 toolchain has been marked obsolete as it's no longer possible to build a functional SPARCv8 toolchain with recent versions of GCC.

2022-09-24 - 2022.08 toolchains released

Publication of toolchains updated to Buildroot 2022.08, which now means that:

  • The bleeding-edge toolchains are based on gcc 12, binutils 2.39, gdb 12, kernel headers 5.4, glibc 2.35 or musl 1.2.3 or uclibc-ng 1.0.42.
  • The stable toolchains are based on gcc 11, binutils 2.38, gdb 11, kernel headers 4.9, glibc 2.35 or musl 1.2.3 or uclibc-ng 1.0.42

We also have a few new toolchains that appeared:

  • Toolchains for the OpenRISC CPU architecture, based on the glibc C library
  • We now have both stable and bleeding-edge toolchains for the x86-64-v2, x86-64-v3 and x86-64-v4 architecture variants. We used to have only bleeding-edge toolchains for these variants as only the latest gcc had support for them.

The only toolchain that was not updated is m68k Coldfire, as we have a regression on elf2flt. This will hopefull be adressed in the future.

2022-01-24 - New x86-64 toolchains

So far, we had a single toolchain targeting the x86-64 architecture, named x86-64-core-i7. However, this toolchain was either compiled with too recent instructions for some platforms, or not sufficiently optimized for others.

There has been some recent work to standardize some specific "levels" of the x86-64 architecture, which have been defined in the psABI spec and are supported starting from gcc 11.x: x86-64, x86-64-v2, x86-64-v3, x86-64-v4. See also this Phoronix article for some more details.

We are now happy to be offering our toolchains targeting these four x86-64 architecture levels:

  • The x86-64 toolchain, which is the most generic, and will work on all x86-64 platforms, starting with Opteron. It only uses MMX, SSE and SSE2.
  • The x86-64-v2 toolchain, which corresponds to the Nehalem generation of Intel CPUs. It uses MMX, SSE, SSE2, SSE3, SSSE3, SSE4, SSE4.2.
  • The x86-64-v3 toolchain, which corresponds to the Haswell generation of Intel CPUs. It uses MMX, SSE, SSE2, SSE3, SSSE3, SSE4, SSE4.2, AVX, AVX2
  • The x86-64-v4 toolchain. It uses MMX, SSE, SSE2, SSE3, SSSE3, SSE4, SSE4.2, AVX, AVX2, AVX512

With these new toolchains available for x86-64, we expect to stop maintain the x86-64-core-i7 toolchain in the future.

2021-12-27 - 2021.11 toolchains released, new toolchains

All toolchains have been updated to be built with Buildroot 2021.11, and some additional updates and fixes. This means that we are now using:

  • For stable toolchains: gcc 10.3.0, binutils 2.36.1, Linux headers 4.9, gdb 10.2, glibc 2.34, uClibc 1.0.39 and musl 1.2.2
  • For bleeding-edge toolchains: gcc 11.2, binutils 2.37, Linux headers 5.4, gdb 11.1, glibc 2.34, uClibc 1.0.39 and musl 1.2.2

The riscv64 toolchains have been replaced by riscv64-lp64d toolchains, making them more generally useful.

Runtime testing using Qemu has been added for RISC-V 64-bit, m68k-68xxx and OpenRISC.

The gdb cross-debugger is now compiled with both Python and TUI support.

Internally, there's been some significant refactoring of the scripts and Gitlab CI pipelines that control the build and testing of those toolchains. Many thanks to Romain Naour for providing the ground work that enabled this refactoring.

2020-10-01 - 2020.08 toolchains released, new toolchains

All toolchains have been updated to be built with Buildroot 2020.08, and some additional updates and fixes. This means that we are now using:

  • For stable toolchains: gcc 9.3.0, binutils 2.33.1, Linux headers 4.9, gdb 8.3.1, glibc 2.31, uClibc 1.0.34 and musl 1.2.0
  • For bleeding-edge toolchains: gcc 10.2.0, binutils 2.34, Linux headers 5.4, gdb 9.2, glibc 2.31, uClibc 1.0.34 and musl 1.2.0

In addition, we have new toolchains available for a number of additional CPU variants: for powerpc64-e6500, powerpc-e300c3 and powerpc-440fp.

Finally, boot testing in Qemu has been extended to cover PowerPC64 E5500, NIOSII and m68k MCF5208.

2020-04-03 - All toolchains updated

All toolchains have been updated to be built with Buildroot 2020.02. This means that we are now using:

  • For stable toolchains: gcc 8.4.0, binutils 2.32, Linux headers 4.4, gdb 8.2.1, glibc 2.30, uClibc 1.0.32 and musl 1.1.24
  • For bleeding-edge toolchains: gcc 9.3.0, binutils 2.33.1, Linux headers 4.19, gdb 8.3, glibc 2.30, uClibc 1.0.32 and musl 1.1.24
2018-07-17 - Bleeding-edge toolchain updates: Binutils 2.31, ncurses fix

Bleeding edge toolchains have been updated to use Binutils 2.31, which was released a few days ago. Only a few toolchains have not been updated: ARMv7-M, m68k Coldfire and Xtensa, due to issues building with binutils 2.31. Those issues will be fixed soon and the corresponding toolchains will be rebuilt accordingly.

In addition, the ncurses library configuration has been fixed to use the terminfo files from the host machine, which should fix usability of gdb. See this Buildroot commit for details.

2018-06-25 - Bleeding-edge toolchain updates: GCC 8.1, GDB 8.1

Bleeding edge toolchains have been updated to GCC 8.1.0, Binutils 2.30, GDB 8.1, Linux headers 4.14 and glibc 2.26, musl 1.1.19 or uClibc-ng 1.0.30.

See our blog post.

2018-03-29 - Toolchain updates

Stable toolchains have been updated to GCC 6.4.0, Binutils 2.29.1, GDB 7.11.1, Linux headers 4.1 and glibc 2.26, musl 1.1.18 or uClibc-ng 1.0.28.

Bleeding edge toolchains have been updated to GCC 7.3.0, Binutils 2.30, GDB 8.0.1, Linux headers 4.9 and glibc 2.27, musl 1.1.18 or uClibc-ng 1.0.28.

Qemu testing for PowerPC64 Little Endian was added.

See our blog post.

2017-08-16 - Toolchain updates

All bleeding edge toolchains have been rebuilt with GCC 7.2.0, binutils 2.29, GDB 8.0. The glibc bleeding edge toolchains are now using glibc 2.26.

The bleeding edge toolchains are now built in a Debian Jessie environment, so they require glibc 2.14 at least on the host machine.

Stable toolchains have also seen a few updates:

  • armv7m and m68k-coldfire toolchains rebuilt with a fix in elf2flt.
  • mips32r5 toolchain is now built with NaN 2008 encoding, which is compliant with the Linux kernel expection for this architecture variant.
2017-06-19 - First release

138 toolchains built!

The following architectures are available, most of them coming with multiple flavours:

  • aarch64
  • arc
  • arm
  • bfin
  • m68k
  • microblaze
  • mips32
  • mips64
  • nios2
  • openrisc
  • powerpc
  • powerpc64
  • sh4
  • sparc64
  • sparcv8
  • x86
  • x86-64
  • xtensa-lx60

At least one libc per architecture is available, but you will usually find up to three (glibc, uclibc, and musl).

The toolchains often come in two versions:

  • The stable one features GCC 5.4, binutils 2.27, 3.10 kernel header, and GDB 7.11.
  • The bleeding-edge one features GCC 6.3, binutils 2.28, 4.9 kernel header, and GDB 7.12.