[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