Hi! I've noticed make: Circular build/genrvv-type-indexer.o <- gtype-desc.h dependency dropped.
The following patch fixes that. The RTL_BASE_H variable includes a lot of headers which the generator doesn't include, including gtype-desc.h. I've preprocessed it and checked all gcc/libiberty headers against what is included in the other dependency variables and here is what I found: 1) coretypes.h includes align.h, poly-int.h and poly-int-types.h which weren't listed (most of dependencies are thankfully done automatically, so it isn't that big deal except for these generators and the like) 2) system.h includes filenames.h (already listed) but filenames.h includes hashtab.h; instead of adding FILENAMES_H I've just added the dependency to SYSTEM_H 3) $(RTL_BASE_H) wasn't really needed at all and insn-modes.h is already included in $(CORETYPES_H) I'll bootstrap/regtest this on x86_64-linux tonight, ok for trunk? 2023-04-06 Jakub Jelinek <ja...@redhat.com> * Makefile.in (CORETYPES_H): Depend on align.h, poly-int.h and poly-int-types.h. (SYSTEM_H): Depend on $(HASHTAB_H). * config/riscv/t-riscv (build/genrvv-type-indexer.o): Remove unused dependency on $(RTL_BASE_H), remove redundant dependency on insn-modes.h. --- gcc/Makefile.in.jj 2023-03-21 11:04:19.034831460 +0100 +++ gcc/Makefile.in 2023-04-06 10:55:58.457207062 +0200 @@ -945,7 +945,8 @@ TARGET_DEF_H = target-def.h target-hooks C_TARGET_DEF_H = c-family/c-target-def.h c-family/c-target-hooks-def.h \ $(TREE_H) $(C_COMMON_H) $(HOOKS_H) common/common-targhooks.h CORETYPES_H = coretypes.h insn-modes.h signop.h wide-int.h wide-int-print.h \ - insn-modes-inline.h $(MACHMODE_H) double-int.h + insn-modes-inline.h $(MACHMODE_H) double-int.h align.h poly-int.h \ + poly-int-types.h RTL_BASE_H = $(CORETYPES_H) rtl.h rtl.def reg-notes.def \ insn-notes.def $(INPUT_H) $(REAL_H) statistics.h $(VEC_H) \ $(FIXED_VALUE_H) alias.h $(HASHTAB_H) @@ -998,7 +999,8 @@ C_COMMON_H = c-family/c-common.h c-famil C_PRAGMA_H = c-family/c-pragma.h $(CPPLIB_H) C_TREE_H = c/c-tree.h $(C_COMMON_H) $(DIAGNOSTIC_H) SYSTEM_H = system.h hwint.h $(srcdir)/../include/libiberty.h \ - $(srcdir)/../include/safe-ctype.h $(srcdir)/../include/filenames.h + $(srcdir)/../include/safe-ctype.h $(srcdir)/../include/filenames.h \ + $(HASHTAB_H) PREDICT_H = predict.h predict.def CPPLIB_H = $(srcdir)/../libcpp/include/line-map.h \ $(srcdir)/../libcpp/include/cpplib.h --- gcc/config/riscv/t-riscv.jj 2023-03-31 09:26:47.996219555 +0200 +++ gcc/config/riscv/t-riscv 2023-04-06 10:56:48.166479250 +0200 @@ -102,8 +102,8 @@ $(common_out_file): $(srcdir)/config/ris $(srcdir)/config/riscv/riscv-protos.h \ $(srcdir)/config/riscv/riscv-subset.h -build/genrvv-type-indexer.o: $(srcdir)/config/riscv/genrvv-type-indexer.cc $(RTL_BASE_H) $(BCONFIG_H) $(SYSTEM_H) \ - $(CORETYPES_H) $(GTM_H) errors.h $(GENSUPPORT_H) insn-modes.h +build/genrvv-type-indexer.o: $(srcdir)/config/riscv/genrvv-type-indexer.cc $(BCONFIG_H) $(SYSTEM_H) \ + $(CORETYPES_H) $(GTM_H) errors.h $(GENSUPPORT_H) build/genrvv-type-indexer$(build_exeext): build/genrvv-type-indexer.o +$(LINKER_FOR_BUILD) $(BUILD_LINKERFLAGS) $(BUILD_LDFLAGS) -o $@ \ Jakub