aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2024-09-17 17:38:35 -0400
committerJason Merrill <jason@redhat.com>2024-10-28 08:55:35 -0400
commita9ec1bc06bd3ccf18f6c7b2f0255ce7878b418b7 (patch)
treed97426d5fa44cd56b1f8286eab61f70bc4aafe13 /gcc
parentf475a31ab4c7f27f6f8c7a418412f9fddc371638 (diff)
downloadgcc-a9ec1bc06bd3ccf18f6c7b2f0255ce7878b418b7.zip
gcc-a9ec1bc06bd3ccf18f6c7b2f0255ce7878b418b7.tar.gz
gcc-a9ec1bc06bd3ccf18f6c7b2f0255ce7878b418b7.tar.bz2
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.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/doc/install.texi20
1 files changed, 13 insertions, 7 deletions
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