rust-lang / rust-lang/libc

Next MSRV bump

Open
#4,626 13 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
2.6k
Forks
1.3k
Avg merge
1d 22h
Merged PRs (30d)
69

Description

Trixie released with rustc 1.85, so I expect a lot of crates will be increasing their MSRV in the next few weeks. I'd like to upgrade only as needed, rough list of what might be nice to have:

Baseline: 1.63

  • 1.64: core::ffi::c_* (definitely need this)
  • 1.64: workspace-level lints (meh)
  • 1.65: cast_mut (this would be nice)

Baseline: 1.65

  • 1.67: varargs for non-C extern ABIs (no known applications)
  • 1.69: derive on packed structs that don't implement Copy (not overly useful for us, everything is copy)
  • 1.75: byte_add (this would be nice)
  • 1.75: const_maybe_uninit_zeroed (this would be nice)
  • 1.77: offset_of (just lets us remove a polyfill)
  • 1.77: C string literals (nothing we can't work around, not sure we even use this now)
  • 1.78: cfg(target_abi = "...") https://github.com/rust-lang/libc/pull/5065#issuecomment-4861400142
  • 1.80: size_of, align_of in prelude (nice to have but we have our own prelude)
  • 1.80: variadics without a named parameter (no known applications)
  • 1.81: #[expect(...)] (want this, but it's not pressing)
  • 1.82: unsafe extern blocks (neutral)
  • 1.82: &raw (few small applications, addr_of! works fine)
  • 1.82: nested access in offset_of! (no uses)
  • 1.84: ptr::without_provenance (some 0x1234 as *const T casts)
  • 1.85: ptr::fn_addr_eq (we don't really need this as it is just for trait impls)
  • 1.85: 2024 edition
  • 1.92: &raw [mut|const] to union fields is now safe

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No file or test is named. Start by reviewing the workspace's current MSRV and checking the listed Rust features against the crates that use them. Done means selecting and documenting a justified MSRV increase only where the project needs it, including whether the 2024 edition or later features are required.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
build-system
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.