rust-lang / rust-lang/rust

macOS linker_messages `__eh_frame section too large`; false positive?

Open
#159,105 1 comment 5 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

L-linker_messages needs-triage
Dominant language
Rust
Stars
119k
Forks
16.1k
PR merge metrics
PR metrics pending

Description

What happened

After upgrading to 1.97 on macOS, I'm now getting this linker_messages warning:

warning: linker stderr: ld: __eh_frame section too large (max 16MB) to encode dwarf unwind offsets in compact unwind table, performance of exception handling might be affected
  |
  = note: `#[warn(linker_messages)]` on by default

warning: `crates_io` (bin "background-worker") generated 1 warning

I have no idea what this means or if I'm supposed to do anything about this. I read the release blog post that said some of these are false positives that should be filtered out, so I'm thinking this might be one of those?

How to reproduce

I get this consistently when building the background-worker bin of crates.io.

$ git clone https://github.com/rust-lang/crates.io.git
$ cd crates.io
$ cargo build --bin background-worker

System information

I'm on an Apple M1 Max using Sequoia 15.7.7.

$ rustc --version --verbose
rustc 1.97.0 (2d8144b78 2026-07-07)
binary: rustc
commit-hash: 2d8144b7880597b6e6d3dfd63a9a9efae3f533d3
commit-date: 2026-07-07
host: aarch64-apple-darwin
release: 1.97.0
LLVM version: 22.1.6

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

Reproduce the warning with cargo build --bin background-worker in crates.io on macOS using rustc 1.97.0, then trace how linker_messages handles this linker stderr output. Determine whether the __eh_frame warning is a false positive that should be filtered; done means the warning is correctly classified or the behavior is clearly addressed.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
compilers
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.