diff mbox series

[committed] d: Use COMPILER_FOR_BUILD to build all D front-end generator programs

Message ID 20210328155222.2718515-1-ibuclaw@gdcproject.org
State New
Headers show
Series [committed] d: Use COMPILER_FOR_BUILD to build all D front-end generator programs | expand

Commit Message

Iain Buclaw March 28, 2021, 3:52 p.m. UTC
Hi,

It was noticed that the wrong headers were being included for the
generator programs built for the D front-end.  Now COMPILER_FOR_BUILD
and BUILD_COMPILERFLAGS are used to compile them, so that GENERATOR_FILE
will be correctly defined.

Bootstrapped on x86_64-linux-gnu, and committed to mainline.

Regards,
Iain.

---
gcc/d/ChangeLog:

	* Make-lang.in (DMDGEN_COMPILE): Remove.
	(d/%.dmdgen.o): Use COMPILER_FOR_BUILD and BUILD_COMPILERFLAGS to
	build all D generator programs.
	(D_SYSTEM_H): New macro.
	(d/idgen.dmdgen.o): Add dependencies to build.
	(d/impcnvgen.dmdgen.o): Likewise.
	* d-system.h: Include bconfig.h if GENERATOR_FILE is defined.
---
 gcc/d/Make-lang.in | 14 +++++++++++---
 gcc/d/d-system.h   |  4 ++++
 2 files changed, 15 insertions(+), 3 deletions(-)
diff mbox series

Patch

diff --git a/gcc/d/Make-lang.in b/gcc/d/Make-lang.in
index b0fce06e507..75857d81ec7 100644
--- a/gcc/d/Make-lang.in
+++ b/gcc/d/Make-lang.in
@@ -52,7 +52,6 @@  d-warn = $(filter-out -pedantic -Woverloaded-virtual, $(STRICT_WARN))
 # Also filter out warnings for missing format attributes in the D Frontend.
 DMD_WARN_CXXFLAGS = $(filter-out -Wmissing-format-attribute, $(WARN_CXXFLAGS))
 DMD_COMPILE = $(subst $(WARN_CXXFLAGS), $(DMD_WARN_CXXFLAGS), $(COMPILE))
-DMDGEN_COMPILE = $(subst $(COMPILER), $(COMPILER_FOR_BUILD), $(DMD_COMPILE))
 
 # D Frontend object files.
 D_FRONTEND_OBJS = \
@@ -360,6 +359,15 @@  d/id.h: d/id.c
 d/impcnvtab.c: d/impcnvgen$(build_exeext)
 	cd d && ./impcnvgen$(build_exeext)
 
+# Compile the generator programs.
 d/%.dmdgen.o: $(srcdir)/d/dmd/%.c
-	$(DMDGEN_COMPILE) $(D_INCLUDES) $<
-	$(POSTCOMPILE)
+	$(COMPILER_FOR_BUILD) -c $(BUILD_COMPILERFLAGS) $(D_INCLUDES) \
+		$(BUILD_CPPFLAGS) -o $@ $<
+
+# Header dependencies for the generator programs.
+D_SYSTEM_H = d/dmd/root/dsystem.h d/d-system.h
+
+d/idgen.dmdgen.o: d/dmd/idgen.c $(D_SYSTEM_H) $(BCONFIG_H) $(SYSTEM_H)
+
+d/impcnvgen.dmdgen.o: d/dmd/impcnvgen.c d/dmd/mtype.h $(D_SYSTEM_H) \
+	$(BCONFIG_H) $(SYSTEM_H)
diff --git a/gcc/d/d-system.h b/gcc/d/d-system.h
index 685be25b729..a6a9fccc6b8 100644
--- a/gcc/d/d-system.h
+++ b/gcc/d/d-system.h
@@ -19,7 +19,11 @@ 
 #ifndef GCC_D_SYSTEM_H
 #define GCC_D_SYSTEM_H
 
+#ifdef GENERATOR_FILE
+#include "bconfig.h"
+#else
 #include "config.h"
+#endif
 #include "system.h"
 
 /* Used by the dmd front-end to determine if we have POSIX-style IO.  */