-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Re-organized the QNX support.#4984
Open
jonathanpallant wants to merge 1 commit intorust-lang:main from
Open
Conversation
As most of the differences are related to the change in network stack half-way through the life of QNX Neutrino 7.1, the definitions are now split into io-pkt (the older stack) and io-sock (the newer stack). I didn't add any architecture definitions for x86 (as would be required for i686-pc-nto-qnx700) because I don't have access to QNX Neutrino 7.0 to verify what should go here. But there's a clear place to add it later. I do have QNX Neutrino 7.1 and QNX OS 8.0 and I have verified each of the types in the io-pkt and io-sock modules against the relevant C header files. I have not verified the remaining types or functions - I assume they are correct.
Author
jonathanpallant
commented
Feb 19, 2026
Force push some formatting fixes.
@jonathanpallant
jonathanpallant
force-pushed
the
reorganise-qnx
branch
from
February 19, 2026 12:26
5862404 to
f3a43cf
Compare
Author
jonathanpallant
commented
Feb 19, 2026
I tried to tell bootstrap to use this libc, but this repo has 1.0.0-something and my rust source build wants libc 0.2, so it ignored the patch.crates-io entry. If anyone has any advice on how to build a libstd for QNX using this, I'd be happy to try.
Author
jonathanpallant
commented
Feb 19, 2026
I rebased these changes onto the libc-0.2 branch, built a libstd for AArch64 QNX 7.1 with io-sock, built some test programs that do threading and networking, sent to them an AArch64 QNX Neutrino 7.1 instance on AWS, and they worked OK. So I'm fairly confident I've not broken anything catastrophically.
I can send the libc-0.2 PR once this is merged, if that's useful.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
As most of the differences are related to the change in network stack half-way through the life of QNX Neutrino 7.1, the definitions are now split into io-pkt (the older stack) and io-sock (the newer stack).
I didn't add any architecture definitions for x86 (as would be required for i686-pc-nto-qnx700) because I don't have access to QNX Neutrino 7.0 to verify what should go here. But there's a clear place to add it later.
I do have QNX Neutrino 7.1 and QNX OS 8.0 and I have verified each of the types in the io-pkt and io-sock modules against the relevant C header files. I have not verified the remaining types or functions - I assume they are correct.
This is an alternative to #4615, which seems to have stalled.
Sources
For io-sock, QNX says:
For io-pkt, you can refer to https://www.qnx.com/developers/docs/7.1/.
Checklist
libc-test/semverhave been updated*LASTor*MAXare included (see #3131)cd libc-test && cargo test --target mytarget); especially relevant for platforms that may not be checked in CI