Hello community, here is the log from the commit of package ccache for openSUSE:Factory checked in at 2019-11-07 23:13:56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ccache (Old) and /work/SRC/openSUSE:Factory/.ccache.new.2990 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ccache" Thu Nov 7 23:13:56 2019 rev:48 rq:745343 version:3.7.5 Changes: -------- --- /work/SRC/openSUSE:Factory/ccache/ccache.changes 2019-10-28 16:44:00.540520957 +0100 +++ /work/SRC/openSUSE:Factory/.ccache.new.2990/ccache.changes 2019-11-07 23:13:57.512366014 +0100 @@ -1,0 +2,12 @@ +Tue Nov 5 08:14:20 UTC 2019 - Martin Pluskal <[email protected]> + +- Update to version 3.7.5: + * Added support for -MF=arg (with an extra equal sign) as understood by EDG-based compilers. + * Fixed a regression in 3.7.2 that could result in a warning message instead of an error in an edge case related to usage of “-Werror”. + * An implicit -MQ is now passed to the preprocessor only if the object file extension is non-standard. This will make it easier to use EDG-based compilers (e.g. GHS) which don’t understand -MQ. (This is a bug fix of the corresponding improvement implemented in ccache 3.4.) + * ccache now falls back to running the real compiler instead of failing fataly if an internal temporary file is missing after compilation. + * Fixed a crash if localtime returns null pointer in localtime_r replacement. + * Fixed header file dependency tracking when building ccache itself. + * Fixed warning during configure in out-of-tree build in developer mode. + +------------------------------------------------------------------- Old: ---- ccache-3.7.4.tar.xz ccache-3.7.4.tar.xz.asc New: ---- ccache-3.7.5.tar.xz ccache-3.7.5.tar.xz.asc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ccache.spec ++++++ --- /var/tmp/diff_new_pack.GZCQVi/_old 2019-11-07 23:13:57.968366513 +0100 +++ /var/tmp/diff_new_pack.GZCQVi/_new 2019-11-07 23:13:57.976366522 +0100 @@ -17,11 +17,10 @@ Name: ccache -Version: 3.7.4 +Version: 3.7.5 Release: 0 Summary: A Fast C/C++ Compiler Cache License: GPL-3.0-or-later -Group: Development/Languages/C and C++ URL: https://ccache.dev/ Source0: https://github.com/ccache/ccache/releases/download/v%{version}/ccache-%{version}.tar.xz#/%{name}-%{version}.tar.xz Source1: https://github.com/ccache/ccache/releases/download/v%{version}/ccache-%{version}.tar.xz.asc#/%{name}-%{version}.tar.xz.asc ++++++ ccache-3.7.4.tar.xz -> ccache-3.7.5.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.7.4/LICENSE.html new/ccache-3.7.5/LICENSE.html --- old/ccache-3.7.4/LICENSE.html 2019-09-12 21:14:51.000000000 +0200 +++ new/ccache-3.7.5/LICENSE.html 2019-10-22 20:51:15.000000000 +0200 @@ -735,7 +735,7 @@ <body class="article"> <div id="header"> <h1>ccache copyright and license</h1> -<span id="revnumber">version 3.7.4</span> +<span id="revnumber">version 3.7.5</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> @@ -1235,9 +1235,9 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Version 3.7.4<br /> +Version 3.7.5<br /> Last updated - 2019-09-12 21:14:17 CEST + 2019-10-22 20:50:43 CEST </div> </div> </body> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.7.4/Makefile.in new/ccache-3.7.5/Makefile.in --- old/ccache-3.7.4/Makefile.in 2019-09-12 21:14:51.000000000 +0200 +++ new/ccache-3.7.5/Makefile.in 2019-10-22 20:51:15.000000000 +0200 @@ -126,6 +126,8 @@ clean: rm -rf $(files_to_clean) +$(non_3pp_objs) $(test_objs): CFLAGS += @more_warnings@ + src/snprintf.o: CFLAGS += @no_implicit_fallthrough_warning@ $(zlib_objs): CPPFLAGS += -include config.h $(zlib_objs): CFLAGS += @no_implicit_fallthrough_warning@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.7.4/configure new/ccache-3.7.5/configure --- old/ccache-3.7.4/configure 2019-09-12 21:14:51.000000000 +0200 +++ new/ccache-3.7.5/configure 2019-10-22 20:51:15.000000000 +0200 @@ -4067,24 +4067,22 @@ CFLAGS="$CFLAGS -O" fi -more_warnings="-Wextra -Wpedantic" -if test "$ac_compiler_clang" = yes; then - more_warnings="$more_warnings -Weverything" - more_warnings="$more_warnings -Wno-conversion" - more_warnings="$more_warnings -Wno-disabled-macro-expansion" - more_warnings="$more_warnings -Wno-format-nonliteral" - more_warnings="$more_warnings -Wno-padded" - more_warnings="$more_warnings -Wno-shorten-64-to-32" - more_warnings="$more_warnings -Wno-sign-conversion" -fi - # Check whether --enable-more_warnings was given. if test "${enable_more_warnings+set}" = set; then : enableval=$enable_more_warnings; fi if test x${enable_more_warnings} = xyes; then - CFLAGS="$CFLAGS $more_warnings" + more_warnings="-Wextra -Wpedantic" + if test "$ac_compiler_clang" = yes; then + more_warnings="$more_warnings -Weverything" + more_warnings="$more_warnings -Wno-conversion" + more_warnings="$more_warnings -Wno-disabled-macro-expansion" + more_warnings="$more_warnings -Wno-format-nonliteral" + more_warnings="$more_warnings -Wno-padded" + more_warnings="$more_warnings -Wno-shorten-64-to-32" + more_warnings="$more_warnings -Wno-sign-conversion" + fi fi @@ -6343,6 +6341,7 @@ include_dev_mk='include dev.mk' version=`(git --git-dir=$srcdir/.git describe --dirty 2>/dev/null || echo vunknown) | sed -e 's/v//' -e 's/-/+/' -e 's/-/_/g'` + mkdir -p src echo "extern const char CCACHE_VERSION[]; const char CCACHE_VERSION[] = \"$version\";" >src/version.c if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gperf", so it can be a program name with args. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.7.4/configure.ac new/ccache-3.7.5/configure.ac --- old/ccache-3.7.4/configure.ac 2019-09-12 21:14:51.000000000 +0200 +++ new/ccache-3.7.5/configure.ac 2019-10-22 20:51:15.000000000 +0200 @@ -56,22 +56,20 @@ CFLAGS="$CFLAGS -O" fi -more_warnings="-Wextra -Wpedantic" -if test "$ac_compiler_clang" = yes; then - more_warnings="$more_warnings -Weverything" - more_warnings="$more_warnings -Wno-conversion" - more_warnings="$more_warnings -Wno-disabled-macro-expansion" - more_warnings="$more_warnings -Wno-format-nonliteral" - more_warnings="$more_warnings -Wno-padded" - more_warnings="$more_warnings -Wno-shorten-64-to-32" - more_warnings="$more_warnings -Wno-sign-conversion" -fi - AC_ARG_ENABLE(more_warnings, [AS_HELP_STRING([--enable-more-warnings], [enable more compiler warnings])]) if test x${enable_more_warnings} = xyes; then - CFLAGS="$CFLAGS $more_warnings" + more_warnings="-Wextra -Wpedantic" + if test "$ac_compiler_clang" = yes; then + more_warnings="$more_warnings -Weverything" + more_warnings="$more_warnings -Wno-conversion" + more_warnings="$more_warnings -Wno-disabled-macro-expansion" + more_warnings="$more_warnings -Wno-format-nonliteral" + more_warnings="$more_warnings -Wno-padded" + more_warnings="$more_warnings -Wno-shorten-64-to-32" + more_warnings="$more_warnings -Wno-sign-conversion" + fi fi AC_HEADER_DIRENT @@ -213,6 +211,7 @@ AC_CONFIG_FILES([dev.mk]) include_dev_mk='include dev.mk' version=`(git --git-dir=$srcdir/.git describe --dirty 2>/dev/null || echo vunknown) | sed -e 's/v//' -e 's/-/+/' -e 's/-/_/g'` + mkdir -p src echo "extern const char CCACHE_VERSION@<:@@:>@; const char CCACHE_VERSION@<:@@:>@ = \"$version\";" >src/version.c AC_CHECK_TOOL(GPERF, gperf) if test -z "$GPERF"; then diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.7.4/dev.mk.in new/ccache-3.7.5/dev.mk.in --- old/ccache-3.7.4/dev.mk.in 2019-09-12 21:14:51.000000000 +0200 +++ new/ccache-3.7.5/dev.mk.in 2019-10-22 20:51:15.000000000 +0200 @@ -1,7 +1,7 @@ # GNU make syntax reigns in this file. all_cflags += -Werror -all_cppflags += -MD -MP -MF .deps/$(subst .._,,$(subst /,_,$(subst $(srcdir)/,,$<))).d +all_cppflags += -MD -MP -MF .deps/$(subst .._,,$(subst /,_,$(subst $(srcdir)/,,$<))).d -MQ $@ A2X = a2x ASCIIDOC = asciidoc @@ -185,8 +185,6 @@ $(Q)$(ASCIIDOC) -a revnumber=$(version) -d manpage -b docbook -o - $< | \ perl -pe 's!<literal>(.*?)</literal>!<emphasis role="strong">\1</emphasis>!g' >$@ -$(non_3pp_objs) $(test_objs): CFLAGS += @more_warnings@ - doc/ccache.1: doc/MANUAL.xml $(if $(quiet),@echo " A2X $@") $(Q)$(A2X) --doctype manpage --format manpage $< diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.7.4/doc/AUTHORS.adoc new/ccache-3.7.5/doc/AUTHORS.adoc --- old/ccache-3.7.4/doc/AUTHORS.adoc 2019-09-12 21:14:51.000000000 +0200 +++ new/ccache-3.7.5/doc/AUTHORS.adoc 2019-10-22 20:51:15.000000000 +0200 @@ -24,6 +24,7 @@ * David Givone * Doug Anderson * Edward Z. Yang +* Erik Johansson * Francois Marier * Gabriel Scherer * Geert Bosch diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.7.4/doc/AUTHORS.html new/ccache-3.7.5/doc/AUTHORS.html --- old/ccache-3.7.4/doc/AUTHORS.html 2019-09-12 21:14:51.000000000 +0200 +++ new/ccache-3.7.5/doc/AUTHORS.html 2019-10-22 20:51:15.000000000 +0200 @@ -735,7 +735,7 @@ <body class="article"> <div id="header"> <h1>ccache authors</h1> -<span id="revnumber">version 3.7.4</span> +<span id="revnumber">version 3.7.5</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> @@ -840,6 +840,11 @@ </li> <li> <p> +Erik Johansson +</p> +</li> +<li> +<p> Francois Marier </p> </li> @@ -1246,9 +1251,9 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Version 3.7.4<br /> +Version 3.7.5<br /> Last updated - 2019-09-12 21:14:17 CEST + 2019-10-22 20:50:43 CEST </div> </div> </body> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.7.4/doc/MANUAL.html new/ccache-3.7.5/doc/MANUAL.html --- old/ccache-3.7.4/doc/MANUAL.html 2019-09-12 21:14:51.000000000 +0200 +++ new/ccache-3.7.5/doc/MANUAL.html 2019-10-22 20:51:15.000000000 +0200 @@ -735,7 +735,7 @@ <body class="article"> <div id="header"> <h1>CCACHE(1)</h1> -<span id="revnumber">version 3.7.4</span> +<span id="revnumber">version 3.7.5</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> @@ -2746,9 +2746,9 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Version 3.7.4<br /> +Version 3.7.5<br /> Last updated - 2019-09-12 21:14:17 CEST + 2019-10-22 20:50:43 CEST </div> </div> </body> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.7.4/doc/NEWS.adoc new/ccache-3.7.5/doc/NEWS.adoc --- old/ccache-3.7.4/doc/NEWS.adoc 2019-09-12 21:14:51.000000000 +0200 +++ new/ccache-3.7.5/doc/NEWS.adoc 2019-10-22 20:51:15.000000000 +0200 @@ -1,6 +1,38 @@ ccache news =========== +ccache 3.7.5 +------------ +Release date: 2019-10-22 + +New features +~~~~~~~~~~~~ + +- Added support for `-MF=arg` (with an extra equal sign) as understood by + EDG-based compilers. + + +Bug fixes +~~~~~~~~~ + +- Fixed a regression in 3.7.2 that could result in a warning message instead of + an error in an edge case related to usage of “-Werror”. + +- An implicit `-MQ` is now passed to the preprocessor only if the object file + extension is non-standard. This will make it easier to use EDG-based + compilers (e.g. GHS) which don’t understand `-MQ`. (This is a bug fix of the + corresponding improvement implemented in ccache 3.4.) + +- ccache now falls back to running the real compiler instead of failing fataly + if an internal temporary file is missing after compilation. + +- Fixed a crash if localtime returns null pointer in localtime_r replacement. + +- Fixed header file dependency tracking when building ccache itself. + +- Fixed warning during configure in out-of-tree build in developer mode. + + ccache 3.7.4 ------------ Release date: 2019-09-12 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.7.4/doc/NEWS.html new/ccache-3.7.5/doc/NEWS.html --- old/ccache-3.7.4/doc/NEWS.html 2019-09-12 21:14:51.000000000 +0200 +++ new/ccache-3.7.5/doc/NEWS.html 2019-10-22 20:51:15.000000000 +0200 @@ -735,7 +735,7 @@ <body class="article"> <div id="header"> <h1>ccache news</h1> -<span id="revnumber">version 3.7.4</span> +<span id="revnumber">version 3.7.5</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> @@ -743,6 +743,63 @@ </div> <div id="content"> <div class="sect1"> +<h2 id="_ccache_3_7_5">ccache 3.7.5</h2> +<div class="sectionbody"> +<div class="paragraph"><p>Release date: 2019-10-22</p></div> +<div class="sect2"> +<h3 id="_new_features">New features</h3> +<div class="ulist"><ul> +<li> +<p> +Added support for <code>-MF=arg</code> (with an extra equal sign) as understood by + EDG-based compilers. +</p> +</li> +</ul></div> +</div> +<div class="sect2"> +<h3 id="_bug_fixes">Bug fixes</h3> +<div class="ulist"><ul> +<li> +<p> +Fixed a regression in 3.7.2 that could result in a warning message instead of + an error in an edge case related to usage of “-Werror”. +</p> +</li> +<li> +<p> +An implicit <code>-MQ</code> is now passed to the preprocessor only if the object file + extension is non-standard. This will make it easier to use EDG-based + compilers (e.g. GHS) which don’t understand <code>-MQ</code>. (This is a bug fix of the + corresponding improvement implemented in ccache 3.4.) +</p> +</li> +<li> +<p> +ccache now falls back to running the real compiler instead of failing fataly + if an internal temporary file is missing after compilation. +</p> +</li> +<li> +<p> +Fixed a crash if localtime returns null pointer in localtime_r replacement. +</p> +</li> +<li> +<p> +Fixed header file dependency tracking when building ccache itself. +</p> +</li> +<li> +<p> +Fixed warning during configure in out-of-tree build in developer mode. +</p> +</li> +</ul></div> +</div> +</div> +</div> +<div class="sect1"> <h2 id="_ccache_3_7_4">ccache 3.7.4</h2> <div class="sectionbody"> <div class="paragraph"><p>Release date: 2019-09-12</p></div> @@ -771,7 +828,7 @@ <div class="sectionbody"> <div class="paragraph"><p>Release date: 2019-08-17</p></div> <div class="sect2"> -<h3 id="_bug_fixes">Bug fixes</h3> +<h3 id="_bug_fixes_2">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -796,7 +853,7 @@ <div class="sectionbody"> <div class="paragraph"><p>Release date: 2019-07-19</p></div> <div class="sect2"> -<h3 id="_bug_fixes_2">Bug fixes</h3> +<h3 id="_bug_fixes_3">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -1253,7 +1310,7 @@ <div class="sectionbody"> <div class="paragraph"><p>Release date: 2018-09-02</p></div> <div class="sect2"> -<h3 id="_bug_fixes_3">Bug fixes</h3> +<h3 id="_bug_fixes_4">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -1290,7 +1347,7 @@ <div class="sectionbody"> <div class="paragraph"><p>Release date: 2018-03-25</p></div> <div class="sect2"> -<h3 id="_bug_fixes_4">Bug fixes</h3> +<h3 id="_bug_fixes_5">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -1334,7 +1391,7 @@ <div class="sectionbody"> <div class="paragraph"><p>Release date: 2018-02-11</p></div> <div class="sect2"> -<h3 id="_bug_fixes_5">Bug fixes</h3> +<h3 id="_bug_fixes_6">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -1420,7 +1477,7 @@ </ul></div> </div> <div class="sect2"> -<h3 id="_bug_fixes_6">Bug fixes</h3> +<h3 id="_bug_fixes_7">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -1458,7 +1515,7 @@ </ul></div> </div> <div class="sect2"> -<h3 id="_bug_fixes_7">Bug fixes</h3> +<h3 id="_bug_fixes_8">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -1484,7 +1541,7 @@ </ul></div> </div> <div class="sect2"> -<h3 id="_bug_fixes_8">Bug fixes</h3> +<h3 id="_bug_fixes_9">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -1567,7 +1624,7 @@ </ul></div> </div> <div class="sect2"> -<h3 id="_bug_fixes_9">Bug fixes</h3> +<h3 id="_bug_fixes_10">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -1597,7 +1654,7 @@ <div class="sectionbody"> <div class="paragraph"><p>Release date: 2016-10-26</p></div> <div class="sect2"> -<h3 id="_bug_fixes_10">Bug fixes</h3> +<h3 id="_bug_fixes_11">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -1614,7 +1671,7 @@ <div class="sectionbody"> <div class="paragraph"><p>Release date: 2016-09-28</p></div> <div class="sect2"> -<h3 id="_bug_fixes_11">Bug fixes</h3> +<h3 id="_bug_fixes_12">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -1639,7 +1696,7 @@ <div class="sectionbody"> <div class="paragraph"><p>Release date: 2016-09-07</p></div> <div class="sect2"> -<h3 id="_bug_fixes_12">Bug fixes</h3> +<h3 id="_bug_fixes_13">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -1821,7 +1878,7 @@ </ul></div> </div> <div class="sect2"> -<h3 id="_bug_fixes_13">Bug fixes</h3> +<h3 id="_bug_fixes_14">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -1847,7 +1904,7 @@ <div class="sectionbody"> <div class="paragraph"><p>Release date: 2016-09-28</p></div> <div class="sect2"> -<h3 id="_bug_fixes_14">Bug fixes</h3> +<h3 id="_bug_fixes_15">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -1865,7 +1922,7 @@ <div class="sectionbody"> <div class="paragraph"><p>Release date: 2016-09-07</p></div> <div class="sect2"> -<h3 id="_bug_fixes_15">Bug fixes</h3> +<h3 id="_bug_fixes_16">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -1889,7 +1946,7 @@ <div class="sectionbody"> <div class="paragraph"><p>Release date: 2016-07-20</p></div> <div class="sect2"> -<h3 id="_bug_fixes_16">Bug fixes</h3> +<h3 id="_bug_fixes_17">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -1912,7 +1969,7 @@ <div class="sectionbody"> <div class="paragraph"><p>Release date: 2016-07-12</p></div> <div class="sect2"> -<h3 id="_bug_fixes_17">Bug fixes</h3> +<h3 id="_bug_fixes_18">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -1962,7 +2019,7 @@ </ul></div> </div> <div class="sect2"> -<h3 id="_bug_fixes_18">Bug fixes</h3> +<h3 id="_bug_fixes_19">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -2022,7 +2079,7 @@ <div class="sectionbody"> <div class="paragraph"><p>Release date: 2015-10-08</p></div> <div class="sect2"> -<h3 id="_bug_fixes_19">Bug fixes</h3> +<h3 id="_bug_fixes_20">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -2077,7 +2134,7 @@ </ul></div> </div> <div class="sect2"> -<h3 id="_bug_fixes_20">Bug fixes</h3> +<h3 id="_bug_fixes_21">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -2131,7 +2188,7 @@ </ul></div> </div> <div class="sect2"> -<h3 id="_bug_fixes_21">Bug fixes</h3> +<h3 id="_bug_fixes_22">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -2201,7 +2258,7 @@ <div class="sectionbody"> <div class="paragraph"><p>Release date: 2014-12-10</p></div> <div class="sect2"> -<h3 id="_bug_fixes_22">Bug fixes</h3> +<h3 id="_bug_fixes_23">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -2433,7 +2490,7 @@ </ul></div> </div> <div class="sect2"> -<h3 id="_bug_fixes_23">Bug fixes</h3> +<h3 id="_bug_fixes_24">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -2464,7 +2521,7 @@ <div class="sectionbody"> <div class="paragraph"><p>Release date: 2016-07-12</p></div> <div class="sect2"> -<h3 id="_bug_fixes_24">Bug fixes</h3> +<h3 id="_bug_fixes_25">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -2482,7 +2539,7 @@ <div class="sectionbody"> <div class="paragraph"><p>Release date: 2015-03-07</p></div> <div class="sect2"> -<h3 id="_bug_fixes_25">Bug fixes</h3> +<h3 id="_bug_fixes_26">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -2564,7 +2621,7 @@ </ul></div> </div> <div class="sect2"> -<h3 id="_bug_fixes_26">Bug fixes</h3> +<h3 id="_bug_fixes_27">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -2604,7 +2661,7 @@ <div class="sectionbody"> <div class="paragraph"><p>Release date: 2013-01-06</p></div> <div class="sect2"> -<h3 id="_bug_fixes_27">Bug fixes</h3> +<h3 id="_bug_fixes_28">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -2675,7 +2732,7 @@ </ul></div> </div> <div class="sect2"> -<h3 id="_bug_fixes_28">Bug fixes</h3> +<h3 id="_bug_fixes_29">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -2723,7 +2780,7 @@ <div class="sectionbody"> <div class="paragraph"><p>Release date: 2012-01-08</p></div> <div class="sect2"> -<h3 id="_bug_fixes_29">Bug fixes</h3> +<h3 id="_bug_fixes_30">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -2806,7 +2863,7 @@ </ul></div> </div> <div class="sect2"> -<h3 id="_bug_fixes_30">Bug fixes</h3> +<h3 id="_bug_fixes_31">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -2859,7 +2916,7 @@ </ul></div> </div> <div class="sect2"> -<h3 id="_bug_fixes_31">Bug fixes</h3> +<h3 id="_bug_fixes_32">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -2892,7 +2949,7 @@ <div class="sectionbody"> <div class="paragraph"><p>Release date: 2011-01-09</p></div> <div class="sect2"> -<h3 id="_bug_fixes_32">Bug fixes</h3> +<h3 id="_bug_fixes_33">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -2925,7 +2982,7 @@ <div class="sectionbody"> <div class="paragraph"><p>Release date: 2010-11-28</p></div> <div class="sect2"> -<h3 id="_bug_fixes_33">Bug fixes</h3> +<h3 id="_bug_fixes_34">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -2952,7 +3009,7 @@ <div class="sectionbody"> <div class="paragraph"><p>Release date: 2010-11-21</p></div> <div class="sect2"> -<h3 id="_bug_fixes_34">Bug fixes</h3> +<h3 id="_bug_fixes_35">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -3000,7 +3057,7 @@ <div class="sectionbody"> <div class="paragraph"><p>Release date: 2010-11-07</p></div> <div class="sect2"> -<h3 id="_bug_fixes_35">Bug fixes</h3> +<h3 id="_bug_fixes_36">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -3122,7 +3179,7 @@ </ul></div> </div> <div class="sect2"> -<h3 id="_bug_fixes_36">Bug fixes</h3> +<h3 id="_bug_fixes_37">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -3208,7 +3265,7 @@ <div class="sectionbody"> <div class="paragraph"><p>Release date: 2010-07-15</p></div> <div class="sect2"> -<h3 id="_bug_fixes_37">Bug fixes</h3> +<h3 id="_bug_fixes_38">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -3397,7 +3454,7 @@ </ul></div> </div> <div class="sect2"> -<h3 id="_bug_fixes_38">Bug fixes</h3> +<h3 id="_bug_fixes_39">Bug fixes</h3> <div class="ulist"><ul> <li> <p> @@ -3542,9 +3599,9 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Version 3.7.4<br /> +Version 3.7.5<br /> Last updated - 2019-09-12 21:14:17 CEST + 2019-10-22 20:50:43 CEST </div> </div> </body> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.7.4/doc/ccache.1 new/ccache-3.7.5/doc/ccache.1 --- old/ccache-3.7.4/doc/ccache.1 2019-09-12 21:14:51.000000000 +0200 +++ new/ccache-3.7.5/doc/ccache.1 2019-10-22 20:51:15.000000000 +0200 @@ -2,12 +2,12 @@ .\" Title: ccache .\" Author: [see the "Author" section] .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> -.\" Date: 09/12/2019 +.\" Date: 10/22/2019 .\" Manual: ccache Manual -.\" Source: ccache 3.7.4 +.\" Source: ccache 3.7.5 .\" Language: English .\" -.TH "CCACHE" "1" "09/12/2019" "ccache 3\&.7\&.4" "ccache Manual" +.TH "CCACHE" "1" "10/22/2019" "ccache 3\&.7\&.5" "ccache Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.7.4/src/ccache.c new/ccache-3.7.5/src/ccache.c --- old/ccache-3.7.4/src/ccache.c 2019-09-12 21:14:51.000000000 +0200 +++ new/ccache-3.7.5/src/ccache.c 2019-10-22 20:51:15.000000000 +0200 @@ -280,6 +280,10 @@ // Temporary files to remove at program exit. static struct pending_tmp_file *pending_tmp_files = NULL; +// How often (in seconds) to scan $CCACHE_DIR/tmp for left-over temporary +// files. +static const int k_tempdir_cleanup_interval = 2 * 24 * 60 * 60; // 2 days + #ifndef _WIN32 static sigset_t fatal_signal_set; @@ -480,7 +484,8 @@ { time_t now = time(NULL); struct stat st; - if (x_stat(conf->cache_dir, &st) != 0 || st.st_mtime + 3600 >= now) { + if (x_stat(conf->cache_dir, &st) != 0 + || st.st_mtime + k_tempdir_cleanup_interval >= now) { // No cleanup needed. return; } @@ -499,7 +504,8 @@ } char *path = format("%s/%s", temp_dir(), entry->d_name); - if (x_lstat(path, &st) == 0 && st.st_mtime + 3600 < now) { + if (x_lstat(path, &st) == 0 + && st.st_mtime + k_tempdir_cleanup_interval < now) { tmp_unlink(path); } free(path); @@ -1720,7 +1726,10 @@ hash_delimiter(hash, "cppstderr"); if (!direct_i_file && !hash_file(hash, path_stderr)) { - fatal("Failed to open %s: %s", path_stderr, strerror(errno)); + // Somebody removed the temporary file? + stats_update(STATS_ERROR); + cc_log("Failed to open %s: %s", path_stderr, strerror(errno)); + failed(); } if (direct_i_file) { @@ -2492,10 +2501,15 @@ } // Process the compiler options into options suitable for passing to the -// preprocessor and the real compiler. The preprocessor options don't include -// -E; this is added later. Returns true on success, otherwise false. +// preprocessor and the real compiler. preprocessor_args doesn't include -E; +// this is added later. extra_args_to_hash are the arguments that are not +// included in preprocessor_args but that should be included in the hash. +// +// Returns true on success, otherwise false. bool -cc_process_args(struct args *args, struct args **preprocessor_args, +cc_process_args(struct args *args, + struct args **preprocessor_args, + struct args **extra_args_to_hash, struct args **compiler_args) { bool found_c_opt = false; @@ -2825,8 +2839,11 @@ arg = argv[i + 1]; i++; } else { - // -MFarg + // -MFarg or -MF=arg (EDG-based compilers) arg = &argv[i][3]; + if (arg[0] == '=') { + ++arg; + } } output_dep = make_relative_path(x_strdup(arg)); // Keep the format of the args the same. @@ -3517,7 +3534,7 @@ if (!dependency_target_specified && !dependency_implicit_target_specified - && !str_eq(get_extension(output_dep), ".o")) { + && !str_eq(get_extension(output_obj), ".o")) { args_add(dep_args, "-MQ"); args_add(dep_args, output_obj); } @@ -3580,6 +3597,10 @@ *preprocessor_args = args_copy(common_args); args_extend(*preprocessor_args, cpp_args); + if (extra_args_to_hash) { + *extra_args_to_hash = compiler_only_args; + } + out: args_free(expanded_args); args_free(common_args); @@ -3918,10 +3939,14 @@ // Arguments (except -E) to send to the preprocessor. struct args *preprocessor_args; + // Arguments not sent to the preprocessor but that should be part of the + // hash. + struct args *extra_args_to_hash; // Arguments to send to the real compiler. struct args *compiler_args; MTR_BEGIN("main", "process_args"); - if (!cc_process_args(orig_args, &preprocessor_args, &compiler_args)) { + if (!cc_process_args( + orig_args, &preprocessor_args, &extra_args_to_hash, &compiler_args)) { failed(); } MTR_END("main", "process_args"); @@ -3980,13 +4005,16 @@ init_hash_debug( direct_hash, output_obj, 'd', "DIRECT MODE", debug_text_file); + struct args *args_to_hash = args_copy(preprocessor_args); + args_extend(args_to_hash, extra_args_to_hash); + bool put_object_in_manifest = false; struct file_hash *object_hash = NULL; struct file_hash *object_hash_from_manifest = NULL; if (conf->direct_mode) { cc_log("Trying direct lookup"); MTR_BEGIN("hash", "direct_hash"); - object_hash = calculate_object_hash(preprocessor_args, direct_hash, 1); + object_hash = calculate_object_hash(args_to_hash, direct_hash, 1); MTR_END("hash", "direct_hash"); if (object_hash) { update_cached_result_globals(object_hash); @@ -4018,7 +4046,7 @@ cpp_hash, output_obj, 'p', "PREPROCESSOR MODE", debug_text_file); MTR_BEGIN("hash", "cpp_hash"); - object_hash = calculate_object_hash(preprocessor_args, cpp_hash, 0); + object_hash = calculate_object_hash(args_to_hash, cpp_hash, 0); MTR_END("hash", "cpp_hash"); if (!object_hash) { fatal("internal error: object hash from cpp returned NULL"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.7.4/src/ccache.h new/ccache-3.7.5/src/ccache.h --- old/ccache-3.7.4/src/ccache.h 2019-09-12 21:14:51.000000000 +0200 +++ new/ccache-3.7.5/src/ccache.h 2019-10-22 20:51:15.000000000 +0200 @@ -270,8 +270,10 @@ extern bool output_is_precompiled_header; void block_signals(void); void unblock_signals(void); -bool cc_process_args(struct args *args, struct args **preprocessor_args, - struct args **compiler_args); +bool cc_process_args(struct args *args, + struct args **preprocessor_args, + struct args **extra_args_to_hash, + struct args **compiler_args); void cc_reset(void); bool is_precompiled_header(const char *path); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.7.4/src/hashutil.c new/ccache-3.7.5/src/hashutil.c --- old/ccache-3.7.4/src/hashutil.c 2019-09-12 21:14:51.000000000 +0200 +++ new/ccache-3.7.5/src/hashutil.c 2019-10-22 20:51:15.000000000 +0200 @@ -104,13 +104,16 @@ hash_string_buffer(hash, str, len); if (result & HASH_SOURCE_CODE_FOUND_DATE) { + cc_log("Found __DATE__ in %s", path); + // Make sure that the hash sum changes if the (potential) expansion of // __DATE__ changes. time_t t = time(NULL); struct tm now; - localtime_r(&t, &now); - cc_log("Found __DATE__ in %s", path); hash_delimiter(hash, "date"); + if (!localtime_r(&t, &now)) { + return HASH_SOURCE_CODE_ERROR; + } hash_int(hash, now.tm_year); hash_int(hash, now.tm_mon); hash_int(hash, now.tm_mday); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.7.4/src/manifest.c new/ccache-3.7.5/src/manifest.c --- old/ccache-3.7.4/src/manifest.c 2019-09-12 21:14:51.000000000 +0200 +++ new/ccache-3.7.5/src/manifest.c 2019-10-22 20:51:15.000000000 +0200 @@ -288,7 +288,7 @@ return mf; error: - if (!errmsg) { + if (!*errmsg) { *errmsg = x_strdup("Corrupt manifest file"); } free_manifest(mf); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.7.4/src/util.c new/ccache-3.7.5/src/util.c --- old/ccache-3.7.4/src/util.c 2019-09-12 21:14:51.000000000 +0200 +++ new/ccache-3.7.5/src/util.c 2019-10-22 20:51:15.000000000 +0200 @@ -1224,8 +1224,14 @@ localtime_r(const time_t *timep, struct tm *result) { struct tm *tm = localtime(timep); - *result = *tm; - return result; + if (tm) { + *result = *tm; + return result; + } + else { + memset(result, 0, sizeof(*result)); + return NULL; + } } #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.7.4/src/version.c new/ccache-3.7.5/src/version.c --- old/ccache-3.7.4/src/version.c 2019-09-12 21:14:51.000000000 +0200 +++ new/ccache-3.7.5/src/version.c 2019-10-22 20:51:15.000000000 +0200 @@ -1 +1 @@ -extern const char CCACHE_VERSION[]; const char CCACHE_VERSION[] = "3.7.4"; +extern const char CCACHE_VERSION[]; const char CCACHE_VERSION[] = "3.7.5"; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.7.4/test/suites/base.bash new/ccache-3.7.5/test/suites/base.bash --- old/ccache-3.7.4/test/suites/base.bash 2019-09-12 21:14:51.000000000 +0200 +++ new/ccache-3.7.5/test/suites/base.bash 2019-10-22 20:51:15.000000000 +0200 @@ -981,6 +981,26 @@ expect_stat 'cache miss' 1 # ------------------------------------------------------------------------- + TEST "Handling of compiler-only arguments" + + $CCACHE_COMPILE -c test1.c + expect_stat 'cache hit (preprocessed)' 0 + expect_stat 'cache miss' 1 + expect_stat 'files in cache' 1 + + $CCACHE_COMPILE -c test1.c + expect_stat 'cache hit (preprocessed)' 1 + expect_stat 'cache miss' 1 + expect_stat 'files in cache' 1 + + # Even though -Werror is not passed to the preprocessor, it should be part + # of the hash, so we expect a cache miss: + $CCACHE_COMPILE -c -Werror test1.c + expect_stat 'cache hit (preprocessed)' 1 + expect_stat 'cache miss' 2 + expect_stat 'files in cache' 2 + + # ------------------------------------------------------------------------- TEST "Buggy GCC 6 cpp" cat >buggy-cpp <<EOF diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.7.4/unittest/test_argument_processing.c new/ccache-3.7.5/unittest/test_argument_processing.c --- old/ccache-3.7.4/unittest/test_argument_processing.c 2019-09-12 21:14:51.000000000 +0200 +++ new/ccache-3.7.5/unittest/test_argument_processing.c 2019-10-22 20:51:15.000000000 +0200 @@ -68,7 +68,7 @@ struct args *preprocessed, *compiler; create_file("foo.c", ""); - CHECK(!cc_process_args(orig, &preprocessed, &compiler)); + CHECK(!cc_process_args(orig, &preprocessed, NULL, &compiler)); CHECK_INT_EQ(1, stats_get_pending(STATS_PREPROCESSING)); args_free(orig); @@ -80,7 +80,7 @@ struct args *preprocessed, *compiler; create_file("foo.c", ""); - CHECK(!cc_process_args(orig, &preprocessed, &compiler)); + CHECK(!cc_process_args(orig, &preprocessed, NULL, &compiler)); CHECK_INT_EQ(1, stats_get_pending(STATS_UNSUPPORTED_OPTION)); args_free(orig); @@ -98,7 +98,7 @@ struct args *act_cpp = NULL, *act_cc = NULL; create_file("foo.c", ""); - CHECK(cc_process_args(orig, &act_cpp, &act_cc)); + CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc)); CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp); CHECK_ARGS_EQ_FREE12(exp_cc, act_cc); @@ -123,7 +123,7 @@ create_file("foo.c", ""); conf->run_second_cpp = false; - CHECK(cc_process_args(orig, &act_cpp, &act_cc)); + CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc)); CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp); CHECK_ARGS_EQ_FREE12(exp_cc, act_cc); @@ -149,7 +149,7 @@ create_file("foo.c", ""); conf->run_second_cpp = true; - CHECK(cc_process_args(orig, &act_cpp, &act_cc)); + CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc)); CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp); CHECK_ARGS_EQ_FREE12(exp_cc, act_cc); @@ -166,7 +166,52 @@ struct args *act_cpp = NULL, *act_cc = NULL; create_file("foo.c", ""); - CHECK(cc_process_args(orig, &act_cpp, &act_cc)); + CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc)); + CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp); + CHECK_ARGS_EQ_FREE12(exp_cc, act_cc); + + args_free(orig); +} + +TEST(MQ_flag_should_not_be_added_for_standard_obj_extension) +{ + struct args *orig = args_init_from_string("cc -c -MD foo.c -o foo.o"); + struct args *exp_cpp = args_init_from_string("cc -MD -MF foo.d"); + struct args *exp_cc = args_init_from_string("cc -c"); + struct args *act_cpp = NULL, *act_cc = NULL; + create_file("foo.c", ""); + + CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc)); + CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp); + CHECK_ARGS_EQ_FREE12(exp_cc, act_cc); + + args_free(orig); +} + +TEST(MQ_flag_should_be_added_for_non_standard_obj_extension) +{ + struct args *orig = args_init_from_string("cc -c -MD foo.c -o foo.obj"); + struct args *exp_cpp = args_init_from_string("cc -MD -MF foo.d -MQ foo.obj"); + struct args *exp_cc = args_init_from_string("cc -c"); + struct args *act_cpp = NULL, *act_cc = NULL; + create_file("foo.c", ""); + + CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc)); + CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp); + CHECK_ARGS_EQ_FREE12(exp_cc, act_cc); + + args_free(orig); +} + +TEST(equal_sign_after_MF_should_be_removed) +{ + struct args *orig = args_init_from_string("cc -c -MF=path foo.c -o foo.o"); + struct args *exp_cpp = args_init_from_string("cc -MFpath"); + struct args *exp_cc = args_init_from_string("cc -c"); + struct args *act_cpp = NULL, *act_cc = NULL; + create_file("foo.c", ""); + + CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc)); CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp); CHECK_ARGS_EQ_FREE12(exp_cc, act_cc); @@ -188,7 +233,7 @@ orig = args_init_from_string(arg_string); free(arg_string); - CHECK(cc_process_args(orig, &act_cpp, &act_cc)); + CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc)); CHECK_STR_EQ(act_cpp->argv[1], "--sysroot=./foo/bar"); args_free(orig); @@ -211,7 +256,7 @@ orig = args_init_from_string(arg_string); free(arg_string); - CHECK(cc_process_args(orig, &act_cpp, &act_cc)); + CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc)); CHECK_STR_EQ(act_cpp->argv[1], "--sysroot"); CHECK_STR_EQ(act_cpp->argv[2], "./foo"); @@ -230,7 +275,7 @@ struct args *act_cpp = NULL, *act_cc = NULL; create_file("foo.c", ""); - CHECK(cc_process_args(orig, &act_cpp, &act_cc)); + CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc)); CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp); CHECK_ARGS_EQ_FREE12(exp_cc, act_cc); @@ -247,7 +292,7 @@ struct args *act_cpp = NULL, *act_cc = NULL; create_file("foo.c", ""); - CHECK(cc_process_args(orig, &act_cpp, &act_cc)); + CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc)); CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp); CHECK_ARGS_EQ_FREE12(exp_cc, act_cc); @@ -264,7 +309,7 @@ struct args *act_cpp = NULL, *act_cc = NULL; create_file("foo.c", ""); - CHECK(cc_process_args(orig, &act_cpp, &act_cc)); + CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc)); CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp); CHECK_ARGS_EQ_FREE12(exp_cc, act_cc); @@ -281,7 +326,7 @@ struct args *act_cpp = NULL, *act_cc = NULL; create_file("foo.c", ""); - CHECK(cc_process_args(orig, &act_cpp, &act_cc)); + CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc)); CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp); CHECK_ARGS_EQ_FREE12(exp_cc, act_cc); @@ -298,7 +343,7 @@ struct args *act_cpp = NULL, *act_cc = NULL; create_file("foo.c", ""); - CHECK(cc_process_args(orig, &act_cpp, &act_cc)); + CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc)); CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp); CHECK_ARGS_EQ_FREE12(exp_cc, act_cc); @@ -315,7 +360,7 @@ struct args *act_cpp = NULL, *act_cc = NULL; create_file("foo.c", ""); - CHECK(cc_process_args(orig, &act_cpp, &act_cc)); + CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc)); CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp); CHECK_ARGS_EQ_FREE12(exp_cc, act_cc); @@ -332,7 +377,7 @@ struct args *act_cpp = NULL, *act_cc = NULL; create_file("foo.c", ""); - CHECK(cc_process_args(orig, &act_cpp, &act_cc)); + CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc)); CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp); CHECK_ARGS_EQ_FREE12(exp_cc, act_cc); @@ -359,7 +404,7 @@ args_add(exp_cc, "-c"); free(s); - CHECK(cc_process_args(orig, &act_cpp, &act_cc)); + CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc)); CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp); CHECK_ARGS_EQ_FREE12(exp_cc, act_cc); @@ -378,7 +423,7 @@ create_file("foo.c", ""); - CHECK(cc_process_args(orig, &act_cpp, &act_cc)); + CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc)); CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp); CHECK_ARGS_EQ_FREE12(exp_cc, act_cc); @@ -400,7 +445,7 @@ orig = args_init_from_string(arg_string); free(arg_string); - CHECK(cc_process_args(orig, &act_cpp, &act_cc)); + CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc)); CHECK_STR_EQ("./foo", act_cpp->argv[2]); args_free(orig); @@ -426,7 +471,7 @@ orig = args_init_from_string(arg_string); free(arg_string); - CHECK(cc_process_args(orig, &act_cpp, &act_cc)); + CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc)); CHECK_STR_EQ("-isystem./foo", act_cpp->argv[1]); free(cwd); @@ -453,7 +498,7 @@ orig = args_init_from_string(arg_string); free(arg_string); - CHECK(cc_process_args(orig, &act_cpp, &act_cc)); + CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc)); CHECK_STR_EQ("-I./foo", act_cpp->argv[1]); free(cwd); @@ -471,7 +516,7 @@ struct args *act_cc = NULL; create_file("foo.c", ""); - CHECK(cc_process_args(orig, &act_cpp, &act_cc)); + CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc)); CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp); CHECK_ARGS_EQ_FREE12(exp_cc, act_cc); @@ -487,7 +532,7 @@ struct args *act_cc = NULL; create_file("foo.c", ""); - CHECK(cc_process_args(orig, &act_cpp, &act_cc)); + CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc)); CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp); CHECK_ARGS_EQ_FREE12(exp_cc, act_cc); @@ -499,14 +544,19 @@ struct args *orig = args_init_from_string( "cc -Wa,foo foo.c -g -c -DX -Werror -Xlinker fie -Xlinker,fum -Wno-error"); struct args *exp_cpp = args_init_from_string("cc -g -DX"); + struct args *exp_extra = + args_init_from_string( + " -Wa,foo -Werror -Xlinker fie -Xlinker,fum -Wno-error"); struct args *exp_cc = args_init_from_string( "cc -g -Wa,foo -Werror -Xlinker fie -Xlinker,fum -Wno-error -DX -c"); struct args *act_cpp = NULL; + struct args *act_extra = NULL; struct args *act_cc = NULL; create_file("foo.c", ""); - CHECK(cc_process_args(orig, &act_cpp, &act_cc)); + CHECK(cc_process_args(orig, &act_cpp, &act_extra, &act_cc)); CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp); + CHECK_ARGS_EQ_FREE12(exp_extra, act_extra); CHECK_ARGS_EQ_FREE12(exp_cc, act_cc); args_free(orig);
