Skip to content
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

gyp, win: teach MSVS generator about MARMASM Items #26020

Closed
wants to merge 1 commit into from

Conversation

jkunkee
Copy link
Contributor

@jkunkee jkunkee commented Feb 9, 2019

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), or vcbuild test (Windows) passes
  • tests and/or benchmarks are included
    • not yet written
  • commit message follows commit guidelines

@nodejs-github-bot nodejs-github-bot added build Issues and PRs related to build files or the CI. tools Issues and PRs related to the tools directory. labels Feb 9, 2019
Copy link
Member

@bnoordhuis bnoordhuis left a comment

Choose a reason for hiding this comment

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

tools/gyp/pylib/gyp/generator/msvs.py Outdated Show resolved Hide resolved
@jkunkee
Copy link
Contributor Author

jkunkee commented Feb 20, 2019

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

@jkunkee jkunkee mentioned this pull request Feb 25, 2019
2 tasks
Copy link
Contributor

@refack refack left a comment

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
Copy link
Contributor Author

jkunkee commented Mar 4, 2019

Understood.

When I submitted this PR, my understanding was that there are three copies of GYP:

refack/GYP had not yet become the centralized upstream of GYP for Node.js.

In turn, then, I made three PRs:

As I understand it, refack/GYP is becoming the new upstream. Since refack/GYP3#23 has already been merged, this PR can be closed as soon as the Node.js copy of GYP is updated to the new upstream.

@joaocgreis
Copy link
Member

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.

Copy link
Member

@joaocgreis joaocgreis left a comment

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
Copy link
Member

BridgeAR commented Mar 5, 2019

@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.
@BridgeAR
Copy link
Member

Ping @refack

@refack
Copy link
Contributor

refack commented Mar 13, 2019

Superseded by #26620

@jkunkee jkunkee closed this Mar 14, 2019
@joaocgreis
Copy link
Member

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.

@joaocgreis joaocgreis reopened this Apr 11, 2019
@nodejs-github-bot
Copy link
Collaborator

@refack
Copy link
Contributor

refack commented Apr 11, 2019

@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
Copy link
Member

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
Copy link
Contributor

refack commented Apr 11, 2019

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 Apr 11, 2019
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
Copy link
Member

Landed in 06c10cd

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
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.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants