[patch] Define GENERATOR_FILE explicitly for the host gengtype objects

Steven Bosscher stevenb.gcc@gmail.com
Sat Jul 7 15:59:00 GMT 2012


Hello,

Since r177358, a host executable gengtype is built so that plugins can
use the GTY markers.

Even for the host, gengtype is a GENERATOR_FILE, but since the build-%
rule doesn't apply to host objects, gengtype was being built without
it. So when I removed coretypes.h from double-int.h, my build failed.

Fixed by adding -DGENERATOR_FILE explicitly to the host gengtype*.o objects.

Bootstrapped on powerpc64-unknown-linux-gnu. OK for trunk?

Ciao!
Steven

	* Makefile.in (gengtype-lex.o, gengtype-parse.o, gengtype-state.o,
	gengtype.o): Add -DGENERATOR_FILE manually for host gengtype objects.

Index: Makefile.in
===================================================================
--- Makefile.in	(revision 189348)
+++ Makefile.in	(working copy)
@@ -3818,23 +3818,40 @@ build/genextract.o : genextract.c $(RTL_BASE_H) $(
 build/genflags.o : genflags.c $(RTL_BASE_H) $(OBSTACK_H) $(BCONFIG_H)	\
   $(SYSTEM_H) coretypes.h $(GTM_H) errors.h $(READ_MD_H) gensupport.h
 build/gengenrtl.o : gengenrtl.c $(BCONFIG_H) $(SYSTEM_H) rtl.def
+
+# The gengtype generator program is special: Two versions are built.
+# One is for the build machine, and one is for the host to allow
+# plugins to define their types and generate the supporting GGC
+# datastructures and routines with GTY markers.
+# The host object files depend on CONFIG_H, and the build objects
+# on BCONFIG_H.  For the build objects, add -DGENERATOR_FILE manually,
+# the build-%: rule doesn't apply to them.
+
 gengtype-lex.o build/gengtype-lex.o : gengtype-lex.c gengtype.h $(SYSTEM_H)
 gengtype-lex.o: $(CONFIG_H)
+CFLAGS-gengtype-lex.o += -DGENERATOR_FILE
 build/gengtype-lex.o: $(BCONFIG_H)
+
 gengtype-parse.o build/gengtype-parse.o : gengtype-parse.c gengtype.h \
   $(SYSTEM_H)
 gengtype-parse.o: $(CONFIG_H)
+CFLAGS-gengtype-parse.o += -DGENERATOR_FILE
 build/gengtype-parse.o: $(BCONFIG_H)
+
 gengtype-state.o build/gengtype-state.o: gengtype-state.c $(SYSTEM_H) \
   gengtype.h errors.h double-int.h version.h $(HASHTAB_H) $(OBSTACK_H) \
   $(XREGEX_H)
 gengtype-state.o: $(CONFIG_H)
+CFLAGS-gengtype-state.o += -DGENERATOR_FILE
 build/gengtype-state.o: $(BCONFIG_H)
+
 gengtype.o build/gengtype.o : gengtype.c $(SYSTEM_H) gengtype.h 	\
   rtl.def insn-notes.def errors.h double-int.h version.h $(HASHTAB_H) \
   $(OBSTACK_H) $(XREGEX_H)
 gengtype.o: $(CONFIG_H)
+CFLAGS-gengtype.o += -DGENERATOR_FILE
 build/gengtype.o: $(BCONFIG_H)
+
 build/genmddeps.o: genmddeps.c $(BCONFIG_H) $(SYSTEM_H) coretypes.h	\
   errors.h $(READ_MD_H)
 build/genmodes.o : genmodes.c $(BCONFIG_H) $(SYSTEM_H) errors.h		\



More information about the Gcc-patches mailing list