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 toolchains do not include Linux kernel headers. If you need kernel headers and do not have a pre-built set, download a kernel, configure it for your target architecture, then run make headers_install, then move every header in ./usr/include to the toolchain's ./include subdirectory. You will get an error related to the scsi subdirectory; you don't need to care unless you're actually working with SCSI in userspace.

The latest toolchains are built with:

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).

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.