aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2024-09-17 17:38:35 -0400
committerThomas Schwinge <thomas@codesourcery.com>2024-12-10 08:14:09 +0000
commitf3b1216cc6b8f1341ca635f679e7987c454e263d (patch)
tree2ddee00792616d62b2583bc3d661dcaaa8fd08b4 /gcc
parented1b4d72d9b509c90cc35e9d082eac49352dd930 (diff)
downloadgcc-f3b1216cc6b8f1341ca635f679e7987c454e263d.zip
gcc-f3b1216cc6b8f1341ca635f679e7987c454e263d.tar.gz
gcc-f3b1216cc6b8f1341ca635f679e7987c454e263d.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.texi27
1 files changed, 13 insertions, 14 deletions
diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi
index 1732330..d8414fd 100644
--- a/gcc/doc/install.texi
+++ b/gcc/doc/install.texi
@@ -222,20 +222,19 @@ 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, with earlier GCC versions you
-might run into implementation bugs.
-
-Versions of GCC prior to 11 also allow bootstrapping with an ISO C++98
-compiler, versions of GCC prior to 4.8 also allow bootstrapping with a
-ISO C89 compiler, and versions of GCC prior to 3.4 also allow
-bootstrapping with a traditional (K&R) C compiler.
-
-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
-frontends other than C might use GCC extensions.
+@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 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.
@item C standard library and headers