No rule to make foo.cpp needed by foo.o ???
David Holmes - Sun Microsystems
David.Holmes at Sun.COM
Wed Dec 23 05:55:30 UTC 2009
Martin Buchholz said the following on 12/22/09 12:53:
> 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
> If the problem goes away if you add a
> sleep 30
> after the NFS copy, you are probably right.
> NFS has always worked thus.
No it's not that simple. If I update 5 files the first build reports the
1st is missing, the second reports the 2nd is missing and so forth and a
lot longer than 30 seconds has passed in between. :(
> It is just like the consistency considerations with the
> java memory model, except that the cache lifetimes
> are typically much longer.
You mean I need to declare my files as volatile ? ;-)
> You can fix it by rsyncing to the machine where the
> build will happen, so that there will be no caching
> of stale bits.
Will have to try that.
More information about the build-dev