Skip to content

Commit

Permalink
build: update bootstrap req to C++14
Browse files Browse the repository at this point in the history
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:

	* .github/log_expected_warnings: Update.
	* configure.ac: Update requirement to C++14.
	* configure: Regenerate.
  • Loading branch information
jicama authored and thesamesam committed Dec 6, 2024
1 parent 1995c83 commit da7b633
Show file tree
Hide file tree
Showing 4 changed files with 797 additions and 78 deletions.
4 changes: 2 additions & 2 deletions .github/log_expected_warnings
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@
../../gcc/expmed.cc:1845:45: warning: ‘*(unsigned int*)((char*)&imode + offsetof(scalar_int_mode, scalar_int_mode::m_mode))’ may be used uninitialized in this function [-Wmaybe-uninitialized]
../../gcc/fold-const.cc:384:13: warning: format not a string literal and no format arguments [-Wformat-security]
../../gcc/gcc.cc:10668:12: warning: ignoring return value of ‘ssize_t read(int, void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
../../gcc/gcc.cc:7897:9: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
../../gcc/gcc.cc:2412:30: warning: too many arguments for format [-Wformat-extra-args]
../../gcc/gcc.cc:2413:32: warning: unknown conversion type character ‘t’ in format [-Wformat=]
../../gcc/gcc.cc:2432:30: warning: too many arguments for format [-Wformat-extra-args]
Expand All @@ -110,7 +111,6 @@
../../gcc/gcc.cc:2539:51: warning: unknown conversion type character ‘t’ in format [-Wformat=]
../../gcc/gcc.cc:2553:22: warning: too many arguments for format [-Wformat-extra-args]
../../gcc/gcc.cc:2553:51: warning: unknown conversion type character ‘t’ in format [-Wformat=]
../../gcc/gcc.cc:7897:9: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
../../gcc/gcc.cc:7900:13: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
../../gcc/gcc.cc:7901:13: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
../../gcc/gcc.cc:7903:9: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
Expand Down Expand Up @@ -150,5 +150,5 @@ gengtype-lex.cc:357:15: warning: this statement may fall through [-Wimplicit-fal
gengtype-lex.cc:357:15: warning: this statement may fall through [-Wimplicit-fallthrough=]
gengtype-lex.cc:357:15: warning: this statement may fall through [-Wimplicit-fallthrough=]
gengtype-lex.cc:357:15: warning: this statement may fall through [-Wimplicit-fallthrough=]
install.texi:2231: warning: `.' or `,' must follow @xref, not f
install.texi:2230: warning: `.' or `,' must follow @xref, not f
libtool: install: warning: remember to run `libtool --finish /usr/local/libexec/gcc/x86_64-pc-linux-gnu/14.0.1'
Loading

0 comments on commit da7b633

Please sign in to comment.