build: warn for gcc versions earlier than 10.1

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 <tniessen@tnie.de>
Reviewed-By: Michael Dawson <midawson@redhat.com>
Reviewed-By: Stewart X Addison <sxa@redhat.com>
Reviewed-By: Darshan Sen <raisinten@gmail.com>
Reviewed-By: Mohammed Keyvanzadeh <mohammadkeyvanzade94@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
This commit is contained in:
Richard Lau 2023-02-25 18:38:43 +00:00 committed by GitHub
parent 78b911ddaf
commit c1bcdbcf79
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 4 deletions

View File

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

View File

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