Skip to content

QNX target renaming#2439

Merged
bors-ferrocene[bot] merged 18 commits into
mainfrom
ja/rename-qnx-targets-take-3
Jul 10, 2026
Merged

QNX target renaming#2439
bors-ferrocene[bot] merged 18 commits into
mainfrom
ja/rename-qnx-targets-take-3

Conversation

@japaric

@japaric japaric commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

NOTE depends and includes PR #2454

This is a rebased version of #2418 now that rust-lang/rust#158449 has been merged. the first six commits in this PR are a cherry picks the commits in rust-lang/rust#158449. the rest of commits are a cherry pick of #2418. note that commit fix rustdoc-html tests has been dropped because it became unnecessary with upstream commit rust-lang/rust@4eec7f5


  • 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 (Software Development Platform) for uniformity
  • various nto_qnx modules are renamed 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). The new target names also match what the copy of clang shipped in the QNX Desktop Image (part of QNX SDP 8.0) self reports as (that is, clang running self-hosted on QNX).

@jyn514 jyn514 mentioned this pull request Jul 3, 2026

@jyn514 jyn514 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

seems fine. thanks for your work on this :)

bors merge

@jyn514

jyn514 commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

ah, you have merge conflicts. bors doesn't seem to have noticed them though ...

bors r-

@bors-ferrocene

bors-ferrocene Bot commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Canceled.

@jyn514 jyn514 added the waiting-on-author If this PR was opened by an automation, the "author" is the assignee. label Jul 3, 2026
@tshepang

tshepang commented Jul 3, 2026

Copy link
Copy Markdown
Member

a wild guess is that bors didn't notice because this does not conflict with main

@jyn514

jyn514 commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

i believe this is landing in #2447, not as a separate PR. feel free to re-open if i'm wrong.

@jyn514 jyn514 closed this Jul 7, 2026
@japaric

japaric commented Jul 7, 2026

Copy link
Copy Markdown
Contributor Author

@jyn514 the first 6 commits in this PR are part of upstream PR 158449 which is, indeed, included in #2447. the rest of the commits here are Ferrocene specific changes that are not present upstream.

@jyn514 jyn514 reopened this Jul 7, 2026
@japaric
japaric force-pushed the ja/rename-qnx-targets-take-3 branch from 5fce624 to 17b4c84 Compare July 9, 2026 14:38
@japaric

japaric commented Jul 9, 2026

Copy link
Copy Markdown
Contributor Author

Rebased this against #2454 (but not yet against #2447)

@tshepang
tshepang marked this pull request as draft July 10, 2026 07:48
@tshepang

Copy link
Copy Markdown
Member

made draft to avoid confusion

@jyn514 jyn514 added blocked waiting on another change and removed waiting-on-author If this PR was opened by an automation, the "author" is the assignee. labels Jul 10, 2026
@jyn514

jyn514 commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

we're going to merge this before the upstream pull.

@jyn514 jyn514 added waiting-on-author If this PR was opened by an automation, the "author" is the assignee. and removed blocked waiting on another change labels Jul 10, 2026
- 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
Just in case we were deliberately pairing up these OSes
@jyn514
jyn514 marked this pull request as ready for review July 10, 2026 15:08
- aarch64-unknown-nto-qnx800 became aarch64-unknown-qnx
- x86_64-pc-nto-qnx800 became x86_64-pc-qnx
japaric and others added 11 commits July 10, 2026 17:10
Use QNX SDP 8.0 when talking about the product in general, leaving 8.0.0 Build 141 as the specific when talking about qualifiied
uses and/or toolchain installation for Ferrocene staff.
QNX 8.0 is not a thing, and 8.0.0 is over-precise. The details can clarify which release of 8.0 we test against.
QNX SDP is the build environment and is more useful to note here than QNX Neutrino or QNX OS, which are the run-time environment.
this test was ignored with the `ferrocene/ignored-tests.toml` mechanism but that
has been removed
@japaric
japaric force-pushed the ja/rename-qnx-targets-take-3 branch from 17b4c84 to eaefcad Compare July 10, 2026 15:11
@jyn514

jyn514 commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

i confirm that i reviewed there are no significant differences after the rebase: https://public-docs.ferrocene.dev/main/qualification/plan/development.html#merge-requirements

$ git range-diff ferrocene/HEAD  17b4c84  eaefcad                                                                                                                                17:15
 1:  3cbbd59a0a0 <  -:  ----------- Restore QNX8 jobs
 2:  362bdde3285 =  1:  eccbf0abc18 QNX target renaming
 3:  01307b89e89 =  2:  2e92ee73416 Fix rustdoc tests
 4:  24387db1748 =  3:  450123fc180 Clean up nto-qnx target page
 5:  f8c9da0a8a3 =  4:  147c5874b4f Use /latest not /8.0 for URL on nto-qnx.md
 6:  36a6c95266f =  5:  9ca221bcc7e Fixup cfg ordering
 7:  b21f710ae3d =  6:  58486a88b26 Grammar nit in nto-qnx.md
 8:  3cfead615cc !  7:  b9ecb7147ff Adapt Ferrocene for QNX target renaming
    @@ ferrocene/doc/qualification-report/src/index.rst: qualification, in accordance t
         rustc/aarch64-unknown-nto-qnx710
     -   rustc/aarch64-unknown-nto-qnx800
     +   rustc/aarch64-unknown-qnx
    +    rustc/armv7r-none-eabihf
         rustc/thumbv7em-none-eabi
         rustc/thumbv7em-none-eabihf
         rustc/x86_64-unknown-linux-gnu
 9:  19d4ee21469 =  8:  965b5d4df39 ferrocene: rename qnx800 doc pages
10:  5a306985506 =  9:  88115f7f366 rebless some UI tests
11:  7536a12f5a3 = 10:  a00c6be6a79 add and use ignore-qnx
12:  318ddba26a0 = 11:  d7e97468148 internal-procedures: use GA version 8.0.5
13:  679a16fae2b = 12:  3fc475bc7b3 Relaxed docs to QNX SDP 8.0
14:  0c9d2cca067 = 13:  23910876e52 Refer to QNX SDP 8.0 in the internal procedures
15:  8a4036eef1e = 14:  75cf0cd6515 Change target descriptions for QNX to match ones proposed upstream.
16:  c2838b1da86 = 15:  29db526443b Change Aarch64 to AArch64.
17:  d556fb35748 = 16:  8de24d7fd8e bless UI test to update line numbers
18:  ee1581ca659 = 17:  d6abb047314 note the specific SDP version used in testing
19:  17b4c840577 = 18:  eaefcadd606 add ignore-qnx to run-make/c-link-to-rust-va-list-fn

bors merge

@bors-ferrocene

Copy link
Copy Markdown
Contributor

🕐 Waiting for PR status (Github check) to be set, probably by CI. Bors will automatically try to run when all required PR statuses are set.

@jyn514 jyn514 added waiting-on-ci and removed waiting-on-author If this PR was opened by an automation, the "author" is the assignee. labels Jul 10, 2026
@bors-ferrocene

Copy link
Copy Markdown
Contributor

Build succeeded:

@bors-ferrocene
bors-ferrocene Bot merged commit 31cd51a into main Jul 10, 2026
7 checks passed
@bors-ferrocene
bors-ferrocene Bot deleted the ja/rename-qnx-targets-take-3 branch July 10, 2026 19:42
@ferrocene-automations ferrocene-automations Bot added the backport:manual PR requiring manual intervention to backport label Jul 14, 2026
@jyn514 jyn514 mentioned this pull request Jul 14, 2026
bors-ferrocene Bot added a commit that referenced this pull request Jul 14, 2026
2473: [1.97] 26.08 backports r=jyn514 a=jyn514

i fixed the following conflicts which remained after running mergiraf:
- #2460: ferrocene/doc/qualification-report/src/index.rst (1.98 had a powerpc target that 1.97 didn't)
- #2439: library/std/src/env.rs, src/bootstrap/src/core/sanity.rs, src/tools/miri/tests/pass-dep/shims/gettid.rs, tests/run-make/c-link-to-rust-va-list-fn/rmake.rs, tests/rustdoc-html/doc-cfg/all-targets.rs

<details>

```diff
diff --cc library/std/src/env.rs
index 047dfbe,fa5dfd8b76e..00000000000
--- a/library/std/src/env.rs
+++ b/library/std/src/env.rs
`@@@` -1098,8 -1089,14 +1098,15 `@@@` pub mod consts 
      /// * `"horizon"`
      /// * `"hurd"`
      /// * `"illumos"`
 -    /// * `"ios"`
      /// * `"l4re"`
 -    /// * `"linux"`
 -    /// * `"macos"`
 -    /// * `"netbsd"`
      /// * `"nto"`
++<<<<<<< HEAD
++||||||| parent of dc484f364dc (Backport #2439)
++    /// * `"openbsd"`
++=======
+     /// * `"openbsd"`
+     /// * `"qnx"`
++>>>>>>> dc484f364dc (Backport #2439)
      /// * `"redox"`
      /// * `"solaris"`
      /// * `"solid_asp3"`
diff --cc src/bootstrap/src/core/sanity.rs
index f829a5b,b0190328740..00000000000
--- a/src/bootstrap/src/core/sanity.rs
+++ b/src/bootstrap/src/core/sanity.rs
`@@@` -47,6 -47,9 +47,14 `@@@` const STAGE0_MISSING_TARGETS: &[&str] 
      "thumbv7em-ferrocene.facade-eabi",
      "thumbv7em-ferrocene.facade-eabihf",
      // just a dummy comment so the list doesn't get onelined
++<<<<<<< HEAD
++||||||| parent of dc484f364dc (Backport #2439)
++    "powerpc64-unknown-linux-gnuelfv2",
++=======
+     "powerpc64-unknown-linux-gnuelfv2",
+     "aarch64-unknown-qnx",
+     "x86_64-pc-qnx",
++>>>>>>> dc484f364dc (Backport #2439)
  ];
  
  /// Minimum version threshold for libstdc++ required when using prebuilt LLVM
diff --cc src/tools/miri/tests/pass-dep/shims/gettid.rs
index 0dce7bd,05885ac277f..00000000000
--- a/src/tools/miri/tests/pass-dep/shims/gettid.rs
+++ b/src/tools/miri/tests/pass-dep/shims/gettid.rs
`@@@` -5,21 -5,27 +5,29 `@@@`
  #![feature(linkage)]
  
  fn gettid() -> u64 {
 -    cfg_select! {
 -        any(target_os = "android", target_os = "linux") => {
 +    cfg_if::cfg_if! {
 +        if #[cfg(any(target_os = "android", target_os = "linux"))] {
              gettid_linux_like()
++<<<<<<< HEAD
 +        } else if #[cfg(target_os = "nto")] {
++||||||| parent of dc484f364dc (Backport #2439)
++        }
++        target_os = "nto" => {
++=======
+         }
+         any(target_os = "nto", target_os = "qnx") => {
++>>>>>>> dc484f364dc (Backport #2439)
              unsafe { libc::gettid() as u64 }
 -        }
 -        target_os = "openbsd" => {
 +        } else if #[cfg(target_os = "openbsd")] {
              unsafe { libc::getthrid() as u64 }
 -        }
 -        target_os = "freebsd" => {
 +        } else if #[cfg(target_os = "freebsd")] {
              unsafe { libc::pthread_getthreadid_np() as u64 }
 -        }
 -        target_os = "netbsd" => {
 +        } else if #[cfg(target_os = "netbsd")] {
              unsafe { libc::_lwp_self() as u64 }
 -        }
 -        any(target_os = "solaris", target_os = "illumos") => {
 +        } else if #[cfg(any(target_os = "solaris", target_os = "illumos"))] {
              // On Solaris and Illumos, the `pthread_t` is the OS TID.
              unsafe { libc::pthread_self() as u64 }
 -        }
 -        target_vendor = "apple" => {
 +        } else if #[cfg(target_vendor = "apple")] {
              let mut id = 0u64;
              let status: libc::c_int = unsafe { libc::pthread_threadid_np(0, &mut id) };
              assert_eq!(status, 0);
diff --cc tests/run-make/c-link-to-rust-va-list-fn/rmake.rs
index 96b8ade,457a286b6e2..00000000000
--- a/tests/run-make/c-link-to-rust-va-list-fn/rmake.rs
+++ b/tests/run-make/c-link-to-rust-va-list-fn/rmake.rs
`@@@` -7,6 -7,12 +7,21 `@@@`
  //@ ignore-android: FIXME(#142855)
  //@ ignore-sgx: (x86 machine code cannot be directly executed)
  
++<<<<<<< HEAD
++||||||| parent of dc484f364dc (Backport #2439)
++// Ferrocene addition: Various compile and link errors on these platforms:
++// missing <assert.h>, missing libraries, and breakage when not using -fPIC
++//@ ignore-ferrocene.facade
++//@ ignore-nto
++
++=======
+ // Ferrocene addition: Various compile and link errors on these platforms:
+ // missing <assert.h>, missing libraries, and breakage when not using -fPIC
+ //@ ignore-ferrocene.facade
+ //@ ignore-nto
+ //@ ignore-qnx
+ 
++>>>>>>> dc484f364dc (Backport #2439)
  use run_make_support::{cc, extra_c_flags, run, rustc, static_lib_name};
  
  fn main() {
diff --cc tests/rustdoc-html/doc-cfg/all-targets.rs
index 5b61d61,d5a8be83bc1..00000000000
--- a/tests/rustdoc-html/doc-cfg/all-targets.rs
+++ b/tests/rustdoc-html/doc-cfg/all-targets.rs
`@@@` -2,10 -2,10 +2,22 `@@@`
  
  //@ has all_targets/fn.foo.html \
  //  '//*[`@id="main-content"]/*[@Class="item-info"]/*[@Class="stab` portability"]' \
++<<<<<<< HEAD
 +//  'Available on GNU or Catalyst or Managarm C Library or MSVC or musl or Newlib or \
 +//  Neutrino 7.0 or Neutrino 7.1 or Neutrino 7.1 with io-sock or Neutrino 8.0 or \
 +//  OpenHarmony or relibc or SGX or Simulator or WASIp1 or WASIp2 or WASIp3 or \
 +//  uClibc or V5 or target_env=fake_env only.'
++||||||| parent of dc484f364dc (Backport #2439)
++//  'Available on target_env=fake_env or Catalyst or GNU or Managarm C Library \
++//  or MSVC or musl or Neutrino 7.0 or Neutrino 7.1 or Neutrino 7.1 with io-sock \
++//  or Neutrino 8.0 or Newlib or OpenHarmony or relibc or SGX or Simulator or \
++//  uClibc or V5 or WASIp1 or WASIp2 or WASIp3 only.'
++=======
+ //  'Available on target_env=fake_env or Catalyst or GNU or Managarm C Library \
+ //  or MSVC or musl or Newlib or OpenHarmony or QNX SDP 7.0 or QNX SDP 7.1 or \
+ //  QNX SDP 7.1 with io-sock or relibc or SGX or Simulator or uClibc or V5 or WASIp1 \
+ //  or WASIp2 or WASIp3 only.'
++>>>>>>> dc484f364dc (Backport #2439)
  #[doc(cfg(any(
      target_env = "gnu",
      target_env = "macabi",
`@@@` -75,15 -74,16 +86,39 `@@@` pub fn bar() {
  
  //@ has all_targets/fn.baz.html \
  //  '//*[`@id="main-content"]/*[@Class="item-info"]/*[@Class="stab` portability"]' \
++<<<<<<< HEAD
 +//  'Available on AIX and AMD HSA and Android and CUDA and Cygwin and DragonFly \
 +//  BSD and Emscripten and ESP-IDF and FreeBSD and Fuchsia and Haiku and HelenOS \
 +//  and Hermit and Horizon and GNU/Hurd and illumos and iOS and L4Re and Linux \
 +//  and LynxOS-178 and macOS and Managarm and Motor OS and NetBSD and bare-metal \
 +//  and QNX Neutrino and NuttX and OpenBSD and Play Station Portable and Play \
 +//  Station 1 and QuRT and Redox OS and RTEMS OS and Solaris and SOLID ASP3 and \
 +//  TEEOS and Trusty and tvOS and UEFI and VEXos and visionOS and Play Station \
 +//  Vita and VxWorks and WASI and watchOS and Windows and Xous and zero knowledge \
 +//  Virtual Machine and target_os=unknown and target_os=fake_os only.'
++||||||| parent of dc484f364dc (Backport #2439)
++//  'Available on target_os=fake_os and target_os=unknown and AIX and AMD HSA \
++//  and Android and bare-metal and CUDA and Cygwin and DragonFly BSD and \
++//  Emscripten and ESP-IDF and FreeBSD and Fuchsia and GNU/Hurd and Haiku \
++//  and HelenOS and Hermit and Horizon and illumos and iOS and L4Re and Linux \
++//  and LynxOS-178 and macOS and Managarm and Motor OS and NetBSD and NuttX \
++//  and OpenBSD and Play Station 1 and Play Station Portable and Play Station Vita \
++//  and QNX Neutrino and QuRT and Redox OS and RTEMS OS and Solaris and \
++//  SOLID ASP3 and TEEOS and Trusty and tvOS and UEFI and VEXos and visionOS \
++//  and VxWorks and WASI and watchOS and Windows and Xous and zero knowledge \
++//  Virtual Machine only.'
++=======
+ //  'Available on target_os=fake_os and target_os=unknown and AIX and AMD HSA \
+ //  and Android and bare-metal and CUDA and Cygwin and DragonFly BSD and \
+ //  Emscripten and ESP-IDF and FreeBSD and Fuchsia and GNU/Hurd and Haiku \
+ //  and HelenOS and Hermit and Horizon and illumos and iOS and L4Re and Linux \
+ //  and LynxOS-178 and macOS and Managarm and Motor OS and NetBSD and NuttX \
+ //  and OpenBSD and Play Station 1 and Play Station Portable and Play Station Vita \
+ //  and QNX SDP 7.x and QNX SDP 8.0+ and QuRT and Redox OS and RTEMS OS and Solaris and \
+ //  SOLID ASP3 and TEEOS and Trusty and tvOS and UEFI and VEXos and visionOS \
+ //  and VxWorks and WASI and watchOS and Windows and Xous and zero knowledge \
+ //  Virtual Machine only.'
++>>>>>>> dc484f364dc (Backport #2439)
  #[doc(cfg(all(
      target_os = "aix",
      target_os = "amdhsa",
* Unmerged path tests/rustdoc-html/doc-cfg/sort.rs
```

</details>

#2394 was not marked as backport until just now; i needed it or the QNX rename wouldn't backport cleanly.

Co-authored-by: Urhengulas <[email protected]>
Co-authored-by: Jorge Aparicio <[email protected]>
Co-authored-by: Jynn Nelson <[email protected]>
Co-authored-by: Tshepang Mbambo <[email protected]>
Co-authored-by: Ana Hobden <[email protected]>
Co-authored-by: jyn <[email protected]>
bors-ferrocene Bot added a commit that referenced this pull request Jul 15, 2026
2473: [1.97] 26.08 backports r=jyn514 a=jyn514

i fixed the following conflicts which remained after running mergiraf:
- #2460: ferrocene/doc/qualification-report/src/index.rst (1.98 had a powerpc target that 1.97 didn't)
- #2439: library/std/src/env.rs, src/bootstrap/src/core/sanity.rs, src/tools/miri/tests/pass-dep/shims/gettid.rs, tests/run-make/c-link-to-rust-va-list-fn/rmake.rs, tests/rustdoc-html/doc-cfg/all-targets.rs

<details>

```diff
diff --cc library/std/src/env.rs
index 047dfbe,fa5dfd8b76e..00000000000
--- a/library/std/src/env.rs
+++ b/library/std/src/env.rs
`@@@` -1098,8 -1089,14 +1098,15 `@@@` pub mod consts 
      /// * `"horizon"`
      /// * `"hurd"`
      /// * `"illumos"`
 -    /// * `"ios"`
      /// * `"l4re"`
 -    /// * `"linux"`
 -    /// * `"macos"`
 -    /// * `"netbsd"`
      /// * `"nto"`
++<<<<<<< HEAD
++||||||| parent of dc484f364dc (Backport #2439)
++    /// * `"openbsd"`
++=======
+     /// * `"openbsd"`
+     /// * `"qnx"`
++>>>>>>> dc484f364dc (Backport #2439)
      /// * `"redox"`
      /// * `"solaris"`
      /// * `"solid_asp3"`
diff --cc src/bootstrap/src/core/sanity.rs
index f829a5b,b0190328740..00000000000
--- a/src/bootstrap/src/core/sanity.rs
+++ b/src/bootstrap/src/core/sanity.rs
`@@@` -47,6 -47,9 +47,14 `@@@` const STAGE0_MISSING_TARGETS: &[&str] 
      "thumbv7em-ferrocene.facade-eabi",
      "thumbv7em-ferrocene.facade-eabihf",
      // just a dummy comment so the list doesn't get onelined
++<<<<<<< HEAD
++||||||| parent of dc484f364dc (Backport #2439)
++    "powerpc64-unknown-linux-gnuelfv2",
++=======
+     "powerpc64-unknown-linux-gnuelfv2",
+     "aarch64-unknown-qnx",
+     "x86_64-pc-qnx",
++>>>>>>> dc484f364dc (Backport #2439)
  ];
  
  /// Minimum version threshold for libstdc++ required when using prebuilt LLVM
diff --cc src/tools/miri/tests/pass-dep/shims/gettid.rs
index 0dce7bd,05885ac277f..00000000000
--- a/src/tools/miri/tests/pass-dep/shims/gettid.rs
+++ b/src/tools/miri/tests/pass-dep/shims/gettid.rs
`@@@` -5,21 -5,27 +5,29 `@@@`
  #![feature(linkage)]
  
  fn gettid() -> u64 {
 -    cfg_select! {
 -        any(target_os = "android", target_os = "linux") => {
 +    cfg_if::cfg_if! {
 +        if #[cfg(any(target_os = "android", target_os = "linux"))] {
              gettid_linux_like()
++<<<<<<< HEAD
 +        } else if #[cfg(target_os = "nto")] {
++||||||| parent of dc484f364dc (Backport #2439)
++        }
++        target_os = "nto" => {
++=======
+         }
+         any(target_os = "nto", target_os = "qnx") => {
++>>>>>>> dc484f364dc (Backport #2439)
              unsafe { libc::gettid() as u64 }
 -        }
 -        target_os = "openbsd" => {
 +        } else if #[cfg(target_os = "openbsd")] {
              unsafe { libc::getthrid() as u64 }
 -        }
 -        target_os = "freebsd" => {
 +        } else if #[cfg(target_os = "freebsd")] {
              unsafe { libc::pthread_getthreadid_np() as u64 }
 -        }
 -        target_os = "netbsd" => {
 +        } else if #[cfg(target_os = "netbsd")] {
              unsafe { libc::_lwp_self() as u64 }
 -        }
 -        any(target_os = "solaris", target_os = "illumos") => {
 +        } else if #[cfg(any(target_os = "solaris", target_os = "illumos"))] {
              // On Solaris and Illumos, the `pthread_t` is the OS TID.
              unsafe { libc::pthread_self() as u64 }
 -        }
 -        target_vendor = "apple" => {
 +        } else if #[cfg(target_vendor = "apple")] {
              let mut id = 0u64;
              let status: libc::c_int = unsafe { libc::pthread_threadid_np(0, &mut id) };
              assert_eq!(status, 0);
diff --cc tests/run-make/c-link-to-rust-va-list-fn/rmake.rs
index 96b8ade,457a286b6e2..00000000000
--- a/tests/run-make/c-link-to-rust-va-list-fn/rmake.rs
+++ b/tests/run-make/c-link-to-rust-va-list-fn/rmake.rs
`@@@` -7,6 -7,12 +7,21 `@@@`
  //@ ignore-android: FIXME(#142855)
  //@ ignore-sgx: (x86 machine code cannot be directly executed)
  
++<<<<<<< HEAD
++||||||| parent of dc484f364dc (Backport #2439)
++// Ferrocene addition: Various compile and link errors on these platforms:
++// missing <assert.h>, missing libraries, and breakage when not using -fPIC
++//@ ignore-ferrocene.facade
++//@ ignore-nto
++
++=======
+ // Ferrocene addition: Various compile and link errors on these platforms:
+ // missing <assert.h>, missing libraries, and breakage when not using -fPIC
+ //@ ignore-ferrocene.facade
+ //@ ignore-nto
+ //@ ignore-qnx
+ 
++>>>>>>> dc484f364dc (Backport #2439)
  use run_make_support::{cc, extra_c_flags, run, rustc, static_lib_name};
  
  fn main() {
diff --cc tests/rustdoc-html/doc-cfg/all-targets.rs
index 5b61d61,d5a8be83bc1..00000000000
--- a/tests/rustdoc-html/doc-cfg/all-targets.rs
+++ b/tests/rustdoc-html/doc-cfg/all-targets.rs
`@@@` -2,10 -2,10 +2,22 `@@@`
  
  //@ has all_targets/fn.foo.html \
  //  '//*[`@id="main-content"]/*[@Class="item-info"]/*[@Class="stab` portability"]' \
++<<<<<<< HEAD
 +//  'Available on GNU or Catalyst or Managarm C Library or MSVC or musl or Newlib or \
 +//  Neutrino 7.0 or Neutrino 7.1 or Neutrino 7.1 with io-sock or Neutrino 8.0 or \
 +//  OpenHarmony or relibc or SGX or Simulator or WASIp1 or WASIp2 or WASIp3 or \
 +//  uClibc or V5 or target_env=fake_env only.'
++||||||| parent of dc484f364dc (Backport #2439)
++//  'Available on target_env=fake_env or Catalyst or GNU or Managarm C Library \
++//  or MSVC or musl or Neutrino 7.0 or Neutrino 7.1 or Neutrino 7.1 with io-sock \
++//  or Neutrino 8.0 or Newlib or OpenHarmony or relibc or SGX or Simulator or \
++//  uClibc or V5 or WASIp1 or WASIp2 or WASIp3 only.'
++=======
+ //  'Available on target_env=fake_env or Catalyst or GNU or Managarm C Library \
+ //  or MSVC or musl or Newlib or OpenHarmony or QNX SDP 7.0 or QNX SDP 7.1 or \
+ //  QNX SDP 7.1 with io-sock or relibc or SGX or Simulator or uClibc or V5 or WASIp1 \
+ //  or WASIp2 or WASIp3 only.'
++>>>>>>> dc484f364dc (Backport #2439)
  #[doc(cfg(any(
      target_env = "gnu",
      target_env = "macabi",
`@@@` -75,15 -74,16 +86,39 `@@@` pub fn bar() {
  
  //@ has all_targets/fn.baz.html \
  //  '//*[`@id="main-content"]/*[@Class="item-info"]/*[@Class="stab` portability"]' \
++<<<<<<< HEAD
 +//  'Available on AIX and AMD HSA and Android and CUDA and Cygwin and DragonFly \
 +//  BSD and Emscripten and ESP-IDF and FreeBSD and Fuchsia and Haiku and HelenOS \
 +//  and Hermit and Horizon and GNU/Hurd and illumos and iOS and L4Re and Linux \
 +//  and LynxOS-178 and macOS and Managarm and Motor OS and NetBSD and bare-metal \
 +//  and QNX Neutrino and NuttX and OpenBSD and Play Station Portable and Play \
 +//  Station 1 and QuRT and Redox OS and RTEMS OS and Solaris and SOLID ASP3 and \
 +//  TEEOS and Trusty and tvOS and UEFI and VEXos and visionOS and Play Station \
 +//  Vita and VxWorks and WASI and watchOS and Windows and Xous and zero knowledge \
 +//  Virtual Machine and target_os=unknown and target_os=fake_os only.'
++||||||| parent of dc484f364dc (Backport #2439)
++//  'Available on target_os=fake_os and target_os=unknown and AIX and AMD HSA \
++//  and Android and bare-metal and CUDA and Cygwin and DragonFly BSD and \
++//  Emscripten and ESP-IDF and FreeBSD and Fuchsia and GNU/Hurd and Haiku \
++//  and HelenOS and Hermit and Horizon and illumos and iOS and L4Re and Linux \
++//  and LynxOS-178 and macOS and Managarm and Motor OS and NetBSD and NuttX \
++//  and OpenBSD and Play Station 1 and Play Station Portable and Play Station Vita \
++//  and QNX Neutrino and QuRT and Redox OS and RTEMS OS and Solaris and \
++//  SOLID ASP3 and TEEOS and Trusty and tvOS and UEFI and VEXos and visionOS \
++//  and VxWorks and WASI and watchOS and Windows and Xous and zero knowledge \
++//  Virtual Machine only.'
++=======
+ //  'Available on target_os=fake_os and target_os=unknown and AIX and AMD HSA \
+ //  and Android and bare-metal and CUDA and Cygwin and DragonFly BSD and \
+ //  Emscripten and ESP-IDF and FreeBSD and Fuchsia and GNU/Hurd and Haiku \
+ //  and HelenOS and Hermit and Horizon and illumos and iOS and L4Re and Linux \
+ //  and LynxOS-178 and macOS and Managarm and Motor OS and NetBSD and NuttX \
+ //  and OpenBSD and Play Station 1 and Play Station Portable and Play Station Vita \
+ //  and QNX SDP 7.x and QNX SDP 8.0+ and QuRT and Redox OS and RTEMS OS and Solaris and \
+ //  SOLID ASP3 and TEEOS and Trusty and tvOS and UEFI and VEXos and visionOS \
+ //  and VxWorks and WASI and watchOS and Windows and Xous and zero knowledge \
+ //  Virtual Machine only.'
++>>>>>>> dc484f364dc (Backport #2439)
  #[doc(cfg(all(
      target_os = "aix",
      target_os = "amdhsa",
* Unmerged path tests/rustdoc-html/doc-cfg/sort.rs
```

</details>

#2394 was not marked as backport until just now; i needed it or the QNX rename wouldn't backport cleanly.

Co-authored-by: Urhengulas <[email protected]>
Co-authored-by: Jorge Aparicio <[email protected]>
Co-authored-by: Jynn Nelson <[email protected]>
Co-authored-by: Tshepang Mbambo <[email protected]>
Co-authored-by: Ana Hobden <[email protected]>
Co-authored-by: jyn <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants