Source: fio
Version: 2.10-2
Severity: wishlist
Tags: patch upstream
User: reproducible-bui...@lists.alioth.debian.org
Usertags: fileordering
X-Debbugs-Cc: reproducible-bui...@lists.alioth.debian.org

Hi!

While working on the "reproducible builds" effort [1], we have noticed
that fio could not be built reproducibly.
It collects source files in readdir order, which leads to a
non-deterministic linking order.

The attached patch fixes this by sorting the list of object files.

Regards,
 Reiner

[1]: https://wiki.debian.org/ReproducibleBuilds
diff --git a/debian/patches/reproducible-build.patch b/debian/patches/reproducible-build.patch
new file mode 100644
index 0000000..cc75739
--- /dev/null
+++ b/debian/patches/reproducible-build.patch
@@ -0,0 +1,14 @@
+Author: Reiner Herrmann <rei...@reiner-h.de>
+Description: Sort object files for deterministic linking order
+
+--- a/Makefile
++++ b/Makefile
+@@ -179,7 +179,7 @@
+   CFLAGS += -DPSAPI_VERSION=1 -Ios/windows/posix/include -Wno-format -static
+ endif
+ 
+-OBJS := $(SOURCE:.c=.o)
++OBJS := $(sort $(SOURCE:.c=.o))
+ 
+ FIO_OBJS = $(OBJS) fio.o
+ 
diff --git a/debian/patches/series b/debian/patches/series
index 7e2c2db..3568753 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -2,3 +2,4 @@ makefile-manpagepath
 fio2gnuplot-manpage
 configure-no-configlog
 fix-ftbfs-with-libmtd.h
+reproducible-build.patch

Attachment: signature.asc
Description: Digital signature

Reply via email to