summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2021-02-27 23:42:03 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-03-01 11:12:16 +0000
commitab9e43134b839218c9b057c743719dfbaced4296 (patch)
tree204a11ca6678ef20bf9cb06afa1afee3f5f88c4c
parent00dcf14b36437c9eebff729a59ce07208046218a (diff)
downloadpoky-ab9e43134b839218c9b057c743719dfbaced4296.tar.gz
syslinux: Fix reproducibility issues
Add sorting to wildcard expansion in the makefile to make builds reproducible. (From OE-Core rev: 5541ba76ccc0c416f315bc0dc14a20a33059bd5f) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/lib/oeqa/selftest/cases/reproducible.py1
-rw-r--r--meta/recipes-devtools/syslinux/syslinux/determinism.patch22
-rw-r--r--meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb5
3 files changed, 27 insertions, 1 deletions
diff --git a/meta/lib/oeqa/selftest/cases/reproducible.py b/meta/lib/oeqa/selftest/cases/reproducible.py
index fcd9d83ab8..e9c6a222dc 100644
--- a/meta/lib/oeqa/selftest/cases/reproducible.py
+++ b/meta/lib/oeqa/selftest/cases/reproducible.py
@@ -45,7 +45,6 @@ exclude_packages = [
45 'qemu', 45 'qemu',
46 'ruby-ri-docs', 46 'ruby-ri-docs',
47 'swig', 47 'swig',
48 'syslinux-misc',
49 'systemd-bootchart' 48 'systemd-bootchart'
50 ] 49 ]
51 50
diff --git a/meta/recipes-devtools/syslinux/syslinux/determinism.patch b/meta/recipes-devtools/syslinux/syslinux/determinism.patch
new file mode 100644
index 0000000000..2fb8c64df3
--- /dev/null
+++ b/meta/recipes-devtools/syslinux/syslinux/determinism.patch
@@ -0,0 +1,22 @@
1In order to build deterministic binaries, we need to sort the wildcard expansion
2so the libraries are linked in the same order each time. This fixes reproducibility
3issues within syslinux builds.
4
5Upstream-Status: Pending
6RP 2021/3/1
7
8Index: syslinux-6.04-pre2/mk/lib.mk
9===================================================================
10--- syslinux-6.04-pre2.orig/mk/lib.mk
11+++ syslinux-6.04-pre2/mk/lib.mk
12@@ -130,8 +130,8 @@ LIBENTRY_OBJS = \
13 exit.o
14
15 LIBGCC_OBJS = \
16- $(patsubst $(com32)/lib/%.c,%.o,$(wildcard $(com32)/lib/$(ARCH)/libgcc/*.c)) \
17- $(patsubst $(com32)/lib/%.S,%.o,$(wildcard $(com32)/lib/$(ARCH)/libgcc/*.S))
18+ $(sort $(patsubst $(com32)/lib/%.c,%.o,$(wildcard $(com32)/lib/$(ARCH)/libgcc/*.c))) \
19+ $(sort $(patsubst $(com32)/lib/%.S,%.o,$(wildcard $(com32)/lib/$(ARCH)/libgcc/*.S)))
20
21 LIBCONSOLE_OBJS = \
22 \
diff --git a/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb b/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb
index 8d78f62efa..dadba9eca9 100644
--- a/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb
+++ b/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb
@@ -20,11 +20,16 @@ SRC_URI = "https://www.zytor.com/pub/syslinux/Testing/6.04/syslinux-${PV}.tar.xz
20 file://0009-linux-syslinux-implement-install_bootblock.patch \ 20 file://0009-linux-syslinux-implement-install_bootblock.patch \
21 file://0010-Workaround-multiple-definition-of-symbol-errors.patch \ 21 file://0010-Workaround-multiple-definition-of-symbol-errors.patch \
22 file://0001-install-don-t-install-obsolete-file-com32.ld.patch \ 22 file://0001-install-don-t-install-obsolete-file-com32.ld.patch \
23 file://determinism.patch \
23 " 24 "
24 25
25SRC_URI[md5sum] = "2b31c78f087f99179feb357da312d7ec" 26SRC_URI[md5sum] = "2b31c78f087f99179feb357da312d7ec"
26SRC_URI[sha256sum] = "4441a5d593f85bb6e8d578cf6653fb4ec30f9e8f4a2315a3d8f2d0a8b3fadf94" 27SRC_URI[sha256sum] = "4441a5d593f85bb6e8d578cf6653fb4ec30f9e8f4a2315a3d8f2d0a8b3fadf94"
27 28
29# remove at next version upgrade or when output changes
30PR = "r1"
31HASHEQUIV_HASH_VERSION .= ".1"
32
28RECIPE_NO_UPDATE_REASON = "6.04-pre3 is broken" 33RECIPE_NO_UPDATE_REASON = "6.04-pre3 is broken"
29UPSTREAM_CHECK_URI = "https://www.zytor.com/pub/syslinux/" 34UPSTREAM_CHECK_URI = "https://www.zytor.com/pub/syslinux/"
30UPSTREAM_CHECK_REGEX = "syslinux-(?P<pver>.+)\.tar" 35UPSTREAM_CHECK_REGEX = "syslinux-(?P<pver>.+)\.tar"