Bug 12567

Summary: parallel_make_argument broken
Product: [Build System, Metadata & Runtime] OE-Core Reporter: Diego Russo <diego.russo>
Component: coreAssignee: Ross Burton <ross.burton>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: High CC: meta.mr.watcher, meta.watcher, stephano
Version: unspecified   
Target Milestone: 2.5 M3   
Hardware: x86   
OS: Multiple   
Whiteboard:
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: No (bug/feature does not impact docs)

Description Diego Russo 2018-02-22 15:05:39 UTC
Pull request https://github.com/openembedded/openembedded-core/commit/ccd1142d22b31ed85d8823b1bc9e11ccfd72b61f?diff=unified#r27676626 has introduced two new functions which deal with parallelism: parallel_make and parallel_make_argument.
The implementation of parallel_make_argument is broken when a limit is passed to the function.

The boost recipe (https://github.com/openembedded/openembedded-core/blob/ccd1142d22b31ed85d8823b1bc9e11ccfd72b61f/meta/recipes-support/boost/boost.inc) uses the new function in this way:

BOOST_PARALLEL_MAKE = "${@oe.utils.parallel_make_argument(d, '-j%d', limit=64)}"

with limit=64 to safeguard a bug which is present in bjam.

In our builds we have set PARALLEL_MAKE=16, so we expect bjam to run with -j16 but instead it will be always running with -j64.

This because the implementation of parallel_make_argument is not correct.
Comment 1 Ross Burton 2018-02-22 15:13:16 UTC
Patch already on the list, will be in master soon.
Comment 2 Diego Russo 2018-02-22 15:14:38 UTC
Ross, thanks for the update!
Comment 3 Diego Russo 2018-02-27 10:30:40 UTC
I see this has been fixed by https://github.com/openembedded/openembedded-core/commit/45205be547967c84dff96403c3a6825a62e3ca6a

I tried a build and it is working as expected setting PARALLEL_MAKE=16

bjam -j16 -d+2 -q --ignore-site-config -sTOOLS=gcc -sGCC=arm-oe-linux-gnueabi-gcc...

I'll close the ticket as resolved/fixed.

Thanks