This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: gcc/Makefile.in dependency messup
- From: Steven Bosscher <stevenb dot gcc at gmail dot com>
- To: Ralf Wildenhues <Ralf dot Wildenhues at gmx dot de>, gcc-patches at gcc dot gnu dot org
- Date: Thu, 27 May 2010 07:48:22 +0200
- Subject: Re: gcc/Makefile.in dependency messup
- References: <20100527052901.GC16781@gmx.de>
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