Skip to content

Commit

Permalink
build: warn for GCC versions earlier than 12.2
Browse files Browse the repository at this point in the history
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: nodejs#54081
Refs: nodejs/build#3806
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
  • Loading branch information
targos authored Aug 5, 2024
1 parent 3616ace commit 046343e
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 4 deletions.
4 changes: 2 additions & 2 deletions BUILDING.md
Original file line number Diff line number Diff line change
Expand Up @@ -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) |

Expand Down Expand Up @@ -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.
Expand Down
4 changes: 2 additions & 2 deletions configure.py
Original file line number Diff line number Diff line change
Expand Up @@ -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))
Expand Down

0 comments on commit 046343e

Please sign in to comment.