Imported Upstream version 3.4
[platform/upstream/ccache.git] / NEWS.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"\r
2     "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\r
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
4 <head>\r
5 <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />\r
6 <meta name="generator" content="AsciiDoc 8.6.9" />\r
7 <title>ccache news</title>\r
8 <style type="text/css">\r
9 /* Shared CSS for AsciiDoc xhtml11 and html5 backends */\r
10 \r
11 /* Default font. */\r
12 body {\r
13   font-family: Georgia,serif;\r
14 }\r
15 \r
16 /* Title font. */\r
17 h1, h2, h3, h4, h5, h6,\r
18 div.title, caption.title,\r
19 thead, p.table.header,\r
20 #toctitle,\r
21 #author, #revnumber, #revdate, #revremark,\r
22 #footer {\r
23   font-family: Arial,Helvetica,sans-serif;\r
24 }\r
25 \r
26 body {\r
27   margin: 1em 5% 1em 5%;\r
28 }\r
29 \r
30 a {\r
31   color: blue;\r
32   text-decoration: underline;\r
33 }\r
34 a:visited {\r
35   color: fuchsia;\r
36 }\r
37 \r
38 em {\r
39   font-style: italic;\r
40   color: navy;\r
41 }\r
42 \r
43 strong {\r
44   font-weight: bold;\r
45   color: #083194;\r
46 }\r
47 \r
48 h1, h2, h3, h4, h5, h6 {\r
49   color: #527bbd;\r
50   margin-top: 1.2em;\r
51   margin-bottom: 0.5em;\r
52   line-height: 1.3;\r
53 }\r
54 \r
55 h1, h2, h3 {\r
56   border-bottom: 2px solid silver;\r
57 }\r
58 h2 {\r
59   padding-top: 0.5em;\r
60 }\r
61 h3 {\r
62   float: left;\r
63 }\r
64 h3 + * {\r
65   clear: left;\r
66 }\r
67 h5 {\r
68   font-size: 1.0em;\r
69 }\r
70 \r
71 div.sectionbody {\r
72   margin-left: 0;\r
73 }\r
74 \r
75 hr {\r
76   border: 1px solid silver;\r
77 }\r
78 \r
79 p {\r
80   margin-top: 0.5em;\r
81   margin-bottom: 0.5em;\r
82 }\r
83 \r
84 ul, ol, li > p {\r
85   margin-top: 0;\r
86 }\r
87 ul > li     { color: #aaa; }\r
88 ul > li > * { color: black; }\r
89 \r
90 .monospaced, code, pre {\r
91   font-family: "Courier New", Courier, monospace;\r
92   font-size: inherit;\r
93   color: navy;\r
94   padding: 0;\r
95   margin: 0;\r
96 }\r
97 pre {\r
98   white-space: pre-wrap;\r
99 }\r
100 \r
101 #author {\r
102   color: #527bbd;\r
103   font-weight: bold;\r
104   font-size: 1.1em;\r
105 }\r
106 #email {\r
107 }\r
108 #revnumber, #revdate, #revremark {\r
109 }\r
110 \r
111 #footer {\r
112   font-size: small;\r
113   border-top: 2px solid silver;\r
114   padding-top: 0.5em;\r
115   margin-top: 4.0em;\r
116 }\r
117 #footer-text {\r
118   float: left;\r
119   padding-bottom: 0.5em;\r
120 }\r
121 #footer-badges {\r
122   float: right;\r
123   padding-bottom: 0.5em;\r
124 }\r
125 \r
126 #preamble {\r
127   margin-top: 1.5em;\r
128   margin-bottom: 1.5em;\r
129 }\r
130 div.imageblock, div.exampleblock, div.verseblock,\r
131 div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,\r
132 div.admonitionblock {\r
133   margin-top: 1.0em;\r
134   margin-bottom: 1.5em;\r
135 }\r
136 div.admonitionblock {\r
137   margin-top: 2.0em;\r
138   margin-bottom: 2.0em;\r
139   margin-right: 10%;\r
140   color: #606060;\r
141 }\r
142 \r
143 div.content { /* Block element content. */\r
144   padding: 0;\r
145 }\r
146 \r
147 /* Block element titles. */\r
148 div.title, caption.title {\r
149   color: #527bbd;\r
150   font-weight: bold;\r
151   text-align: left;\r
152   margin-top: 1.0em;\r
153   margin-bottom: 0.5em;\r
154 }\r
155 div.title + * {\r
156   margin-top: 0;\r
157 }\r
158 \r
159 td div.title:first-child {\r
160   margin-top: 0.0em;\r
161 }\r
162 div.content div.title:first-child {\r
163   margin-top: 0.0em;\r
164 }\r
165 div.content + div.title {\r
166   margin-top: 0.0em;\r
167 }\r
168 \r
169 div.sidebarblock > div.content {\r
170   background: #ffffee;\r
171   border: 1px solid #dddddd;\r
172   border-left: 4px solid #f0f0f0;\r
173   padding: 0.5em;\r
174 }\r
175 \r
176 div.listingblock > div.content {\r
177   border: 1px solid #dddddd;\r
178   border-left: 5px solid #f0f0f0;\r
179   background: #f8f8f8;\r
180   padding: 0.5em;\r
181 }\r
182 \r
183 div.quoteblock, div.verseblock {\r
184   padding-left: 1.0em;\r
185   margin-left: 1.0em;\r
186   margin-right: 10%;\r
187   border-left: 5px solid #f0f0f0;\r
188   color: #888;\r
189 }\r
190 \r
191 div.quoteblock > div.attribution {\r
192   padding-top: 0.5em;\r
193   text-align: right;\r
194 }\r
195 \r
196 div.verseblock > pre.content {\r
197   font-family: inherit;\r
198   font-size: inherit;\r
199 }\r
200 div.verseblock > div.attribution {\r
201   padding-top: 0.75em;\r
202   text-align: left;\r
203 }\r
204 /* DEPRECATED: Pre version 8.2.7 verse style literal block. */\r
205 div.verseblock + div.attribution {\r
206   text-align: left;\r
207 }\r
208 \r
209 div.admonitionblock .icon {\r
210   vertical-align: top;\r
211   font-size: 1.1em;\r
212   font-weight: bold;\r
213   text-decoration: underline;\r
214   color: #527bbd;\r
215   padding-right: 0.5em;\r
216 }\r
217 div.admonitionblock td.content {\r
218   padding-left: 0.5em;\r
219   border-left: 3px solid #dddddd;\r
220 }\r
221 \r
222 div.exampleblock > div.content {\r
223   border-left: 3px solid #dddddd;\r
224   padding-left: 0.5em;\r
225 }\r
226 \r
227 div.imageblock div.content { padding-left: 0; }\r
228 span.image img { border-style: none; vertical-align: text-bottom; }\r
229 a.image:visited { color: white; }\r
230 \r
231 dl {\r
232   margin-top: 0.8em;\r
233   margin-bottom: 0.8em;\r
234 }\r
235 dt {\r
236   margin-top: 0.5em;\r
237   margin-bottom: 0;\r
238   font-style: normal;\r
239   color: navy;\r
240 }\r
241 dd > *:first-child {\r
242   margin-top: 0.1em;\r
243 }\r
244 \r
245 ul, ol {\r
246     list-style-position: outside;\r
247 }\r
248 ol.arabic {\r
249   list-style-type: decimal;\r
250 }\r
251 ol.loweralpha {\r
252   list-style-type: lower-alpha;\r
253 }\r
254 ol.upperalpha {\r
255   list-style-type: upper-alpha;\r
256 }\r
257 ol.lowerroman {\r
258   list-style-type: lower-roman;\r
259 }\r
260 ol.upperroman {\r
261   list-style-type: upper-roman;\r
262 }\r
263 \r
264 div.compact ul, div.compact ol,\r
265 div.compact p, div.compact p,\r
266 div.compact div, div.compact div {\r
267   margin-top: 0.1em;\r
268   margin-bottom: 0.1em;\r
269 }\r
270 \r
271 tfoot {\r
272   font-weight: bold;\r
273 }\r
274 td > div.verse {\r
275   white-space: pre;\r
276 }\r
277 \r
278 div.hdlist {\r
279   margin-top: 0.8em;\r
280   margin-bottom: 0.8em;\r
281 }\r
282 div.hdlist tr {\r
283   padding-bottom: 15px;\r
284 }\r
285 dt.hdlist1.strong, td.hdlist1.strong {\r
286   font-weight: bold;\r
287 }\r
288 td.hdlist1 {\r
289   vertical-align: top;\r
290   font-style: normal;\r
291   padding-right: 0.8em;\r
292   color: navy;\r
293 }\r
294 td.hdlist2 {\r
295   vertical-align: top;\r
296 }\r
297 div.hdlist.compact tr {\r
298   margin: 0;\r
299   padding-bottom: 0;\r
300 }\r
301 \r
302 .comment {\r
303   background: yellow;\r
304 }\r
305 \r
306 .footnote, .footnoteref {\r
307   font-size: 0.8em;\r
308 }\r
309 \r
310 span.footnote, span.footnoteref {\r
311   vertical-align: super;\r
312 }\r
313 \r
314 #footnotes {\r
315   margin: 20px 0 20px 0;\r
316   padding: 7px 0 0 0;\r
317 }\r
318 \r
319 #footnotes div.footnote {\r
320   margin: 0 0 5px 0;\r
321 }\r
322 \r
323 #footnotes hr {\r
324   border: none;\r
325   border-top: 1px solid silver;\r
326   height: 1px;\r
327   text-align: left;\r
328   margin-left: 0;\r
329   width: 20%;\r
330   min-width: 100px;\r
331 }\r
332 \r
333 div.colist td {\r
334   padding-right: 0.5em;\r
335   padding-bottom: 0.3em;\r
336   vertical-align: top;\r
337 }\r
338 div.colist td img {\r
339   margin-top: 0.3em;\r
340 }\r
341 \r
342 @media print {\r
343   #footer-badges { display: none; }\r
344 }\r
345 \r
346 #toc {\r
347   margin-bottom: 2.5em;\r
348 }\r
349 \r
350 #toctitle {\r
351   color: #527bbd;\r
352   font-size: 1.1em;\r
353   font-weight: bold;\r
354   margin-top: 1.0em;\r
355   margin-bottom: 0.1em;\r
356 }\r
357 \r
358 div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
359   margin-top: 0;\r
360   margin-bottom: 0;\r
361 }\r
362 div.toclevel2 {\r
363   margin-left: 2em;\r
364   font-size: 0.9em;\r
365 }\r
366 div.toclevel3 {\r
367   margin-left: 4em;\r
368   font-size: 0.9em;\r
369 }\r
370 div.toclevel4 {\r
371   margin-left: 6em;\r
372   font-size: 0.9em;\r
373 }\r
374 \r
375 span.aqua { color: aqua; }\r
376 span.black { color: black; }\r
377 span.blue { color: blue; }\r
378 span.fuchsia { color: fuchsia; }\r
379 span.gray { color: gray; }\r
380 span.green { color: green; }\r
381 span.lime { color: lime; }\r
382 span.maroon { color: maroon; }\r
383 span.navy { color: navy; }\r
384 span.olive { color: olive; }\r
385 span.purple { color: purple; }\r
386 span.red { color: red; }\r
387 span.silver { color: silver; }\r
388 span.teal { color: teal; }\r
389 span.white { color: white; }\r
390 span.yellow { color: yellow; }\r
391 \r
392 span.aqua-background { background: aqua; }\r
393 span.black-background { background: black; }\r
394 span.blue-background { background: blue; }\r
395 span.fuchsia-background { background: fuchsia; }\r
396 span.gray-background { background: gray; }\r
397 span.green-background { background: green; }\r
398 span.lime-background { background: lime; }\r
399 span.maroon-background { background: maroon; }\r
400 span.navy-background { background: navy; }\r
401 span.olive-background { background: olive; }\r
402 span.purple-background { background: purple; }\r
403 span.red-background { background: red; }\r
404 span.silver-background { background: silver; }\r
405 span.teal-background { background: teal; }\r
406 span.white-background { background: white; }\r
407 span.yellow-background { background: yellow; }\r
408 \r
409 span.big { font-size: 2em; }\r
410 span.small { font-size: 0.6em; }\r
411 \r
412 span.underline { text-decoration: underline; }\r
413 span.overline { text-decoration: overline; }\r
414 span.line-through { text-decoration: line-through; }\r
415 \r
416 div.unbreakable { page-break-inside: avoid; }\r
417 \r
418 \r
419 /*\r
420  * xhtml11 specific\r
421  *\r
422  * */\r
423 \r
424 div.tableblock {\r
425   margin-top: 1.0em;\r
426   margin-bottom: 1.5em;\r
427 }\r
428 div.tableblock > table {\r
429   border: 3px solid #527bbd;\r
430 }\r
431 thead, p.table.header {\r
432   font-weight: bold;\r
433   color: #527bbd;\r
434 }\r
435 p.table {\r
436   margin-top: 0;\r
437 }\r
438 /* Because the table frame attribute is overriden by CSS in most browsers. */\r
439 div.tableblock > table[frame="void"] {\r
440   border-style: none;\r
441 }\r
442 div.tableblock > table[frame="hsides"] {\r
443   border-left-style: none;\r
444   border-right-style: none;\r
445 }\r
446 div.tableblock > table[frame="vsides"] {\r
447   border-top-style: none;\r
448   border-bottom-style: none;\r
449 }\r
450 \r
451 \r
452 /*\r
453  * html5 specific\r
454  *\r
455  * */\r
456 \r
457 table.tableblock {\r
458   margin-top: 1.0em;\r
459   margin-bottom: 1.5em;\r
460 }\r
461 thead, p.tableblock.header {\r
462   font-weight: bold;\r
463   color: #527bbd;\r
464 }\r
465 p.tableblock {\r
466   margin-top: 0;\r
467 }\r
468 table.tableblock {\r
469   border-width: 3px;\r
470   border-spacing: 0px;\r
471   border-style: solid;\r
472   border-color: #527bbd;\r
473   border-collapse: collapse;\r
474 }\r
475 th.tableblock, td.tableblock {\r
476   border-width: 1px;\r
477   padding: 4px;\r
478   border-style: solid;\r
479   border-color: #527bbd;\r
480 }\r
481 \r
482 table.tableblock.frame-topbot {\r
483   border-left-style: hidden;\r
484   border-right-style: hidden;\r
485 }\r
486 table.tableblock.frame-sides {\r
487   border-top-style: hidden;\r
488   border-bottom-style: hidden;\r
489 }\r
490 table.tableblock.frame-none {\r
491   border-style: hidden;\r
492 }\r
493 \r
494 th.tableblock.halign-left, td.tableblock.halign-left {\r
495   text-align: left;\r
496 }\r
497 th.tableblock.halign-center, td.tableblock.halign-center {\r
498   text-align: center;\r
499 }\r
500 th.tableblock.halign-right, td.tableblock.halign-right {\r
501   text-align: right;\r
502 }\r
503 \r
504 th.tableblock.valign-top, td.tableblock.valign-top {\r
505   vertical-align: top;\r
506 }\r
507 th.tableblock.valign-middle, td.tableblock.valign-middle {\r
508   vertical-align: middle;\r
509 }\r
510 th.tableblock.valign-bottom, td.tableblock.valign-bottom {\r
511   vertical-align: bottom;\r
512 }\r
513 \r
514 \r
515 /*\r
516  * manpage specific\r
517  *\r
518  * */\r
519 \r
520 body.manpage h1 {\r
521   padding-top: 0.5em;\r
522   padding-bottom: 0.5em;\r
523   border-top: 2px solid silver;\r
524   border-bottom: 2px solid silver;\r
525 }\r
526 body.manpage h2 {\r
527   border-style: none;\r
528 }\r
529 body.manpage div.sectionbody {\r
530   margin-left: 3em;\r
531 }\r
532 \r
533 @media print {\r
534   body.manpage div#toc { display: none; }\r
535 }\r
536 \r
537 \r
538 </style>\r
539 <script type="text/javascript">\r
540 /*<![CDATA[*/\r
541 var asciidoc = {  // Namespace.\r
542 \r
543 /////////////////////////////////////////////////////////////////////\r
544 // Table Of Contents generator\r
545 /////////////////////////////////////////////////////////////////////\r
546 \r
547 /* Author: Mihai Bazon, September 2002\r
548  * http://students.infoiasi.ro/~mishoo\r
549  *\r
550  * Table Of Content generator\r
551  * Version: 0.4\r
552  *\r
553  * Feel free to use this script under the terms of the GNU General Public\r
554  * License, as long as you do not remove or alter this notice.\r
555  */\r
556 \r
557  /* modified by Troy D. Hanson, September 2006. License: GPL */\r
558  /* modified by Stuart Rackham, 2006, 2009. License: GPL */\r
559 \r
560 // toclevels = 1..4.\r
561 toc: function (toclevels) {\r
562 \r
563   function getText(el) {\r
564     var text = "";\r
565     for (var i = el.firstChild; i != null; i = i.nextSibling) {\r
566       if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.\r
567         text += i.data;\r
568       else if (i.firstChild != null)\r
569         text += getText(i);\r
570     }\r
571     return text;\r
572   }\r
573 \r
574   function TocEntry(el, text, toclevel) {\r
575     this.element = el;\r
576     this.text = text;\r
577     this.toclevel = toclevel;\r
578   }\r
579 \r
580   function tocEntries(el, toclevels) {\r
581     var result = new Array;\r
582     var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');\r
583     // Function that scans the DOM tree for header elements (the DOM2\r
584     // nodeIterator API would be a better technique but not supported by all\r
585     // browsers).\r
586     var iterate = function (el) {\r
587       for (var i = el.firstChild; i != null; i = i.nextSibling) {\r
588         if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {\r
589           var mo = re.exec(i.tagName);\r
590           if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {\r
591             result[result.length] = new TocEntry(i, getText(i), mo[1]-1);\r
592           }\r
593           iterate(i);\r
594         }\r
595       }\r
596     }\r
597     iterate(el);\r
598     return result;\r
599   }\r
600 \r
601   var toc = document.getElementById("toc");\r
602   if (!toc) {\r
603     return;\r
604   }\r
605 \r
606   // Delete existing TOC entries in case we're reloading the TOC.\r
607   var tocEntriesToRemove = [];\r
608   var i;\r
609   for (i = 0; i < toc.childNodes.length; i++) {\r
610     var entry = toc.childNodes[i];\r
611     if (entry.nodeName.toLowerCase() == 'div'\r
612      && entry.getAttribute("class")\r
613      && entry.getAttribute("class").match(/^toclevel/))\r
614       tocEntriesToRemove.push(entry);\r
615   }\r
616   for (i = 0; i < tocEntriesToRemove.length; i++) {\r
617     toc.removeChild(tocEntriesToRemove[i]);\r
618   }\r
619 \r
620   // Rebuild TOC entries.\r
621   var entries = tocEntries(document.getElementById("content"), toclevels);\r
622   for (var i = 0; i < entries.length; ++i) {\r
623     var entry = entries[i];\r
624     if (entry.element.id == "")\r
625       entry.element.id = "_toc_" + i;\r
626     var a = document.createElement("a");\r
627     a.href = "#" + entry.element.id;\r
628     a.appendChild(document.createTextNode(entry.text));\r
629     var div = document.createElement("div");\r
630     div.appendChild(a);\r
631     div.className = "toclevel" + entry.toclevel;\r
632     toc.appendChild(div);\r
633   }\r
634   if (entries.length == 0)\r
635     toc.parentNode.removeChild(toc);\r
636 },\r
637 \r
638 \r
639 /////////////////////////////////////////////////////////////////////\r
640 // Footnotes generator\r
641 /////////////////////////////////////////////////////////////////////\r
642 \r
643 /* Based on footnote generation code from:\r
644  * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html\r
645  */\r
646 \r
647 footnotes: function () {\r
648   // Delete existing footnote entries in case we're reloading the footnodes.\r
649   var i;\r
650   var noteholder = document.getElementById("footnotes");\r
651   if (!noteholder) {\r
652     return;\r
653   }\r
654   var entriesToRemove = [];\r
655   for (i = 0; i < noteholder.childNodes.length; i++) {\r
656     var entry = noteholder.childNodes[i];\r
657     if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")\r
658       entriesToRemove.push(entry);\r
659   }\r
660   for (i = 0; i < entriesToRemove.length; i++) {\r
661     noteholder.removeChild(entriesToRemove[i]);\r
662   }\r
663 \r
664   // Rebuild footnote entries.\r
665   var cont = document.getElementById("content");\r
666   var spans = cont.getElementsByTagName("span");\r
667   var refs = {};\r
668   var n = 0;\r
669   for (i=0; i<spans.length; i++) {\r
670     if (spans[i].className == "footnote") {\r
671       n++;\r
672       var note = spans[i].getAttribute("data-note");\r
673       if (!note) {\r
674         // Use [\s\S] in place of . so multi-line matches work.\r
675         // Because JavaScript has no s (dotall) regex flag.\r
676         note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];\r
677         spans[i].innerHTML =\r
678           "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +\r
679           "' title='View footnote' class='footnote'>" + n + "</a>]";\r
680         spans[i].setAttribute("data-note", note);\r
681       }\r
682       noteholder.innerHTML +=\r
683         "<div class='footnote' id='_footnote_" + n + "'>" +\r
684         "<a href='#_footnoteref_" + n + "' title='Return to text'>" +\r
685         n + "</a>. " + note + "</div>";\r
686       var id =spans[i].getAttribute("id");\r
687       if (id != null) refs["#"+id] = n;\r
688     }\r
689   }\r
690   if (n == 0)\r
691     noteholder.parentNode.removeChild(noteholder);\r
692   else {\r
693     // Process footnoterefs.\r
694     for (i=0; i<spans.length; i++) {\r
695       if (spans[i].className == "footnoteref") {\r
696         var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");\r
697         href = href.match(/#.*/)[0];  // Because IE return full URL.\r
698         n = refs[href];\r
699         spans[i].innerHTML =\r
700           "[<a href='#_footnote_" + n +\r
701           "' title='View footnote' class='footnote'>" + n + "</a>]";\r
702       }\r
703     }\r
704   }\r
705 },\r
706 \r
707 install: function(toclevels) {\r
708   var timerId;\r
709 \r
710   function reinstall() {\r
711     asciidoc.footnotes();\r
712     if (toclevels) {\r
713       asciidoc.toc(toclevels);\r
714     }\r
715   }\r
716 \r
717   function reinstallAndRemoveTimer() {\r
718     clearInterval(timerId);\r
719     reinstall();\r
720   }\r
721 \r
722   timerId = setInterval(reinstall, 500);\r
723   if (document.addEventListener)\r
724     document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);\r
725   else\r
726     window.onload = reinstallAndRemoveTimer;\r
727 }\r
728 \r
729 }\r
730 asciidoc.install(2);\r
731 /*]]>*/\r
732 </script>\r
733 </head>\r
734 <body class="article">\r
735 <div id="header">\r
736 <h1>ccache news</h1>\r
737 <span id="revnumber">version 3.4</span>\r
738 <div id="toc">
739   <div id="toctitle">Table of Contents</div>
740   <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
741 </div>\r
742 </div>\r
743 <div id="content">\r
744 <div class="sect1">\r
745 <h2 id="_ccache_3_4">ccache 3.4</h2>\r
746 <div class="sectionbody">\r
747 <div class="paragraph"><p>Release date: 2018-02-11</p></div>\r
748 <div class="sect2">\r
749 <h3 id="_new_features_and_enhancements">New features and enhancements</h3>\r
750 <div class="ulist"><ul>\r
751 <li>\r
752 <p>\r
753 The compiler option form <code>--sysroot arg</code> is now handled like the documented\r
754   <code>--sysroot=arg</code> form.\r
755 </p>\r
756 </li>\r
757 <li>\r
758 <p>\r
759 Added support for caching <code>.su</code> files generated by GCC flag <code>-fstack-usage</code>.\r
760 </p>\r
761 </li>\r
762 <li>\r
763 <p>\r
764 ccache should now work with distcc&#8217;s &#8220;pump&#8221; wrapper.\r
765 </p>\r
766 </li>\r
767 <li>\r
768 <p>\r
769 The optional unifier is no longer disabled when the direct mode is enabled.\r
770 </p>\r
771 </li>\r
772 <li>\r
773 <p>\r
774 Added support for nvcc compiler options <code>--compiler-bindir/-ccbin</code>,\r
775   <code>--output-directory/-odir</code> and <code>--libdevice-directory/-ldir</code>.\r
776 </p>\r
777 </li>\r
778 <li>\r
779 <p>\r
780 Boolean environment variable settings no longer accept the following\r
781   (case-insensitive) values: <code>0</code>, <code>false</code>, <code>disable</code> and <code>no</code>. All other values\r
782   are accepted and taken to mean &#8220;true&#8221;. This is to stop users from setting\r
783   e.g. <code>CCACHE_DISABLE=0</code> and then expect the cache to be used.\r
784 </p>\r
785 </li>\r
786 <li>\r
787 <p>\r
788 Improved support for <code>run_second_cpp = false</code>: If combined with passing\r
789   <code>-fdirectives-only</code> (GCC) or <code>frewrite-includes</code> (Clang) to the compiler,\r
790   diagnostics warnings and similar will be correct.\r
791 </p>\r
792 </li>\r
793 <li>\r
794 <p>\r
795 An implicit <code>-MQ</code> is now passed to the preprocessor only if the object file\r
796   extension is non-standard. This should make it easier to use EDG-based\r
797   compilers (e.g. GHS) which don&#8217;t understand <code>-MQ</code>.\r
798 </p>\r
799 </li>\r
800 <li>\r
801 <p>\r
802 ccache now treats an unreadable configuration file just like a missing\r
803   configuration file.\r
804 </p>\r
805 </li>\r
806 <li>\r
807 <p>\r
808 Documented more pitfalls with enabling <code>hard_links</code> (<code>CCACHE_HARDLINK</code>).\r
809 </p>\r
810 </li>\r
811 <li>\r
812 <p>\r
813 Documented caveats related to colored warnings from compilers.\r
814 </p>\r
815 </li>\r
816 </ul></div>\r
817 </div>\r
818 <div class="sect2">\r
819 <h3 id="_bug_fixes">Bug fixes</h3>\r
820 <div class="ulist"><ul>\r
821 <li>\r
822 <p>\r
823 File size and number counters are now updated correctly when files are\r
824   overwritten in the cache, e.g. when using <code>CCACHE_RECACHE</code>.\r
825 </p>\r
826 </li>\r
827 <li>\r
828 <p>\r
829 <code>run_second_cpp</code> is now forced for nvcc.\r
830 </p>\r
831 </li>\r
832 <li>\r
833 <p>\r
834 Fixed how the nvcc options <code>-optf</code> and <code>-odir</code> are handled.\r
835 </p>\r
836 </li>\r
837 </ul></div>\r
838 </div>\r
839 </div>\r
840 </div>\r
841 <div class="sect1">\r
842 <h2 id="_ccache_3_3_6">ccache 3.3.6</h2>\r
843 <div class="sectionbody">\r
844 <div class="paragraph"><p>Release date: 2018-01-28</p></div>\r
845 <div class="sect2">\r
846 <h3 id="_new_features_and_enhancements_2">New features and enhancements</h3>\r
847 <div class="ulist"><ul>\r
848 <li>\r
849 <p>\r
850 Improved instructions on how to get cache hits between different working\r
851   directories.\r
852 </p>\r
853 </li>\r
854 </ul></div>\r
855 </div>\r
856 <div class="sect2">\r
857 <h3 id="_bug_fixes_2">Bug fixes</h3>\r
858 <div class="ulist"><ul>\r
859 <li>\r
860 <p>\r
861 Fixed regression in ccache 3.3.5 related to the <code>UNCACHED_ERR_FD</code> feature.\r
862 </p>\r
863 </li>\r
864 </ul></div>\r
865 </div>\r
866 </div>\r
867 </div>\r
868 <div class="sect1">\r
869 <h2 id="_ccache_3_3_5">ccache 3.3.5</h2>\r
870 <div class="sectionbody">\r
871 <div class="paragraph"><p>Release date: 2018-01-13</p></div>\r
872 <div class="sect2">\r
873 <h3 id="_new_features_and_enhancements_3">New features and enhancements</h3>\r
874 <div class="ulist"><ul>\r
875 <li>\r
876 <p>\r
877 Documented how automatic cache cleanup works.\r
878 </p>\r
879 </li>\r
880 </ul></div>\r
881 </div>\r
882 <div class="sect2">\r
883 <h3 id="_bug_fixes_3">Bug fixes</h3>\r
884 <div class="ulist"><ul>\r
885 <li>\r
886 <p>\r
887 Fixed a regression where the original order of debug options could be lost.\r
888   This reverts the &#8220;Improved parsing of <code>-g*</code> options&#8221; feature in ccache 3.3.\r
889 </p>\r
890 </li>\r
891 <li>\r
892 <p>\r
893 Multiple <code>-fdebug-prefix-map</code> options should now be handled correctly.\r
894 </p>\r
895 </li>\r
896 <li>\r
897 <p>\r
898 Fixed matching of directories in the <code>ignore_headers_in_manifest</code>\r
899   configuration option.\r
900 </p>\r
901 </li>\r
902 <li>\r
903 <p>\r
904 Fixed detection of missing argument to <code>-opt</code>/<code>--options-file</code>.\r
905 </p>\r
906 </li>\r
907 <li>\r
908 <p>\r
909 ccache now bails out when building a precompiled header if any of the\r
910   corresponding header files have an updated timestamp. This fixes complaints\r
911   from clang.\r
912 </p>\r
913 </li>\r
914 <li>\r
915 <p>\r
916 Fixed a bug related to erroneously storing a dependency file with absolute\r
917   paths in the cache on a preprocessed hit.\r
918 </p>\r
919 </li>\r
920 <li>\r
921 <p>\r
922 <code>ccache -c/--cleanup</code> now works like documented: it just recalculates size\r
923   counters and trims the cache to not exceed the max size and file number\r
924   limits. Previously, the forced cleanup took &#8220;limit_multiple&#8221; into account,\r
925   so that <code>ccache -c/--cleanup</code> by default would trim the cache to 80% of the\r
926   max limit.\r
927 </p>\r
928 </li>\r
929 <li>\r
930 <p>\r
931 ccache no longer ignores linker arguments for clang since clang warns about\r
932   them.\r
933 </p>\r
934 </li>\r
935 <li>\r
936 <p>\r
937 Plugged a couple of file descriptor leaks.\r
938 </p>\r
939 </li>\r
940 <li>\r
941 <p>\r
942 Fixed a bug where ccache would skip hashing the compiler argument following a\r
943   <code>-fno-working-directory</code>, <code>-fworking-directory</code>, <code>-nostdinc</code>, <code>-nostdinc++</code>,\r
944   <code>-remap</code> or <code>-trigraphs</code> option in preprocessor mode.\r
945 </p>\r
946 </li>\r
947 </ul></div>\r
948 </div>\r
949 </div>\r
950 </div>\r
951 <div class="sect1">\r
952 <h2 id="_ccache_3_3_4">ccache 3.3.4</h2>\r
953 <div class="sectionbody">\r
954 <div class="paragraph"><p>Release date: 2017-02-17</p></div>\r
955 <div class="sect2">\r
956 <h3 id="_new_features_and_enhancements_4">New features and enhancements</h3>\r
957 <div class="ulist"><ul>\r
958 <li>\r
959 <p>\r
960 Documented the different cache statistics counters.\r
961 </p>\r
962 </li>\r
963 </ul></div>\r
964 </div>\r
965 <div class="sect2">\r
966 <h3 id="_bug_fixes_4">Bug fixes</h3>\r
967 <div class="ulist"><ul>\r
968 <li>\r
969 <p>\r
970 Fixed a regression in ccache 3.3 related to potentially bad content of\r
971   dependency files when compiling identical source code but with different\r
972   source paths. This was only partially fixed in 3.3.2 and reverts the new\r
973   &#8220;Names of included files are no longer included in the hash of the\r
974   compiler&#8217;s preprocessed output&#8221; feature in 3.3.\r
975 </p>\r
976 </li>\r
977 <li>\r
978 <p>\r
979 Corrected statistics counter for <code>-optf</code>/<code>--options-file</code> failure.\r
980 </p>\r
981 </li>\r
982 <li>\r
983 <p>\r
984 Fixed undefined behavior warnings in ccache found by <code>-fsanitize=undefined</code>.\r
985 </p>\r
986 </li>\r
987 </ul></div>\r
988 </div>\r
989 </div>\r
990 </div>\r
991 <div class="sect1">\r
992 <h2 id="_ccache_3_3_3">ccache 3.3.3</h2>\r
993 <div class="sectionbody">\r
994 <div class="paragraph"><p>Release date: 2016-10-26</p></div>\r
995 <div class="sect2">\r
996 <h3 id="_bug_fixes_5">Bug fixes</h3>\r
997 <div class="ulist"><ul>\r
998 <li>\r
999 <p>\r
1000 ccache now detects usage of <code>.incbin</code> assembler directives in the source code\r
1001   and avoids caching such compilations.\r
1002 </p>\r
1003 </li>\r
1004 </ul></div>\r
1005 </div>\r
1006 </div>\r
1007 </div>\r
1008 <div class="sect1">\r
1009 <h2 id="_ccache_3_3_2">ccache 3.3.2</h2>\r
1010 <div class="sectionbody">\r
1011 <div class="paragraph"><p>Release date: 2016-09-28</p></div>\r
1012 <div class="sect2">\r
1013 <h3 id="_bug_fixes_6">Bug fixes</h3>\r
1014 <div class="ulist"><ul>\r
1015 <li>\r
1016 <p>\r
1017 Fixed a regression in ccache 3.3 related to potentially bad content of\r
1018   dependency files when compiling identical source code but with different\r
1019   source paths.\r
1020 </p>\r
1021 </li>\r
1022 <li>\r
1023 <p>\r
1024 Fixed a regression in ccache 3.3.1: ccache could get confused when using the\r
1025   compiler option <code>-Wp,</code> to pass multiple options to the preprocessor,\r
1026   resulting in missing dependency files from direct mode cache hits.\r
1027 </p>\r
1028 </li>\r
1029 </ul></div>\r
1030 </div>\r
1031 </div>\r
1032 </div>\r
1033 <div class="sect1">\r
1034 <h2 id="_ccache_3_3_1">ccache 3.3.1</h2>\r
1035 <div class="sectionbody">\r
1036 <div class="paragraph"><p>Release date: 2016-09-07</p></div>\r
1037 <div class="sect2">\r
1038 <h3 id="_bug_fixes_7">Bug fixes</h3>\r
1039 <div class="ulist"><ul>\r
1040 <li>\r
1041 <p>\r
1042 Fixed a problem in the &#8220;multiple <code>-arch</code> options&#8221; support introduced in\r
1043   3.3. When using the direct mode (the default), different combinations of\r
1044   <code>-arch</code> options were not detected properly.\r
1045 </p>\r
1046 </li>\r
1047 <li>\r
1048 <p>\r
1049 Fixed an issue when compiler option <code>-Wp,-MT,path</code> is used instead of <code>-MT\r
1050   path</code> (and similar for <code>-MF</code>, <code>-MP</code> and <code>-MQ</code>) and <code>run_second_cpp</code>\r
1051   (<code>CCACHE_CPP2</code>) is enabled.\r
1052 </p>\r
1053 </li>\r
1054 </ul></div>\r
1055 </div>\r
1056 </div>\r
1057 </div>\r
1058 <div class="sect1">\r
1059 <h2 id="_ccache_3_3">ccache 3.3</h2>\r
1060 <div class="sectionbody">\r
1061 <div class="paragraph"><p>Release date: 2016-08-27</p></div>\r
1062 <div class="sect2">\r
1063 <h3 id="_notes">Notes</h3>\r
1064 <div class="ulist"><ul>\r
1065 <li>\r
1066 <p>\r
1067 A C99-compatible compiler is now required to build ccache.\r
1068 </p>\r
1069 </li>\r
1070 </ul></div>\r
1071 </div>\r
1072 <div class="sect2">\r
1073 <h3 id="_new_features_and_enhancements_5">New features and enhancements</h3>\r
1074 <div class="ulist"><ul>\r
1075 <li>\r
1076 <p>\r
1077 The configuration option <code>run_second_cpp</code> (<code>CCACHE_CPP2</code>) now defaults to\r
1078   true. This improves ccache&#8217;s out-of-the-box experience for compilers that\r
1079   can&#8217;t compile their own preprocessed output with the same outcome as if they\r
1080   compiled the real source code directly, e.g. newer versions of GCC and Clang.\r
1081 </p>\r
1082 </li>\r
1083 <li>\r
1084 <p>\r
1085 The configuration option <code>hash_dir</code> (<code>CCACHE_HASHDIR</code>) now defaults to true.\r
1086 </p>\r
1087 </li>\r
1088 <li>\r
1089 <p>\r
1090 Added a new <code>ignore_headers_in_manifest</code> configuration option, which\r
1091   specifies headers that should be ignored in the direct mode.\r
1092 </p>\r
1093 </li>\r
1094 <li>\r
1095 <p>\r
1096 Added a new <code>prefix_command_cpp</code> (<code>CCACHE_PREFIX_CPP</code>) configuration option,\r
1097   which specifies one or several prefixes to add to the command line ccache\r
1098   uses when invoking the preprocessor.\r
1099 </p>\r
1100 </li>\r
1101 <li>\r
1102 <p>\r
1103 Added a new <code>limit_multiple</code> (<code>CCACHE_LIMIT_MULTIPLE</code>) configuration option,\r
1104   which specifies how much of the cache to remove when cleaning.\r
1105 </p>\r
1106 </li>\r
1107 <li>\r
1108 <p>\r
1109 Added a new <code>keep_comments_cpp</code> (<code>CCACHE_COMMENTS</code>) configuration option,\r
1110   which tells ccache not to discard the comments before hashing preprocessor\r
1111   output. This can be used to check documentation with <strong>-Wdocumentation</strong>.\r
1112 </p>\r
1113 </li>\r
1114 <li>\r
1115 <p>\r
1116 Added a new sloppiness option <code>no_system_headers</code>, which tells ccache not to\r
1117   include system headers in manifest files.\r
1118 </p>\r
1119 </li>\r
1120 <li>\r
1121 <p>\r
1122 Added a new statistics counter that tracks the number of performed cleanups\r
1123   due to the cache size being over the limit. The value is shown in the output\r
1124   of &#8220;ccache -s&#8221;.\r
1125 </p>\r
1126 </li>\r
1127 <li>\r
1128 <p>\r
1129 Added support for relocating debug info directory using <code>-fdebug-prefix-map</code>.\r
1130   This allows for cache hits even when <code>hash_dir</code> is used in combination with\r
1131   <code>base_dir</code>.\r
1132 </p>\r
1133 </li>\r
1134 <li>\r
1135 <p>\r
1136 Added a new &#8220;cache hit rate&#8221; field to the output of &#8220;ccache -s&#8221;.\r
1137 </p>\r
1138 </li>\r
1139 <li>\r
1140 <p>\r
1141 Added support for caching compilation of assembler code produced by e.g.\r
1142   &#8220;gcc -S file.c&#8221;.\r
1143 </p>\r
1144 </li>\r
1145 <li>\r
1146 <p>\r
1147 Added support for cuda including the -optf/--options-file option.\r
1148 </p>\r
1149 </li>\r
1150 <li>\r
1151 <p>\r
1152 Added support for Fortran 77.\r
1153 </p>\r
1154 </li>\r
1155 <li>\r
1156 <p>\r
1157 Added support for multiple <code>-arch</code> options to produce "fat binaries".\r
1158 </p>\r
1159 </li>\r
1160 <li>\r
1161 <p>\r
1162 Multiple identical <code>-arch</code> arguments are now handled without bailing.\r
1163 </p>\r
1164 </li>\r
1165 <li>\r
1166 <p>\r
1167 The concatenated form of some long compiler options is now recognized, for\r
1168   example when using <code>-isystemPATH</code> instead of <code>-isystem PATH</code>.\r
1169 </p>\r
1170 </li>\r
1171 <li>\r
1172 <p>\r
1173 If hard-linking is enabled and but fails (e.g. due to cross-device linking),\r
1174   ccache now falls back to copying instead of running the compiler.\r
1175 </p>\r
1176 </li>\r
1177 <li>\r
1178 <p>\r
1179 Made the <code>hash_dir</code> option only have effect when generating debug info.\r
1180 </p>\r
1181 </li>\r
1182 <li>\r
1183 <p>\r
1184 ccache now knows how to convert absolute paths to relative paths inside\r
1185   dependency files when using <code>base_dir</code>.\r
1186 </p>\r
1187 </li>\r
1188 <li>\r
1189 <p>\r
1190 Improved parsing of <code>-g*</code> options.\r
1191 </p>\r
1192 </li>\r
1193 <li>\r
1194 <p>\r
1195 Made ccache understand <code>-Wp,-D*</code> options.\r
1196 </p>\r
1197 </li>\r
1198 <li>\r
1199 <p>\r
1200 ccache now understands the undocumented <code>-coverage</code> (only one dash) GCC\r
1201   option.\r
1202 </p>\r
1203 </li>\r
1204 <li>\r
1205 <p>\r
1206 Names of included files are no longer included in the hash of the compiler&#8217;s\r
1207   preprocessed output. This leads to more potential cache hits when not using\r
1208   the direct mode.\r
1209 </p>\r
1210 </li>\r
1211 <li>\r
1212 <p>\r
1213 Increased buffer size used when reading file data. This improves performance\r
1214   slightly.\r
1215 </p>\r
1216 </li>\r
1217 </ul></div>\r
1218 </div>\r
1219 <div class="sect2">\r
1220 <h3 id="_bug_fixes_8">Bug fixes</h3>\r
1221 <div class="ulist"><ul>\r
1222 <li>\r
1223 <p>\r
1224 Bail out on too hard compiler option <code>-P</code>.\r
1225 </p>\r
1226 </li>\r
1227 <li>\r
1228 <p>\r
1229 Fixed clang test suite when running on Linux.\r
1230 </p>\r
1231 </li>\r
1232 <li>\r
1233 <p>\r
1234 Fixed build and test for MinGW32 and Windows.\r
1235 </p>\r
1236 </li>\r
1237 </ul></div>\r
1238 </div>\r
1239 </div>\r
1240 </div>\r
1241 <div class="sect1">\r
1242 <h2 id="_ccache_3_2_9">ccache 3.2.9</h2>\r
1243 <div class="sectionbody">\r
1244 <div class="paragraph"><p>Release date: 2016-09-28</p></div>\r
1245 <div class="sect2">\r
1246 <h3 id="_bug_fixes_9">Bug fixes</h3>\r
1247 <div class="ulist"><ul>\r
1248 <li>\r
1249 <p>\r
1250 Fixed a regression in ccache 3.2.8: ccache could get confused when using the\r
1251   compiler option <code>-Wp,</code> to pass multiple options to the preprocessor,\r
1252   resulting in missing dependency files from direct mode cache hits.\r
1253 </p>\r
1254 </li>\r
1255 </ul></div>\r
1256 </div>\r
1257 </div>\r
1258 </div>\r
1259 <div class="sect1">\r
1260 <h2 id="_ccache_3_2_8">ccache 3.2.8</h2>\r
1261 <div class="sectionbody">\r
1262 <div class="paragraph"><p>Release date: 2016-09-07</p></div>\r
1263 <div class="sect2">\r
1264 <h3 id="_bug_fixes_10">Bug fixes</h3>\r
1265 <div class="ulist"><ul>\r
1266 <li>\r
1267 <p>\r
1268 Fixed an issue when compiler option <code>-Wp,-MT,path</code> is used instead of <code>-MT\r
1269   path</code> (and similar for <code>-MF</code>, <code>-MP</code> and <code>-MQ</code>) and <code>run_second_cpp</code>\r
1270   (<code>CCACHE_CPP2</code>) is enabled.\r
1271 </p>\r
1272 </li>\r
1273 <li>\r
1274 <p>\r
1275 ccache now understands the undocumented <code>-coverage</code> (only one dash) GCC\r
1276   option.\r
1277 </p>\r
1278 </li>\r
1279 </ul></div>\r
1280 </div>\r
1281 </div>\r
1282 </div>\r
1283 <div class="sect1">\r
1284 <h2 id="_ccache_3_2_7">ccache 3.2.7</h2>\r
1285 <div class="sectionbody">\r
1286 <div class="paragraph"><p>Release date: 2016-07-20</p></div>\r
1287 <div class="sect2">\r
1288 <h3 id="_bug_fixes_11">Bug fixes</h3>\r
1289 <div class="ulist"><ul>\r
1290 <li>\r
1291 <p>\r
1292 Fixed a bug which could lead to false cache hits for compiler command lines\r
1293   with a missing argument to an option that takes an argument.\r
1294 </p>\r
1295 </li>\r
1296 <li>\r
1297 <p>\r
1298 ccache now knows how to work around a glitch in the output of GCC 6&#8217;s\r
1299   preprocessor.\r
1300 </p>\r
1301 </li>\r
1302 </ul></div>\r
1303 </div>\r
1304 </div>\r
1305 </div>\r
1306 <div class="sect1">\r
1307 <h2 id="_ccache_3_2_6">ccache 3.2.6</h2>\r
1308 <div class="sectionbody">\r
1309 <div class="paragraph"><p>Release date: 2016-07-12</p></div>\r
1310 <div class="sect2">\r
1311 <h3 id="_bug_fixes_12">Bug fixes</h3>\r
1312 <div class="ulist"><ul>\r
1313 <li>\r
1314 <p>\r
1315 Fixed build problem on QNX, which lacks &#8220;SA_RESTART&#8221;.\r
1316 </p>\r
1317 </li>\r
1318 <li>\r
1319 <p>\r
1320 Bail out on compiler option <code>-fstack-usage</code> since it creates a <code>.su</code> file\r
1321   which ccache currently doesn&#8217;t handle.\r
1322 </p>\r
1323 </li>\r
1324 <li>\r
1325 <p>\r
1326 Fixed a bug where (due to ccache rewriting paths) the compiler could choose\r
1327   incorrect include files if <code>CCACHE_BASEDIR</code> is used and the source file path\r
1328   is absolute and is a symlink.\r
1329 </p>\r
1330 </li>\r
1331 </ul></div>\r
1332 </div>\r
1333 </div>\r
1334 </div>\r
1335 <div class="sect1">\r
1336 <h2 id="_ccache_3_2_5">ccache 3.2.5</h2>\r
1337 <div class="sectionbody">\r
1338 <div class="paragraph"><p>Release date: 2016-04-17</p></div>\r
1339 <div class="sect2">\r
1340 <h3 id="_new_features_and_enhancements_6">New features and enhancements</h3>\r
1341 <div class="ulist"><ul>\r
1342 <li>\r
1343 <p>\r
1344 Only pass clang-specific <code>-stdlib=</code> to the preprocessor.\r
1345 </p>\r
1346 </li>\r
1347 <li>\r
1348 <p>\r
1349 Improved handling of stale NFS handles.\r
1350 </p>\r
1351 </li>\r
1352 <li>\r
1353 <p>\r
1354 Made it harder to misinterpret documentation of boolean environment settings'\r
1355   semantics.\r
1356 </p>\r
1357 </li>\r
1358 </ul></div>\r
1359 </div>\r
1360 <div class="sect2">\r
1361 <h3 id="_bug_fixes_13">Bug fixes</h3>\r
1362 <div class="ulist"><ul>\r
1363 <li>\r
1364 <p>\r
1365 Include m4 files used by configure.ac in the source dist archives.\r
1366 </p>\r
1367 </li>\r
1368 <li>\r
1369 <p>\r
1370 Corrected "Performance" section in the manual regarding <code>__DATE_</code>, <code>__TIME__</code>\r
1371   and <code>__FILE__</code> macros.\r
1372 </p>\r
1373 </li>\r
1374 <li>\r
1375 <p>\r
1376 Fixed build on Solaris 10+ and AIX 7.\r
1377 </p>\r
1378 </li>\r
1379 <li>\r
1380 <p>\r
1381 Fixed failure to create directories on QNX.\r
1382 </p>\r
1383 </li>\r
1384 <li>\r
1385 <p>\r
1386 Don&#8217;t (try to) update manifest file in &#8220;read-only&#8221; and &#8220;read-only direct&#8221;\r
1387   modes.\r
1388 </p>\r
1389 </li>\r
1390 <li>\r
1391 <p>\r
1392 Fixed a bug in caching of <code>stat</code> system calls in &#8220;file_stat_matches\r
1393   sloppiness mode&#8221;.\r
1394 </p>\r
1395 </li>\r
1396 <li>\r
1397 <p>\r
1398 Fixed bug in hashing of clang plugins, leading to unnecessary cache misses.\r
1399 </p>\r
1400 </li>\r
1401 <li>\r
1402 <p>\r
1403 Fixed --print-config to show &#8220;pch_defines sloppiness&#8221;.\r
1404 </p>\r
1405 </li>\r
1406 <li>\r
1407 <p>\r
1408 The man page is now built when running &#8220;make install&#8221; from Git repository\r
1409   sources.\r
1410 </p>\r
1411 </li>\r
1412 </ul></div>\r
1413 </div>\r
1414 </div>\r
1415 </div>\r
1416 <div class="sect1">\r
1417 <h2 id="_ccache_3_2_4">ccache 3.2.4</h2>\r
1418 <div class="sectionbody">\r
1419 <div class="paragraph"><p>Release date: 2015-10-08</p></div>\r
1420 <div class="sect2">\r
1421 <h3 id="_bug_fixes_14">Bug fixes</h3>\r
1422 <div class="ulist"><ul>\r
1423 <li>\r
1424 <p>\r
1425 Fixed build error related to zlib on systems with older make versions\r
1426   (regression in ccache 3.2.3).\r
1427 </p>\r
1428 </li>\r
1429 <li>\r
1430 <p>\r
1431 Made conversion-to-bool explicit to avoid build warnings (and potential\r
1432   runtime errors) on legacy systems.\r
1433 </p>\r
1434 </li>\r
1435 <li>\r
1436 <p>\r
1437 Improved signal handling: Kill compiler on SIGTERM; wait for compiler to exit\r
1438   before exiting; die appropriately.\r
1439 </p>\r
1440 </li>\r
1441 <li>\r
1442 <p>\r
1443 Minor fixes related to Windows support.\r
1444 </p>\r
1445 </li>\r
1446 <li>\r
1447 <p>\r
1448 The correct compression level is now used if compression is requested.\r
1449 </p>\r
1450 </li>\r
1451 <li>\r
1452 <p>\r
1453 Fixed a bug where cache cleanup could be run too early for caches larger than\r
1454   64 GiB on 32-bit systems.\r
1455 </p>\r
1456 </li>\r
1457 </ul></div>\r
1458 </div>\r
1459 </div>\r
1460 </div>\r
1461 <div class="sect1">\r
1462 <h2 id="_ccache_3_2_3">ccache 3.2.3</h2>\r
1463 <div class="sectionbody">\r
1464 <div class="paragraph"><p>Release date: 2015-08-16</p></div>\r
1465 <div class="sect2">\r
1466 <h3 id="_new_features_and_enhancements_7">New features and enhancements</h3>\r
1467 <div class="ulist"><ul>\r
1468 <li>\r
1469 <p>\r
1470 Added support for compiler option <code>-gsplit-dwarf</code>.\r
1471 </p>\r
1472 </li>\r
1473 </ul></div>\r
1474 </div>\r
1475 <div class="sect2">\r
1476 <h3 id="_bug_fixes_15">Bug fixes</h3>\r
1477 <div class="ulist"><ul>\r
1478 <li>\r
1479 <p>\r
1480 Support external zlib in nonstandard directory.\r
1481 </p>\r
1482 </li>\r
1483 <li>\r
1484 <p>\r
1485 Avoid calling <code>exit()</code> inside an exit handler.\r
1486 </p>\r
1487 </li>\r
1488 <li>\r
1489 <p>\r
1490 Let exit handler terminate properly.\r
1491 </p>\r
1492 </li>\r
1493 <li>\r
1494 <p>\r
1495 Bail out on compiler option <code>--save-temps</code> in addition to <code>-save-temps</code>.\r
1496 </p>\r
1497 </li>\r
1498 <li>\r
1499 <p>\r
1500 Only log "Disabling direct mode" once when failing to read potential include\r
1501   files.\r
1502 </p>\r
1503 </li>\r
1504 </ul></div>\r
1505 </div>\r
1506 </div>\r
1507 </div>\r
1508 <div class="sect1">\r
1509 <h2 id="_ccache_3_2_2">ccache 3.2.2</h2>\r
1510 <div class="sectionbody">\r
1511 <div class="paragraph"><p>Release date: 2015-05-10</p></div>\r
1512 <div class="sect2">\r
1513 <h3 id="_new_features_and_enhancements_8">New features and enhancements</h3>\r
1514 <div class="ulist"><ul>\r
1515 <li>\r
1516 <p>\r
1517 Added support for <code>CCACHE_COMPILERCHECK=string:&lt;value&gt;</code>. This is a faster\r
1518   alternative to <code>CCACHE_COMPILERCHECK=&lt;command&gt;</code> if the command&#8217;s output can\r
1519   be precalculated by the build system.\r
1520 </p>\r
1521 </li>\r
1522 <li>\r
1523 <p>\r
1524 Add support for caching code coverage results (compiling for gcov).\r
1525 </p>\r
1526 </li>\r
1527 </ul></div>\r
1528 </div>\r
1529 <div class="sect2">\r
1530 <h3 id="_bug_fixes_16">Bug fixes</h3>\r
1531 <div class="ulist"><ul>\r
1532 <li>\r
1533 <p>\r
1534 Made hash of cached result created with and without <code>CCACHE_CPP2</code> different.\r
1535   This makes it possible to rebuild with <code>CCACHE_CPP2</code> set without having to\r
1536   clear the cache to get new results.\r
1537 </p>\r
1538 </li>\r
1539 <li>\r
1540 <p>\r
1541 Don&#8217;t try to reset a non-existing stats file. This avoids &#8220;No such file or\r
1542   directory&#8221; messages in the ccache log when the cache directory doesn&#8217;t\r
1543   exist.\r
1544 </p>\r
1545 </li>\r
1546 <li>\r
1547 <p>\r
1548 Fixed a bug where ccache deleted clang diagnostics after compiler failures.\r
1549 </p>\r
1550 </li>\r
1551 <li>\r
1552 <p>\r
1553 Avoid performing an unnecessary copy of the object file on a cache miss.\r
1554 </p>\r
1555 </li>\r
1556 <li>\r
1557 <p>\r
1558 Bail out on too hard compiler option <code>-fmodules</code>.\r
1559 </p>\r
1560 </li>\r
1561 <li>\r
1562 <p>\r
1563 Bail out on too hard compiler option <code>-fplugin=libcc1plugin</code> (interaction\r
1564   with GDB).\r
1565 </p>\r
1566 </li>\r
1567 <li>\r
1568 <p>\r
1569 Fixed build error when compiling ccache with recent clang versions.\r
1570 </p>\r
1571 </li>\r
1572 <li>\r
1573 <p>\r
1574 Removed signal-unsafe code from signal handler.\r
1575 </p>\r
1576 </li>\r
1577 <li>\r
1578 <p>\r
1579 Corrected logic for when to output cached stderr.\r
1580 </p>\r
1581 </li>\r
1582 <li>\r
1583 <p>\r
1584 Wipe the whole cached result on failure retrieving a cached file.\r
1585 </p>\r
1586 </li>\r
1587 <li>\r
1588 <p>\r
1589 Fixed build error when compiling ccache with recent clang versions.\r
1590 </p>\r
1591 </li>\r
1592 </ul></div>\r
1593 </div>\r
1594 </div>\r
1595 </div>\r
1596 <div class="sect1">\r
1597 <h2 id="_ccache_3_2_1">ccache 3.2.1</h2>\r
1598 <div class="sectionbody">\r
1599 <div class="paragraph"><p>Release date: 2014-12-10</p></div>\r
1600 <div class="sect2">\r
1601 <h3 id="_bug_fixes_17">Bug fixes</h3>\r
1602 <div class="ulist"><ul>\r
1603 <li>\r
1604 <p>\r
1605 Fixed regression in temporary file handling, which lead to incorrect\r
1606   permissions for stats, manifest and ccache.conf files in the cache.\r
1607 </p>\r
1608 </li>\r
1609 <li>\r
1610 <p>\r
1611 <code>CACHEDIR.TAG</code> files are now created in the [0-9a-f] subdirectories so that\r
1612   ccache.conf is not lost in backups.\r
1613 </p>\r
1614 </li>\r
1615 <li>\r
1616 <p>\r
1617 Made the default cache size suffix <code>G</code>, as previously documented.\r
1618 </p>\r
1619 </li>\r
1620 <li>\r
1621 <p>\r
1622 <code>-fdiagnostics-color=auto</code> is now passed to the compiler even if stderr is\r
1623   redirected. This fixes a problem when, for instance, a configure test probes\r
1624   if the compiler (wrapped via ccache) supports <code>-fdiagnostics-color=auto</code>.\r
1625 </p>\r
1626 </li>\r
1627 <li>\r
1628 <p>\r
1629 Added missing documentation for <code>max_files</code> and <code>max_size</code> configuration\r
1630   options.\r
1631 </p>\r
1632 </li>\r
1633 </ul></div>\r
1634 </div>\r
1635 </div>\r
1636 </div>\r
1637 <div class="sect1">\r
1638 <h2 id="_ccache_3_2">ccache 3.2</h2>\r
1639 <div class="sectionbody">\r
1640 <div class="paragraph"><p>Release date: 2014-11-17</p></div>\r
1641 <div class="sect2">\r
1642 <h3 id="_new_features_and_enhancements_9">New features and enhancements</h3>\r
1643 <div class="ulist"><ul>\r
1644 <li>\r
1645 <p>\r
1646 Added support for configuring ccache via one or several configuration files\r
1647   instead of via environment variables. Environment variables still have\r
1648   priority but are no longer the recommended way of customizing ccache\r
1649   behavior. See the manual for more information.\r
1650 </p>\r
1651 </li>\r
1652 <li>\r
1653 <p>\r
1654 Added support for compiler error/warning messages with color.\r
1655 </p>\r
1656 </li>\r
1657 <li>\r
1658 <p>\r
1659 Made creation of temporary directories and cache directories smarter to avoid\r
1660   unnecessary <code>stat</code> calls.\r
1661 </p>\r
1662 </li>\r
1663 <li>\r
1664 <p>\r
1665 Improved efficiency of the algorithm that scans for <code>__DATE_</code> and <code>__TIME__</code>\r
1666   tokens in the hashed source code.\r
1667 </p>\r
1668 </li>\r
1669 <li>\r
1670 <p>\r
1671 Added support for several binaries (separated by space) in <code>CCACHE_PREFIX</code>.\r
1672 </p>\r
1673 </li>\r
1674 <li>\r
1675 <p>\r
1676 The <code>-c</code> option is no longer passed to the preprocessor. This fixes problems\r
1677   with clang and Solaris&#8217;s C++ compiler.\r
1678 </p>\r
1679 </li>\r
1680 <li>\r
1681 <p>\r
1682 ccache no longer passes preprocessor options like <code>-D</code> and <code>-I</code> to the\r
1683   compiler when compiling preprocessed output. This fixes warnings emitted by\r
1684   clang.\r
1685 </p>\r
1686 </li>\r
1687 <li>\r
1688 <p>\r
1689 Compiler options <code>-fprofile-generate</code>, <code>-fprofile-arcs</code>, <code>-fprofile-use</code> and\r
1690   <code>-fbranch-probabilities</code> are now handled without bailing.\r
1691 </p>\r
1692 </li>\r
1693 <li>\r
1694 <p>\r
1695 Added support for clang&#8217;s <code>--serialize-diagnostic</code> option, storing the\r
1696   diagnostic file (<code>.dia</code>) in the cache.\r
1697 </p>\r
1698 </li>\r
1699 <li>\r
1700 <p>\r
1701 Added support for precompiled headers when using clang.\r
1702 </p>\r
1703 </li>\r
1704 <li>\r
1705 <p>\r
1706 Added support for clang <code>.pth</code> (pretokenized header) files.\r
1707 </p>\r
1708 </li>\r
1709 <li>\r
1710 <p>\r
1711 Changed the <code>-x</code> language option to use the new objective C standard for GCC\r
1712   and clang.\r
1713 </p>\r
1714 </li>\r
1715 <li>\r
1716 <p>\r
1717 On a cache miss, ccache now instructs the compiler to create the object file\r
1718   at the real destination and then copies the file into the cache instead of\r
1719   the other way around. This is needed to support compiler options like\r
1720   <code>-fprofile-arcs</code> and <code>--serialize-diagnostics</code>.\r
1721 </p>\r
1722 </li>\r
1723 <li>\r
1724 <p>\r
1725 ccache now checks that included files' ctimes aren&#8217;t too new. This check can\r
1726   be turned off by adding <code>include_file_ctime</code> to the &#8220;ccache sloppiness&#8221;\r
1727   setting.\r
1728 </p>\r
1729 </li>\r
1730 <li>\r
1731 <p>\r
1732 Added possibility to get cache hits based on filename, size, mtime and ctime\r
1733   only. On other words, source code files are not even read, only stat-ed. This\r
1734   operation mode is opt-in by adding <code>file_stat_matches</code> to the &#8220;ccache\r
1735   sloppiness&#8221; setting.\r
1736 </p>\r
1737 </li>\r
1738 <li>\r
1739 <p>\r
1740 The filename part of options like <code>-Wp,-MDfilename</code> is no longer included in\r
1741   the hash since the filename doesn&#8217;t have any bearing on the result.\r
1742 </p>\r
1743 </li>\r
1744 <li>\r
1745 <p>\r
1746 Added a &#8220;read-only direct&#8221; configuration setting, which is like the\r
1747   ordinary read-only setting except that ccache will only try to retrieve\r
1748   results from the cache using the direct mode, not the preprocessor mode.\r
1749 </p>\r
1750 </li>\r
1751 <li>\r
1752 <p>\r
1753 The display and interpretation of cache size has been changed to use SI\r
1754   units.\r
1755 </p>\r
1756 </li>\r
1757 <li>\r
1758 <p>\r
1759 Default cache size is now 5 GB (was previously 1 GiB).\r
1760 </p>\r
1761 </li>\r
1762 <li>\r
1763 <p>\r
1764 Added configuration option to set the compression level of compressed object\r
1765   files in the cache.\r
1766 </p>\r
1767 </li>\r
1768 <li>\r
1769 <p>\r
1770 Added support for <code>@file</code> and <code>-@file</code> arguments (reading options from a\r
1771   file).\r
1772 </p>\r
1773 </li>\r
1774 <li>\r
1775 <p>\r
1776 <code>-Wl,</code> options are no longer included in the hash since they don&#8217;t affect\r
1777   compilation.\r
1778 </p>\r
1779 </li>\r
1780 <li>\r
1781 <p>\r
1782 Bail out on too hard compiler option <code>-Wp,-P</code>.\r
1783 </p>\r
1784 </li>\r
1785 <li>\r
1786 <p>\r
1787 Optimized MD4 calculation code on little-endian systems.\r
1788 </p>\r
1789 </li>\r
1790 <li>\r
1791 <p>\r
1792 Various improvements and fixes on win32.\r
1793 </p>\r
1794 </li>\r
1795 <li>\r
1796 <p>\r
1797 Improved logging to the ccache log file.\r
1798 </p>\r
1799 </li>\r
1800 <li>\r
1801 <p>\r
1802 Added <code>--dump-manifest</code> command-line option for debugging purposes.\r
1803 </p>\r
1804 </li>\r
1805 <li>\r
1806 <p>\r
1807 Added <code>--with-bundled-zlib</code> configure option.\r
1808 </p>\r
1809 </li>\r
1810 <li>\r
1811 <p>\r
1812 Upgraded bundled zlib to version 1.2.8.\r
1813 </p>\r
1814 </li>\r
1815 <li>\r
1816 <p>\r
1817 Improved <code>dev.mk</code> to be more platform independent.\r
1818 </p>\r
1819 </li>\r
1820 <li>\r
1821 <p>\r
1822 Made the test suite work with clang and gcc-llvm on OS X.\r
1823 </p>\r
1824 </li>\r
1825 <li>\r
1826 <p>\r
1827 Various other improvements of the test suite.\r
1828 </p>\r
1829 </li>\r
1830 </ul></div>\r
1831 </div>\r
1832 <div class="sect2">\r
1833 <h3 id="_bug_fixes_18">Bug fixes</h3>\r
1834 <div class="ulist"><ul>\r
1835 <li>\r
1836 <p>\r
1837 Any previous <code>.stderr</code> is now removed from the cache when recaching.\r
1838 </p>\r
1839 </li>\r
1840 <li>\r
1841 <p>\r
1842 Fixed an issue when handling the <code>-arch</code> compiler option with an argument.\r
1843 </p>\r
1844 </li>\r
1845 <li>\r
1846 <p>\r
1847 Fixed race condition when creating the initial cache directory.\r
1848 </p>\r
1849 </li>\r
1850 <li>\r
1851 <p>\r
1852 Fixed test suite failures when <code>CC</code> is a ccache-wrapped compiler.\r
1853 </p>\r
1854 </li>\r
1855 </ul></div>\r
1856 </div>\r
1857 </div>\r
1858 </div>\r
1859 <div class="sect1">\r
1860 <h2 id="_ccache_3_1_12">ccache 3.1.12</h2>\r
1861 <div class="sectionbody">\r
1862 <div class="paragraph"><p>Release date: 2016-07-12</p></div>\r
1863 <div class="sect2">\r
1864 <h3 id="_bug_fixes_19">Bug fixes</h3>\r
1865 <div class="ulist"><ul>\r
1866 <li>\r
1867 <p>\r
1868 Fixed a bug where (due to ccache rewriting paths) the compiler could choose\r
1869   incorrect include files if <code>CCACHE_BASEDIR</code> is used and the source file path\r
1870   is absolute and is a symlink.\r
1871 </p>\r
1872 </li>\r
1873 </ul></div>\r
1874 </div>\r
1875 </div>\r
1876 </div>\r
1877 <div class="sect1">\r
1878 <h2 id="_ccache_3_1_11">ccache 3.1.11</h2>\r
1879 <div class="sectionbody">\r
1880 <div class="paragraph"><p>Release date: 2015-03-07</p></div>\r
1881 <div class="sect2">\r
1882 <h3 id="_bug_fixes_20">Bug fixes</h3>\r
1883 <div class="ulist"><ul>\r
1884 <li>\r
1885 <p>\r
1886 Fixed bug which could result in false cache hits when source code contains\r
1887   <code>'"'</code> followed by <code>" /*"</code> or <code>" //"</code> (with variations).\r
1888 </p>\r
1889 </li>\r
1890 <li>\r
1891 <p>\r
1892 Made hash of cached result created with and without <code>CCACHE_CPP2</code> different.\r
1893   This makes it possible to rebuild with <code>CCACHE_CPP2</code> set without having to\r
1894   clear the cache to get new results.\r
1895 </p>\r
1896 </li>\r
1897 <li>\r
1898 <p>\r
1899 Don&#8217;t try to reset a non-existing stats file. This avoids &#8220;No such file or\r
1900   directory&#8221; messages in the ccache log when the cache directory doesn&#8217;t\r
1901   exist.\r
1902 </p>\r
1903 </li>\r
1904 </ul></div>\r
1905 </div>\r
1906 </div>\r
1907 </div>\r
1908 <div class="sect1">\r
1909 <h2 id="_ccache_3_1_10">ccache 3.1.10</h2>\r
1910 <div class="sectionbody">\r
1911 <div class="paragraph"><p>Release date: 2014-10-19</p></div>\r
1912 <div class="sect2">\r
1913 <h3 id="_new_features_and_enhancements_10">New features and enhancements</h3>\r
1914 <div class="ulist"><ul>\r
1915 <li>\r
1916 <p>\r
1917 Added support for the <code>-Xclang</code> compiler option.\r
1918 </p>\r
1919 </li>\r
1920 <li>\r
1921 <p>\r
1922 Improved handling of exit code of internally executed processes.\r
1923 </p>\r
1924 </li>\r
1925 <li>\r
1926 <p>\r
1927 Zero length object files in the cache are now rejected as invalid.\r
1928 </p>\r
1929 </li>\r
1930 <li>\r
1931 <p>\r
1932 Bail out on option <code>-gsplit-dwarf</code> (since it produces multiple output files).\r
1933 </p>\r
1934 </li>\r
1935 <li>\r
1936 <p>\r
1937 Compiler option <code>-fdebug-prefix-map</code> is now ignored (not part of the hash).\r
1938   (The <code>-fdebug-prefix-map</code> option may be used in combination with\r
1939   <code>CCACHE_BASEDIR</code> to reuse results across different directories.)\r
1940 </p>\r
1941 </li>\r
1942 <li>\r
1943 <p>\r
1944 Added note in documentation that <code>--ccache-skip</code> currently does not mean\r
1945   &#8220;don&#8217;t hash the following option&#8221;.\r
1946 </p>\r
1947 </li>\r
1948 <li>\r
1949 <p>\r
1950 To enable support for precompiled headers (PCH), <code>CCACHE_SLOPPINESS</code> now also\r
1951   needs to include the new <code>pch_defines</code> sloppiness. This is because ccache\r
1952   can&#8217;t detect changes in the source code when only defined macros have been\r
1953   changed.\r
1954 </p>\r
1955 </li>\r
1956 <li>\r
1957 <p>\r
1958 Stale files in the internal temporary directory (<code>&lt;ccache_dir&gt;/tmp</code>) are now\r
1959   cleaned up if they are older than one hour.\r
1960 </p>\r
1961 </li>\r
1962 </ul></div>\r
1963 </div>\r
1964 <div class="sect2">\r
1965 <h3 id="_bug_fixes_21">Bug fixes</h3>\r
1966 <div class="ulist"><ul>\r
1967 <li>\r
1968 <p>\r
1969 Fixed path canonicalization in <code>make_relative_path()</code> when path doesn&#8217;t\r
1970   exist.\r
1971 </p>\r
1972 </li>\r
1973 <li>\r
1974 <p>\r
1975 Fixed bug in <code>common_dir_prefix_length()</code>. This corrects the <code>CCACHE_BASEDIR</code>\r
1976   behavior.\r
1977 </p>\r
1978 </li>\r
1979 <li>\r
1980 <p>\r
1981 ccache no longer tries to create the cache directory when <code>CCACHE_DISABLE</code> is\r
1982   set.\r
1983 </p>\r
1984 </li>\r
1985 <li>\r
1986 <p>\r
1987 Fixed bug when reading manifests with a very large number of file info\r
1988   entries.\r
1989 </p>\r
1990 </li>\r
1991 <li>\r
1992 <p>\r
1993 Fixed problem with logging of current working directory.\r
1994 </p>\r
1995 </li>\r
1996 </ul></div>\r
1997 </div>\r
1998 </div>\r
1999 </div>\r
2000 <div class="sect1">\r
2001 <h2 id="_ccache_3_1_9">ccache 3.1.9</h2>\r
2002 <div class="sectionbody">\r
2003 <div class="paragraph"><p>Release date: 2013-01-06</p></div>\r
2004 <div class="sect2">\r
2005 <h3 id="_bug_fixes_22">Bug fixes</h3>\r
2006 <div class="ulist"><ul>\r
2007 <li>\r
2008 <p>\r
2009 The EAGAIN signal is now handled correctly when emitting cached stderr\r
2010   output. This fixes a problem triggered by large error outputs from the\r
2011   compiler.\r
2012 </p>\r
2013 </li>\r
2014 <li>\r
2015 <p>\r
2016 Subdirectories in the cache are no longer created in read-only mode.\r
2017 </p>\r
2018 </li>\r
2019 <li>\r
2020 <p>\r
2021 Fixed so that ccache&#8217;s log file descriptor is not made available to the\r
2022   compiler.\r
2023 </p>\r
2024 </li>\r
2025 <li>\r
2026 <p>\r
2027 Improved error reporting when failing to create temporary stdout/stderr files\r
2028   when executing the compiler.\r
2029 </p>\r
2030 </li>\r
2031 <li>\r
2032 <p>\r
2033 Disappearing temporary stdout/stderr files are now handled gracefully.\r
2034 </p>\r
2035 </li>\r
2036 </ul></div>\r
2037 </div>\r
2038 <div class="sect2">\r
2039 <h3 id="_other">Other</h3>\r
2040 <div class="ulist"><ul>\r
2041 <li>\r
2042 <p>\r
2043 Fixed test suite to work on ecryptfs.\r
2044 </p>\r
2045 </li>\r
2046 </ul></div>\r
2047 </div>\r
2048 </div>\r
2049 </div>\r
2050 <div class="sect1">\r
2051 <h2 id="_ccache_3_1_8">ccache 3.1.8</h2>\r
2052 <div class="sectionbody">\r
2053 <div class="paragraph"><p>Release date: 2012-08-11</p></div>\r
2054 <div class="sect2">\r
2055 <h3 id="_new_features_and_enhancements_11">New features and enhancements</h3>\r
2056 <div class="ulist"><ul>\r
2057 <li>\r
2058 <p>\r
2059 Made paths to dependency files relative in order to increase cache hits.\r
2060 </p>\r
2061 </li>\r
2062 <li>\r
2063 <p>\r
2064 Added work-around to make ccache work with buggy GCC 4.1 when creating a\r
2065   pre-compiled header.\r
2066 </p>\r
2067 </li>\r
2068 <li>\r
2069 <p>\r
2070 Clang plugins are now hashed to catch plugin upgrades.\r
2071 </p>\r
2072 </li>\r
2073 </ul></div>\r
2074 </div>\r
2075 <div class="sect2">\r
2076 <h3 id="_bug_fixes_23">Bug fixes</h3>\r
2077 <div class="ulist"><ul>\r
2078 <li>\r
2079 <p>\r
2080 Fixed crash when the current working directory has been removed.\r
2081 </p>\r
2082 </li>\r
2083 <li>\r
2084 <p>\r
2085 Fixed crash when stderr is closed.\r
2086 </p>\r
2087 </li>\r
2088 <li>\r
2089 <p>\r
2090 Corrected a corner case when parsing backslash escapes in string\r
2091   literals.\r
2092 </p>\r
2093 </li>\r
2094 <li>\r
2095 <p>\r
2096 Paths are now correctly canonicalized when computing paths relative to the\r
2097   base directory.\r
2098 </p>\r
2099 </li>\r
2100 </ul></div>\r
2101 </div>\r
2102 <div class="sect2">\r
2103 <h3 id="_other_2">Other</h3>\r
2104 <div class="ulist"><ul>\r
2105 <li>\r
2106 <p>\r
2107 Made git version macro work when compiling outside of the source directory.\r
2108 </p>\r
2109 </li>\r
2110 <li>\r
2111 <p>\r
2112 Fixed <code>static_assert</code> macro definition clash with GCC 4.7.\r
2113 </p>\r
2114 </li>\r
2115 </ul></div>\r
2116 </div>\r
2117 </div>\r
2118 </div>\r
2119 <div class="sect1">\r
2120 <h2 id="_ccache_3_1_7">ccache 3.1.7</h2>\r
2121 <div class="sectionbody">\r
2122 <div class="paragraph"><p>Release date: 2012-01-08</p></div>\r
2123 <div class="sect2">\r
2124 <h3 id="_bug_fixes_24">Bug fixes</h3>\r
2125 <div class="ulist"><ul>\r
2126 <li>\r
2127 <p>\r
2128 Non-writable <code>CCACHE_DIR</code> is now handled gracefully when <code>CCACHE_READONLY</code> is\r
2129   set.\r
2130 </p>\r
2131 </li>\r
2132 <li>\r
2133 <p>\r
2134 Made failure to create files (typically due to bad directory permissions) in\r
2135   the cache directory fatal. Previously, such failures were silently and\r
2136   erroneously flagged as "compiler produced stdout".\r
2137 </p>\r
2138 </li>\r
2139 <li>\r
2140 <p>\r
2141 Both the <code>-specs=file</code> and <code>--specs=file</code> forms are now recognized.\r
2142 </p>\r
2143 </li>\r
2144 <li>\r
2145 <p>\r
2146 Added recognition and hashing of GCC plugins specified with <code>-fplugin=file</code>.\r
2147 </p>\r
2148 </li>\r
2149 <li>\r
2150 <p>\r
2151 <code>CCACHE_COMPILERCHECK</code> now also determines how to hash explicit specs files\r
2152   (<code>-specs=file</code>).\r
2153 </p>\r
2154 </li>\r
2155 <li>\r
2156 <p>\r
2157 Added <code>CPATH</code>, <code>C_INCLUDE_PATH</code> and similar environment variables to the hash\r
2158   to avoid false cache hits when such variables have changed.\r
2159 </p>\r
2160 </li>\r
2161 <li>\r
2162 <p>\r
2163 Corrected log message when unify mode is enabled.\r
2164 </p>\r
2165 </li>\r
2166 <li>\r
2167 <p>\r
2168 Reverted the GCC bug compatibility introduced in ccache 3.1.5 for <code>-MT</code>/<code>-MQ</code>\r
2169   options with concatenated arguments. (The bug is fixed in recent GCC\r
2170   versions.)\r
2171 </p>\r
2172 </li>\r
2173 </ul></div>\r
2174 </div>\r
2175 <div class="sect2">\r
2176 <h3 id="_other_3">Other</h3>\r
2177 <div class="ulist"><ul>\r
2178 <li>\r
2179 <p>\r
2180 Corrected license header for <code>mdfour.c</code>.\r
2181 </p>\r
2182 </li>\r
2183 <li>\r
2184 <p>\r
2185 Improved documentation on how to fix bad object files in the cache.\r
2186 </p>\r
2187 </li>\r
2188 </ul></div>\r
2189 </div>\r
2190 </div>\r
2191 </div>\r
2192 <div class="sect1">\r
2193 <h2 id="_ccache_3_1_6">ccache 3.1.6</h2>\r
2194 <div class="sectionbody">\r
2195 <div class="paragraph"><p>Release date: 2011-08-21</p></div>\r
2196 <div class="sect2">\r
2197 <h3 id="_new_features_and_enhancements_12">New features and enhancements</h3>\r
2198 <div class="ulist"><ul>\r
2199 <li>\r
2200 <p>\r
2201 Rewrite argument to <code>--sysroot</code> if <code>CCACHE_BASEDIR</code> is used.\r
2202 </p>\r
2203 </li>\r
2204 </ul></div>\r
2205 </div>\r
2206 <div class="sect2">\r
2207 <h3 id="_bug_fixes_25">Bug fixes</h3>\r
2208 <div class="ulist"><ul>\r
2209 <li>\r
2210 <p>\r
2211 Don&#8217;t crash if <code>getcwd()</code> fails.\r
2212 </p>\r
2213 </li>\r
2214 <li>\r
2215 <p>\r
2216 Fixed alignment of &#8220;called for preprocessing&#8221; counter.\r
2217 </p>\r
2218 </li>\r
2219 </ul></div>\r
2220 </div>\r
2221 </div>\r
2222 </div>\r
2223 <div class="sect1">\r
2224 <h2 id="_ccache_3_1_5">ccache 3.1.5</h2>\r
2225 <div class="sectionbody">\r
2226 <div class="paragraph"><p>Release date: 2011-05-29</p></div>\r
2227 <div class="sect2">\r
2228 <h3 id="_new_features_and_enhancements_13">New features and enhancements</h3>\r
2229 <div class="ulist"><ul>\r
2230 <li>\r
2231 <p>\r
2232 Added a new statistics counter named &#8220;called for preprocessing&#8221;.\r
2233 </p>\r
2234 </li>\r
2235 <li>\r
2236 <p>\r
2237 The original command line is now logged to the file specified with\r
2238   <code>CCACHE_LOGFILE</code>.\r
2239 </p>\r
2240 </li>\r
2241 <li>\r
2242 <p>\r
2243 Improved error logging when system calls fail.\r
2244 </p>\r
2245 </li>\r
2246 <li>\r
2247 <p>\r
2248 Added support for rewriting absolute paths in <code>-F</code>/<code>-iframework</code> GCC\r
2249   options.\r
2250 </p>\r
2251 </li>\r
2252 <li>\r
2253 <p>\r
2254 Improved order of statistics counters in <code>ccache -s</code> output.\r
2255 </p>\r
2256 </li>\r
2257 </ul></div>\r
2258 </div>\r
2259 <div class="sect2">\r
2260 <h3 id="_bug_fixes_26">Bug fixes</h3>\r
2261 <div class="ulist"><ul>\r
2262 <li>\r
2263 <p>\r
2264 The <code>-MF</code>/<code>-MT</code>/<code>-MQ</code> options with concatenated argument are now handled\r
2265   correctly when they are last on the command line.\r
2266 </p>\r
2267 </li>\r
2268 <li>\r
2269 <p>\r
2270 ccache is now bug compatible with GCC for the <code>-MT</code>/<code>-MQ</code> options with\r
2271   concatenated arguments.\r
2272 </p>\r
2273 </li>\r
2274 <li>\r
2275 <p>\r
2276 Fixed a minor memory leak.\r
2277 </p>\r
2278 </li>\r
2279 <li>\r
2280 <p>\r
2281 Systems that lack (and don&#8217;t need to be linked with) libm are now supported.\r
2282 </p>\r
2283 </li>\r
2284 </ul></div>\r
2285 </div>\r
2286 </div>\r
2287 </div>\r
2288 <div class="sect1">\r
2289 <h2 id="_ccache_3_1_4">ccache 3.1.4</h2>\r
2290 <div class="sectionbody">\r
2291 <div class="paragraph"><p>Release date: 2011-01-09</p></div>\r
2292 <div class="sect2">\r
2293 <h3 id="_bug_fixes_27">Bug fixes</h3>\r
2294 <div class="ulist"><ul>\r
2295 <li>\r
2296 <p>\r
2297 Made a work-around for a bug in <code>gzputc()</code> in zlib 1.2.5.\r
2298 </p>\r
2299 </li>\r
2300 <li>\r
2301 <p>\r
2302 Corrupt manifest files are now removed so that they won&#8217;t block direct mode\r
2303   hits.\r
2304 </p>\r
2305 </li>\r
2306 <li>\r
2307 <p>\r
2308 ccache now copes with file systems that don&#8217;t know about symbolic links.\r
2309 </p>\r
2310 </li>\r
2311 <li>\r
2312 <p>\r
2313 The file handle in now correctly closed on write error when trying to create\r
2314   a cache dir tag.\r
2315 </p>\r
2316 </li>\r
2317 </ul></div>\r
2318 </div>\r
2319 </div>\r
2320 </div>\r
2321 <div class="sect1">\r
2322 <h2 id="_ccache_3_1_3">ccache 3.1.3</h2>\r
2323 <div class="sectionbody">\r
2324 <div class="paragraph"><p>Release date: 2010-11-28</p></div>\r
2325 <div class="sect2">\r
2326 <h3 id="_bug_fixes_28">Bug fixes</h3>\r
2327 <div class="ulist"><ul>\r
2328 <li>\r
2329 <p>\r
2330 The -MFarg, -MTarg and -MQarg compiler options (i.e, without space between\r
2331   option and argument) are now handled correctly.\r
2332 </p>\r
2333 </li>\r
2334 </ul></div>\r
2335 </div>\r
2336 <div class="sect2">\r
2337 <h3 id="_other_4">Other</h3>\r
2338 <div class="ulist"><ul>\r
2339 <li>\r
2340 <p>\r
2341 Portability fixes for HP-UX 11.00 and other esoteric systems.\r
2342 </p>\r
2343 </li>\r
2344 </ul></div>\r
2345 </div>\r
2346 </div>\r
2347 </div>\r
2348 <div class="sect1">\r
2349 <h2 id="_ccache_3_1_2">ccache 3.1.2</h2>\r
2350 <div class="sectionbody">\r
2351 <div class="paragraph"><p>Release date: 2010-11-21</p></div>\r
2352 <div class="sect2">\r
2353 <h3 id="_bug_fixes_29">Bug fixes</h3>\r
2354 <div class="ulist"><ul>\r
2355 <li>\r
2356 <p>\r
2357 Bail out on too hard compiler options <code>-fdump-*</code>.\r
2358 </p>\r
2359 </li>\r
2360 <li>\r
2361 <p>\r
2362 NULL return values from malloc/calloc of zero bytes are now handled\r
2363   correctly.\r
2364 </p>\r
2365 </li>\r
2366 <li>\r
2367 <p>\r
2368 Fixed issue when parsing precompiler output on AIX.\r
2369 </p>\r
2370 </li>\r
2371 </ul></div>\r
2372 </div>\r
2373 <div class="sect2">\r
2374 <h3 id="_other_5">Other</h3>\r
2375 <div class="ulist"><ul>\r
2376 <li>\r
2377 <p>\r
2378 Improved documentation on which information is included in the hash sum.\r
2379 </p>\r
2380 </li>\r
2381 <li>\r
2382 <p>\r
2383 Made the &#8220;too new header file&#8221; test case work on file systems with\r
2384   unsynchronized clocks.\r
2385 </p>\r
2386 </li>\r
2387 <li>\r
2388 <p>\r
2389 The test suite now also works on systems that lack a /dev/zero.\r
2390 </p>\r
2391 </li>\r
2392 </ul></div>\r
2393 </div>\r
2394 </div>\r
2395 </div>\r
2396 <div class="sect1">\r
2397 <h2 id="_ccache_3_1_1">ccache 3.1.1</h2>\r
2398 <div class="sectionbody">\r
2399 <div class="paragraph"><p>Release date: 2010-11-07</p></div>\r
2400 <div class="sect2">\r
2401 <h3 id="_bug_fixes_30">Bug fixes</h3>\r
2402 <div class="ulist"><ul>\r
2403 <li>\r
2404 <p>\r
2405 ccache now falls back to preprocessor mode when a non-regular include file\r
2406   (device, socket, etc) has been detected so that potential hanging due to\r
2407   blocking reads is avoided.\r
2408 </p>\r
2409 </li>\r
2410 <li>\r
2411 <p>\r
2412 CRC errors are now detected when decompressing compressed files in the cache.\r
2413 </p>\r
2414 </li>\r
2415 <li>\r
2416 <p>\r
2417 Fixed potential object file corruption race on NFS.\r
2418 </p>\r
2419 </li>\r
2420 <li>\r
2421 <p>\r
2422 Minor documentation corrections.\r
2423 </p>\r
2424 </li>\r
2425 <li>\r
2426 <p>\r
2427 Fixed configure detection of ar.\r
2428 </p>\r
2429 </li>\r
2430 <li>\r
2431 <p>\r
2432 ccache development version (set by dev.mk) now works with gits whose\r
2433   <code>describe</code> command doesn&#8217;t understand <code>--dirty</code>.\r
2434 </p>\r
2435 </li>\r
2436 </ul></div>\r
2437 </div>\r
2438 <div class="sect2">\r
2439 <h3 id="_other_6">Other</h3>\r
2440 <div class="ulist"><ul>\r
2441 <li>\r
2442 <p>\r
2443 Minor debug log message improvements.\r
2444 </p>\r
2445 </li>\r
2446 </ul></div>\r
2447 </div>\r
2448 </div>\r
2449 </div>\r
2450 <div class="sect1">\r
2451 <h2 id="_ccache_3_1">ccache 3.1</h2>\r
2452 <div class="sectionbody">\r
2453 <div class="paragraph"><p>Release date: 2010-09-16</p></div>\r
2454 <div class="sect2">\r
2455 <h3 id="_new_features_and_enhancements_14">New features and enhancements</h3>\r
2456 <div class="ulist"><ul>\r
2457 <li>\r
2458 <p>\r
2459 Added support for hashing the output of a custom command (e.g. <code>%compiler%\r
2460   --version</code>) to identify the compiler instead of stat-ing or hashing the\r
2461   compiler binary. This can improve robustness when the compiler (as seen by\r
2462   ccache) actually isn&#8217;t the real compiler but another compiler wrapper.\r
2463 </p>\r
2464 </li>\r
2465 <li>\r
2466 <p>\r
2467 Added support for caching compilations that use precompiled headers. (See the\r
2468   manual for important instructions regarding this.)\r
2469 </p>\r
2470 </li>\r
2471 <li>\r
2472 <p>\r
2473 Locking of the files containing statistics counters is now done using\r
2474   symlinks instead of POSIX locks. This should make ccache behave a lot better\r
2475   on file systems where POSIX locks are slow or broken (e.g. NFS on some\r
2476   systems).\r
2477 </p>\r
2478 </li>\r
2479 <li>\r
2480 <p>\r
2481 Manifest files are now updated without the need of taking locks.\r
2482 </p>\r
2483 </li>\r
2484 <li>\r
2485 <p>\r
2486 Updates of statistics counters are now always done in one of the sub-level\r
2487   statistics files. This reduces lock contention, which especially improves\r
2488   performance on slow NFS mounts.\r
2489 </p>\r
2490 </li>\r
2491 <li>\r
2492 <p>\r
2493 Reading and writing of statistics counters has been made forward-compatible\r
2494   (unknown counters are retained).\r
2495 </p>\r
2496 </li>\r
2497 <li>\r
2498 <p>\r
2499 Files are now read without using <code>mmap()</code>. This has two benefits: it&#8217;s more\r
2500   robust against file changes during reading and it improves performance on\r
2501   poor systems where <code>mmap()</code> doesn&#8217;t use the disk cache.\r
2502 </p>\r
2503 </li>\r
2504 <li>\r
2505 <p>\r
2506 Added <code>.cp</code> and <code>.CP</code> as known C++ suffixes.\r
2507 </p>\r
2508 </li>\r
2509 <li>\r
2510 <p>\r
2511 Improved logging.\r
2512 </p>\r
2513 </li>\r
2514 <li>\r
2515 <p>\r
2516 Added <code>-install_name</code> as an option known to take an argument. (This improves\r
2517   statistics when using the Darwin linker.)\r
2518 </p>\r
2519 </li>\r
2520 </ul></div>\r
2521 </div>\r
2522 <div class="sect2">\r
2523 <h3 id="_bug_fixes_31">Bug fixes</h3>\r
2524 <div class="ulist"><ul>\r
2525 <li>\r
2526 <p>\r
2527 Non-fatal error messages are now never printed to stderr but logged instead.\r
2528 </p>\r
2529 </li>\r
2530 <li>\r
2531 <p>\r
2532 Fixed a bug affecting failing commands when <code>--ccache-skip</code> is used.\r
2533 </p>\r
2534 </li>\r
2535 <li>\r
2536 <p>\r
2537 Made <code>--ccache-skip</code> work for all options.\r
2538 </p>\r
2539 </li>\r
2540 <li>\r
2541 <p>\r
2542 EINTR is now handled correctly.\r
2543 </p>\r
2544 </li>\r
2545 </ul></div>\r
2546 </div>\r
2547 <div class="sect2">\r
2548 <h3 id="_other_7">Other</h3>\r
2549 <div class="ulist"><ul>\r
2550 <li>\r
2551 <p>\r
2552 Work on porting ccache to win32 (native), mostly done by Ramiro Polla. The\r
2553   port is not yet finished, but will hopefully be complete in some subsequent\r
2554   release.\r
2555 </p>\r
2556 </li>\r
2557 <li>\r
2558 <p>\r
2559 Added a <code>--nostats</code> flag to the performance benchmark program.\r
2560 </p>\r
2561 </li>\r
2562 <li>\r
2563 <p>\r
2564 Made the performance benchmark program more accurate when measuring cache\r
2565   hits.\r
2566 </p>\r
2567 </li>\r
2568 <li>\r
2569 <p>\r
2570 Added a new test framework for unit tests written in C.\r
2571 </p>\r
2572 </li>\r
2573 <li>\r
2574 <p>\r
2575 Got rid of <code>configure-dev</code>; dev mode is now given by <code>dev.mk.in</code> presence.\r
2576 </p>\r
2577 </li>\r
2578 <li>\r
2579 <p>\r
2580 Improved documentation on how to combine ccache with other compiler wrappers\r
2581   (like <code>distcc</code>).\r
2582 </p>\r
2583 </li>\r
2584 <li>\r
2585 <p>\r
2586 New <code>LICENSE.txt</code> file with licensing and copyright details about bundled\r
2587   source code.\r
2588 </p>\r
2589 </li>\r
2590 <li>\r
2591 <p>\r
2592 New <code>AUTHORS.txt</code> file with a list of ccache contributors.\r
2593 </p>\r
2594 </li>\r
2595 <li>\r
2596 <p>\r
2597 New <code>HACKING.txt</code> file with some notes about ccache code conventions.\r
2598 </p>\r
2599 </li>\r
2600 </ul></div>\r
2601 </div>\r
2602 </div>\r
2603 </div>\r
2604 <div class="sect1">\r
2605 <h2 id="_ccache_3_0_1">ccache 3.0.1</h2>\r
2606 <div class="sectionbody">\r
2607 <div class="paragraph"><p>Release date: 2010-07-15</p></div>\r
2608 <div class="sect2">\r
2609 <h3 id="_bug_fixes_32">Bug fixes</h3>\r
2610 <div class="ulist"><ul>\r
2611 <li>\r
2612 <p>\r
2613 The statistics counter &#8220;called for link&#8221; is now correctly updated when\r
2614   linking with a single object file.\r
2615 </p>\r
2616 </li>\r
2617 <li>\r
2618 <p>\r
2619 Fixed a problem with out-of-source builds.\r
2620 </p>\r
2621 </li>\r
2622 </ul></div>\r
2623 </div>\r
2624 </div>\r
2625 </div>\r
2626 <div class="sect1">\r
2627 <h2 id="_ccache_3_0">ccache 3.0</h2>\r
2628 <div class="sectionbody">\r
2629 <div class="paragraph"><p>Release date: 2010-06-20</p></div>\r
2630 <div class="sect2">\r
2631 <h3 id="_general">General</h3>\r
2632 <div class="ulist"><ul>\r
2633 <li>\r
2634 <p>\r
2635 ccache is now licensed under the GNU General Public License (GPL) version 3\r
2636   or later.\r
2637 </p>\r
2638 </li>\r
2639 </ul></div>\r
2640 </div>\r
2641 <div class="sect2">\r
2642 <h3 id="_upgrade_notes">Upgrade notes</h3>\r
2643 <div class="ulist"><ul>\r
2644 <li>\r
2645 <p>\r
2646 The way the hashes are calculated has changed, so you won&#8217;t get cache hits\r
2647   for compilation results stored by older ccache versions. Because of this, you\r
2648   might as well clear the old cache directory with <code>ccache --clear</code> if you\r
2649   want, unless you plan to keep using an older ccache version.\r
2650 </p>\r
2651 </li>\r
2652 </ul></div>\r
2653 </div>\r
2654 <div class="sect2">\r
2655 <h3 id="_new_features_and_enhancements_15">New features and enhancements</h3>\r
2656 <div class="ulist"><ul>\r
2657 <li>\r
2658 <p>\r
2659 ccache now has a &#8220;direct mode&#8221; where it computes a hash of the source code\r
2660   (including all included files) and compiler options without running the\r
2661   preprocessor. By not running the preprocessor, CPU usage is reduced; the\r
2662   speed is somewhere between 1 and 5 times that of ccache running in\r
2663   traditional mode, depending on the circumstances. The speedup will be higher\r
2664   when I/O is fast (e.g., when files are in the disk cache). The direct mode\r
2665   can be disabled by setting <code>CCACHE_NODIRECT</code>.\r
2666 </p>\r
2667 </li>\r
2668 <li>\r
2669 <p>\r
2670 Support has been added for rewriting absolute paths to relative paths when\r
2671   hashing, in order to increase cache hit rate when building the same source\r
2672   code in different directories even when compiling with <code>-g</code> and when using\r
2673   absolute include directory paths. This is done by setting the\r
2674   <code>CCACHE_BASEDIR</code> environment variable to an absolute path that specifies\r
2675   which paths to rewrite.\r
2676 </p>\r
2677 </li>\r
2678 <li>\r
2679 <p>\r
2680 Object files are now optionally stored compressed in the cache. The runtime\r
2681   cost is negligible, and more files will fit in the ccache directory and in\r
2682   the disk cache. Set <code>CCACHE_COMPRESS</code> to enable object file compression. Note\r
2683   that you can&#8217;t use compression in combination with the hard link feature.\r
2684 </p>\r
2685 </li>\r
2686 <li>\r
2687 <p>\r
2688 A <code>CCACHE_COMPILERCHECK</code> option has been added. This option tells ccache what\r
2689   compiler-identifying information to hash to ensure that results retrieved\r
2690   from the cache are accurate. Possible values are: none (don&#8217;t hash anything),\r
2691   mtime (hash the compiler&#8217;s mtime and size) and content (hash the content of\r
2692   the compiler binary). The default is mtime.\r
2693 </p>\r
2694 </li>\r
2695 <li>\r
2696 <p>\r
2697 It is now possible to specify extra files whose contents should be included\r
2698   in the hash sum by setting the <code>CCACHE_EXTRAFILES</code> option.\r
2699 </p>\r
2700 </li>\r
2701 <li>\r
2702 <p>\r
2703 Added support for Objective-C and Objective-C++. The statistics counter\r
2704   &#8220;not a C/C++ file&#8221; has been renamed to &#8220;unsupported source language&#8221;.\r
2705 </p>\r
2706 </li>\r
2707 <li>\r
2708 <p>\r
2709 Added support for the <code>-x</code> compiler option.\r
2710 </p>\r
2711 </li>\r
2712 <li>\r
2713 <p>\r
2714 Added support for long command-line options.\r
2715 </p>\r
2716 </li>\r
2717 <li>\r
2718 <p>\r
2719 A <code>CACHEDIR.TAG</code> file is now created in the cache directory. See\r
2720   <a href="http://www.brynosaurus.com/cachedir/">http://www.brynosaurus.com/cachedir/</a>.\r
2721 </p>\r
2722 </li>\r
2723 <li>\r
2724 <p>\r
2725 Messages printed to the debug log (specified by <code>CCACHE_LOGFILE</code>) have been\r
2726   improved.\r
2727 </p>\r
2728 </li>\r
2729 <li>\r
2730 <p>\r
2731 You can relax some checks that ccache does in direct mode by setting\r
2732   <code>CCACHE_SLOPPINESS</code>. See the manual for more information.\r
2733 </p>\r
2734 </li>\r
2735 <li>\r
2736 <p>\r
2737 <code>CCACHE_TEMPDIR</code> no longer needs to be on the same filesystem as\r
2738   <code>CCACHE_DIR</code>.\r
2739 </p>\r
2740 </li>\r
2741 <li>\r
2742 <p>\r
2743 The default value of <code>CCACHE_TEMPDIR</code> has been changed to <code>$CCACHE_DIR/tmp</code>\r
2744   to avoid cluttering the top directory.\r
2745 </p>\r
2746 </li>\r
2747 <li>\r
2748 <p>\r
2749 Temporary files that later will be moved into the cache are now created in\r
2750   the cache directory they will end up in. This makes ccache more friendly to\r
2751   Linux&#8217;s directory layout.\r
2752 </p>\r
2753 </li>\r
2754 <li>\r
2755 <p>\r
2756 Improved the test suite and added tests for most of the new functionality.\r
2757   It&#8217;s now also possible to specify a subset of tests to run.\r
2758 </p>\r
2759 </li>\r
2760 <li>\r
2761 <p>\r
2762 Standard error output from the compiler is now only stored in the cache if\r
2763   it&#8217;s non-empty.\r
2764 </p>\r
2765 </li>\r
2766 <li>\r
2767 <p>\r
2768 If the compiler produces no object file or an empty object file, but gives a\r
2769   zero exit status (could be due to a file system problem, a buggy program\r
2770   specified by <code>CCACHE_PREFIX</code>, etc.), ccache copes with it properly.\r
2771 </p>\r
2772 </li>\r
2773 <li>\r
2774 <p>\r
2775 Added <code>installcheck</code> and <code>distcheck</code> make targets.\r
2776 </p>\r
2777 </li>\r
2778 <li>\r
2779 <p>\r
2780 Clarified cache size limit options' and cleanup semantics.\r
2781 </p>\r
2782 </li>\r
2783 <li>\r
2784 <p>\r
2785 Improved display of cache max size values.\r
2786 </p>\r
2787 </li>\r
2788 <li>\r
2789 <p>\r
2790 The following options are no longer hashed in the preprocessor mode:\r
2791   <code>-imacros</code>, <code>-imultilib</code>, <code>-iprefix</code>, <code>-iquote</code>, <code>-isysroot</code>, <code>-iwithprefix</code>,\r
2792   <code>-iwithprefixbefore</code>, <code>-nostdinc</code>, <code>-nostdinc++</code> and <code>-U</code>.\r
2793 </p>\r
2794 </li>\r
2795 </ul></div>\r
2796 </div>\r
2797 <div class="sect2">\r
2798 <h3 id="_bug_fixes_33">Bug fixes</h3>\r
2799 <div class="ulist"><ul>\r
2800 <li>\r
2801 <p>\r
2802 Various portability improvements.\r
2803 </p>\r
2804 </li>\r
2805 <li>\r
2806 <p>\r
2807 Improved detection of home directory.\r
2808 </p>\r
2809 </li>\r
2810 <li>\r
2811 <p>\r
2812 User-defined <code>CPPFLAGS</code> and <code>LDFLAGS</code> are now respected in the Makefile.\r
2813 </p>\r
2814 </li>\r
2815 <li>\r
2816 <p>\r
2817 Fixed NFS issues.\r
2818 </p>\r
2819 </li>\r
2820 <li>\r
2821 <p>\r
2822 Computation of the hash sum has been improved to decrease the risk of hash\r
2823   collisions. For instance, the compiler options <code>-X -Y</code> and <code>-X-Y</code> previously\r
2824   contributed equally to the hash sum.\r
2825 </p>\r
2826 </li>\r
2827 <li>\r
2828 <p>\r
2829 Bail out on too hard compiler options <code>--coverage</code>, <code>-fprofile-arcs</code>,\r
2830   <code>-fprofile-generate</code>, <code>-fprofile-use</code>, <code>-frepo</code>, <code>-ftest-coverage</code> and\r
2831   <code>-save-temps</code>. Also bail out on <code>@file</code> style options.\r
2832 </p>\r
2833 </li>\r
2834 <li>\r
2835 <p>\r
2836 Errors when using multiple <code>-arch</code> compiler options are now noted as\r
2837   &#8220;unsupported compiler option&#8221;.\r
2838 </p>\r
2839 </li>\r
2840 <li>\r
2841 <p>\r
2842 <code>-MD</code>/<code>-MMD</code> options without <code>-MT</code>/<code>-MF</code> are now handled correctly.\r
2843 </p>\r
2844 </li>\r
2845 <li>\r
2846 <p>\r
2847 The <code>-finput-charset</code> option is now handled correctly.\r
2848 </p>\r
2849 </li>\r
2850 <li>\r
2851 <p>\r
2852 Added support for <code>-Wp,-MD</code> and <code>-Wp,-MMD</code> options.\r
2853 </p>\r
2854 </li>\r
2855 <li>\r
2856 <p>\r
2857 The compiler options <code>-Xassembler</code>, <code>-b</code>, <code>-G</code> and <code>-V</code> are now correctly\r
2858   recognized as taking an argument.\r
2859 </p>\r
2860 </li>\r
2861 <li>\r
2862 <p>\r
2863 Debug information containing line numbers of predefined and command-line\r
2864   macros (enabled with the compiler option <code>-g3</code>) will now be correct.\r
2865 </p>\r
2866 </li>\r
2867 <li>\r
2868 <p>\r
2869 Corrected LRU cleanup handling of object files.\r
2870 </p>\r
2871 </li>\r
2872 <li>\r
2873 <p>\r
2874 <code>utimes()</code> is now used instead of <code>utime()</code> when available.\r
2875 </p>\r
2876 </li>\r
2877 <li>\r
2878 <p>\r
2879 Non-writable cache directories are now handled gracefully.\r
2880 </p>\r
2881 </li>\r
2882 <li>\r
2883 <p>\r
2884 Corrected documentation about sharing the cache directory.\r
2885 </p>\r
2886 </li>\r
2887 <li>\r
2888 <p>\r
2889 Fixed compilation warnings from GCC 4.3.\r
2890 </p>\r
2891 </li>\r
2892 <li>\r
2893 <p>\r
2894 The command specified by <code>CCACHE_PREFIX</code> is no longer part of the hash.\r
2895 </p>\r
2896 </li>\r
2897 <li>\r
2898 <p>\r
2899 Fixed bad memory access spotted by Valgrind.\r
2900 </p>\r
2901 </li>\r
2902 <li>\r
2903 <p>\r
2904 Fixed a bug in <code>x_realloc</code>.\r
2905 </p>\r
2906 </li>\r
2907 <li>\r
2908 <p>\r
2909 Freed memory is no longer referenced when compiling a <code>.i</code>/<code>.ii</code> file and\r
2910   falling back to running the real compiler.\r
2911 </p>\r
2912 </li>\r
2913 <li>\r
2914 <p>\r
2915 The test suite is now immune to external values of the <code>CCACHE_*</code> environment\r
2916   variables.\r
2917 </p>\r
2918 </li>\r
2919 <li>\r
2920 <p>\r
2921 Improved detection of recursive invocation.\r
2922 </p>\r
2923 </li>\r
2924 <li>\r
2925 <p>\r
2926 The ccache binary is now not unconditionally stripped when installing.\r
2927 </p>\r
2928 </li>\r
2929 <li>\r
2930 <p>\r
2931 Statistics counters are now correctly updated for -E option failures and\r
2932   internal errors.\r
2933 </p>\r
2934 </li>\r
2935 </ul></div>\r
2936 </div>\r
2937 </div>\r
2938 </div>\r
2939 </div>\r
2940 <div id="footnotes"><hr /></div>\r
2941 <div id="footer">\r
2942 <div id="footer-text">\r
2943 Version 3.4<br />\r
2944 Last updated\r
2945  2018-02-11 15:20:55 CET\r
2946 </div>\r
2947 </div>\r
2948 </body>\r
2949 </html>\r