Instead of having find directly invoke touch for each file in the root
file system, pass a list to xargs for batching. This significantly
reduces the number of times the touch program is invoked and speeds up
the do_image task time:
PKG TASK ABSDIFF RELDIFF CPUTIME1 -> CPUTIME2
my-image do_image -45.3s -94.2% 48.1s -> 2.8s
Cumulative cputime:
-44.3s -92.3% 00:48.1 (48.1s) -> 00:03.7 (3.7s)
Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit
15c65f90a3aa1e98c2beab2539403157df1fca08)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
fi
# Set mtime of all files to a reproducible value
bbnote "reproducible_final_image_task: mtime set to $REPRODUCIBLE_TIMESTAMP_ROOTFS"
- find ${IMAGE_ROOTFS} -exec touch -h --date=@$REPRODUCIBLE_TIMESTAMP_ROOTFS {} \;
+ find ${IMAGE_ROOTFS} -print0 | xargs -0 touch -h --date=@$REPRODUCIBLE_TIMESTAMP_ROOTFS
fi
}