0
0
mirror of https://github.com/nodejs/node.git synced 2024-11-24 12:10:08 +01:00

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 <luigipinca@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Richard Lau <rlau@redhat.com>
This commit is contained in:
Michaël Zasso 2024-08-05 15:25:44 +02:00 committed by GitHub
parent 3616ace637
commit 046343ea9d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 4 additions and 4 deletions

View File

@ -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.

View File

@ -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))