From 4daedf8b1815ae3367b12781c7870491c97c87d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Sun, 28 Jul 2024 13:14:17 +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. --- BUILDING.md | 4 ++-- configure.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/BUILDING.md b/BUILDING.md index c0fd9468b533ec..2a3b34f7eef75a 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -151,7 +151,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 @@ The Node.js project supports Python >= 3 for building and testing. #### 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 5b53fd0ea87479..ca32d20394bb22 100755 --- a/configure.py +++ b/configure.py @@ -1172,8 +1172,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))