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