]> code.ossystems Code Review - openembedded-core.git/commitdiff
classes/image: Use xargs to set file timestamps
authorJoshua Watt <JPEWhacker@gmail.com>
Wed, 5 May 2021 21:40:06 +0000 (16:40 -0500)
committerAnuj Mittal <anuj.mittal@intel.com>
Fri, 7 May 2021 00:51:32 +0000 (08:51 +0800)
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: Anuj Mittal <anuj.mittal@intel.com>
meta/classes/image.bbclass

index 013455f492424b0d3e252c63bd0dfc57e934f2b5..353cc671759760672aba4b2a1280581a8aea2b58 100644 (file)
@@ -657,7 +657,7 @@ reproducible_final_image_task () {
         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
 }