[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Unnecessary rebuilds by GNU Make version 3.76.1 on RH5.2 (Linux 2.0.

From: Paul D. Smith
Subject: Re: Unnecessary rebuilds by GNU Make version 3.76.1 on RH5.2 (Linux 2.0.36) systems
Date: 25 Oct 2000 00:43:56 -0400
User-agent: Gnus/5.0807 (Gnus v5.8.7) Emacs/20.7

%% address@hidden (Naveen Patil) writes:

I love my Tivo! :)

  np> We use GNU Make v3.76.1 that comes with a Red Hat 5.2 (Linux
  np> 2.0.36) system on a i386 box.

  np> I had a source tree which was last built on 09/02/2000; when I
  np> rebuilt today (10/23) after updating a few source files, I find
  np> that make rebuilt almost all the *.o(s) even though their source
  np> files listed in corresponding *.d dependency files didn't
  np> change. I've checked this with a few *.o(s), in all their cases,
  np> their source hasn't changed.

  np> After that rebuild, a "make -n" says that nothing needs to be
  np> rebuilt, and I'm puzzled make decided to rebuild so much when I
  np> ran it the 1st time on 10/23.

There's almost nothing helpful I can say about this.  Make's algorithm
for determining out-of-dateness is quite simple, it just does a stat()
on each file in question and compares the mtime.  I've not had any
reports that I recall about GNU make spuriously rebuilding things, even
versions as old as 3.76.1.

When this happens it's usually because the targets in question were
depending on some file you didn't expect, and that was updated.

If you provide me with the dependency list you have for a sample .o that
rebuilt (by this I mean cut and paste what the makefile uses), I might
be able to see something.  Also, if you run "make -d" (redirect the
output, there's a lot of it) or "make -p" you might be able to see some
strange prerequisite for these targets that you didn't expect (maybe a
makefile or something else).

If you can get this to reproduce at all, then I can definitely help you
resolve the confusion.

 Paul D. Smith <address@hidden>          Find some GNU make tips at:
 http://www.gnu.org                      http://www.paulandlesley.org/gmake/
 "Please remain calm...I may be mad, but I am a professional." --Mad Scientist

reply via email to

[Prev in Thread] Current Thread [Next in Thread]