https://gcc.gnu.org/g:714e6e3450715b98a2c35b317f99b20916e7de49
commit 714e6e3450715b98a2c35b317f99b20916e7de49 Author: Iain Buclaw <ibuc...@gdcproject.org> Date: Mon Mar 3 22:38:26 2025 +0100 Makefile.tpl: Implement per-stage GDCFLAGS [PR116975] Allows the GDCFLAGS for each bootstrap stage of building gdc to be overriden, as is the case with CXXFLAGS for other front-ends. PR d/116975 ChangeLog: * Makefile.in: Regenerate. * Makefile.tpl (STAGE[+id+]_GDCFLAGS): New. (STAGE2_GDCFLAGS): Add -fno-checking. (STAGE3_GDCFLAGS): Add -fchecking=1. (BASE_FLAGS_TO_PASS): Pass STAGE[+id+]_GDCFLAGS down. (configure-stage[+id+]-[+prefix+][+module+]): Set GDCFLAGS for all gcc module stages. (all-stage[+id+]-[+prefix+][+module+]): Likewise. Diff: --- Makefile.in | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ Makefile.tpl | 15 +++++++++++++-- 2 files changed, 64 insertions(+), 2 deletions(-) diff --git a/Makefile.in b/Makefile.in index 87880c62ad20..f2c632c06b38 100644 --- a/Makefile.in +++ b/Makefile.in @@ -619,6 +619,26 @@ STAGE1_CONFIGURE_FLAGS = $(STAGE1_CHECKING) \ --disable-build-format-warnings @if target-libphobos-bootstrap +# Defaults for each stage if we're bootstrapping D. + +STAGE1_GDCFLAGS = $(GDCFLAGS) + +STAGE2_GDCFLAGS = $(GDCFLAGS) + +STAGE3_GDCFLAGS = $(GDCFLAGS) + +STAGE4_GDCFLAGS = $(GDCFLAGS) + +STAGEprofile_GDCFLAGS = $(GDCFLAGS) + +STAGEtrain_GDCFLAGS = $(GDCFLAGS) + +STAGEfeedback_GDCFLAGS = $(GDCFLAGS) + +STAGEautoprofile_GDCFLAGS = $(GDCFLAGS) + +STAGEautofeedback_GDCFLAGS = $(GDCFLAGS) + STAGE1_CONFIGURE_FLAGS += --with-libphobos-druntime-only STAGE2_CONFIGURE_FLAGS += --with-libphobos-druntime-only @endif target-libphobos-bootstrap @@ -632,6 +652,10 @@ STAGE2_CFLAGS += -fno-checking STAGE2_TFLAGS += -fno-checking STAGE3_CFLAGS += -fchecking=1 STAGE3_TFLAGS += -fchecking=1 +@if target-libphobos-bootstrap +STAGE2_GDCFLAGS += -fno-checking +STAGE3_GDCFLAGS += -fchecking=1 +@endif target-libphobos-bootstrap STAGEprofile_CFLAGS = $(STAGE2_CFLAGS) -fprofile-generate STAGEprofile_TFLAGS = $(STAGE2_TFLAGS) @@ -921,38 +945,47 @@ BASE_FLAGS_TO_PASS = \ "LEAN=$(LEAN)" \ "STAGE1_CFLAGS=$(STAGE1_CFLAGS)" \ "STAGE1_CXXFLAGS=$(STAGE1_CXXFLAGS)" \ + "STAGE1_GDCFLAGS=$(STAGE1_GDCFLAGS)" \ "STAGE1_GENERATOR_CFLAGS=$(STAGE1_GENERATOR_CFLAGS)" \ "STAGE1_TFLAGS=$(STAGE1_TFLAGS)" \ "STAGE2_CFLAGS=$(STAGE2_CFLAGS)" \ "STAGE2_CXXFLAGS=$(STAGE2_CXXFLAGS)" \ + "STAGE2_GDCFLAGS=$(STAGE2_GDCFLAGS)" \ "STAGE2_GENERATOR_CFLAGS=$(STAGE2_GENERATOR_CFLAGS)" \ "STAGE2_TFLAGS=$(STAGE2_TFLAGS)" \ "STAGE3_CFLAGS=$(STAGE3_CFLAGS)" \ "STAGE3_CXXFLAGS=$(STAGE3_CXXFLAGS)" \ + "STAGE3_GDCFLAGS=$(STAGE3_GDCFLAGS)" \ "STAGE3_GENERATOR_CFLAGS=$(STAGE3_GENERATOR_CFLAGS)" \ "STAGE3_TFLAGS=$(STAGE3_TFLAGS)" \ "STAGE4_CFLAGS=$(STAGE4_CFLAGS)" \ "STAGE4_CXXFLAGS=$(STAGE4_CXXFLAGS)" \ + "STAGE4_GDCFLAGS=$(STAGE4_GDCFLAGS)" \ "STAGE4_GENERATOR_CFLAGS=$(STAGE4_GENERATOR_CFLAGS)" \ "STAGE4_TFLAGS=$(STAGE4_TFLAGS)" \ "STAGEprofile_CFLAGS=$(STAGEprofile_CFLAGS)" \ "STAGEprofile_CXXFLAGS=$(STAGEprofile_CXXFLAGS)" \ + "STAGEprofile_GDCFLAGS=$(STAGEprofile_GDCFLAGS)" \ "STAGEprofile_GENERATOR_CFLAGS=$(STAGEprofile_GENERATOR_CFLAGS)" \ "STAGEprofile_TFLAGS=$(STAGEprofile_TFLAGS)" \ "STAGEtrain_CFLAGS=$(STAGEtrain_CFLAGS)" \ "STAGEtrain_CXXFLAGS=$(STAGEtrain_CXXFLAGS)" \ + "STAGEtrain_GDCFLAGS=$(STAGEtrain_GDCFLAGS)" \ "STAGEtrain_GENERATOR_CFLAGS=$(STAGEtrain_GENERATOR_CFLAGS)" \ "STAGEtrain_TFLAGS=$(STAGEtrain_TFLAGS)" \ "STAGEfeedback_CFLAGS=$(STAGEfeedback_CFLAGS)" \ "STAGEfeedback_CXXFLAGS=$(STAGEfeedback_CXXFLAGS)" \ + "STAGEfeedback_GDCFLAGS=$(STAGEfeedback_GDCFLAGS)" \ "STAGEfeedback_GENERATOR_CFLAGS=$(STAGEfeedback_GENERATOR_CFLAGS)" \ "STAGEfeedback_TFLAGS=$(STAGEfeedback_TFLAGS)" \ "STAGEautoprofile_CFLAGS=$(STAGEautoprofile_CFLAGS)" \ "STAGEautoprofile_CXXFLAGS=$(STAGEautoprofile_CXXFLAGS)" \ + "STAGEautoprofile_GDCFLAGS=$(STAGEautoprofile_GDCFLAGS)" \ "STAGEautoprofile_GENERATOR_CFLAGS=$(STAGEautoprofile_GENERATOR_CFLAGS)" \ "STAGEautoprofile_TFLAGS=$(STAGEautoprofile_TFLAGS)" \ "STAGEautofeedback_CFLAGS=$(STAGEautofeedback_CFLAGS)" \ "STAGEautofeedback_CXXFLAGS=$(STAGEautofeedback_CXXFLAGS)" \ + "STAGEautofeedback_GDCFLAGS=$(STAGEautofeedback_GDCFLAGS)" \ "STAGEautofeedback_GENERATOR_CFLAGS=$(STAGEautofeedback_GENERATOR_CFLAGS)" \ "STAGEautofeedback_TFLAGS=$(STAGEautofeedback_TFLAGS)" \ $(CXX_FOR_TARGET_FLAG_TO_PASS) \ @@ -12133,6 +12166,7 @@ configure-stage1-gcc: $(HOST_EXPORTS) \ CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \ CXXFLAGS="$(STAGE1_CXXFLAGS)"; export CXXFLAGS; \ + GDCFLAGS="$(STAGE1_GDCFLAGS)"; export GDCFLAGS; \ LIBCFLAGS="$(LIBCFLAGS)"; export LIBCFLAGS; \ echo Configuring stage 1 in $(HOST_SUBDIR)/gcc; \ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc; \ @@ -12167,6 +12201,7 @@ configure-stage2-gcc: $(POSTSTAGE1_HOST_EXPORTS) \ CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \ CXXFLAGS="$(STAGE2_CXXFLAGS)"; export CXXFLAGS; \ + GDCFLAGS="$(STAGE2_GDCFLAGS)"; export GDCFLAGS; \ LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS; \ echo Configuring stage 2 in $(HOST_SUBDIR)/gcc; \ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc; \ @@ -12201,6 +12236,7 @@ configure-stage3-gcc: $(POSTSTAGE1_HOST_EXPORTS) \ CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \ CXXFLAGS="$(STAGE3_CXXFLAGS)"; export CXXFLAGS; \ + GDCFLAGS="$(STAGE3_GDCFLAGS)"; export GDCFLAGS; \ LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS; \ echo Configuring stage 3 in $(HOST_SUBDIR)/gcc; \ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc; \ @@ -12235,6 +12271,7 @@ configure-stage4-gcc: $(POSTSTAGE1_HOST_EXPORTS) \ CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \ CXXFLAGS="$(STAGE4_CXXFLAGS)"; export CXXFLAGS; \ + GDCFLAGS="$(STAGE4_GDCFLAGS)"; export GDCFLAGS; \ LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS; \ echo Configuring stage 4 in $(HOST_SUBDIR)/gcc; \ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc; \ @@ -12269,6 +12306,7 @@ configure-stageprofile-gcc: $(POSTSTAGE1_HOST_EXPORTS) \ CFLAGS="$(STAGEprofile_CFLAGS)"; export CFLAGS; \ CXXFLAGS="$(STAGEprofile_CXXFLAGS)"; export CXXFLAGS; \ + GDCFLAGS="$(STAGEprofile_GDCFLAGS)"; export GDCFLAGS; \ LIBCFLAGS="$(STAGEprofile_CFLAGS)"; export LIBCFLAGS; \ echo Configuring stage profile in $(HOST_SUBDIR)/gcc; \ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc; \ @@ -12303,6 +12341,7 @@ configure-stagetrain-gcc: $(POSTSTAGE1_HOST_EXPORTS) \ CFLAGS="$(STAGEtrain_CFLAGS)"; export CFLAGS; \ CXXFLAGS="$(STAGEtrain_CXXFLAGS)"; export CXXFLAGS; \ + GDCFLAGS="$(STAGEtrain_GDCFLAGS)"; export GDCFLAGS; \ LIBCFLAGS="$(STAGEtrain_CFLAGS)"; export LIBCFLAGS; \ echo Configuring stage train in $(HOST_SUBDIR)/gcc; \ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc; \ @@ -12337,6 +12376,7 @@ configure-stagefeedback-gcc: $(POSTSTAGE1_HOST_EXPORTS) \ CFLAGS="$(STAGEfeedback_CFLAGS)"; export CFLAGS; \ CXXFLAGS="$(STAGEfeedback_CXXFLAGS)"; export CXXFLAGS; \ + GDCFLAGS="$(STAGEfeedback_GDCFLAGS)"; export GDCFLAGS; \ LIBCFLAGS="$(STAGEfeedback_CFLAGS)"; export LIBCFLAGS; \ echo Configuring stage feedback in $(HOST_SUBDIR)/gcc; \ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc; \ @@ -12371,6 +12411,7 @@ configure-stageautoprofile-gcc: $(POSTSTAGE1_HOST_EXPORTS) \ CFLAGS="$(STAGEautoprofile_CFLAGS)"; export CFLAGS; \ CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)"; export CXXFLAGS; \ + GDCFLAGS="$(STAGEautoprofile_GDCFLAGS)"; export GDCFLAGS; \ LIBCFLAGS="$(STAGEautoprofile_CFLAGS)"; export LIBCFLAGS; \ echo Configuring stage autoprofile in $(HOST_SUBDIR)/gcc; \ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc; \ @@ -12405,6 +12446,7 @@ configure-stageautofeedback-gcc: $(POSTSTAGE1_HOST_EXPORTS) \ CFLAGS="$(STAGEautofeedback_CFLAGS)"; export CFLAGS; \ CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)"; export CXXFLAGS; \ + GDCFLAGS="$(STAGEautofeedback_GDCFLAGS)"; export GDCFLAGS; \ LIBCFLAGS="$(STAGEautofeedback_CFLAGS)"; export LIBCFLAGS; \ echo Configuring stage autofeedback in $(HOST_SUBDIR)/gcc; \ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc; \ @@ -12467,6 +12509,7 @@ all-stage1-gcc: configure-stage1-gcc CFLAGS="$(STAGE1_CFLAGS)" \ GENERATOR_CFLAGS="$(STAGE1_GENERATOR_CFLAGS)" \ CXXFLAGS="$(STAGE1_CXXFLAGS)" \ + GDCFLAGS="$(STAGE1_GDCFLAGS)" \ LIBCFLAGS="$(LIBCFLAGS)" \ CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \ CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \ @@ -12512,6 +12555,7 @@ all-stage2-gcc: configure-stage2-gcc CFLAGS="$(STAGE2_CFLAGS)" \ GENERATOR_CFLAGS="$(STAGE2_GENERATOR_CFLAGS)" \ CXXFLAGS="$(STAGE2_CXXFLAGS)" \ + GDCFLAGS="$(STAGE2_GDCFLAGS)" \ LIBCFLAGS="$(STAGE2_CFLAGS)" \ CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \ CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \ @@ -12555,6 +12599,7 @@ all-stage3-gcc: configure-stage3-gcc CFLAGS="$(STAGE3_CFLAGS)" \ GENERATOR_CFLAGS="$(STAGE3_GENERATOR_CFLAGS)" \ CXXFLAGS="$(STAGE3_CXXFLAGS)" \ + GDCFLAGS="$(STAGE3_GDCFLAGS)" \ LIBCFLAGS="$(STAGE3_CFLAGS)" \ CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \ CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \ @@ -12598,6 +12643,7 @@ all-stage4-gcc: configure-stage4-gcc CFLAGS="$(STAGE4_CFLAGS)" \ GENERATOR_CFLAGS="$(STAGE4_GENERATOR_CFLAGS)" \ CXXFLAGS="$(STAGE4_CXXFLAGS)" \ + GDCFLAGS="$(STAGE4_GDCFLAGS)" \ LIBCFLAGS="$(STAGE4_CFLAGS)" \ CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \ CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \ @@ -12641,6 +12687,7 @@ all-stageprofile-gcc: configure-stageprofile-gcc CFLAGS="$(STAGEprofile_CFLAGS)" \ GENERATOR_CFLAGS="$(STAGEprofile_GENERATOR_CFLAGS)" \ CXXFLAGS="$(STAGEprofile_CXXFLAGS)" \ + GDCFLAGS="$(STAGEprofile_GDCFLAGS)" \ LIBCFLAGS="$(STAGEprofile_CFLAGS)" \ CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \ CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \ @@ -12684,6 +12731,7 @@ all-stagetrain-gcc: configure-stagetrain-gcc CFLAGS="$(STAGEtrain_CFLAGS)" \ GENERATOR_CFLAGS="$(STAGEtrain_GENERATOR_CFLAGS)" \ CXXFLAGS="$(STAGEtrain_CXXFLAGS)" \ + GDCFLAGS="$(STAGEtrain_GDCFLAGS)" \ LIBCFLAGS="$(STAGEtrain_CFLAGS)" \ CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \ CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \ @@ -12727,6 +12775,7 @@ all-stagefeedback-gcc: configure-stagefeedback-gcc CFLAGS="$(STAGEfeedback_CFLAGS)" \ GENERATOR_CFLAGS="$(STAGEfeedback_GENERATOR_CFLAGS)" \ CXXFLAGS="$(STAGEfeedback_CXXFLAGS)" \ + GDCFLAGS="$(STAGEfeedback_GDCFLAGS)" \ LIBCFLAGS="$(STAGEfeedback_CFLAGS)" \ CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \ CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \ @@ -12770,6 +12819,7 @@ all-stageautoprofile-gcc: configure-stageautoprofile-gcc CFLAGS="$(STAGEautoprofile_CFLAGS)" \ GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \ CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)" \ + GDCFLAGS="$(STAGEautoprofile_GDCFLAGS)" \ LIBCFLAGS="$(STAGEautoprofile_CFLAGS)" \ CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \ CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \ @@ -12813,6 +12863,7 @@ all-stageautofeedback-gcc: configure-stageautofeedback-gcc CFLAGS="$(STAGEautofeedback_CFLAGS)" \ GENERATOR_CFLAGS="$(STAGEautofeedback_GENERATOR_CFLAGS)" \ CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)" \ + GDCFLAGS="$(STAGEautofeedback_GDCFLAGS)" \ LIBCFLAGS="$(STAGEautofeedback_CFLAGS)" \ CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \ CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \ diff --git a/Makefile.tpl b/Makefile.tpl index da38dca697ad..691342b1765f 100644 --- a/Makefile.tpl +++ b/Makefile.tpl @@ -542,6 +542,10 @@ STAGE1_CONFIGURE_FLAGS = $(STAGE1_CHECKING) \ --disable-build-format-warnings @if target-libphobos-bootstrap +# Defaults for each stage if we're bootstrapping D. +[+ FOR bootstrap-stage +] +STAGE[+id+]_GDCFLAGS = $(GDCFLAGS) +[+ ENDFOR bootstrap-stage +] STAGE1_CONFIGURE_FLAGS += --with-libphobos-druntime-only STAGE2_CONFIGURE_FLAGS += --with-libphobos-druntime-only @endif target-libphobos-bootstrap @@ -555,6 +559,10 @@ STAGE2_CFLAGS += -fno-checking STAGE2_TFLAGS += -fno-checking STAGE3_CFLAGS += -fchecking=1 STAGE3_TFLAGS += -fchecking=1 +@if target-libphobos-bootstrap +STAGE2_GDCFLAGS += -fno-checking +STAGE3_GDCFLAGS += -fchecking=1 +@endif target-libphobos-bootstrap STAGEprofile_CFLAGS = $(STAGE2_CFLAGS) -fprofile-generate STAGEprofile_TFLAGS = $(STAGE2_TFLAGS) @@ -709,6 +717,7 @@ BASE_FLAGS_TO_PASS =[+ FOR flags_to_pass +][+ IF optional +] \ "[+flag+]=$([+flag+])"[+ ENDIF optional+][+ ENDFOR flags_to_pass +][+ FOR bootstrap-stage +] \ "STAGE[+id+]_CFLAGS=$(STAGE[+id+]_CFLAGS)" \ "STAGE[+id+]_CXXFLAGS=$(STAGE[+id+]_CXXFLAGS)" \ + "STAGE[+id+]_GDCFLAGS=$(STAGE[+id+]_GDCFLAGS)" \ "STAGE[+id+]_GENERATOR_CFLAGS=$(STAGE[+id+]_GENERATOR_CFLAGS)" \ "STAGE[+id+]_TFLAGS=$(STAGE[+id+]_TFLAGS)"[+ ENDFOR bootstrap-stage +] \ $(CXX_FOR_TARGET_FLAG_TO_PASS) \ @@ -1236,7 +1245,8 @@ configure-stage[+id+]-[+prefix+][+module+]: CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \ LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;[+ ELSE prefix +] \ CFLAGS="$(STAGE[+id+]_CFLAGS)"; export CFLAGS; \ - CXXFLAGS="$(STAGE[+id+]_CXXFLAGS)"; export CXXFLAGS;[+ IF prev +] \ + 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 +] \ LIBCFLAGS="$(LIBCFLAGS)"[+ ENDIF prev +]; export LIBCFLAGS;[+ ENDIF prefix +] [+extra_exports+] \ @@ -1306,7 +1316,8 @@ all-stage[+id+]-[+prefix+][+module+]: configure-stage[+id+]-[+prefix+][+module+] LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"[+ ELSE prefix +] \ CFLAGS="$(STAGE[+id+]_CFLAGS)" \ GENERATOR_CFLAGS="$(STAGE[+id+]_GENERATOR_CFLAGS)" \ - CXXFLAGS="$(STAGE[+id+]_CXXFLAGS)"[+ IF prev +] \ + CXXFLAGS="$(STAGE[+id+]_CXXFLAGS)"[+ IF (= (get "module") "gcc") +] \ + GDCFLAGS="$(STAGE[+id+]_GDCFLAGS)"[+ ENDIF +][+ IF prev +] \ LIBCFLAGS="$(STAGE[+id+]_CFLAGS)"[+ ELSE prev +] \ LIBCFLAGS="$(LIBCFLAGS)"[+ ENDIF prev +][+ ENDIF prefix +] \ CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \