From 2de56aa0792ec93445130d801936a8ea643fad27 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Fri, 20 Jul 2018 10:25:17 +0000 Subject: sstate/bitbake.conf: Use pigz if available Currently the compression of sstate objects is single threaded. In the case of ltp, this takes around 33s. If we add pigz into the list of non-fatal HOSTTOOLS and then use if it available when building the sstate object, this time drops to around 6s. Since pigz is now widely available this is an optimisation we should utilise. Signed-off-by: Richard Purdie --- meta/classes/sstate.bbclass | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'meta/classes/sstate.bbclass') diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass index 5a0722567a..350d3107f5 100644 --- a/meta/classes/sstate.bbclass +++ b/meta/classes/sstate.bbclass @@ -715,17 +715,24 @@ sstate_task_postfunc[dirs] = "${WORKDIR}" # sstate_create_package () { TFILE=`mktemp ${SSTATE_PKG}.XXXXXXXX` + + # Use pigz if available + OPT="-cz" + if [ -x "$(command -v pigz)" ]; then + OPT="-I pigz -c" + fi + # Need to handle empty directories if [ "$(ls -A)" ]; then set +e - tar -czf $TFILE * + tar $OPT -f $TFILE * ret=$? if [ $ret -ne 0 ] && [ $ret -ne 1 ]; then exit 1 fi set -e else - tar -cz --file=$TFILE --files-from=/dev/null + tar $OPT --file=$TFILE --files-from=/dev/null fi chmod 0664 $TFILE mv -f $TFILE ${SSTATE_PKG} -- cgit 1.2.3-korg