diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index d7ab2e7d53e03..9a0dfa9497bd6 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -259,6 +259,7 @@ 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` | ✓ | ✓ | ARM64 FreeBSD [`aarch64-unknown-hermit`](platform-support/hermit.md) | ✓ | | ARM64 Hermit `aarch64-unknown-illumos` | ✓ | ✓ | ARM64 illumos @@ -383,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..b62980adb5de4 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,55 @@ For conditional compilation, following QNX Neutrino specific attributes are defi 1. Create a `config.toml` -Example content: - -```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) - -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): - -```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 - ' - -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 -``` + Example content: + + ```toml + profile = "compiler" + change-id = 115898 + ``` + +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). + + To compile for QNX Neutrino, environment variables must be set to use the correct tools and compiler switches: + + - `CC_=qcc` + - `CFLAGS_=` + - `CXX_=qcc` + - `AR_=` + + 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) + + - `` + + - `ntox86-ar` for x86 (32 bit) + - `ntox86_64-ar` for x86_64 (64 bit) + - `ntoaarch64-ar` 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 + AR_aarch64_unknown_nto_qnx710=ntoaarch64-ar + ' + + 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