Skip to content

Rollup of 6 pull requests - #162612

Merged
rust-bors[bot] merged 22 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-Ma0hPul
Sep 11, 2026
Merged

Rollup of 6 pull requests#162612
rust-bors[bot] merged 22 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-Ma0hPul

Conversation

@JonathanBrouwer

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

notriddle and others added 22 commits September 5, 2026 16:25
This fixes a bug that was found where `PathBuf` didn't show up in the
standard library search results, because the crate that defined it
(libstd) was merged into a crate that already had a path entry in its
search index (libproc_macro).
Randomness generation failure is an abnormal circumstance that
should lead to program termination. It's not reasonable to let
consumers of `std` functionality catch such failures and resume
from the.
Picks up the latest version of the `wit-bindgen` dependency which has
improved compatibility for `wasm32-wasip3`.
* doc: replace `exceeding_bitshifts` with `arithmetic_overflow`
* replace another mention of `exceeding_bitshifts`, which is the only one left

Co-authored-by: Cheng-Han Chiang <chiangchenghan03@gmail.com>
Fix soundness issues in std::sys::pal::sgx::waitqueue::unsafe_list

Replace invalid uses of references in `std::sys::pal::sgx::waitqueue::unsafe_list` internals with raw pointers. I tried to keep the code structure the same as much as possible. In addition to the use of references flagged in the original issue, it turns out the head/tail (raw) pointer stored in the linked list caused provenance issues in miri. Switched to using UnsafePinned for that.

PR organization:
* Commit 1: Main soundness fix.
* Commit 2: Use pinning in the `pub(crate)` API for UnsafeList. This code predates pinning in Rust. I believe this change isn't strictly necessary as I believe it's valid to document pinning requirements in the unsafe methods on UnsafeList. However, I felt it's better to be explicit about this now that pinning is available in the language.
* Commit 3: Move UnsafeList to a platform-agnostic location so miri can be run on the test suite. This also adds some tests.

This PR was developed with Claude Fable 5 through extensive interactive use, where I directed a detailed plan for making the changes needed for this fix. My input includes keeping the structure the same and the new internal abstraction for dealing with raw pointers. I'm not familiar with miri, I used Claude to test the changes with miri. It said the test suite was failing before the changes (both stacked borrows and tree borrows) but passing after. The additional tests developed this way have been added in the third commit. The head/tail pointer provenance issue was found with Claude. I thoroughly reviewed all the code, including comments, and made manual changes/deletions where necessary/appropriate. The PR description was written by me.

r? @nia-e

Fixes rust-lang#114581
Fixes rust-lang#160603
Fixes rust-lang#161060
Supersedes rust-lang#160641
…lbinarycat,GuillaumeGomez

rustdoc: add missing CCI union logic

This fixes a bug that was found where `PathBuf` didn't show up in the standard library search results, because the crate that defined it (libstd) was merged into a crate that already had a path entry in its search index (libproc_macro).

Fixes rust-lang#162334
doc: replace `exceeding_bitshifts` with `arithmetic_overflow`

lint `exceeding_bitshifts` has been merged into `arithmetic_overflow` in PR rust-lang#69185
…ps, r=ChrisDenton

Update wasip2/wasip3 libstd crate dependencies

Picks up the latest version of the `wit-bindgen` dependency which has improved compatibility for `wasm32-wasip3`.
… r=khyperia

Gate ELF code in metadata.rs for ELF only

This PR gates ELF specific code for `BinaryFormat::Elf`. With this change, fallback for PowerPC64 on AIX is no longer needed.

---------

Assisted-by: IBM Bob
The issue was discovered by IBM Bob while checking changes for other things, and I personally verified the bug. Although the fix is trivial, I ran it through IBM Bob to make sure I wasn’t missing anything.
…=hanna-kruppe

Update windows-gnu support docs

Followup to rust-lang#161681.
@rust-bors rust-bors Bot added the rollup A PR which is a rollup label Sep 10, 2026
@rustbot rustbot added A-compiletest Area: The compiletest test runner A-rustdoc-js Area: Rustdoc's JS front-end A-rustdoc-search Area: Rustdoc's search feature A-testsuite Area: The testsuite used to check the correctness of rustc O-SGX Target: SGX 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) labels Sep 10, 2026
@rustbot rustbot added T-compiler Relevant to the compiler 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. 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. labels Sep 10, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member Author

@bors r+ p=5

@rust-bors

rust-bors Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 013f1e3 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 Sep 10, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member Author

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

@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Sep 10, 2026
Rollup of 6 pull requests


try-job: dist-various-1
try-job: test-various
try-job: test-x86_64-gnu-aux
try-job: test-x86_64-gnu-llvm-21-3
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
@rust-bors

This comment has been minimized.

@rust-bors

rust-bors Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: 653bdc9 (653bdc9e6157c1034b2bce096f86e268722ae884)
Base parent: 018018e (018018e881e2db0956f229dbb543e21f058d1ce7)

@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 Sep 11, 2026
@rust-bors

rust-bors Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 3h 4m 54s
Pushing 9e9544d to main...

@rust-bors
rust-bors Bot merged commit 9e9544d into rust-lang:main Sep 11, 2026
15 checks passed
@rustbot rustbot added this to the 1.100.0 milestone Sep 11, 2026
@github-actions

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 67eda61 (parent) -> 9e9544d (this PR)

Test differences

Show 24 test diffs

Stage 1

  • sys::sync::unsafe_list::tests::cell: [missing] -> pass (J1)
  • sys::sync::unsafe_list::tests::complex_pushes_pops: [missing] -> pass (J1)
  • sys::sync::unsafe_list::tests::cross_thread_wait_notify: [missing] -> pass (J1)
  • sys::sync::unsafe_list::tests::empty_churn: [missing] -> pass (J1)
  • sys::sync::unsafe_list::tests::init_empty: [missing] -> pass (J1)
  • sys::sync::unsafe_list::tests::notify_all_pattern: [missing] -> pass (J1)
  • sys::sync::unsafe_list::tests::push_pop: [missing] -> pass (J1)
  • sys::sync::unsafe_list::tests::push_remove: [missing] -> pass (J1)
  • sys::sync::unsafe_list::tests::push_remove_pop: [missing] -> pass (J1)
  • sys::sync::unsafe_list::tests::remove_first_of_many: [missing] -> pass (J1)
  • sys::sync::unsafe_list::tests::wait_timeout_fallback: [missing] -> pass (J1)
  • [rustdoc-js] tests/rustdoc-js/downstream-type.rs: [missing] -> pass (J2)

Stage 2

  • sys::sync::unsafe_list::tests::cell: [missing] -> pass (J0)
  • sys::sync::unsafe_list::tests::complex_pushes_pops: [missing] -> pass (J0)
  • sys::sync::unsafe_list::tests::cross_thread_wait_notify: [missing] -> pass (J0)
  • sys::sync::unsafe_list::tests::empty_churn: [missing] -> pass (J0)
  • sys::sync::unsafe_list::tests::init_empty: [missing] -> pass (J0)
  • sys::sync::unsafe_list::tests::notify_all_pattern: [missing] -> pass (J0)
  • sys::sync::unsafe_list::tests::push_pop: [missing] -> pass (J0)
  • sys::sync::unsafe_list::tests::push_remove: [missing] -> pass (J0)
  • sys::sync::unsafe_list::tests::push_remove_pop: [missing] -> pass (J0)
  • sys::sync::unsafe_list::tests::remove_first_of_many: [missing] -> pass (J0)
  • sys::sync::unsafe_list::tests::wait_timeout_fallback: [missing] -> pass (J0)
  • [rustdoc-js] tests/rustdoc-js/downstream-type.rs: [missing] -> pass (J3)

Job group index

Test dashboard

Run

cargo run --manifest-path src/ci/citool/Cargo.toml -- \
    test-dashboard 9e9544da4cd757c74428bad35059cc8122fdcd7d --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-i686-mingw: 34m 20s -> 59m 32s (+73.4%)
  2. test-armhf-gnu: 1h 3m -> 1h 37m (+53.0%)
  3. test-aarch64-apple-1: 1h 42m -> 2h 25m (+42.4%)
  4. test-x86_64-gnu-gcc: 55m 8s -> 1h 16m (+38.4%)
  5. dist-powerpc64-linux-gnu: 1h 34m -> 1h 1m (-35.1%)
  6. dist-arm-linux-gnueabi: 1h 8m -> 1h 31m (+32.4%)
  7. dist-x86_64-musl: 2h 15m -> 1h 32m (-31.9%)
  8. test-x86_64-gnu-nopt: 1h 54m -> 2h 31m (+31.7%)
  9. dist-s390x-linux: 1h 6m -> 1h 27m (+31.0%)
  10. test-x86_64-gnu-llvm-22-2: 1h 22m -> 1h 47m (+30.7%)
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
Copy Markdown
Collaborator

Finished benchmarking commit (9e9544d): comparison URL.

Overall result: ✅ improvements - no action needed

@rustbot label: -perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

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

Max RSS (memory usage)

Results (primary 1.0%)

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

mean range count
Regressions ❌
(primary)
4.1% [0.5%, 7.7%] 2
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-0.6% [-1.0%, -0.5%] 4
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 1.0% [-1.0%, 7.7%] 6

Cycles

Results (primary 0.7%)

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

mean range count
Regressions ❌
(primary)
0.9% [0.4%, 2.0%] 7
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-0.9% [-0.9%, -0.9%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.7% [-0.9%, 2.0%] 8

Binary size

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

Bootstrap: 476.479s -> 478.978s (0.52%)
Artifact size: 403.80 MiB -> 403.72 MiB (-0.02%)

@rust-bors

rust-bors Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#161334 Fix soundness issues in std::sys::pal::sgx::waitqueue::unsa… fc81f1a8887cc2226c37cc28302654713665a35d
(link)
#162346 rustdoc: add missing CCI union logic 301e456026e3b8d86d5f2facfe74d83827bf4c62
(link)
#162273 doc: replace exceeding_bitshifts with `arithmetic_overflo… d0bc7f9289c9138c8e8dc33026f5cadf5a205ff0
(link)
#162539 Update wasip2/wasip3 libstd crate dependencies 4c0e7531f02ba4dc81e7335e7b0923f24222514b
(link)
#162542 Gate ELF code in metadata.rs for ELF only 952dc1ee6c0abf392c9f2221f5a62bfdbfd62951
(link)
#162604 Update windows-gnu support docs c6d1ed0f88647208325c981ee6f89e30315e9d81
(link)

parent commit: 67eda617e6

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

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-rustdoc-js Area: Rustdoc's JS front-end A-rustdoc-search Area: Rustdoc's search feature A-testsuite Area: The testsuite used to check the correctness of rustc merged-by-bors This PR was explicitly merged by bors. O-SGX Target: SGX 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-libs Relevant to the library 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.

8 participants