diff options
author | Jason Merrill <jason@redhat.com> | 2024-09-17 17:38:35 -0400 |
---|---|---|
committer | Thomas Schwinge <thomas@codesourcery.com> | 2024-12-10 08:14:09 +0000 |
commit | f3b1216cc6b8f1341ca635f679e7987c454e263d (patch) | |
tree | 2ddee00792616d62b2583bc3d661dcaaa8fd08b4 /gcc | |
parent | ed1b4d72d9b509c90cc35e9d082eac49352dd930 (diff) | |
download | gcc-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.texi | 27 |
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 |