On Fri, 16 Sept 2022 at 19:49, Sergei Trofimovich <sly...@gmail.com> wrote: > > From: Sergei Trofimovich <siarh...@google.com> > > i386-builtin-types.inc is included indirectly via i386-builtins.h > into 4 files: i386.cc i386-builtins.cc i386-expand.cc i386-features.cc > > Only i386.cc dependency was present in gcc/config/t-i386 makefile. > > As a result parallel builds occasionally fail as: > > g++ ... -o i386-builtins.o ... > ../../gcc-13-20220911/gcc/config/i386/i386-builtins.cc > In file included from > ../../gcc-13-20220911/gcc/config/i386/i386-builtins.cc:92: > ../../gcc-13-20220911/gcc/config/i386/i386-builtins.h:25:10: > fatal error: i386-builtin-types.inc: No such file or directory > 25 | #include "i386-builtin-types.inc" > | ^~~~~~~~~~~~~~~~~~~~~~~~ > compilation terminated. > make[3]: *** [../../gcc-13-20220911/gcc/config/i386/t-i386:54: > i386-builtins.o] > Error 1 shuffle=1663349189 > > gcc/ > * config/i386/t-i386: Add build-time dependencies against > i386-builtin-types.inc to i386-builtins.o, i386-expand.o, > i386-features.o. > --- > gcc/config/i386/t-i386 | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/gcc/config/i386/t-i386 b/gcc/config/i386/t-i386 > index 4e2a0efc615..ffdbbdfe8ce 100644 > --- a/gcc/config/i386/t-i386 > +++ b/gcc/config/i386/t-i386 > @@ -62,7 +62,12 @@ i386-features.o: $(srcdir)/config/i386/i386-features.cc > $(COMPILE) $< > $(POSTCOMPILE) > > +# i386-builtin-types.inc is included into i386-builtins.h. > +# Below are direct users of i386-builtins.h: > i386.o: i386-builtin-types.inc > +i386-builtins.o: i386-builtin-types.inc > +i386-expand.o: i386-builtin-types.inc > +i386-features.o: i386-builtin-types.inc > > i386-builtin-types.inc: s-i386-bt ; @true > s-i386-bt: $(srcdir)/config/i386/i386-builtin-types.awk \ > -- > 2.37.2 >
Is it a reasonable approach? Maybe gcc has an equivalent of automake's BUILT_SOURCES to avoid explicit tracking of such dependencies? -- Sergei