On Sat, Sep 28, 2002 at 12:09:14PM +0300, Oleg Goldshmidt wrote:
> Mark Veltzer <[EMAIL PROTECTED]> writes:
> 
> > If you think that this does not take H files into consideration you are 
> > wrong. As Muli rightly states ccache takes the output of gcc -M which means 
> > the ENTIRE source that the compiler sees (H files and all AFTER 
> > preprocessor). In addition, it also stores the flags used for the compilation 
> > in the cache. I would rarely see a situation where you would say that YOU DO 
> > want the object recompiled unless you switched compilers (I'm not sure but I 
> > think that there are plans for ccache to store the compiler version too so if 
> > you switch compilers it will detect it and not use the cache. Muli ?!?).
> 
> I know all that, and I wrote myself ccache worked on preprocessed
> files. But what if for some reason I made the file dependent on
> something that is not under the compiler's control - a file that is
> not C. Then if that file changed, make would recompile, but ccache
> would grab the existing object from the cache.

True. BUT - ccache would only compile if the preprocessed source is
exactly equivalent before and after. If the preprocessed source is
exactly the same, is there any meaning to the dependency that caused
the recompilation?

> Why would I want that? For instance, because I would want a generated
> compilation timestamp to change... I can't really think of good
> examples, but ccache works, AFAIK, on the basis of MD5 of the
> preprocessed C sources, and make can update the build on the basis of
> timestamps of dependencies external to C sources as well.

Corrrect - but can you think of any example where the preprocessed
source will remain exactly the same, but the code would still need to
be recompiled? It seems a contradiction. 
-- 
Muli Ben-Yehuda                                 http://www.mulix.org/   
[EMAIL PROTECTED]:~$ sctrace strace /bin/foo      http://syscalltrack.sf.net/
Quis custodes ipsos custodiet?

Attachment: msg22226/pgp00000.pgp
Description: PGP signature

Reply via email to