summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Rogers <brogers@suse.com>2019-06-27 10:15:24 -0600
committerSoonKyu Park <sk7.park@samsung.com>2021-11-23 13:46:20 +0900
commitd942f4442bf16fa365770ebd4405a3e5be189ea7 (patch)
tree09e542acb73ba4be686e17538078060dff216fca
parent088f39642dd53bff80a31e5cb8dd9afedb8bef53 (diff)
downloadqemu-d942f4442bf16fa365770ebd4405a3e5be189ea7.tar.gz
qemu-d942f4442bf16fa365770ebd4405a3e5be189ea7.tar.bz2
qemu-d942f4442bf16fa365770ebd4405a3e5be189ea7.zip
ipxe:Makefile: fix issues of build reproducibility
References: bsc#1011213 It is desirable to produce the same bits on subsequent builds when the actual code of the package doesn't change. (bsc#1011213) Signed-off-by: Bruce Rogers <brogers@suse.com>
-rw-r--r--roms/ipxe/src/Makefile.housekeeping13
1 files changed, 10 insertions, 3 deletions
diff --git a/roms/ipxe/src/Makefile.housekeeping b/roms/ipxe/src/Makefile.housekeeping
index 134becd50..36cfb950e 100644
--- a/roms/ipxe/src/Makefile.housekeeping
+++ b/roms/ipxe/src/Makefile.housekeeping
@@ -1163,11 +1163,18 @@ blib : $(BLIB)
# Command to generate build ID. Must be unique for each $(BIN)/%.tmp,
# even within the same build run.
#
-BUILD_ID_CMD := perl -e 'printf "0x%08x", int ( rand ( 0xffffffff ) );'
+# NB: In the case of the SUSE qemu-ipxe package we want reproducible
+# builds, so we just use the TGT_ROM_NAME variable, which is already
+# a unique (in the context of the files we generate) hex value suitable
+# for specifying the build_id. We no longer define a BUILD_ID_CMD, as
+# we need to use the TGT_ROM_NAME variable directly in the link command
# Build timestamp
#
-BUILD_TIMESTAMP := $(shell date +%s)
+# NB: In the case of the SUSE qemu-ipxe package we want reproducible
+# builds, so we use a pre-determined timestamp, rather than the current
+# timestamp
+BUILD_TIMESTAMP := $(PACKAGING_TIMESTAMP)
# Build version
#
@@ -1187,7 +1194,7 @@ $(BIN)/version.%.o : core/version.c $(MAKEDEPS) $(GIT_INDEX)
$(BIN)/%.tmp : $(BIN)/version.%.o $(BLIB) $(MAKEDEPS) $(LDSCRIPT)
$(QM)$(ECHO) " [LD] $@"
$(Q)$(LD) $(LDFLAGS) -T $(LDSCRIPT) $(TGT_LD_FLAGS) $< $(BLIB) -o $@ \
- --defsym _build_id=`$(BUILD_ID_CMD)` \
+ --defsym _build_id=`$(PRINTF) "0x%b" "$(TGT_ROM_NAME)"` \
--defsym _build_timestamp=$(BUILD_TIMESTAMP) \
-Map $(BIN)/$*.tmp.map
$(Q)$(OBJDUMP) -ht $@ | $(PERL) $(SORTOBJDUMP) >> $(BIN)/$*.tmp.map