From afd4e922385735b61e0c8a865579fbdefbb393b5 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN" Date: Tue, 17 Oct 2023 23:01:19 +0200 Subject: [PATCH] Revert "package/pkg-utils.mk: break hardlinks in global {TARGET, HOST}_DIR on per-package build" Commit 21d52e52d8de (package/pkg-utils.mk: break hardlinks in global {TARGET, HOST}_DIR on per-package build) stopped hardlink the source and destination when rsyncing per-package directory, on the rationale that modifying files in-place after the rsync would also modify the original file, and that break foo-rebuild and can cause issues with post-build scripts. However, what 21d52e52d8de did not envision, is that copying instead of hard-linking has two nasty side effects: - the size increase for the build directory increase with the number of packages and with the depth of th dependency chains for those packages: a (relatively small) build that was previously totalling ~13GiB in output/, now totals north of 122GiB, an almost 10-time increase; - the build time increases, as it takes more time to read+write files than it takes to create a new link to a file; the same build saw an increase of build time from 5min 10s to 7min 30s, a 45% increase. These regressions are both serious, so revert the change; we'll come up with a stopgap measure in follow-up commits. This reverts commit 21d52e52d8dee0940d28b3a38551eb183be37813. Signed-off-by: Yann E. MORIN Cc: Herve Codina Cc: Peter Korsgaard Cc: Thomas Petazzoni Reviewed-by: Herve Codina (cherry picked from commit 8f1487d6fa4cde5330f73e2432c264c0bd7940c6) Signed-off-by: Peter Korsgaard --- package/pkg-utils.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/pkg-utils.mk b/package/pkg-utils.mk index ba3da68a7b..5d5980b098 100644 --- a/package/pkg-utils.mk +++ b/package/pkg-utils.mk @@ -217,7 +217,7 @@ ifeq ($(BR2_PER_PACKAGE_DIRECTORIES),y) define per-package-rsync mkdir -p $(3) $(foreach pkg,$(1),\ - rsync -a \ + rsync -a --link-dest=$(PER_PACKAGE_DIR)/$(pkg)/$(2)/ \ $(PER_PACKAGE_DIR)/$(pkg)/$(2)/ \ $(3)$(sep)) endef