From 6ae1e3f6b975a95f8ca92cf829f300f0259f2f6e Mon Sep 17 00:00:00 2001 From: Misty De Meo Date: Wed, 6 Jun 2018 12:28:42 -0700 Subject: [PATCH] build: fix configure script for double-digits Compare versions using tuples instead of strings so that it is future-proofed against versions that contain a number that is more than one digit. PR-URL: https://github.com/nodejs/node/pull/21183 Reviewed-By: Richard Lau Reviewed-By: Rich Trott Reviewed-By: Joyee Cheung Reviewed-By: Jeremiah Senkpiel Reviewed-By: Trivikram Kamat --- configure | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/configure b/configure index dcb8b03ebc5f33..f72e9123b90b0f 100755 --- a/configure +++ b/configure @@ -612,8 +612,8 @@ def try_check_compiler(cc, lang): values = (proc.communicate()[0].split() + ['0'] * 7)[0:7] is_clang = values[0] == '1' - gcc_version = '%s.%s.%s' % tuple(values[1:1+3]) - clang_version = '%s.%s.%s' % tuple(values[4:4+3]) + gcc_version = tuple(values[1:1+3]) + clang_version = tuple(values[4:4+3]) return (True, is_clang, clang_version, gcc_version) @@ -710,13 +710,13 @@ def check_compiler(o): ok, is_clang, clang_version, gcc_version = try_check_compiler(CXX, 'c++') if not ok: warn('failed to autodetect C++ compiler version (CXX=%s)' % CXX) - elif clang_version < '3.4.2' if is_clang else gcc_version < '4.9.4': + elif clang_version < (3, 4, 2) if is_clang else gcc_version < (4, 9, 4): warn('C++ compiler too old, need g++ 4.9.4 or clang++ 3.4.2 (CXX=%s)' % CXX) ok, is_clang, clang_version, gcc_version = try_check_compiler(CC, 'c') if not ok: warn('failed to autodetect C compiler version (CC=%s)' % CC) - elif not is_clang and gcc_version < '4.2.0': + elif not is_clang and gcc_version < (4, 2, 0): # clang 3.2 is a little white lie because any clang version will probably # do for the C bits. However, we might as well encourage people to upgrade # to a version that is not completely ancient.