[ccache] ccache version 3.2 has been released

Joel Rosdahl joel at rosdahl.net
Mon Nov 17 12:26:12 MST 2014

I'm happy to announce ccache version 3.2, which contains some major new
features and various other improvements.

Details may be read in the release notes:


Source archives are available here:


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


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

New features and improvements:

- Added support for configuring ccache via one or several configuration
  files instead of via environment variables. Environment variables
  still have priority but are no longer the recommended way of
  customizing ccache behavior. See the manual for more information.

- Added support for compiler error/warning messages with color.

- Made creation of temporary directories and cache directories smarter
  to avoid unnecessary `stat` calls.

- Improved efficiency of the algorithm that scans for `__DATE_` and
  `__TIME__` tokens in the hashed source code.

- Added support for several binaries (separated by space) in

- The `-c` option is no longer passed to the preprocessor. This fixes
  problems with clang and Solaris's C++ compiler.

- ccache no longer passes preprocessor options like `-D` and `-I` to the
  compiler when compiling preprocessed output. This fixes warnings
  emitted by clang.

- Compiler options `-fprofile-generate`, `-fprofile-arcs`,
  `-fprofile-use` and `-fbranch-probabilities` are now handled without

- Added support for clang's `--serialize-diagnostic` option, storing the
  diagnostic file (`.dia`) in the cache.

- Added support for precompiled headers when using clang.

- Added support for clang `.pth` (pretokenized header) files.

- Changed the `-x` language option to use the new objective C standard
  for GCC and clang.

- On a cache miss, ccache now instructs the compiler to create the
  object file at the real destination and then copies the file into the
  cache instead of the other way around. This is needed to support
  compiler options like `-fprofile-arcs` and `--serialize-diagnostics`.

- ccache now checks that included files' ctimes aren't too new. This
  check can be turned off by adding `include_file_ctime` to the ``ccache
  sloppiness'' setting.

- Added possibility to get cache hits based on filename, size, mtime and
  ctime only. On other words, source code files are not even read, only
  stat-ed. This operation mode is opt-in by adding `file_stat_matches`
  to the ``ccache sloppiness'' setting.

- The filename part of options like `-Wp,-MDfilename` is no longer
  included in the hash since the filename doesn't have any bearing on
  the result.

- Added a ``read-only direct'' configuration setting, which is like the
  ordinary read-only setting except that ccache will only try to
  retrieve results from the cache using the direct mode, not the
  preprocessor mode.

- The display and interpretation of cache size has been changed to use
  SI units.

- Default cache size is now 5 GB (was previously 1 GiB).

- Added configuration option to set the compression level of compressed
  object files in the cache.

- Added support for `@file` and `- at file` arguments (reading options from
  a file).

- `-Wl,` options are no longer included in the hash since they don't
  affect compilation.

- Bail out on too hard compiler option `-Wp,-P`.

- Optimized MD4 calculation code on little-endian systems.

- Various improvements and fixes on win32.

- Improved logging to the ccache log file.

- Added `--dump-manifest` command-line option for debugging purposes.

- Added `--with-bundled-zlib` configure option.

- Upgraded bundled zlib to version 1.2.8.

- Improved `dev.mk` to be more platform independent.

- Made the test suite work with clang and gcc-llvm on OS X.

- Various other improvements of the test suite.

Bug fixes:

- Any previous `.stderr` is now removed from the cache when recaching.

- Fixed an issue when handling the `-arch` compiler option with an

- Fixed race condition when creating the initial cache directory.

- Fixed test suite failures when `CC` is a ccache-wrapped compiler.

-- Joel

More information about the ccache mailing list