From c1bcdbcf79bd56576085146dec4bfcbe28af4882 Mon Sep 17 00:00:00 2001 From: Richard Lau Date: Sat, 25 Feb 2023 18:38:43 +0000 Subject: [PATCH] build: warn for gcc versions earlier than 10.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Update the warning threshold for gcc to 10.1 starting from Node.js 20. Builds can still proceed with earlier versions of gcc, but are not guaranteed to work. PR-URL: https://github.com/nodejs/node/pull/46806 Refs: https://github.com/nodejs/node/discussions/45892 Reviewed-By: Tobias Nießen Reviewed-By: Michael Dawson Reviewed-By: Stewart X Addison Reviewed-By: Darshan Sen Reviewed-By: Mohammed Keyvanzadeh Reviewed-By: Luigi Pinca Reviewed-By: Michaël Zasso --- BUILDING.md | 4 ++-- configure.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/BUILDING.md b/BUILDING.md index a3ddd42fd91..3e519343a3c 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -152,7 +152,7 @@ Depending on the host platform, the selection of toolchains may vary. | Operating System | Compiler Versions | | ---------------- | -------------------------------------------------------------- | -| Linux | GCC >= 8.3 | +| Linux | GCC >= 10.1 | | Windows | Visual Studio >= 2019 with the Windows 10 SDK on a 64-bit host | | macOS | Xcode >= 11 (Apple LLVM >= 11) | @@ -223,7 +223,7 @@ The Node.js project supports Python >= 3 for building and testing. #### Unix prerequisites -* `gcc` and `g++` >= 8.3 or newer +* `gcc` and `g++` >= 10.1 or newer * GNU Make 3.81 or newer * Python >=3.6 <=3.11 (see note above) * For test coverage, your Python installation must include pip. diff --git a/configure.py b/configure.py index d7765ef6bd9..1e3a59dd711 100755 --- a/configure.py +++ b/configure.py @@ -1032,8 +1032,8 @@ def check_compiler(o): ('clang ' if is_clang else '', CXX, version_str)) if not ok: warn('failed to autodetect C++ compiler version (CXX=%s)' % CXX) - elif clang_version < (8, 0, 0) if is_clang else gcc_version < (8, 3, 0): - warn('C++ compiler (CXX=%s, %s) too old, need g++ 8.3.0 or clang++ 8.0.0' % + elif clang_version < (8, 0, 0) if is_clang else gcc_version < (10, 1, 0): + warn('C++ compiler (CXX=%s, %s) too old, need g++ 10.1.0 or clang++ 8.0.0' % (CXX, version_str)) ok, is_clang, clang_version, gcc_version = try_check_compiler(CC, 'c')