qurt: Add support for Qualcomm QuRT#4845
Conversation
| pub(crate) mod errno; | ||
| pub(crate) mod fcntl; | ||
| pub(crate) mod limits; | ||
| pub(crate) mod pthread; | ||
| pub(crate) mod semaphore; | ||
| pub(crate) mod signal; | ||
| pub(crate) mod stdio; | ||
| pub(crate) mod stdlib; | ||
| pub(crate) mod sys; | ||
| pub(crate) mod time; | ||
| pub(crate) mod unistd; |
There was a problem hiding this comment.
I assume this needs to be filled in right? Or deleted.
I'd appreciate if you could at least make unistd.rs and pthread.rs in src/new roughly matching their .h files, since I've ported most other platforms at this point. Everything else is up to you; you can either add the modules like you have here (eventually everything will hopefully be like this) or just put it all in src/qurt like most other platforms (and I'll move them over later).
| //! QuRT (Qualcomm Real-Time OS) bindings | ||
| //! | ||
| //! QuRT is Qualcomm's real-time operating system for Hexagon DSP architectures. |
There was a problem hiding this comment.
Mind adding a link to the SDK sources?
There was a problem hiding this comment.
Here, in the PR comments or in the comments of src/new/qurt/mod.rs?
There was a problem hiding this comment.
The doc comment - I've been doing this for src/new to give some breadcrumbs for anyone who wants to check / update things.
|
Reminder, once the PR becomes ready for a review, use |
|
AFAICT this failure is not related to my changes - I wonder if it's the kind of thing that might get addressed by a rebase? Or just re-running it? Maybe this is something that #4872 was intended to fix? Or on the flip side, introduced by #4872? |
|
@rustbot ready |
932ba01 to
aec4b56
Compare
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
It looks like a lot of the defs in this file are duplicated between src/qurt and src/new/qurt, don't they need to be dropped?
Other than this, LGTM.
There was a problem hiding this comment.
Sorry: I have removed these duplicates now.
|
Also if you could squash any commits that have back-and-forth (e.g. adding |
aec4b56 to
7035a87
Compare
This comment has been minimized.
This comment has been minimized.
I assumed that I would squash them all before merging? I have squashed all but the most recent changes now. |
src/qurt/mod.rs
Outdated
| pub fn floor(x: c_double) -> c_double; | ||
| pub fn floorf(x: c_float) -> c_float; | ||
| pub fn fmod(x: c_double, y: c_double) -> c_double; | ||
| pub fn fmodf(x: c_float, y: c_float) -> c_float; |
There was a problem hiding this comment.
Noticed one other thing: we don't provide bindings for the math functions in libc, std binds them as necessary for the platform.
|
@rustbot ready |
tgross35
left a comment
There was a problem hiding this comment.
LGTM! Please just squash. (Needs to be done by the author since GH doesn't let me choose that option with the merge queue and I try to avoid pushing branches)
00d65a0 to
20bdde6
Compare
The QuRT RTOS -- used primarily on the Hexagon architecture -- has support for large parts of POSIX.
20bdde6 to
adf2f43
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. |
The QuRT RTOS -- used primarily on the Hexagon architecture -- has support for large parts of POSIX. (backport <rust-lang#4845>) (cherry picked from commit 8ecae6c)
The QuRT RTOS -- used primarily on the Hexagon architecture -- has support for large parts of POSIX. (backport <rust-lang#4845>) (cherry picked from commit 8ecae6c)
The QuRT RTOS -- used primarily on the Hexagon architecture -- has support for large parts of POSIX.
Description
Add support for Hexagon QuRT OS.
Sources
The corresponding sources from the Hexagon SDK from https://github.com/snapdragon-toolchain/hexagon-sdk or https://softwarecenter.qualcomm.com/catalog/item/Hexagon_SDK
Checklist
libc-test/semverhave been updated*LASTor*MAXareincluded (see #3131)
cd libc-test && cargo test --target mytarget);especially relevant for platforms that may not be checked in CI