From b737686b2c5277bfa62705c41e71ad60e1d44ae8 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Mon, 25 Jan 2016 15:49:31 +0000 Subject: [PATCH] build: use -iremap feature to replace __FILE__ absolute path names in packages with ones relative to $(BUILD_DIR) improves reproducible builds Signed-off-by: Felix Fietkau SVN-Revision: 48489 --- include/package.mk | 5 +++++ rules.mk | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/include/package.mk b/include/package.mk index 1dfbd68d33f..ca315b59ace 100644 --- a/include/package.mk +++ b/include/package.mk @@ -14,6 +14,7 @@ PKG_INSTALL_DIR ?= $(PKG_BUILD_DIR)/ipkg-install PKG_MD5SUM ?= unknown PKG_BUILD_PARALLEL ?= PKG_USE_MIPS16 ?= 1 +PKG_IREMAP ?= 1 ifneq ($(CONFIG_PKG_BUILD_USE_JOBSERVER),) MAKE_J:=$(if $(MAKE_JOBSERVER),$(MAKE_JOBSERVER) -j) @@ -33,6 +34,10 @@ ifdef CONFIG_USE_MIPS16 TARGET_CFLAGS += -mips16 -minterlink-mips16 endif endif +ifeq ($(strip $(PKG_IREMAP)),1) + IREMAP_CFLAGS = $(call iremap,$(PKG_BUILD_DIR),$(notdir $(PKG_BUILD_DIR))) + TARGET_CFLAGS += $(IREMAP_CFLAGS) +endif include $(INCLUDE_DIR)/hardening.mk include $(INCLUDE_DIR)/prereq.mk diff --git a/rules.mk b/rules.mk index 11ed80950a7..b4bdc0dd6eb 100644 --- a/rules.mk +++ b/rules.mk @@ -118,6 +118,10 @@ else TOOLCHAIN_DIR_NAME:=toolchain-$(GNU_TARGET_NAME) endif +ifeq ($(or $(CONFIG_EXTERNAL_TOOLCHAIN),$(CONFIG_GCC_VERSION_4_8)),) + iremap = -iremap $(1):$(2) +endif + PACKAGE_DIR:=$(BIN_DIR)/packages BUILD_DIR:=$(BUILD_DIR_BASE)/$(TARGET_DIR_NAME) STAGING_DIR:=$(TOPDIR)/staging_dir/$(TARGET_DIR_NAME)