Imported Upstream version 3.4
[platform/upstream/ccache.git] / NEWS.html
index 0d5a369..0e60bf1 100644 (file)
--- a/NEWS.html
+++ b/NEWS.html
@@ -3,29 +3,26 @@
 <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.3" />\r
+<meta name="generator" content="AsciiDoc 8.6.9" />\r
 <title>ccache news</title>\r
 <style type="text/css">\r
-/* Sans-serif font. */\r
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */\r
+\r
+/* Default font. */\r
+body {\r
+  font-family: Georgia,serif;\r
+}\r
+\r
+/* Title font. */\r
 h1, h2, h3, h4, h5, h6,\r
 div.title, caption.title,\r
 thead, p.table.header,\r
-div#toctitle,\r
-span#author, span#revnumber, span#revdate, span#revremark,\r
-div#footer {\r
+#toctitle,\r
+#author, #revnumber, #revdate, #revremark,\r
+#footer {\r
   font-family: Arial,Helvetica,sans-serif;\r
 }\r
 \r
-/* Serif font. */\r
-div.sectionbody {\r
-  font-family: Georgia,"Times New Roman",Times,serif;\r
-}\r
-\r
-/* Monospace font. */\r
-tt {\r
-  font-size: inherit;\r
-}\r
-\r
 body {\r
   margin: 1em 5% 1em 5%;\r
 }\r
@@ -48,11 +45,6 @@ strong {
   color: #083194;\r
 }\r
 \r
-tt {\r
-  font-size: inherit;\r
-  color: navy;\r
-}\r
-\r
 h1, h2, h3, h4, h5, h6 {\r
   color: #527bbd;\r
   margin-top: 1.2em;\r
@@ -72,6 +64,9 @@ h3 {
 h3 + * {\r
   clear: left;\r
 }\r
+h5 {\r
+  font-size: 1.0em;\r
+}\r
 \r
 div.sectionbody {\r
   margin-left: 0;\r
@@ -92,41 +87,47 @@ 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
-span#author {\r
+#author {\r
   color: #527bbd;\r
   font-weight: bold;\r
   font-size: 1.1em;\r
 }\r
-span#email {\r
+#email {\r
 }\r
-span#revnumber, span#revdate, span#revremark {\r
+#revnumber, #revdate, #revremark {\r
 }\r
 \r
-div#footer {\r
+#footer {\r
   font-size: small;\r
   border-top: 2px solid silver;\r
   padding-top: 0.5em;\r
   margin-top: 4.0em;\r
 }\r
-div#footer-text {\r
+#footer-text {\r
   float: left;\r
   padding-bottom: 0.5em;\r
 }\r
-div#footer-badges {\r
+#footer-badges {\r
   float: right;\r
   padding-bottom: 0.5em;\r
 }\r
 \r
-div#preamble {\r
+#preamble {\r
   margin-top: 1.5em;\r
   margin-bottom: 1.5em;\r
 }\r
-div.tableblock, div.imageblock, div.exampleblock, div.verseblock,\r
+div.imageblock, div.exampleblock, div.verseblock,\r
 div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,\r
 div.admonitionblock {\r
   margin-top: 1.0em;\r
@@ -184,7 +185,7 @@ div.quoteblock, div.verseblock {
   margin-left: 1.0em;\r
   margin-right: 10%;\r
   border-left: 5px solid #f0f0f0;\r
-  color: #777777;\r
+  color: #888;\r
 }\r
 \r
 div.quoteblock > div.attribution {\r
@@ -224,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
@@ -267,35 +268,12 @@ div.compact div, div.compact div {
   margin-bottom: 0.1em;\r
 }\r
 \r
-div.tableblock > table {\r
-  border: 3px solid #527bbd;\r
-}\r
-thead, p.table.header {\r
-  font-weight: bold;\r
-  color: #527bbd;\r
-}\r
 tfoot {\r
   font-weight: bold;\r
 }\r
 td > div.verse {\r
   white-space: pre;\r
 }\r
-p.table {\r
-  margin-top: 0;\r
-}\r
-/* Because the table frame attribute is overriden by CSS in most browsers. */\r
-div.tableblock > table[frame="void"] {\r
-  border-style: none;\r
-}\r
-div.tableblock > table[frame="hsides"] {\r
-  border-left-style: none;\r
-  border-right-style: none;\r
-}\r
-div.tableblock > table[frame="vsides"] {\r
-  border-top-style: none;\r
-  border-bottom-style: none;\r
-}\r
-\r
 \r
 div.hdlist {\r
   margin-top: 0.8em;\r
@@ -362,14 +340,14 @@ div.colist td img {
 }\r
 \r
 @media print {\r
-  div#footer-badges { display: none; }\r
+  #footer-badges { display: none; }\r
 }\r
 \r
-div#toc {\r
+#toc {\r
   margin-bottom: 2.5em;\r
 }\r
 \r
-div#toctitle {\r
+#toctitle {\r
   color: #527bbd;\r
   font-size: 1.1em;\r
   font-weight: bold;\r
@@ -377,7 +355,7 @@ div#toctitle {
   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
@@ -394,10 +372,172 @@ div.toclevel4 {
   font-size: 0.9em;\r
 }\r
 \r
+span.aqua { color: aqua; }\r
+span.black { color: black; }\r
+span.blue { color: blue; }\r
+span.fuchsia { color: fuchsia; }\r
+span.gray { color: gray; }\r
+span.green { color: green; }\r
+span.lime { color: lime; }\r
+span.maroon { color: maroon; }\r
+span.navy { color: navy; }\r
+span.olive { color: olive; }\r
+span.purple { color: purple; }\r
+span.red { color: red; }\r
+span.silver { color: silver; }\r
+span.teal { color: teal; }\r
+span.white { color: white; }\r
+span.yellow { color: yellow; }\r
+\r
+span.aqua-background { background: aqua; }\r
+span.black-background { background: black; }\r
+span.blue-background { background: blue; }\r
+span.fuchsia-background { background: fuchsia; }\r
+span.gray-background { background: gray; }\r
+span.green-background { background: green; }\r
+span.lime-background { background: lime; }\r
+span.maroon-background { background: maroon; }\r
+span.navy-background { background: navy; }\r
+span.olive-background { background: olive; }\r
+span.purple-background { background: purple; }\r
+span.red-background { background: red; }\r
+span.silver-background { background: silver; }\r
+span.teal-background { background: teal; }\r
+span.white-background { background: white; }\r
+span.yellow-background { background: yellow; }\r
+\r
+span.big { font-size: 2em; }\r
+span.small { font-size: 0.6em; }\r
+\r
+span.underline { text-decoration: underline; }\r
+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
+div.tableblock {\r
+  margin-top: 1.0em;\r
+  margin-bottom: 1.5em;\r
+}\r
+div.tableblock > table {\r
+  border: 3px solid #527bbd;\r
+}\r
+thead, p.table.header {\r
+  font-weight: bold;\r
+  color: #527bbd;\r
+}\r
+p.table {\r
+  margin-top: 0;\r
+}\r
+/* Because the table frame attribute is overriden by CSS in most browsers. */\r
+div.tableblock > table[frame="void"] {\r
+  border-style: none;\r
+}\r
+div.tableblock > table[frame="hsides"] {\r
+  border-left-style: none;\r
+  border-right-style: none;\r
+}\r
+div.tableblock > table[frame="vsides"] {\r
+  border-top-style: none;\r
+  border-bottom-style: none;\r
+}\r
+\r
+\r
+/*\r
+ * html5 specific\r
+ *\r
+ * */\r
+\r
+table.tableblock {\r
+  margin-top: 1.0em;\r
+  margin-bottom: 1.5em;\r
+}\r
+thead, p.tableblock.header {\r
+  font-weight: bold;\r
+  color: #527bbd;\r
+}\r
+p.tableblock {\r
+  margin-top: 0;\r
+}\r
+table.tableblock {\r
+  border-width: 3px;\r
+  border-spacing: 0px;\r
+  border-style: solid;\r
+  border-color: #527bbd;\r
+  border-collapse: collapse;\r
+}\r
+th.tableblock, td.tableblock {\r
+  border-width: 1px;\r
+  padding: 4px;\r
+  border-style: solid;\r
+  border-color: #527bbd;\r
+}\r
+\r
+table.tableblock.frame-topbot {\r
+  border-left-style: hidden;\r
+  border-right-style: hidden;\r
+}\r
+table.tableblock.frame-sides {\r
+  border-top-style: hidden;\r
+  border-bottom-style: hidden;\r
+}\r
+table.tableblock.frame-none {\r
+  border-style: hidden;\r
+}\r
+\r
+th.tableblock.halign-left, td.tableblock.halign-left {\r
+  text-align: left;\r
+}\r
+th.tableblock.halign-center, td.tableblock.halign-center {\r
+  text-align: center;\r
+}\r
+th.tableblock.halign-right, td.tableblock.halign-right {\r
+  text-align: right;\r
+}\r
+\r
+th.tableblock.valign-top, td.tableblock.valign-top {\r
+  vertical-align: top;\r
+}\r
+th.tableblock.valign-middle, td.tableblock.valign-middle {\r
+  vertical-align: middle;\r
+}\r
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {\r
+  vertical-align: bottom;\r
+}\r
+\r
+\r
+/*\r
+ * manpage specific\r
+ *\r
+ * */\r
+\r
+body.manpage h1 {\r
+  padding-top: 0.5em;\r
+  padding-bottom: 0.5em;\r
+  border-top: 2px solid silver;\r
+  border-bottom: 2px solid silver;\r
+}\r
+body.manpage h2 {\r
+  border-style: none;\r
+}\r
+body.manpage div.sectionbody {\r
+  margin-left: 3em;\r
+}\r
+\r
+@media print {\r
+  body.manpage div#toc { display: none; }\r
+}\r
+\r
+\r
 </style>\r
 <script type="text/javascript">\r
 /*<![CDATA[*/\r
-window.onload = function(){asciidoc.footnotes(); asciidoc.toc(2);}\r
 var asciidoc = {  // Namespace.\r
 \r
 /////////////////////////////////////////////////////////////////////\r
@@ -439,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
@@ -459,6 +599,25 @@ toc: function (toclevels) {
   }\r
 \r
   var toc = document.getElementById("toc");\r
+  if (!toc) {\r
+    return;\r
+  }\r
+\r
+  // Delete existing TOC entries in case we're reloading the TOC.\r
+  var tocEntriesToRemove = [];\r
+  var i;\r
+  for (i = 0; i < toc.childNodes.length; i++) {\r
+    var entry = toc.childNodes[i];\r
+    if (entry.nodeName.toLowerCase() == 'div'\r
+     && entry.getAttribute("class")\r
+     && entry.getAttribute("class").match(/^toclevel/))\r
+      tocEntriesToRemove.push(entry);\r
+  }\r
+  for (i = 0; i < tocEntriesToRemove.length; i++) {\r
+    toc.removeChild(tocEntriesToRemove[i]);\r
+  }\r
+\r
+  // Rebuild TOC entries.\r
   var entries = tocEntries(document.getElementById("content"), toclevels);\r
   for (var i = 0; i < entries.length; ++i) {\r
     var entry = entries[i];\r
@@ -486,24 +645,44 @@ toc: function (toclevels) {
  */\r
 \r
 footnotes: function () {\r
-  var cont = document.getElementById("content");\r
+  // Delete existing footnote entries in case we're reloading the footnodes.\r
+  var i;\r
   var noteholder = document.getElementById("footnotes");\r
+  if (!noteholder) {\r
+    return;\r
+  }\r
+  var entriesToRemove = [];\r
+  for (i = 0; i < noteholder.childNodes.length; i++) {\r
+    var entry = noteholder.childNodes[i];\r
+    if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")\r
+      entriesToRemove.push(entry);\r
+  }\r
+  for (i = 0; i < entriesToRemove.length; i++) {\r
+    noteholder.removeChild(entriesToRemove[i]);\r
+  }\r
+\r
+  // Rebuild footnote entries.\r
+  var cont = document.getElementById("content");\r
   var spans = cont.getElementsByTagName("span");\r
   var refs = {};\r
   var n = 0;\r
   for (i=0; i<spans.length; i++) {\r
     if (spans[i].className == "footnote") {\r
       n++;\r
-      // Use [\s\S] in place of . so multi-line matches work.\r
-      // Because JavaScript has no s (dotall) regex flag.\r
-      note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];\r
+      var note = spans[i].getAttribute("data-note");\r
+      if (!note) {\r
+        // Use [\s\S] in place of . so multi-line matches work.\r
+        // Because JavaScript has no s (dotall) regex flag.\r
+        note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];\r
+        spans[i].innerHTML =\r
+          "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +\r
+          "' title='View footnote' class='footnote'>" + n + "</a>]";\r
+        spans[i].setAttribute("data-note", note);\r
+      }\r
       noteholder.innerHTML +=\r
         "<div class='footnote' id='_footnote_" + n + "'>" +\r
         "<a href='#_footnoteref_" + n + "' title='Return to text'>" +\r
         n + "</a>. " + note + "</div>";\r
-      spans[i].innerHTML =\r
-        "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +\r
-        "' title='View footnote' class='footnote'>" + n + "</a>]";\r
       var id =spans[i].getAttribute("id");\r
       if (id != null) refs["#"+id] = n;\r
     }\r
@@ -523,16 +702,39 @@ footnotes: function () {
       }\r
     }\r
   }\r
+},\r
+\r
+install: function(toclevels) {\r
+  var timerId;\r
+\r
+  function reinstall() {\r
+    asciidoc.footnotes();\r
+    if (toclevels) {\r
+      asciidoc.toc(toclevels);\r
+    }\r
+  }\r
+\r
+  function reinstallAndRemoveTimer() {\r
+    clearInterval(timerId);\r
+    reinstall();\r
+  }\r
+\r
+  timerId = setInterval(reinstall, 500);\r
+  if (document.addEventListener)\r
+    document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);\r
+  else\r
+    window.onload = reinstallAndRemoveTimer;\r
 }\r
 \r
 }\r
+asciidoc.install(2);\r
 /*]]>*/\r
 </script>\r
 </head>\r
 <body class="article">\r
 <div id="header">\r
 <h1>ccache news</h1>\r
-<span id="revnumber">version 3.1.6</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>
@@ -540,129 +742,96 @@ footnotes: function () {
 </div>\r
 <div id="content">\r
 <div class="sect1">\r
-<h2 id="_ccache_3_1_6">ccache 3.1.6</h2>\r
+<h2 id="_ccache_3_4">ccache 3.4</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_improvements">New features and improvements</h3>\r
-<div class="ulist"><ul>\r
-<li>\r
-<p>\r
-Rewrite argument to --sysroot if CCACHE_BASEDIR is used.\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
-Don&#8217;t crash if getcwd() fails.\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 alignment of "called for preprocessing" counter.\r
+Added support for caching <code>.su</code> files generated by GCC flag <code>-fstack-usage</code>.\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_2">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
+ccache should now work with distcc&#8217;s &#8220;pump&#8221; wrapper.\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
+The optional unifier is no longer disabled when the direct mode is enabled.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Improved error logging when system calls fail.\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
-Added support for rewriting absolute paths in <tt>-F</tt>/<tt>-iframework</tt> GCC\r
-      options.\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
 <li>\r
 <p>\r
-Improved order of statistics counters in <tt>ccache -s</tt> output.\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
-</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
-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
+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
-ccache is now bug compatible with GCC for the <tt>-MT</tt>/<tt>-MQ</tt> options with\r
-      concatenated arguments.\r
+ccache now treats an unreadable configuration file just like a missing\r
+  configuration file.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Fixed a minor memory leak.\r
+Documented more pitfalls with enabling <code>hard_links</code> (<code>CCACHE_HARDLINK</code>).\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
+Documented caveats related to colored warnings from compilers.\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_3">Bug fixes</h3>\r
+<h3 id="_bug_fixes">Bug fixes</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
-</p>\r
-</li>\r
-<li>\r
-<p>\r
-Corrupt manifest files are now removed so that they won&#8217;t block direct\r
-      mode hits.\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
-ccache now copes with file systems that don&#8217;t know about symbolic links.\r
+<code>run_second_cpp</code> is now forced for nvcc.\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 how the nvcc options <code>-optf</code> and <code>-odir</code> are handled.\r
 </p>\r
 </li>\r
 </ul></div>\r
@@ -670,26 +839,26 @@ 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_6">ccache 3.3.6</h2>\r
 <div class="sectionbody">\r
-<div class="paragraph"><p>Release date: 2010-11-28</p></div>\r
+<div class="paragraph"><p>Release date: 2018-01-28</p></div>\r
 <div class="sect2">\r
-<h3 id="_bug_fixes_4">Bug fixes</h3>\r
+<h3 id="_new_features_and_enhancements_2">New features and enhancements</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
+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="_other">Other</h3>\r
+<h3 id="_bug_fixes_2">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
+Fixed regression in ccache 3.3.5 related to the <code>UNCACHED_ERR_FD</code> feature.\r
 </p>\r
 </li>\r
 </ul></div>\r
@@ -697,102 +866,82 @@ 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_5">ccache 3.3.5</h2>\r
 <div class="sectionbody">\r
-<div class="paragraph"><p>Release date: 2010-11-21</p></div>\r
+<div class="paragraph"><p>Release date: 2018-01-13</p></div>\r
 <div class="sect2">\r
-<h3 id="_bug_fixes_5">Bug fixes</h3>\r
+<h3 id="_new_features_and_enhancements_3">New features and enhancements</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
-</p>\r
-</li>\r
-<li>\r
-<p>\r
-Fixed issue when parsing precompiler output on AIX.\r
+Documented how automatic cache cleanup works.\r
 </p>\r
 </li>\r
 </ul></div>\r
 </div>\r
 <div class="sect2">\r
-<h3 id="_other_2">Other</h3>\r
+<h3 id="_bug_fixes_3">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
+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
 <li>\r
 <p>\r
-Made the &#8220;too new header file&#8221; test case work on file systems with\r
-      unsynchronized clocks.\r
+Multiple <code>-fdebug-prefix-map</code> options should now be handled correctly.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-The test suite now also works on systems that lack a /dev/zero.\r
+Fixed matching of directories in the <code>ignore_headers_in_manifest</code>\r
+  configuration option.\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_6">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\r
-      file (device, socket, etc) has been detected so that potential hanging\r
-      due to blocking reads is avoided.\r
+Fixed detection of missing argument to <code>-opt</code>/<code>--options-file</code>.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-CRC errors are now detected when decompressing compressed files in the\r
-      cache.\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
-Fixed potential object file corruption race on NFS.\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
 <li>\r
 <p>\r
-Minor documentation corrections.\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
-Fixed configure detection of ar.\r
+ccache no longer ignores linker arguments for clang since clang warns about\r
+  them.\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
+Plugged a couple of file descriptor leaks.\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
-Minor debug log message improvements.\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
@@ -800,63 +949,1561 @@ Minor debug log message improvements.
 </div>\r
 </div>\r
 <div class="sect1">\r
-<h2 id="_ccache_3_1">ccache 3.1</h2>\r
+<h2 id="_ccache_3_3_4">ccache 3.3.4</h2>\r
 <div class="sectionbody">\r
-<div class="paragraph"><p>Release date: 2010-09-16</p></div>\r
+<div class="paragraph"><p>Release date: 2017-02-17</p></div>\r
 <div class="sect2">\r
-<h3 id="_new_features_and_improvements_3">New features and improvements</h3>\r
+<h3 id="_new_features_and_enhancements_4">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.\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
-</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
+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
-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
+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
-Manifest files are now updated without the need of taking locks.\r
+Corrected statistics counter for <code>-optf</code>/<code>--options-file</code> failure.\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
+Fixed undefined behavior warnings in ccache found by <code>-fsanitize=undefined</code>.\r
 </p>\r
 </li>\r
+</ul></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_ccache_3_3_3">ccache 3.3.3</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Release date: 2016-10-26</p></div>\r
+<div class="sect2">\r
+<h3 id="_bug_fixes_5">Bug fixes</h3>\r
+<div class="ulist"><ul>\r
 <li>\r
 <p>\r
-Reading and writing of statistics counters has been made\r
-      forward-compatible (unknown counters are retained).\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
-<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
+</ul></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_ccache_3_3_2">ccache 3.3.2</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_6">Bug fixes</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\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 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="_bug_fixes_7">Bug fixes</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\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
+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
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_ccache_3_3">ccache 3.3</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Release date: 2016-08-27</p></div>\r
+<div class="sect2">\r
+<h3 id="_notes">Notes</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\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
+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
+The configuration option <code>hash_dir</code> (<code>CCACHE_HASHDIR</code>) now defaults to true.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\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
+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
+<li>\r
+<p>\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
+<li>\r
+<p>\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 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
+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
+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
+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
+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
+Added support for cuda including the -optf/--options-file option.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Added support for Fortran 77.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Added support for multiple <code>-arch</code> options to produce "fat binaries".\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Multiple identical <code>-arch</code> arguments are now handled without bailing.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\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
+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 the <code>hash_dir</code> option only have effect when generating debug info.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\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
+<li>\r
+<p>\r
+Improved parsing of <code>-g*</code> options.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Made ccache understand <code>-Wp,-D*</code> options.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+ccache now understands the undocumented <code>-coverage</code> (only one dash) GCC\r
+  option.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\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
+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
+Bail out on too hard compiler option <code>-P</code>.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Fixed clang test suite when running on Linux.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\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
+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
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_ccache_3_2_8">ccache 3.2.8</h2>\r
+<div class="sectionbody">\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
+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
+ccache now understands the undocumented <code>-coverage</code> (only one dash) GCC\r
+  option.\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_ccache_3_2_7">ccache 3.2.7</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Release date: 2016-07-20</p></div>\r
+<div class="sect2">\r
+<h3 id="_bug_fixes_11">Bug fixes</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\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
+<li>\r
+<p>\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="_bug_fixes_12">Bug fixes</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+Fixed build problem on QNX, which lacks &#8220;SA_RESTART&#8221;.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\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
+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
+Only pass clang-specific <code>-stdlib=</code> to the preprocessor.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Improved handling of stale NFS handles.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\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
+Include m4 files used by configure.ac in the source dist archives.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\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
+Fixed build on Solaris 10+ and AIX 7.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Fixed failure to create directories on QNX.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\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
+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
+Fixed bug in hashing of clang plugins, leading to unnecessary cache misses.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Fixed --print-config to show &#8220;pch_defines sloppiness&#8221;.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\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
+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
+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
+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
+Minor fixes related to Windows support.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+The correct compression level is now used if compression is requested.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\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="_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
-Added <tt>.cp</tt> and <tt>.CP</tt> as known C++ suffixes.\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
@@ -866,29 +2513,28 @@ Improved logging.
 </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
+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_7">Bug fixes</h3>\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\r
-      instead.\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 <tt>--ccache-skip</tt> is used.\r
+Fixed a bug affecting failing commands when <code>--ccache-skip</code> is used.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-Made <tt>--ccache-skip</tt> work for all options.\r
+Made <code>--ccache-skip</code> work for all options.\r
 </p>\r
 </li>\r
 <li>\r
@@ -899,24 +2545,24 @@ EINTR is now handled correctly.
 </ul></div>\r
 </div>\r
 <div class="sect2">\r
-<h3 id="_other_4">Other</h3>\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.\r
-      The port is not yet finished, but will hopefully be complete in some\r
-      subsequent release.\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 <tt>--nostats</tt> flag to the performance benchmark program.\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
+  hits.\r
 </p>\r
 </li>\r
 <li>\r
@@ -926,30 +2572,29 @@ Added a new test framework for unit tests written in C.
 </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
+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\r
-      wrappers (like <tt>distcc</tt>).\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 <tt>LICENSE.txt</tt> file with licensing and copyright details about bundled\r
-      source code.\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 <tt>AUTHORS.txt</tt> file with a list of ccache contributors.\r
+New <code>AUTHORS.txt</code> file with a list of ccache contributors.\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-New <tt>HACKING.txt</tt> file with some notes about ccache code conventions.\r
+New <code>HACKING.txt</code> file with some notes about ccache code conventions.\r
 </p>\r
 </li>\r
 </ul></div>\r
@@ -961,12 +2606,12 @@ New <tt>HACKING.txt</tt> file with some notes about ccache code conventions.
 <div class="sectionbody">\r
 <div class="paragraph"><p>Release date: 2010-07-15</p></div>\r
 <div class="sect2">\r
-<h3 id="_bug_fixes_8">Bug fixes</h3>\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
+  linking with a single object file.\r
 </p>\r
 </li>\r
 <li>\r
@@ -987,8 +2632,8 @@ Fixed a problem with out-of-source builds.
 <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
+ccache is now licensed under the GNU General Public License (GPL) version 3\r
+  or later.\r
 </p>\r
 </li>\r
 </ul></div>\r
@@ -998,72 +2643,70 @@ ccache is now licensed under the GNU General Public License (GPL) version
 <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
+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_improvements_4">New features and improvements</h3>\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\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
+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\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
+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\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
+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 <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
+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\r
-      included in the hash sum by setting the <tt>CCACHE_EXTRAFILES</tt> option.\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
+  &#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 <tt>-x</tt> compiler option.\r
+Added support for the <code>-x</code> compiler option.\r
 </p>\r
 </li>\r
 <li>\r
@@ -1073,65 +2716,63 @@ Added support for long command-line options.
 </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
+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 <tt>CCACHE_LOGFILE</tt>) have\r
-      been improved.\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
-      <tt>CCACHE_SLOPPINESS</tt>. See the manual for more information.\r
+  <code>CCACHE_SLOPPINESS</code>. See the manual for more information.\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
+<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 <tt>CCACHE_TEMPDIR</tt> has been changed to\r
-      <tt>$CCACHE_DIR/tmp</tt> to avoid cluttering the top directory.\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\r
-      in the cache directory they will end up in. This makes ccache more\r
-      friendly to Linux&#8217;s directory layout.\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\r
-      functionality. It&#8217;s now also possible to specify a subset of tests to\r
-      run.\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\r
-      if it&#8217;s non-empty.\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\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
+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 <tt>installcheck</tt> and <tt>distcheck</tt> make targets.\r
+Added <code>installcheck</code> and <code>distcheck</code> make targets.\r
 </p>\r
 </li>\r
 <li>\r
@@ -1147,15 +2788,14 @@ Improved display of cache max size values.
 <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
+  <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_9">Bug fixes</h3>\r
+<h3 id="_bug_fixes_33">Bug fixes</h3>\r
 <div class="ulist"><ul>\r
 <li>\r
 <p>\r
@@ -1169,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
@@ -1179,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
@@ -1231,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
@@ -1251,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
@@ -1261,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
@@ -1289,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
@@ -1300,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.6<br />\r
-Last updated 2011-08-21 16:34:07 CEST\r
+Version 3.4<br />\r
+Last updated\r
+ 2018-02-11 15:20:55 CET\r
 </div>\r
 </div>\r
 </body>\r