Skip to content

prepare QNX OS 8.0 targets for qualification#2394

Merged
bors-ferrocene[bot] merged 33 commits into
mainfrom
ja-qnx8-x86_64
Jun 18, 2026
Merged

prepare QNX OS 8.0 targets for qualification#2394
bors-ferrocene[bot] merged 33 commits into
mainfrom
ja-qnx8-x86_64

Conversation

@japaric

@japaric japaric commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

NOTE depends on #2399

This PR sets up CI to build and test two new targets

  • aarch64-unknown-nto-qnx800
  • x86_64-pc-nto-qnx800

using the QEMU VM approach used for the QNX 7.1 targets

@japaric

japaric commented Jun 9, 2026

Copy link
Copy Markdown
Contributor Author

bors try

bors-ferrocene Bot added a commit that referenced this pull request Jun 9, 2026
@bors-ferrocene

bors-ferrocene Bot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

try

Build failed:

  • full

@japaric

japaric commented Jun 9, 2026

Copy link
Copy Markdown
Contributor Author

bors try

bors-ferrocene Bot added a commit that referenced this pull request Jun 9, 2026
@bors-ferrocene

bors-ferrocene Bot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

try

Build failed:

Comment thread ferrocene/doc/internal-procedures/src/partners/qnx.rst
@Hoverbear Hoverbear mentioned this pull request Jun 10, 2026
@japaric

japaric commented Jun 11, 2026

Copy link
Copy Markdown
Contributor Author

bors try

bors-ferrocene Bot added a commit that referenced this pull request Jun 11, 2026
@bors-ferrocene

Copy link
Copy Markdown
Contributor

try

Build failed:

@japaric

japaric commented Jun 11, 2026

Copy link
Copy Markdown
Contributor Author

bors try

bors-ferrocene Bot added a commit that referenced this pull request Jun 11, 2026
@Hoverbear

Copy link
Copy Markdown
Member

bors try

@bors-ferrocene

Copy link
Copy Markdown
Contributor

try

Already running a review

@bors-ferrocene

Copy link
Copy Markdown
Contributor

try

Build failed:

@Hoverbear

Copy link
Copy Markdown
Member

bors try

bors-ferrocene Bot added a commit that referenced this pull request Jun 11, 2026
@japaric

japaric commented Jun 11, 2026

Copy link
Copy Markdown
Contributor Author

bors try-

@japaric

japaric commented Jun 11, 2026

Copy link
Copy Markdown
Contributor Author

bors try

bors-ferrocene Bot added a commit that referenced this pull request Jun 11, 2026
@japaric japaric changed the title test QNX8 in CI prepare QNX OS 8.0 targets for qualification Jun 11, 2026
@bors-ferrocene

Copy link
Copy Markdown
Contributor

try

Build failed:

@japaric

japaric commented Jun 11, 2026

Copy link
Copy Markdown
Contributor Author

bors try

bors-ferrocene Bot added a commit that referenced this pull request Jun 11, 2026
@bors-ferrocene

Copy link
Copy Markdown
Contributor

try

Build failed:

@japaric

japaric commented Jun 12, 2026

Copy link
Copy Markdown
Contributor Author

bors try

@japaric

japaric commented Jun 15, 2026

Copy link
Copy Markdown
Contributor Author

bors try

bors-ferrocene Bot added a commit that referenced this pull request Jun 15, 2026
@bors-ferrocene

Copy link
Copy Markdown
Contributor

try

Build failed:

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.

this looks quite similar to the existing emulated-aarch64-qnx-test-runner.sh and emulated-x86_64-qnx-test-runner.sh scripts. can we share any logic between them?

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.

we're going to leave this for a follow-up PR.

Comment thread .circleci/workflows.yml Outdated
Comment on lines +57 to +62
// on QNX7.1 and QNX8 the `len` value returned by the SUN_LEN
// macro in its libc does not include the null byte in the count so
// don't add it here to match what a C program passes to bind(2) and
// similar functions
if cfg!(not(any(target_env = "nto80", target_env = "nto71"))) {
len += 1

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.

has this change been upstreamed yet?

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.

Note that this bug fix is also necessary for all BSD targets, not just for QNX.

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.

We're waiting for someone who works at QNX to investigate this issue.

Comment thread .circleci/workflows.yml
FERROCENE_TARGETS: x86_64-pc-nto-qnx800
SCRIPT: |
set +u; source ./qnx800-141/qnxsdp-env.sh; set -u; RUST_TEST_THREADS=1 TEST_DEVICE_ADDR=172.31.1.11:12345 ./x.py --stage 2 test $(ferrocene/ci/split-tasks.py << parameters.job >>) --ferrocene-test-one-crate-per-cargo-call --test-variant << parameters.test-variant >> << parameters.extra-args >>
set +u; source ./qnx800-141/qnxsdp-env.sh; set -u; RUST_TEST_THREADS=1 TEST_DEVICE_ADDR=172.31.1.105:12345 ./x.py --stage 2 test $(ferrocene/ci/split-tasks.py << parameters.job >>) --ferrocene-test-one-crate-per-cargo-call --test-variant << parameters.test-variant >> << parameters.extra-args >>

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.

where can i find documentation on this? is this being hard-coded somewhere else?

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.

this is hard-coded in the QNX image itself, Jorge is going to leave a comment.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

for now I'll leave a comment indicating where the IP address is defined/set/unified in the emulator scripts. in a follow-up PR we can load it (grep it) from the script instead of duplicating it here a few times

Comment thread ferrocene/ci/scripts/calculate_parameters.py
@jyn514 jyn514 added waiting-on-author If this PR was opened by an automation, the "author" is the assignee. and removed waiting-on-review labels Jun 17, 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.

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.

@bors-ferrocene

Copy link
Copy Markdown
Contributor

Build succeeded:

@bors-ferrocene
bors-ferrocene Bot merged commit b088ad0 into main Jun 18, 2026
4 checks passed
@bors-ferrocene
bors-ferrocene Bot deleted the ja-qnx8-x86_64 branch June 18, 2026 19:16
@github-actions github-actions Bot added backport:maybe PR candidate for backport merged-in:1.98 labels Jun 18, 2026
@Hoverbear
Hoverbear restored the ja-qnx8-x86_64 branch July 2, 2026 15:28
@jyn514
jyn514 deleted the ja-qnx8-x86_64 branch July 6, 2026 13:30
bors-ferrocene Bot added a commit that referenced this pull request Jul 9, 2026
2460: v7r: add missing qualifications documents r=jyn514 a=japaric

cross referenced against doc changes in #2394

Co-authored-by: Jorge Aparicio <[email protected]>
bors-ferrocene Bot added a commit that referenced this pull request Jul 10, 2026
2460: v7r: add missing qualifications documents r=jyn514 a=japaric

cross referenced against doc changes in #2394

Co-authored-by: Jorge Aparicio <[email protected]>
bors-ferrocene Bot added a commit that referenced this pull request Jul 10, 2026
2454: Restore QNX8 jobs r=japaric a=Hoverbear

Reverses #2440

2460: v7r: add missing qualifications documents r=jyn514 a=japaric

cross referenced against doc changes in #2394

Co-authored-by: Ana Hobden <[email protected]>
Co-authored-by: Jorge Aparicio <[email protected]>
@jyn514 jyn514 added backport:1.68 backport:1.97 and removed backport:maybe PR candidate for backport labels 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]>
@ferrocene-automations ferrocene-automations Bot added the backport:manual PR requiring manual intervention to backport label Jul 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport:manual PR requiring manual intervention to backport backport:1.68 backport:1.97 merged-in:1.97 merged-in:1.98 waiting-on-author If this PR was opened by an automation, the "author" is the assignee.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants