SCons: Bump minimum supported GCC version to GCC 9

- GCC 7 supports C++17 but seems to have breaking regressions, see #79352.
- GCC 8 broke C++17 guaranteed copy elision support, fixed in 8.4, but...
- GCC 9 is old enough (2022) to use as a baseline and stop dealing with
  unmaintained and less efficient compiler versions.
This commit is contained in:
Rémi Verschelde 2024-05-11 15:19:29 +02:00
parent 916ea002c1
commit a04ba55790
No known key found for this signature in database
GPG Key ID: C3336907360768E1
1 changed files with 5 additions and 15 deletions

View File

@ -621,22 +621,12 @@ if methods.using_gcc(env):
"Couldn't detect compiler version, skipping version checks. " "Couldn't detect compiler version, skipping version checks. "
"Build may fail if the compiler doesn't support C++17 fully." "Build may fail if the compiler doesn't support C++17 fully."
) )
# GCC 8 before 8.4 has a regression in the support of guaranteed copy elision elif cc_version_major < 9:
# which causes a build failure: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86521
elif cc_version_major == 8 and cc_version_minor < 4:
print_error( print_error(
"Detected GCC 8 version < 8.4, which is not supported due to a " "Detected GCC version older than 9, which does not fully support "
"regression in its C++17 guaranteed copy elision support. Use a " "C++17, or has bugs when compiling Godot. Supported versions are 9 "
'newer GCC version, or Clang 6 or later by passing "use_llvm=yes" ' "and later. Use a newer GCC version, or Clang 6 or later by passing "
"to the SCons command line." '"use_llvm=yes" to the SCons command line.'
)
Exit(255)
elif cc_version_major < 7:
print_error(
"Detected GCC version older than 7, which does not fully support "
"C++17. Supported versions are GCC 7, 9 and later. Use a newer GCC "
'version, or Clang 6 or later by passing "use_llvm=yes" to the '
"SCons command line."
) )
Exit(255) Exit(255)
elif cc_version_metadata1 == "win32": elif cc_version_metadata1 == "win32":