-
Notifications
You must be signed in to change notification settings - Fork 30.1k
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
doc: Windows building officially supported only on x64 hosts #21443
Conversation
/CC @nodejs/platform-windows @nodejs/build |
BUILDING.md
Outdated
@@ -42,7 +42,7 @@ platforms in production. | |||
| GNU/Linux | Tier 1 | kernel >= 2.6.32, glibc >= 2.12 | x64, arm | | | |||
| GNU/Linux | Tier 1 | kernel >= 3.10, glibc >= 2.17 | arm64 | | | |||
| macOS | Tier 1 | >= 10.10 | x64 | | | |||
| Windows | Tier 1 | >= Windows 7/2008 R2/2012 R2 | x86, x64 | vs2017 | | |||
| Windows | Tier 1 | >= Windows 7/2008 R2/2012 R2 | x86_x86, x64 | vs2017 | |
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.
What is x86_x86
?
BUILDING.md
Outdated
@@ -89,7 +89,7 @@ Depending on host platform, the selection of toolchains may vary. | |||
|
|||
#### Windows | |||
|
|||
* Visual Studio 2017 or the Build Tools thereof | |||
* Visual Studio 2017 or the "Build Tools" thereof, on an x64 host. |
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.
Why add quotes?
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.
Unless this is supposed to imply that Visual Studio 2017 is not required on a non-x64 host, "on an x64 host" doesn't belong here.
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.
It's a proper product name.
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.
Visual Studio 2017 is a product name, why isn't it in quotes?
BUILDING.md
Outdated
@@ -42,7 +42,7 @@ platforms in production. | |||
| GNU/Linux | Tier 1 | kernel >= 2.6.32, glibc >= 2.12 | x64, arm | | | |||
| GNU/Linux | Tier 1 | kernel >= 3.10, glibc >= 2.17 | arm64 | | | |||
| macOS | Tier 1 | >= 10.10 | x64 | | | |||
| Windows | Tier 1 | >= Windows 7/2008 R2/2012 R2 | x86, x64 | vs2017 | | |||
| Windows | Tier 1 | >= Windows 7/2008 R2/2012 R2 | x64_x86, x64 | vs2017 | |
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.
What is "x64_x86"?
BUILDING.md
Outdated
@@ -89,7 +89,7 @@ Depending on host platform, the selection of toolchains may vary. | |||
|
|||
#### Windows | |||
|
|||
* Visual Studio 2017 or the Build Tools thereof | |||
* Visual Studio 2017 or the "Build Tools" thereof, on an x64 host. |
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.
It's a proper product name.
BUILDING.md
Outdated
@@ -42,7 +42,7 @@ platforms in production. | |||
| GNU/Linux | Tier 1 | kernel >= 2.6.32, glibc >= 2.12 | x64, arm | | | |||
| GNU/Linux | Tier 1 | kernel >= 3.10, glibc >= 2.17 | arm64 | | | |||
| macOS | Tier 1 | >= 10.10 | x64 | | | |||
| Windows | Tier 1 | >= Windows 7/2008 R2/2012 R2 | x86, x64 | vs2017 | | |||
| Windows | Tier 1 | >= Windows 7/2008 R2/2012 R2 | x64_x86, x64 | vs2017 | |
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.
x86_x86
was a typo
x64_x86
is Microsoft designation for cross compiling x86 (32bit) target, on an x64(64bit) host.
calling: "C:\Program Files\VSCommunity2017\VC\\Auxiliary\Build\vcvarsall.bat" x86_x86
[ERROR:vcvarsall.bat] Invalid argument found : x86_x86
[ERROR:vcvarsall.bat] Error in script usage. The correct usage is:
Syntax:
vcvarsall.bat [arch] [platform_type] [winsdk_version] [-vcvars_ver=vc_version]
where :
[arch]: x86 | amd64 | x86_amd64 | x86_arm | x86_arm64 | amd64_x86 | amd64_arm | amd64_arm64
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.
"x64_x86" is a Microsoft-specific thing, it will confuse people. They expect the Architectures column to list the architecture on which Node runs, not how it's built.
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.
I also think this is confusing. IMHO we should keep this as it is, and add the note about x64
host.
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.
I'm -1 on x64_x86
. IMHO we should put note about only support compilation on 64bit machines in the "Notes" column
@seishun @bzoz @mmarchini @jasnell PTAL. |
BUILDING.md
Outdated
@@ -89,7 +92,7 @@ Depending on host platform, the selection of toolchains may vary. | |||
|
|||
#### Windows | |||
|
|||
* Visual Studio 2017 or the Build Tools thereof | |||
* "Visual Studio 2017" or the "Build Tools" thereof, on a 64 bit host. |
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.
I should have been more explicit: please don't put product names in quotes.
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.
We actually don't test with the Build Tools package anymore. And we only use Windows SDK 10.
BUILDING.md
Outdated
*Note*: On Windows, running Node.js in windows terminal emulators like `mintty` | ||
requires the usage of [winpty](https://github.com/rprichard/winpty) for | ||
Node's tty channels to work correctly (e.g. `winpty node.exe script.js`). | ||
<em id="fn2">2</em>: Teir 1 support for building on Windows is only on 64 bit |
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.
Teir -> Tier
BUILDING.md
Outdated
<em id="fn2">2</em>: Teir 1 support for building on Windows is only on 64 bit | ||
hosts. Support is experimental for 32 bit hosts. | ||
|
||
<em id="fn3">3</em>: On Windows, running Node.js in windows terminal emulators |
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.
windows -> Windows
BUILDING.md
Outdated
|
||
<em id="fn3">3</em>: On Windows, running Node.js in windows terminal emulators | ||
like `mintty` requires the usage of [winpty](https://github.com/rprichard/winpty) | ||
for Node's tty channels to work correctly (e.g. `winpty node.exe script.js`). |
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.
Node's
-> Node.js's
? (A bit awkward, but it seems we try to be consistent here.)
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.
How about Node's
-> the
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.
Seems good.
@@ -89,7 +92,7 @@ Depending on host platform, the selection of toolchains may vary. | |||
|
|||
#### Windows | |||
|
|||
* Visual Studio 2017 or the Build Tools thereof | |||
* Visual Studio 2017 with the Windows 10 SDK on a 64 bit host. |
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.
This is under "Supported Toolchains". There is no need to mention Windows 10 SDK or bitness here. The specific requirements are listed in a separate section. Why change this line at all?
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.
IMHO SDK and host bitness are parts of the toolchain 🤷♂️
I'm on vacation, so I can't review this. I'm dismissing my -1 to not block this
Notes look really good FWIW. |
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.
Still LGTM. Nice job improving the notes!
2bc2c58
to
796d510
Compare
Since we are CI testing on x64 hosts, we can only commit to x64 hosts. PR-URL: nodejs#21443 Refs: nodejs#21402 Refs: nodejs#21437 Reviewed-By: James M Snell <[email protected]> Reviewed-By: Matheus Marchini <[email protected]> Reviewed-By: João Reis <[email protected]>
Since we are CI testing on x64 hosts, we can only commit to x64 hosts. PR-URL: #21443 Refs: #21402 Refs: #21437 Reviewed-By: James M Snell <[email protected]> Reviewed-By: Matheus Marchini <[email protected]> Reviewed-By: João Reis <[email protected]>
Since we are CI testing on x64 hosts, we can only commit to x64 hosts. PR-URL: #21443 Refs: #21402 Refs: #21437 Reviewed-By: James M Snell <[email protected]> Reviewed-By: Matheus Marchini <[email protected]> Reviewed-By: João Reis <[email protected]>
Since we are CI testing on x64 hosts, we can only commit to x64 hosts.
We could add x86_x86 and x86_x64 as
Experimental
, to indicate willingness to accept community PRs.Ref: #21402
Ref: #21437
Checklist
make -j4 test
(UNIX), orvcbuild test
(Windows) passes