Skip to content

Rollup of 8 pull requests - #165510

Merged
rust-bors[bot] merged 21 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-jPRD18W
Nov 5, 2026
Merged

rust-bors[bot] merged 21 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-jPRD18W

Conversation

@JonathanBrouwer

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

Prabhuk and others added 21 commits October 21, 2026 18:17
With LLVM 24 or later, `x86_64-unknown-uefi` and `aarch64-unknown-uefi` use
LLVM's `*-unknown-uefi` targets instead of the Windows ones. Older LLVMs keep
the Windows triple as before for these targets.
This can't unwrap, e.g. `no_core` you're not guaranteed to have that
lang item.
The previous fix would still let `[...; _]` be unsound :c
…-bootstrap, r=folkertdev

c-variadic: remove stale `cfg(bootstrap)` comment

This can't unwrap, e.g. under `no_core` you're not guaranteed to have that lang item.

Noticed when grepping for `cfg(bootstrap)` when reviewing an unrelated PR.

r? @folkertdev (or compiler)
Lower UEFI targets through LLVM's *uefi triple

LLM Disclosure:
LLM was used to generate tests and version specific gating logic.
LLM was used to run tests, perform formatting as well as test the change with downstream project code base.

With LLVM 24 or later, `x86_64-unknown-uefi` and `aarch64-unknown-uefi` use LLVM's `*-unknown-uefi` targets instead of the Windows ones. Older LLVMs keep the Windows triple as before for these targets.
fix unsoundness when compiling `[diverging_const; _]`

Follow up to rust-lang#165416, because I [missed a case](rust-lang#165416 (comment)). r? @BoxyUwU
…seZ4

Build TPDE with local Clang when available

As noted in rust-lang#164108 (review), TPDE requires a clang with a major version <= the LLVM major version, and performance tends to be better when built with clang. This PR makes TPDE compilation and encodegen use the locally built clang if it's available.

I haven't added any sort of warning if `llvm.clang` is _not_ set as TPDE will throw its own error if the major version is too high. Maybe it's worth doing so, though?

This also includes the TPDE compilation fix commit from rust-lang#164108. We will see which ones makes it in first.

r? @ZuseZ4
Use `emit_ptr_va_arg` for `va_arg` on MSP430

This avoids needing to use the LLVM `va_arg` instruction. The implementation matches LLVM and GCC (checked by comparing the assembly), with the exception that GCC doesn't seem to align the `va_list` pointer before a `va_arg(va, void*)` - AFAICT this is a GCC bug as GCC does align pointers when passing them to C-variadic functions. This PR always correctly aligns the pointer, matching LLVM and the spec.

cc @cr1901

r? @folkertdev
…ition, r=jieyouxu

compiletest: Fix the edition of minicore to the latest stable one

...instead of using whatever edition the dependent / the reverse dependency is using (!).

Context: rust-lang#165479 (comment).

Unblocks PR rust-lang#165487.

r? @jieyouxu (no rush)

<sub>(No LLM was or will be used by me during the entire creation process of this PR)</sub>
rustdoc: Don't add a border on an empty `:target` element

Fixes rust-lang#163345.

If the `:target` is empty, no border is added. So in rust-lang#163345 case, it will simply scroll without a visual effect.
@rust-bors rust-bors Bot added the rollup A PR which is a rollup label Nov 5, 2026
@rustbot rustbot added A-compiletest Area: The compiletest test runner A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-rustdoc-js Area: Rustdoc's JS front-end 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-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. labels Nov 5, 2026
@rustbot rustbot added the T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output. label Nov 5, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member Author

@bors r+ p=5 force

Trying commonly failed jobs
@bors try jobs=dist-various-1,test-various,test-x86_64-gnu-aux,test-x86_64-msvc-1,test-aarch64-apple-1,test-aarch64-apple-2,test-x86_64-mingw-1,test-i686-msvc,test-armhf-gnu,test-x86_64-gnu-llvm-22-3,test-aarch64-msvc-2

@rust-bors

rust-bors Bot commented Nov 5, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 4baed20 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 Nov 5, 2026
@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Nov 5, 2026
Rollup of 8 pull requests


try-job: dist-various-1
try-job: test-various
try-job: test-x86_64-gnu-aux
try-job: test-x86_64-msvc-1
try-job: test-aarch64-apple-1
try-job: test-aarch64-apple-2
try-job: test-x86_64-mingw-1
try-job: test-i686-msvc
try-job: test-armhf-gnu
try-job: test-x86_64-gnu-llvm-22-3
try-job: test-aarch64-msvc-2
@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 Nov 5, 2026
@rust-bors

rust-bors Bot commented Nov 5, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 2h 48m 46s
Pushing 249c1e4 to main...

@rust-bors
rust-bors Bot merged commit 249c1e4 into rust-lang:main Nov 5, 2026
16 checks passed
@rustbot rustbot added this to the 1.101.0 milestone Nov 5, 2026
@github-actions

github-actions Bot commented Nov 5, 2026

Copy link
Copy Markdown
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 712e1d3 (parent) -> 249c1e4 (this PR)

Test differences

Show 41 test diffs

Stage 1

  • [codegen] tests/codegen-llvm/uefi-llvm-target.rs#aarch64: [missing] -> ignore (ignored when the LLVM version 23.1.5 is older than 24.0.0) (J1)
  • [codegen] tests/codegen-llvm/uefi-llvm-target.rs#x86_64: [missing] -> ignore (ignored when the LLVM version 23.1.5 is older than 24.0.0) (J1)
  • [ui (polonius)] tests/ui/repeat-expr/zero_assoc_diverging_consts.rs: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/repeat-expr/zero_diverging_type_relative_consts.rs: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/repeat-expr/zero_diverging_type_relative_consts_consts.rs: pass -> [missing] (J2)
  • [ui (polonius)] tests/ui/repeat-expr/zero_infer_diverging_consts.rs: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/repeat-expr/zero_param_diverging_consts.rs: [missing] -> pass (J2)
  • [ui] tests/ui/repeat-expr/zero_assoc_diverging_consts.rs: [missing] -> pass (J3)
  • [ui] tests/ui/repeat-expr/zero_diverging_type_relative_consts.rs: [missing] -> pass (J3)
  • [ui] tests/ui/repeat-expr/zero_diverging_type_relative_consts_consts.rs: pass -> [missing] (J3)
  • [ui] tests/ui/repeat-expr/zero_infer_diverging_consts.rs: [missing] -> pass (J3)
  • [ui] tests/ui/repeat-expr/zero_param_diverging_consts.rs: [missing] -> pass (J3)
  • [assembly] tests/assembly-llvm/aarch64-uefi-abi.rs: [missing] -> pass (J4)
  • [assembly] tests/assembly-llvm/c-variadic/msp430.rs: [missing] -> pass (J4)
  • [assembly] tests/assembly-llvm/x86_64-uefi-abi.rs: [missing] -> pass (J4)
  • [codegen] tests/codegen-llvm/uefi-llvm-target.rs#aarch64: [missing] -> ignore (ignored when the LLVM version 22.1.2 is older than 24.0.0) (J4)
  • [codegen] tests/codegen-llvm/uefi-llvm-target.rs#x86_64: [missing] -> ignore (ignored when the LLVM version 22.1.2 is older than 24.0.0) (J4)
  • [codegen] tests/codegen-llvm/uefi-llvm-target.rs#aarch64_llvm23: [missing] -> pass (J7)
  • [codegen] tests/codegen-llvm/uefi-llvm-target.rs#x86_64_llvm23: [missing] -> pass (J7)

Stage 2

  • [codegen] tests/codegen-llvm/uefi-llvm-target.rs#aarch64: [missing] -> ignore (ignored when the LLVM version 23.1.5 is older than 24.0.0) (J0)
  • [codegen] tests/codegen-llvm/uefi-llvm-target.rs#x86_64: [missing] -> ignore (ignored when the LLVM version 23.1.5 is older than 24.0.0) (J0)
  • [ui] tests/ui/repeat-expr/zero_assoc_diverging_consts.rs: [missing] -> pass (J5)
  • [ui] tests/ui/repeat-expr/zero_diverging_type_relative_consts.rs: [missing] -> pass (J5)
  • [ui] tests/ui/repeat-expr/zero_diverging_type_relative_consts_consts.rs: pass -> [missing] (J5)
  • [ui] tests/ui/repeat-expr/zero_infer_diverging_consts.rs: [missing] -> pass (J5)
  • [ui] tests/ui/repeat-expr/zero_param_diverging_consts.rs: [missing] -> pass (J5)
  • [assembly] tests/assembly-llvm/aarch64-uefi-abi.rs: [missing] -> pass (J6)
  • [assembly] tests/assembly-llvm/c-variadic/msp430.rs: [missing] -> pass (J6)
  • [assembly] tests/assembly-llvm/x86_64-uefi-abi.rs: [missing] -> pass (J6)
  • [codegen] tests/codegen-llvm/uefi-llvm-target.rs#aarch64_llvm23: [missing] -> pass (J6)
  • [codegen] tests/codegen-llvm/uefi-llvm-target.rs#x86_64_llvm23: [missing] -> pass (J6)
  • [codegen] tests/codegen-llvm/uefi-llvm-target.rs#aarch64: [missing] -> ignore (ignored when the LLVM version 22.1.2 is older than 24.0.0) (J8)
  • [codegen] tests/codegen-llvm/uefi-llvm-target.rs#x86_64: [missing] -> ignore (ignored when the LLVM version 22.1.2 is older than 24.0.0) (J8)

Additionally, 8 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 249c1e4e31111b54ad2483cfd4cea06c7020c653 --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. test-x86_64-msvc-1: -> 2h 14m (+inf%)
  2. test-aarch64-apple-2: -> 2h 17m (+inf%)
  3. dist-x86_64-msvc-alt: -> 2h 46m (+inf%)
  4. dist-x86_64-netbsd: -> 1h 18m (+inf%)
  5. test-tidy: -> 5m 8s (+inf%)
  6. test-x86_64-gnu-parallel-frontend: -> 1h 45m (+inf%)
  7. test-x86_64-gnu-distcheck: -> 1h 58m (+inf%)
  8. test-x86_64-rust-for-linux: -> 1h 1m (+inf%)
  9. test-x86_64-msvc-ext2: -> 1h 4m (+inf%)
  10. dist-ohos-x86_64: -> 56m 56s (+inf%)
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-bors

rust-bors Bot commented Nov 5, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: 6c1b033 (6c1b033b8be1d296a096f4a84e55e3cc57d5e9b6)
Base parent: 712e1d3 (712e1d350f1de77c931b354a24beeb0bb0fce559)

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (249c1e4): comparison URL.

Overall result: no relevant changes - no action needed

@rustbot label: -perf-regression

Instruction count

This perf run didn't have relevant results for this metric.

Max RSS (memory usage)

Results (primary -0.4%, secondary 0.9%)

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

mean range count
Regressions ❌
(primary)
2.2% [2.2%, 2.2%] 1
Regressions ❌
(secondary)
0.9% [0.9%, 0.9%] 1
Improvements ✅
(primary)
-3.0% [-3.0%, -3.0%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -0.4% [-3.0%, 2.2%] 2

Cycles

This perf run didn't have relevant results for this metric.

Binary size

This perf run didn't have relevant results for this metric.

Bootstrap: 499.109s -> 481.055s (-3.62%)
Artifact size: 406.33 MiB -> 406.29 MiB (-0.01%)

@rust-bors

rust-bors Bot commented Nov 5, 2026

Copy link
Copy Markdown
Contributor

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#165496 c-variadic: remove stale cfg(bootstrap) comment 0e7e7ba0417fa002ce25e33291c7a1eee0aa0cf2
(link)
#164716 Lower UEFI targets through LLVM's *uefi triple 13325702ac63d3fa3c727c311362f80dc22c4f0d
(link)
#165497 fix unsoundness when compiling [diverging_const; _] 0e88f437c12e66d11027bb27a28e13d5d989dadb
(link)
#165275 Build TPDE with local Clang when available 34e0169f886edbb8da31390df22b5c0a0e97108f
(link)
#165467 Use emit_ptr_va_arg for va_arg on MSP430 db6dcea09f9bebaf601db6a59c4dd742aec884da
(link)
#165483 compiletest: Fix the edition of minicore to the latest stab… 6d5f0d484e5ef9b805d388df6a17e4a8eb9b72c3
(link)
#165498 LoongArch: Fix direct-access-external-data test 6f0c255aab2963cb70eb41c72cd3d4fbd90ef240
(link)
#165501 rustdoc: Don't add a border on an empty :target element 2e178571131ea2ceea5ef66a55abc352b41a522e
(link)

parent commit: 712e1d350f

In the case of a perf regression, run the following command with the SHAs of each PR you suspect might be the cause: @rust-timer triage $SHA $SHA $SHA..., or run @rust-timer triage all to benchmark all rollup members.

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

Labels

A-compiletest Area: The compiletest test runner A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-rustdoc-js Area: Rustdoc's JS front-end 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-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output.

Projects

None yet

Development

Successfully merging this pull request may close these issues.