Hello community, here is the log from the commit of package ccache for openSUSE:Factory checked in at 2016-08-26 23:18:17 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ccache (Old) and /work/SRC/openSUSE:Factory/.ccache.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ccache" Changes: -------- --- /work/SRC/openSUSE:Factory/ccache/ccache.changes 2016-07-12 23:52:26.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.ccache.new/ccache.changes 2016-08-26 23:18:19.000000000 +0200 @@ -1,0 +2,21 @@ +Fri Aug 26 13:27:20 UTC 2016 - tchva...@suse.com + +- Version update to 3.2.7: + - Fixed build problem on QNX, which lacks ``SA_RESTART''. + - Bail out on compiler option `-fstack-usage` since it creates a `.su` file + which ccache currently doesn't handle. + - Fixed a bug where (due to ccache rewriting paths) the compiler could choose + incorrect include files if `CCACHE_BASEDIR` is used and the source file path + is absolute and is a symlink. + - Fixed a bug which could lead to false cache hits for compiler command lines + with a missing argument to an option that takes an argument. + - ccache now knows how to work around a glitch in the output of GCC 6's + preprocessor. + +------------------------------------------------------------------- +Fri Aug 26 13:21:18 UTC 2016 - tchva...@suse.com + +- Create basic symlinks for clang and regular cc calls for ccache + * this makes it easier to use ccache with osc build + +------------------------------------------------------------------- Old: ---- ccache-3.2.5.tar.xz ccache-3.2.5.tar.xz.asc New: ---- ccache-3.2.7.tar.xz ccache-3.2.7.tar.xz.asc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ccache.spec ++++++ --- /var/tmp/diff_new_pack.hMYD6z/_old 2016-08-26 23:18:20.000000000 +0200 +++ /var/tmp/diff_new_pack.hMYD6z/_new 2016-08-26 23:18:20.000000000 +0200 @@ -17,7 +17,7 @@ Name: ccache -Version: 3.2.5 +Version: 3.2.7 Release: 0 Summary: A Fast C/C++ Compiler Cache License: GPL-3.0+ @@ -51,6 +51,12 @@ cd %{buildroot}/%{_libdir}/%{name} ln -sf ../../bin/%{name} gcc ln -sf ../../bin/%{name} g++ +# do the same for clang +ln -sf ../../bin/%{name} clang +ln -sf ../../bin/%{name} clang++ +# and regular cc +ln -sf ../../bin/%{name} cc +ln -sf ../../bin/%{name} c++ %files %defattr(-,root,root,-) ++++++ ccache-3.2.5.tar.xz -> ccache-3.2.7.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.5/AUTHORS.html new/ccache-3.2.7/AUTHORS.html --- old/ccache-3.2.5/AUTHORS.html 2016-04-17 16:44:45.000000000 +0200 +++ new/ccache-3.2.7/AUTHORS.html 2016-07-20 18:01:54.000000000 +0200 @@ -734,7 +734,7 @@ <body class="article"> <div id="header"> <h1>ccache authors</h1> -<span id="revnumber">version 3.2.5</span> +<span id="revnumber">version 3.2.6</span> <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> @@ -1020,9 +1020,9 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Version 3.2.5<br /> +Version 3.2.6<br /> Last updated - 2016-04-17 16:40:11 CEST + 2016-07-12 21:36:01 CEST </div> </div> </body> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.5/HACKING.txt new/ccache-3.2.7/HACKING.txt --- old/ccache-3.2.5/HACKING.txt 2016-04-17 16:44:45.000000000 +0200 +++ new/ccache-3.2.7/HACKING.txt 2016-07-20 18:01:54.000000000 +0200 @@ -10,6 +10,8 @@ at the end of the same line. * Put no space between function name and the following parenthesis. * Put one space between if/switch/for/while/do and opening curly brace. +* Always use curly braces around if/for/while/do bodies, even if they only + contain one statement. * If possible, keep lines at most 80 character wide for a 2 character tab width. * Use only lowercase names for functions and variables. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.5/INSTALL.html new/ccache-3.2.7/INSTALL.html --- old/ccache-3.2.5/INSTALL.html 2016-04-17 16:44:45.000000000 +0200 +++ new/ccache-3.2.7/INSTALL.html 2016-07-20 18:01:54.000000000 +0200 @@ -734,7 +734,7 @@ <body class="article"> <div id="header"> <h1>ccache installation</h1> -<span id="revnumber">version 3.2.4+101_g4218b81</span> +<span id="revnumber">version 3.2.7</span> <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> @@ -848,9 +848,9 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Version 3.2.4+101_g4218b81<br /> +Version 3.2.7<br /> Last updated - 2016-02-06 17:21:49 CET + 2016-07-20 18:01:48 CEST </div> </div> </body> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.5/LICENSE.html new/ccache-3.2.7/LICENSE.html --- old/ccache-3.2.5/LICENSE.html 2016-04-17 16:44:45.000000000 +0200 +++ new/ccache-3.2.7/LICENSE.html 2016-07-20 18:01:54.000000000 +0200 @@ -734,7 +734,7 @@ <body class="article"> <div id="header"> <h1>ccache copyright and license</h1> -<span id="revnumber">version 3.2.5</span> +<span id="revnumber">version 3.2.7</span> <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> @@ -1205,9 +1205,9 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Version 3.2.5<br /> +Version 3.2.7<br /> Last updated - 2016-04-17 16:43:39 CEST + 2016-07-20 18:01:48 CEST </div> </div> </body> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.5/MANUAL.html new/ccache-3.2.7/MANUAL.html --- old/ccache-3.2.5/MANUAL.html 2016-04-17 16:44:45.000000000 +0200 +++ new/ccache-3.2.7/MANUAL.html 2016-07-20 18:01:54.000000000 +0200 @@ -734,7 +734,7 @@ <body class="article"> <div id="header"> <h1>CCACHE(1)</h1> -<span id="revnumber">version 3.2.5</span> +<span id="revnumber">version 3.2.7</span> <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> @@ -1292,7 +1292,7 @@ <p> If true, ccache will include the current working directory in the hash that is used to distinguish two compilations. This prevents a problem with the - storage of the current working directory in the debug info of a object + storage of the current working directory in the debug info of an object file, which can lead ccache to give a cached object file that has the working directory in the debug info set incorrectly. This option is off by default as the incorrect setting of this debug info rarely causes problems. @@ -2167,9 +2167,9 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Version 3.2.5<br /> +Version 3.2.7<br /> Last updated - 2016-04-17 16:43:39 CEST + 2016-07-20 18:01:48 CEST </div> </div> </body> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.5/MANUAL.txt new/ccache-3.2.7/MANUAL.txt --- old/ccache-3.2.5/MANUAL.txt 2016-04-17 16:44:45.000000000 +0200 +++ new/ccache-3.2.7/MANUAL.txt 2016-07-20 18:01:54.000000000 +0200 @@ -367,7 +367,7 @@ If true, ccache will include the current working directory in the hash that is used to distinguish two compilations. This prevents a problem with the - storage of the current working directory in the debug info of a object + storage of the current working directory in the debug info of an object file, which can lead ccache to give a cached object file that has the working directory in the debug info set incorrectly. This option is off by default as the incorrect setting of this debug info rarely causes problems. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.5/NEWS.html new/ccache-3.2.7/NEWS.html --- old/ccache-3.2.5/NEWS.html 2016-04-17 16:44:45.000000000 +0200 +++ new/ccache-3.2.7/NEWS.html 2016-07-20 18:01:54.000000000 +0200 @@ -734,7 +734,7 @@ <body class="article"> <div id="header"> <h1>ccache news</h1> -<span id="revnumber">version 3.2.5</span> +<span id="revnumber">version 3.2.7</span> <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> @@ -742,6 +742,58 @@ </div> <div id="content"> <div class="sect1"> +<h2 id="_ccache_3_2_7">ccache 3.2.7</h2> +<div class="sectionbody"> +<div class="paragraph"><p>Release date: 2016-07-20</p></div> +<div class="sect2"> +<h3 id="_bug_fixes">Bug fixes</h3> +<div class="ulist"><ul> +<li> +<p> +Fixed a bug which could lead to false cache hits for compiler command lines + with a missing argument to an option that takes an argument. +</p> +</li> +<li> +<p> +ccache now knows how to work around a glitch in the output of GCC 6’s + preprocessor. +</p> +</li> +</ul></div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="_ccache_3_2_6">ccache 3.2.6</h2> +<div class="sectionbody"> +<div class="paragraph"><p>Release date: 2016-07-12</p></div> +<div class="sect2"> +<h3 id="_bug_fixes_2">Bug fixes</h3> +<div class="ulist"><ul> +<li> +<p> +Fixed build problem on QNX, which lacks “SA_RESTART”. +</p> +</li> +<li> +<p> +Bail out on compiler option <code>-fstack-usage</code> since it creates a <code>.su</code> file + which ccache currently doesn’t handle. +</p> +</li> +<li> +<p> +Fixed a bug where (due to ccache rewriting paths) the compiler could choose + incorrect include files if <code>CCACHE_BASEDIR</code> is used and the source file path + is absolute and is a symlink. +</p> +</li> +</ul></div> +</div> +</div> +</div> +<div class="sect1"> <h2 id="_ccache_3_2_5">ccache 3.2.5</h2> <div class="sectionbody"> <div class="paragraph"><p>Release date: 2016-04-17</p></div> @@ -767,7 +819,7 @@ </ul></div> </div> <div class="sect2"> -<h3 id="_bug_fixes">Bug fixes</h3> +<h3 id="_bug_fixes_3">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -827,7 +879,7 @@ <div class="sectionbody"> <div class="paragraph"><p>Release date: 2015-10-08</p></div> <div class="sect2"> -<h3 id="_bug_fixes_2">Bug fixes</h3> +<h3 id="_bug_fixes_4">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -882,7 +934,7 @@ </ul></div> </div> <div class="sect2"> -<h3 id="_bug_fixes_3">Bug fixes</h3> +<h3 id="_bug_fixes_5">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -936,7 +988,7 @@ </ul></div> </div> <div class="sect2"> -<h3 id="_bug_fixes_4">Bug fixes</h3> +<h3 id="_bug_fixes_6">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -1007,7 +1059,7 @@ <div class="sectionbody"> <div class="paragraph"><p>Release date: 2014-12-10</p></div> <div class="sect2"> -<h3 id="_bug_fixes_5">Bug fixes</h3> +<h3 id="_bug_fixes_7">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -1239,7 +1291,7 @@ </ul></div> </div> <div class="sect2"> -<h3 id="_bug_fixes_6">Bug fixes</h3> +<h3 id="_bug_fixes_8">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -1266,11 +1318,29 @@ </div> </div> <div class="sect1"> +<h2 id="_ccache_3_1_12">ccache 3.1.12</h2> +<div class="sectionbody"> +<div class="paragraph"><p>Release date: 2016-07-12</p></div> +<div class="sect2"> +<h3 id="_bug_fixes_9">Bug fixes</h3> +<div class="ulist"><ul> +<li> +<p> +Fixed a bug where (due to ccache rewriting paths) the compiler could choose + incorrect include files if <code>CCACHE_BASEDIR</code> is used and the source file path + is absolute and is a symlink. +</p> +</li> +</ul></div> +</div> +</div> +</div> +<div class="sect1"> <h2 id="_ccache_3_1_11">ccache 3.1.11</h2> <div class="sectionbody"> <div class="paragraph"><p>Release date: 2015-03-07</p></div> <div class="sect2"> -<h3 id="_bug_fixes_7">Bug fixes</h3> +<h3 id="_bug_fixes_10">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -1353,7 +1423,7 @@ </ul></div> </div> <div class="sect2"> -<h3 id="_bug_fixes_8">Bug fixes</h3> +<h3 id="_bug_fixes_11">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -1393,7 +1463,7 @@ <div class="sectionbody"> <div class="paragraph"><p>Release date: 2013-01-06</p></div> <div class="sect2"> -<h3 id="_bug_fixes_9">Bug fixes</h3> +<h3 id="_bug_fixes_12">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -1464,7 +1534,7 @@ </ul></div> </div> <div class="sect2"> -<h3 id="_bug_fixes_10">Bug fixes</h3> +<h3 id="_bug_fixes_13">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -1512,7 +1582,7 @@ <div class="sectionbody"> <div class="paragraph"><p>Release date: 2012-01-08</p></div> <div class="sect2"> -<h3 id="_bug_fixes_11">Bug fixes</h3> +<h3 id="_bug_fixes_14">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -1595,7 +1665,7 @@ </ul></div> </div> <div class="sect2"> -<h3 id="_bug_fixes_12">Bug fixes</h3> +<h3 id="_bug_fixes_15">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -1648,7 +1718,7 @@ </ul></div> </div> <div class="sect2"> -<h3 id="_bug_fixes_13">Bug fixes</h3> +<h3 id="_bug_fixes_16">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -1681,7 +1751,7 @@ <div class="sectionbody"> <div class="paragraph"><p>Release date: 2011-01-09</p></div> <div class="sect2"> -<h3 id="_bug_fixes_14">Bug fixes</h3> +<h3 id="_bug_fixes_17">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -1714,7 +1784,7 @@ <div class="sectionbody"> <div class="paragraph"><p>Release date: 2010-11-28</p></div> <div class="sect2"> -<h3 id="_bug_fixes_15">Bug fixes</h3> +<h3 id="_bug_fixes_18">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -1741,7 +1811,7 @@ <div class="sectionbody"> <div class="paragraph"><p>Release date: 2010-11-21</p></div> <div class="sect2"> -<h3 id="_bug_fixes_16">Bug fixes</h3> +<h3 id="_bug_fixes_19">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -1789,7 +1859,7 @@ <div class="sectionbody"> <div class="paragraph"><p>Release date: 2010-11-07</p></div> <div class="sect2"> -<h3 id="_bug_fixes_17">Bug fixes</h3> +<h3 id="_bug_fixes_20">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -1911,7 +1981,7 @@ </ul></div> </div> <div class="sect2"> -<h3 id="_bug_fixes_18">Bug fixes</h3> +<h3 id="_bug_fixes_21">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -1997,7 +2067,7 @@ <div class="sectionbody"> <div class="paragraph"><p>Release date: 2010-07-15</p></div> <div class="sect2"> -<h3 id="_bug_fixes_19">Bug fixes</h3> +<h3 id="_bug_fixes_22">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -2186,7 +2256,7 @@ </ul></div> </div> <div class="sect2"> -<h3 id="_bug_fixes_20">Bug fixes</h3> +<h3 id="_bug_fixes_23">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -2331,9 +2401,9 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Version 3.2.5<br /> +Version 3.2.7<br /> Last updated - 2016-04-17 16:43:59 CEST + 2016-07-20 18:01:48 CEST </div> </div> </body> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.5/NEWS.txt new/ccache-3.2.7/NEWS.txt --- old/ccache-3.2.5/NEWS.txt 2016-04-17 16:44:45.000000000 +0200 +++ new/ccache-3.2.7/NEWS.txt 2016-07-20 18:01:54.000000000 +0200 @@ -2,6 +2,37 @@ =========== +ccache 3.2.7 +------------ +Release date: 2016-07-20 + +Bug fixes +~~~~~~~~~ + +- Fixed a bug which could lead to false cache hits for compiler command lines + with a missing argument to an option that takes an argument. + +- ccache now knows how to work around a glitch in the output of GCC 6's + preprocessor. + + +ccache 3.2.6 +------------ +Release date: 2016-07-12 + +Bug fixes +~~~~~~~~~ + +- Fixed build problem on QNX, which lacks ``SA_RESTART''. + +- Bail out on compiler option `-fstack-usage` since it creates a `.su` file + which ccache currently doesn't handle. + +- Fixed a bug where (due to ccache rewriting paths) the compiler could choose + incorrect include files if `CCACHE_BASEDIR` is used and the source file path + is absolute and is a symlink. + + ccache 3.2.5 ------------ Release date: 2016-04-17 @@ -275,6 +306,19 @@ - Fixed test suite failures when `CC` is a ccache-wrapped compiler. +ccache 3.1.12 +------------- +Release date: 2016-07-12 + + +Bug fixes +~~~~~~~~~ + +- Fixed a bug where (due to ccache rewriting paths) the compiler could choose + incorrect include files if `CCACHE_BASEDIR` is used and the source file path + is absolute and is a symlink. + + ccache 3.1.11 ------------- Release date: 2015-03-07 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.5/README.html new/ccache-3.2.7/README.html --- old/ccache-3.2.5/README.html 2016-04-17 16:44:45.000000000 +0200 +++ new/ccache-3.2.7/README.html 2016-07-20 18:01:54.000000000 +0200 @@ -734,7 +734,7 @@ <body class="article"> <div id="header"> <h1>ccache README</h1> -<span id="revnumber">version 3.2.5</span> +<span id="revnumber">version 3.2.7</span> <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> @@ -802,12 +802,12 @@ repository, use git:</p></div> <div class="literalblock"> <div class="content"> -<pre><code>git clone git://git.samba.org/ccache.git</code></pre> +<pre><code>git clone https://github.com/ccache/ccache.git</code></pre> </div></div> <div class="paragraph"><p>You can also browse the repository:</p></div> <div class="literalblock"> <div class="content"> -<pre><code>http://gitweb.samba.org/?p=ccache.git</code></pre> +<pre><code>https://github.com/ccache/ccache</code></pre> </div></div> </div> </div> @@ -830,9 +830,9 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Version 3.2.5<br /> +Version 3.2.7<br /> Last updated - 2016-04-17 16:43:39 CEST + 2016-07-20 18:01:48 CEST </div> </div> </body> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.5/README.txt new/ccache-3.2.7/README.txt --- old/ccache-3.2.5/README.txt 2016-04-17 16:44:45.000000000 +0200 +++ new/ccache-3.2.7/README.txt 2016-07-20 18:01:54.000000000 +0200 @@ -58,11 +58,11 @@ To get the very latest version of ccache directly from the source code repository, use git: - git clone git://git.samba.org/ccache.git + git clone https://github.com/ccache/ccache.git You can also browse the repository: - http://gitweb.samba.org/?p=ccache.git + https://github.com/ccache/ccache History diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.5/ccache.1 new/ccache-3.2.7/ccache.1 --- old/ccache-3.2.5/ccache.1 2016-04-17 16:44:45.000000000 +0200 +++ new/ccache-3.2.7/ccache.1 2016-07-20 18:01:54.000000000 +0200 @@ -2,12 +2,12 @@ .\" Title: ccache .\" Author: [see the "Author" section] .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/> -.\" Date: 04/17/2016 +.\" Date: 07/20/2016 .\" Manual: ccache Manual -.\" Source: ccache 3.2.5 +.\" Source: ccache 3.2.7 .\" Language: English .\" -.TH "CCACHE" "1" "04/17/2016" "ccache 3\&.2\&.5" "ccache Manual" +.TH "CCACHE" "1" "07/20/2016" "ccache 3\&.2\&.7" "ccache Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -489,7 +489,7 @@ .PP \fBhash_dir\fR (\fBCCACHE_HASHDIR\fR or \fBCCACHE_NOHASHDIR\fR, see Boolean values above) .RS 4 -If true, ccache will include the current working directory in the hash that is used to distinguish two compilations\&. This prevents a problem with the storage of the current working directory in the debug info of a object file, which can lead ccache to give a cached object file that has the working directory in the debug info set incorrectly\&. This option is off by default as the incorrect setting of this debug info rarely causes problems\&. If you strike problems with GDB not using the correct directory then enable this option\&. +If true, ccache will include the current working directory in the hash that is used to distinguish two compilations\&. This prevents a problem with the storage of the current working directory in the debug info of an object file, which can lead ccache to give a cached object file that has the working directory in the debug info set incorrectly\&. This option is off by default as the incorrect setting of this debug info rarely causes problems\&. If you strike problems with GDB not using the correct directory then enable this option\&. .RE .PP \fBlog_file\fR (\fBCCACHE_LOGFILE\fR) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.5/ccache.c new/ccache-3.2.7/ccache.c --- old/ccache-3.2.5/ccache.c 2016-04-17 16:44:45.000000000 +0200 +++ new/ccache-3.2.7/ccache.c 2016-07-20 18:01:54.000000000 +0200 @@ -402,7 +402,9 @@ memset(&act, 0, sizeof(act)); act.sa_handler = signal_handler; act.sa_mask = fatal_signal_set; +#ifdef SA_RESTART act.sa_flags = SA_RESTART; +#endif sigaction(signum, &act, NULL); } @@ -748,6 +750,30 @@ && (q == data || q[-1] == '\n')) { char *path; + /* Workarounds for preprocessor linemarker bugs in GCC version 6 */ + if (q[2] == '3') { + if (str_startswith(q, "# 31 \"<command-line>\"\n")) { + /* Bogus extra line with #31, after the regular #1: + Ignore the whole line, and continue parsing */ + hash_buffer(hash, p, q - p); + while (q < end && *q != '\n') { + q++; + } + q++; + p = q; + continue; + } else if (str_startswith(q, "# 32 \"<command-line>\" 2\n")) { + /* Bogus wrong line with #32, instead of regular #1: + Replace the line number with the usual one */ + hash_buffer(hash, p, q - p); + q += 1; + q[0] = '#'; + q[1] = ' '; + q[2] = '1'; + p = q; + } + } + while (q < end && *q != '"' && *q != '\n') { q++; } @@ -1098,7 +1124,7 @@ cc_log("Stored in cache: %s", cached_stderr); if (!conf->compression /* If the file was compressed, obtain the size again: */ - || (conf->compression && x_stat(cached_stderr, &st) == 0)) { + || x_stat(cached_stderr, &st) == 0) { stats_update_size(file_size(&st), 1); } } else { @@ -1599,6 +1625,11 @@ /* All other arguments are included in the hash. */ hash_delimiter(hash, "arg"); hash_string(hash, args->argv[i]); + if (i + 1 < args->argc && compopt_takes_arg(args->argv[i])) { + i++; + hash_delimiter(hash, "arg"); + hash_string(hash, args->argv[i]); + } } /* @@ -1841,7 +1872,7 @@ x_exit(0); } -/* find the real compiler. We just search the PATH to find a executable of the +/* find the real compiler. We just search the PATH to find an executable of the * same name that isn't a link to ourselves */ static void find_compiler(char **argv) @@ -2490,8 +2521,17 @@ continue; } - /* Rewrite to relative to increase hit rate. */ - input_file = make_relative_path(x_strdup(argv[i])); + lstat(argv[i], &st); + if (S_ISLNK(st.st_mode)) { + /* Don't rewrite source file path if it's a symlink since + make_relative_path resolves symlinks using realpath(3) and this leads + to potentially choosing incorrect relative header files. See the + "symlink to source file" test. */ + input_file = x_strdup(argv[i]); + } else { + /* Rewrite to relative to increase hit rate. */ + input_file = make_relative_path(x_strdup(argv[i])); + } } /* for */ if (found_S_opt) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.5/compopt.c new/ccache-3.2.7/compopt.c --- old/ccache-3.2.5/compopt.c 2016-04-17 16:44:45.000000000 +0200 +++ new/ccache-3.2.7/compopt.c 2016-07-20 18:01:54.000000000 +0200 @@ -36,6 +36,7 @@ {"--save-temps", TOO_HARD}, {"--serialize-diagnostics", TAKES_ARG | TAKES_PATH}, {"-A", TAKES_ARG}, + {"-B", TAKES_ARG | TAKES_CONCAT_ARG}, {"-D", AFFECTS_CPP | TAKES_ARG | TAKES_CONCAT_ARG}, {"-E", TOO_HARD}, {"-F", AFFECTS_CPP | TAKES_ARG | TAKES_CONCAT_ARG | TAKES_PATH}, @@ -60,6 +61,7 @@ {"-fno-working-directory", AFFECTS_CPP}, {"-fplugin=libcc1plugin", TOO_HARD}, /* interaction with GDB */ {"-frepo", TOO_HARD}, + {"-fstack-usage", TOO_HARD}, {"-fworking-directory", AFFECTS_CPP}, {"-idirafter", AFFECTS_CPP | TAKES_ARG | TAKES_PATH}, {"-iframework", AFFECTS_CPP | TAKES_ARG | TAKES_CONCAT_ARG | TAKES_PATH}, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.5/hashtable.c new/ccache-3.2.7/hashtable.c --- old/ccache-3.2.5/hashtable.c 2016-04-17 16:44:45.000000000 +0200 +++ new/ccache-3.2.7/hashtable.c 2016-07-20 18:01:54.000000000 +0200 @@ -102,7 +102,6 @@ /* Double the size of the table to accommodate more entries */ struct entry **newtable; struct entry *e; - struct entry **pE; unsigned int newsize, i, index; /* Check we're not hitting max capacity */ if (h->primeindex == (prime_table_length - 1)) return 0; @@ -128,6 +127,7 @@ /* Plan B: realloc instead */ else { + struct entry **pE; newtable = (struct entry **) realloc(h->table, newsize * sizeof(struct entry *)); if (NULL == newtable) { (h->primeindex)--; return 0; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.5/test.sh new/ccache-3.2.7/test.sh --- old/ccache-3.2.5/test.sh 2016-04-17 16:44:45.000000000 +0200 +++ new/ccache-3.2.7/test.sh 2016-07-20 18:01:54.000000000 +0200 @@ -3,7 +3,7 @@ # A simple test suite for ccache. # # Copyright (C) 2002-2007 Andrew Tridgell -# Copyright (C) 2009-2015 Joel Rosdahl +# Copyright (C) 2009-2016 Joel Rosdahl # # This program is free software; you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free Software @@ -1477,6 +1477,27 @@ else test_failed "unexpected output of --dump-manifest" fi + + ################################################################## + testname="argument-less -B and -L" + $CCACHE -Cz > /dev/null + cat <<EOF >test.c +#include <stdio.h> +int main(void) +{ +#ifdef FOO + puts("FOO"); +#endif + return 0; +} +EOF + + $CCACHE $COMPILER -A -L -DFOO -c test.c + checkstat 'cache hit (direct)' 0 + checkstat 'cache miss' 1 + $CCACHE $COMPILER -A -L -DBAR -c test.c + checkstat 'cache hit (direct)' 0 + checkstat 'cache miss' 2 } basedir_suite() { @@ -2411,6 +2432,91 @@ b" } +buggy_cpp_suite() { + testname="buggy_cpp" + $CCACHE -Cz >/dev/null + cat >buggy-cpp <<EOF +#!/bin/sh +CCACHE_DISABLE=1 # If $COMPILER happens to be a ccache symlink... +export CCACHE_DISABLE +if echo "\$*" | grep -- -D >/dev/null; then + $COMPILER "\$@" +else + # mistreat the preprocessor output in the same way as gcc6 does + $COMPILER "\$@" | + sed -e '/^# 1 "<command-line>"$/ a # 31 "<command-line>"' \\ + -e 's/^# 1 "<command-line>" 2$/# 32 "<command-line>" 2/' +fi +exit 0 +EOF + cat <<'EOF' >file.c +int foo; +EOF + chmod +x buggy-cpp + backdate buggy-cpp + $CCACHE ./buggy-cpp -c file.c + checkstat 'cache hit (direct)' 0 + checkstat 'cache hit (preprocessed)' 0 + checkstat 'cache miss' 1 + $CCACHE ./buggy-cpp -DNOT_AFFECTING=1 -c file.c + checkstat 'cache hit (direct)' 0 + checkstat 'cache hit (preprocessed)' 1 + checkstat 'cache miss' 1 +} + +symlinks_suite() { + ################################################################## + testname="symlink to source directory" + + mkdir dir + cd dir + mkdir -p d1/d2 + echo '#define A "OK"' >d1/h.h + cat <<EOF >d1/d2/c.c +#include <stdio.h> +#include "../h.h" +int main() { printf("%s\n", A); } +EOF + echo '#define A "BUG"' >h.h + ln -s d1/d2 d3 + + CCACHE_BASEDIR=/ $CCACHE $COMPILER -c $PWD/d3/c.c + $COMPILER -c $PWD/d3/c.c + $COMPILER c.o -o c + result=$(./c) + if [ "$result" != OK ]; then + test_failed "Incorrect header file used" + fi + + cd .. + rm -rf dir + + ################################################################## + testname="symlink to source file" + + mkdir dir + cd dir + mkdir d + echo '#define A "BUG"' >d/h.h + cat <<EOF >d/c.c +#include <stdio.h> +#include "h.h" +int main() { printf("%s\n", A); } +EOF + echo '#define A "OK"' >h.h + ln -s d/c.c c.c + + CCACHE_BASEDIR=/ $CCACHE $COMPILER -c $PWD/c.c + $COMPILER c.o -o c + result=$(./c) + if [ "$result" != OK ]; then + test_failed "Incorrect header file used" + fi + + cd .. + rm -rf dir +} + ###################################################################### # main program @@ -2521,8 +2627,10 @@ extrafiles cleanup pch +symlinks upgrade prefix +buggy_cpp " case $host_os in diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.5/version.c new/ccache-3.2.7/version.c --- old/ccache-3.2.5/version.c 2016-04-17 16:44:45.000000000 +0200 +++ new/ccache-3.2.7/version.c 2016-07-20 18:01:54.000000000 +0200 @@ -1 +1 @@ -const char CCACHE_VERSION[] = "3.2.5"; +const char CCACHE_VERSION[] = "3.2.7";