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-18 21:20:24 +0000
commit7143980b5f0e1ddf81c3b6ff03096a9d249012ac (patch)
tree57a0b1d506e05233540ebbd37e961585cbe890fe
parent00833c52d6459758f1da8e9f88710fa14bd1bc5e (diff)
downloadpoky-7143980b5f0e1ddf81c3b6ff03096a9d249012ac.tar.gz
syslinux: Fix reproducibility issues
Add sorting to wildcard expansion in the makefile to make builds reproducible. (From OE-Core rev: 7529d0a5fff17e35238c0f005163360f7f903898) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 5541ba76ccc0c416f315bc0dc14a20a33059bd5f) Signed-off-by: Steve Sakoman <steve@sakoman.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-devtools/syslinux/syslinux/determinism.patch22
-rw-r--r--meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb5
2 files changed, 27 insertions, 0 deletions
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 4ac46ed57f..a5618327bf 100644
--- a/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb
+++ b/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb
@@ -23,11 +23,16 @@ SRC_URI = "https://www.zytor.com/pub/syslinux/Testing/6.04/syslinux-${PV}.tar.xz
23 file://0009-linux-syslinux-implement-install_bootblock.patch \ 23 file://0009-linux-syslinux-implement-install_bootblock.patch \
24 file://0010-Workaround-multiple-definition-of-symbol-errors.patch \ 24 file://0010-Workaround-multiple-definition-of-symbol-errors.patch \
25 file://0001-install-don-t-install-obsolete-file-com32.ld.patch \ 25 file://0001-install-don-t-install-obsolete-file-com32.ld.patch \
26 file://determinism.patch \
26 " 27 "
27 28
28SRC_URI[md5sum] = "2b31c78f087f99179feb357da312d7ec" 29SRC_URI[md5sum] = "2b31c78f087f99179feb357da312d7ec"
29SRC_URI[sha256sum] = "4441a5d593f85bb6e8d578cf6653fb4ec30f9e8f4a2315a3d8f2d0a8b3fadf94" 30SRC_URI[sha256sum] = "4441a5d593f85bb6e8d578cf6653fb4ec30f9e8f4a2315a3d8f2d0a8b3fadf94"
30 31
32# remove at next version upgrade or when output changes
33PR = "r1"
34HASHEQUIV_HASH_VERSION .= ".1"
35
31UPSTREAM_CHECK_URI = "https://www.zytor.com/pub/syslinux/" 36UPSTREAM_CHECK_URI = "https://www.zytor.com/pub/syslinux/"
32UPSTREAM_CHECK_REGEX = "syslinux-(?P<pver>.+)\.tar" 37UPSTREAM_CHECK_REGEX = "syslinux-(?P<pver>.+)\.tar"
33UPSTREAM_VERSION_UNKNOWN = "1" 38UPSTREAM_VERSION_UNKNOWN = "1"