When building hvmloader for Xen tools the ipxe objects are also linked
into the binary. Unfortunately the linker will place them in the order
found in the archive. Since this order is random the resulting hvmloader
binary differs when it was built from identical sources but on different
build hosts. To help with creating a reproducible binary the elements in
blib.a must simply be sorted before passing them to $(AR).

Signed-off-by: Olaf Hering <o...@aepfle.de>
Cc: Ian Jackson <ian.jack...@eu.citrix.com>
Cc: Stefano Stabellini <stefano.stabell...@eu.citrix.com>
Cc: Ian Campbell <ian.campb...@citrix.com>
Cc: Wei Liu <wei.l...@citrix.com>
---

This was sent to the ipxe listm no reply so far:
http://lists.ipxe.org/pipermail/ipxe-devel/2015-February/003959.html

 tools/firmware/etherboot/patches/build-compare.patch | 19 +++++++++++++++++++
 tools/firmware/etherboot/patches/series              |  1 +
 2 files changed, 20 insertions(+)

diff --git a/tools/firmware/etherboot/patches/build-compare.patch 
b/tools/firmware/etherboot/patches/build-compare.patch
new file mode 100644
index 0000000..d41f68b
--- /dev/null
+++ b/tools/firmware/etherboot/patches/build-compare.patch
@@ -0,0 +1,19 @@
+The result of $(wildcard *) is random.
+Sort input files to reduce build-compare noise.
+---
+ ipxe/src/Makefile.housekeeping |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: ipxe/src/Makefile.housekeeping
+===================================================================
+--- ipxe/src/Makefile.housekeeping
++++ ipxe/src/Makefile.housekeeping
+@@ -773,7 +773,7 @@ BLIB               = $(BIN)/blib.a
+ $(BLIB) : $(BLIB_OBJS) $(BLIB_LIST) $(MAKEDEPS)
+       $(Q)$(RM) $(BLIB)
+       $(QM)$(ECHO) "  [AR] $@"
+-      $(Q)$(AR) r $@ $(BLIB_OBJS)
++      $(Q)$(AR) r $@ $(sort $(BLIB_OBJS))
+       $(Q)$(RANLIB) $@
+ blib : $(BLIB)
+ 
diff --git a/tools/firmware/etherboot/patches/series 
b/tools/firmware/etherboot/patches/series
index 5bd7df8..7512c14 100644
--- a/tools/firmware/etherboot/patches/series
+++ b/tools/firmware/etherboot/patches/series
@@ -2,3 +2,4 @@ boot_prompt_option.patch
 build_fix_1.patch
 build_fix_2.patch
 build_fix_3.patch
+build-compare.patch

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

Reply via email to