rust-cross-toolchain

September 4, 2025 · View on GitHub

Toolchains for cross compilation and cross testing for Rust.

See also setup-cross-toolchain-action created based on this project.

Platform Support

Linux (GNU)

libcGCCClangC++testhost
glibc [1][1]host [2]✓ (libstdc++) [3]✓ (qemu) [4][1]

[1] See target list below for details
[2] Except for sparc-unknown-linux-gnu and loongarch64-unknown-linux-gnu
[3] Except for csky-unknown-linux-gnuabiv2* and loongarch64-unknown-linux-gnu
[4] Except for csky-unknown-linux-gnuabiv2*, powerpc-unknown-linux-gnuspe, and x86_64-unknown-linux-gnux32

(Dockerfile)

Supported targets:

targetglibcGCChost
aarch64-unknown-linux-gnu2.27 (x86_64 host) / host (aarch64 host)7.4.0 (x86_64 host) / host (aarch64 host)x86_64/aarch64 Linux (glibc 2.27+)
aarch64_be-unknown-linux-gnu (tier3)2.4014.3x86_64 Linux (glibc 2.27+)
arm-unknown-linux-gnueabi2.277.4.0x86_64/aarch64 Linux (glibc 2.27+)
arm-unknown-linux-gnueabihf2.249.4.0x86_64/aarch64 Linux (glibc 2.27+)
armeb-unknown-linux-gnueabi (tier3)2.257.5.0x86_64 Linux (glibc 2.27+)
armv5te-unknown-linux-gnueabi2.277.4.0x86_64/aarch64 Linux (glibc 2.27+)
armv7-unknown-linux-gnueabi2.277.4.0x86_64/aarch64 Linux (glibc 2.27+)
armv7-unknown-linux-gnueabihf2.277.4.0x86_64/aarch64 Linux (glibc 2.27+)
csky-unknown-linux-gnuabiv22.286.3.0x86_64 Linux (glibc 2.27+)
csky-unknown-linux-gnuabiv2hf2.286.3.0x86_64 Linux (glibc 2.27+)
i586-unknown-linux-gnu2.277.4.0x86_64/aarch64 Linux (glibc 2.27+)
i686-unknown-linux-gnu2.277.4.0x86_64/aarch64 Linux (glibc 2.27+)
loongarch64-unknown-linux-gnu2.4014.2.0x86_64 Linux (any libc)
mips-unknown-linux-gnu (tier3) [1]2.27 (x86_64 host) / 2.35 (aarch64 host)7.4.0 (x86_64 host) / 11.2.0 (aarch64 host)x86_64/aarch64 Linux (glibc 2.27+) / aarch64 Linux (glibc 2.35+)
mips64-unknown-linux-gnuabi64 (tier3)2.27 (x86_64 host) / 2.35 (aarch64 host)7.4.0 (x86_64 host) / 11.2.0 (aarch64 host)x86_64/aarch64 Linux (glibc 2.27+) / aarch64 Linux (glibc 2.35+)
mips64el-unknown-linux-gnuabi64 (tier3)2.27 (x86_64 host) / 2.35 (aarch64 host)7.4.0 (x86_64 host) / 11.2.0 (aarch64 host)x86_64/aarch64 Linux (glibc 2.27+) / aarch64 Linux (glibc 2.35+)
mipsel-unknown-linux-gnu (tier3) [1]2.27 (x86_64 host) / 2.35 (aarch64 host)7.4.0 (x86_64 host) / 11.2.0 (aarch64 host)x86_64/aarch64 Linux (glibc 2.27+) / aarch64 Linux (glibc 2.35+)
mipsisa32r6-unknown-linux-gnu (tier3)2.31 (x86_64 host) / 2.35 (aarch64 host)9.3.0 (x86_64 host) / 11.2.0 (aarch64 host)x86_64/aarch64 Linux (glibc 2.31+) / aarch64 Linux (glibc 2.35+)
mipsisa32r6el-unknown-linux-gnu (tier3)2.31 (x86_64 host) / 2.35 (aarch64 host)9.3.0 (x86_64 host) / 11.2.0 (aarch64 host)x86_64/aarch64 Linux (glibc 2.31+) / aarch64 Linux (glibc 2.35+)
mipsisa64r6-unknown-linux-gnuabi64 (tier3)2.31 (x86_64 host) / 2.35 (aarch64 host)9.3.0 (x86_64 host) / 11.2.0 (aarch64 host)x86_64/aarch64 Linux (glibc 2.31+) / aarch64 Linux (glibc 2.35+)
mipsisa64r6el-unknown-linux-gnuabi64 (tier3)2.31 (x86_64 host) / 2.35 (aarch64 host)9.3.0 (x86_64 host) / 11.2.0 (aarch64 host)x86_64/aarch64 Linux (glibc 2.31+) / aarch64 Linux (glibc 2.35+)
powerpc-unknown-linux-gnu2.277.4.0x86_64/aarch64 Linux (glibc 2.27+)
powerpc-unknown-linux-gnuspe (tier3)2.277.4.0x86_64 Linux (glibc 2.27+)
powerpc64-unknown-linux-gnu2.277.4.0x86_64 Linux (glibc 2.27+)
powerpc64le-unknown-linux-gnu2.277.4.0x86_64/aarch64 Linux (glibc 2.27+)
riscv32gc-unknown-linux-gnu (tier3)2.3311.1.0x86_64 Linux (glibc 2.27+)
riscv64gc-unknown-linux-gnu2.277.4.0x86_64/aarch64 Linux (glibc 2.27+)
s390x-unknown-linux-gnu2.277.4.0x86_64/aarch64 Linux (glibc 2.27+)
sparc64-unknown-linux-gnu2.277.4.0x86_64/aarch64 Linux (glibc 2.27+)
sparc-unknown-linux-gnu (tier3)2.277.4.0x86_64/aarch64 Linux (glibc 2.27+)
thumbv7neon-unknown-linux-gnueabihf2.277.4.0x86_64/aarch64 Linux (glibc 2.27+)
x86_64-unknown-linux-gnuhost (x86_64 host) / 2.27 (aarch64 host)host (x86_64 host) / 7.4.0 (aarch64 host)x86_64/aarch64 Linux (glibc 2.27+)
x86_64-unknown-linux-gnux322.277.4.0x86_64/aarch64 Linux (glibc 2.27+)

[1] Since nightly-2023-07-05, mips{,el}-unknown-linux-gnu requires release mode for building std

Linux (musl)

libcGCCClangC++testhost
musl 1.2.3 [6]9.4.0 [1][2]✓ (libstdc++) [1]✓ (qemu) [3] [4][5]

[1] 8.5.0 for powerpc-unknown-linux-muslspe, 13.3.0 for risc64gc-unknown-linux-musl, unavailable for hexagon-unknown-linux-musl
[2] 19.1.5 for hexagon-unknown-linux-musl, otherwise host
[3] hexagon-unknown-linux-musl requires release mode for building test
[4] Except for powerpc-unknown-linux-muslspe and riscv32gc-unknown-linux-musl
[5] See target list below for details
[6] 1.2.5 for riscv32

(Dockerfile)

Supported targets:

targethost
aarch64-unknown-linux-muslx86_64/aarch64 Linux (any libc)
aarch64_be-unknown-linux-musl (tier3)x86_64/aarch64 Linux (any libc)
arm-unknown-linux-musleabix86_64/aarch64 Linux (any libc)
arm-unknown-linux-musleabihfx86_64/aarch64 Linux (any libc)
armv5te-unknown-linux-musleabix86_64/aarch64 Linux (any libc)
armv7-unknown-linux-musleabix86_64/aarch64 Linux (any libc)
armv7-unknown-linux-musleabihfx86_64/aarch64 Linux (any libc)
hexagon-unknown-linux-musl (tier3)x86_64/aarch64 Linux (any libc on x86_64, glibc 2.18+ on aarch64)
i586-unknown-linux-muslx86_64/aarch64 Linux (any libc)
i686-unknown-linux-muslx86_64/aarch64 Linux (any libc)
mips-unknown-linux-musl (tier3)x86_64/aarch64 Linux (any libc)
mips64-unknown-linux-muslabi64 (tier3)x86_64/aarch64 Linux (any libc)
mips64el-unknown-linux-muslabi64 (tier3)x86_64/aarch64 Linux (any libc)
mipsel-unknown-linux-musl (tier3)x86_64/aarch64 Linux (any libc)
powerpc-unknown-linux-musl (tier3)x86_64/aarch64 Linux (any libc)
powerpc-unknown-linux-muslspe (tier3)x86_64/aarch64 Linux (any libc)
powerpc64le-unknown-linux-muslx86_64/aarch64 Linux (any libc)
riscv32gc-unknown-linux-musl (tier3)x86_64/aarch64 Linux (any libc)
riscv64gc-unknown-linux-muslx86_64/aarch64 Linux (any libc)
s390x-unknown-linux-musl (tier3)x86_64/aarch64 Linux (any libc)
thumbv7neon-unknown-linux-musleabihf (tier3)x86_64/aarch64 Linux (any libc)
x86_64-unknown-linux-muslx86_64/aarch64 Linux (any libc)

Linux (uClibc)

libcGCCClangC++testhost
uClibc-ng 1.0.3410.2.0host✓ (libstdc++)✓ (qemu)x86_64 Linux (glibc 2.17+)

(Dockerfile)

Supported targets:

  • armv5te-unknown-linux-uclibceabi (tier3)
  • armv7-unknown-linux-uclibceabi (tier3)
  • armv7-unknown-linux-uclibceabihf (tier3)
  • mips-unknown-linux-uclibc (tier3)
  • mipsel-unknown-linux-uclibc (tier3)

[1] mips{,el}-unknown-linux-uclibc requires release mode for building std

Android

libcGCCClangC++testhost
[1]N/A14.0.6 [2]? (libc++)✓ (qemu) [3]x86_64 Linux (glibc 2.17+)

[1] See target list below for details
[2] 18.0.1 for riscv64-linux-android
[3] For riscv64-linux-android, only running static-linked binaries is supported

(Dockerfile)

Supported targets:

targetAPI level
aarch64-linux-android21
arm-linux-androideabi21
armv7-linux-androideabi21
i686-linux-android21
riscv64-linux-android (tier3)35
thumbv7neon-linux-androideabi21
x86_64-linux-android21

FreeBSD

libcGCCClangC++testhost
freebsd [1]N/Ahost✓ (libc++)[1]

[1] See target list below for details

(Dockerfile)

Supported targets:

targetversionhost
aarch64-unknown-freebsd (tier3)13.5 (default), 14.3Linux (any arch, any libc)
i686-unknown-freebsd13.5 (default), 14.3Linux (any arch, any libc)
powerpc-unknown-freebsd (tier3)13.5 (default), 14.3Linux (any arch, any libc)
powerpc64-unknown-freebsd (tier3)13.5 (default), 14.3Linux (any arch, any libc)
powerpc64le-unknown-freebsd (tier3)13.5 (default), 14.3Linux (any arch, any libc)
riscv64gc-unknown-freebsd (tier3)13.5 (default), 14.3x86_64/aarch64 Linux (any libc)
x86_64-unknown-freebsd13.5 (default), 14.3Linux (any arch, any libc)

NetBSD

libcGCCClangC++testhost
netbsd [1]7.5.0host✓ (libstdc++)x86_64 Linux (glibc 2.27+)

[1] See target list below for details

(Dockerfile)

Supported targets:

targetversion
aarch64-unknown-netbsd (tier3)9.4 (default), 10.1
aarch64_be-unknown-netbsd (tier3)10.1
armv6-unknown-netbsd-eabihf (tier3)9.4 (default), 10.1
armv7-unknown-netbsd-eabihf (tier3)9.4 (default), 10.1
i586-unknown-netbsd (tier3)9.4 (default), 10.1
i686-unknown-netbsd (tier3)9.4 (default), 10.1
mipsel-unknown-netbsd (tier3)9.4 (default), 10.1
powerpc-unknown-netbsd (tier3)9.4 (default), 10.1
sparc64-unknown-netbsd (tier3)9.4 (default), 10.1
x86_64-unknown-netbsd9.4 (default), 10.1

OpenBSD

libcGCCClangC++testhost
openbsd [1]N/Ahost✓ (libc++) [2][1]

[1] See target list below for details
[2] Except for aarch64-unknown-openbsd and sparc64-unknown-openbsd

(Dockerfile)

Supported targets:

targetversionhost
aarch64-unknown-openbsd (tier3)7.6 (default), 7.7Linux (any arch, any libc)
i686-unknown-openbsd (tier3)7.6 (default), 7.7Linux (any arch, any libc)
powerpc-unknown-openbsd (tier3)7.6 (default), 7.7Linux (any arch, any libc)
powerpc64-unknown-openbsd (tier3)7.6 (default), 7.7Linux (any arch, any libc)
riscv64gc-unknown-openbsd (tier3)7.6 (default), 7.7Linux (any arch, any libc)
sparc64-unknown-openbsd (tier3)7.6 (default), 7.7x86_64/aarch64 Linux (any libc)
x86_64-unknown-openbsd (tier3)7.6 (default), 7.7Linux (any arch, any libc)

DragonFly BSD

libcGCCClangC++testhost
dragonfly 6.4.2N/Ahost (requires 13+)✓ (libstdc++)Linux (any arch, any libc)

(Dockerfile)

Supported targets:

  • x86_64-unknown-dragonfly (tier3)

Solaris

libcGCCClangC++testhost
solaris 2.108.5.0✓ (libstdc++)x86_64 Linux (any libc)

(Dockerfile)

Supported targets:

  • sparcv9-sun-solaris
  • x86_64-pc-solaris

illumos

libcGCCClangC++testhost
solaris 2.108.5.0host✓ (libstdc++)x86_64 Linux (any libc)

(Dockerfile)

Supported targets:

  • x86_64-unknown-illumos

Redox

libcGCCClangC++testhost
redox 0.8.013.2.0host✓ (libstdc++)x86_64 Linux (glibc 2.35+)

(Dockerfile)

Supported targets:

  • x86_64-unknown-redox

WASI

libcGCCClangC++testhost
WASI SDK 27 (wasi-libc 3f7eb4c)N/A20.1.8? (libc++)✓ (wasmtime)x86_64/aarch64 Linux (glibc 2.29+)

(Dockerfile)

Supported targets:

  • wasm32-wasip1
  • wasm32-wasip1-threads
  • wasm32-wasip2

Emscripten

libcGCCClangC++testhost
emscripten 3.1.68N/A✓ (libc++)✓ (node)x86_64/aarch64 Linux (glibc 2.27+)

(Dockerfile)

Supported targets:

  • wasm32-unknown-emscripten

Windows (MinGW)

libcGCCClangC++testhost
Mingw-w64 8.0.010.3.0host✓ (libstdc++)✓ (wine)x86_64/aarch64 Linux (glibc 2.35+)

(Dockerfile)

Supported targets:

  • x86_64-pc-windows-gnu
  • i686-pc-windows-gnu

Windows (LLVM MinGW)

libcGCCClangC++testhost
Mingw-w64 7c9cfe6N/A18.1.8✓ (libc++)✓ (wine)x86_64/aarch64 Linux (glibc 2.17+)

(Dockerfile)

Supported targets:

  • aarch64-pc-windows-gnullvm
  • i686-pc-windows-gnullvm
  • x86_64-pc-windows-gnullvm

No-std

libcGCCClangC++runhost
newlib 4.1.0[1]✓ (libstdc++)[1][1]

[1] See target list below for details

(Dockerfile)

Supported targets:

targetGCCrunhost
aarch64-unknown-none10.3.1✓ (qemu)x86_64/aarch64 Linux (glibc 2.27+)
aarch64-unknown-none-softfloat10.3.1✓ (qemu)x86_64/aarch64 Linux (glibc 2.27+)
armebv7r-none-eabi10.3.1✓ (qemu)x86_64/aarch64 Linux (glibc 2.27+)
armebv7r-none-eabihf10.3.1✓ (qemu)x86_64/aarch64 Linux (glibc 2.27+)
armv5te-none-eabi10.3.1✓ (qemu)x86_64/aarch64 Linux (glibc 2.27+)
armv7a-none-eabi10.3.1✓ (qemu)x86_64/aarch64 Linux (glibc 2.27+)
armv7a-none-eabihf10.3.1✓ (qemu)x86_64/aarch64 Linux (glibc 2.27+)
armv7r-none-eabi10.3.1✓ (qemu)x86_64/aarch64 Linux (glibc 2.27+)
armv7r-none-eabihf10.3.1✓ (qemu)x86_64/aarch64 Linux (glibc 2.27+)
riscv32i-unknown-none-elf11.1.0✓ (qemu)x86_64 Linux (glibc 2.27+)
riscv32im-unknown-none-elf (tier3)11.1.0✓ (qemu)x86_64 Linux (glibc 2.27+)
riscv32imac-unknown-none-elf11.1.0✓ (qemu)x86_64 Linux (glibc 2.27+)
riscv32imc-unknown-none-elf11.1.0✓ (qemu)x86_64 Linux (glibc 2.27+)
riscv64gc-unknown-none-elf11.1.0✓ (qemu)x86_64 Linux (glibc 2.27+)
riscv64imac-unknown-none-elf11.1.0✓ (qemu)x86_64 Linux (glibc 2.27+)
thumbv5te-none-eabi10.3.1✓ (qemu)x86_64/aarch64 Linux (glibc 2.27+)
thumbv6m-none-eabi10.3.1✓ (qemu)x86_64/aarch64 Linux (glibc 2.27+)
thumbv7em-none-eabi10.3.1✓ (qemu)x86_64/aarch64 Linux (glibc 2.27+)
thumbv7em-none-eabihf10.3.1✓ (qemu)x86_64/aarch64 Linux (glibc 2.27+)
thumbv7m-none-eabi10.3.1✓ (qemu)x86_64/aarch64 Linux (glibc 2.27+)
thumbv8m.base-none-eabi10.3.1✓ (qemu)x86_64/aarch64 Linux (glibc 2.27+)
thumbv8m.main-none-eabi10.3.1✓ (qemu)x86_64/aarch64 Linux (glibc 2.27+)
thumbv8m.main-none-eabihf10.3.1✓ (qemu)x86_64/aarch64 Linux (glibc 2.27+)