]> git.ipfire.org Git - thirdparty/openembedded/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)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 6 May 2021 07:41:21 +0000 (08:41 +0100)
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>
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
 }