diff -c5 -r make-4.1.orig/function.c make-4.1/function.c *** make-4.1.orig/function.c 2014-10-05 18:24:51.000000000 +0200 --- make-4.1/function.c 2015-09-19 12:25:36.147558700 +0200 *************** *** 1439,1450 **** *(++last_nonnl) = '\0'; *length = last_nonnl - buffer; } ! ! int shell_function_pid = 0, shell_function_completed; #ifdef WINDOWS32 /*untested*/ --- 1439,1450 ---- *(++last_nonnl) = '\0'; *length = last_nonnl - buffer; } ! pid_t shell_function_pid = 0; ! int shell_function_completed; #ifdef WINDOWS32 /*untested*/ diff -c5 -r make-4.1.orig/job.c make-4.1/job.c *** make-4.1.orig/job.c 2014-10-05 18:24:51.000000000 +0200 --- make-4.1/job.c 2015-09-19 12:47:00.473788800 +0200 *************** *** 565,575 **** /* This causes problems if the SIGCHLD interrupts a printf(). DB (DB_JOBS, (_("Got a SIGCHLD; %u unreaped children.\n"), dead_children)); */ } ! extern int shell_function_pid, shell_function_completed; /* Reap all dead children, storing the returned status and the new command state ('cs_finished') in the 'file' member of the 'struct child' for the dead child, and removing the child from the chain. In addition, if BLOCK nonzero, we block in this function until we've reaped at least one --- 565,576 ---- /* This causes problems if the SIGCHLD interrupts a printf(). DB (DB_JOBS, (_("Got a SIGCHLD; %u unreaped children.\n"), dead_children)); */ } ! extern pid_t shell_function_pid; ! extern int shell_function_completed; /* Reap all dead children, storing the returned status and the new command state ('cs_finished') in the 'file' member of the 'struct child' for the dead child, and removing the child from the chain. In addition, if BLOCK nonzero, we block in this function until we've reaped at least one