]> git.ipfire.org Git - thirdparty/ccache.git/commitdiff
Merge branch '3.1-maint' into 3.2-maint
authorJoel Rosdahl <joel@rosdahl.net>
Sat, 7 Mar 2015 15:26:39 +0000 (16:26 +0100)
committerJoel Rosdahl <joel@rosdahl.net>
Sat, 7 Mar 2015 15:26:39 +0000 (16:26 +0100)
* 3.1-maint:
  Prepare for v3.1.11
  Update NEWS.txt
  Tweak copyright years
  Fix comment scanning bug in hash_source_code_string

Conflicts:
NEWS.txt
dev.mk.in
hashutil.c
test.sh
test/test_hashutil.c

1  2 
NEWS.txt
hashutil.c
test.sh

diff --cc NEWS.txt
index 26fb76573c3298f017abafddf3e67988f37850fc,849a10f1146f826365e99cb98a5274ee347d9db8..73d84eca3602a0af6bb77724d7bc228d526e2bd4
+++ b/NEWS.txt
@@@ -2,154 -2,26 +2,176 @@@ ccache new
  ===========
  
  
 +Unreleased
 +----------
 +
 +Bug fixes
 +~~~~~~~~~
 +
 +- Made hash of cached result created with and without `CCACHE_CPP2` different.
 +  This makes it possible to rebuild with `CCACHE_CPP2` set without having to
 +  clear the cache to get new results.
 +
 +- Fixed a bug where ccache deleted clang diagnostics after compiler failures.
 +
 +
 +ccache 3.2.1
 +------------
 +Release date: 2014-12-10
 +
 +
 +Bug fixes
 +~~~~~~~~~
 +
 +- Fixed regression in temporary file handling, which lead to incorrect
 +  permissions for stats, manifest and ccache.conf files in the cache.
 +
 +- `CACHEDIR.TAG` files are now created in the [0-9a-f] subdirectories so that
 +  ccache.conf is not lost in backups.
 +
 +- Made the default cache size suffix `G`, as previously documented.
 +
 +- `-fdiagnostics-color=auto` is now passed to the compiler even if stderr is
 +  redirected. This fixes a problem when, for instance, a configure test probes
 +  if the compiler (wrapped via ccache) supports `-fdiagnostics-color=auto`.
 +
 +- Added missing documentation for `max_files` and `max_size` configuration
 +  options.
 +
 +
 +ccache 3.2
 +----------
 +Release date: 2014-11-17
 +
 +
 +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 `CCACHE_PREFIX`.
 +
 +- 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 bailing.
 +
 +- 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 `-@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 argument.
 +
 +- Fixed race condition when creating the initial cache directory.
 +
 +- Fixed test suite failures when `CC` is a ccache-wrapped compiler.
 +
 +
+ ccache 3.1.11
+ -------------
+ Release date: 2015-03-07
+ Bug fixes
+ ~~~~~~~~~
+ - Fixed bug which could result in false cache hits when source code contains
+   `'"'` followed by `" /*"` or `" //"` (with variations).
+ - Made hash of cached result created with and without `CCACHE_CPP2` different.
+   This makes it possible to rebuild with `CCACHE_CPP2` set without having to
+   clear the cache to get new results.
+ - Don't try to reset a non-existing stats file. This avoids ``No such file or
+   directory'' messages in the ccache log when the cache directory doesn't
+   exist.
++- Fixed a bug where ccache deleted clang diagnostics after compiler failures.
++
  ccache 3.1.10
  -------------
  Release date: 2014-10-19
diff --cc hashutil.c
Simple merge
diff --cc test.sh
index cfeb97aba3c976ae0dda505af1c510c5a7a153a0,5efbca4f78b6e2a8e122c1694c72101df019c96e..a865c49911f19bf74714555b9a6c197929afb9ba
+++ b/test.sh
      checkstat 'cache hit (preprocessed)' 0
      checkstat 'cache miss' 2
  
+     testname="comment in strings"
+     $CCACHE -Cz >/dev/null
+     echo 'char *comment = " /* \\\\u" "foo" " */";' >comment.c
+     $CCACHE $COMPILER -c comment.c
+     checkstat 'cache hit (direct)' 0
+     checkstat 'cache hit (preprocessed)' 0
+     checkstat 'cache miss' 1
+     $CCACHE $COMPILER -c comment.c
+     checkstat 'cache hit (direct)' 1
+     checkstat 'cache hit (preprocessed)' 0
+     checkstat 'cache miss' 1
+     echo 'char *comment = " /* \\\\u" "goo" " */";' >comment.c
+     $CCACHE $COMPILER -c comment.c
+     checkstat 'cache hit (direct)' 1
+     checkstat 'cache hit (preprocessed)' 0
+     checkstat 'cache miss' 2
++
 +    #################################################################
 +    # Check that strange "#line" directives are handled.
 +    testname="#line directives with troublesome files"
 +    $CCACHE -Cz >/dev/null
 +    cat <<EOF >strange.c
 +int foo;
 +EOF
 +    for x in stdout tty sda hda; do
 +        if [ -b /dev/$x ] || [ -c /dev/$x ]; then
 +            echo "#line 1 \"/dev/$x\"" >> strange.c
 +        fi
 +    done
 +    CCACHE_SLOPPINESS="$default_sloppiness include_file_mtime" $CCACHE $COMPILER -c strange.c
 +    manifest=`find $CCACHE_DIR -name '*.manifest'`
 +    if [ -n "$manifest" ]; then
 +        data="`$CCACHE --dump-manifest $manifest | egrep '/dev/(stdout|tty|sda|hda'`"
 +        if [ -n "$data" ]; then
 +            test_failed "$manifest contained troublesome file(s): $data"
 +        fi
 +    fi
 +
 +    ##################################################################
 +    # Test --dump-manifest output.
 +    testname="--dump-manifest"
 +    $CCACHE -Cz >/dev/null
 +    $CCACHE $COMPILER test.c -c -o test.o
 +    manifest=`find $CCACHE_DIR -name '*.manifest'`
 +    $CCACHE --dump-manifest $manifest >manifest.dump
 +
 +    if grep 'Hash: e6b009695d072974f2c4d1dd7e7ed4fc' manifest.dump >/dev/null 2>&1 && \
 +       grep 'Hash: e94ceb9f1b196c387d098a5f1f4fe862' manifest.dump >/dev/null 2>&1 && \
 +       grep 'Hash: c2f5392dbc7e8ff6138d01608445240a' manifest.dump >/dev/null 2>&1; then
 +        : OK
 +    else
 +        test_failed "unexpected output of --dump-manifest"
 +    fi
  }
  
  basedir_suite() {