mirror of
https://github.com/rust-lang/rust.git
synced 2026-07-15 20:45:20 -04:00
e601172b0b
QNX target renaming This PR renames two QNX targets: - `aarch64-unknown-nto-qnx800` becomes simply `aarch64-unknown-qnx` - `x86_64-pc-nto-qnx800` becomes simply `x86_64-pc-qnx` In addition: - references to *QNX OS* and *QNX Neutrino RTOS* are replaced with *QNX SDP* for uniformity - the `spec::base::nto_qnx` module is renamed to `base::spec::qnx_sdp` to match the above - the `target_os` of the QNX SDP 8.0 targets is changed to `qnx` to match the target name - a *lot* of code is then touched to handle `any(target_os = "nto", target_os = "qnx")` I think it's worth noting that *QNX Software Development Platform* is the *build environment* that you download and install, and you can use it to create a custom *run-time environment*. In SDP 7.x the run-time environment was based on *QNX Neutrino 7.x*, but in SDP 8.0 the run-time environment is based on *QNX OS 8.0*. I think it was weird to users to see the two different run-time environments in the docs, and referring to the build environment just seems to make more sense anyway because that's what users install, it's where the headers live, and ultimately it's what the toolchain will care about. The new target names match those reported by `clang` running *on* the [self-hosted *QNX Developer Desktop*](https://www.qnx.com/developers/docs/qnxeverywhere/com.qnx.doc.qdd/topic/about.html). ```console $ clang --version QNX clang version 21.1.3 Target: x86_64-pc-qnx Thread model: posix InstalledDir: /usr/bin ``` Once the compiler knows about the new target names, `libc`, `backtrace` and `cc-rs` can be updated to match, and then building `libstd` for the new targets can be fixed. This rename will cause a bit of churn, but it seemed important to get it changed before anyone tries to finish libstd support for QNX SDP 8.0 (it's currently noted as "in-progress"). It's also Tier 3 so we have fairly broad latitude to do this I think, and aligning with QNX's build of clang just makes sense. With these changes I can run: ```console $ ./x build library/std --stage 2 --target x86_64-pc-nto-qnx710,aarch64-unknown-nto-qnx710,x86_64-pc-nto-qnx710_iosock,aarch64-unknown-nto-qnx710_iosock,aarch64-unknown-nto-qnx700 $ ./x build library/core --stage 1 --target x86_64-pc-qnx,aarch64-unknown-qnx ``` The QNX SDP 7.x targets retain their old names, and their `target_os = "nto", target_env = "qnx710"` configuration, to avoid breakage.