As mentioned in PR 90770, this is a patch that Debian have been carrying for some time. The additional unoptimized copies of libstdc++ libs that get built during each stage are never going to be used, so don't bother building them.
For a profiled bootstrap this means we won't train the compiler on the unoptimized library code with assertions enabled, but that doesn't seem like a big problem, as the same code has already been compiled once for the main libstdc++ library. * acinclude.m4 (GLIBCXX_ENABLE_DEBUG): Only do debug build for final stage of bootstrap. * configure: Regenerate. Tested x86_64-linux, committed to trunk.
commit 6473c6e506298bba6111df73fc9810642113a321 Author: redi <redi@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Thu Jun 20 14:17:57 2019 +0000 Skip libstdc++ debug build in early bootstrap stages As mentioned in PR 90770, this is a patch that Debian have been carrying for some time. The additional unoptimized copies of libstdc++ libs that get built during each stage are never going to be used, so don't bother building them. For a profiled bootstrap this means we won't train the compiler on the unoptimized library code with assertions enabled, but that doesn't seem like a big problem, as the same code has already been compiled once for the main libstdc++ library. * acinclude.m4 (GLIBCXX_ENABLE_DEBUG): Only do debug build for final stage of bootstrap. * configure: Regenerate. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272509 138bc75d-0d04-0410-961f-82ee72b054a4 diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4 index 19e9f14b0f5..fad390ba322 100644 --- a/libstdc++-v3/acinclude.m4 +++ b/libstdc++-v3/acinclude.m4 @@ -2899,8 +2899,20 @@ dnl Where DEFAULT is either `yes' or `no'. dnl AC_DEFUN([GLIBCXX_ENABLE_DEBUG], [ AC_MSG_CHECKING([for additional debug build]) + skip_debug_build= GLIBCXX_ENABLE(libstdcxx-debug,$1,,[build extra debug library]) - AC_MSG_RESULT($enable_libstdcxx_debug) + if test x$enable_libstdcxx_debug = xyes; then + if test -f $toplevel_builddir/../stage_final \ + && test -f $toplevel_builddir/../stage_current; then + stage_final=`cat $toplevel_builddir/../stage_final` + stage_current=`cat $toplevel_builddir/../stage_current` + if test x$stage_current != x$stage_final ; then + skip_debug_build=" (skipped for bootstrap stage $stage_current)" + enable_libstdcxx_debug=no + fi + fi + fi + AC_MSG_RESULT($enable_libstdcxx_debug$skip_debug_build) GLIBCXX_CONDITIONAL(GLIBCXX_BUILD_DEBUG, test $enable_libstdcxx_debug = yes) ])