[PATCH] Skip libstdc++ debug build in early bootstrap stages
Jonathan Wakely
jwakely@redhat.com
Thu Jun 20 14:23:00 GMT 2019
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.
-------------- next part --------------
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)
])
More information about the Libstdc++
mailing list