Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rollup of 8 pull requests #135906

Closed
wants to merge 17 commits into from

Conversation

matthiaskrgr
Copy link
Member

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

joboet and others added 17 commits January 19, 2025 20:44
Fixes rust-lang#111272.

With rust-lang#127912 merged, we now have all the infrastructure in place to support stack overflow detection in TLS destructors. This was not possible before because the signal stack was freed in the thread main function, thus a SIGSEGV afterwards would immediately crash. And on platforms without native TLS, the guard page address was stored in an allocation freed in a TLS destructor, so would not be available. rust-lang#127912 introduced the `local_pointer` macro which allows storing a pointer-sized TLS variable without allocation and the `thread_cleanup` runtime function which is called after all other code managed by the Rust runtime. This PR simply moves the signal stack cleanup to the end of `thread_cleanup` and uses `local_pointer` to store every necessary variable. And so, everything run under the Rust runtime is now properly protected against stack overflows.
These targets have always generated DWARF debuginfo and not CodeView/PDB debuginfo
like the MSVC Windows targets. Correct their target definitions to reflect this.

The newly added tests for the various combinations of `*-windows-gnu*` targets and
`-Csplit-debuginfo` show that this does not change any stable behavior.
This was added years ago and is outdated today.

Signed-off-by: onur-ozkan <[email protected]>
…, r=Amanieu

std: detect stack overflows in TLS destructors on UNIX

Fixes rust-lang#111272.

With rust-lang#127912 merged, we now have all the infrastructure in place to support stack overflow detection in TLS destructors. This was not possible before because the signal stack was freed in the thread main function, thus a SIGSEGV afterwards would immediately crash. And on platforms without native TLS, the guard page address was stored in an allocation freed in a TLS destructor, so would not be available. rust-lang#127912 introduced the `local_pointer` macro which allows storing a pointer-sized TLS variable without allocation and the `thread_cleanup` runtime function which is called after all other code managed by the Rust runtime. This PR simply moves the signal stack cleanup to the end of `thread_cleanup` and uses `local_pointer` to store every necessary variable. And so, everything run under the Rust runtime is now properly protected against stack overflows.
…-wf-coerce-ice, r=lcnr

Don't ICE in coerce when autoderef fails to structurally normalize non-WF type in new solver

r? lcnr
…uginfokind, r=lqd

Update windows-gnu targets to set `DebuginfoKind::DWARF`

These targets have always used DWARF debuginfo and not CodeView/PDB debuginfo like the MSVC Windows targets. However, their target definitions claim to use `DebuginfoKind::PDB` probably to ensure that we do not try to allow the use of split-DWARF debuginfo.

This does not appear to be necessary since the targets set their supported split debug info to `Off`. I've looked at all of the uses of these properties and this patch does not appear to cause any functional changes in compiler behavior. I also added UI tests to attempt to validate there is no change in the behavior of these options on stable compilers.

cc `@mati865` since you mentioned this in rust-lang#135739
cc `@davidtwco` for split-dwarf
…=Kobzol

ci: use 8 core arm runner for dist-aarch64-linux

try-job: dist-aarch64-linux
…eyouxu

fix outdated file path ref in llvm

This was added years ago and is outdated today.
…_mut, r=tgross35

Remove erroneous `unsafe` in `BTreeSet::upper_bound_mut`

rust-lang#128309 (comment)

Tracking issue: rust-lang#107540
rustdoc-json-types: Finalize dyn compatibility renaming

Followup to rust-lang#131595.

Part of rust-lang#130852.

Inspired by rust-lang#135858 (does the same thing but for the rustdoc-types docs).

r? `@fmease`
@rustbot
Copy link
Collaborator

rustbot commented Jan 22, 2025

Could not assign reviewer from: ghost.
User(s) ghost are either the PR author, already assigned, or on vacation. Please use r? to specify someone else to assign.

@rustbot
Copy link
Collaborator

rustbot commented Jan 22, 2025

r? @wesleywiser

rustbot has assigned @wesleywiser.
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 A-rustdoc-json Area: Rustdoc JSON backend A-testsuite Area: The testsuite used to check the correctness of rustc O-hermit Operating System: Hermit O-SGX Target: SGX O-solid Operating System: SOLID O-unix Operating system: Unix-like O-windows Operating system: Windows 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. labels Jan 22, 2025
@rustbot rustbot added 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. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) labels Jan 22, 2025
@matthiaskrgr
Copy link
Member Author

@bors r+ rollup=never p=5

@bors
Copy link
Contributor

bors commented Jan 22, 2025

📌 Commit caaeb22 has been approved by matthiaskrgr

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 Jan 22, 2025
@bors
Copy link
Contributor

bors commented Jan 23, 2025

⌛ Testing commit caaeb22 with merge 5431177...

bors added a commit to rust-lang-ci/rust that referenced this pull request Jan 23, 2025
…iaskrgr

Rollup of 8 pull requests

Successful merges:

 - rust-lang#131282 (std: detect stack overflows in TLS destructors on UNIX)
 - rust-lang#134746 (Don't ICE in coerce when autoderef fails to structurally normalize non-WF type in new solver)
 - rust-lang#135790 (Update windows-gnu targets to set `DebuginfoKind::DWARF`)
 - rust-lang#135878 (ci: use 8 core arm runner for dist-aarch64-linux)
 - rust-lang#135879 (fix outdated file path ref in llvm)
 - rust-lang#135883 (Remove erroneous `unsafe` in `BTreeSet::upper_bound_mut`)
 - rust-lang#135884 (remove implied end of slice)
 - rust-lang#135898 (rustdoc-json-types: Finalize dyn compatibility renaming)

r? `@ghost`
`@rustbot` modify labels: rollup
@rust-log-analyzer
Copy link
Collaborator

The job i686-mingw failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
test [ui] tests\ui\debuginfo\debuginfo-type-name-layout-ice-94961-1.rs ... ok
test [ui] tests\ui\debuginfo\late-bound-projection.rs ... ok
test [ui] tests\ui\debuginfo\sroa-fragment-debuginfo.rs ... ok
test [ui] tests\ui\custom_test_frameworks\mismatch.rs ... ok
test [ui] tests\ui\debuginfo\windows_gnu_split_debuginfo_off.rs#aarch64_gl ... ok
test [ui] tests\ui\debuginfo\windows_gnu_split_debuginfo_off.rs#i686_g ... ok
test [ui] tests\ui\debuginfo\windows_gnu_split_debuginfo_off.rs#i686_gl ... ok
test [ui] tests\ui\debuginfo\windows_gnu_split_debuginfo_off.rs#i686_uwp_g ... ok
test [ui] tests\ui\debuginfo\windows_gnu_split_debuginfo_off.rs#x86_64_g ... ok
test [ui] tests\ui\debuginfo\windows_gnu_split_debuginfo_off.rs#x86_64_gl ... ok
test [ui] tests\ui\debuginfo\windows_gnu_split_debuginfo_off.rs#x86_64_uwp_g ... ok
test [ui] tests\ui\debuginfo\debuginfo_with_uninhabitable_field_and_unsized.rs ... ok
test [ui] tests\ui\debuginfo\debuginfo-type-name-layout-ice-94961-2.rs ... ok
test [ui] tests\ui\debuginfo\issue-105386-debuginfo-ub.rs ... ok
test [ui] tests\ui\debuginfo\issue-105386-debuginfo-ub.rs ... ok
test [ui] tests\ui\debuginfo\windows_gnu_split_debuginfo_packed.rs#i686_g ... ok
test [ui] tests\ui\debuginfo\windows_gnu_split_debuginfo_packed.rs#aarch64_gl ... ok
test [ui] tests\ui\debuginfo\windows_gnu_split_debuginfo_packed.rs#i686_gl ... ok
test [ui] tests\ui\debuginfo\windows_gnu_split_debuginfo_packed.rs#i686_uwp_g ... ok
test [ui] tests\ui\debuginfo\windows_gnu_split_debuginfo_packed.rs#x86_64_g ... ok
test [ui] tests\ui\debuginfo\windows_gnu_split_debuginfo_packed.rs#x86_64_uwp_g ... ok
test [ui] tests\ui\debuginfo\windows_gnu_split_debuginfo_packed.rs#x86_64_gl ... ok
test [ui] tests\ui\debuginfo\windows_gnu_split_debuginfo_unpacked.rs#aarch64_gl ... ok
test [ui] tests\ui\debuginfo\windows_gnu_split_debuginfo_unpacked.rs#i686_gl ... ok
test [ui] tests\ui\debuginfo\windows_gnu_split_debuginfo_unpacked.rs#i686_g ... ok
test [ui] tests\ui\debuginfo\windows_gnu_split_debuginfo_unpacked.rs#i686_uwp_g ... ok
test [ui] tests\ui\debuginfo\windows_gnu_split_debuginfo_unpacked.rs#x86_64_g ... ok
test [ui] tests\ui\debuginfo\windows_gnu_split_debuginfo_unpacked.rs#x86_64_gl ... ok
test [ui] tests\ui\default-method-parsing.rs ... ok
test [ui] tests\ui\debuginfo\windows_gnu_split_debuginfo_unpacked.rs#x86_64_uwp_g ... ok
test [ui] tests\ui\definition-reachable\private-non-types.rs ... ok
test [ui] tests\ui\definition-reachable\private-types.rs ... ok
test [ui] tests\ui\deduplicate-diagnostics.rs#duplicate ... ok
test [ui] tests\ui\default-method-simple.rs ... ok
---
---- [ui] tests\ui\runtime\out-of-stack.rs stdout ----

error: test run failed!
status: exit code: 101
command: PATH="C:\a\rust\rust\build\i686-pc-windows-gnu\stage2\lib\rustlib\i686-pc-windows-gnu\lib;C:\a\rust\rust\build\i686-pc-windows-gnu\stage0-bootstrap-tools\i686-pc-windows-gnu\release\deps;C:\a\rust\rust\build\i686-pc-windows-gnu\stage0\bin;C:\a\_temp\msys64\mingw32\bin;C:\a\_temp\msys64\usr\local\bin;C:\a\_temp\msys64\usr\bin;C:\a\_temp\msys64\usr\bin;C:\a\rust\rust\ninja;C:\a\rust\rust\mingw32\bin;C:\a\rust\rust\sccache;C:\a\_temp\setup-msys2;C:\Program Files\MongoDB\Server\5.0\bin;C:\aliyun-cli;C:\vcpkg;C:\Program Files (x86)\NSIS;C:\tools\zstd;C:\Program Files\Mercurial;C:\hostedtoolcache\windows\stack\3.3.1\x64;C:\cabal\bin;C:\ghcup\bin;C:\mingw64\bin;C:\Program Files\dotnet;C:\Program Files\MySQL\MySQL Server 8.0\bin;C:\Program Files\R\R-4.4.2\bin\x64;C:\SeleniumWebDrivers\GeckoDriver;C:\SeleniumWebDrivers\EdgeDriver;C:\SeleniumWebDrivers\ChromeDriver;C:\Program Files (x86)\sbt\bin;C:\Program Files (x86)\GitHub CLI;C:\Program Files\Git\bin;C:\Program Files (x86)\pipx_bin;C:\npm\prefix;C:\hostedtoolcache\windows\go\1.21.13\x64\bin;C:\hostedtoolcache\windows\Python\3.9.13\x64\Scripts;C:\hostedtoolcache\windows\Python\3.9.13\x64;C:\hostedtoolcache\windows\Ruby\3.0.7\x64\bin;C:\Program Files\OpenSSL\bin;C:\tools\kotlinc\bin;C:\hostedtoolcache\windows\Java_Temurin-Hotspot_jdk\8.0.432-6\x64\bin;C:\Program Files\ImageMagick-7.1.1-Q16-HDRI;C:\Program Files\Microsoft SDKs\Azure\CLI2\wbin;C:\ProgramData\kind;C:\ProgramData\Chocolatey\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Windows\System32\OpenSSH;C:\Program Files\dotnet;C:\Program Files\PowerShell\7;C:\Program Files\Microsoft\Web Platform Installer;C:\Program Files\TortoiseSVN\bin;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn;C:\Program Files\Microsoft SQL Server\150\Tools\Binn;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit;C:\Program Files (x86)\WiX Toolset v3.14\bin;C:\Program Files\Microsoft SQL Server\130\DTS\Binn;C:\Program Files\Microsoft SQL Server\140\DTS\Binn;C:\Program Files\Microsoft SQL Server\150\DTS\Binn;C:\Program Files\Microsoft SQL Server\160\DTS\Binn;C:\Strawberry\c\bin;C:\Strawberry\perl\site\bin;C:\Strawberry\perl\bin;C:\ProgramData\chocolatey\lib\pulumi\tools\Pulumi\bin;C:\Program Files\CMake\bin;C:\ProgramData\chocolatey\lib\maven\apache-maven-3.9.9\bin;C:\Program Files\Microsoft Service Fabric\bin\Fabric\Fabric.Code;C:\Program Files\Microsoft SDKs\Service Fabric\Tools\ServiceFabricLocalClusterManager;C:\Program Files\nodejs;C:\Program Files\Git\cmd;C:\Program Files\Git\mingw64\bin;C:\Program Files\Git\usr\bin;C:\Program Files\GitHub CLI;C:\tools\php;C:\Program Files (x86)\sbt\bin;C:\Program Files\Amazon\AWSCLIV2;C:\Program Files\Amazon\SessionManagerPlugin\bin;C:\Program Files\Amazon\AWSSAMCLI\bin;C:\Program Files\Microsoft SQL Server\130\Tools\Binn;C:\Program Files\LLVM\bin;C:\Users\runneradmin\.dotnet\tools;C:\Users\runneradmin\.cargo\bin;C:\Users\runneradmin\AppData\Local\Microsoft\WindowsApps;C:\a\_temp\msys64\usr\bin\site_perl;C:\a\_temp\msys64\usr\bin\vendor_perl;C:\a\_temp\msys64\usr\bin\core_perl" "C:\\a\\rust\\rust\\build\\i686-pc-windows-gnu\\test\\ui\\runtime\\out-of-stack\\a.exe"
testing: silent-thread
testing: loud-thread
testing: silent-thread-tls
------------------------------------------
------------------------------------------
--- stderr -------------------------------

thread 'main' panicked at C:\a\rust\rust\tests\ui\runtime\out-of-stack.rs:71:5:
assertion failed: !status.success()
------------------------------------------




failures:
    [ui] tests\ui\runtime\out-of-stack.rs

test result: FAILED. 17952 passed; 1 failed; 358 ignored; 0 measured; 23 filtered out; finished in 912.15s

Some tests failed in compiletest suite=ui mode=ui host=i686-pc-windows-gnu target=i686-pc-windows-gnu
Build completed unsuccessfully in 1:01:06
make: *** [Makefile:120: ci-mingw-x] Error 1
  network time: Thu, 23 Jan 2025 05:29:03 GMT
##[error]Process completed with exit code 2.
Post job cleanup.
[command]"C:\Program Files\Git\bin\git.exe" version

@bors
Copy link
Contributor

bors commented Jan 23, 2025

💔 Test failed - checks-actions

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

Genuine failure, probably #131282
@bors r-

@bors bors 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 Jan 23, 2025
@jieyouxu jieyouxu closed this Jan 23, 2025
@matthiaskrgr matthiaskrgr deleted the rollup-k08iwsq branch January 25, 2025 09:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-rustdoc-json Area: Rustdoc JSON backend A-testsuite Area: The testsuite used to check the correctness of rustc O-hermit Operating System: Hermit O-SGX Target: SGX O-solid Operating System: SOLID O-unix Operating system: Unix-like O-windows Operating system: Windows S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. 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. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver)
Projects
None yet
Development

Successfully merging this pull request may close these issues.