* move compiler detection logic from nix to bash
* robust inheritance of isGNU/isClang
Fixes: d3274e8ae3 ('ccache: support clang in ccache.links')
Fixes: 634824d50b ('ccache: fix references to stdenv.cc.cc.isClang')
afa64a60bc breaks the
tarball job https://hydra.nixos.org/build/40817224/nixlog/1/raw
The problem is that there is a stdenv.cc.cc.isGNU but no corresponding
stdenv.cc.cc.isClang. The "correct" fix would be to add
stdenv.cc.cc.isClang but this is simpler.
This patch fixes compilation errors when using ccache wrapper:
```
cc1: error: /nix/store/19vvbsjs6l6j0r22albzhysxfvr94imf-ccache-links/lib/gcc/*/*/include-fixed: No such file or directory
```
Bug fixes:
- Fixed build error related to zlib on systems with older make versions
(regression in ccache 3.2.3).
- Made conversion-to-bool explicit to avoid build warnings (and potential
runtime errors) on legacy systems.
- Improved signal handling: Kill compiler on SIGTERM; wait for compiler to
exit before exiting; die appropriately.
- Minor fixes related to Windows support.
- The correct compression level is now used if compression is requested.
- Fixed a bug where cache cleanup could be run too early for caches larger
than 64 GiB on 32-bit systems.
New features and improvements:
- Added support for "CCACHE_COMPILERCHECK=string:<value>". This is a faster
alternative to "CCACHE_COMPILERCHECK=<command>" if the command's output
can be precalculated by the build system.
- Add support for caching code coverage results (compiling for gcov).
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.
- Avoid performing an unnecessary copy of the object file on a cache miss.
- Bail out on too hard compiler option "-fmodules".
- Bail out on too hard compiler option "-fplugin=libcc1plugin" (interaction
with GDB).
- Fixed build error when compiling ccache with recent clang versions.
- Removed signal-unsafe code from signal handler.
- Corrected logic for when to output cached stderr.
- Wipe the whole cached result on failure retrieving a cached file.
- Fixed build error when compiling ccache with recent clang versions.
There are many more packages to fix, this is just a start.
Rules:
* Don't repeat the package name (not always that easy...)
* Start with capital letter
* Don't end with full stop
* Don't start with "The ..." or "A ..."
I've also added descriptions to some packages and rewritten others.
wrapper.
This will fail for crossStdenv, but it allows a wrapper that uses ccache for
example. That's so described in all-packages.nix around 'ccache'.
svn path=/nixpkgs/trunk/; revision=31747