-
Notifications
You must be signed in to change notification settings - Fork 13k
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
Windows CI is borked #88796
Comments
@m-ou-se pointed out https://bugs.llvm.org/show_bug.cgi?id=51128 which seems relevant here. That commit is included on our master branch, but not on beta. cc @rust-lang/wg-llvm |
@rustbot ping windows |
Hey Windows Group! This bug has been identified as a good "Windows candidate". cc @arlosi @danielframpton @gdr-at-ms @kennykerr @luqmana @lzybkr @nico-abram @retep998 @rylev @sivadeilra @wesleywiser |
Our LLVM fork isn't used for the host compiler, I believe that would be what is installed in rust/src/ci/scripts/install-clang.sh Line 39 in ac888e8
|
After @slurps-mad-rips, @ehuss and I tried a bunch of things, we realized after about 13 attempts that the problem is that So it seems like the only way to downgrade, is to uninstall sdk 20348. Just What I did for now is renaming the 19041 sdk directory to 20348. An ugly hack. But it seems to work. (This is blocking our entire CI, so unblocking it asap is of high priority.) |
Work around CI issue with windows sdk 10.0.20348.0. See rust-lang#88796 (comment)
Was clang-cl picking it up directly, or was it through environment variables supplied by cc-rs? Looking here there is logic to get the newest SDK that contains a specific file. If it is cc-rs finding the sdk, then adding support there to have an environment variable (e.g., WindowsSDKVersion) to override the version could work. |
I would like to clarify a few things here, as I think there is a misunderstanding of clang and clang-cl. clang-cl is an MSVC-like frontend that works as if it were cl.exe. It was at one point supported by visual studio. However Microsoft dropped support for it, and instead worked on making clang (the gcc style driver) work with visual studio, the STL, Windows SDK, and CMake. In fact, CMake has explicit support for clang's gcc style interface but running on windows and targeting the MSVC toolchain. This is also the recommended way to use clang on windows. clang-cl does have a flag that can override what tuples it searches for. This flag is That said, I would recommend either passing |
That |
Then I continue to recommend not using clang-cl at all and rely on plain clang. |
Just fyi, I am looking at the natvis errors in the debugger tests. |
Should the two issues be tracked separately now that there is a work around for the immediate problem? |
PR is up to fix most of the debuginfo tests but I'm still looking into the issue with |
…ark-Simulacrum aarch64-msvc: remove CI hack for bad Windows SDK version This removes hack which manually replaced windows sdk version, as it looks like useless now, as CI uses newer version: https://github.com/rust-lang-ci/rust/actions/runs/5596259246/jobs/10233070602#step:24:929 `C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\corecrt_io.h` (look at version) related rust-lang#88796 It's nice to have some way to assert bad version, but i don't see anything except checking env rust-lang/cc-rs#646
…acrum aarch64-msvc: remove CI hack for bad Windows SDK version This removes hack which manually replaced windows sdk version, as it looks like useless now, as CI uses newer version: https://github.com/rust-lang-ci/rust/actions/runs/5596259246/jobs/10233070602#step:24:929 `C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\corecrt_io.h` (look at version) related rust-lang/rust#88796 It's nice to have some way to assert bad version, but i don't see anything except checking env rust-lang/cc-rs#646
…acrum aarch64-msvc: remove CI hack for bad Windows SDK version This removes hack which manually replaced windows sdk version, as it looks like useless now, as CI uses newer version: https://github.com/rust-lang-ci/rust/actions/runs/5596259246/jobs/10233070602#step:24:929 `C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\corecrt_io.h` (look at version) related rust-lang/rust#88796 It's nice to have some way to assert bad version, but i don't see anything except checking env rust-lang/cc-rs#646
…acrum aarch64-msvc: remove CI hack for bad Windows SDK version This removes hack which manually replaced windows sdk version, as it looks like useless now, as CI uses newer version: https://github.com/rust-lang-ci/rust/actions/runs/5596259246/jobs/10233070602#step:24:929 `C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\corecrt_io.h` (look at version) related rust-lang/rust#88796 It's nice to have some way to assert bad version, but i don't see anything except checking env rust-lang/cc-rs#646
I'm going to close as I believe this is now resolved. I didn't investigate, but I assume that as newer versions of clang are being used, that seems to have resolved the issue. #113854 removed the hack, and AFAIK everything is working. |
Windows CI has stopped working due to an image update on GitHub's side. The new image is win19/20210907.4 (included software). The previous image was win19/20210903.7 (included software). The image diff is here.
There are two errors showing up described below.
I think the most likely culprit is the addition of Windows 10 SDK 20348. Previously, the most recent SDK installed was 19041.
There are some interesting release notes for 20348 here:
I don't know what "LLVM for Windows v11" means in this context, but it seems fishy.
dist-aarch64-msvc fails with undeclared identifier '__umulh'
While building
profiler_builtins
there is an error:Full log example here: https://github.com/rust-lang-ci/rust/actions/runs/1218329003
NatVis error
There are three debuginfo tests that are failing:
These are failing because some Rust types are not displaying correctly (like strings).
Full log example here: https://github.com/rust-lang-ci/rust/actions/runs/1218098190
Failing tests report Windows Debugger Version 10.0.20348.1.
Comments
I don't know of the proper way of reverting to a previous Windows SDK is. My understanding is that is usually done by calling
vcvarsall.bat
, where you can specify the SDK version (and sets a bunch of environment variables). Calling that on CI is awkward (it only really works with cmd, or do weird things like this).Regarding the cdb errors, I'm also wondering if that might have been caused by the update to Windows SDK. It is not really clear to me the relationship between the cdb.exe and the Windows Kit (but cdb is installed in
Windows Kits\10\Debuggers
).The text was updated successfully, but these errors were encountered: