I approve this. I'm basically inactive and can't commit anything right now, someone else will have to.
On Sun, Oct 18, 2026, at 10:00 AM, Tamar Christina wrote: > Ping. > >> -----Original Message----- >> From: Tamar Christina <[email protected]> >> Sent: 05 October 2026 12:48 >> To: Tamar Christina <[email protected]>; [email protected] >> Cc: nd <[email protected]>; [email protected]; [email protected]; >> [email protected]; [email protected]; [email protected] >> Subject: RE: [patch][build-system]: strip checking flags when compiling GMP >> to fix LTO bootstrap [PR127376] >> >> Ping. >> >> > -----Original Message----- >> > From: Tamar Christina <[email protected]> >> > Sent: 28 September 2026 08:06 >> > To: [email protected] >> > Cc: nd <[email protected]>; [email protected]; [email protected]; >> > [email protected]; [email protected]; [email protected] >> > Subject: [patch][build-system]: strip checking flags when compiling GMP to >> fix >> > LTO bootstrap [PR127376] >> > >> > LTO bootstrap currently fails due to MPFR and GMP failing stage2 vs stage3 >> > comparison: >> > >> > mpfr/src/urandom.o differs >> > mpfr/src/urandomb.o differs >> > mpfr/src/vasprintf.o differs >> > mpfr/src/yn.o differs >> > mpfr/src/zeta.o differs >> > mpfr/src/zeta_ui.o differs >> > >> > of pretty much every object file for mpfr and mpc. >> > >> > This is because in Makefile.tpl +579 we have >> > >> > STAGE1_TFLAGS += -fno-checking >> > STAGE2_CFLAGS += -fno-checking >> > STAGE2_TFLAGS += -fno-checking >> > STAGE3_CFLAGS += -fchecking=1 >> > STAGE3_TFLAGS += -fchecking=1 >> > >> > But with a LTO bootstrap the options leak into the LTO metadata due to the >> > headers ending up with the checking flags inside them. >> > >> > stage2-gmp/gmp.h:2334 #define __GMP_CC " ... -fno-checking" >> > stage3-gmp/gmp.h:2334 #define __GMP_CC " ... -fchecking=1" >> > >> > during an LTO bootstrap we call compare-lto which strips the options from >> > .gnu.lto_.opts but they're also present in .gnu.lto_.decls.*. >> > >> > So we get a miscompare due to -fchecking differences. >> > >> > Since MPFR and GMP are C programs just prevent -fno-checking and - >> > fchecking=1 >> > from getting passed to them. >> > >> > This patch adds a little autogen macro and Scheme function to strip out >> these >> > flags only for mpfr and gmp. >> > >> > Bootstrapped Regtested on aarch64-none-linux-gnu, >> > arm-none-linux-gnueabihf, x86_64-pc-linux-gnu >> > -m32, -m64 >> > >> > with: >> > >> > - default bootstrap >> > - profiledbootstrap >> > - LTO bootstrap >> > - LTO+O3 >> > - bootstrap lto locality >> > - boostrap LTO lean >> > >> > Ok for master? >> > >> > Thanks, >> > Tamar >> > >> > ChangeLog: >> > >> > PR bootstrap/127376 >> > * Makefile.in: Renegerate. >> > * Makefile.tpl: Strip checking flags for mpfr and gmp. >> > >> > --- >> > diff --git a/Makefile.in b/Makefile.in >> > index >> > >> 767d6aab977aa722205275902bdef15635053f25..10adfcebaef9e03caf5f7e >> > 57b92538ed5e21e4bc 100644 >> > --- a/Makefile.in >> > +++ b/Makefile.in >> > @@ -700,6 +700,9 @@ STAGEautofeedback_TFLAGS = $(STAGE3_TFLAGS) >> > # may result in additional warnings. >> > STAGEautofeedback_CONFIGURE_FLAGS = $(filter-out --enable-werror- >> > always,$(STAGE_CONFIGURE_FLAGS)) >> > >> > +GMP_CHECKING_FLAGS = -fno-checking -fchecking=1 >> > +GMP_FILTER_CHECKING_FLAGS = $(filter-out >> > $(GMP_CHECKING_FLAGS),$(1)) >> > + >> > do-compare = @do_compare@ >> > do-compare3 = $(do-compare) >> > >> > @@ -13383,10 +13386,10 @@ configure-stage1-gmp: >> > @$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gmp >> > @r=`${PWD_COMMAND}`; export r; \ >> > s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ >> > - TFLAGS="$(STAGE1_TFLAGS)"; \ >> > + TFLAGS="$(call GMP_FILTER_CHECKING_FLAGS,$(STAGE1_TFLAGS))"; >> > \ >> > test ! -f $(HOST_SUBDIR)/gmp/Makefile || exit 0; \ >> > $(HOST_EXPORTS) \ >> > - CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \ >> > + CFLAGS="$(call GMP_FILTER_CHECKING_FLAGS,$(STAGE1_CFLAGS))"; >> > export CFLAGS; \ >> > CXXFLAGS="$(STAGE1_CXXFLAGS)"; export CXXFLAGS; \ >> > LIBCFLAGS="$(LIBCFLAGS)"; export LIBCFLAGS; \ >> > echo Configuring stage 1 in $(HOST_SUBDIR)/gmp; \ >> > @@ -13416,11 +13419,11 @@ configure-stage2-gmp: >> > @$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gmp >> > @r=`${PWD_COMMAND}`; export r; \ >> > s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ >> > - TFLAGS="$(STAGE2_TFLAGS)"; \ >> > + TFLAGS="$(call GMP_FILTER_CHECKING_FLAGS,$(STAGE2_TFLAGS))"; >> > \ >> > test ! -f $(HOST_SUBDIR)/gmp/Makefile || exit 0; \ >> > $(HOST_EXPORTS) \ >> > $(POSTSTAGE1_HOST_EXPORTS) \ >> > - CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \ >> > + CFLAGS="$(call GMP_FILTER_CHECKING_FLAGS,$(STAGE2_CFLAGS))"; >> > export CFLAGS; \ >> > CXXFLAGS="$(STAGE2_CXXFLAGS)"; export CXXFLAGS; \ >> > LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS; \ >> > echo Configuring stage 2 in $(HOST_SUBDIR)/gmp; \ >> > @@ -13450,11 +13453,11 @@ configure-stage3-gmp: >> > @$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gmp >> > @r=`${PWD_COMMAND}`; export r; \ >> > s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ >> > - TFLAGS="$(STAGE3_TFLAGS)"; \ >> > + TFLAGS="$(call GMP_FILTER_CHECKING_FLAGS,$(STAGE3_TFLAGS))"; >> > \ >> > test ! -f $(HOST_SUBDIR)/gmp/Makefile || exit 0; \ >> > $(HOST_EXPORTS) \ >> > $(POSTSTAGE1_HOST_EXPORTS) \ >> > - CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \ >> > + CFLAGS="$(call GMP_FILTER_CHECKING_FLAGS,$(STAGE3_CFLAGS))"; >> > export CFLAGS; \ >> > CXXFLAGS="$(STAGE3_CXXFLAGS)"; export CXXFLAGS; \ >> > LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS; \ >> > echo Configuring stage 3 in $(HOST_SUBDIR)/gmp; \ >> > @@ -13484,11 +13487,11 @@ configure-stage4-gmp: >> > @$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gmp >> > @r=`${PWD_COMMAND}`; export r; \ >> > s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ >> > - TFLAGS="$(STAGE4_TFLAGS)"; \ >> > + TFLAGS="$(call GMP_FILTER_CHECKING_FLAGS,$(STAGE4_TFLAGS))"; >> > \ >> > test ! -f $(HOST_SUBDIR)/gmp/Makefile || exit 0; \ >> > $(HOST_EXPORTS) \ >> > $(POSTSTAGE1_HOST_EXPORTS) \ >> > - CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \ >> > + CFLAGS="$(call GMP_FILTER_CHECKING_FLAGS,$(STAGE4_CFLAGS))"; >> > export CFLAGS; \ >> > CXXFLAGS="$(STAGE4_CXXFLAGS)"; export CXXFLAGS; \ >> > LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS; \ >> > echo Configuring stage 4 in $(HOST_SUBDIR)/gmp; \ >> > @@ -13518,11 +13521,11 @@ configure-stageprofile-gmp: >> > @$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gmp >> > @r=`${PWD_COMMAND}`; export r; \ >> > s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ >> > - TFLAGS="$(STAGEprofile_TFLAGS)"; \ >> > + TFLAGS="$(call >> > GMP_FILTER_CHECKING_FLAGS,$(STAGEprofile_TFLAGS))"; \ >> > test ! -f $(HOST_SUBDIR)/gmp/Makefile || exit 0; \ >> > $(HOST_EXPORTS) \ >> > $(POSTSTAGE1_HOST_EXPORTS) \ >> > - CFLAGS="$(STAGEprofile_CFLAGS)"; export CFLAGS; \ >> > + CFLAGS="$(call >> > GMP_FILTER_CHECKING_FLAGS,$(STAGEprofile_CFLAGS))"; export CFLAGS; >> \ >> > CXXFLAGS="$(STAGEprofile_CXXFLAGS)"; export CXXFLAGS; \ >> > LIBCFLAGS="$(STAGEprofile_CFLAGS)"; export LIBCFLAGS; \ >> > echo Configuring stage profile in $(HOST_SUBDIR)/gmp; \ >> > @@ -13552,11 +13555,11 @@ configure-stagetrain-gmp: >> > @$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gmp >> > @r=`${PWD_COMMAND}`; export r; \ >> > s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ >> > - TFLAGS="$(STAGEtrain_TFLAGS)"; \ >> > + TFLAGS="$(call >> > GMP_FILTER_CHECKING_FLAGS,$(STAGEtrain_TFLAGS))"; \ >> > test ! -f $(HOST_SUBDIR)/gmp/Makefile || exit 0; \ >> > $(HOST_EXPORTS) \ >> > $(POSTSTAGE1_HOST_EXPORTS) \ >> > - CFLAGS="$(STAGEtrain_CFLAGS)"; export CFLAGS; \ >> > + CFLAGS="$(call >> > GMP_FILTER_CHECKING_FLAGS,$(STAGEtrain_CFLAGS))"; export CFLAGS; \ >> > CXXFLAGS="$(STAGEtrain_CXXFLAGS)"; export CXXFLAGS; \ >> > LIBCFLAGS="$(STAGEtrain_CFLAGS)"; export LIBCFLAGS; \ >> > echo Configuring stage train in $(HOST_SUBDIR)/gmp; \ >> > @@ -13586,11 +13589,11 @@ configure-stagefeedback-gmp: >> > @$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gmp >> > @r=`${PWD_COMMAND}`; export r; \ >> > s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ >> > - TFLAGS="$(STAGEfeedback_TFLAGS)"; \ >> > + TFLAGS="$(call >> > GMP_FILTER_CHECKING_FLAGS,$(STAGEfeedback_TFLAGS))"; \ >> > test ! -f $(HOST_SUBDIR)/gmp/Makefile || exit 0; \ >> > $(HOST_EXPORTS) \ >> > $(POSTSTAGE1_HOST_EXPORTS) \ >> > - CFLAGS="$(STAGEfeedback_CFLAGS)"; export CFLAGS; \ >> > + CFLAGS="$(call >> > GMP_FILTER_CHECKING_FLAGS,$(STAGEfeedback_CFLAGS))"; export >> CFLAGS; >> > \ >> > CXXFLAGS="$(STAGEfeedback_CXXFLAGS)"; export CXXFLAGS; \ >> > LIBCFLAGS="$(STAGEfeedback_CFLAGS)"; export LIBCFLAGS; \ >> > echo Configuring stage feedback in $(HOST_SUBDIR)/gmp; \ >> > @@ -13620,11 +13623,11 @@ configure-stageautoprofile-gmp: >> > @$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gmp >> > @r=`${PWD_COMMAND}`; export r; \ >> > s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ >> > - TFLAGS="$(STAGEautoprofile_TFLAGS)"; \ >> > + TFLAGS="$(call >> > GMP_FILTER_CHECKING_FLAGS,$(STAGEautoprofile_TFLAGS))"; \ >> > test ! -f $(HOST_SUBDIR)/gmp/Makefile || exit 0; \ >> > $(HOST_EXPORTS) \ >> > $(POSTSTAGE1_HOST_EXPORTS) \ >> > - CFLAGS="$(STAGEautoprofile_CFLAGS)"; export CFLAGS; \ >> > + CFLAGS="$(call >> > GMP_FILTER_CHECKING_FLAGS,$(STAGEautoprofile_CFLAGS))"; export >> > CFLAGS; \ >> > CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)"; export CXXFLAGS; \ >> > LIBCFLAGS="$(STAGEautoprofile_CFLAGS)"; export LIBCFLAGS; \ >> > echo Configuring stage autoprofile in $(HOST_SUBDIR)/gmp; \ >> > @@ -13654,11 +13657,11 @@ configure-stageautofeedback-gmp: >> > @$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gmp >> > @r=`${PWD_COMMAND}`; export r; \ >> > s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ >> > - TFLAGS="$(STAGEautofeedback_TFLAGS)"; \ >> > + TFLAGS="$(call >> > GMP_FILTER_CHECKING_FLAGS,$(STAGEautofeedback_TFLAGS))"; \ >> > test ! -f $(HOST_SUBDIR)/gmp/Makefile || exit 0; \ >> > $(HOST_EXPORTS) \ >> > $(POSTSTAGE1_HOST_EXPORTS) \ >> > - CFLAGS="$(STAGEautofeedback_CFLAGS)"; export CFLAGS; \ >> > + CFLAGS="$(call >> > GMP_FILTER_CHECKING_FLAGS,$(STAGEautofeedback_CFLAGS))"; export >> > CFLAGS; \ >> > CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)"; export CXXFLAGS; \ >> > LIBCFLAGS="$(STAGEautofeedback_CFLAGS)"; export LIBCFLAGS; \ >> > echo Configuring stage autofeedback in $(HOST_SUBDIR)/gmp; \ >> > @@ -15657,10 +15660,10 @@ configure-stage1-mpc: >> > @$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpc >> > @r=`${PWD_COMMAND}`; export r; \ >> > s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ >> > - TFLAGS="$(STAGE1_TFLAGS)"; \ >> > + TFLAGS="$(call GMP_FILTER_CHECKING_FLAGS,$(STAGE1_TFLAGS))"; >> > \ >> > test ! -f $(HOST_SUBDIR)/mpc/Makefile || exit 0; \ >> > $(HOST_EXPORTS) \ >> > - CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \ >> > + CFLAGS="$(call GMP_FILTER_CHECKING_FLAGS,$(STAGE1_CFLAGS))"; >> > export CFLAGS; \ >> > CXXFLAGS="$(STAGE1_CXXFLAGS)"; export CXXFLAGS; \ >> > LIBCFLAGS="$(LIBCFLAGS)"; export LIBCFLAGS; \ >> > echo Configuring stage 1 in $(HOST_SUBDIR)/mpc; \ >> > @@ -15690,11 +15693,11 @@ configure-stage2-mpc: >> > @$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpc >> > @r=`${PWD_COMMAND}`; export r; \ >> > s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ >> > - TFLAGS="$(STAGE2_TFLAGS)"; \ >> > + TFLAGS="$(call GMP_FILTER_CHECKING_FLAGS,$(STAGE2_TFLAGS))"; >> > \ >> > test ! -f $(HOST_SUBDIR)/mpc/Makefile || exit 0; \ >> > $(HOST_EXPORTS) \ >> > $(POSTSTAGE1_HOST_EXPORTS) \ >> > - CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \ >> > + CFLAGS="$(call GMP_FILTER_CHECKING_FLAGS,$(STAGE2_CFLAGS))"; >> > export CFLAGS; \ >> > CXXFLAGS="$(STAGE2_CXXFLAGS)"; export CXXFLAGS; \ >> > LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS; \ >> > echo Configuring stage 2 in $(HOST_SUBDIR)/mpc; \ >> > @@ -15724,11 +15727,11 @@ configure-stage3-mpc: >> > @$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpc >> > @r=`${PWD_COMMAND}`; export r; \ >> > s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ >> > - TFLAGS="$(STAGE3_TFLAGS)"; \ >> > + TFLAGS="$(call GMP_FILTER_CHECKING_FLAGS,$(STAGE3_TFLAGS))"; >> > \ >> > test ! -f $(HOST_SUBDIR)/mpc/Makefile || exit 0; \ >> > $(HOST_EXPORTS) \ >> > $(POSTSTAGE1_HOST_EXPORTS) \ >> > - CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \ >> > + CFLAGS="$(call GMP_FILTER_CHECKING_FLAGS,$(STAGE3_CFLAGS))"; >> > export CFLAGS; \ >> > CXXFLAGS="$(STAGE3_CXXFLAGS)"; export CXXFLAGS; \ >> > LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS; \ >> > echo Configuring stage 3 in $(HOST_SUBDIR)/mpc; \ >> > @@ -15758,11 +15761,11 @@ configure-stage4-mpc: >> > @$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpc >> > @r=`${PWD_COMMAND}`; export r; \ >> > s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ >> > - TFLAGS="$(STAGE4_TFLAGS)"; \ >> > + TFLAGS="$(call GMP_FILTER_CHECKING_FLAGS,$(STAGE4_TFLAGS))"; >> > \ >> > test ! -f $(HOST_SUBDIR)/mpc/Makefile || exit 0; \ >> > $(HOST_EXPORTS) \ >> > $(POSTSTAGE1_HOST_EXPORTS) \ >> > - CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \ >> > + CFLAGS="$(call GMP_FILTER_CHECKING_FLAGS,$(STAGE4_CFLAGS))"; >> > export CFLAGS; \ >> > CXXFLAGS="$(STAGE4_CXXFLAGS)"; export CXXFLAGS; \ >> > LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS; \ >> > echo Configuring stage 4 in $(HOST_SUBDIR)/mpc; \ >> > @@ -15792,11 +15795,11 @@ configure-stageprofile-mpc: >> > @$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpc >> > @r=`${PWD_COMMAND}`; export r; \ >> > s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ >> > - TFLAGS="$(STAGEprofile_TFLAGS)"; \ >> > + TFLAGS="$(call >> > GMP_FILTER_CHECKING_FLAGS,$(STAGEprofile_TFLAGS))"; \ >> > test ! -f $(HOST_SUBDIR)/mpc/Makefile || exit 0; \ >> > $(HOST_EXPORTS) \ >> > $(POSTSTAGE1_HOST_EXPORTS) \ >> > - CFLAGS="$(STAGEprofile_CFLAGS)"; export CFLAGS; \ >> > + CFLAGS="$(call >> > GMP_FILTER_CHECKING_FLAGS,$(STAGEprofile_CFLAGS))"; export CFLAGS; >> \ >> > CXXFLAGS="$(STAGEprofile_CXXFLAGS)"; export CXXFLAGS; \ >> > LIBCFLAGS="$(STAGEprofile_CFLAGS)"; export LIBCFLAGS; \ >> > echo Configuring stage profile in $(HOST_SUBDIR)/mpc; \ >> > @@ -15826,11 +15829,11 @@ configure-stagetrain-mpc: >> > @$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpc >> > @r=`${PWD_COMMAND}`; export r; \ >> > s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ >> > - TFLAGS="$(STAGEtrain_TFLAGS)"; \ >> > + TFLAGS="$(call >> > GMP_FILTER_CHECKING_FLAGS,$(STAGEtrain_TFLAGS))"; \ >> > test ! -f $(HOST_SUBDIR)/mpc/Makefile || exit 0; \ >> > $(HOST_EXPORTS) \ >> > $(POSTSTAGE1_HOST_EXPORTS) \ >> > - CFLAGS="$(STAGEtrain_CFLAGS)"; export CFLAGS; \ >> > + CFLAGS="$(call >> > GMP_FILTER_CHECKING_FLAGS,$(STAGEtrain_CFLAGS))"; export CFLAGS; \ >> > CXXFLAGS="$(STAGEtrain_CXXFLAGS)"; export CXXFLAGS; \ >> > LIBCFLAGS="$(STAGEtrain_CFLAGS)"; export LIBCFLAGS; \ >> > echo Configuring stage train in $(HOST_SUBDIR)/mpc; \ >> > @@ -15860,11 +15863,11 @@ configure-stagefeedback-mpc: >> > @$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpc >> > @r=`${PWD_COMMAND}`; export r; \ >> > s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ >> > - TFLAGS="$(STAGEfeedback_TFLAGS)"; \ >> > + TFLAGS="$(call >> > GMP_FILTER_CHECKING_FLAGS,$(STAGEfeedback_TFLAGS))"; \ >> > test ! -f $(HOST_SUBDIR)/mpc/Makefile || exit 0; \ >> > $(HOST_EXPORTS) \ >> > $(POSTSTAGE1_HOST_EXPORTS) \ >> > - CFLAGS="$(STAGEfeedback_CFLAGS)"; export CFLAGS; \ >> > + CFLAGS="$(call >> > GMP_FILTER_CHECKING_FLAGS,$(STAGEfeedback_CFLAGS))"; export >> CFLAGS; >> > \ >> > CXXFLAGS="$(STAGEfeedback_CXXFLAGS)"; export CXXFLAGS; \ >> > LIBCFLAGS="$(STAGEfeedback_CFLAGS)"; export LIBCFLAGS; \ >> > echo Configuring stage feedback in $(HOST_SUBDIR)/mpc; \ >> > @@ -15894,11 +15897,11 @@ configure-stageautoprofile-mpc: >> > @$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpc >> > @r=`${PWD_COMMAND}`; export r; \ >> > s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ >> > - TFLAGS="$(STAGEautoprofile_TFLAGS)"; \ >> > + TFLAGS="$(call >> > GMP_FILTER_CHECKING_FLAGS,$(STAGEautoprofile_TFLAGS))"; \ >> > test ! -f $(HOST_SUBDIR)/mpc/Makefile || exit 0; \ >> > $(HOST_EXPORTS) \ >> > $(POSTSTAGE1_HOST_EXPORTS) \ >> > - CFLAGS="$(STAGEautoprofile_CFLAGS)"; export CFLAGS; \ >> > + CFLAGS="$(call >> > GMP_FILTER_CHECKING_FLAGS,$(STAGEautoprofile_CFLAGS))"; export >> > CFLAGS; \ >> > CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)"; export CXXFLAGS; \ >> > LIBCFLAGS="$(STAGEautoprofile_CFLAGS)"; export LIBCFLAGS; \ >> > echo Configuring stage autoprofile in $(HOST_SUBDIR)/mpc; \ >> > @@ -15928,11 +15931,11 @@ configure-stageautofeedback-mpc: >> > @$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpc >> > @r=`${PWD_COMMAND}`; export r; \ >> > s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ >> > - TFLAGS="$(STAGEautofeedback_TFLAGS)"; \ >> > + TFLAGS="$(call >> > GMP_FILTER_CHECKING_FLAGS,$(STAGEautofeedback_TFLAGS))"; \ >> > test ! -f $(HOST_SUBDIR)/mpc/Makefile || exit 0; \ >> > $(HOST_EXPORTS) \ >> > $(POSTSTAGE1_HOST_EXPORTS) \ >> > - CFLAGS="$(STAGEautofeedback_CFLAGS)"; export CFLAGS; \ >> > + CFLAGS="$(call >> > GMP_FILTER_CHECKING_FLAGS,$(STAGEautofeedback_CFLAGS))"; export >> > CFLAGS; \ >> > CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)"; export CXXFLAGS; \ >> > LIBCFLAGS="$(STAGEautofeedback_CFLAGS)"; export LIBCFLAGS; \ >> > echo Configuring stage autofeedback in $(HOST_SUBDIR)/mpc; \ >> > diff --git a/Makefile.tpl b/Makefile.tpl >> > index >> > >> 07b434e4343105439844e05cd7a4652a8480b373..7fa22ce10d4c7d44607 >> > 1a3dd1c23840793dc54b9 100644 >> > --- a/Makefile.tpl >> > +++ b/Makefile.tpl >> > @@ -607,6 +607,9 @@ STAGEautofeedback_TFLAGS = $(STAGE3_TFLAGS) >> > # may result in additional warnings. >> > STAGEautofeedback_CONFIGURE_FLAGS = $(filter-out --enable-werror- >> > always,$(STAGE_CONFIGURE_FLAGS)) >> > >> > +GMP_CHECKING_FLAGS = -fno-checking -fchecking=1 >> > +GMP_FILTER_CHECKING_FLAGS = $(filter-out >> > $(GMP_CHECKING_FLAGS),$(1)) >> > + >> > do-compare = @do_compare@ >> > do-compare3 = $(do-compare) >> > >> > @@ -1196,7 +1199,18 @@ TAGS: do-TAGS >> > # Macros for configure and all targets >> > # ------------------------------------ >> > >> > -[+ DEFINE configure +] >> > +[+ ;; Return the stage flag variable that should be used when configuring >> > + ;; the current module. >> > + ;; GMP and MPC record the compiler options in object files, which makes >> > + ;; LTO bootstrap comparisons fail if stage-specific checking flags >> > differ. >> > + (define stage-configure-flags >> > + (lambda (suffix) >> > + (let ((flag (string-append "STAGE" (get "id") suffix))) >> > + (if (or (= (get "module") "gmp") >> > + (= (get "module") "mpc")) >> > + (string-append "$(call GMP_FILTER_CHECKING_FLAGS,$(" flag "))") >> > + (string-append "$(" flag ")"))))) >> > ++][+ DEFINE configure +] >> > .PHONY: configure-[+prefix+][+module+] maybe-configure- >> > [+prefix+][+module+] >> > maybe-configure-[+prefix+][+module+]: >> > @if gcc-bootstrap >> > @@ -1253,7 +1267,7 @@ configure-stage[+id+]-[+prefix+][+module+]: >> > @$(SHELL) $(srcdir)/mkinstalldirs [+subdir+]/[+module+] >> > @r=`${PWD_COMMAND}`; export r; \ >> > s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ >> > - TFLAGS="$(STAGE[+id+]_TFLAGS)"; \ >> > + TFLAGS="[+ (stage-configure-flags "_TFLAGS") +]"; \ >> > [+ IF check_multilibs >> > +]echo "Checking multilib configuration for [+module+]..."; \ >> > $(CC_FOR_TARGET) --print-multi-lib > >> > [+subdir+]/[+module+]/multilib.tmp 2> /dev/null; \ >> > @@ -1273,7 +1287,7 @@ configure-stage[+id+]-[+prefix+][+module+]: >> > CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \ >> > CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \ >> > LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;[+ ELSE >> > prefix +] \ >> > - CFLAGS="$(STAGE[+id+]_CFLAGS)"; export CFLAGS; \ >> > + CFLAGS="[+ (stage-configure-flags "_CFLAGS") +]"; export CFLAGS; \ >> > CXXFLAGS="$(STAGE[+id+]_CXXFLAGS)"; export CXXFLAGS;[+ IF (= >> > (get "module") "gcc") +] \ >> > GDCFLAGS="$(STAGE[+id+]_GDCFLAGS)"; export GDCFLAGS;[+ ENDIF >> > +][+ IF prev +] \ >> > LIBCFLAGS="$(STAGE[+id+]_CFLAGS)"[+ ELSE prev +] \ >> > >> > >> > --
