Skip to content

Commit 367f5ea

Browse files
committed
update platform-support.md
1 parent 349325d commit 367f5ea

File tree

3 files changed

+7
-3
lines changed

3 files changed

+7
-3
lines changed

library/std/src/sys/pal/unix/process/process_unix.rs

+5-3
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@ use libc::{c_int, pid_t};
2424
use libc::{gid_t, uid_t};
2525

2626
cfg_if::cfg_if! {
27-
if #[cfg(target_os = "nto")] {
27+
// This workaround is only needed for QNX 7.0 and 7.1. The bug should have been fixed in 8.0
28+
if #[cfg(any(target_env = "nto70", target_env = "nto71"))] {
2829
use crate::thread;
2930
use libc::{c_char, posix_spawn_file_actions_t, posix_spawnattr_t};
3031
use crate::time::Duration;
@@ -191,7 +192,7 @@ impl Command {
191192

192193
// Attempts to fork the process. If successful, returns Ok((0, -1))
193194
// in the child, and Ok((child_pid, -1)) in the parent.
194-
#[cfg(not(any(target_os = "watchos", target_os = "tvos", target_os = "nto")))]
195+
#[cfg(not(any(target_os = "watchos", target_os = "tvos", target_env = "nto70", target_env = "nto71")))]
195196
unsafe fn do_fork(&mut self) -> Result<pid_t, io::Error> {
196197
cvt(libc::fork())
197198
}
@@ -200,7 +201,8 @@ impl Command {
200201
// or closed a file descriptor while the fork() was occurring".
201202
// Documentation says "... or try calling fork() again". This is what we do here.
202203
// See also https://www.qnx.com/developers/docs/7.1/#com.qnx.doc.neutrino.lib_ref/topic/f/fork.html
203-
#[cfg(target_os = "nto")]
204+
// This workaround is only needed for QNX 7.0 and 7.1. The bug should have been fixed in 8.0
205+
#[cfg(any(target_env = "nto70", target_env = "nto71"))]
204206
unsafe fn do_fork(&mut self) -> Result<pid_t, io::Error> {
205207
use crate::sys::os::errno;
206208

src/doc/rustc/src/platform-support.md

+1
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,7 @@ target | std | host | notes
254254
[`aarch64-kmc-solid_asp3`](platform-support/kmc-solid.md) | ✓ | | ARM64 SOLID with TOPPERS/ASP3
255255
[`aarch64-nintendo-switch-freestanding`](platform-support/aarch64-nintendo-switch-freestanding.md) | * | | ARM64 Nintendo Switch, Horizon
256256
[`aarch64-unknown-teeos`](platform-support/aarch64-unknown-teeos.md) | ? | | ARM64 TEEOS |
257+
[`aarch64-unknown-nto-qnx700`](platform-support/nto-qnx.md) | ✓ | | ARM64 QNX Neutrino 7.0 RTOS |
257258
[`aarch64-unknown-nto-qnx710`](platform-support/nto-qnx.md) | ✓ | | ARM64 QNX Neutrino 7.1 RTOS |
258259
`aarch64-unknown-freebsd` | ✓ | ✓ | ARM64 FreeBSD
259260
[`aarch64-unknown-hermit`](platform-support/hermit.md) | ✓ | | ARM64 Hermit

src/doc/rustc/src/platform-support/nto-qnx.md

+1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ Currently, the following QNX Neutrino versions and compilation targets are suppo
2424
|----------------------|---------------------|:------------:|:----------------:|
2525
| 7.1 | AArch64 |||
2626
| 7.1 | x86_64 |||
27+
| 7.0 | AArch64 |||
2728
| 7.0 | x86 | ||
2829

2930
Adding other architectures that are supported by QNX Neutrino is possible.

0 commit comments

Comments
 (0)