-
Notifications
You must be signed in to change notification settings - Fork 30k
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
Enabling ClangCL compilation testing #55784
Conversation
It's causing linker errors with node.lib in node-gyp and potentially breaks other 3rd party tools
Review requested:
|
This comment was marked as off-topic.
This comment was marked as off-topic.
FYI marked as ready for review so people do not consider it WIP and review it. Still not planning to land it like this, but I want to get the discussion started. |
Changes SGTM |
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.
LGTM
Disables trying to compile with ClangCL on Windows. Was required to enable native tests in the Node.js CI for the ClangCL produced binaries. Refs: nodejs/node#55784
Can someone who already approved this approve my PR in node-gyp with the changes already included here (I will port it to Node.js afterward so we do not wait for the next node-gyp release). The CI failures in that PR are not connected to that and the fix for that has landed in Thanks in advance |
Disables trying to compile with ClangCL on Windows. Was required to enable native tests in the Node.js CI for the ClangCL produced binaries. Refs: nodejs/node#55784
Can someone who already approved this approve my other PR with part of changes from here (the ones from node-gyp). Thanks in advance! |
Disables trying to compile with ClangCL on Windows. Was required to enable native tests in the Node.js CI for the ClangCL produced binaries. Refs: nodejs/node#55784
Prohibiting ClangCL would prevent nodejs/llnode from working on Windows, which, as an |
Thanks for the information, I wasn't aware of this. I've investigated it a bit and will open an issue in |
The best solution is probably not to prohibit ClangCL, but to prevent it from being inherited as the default from Node.js |
My understanding is that it picks clang variable from the Also, from what I saw, |
It's causing linker errors with node.lib in node-gyp and potentially breaks other 3rd party tools PR-URL: #56238 Refs: #55784 Reviewed-By: Michaël Zasso <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: Luigi Pinca <[email protected]>
Closing this since all the changes from here landed. |
This PR is a draft to discuss the changes needed to run test jobs in the CI for the ClangCL-produced binaries. It is not expected to land like this, just to discuss before opening production-ready PRs:
config.variables.clang
is set to 1, which makes node-gyp generate project files for ClangCL. While we'd like to enable this, that is currently not the priority so for now enforcing MSVC would be the way to go the way I see it. The changes increate-config-gypi.js
would be done as a PR in node-gyp and then floated in Node.js until the next node-gyp update.V8_PRESERVE_MOST
on Windows. We already have something similar forV8_NODISCARD
as a floating patch, so it should not be a problem as I see it. If left, this results in functions that use it having__swift_2
calling conventions rather than the expected__cdecl
. This was noticed incppgc-object
native suites test. This change, if agreed upon, would be come one of our V8 floating patches we use on each V8 update.Tagging relative teams/people: @nodejs/platform-windows @nodejs/node-gyp @targos