mirror of
https://github.com/zebrajr/node.git
synced 2026-01-15 12:15:26 +00:00
build: limit assembler version check on x86
The current openssl checks assembler version only x86_64 or ia32 target arch for use of AES-NI, AVX and AVX2. This requires --openssl-no-asm option during configure when an older assembler version is found only on x86_64 or ia32. PR-URL: https://github.com/nodejs/node/pull/20226 Fixes: https://github.com/nodejs/node/issues/19944 Refs: https://github.com/nodejs/node/pull/20217 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com> Reviewed-By: Myles Borins <myles.borins@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com>
This commit is contained in:
committed by
James M Snell
parent
de96899f23
commit
3bcd8576fc
@@ -94,14 +94,16 @@ Depending on host platform, the selection of toolchains may vary.
|
||||
#### OpenSSL asm support
|
||||
|
||||
OpenSSL-1.1.0 requires the following asssembler version for use of asm
|
||||
support.
|
||||
support on x86_64 and ia32.
|
||||
|
||||
* gas (GNU assembler) version 2.23 or higher
|
||||
* xcode version 5.0 or higher
|
||||
* llvm version 3.3 or higher
|
||||
* nasm version 2.10 or higher in Windows
|
||||
|
||||
Otherwise, `--openssl-no-asm` is added with warning in configure.
|
||||
Otherwise `configure` will fail with an error. This can be avoided by
|
||||
either providing a newer assembler as per the list above or by
|
||||
using the `--openssl-no-asm` flag.
|
||||
|
||||
*Note:* The forthcoming OpenSSL-1.1.1 will require higher
|
||||
version. Please refer
|
||||
|
||||
4
configure
vendored
4
configure
vendored
@@ -1106,6 +1106,8 @@ def configure_openssl(o):
|
||||
o['defines'] += ['NODE_WITHOUT_NODE_OPTIONS']
|
||||
|
||||
if not options.shared_openssl and not options.openssl_no_asm:
|
||||
is_x86 = 'x64' in variables['target_arch'] or 'ia32' in variables['target_arch']
|
||||
|
||||
# supported asm compiler for AVX2. See https://github.com/openssl/openssl/
|
||||
# blob/OpenSSL_1_1_0-stable/crypto/modes/asm/aesni-gcm-x86_64.pl#L52-L69
|
||||
openssl110_asm_supported = \
|
||||
@@ -1114,7 +1116,7 @@ def configure_openssl(o):
|
||||
('llvm_version' in variables and float(variables['llvm_version']) >= 3.3) or \
|
||||
('nasm_version' in variables and float(variables['nasm_version']) >= 2.10)
|
||||
|
||||
if not openssl110_asm_supported:
|
||||
if is_x86 and not openssl110_asm_supported:
|
||||
error('''Did not find a new enough assembler, install one or build with
|
||||
--openssl-no-asm.
|
||||
Please refer to BUILDING.md''')
|
||||
|
||||
Reference in New Issue
Block a user