Hi, This patch implements STAGE1_GDCFLAGS and others to the configure machinery, allowing the GDCFLAGS for each bootstrap stage of building gdc to be overriden, as is the case with CXXFLAGS for other front-ends.
This is limited to just the generation of recipes for the configure-stage-gcc and all-stage-gcc, as a D compiler is not optionally needed by any other module. OK for mainline? Regards, Iain. --- 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. --- Makefile.in | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ Makefile.tpl | 15 +++++++++++++-- 2 files changed, 64 insertions(+), 2 deletions(-) diff --git a/Makefile.in b/Makefile.in index 966d6045496..b80855ffc78 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) \ @@ -12114,6 +12147,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; \ @@ -12148,6 +12182,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; \ @@ -12182,6 +12217,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; \ @@ -12216,6 +12252,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; \ @@ -12250,6 +12287,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; \ @@ -12284,6 +12322,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; \ @@ -12318,6 +12357,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; \ @@ -12352,6 +12392,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; \ @@ -12386,6 +12427,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; \ @@ -12448,6 +12490,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)" \ @@ -12493,6 +12536,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)" \ @@ -12536,6 +12580,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)" \ @@ -12579,6 +12624,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)" \ @@ -12622,6 +12668,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)" \ @@ -12665,6 +12712,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)" \ @@ -12708,6 +12756,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)" \ @@ -12751,6 +12800,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)" \ @@ -12794,6 +12844,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 da38dca697a..691342b1765 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)" \ -- 2.43.0