Skip to content

Conversation

@rcvalle
Copy link
Member

@rcvalle rcvalle commented Sep 2, 2025

This reverts commit cf8753e (PR #145368) and fix the regressions reported at #145981, #146109, and #146145.

@rustbot
Copy link
Collaborator

rustbot commented Sep 2, 2025

r? @davidtwco

rustbot has assigned @davidtwco.
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

@rustbot rustbot added PG-exploit-mitigations Project group: Exploit mitigations S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Sep 2, 2025
@rustbot
Copy link
Collaborator

rustbot commented Sep 2, 2025

Some changes occurred in compiler/rustc_codegen_ssa

cc @WaffleLapkin

@rustbot

This comment has been minimized.

@rcvalle
Copy link
Member Author

rcvalle commented Sep 2, 2025

r? @bjorn3

@rustbot rustbot assigned bjorn3 and unassigned davidtwco Sep 2, 2025
@rcvalle rcvalle force-pushed the rust-cfi-fix-145981 branch from df97f0f to 0bc9d00 Compare September 2, 2025 18:27
@rustbot

This comment has been minimized.

@tgross35 tgross35 changed the title Revert "Make lto and linker-plugin-lto work the same for `compile… Revert "Make lto and linker-plugin-lto work the same for compiler_builtins Sep 2, 2025
@bjorn3
Copy link
Member

bjorn3 commented Sep 2, 2025

Can you please remove the issue references from the commit message. r=me with the commit message changed.

…r_builtins`"

This reverts commit cf8753e and fixes the
regressions reported.
@rcvalle rcvalle force-pushed the rust-cfi-fix-145981 branch from 0bc9d00 to 916b55e Compare September 2, 2025 20:11
@rcvalle rcvalle marked this pull request as draft September 2, 2025 22:27
@rustbot rustbot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Sep 2, 2025
@rcvalle rcvalle marked this pull request as ready for review September 3, 2025 06:20
@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Sep 3, 2025
@rcvalle
Copy link
Member Author

rcvalle commented Sep 3, 2025

r? @bjorn3

@rustbot
Copy link
Collaborator

rustbot commented Sep 3, 2025

Requested reviewer is already assigned to this pull request.

Please choose another assignee.

@nikic
Copy link
Contributor

nikic commented Sep 3, 2025

@bors r=bjorn3 rollup

@bors
Copy link
Collaborator

bors commented Sep 3, 2025

📌 Commit 916b55e has been approved by bjorn3

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Sep 3, 2025
@nikic
Copy link
Contributor

nikic commented Sep 3, 2025

@bors p=1 (multiple reported regressions)

jhpratt added a commit to jhpratt/rust that referenced this pull request Sep 3, 2025
Revert "Make `lto` and `linker-plugin-lto` work the same for `compiler_builtins`

This reverts commit cf8753e and fix the regressions reported at rust-lang#145981 and rust-lang#146109.
bors added a commit that referenced this pull request Sep 3, 2025
Rollup of 15 pull requests

Successful merges:

 - #143725 (core: add Peekable::next_if_map)
 - #145209 (Stabilize `path_add_extension`)
 - #145750 (raw_vec.rs: Remove superfluous fn alloc_guard)
 - #145962 (Ensure we emit an allocator shim when only some crate types need one)
 - #145963 (Add LSX accelerated implementation for source file analysis)
 - #146054 (add `#[must_use]` to `array::repeat`)
 - #146090 (Derive `PartialEq` for `InvisibleOrigin`)
 - #146120 (Correct typo in `rustc_errors` comment)
 - #146127 (Rename `ToolRustc` to `ToolRustcPrivate`)
 - #146131 (rustdoc-search: add test case for indexing every item type)
 - #146133 (Revert "Make `lto` and `linker-plugin-lto` work the same for `compiler_builtins`)
 - #146134 (llvm: nvptx: Layout update to match LLVM)
 - #146136 (docs(std): add missing closing code block fences in doc comments)
 - #146137 (Disallow frontmatter in `--cfg` and `--check-cfg` arguments)
 - #146140 (compiletest: cygwin follows windows in using PATH for dynamic libraries)

r? `@ghost`
`@rustbot` modify labels: rollup
@RalfJung
Copy link
Member

RalfJung commented Sep 3, 2025

Please also reference the PR when filing a revert, so there's a backlink in the original PR and one can see the revert there. (I did that now for this PR.)

Zalathar added a commit to Zalathar/rust that referenced this pull request Sep 3, 2025
Revert "Make `lto` and `linker-plugin-lto` work the same for `compiler_builtins`

This reverts commit cf8753e (PR rust-lang#145368) and fix the regressions reported at rust-lang#145981 and rust-lang#146109.
bors added a commit that referenced this pull request Sep 3, 2025
Rollup of 16 pull requests

Successful merges:

 - #143725 (core: add Peekable::next_if_map)
 - #145209 (Stabilize `path_add_extension`)
 - #145342 (fix drop scope for `super let` bindings within `if let`)
 - #145750 (raw_vec.rs: Remove superfluous fn alloc_guard)
 - #145962 (Ensure we emit an allocator shim when only some crate types need one)
 - #145963 (Add LSX accelerated implementation for source file analysis)
 - #146054 (add `#[must_use]` to `array::repeat`)
 - #146090 (Derive `PartialEq` for `InvisibleOrigin`)
 - #146120 (Correct typo in `rustc_errors` comment)
 - #146127 (Rename `ToolRustc` to `ToolRustcPrivate`)
 - #146133 (Revert "Make `lto` and `linker-plugin-lto` work the same for `compiler_builtins`)
 - #146134 (llvm: nvptx: Layout update to match LLVM)
 - #146136 (docs(std): add missing closing code block fences in doc comments)
 - #146137 (Disallow frontmatter in `--cfg` and `--check-cfg` arguments)
 - #146140 (compiletest: cygwin follows windows in using PATH for dynamic libraries)
 - #146156 (miri subtree update)

r? `@ghost`
`@rustbot` modify labels: rollup
@bors
Copy link
Collaborator

bors commented Sep 3, 2025

⌛ Testing commit 916b55e with merge a1208bf...

@bors
Copy link
Collaborator

bors commented Sep 3, 2025

☀️ Test successful - checks-actions
Approved by: bjorn3
Pushing a1208bf to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Sep 3, 2025
@bors bors merged commit a1208bf into rust-lang:master Sep 3, 2025
11 checks passed
@rustbot rustbot added this to the 1.91.0 milestone Sep 3, 2025
@github-actions
Copy link
Contributor

github-actions bot commented Sep 3, 2025

What is this? This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.

Comparing fd75a9c (parent) -> a1208bf (this PR)

Test differences

Show 6 test diffs

Stage 1

  • [ui] tests/ui/sanitizer/cfi/no_builtins.rs: pass -> [missing] (J1)

Stage 2

  • [ui] tests/ui/sanitizer/cfi/no_builtins.rs: pass -> [missing] (J0)
  • [ui] tests/ui/sanitizer/cfi/no_builtins.rs: ignore (ignored on targets without CFI sanitizer) -> [missing] (J2)

Additionally, 3 doctest diffs were found. These are ignored, as they are noisy.

Job group index

Test dashboard

Run

cargo run --manifest-path src/ci/citool/Cargo.toml -- \
    test-dashboard a1208bf765ba783ee4ebdc4c29ab0a0c215806ef --output-dir test-dashboard

And then open test-dashboard/index.html in your browser to see an overview of all executed tests.

Job duration changes

  1. dist-apple-various: 4386.1s -> 3149.7s (-28.2%)
  2. dist-arm-linux-musl: 6060.9s -> 5568.7s (-8.1%)
  3. dist-various-1: 4238.7s -> 3924.3s (-7.4%)
  4. dist-x86_64-netbsd: 5095.5s -> 4723.3s (-7.3%)
  5. dist-aarch64-msvc: 5654.9s -> 6032.1s (6.7%)
  6. dist-various-2: 2321.0s -> 2171.9s (-6.4%)
  7. dist-android: 1591.1s -> 1497.0s (-5.9%)
  8. pr-check-2: 2179.8s -> 2306.7s (5.8%)
  9. tidy: 191.7s -> 181.8s (-5.1%)
  10. dist-aarch64-apple: 7391.3s -> 7762.7s (5.0%)
How to interpret the job duration changes?

Job durations can vary a lot, based on the actual runner instance
that executed the job, system noise, invalidated caches, etc. The table above is provided
mostly for t-infra members, for simpler debugging of potential CI slow-downs.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (a1208bf): comparison URL.

Overall result: no relevant changes - no action needed

@rustbot label: -perf-regression

Instruction count

This benchmark run did not return any relevant results for this metric.

Max RSS (memory usage)

Results (primary 10.6%, secondary -1.4%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
10.6% [9.6%, 11.7%] 2
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-1.4% [-1.4%, -1.4%] 1
All ❌✅ (primary) 10.6% [9.6%, 11.7%] 2

Cycles

Results (primary 2.5%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
2.5% [2.5%, 2.5%] 1
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 2.5% [2.5%, 2.5%] 1

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 466.494s -> 466.26s (-0.05%)
Artifact size: 388.33 MiB -> 388.41 MiB (0.02%)

@rcvalle rcvalle deleted the rust-cfi-fix-145981 branch September 4, 2025 21:12
makai410 pushed a commit to makai410/rust that referenced this pull request Nov 8, 2025
Revert "Make `lto` and `linker-plugin-lto` work the same for `compiler_builtins`

This reverts commit cf8753e (PR rust-lang#145368) and fix the regressions reported at rust-lang#145981, rust-lang#146109, and rust-lang#146145.
makai410 pushed a commit to makai410/rust that referenced this pull request Nov 10, 2025
Revert "Make `lto` and `linker-plugin-lto` work the same for `compiler_builtins`

This reverts commit cf8753e (PR rust-lang#145368) and fix the regressions reported at rust-lang#145981, rust-lang#146109, and rust-lang#146145.
@RalfJung
Copy link
Member

Is there any way to add a test to prevent this regression from occurring again?

@dianqk
Copy link
Member

dianqk commented Nov 19, 2025

Is there any way to add a test to prevent this regression from occurring again?

I will add it.

@dianqk
Copy link
Member

dianqk commented Nov 19, 2025

Is there any way to add a test to prevent this regression from occurring again?

For cargo: rust-lang/cargo#16277, I will also add a test to rustc later.

github-merge-queue bot pushed a commit to rust-lang/cargo that referenced this pull request Nov 20, 2025
Add a test for rust-lang/rust#146133. `cargo
+nightly-2025-08-29 test --test build-std -- lto` can reproduce the
regression.
This is not a bug from Cargo, but it requires `-Zbuild-std` in most use
cases.
The test case is from rust-lang/rust#146109.
The point is that when rustc is invoked with -Clto=fat or -Clto=thin, it
should perform LTO with ALL bitcodes. However,
rust-lang/rust#145368 emits bitcodes for
compiler_builtins but excludes it from LTO participation.
As a result, the compiler_builtins bitcodes library is passed to the
linker, but the linkers, such as the GNU ld or older versions of LLD,
are unable to process bitcodes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merged-by-bors This PR was explicitly merged by bors. PG-exploit-mitigations Project group: Exploit mitigations S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants