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
andalloc
built-in crates.Full: provides the
core
,alloc
,std
,test
andproc_macro
built-in crates.
9.1. Qualified targets¶
Qualified targets are provided with the highest level of assurance. They are qualified for use in safety-critical contexts (when used with a qualified rustc), and the full Ferrocene test suite is executed on the target for every code change.
Only stable releases of qualified targets are qualified. Other releases, such as beta, should be considered Quality Managed. Such releases can be qualified upon request.
Target |
Triple |
Kind |
Standard library |
Notes |
---|---|---|---|---|
|
Host platform |
Full |
- |
|
|
Cross-compilation |
Bare-metal |
Only qualified when cross-compiled from x86-64 Linux (glibc). |
|
|
Cross-compilation |
Full |
Only qualified when cross-compiled from x86-64 Linux (glibc). |
|
|
Cross-compilation |
Full |
Only qualified when cross-compiled from x86-64 Linux (glibc). |
9.2. Quality managed targets¶
Quality managed targets are targets which are suitable for use in production outside of safety critical contexts. Support is available. The Ferrocene test suite successfully executed on the target. Known problems are tracked and available.
For any of the following reasons, the target is not qualified:
The target is deemed unlikely to be used in a safety critical context.
The target is in the process of qualification, but is not completed yet.
Quality managed targets are not qualified, but can usually be qualified on request.
Target |
Triple |
Kind |
Standard library |
Notes |
---|---|---|---|---|
|
Host platform |
Full |
- |
9.3. 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) |
|
Cross-compilation |
Bare-metal |
- |
Armv7E-M bare-metal (hard-float) |
|
Cross-compilation |
Bare-metal |
- |
Armv8-R bare-metal (hard-float) |
|
Cross-compilation |
Bare-metal |
- |
Armv8-M Baseline bare-metal |
|
Cross-compilation |
Bare-metal |
- |
Armv8-M Mainline (soft-float) |
|
Cross-compilation |
Bare-metal |
- |
Armv8-M Mainline (hard-float) |
|
Cross-compilation |
Bare-metal |
- |
Armv7-R bare-metal (hard-float) |
|
Cross-compilation |
Bare-metal |
- |
Armv7-R bare-metal (hard-float, big-endian) |
|
Cross-compilation |
Bare-metal |
- |
WASM bare-metal |
|
Cross-compilation |
Full |
The full standard library is available, but unsupported functions in |
x86-64 macOS |
|
Cross-compilation |
Full |
Available as a cross-compile target on Apple Silicon macOS. |
|
Host platform |
Full |
- |
|
Armv8-A Linux (glibc) |
|
Host platform |
Full |
- |
RV64GC Linux (glibc) |
|
Cross-compilation |
Full |
Available as a cross-compile target on Armv8-A Linux (glibc) and x86-64 Linux (glibc). |
If your project needs support for one of these targets, please reach out to the Ferrocene support team.
9.4. 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.