diff mbox series

[1/2] lz4: Fix static library reproducibility issue

Message ID 20240829101112.3986061-1-richard.purdie@linuxfoundation.org
State Accepted, archived
Commit 79d6d0fa239ab0cf271c01d8169a7d41811f8b4e
Headers show
Series [1/2] lz4: Fix static library reproducibility issue | expand

Commit Message

Richard Purdie Aug. 29, 2024, 10:11 a.m. UTC
The autobuilder was seeing an intermittent reproducbility issue in lz4 with
regard to symbol ordering in the static library. Add a patch to fix this which
has been submitted upstream.

Fix the SRC_URI whitespace and cleanup the patch directory naming whilst here.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---
 .../lz4/lz4/reproducibility.patch             | 33 +++++++++++++++++++
 .../lz4/{files => lz4}/run-ptest              |  0
 meta/recipes-support/lz4/lz4_1.10.0.bb        |  4 +--
 3 files changed, 35 insertions(+), 2 deletions(-)
 create mode 100644 meta/recipes-support/lz4/lz4/reproducibility.patch
 rename meta/recipes-support/lz4/{files => lz4}/run-ptest (100%)
diff mbox series

Patch

diff --git a/meta/recipes-support/lz4/lz4/reproducibility.patch b/meta/recipes-support/lz4/lz4/reproducibility.patch
new file mode 100644
index 00000000000..c138986da89
--- /dev/null
+++ b/meta/recipes-support/lz4/lz4/reproducibility.patch
@@ -0,0 +1,33 @@ 
+lib/Makefile: Fix static library reproducibility
+
+The static library contents varies depending of the order of the object files on disk meaning
+it isn't reproducible.
+
+To avoid this, use the SRCFILES values which are already sorted, mapped to the object names
+instead.
+
+
+Upstream-Status: Submitted [https://github.com/lz4/lz4/pull/1497]
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+
+Index: git/lib/Makefile
+===================================================================
+--- git.orig/lib/Makefile
++++ git/lib/Makefile
+@@ -55,6 +55,7 @@ CFLAGS   = $(DEBUGFLAGS) $(USERCFLAGS)
+ ALLFLAGS = $(CFLAGS) $(CPPFLAGS) $(LDFLAGS)
+ 
+ SRCFILES := $(sort $(wildcard *.c))
++OBJFILES = $(SRCFILES:.c=.o)
+ 
+ include ../Makefile.inc
+ 
+@@ -102,7 +103,7 @@ liblz4.a: $(SRCFILES)
+ ifeq ($(BUILD_STATIC),yes)  # can be disabled on command line
+ 	@echo compiling static library
+ 	$(COMPILE.c) $^
+-	$(AR) rcs $@ *.o
++	$(AR) rcs $@ $(OBJFILES)
+ endif
+ 
+ ifeq ($(WINBASED),yes)
diff --git a/meta/recipes-support/lz4/files/run-ptest b/meta/recipes-support/lz4/lz4/run-ptest
similarity index 100%
rename from meta/recipes-support/lz4/files/run-ptest
rename to meta/recipes-support/lz4/lz4/run-ptest
diff --git a/meta/recipes-support/lz4/lz4_1.10.0.bb b/meta/recipes-support/lz4/lz4_1.10.0.bb
index 40768fb2925..3b98adf42e5 100644
--- a/meta/recipes-support/lz4/lz4_1.10.0.bb
+++ b/meta/recipes-support/lz4/lz4_1.10.0.bb
@@ -13,8 +13,8 @@  PE = "1"
 SRCREV = "ebb370ca83af193212df4dcbadcc5d87bc0de2f0"
 
 SRC_URI = "git://github.com/lz4/lz4.git;branch=release;protocol=https \
-	   file://run-ptest \
-	   "
+           file://reproducibility.patch \
+           file://run-ptest"
 UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>.*)"
 
 S = "${WORKDIR}/git"