From: Jakub Jelinek Date: Wed, 4 Feb 2026 10:49:01 +0000 (+0100) Subject: toplevel: Build stage1/stage2/stageprofile libstdc++ with --disable-libstdcxx-pch... X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=da50e9a7936a8a8226b4c3b7d8624074d014beef;p=thirdparty%2Fgcc.git toplevel: Build stage1/stage2/stageprofile libstdc++ with --disable-libstdcxx-pch when bootstrapping The following patch saves ~ 2.4GiB of disk space in x86_64-linux bootstrapped object directory: find obj80 -name \*.gch -a -type f | xargs du -shc | grep total 3.7G total find obj82 -name \*.gch -a -type f | xargs du -shc | grep total 1.3G total and ~ 800MiB for i686-linux: find obj81 -name \*.gch -a -type f | xargs du -shc | grep total 1.2G total find obj83 -name \*.gch -a -type f | xargs du -shc | grep total 409M total by disabling PCH in stage1/stage2/stageprofile builds, so only building it in stage3/stagefeedback etc. I think in stage1/stage2 it is a pure waste of bootstrap time and disk space, for profiledbootstrap I'd say PCH isn't used commonly enough in the wild that it is worth training GCC on that (but if you disagree, I can surely take out that single line in there). 2026-02-04 Jakub Jelinek * Makefile.tpl (STAGE1_CONFIGURE_FLAGS, STAGE2_CONFIGURE_FLAGS, STAGEprofile_CONFIGURE_FLAGS): Append --disable-libstdcxx-pch if target-libstdc++-v3-bootstrap. * Makefile.in: Regenerate. --- diff --git a/Makefile.in b/Makefile.in index ae0892e7933..e0e8a872f40 100644 --- a/Makefile.in +++ b/Makefile.in @@ -633,6 +633,12 @@ STAGE1_CONFIGURE_FLAGS = $(STAGE1_CHECKING) \ --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)" \ --disable-build-format-warnings +@if target-libstdc++-v3-bootstrap +STAGE1_CONFIGURE_FLAGS += --disable-libstdcxx-pch +STAGE2_CONFIGURE_FLAGS += --disable-libstdcxx-pch +STAGEprofile_CONFIGURE_FLAGS += --disable-libstdcxx-pch +@endif target-libstdc++-v3-bootstrap + @if target-libphobos-bootstrap STAGE1_CONFIGURE_FLAGS += --with-libphobos-druntime-only STAGE2_CONFIGURE_FLAGS += --with-libphobos-druntime-only diff --git a/Makefile.tpl b/Makefile.tpl index 7e801641661..e634d17aa57 100644 --- a/Makefile.tpl +++ b/Makefile.tpl @@ -556,6 +556,12 @@ STAGE1_CONFIGURE_FLAGS = $(STAGE1_CHECKING) \ --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)" \ --disable-build-format-warnings +@if target-libstdc++-v3-bootstrap +STAGE1_CONFIGURE_FLAGS += --disable-libstdcxx-pch +STAGE2_CONFIGURE_FLAGS += --disable-libstdcxx-pch +STAGEprofile_CONFIGURE_FLAGS += --disable-libstdcxx-pch +@endif target-libstdc++-v3-bootstrap + @if target-libphobos-bootstrap STAGE1_CONFIGURE_FLAGS += --with-libphobos-druntime-only STAGE2_CONFIGURE_FLAGS += --with-libphobos-druntime-only