[ccache] ccache version 3.1 has been released

Joel Rosdahl joel at rosdahl.net
Thu Sep 16 11:30:39 MDT 2010

I'm happy to announce ccache version 3.1, which contains new features
and some bug fixes.

Details may be read in the release notes:


Source archives are available here:


The source archives have been signed with my OpenPGP key (BB845E97):


You can run "gpg --verify ccache-3.1.tar.*.asc" to check the source
archive integrity after download.

Changes since version 3.0.1:

New features and improvements:

  - Added support for hashing the output of a custom command (e.g.
    "$compiler --version") to identify the compiler instead of stat-ing
    or hashing the compiler binary. This can improve robustness when the
    compiler (as seen by ccache) actually isn't the real compiler but
    another compiler wrapper.

  - Added support for caching compilations that use precompiled headers.
    (See the manual for important instructions regarding this.)

  - Locking of the files containing statistics counters is now done
    using symlinks instead of POSIX locks. This should make ccache
    behave a lot better on file systems where POSIX locks are slow or
    broken (e.g. NFS on some systems).

  - Manifest files are now updated without the need of taking locks.

  - Updates of statistics counters are now always done in one of the
    sub-level statistics files. This reduces lock contention, which
    especially improves performance on slow NFS mounts.

  - Reading and writing of statistics counters has been made
    forward-compatible (unknown counters are retained).

  - Files are now read without using mmap(). This has two benefits: it's
    more robust against file changes during reading and it improves
    performance on poor systems where mmap() doesn't use the disk cache.

  - Added ".cp" and ".CP" as known C++ suffixes.

  - Improved logging.

  - Added "-install_name" as an option known to take an argument. (This
    improves statistics when using the Darwin linker.)

Bug fixes:

  - Non-fatal error messages are now never printed to stderr but logged

  - Fixed a bug affecting failing commands when "--ccache-skip" is used.

  - Made "--ccache-skip" work for all options.

  - EINTR is now handled correctly.


  - Work on porting ccache to win32 (native), mostly done by Ramiro
    Polla. The port is not yet finished, but will hopefully be complete
    in some subsequent release.

  - Added a "--nostats" flag to the performance benchmark program.

  - Made the performance benchmark program more accurate when measuring
    cache hits.

  - Added a new test framework for unit tests written in C.

  - Got rid of "configure-dev"; dev mode is now given by "dev.mk.in"

  - Improved documentation on how to combine ccache with other compiler
    wrappers (like "distcc").

  - New "LICENSE.txt" file with licensing and copyright details about
    bundled source code.

  - New "AUTHORS.txt" file with a list of ccache contributors.

  - New "HACKING.txt" file with some notes about ccache code

-- Joel

More information about the ccache mailing list