[1.97] 26.08 backports#2473
Merged
Merged
Conversation
prepare QNX OS 8.0 targets for qualification **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 targetsCo-authored-by: {author} Ferrocene-backport-of: #2394 Ferrocene-backported-commits: 97824b5 9bd139c 745e3ba ccf2004 d66d870 be6b947 8f84763 3fa28de 7310b08 376a246 f79b4ae bcf4df2 51dd663 3abd0d1 2767ca0 34b7027 8511d67 e854062 bb8f494 c9930e9 8bc7ac9 0ca2d67 25bd24c 210b39d 40ba1bf bcd3add aa1a81b a2af5bc 663d2cb f3f9232 8374dd0 797b9b5 51eb126
QNX target renaming **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](1483680) 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).Co-authored-by: {author} Ferrocene-backport-of: #2439 Ferrocene-backported-commits: eaefcad d6abb04 8de24d7 29db526 75cf0cd 2391087 3fc475b d7e9746 a00c6be 88115f7 965b5d4 b9ecb71 58486a8 9ca221b 147c587 450123f 2e92ee7 eccbf0a
[26.08 release] Bump release notes Update release notes for 26.08 release. See https://public-docs.ferrocene.dev/main/qualification/internal-procedures/release/stable.html#version-bump-release-notes. This PR was created by automation on behalf of `@jyn` (but then i edited it because my draft automation was broken). Rendered: <img width="921" height="805" alt="image" src="https://github.com/user-attachments/assets/14c42142-2240-4cef-889f-64bc7fdb4dba" /> Note that this will be missing release notes for 1.97 until #2467 is merged. Ferrocene-backport-of: #2456 Ferrocene-backported-commits: 1f15851
Split platform manuals
This PR splits out the following docs from safety manual, user manual and qualification docs:
- QNX7
- QNX8
- RHIVOS
Into a single manual per target that contains the relevant content from the 3 documents. I've made the minimal changes required for those to make sense.
Still to do:
- [x] update tests so CI passes
- [x] update index.html to reference the new targets?
- [x] RHIVOS qualified targets?
- [x] update doc list
Review:
- [ ] be great if someone familiar with the test outcomes could make sure that all looks ok
- [ ] be great if someone could eyeball the new docs with fresh eyes and sure it all seems ok
Co-authored-by: {author}
Ferrocene-backport-of: #2388
Ferrocene-backported-commits: 00555f5 95b7a57
qual-report: add facade target mapping to ARMv7r target This is a no-std target so the test outcomes will be associated to a facade target. The outcomes need to be mapped back to the no-std target with the `:bare_metal_test_target:` field Ferrocene-backport-of: #2468 Ferrocene-backported-commits: f165dca
Contributor
|
bors try |
Contributor
tryMerge conflict. |
Contributor
other than those two this looks good to me |
japaric
requested changes
Jul 14, 2026
japaric
left a comment
Contributor
There was a problem hiding this comment.
ferrocene/ignored-tests.tomlline 47 should use the new QNX target names, not-nto-qnx800(two instances)ferrocene/doc/qualification-report/src/rustc/armv7r-none-eabihf.rst, should use thetemplates/tests.jinja2path to match the other target pages
other than those two this looks good to me
Contributor
Author
|
bors r=japaric |
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. |
japaric
approved these changes
Jul 14, 2026
Contributor
Author
|
bors seems confused bors merge |
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]>
Contributor
|
Build failed:
|
Contributor
|
bors retry |
Contributor
Contributor
Author
|
ci got confused because this didn't go through all.py — i've manually added |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
i fixed the following conflicts which remained after running mergiraf:
Details
#2394 was not marked as backport until just now; i needed it or the QNX rename wouldn't backport cleanly.