From: Joel Rosdahl Date: Thu, 28 Jul 2016 13:38:28 +0000 (+0200) Subject: Merge branch '3.2-maint' X-Git-Tag: v3.3~17 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b065a5e61b76f2cec0d623af6661cf0d43f63ef5;p=thirdparty%2Fccache.git Merge branch '3.2-maint' * 3.2-maint: Detect undocumented -coverage (only one dash) GCC option --- b065a5e61b76f2cec0d623af6661cf0d43f63ef5 diff --cc NEWS.txt index 83cf69ad8,fe16d2752..092b03bec --- a/NEWS.txt +++ b/NEWS.txt @@@ -2,90 -2,16 +2,100 @@@ ccache new =========== +Unreleased 3.3 +-------------- + +Notes +~~~~~ + +- A C99-compatible compiler is now required to build ccache. + + +New features and improvements +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- The configuration option `run_second_cpp` (`CCACHE_CPP2`) now defaults to + true. This improves ccache's out-of-the-box experience for compilers that + can't compile their own preprocessed output with the same outcome as if they + compiled the real source code directly, e.g. newer versions of GCC and Clang. + +- The configuration option `hash_dir` (`CCACHE_HASHDIR`) now defaults to true. + +- Added support for cuda including the -optf/--options-file option. + +- Added new sloppiness option `no_system_headers`, which tells ccache not to + include system headers in manifest files. + +- Multiple identical `-arch` arguments are now handled without bailing. + +- Added new `ignore_headers_in_manifest` configuration option, which specifies + headers that should be ignored in the direct mode. + +- Added new `prefix_command_cpp` (`CCACHE_PREFIX_CPP`) configuration option, + which specifies one or several prefixes to add to the command line ccache + uses when invoking the preprocessor. + +- The concatenated form of some long compiler options is now recognized, for + example when using `-isystemPATH` instead of `-isystem PATH`. + +- If hard-linking is enabled and but fails (e.g. due to cross-device linking), + ccache now falls back to copying instead of running the compiler. + +- Made the `hash_dir` option only have effect when generating debug info. + +- Added support for relocating debug info directory using `-fdebug-prefix-map`. + This allows for cache hits even when `hash_dir` is used in combination with + `base_dir`. + +- Added a new `keep_comments_cpp` (`CCACHE_COMMENTS`) configuration option, + which tells ccache not to discard the comments before hashing preprocessor + output. This can be used to check documentation with *-Wdocumentation*. + +- ccache now knows how to convert absolute paths to relative paths inside + dependency files when using `base_dir`. + +- Improved parsing of `-g*` options. + +- Made ccache understand `-Wp,-D*` options. + +- Added a new statistics counter that tracks the number of performed cleanups + due to the cache size being over the limit. The value is shown in the output + of ``ccache -s''. + +- Added a new ``cache hit rate'' field to the output of ``ccache -s''. + +- Names of included files are no longer included in the hash of the compiler's + preprocessed output. This leads to more potential cache hits when not using + the direct mode. + +- Added support for multiple `-arch` options to produce "fat binaries". + +- Added support for caching compilation of assembler code produced by e.g. + ``gcc -S file.c''. + +- Added support for Fortran 77. + + +Bug fixes +~~~~~~~~~ + +- Bail out on too hard compiler option `-P`. + +- Fixed clang test suite when running on Linux. + +- Fixed build and test for MinGW32 and Windows. + + + Unreleased 3.2.8 + ---------------- + + Bug fixes + ~~~~~~~~~ + + - ccache now understands the undocumented `-coverage` (only one dash) GCC + option. + + ccache 3.2.7 ------------ Release date: 2016-07-20 diff --cc ccache.c index 263c077b8,591c7d7cb..f60adb6c7 --- a/ccache.c +++ b/ccache.c @@@ -2381,7 -2205,8 +2381,8 @@@ cc_process_args(struct args *args, stru args_add(stripped_args, argv[i]); continue; } - if (str_eq(argv[i], "--coverage")) { // = -fprofile-arcs -ftest-coverage - if (str_eq(argv[i], "--coverage") /* = -fprofile-arcs -ftest-coverage */ - || str_eq(argv[i], "-coverage")) { /* Undocumented but still works */ ++ if (str_eq(argv[i], "--coverage") // = -fprofile-arcs -ftest-coverage ++ || str_eq(argv[i], "-coverage")) { // Undocumented but still works. profile_arcs = true; generating_coverage = true; args_add(stripped_args, argv[i]);