On Sun, Jun 02, 2013 at 02:40:28PM -0700, Barret Rhoden wrote:
> On 2013-06-02 at 14:23 Alan Modra wrote:
> > On Sat, Jun 01, 2013 at 10:21:16AM -0700, Barret Rhoden wrote:
> > > It does not fail if the Makefile doesn't
> > > modify a file that it includes.
> > 
> > Doesn't this mean you have a make loop? 
> 
> AFAIK, make reads in the included file once, then attempts to update it
> as a goal, sees it needs updated, and reincludes it since it knows it
> has changed.  At that point, it is up to date, and doesn't re-touch it.
> 
> http://www.gnu.org/software/make/manual/make.html#Remaking-Makefiles

If I run make with your Makefile, it runs for varying amounts of time
before invoking objdump.  make -dm shows make re-execing itself many
times.  Quite clearly make is touching both olderfile and newerfile
many times.  I think you really do have an infinite loop, which for
some unknown reason terminates.  My hypothesis was some sort of
resource starvation, which then also causes the objdump problem.

On my x86_64-linux box (AMD FX-8120 8 core)
rm akaros-kernel.asm; make -dm > /tmp/dump 2>&1
ls -l /tmp/dump
-rw-r--r-- 1 alan alan 2055825637 Jun  2 22:00 /tmp/dump
grep Re-exec /tmp/dump | wc -l
54492

On a powerpc64-linux box (old mac G5) make seems to run forever.

-- 
Alan Modra
Australia Development Lab, IBM

_______________________________________________
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils

Reply via email to