Skip to content

Conversation

@JonathanBrouwer
Copy link
Contributor

Successful merges:

r? @ghost

Create a similar rollup

joboet and others added 16 commits January 12, 2026 17:16
Since it is a tier 2 target it should also be built by the CI workflow.
Ports #![panic_runtime] and #![needs_panic_runtime]
…pratt

std: use `ByteStr`'s `Display` for `OsStr`

Besides reducing duplication, this also results in formatting parameters like padding, align and fill being respected.
…rk-Simulacrum

Add GCC and the GCC codegen backend to build-manifest and rustup

This PR adds the GCC codegen backend, and the GCC (libgccjit) component upon which it depends, to build-manifest, and thus also to (nightly) Rustup. I added both components in a single PR, because one can't work/isn't useful without the other.

Both components are marked as nightly-only and as `-preview`.

As a reminder, the GCC component is special; we need a separate component for every (host, target) compilation pair. This is not something that is really supported by rustup today, so we work around that by creating a separate component/package for each compilation target. So if we want to distribute GCC that can compile from {T1, T2} to {T2, T3}, we will create two separate components (`gcc-T2` and `gcc-T3`), and make both of them available on T1 and T2 hosts.

I tried to reuse the existing structure of `PkgType` in `build-manifest`, but added a target field to the `Gcc` package variant. This required some macro hackery, but at least it doesn't require making larger changes to `build-manifest`.

After this PR lands, unless I messed something up, starting with the following nightly, the following should work:
```bash
rustup +nightly component add rustc-codegen-gcc-preview gcc-x86_64-unknown-linux-gnu-preview
RUSTFLAGS="-Zcodegen-backend=gcc" cargo +nightly build
```

Note that it will work currently only on `x86_64-unknown-linux-gnu`, and only if not cross-compiling.

r? @Mark-Simulacrum
Fixed ICE when using function pointer as const generic parameter

added bounds check in prohibit_explicit_late_bound_lifetimes to prevent index out of bounds panic when args.args is empty. also regression test here to ensure function pointers in const generics produce proper error messages instead of ICE.

Fixes rust-lang#151186
Fixes rust-lang#137084
Port some crate level attrs to the attribute parser

Tracking issue: rust-lang#131229

Ports compiler_builtins, panic_runtime, needs_panic_runtime, profiler_runtime and no_builtins to the attribute parsing infrastructure.

r? @JonathanBrouwer
…bzol

add x86_64-unknown-linux-gnuasan to CI

Since it is a tier 2 target it should also be built by the CI workflow.
@rust-bors rust-bors bot added the rollup A PR which is a rollup label Jan 21, 2026
@rustbot rustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) A-CI Area: Our Github Actions CI A-testsuite Area: The testsuite used to check the correctness of rustc S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. labels Jan 21, 2026
@JonathanBrouwer
Copy link
Contributor Author

@bors r+ rollup=never p=5

@rust-bors
Copy link
Contributor

rust-bors bot commented Jan 21, 2026

📌 Commit 5be6218 has been approved by JonathanBrouwer

It is now in the queue for this repository.

@rust-bors rust-bors bot 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 Jan 21, 2026
@rust-bors

This comment has been minimized.

@rust-bors rust-bors bot added merged-by-bors This PR was explicitly merged by bors. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Jan 22, 2026
@rust-bors
Copy link
Contributor

rust-bors bot commented Jan 22, 2026

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 3h 17m 2s
Pushing 004d710 to main...

@rust-bors rust-bors bot merged commit 004d710 into rust-lang:main Jan 22, 2026
12 checks passed
@rustbot rustbot added this to the 1.95.0 milestone Jan 22, 2026
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#151010 std: use ByteStr's Display for OsStr 89c315a3550f789bcd466ea25db974ff9673773f (link)
#151156 Add GCC and the GCC codegen backend to build-manifest and r… 07f882eea4414dd9e6a369b99cea4939dcdb26ec (link)
#151219 Fixed ICE when using function pointer as const generic para… 6a7263df4934263412f3da3857b398c98224347c (link)
#151343 Port some crate level attrs to the attribute parser 833a172e60ace070885f56f04b883565e1bab023 (link)
#151463 add x86_64-unknown-linux-gnuasan to CI 14b8952890e8ae73e877306f1ae0117fa621429e (link)

previous master: eda76d9d1d

In the case of a perf regression, run the following command for each PR you suspect might be the cause: @rust-timer build $SHA

@github-actions
Copy link
Contributor

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 eda76d9 (parent) -> 004d710 (this PR)

Test differences

Show 10 test diffs

Stage 1

  • [crashes] tests/crashes/137084.rs: pass -> [missing] (J0)
  • [ui] tests/ui/const-generics/fn-item-as-const-arg-137084.rs: [missing] -> pass (J0)
  • [ui] tests/ui/const-generics/ice-151186-fn-ptr-in-where-clause.rs: [missing] -> pass (J0)

Stage 2

  • [ui] tests/ui/const-generics/fn-item-as-const-arg-137084.rs: [missing] -> pass (J1)
  • [ui] tests/ui/const-generics/ice-151186-fn-ptr-in-where-clause.rs: [missing] -> pass (J1)
  • [crashes] tests/crashes/137084.rs: pass -> [missing] (J2)

Additionally, 4 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 004d710faff53f8764a1cf69d87a5a5963850b60 --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-aarch64-linux: 6481.5s -> 8950.9s (+38.1%)
  2. dist-apple-various: 4050.9s -> 4989.3s (+23.2%)
  3. dist-aarch64-apple: 8165.6s -> 6828.7s (-16.4%)
  4. i686-gnu-1: 7422.3s -> 8502.2s (+14.5%)
  5. x86_64-gnu-debug: 6442.1s -> 7362.1s (+14.3%)
  6. test-various: 6677.2s -> 7603.5s (+13.9%)
  7. aarch64-msvc-2: 6668.4s -> 5858.7s (-12.1%)
  8. x86_64-gnu-distcheck: 7381.9s -> 8274.6s (+12.1%)
  9. x86_64-gnu-miri: 4444.1s -> 4976.4s (+12.0%)
  10. x86_64-gnu-tools: 3367.6s -> 3759.7s (+11.6%)
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 (004d710): 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 3.7%, secondary 4.7%)

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

mean range count
Regressions ❌
(primary)
3.7% [2.4%, 4.9%] 2
Regressions ❌
(secondary)
4.7% [3.3%, 6.1%] 5
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 3.7% [2.4%, 4.9%] 2

Cycles

Results (secondary 0.5%)

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

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
3.3% [2.2%, 4.3%] 4
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-3.3% [-4.1%, -2.4%] 3
All ❌✅ (primary) - - 0

Binary size

Results (primary 0.0%, secondary 0.2%)

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

mean range count
Regressions ❌
(primary)
0.1% [0.0%, 0.2%] 5
Regressions ❌
(secondary)
0.2% [0.1%, 0.2%] 33
Improvements ✅
(primary)
-0.0% [-0.0%, -0.0%] 12
Improvements ✅
(secondary)
-0.0% [-0.0%, -0.0%] 1
All ❌✅ (primary) 0.0% [-0.0%, 0.2%] 17

Bootstrap: 471.204s -> 471.731s (0.11%)
Artifact size: 383.19 MiB -> 383.18 MiB (-0.00%)

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

Labels

A-attributes Area: Attributes (`#[…]`, `#![…]`) A-CI Area: Our Github Actions CI A-testsuite Area: The testsuite used to check the correctness of rustc merged-by-bors This PR was explicitly merged by bors. rollup A PR which is a rollup T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants