https://github.com/nodejs/node/blob/master/BUILDING.md#windows-1 states:
Optional (for OpenSSL assembler modules): the NetWide Assembler, if not installed in the default location it needs to be manually added to PATH.
But vcbuild test just aborts without NASM:
j:\temp\node-master>vcbuild test
Looking for Python 2.x
Looking for NASM
Could not find NASM, it will not be used.
j:\temp\node-master>
See also: https://github.com/nodejs/node/blob/master/BUILDING.md#openssl-asm-support
cc @nodejs/build @nodejs/platform-windows
This is a question/issue for @shigeki and @joaocgreis and comes in as a result of the openssl 1.1.0 upgrade. Perhaps it's simply an matter of removing "Optional" from the docs?
I missed to check vcbuild.bat without nasm. It can be fallbacked to openssl_no_asm:1 in configure in case that nasm is not installed. I'm going to fix this.
What about making nasm mandatory and adding a no-asm switch to vcbuild.bat (and updating the error message to tell the user about the switch)?
A no-asm build causes pretty steep performance regressions so it should arguably be opt-in rather than quietly falling back on that.
I have no preference to fallback automatically with no-asm build or to opt-in.
I made PR for the latter in https://github.com/nodejs/node/pull/19943.
The same issue exist in the assembler version check on UNIX and Mac. I will submit a new issue for it.
Most helpful comment
What about making nasm mandatory and adding a no-asm switch to vcbuild.bat (and updating the error message to tell the user about the switch)?
A no-asm build causes pretty steep performance regressions so it should arguably be opt-in rather than quietly falling back on that.