Skip to content

feat(trim-paths): emit CARGO_TRIM_PATHS_REMAP for build.rs - #17104

Merged
epage merged 4 commits into
rust-lang:masterfrom
weihanglo:trim-paths-env
Jun 15, 2026
Merged

feat(trim-paths): emit CARGO_TRIM_PATHS_REMAP for build.rs#17104
epage merged 4 commits into
rust-lang:masterfrom
weihanglo:trim-paths-env

Conversation

@weihanglo

Copy link
Copy Markdown
Member

What does this PR try to resolve?

Build scripts may invoke C/C++ compilers
that embed local absolute paths into their output,
which trim-paths would otherwise miss.

This exposes the same <from>=<to> remap pairs Cargo passes to rustc
as a build script environment variable,
so build scripts can forward them like via -ffile-prefix-map.

Part of #12137.

See also
rust-lang/all-hands-2026#38 (comment)

How to test and review this PR?

cc @NobodyXu this might be useful for cc-rs.
cc rust-lang/cc-rs#593

Extract the `<from>=<to>` pair computation into `trim_paths_remap`
so it can be reused beyond `--remap-path-prefix` flag.
Rename CARGO_TRIM_PATHS to `CARGO_TRIM_PATHS_SCOPE`
to make room for a forthcoming `CARGO_TRIM_PATHS_REMAP`.
Build scripts may invoke C/C++ compilers
that embed local absolute paths into their output,
which `trim-paths` would otherwise miss.

This exposes the same `<from>=<to>` remap pairs Cargo passes to rustc
as a build script environment variable,
so build scripts can forward them like via `-ffile-prefix-map`.

Part of rust-lang#12137.

See also
rust-lang/all-hands-2026#38 (comment)
@rustbot rustbot added A-build-execution Area: anything dealing with executing the compiler A-build-scripts Area: build.rs scripts A-documenting-cargo-itself Area: Cargo's documentation S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jun 14, 2026
@rustbot

rustbot commented Jun 14, 2026

Copy link
Copy Markdown
Collaborator

r? @ehuss

rustbot has assigned @ehuss.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

Why was this reviewer chosen?

The reviewer was selected based on:

  • Owners of files modified in this PR: @ehuss, @epage, @weihanglo
  • @ehuss, @epage, @weihanglo expanded to ehuss, epage, weihanglo
  • Random selection from ehuss, epage


if let Some(trim_paths) = unit.profile.trim_paths.as_ref() {
cmd.env("CARGO_TRIM_PATHS", trim_paths.to_string());
cmd.env("CARGO_TRIM_PATHS_SCOPE", trim_paths.to_string());

@epage epage Jun 15, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I assume build-rs doesn't support this? If it doesn't, I assume we need to make sure its in the task list before stabilization.

View changes since the review

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good call. Added to #12137.

@epage
epage added this pull request to the merge queue Jun 15, 2026
Merged via the queue into rust-lang:master with commit 1252a7e Jun 15, 2026
29 checks passed
@rustbot rustbot removed the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Jun 15, 2026
@weihanglo
weihanglo deleted the trim-paths-env branch June 15, 2026 17:32
rust-bors Bot pushed a commit to rust-lang/rust that referenced this pull request Jun 17, 2026
Update cargo submodule

7 commits in fe63976b245b8a649c3f2949bf89fdc307bfbae4..598ab48ec328e3e4f5e4e373d8df7264bc8e27cd
2026-06-11 09:17:57 +0000 to 2026-06-17 02:39:50 +0000
- Improved the test error messages when 'rustc -V' fails (rust-lang/cargo#17108)
- test(install): `cargo install` --path honors MSRV (rust-lang/cargo#17102)
- feat(trim-paths): emit `CARGO_TRIM_PATHS_REMAP` for build.rs (rust-lang/cargo#17104)
- Add funding links (rust-lang/cargo#17103)
- fix(diag): Give diagnostics the same display path behavior as rustc (rust-lang/cargo#17101)
- refactor: remove cargo-util-terminal from bump-check exclusions (rust-lang/cargo#17098)
- fix(diag): Report all errors, in order (rust-lang/cargo#17095)
@rustbot rustbot added this to the 1.98.0 milestone Jun 17, 2026
@weihanglo

Copy link
Copy Markdown
Member Author

cc-rs PR: rust-lang/cc-rs#1794

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

Labels

A-build-execution Area: anything dealing with executing the compiler A-build-scripts Area: build.rs scripts A-documenting-cargo-itself Area: Cargo's documentation Z-trim-paths Nightly: path sanitization

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants