Hello community, here is the log from the commit of package ccache for openSUSE:Factory checked in at 2015-10-12 10:02:34 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 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 2015-08-25 08:46:31.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.ccache.new/ccache.changes 2015-10-12 10:02:42.000000000 +0200 @@ -1,0 +2,16 @@ +Thu Oct 8 20:32:17 UTC 2015 - [email protected] + +- Update to 3.2.4 + * Fixed build error related to zlib on systems with older make + versions (regression in ccache 3.2.3). + * Made conversion-to-bool explicit to avoid build warnings (and + potential runtime errors) on legacy systems. + * Improved signal handling: Kill compiler on SIGTERM; wait for + compiler to exit before exiting; die appropriately. + * Minor fixes related to Windows support. + * The correct compression level is now used if compression is + requested. + * Fixed a bug where cache cleanup could be run too early for + caches larger than 64 GiB on 32-bit systems. + +------------------------------------------------------------------- Old: ---- ccache-3.2.3.tar.xz ccache-3.2.3.tar.xz.asc New: ---- ccache-3.2.4.tar.xz ccache-3.2.4.tar.xz.asc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ccache.spec ++++++ --- /var/tmp/diff_new_pack.NTP6Ie/_old 2015-10-12 10:02:43.000000000 +0200 +++ /var/tmp/diff_new_pack.NTP6Ie/_new 2015-10-12 10:02:43.000000000 +0200 @@ -17,7 +17,7 @@ Name: ccache -Version: 3.2.3 +Version: 3.2.4 Release: 0 Summary: A Fast C/C++ Compiler Cache License: GPL-3.0+ ++++++ ccache-3.2.3.tar.xz -> ccache-3.2.4.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.3/AUTHORS.html new/ccache-3.2.4/AUTHORS.html --- old/ccache-3.2.3/AUTHORS.html 2015-08-16 14:12:05.000000000 +0200 +++ new/ccache-3.2.4/AUTHORS.html 2015-10-08 21:14:23.000000000 +0200 @@ -734,7 +734,7 @@ <body class="article"> <div id="header"> <h1>ccache authors</h1> -<span id="revnumber">version 3.2.3</span> +<span id="revnumber">version 3.2.4</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> @@ -964,6 +964,11 @@ </li> <li> <p> +Vadim Petrochenkov <<a href="mailto:[email protected]">[email protected]</a>> +</p> +</li> +<li> +<p> Ville Skyttä <<a href="mailto:[email protected]">[email protected]</a>> </p> </li> @@ -990,9 +995,9 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Version 3.2.3<br /> +Version 3.2.4<br /> Last updated - 2015-08-16 14:11:14 CEST + 2015-10-08 21:10:53 CEST </div> </div> </body> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.3/AUTHORS.txt new/ccache-3.2.4/AUTHORS.txt --- old/ccache-3.2.3/AUTHORS.txt 2015-08-16 14:12:05.000000000 +0200 +++ new/ccache-3.2.4/AUTHORS.txt 2015-10-08 21:14:23.000000000 +0200 @@ -49,6 +49,7 @@ * Ryan Brown <[email protected]> * Tim Potter <[email protected]> * Tor Arne Vestbø <[email protected]> +* Vadim Petrochenkov <[email protected]> * Ville Skyttä <[email protected]> * William S Fulton <[email protected]> * Wilson Snyder <[email protected]> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.3/Makefile.in new/ccache-3.2.4/Makefile.in --- old/ccache-3.2.3/Makefile.in 2015-08-16 14:12:05.000000000 +0200 +++ new/ccache-3.2.4/Makefile.in 2015-10-08 21:14:23.000000000 +0200 @@ -19,8 +19,7 @@ RANLIB = @RANLIB@ all_cflags = $(CFLAGS) -all_cppflags = @DEFS@ @extra_cppflags@ -DSYSCONFDIR=$(sysconfdir) -I. -I$(srcdir) $(CPPFLAGS) -all_ldflags = @extra_ldflags@ $(LDFLAGS) +all_cppflags = @DEFS@ -DSYSCONFDIR=$(sysconfdir) -I. -I$(srcdir) $(CPPFLAGS) extra_libs = @extra_libs@ base_sources = \ @@ -53,7 +52,7 @@ all: ccache$(EXEEXT) ccache$(EXEEXT): $(ccache_objs) $(extra_libs) - $(CC) $(all_cflags) -o $@ $(ccache_objs) $(all_ldflags) $(extra_libs) $(LIBS) + $(CC) $(all_cflags) -o $@ $(ccache_objs) $(LDFLAGS) $(extra_libs) $(LIBS) .PHONY: install install: all @@ -88,7 +87,7 @@ test/main$(EXEEXT) test/main$(EXEEXT): $(base_objs) $(test_objs) $(extra_libs) - $(CC) $(all_cflags) -o $@ $(base_objs) $(test_objs) $(all_ldflags) $(extra_libs) $(LIBS) + $(CC) $(all_cflags) -o $@ $(base_objs) $(test_objs) $(LDFLAGS) $(extra_libs) $(LIBS) test/main.o: test/suites.h diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.3/NEWS.html new/ccache-3.2.4/NEWS.html --- old/ccache-3.2.3/NEWS.html 2015-08-16 14:12:05.000000000 +0200 +++ new/ccache-3.2.4/NEWS.html 2015-10-08 21:14:23.000000000 +0200 @@ -734,7 +734,7 @@ <body class="article"> <div id="header"> <h1>ccache news</h1> -<span id="revnumber">version 3.2.3</span> +<span id="revnumber">version 3.2.4</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,51 @@ </div> <div id="content"> <div class="sect1"> +<h2 id="_ccache_3_2_4">ccache 3.2.4</h2> +<div class="sectionbody"> +<div class="paragraph"><p>Release date: 2015-10-08</p></div> +<div class="sect2"> +<h3 id="_bug_fixes">Bug fixes</h3> +<div class="ulist"><ul> +<li> +<p> +Fixed build error related to zlib on systems with older make versions + (regression in ccache 3.2.3). +</p> +</li> +<li> +<p> +Made conversion-to-bool explicit to avoid build warnings (and potential + runtime errors) on legacy systems. +</p> +</li> +<li> +<p> +Improved signal handling: Kill compiler on SIGTERM; wait for compiler to exit + before exiting; die appropriately. +</p> +</li> +<li> +<p> +Minor fixes related to Windows support. +</p> +</li> +<li> +<p> +The correct compression level is now used if compression is requested. +</p> +</li> +<li> +<p> +Fixed a bug where cache cleanup could be run too early for caches larger than + 64 GiB on 32-bit systems. +</p> +</li> +</ul></div> +</div> +</div> +</div> +<div class="sect1"> <h2 id="_ccache_3_2_3">ccache 3.2.3</h2> <div class="sectionbody"> <div class="paragraph"><p>Release date: 2015-08-16</p></div> @@ -756,7 +801,7 @@ </ul></div> </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> @@ -810,7 +855,7 @@ </ul></div> </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> @@ -881,7 +926,7 @@ <div class="sectionbody"> <div class="paragraph"><p>Release date: 2014-12-10</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> @@ -1113,7 +1158,7 @@ </ul></div> </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> @@ -1144,7 +1189,7 @@ <div class="sectionbody"> <div class="paragraph"><p>Release date: 2015-03-07</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> @@ -1227,7 +1272,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> @@ -1267,7 +1312,7 @@ <div class="sectionbody"> <div class="paragraph"><p>Release date: 2013-01-06</p></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> @@ -1338,7 +1383,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> @@ -1386,7 +1431,7 @@ <div class="sectionbody"> <div class="paragraph"><p>Release date: 2012-01-08</p></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> @@ -1469,7 +1514,7 @@ </ul></div> </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> @@ -1522,7 +1567,7 @@ </ul></div> </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> @@ -1555,7 +1600,7 @@ <div class="sectionbody"> <div class="paragraph"><p>Release date: 2011-01-09</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> @@ -1588,7 +1633,7 @@ <div class="sectionbody"> <div class="paragraph"><p>Release date: 2010-11-28</p></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> @@ -1615,7 +1660,7 @@ <div class="sectionbody"> <div class="paragraph"><p>Release date: 2010-11-21</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> @@ -1663,7 +1708,7 @@ <div class="sectionbody"> <div class="paragraph"><p>Release date: 2010-11-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> @@ -1785,7 +1830,7 @@ </ul></div> </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> @@ -1871,7 +1916,7 @@ <div class="sectionbody"> <div class="paragraph"><p>Release date: 2010-07-15</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> @@ -2060,7 +2105,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> @@ -2205,9 +2250,9 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Version 3.2.3<br /> +Version 3.2.4<br /> Last updated - 2015-08-16 14:00:42 CEST + 2015-10-08 21:12:12 CEST </div> </div> </body> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.3/NEWS.txt new/ccache-3.2.4/NEWS.txt --- old/ccache-3.2.3/NEWS.txt 2015-08-16 14:12:05.000000000 +0200 +++ new/ccache-3.2.4/NEWS.txt 2015-10-08 21:14:23.000000000 +0200 @@ -2,6 +2,31 @@ =========== +ccache 3.2.4 +------------ +Release date: 2015-10-08 + + +Bug fixes +~~~~~~~~~ + +- Fixed build error related to zlib on systems with older make versions + (regression in ccache 3.2.3). + +- Made conversion-to-bool explicit to avoid build warnings (and potential + runtime errors) on legacy systems. + +- Improved signal handling: Kill compiler on SIGTERM; wait for compiler to exit + before exiting; die appropriately. + +- Minor fixes related to Windows support. + +- The correct compression level is now used if compression is requested. + +- Fixed a bug where cache cleanup could be run too early for caches larger than + 64 GiB on 32-bit systems. + + ccache 3.2.3 ------------ Release date: 2015-08-16 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.3/ccache.1 new/ccache-3.2.4/ccache.1 --- old/ccache-3.2.3/ccache.1 2015-08-16 14:12:05.000000000 +0200 +++ new/ccache-3.2.4/ccache.1 2015-10-08 21:14:23.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: 08/16/2015 +.\" Date: 10/08/2015 .\" Manual: ccache Manual -.\" Source: ccache 3.2.3 +.\" Source: ccache 3.2.4 .\" Language: English .\" -.TH "CCACHE" "1" "08/16/2015" "ccache 3\&.2\&.3" "ccache Manual" +.TH "CCACHE" "1" "10/08/2015" "ccache 3\&.2\&.4" "ccache Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.3/ccache.c new/ccache-3.2.4/ccache.c --- old/ccache-3.2.3/ccache.c 2015-08-16 14:12:05.000000000 +0200 +++ new/ccache-3.2.4/ccache.c 2015-10-08 21:14:23.000000000 +0200 @@ -239,6 +239,12 @@ /* Temporary files to remove at program exit. */ static struct pending_tmp_file *pending_tmp_files = NULL; +static sigset_t fatal_signal_set; + +/* PID of currently executing compiler that we have started, if any. 0 means no + * ongoing compilation. */ +static pid_t compiler_pid = 0; + /* * This is a string that identifies the current "version" of the hash sum * computed by ccache. If, for any reason, we want to force the hash sum to be @@ -314,17 +320,35 @@ return path; } +void +block_signals(void) +{ + sigprocmask(SIG_BLOCK, &fatal_signal_set, NULL); +} + +void +unblock_signals(void) +{ + sigset_t empty; + sigemptyset(&empty); + sigprocmask(SIG_SETMASK, &empty, NULL); +} + static void add_pending_tmp_file(const char *path) { - struct pending_tmp_file *e = x_malloc(sizeof(*e)); + struct pending_tmp_file *e; + + block_signals(); + e = x_malloc(sizeof(*e)); e->path = x_strdup(path); e->next = pending_tmp_files; pending_tmp_files = e; + unblock_signals(); } static void -clean_up_pending_tmp_files(void) +do_clean_up_pending_tmp_files(void) { struct pending_tmp_file *p = pending_tmp_files; while (p) { @@ -337,11 +361,72 @@ } static void -signal_handler(int signo) +clean_up_pending_tmp_files(void) { - (void)signo; - clean_up_pending_tmp_files(); - _exit(1); + block_signals(); + do_clean_up_pending_tmp_files(); + unblock_signals(); +} + +static void +signal_handler(int signum) +{ + /* Unregister handler for this signal so that we can send the signal to + * ourselves at the end of the handler. */ + signal(signum, SIG_DFL); + + /* If ccache was killed explicitly, then bring the compiler subprocess (if + * any) with us as well. */ + if (signum == SIGTERM + && compiler_pid != 0 + && waitpid(compiler_pid, NULL, WNOHANG) == 0) { + kill(compiler_pid, signum); + } + + do_clean_up_pending_tmp_files(); + + if (compiler_pid != 0) { + /* Wait for compiler subprocess to exit before we snuff it. */ + waitpid(compiler_pid, NULL, 0); + } + + /* Resend signal to ourselves to exit properly after returning from the + * handler. */ + kill(getpid(), signum); +} + +static void +register_signal_handler(int signum) +{ + struct sigaction act; + memset(&act, 0, sizeof(act)); + act.sa_handler = signal_handler; + act.sa_mask = fatal_signal_set; + act.sa_flags = SA_RESTART; + sigaction(signum, &act, NULL); +} + +static void +set_up_signal_handlers(void) +{ + sigemptyset(&fatal_signal_set); + sigaddset(&fatal_signal_set, SIGINT); + sigaddset(&fatal_signal_set, SIGTERM); +#ifdef SIGHUP + sigaddset(&fatal_signal_set, SIGHUP); +#endif +#ifdef SIGQUIT + sigaddset(&fatal_signal_set, SIGQUIT); +#endif + + register_signal_handler(SIGINT); + register_signal_handler(SIGTERM); +#ifdef SIGHUP + register_signal_handler(SIGHUP); +#endif +#ifdef SIGQUIT + register_signal_handler(SIGQUIT); +#endif } static void @@ -719,7 +804,8 @@ x_unlink(dest); ret = link(source, dest); } else { - ret = copy_file(source, dest, conf->compression); + ret = copy_file( + source, dest, conf->compression ? conf->compression_level : 0); } if (ret != 0) { cc_log("Failed to %s %s to %s: %s", @@ -877,7 +963,7 @@ } cc_log("Running real compiler"); - status = execute(args->argv, tmp_stdout_fd, tmp_stderr_fd); + status = execute(args->argv, tmp_stdout_fd, tmp_stderr_fd, &compiler_pid); args_pop(args, 3); if (x_stat(tmp_stdout, &st) != 0) { @@ -1140,7 +1226,7 @@ args_add(args, "-E"); args_add(args, input_file); cc_log("Running preprocessor"); - status = execute(args->argv, path_stdout_fd, path_stderr_fd); + status = execute(args->argv, path_stdout_fd, path_stderr_fd, &compiler_pid); args_pop(args, 2); } @@ -1263,7 +1349,7 @@ compiler_is_clang(struct args *args) { char *name = basename(args->argv[0]); - bool is = strstr(name, "clang"); + bool is = strstr(name, "clang") != NULL; free(name); return is; } @@ -2858,17 +2944,13 @@ /* Arguments to send to the real compiler. */ struct args *compiler_args; + set_up_signal_handlers(); + orig_args = args_init(argc, argv); initialize(); find_compiler(argv); -#ifndef _WIN32 - signal(SIGHUP, signal_handler); -#endif - signal(SIGINT, signal_handler); - signal(SIGTERM, signal_handler); - if (str_eq(conf->temporary_dir, "")) { clean_up_internal_tempdir(); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.3/ccache.h new/ccache-3.2.4/ccache.h --- old/ccache-3.2.3/ccache.h 2015-08-16 14:12:05.000000000 +0200 +++ new/ccache-3.2.4/ccache.h 2015-10-08 21:14:23.000000000 +0200 @@ -186,7 +186,7 @@ void stats_update_size(uint64_t size, unsigned files); void stats_get_obsolete_limits(const char *dir, unsigned *maxfiles, uint64_t *maxsize); -void stats_set_sizes(const char *dir, size_t num_files, size_t total_size); +void stats_set_sizes(const char *dir, unsigned num_files, uint64_t total_size); void stats_read(const char *path, struct counters *counters); void stats_write(const char *path, struct counters *counters); @@ -213,7 +213,7 @@ /* ------------------------------------------------------------------------- */ /* execute.c */ -int execute(char **argv, int fd_out, int fd_err); +int execute(char **argv, int fd_out, int fd_err, pid_t *pid); char *find_executable(const char *name, const char *exclude_name); void print_command(FILE *fp, char **argv); @@ -227,6 +227,8 @@ /* ccache.c */ extern time_t time_of_compilation; +void block_signals(void); +void unblock_signals(void); bool cc_process_args(struct args *args, struct args **preprocessor_args, struct args **compiler_args); void cc_reset(void); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.3/conf.c new/ccache-3.2.4/conf.c --- old/ccache-3.2.3/conf.c 2015-08-16 14:12:05.000000000 +0200 +++ new/ccache-3.2.4/conf.c 2015-10-08 21:14:23.000000000 +0200 @@ -58,7 +58,7 @@ char **value = (char **)result; free(*value); *value = subst_env_in_string(str, errmsg); - return *value; + return *value != NULL; } static bool diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.3/configure new/ccache-3.2.4/configure --- old/ccache-3.2.3/configure 2015-08-16 14:12:05.000000000 +0200 +++ new/ccache-3.2.4/configure 2015-10-08 21:14:23.000000000 +0200 @@ -639,8 +639,6 @@ test_suites include_dev_mk extra_libs -extra_ldflags -extra_cppflags host_os host_vendor host_cpu @@ -2326,7 +2324,7 @@ case $host in - *mingw32* | *cygwin* | *wince* | *mingwce*) + *mingw32* | *mingw64* | *cygwin* | *wince* | *mingwce*) windows_os=yes $as_echo "#define _WIN32_WINNT 0x0600" >>confdefs.h @@ -2338,8 +2336,6 @@ - - ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -5677,16 +5673,15 @@ fi if test x${use_bundled_zlib} = xyes; then - extra_cppflags="-I\$(srcdir)/zlib" - extra_ldflags="-Lzlib" + CPPFLAGS="$CPPFLAGS -I\$(srcdir)/zlib" extra_libs="zlib/libz.a" mkdir -p zlib else - extra_libs="-lz" + LIBS="$LIBS -lz" fi if test x${windows_os} = xyes; then - extra_ldflags="$extra_ldflags -lws2_32" + LIBS="$LIBS -lws2_32" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.3/configure.ac new/ccache-3.2.4/configure.ac --- old/ccache-3.2.3/configure.ac 2015-08-16 14:12:05.000000000 +0200 +++ new/ccache-3.2.4/configure.ac 2015-10-08 21:14:23.000000000 +0200 @@ -10,14 +10,12 @@ AC_CANONICAL_HOST case $host in - *mingw32* | *cygwin* | *wince* | *mingwce*) + *mingw32* | *mingw64* | *cygwin* | *wince* | *mingwce*) windows_os=yes AC_DEFINE(_WIN32_WINNT,0x0600, Windows Vista or newer is required) ;; esac -AC_SUBST(extra_cppflags) -AC_SUBST(extra_ldflags) AC_SUBST(extra_libs) AC_SUBST(include_dev_mk) AC_SUBST(test_suites) @@ -115,17 +113,16 @@ fi if test x${use_bundled_zlib} = xyes; then - extra_cppflags="-I\$(srcdir)/zlib" - extra_ldflags="-Lzlib" + CPPFLAGS="$CPPFLAGS -I\$(srcdir)/zlib" extra_libs="zlib/libz.a" mkdir -p zlib else - extra_libs="-lz" + LIBS="$LIBS -lz" fi dnl Linking on Windows needs ws2_32 if test x${windows_os} = xyes; then - extra_ldflags="$extra_ldflags -lws2_32" + LIBS="$LIBS -lws2_32" fi AC_C_BIGENDIAN diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.3/execute.c new/ccache-3.2.4/execute.c --- old/ccache-3.2.3/execute.c 2015-08-16 14:12:05.000000000 +0200 +++ new/ccache-3.2.4/execute.c 2015-10-08 21:14:23.000000000 +0200 @@ -223,18 +223,21 @@ /* Execute a compiler backend, capturing all output to the given paths the full * path to the compiler to run is in argv[0]. */ int -execute(char **argv, int fd_out, int fd_err) +execute(char **argv, int fd_out, int fd_err, pid_t *pid) { - pid_t pid; int status; cc_log_argv("Executing ", argv); - pid = fork(); - if (pid == -1) { + + block_signals(); + *pid = fork(); + unblock_signals(); + + if (*pid == -1) { fatal("Failed to fork: %s", strerror(errno)); } - if (pid == 0) { + if (*pid == 0) { /* Child. */ dup2(fd_out, 1); close(fd_out); @@ -246,10 +249,14 @@ close(fd_out); close(fd_err); - if (waitpid(pid, &status, 0) != pid) { + if (waitpid(*pid, &status, 0) != *pid) { fatal("waitpid failed: %s", strerror(errno)); } + block_signals(); + *pid = 0; + unblock_signals(); + if (WEXITSTATUS(status) == 0 && WIFSIGNALED(status)) { return -1; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.3/language.c new/ccache-3.2.4/language.c --- old/ccache-3.2.3/language.c 2015-08-16 14:12:05.000000000 +0200 +++ new/ccache-3.2.4/language.c 2015-10-08 21:14:23.000000000 +0200 @@ -149,7 +149,7 @@ bool language_is_supported(const char *language) { - return p_language_for_language(language); + return p_language_for_language(language) != NULL; } bool diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.3/stats.c new/ccache-3.2.4/stats.c --- old/ccache-3.2.3/stats.c 2015-08-16 14:12:05.000000000 +0200 +++ new/ccache-3.2.4/stats.c 2015-10-08 21:14:23.000000000 +0200 @@ -391,7 +391,7 @@ /* set the per directory sizes */ void -stats_set_sizes(const char *dir, size_t num_files, size_t total_size) +stats_set_sizes(const char *dir, unsigned num_files, uint64_t total_size) { struct counters *counters = counters_init(STATS_END); char *statsfile; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.3/system.h new/ccache-3.2.4/system.h --- old/ccache-3.2.3/system.h 2015-08-16 14:12:05.000000000 +0200 +++ new/ccache-3.2.4/system.h 2015-10-08 21:14:23.000000000 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010-2014 Joel Rosdahl + * Copyright (C) 2010-2015 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 @@ -44,6 +44,7 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> +#include <strings.h> #include <time.h> #include <unistd.h> #include <utime.h> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.3/test/test_argument_processing.c new/ccache-3.2.4/test/test_argument_processing.c --- old/ccache-3.2.3/test/test_argument_processing.c 2015-08-16 14:12:05.000000000 +0200 +++ new/ccache-3.2.4/test/test_argument_processing.c 2015-10-08 21:14:23.000000000 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010-2013 Joel Rosdahl + * Copyright (C) 2010-2015 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 @@ -127,7 +127,7 @@ orig = args_init_from_string(arg_string); CHECK(cc_process_args(orig, &act_cpp, &act_cc)); - CHECK(str_startswith(act_cpp->argv[1], "--sysroot=./foo")); + CHECK_STR_EQ(act_cpp->argv[1], "--sysroot=./foo"); args_free(orig); args_free(act_cpp); @@ -278,7 +278,7 @@ args_free(orig); } -TEST(fprofile_flag_with_nonexisting_dir_not_be_rewritten) +TEST(fprofile_flag_with_nonexisting_dir_should_not_be_rewritten) { struct args *orig = args_init_from_string( "gcc -c -fprofile-generate=some/dir foo.c"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.3/test/test_util.c new/ccache-3.2.4/test/test_util.c --- old/ccache-3.2.3/test/test_util.c 2015-08-16 14:12:05.000000000 +0200 +++ new/ccache-3.2.4/test/test_util.c 2015-10-08 21:14:23.000000000 +0200 @@ -60,6 +60,20 @@ TEST(get_relative_path) { +#ifdef _WIN32 + CHECK_STR_EQ_FREE2("a", get_relative_path("C:/doesn't matter", "a")); + CHECK_STR_EQ_FREE2("a/b", get_relative_path("C:/doesn't matter", "a/b")); + CHECK_STR_EQ_FREE2(".", get_relative_path("C:/a", "C:/a")); + CHECK_STR_EQ_FREE2("..", get_relative_path("C:/a/b", "C:/a")); + CHECK_STR_EQ_FREE2("b", get_relative_path("C:/a", "C:/a/b")); + CHECK_STR_EQ_FREE2("b/c", get_relative_path("C:/a", "C:/a/b/c")); + CHECK_STR_EQ_FREE2("../c", get_relative_path("C:/a/b", "C:/a/c")); + CHECK_STR_EQ_FREE2("../c/d", get_relative_path("C:/a/b", "C:/a/c/d")); + CHECK_STR_EQ_FREE2("../../c/d", get_relative_path("C:/a/b/c", "C:/a/c/d")); + CHECK_STR_EQ_FREE2("../..", get_relative_path("C:/a/b", "C:/")); + CHECK_STR_EQ_FREE2("../../c", get_relative_path("C:/a/b", "C:/c")); + CHECK_STR_EQ_FREE2("a/b", get_relative_path("C:/", "C:/a/b")); +#else CHECK_STR_EQ_FREE2("a", get_relative_path("/doesn't matter", "a")); CHECK_STR_EQ_FREE2("a/b", get_relative_path("/doesn't matter", "a/b")); CHECK_STR_EQ_FREE2(".", get_relative_path("/a", "/a")); @@ -72,6 +86,7 @@ CHECK_STR_EQ_FREE2("../..", get_relative_path("/a/b", "/")); CHECK_STR_EQ_FREE2("../../c", get_relative_path("/a/b", "/c")); CHECK_STR_EQ_FREE2("a/b", get_relative_path("/", "/a/b")); +#endif } TEST(format_hash_as_string) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.3/util.c new/ccache-3.2.4/util.c --- old/ccache-3.2.3/util.c 2015-08-16 14:12:05.000000000 +0200 +++ new/ccache-3.2.4/util.c 2015-10-08 21:14:23.000000000 +0200 @@ -1342,13 +1342,20 @@ const char *p; char *result; - assert(from && from[0] == '/'); + assert(from && is_absolute_path(from)); assert(to); - if (!*to || *to != '/') { + if (!*to || !is_absolute_path(to)) { return x_strdup(to); } +#ifdef _WIN32 + // Both paths are absolute, drop the drive letters + assert(from[0] == to[0]); // Assume the same drive letter + from += 2; + to += 2; +#endif + result = x_strdup(""); common_prefix_len = common_dir_prefix_length(from, to); if (common_prefix_len > 0 || !str_eq(from, "/")) { @@ -1638,7 +1645,7 @@ if (curly) { if (*q != '}') { *errmsg = format("syntax error: missing '}' after \"%s\"", p); - return NULL; + return false; } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccache-3.2.3/version.c new/ccache-3.2.4/version.c --- old/ccache-3.2.3/version.c 2015-08-16 14:12:05.000000000 +0200 +++ new/ccache-3.2.4/version.c 2015-10-08 21:14:23.000000000 +0200 @@ -1 +1 @@ -const char CCACHE_VERSION[] = "3.2.3"; +const char CCACHE_VERSION[] = "3.2.4";
