From 5758d3be5f806c3f5aa74f584cd74777c814edb4 Mon Sep 17 00:00:00 2001 From: Florian Bartels Date: Tue, 10 Dec 2024 08:14:59 +0100 Subject: [PATCH] Update documentation to include QNX 8.0 Signed-off-by: Florian Bartels --- src/doc/rustc/src/platform-support.md | 3 +- src/doc/rustc/src/platform-support/nto-qnx.md | 80 +++++++++---------- 2 files changed, 41 insertions(+), 42 deletions(-) diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 0fc1a8381a843..5d8c35d4c75c0 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -260,8 +260,8 @@ target | std | host | notes [`aarch64-unknown-nto-qnx700`](platform-support/nto-qnx.md) | ? | | ARM64 QNX Neutrino 7.0 RTOS | [`aarch64-unknown-nto-qnx710`](platform-support/nto-qnx.md) | ✓ | | ARM64 QNX Neutrino 7.1 RTOS with default network stack (io-pkt) | [`aarch64-unknown-nto-qnx710_iosock`](platform-support/nto-qnx.md) | ✓ | | ARM64 QNX Neutrino 7.1 RTOS with new network stack (io-sock) | +[`aarch64-unknown-nto-qnx800`](platform-support/nto-qnx.md) | ✓ | | ARM64 QNX Neutrino 8.0 RTOS | [`aarch64-unknown-freebsd`](platform-support/freebsd.md) | ✓ | ✓ | ARM64 FreeBSD -`aarch64-unknown-freebsd` | ✓ | ✓ | ARM64 FreeBSD [`aarch64-unknown-hermit`](platform-support/hermit.md) | ✓ | | ARM64 Hermit `aarch64-unknown-illumos` | ✓ | ✓ | ARM64 illumos `aarch64-unknown-linux-gnu_ilp32` | ✓ | ✓ | ARM64 Linux (ILP32 ABI) @@ -384,6 +384,7 @@ target | std | host | notes [`x86_64-apple-watchos-sim`](platform-support/apple-watchos.md) | ✓ | | x86 64-bit Apple WatchOS simulator [`x86_64-pc-nto-qnx710`](platform-support/nto-qnx.md) | ✓ | | x86 64-bit QNX Neutrino 7.1 RTOS with default network stack (io-pkt) | [`x86_64-pc-nto-qnx710_iosock`](platform-support/nto-qnx.md) | ✓ | | x86 64-bit QNX Neutrino 7.1 RTOS with new network stack (io-sock) | +[`x86_64-pc-nto-qnx800`](platform-support/nto-qnx.md) | ✓ | | x86 64-bit QNX Neutrino 8.0 RTOS | [`x86_64-unikraft-linux-musl`](platform-support/unikraft-linux-musl.md) | ✓ | | 64-bit Unikraft with musl 1.2.3 `x86_64-unknown-dragonfly` | ✓ | ✓ | 64-bit DragonFlyBSD `x86_64-unknown-haiku` | ✓ | ✓ | 64-bit Haiku diff --git a/src/doc/rustc/src/platform-support/nto-qnx.md b/src/doc/rustc/src/platform-support/nto-qnx.md index a7120e7b692e4..3405729412831 100644 --- a/src/doc/rustc/src/platform-support/nto-qnx.md +++ b/src/doc/rustc/src/platform-support/nto-qnx.md @@ -22,6 +22,8 @@ Currently, the following QNX Neutrino versions and compilation targets are suppo | QNX Neutrino Version | Target Architecture | Full support | `no_std` support | |----------------------|---------------------|:------------:|:----------------:| +| 8.0 | AArch64 | ? | ✓ | +| 8.0 | x86 | ? | ✓ | | 7.1 with io-pkt | AArch64 | ✓ | ✓ | | 7.1 with io-sock | AArch64 | ? | ✓ | | 7.1 with io-pkt | x86_64 | ✓ | ✓ | @@ -31,6 +33,8 @@ Currently, the following QNX Neutrino versions and compilation targets are suppo On QNX 7.0 and 7.1, `io-pkt` is used as network stack by default. QNX 7.1 includes the optional network stack `io-sock`. +QNX 8.0 always uses `io-sock`. QNX 8.0 support is currently in development +and not tested. Adding other architectures that are supported by QNX Neutrino is possible. @@ -121,53 +125,47 @@ For conditional compilation, following QNX Neutrino specific attributes are defi 1. Create a `config.toml` -Example content: + Example content: -```toml -profile = "compiler" -change-id = 115898 -``` + ```toml + profile = "compiler" + change-id = 115898 + ``` -2. Compile the Rust toolchain for an `x86_64-unknown-linux-gnu` host (for both `aarch64` and `x86_64` targets) +2. Compile the Rust toolchain for an `x86_64-unknown-linux-gnu` host -Compiling the Rust toolchain requires the same environment variables used for compiling C binaries. -Refer to the [QNX developer manual](https://www.qnx.com/developers/docs/7.1/#com.qnx.doc.neutrino.prog/topic/devel_OS_version.html). + Compiling the Rust toolchain requires the same environment variables used for compiling C binaries. + Refer to the [QNX developer manual](https://www.qnx.com/developers/docs/7.1/#com.qnx.doc.neutrino.prog/topic/devel_OS_version.html). -To compile for QNX Neutrino (aarch64 and x86_64) and Linux (x86_64): + To compile for QNX Neutrino, environment variables must be set to use the correct tools and compiler switches: -```bash -export build_env=' - CC_i586_pc_nto_qnx700=qcc - CFLAGS_i586_pc_nto_qnx700=-Vgcc_ntox86_cxx - CXX_i586_pc_nto_qnx700=qcc - AR_i586_pc_nto_qnx700=ntox86-ar - - CC_aarch64_unknown_nto_qnx710=qcc - CFLAGS_aarch64_unknown_nto_qnx710=-Vgcc_ntoaarch64le_cxx - CXX_aarch64_unknown_nto_qnx710=qcc - AR_aarch64_unknown_nto_qnx710=ntoaarch64-ar - - CC_aarch64_unknown_nto_qnx710_iosock=qcc - CFLAGS_aarch64_unknown_nto_qnx710_iosock=-Vgcc_ntoaarch64le_cxx - CXX_aarch64_unknown_nto_qnx710_iosock=qcc - AR_aarch64_unknown_nto_qnx710_iosock=ntoaarch64-ar - - CC_aarch64_unknown_nto_qnx700=qcc - CFLAGS_aarch64_unknown_nto_qnx700=-Vgcc_ntoaarch64le_cxx - CXX_aarch64_unknown_nto_qnx700=qcc - AR_aarch64_unknown_nto_qnx700=ntoaarch64-ar - - CC_x86_64_pc_nto_qnx710=qcc - CFLAGS_x86_64_pc_nto_qnx710=-Vgcc_ntox86_64_cxx - CXX_x86_64_pc_nto_qnx710=qcc - AR_x86_64_pc_nto_qnx710=ntox86_64-ar - ' + - `CC_=qcc` + - `CFLAGS_=` + - `CXX_=qcc` -env $build_env \ - ./x.py build \ - --target aarch64-unknown-nto-qnx710_iosock,aarch64-unknown-nto-qnx710,x86_64-pc-nto-qnx710,x86_64-unknown-linux-gnu \ - rustc library/core library/alloc library/std -``` + With: + + - `` target triplet using underscores instead of hyphens, e.g. `aarch64_unknown_nto_qnx710` + - `` + + - `-Vgcc_ntox86_cxx` for x86 (32 bit) + - `-Vgcc_ntox86_64_cxx` for x86_64 (64 bit) + - `-Vgcc_ntoaarch64le_cxx` for Aarch64 (64 bit) + + Example to build the Rust toolchain including a standard library for x86_64-linux-gnu and Aarch64-QNX-7.1: + + ```bash + export build_env=' + CC_aarch64_unknown_nto_qnx710=qcc + CFLAGS_aarch64_unknown_nto_qnx710=-Vgcc_ntoaarch64le_cxx + CXX_aarch64_unknown_nto_qnx710=qcc + ' + + env $build_env \ + ./x.py build \ + --target x86_64-unknown-linux-gnu,aarch64-unknown-nto-qnx710 \ + rustc library/core library/alloc library/std + ``` ## Running the Rust test suite