This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: gcc/Makefile.in dependency messup


On Thu, May 27, 2010 at 7:29 AM, Ralf Wildenhues <Ralf.Wildenhues@gmx.de> wrote:
> Hello,
>
> one of the recent patches to the build system broke dependencies:
>
> make[3]: Entering directory `/tmp/build-gcc/gcc'
> make[3]: Circular build/gencondmd.o <- insn-flags.h dependency dropped.
> make[3]: Circular build/gencondmd.o <- insn-flags.h dependency dropped.
>
> Something like this is bad, because it usually has the potential to
> break parallel builds in subtle ways. ?Please check for such output when
> bootstrapping. ?It is very simple to do afterwards, too, in an up to
> date build tree:
>
> $ cd gcc && make
> make: Circular build/gencondmd.o <- insn-flags.h dependency dropped.
> make: Circular build/gencondmd.o <- insn-flags.h dependency dropped.
> $

This is probably mine, gencondmd depends on FUNCTION_H, which includes
$TM_H, which includes insn-flags.h.  The TM_H dependency is new in
Makefile, but it always really existed. I think this "worked" before
only because everything that includes function.h already inherited the
TM_H dependency in other ways.

Could you please try and see if removing TM_H from FUNCTION_H removes
the warning from make?

The fix would be to make function.h independent of tm.h again.  Right
now, function.h includes tm.h for CUMULATIVE_ARGS, but in fact the
whole part of function.h with rtl data structure definitions could be
split off to another place (function-rtl.h, or emit-rtl.h -- tbd).

Sorry for the inconvenience.

Ciao!
Steven


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]