Repository navigation
ARM64 compilation broken on VS 2022 17.11 #54898
Description
Activity
- addedwindowsIssues and PRs related to the Windows platform.Issues and PRs related to the Windows platform.buildIssues and PRs related to Node.js builds or CI infrastructure.Issues and PRs related to Node.js builds or CI infrastructure.
on Sep 12, 2024 Is there any good reason for MSVC to start erroring here? If not, I would expect a bug report to Microsoft, not an upstream patch (we can still float something in the mean time)
StefanStojanovic commented
on Sep 13, 2024 ContributorAuthorMore actionsBased on the code being guarded with
#if, I'd say MSVC was not providing__popcntbefore (which it should) and now it does, so technically, this would be a bugfix on the MSFT side.Here is the issue that caused it to be added back in 2020, and another one from 2 weeks that I just saw now and the PR referencing it does the same thing I did upstream in one of the projects.
With all of this in mind, would it be acceptable to land a floating patch in Node.js since the upstream projects are also getting that fix?
Reacted by Michaël ZassoYes, IMO it's always acceptable to land a floating patch when the dependencies have their own release cycles.
Reacted by Stefan StojanovicStefanStojanovic commented
on Sep 13, 2024 ContributorAuthorMore actionsOK, I will open a PR later in the day.
- added a commit that references this issue
on Sep 16, 2024 - added a commit that references this issue
on Sep 19, 2024 - added a commit that references this issue
on Oct 4, 2024 - added a commit that references this issue
on Nov 20, 2024 - added a commit that references this issue
on Jan 30, 2025
What steps will reproduce the bug?
Running
vcbuild.bat arm64.How often does it reproduce? Is there a required condition?
Always with the main branch and VS 17.11.
What is the expected behavior? Why is that the expected behavior?
I expect Node.js to compile.
What do you see instead?
Compilation fails with:
Additional information
As described in nodejs/build#3739 there is a compilation issue with VS 17.10. This was fixed in 17.11 which is currently the latest one. Our CI is pinned at VS 17.9 and now we want to move to vs 17.11, but even though x64 compilation is fixed, ARM64 fails. The issue is from the 2 dependency projects.
I'm pinging @jasnell and @zcbenz since they modified this file before (mostly as a part of a dependency update process). I have a fix for this and it is a straightforward one that uses
_MSC_VERto make sure the problematic code is not included in VS 17.11 and above:Although this could be applied as a floating patch to Node.js I assume we want to have these fixes in the projects upstream.