Hi Lars, On Sat, 8 Oct 2016, larsxschneider@xxxxxxxxx wrote: > @@ -31,6 +32,15 @@ static void cleanup_children(int sig, int in_signal) > while (children_to_clean) { > struct child_to_clean *p = children_to_clean; > children_to_clean = p->next; > + > + if (p->process && !in_signal) { > + struct child_process *process = p->process; > + if (process->clean_on_exit_handler) { > + trace_printf("trace: run_command: running exit handler for pid %d", p->pid); On Windows, pid_t translates to long long int, resulting in this build error: -- snip -- In file included from cache.h:10:0, from run-command.c:1: run-command.c: In function 'cleanup_children': run-command.c:39:18: error: format '%d' expects argument of type 'int', but argument 5 has type 'pid_t {aka long long int}' [-Werror=format=] trace_printf("trace: run_command: running exit handler for pid %d", p->pid); ^ trace.h:81:53: note: in definition of macro 'trace_printf' trace_printf_key_fl(TRACE_CONTEXT, __LINE__, NULL, __VA_ARGS__) ^~~~~~~~~~~ cc1.exe: all warnings being treated as errors make: *** [Makefile:1987: run-command.o] Error 1 -- snap -- Maybe use PRIuMAX as we do elsewhere (see output of `git grep printf.*pid`): trace_printf("trace: run_command: running exit handler for pid %" PRIuMAX, (uintmax_t)p->pid); Ciao, Dscho