14. Armv8-A QNX® Neutrino® 7.1.0

The aarch64-unknown-nto-qnx710 Ferrocene target provides support for QNX on ARMv8-A processors operating in Aarch64 mode.

Note

QNX SDP 7.1.0 only supports x86-64 Linux (glibc) and x86-64 Windows as host platforms.

Currently, Ferrocene only qualifies cross compilation to this target from x86-64 Linux (glibc). Cross-compilation from x86-64 Windows is experimental and cross-compilation from Apple Silicon macOS is unsupported.

14.1. Prerequisites

This target requires QNX Software Development Platform 7.1.0 (QNX SDP 7.1.0) to be installed.

Typically this is done through QNX Software Center.

Ferrocene is qualified using a specific version QNX SDP version. In safety critical contexts you must ensure 7.1.0.00472T202006132107S (also known as 7.1 BuildID 472) is used.

QNX_VERSION="7.1.0.00472T202006132107S"

qnx/qnxsoftwarecenter/qnxsoftwarecenter_clt \
    -installBaseline com.qnx.qnx710/$QNX_VERSION \
    -destination qnx/qnx710-472 \
    -cleanInstall

In an existing QNX 7.1.0 install you can check for the presence of the .packages/metadata/com.qnx.qnx710/7.1.0.00472T202006132107S/ directory.

Ferrocene documents how our internal QNX toolchains are installed and configured in internal procedures (QNX). Your organizational and licensing needs may differ.

14.2. Archives to install

The following archives are needed when installing this target as a cross-compilation target:

  • rust-std-aarch64-unknown-nto-qnx710

14.3. Required shell environment

To use the target, the following procedures must be undertaken in the shell running the build.

You must ensure $HOME is set to a valid path, then source qnxsdp-env.sh from your QNX SDP 7.1.0 installation:

source $QNX_SDP_710_INSTALL/qnxsdp-env.sh

On x86-64 Windows, there exists a qnxsdp-env.bat if required. Ferrocene is internally tested using bash.exe provided by Git for Windows.

14.4. Required compiler flags

To use the target, the following additional flags must be provided to rustc:

  • --target=aarch64-unknown-nto-qnx710