From 42b0b82a5dfd15966e8820a99d95c321d685d172 Mon Sep 17 00:00:00 2001 From: Christian Seiler Date: Sat, 13 Feb 2016 01:05:33 +0100 Subject: [PATCH v2 3/9] Build system: sort object file lists Hi, Debian is currently working on making the entire archive build reproducibly. is a good resource describing the motivation behind this effort. There was one problem that was found in the open-iscsi package build system that prevented builds from being reproducible: the list of object files generated by the wildcard Makefile function are not in a deterministic order, causing changes in the output depending on the order in the underlying filesystem. I've attached a patch against the current git master that sorts the list of object files within the Makefile, making the order deterministic and allowing reproducible builds to be made. See also: It would be great if you could apply this patch upstream, so we don't have to carry it in Debian. Thanks! Regards, Christian -- You received this message because you are subscribed to the Google Groups "open-iscsi" group. To unsubscribe from this group and stop receiving emails from it, send an email to open-iscsi+unsubscribe@googlegroups.com. To post to this group, send email to open-iscsi@googlegroups.com. Visit this group at https://groups.google.com/group/open-iscsi. For more options, visit https://groups.google.com/d/optout. From a919d214d10870a54c6a5e383a19a6e82e5f8a54 Mon Sep 17 00:00:00 2001 From: Christian Seiler 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 for further details. Signed-off-by: Christian Seiler --- 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" # -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.5.5