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.lld option to select ld.lld as the linker

  • Supports -B option to modify the tool search path so it can find Ferrocene’s copy of ld.lld

  • Does not load plugins into the linker (e.g. the GCC LTO plugin)

  • Supplies to ld.lld only 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