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 }})

jkunkee

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

This was referenced

Feb 9, 2019

bnoordhuis

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jkunkee

@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.

refack

Contributor

@refack 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.

@jkunkee

@joaocgreis

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.

joaocgreis

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.

@BridgeAR

@refack can you please briefly elaborate what should be done here?

@jkunkee

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.

@BridgeAR

@refack

@joaocgreis

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.

@nodejs-github-bot

@refack

@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.

@refack refack added gyp

Issues and PRs related to the GYP tool and .gyp build files

python

PRs and issues that require attention from people who are familiar with Python.

labels

Apr 11, 2019

@joaocgreis

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?

@refack

since this is for an experimental platform is there a reason

Forgot it's designated experimental.

refack

joaocgreis pushed a commit that referenced this pull request

Apr 11, 2019

@jkunkee @joaocgreis

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

@joaocgreis

This was referenced

Apr 23, 2019

Labels

build

Issues and PRs related to build files or the CI.

gyp

Issues and PRs related to the GYP tool and .gyp build files

python

PRs and issues that require attention from people who are familiar with Python.

tools

Issues and PRs related to the tools directory.