Skip to content

Commit 0462826

Browse files
jonathanpallantflba-eb
authored andcommitted
Review nto-qnx.md.
QNX SDP 8.0 comes with newly renamed QNX OS 8.0, so update the page to talk about QNX, QNX Neutrino 7.0, QNX Neutrino 7.1 or QNX OS 8.0. Also actually add a list of target triples.
1 parent 46a0333 commit 0462826

File tree

1 file changed

+30
-29
lines changed

1 file changed

+30
-29
lines changed

Diff for: src/doc/rustc/src/platform-support/nto-qnx.md

+30-29
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,13 @@
22

33
**Tier: 3**
44

5-
[QNX®][BlackBerry] Neutrino (nto) Real-time operating system.
6-
The support has been implemented jointly by [Elektrobit Automotive GmbH][Elektrobit]
7-
and [Blackberry QNX][BlackBerry].
5+
The [QNX®][qnx.com] Neutrino (nto) Real-time operating system. Known as QNX OS
6+
from version 8 onwards.
87

9-
[BlackBerry]: https://blackberry.qnx.com
8+
This support has been implemented jointly by [Elektrobit Automotive GmbH][Elektrobit]
9+
and [QNX][qnx.com].
10+
11+
[qnx.com]: https://blackberry.qnx.com
1012
[Elektrobit]: https://www.elektrobit.com
1113

1214
## Target maintainers
@@ -18,30 +20,29 @@ and [Blackberry QNX][BlackBerry].
1820

1921
## Requirements
2022

21-
Currently, the following QNX Neutrino versions and compilation targets are supported:
23+
Currently, the following QNX versions and compilation targets are supported:
2224

23-
| QNX Neutrino Version | Target Architecture | Full support | `no_std` support |
24-
|----------------------|---------------------|:------------:|:----------------:|
25-
| 8.0 | AArch64 | ? | |
26-
| 8.0 | x86 | ? | |
27-
| 7.1 with io-pkt | AArch64 || |
28-
| 7.1 with io-sock | AArch64 | ? | |
29-
| 7.1 with io-pkt | x86_64 || |
30-
| 7.1 with io-sock | x86_64 | ? | |
31-
| 7.0 | AArch64 | ? | |
32-
| 7.0 | x86 | | |
25+
| Target Tuple | QNX Version | Target Architecture | Full support | `no_std` support |
26+
| ----------------------------------- | ----------------------------- | ------------------- | :----------: | :--------------: |
27+
| `aarch64-unknown-nto-qnx800` | QNX OS 8.0 | AArch64 | ? | |
28+
| `x86_64-pc-nto-qnx800` | QNX OS 8.0 | x86_64 | ? | |
29+
| `aarch64-unknown-nto-qnx710` | QNX Neutrino 7.1 with io-pkt | AArch64 || |
30+
| `x86_64-pc-nto-qnx710` | QNX Neutrino 7.1 with io-pkt | x86_64 || |
31+
| `aarch64-unknown-nto-qnx710_iosock` | QNX Neutrino 7.1 with io-sock | AArch64 | ? | |
32+
| `x86_64-pc-nto-qnx710_iosock` | QNX Neutrino 7.1 with io-sock | x86_64 | ? | |
33+
| `aarch64-unknown-nto-qnx700` | QNX Neutrino 7.0 | AArch64 | ? | |
34+
| `i586-pc-nto-qnx700` | QNX Neutrino 7.0 | x86 | | |
3335

34-
On QNX 7.0 and 7.1, `io-pkt` is used as network stack by default. QNX 7.1 includes
35-
the optional network stack `io-sock`.
36-
QNX 8.0 always uses `io-sock`. QNX 8.0 support is currently in development
37-
and not tested.
36+
On QNX Neutrino 7.0 and 7.1, `io-pkt` is used as network stack by default.
37+
QNX Neutrino 7.1 includes the optional network stack `io-sock`.
38+
QNX OS 8.0 always uses `io-sock`. QNX OS 8.0 support is currently work in progress.
3839

39-
Adding other architectures that are supported by QNX Neutrino is possible.
40+
Adding other architectures that are supported by QNX is possible.
4041

41-
In the table above, 'full support' indicates support for building Rust applications with the full standard library.
42-
'`no_std` support' indicates that only `core` and `alloc` are available.
42+
In the table above, 'full support' indicates support for building Rust applications with the full standard library. A '?' means that support is in-progress.
43+
'`no_std` support' is for building `#![no_std]` applications where only `core` and `alloc` are available.
4344

44-
For building or using the Rust toolchain for QNX Neutrino, the
45+
For building or using the Rust toolchain for QNX, the
4546
[QNX Software Development Platform (SDP)](https://blackberry.qnx.com/en/products/foundation-software/qnx-software-development-platform)
4647
must be installed and initialized.
4748
Initialization is usually done by sourcing `qnxsdp-env.sh` (this will be installed as part of the SDP, see also installation instruction provided with the SDP).
@@ -107,19 +108,19 @@ fn panic(_panic: &PanicInfo<'_>) -> ! {
107108
pub extern "C" fn rust_eh_personality() {}
108109
```
109110

110-
The QNX Neutrino support of Rust has been tested with QNX Neutrino 7.0 and 7.1.
111+
The QNX support in Rust has been tested with QNX Neutrino 7.0 and 7.1. Support for QNX OS 8.0 is a work in progress.
111112

112113
There are no further known requirements.
113114

114115
## Conditional compilation
115116

116-
For conditional compilation, following QNX Neutrino specific attributes are defined:
117+
For conditional compilation, following QNX specific attributes are defined:
117118

118119
- `target_os` = `"nto"`
119120
- `target_env` = `"nto71"` (for QNX Neutrino 7.1 with "classic" network stack "io_pkt")
120121
- `target_env` = `"nto71_iosock"` (for QNX Neutrino 7.1 with network stack "io_sock")
121122
- `target_env` = `"nto70"` (for QNX Neutrino 7.0)
122-
- `target_env` = `"nto80"` (for QNX Neutrino 8.0)
123+
- `target_env` = `"nto80"` (for QNX OS 8.0)
123124

124125
## Building the target
125126

@@ -137,7 +138,7 @@ For conditional compilation, following QNX Neutrino specific attributes are defi
137138
Compiling the Rust toolchain requires the same environment variables used for compiling C binaries.
138139
Refer to the [QNX developer manual](https://www.qnx.com/developers/docs/7.1/#com.qnx.doc.neutrino.prog/topic/devel_OS_version.html).
139140

140-
To compile for QNX Neutrino, environment variables must be set to use the correct tools and compiler switches:
141+
To compile for QNX, environment variables must be set to use the correct tools and compiler switches:
141142

142143
- `CC_<target>=qcc`
143144
- `CFLAGS_<target>=<nto_cflag>`
@@ -183,7 +184,7 @@ addition of the TEST_DEVICE_ADDR environment variable.
183184
The TEST_DEVICE_ADDR variable controls the remote runner and should point to the target, despite localhost being shown in the following example.
184185
Note that some tests are failing which is why they are currently excluded by the target maintainers which can be seen in the following example.
185186

186-
To run all tests on a x86_64 QNX Neutrino target:
187+
To run all tests on a x86_64 QNX Neutrino 7.1 target:
187188

188189
```bash
189190
export TEST_DEVICE_ADDR="localhost:12345" # must address the test target, can be a SSH tunnel
@@ -217,7 +218,7 @@ or build your own copy of `core` by using `build-std` or similar.
217218

218219
## Testing
219220

220-
Compiled executables can run directly on QNX Neutrino.
221+
Compiled executables can run directly on QNX.
221222

222223
### Rust std library test suite
223224

0 commit comments

Comments
 (0)