Skip to content

Pin libc to exact 0.2.186 for QNX8 compatibility#60

Merged
LittleHuba merged 1 commit into
mainfrom
fix/pin-libc-exact-0.2.186
Jul 24, 2026
Merged

Pin libc to exact 0.2.186 for QNX8 compatibility#60
LittleHuba merged 1 commit into
mainfrom
fix/pin-libc-exact-0.2.186

Conversation

@LittleHuba

Copy link
Copy Markdown
Contributor

libc versions >= 0.2.187 introduced an io_pkt/io_sock cfg_if split in src/unix/nto/mod.rs with no arm for target_env = "nto80" (QNX SDP 8), causing a panic!("Unsupported arch") compile error for QNX8 targets whose rustc still reports target_os = "nto" (see rust-lang/libc#5241 and rust-lang/rust#158449 for the eventual upstream QNX8 target rename that libc expects).

The previous "0.2.186" version spec is a caret/minimum requirement, so a routine crate_universe re-resolution could still silently pick a newer, broken libc release (this is exactly what happened in eclipse-score/communication). Pin it exactly ("=0.2.186") to prevent that until the toolchain and libc are updated in lockstep to support the renamed QNX8 target.

@github-actions

Copy link
Copy Markdown

The created documentation from the pull request is available at: docu-html

libc versions >= 0.2.187 introduced an io_pkt/io_sock cfg_if split in
src/unix/nto/mod.rs with no arm for target_env="nto80" (QNX SDP 8),
causing a panic!("Unsupported arch") compile error for QNX8 targets
whose rustc still reports target_os="nto" (see rust-lang/libc#5241 and
rust-lang/rust#158449 for the eventual upstream QNX8 target rename that
libc expects).

The previous "0.2.186" version spec is a caret/minimum requirement, so
crate_universe re-resolution could still silently pick a newer, broken
libc release. Pin it exactly to prevent that.
@LittleHuba
LittleHuba force-pushed the fix/pin-libc-exact-0.2.186 branch from 227994a to 2e04225 Compare July 24, 2026 09:41
@LittleHuba
LittleHuba merged commit 4656dda into main Jul 24, 2026
5 checks passed
@LittleHuba
LittleHuba deleted the fix/pin-libc-exact-0.2.186 branch July 24, 2026 09:46
LittleHuba added a commit to eclipse-score/communication that referenced this pull request Jul 24, 2026
score_crates only constrained libc to a minimum version ("0.2.186"),
so a routine crate_universe re-resolution could silently pick up a
newer, broken libc release: since libc 0.2.187 (the io_pkt/io_sock
split added upstream, see rust-lang/libc#5241 tracking QNX SDP 8
support) the `target_env = "nto80"` case falls through to
`panic!("Unsupported arch")` in src/unix/nto/mod.rs, because our
current Ferrocene rustc still reports `target_os = "nto"` (not the
newer `target_os = "qnx"` introduced by rust-lang/rust#158449, which
our toolchain predates). This commit exactly pins libc to "=0.2.186",
the last known-good release for our QNX8 target
(eclipse-score/score-crates#60, not yet
released/tagged).
LittleHuba added a commit to eclipse-score/communication that referenced this pull request Jul 24, 2026
score_crates only constrained libc to a minimum version ("0.2.186"),
so a routine crate_universe re-resolution could silently pick up a
newer, broken libc release: since libc 0.2.187 (the io_pkt/io_sock
split added upstream, see rust-lang/libc#5241 tracking QNX SDP 8
support) the `target_env = "nto80"` case falls through to
`panic!("Unsupported arch")` in src/unix/nto/mod.rs, because our
current Ferrocene rustc still reports `target_os = "nto"` (not the
newer `target_os = "qnx"` introduced by rust-lang/rust#158449, which
our toolchain predates). This commit exactly pins libc to "=0.2.186",
the last known-good release for our QNX8 target
(eclipse-score/score-crates#60, not yet
released/tagged).
LittleHuba added a commit to eclipse-score/communication that referenced this pull request Jul 24, 2026
score_crates only constrained libc to a minimum version ("0.2.186"),
so a routine crate_universe re-resolution could silently pick up a
newer, broken libc release: since libc 0.2.187 (the io_pkt/io_sock
split added upstream, see rust-lang/libc#5241 tracking QNX SDP 8
support) the `target_env = "nto80"` case falls through to
`panic!("Unsupported arch")` in src/unix/nto/mod.rs, because our
current Ferrocene rustc still reports `target_os = "nto"` (not the
newer `target_os = "qnx"` introduced by rust-lang/rust#158449, which
our toolchain predates). This commit exactly pins libc to "=0.2.186",
the last known-good release for our QNX8 target
(eclipse-score/score-crates#60, not yet
released/tagged).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants