16. Armv8-A RHIVOS 2 (Linux, glibc)¶
Note
This is a variant of the generic Armv8-A Linux (glibc) target that specifically targets Red Hat In-Vehicle Operating System 2 (RHIVOS 2). As per the RHIVOS 2 guidelines, qualified use requires compilation on the matching host platform Red Hat Enterprise Linux 10 using using the Armv8-A Linux (glibc) host compiler.
The aarch64-rhivos2-linux-gnu Ferrocene target provides support for Red Hat In-Vehicle Operating System 2
(RHIVOS 2) on aarch64 using glibc 2.31 or higher.
16.1. Prerequisites¶
While this target is technically a full linux and capable of hosting a compiler, the target is only qualified if cross-compiled from RHEL 10 on aarch64 in the version specified by the RHIVOS 2 documentation. This requirement stems from the RHIVOS 2 assumptions of use. The host compiler is Armv8-A Linux (glibc).
This target uses the LLVM ld.lld linker. To locate the system C libraries
required to create a functional Linux binary, this target drives the ld.lld
linker using your system’s C compiler as a linker driver.
You must have a C compiler which:
Supports
-fuse-ld=ld.lldoption to selectld.lldas the linkerSupports
-Boption to modify the tool search path so it can find Ferrocene’s copy ofld.lldDoes not load plugins into the linker (e.g. the GCC LTO plugin)
Supplies to
ld.lldonly those linker arguments specified in the Safety Manual
Please refer to the Red Hat Enterprise Linux 10 documentation for installation instructions.
16.2. Archives to install¶
The following archives are needed when installing this target as a cross-compilation target:
rust-std-aarch64-rhivos2-linux-gnu
16.3. Required compiler flags¶
To use the target, the following additional flags must be provided to
rustc:
--target=aarch64-rhivos2-linux-gnu-C linker=<your-c-compiler>e.g.
-C linker=/usr/bin/gcc
If your C compiler loads the GCC LTO plugins by default, you will also need to switch off GCC LTO with:
-Clink-arg=-fno-lto