From 046343ea9dbcec88788a9cf1c8d851b28c722335 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Mon, 5 Aug 2024 15:25:44 +0200 Subject: [PATCH] build: warn for GCC versions earlier than 12.2 Update the warning threshold for GCC to 12.2 starting from Node.js 23. Builds can still proceed with earlier versions of GCC, but are not guaranteed to work. PR-URL: https://github.com/nodejs/node/pull/54081 Refs: https://github.com/nodejs/build/issues/3806 Reviewed-By: Luigi Pinca Reviewed-By: James M Snell Reviewed-By: Richard Lau --- BUILDING.md | 4 ++-- configure.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/BUILDING.md b/BUILDING.md index 3c5b71dc211..62bb0c075b9 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -150,7 +150,7 @@ Depending on the host platform, the selection of toolchains may vary. | Operating System | Compiler Versions | | ---------------- | -------------------------------------------------------------- | -| Linux | GCC >= 10.1 | +| Linux | GCC >= 12.2 | | Windows | Visual Studio >= 2022 with the Windows 10 SDK on a 64-bit host | | macOS | Xcode >= 13 (Apple LLVM >= 12) | @@ -230,7 +230,7 @@ Consult previous versions of this document for older versions of Node.js: #### Unix prerequisites -* `gcc` and `g++` >= 10.1 or newer +* `gcc` and `g++` >= 12.2 or newer * GNU Make 3.81 or newer * [A supported version of Python][Python versions] * For test coverage, your Python installation must include pip. diff --git a/configure.py b/configure.py index 351bcf99ea9..22ea9d01512 100755 --- a/configure.py +++ b/configure.py @@ -1178,8 +1178,8 @@ def check_compiler(o): print_verbose(f"Detected {'clang ' if is_clang else ''}C++ compiler (CXX={CXX}) version: {version_str}") if not ok: warn(f'failed to autodetect C++ compiler version (CXX={CXX})') - elif clang_version < (8, 0, 0) if is_clang else gcc_version < (10, 1, 0): - warn(f'C++ compiler (CXX={CXX}, {version_str}) too old, need g++ 10.1.0 or clang++ 8.0.0') + elif clang_version < (8, 0, 0) if is_clang else gcc_version < (12, 2, 0): + warn(f'C++ compiler (CXX={CXX}, {version_str}) too old, need g++ 12.2.0 or clang++ 8.0.0') ok, is_clang, clang_version, gcc_version = try_check_compiler(CC, 'c') version_str = ".".join(map(str, clang_version if is_clang else gcc_version))