From: Tobias Henkel <[email protected]> Hello,
while trying to get icecc work I faced some issues which are addressed in this patch series. First it was difficult to find out the reason why some packages don't use icecc because the relevant information was missing in the logs. There were also some messages which were disturbing the normal log message flow during the build. I also noticed that changing the ICECC blacklist variables always caused a full rebuild because the sstate checksums didn't match. So adding these blacklist variables to BB_HASHBASE_WHITELIST speeds up working with incremental changes to these variables a lot. Further I encountered some packages calling the compiler in the install step. This caused either icecc not being used in this step or even build failures. For this to work the icecc environment must also be set in do_install. For this change also a dummy python version of set_icecc_env was needed because there was at least one package which provided its own python version of do_install where set_icecc_env didn't exist. I also had trouble with our own kernel recipe which caused an error during recipe parsing. This recipe uses shell expansion in KERNEL_CC. This causes a syntax error when this variable gets expanded in get_cross_kernel_cc. This function now shell expands KERNEL_CC if necessary before expanding it. Further for some recipes (e.g. icedtea7 in meta-java) it was needed to add a whitelist to be able to force icecc even if the recipe sets PARALLEL_MAKE to "" but supports parallel building in a different way. In some cases I had race conditions when creating the toolchain package which gets distributed to the icecc nodes. This mostly happened after the cross toolchain is ready because then several tasks using the cross toolchain start in parallel. The result was in many cases a broken toolchain package resulting in build failures. 1..3 : Logging changes 4 : Improve sstate interaction 5..6 : Enable icecc also in install step 7 : Improve KERNEL_CC handling 8 : Add package whitelist 9 : Fix race condition when packaging toolchain Best regards Tobias Henkel Tobias Henkel (9): icecc: Log reason in error cases icecc: Remove output on stderr when calling which icecc: Reduce verbosity with empty PARALLEL_MAKE icecc: Add blacklist vars to BB_HASHBASE_WHITELIST icecc: Add dummy python version of set_icecc_env icecc: Enable icecc also for install step icecc: Support shell evaluation of KERNEL_CC icecc: Add package whitelist icecc: Fix race condition when packaging toolchain meta/classes/icecc.bbclass | 75 ++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 62 insertions(+), 13 deletions(-) -- 1.8.3.1 _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
