From a9ec1bc06bd3ccf18f6c7b2f0255ce7878b418b7 Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Tue, 17 Sep 2024 17:38:35 -0400 Subject: build: update bootstrap req to C++14 We moved to a bootstrap requirement of C++11 in GCC 11, 8 years after support was stable in GCC 4.8. It is now 8 years since C++14 was the default mode in GCC 6 (and 9 years since support was complete in GCC 5), and we have a few bits of optional C++14 code in the compiler, so it seems a good time to update the bootstrap requirement again. The big benefit of the change is the greater constexpr power, but C++14 also added variable templates, generic lambdas, lambda init-capture, binary literals, and numeric literal digit separators. C++14 was feature-complete in GCC 5, and became the default in GCC 6. 5.4.0 bootstraps trunk correctly; trunk stage1 built with 5.3.0 breaks in eh_data_format_name due to PR69995. gcc/ChangeLog: * doc/install.texi (Prerequisites): Update to C++14. ChangeLog: * configure.ac: Update requirement to C++14. * configure: Regenerate. --- gcc/doc/install.texi | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) (limited to 'gcc') diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi index b7c14e8..b562b0f 100644 --- a/gcc/doc/install.texi +++ b/gcc/doc/install.texi @@ -222,17 +222,23 @@ described below. @heading Tools/packages necessary for building GCC @table @asis -@item ISO C++11 compiler -Necessary to bootstrap GCC. GCC 4.8.3 or newer has sufficient -support for used C++11 features. +@item ISO C++14 compiler +Necessary to bootstrap GCC. GCC 5.4 or newer has sufficient support +for used C++14 features. -Versions of GCC prior to 11 also allow bootstrapping with an ISO C++98 -compiler, and versions of GCC prior to 4.8 also allow bootstrapping with -an ISO C89 compiler. +Versions of GCC prior to 15 allow bootstrapping with an ISO C++11 +compiler, versions prior to 11 allow bootstrapping with an ISO C++98 +compiler, and versions prior to 4.8 allow bootstrapping with an ISO +C89 compiler. + +If you need to build an intermediate version of GCC in order to +bootstrap current GCC, consider GCC 9.5: it can build the current Ada +and D compilers, and was also the version that declared C++17 support +stable. To build all languages in a cross-compiler or other configuration where 3-stage bootstrap is not performed, you need to start with an existing -GCC binary (version 4.8.3 or later) because source code for language +GCC binary (of a new enough version) because source code for language frontends other than C might use GCC extensions. @item C standard library and headers -- cgit v1.1