[ccache] Questions about CCACHE and shared cache

William S Fulton wsf at fultondesigns.co.uk
Tue Sep 15 15:59:42 MDT 2009


Vincent Dupuis wrote:
> Hi,
>
> I would like to share the cache of our continuous build server in read only.
>
> I think I need to set those variables:
>
> On each developer machine.
>
> CCACHE_READONLY = 1
> CCACHE_NOLINK = 1
> CCACHE_DIR = /share/builds/ccache
> CCACHE_TEMPDIR = /tmp/ccache
> CCACHE_LOGFILE = /tmp/ccache/ccache.log
> CCACHE_NOSTATS = 1
>
> On the build server.
>
> CCACHE_DIR = /share/builds/ccache
> CCACHE_RECACHE = 1
> CCACHE_LOGFILE = /buildResults/yyyymmdd/ccache.log
>
>   
I don't see why CCACHE_RECACHE is necessary. The files are cached only 
if they need to be. This option will just slow down your build server.

> Questions:
>
> The CCACHE_NOLINK variable is not listed in the ccache 
> environment variables in the man page.
> Is it a special variable reserved for sharing the cache?
>
>   
There is no CCACHE_NOLINK env variable in the source that I can see. The 
latest debian version of the documentation has a patch to fix these docs 
and corrects it to unsetting CCACHE_HARDLINK.
> When using the CCACHE_READONLY on the developper
> machine, are the stats are off by default because the 
> stats are written in the cache?
> Do I need to set the CCACHE_NOSTATS?
>
> Do the log file will work locally on the developer computer
> even if with the CCACHE_NOSTATS?
>
> In the man page, it is written:
>     The default is the same as CCACHE_DIR. Note that the 
>     CCACHE_TEMPDIR  path must be on the same filesystem 
>     as the CCACHE_DIR path, so that renames of files between 
>     the two directories can work
> I'm not sure what does it means in my situation. Did I set
> correctly the CCACHE_TEMPDIR varible on the developer's machine?
Use df on each directory path to see if the filesystems match.
> ccache uses the "real compilers size and modification time"
> in is hash. What does it means? Executable size?
> Modification time of what?
>   
Yes executable size and time stamp of the executable file.
> Do I need to set the CCACHE_TEMPDIR on the server side?
>
> How ccache deals with the current working directory?
> The developers and the server current working directory can 
> be different and so the debugging information inside.
>
> How ccache deals with the macros '__FILE__' , '__DATE__' ,
> '__TIME__' ?
>
>
>   
When the preprocessor gives different output for those variables, then 
you get a cache miss.

William



More information about the ccache mailing list