From 6c205aba00d8a3ebad95eec60b0fcee46484cf4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Wed, 9 Oct 2019 10:36:52 +0200 Subject: [PATCH] build: always use strings for compiler version in gyp files If GYP finds a string variable that can be converted to an integer, it will do it when the variable is expanded. Use "0.0" instead of "0" to force strings and be able to use comparison operations such as `gas_version >= "2.26"` in Python 3. PR-URL: https://github.com/nodejs/node/pull/29897 Reviewed-By: Christian Clauss Reviewed-By: Sam Roberts --- configure.py | 12 ++++++------ deps/openssl/openssl.gyp | 6 +++--- deps/openssl/openssl_common.gypi | 2 +- node.gyp | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/configure.py b/configure.py index 0b6f67f68cc..dd93d56e552 100755 --- a/configure.py +++ b/configure.py @@ -703,7 +703,7 @@ def get_version_helper(cc, regexp): if match: return match.group(2) else: - return '0' + return '0.0' def get_nasm_version(asm): try: @@ -714,7 +714,7 @@ def get_nasm_version(asm): warn('''No acceptable ASM compiler found! Please make sure you have installed NASM from https://www.nasm.us and refer BUILDING.md.''') - return '0' + return '0.0' match = re.match(r"NASM version ([2-9]\.[0-9][0-9]+)", to_utf8(proc.communicate()[0])) @@ -722,7 +722,7 @@ def get_nasm_version(asm): if match: return match.group(1) else: - return '0' + return '0.0' def get_llvm_version(cc): return get_version_helper( @@ -755,7 +755,7 @@ def get_gas_version(cc): return match.group(1) else: warn('Could not recognize `gas`: ' + gas_ret) - return '0' + return '0.0' # Note: Apple clang self-reports as clang 4.2.0 and gcc 4.2.1. It passes # the version check more by accident than anything else but a more rigorous @@ -766,7 +766,7 @@ def check_compiler(o): if not options.openssl_no_asm and options.dest_cpu in ('x86', 'x64'): nasm_version = get_nasm_version('nasm') o['variables']['nasm_version'] = nasm_version - if nasm_version == 0: + if nasm_version == '0.0': o['variables']['openssl_no_asm'] = 1 return @@ -785,7 +785,7 @@ def check_compiler(o): # to a version that is not completely ancient. warn('C compiler too old, need gcc 4.2 or clang 3.2 (CC=%s)' % CC) - o['variables']['llvm_version'] = get_llvm_version(CC) if is_clang else 0 + o['variables']['llvm_version'] = get_llvm_version(CC) if is_clang else '0.0' # Need xcode_version or gas_version when openssl asm files are compiled. if options.without_ssl or options.openssl_no_asm or options.shared_openssl: diff --git a/deps/openssl/openssl.gyp b/deps/openssl/openssl.gyp index 60f6ee03a7a..0ca75156117 100644 --- a/deps/openssl/openssl.gyp +++ b/deps/openssl/openssl.gyp @@ -1,8 +1,8 @@ { 'variables': { - 'gas_version%': 0, - 'llvm_version%': 0, - 'nasm_version%': 0, + 'gas_version%': '0.0', + 'llvm_version%': '0.0', + 'nasm_version%': '0.0', }, 'targets': [ { diff --git a/deps/openssl/openssl_common.gypi b/deps/openssl/openssl_common.gypi index c4b95c20aea..67640a6325e 100644 --- a/deps/openssl/openssl_common.gypi +++ b/deps/openssl/openssl_common.gypi @@ -64,7 +64,7 @@ 'TERMIOS', ], 'conditions': [ - [ 'llvm_version==0', { + [ 'llvm_version=="0.0"', { 'cflags': ['-Wno-old-style-declaration',], }], ], diff --git a/node.gyp b/node.gyp index ced6fbc954c..79969a4c834 100644 --- a/node.gyp +++ b/node.gyp @@ -290,7 +290,7 @@ '-Wl,-bnoerrmsg', ], }], - ['(OS=="linux" or OS=="mac") and llvm_version!=0', { + ['OS in ("linux", "mac") and llvm_version != "0.0"', { 'libraries': ['-latomic'], }], ],