gyp, win: teach MSVS generator about MARMASM Items by jkunkee · Pull Request #26020 · nodejs/node (original) (raw)
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 andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Conversation17 Commits1 Checks0 Files changed
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
[ Show hidden characters]({{ revealButtonHref }})
The toolchain for ARM64 Windows includes support for assembly code, but with a very different syntax from MASM and NASM. This change teaches GYP how to emit the right XML tags in VCXPROJ files to support compiling assembly files with the new tool.
Checklist
make -j4 test
(UNIX), orvcbuild test
(Windows) passes- tests and/or benchmarks are included
- not yet written
- commit message follows commit guidelines
This was referenced
Feb 9, 2019
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@bnoordhuis, thanks for the look. Since that CI run failed, I've rebased the change. Please do let me know if there's anything else I need to do so this can land.
Contributor
refack left a comment • Loading
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should come via the upstream change (refack/GYP3#23), since we have no way to CI this here.
I had started a CI run that failed to compile with multiple errors of the form:
c:\workspace\node-compile-windows\**.vcxproj(30,3): error MSB4019: The imported project "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\BuildCustomizations\marmasm.props" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
I confirmed this was because VS2017 was not fully updated on that machine and that any updated installation of VS2017 should have that file, whether ARM components were selected or not. I endured VS2017 is updated and receiving automatic updated on all our machines, so we should not see this again.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm ok with getting this from refack/GYP3#23, but anyway this LGTM.
@refack can you please briefly elaborate what should be done here?
The toolchain for ARM64 Windows includes support for assembly code, but with a very different syntax from MASM and NASM. This change teaches GYP how to emit the right XML tags in VCXPROJ files to support compiling assembly files with the new tool.
With this PR, Node can be compiled in ARM64 Windows devices.
@refack since #26620 is still having issues with CI, do you mind if we land this one to have ARM64 support in master? This can simply be overwritten by #26620 when it lands.
@refack since #26620 is still having issues with CI, do you mind if we land this one to have ARM64 support in master? This can simply be overwritten by #26620 when it lands.
In general I'm -1 on landing code that is not covered by our CI ¯\(ツ)/¯
At refack/GYP this code at least is tested for regressions.
Issues and PRs related to the GYP tool and .gyp build files
PRs and issues that require attention from people who are familiar with Python.
labels
This is not code for a Tier 1 or 2 supported platform, but to enable compilation for an experimental platform. This was tested by CI for Tier 1 and 2 platforms, confirming it does not cause any regressions for those.
In any case, this has landed in refack/GYP in refack/GYP3#23, and is already part of #26620.
@refack since this is for an experimental platform is there a reason to block this from landing?
since this is for an experimental platform is there a reason
Forgot it's designated experimental.
joaocgreis pushed a commit that referenced this pull request
The toolchain for ARM64 Windows includes support for assembly code, but with a very different syntax from MASM and NASM. This change teaches GYP how to emit the right XML tags in VCXPROJ files to support compiling assembly files with the new tool.
PR-URL: #26020 Refs: #25998 Reviewed-By: Ben Noordhuis info@bnoordhuis.nl Reviewed-By: João Reis reis@janeasystems.com Reviewed-By: Refael Ackermann refack@gmail.com
This was referenced
Apr 23, 2019
Labels
Issues and PRs related to build files or the CI.
Issues and PRs related to the GYP tool and .gyp build files
PRs and issues that require attention from people who are familiar with Python.
Issues and PRs related to the tools directory.