[openwrt/openwrt] build: fix extreme build system slowdown caused by SOURCE_DATE_EPOCH changes
LEDE Commits
lede-commits at lists.infradead.org
Sat Sep 5 05:27:05 EDT 2020
nbd pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/7716a4309207addc5f359a4b5ab22f0104996028
commit 7716a4309207addc5f359a4b5ab22f0104996028
Author: Felix Fietkau <nbd at nbd.name>
AuthorDate: Sat Sep 5 11:19:11 2020 +0200
build: fix extreme build system slowdown caused by SOURCE_DATE_EPOCH changes
Adding inline shell invocations in per-target variables causes them to be
executed over and over again, which causes a significant slowdown.
Fix this by evaluating it only once per package directory
Signed-off-by: Felix Fietkau <nbd at nbd.name>
---
include/package-ipkg.mk | 4 ++--
include/package.mk | 2 ++
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/include/package-ipkg.mk b/include/package-ipkg.mk
index 0b7a561edc..62cda5b936 100644
--- a/include/package-ipkg.mk
+++ b/include/package-ipkg.mk
@@ -181,7 +181,7 @@ $$(call addfield,Depends,$$(Package/$(1)/DEPENDS)
)$$(call addfield,LicenseFiles,$(LICENSE_FILES)
)$$(call addfield,Section,$(SECTION)
)$$(call addfield,Require-User,$(USERID)
-)$$(call addfield,SourceDateEpoch,$(shell $(TOPDIR)/scripts/get_source_date_epoch.sh $(SOURCE))
+)$$(call addfield,SourceDateEpoch,$(PKG_SOURCE_DATE_EPOCH)
)$(if $(PKG_CPE_ID),CPE-ID: $(PKG_CPE_ID)
)$(if $(filter hold,$(PKG_FLAGS)),Status: unknown hold not-installed
)$(if $(filter essential,$(PKG_FLAGS)),Essential: yes
@@ -193,7 +193,7 @@ $(_endef)
$$(IPKG_$(1)) : export CONTROL=$$(Package/$(1)/CONTROL)
$$(IPKG_$(1)) : export DESCRIPTION=$$(Package/$(1)/description)
$$(IPKG_$(1)) : export PATH=$$(TARGET_PATH_PKG)
- $$(IPKG_$(1)) : export PKG_SOURCE_DATE_EPOCH=$(shell $(TOPDIR)/scripts/get_source_date_epoch.sh $(SOURCE))
+ $$(IPKG_$(1)) : export PKG_SOURCE_DATE_EPOCH:=$(PKG_SOURCE_DATE_EPOCH)
$(PKG_INFO_DIR)/$(1).provides $$(IPKG_$(1)): $(STAMP_BUILT) $(INCLUDE_DIR)/package-ipkg.mk
@rm -rf $$(IDIR_$(1)); \
$$(call remove_ipkg_files,$(1),$$(call opkg_package_files,$(call gen_ipkg_wildcard,$(1))))
diff --git a/include/package.mk b/include/package.mk
index a93d6b78f3..50bd838180 100644
--- a/include/package.mk
+++ b/include/package.mk
@@ -19,6 +19,8 @@ PKG_IREMAP ?= 1
MAKE_J:=$(if $(MAKE_JOBSERVER),$(MAKE_JOBSERVER) $(if $(filter 3.% 4.0 4.1,$(MAKE_VERSION)),-j))
+PKG_SOURCE_DATE_EPOCH:=$(if $(DUMP),,$(shell $(TOPDIR)/scripts/get_source_date_epoch.sh $(CURDIR)))
+
ifeq ($(strip $(PKG_BUILD_PARALLEL)),0)
PKG_JOBS?=-j1
else
More information about the lede-commits
mailing list