-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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 windows build machines #65798
Conversation
I couldn't figure out the best area label to add to this PR. If you have write-permissions please help me learn by adding exactly one area label. |
@@ -54,7 +54,7 @@ jobs: | |||
# If it's not devdiv, it's dnceng | |||
${{ if ne(variables['System.TeamProject'], 'DevDiv') }}: | |||
name: NetCore1ESPool-Internal | |||
demands: ImageOverride -equals Build.Server.Amd64.VS2019 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These changes are in eng/common.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Woops
Tagging subscribers to this area: @dotnet/runtime-infrastructure Issue DetailsTwo changes: removes vs2019 in favor of vs2022 Removes 19H1 in favor of 21H1, as 19H1 is being expired.
|
Seems like updating to VS2022 wasn't sufficient? The build error is still there in the
|
Problematic line is:
We're including the right header |
I tried to repro this failure locally and had no luck on my win10 machine with vs2022 P1. The compiler on my machine is older though, so it might just be in an even more recent preview. |
|
My local build is fine too. CI log shows CMake was able to find
|
Also possibly relevant: #56811. |
There was an image rollout yesterday that caused other issues with WinSDK, so entirely possible. |
Looks like this is happening in main as well: https://dev.azure.com/dnceng/public/_build/results?buildId=1629951&view=results Probably a Windows SDK update issue |
The stdalign.h that's included there should be one that we generate if we don't find one. I could see in a ci failure that we have not found one on the system. So we should have generated a fake one and included it. For some reason, the CI build didn't find it. My local build also doesn't find it, generates one and it works. |
Ah, I can see something - on my machine, the stdalign.h was not found. However, in the CI, the stdalign.h was found (contrary to what I've said before), however in both cases the "HAVE_STDALIGN_ALIGNAS - Failed". So what happens is that the stdalign.h that's new in the SDK doesn't have the alignas in it, so when we generate the stdalign.h, the one from the SDK gets included and the alignas is missing. |
You might take a look at #56811 because there is some cmake policy to ensure the cmake scouting and build use the same options and such. |
@janvorli So you'd be comfortable with a fix where we add this to fakestdalign.h? It sounds like this might be failing in servicing as well, so we'd have to port that change back quite a ways. |
should the fake check be changed from header exists to a check source compiles? |
I guess I've not explained it properly. The fakestdalign.h.in contains the alignas definition, we generate the stdalign.h from it, but since the stdalign.h is now also in the SDK, the SDK one is included first. And that one doesn't have the alignas in it (I guess, it seems to be the only explanation) |
I see, so we won't generate it at all, if one is present already? Or at least we won't include the one we generate? |
We don't generate if there's an stdalign header, that doesn't guarantee the function exists. |
Gotcha. Is there any way to not include the system one and use our own? |
My thinking is we should have a check_source_compiles instead of header exists. If it doesn't compile, then generate the header to have the def. |
I don't think any of these would work. Since the SDK one doesn't have the alignas defined and we need one. |
Haven't we been faking it this whole time though? |
So I think the way is to define the alignas macro in the CMakeLists.txt as compiler define in case it was not found. |
And even worse: CI is using the one dynamically obtainedL D:\a_work\1\s\native-tools\bin\cmake.exe -> the one in global.json |
Delete the global.json entry for cmake and just use the one that comes with VS? No workarounds for old cmake necessary. |
Are the ARM64 machines running VS? Notably this is only happening on ARM, so I wonder if that's why they have a different CMake version. |
Yes - the global.json one was creating the issues and I just repro'd. The native-dependencies install feature in arcade is being deprecated anyway, so maybe we should just remove native deps from there? |
That sounds fine to me. We'll just have to confirm that the ARM machines have an up to date version ready to go. |
Looks like Jan got to it before I did :)
No, we always build on Windows x64, same hosts and image/tooling. It's more likely that there's plenty defines in the library that change the use of alignas depending on the architecture targeted. |
Ah, it was not the issue. Now |
Seems like progress though -- now we have too many definitions instead of too few:
|
So the builds passed with that, but there's a lot of tests failing. Not sure if it's the change of queue (so a compiler version change) or the change in cmake logic. I think it's best to split the two changes to unblock other PRs |
For wasm build failure, I think it can be fixed by adding this line: <_MonoCMakeBuildCommand Condition="'$(TargetsBrowser)' == 'true' and '$(HostOS)' == 'windows'">call "$(RepositoryEngineeringDir)native\init-vs-env.cmd" && $(_MonoCMakeBuildCommand)</_MonoCMakeBuildCommand> after this one: Line 493 in 95f7f7a
The effective cc @lambdageek x64 failure is something to do with change in .yml files:
Should it be |
Still working through queue updates -- looks like there's no replacement for the ES queues yet, so I'll just end up reverting those changes. I think the PR to take through first is #65901 |
The Windows.10.Amd64.Server2022.ES.Open queue should be available now |
This reverts commit 2ad8f63ff2eed6dcff6dfab3028516ef0053190d.
be4345e
to
c55c066
Compare
Rebased so that hopefully we can merge this. |
@hoyosjs any reason we shouldn't merge this (if green)? |
It will conflict with the arcade update. I'm happy to say merge this and then we will resolve conflicts. |
Actually - this one needs to be in the monthly rollouts. It drops support for vs 2019. |
Right, but my interpretation of comments on the other one is that VS2022 / Dev17.4 is required to change the CL errors to warnings. |
We will probably have to fold this one into that one, but yeah |
I've folded all these changes onto that one. I'll close this one. |
Two changes: removes vs2019 in favor of vs2022
Removes 19H1 in favor of 21H1, as 19H1 is being expired.