Blob Blame History Raw
From a919d214d10870a54c6a5e383a19a6e82e5f8a54 Mon Sep 17 00:00:00 2001
From: Christian Seiler <christian@iwakd.de>
Date: Sat, 13 Feb 2016 00:56:19 +0100
Subject: [PATCH] Build system: sort object file lists

The object file list generated by the wildcard Makefile function is not
deterministic, because it may change depending on the underlying file
system.

Use the sort function to make the list deterministic in these cases, to
be able to build open-iscsi deterministically. See
<https://reproducible-builds.org/>
for further details.

Signed-off-by: Christian Seiler <christian@iwakd.de>
---
 usr/Makefile                | 4 ++--
 utils/fwparam_ibft/Makefile | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/usr/Makefile b/usr/Makefile
index 5ac0726..277ac6a 100644
--- a/usr/Makefile
+++ b/usr/Makefile
@@ -34,7 +34,7 @@ CFLAGS += $(WARNFLAGS) -I../include -I. -D$(OSNAME) $(IPC_CFLAGS)
 PROGRAMS = iscsid iscsiadm iscsistart
 
 # libc compat files
-SYSDEPS_SRCS = $(wildcard ../utils/sysdeps/*.o)
+SYSDEPS_SRCS = $(sort $(wildcard ../utils/sysdeps/*.o))
 # sources shared between iscsid, iscsiadm and iscsistart
 ISCSI_LIB_SRCS = iscsi_util.o io.o auth.o iscsi_timer.o login.o log.o md5.o \
 	sha1.o iface.o idbm.o sysfs.o host.o session_info.o iscsi_sysfs.o \
@@ -45,7 +45,7 @@ ISCSI_LIB_SRCS = iscsi_util.o io.o auth.o iscsi_timer.o login.o log.o md5.o \
 INITIATOR_SRCS = initiator.o scsi.o actor.o event_poll.o mgmt_ipc.o kern_err_table.o
 
 # fw boot files
-FW_BOOT_SRCS = $(wildcard ../utils/fwparam_ibft/*.o)
+FW_BOOT_SRCS = $(sort $(wildcard ../utils/fwparam_ibft/*.o))
 
 # core discovery files
 DISCOVERY_SRCS = $(FW_BOOT_SRCS) strings.o discovery.o
diff --git a/utils/fwparam_ibft/Makefile b/utils/fwparam_ibft/Makefile
index 773d8eb..ade8a56 100644
--- a/utils/fwparam_ibft/Makefile
+++ b/utils/fwparam_ibft/Makefile
@@ -21,7 +21,7 @@
 #	    "Prasanna Mumbai" <mumbai.prasanna@gmail.com>
 #
 
-SYSDEPS_OBJS = $(wildcard ../sysdeps/*.o)
+SYSDEPS_OBJS = $(sort $(wildcard ../sysdeps/*.o))
 OBJS := fw_entry.o fwparam_sysfs.o $(SYSDEPS_OBJS) ../../usr/iscsi_net_util.o
 OBJS += prom_lex.o prom_parse.tab.o fwparam_ppc.o
 CLEANFILES = $(OBJS) *.output *~
-- 
2.1.4