skarnet.org
Toolchains
These are C/C++ toolchains used to produce binaries that are linked
against the musl libc. The
toolchain binaries are static, so they will work on any system and
in any location.
Don't download a cross-toolchain and a native toolchain for the same
architecture into the same directory! The archives have the same name,
which is based on the gcc triplet for the target architecture. (The
gcc convention does not encode the host architecture into the name.)
Make sure to always handle cross-toolchains and native toolchains
separately, to avoid confusion.
The latest toolchains are built with:
- gcc 14.2.0
- binutils 2.43
- latest musl git (1.2.5)
- gmp 6.3.0
- mpc 1.3.1
- mpfr 4.2.1
- isl 0.27
- Headers for Linux 6.10.8
- gdb 15.1
Cross-toolchains
These are toolchains that run on a given architecture (the host,
commonly x86_64) and produce binaries for a different architecture (the
target).
- x86_64 to x86_64 -
strictly speaking, this isn't a cross-toolchain, but it's built as one,
and follows the same naming pattern as a cross-toolchain. Sometimes it's
useful to have this.
- x86_64 to i486
- x86_64 to i686
- x86_64 to armv6, suitable for Raspberry Pi 1
- x86_64 to Cortex-A53, suitable for Raspberry Pi 3
- x86_64 to Cortex-A72, suitable for Raspberry Pi 4
- x86_64 to Cortex-A9 (hard float, vfpv3-d16), suitable for Odroid U3
- x86_64 to Cortex-A5 (hard float, vfpv4-d16), suitable for Odroid C1+
- x86_64 to RISC-V 64, all riscv64 processors
- x86_64 to s390x (z-Series), starting with the z196 processor
- x86_64 to powerpc64, suitable for POWER9 processors like Talos II, big-endian
- x86_64 to powerpc64, suitable for POWER9 processors like Talos II, little-endian
- Full list of all the available cross-toolchains
Native toolchains
These are toolchains that run on a given architecture and produce binaries
for the same architecture (host = target). Native x86_64
and i386 toolchains are common; native toolchains for other architectures
are much harder to find.
- x86_64
- i486
- i686
- armv6, suitable for Raspberry Pi 1
- Cortex-A53, suitable for Raspberry Pi 3
- Cortex-A72, suitable for Raspberry Pi 4
- Cortex-A9 (hard float, vfpv3-d16), suitable for Odroid U3
- Cortex-A5 (hard float, vfpv4-d16), suitable for Odroid C1+
- RISC-V 64, all riscv64 processors
- s390x (z-Series), starting with the z196 processor
- powerpc64, POWER9, big-endian
- powerpc64, POWER9, little-endian
- Full list of all the available native toolchains