No rule to make foo.cpp needed by foo.o ???

Martin Buchholz martinrb at google.com
Tue Dec 22 02:53:10 UTC 2009


On Mon, Dec 21, 2009 at 18:42, David Holmes - Sun Microsystems
<David.Holmes at sun.com> wrote:
> Igor Nekrestyanov said the following on 12/22/09 11:45:
>>
>> Check the output of "gnumake -dd" looking for everything related to files
>> in question. It will tell you why rules are not fired.
>
> Surprisingly the answer was because "Foo.cpp does not exist" which of course
> is nonsense.
>
> I'm guessing this must be some kind of NFS caching issue. I rsync the
> updated files to the build location and then run the build on another
> machine.

If the problem goes away if you add a
sleep 30
after the NFS copy, you are probably right.
NFS has always worked thus.

It is just like the consistency considerations with the
java memory model, except that the cache lifetimes
are typically much longer.

You can fix it by rsyncing to the machine where the
build will happen, so that there will be no caching
of stale bits.

Martin



More information about the build-dev mailing list