9. Compilation targets overview

Ferrocene has support for multiple compilation targets and host platforms. Targets are categorized as either “supported” or “experimental” depending on the level of support. This page lists the current support status for all targets, and individual pages with more details are provided for supported targets.

There are two kinds of targets available:

  • Host platform: can be used by developers and build systems to compile Rust code from that platform, either targeting the same platform or cross-compiling to a different one. Host platforms cannot neccessarily target other host platforms.

  • Cross-compilation: can only be used to cross-compile to the platform from any host platform.

There are also two variants of the standard library available:

  • Bare-metal: provides the core and alloc built-in crates.

  • Full: provides the core, alloc, std, test and proc_macro built-in crates.

9.1. Supported targets

Supported targets are provided with the highest level of assurance. They are qualified for use in safety-critical contexts (when used with a qualified Ferrocene compiler), and the full Ferrocene test suite is executed on the target for every code change.

Target

Triple

Kind

Standard library

Notes

x86-64 Linux (glibc)

x86_64-unknown-linux-gnu

Host platform

Full

-

Armv8-A bare-metal

aarch64-unknown-none

Cross-compilation

Bare-metal

-

9.2. Experimental targets

Experimental targets cannot be used in safety-critical contexts, and there is no guarantee that the Ferrocene test suite is successfully executed on the target. They are provided as a preview, with limited support available. They should not be used in production.

Target

Triple

Kind

Standard library

Notes

Armv7E-M bare-metal (soft-float)

thumbv7em-none-eabi

Cross-compilation

Bare-metal

-

Armv7E-M bare-metal (hard-float)

thumbv7em-none-eabihf

Cross-compilation

Bare-metal

-

Armv8-R bare-metal (hard-float)

armv8r-none-eabihf

Cross-compilation

Bare-metal

-

Armv7-R bare-metal (hard-float)

armv7r-none-eabihf

Cross-compilation

Bare-metal

-

Armv7-R bare-metal (hard-float, big-endian)

armebv7r-none-eabihf

Cross-compilation

Bare-metal

-

WASM bare-metal

wasm32-unknown-unknown

Cross-compilation

Full

The full standard library is available, but unsupported functions in std will panic.

x86-64 macOS

x86_64-apple-darwin

Cross-compilation

Full

Available as a cross-compile target on Apple Silicon macOS.

Apple Silicon macOS

aarch64-apple-darwin

Host platform

Full

-

x86-64 Windows

x86_64-pc-windows-msvc

Host platform

Full

-

If your project needs support for one of these targets, please reach out to the Ferrocene support team.

9.3. Unsupported targets

The Rust compiler includes support for additional targets that are not yet included in Ferrocene. If you need support for them please reach out to the Ferrocene support team.