On 04.11.2020 14:44, Joerg Sonnenberger wrote:
On Wed, Nov 04, 2020 at 12:18:19PM +0000, Jonathan Perkin wrote:To me this makes more sense, and is easier to read and understand rather than embedding the "-j". The one difference is that now -j1 will be explicitly used when MAKE_JOBS_SAFE=no, where previously the -j was omitted, but again to me that feels more correct anyway.At least for bmake it makes a huge difference and not necessarily in the right direction. -j1 and no -j are quite different modes.
To explain this a bit more: Without the -j, each shell command for a target is run in its own subshell, which means that exit or cd will not affect subsequent commands. Very simple commands completely bypass the shell, using execvp directly. In -j mode (whether -j1 or -j8), all shell commands of a target are first written to a temporary shell program that is then executed. An exit in the first of these commands will skip all subsequent commands of that target.