[ccache] does ccache include source code modified time into hash?

Andrew Stubbs ams at codesourcery.com
Thu Nov 13 06:27:03 MST 2014

On 13/11/14 01:28, Makson Lee wrote:
> 2014-11-13 4:44 GMT+08:00 Andrew Stubbs <ams at codesourcery.com
> <mailto:ams at codesourcery.com>>:
>     However, it might appropriate to list the factors that can lead to a
>     cache miss, and mention some of the factors that explicitly do not
>     cause a miss.
> Yes, i think the factors that can lead to a cache miss would be enough,
> currently, we are using some kind of version control tool, each time we
> reload the same code and recompile it, we get lots of cache miss, so we
> need that information to find out why cache miss happens, in direct
> mode, maybe a tool can show us all the factors for a source file before
> compile would be help too.

The usual cause is that you don't always use the exact same checkout 
location (pathnames *are* factored into the signatures). CCACHE_BASEDIR 
is designed to fix that, but it does have documented side-effects.

Some compiler flags are also uncachable (or unsupported). You should be 
able to see if that's what you're getting using "ccache -s".

And then, some projects just seems to like to resist caching. The Linux 
kernel is one. You can make once, then make clean, and the cache will 
work, but it will never cache the initial build of a fresh tree. I 
forget why (I did know once), but I seem to recall that there was 
nothing to do about it. Probably there was a timestamp in a generated 
header somewhere.


More information about the ccache mailing list