2010-04-24 10:31:10 +02:00
|
|
|
ccache news
|
|
|
|
===========
|
2009-11-01 19:36:17 +01:00
|
|
|
|
2010-04-24 10:31:10 +02:00
|
|
|
|
|
|
|
ccache 3.0pre1 (unreleased)
|
|
|
|
---------------------------
|
|
|
|
|
|
|
|
Changes since version 2.4.
|
|
|
|
|
|
|
|
|
|
|
|
General
|
|
|
|
~~~~~~~
|
|
|
|
|
|
|
|
- ccache is now licensed under the GNU Public License (GPL) version 3 or
|
|
|
|
later.
|
|
|
|
|
|
|
|
|
|
|
|
Upgrade notes
|
|
|
|
~~~~~~~~~~~~~
|
2009-11-01 19:36:17 +01:00
|
|
|
|
2010-02-27 23:45:22 +01:00
|
|
|
- The way the hashes are calculated has changed, so you won't get cache
|
|
|
|
hits for compilation results stored by older ccache versions.
|
2009-11-14 16:14:55 +01:00
|
|
|
|
2010-04-24 10:31:10 +02:00
|
|
|
- The statistics counters ``files in cache'' and ``cache size'' now only
|
|
|
|
count object files. (Previously, files containing cached standard error
|
|
|
|
output were counted as well.) The existing values of the two counters
|
|
|
|
will be erroneous at first after the upgrade, but will correct themselves
|
|
|
|
eventually when enough cleanups have been made, or when you run +ccache
|
|
|
|
--cleanup+.
|
2009-11-26 23:36:19 +01:00
|
|
|
|
2010-04-24 10:31:10 +02:00
|
|
|
- The ``max file'' and ``max cache size'' settings now specify thresholds
|
|
|
|
for object files count and size.
|
2009-11-01 20:17:39 +01:00
|
|
|
|
2010-02-27 23:45:22 +01:00
|
|
|
- Because of the changes mentioned above, you might as well clear the old
|
2010-04-24 10:31:10 +02:00
|
|
|
cache directory with `ccache --cleanup` if you want, unless you plan to
|
|
|
|
keep using an older ccache version.
|
|
|
|
|
2009-11-01 19:36:17 +01:00
|
|
|
|
2010-04-24 10:31:10 +02:00
|
|
|
New features and improvements
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
2009-11-01 19:36:17 +01:00
|
|
|
|
2010-04-24 10:31:10 +02:00
|
|
|
- ccache now has a ``direct mode'' where it computes a hash of the source
|
2010-04-27 17:25:41 +02:00
|
|
|
code (including all included files) and compiler arguments without
|
|
|
|
running the preprocessor. By not running the preprocessor, CPU usage is
|
2010-04-27 22:41:38 +02:00
|
|
|
reduced; the speed is somewhere between 1 and 5 times that of ccache
|
|
|
|
running in traditional mode, depending on the circumstances. The speedup
|
|
|
|
will be higher when I/O is fast (e.g., when files are in the disk cache).
|
|
|
|
The direct mode can be disabled by setting +CCACHE_NODIRECT+.
|
2009-11-01 20:17:39 +01:00
|
|
|
|
2010-04-24 21:39:23 +02:00
|
|
|
- Support has been added for rewriting absolute paths to relative paths
|
|
|
|
when hashing, in order to increase cache hit rate when building the same
|
|
|
|
source code in different directories even when compiling with `-g` and
|
|
|
|
when using absolute include directory paths. This is done by setting the
|
|
|
|
`CCACHE_BASEDIR` environment variable to an absolute path that specifies
|
|
|
|
which paths to rewrite.
|
2009-11-01 20:17:39 +01:00
|
|
|
|
2010-04-29 18:25:26 +02:00
|
|
|
- Object files are now optionally stored compressed in the cache. The
|
2010-02-27 23:45:22 +01:00
|
|
|
runtime cost is negligible, and more files will fit in the ccache
|
2010-04-29 18:25:26 +02:00
|
|
|
directory and in the disk cache. Set `CCACHE_COMPRESS` to enable object
|
|
|
|
file compression. Note that you can't use compression in combination with
|
|
|
|
the hard link feature.
|
2009-11-21 11:30:45 +01:00
|
|
|
|
2010-04-24 10:31:10 +02:00
|
|
|
- A `CCACHE_COMPILERCHECK` option has been added. This option tells ccache
|
2010-02-28 16:41:30 +01:00
|
|
|
what compiler-identifying information to hash to ensure that results
|
|
|
|
retrieved from the cache are accurate. Possible values are: none (don't
|
|
|
|
hash anything), mtime (hash the compiler's mtime and size) and content
|
|
|
|
(hash the content of the compiler binary). The default is mtime.
|
2009-12-10 18:05:19 +01:00
|
|
|
|
2010-04-28 22:30:55 +02:00
|
|
|
- It is now possible to specify extra files whose contents should be
|
|
|
|
included in the hash sum by setting the `CCACHE_EXTRAFILES` option.
|
|
|
|
|
2010-02-27 23:45:22 +01:00
|
|
|
- Temporary files are now created in the directory they will end up in.
|
|
|
|
This makes ccache more friendly to Linux's directory layout.
|
2009-12-10 22:19:00 +01:00
|
|
|
|
2010-02-27 23:45:22 +01:00
|
|
|
- Added support for long command-line options.
|
2009-12-12 21:27:11 +01:00
|
|
|
|
2010-04-24 10:31:10 +02:00
|
|
|
- A `CACHEDIR.TAG` file is now created in the cache directory. See
|
2010-02-27 23:45:22 +01:00
|
|
|
<http://www.brynosaurus.com/cachedir/>.
|
2010-02-22 08:36:40 +01:00
|
|
|
|
2010-04-24 10:31:10 +02:00
|
|
|
- Messages printed to the debug log (specified by `CCACHE_LOGFILE`) have
|
|
|
|
been improved.
|
2009-12-13 15:11:17 +01:00
|
|
|
|
2010-04-24 10:31:10 +02:00
|
|
|
- By default, ccache now puts temporary files in `$CCACHE_DIR/tmp` to avoid
|
2010-02-27 23:45:22 +01:00
|
|
|
cluttering the top directory.
|
2010-01-06 14:39:39 +01:00
|
|
|
|
2010-02-27 23:45:22 +01:00
|
|
|
- Improved the test suite and added tests for most of the new
|
|
|
|
functionality. It's now also possible to specify a subset of tests to
|
|
|
|
run.
|
2010-02-27 14:01:14 +01:00
|
|
|
|
2010-02-27 23:45:22 +01:00
|
|
|
- Standard error output from the compiler is now only stored in the cache
|
|
|
|
if it's non-empty.
|
2009-11-01 19:36:17 +01:00
|
|
|
|
2010-02-27 23:45:22 +01:00
|
|
|
- If the compiler produces no object file or an empty object file, but
|
|
|
|
gives a zero exit status (could be due to a file system problem, a buggy
|
2010-04-24 10:31:10 +02:00
|
|
|
program specified by `CCACHE_PREFIX`, etc.), ccache copes with it
|
|
|
|
properly.
|
2009-11-01 19:36:17 +01:00
|
|
|
|
2010-02-27 23:45:22 +01:00
|
|
|
- Added installcheck and distcheck make targets.
|
2009-11-01 19:36:17 +01:00
|
|
|
|
2010-02-28 16:41:30 +01:00
|
|
|
- Clarified cache size limit options' semantics.
|
2009-11-01 20:17:39 +01:00
|
|
|
|
2010-02-27 23:45:22 +01:00
|
|
|
- Improved display of cache max size values.
|
2009-11-01 20:17:39 +01:00
|
|
|
|
2010-04-24 10:31:10 +02:00
|
|
|
- For debugging purposes, the variable `CCACHE_VERBOSE` may now be set to
|
2010-03-17 22:20:15 +01:00
|
|
|
make ccache print executed commands to standard output.
|
|
|
|
|
2010-04-28 21:21:42 +02:00
|
|
|
- The following options are no longer hashed in the preprocessor mode:
|
|
|
|
`-imacros`, `-iprefix`, `-iwithprefix`, `-iwithprefixbefore`,
|
|
|
|
`-nostdinc`, `-nostdinc++` and `-U`.
|
|
|
|
|
2010-04-24 10:31:10 +02:00
|
|
|
|
|
|
|
Bug fixes
|
|
|
|
~~~~~~~~~
|
2009-12-02 19:56:17 +01:00
|
|
|
|
2010-02-27 23:45:22 +01:00
|
|
|
- Fixed build on FreeBSD.
|
2009-11-01 20:17:39 +01:00
|
|
|
|
2010-02-27 23:45:22 +01:00
|
|
|
- Improved detection of home directory.
|
2009-12-02 19:56:17 +01:00
|
|
|
|
2010-04-24 10:31:10 +02:00
|
|
|
- User-defined `CPPFLAGS` and `LDFLAGS` are now respected in the Makefile.
|
2009-11-01 20:17:39 +01:00
|
|
|
|
2010-02-27 23:45:22 +01:00
|
|
|
- Fixed NFS issues.
|
2009-11-01 20:17:39 +01:00
|
|
|
|
2010-05-05 22:16:28 +02:00
|
|
|
- Computation of the hash sum has been improved to decrease the risk of
|
|
|
|
hash collisions. For instance, the compiler arguments `-X -Y` and `-X-Y`
|
|
|
|
previously contributed equally to the hash sum.
|
|
|
|
|
2010-04-24 10:31:10 +02:00
|
|
|
- Bail out on too hard compiler options `--coverage`, `-fprofile-arcs`,
|
|
|
|
`-fprofile-generate`, `-fprofile-use`, `-ftest-coverage` and
|
|
|
|
`-save-temps`. Also bail out on `@file` style options.
|
2009-11-01 20:17:39 +01:00
|
|
|
|
2010-04-24 10:31:10 +02:00
|
|
|
- `-MD`/`-MMD` options without `-MT`/`-MF` are now handled correctly.
|
2009-11-01 20:17:39 +01:00
|
|
|
|
2010-04-24 10:31:10 +02:00
|
|
|
- The `-finput-charset` option is now handled correctly.
|
2010-04-12 23:23:38 +02:00
|
|
|
|
2010-04-24 10:31:10 +02:00
|
|
|
- Added support for `-Wp,-MD` and `-Wp,-MMD` options.
|
2009-11-02 19:01:12 +01:00
|
|
|
|
2010-03-04 21:39:34 +01:00
|
|
|
- Debug information containing line numbers of predefined and command-line
|
2010-04-24 10:31:10 +02:00
|
|
|
macros (enabled with the compiler option `-g3`) will now be correct.
|
2010-03-04 21:39:34 +01:00
|
|
|
|
2010-02-27 23:45:22 +01:00
|
|
|
- Corrected LRU cleanup handling of object files.
|
2009-11-21 10:34:04 +01:00
|
|
|
|
2010-04-24 10:31:10 +02:00
|
|
|
- `utimes()` is now used instead of `utime()` when available.
|
2009-12-13 14:30:52 +01:00
|
|
|
|
2010-02-27 23:45:22 +01:00
|
|
|
- Non-writable cache directories are now handled gracefully.
|
2010-02-20 16:04:07 +01:00
|
|
|
|
2010-02-27 23:45:22 +01:00
|
|
|
- Corrected documentation about sharing the cache directory.
|
2010-01-04 20:57:45 +01:00
|
|
|
|
2010-02-27 23:45:22 +01:00
|
|
|
- Fixed compilation warnings from GCC 4.3.
|
2010-02-20 16:04:07 +01:00
|
|
|
|
2010-04-24 10:31:10 +02:00
|
|
|
- The command specified by `CCACHE_PREFIX` is no longer part of the hash.
|
2010-02-20 16:04:07 +01:00
|
|
|
|
2010-02-27 23:45:22 +01:00
|
|
|
- Fixed bad memory access spotted by Valgrind.
|
2010-01-04 20:57:45 +01:00
|
|
|
|
2010-04-24 10:31:10 +02:00
|
|
|
- Fixed a bug in `x_realloc`.
|
2010-02-21 10:03:42 +01:00
|
|
|
|
2010-04-24 10:31:10 +02:00
|
|
|
- Freed memory is no longer referenced when compiling a `.i`/`.ii` file and
|
2010-02-27 23:45:22 +01:00
|
|
|
falling back to running the real compiler.
|
2010-02-21 21:12:55 +01:00
|
|
|
|
2010-04-24 10:31:10 +02:00
|
|
|
- The test suite is now immune to external values of the `CCACHE_*`
|
2010-02-27 23:45:22 +01:00
|
|
|
environment variables.
|