QNX target renaming#158449
Conversation
|
These commits modify compiler targets.
cc @rust-lang/miri Some changes occurred in src/doc/rustc/src/platform-support cc @Noratrieb |
|
r? @JohnTitor rustbot has assigned @JohnTitor. Use Why was this reviewer chosen?The reviewer was selected based on:
|
|
Fixing those stderr failures now. |
444b00b to
2ef8496
Compare
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
Can we get a comment in some file explaining that "SDP" implies, functionally, both "the C toolchain" and "the libc"? Or a clarification on that relationship, if that's off? Perhaps one of the std::sys files or on the platform support page? I think it is implied by the current text but with more emphasis on the term it feels a bit more ambiguous, ironically, via repetition.
I skimmed over things and everything seems fine otherwise, though it may benefit from another scan. Mostly just nits and me going "that's odd... eh, doesn't matter, right?"
This comment has been minimized.
This comment has been minimized.
How about if I take the text from the PR description and put it on the QNX target doc page? But you are right, the SDP contains a C toolchain, libc, other libraries, headers - all the ingredients to build your own OS image. |
That is absolutely fine! |
|
r? workingjubilee |
|
|
- aarch64-unknown-nto-qnx800 becomes simply aarch64-unknown-qnx - x86_64-pc-nto-qnx800 becomes simply x86_64-pc-qnx - references to QNX OS and QNX Neutrino RTOS are replaced with QNX SDP for uniformity - various nto_qnx modules are named to qnx_sdp to match the above The new target names are more consistent with those used by the QNX SDP 8.0 toolchain, and reflect a level on ongoing API stability similar to that for macOS and Linux (which simply have minimum supported versions record for their targets). Once the compiler knows about the new target names, libc and backtrace can be updated to match, and then building libstd for the new targets can be fixed. 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 name of the OS had changed, so the tests needed updating
- Now explains what SDP is - Moves sections into a more useful order - Re-wrap long blocks of text
|
rebased |
9964385 to
096fb0b
Compare
|
This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed. Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers. |
Just in case we were deliberately pairing up these OSes
There was a problem hiding this comment.
looks good! r=me after fixing the grammar if you care
Also, I realized after thinking about it: cc @davidtwco @BoxyUwU
This is a change that technically "adds" and "removes" some targets (...by renaming them) so while I don't think you need to or intend to worry over it, I figured I would make sure you are aware Just In Case.
| If your QNX kernel does not allow it, and `relro` is not disabled, running | ||
| compiled binary would fail with `syntax error: ... unexpected` or similar. This |
There was a problem hiding this comment.
pure grammatical nit: should be one of
"running a compiled binary"
"running the compiled binary"
"running compiled binaries"
"running your compiled binary"
|
|
||
| If your QNX kernel does not allow it, and `relro` is not disabled, running | ||
| compiled binary would fail with `syntax error: ... unexpected` or similar. This | ||
| is due to kernel trying to interpret compiled binary with `/bin/sh`, and |
View all comments
This PR renames two QNX targets:
aarch64-unknown-nto-qnx800becomes simplyaarch64-unknown-qnxx86_64-pc-nto-qnx800becomes simplyx86_64-pc-qnxIn addition:
spec::base::nto_qnxmodule is renamed tobase::spec::qnx_sdpto match the abovetarget_osof the QNX SDP 8.0 targets is changed toqnxto match the target nameany(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
clangrunning on the self-hosted QNX Developer Desktop.Once the compiler knows about the new target names,
libc,backtraceandcc-rscan be updated to match, and then buildinglibstdfor 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:
The QNX SDP 7.x targets retain their old names, and their
target_os = "nto", target_env = "qnx710"configuration, to avoid breakage.