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

Update MSVC INSTALL.md instructions to recommend VS 2022 + recent Windows 10/11 SDK #137949

Merged
merged 1 commit into from
Mar 5, 2025

Conversation

jieyouxu
Copy link
Member

@jieyouxu jieyouxu commented Mar 3, 2025

This is generally iffy because we don't consistently document the exact minimum versions of build tools required to build a given Rust toolchain.

cc #129307, maybe rustup docs are outdated?

Anyway, I updated this because I was on a slightly older VS toolchain and I couldn't ./x build library on MSVC (even though maybe a month ago I could) due to CI rustc_llvm using stuff from newer Windows 11 SDK maybe. I updated the VS toolchain + Windows 11 SDK, and then I could build.

I'm not 100% sure the requirements here are accurate. It might be too high?

r? @ChrisDenton

@rustbot rustbot added A-meta Area: Issues & PRs about the rust-lang/rust repository itself S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Mar 3, 2025
Copy link
Member

@ChrisDenton ChrisDenton left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm.

I think the rustup docs are fine. When using rustup you're generally using a pre-built rustc which doesn't care which msvc version is targeted. So long as you're consistent within your own build it'll be fine. Maybe we should bump it up to 2019 but I don't know if that's really necessary.

The problem for rustc itself is when using a pre-build LLVM it's important that the local msvc toolchain matches. The Windows SDK version shouldn't really matter. Although using the latest for tests that need cdb is certainly an advantage.

@ChrisDenton
Copy link
Member

@bors r+ rollup

@bors
Copy link
Contributor

bors commented Mar 3, 2025

📌 Commit d4cca74 has been approved by ChrisDenton

It is now in the queue for this repository.

@bors
Copy link
Contributor

bors commented Mar 3, 2025

🌲 The tree is currently closed for pull requests below priority 102. This pull request will be tested once the tree is reopened.

@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 Mar 3, 2025
@klensy
Copy link
Contributor

klensy commented Mar 3, 2025

Err, why windows 11 sdk? I'm using windows 10 sdk 10.0.20348.0 (latest one from build tools 2022) and it works. Didn't attempted to build rustc's llvm, but can build original llvm from it's own repo.

@ChrisDenton
Copy link
Member

Err, why windows 11 sdk? I'm using windows 10 sdk 10.0.20348.0 (latest one from build tools 2022) and it works. Didn't attempted to build rustc's llvm, but can build original llvm from it's own repo.

Yes it doesn't matter for either rust or llvm. The only thing I can see it matter for is debugging tools like cdb.exe which are used in some tests. Having the latest one (or at least relatively recent) does matter.

@jieyouxu
Copy link
Member Author

jieyouxu commented Mar 3, 2025

Err, why windows 11 sdk? I'm using windows 10 sdk 10.0.20348.0 (latest one from build tools 2022) and it works. Didn't attempted to build rustc's llvm, but can build original llvm from it's own repo.

The changes in this PR here is basically "whatever worked on my machine to unbrick ./x build library" (with the usual compiler workflow of downloading CI LLVM).

I, for one, am not going to test the minimum SDK version that's going to work...

The cdb.exe version matters for testing, not necessarily building.

Copy link
Member

@ChrisDenton ChrisDenton left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In which case I think the text should be weaker. Because it's definitely a bug if rustc doesn't build with old Windows SDK. That would likely mean the compiled binary doesn't actually work on Windows 10 which would be bad.

INSTALL.md Outdated
Comment on lines 217 to 220
- A recent Windows 11 SDK.

The simplest way is to get [Visual Studio], check the "C++ build tools" and
select the latest "Windows 11 SDK" workload.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- A recent Windows 11 SDK.
The simplest way is to get [Visual Studio], check the "C++ build tools" and
select the latest "Windows 11 SDK" workload.
- A recent Windows 10 or 11 SDK.
The simplest way is to get [Visual Studio], check the "C++ build tools".

The Windows 11 SDK will be selected by default anyway.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed the wording to recommend "recent" Windows 10 or 11 SDK to be more "slippery".

@ChrisDenton
Copy link
Member

@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-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Mar 3, 2025
@jieyouxu jieyouxu changed the title Update MSVC INSTALL.md instructions to VS 2022 + latest Windows 11 SDK Update MSVC INSTALL.md instructions to recommend VS 2022 + recent Windows 10/11 SDK Mar 3, 2025
@jieyouxu
Copy link
Member Author

jieyouxu commented Mar 3, 2025

Changed text, PR title/description to recommend recent Win 10/11 SDK.
@rustbot ready

@ChrisDenton
Copy link
Member

@bors r+

@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 Mar 3, 2025
@bors
Copy link
Contributor

bors commented Mar 3, 2025

📌 Commit 53ee696 has been approved by ChrisDenton

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 Mar 3, 2025
jhpratt added a commit to jhpratt/rust that referenced this pull request Mar 4, 2025
…nton

Update MSVC INSTALL.md instructions to recommend VS 2022 + recent Windows 10/11 SDK

This is generally iffy because we don't consistently [document the exact minimum versions of build tools required to build a given Rust toolchain](rust-lang#129307).

cc rust-lang#129307, *maybe* rustup docs are outdated?

Anyway, I updated this because I was on a slightly older VS toolchain and I couldn't `./x build library` on MSVC (even though maybe a month ago I could) due to CI `rustc_llvm` using stuff from newer Windows 11 SDK maybe. I updated the VS toolchain + Windows 11 SDK, and then I could build.

I'm not 100% sure the requirements here are accurate. It might be too high?

r? `@ChrisDenton`
bors added a commit to rust-lang-ci/rust that referenced this pull request Mar 4, 2025
Rollup of 13 pull requests

Successful merges:

 - rust-lang#136581 (Retire the legacy `Makefile`-based `run-make` test infra)
 - rust-lang#136865 (Perform deeper compiletest path normalization for `$TEST_BUILD_DIR` to account for compare-mode/debugger cases, and normalize long type file filename hashes)
 - rust-lang#137147 (Add exclude to config.toml)
 - rust-lang#137327 (Undeprecate env::home_dir)
 - rust-lang#137463 ([illumos] attempt to use posix_spawn to spawn processes)
 - rust-lang#137477 (uefi: Add Service Binding Protocol abstraction)
 - rust-lang#137502 (Don't include global asm in `mir_keys`, fix error body synthesis)
 - rust-lang#137534 ([rustdoc] hide item that is not marked as doc(inline) and whose src is doc(hidden))
 - rust-lang#137565 (Try to point of macro expansion from resolver and method errors if it involves macro var)
 - rust-lang#137643 (Add DWARF test case for non-C-like `repr128` enums)
 - rust-lang#137722 (`librustdoc`: 2024 edition! 🎊)
 - rust-lang#137836 (Set `target_vendor = "openwrt"` on `mips64-openwrt-linux-musl`)
 - rust-lang#137949 (Update MSVC INSTALL.md instructions to recommend VS 2022 + recent Windows 10/11 SDK)

Failed merges:

 - rust-lang#137798 (ci: use ubuntu 24 on arm large runner)

r? `@ghost`
`@rustbot` modify labels: rollup
tgross35 added a commit to tgross35/rust that referenced this pull request Mar 4, 2025
…nton

Update MSVC INSTALL.md instructions to recommend VS 2022 + recent Windows 10/11 SDK

This is generally iffy because we don't consistently [document the exact minimum versions of build tools required to build a given Rust toolchain](rust-lang#129307).

cc rust-lang#129307, *maybe* rustup docs are outdated?

Anyway, I updated this because I was on a slightly older VS toolchain and I couldn't `./x build library` on MSVC (even though maybe a month ago I could) due to CI `rustc_llvm` using stuff from newer Windows 11 SDK maybe. I updated the VS toolchain + Windows 11 SDK, and then I could build.

I'm not 100% sure the requirements here are accurate. It might be too high?

r? ``@ChrisDenton``
bors added a commit to rust-lang-ci/rust that referenced this pull request Mar 4, 2025
Rollup of 6 pull requests

Successful merges:

 - rust-lang#135695 (Support raw-dylib link kind on ELF)
 - rust-lang#137836 (Set `target_vendor = "openwrt"` on `mips64-openwrt-linux-musl`)
 - rust-lang#137913 (Allow struct field default values to reference struct's generics)
 - rust-lang#137949 (Update MSVC INSTALL.md instructions to recommend VS 2022 + recent Windows 10/11 SDK)
 - rust-lang#137963 (Add ``dyn`` keyword to `E0373` examples)
 - rust-lang#137975 (Remove unused `PpMode::needs_hir`)

r? `@ghost`
`@rustbot` modify labels: rollup
workingjubilee added a commit to workingjubilee/rustc that referenced this pull request Mar 4, 2025
…nton

Update MSVC INSTALL.md instructions to recommend VS 2022 + recent Windows 10/11 SDK

This is generally iffy because we don't consistently [document the exact minimum versions of build tools required to build a given Rust toolchain](rust-lang#129307).

cc rust-lang#129307, *maybe* rustup docs are outdated?

Anyway, I updated this because I was on a slightly older VS toolchain and I couldn't `./x build library` on MSVC (even though maybe a month ago I could) due to CI `rustc_llvm` using stuff from newer Windows 11 SDK maybe. I updated the VS toolchain + Windows 11 SDK, and then I could build.

I'm not 100% sure the requirements here are accurate. It might be too high?

r? ```@ChrisDenton```
bors added a commit to rust-lang-ci/rust that referenced this pull request Mar 5, 2025
…kingjubilee

Rollup of 33 pull requests

Successful merges:

 - rust-lang#136581 (Retire the legacy `Makefile`-based `run-make` test infra)
 - rust-lang#136764 (Make `ptr_cast_add_auto_to_object` lint into hard error)
 - rust-lang#136798 (Added documentation for flushing per rust-lang#74348)
 - rust-lang#136865 (Perform deeper compiletest path normalization for `$TEST_BUILD_DIR` to account for compare-mode/debugger cases, and normalize long type file filename hashes)
 - rust-lang#136975 (Look for `python3` first on MacOS, not `py`)
 - rust-lang#137240 (Slightly reformat `std::fs::remove_dir_all` error docs)
 - rust-lang#137303 (Remove `MaybeForgetReturn` suggestion)
 - rust-lang#137327 (Undeprecate env::home_dir)
 - rust-lang#137502 (Don't include global asm in `mir_keys`, fix error body synthesis)
 - rust-lang#137534 ([rustdoc] hide item that is not marked as doc(inline) and whose src is doc(hidden))
 - rust-lang#137565 (Try to point of macro expansion from resolver and method errors if it involves macro var)
 - rust-lang#137643 (Add DWARF test case for non-C-like `repr128` enums)
 - rust-lang#137758 (fix usage of ty decl macro fragments in attributes)
 - rust-lang#137764 (Ensure that negative auto impls are always applicable)
 - rust-lang#137772 (Fix char count in `Display` for `ByteStr`)
 - rust-lang#137798 (ci: use ubuntu 24 on arm large runner)
 - rust-lang#137805 (adjust Layout debug printing to match the internal field name)
 - rust-lang#137808 (Do not require that unsafe fields lack drop glue)
 - rust-lang#137820 (Clarify why InhabitedPredicate::instantiate_opt exists)
 - rust-lang#137825 (Provide more context on resolve error caused from incorrect RTN)
 - rust-lang#137829 (Stabilize [T]::split_off... methods)
 - rust-lang#137834 (rustc_fluent_macro: use CARGO_CRATE_NAME instead of CARGO_PKG_NAME)
 - rust-lang#137850 (Stabilize `box_uninit_write`)
 - rust-lang#137912 (Do not recover missing lifetime with random in-scope lifetime)
 - rust-lang#137913 (Allow struct field default values to reference struct's generics)
 - rust-lang#137923 (Simplify `<Postorder as Iterator>::size_hint`)
 - rust-lang#137949 (Update MSVC INSTALL.md instructions to recommend VS 2022 + recent Windows 10/11 SDK)
 - rust-lang#137963 (Add ``dyn`` keyword to `E0373` examples)
 - rust-lang#137975 (Remove unused `PpMode::needs_hir`)
 - rust-lang#137986 (Fix some typos)
 - rust-lang#137991 (Add `avr-none` to SUMMARY.md and platform-support.md)
 - rust-lang#137993 (Remove obsolete comment from DeduceReadOnly)
 - rust-lang#137996 (Revert "compiler/rustc_data_structures/src/sync/worker_local.rs: delete "unsafe impl Sync"")

r? `@ghost`
`@rustbot` modify labels: rollup
bors added a commit to rust-lang-ci/rust that referenced this pull request Mar 5, 2025
…kingjubilee

Rollup of 15 pull requests

Successful merges:

 - rust-lang#137829 (Stabilize [T]::split_off... methods)
 - rust-lang#137850 (Stabilize `box_uninit_write`)
 - rust-lang#137912 (Do not recover missing lifetime with random in-scope lifetime)
 - rust-lang#137913 (Allow struct field default values to reference struct's generics)
 - rust-lang#137923 (Simplify `<Postorder as Iterator>::size_hint`)
 - rust-lang#137949 (Update MSVC INSTALL.md instructions to recommend VS 2022 + recent Windows 10/11 SDK)
 - rust-lang#137963 (Add ``dyn`` keyword to `E0373` examples)
 - rust-lang#137975 (Remove unused `PpMode::needs_hir`)
 - rust-lang#137981 (rustdoc search: increase strictness of typechecking)
 - rust-lang#137986 (Fix some typos)
 - rust-lang#137991 (Add `avr-none` to SUMMARY.md and platform-support.md)
 - rust-lang#137993 (Remove obsolete comment from DeduceReadOnly)
 - rust-lang#137996 (Revert "compiler/rustc_data_structures/src/sync/worker_local.rs: delete "unsafe impl Sync"")
 - rust-lang#138019 (Pretty-print `#[deprecated]` attribute in HIR.)
 - rust-lang#138026 (Make CrateItem::body() function return an option)

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit a3b271d into rust-lang:master Mar 5, 2025
6 checks passed
@rustbot rustbot added this to the 1.87.0 milestone Mar 5, 2025
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request Mar 5, 2025
Rollup merge of rust-lang#137949 - jieyouxu:update-install, r=ChrisDenton

Update MSVC INSTALL.md instructions to recommend VS 2022 + recent Windows 10/11 SDK

This is generally iffy because we don't consistently [document the exact minimum versions of build tools required to build a given Rust toolchain](rust-lang#129307).

cc rust-lang#129307, *maybe* rustup docs are outdated?

Anyway, I updated this because I was on a slightly older VS toolchain and I couldn't `./x build library` on MSVC (even though maybe a month ago I could) due to CI `rustc_llvm` using stuff from newer Windows 11 SDK maybe. I updated the VS toolchain + Windows 11 SDK, and then I could build.

I'm not 100% sure the requirements here are accurate. It might be too high?

r? ````@ChrisDenton````
@jieyouxu jieyouxu deleted the update-install branch March 5, 2025 10:26
github-actions bot pushed a commit to model-checking/verify-rust-std that referenced this pull request Mar 14, 2025
…kingjubilee

Rollup of 15 pull requests

Successful merges:

 - rust-lang#137829 (Stabilize [T]::split_off... methods)
 - rust-lang#137850 (Stabilize `box_uninit_write`)
 - rust-lang#137912 (Do not recover missing lifetime with random in-scope lifetime)
 - rust-lang#137913 (Allow struct field default values to reference struct's generics)
 - rust-lang#137923 (Simplify `<Postorder as Iterator>::size_hint`)
 - rust-lang#137949 (Update MSVC INSTALL.md instructions to recommend VS 2022 + recent Windows 10/11 SDK)
 - rust-lang#137963 (Add ``dyn`` keyword to `E0373` examples)
 - rust-lang#137975 (Remove unused `PpMode::needs_hir`)
 - rust-lang#137981 (rustdoc search: increase strictness of typechecking)
 - rust-lang#137986 (Fix some typos)
 - rust-lang#137991 (Add `avr-none` to SUMMARY.md and platform-support.md)
 - rust-lang#137993 (Remove obsolete comment from DeduceReadOnly)
 - rust-lang#137996 (Revert "compiler/rustc_data_structures/src/sync/worker_local.rs: delete "unsafe impl Sync"")
 - rust-lang#138019 (Pretty-print `#[deprecated]` attribute in HIR.)
 - rust-lang#138026 (Make CrateItem::body() function return an option)

r? `@ghost`
`@rustbot` modify labels: rollup
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-meta Area: Issues & PRs about the rust-lang/rust repository itself S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants