Anders Björklund [Sun, 29 Nov 2015 12:52:21 +0000 (13:52 +0100)]
Improve debuginfo cwd when using -fdebug-prefix-map
Support the -fdebug-prefix-map option, for relocating the debuginfo
current working directory (cwd) as recorded with CCACHE_HASHDIR.
This can be used in connection with CCACHE_BASEDIR, to get cache hits
even when generating debuginfo: the base directory can be mapped.
Need to use eu-elfcmp (from elfutils) instead of cmp, to compare
objects. Also need to cater for color coding (not to /dev/null).
And it seems like the pch test suite hadn't been kept up to date
plus some minor annoyances (i.e. a warning) in the coverage test.
To avoid overload the local CPU with precompiling, it can be useful
to let distcc know (take a local slot) when ccache is precompiling.
Those slots are kept in a separate locking queue (--localslots_cpp)
from the remote compilations, in order to use many more remote slots.
Anders Björklund [Fri, 13 Nov 2015 20:08:02 +0000 (21:08 +0100)]
Add feature to ignore headers in manifest
Certain headers are never changed, or perhaps not so important (timestamps).
Avoid repeatedly hashing these in the manifest, to make direct mode faster.
One can either use the full path to the include file, or perhaps a directory
of headers to ignore all the headers under that directory (e.g. compiler)
Anders Björklund [Sat, 24 Oct 2015 14:41:33 +0000 (16:41 +0200)]
Allow not including system headers in manifest
If CCACHE_SLOPPINESS includes "no_system_headers", ccache will not add any
system headers to the manifest's list of include files to always check.
This allows ccache to only check non-system headers, but will also cause
it to return stale cache hits if such system headers have been changed.
Matthias Kretz [Fri, 30 Oct 2015 15:53:37 +0000 (16:53 +0100)]
Pass -stdlib= only to preprocessor
Clang warns about an unused -stdlib=libc++ argument if the argument is
passed to the second clang invocation. The -stdlib= argument is only
necessary on preprocessing (to set the system include paths) and on
linking (which is not cached anyway)
Joel Rosdahl [Sun, 13 Sep 2015 12:37:06 +0000 (14:37 +0200)]
Merge branch '3.2-maint'
* 3.2-maint:
Use correct compression level when copying into the cache
Update NEWS
Minor improvements to Windows support
Revert "Recognize concatenated form of some compiler options"
Recognize concatenated form of some compiler options
Joel Rosdahl [Sun, 30 Aug 2015 19:22:48 +0000 (21:22 +0200)]
Merge branch '3.2-maint'
* 3.2-maint:
Include strings.h for strcasecmp
Remove unnecessary extra_cppflags, extra_ldflags and all_ldflags variables
Improve signal handling
Wait for compiler subprocess to exit before exiting from a signal
Make conversion-to-bool explicit to avoid warnings on legacy systems
Fix regression in recent change related to zlib in nonstandard location
Joel Rosdahl [Sat, 29 Aug 2015 16:09:37 +0000 (18:09 +0200)]
Improve signal handling
* Block signals while manipulating data read by the signal handler.
* If ccache receives SIGTERM, kill compiler as well. (Other signals like
SIGINT are sent to the whole process group.)
* Die appropriately at the end of the signal handler by resending the
signal instead of exiting.
Joel Rosdahl [Mon, 17 Aug 2015 17:05:14 +0000 (19:05 +0200)]
Fix regression in recent change related to zlib in nonstandard location
To allow for specifying a -L flag in LDFLAGS and have it take effect for
-lz, 0220de9c8ebfb18caae2ac1aa163d060e98ceade put -lz in extra_libs
instead of extra_ldflags. However, extra_libs is supposed to contain
paths to libraries which are prerequisites of the ccache link rule, and
some older versions of make got confused by seeing -lz as a
prerequisite.
Joel Rosdahl [Sun, 16 Aug 2015 12:14:46 +0000 (14:14 +0200)]
Merge branch '3.2-maint'
* 3.2-maint:
Prepare for v3.2.3
Bail out on --save-temps, an alias for -save-temps
Use correct key for "file info indexes" in --dump-manifest output
Exit properly from exit handler
Joel Rosdahl [Sun, 9 Aug 2015 20:07:11 +0000 (22:07 +0200)]
Exit properly from exit handler
This fixes a problem where two SIGINT (Ctrl+C) signals were needed to
terminate an ongoing compilation. (The first SIGINT terminated the
compiler which exited with non-zero status, which ccache then went on
interpreting as an ordinary failed compilation, leading to rerunning the
compiler via failed().)
Joel Rosdahl [Wed, 5 Aug 2015 15:48:00 +0000 (17:48 +0200)]
Merge branch '3.2-maint'
* 3.2-maint:
test: Make subst_env_in_string not depend on existing environment
Update source code style according to uncrustify
Add uncrustify config and make rule
Source code style tweaks
Minor tweaking to comments
Only log "Disabling direct mode" once when failing to read include file