On Wed, 4 Feb 2026, Jakub Jelinek wrote:

> Hi!
> 
> 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).

I agree.

> Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?

Heh, that was simple.

OK.

Thanks,
Richard.

> 2026-02-04  Jakub Jelinek  <[email protected]>
> 
>       * Makefile.tpl (STAGE1_CONFIGURE_FLAGS, STAGE2_CONFIGURE_FLAGS,
>       STAGEprofile_CONFIGURE_FLAGS): Append --disable-libstdcxx-pch if
>       target-libstdc++-v3-bootstrap.
>       * Makefile.in: Regenerate.
> 
> --- Makefile.tpl.jj   2026-01-01 18:33:49.674983619 +0100
> +++ Makefile.tpl      2026-02-03 23:54:37.609444020 +0100
> @@ -556,6 +556,12 @@ STAGE1_CONFIGURE_FLAGS = $(STAGE1_CHECKI
>         --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
> --- Makefile.in.jj    2026-01-01 18:33:49.673983636 +0100
> +++ Makefile.in       2026-02-03 23:55:15.755489944 +0100
> @@ -633,6 +633,12 @@ STAGE1_CONFIGURE_FLAGS = $(STAGE1_CHECKI
>         --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
> 
>       Jakub
> 
> 

-- 
Richard Biener <[email protected]>
SUSE Software Solutions Germany GmbH,
Frankenstrasse 146, 90461 Nuernberg, Germany;
GF: Jochen Jaser, Andrew McDonald, Werner Knoblich; (HRB 36809, AG Nuernberg)

Reply via email to