On 01/23/19 17:13, Laszlo Ersek wrote:

> FWIW, I've asked
> 
> - both on edk2-devel, about adding .NOTPARALLEL to the generated inner
> makefiles:
> 
>   "parallelism in the module-level, generated GNUmakefile's"
>   https://lists.01.org/pipermail/edk2-devel/2019-January/035463.html
> 
> - and on help-make, about safely filtering the job-related options from
> MAKEFLAGS, between the outer and inner "make" processes:
> 
>   "filtering job options from MAKEFLAGS, manually"
>   http://lists.gnu.org/archive/html/help-make/2019-01/msg00003.html

Results:

- The "build" utility in BaseTools generates such GNUMakefiles that
dependencies between targets are fully described. This is an explicit
goal and if we notice any missing deps, that's a bug to be reported and
fixed. As a consequence, we can expect the recipes in those GNUMakefiles
to be fully parallelizable. Therefore we need not add .NOTPARALLEL to
them (in the edk2 project), or filter MAKEFLAGS, or append "-j1" to
MAKEFLAGS.

- The .NOTPARALLEL target ignores any pre-requisites it gets;
.NOTPARALLEL applies to the entire current invocation of make. Therefore
we just need to stick a bare .NOTPARALLEL into
"tests/uefi-test-tools/Makefile", to keep "build" itself isolated.

I'm going to post v2 with this one addition (i.e., .NOTPARALLEL).

Thanks,
Laszlo

Reply via email to