Skip to content

build(deps): bump x86_64 from 0.14.13 to 0.15.5 - #599

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/cargo/x86_64-0.15.5
Open

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/cargo/x86_64-0.15.5

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 3, 2026

Copy link
Copy Markdown
Contributor

Bumps x86_64 from 0.14.13 to 0.15.5.

Changelog

Sourced from x86_64's changelog.

0.15.5 – 2026-07-11

This release is compatible with Rust nightlies starting with nightly-2026-07-10 (this only applies when the nightly feature is used).

New Features

Fixes

Other Improvements

0.15.4 – 2025-11-24

New Features

Fixes

Other Improvements

0.15.3 – 2025-11-19

New Features

... (truncated)

Commits
  • 8ad38d5 Merge pull request #596 from rust-osdev/release/0.15.5
  • 88e5176 release 0.15.5
  • 75ea0fe update changelog
  • 98d498b Merge pull request #593 from zhangxuan2011/master
  • 4c75925 constify PhysFrame::from_pfn and PhysFrame::try_from_pfn
  • 8cc3adb rename InvalidPfn to PfnNotValid
  • 8f2866a improve documentation
  • b94acdc perf(addr): 🔥 Removed unnessary docs and code
  • 3a5107f feat(paging): ✨ Added new error type about invalid pfn
  • 4a52e0e fix(paging): 🐛 Fixed that the mul might cause overflow / panic
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [x86_64](https://github.com/rust-osdev/x86_64) from 0.14.13 to 0.15.5.
- [Changelog](https://github.com/rust-osdev/x86_64/blob/master/Changelog.md)
- [Commits](rust-osdev/x86_64@v0.14.13...v0.15.5)

---
updated-dependencies:
- dependency-name: x86_64
  dependency-version: 0.15.5
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file rust Pull requests that update rust code labels Oct 3, 2026
@dependabot
dependabot Bot requested a review from eKisNonos as a code owner October 3, 2026 11:23
@senseix21

Copy link
Copy Markdown
Collaborator

Review: do not merge as-is — x86_64 0.15 is a breaking API change that needs a code migration

CI is not flaky here, it is correct. build, benchmark, attestation, reproducible, evidence and every dark-features-compile variant fail. Pulled the compiler diagnostics:

error[E0605]: non-primitive cast: `SegmentSelector` as `u64`
error[E0605]: non-primitive cast: `SegmentSelector` as `u16`
error[E0599]: no method named `as_u64` found for enum `core::result::Result<T, E>`
error[E0277]: the type `InterruptDescriptorTable` cannot be indexed by `usize`
error[E0282]: type annotations needed
error[E0308]: mismatched types

Those are four distinct upstream breaking changes landing on us at once, and each maps to a real place in our arch layer:

  1. SegmentSelector is no longer a transparent integer. Every sel as u64 / sel as u16 in GDT/TSS setup needs .0 (or .index() where we want the index, not the raw selector — these are not the same value, and picking the wrong one silently corrupts segment loads rather than failing to compile).
  2. InterruptDescriptorTable dropped usize indexing in favour of u8. Our IDT wiring indexes with usize in many places — this is the bulk of the error volume, and the companion E0282 annotations are fallout from the same expressions.
  3. VirtAddr::try_new now returns Result, so .as_u64() on the result no longer resolves. Each site needs an explicit decision: propagate, or expect with a reason. This is the one I'd watch hardest — "just unwrap it" turns a compile error into a boot-time panic in address-space setup.

Architectural position: this is not a dependency bump, it is an arch-layer refactor wearing a bump's clothing. x86_64 is the single most TCB-critical third-party crate we have — it is the typed wrapper over GDT, IDT, page tables and control registers, and it is the one dependency where a silent semantic change (selector-vs-index, VirtAddr canonicality) produces a triple fault rather than a test failure. Given this repo's history of boot faults rooted in exactly this layer (segment/GS-base handling, IDT entry wiring, page-table setup), a mechanical "make it compile" pass is not sufficient evidence.

Recommended path — close this PR in favour of a hand-written migration branch:

  1. Migrate against the 0.15 changelog call-site by call-site, treating SegmentSelector and VirtAddr::try_new as semantic reviews, not textual fixes.
  2. Gate merge on boot-smoke and a real nonos-mk-run boot, not just build. A green cargo build proves nothing about an IDT whose entries are now indexed differently.
  3. Keep the abi_x86_interrupt + instructions feature pair and default-features = false exactly as they are, and confirm abi_x86_interrupt still behaves identically on our pinned toolchain.
  4. Land it on its own, never batched with other dependency updates, so a boot regression bisects to one commit.

Happy to be proven wrong by a green boot lane, but Dependabot cannot produce that here. Holding.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file rust Pull requests that update rust code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant