Imported Upstream version 3.4
[platform/upstream/ccache.git] / NEWS.html
index d95929c..0e60bf1 100644 (file)
--- a/NEWS.html
+++ b/NEWS.html
@@ -3,7 +3,7 @@
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
 <head>\r
 <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 8.6.6" />\r
+<meta name="generator" content="AsciiDoc 8.6.9" />\r
 <title>ccache news</title>\r
 <style type="text/css">\r
 /* Shared CSS for AsciiDoc xhtml11 and html5 backends */\r
@@ -87,10 +87,16 @@ ul, ol, li > p {
 ul > li     { color: #aaa; }\r
 ul > li > * { color: black; }\r
 \r
-pre {\r
+.monospaced, code, pre {\r
+  font-family: "Courier New", Courier, monospace;\r
+  font-size: inherit;\r
+  color: navy;\r
   padding: 0;\r
   margin: 0;\r
 }\r
+pre {\r
+  white-space: pre-wrap;\r
+}\r
 \r
 #author {\r
   color: #527bbd;\r
@@ -219,7 +225,7 @@ div.exampleblock > div.content {
 }\r
 \r
 div.imageblock div.content { padding-left: 0; }\r
-span.image img { border-style: none; }\r
+span.image img { border-style: none; vertical-align: text-bottom; }\r
 a.image:visited { color: white; }\r
 \r
 dl {\r
@@ -349,7 +355,7 @@ div.colist td img {
   margin-bottom: 0.1em;\r
 }\r
 \r
-div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
   margin-top: 0;\r
   margin-bottom: 0;\r
 }\r
@@ -407,18 +413,14 @@ span.underline { text-decoration: underline; }
 span.overline { text-decoration: overline; }\r
 span.line-through { text-decoration: line-through; }\r
 \r
+div.unbreakable { page-break-inside: avoid; }\r
+\r
 \r
 /*\r
  * xhtml11 specific\r
  *\r
  * */\r
 \r
-tt {\r
-  font-family: monospace;\r
-  font-size: inherit;\r
-  color: navy;\r
-}\r
-\r
 div.tableblock {\r
   margin-top: 1.0em;\r
   margin-bottom: 1.5em;\r
@@ -452,12 +454,6 @@ div.tableblock > table[frame="vsides"] {
  *\r
  * */\r
 \r
-.monospaced {\r
-  font-family: monospace;\r
-  font-size: inherit;\r
-  color: navy;\r
-}\r
-\r
 table.tableblock {\r
   margin-top: 1.0em;\r
   margin-bottom: 1.5em;\r
@@ -537,6 +533,8 @@ body.manpage div.sectionbody {
 @media print {\r
   body.manpage div#toc { display: none; }\r
 }\r
+\r
+\r
 </style>\r
 <script type="text/javascript">\r
 /*<![CDATA[*/\r
@@ -581,7 +579,7 @@ toc: function (toclevels) {
 \r
   function tocEntries(el, toclevels) {\r
     var result = new Array;\r
-    var re = new RegExp('[hH]([2-'+(toclevels+1)+'])');\r
+    var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');\r
     // Function that scans the DOM tree for header elements (the DOM2\r
     // nodeIterator API would be a better technique but not supported by all\r
     // browsers).\r
@@ -610,7 +608,7 @@ toc: function (toclevels) {
   var i;\r
   for (i = 0; i < toc.childNodes.length; i++) {\r
     var entry = toc.childNodes[i];\r
-    if (entry.nodeName == 'div'\r
+    if (entry.nodeName.toLowerCase() == 'div'\r
      && entry.getAttribute("class")\r
      && entry.getAttribute("class").match(/^toclevel/))\r
       tocEntriesToRemove.push(entry);\r
@@ -656,7 +654,7 @@ footnotes: function () {
   var entriesToRemove = [];\r
   for (i = 0; i < noteholder.childNodes.length; i++) {\r
     var entry = noteholder.childNodes[i];\r
-    if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote")\r
+    if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")\r
       entriesToRemove.push(entry);\r
   }\r
   for (i = 0; i < entriesToRemove.length; i++) {\r
@@ -736,7 +734,7 @@ asciidoc.install(2);
 <body class="article">\r
 <div id="header">\r
 <h1>ccache news</h1>\r
-<span id="revnumber">version 3.1.8</span>\r
+<span id="revnumber">version 3.4</span>\r
 <div id="toc">
   <div id="toctitle">Table of Contents</div>
   <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
@@ -744,143 +742,123 @@ asciidoc.install(2);
 </div>\r
 <div id="content">\r
 <div class="sect1">\r
-<h2 id="_ccache_3_1_8">ccache 3.1.8</h2>\r
+<h2 id="_ccache_3_4">ccache 3.4</h2>\r
 <div class="sectionbody">\r
-<div class="paragraph"><p>Release date: 2012-08-11</p></div>\r
-<div class="sect2">\r
-<h3 id="_new_features_and_improvements">New features and improvements</h3>\r
-<div class="ulist"><ul>\r
-<li>\r
-<p>\r
-Made paths to dependency files relative in order to increase cache hits.\r
-</p>\r
-</li>\r
-<li>\r
-<p>\r
-Added work-around to make ccache work with buggy GCC 4.1 when creating a\r
-      pre-compiled header.\r
-</p>\r
-</li>\r
-<li>\r
-<p>\r
-Clang plugins are now hashed to catch plugin upgrades.\r
-</p>\r
-</li>\r
-</ul></div>\r
-</div>\r
+<div class="paragraph"><p>Release date: 2018-02-11</p></div>\r
 <div class="sect2">\r
-<h3 id="_bug_fixes">Bug fixes</h3>\r
+<h3 id="_new_features_and_enhancements">New features and enhancements</h3>\r
 <div class="ulist"><ul>\r
 <li>\r
 <p>\r
-Fixed crash when the current working directory has been removed.\r
+The compiler option form <code>--sysroot arg</code> is now handled like the documented\r
+  <code>--sysroot=arg</code> form.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Fixed crash when stderr is closed.\r
+Added support for caching <code>.su</code> files generated by GCC flag <code>-fstack-usage</code>.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Corrected a corner case when parsing backslash escapes in string\r
-      literals.\r
+ccache should now work with distcc&#8217;s &#8220;pump&#8221; wrapper.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Paths are now correctly canonicalized when computing paths relative to\r
-      the base directory.\r
+The optional unifier is no longer disabled when the direct mode is enabled.\r
 </p>\r
 </li>\r
-</ul></div>\r
-</div>\r
-<div class="sect2">\r
-<h3 id="_other">Other</h3>\r
-<div class="ulist"><ul>\r
 <li>\r
 <p>\r
-Made git version macro work when compiling outside of the source\r
-      directory.\r
+Added support for nvcc compiler options <code>--compiler-bindir/-ccbin</code>,\r
+  <code>--output-directory/-odir</code> and <code>--libdevice-directory/-ldir</code>.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Fixed <tt>static_assert</tt> macro definition clash with GCC 4.7.\r
+Boolean environment variable settings no longer accept the following\r
+  (case-insensitive) values: <code>0</code>, <code>false</code>, <code>disable</code> and <code>no</code>. All other values\r
+  are accepted and taken to mean &#8220;true&#8221;. This is to stop users from setting\r
+  e.g. <code>CCACHE_DISABLE=0</code> and then expect the cache to be used.\r
 </p>\r
 </li>\r
-</ul></div>\r
-</div>\r
-</div>\r
-</div>\r
-<div class="sect1">\r
-<h2 id="_ccache_3_1_7">ccache 3.1.7</h2>\r
-<div class="sectionbody">\r
-<div class="paragraph"><p>Release date: 2012-01-08</p></div>\r
-<div class="sect2">\r
-<h3 id="_bug_fixes_2">Bug fixes</h3>\r
-<div class="ulist"><ul>\r
 <li>\r
 <p>\r
-Non-writable <tt>CCACHE_DIR</tt> is now handled gracefully when\r
-      <tt>CCACHE_READONLY</tt> is set.\r
+Improved support for <code>run_second_cpp = false</code>: If combined with passing\r
+  <code>-fdirectives-only</code> (GCC) or <code>frewrite-includes</code> (Clang) to the compiler,\r
+  diagnostics warnings and similar will be correct.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Made failure to create files (typically due to bad directory permissions)\r
-      in the cache directory fatal. Previously, such failures were silently and\r
-      erroneously flagged as "compiler produced stdout".\r
+An implicit <code>-MQ</code> is now passed to the preprocessor only if the object file\r
+  extension is non-standard. This should make it easier to use EDG-based\r
+  compilers (e.g. GHS) which don&#8217;t understand <code>-MQ</code>.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Both the <tt>-specs=file</tt> and <tt>--specs=file</tt> forms are now recognized.\r
+ccache now treats an unreadable configuration file just like a missing\r
+  configuration file.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Added recognition and hashing of GCC plugins specified with\r
-      <tt>-fplugin=file</tt>.\r
+Documented more pitfalls with enabling <code>hard_links</code> (<code>CCACHE_HARDLINK</code>).\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-<tt>CCACHE_COMPILERCHECK</tt> now also determines how to hash explicit specs\r
-      files (<tt>-specs=file</tt>).\r
+Documented caveats related to colored warnings from compilers.\r
 </p>\r
 </li>\r
+</ul></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_bug_fixes">Bug fixes</h3>\r
+<div class="ulist"><ul>\r
 <li>\r
 <p>\r
-Added <tt>CPATH</tt>, <tt>C_INCLUDE_PATH</tt> and similar environment variables to the\r
-      hash to avoid false cache hits when such variables have changed.\r
+File size and number counters are now updated correctly when files are\r
+  overwritten in the cache, e.g. when using <code>CCACHE_RECACHE</code>.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Corrected log message when unify mode is enabled.\r
+<code>run_second_cpp</code> is now forced for nvcc.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Reverted the GCC bug compatibility introduced in ccache 3.1.5 for\r
-      <tt>-MT</tt>/<tt>-MQ</tt> options with concatenated arguments. (The bug is fixed in\r
-      recent GCC versions.)\r
+Fixed how the nvcc options <code>-optf</code> and <code>-odir</code> are handled.\r
 </p>\r
 </li>\r
 </ul></div>\r
 </div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_ccache_3_3_6">ccache 3.3.6</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Release date: 2018-01-28</p></div>\r
 <div class="sect2">\r
-<h3 id="_other_2">Other</h3>\r
+<h3 id="_new_features_and_enhancements_2">New features and enhancements</h3>\r
 <div class="ulist"><ul>\r
 <li>\r
 <p>\r
-Corrected license header for <tt>mdfour.c</tt>.\r
+Improved instructions on how to get cache hits between different working\r
+  directories.\r
 </p>\r
 </li>\r
+</ul></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_bug_fixes_2">Bug fixes</h3>\r
+<div class="ulist"><ul>\r
 <li>\r
 <p>\r
-Improved documentation on how to fix bad object files in the cache.\r
+Fixed regression in ccache 3.3.5 related to the <code>UNCACHED_ERR_FD</code> feature.\r
 </p>\r
 </li>\r
 </ul></div>\r
@@ -888,15 +866,15 @@ Improved documentation on how to fix bad object files in the cache.
 </div>\r
 </div>\r
 <div class="sect1">\r
-<h2 id="_ccache_3_1_6">ccache 3.1.6</h2>\r
+<h2 id="_ccache_3_3_5">ccache 3.3.5</h2>\r
 <div class="sectionbody">\r
-<div class="paragraph"><p>Release date: 2011-08-21</p></div>\r
+<div class="paragraph"><p>Release date: 2018-01-13</p></div>\r
 <div class="sect2">\r
-<h3 id="_new_features_and_improvements_2">New features and improvements</h3>\r
+<h3 id="_new_features_and_enhancements_3">New features and enhancements</h3>\r
 <div class="ulist"><ul>\r
 <li>\r
 <p>\r
-Rewrite argument to <tt>--sysroot</tt> if <tt>CCACHE_BASEDIR</tt> is used.\r
+Documented how automatic cache cleanup works.\r
 </p>\r
 </li>\r
 </ul></div>\r
@@ -906,78 +884,64 @@ Rewrite argument to <tt>--sysroot</tt> if <tt>CCACHE_BASEDIR</tt> is used.
 <div class="ulist"><ul>\r
 <li>\r
 <p>\r
-Don&#8217;t crash if <tt>getcwd()</tt> fails.\r
-</p>\r
-</li>\r
-<li>\r
-<p>\r
-Fixed alignment of &#8220;called for preprocessing&#8221; counter.\r
+Fixed a regression where the original order of debug options could be lost.\r
+  This reverts the &#8220;Improved parsing of <code>-g*</code> options&#8221; feature in ccache 3.3.\r
 </p>\r
 </li>\r
-</ul></div>\r
-</div>\r
-</div>\r
-</div>\r
-<div class="sect1">\r
-<h2 id="_ccache_3_1_5">ccache 3.1.5</h2>\r
-<div class="sectionbody">\r
-<div class="paragraph"><p>Release date: 2011-05-29</p></div>\r
-<div class="sect2">\r
-<h3 id="_new_features_and_improvements_3">New features and improvements</h3>\r
-<div class="ulist"><ul>\r
 <li>\r
 <p>\r
-Added a new statistics counter named &#8220;called for preprocessing&#8221;.\r
+Multiple <code>-fdebug-prefix-map</code> options should now be handled correctly.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-The original command line is now logged to the file specified with\r
-      <tt>CCACHE_LOGFILE</tt>.\r
+Fixed matching of directories in the <code>ignore_headers_in_manifest</code>\r
+  configuration option.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Improved error logging when system calls fail.\r
+Fixed detection of missing argument to <code>-opt</code>/<code>--options-file</code>.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Added support for rewriting absolute paths in <tt>-F</tt>/<tt>-iframework</tt> GCC\r
-      options.\r
+ccache now bails out when building a precompiled header if any of the\r
+  corresponding header files have an updated timestamp. This fixes complaints\r
+  from clang.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Improved order of statistics counters in <tt>ccache -s</tt> output.\r
+Fixed a bug related to erroneously storing a dependency file with absolute\r
+  paths in the cache on a preprocessed hit.\r
 </p>\r
 </li>\r
-</ul></div>\r
-</div>\r
-<div class="sect2">\r
-<h3 id="_bug_fixes_4">Bug fixes</h3>\r
-<div class="ulist"><ul>\r
 <li>\r
 <p>\r
-The <tt>-MF</tt>/<tt>-MT</tt>/<tt>-MQ</tt> options with concatenated argument are now handled\r
-      correctly when they are last on the command line.\r
+<code>ccache -c/--cleanup</code> now works like documented: it just recalculates size\r
+  counters and trims the cache to not exceed the max size and file number\r
+  limits. Previously, the forced cleanup took &#8220;limit_multiple&#8221; into account,\r
+  so that <code>ccache -c/--cleanup</code> by default would trim the cache to 80% of the\r
+  max limit.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-ccache is now bug compatible with GCC for the <tt>-MT</tt>/<tt>-MQ</tt> options with\r
-      concatenated arguments.\r
+ccache no longer ignores linker arguments for clang since clang warns about\r
+  them.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Fixed a minor memory leak.\r
+Plugged a couple of file descriptor leaks.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Systems that lack (and don&#8217;t need to be linked with) libm are now\r
-      supported.\r
+Fixed a bug where ccache would skip hashing the compiler argument following a\r
+  <code>-fno-working-directory</code>, <code>-fworking-directory</code>, <code>-nostdinc</code>, <code>-nostdinc++</code>,\r
+  <code>-remap</code> or <code>-trigraphs</code> option in preprocessor mode.\r
 </p>\r
 </li>\r
 </ul></div>\r
@@ -985,32 +949,39 @@ Systems that lack (and don&#8217;t need to be linked with) libm are now
 </div>\r
 </div>\r
 <div class="sect1">\r
-<h2 id="_ccache_3_1_4">ccache 3.1.4</h2>\r
+<h2 id="_ccache_3_3_4">ccache 3.3.4</h2>\r
 <div class="sectionbody">\r
-<div class="paragraph"><p>Release date: 2011-01-09</p></div>\r
+<div class="paragraph"><p>Release date: 2017-02-17</p></div>\r
 <div class="sect2">\r
-<h3 id="_bug_fixes_5">Bug fixes</h3>\r
+<h3 id="_new_features_and_enhancements_4">New features and enhancements</h3>\r
 <div class="ulist"><ul>\r
 <li>\r
 <p>\r
-Made a work-around for a bug in gzputc() in zlib 1.2.5.\r
+Documented the different cache statistics counters.\r
 </p>\r
 </li>\r
+</ul></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_bug_fixes_4">Bug fixes</h3>\r
+<div class="ulist"><ul>\r
 <li>\r
 <p>\r
-Corrupt manifest files are now removed so that they won&#8217;t block direct\r
-      mode hits.\r
+Fixed a regression in ccache 3.3 related to potentially bad content of\r
+  dependency files when compiling identical source code but with different\r
+  source paths. This was only partially fixed in 3.3.2 and reverts the new\r
+  &#8220;Names of included files are no longer included in the hash of the\r
+  compiler&#8217;s preprocessed output&#8221; feature in 3.3.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-ccache now copes with file systems that don&#8217;t know about symbolic links.\r
+Corrected statistics counter for <code>-optf</code>/<code>--options-file</code> failure.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-The file handle in now correctly closed on write error when trying to\r
-      create a cache dir tag.\r
+Fixed undefined behavior warnings in ccache found by <code>-fsanitize=undefined</code>.\r
 </p>\r
 </li>\r
 </ul></div>\r
@@ -1018,26 +989,16 @@ The file handle in now correctly closed on write error when trying to
 </div>\r
 </div>\r
 <div class="sect1">\r
-<h2 id="_ccache_3_1_3">ccache 3.1.3</h2>\r
+<h2 id="_ccache_3_3_3">ccache 3.3.3</h2>\r
 <div class="sectionbody">\r
-<div class="paragraph"><p>Release date: 2010-11-28</p></div>\r
-<div class="sect2">\r
-<h3 id="_bug_fixes_6">Bug fixes</h3>\r
-<div class="ulist"><ul>\r
-<li>\r
-<p>\r
-The -MFarg, -MTarg and -MQarg compiler options (i.e, without space\r
-      between option and argument) are now handled correctly.\r
-</p>\r
-</li>\r
-</ul></div>\r
-</div>\r
+<div class="paragraph"><p>Release date: 2016-10-26</p></div>\r
 <div class="sect2">\r
-<h3 id="_other_3">Other</h3>\r
+<h3 id="_bug_fixes_5">Bug fixes</h3>\r
 <div class="ulist"><ul>\r
 <li>\r
 <p>\r
-Portability fixes for HP-UX 11.00 and other esoteric systems.\r
+ccache now detects usage of <code>.incbin</code> assembler directives in the source code\r
+  and avoids caching such compilations.\r
 </p>\r
 </li>\r
 </ul></div>\r
@@ -1045,47 +1006,49 @@ Portability fixes for HP-UX 11.00 and other esoteric systems.
 </div>\r
 </div>\r
 <div class="sect1">\r
-<h2 id="_ccache_3_1_2">ccache 3.1.2</h2>\r
+<h2 id="_ccache_3_3_2">ccache 3.3.2</h2>\r
 <div class="sectionbody">\r
-<div class="paragraph"><p>Release date: 2010-11-21</p></div>\r
+<div class="paragraph"><p>Release date: 2016-09-28</p></div>\r
 <div class="sect2">\r
-<h3 id="_bug_fixes_7">Bug fixes</h3>\r
+<h3 id="_bug_fixes_6">Bug fixes</h3>\r
 <div class="ulist"><ul>\r
 <li>\r
 <p>\r
-Bail out on too hard compiler options <tt>-fdump-*</tt>.\r
-</p>\r
-</li>\r
-<li>\r
-<p>\r
-NULL return values from malloc/calloc of zero bytes are now handled\r
-      correctly.\r
+Fixed a regression in ccache 3.3 related to potentially bad content of\r
+  dependency files when compiling identical source code but with different\r
+  source paths.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Fixed issue when parsing precompiler output on AIX.\r
+Fixed a regression in ccache 3.3.1: ccache could get confused when using the\r
+  compiler option <code>-Wp,</code> to pass multiple options to the preprocessor,\r
+  resulting in missing dependency files from direct mode cache hits.\r
 </p>\r
 </li>\r
 </ul></div>\r
 </div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_ccache_3_3_1">ccache 3.3.1</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Release date: 2016-09-07</p></div>\r
 <div class="sect2">\r
-<h3 id="_other_4">Other</h3>\r
+<h3 id="_bug_fixes_7">Bug fixes</h3>\r
 <div class="ulist"><ul>\r
 <li>\r
 <p>\r
-Improved documentation on which information is included in the hash sum.\r
-</p>\r
-</li>\r
-<li>\r
-<p>\r
-Made the &#8220;too new header file&#8221; test case work on file systems with\r
-      unsynchronized clocks.\r
+Fixed a problem in the &#8220;multiple <code>-arch</code> options&#8221; support introduced in\r
+  3.3. When using the direct mode (the default), different combinations of\r
+  <code>-arch</code> options were not detected properly.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-The test suite now also works on systems that lack a /dev/zero.\r
+Fixed an issue when compiler option <code>-Wp,-MT,path</code> is used instead of <code>-MT\r
+  path</code> (and similar for <code>-MF</code>, <code>-MP</code> and <code>-MQ</code>) and <code>run_second_cpp</code>\r
+  (<code>CCACHE_CPP2</code>) is enabled.\r
 </p>\r
 </li>\r
 </ul></div>\r
@@ -1093,211 +1056,200 @@ The test suite now also works on systems that lack a /dev/zero.
 </div>\r
 </div>\r
 <div class="sect1">\r
-<h2 id="_ccache_3_1_1">ccache 3.1.1</h2>\r
+<h2 id="_ccache_3_3">ccache 3.3</h2>\r
 <div class="sectionbody">\r
-<div class="paragraph"><p>Release date: 2010-11-07</p></div>\r
+<div class="paragraph"><p>Release date: 2016-08-27</p></div>\r
 <div class="sect2">\r
-<h3 id="_bug_fixes_8">Bug fixes</h3>\r
+<h3 id="_notes">Notes</h3>\r
 <div class="ulist"><ul>\r
 <li>\r
 <p>\r
-ccache now falls back to preprocessor mode when a non-regular include\r
-      file (device, socket, etc) has been detected so that potential hanging\r
-      due to blocking reads is avoided.\r
-</p>\r
-</li>\r
-<li>\r
-<p>\r
-CRC errors are now detected when decompressing compressed files in the\r
-      cache.\r
+A C99-compatible compiler is now required to build ccache.\r
 </p>\r
 </li>\r
+</ul></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_new_features_and_enhancements_5">New features and enhancements</h3>\r
+<div class="ulist"><ul>\r
 <li>\r
 <p>\r
-Fixed potential object file corruption race on NFS.\r
+The configuration option <code>run_second_cpp</code> (<code>CCACHE_CPP2</code>) now defaults to\r
+  true. This improves ccache&#8217;s out-of-the-box experience for compilers that\r
+  can&#8217;t compile their own preprocessed output with the same outcome as if they\r
+  compiled the real source code directly, e.g. newer versions of GCC and Clang.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Minor documentation corrections.\r
+The configuration option <code>hash_dir</code> (<code>CCACHE_HASHDIR</code>) now defaults to true.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Fixed configure detection of ar.\r
+Added a new <code>ignore_headers_in_manifest</code> configuration option, which\r
+  specifies headers that should be ignored in the direct mode.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-ccache development version (set by dev.mk) now works with gits whose\r
-      <tt>describe</tt> command doesn&#8217;t understand <tt>--dirty</tt>.\r
+Added a new <code>prefix_command_cpp</code> (<code>CCACHE_PREFIX_CPP</code>) configuration option,\r
+  which specifies one or several prefixes to add to the command line ccache\r
+  uses when invoking the preprocessor.\r
 </p>\r
 </li>\r
-</ul></div>\r
-</div>\r
-<div class="sect2">\r
-<h3 id="_other_5">Other</h3>\r
-<div class="ulist"><ul>\r
 <li>\r
 <p>\r
-Minor debug log message improvements.\r
+Added a new <code>limit_multiple</code> (<code>CCACHE_LIMIT_MULTIPLE</code>) configuration option,\r
+  which specifies how much of the cache to remove when cleaning.\r
 </p>\r
 </li>\r
-</ul></div>\r
-</div>\r
-</div>\r
-</div>\r
-<div class="sect1">\r
-<h2 id="_ccache_3_1">ccache 3.1</h2>\r
-<div class="sectionbody">\r
-<div class="paragraph"><p>Release date: 2010-09-16</p></div>\r
-<div class="sect2">\r
-<h3 id="_new_features_and_improvements_4">New features and improvements</h3>\r
-<div class="ulist"><ul>\r
 <li>\r
 <p>\r
-Added support for hashing the output of a custom command (e.g.\r
-      <tt>%compiler% --version</tt>) to identify the compiler instead of stat-ing or\r
-      hashing the compiler binary. This can improve robustness when the\r
-      compiler (as seen by ccache) actually isn&#8217;t the real compiler but another\r
-      compiler wrapper.\r
+Added a new <code>keep_comments_cpp</code> (<code>CCACHE_COMMENTS</code>) configuration option,\r
+  which tells ccache not to discard the comments before hashing preprocessor\r
+  output. This can be used to check documentation with <strong>-Wdocumentation</strong>.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Added support for caching compilations that use precompiled headers. (See\r
-      the manual for important instructions regarding this.)\r
+Added a new sloppiness option <code>no_system_headers</code>, which tells ccache not to\r
+  include system headers in manifest files.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Locking of the files containing statistics counters is now done using\r
-      symlinks instead of POSIX locks. This should make ccache behave a lot\r
-      better on file systems where POSIX locks are slow or broken (e.g. NFS on\r
-      some systems).\r
+Added a new statistics counter that tracks the number of performed cleanups\r
+  due to the cache size being over the limit. The value is shown in the output\r
+  of &#8220;ccache -s&#8221;.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Manifest files are now updated without the need of taking locks.\r
+Added support for relocating debug info directory using <code>-fdebug-prefix-map</code>.\r
+  This allows for cache hits even when <code>hash_dir</code> is used in combination with\r
+  <code>base_dir</code>.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Updates of statistics counters are now always done in one of the\r
-      sub-level statistics files. This reduces lock contention, which\r
-      especially improves performance on slow NFS mounts.\r
+Added a new &#8220;cache hit rate&#8221; field to the output of &#8220;ccache -s&#8221;.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Reading and writing of statistics counters has been made\r
-      forward-compatible (unknown counters are retained).\r
+Added support for caching compilation of assembler code produced by e.g.\r
+  &#8220;gcc -S file.c&#8221;.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Files are now read without using mmap(). This has two benefits: it&#8217;s more\r
-      robust against file changes during reading and it improves performance on\r
-      poor systems where mmap() doesn&#8217;t use the disk cache.\r
+Added support for cuda including the -optf/--options-file option.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Added <tt>.cp</tt> and <tt>.CP</tt> as known C++ suffixes.\r
+Added support for Fortran 77.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Improved logging.\r
+Added support for multiple <code>-arch</code> options to produce "fat binaries".\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Added <tt>-install_name</tt> as an option known to take an argument. (This\r
-      improves statistics when using the Darwin linker.)\r
+Multiple identical <code>-arch</code> arguments are now handled without bailing.\r
 </p>\r
 </li>\r
-</ul></div>\r
-</div>\r
-<div class="sect2">\r
-<h3 id="_bug_fixes_9">Bug fixes</h3>\r
-<div class="ulist"><ul>\r
 <li>\r
 <p>\r
-Non-fatal error messages are now never printed to stderr but logged\r
-      instead.\r
+The concatenated form of some long compiler options is now recognized, for\r
+  example when using <code>-isystemPATH</code> instead of <code>-isystem PATH</code>.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Fixed a bug affecting failing commands when <tt>--ccache-skip</tt> is used.\r
+If hard-linking is enabled and but fails (e.g. due to cross-device linking),\r
+  ccache now falls back to copying instead of running the compiler.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Made <tt>--ccache-skip</tt> work for all options.\r
+Made the <code>hash_dir</code> option only have effect when generating debug info.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-EINTR is now handled correctly.\r
+ccache now knows how to convert absolute paths to relative paths inside\r
+  dependency files when using <code>base_dir</code>.\r
 </p>\r
 </li>\r
-</ul></div>\r
-</div>\r
-<div class="sect2">\r
-<h3 id="_other_6">Other</h3>\r
-<div class="ulist"><ul>\r
 <li>\r
 <p>\r
-Work on porting ccache to win32 (native), mostly done by Ramiro Polla.\r
-      The port is not yet finished, but will hopefully be complete in some\r
-      subsequent release.\r
+Improved parsing of <code>-g*</code> options.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Added a <tt>--nostats</tt> flag to the performance benchmark program.\r
+Made ccache understand <code>-Wp,-D*</code> options.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Made the performance benchmark program more accurate when measuring cache\r
-      hits.\r
+ccache now understands the undocumented <code>-coverage</code> (only one dash) GCC\r
+  option.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Added a new test framework for unit tests written in C.\r
+Names of included files are no longer included in the hash of the compiler&#8217;s\r
+  preprocessed output. This leads to more potential cache hits when not using\r
+  the direct mode.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Got rid of <tt>configure-dev</tt>; dev mode is now given by <tt>dev.mk.in</tt>\r
-      presence.\r
+Increased buffer size used when reading file data. This improves performance\r
+  slightly.\r
 </p>\r
 </li>\r
+</ul></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_bug_fixes_8">Bug fixes</h3>\r
+<div class="ulist"><ul>\r
 <li>\r
 <p>\r
-Improved documentation on how to combine ccache with other compiler\r
-      wrappers (like <tt>distcc</tt>).\r
+Bail out on too hard compiler option <code>-P</code>.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-New <tt>LICENSE.txt</tt> file with licensing and copyright details about bundled\r
-      source code.\r
+Fixed clang test suite when running on Linux.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-New <tt>AUTHORS.txt</tt> file with a list of ccache contributors.\r
+Fixed build and test for MinGW32 and Windows.\r
 </p>\r
 </li>\r
+</ul></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_ccache_3_2_9">ccache 3.2.9</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Release date: 2016-09-28</p></div>\r
+<div class="sect2">\r
+<h3 id="_bug_fixes_9">Bug fixes</h3>\r
+<div class="ulist"><ul>\r
 <li>\r
 <p>\r
-New <tt>HACKING.txt</tt> file with some notes about ccache code conventions.\r
+Fixed a regression in ccache 3.2.8: ccache could get confused when using the\r
+  compiler option <code>-Wp,</code> to pass multiple options to the preprocessor,\r
+  resulting in missing dependency files from direct mode cache hits.\r
 </p>\r
 </li>\r
 </ul></div>\r
@@ -1305,21 +1257,23 @@ New <tt>HACKING.txt</tt> file with some notes about ccache code conventions.
 </div>\r
 </div>\r
 <div class="sect1">\r
-<h2 id="_ccache_3_0_1">ccache 3.0.1</h2>\r
+<h2 id="_ccache_3_2_8">ccache 3.2.8</h2>\r
 <div class="sectionbody">\r
-<div class="paragraph"><p>Release date: 2010-07-15</p></div>\r
+<div class="paragraph"><p>Release date: 2016-09-07</p></div>\r
 <div class="sect2">\r
 <h3 id="_bug_fixes_10">Bug fixes</h3>\r
 <div class="ulist"><ul>\r
 <li>\r
 <p>\r
-The statistics counter &#8220;called for link&#8221; is now correctly updated when\r
-      linking with a single object file.\r
+Fixed an issue when compiler option <code>-Wp,-MT,path</code> is used instead of <code>-MT\r
+  path</code> (and similar for <code>-MF</code>, <code>-MP</code> and <code>-MQ</code>) and <code>run_second_cpp</code>\r
+  (<code>CCACHE_CPP2</code>) is enabled.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Fixed a problem with out-of-source builds.\r
+ccache now understands the undocumented <code>-coverage</code> (only one dash) GCC\r
+  option.\r
 </p>\r
 </li>\r
 </ul></div>\r
@@ -1327,183 +1281,1521 @@ Fixed a problem with out-of-source builds.
 </div>\r
 </div>\r
 <div class="sect1">\r
-<h2 id="_ccache_3_0">ccache 3.0</h2>\r
+<h2 id="_ccache_3_2_7">ccache 3.2.7</h2>\r
 <div class="sectionbody">\r
-<div class="paragraph"><p>Release date: 2010-06-20</p></div>\r
+<div class="paragraph"><p>Release date: 2016-07-20</p></div>\r
 <div class="sect2">\r
-<h3 id="_general">General</h3>\r
+<h3 id="_bug_fixes_11">Bug fixes</h3>\r
 <div class="ulist"><ul>\r
 <li>\r
 <p>\r
-ccache is now licensed under the GNU General Public License (GPL) version\r
-      3 or later.\r
+Fixed a bug which could lead to false cache hits for compiler command lines\r
+  with a missing argument to an option that takes an argument.\r
 </p>\r
 </li>\r
-</ul></div>\r
-</div>\r
-<div class="sect2">\r
-<h3 id="_upgrade_notes">Upgrade notes</h3>\r
-<div class="ulist"><ul>\r
 <li>\r
 <p>\r
-The way the hashes are calculated has changed, so you won&#8217;t get cache\r
-      hits for compilation results stored by older ccache versions. Because of\r
-      this, you might as well clear the old cache directory with <tt>ccache\r
-      --clear</tt> if you want, unless you plan to keep using an older ccache\r
-      version.\r
+ccache now knows how to work around a glitch in the output of GCC 6&#8217;s\r
+  preprocessor.\r
 </p>\r
 </li>\r
 </ul></div>\r
 </div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_ccache_3_2_6">ccache 3.2.6</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Release date: 2016-07-12</p></div>\r
 <div class="sect2">\r
-<h3 id="_new_features_and_improvements_5">New features and improvements</h3>\r
+<h3 id="_bug_fixes_12">Bug fixes</h3>\r
 <div class="ulist"><ul>\r
 <li>\r
 <p>\r
-ccache now has a &#8220;direct mode&#8221; where it computes a hash of the source\r
-      code (including all included files) and compiler options without\r
-      running the preprocessor. By not running the preprocessor, CPU usage is\r
-      reduced; the speed is somewhere between 1 and 5 times that of ccache\r
-      running in traditional mode, depending on the circumstances. The speedup\r
-      will be higher when I/O is fast (e.g., when files are in the disk cache).\r
-      The direct mode can be disabled by setting <tt>CCACHE_NODIRECT</tt>.\r
+Fixed build problem on QNX, which lacks &#8220;SA_RESTART&#8221;.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Support has been added for rewriting absolute paths to relative paths\r
-      when hashing, in order to increase cache hit rate when building the same\r
-      source code in different directories even when compiling with <tt>-g</tt> and\r
-      when using absolute include directory paths. This is done by setting the\r
-      <tt>CCACHE_BASEDIR</tt> environment variable to an absolute path that specifies\r
-      which paths to rewrite.\r
+Bail out on compiler option <code>-fstack-usage</code> since it creates a <code>.su</code> file\r
+  which ccache currently doesn&#8217;t handle.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Object files are now optionally stored compressed in the cache. The\r
-      runtime cost is negligible, and more files will fit in the ccache\r
-      directory and in the disk cache. Set <tt>CCACHE_COMPRESS</tt> to enable object\r
-      file compression. Note that you can&#8217;t use compression in combination with\r
-      the hard link feature.\r
+Fixed a bug where (due to ccache rewriting paths) the compiler could choose\r
+  incorrect include files if <code>CCACHE_BASEDIR</code> is used and the source file path\r
+  is absolute and is a symlink.\r
 </p>\r
 </li>\r
+</ul></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_ccache_3_2_5">ccache 3.2.5</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Release date: 2016-04-17</p></div>\r
+<div class="sect2">\r
+<h3 id="_new_features_and_enhancements_6">New features and enhancements</h3>\r
+<div class="ulist"><ul>\r
 <li>\r
 <p>\r
-A <tt>CCACHE_COMPILERCHECK</tt> option has been added. This option tells ccache\r
-      what compiler-identifying information to hash to ensure that results\r
-      retrieved from the cache are accurate. Possible values are: none (don&#8217;t\r
-      hash anything), mtime (hash the compiler&#8217;s mtime and size) and content\r
-      (hash the content of the compiler binary). The default is mtime.\r
+Only pass clang-specific <code>-stdlib=</code> to the preprocessor.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-It is now possible to specify extra files whose contents should be\r
-      included in the hash sum by setting the <tt>CCACHE_EXTRAFILES</tt> option.\r
+Improved handling of stale NFS handles.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Added support for Objective-C and Objective-C++. The statistics counter\r
-      &#8220;not a C/C++ file&#8221; has been renamed to &#8220;unsupported source language&#8221;.\r
+Made it harder to misinterpret documentation of boolean environment settings'\r
+  semantics.\r
 </p>\r
 </li>\r
+</ul></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_bug_fixes_13">Bug fixes</h3>\r
+<div class="ulist"><ul>\r
 <li>\r
 <p>\r
-Added support for the <tt>-x</tt> compiler option.\r
+Include m4 files used by configure.ac in the source dist archives.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Added support for long command-line options.\r
+Corrected "Performance" section in the manual regarding <code>__DATE_</code>, <code>__TIME__</code>\r
+  and <code>__FILE__</code> macros.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-A <tt>CACHEDIR.TAG</tt> file is now created in the cache directory. See\r
-      <a href="http://www.brynosaurus.com/cachedir/">http://www.brynosaurus.com/cachedir/</a>.\r
+Fixed build on Solaris 10+ and AIX 7.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Messages printed to the debug log (specified by <tt>CCACHE_LOGFILE</tt>) have\r
-      been improved.\r
+Fixed failure to create directories on QNX.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-You can relax some checks that ccache does in direct mode by setting\r
-      <tt>CCACHE_SLOPPINESS</tt>. See the manual for more information.\r
+Don&#8217;t (try to) update manifest file in &#8220;read-only&#8221; and &#8220;read-only direct&#8221;\r
+  modes.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-<tt>CCACHE_TEMPDIR</tt> no longer needs to be on the same filesystem as\r
-      <tt>CCACHE_DIR</tt>.\r
+Fixed a bug in caching of <code>stat</code> system calls in &#8220;file_stat_matches\r
+  sloppiness mode&#8221;.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-The default value of <tt>CCACHE_TEMPDIR</tt> has been changed to\r
-      <tt>$CCACHE_DIR/tmp</tt> to avoid cluttering the top directory.\r
+Fixed bug in hashing of clang plugins, leading to unnecessary cache misses.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Temporary files that later will be moved into the cache are now created\r
-      in the cache directory they will end up in. This makes ccache more\r
-      friendly to Linux&#8217;s directory layout.\r
+Fixed --print-config to show &#8220;pch_defines sloppiness&#8221;.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Improved the test suite and added tests for most of the new\r
-      functionality. It&#8217;s now also possible to specify a subset of tests to\r
-      run.\r
+The man page is now built when running &#8220;make install&#8221; from Git repository\r
+  sources.\r
 </p>\r
 </li>\r
+</ul></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_ccache_3_2_4">ccache 3.2.4</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Release date: 2015-10-08</p></div>\r
+<div class="sect2">\r
+<h3 id="_bug_fixes_14">Bug fixes</h3>\r
+<div class="ulist"><ul>\r
 <li>\r
 <p>\r
-Standard error output from the compiler is now only stored in the cache\r
-      if it&#8217;s non-empty.\r
+Fixed build error related to zlib on systems with older make versions\r
+  (regression in ccache 3.2.3).\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-If the compiler produces no object file or an empty object file, but\r
-      gives a zero exit status (could be due to a file system problem, a buggy\r
-      program specified by <tt>CCACHE_PREFIX</tt>, etc.), ccache copes with it\r
-      properly.\r
+Made conversion-to-bool explicit to avoid build warnings (and potential\r
+  runtime errors) on legacy systems.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Added <tt>installcheck</tt> and <tt>distcheck</tt> make targets.\r
+Improved signal handling: Kill compiler on SIGTERM; wait for compiler to exit\r
+  before exiting; die appropriately.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Clarified cache size limit options' and cleanup semantics.\r
+Minor fixes related to Windows support.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Improved display of cache max size values.\r
+The correct compression level is now used if compression is requested.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-The following options are no longer hashed in the preprocessor mode:\r
-      <tt>-imacros</tt>, <tt>-imultilib</tt>, <tt>-iprefix</tt>, <tt>-iquote</tt>, <tt>-isysroot</tt>,\r
-      <tt>-iwithprefix</tt>, <tt>-iwithprefixbefore</tt>, <tt>-nostdinc</tt>, <tt>-nostdinc++</tt> and\r
-      <tt>-U</tt>.\r
+Fixed a bug where cache cleanup could be run too early for caches larger than\r
+  64 GiB on 32-bit systems.\r
 </p>\r
 </li>\r
 </ul></div>\r
 </div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_ccache_3_2_3">ccache 3.2.3</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Release date: 2015-08-16</p></div>\r
 <div class="sect2">\r
-<h3 id="_bug_fixes_11">Bug fixes</h3>\r
+<h3 id="_new_features_and_enhancements_7">New features and enhancements</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+Added support for compiler option <code>-gsplit-dwarf</code>.\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_bug_fixes_15">Bug fixes</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+Support external zlib in nonstandard directory.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Avoid calling <code>exit()</code> inside an exit handler.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Let exit handler terminate properly.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Bail out on compiler option <code>--save-temps</code> in addition to <code>-save-temps</code>.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Only log "Disabling direct mode" once when failing to read potential include\r
+  files.\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_ccache_3_2_2">ccache 3.2.2</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Release date: 2015-05-10</p></div>\r
+<div class="sect2">\r
+<h3 id="_new_features_and_enhancements_8">New features and enhancements</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+Added support for <code>CCACHE_COMPILERCHECK=string:&lt;value&gt;</code>. This is a faster\r
+  alternative to <code>CCACHE_COMPILERCHECK=&lt;command&gt;</code> if the command&#8217;s output can\r
+  be precalculated by the build system.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Add support for caching code coverage results (compiling for gcov).\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_bug_fixes_16">Bug fixes</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+Made hash of cached result created with and without <code>CCACHE_CPP2</code> different.\r
+  This makes it possible to rebuild with <code>CCACHE_CPP2</code> set without having to\r
+  clear the cache to get new results.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Don&#8217;t try to reset a non-existing stats file. This avoids &#8220;No such file or\r
+  directory&#8221; messages in the ccache log when the cache directory doesn&#8217;t\r
+  exist.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Fixed a bug where ccache deleted clang diagnostics after compiler failures.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Avoid performing an unnecessary copy of the object file on a cache miss.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Bail out on too hard compiler option <code>-fmodules</code>.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Bail out on too hard compiler option <code>-fplugin=libcc1plugin</code> (interaction\r
+  with GDB).\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Fixed build error when compiling ccache with recent clang versions.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Removed signal-unsafe code from signal handler.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Corrected logic for when to output cached stderr.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Wipe the whole cached result on failure retrieving a cached file.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Fixed build error when compiling ccache with recent clang versions.\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_ccache_3_2_1">ccache 3.2.1</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Release date: 2014-12-10</p></div>\r
+<div class="sect2">\r
+<h3 id="_bug_fixes_17">Bug fixes</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+Fixed regression in temporary file handling, which lead to incorrect\r
+  permissions for stats, manifest and ccache.conf files in the cache.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+<code>CACHEDIR.TAG</code> files are now created in the [0-9a-f] subdirectories so that\r
+  ccache.conf is not lost in backups.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Made the default cache size suffix <code>G</code>, as previously documented.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+<code>-fdiagnostics-color=auto</code> is now passed to the compiler even if stderr is\r
+  redirected. This fixes a problem when, for instance, a configure test probes\r
+  if the compiler (wrapped via ccache) supports <code>-fdiagnostics-color=auto</code>.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Added missing documentation for <code>max_files</code> and <code>max_size</code> configuration\r
+  options.\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_ccache_3_2">ccache 3.2</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Release date: 2014-11-17</p></div>\r
+<div class="sect2">\r
+<h3 id="_new_features_and_enhancements_9">New features and enhancements</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+Added support for configuring ccache via one or several configuration files\r
+  instead of via environment variables. Environment variables still have\r
+  priority but are no longer the recommended way of customizing ccache\r
+  behavior. See the manual for more information.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Added support for compiler error/warning messages with color.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Made creation of temporary directories and cache directories smarter to avoid\r
+  unnecessary <code>stat</code> calls.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Improved efficiency of the algorithm that scans for <code>__DATE_</code> and <code>__TIME__</code>\r
+  tokens in the hashed source code.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Added support for several binaries (separated by space) in <code>CCACHE_PREFIX</code>.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+The <code>-c</code> option is no longer passed to the preprocessor. This fixes problems\r
+  with clang and Solaris&#8217;s C++ compiler.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+ccache no longer passes preprocessor options like <code>-D</code> and <code>-I</code> to the\r
+  compiler when compiling preprocessed output. This fixes warnings emitted by\r
+  clang.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Compiler options <code>-fprofile-generate</code>, <code>-fprofile-arcs</code>, <code>-fprofile-use</code> and\r
+  <code>-fbranch-probabilities</code> are now handled without bailing.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Added support for clang&#8217;s <code>--serialize-diagnostic</code> option, storing the\r
+  diagnostic file (<code>.dia</code>) in the cache.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Added support for precompiled headers when using clang.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Added support for clang <code>.pth</code> (pretokenized header) files.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Changed the <code>-x</code> language option to use the new objective C standard for GCC\r
+  and clang.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+On a cache miss, ccache now instructs the compiler to create the object file\r
+  at the real destination and then copies the file into the cache instead of\r
+  the other way around. This is needed to support compiler options like\r
+  <code>-fprofile-arcs</code> and <code>--serialize-diagnostics</code>.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+ccache now checks that included files' ctimes aren&#8217;t too new. This check can\r
+  be turned off by adding <code>include_file_ctime</code> to the &#8220;ccache sloppiness&#8221;\r
+  setting.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Added possibility to get cache hits based on filename, size, mtime and ctime\r
+  only. On other words, source code files are not even read, only stat-ed. This\r
+  operation mode is opt-in by adding <code>file_stat_matches</code> to the &#8220;ccache\r
+  sloppiness&#8221; setting.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+The filename part of options like <code>-Wp,-MDfilename</code> is no longer included in\r
+  the hash since the filename doesn&#8217;t have any bearing on the result.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Added a &#8220;read-only direct&#8221; configuration setting, which is like the\r
+  ordinary read-only setting except that ccache will only try to retrieve\r
+  results from the cache using the direct mode, not the preprocessor mode.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+The display and interpretation of cache size has been changed to use SI\r
+  units.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Default cache size is now 5 GB (was previously 1 GiB).\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Added configuration option to set the compression level of compressed object\r
+  files in the cache.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Added support for <code>@file</code> and <code>-@file</code> arguments (reading options from a\r
+  file).\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+<code>-Wl,</code> options are no longer included in the hash since they don&#8217;t affect\r
+  compilation.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Bail out on too hard compiler option <code>-Wp,-P</code>.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Optimized MD4 calculation code on little-endian systems.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Various improvements and fixes on win32.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Improved logging to the ccache log file.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Added <code>--dump-manifest</code> command-line option for debugging purposes.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Added <code>--with-bundled-zlib</code> configure option.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Upgraded bundled zlib to version 1.2.8.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Improved <code>dev.mk</code> to be more platform independent.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Made the test suite work with clang and gcc-llvm on OS X.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Various other improvements of the test suite.\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_bug_fixes_18">Bug fixes</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+Any previous <code>.stderr</code> is now removed from the cache when recaching.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Fixed an issue when handling the <code>-arch</code> compiler option with an argument.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Fixed race condition when creating the initial cache directory.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Fixed test suite failures when <code>CC</code> is a ccache-wrapped compiler.\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_ccache_3_1_12">ccache 3.1.12</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Release date: 2016-07-12</p></div>\r
+<div class="sect2">\r
+<h3 id="_bug_fixes_19">Bug fixes</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+Fixed a bug where (due to ccache rewriting paths) the compiler could choose\r
+  incorrect include files if <code>CCACHE_BASEDIR</code> is used and the source file path\r
+  is absolute and is a symlink.\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_ccache_3_1_11">ccache 3.1.11</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Release date: 2015-03-07</p></div>\r
+<div class="sect2">\r
+<h3 id="_bug_fixes_20">Bug fixes</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+Fixed bug which could result in false cache hits when source code contains\r
+  <code>'"'</code> followed by <code>" /*"</code> or <code>" //"</code> (with variations).\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Made hash of cached result created with and without <code>CCACHE_CPP2</code> different.\r
+  This makes it possible to rebuild with <code>CCACHE_CPP2</code> set without having to\r
+  clear the cache to get new results.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Don&#8217;t try to reset a non-existing stats file. This avoids &#8220;No such file or\r
+  directory&#8221; messages in the ccache log when the cache directory doesn&#8217;t\r
+  exist.\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_ccache_3_1_10">ccache 3.1.10</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Release date: 2014-10-19</p></div>\r
+<div class="sect2">\r
+<h3 id="_new_features_and_enhancements_10">New features and enhancements</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+Added support for the <code>-Xclang</code> compiler option.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Improved handling of exit code of internally executed processes.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Zero length object files in the cache are now rejected as invalid.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Bail out on option <code>-gsplit-dwarf</code> (since it produces multiple output files).\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Compiler option <code>-fdebug-prefix-map</code> is now ignored (not part of the hash).\r
+  (The <code>-fdebug-prefix-map</code> option may be used in combination with\r
+  <code>CCACHE_BASEDIR</code> to reuse results across different directories.)\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Added note in documentation that <code>--ccache-skip</code> currently does not mean\r
+  &#8220;don&#8217;t hash the following option&#8221;.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+To enable support for precompiled headers (PCH), <code>CCACHE_SLOPPINESS</code> now also\r
+  needs to include the new <code>pch_defines</code> sloppiness. This is because ccache\r
+  can&#8217;t detect changes in the source code when only defined macros have been\r
+  changed.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Stale files in the internal temporary directory (<code>&lt;ccache_dir&gt;/tmp</code>) are now\r
+  cleaned up if they are older than one hour.\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_bug_fixes_21">Bug fixes</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+Fixed path canonicalization in <code>make_relative_path()</code> when path doesn&#8217;t\r
+  exist.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Fixed bug in <code>common_dir_prefix_length()</code>. This corrects the <code>CCACHE_BASEDIR</code>\r
+  behavior.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+ccache no longer tries to create the cache directory when <code>CCACHE_DISABLE</code> is\r
+  set.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Fixed bug when reading manifests with a very large number of file info\r
+  entries.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Fixed problem with logging of current working directory.\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_ccache_3_1_9">ccache 3.1.9</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Release date: 2013-01-06</p></div>\r
+<div class="sect2">\r
+<h3 id="_bug_fixes_22">Bug fixes</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+The EAGAIN signal is now handled correctly when emitting cached stderr\r
+  output. This fixes a problem triggered by large error outputs from the\r
+  compiler.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Subdirectories in the cache are no longer created in read-only mode.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Fixed so that ccache&#8217;s log file descriptor is not made available to the\r
+  compiler.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Improved error reporting when failing to create temporary stdout/stderr files\r
+  when executing the compiler.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Disappearing temporary stdout/stderr files are now handled gracefully.\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_other">Other</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+Fixed test suite to work on ecryptfs.\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_ccache_3_1_8">ccache 3.1.8</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Release date: 2012-08-11</p></div>\r
+<div class="sect2">\r
+<h3 id="_new_features_and_enhancements_11">New features and enhancements</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+Made paths to dependency files relative in order to increase cache hits.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Added work-around to make ccache work with buggy GCC 4.1 when creating a\r
+  pre-compiled header.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Clang plugins are now hashed to catch plugin upgrades.\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_bug_fixes_23">Bug fixes</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+Fixed crash when the current working directory has been removed.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Fixed crash when stderr is closed.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Corrected a corner case when parsing backslash escapes in string\r
+  literals.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Paths are now correctly canonicalized when computing paths relative to the\r
+  base directory.\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_other_2">Other</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+Made git version macro work when compiling outside of the source directory.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Fixed <code>static_assert</code> macro definition clash with GCC 4.7.\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_ccache_3_1_7">ccache 3.1.7</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Release date: 2012-01-08</p></div>\r
+<div class="sect2">\r
+<h3 id="_bug_fixes_24">Bug fixes</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+Non-writable <code>CCACHE_DIR</code> is now handled gracefully when <code>CCACHE_READONLY</code> is\r
+  set.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Made failure to create files (typically due to bad directory permissions) in\r
+  the cache directory fatal. Previously, such failures were silently and\r
+  erroneously flagged as "compiler produced stdout".\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Both the <code>-specs=file</code> and <code>--specs=file</code> forms are now recognized.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Added recognition and hashing of GCC plugins specified with <code>-fplugin=file</code>.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+<code>CCACHE_COMPILERCHECK</code> now also determines how to hash explicit specs files\r
+  (<code>-specs=file</code>).\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Added <code>CPATH</code>, <code>C_INCLUDE_PATH</code> and similar environment variables to the hash\r
+  to avoid false cache hits when such variables have changed.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Corrected log message when unify mode is enabled.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Reverted the GCC bug compatibility introduced in ccache 3.1.5 for <code>-MT</code>/<code>-MQ</code>\r
+  options with concatenated arguments. (The bug is fixed in recent GCC\r
+  versions.)\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_other_3">Other</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+Corrected license header for <code>mdfour.c</code>.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Improved documentation on how to fix bad object files in the cache.\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_ccache_3_1_6">ccache 3.1.6</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Release date: 2011-08-21</p></div>\r
+<div class="sect2">\r
+<h3 id="_new_features_and_enhancements_12">New features and enhancements</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+Rewrite argument to <code>--sysroot</code> if <code>CCACHE_BASEDIR</code> is used.\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_bug_fixes_25">Bug fixes</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+Don&#8217;t crash if <code>getcwd()</code> fails.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Fixed alignment of &#8220;called for preprocessing&#8221; counter.\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_ccache_3_1_5">ccache 3.1.5</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Release date: 2011-05-29</p></div>\r
+<div class="sect2">\r
+<h3 id="_new_features_and_enhancements_13">New features and enhancements</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+Added a new statistics counter named &#8220;called for preprocessing&#8221;.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+The original command line is now logged to the file specified with\r
+  <code>CCACHE_LOGFILE</code>.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Improved error logging when system calls fail.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Added support for rewriting absolute paths in <code>-F</code>/<code>-iframework</code> GCC\r
+  options.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Improved order of statistics counters in <code>ccache -s</code> output.\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_bug_fixes_26">Bug fixes</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+The <code>-MF</code>/<code>-MT</code>/<code>-MQ</code> options with concatenated argument are now handled\r
+  correctly when they are last on the command line.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+ccache is now bug compatible with GCC for the <code>-MT</code>/<code>-MQ</code> options with\r
+  concatenated arguments.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Fixed a minor memory leak.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Systems that lack (and don&#8217;t need to be linked with) libm are now supported.\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_ccache_3_1_4">ccache 3.1.4</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Release date: 2011-01-09</p></div>\r
+<div class="sect2">\r
+<h3 id="_bug_fixes_27">Bug fixes</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+Made a work-around for a bug in <code>gzputc()</code> in zlib 1.2.5.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Corrupt manifest files are now removed so that they won&#8217;t block direct mode\r
+  hits.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+ccache now copes with file systems that don&#8217;t know about symbolic links.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+The file handle in now correctly closed on write error when trying to create\r
+  a cache dir tag.\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_ccache_3_1_3">ccache 3.1.3</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Release date: 2010-11-28</p></div>\r
+<div class="sect2">\r
+<h3 id="_bug_fixes_28">Bug fixes</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+The -MFarg, -MTarg and -MQarg compiler options (i.e, without space between\r
+  option and argument) are now handled correctly.\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_other_4">Other</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+Portability fixes for HP-UX 11.00 and other esoteric systems.\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_ccache_3_1_2">ccache 3.1.2</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Release date: 2010-11-21</p></div>\r
+<div class="sect2">\r
+<h3 id="_bug_fixes_29">Bug fixes</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+Bail out on too hard compiler options <code>-fdump-*</code>.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+NULL return values from malloc/calloc of zero bytes are now handled\r
+  correctly.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Fixed issue when parsing precompiler output on AIX.\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_other_5">Other</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+Improved documentation on which information is included in the hash sum.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Made the &#8220;too new header file&#8221; test case work on file systems with\r
+  unsynchronized clocks.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+The test suite now also works on systems that lack a /dev/zero.\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_ccache_3_1_1">ccache 3.1.1</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Release date: 2010-11-07</p></div>\r
+<div class="sect2">\r
+<h3 id="_bug_fixes_30">Bug fixes</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+ccache now falls back to preprocessor mode when a non-regular include file\r
+  (device, socket, etc) has been detected so that potential hanging due to\r
+  blocking reads is avoided.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+CRC errors are now detected when decompressing compressed files in the cache.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Fixed potential object file corruption race on NFS.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Minor documentation corrections.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Fixed configure detection of ar.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+ccache development version (set by dev.mk) now works with gits whose\r
+  <code>describe</code> command doesn&#8217;t understand <code>--dirty</code>.\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_other_6">Other</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+Minor debug log message improvements.\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_ccache_3_1">ccache 3.1</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Release date: 2010-09-16</p></div>\r
+<div class="sect2">\r
+<h3 id="_new_features_and_enhancements_14">New features and enhancements</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+Added support for hashing the output of a custom command (e.g. <code>%compiler%\r
+  --version</code>) to identify the compiler instead of stat-ing or hashing the\r
+  compiler binary. This can improve robustness when the compiler (as seen by\r
+  ccache) actually isn&#8217;t the real compiler but another compiler wrapper.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Added support for caching compilations that use precompiled headers. (See the\r
+  manual for important instructions regarding this.)\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Locking of the files containing statistics counters is now done using\r
+  symlinks instead of POSIX locks. This should make ccache behave a lot better\r
+  on file systems where POSIX locks are slow or broken (e.g. NFS on some\r
+  systems).\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Manifest files are now updated without the need of taking locks.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Updates of statistics counters are now always done in one of the sub-level\r
+  statistics files. This reduces lock contention, which especially improves\r
+  performance on slow NFS mounts.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Reading and writing of statistics counters has been made forward-compatible\r
+  (unknown counters are retained).\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Files are now read without using <code>mmap()</code>. This has two benefits: it&#8217;s more\r
+  robust against file changes during reading and it improves performance on\r
+  poor systems where <code>mmap()</code> doesn&#8217;t use the disk cache.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Added <code>.cp</code> and <code>.CP</code> as known C++ suffixes.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Improved logging.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Added <code>-install_name</code> as an option known to take an argument. (This improves\r
+  statistics when using the Darwin linker.)\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_bug_fixes_31">Bug fixes</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+Non-fatal error messages are now never printed to stderr but logged instead.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Fixed a bug affecting failing commands when <code>--ccache-skip</code> is used.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Made <code>--ccache-skip</code> work for all options.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+EINTR is now handled correctly.\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_other_7">Other</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+Work on porting ccache to win32 (native), mostly done by Ramiro Polla. The\r
+  port is not yet finished, but will hopefully be complete in some subsequent\r
+  release.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Added a <code>--nostats</code> flag to the performance benchmark program.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Made the performance benchmark program more accurate when measuring cache\r
+  hits.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Added a new test framework for unit tests written in C.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Got rid of <code>configure-dev</code>; dev mode is now given by <code>dev.mk.in</code> presence.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Improved documentation on how to combine ccache with other compiler wrappers\r
+  (like <code>distcc</code>).\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+New <code>LICENSE.txt</code> file with licensing and copyright details about bundled\r
+  source code.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+New <code>AUTHORS.txt</code> file with a list of ccache contributors.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+New <code>HACKING.txt</code> file with some notes about ccache code conventions.\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_ccache_3_0_1">ccache 3.0.1</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Release date: 2010-07-15</p></div>\r
+<div class="sect2">\r
+<h3 id="_bug_fixes_32">Bug fixes</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+The statistics counter &#8220;called for link&#8221; is now correctly updated when\r
+  linking with a single object file.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Fixed a problem with out-of-source builds.\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_ccache_3_0">ccache 3.0</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Release date: 2010-06-20</p></div>\r
+<div class="sect2">\r
+<h3 id="_general">General</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+ccache is now licensed under the GNU General Public License (GPL) version 3\r
+  or later.\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_upgrade_notes">Upgrade notes</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+The way the hashes are calculated has changed, so you won&#8217;t get cache hits\r
+  for compilation results stored by older ccache versions. Because of this, you\r
+  might as well clear the old cache directory with <code>ccache --clear</code> if you\r
+  want, unless you plan to keep using an older ccache version.\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_new_features_and_enhancements_15">New features and enhancements</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+ccache now has a &#8220;direct mode&#8221; where it computes a hash of the source code\r
+  (including all included files) and compiler options without running the\r
+  preprocessor. By not running the preprocessor, CPU usage is reduced; the\r
+  speed is somewhere between 1 and 5 times that of ccache running in\r
+  traditional mode, depending on the circumstances. The speedup will be higher\r
+  when I/O is fast (e.g., when files are in the disk cache). The direct mode\r
+  can be disabled by setting <code>CCACHE_NODIRECT</code>.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Support has been added for rewriting absolute paths to relative paths when\r
+  hashing, in order to increase cache hit rate when building the same source\r
+  code in different directories even when compiling with <code>-g</code> and when using\r
+  absolute include directory paths. This is done by setting the\r
+  <code>CCACHE_BASEDIR</code> environment variable to an absolute path that specifies\r
+  which paths to rewrite.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Object files are now optionally stored compressed in the cache. The runtime\r
+  cost is negligible, and more files will fit in the ccache directory and in\r
+  the disk cache. Set <code>CCACHE_COMPRESS</code> to enable object file compression. Note\r
+  that you can&#8217;t use compression in combination with the hard link feature.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+A <code>CCACHE_COMPILERCHECK</code> option has been added. This option tells ccache what\r
+  compiler-identifying information to hash to ensure that results retrieved\r
+  from the cache are accurate. Possible values are: none (don&#8217;t hash anything),\r
+  mtime (hash the compiler&#8217;s mtime and size) and content (hash the content of\r
+  the compiler binary). The default is mtime.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+It is now possible to specify extra files whose contents should be included\r
+  in the hash sum by setting the <code>CCACHE_EXTRAFILES</code> option.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Added support for Objective-C and Objective-C++. The statistics counter\r
+  &#8220;not a C/C++ file&#8221; has been renamed to &#8220;unsupported source language&#8221;.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Added support for the <code>-x</code> compiler option.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Added support for long command-line options.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+A <code>CACHEDIR.TAG</code> file is now created in the cache directory. See\r
+  <a href="http://www.brynosaurus.com/cachedir/">http://www.brynosaurus.com/cachedir/</a>.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Messages printed to the debug log (specified by <code>CCACHE_LOGFILE</code>) have been\r
+  improved.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+You can relax some checks that ccache does in direct mode by setting\r
+  <code>CCACHE_SLOPPINESS</code>. See the manual for more information.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+<code>CCACHE_TEMPDIR</code> no longer needs to be on the same filesystem as\r
+  <code>CCACHE_DIR</code>.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+The default value of <code>CCACHE_TEMPDIR</code> has been changed to <code>$CCACHE_DIR/tmp</code>\r
+  to avoid cluttering the top directory.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Temporary files that later will be moved into the cache are now created in\r
+  the cache directory they will end up in. This makes ccache more friendly to\r
+  Linux&#8217;s directory layout.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Improved the test suite and added tests for most of the new functionality.\r
+  It&#8217;s now also possible to specify a subset of tests to run.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Standard error output from the compiler is now only stored in the cache if\r
+  it&#8217;s non-empty.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+If the compiler produces no object file or an empty object file, but gives a\r
+  zero exit status (could be due to a file system problem, a buggy program\r
+  specified by <code>CCACHE_PREFIX</code>, etc.), ccache copes with it properly.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Added <code>installcheck</code> and <code>distcheck</code> make targets.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Clarified cache size limit options' and cleanup semantics.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Improved display of cache max size values.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+The following options are no longer hashed in the preprocessor mode:\r
+  <code>-imacros</code>, <code>-imultilib</code>, <code>-iprefix</code>, <code>-iquote</code>, <code>-isysroot</code>, <code>-iwithprefix</code>,\r
+  <code>-iwithprefixbefore</code>, <code>-nostdinc</code>, <code>-nostdinc++</code> and <code>-U</code>.\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_bug_fixes_33">Bug fixes</h3>\r
 <div class="ulist"><ul>\r
 <li>\r
 <p>\r
@@ -1517,7 +2809,7 @@ Improved detection of home directory.
 </li>\r
 <li>\r
 <p>\r
-User-defined <tt>CPPFLAGS</tt> and <tt>LDFLAGS</tt> are now respected in the Makefile.\r
+User-defined <code>CPPFLAGS</code> and <code>LDFLAGS</code> are now respected in the Makefile.\r
 </p>\r
 </li>\r
 <li>\r
@@ -1527,49 +2819,49 @@ Fixed NFS issues.
 </li>\r
 <li>\r
 <p>\r
-Computation of the hash sum has been improved to decrease the risk of\r
-      hash collisions. For instance, the compiler options <tt>-X -Y</tt> and <tt>-X-Y</tt>\r
-      previously contributed equally to the hash sum.\r
+Computation of the hash sum has been improved to decrease the risk of hash\r
+  collisions. For instance, the compiler options <code>-X -Y</code> and <code>-X-Y</code> previously\r
+  contributed equally to the hash sum.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Bail out on too hard compiler options <tt>--coverage</tt>, <tt>-fprofile-arcs</tt>,\r
-      <tt>-fprofile-generate</tt>, <tt>-fprofile-use</tt>, <tt>-frepo</tt>, <tt>-ftest-coverage</tt> and\r
-      <tt>-save-temps</tt>. Also bail out on <tt>@file</tt> style options.\r
+Bail out on too hard compiler options <code>--coverage</code>, <code>-fprofile-arcs</code>,\r
+  <code>-fprofile-generate</code>, <code>-fprofile-use</code>, <code>-frepo</code>, <code>-ftest-coverage</code> and\r
+  <code>-save-temps</code>. Also bail out on <code>@file</code> style options.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Errors when using multiple <tt>-arch</tt> compiler options are now noted as\r
-      &#8220;unsupported compiler option&#8221;.\r
+Errors when using multiple <code>-arch</code> compiler options are now noted as\r
+  &#8220;unsupported compiler option&#8221;.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-<tt>-MD</tt>/<tt>-MMD</tt> options without <tt>-MT</tt>/<tt>-MF</tt> are now handled correctly.\r
+<code>-MD</code>/<code>-MMD</code> options without <code>-MT</code>/<code>-MF</code> are now handled correctly.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-The <tt>-finput-charset</tt> option is now handled correctly.\r
+The <code>-finput-charset</code> option is now handled correctly.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Added support for <tt>-Wp,-MD</tt> and <tt>-Wp,-MMD</tt> options.\r
+Added support for <code>-Wp,-MD</code> and <code>-Wp,-MMD</code> options.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-The compiler options <tt>-Xassembler</tt>, <tt>-b</tt>, <tt>-G</tt> and <tt>-V</tt> are now correctly\r
-      recognized as taking an argument.\r
+The compiler options <code>-Xassembler</code>, <code>-b</code>, <code>-G</code> and <code>-V</code> are now correctly\r
+  recognized as taking an argument.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
 Debug information containing line numbers of predefined and command-line\r
-      macros (enabled with the compiler option <tt>-g3</tt>) will now be correct.\r
+  macros (enabled with the compiler option <code>-g3</code>) will now be correct.\r
 </p>\r
 </li>\r
 <li>\r
@@ -1579,7 +2871,7 @@ Corrected LRU cleanup handling of object files.
 </li>\r
 <li>\r
 <p>\r
-<tt>utimes()</tt> is now used instead of <tt>utime()</tt> when available.\r
+<code>utimes()</code> is now used instead of <code>utime()</code> when available.\r
 </p>\r
 </li>\r
 <li>\r
@@ -1599,7 +2891,7 @@ Fixed compilation warnings from GCC 4.3.
 </li>\r
 <li>\r
 <p>\r
-The command specified by <tt>CCACHE_PREFIX</tt> is no longer part of the hash.\r
+The command specified by <code>CCACHE_PREFIX</code> is no longer part of the hash.\r
 </p>\r
 </li>\r
 <li>\r
@@ -1609,19 +2901,19 @@ Fixed bad memory access spotted by Valgrind.
 </li>\r
 <li>\r
 <p>\r
-Fixed a bug in <tt>x_realloc</tt>.\r
+Fixed a bug in <code>x_realloc</code>.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Freed memory is no longer referenced when compiling a <tt>.i</tt>/<tt>.ii</tt> file and\r
-      falling back to running the real compiler.\r
+Freed memory is no longer referenced when compiling a <code>.i</code>/<code>.ii</code> file and\r
+  falling back to running the real compiler.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-The test suite is now immune to external values of the <tt>CCACHE_*</tt>\r
-      environment variables.\r
+The test suite is now immune to external values of the <code>CCACHE_*</code> environment\r
+  variables.\r
 </p>\r
 </li>\r
 <li>\r
@@ -1637,7 +2929,7 @@ The ccache binary is now not unconditionally stripped when installing.
 <li>\r
 <p>\r
 Statistics counters are now correctly updated for -E option failures and\r
-      internal errors.\r
+  internal errors.\r
 </p>\r
 </li>\r
 </ul></div>\r
@@ -1648,8 +2940,9 @@ Statistics counters are now correctly updated for -E option failures and
 <div id="footnotes"><hr /></div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Version 3.1.8<br />\r
-Last updated 2012-08-11 10:57:17 CEST\r
+Version 3.4<br />\r
+Last updated\r
+ 2018-02-11 15:20:55 CET\r
 </div>\r
 </div>\r
 </body>\r