diff options
author | Philippe Coval <philippe.coval@open.eurogiciel.org> | 2014-12-17 16:46:29 -0500 |
---|---|---|
committer | Gene Cumm <gene.cumm@gmail.com> | 2015-01-05 20:43:13 -0500 |
commit | be645d7a9848847388a662f6c0f7571d52ed7a05 (patch) | |
tree | 8074428b499d413984e372b8d2a0841a4662b4cf /com32 | |
parent | 5932f124bce94b662b0b7dc9b79cdc4802d4731c (diff) | |
download | syslinux-be645d7a9848847388a662f6c0f7571d52ed7a05.tar.gz |
build: sort sources to build in a more deterministic way
It has been observed that binaries contents
are depending on the order of linked objects.
This order is caused by GNU make's wildcard function
and the position of sources on filesystem.
This change tries to prevent this kind of randomness.
Also consider building using -j1 flag
to make it even more reproductible.
Change-Id: Ie8eee7f336e6f1fa2863c4150d967afd15519f1d
Bug: http://bugzilla.syslinux.org/show_bug.cgi?id=57#related
Signed-off-by: Philippe Coval <philippe.coval at open.eurogiciel.org>
Diffstat (limited to 'com32')
-rw-r--r-- | com32/cmenu/Makefile | 6 | ||||
-rw-r--r-- | com32/gpllib/Makefile | 2 | ||||
-rw-r--r-- | com32/hdt/Makefile | 2 | ||||
-rw-r--r-- | com32/libupload/Makefile | 2 | ||||
-rw-r--r-- | com32/rosh/Makefile | 2 | ||||
-rw-r--r-- | com32/sysdump/Makefile | 4 |
6 files changed, 9 insertions, 9 deletions
diff --git a/com32/cmenu/Makefile b/com32/cmenu/Makefile index 6bb52316..b81b68ed 100644 --- a/com32/cmenu/Makefile +++ b/com32/cmenu/Makefile @@ -32,8 +32,8 @@ LIBMENU = libmenu/syslnx.o libmenu/com32io.o libmenu/tui.o \ libmenu/menu.o libmenu/passwords.o libmenu/des.o libmenu/help.o \ $(objdir)/com32/libutil/libutil.c32 $(objdir)/com32/lib/libcom32.c32 -CMENUS = $(patsubst %.c,%.c32,$(wildcard $(SRC)/*.c)) -IMENUS = $(patsubst %.menu,%.c32,$(wildcard $(SRC)/*.menu)) +CMENUS = $(patsubst %.c,%.c32,$(sort $(wildcard $(SRC)/*.c))) +IMENUS = $(patsubst %.menu,%.c32,$(sort $(wildcard $(SRC)/*.menu))) MENUS = $(LIBS) $(subst $(SRC)/,,$(CMENUS) $(IMENUS)) @@ -62,7 +62,7 @@ clean: tidy menuclean rm -f *.lss *.com menuclean: - rm -f $(patsubst %.menu,%.c,$(wildcard *.menu)) + rm -f $(patsubst %.menu,%.c,$(sort $(wildcard *.menu))) spotless: clean libclean menuclean rm -f *~ \#* *.c32 diff --git a/com32/gpllib/Makefile b/com32/gpllib/Makefile index e3e30d76..1fec9145 100644 --- a/com32/gpllib/Makefile +++ b/com32/gpllib/Makefile @@ -8,7 +8,7 @@ include $(MAKEDIR)/lib.mk REQFLAGS += -I$(SRC)/../gplinclude -I$(SRC)/../gplinclude/zzjson GPLDIRS := $(SRC) $(addprefix $(SRC)/,disk dmi vpd acpi zzjson) -LIBOBJS := $(subst $(SRC)/,,$(foreach dir,$(GPLDIRS),$(patsubst %.c,%.o,$(wildcard $(dir)/*.c)))) +LIBOBJS := $(subst $(SRC)/,,$(foreach dir,$(GPLDIRS),$(patsubst %.c,%.o,$(sort $(wildcard $(dir)/*.c))))) BINDIR = /usr/bin LIBDIR = /usr/lib diff --git a/com32/hdt/Makefile b/com32/hdt/Makefile index 80f2d0a0..61736d05 100644 --- a/com32/hdt/Makefile +++ b/com32/hdt/Makefile @@ -25,7 +25,7 @@ CFLAGS += -I$(com32)/cmenu/libmenu -I$(com32) MODULES = hdt.c32 TESTFILES = -OBJS = $(subst $(SRC)/,,$(patsubst %.c,%.o,$(wildcard $(SRC)/*.c))) +OBJS = $(subst $(SRC)/,,$(patsubst %.c,%.o,$(sort $(wildcard $(SRC)/*.c)))) VERSION = $(shell $(SED) -n 's/\#define VERSION \"\(.*\)\"/\1/p' hdt.h) CODENAME = $(shell $(SED) -n 's/\#define CODENAME \"\(.*\)\"/\1/p' hdt.h) NODASH_VERSION = $(shell echo $(VERSION) | $(SED) -e 's/-/_/g' | $(SED) -e 's/\./_/g') diff --git a/com32/libupload/Makefile b/com32/libupload/Makefile index f9440c57..a7799136 100644 --- a/com32/libupload/Makefile +++ b/com32/libupload/Makefile @@ -4,7 +4,7 @@ include $(MAKEDIR)/com32.mk REQFLAGS += -I$(SRC) -LIBOBJS := $(notdir $(patsubst %.c,%.o,$(wildcard $(SRC)/*.c))) +LIBOBJS := $(notdir $(patsubst %.c,%.o,$(sort $(wildcard $(SRC)/*.c)))) BINDIR = /usr/bin LIBDIR = /usr/lib diff --git a/com32/rosh/Makefile b/com32/rosh/Makefile index 4d900f4f..0d49eece 100644 --- a/com32/rosh/Makefile +++ b/com32/rosh/Makefile @@ -27,7 +27,7 @@ include $(MAKEDIR)/rosh.mk # official release. Otherwise, substitute a hex string that is pretty much # guaranteed to be unique to be unique from build to build. ifndef HEXDATE -HEXDATE := $(shell $(PERL) $(topdir)/now.pl $(SRCS) $(wildcard *.h)) +HEXDATE := $(shell $(PERL) $(topdir)/now.pl $(SRCS) $(sort $(wildcard *.h))) endif ifndef DATE DATE := $(shell sh $(topdir)/gen-id.sh $(VERSION) $(HEXDATE)) diff --git a/com32/sysdump/Makefile b/com32/sysdump/Makefile index 240edaaa..ba9bcaed 100644 --- a/com32/sysdump/Makefile +++ b/com32/sysdump/Makefile @@ -27,14 +27,14 @@ CFLAGS += -I$(com32) -I$(topdir) MODULES = sysdump.c32 TESTFILES = -SRCS = $(wildcard $(SRC)/*.c) +SRCS = $(sort $(wildcard $(SRC)/*.c)) OBJS = $(subst $(SRC)/,,$(patsubst %.c,%.o,$(SRCS))) # The DATE is set on the make command line when building binaries for # official release. Otherwise, substitute a hex string that is pretty much # guaranteed to be unique to be unique from build to build. ifndef HEXDATE -HEXDATE := $(shell $(PERL) $(topdir)/now.pl $(SRCS) $(wildcard *.h)) +HEXDATE := $(shell $(PERL) $(topdir)/now.pl $(SRCS) $(sort $(wildcard *.h))) endif ifndef DATE DATE := $(shell sh $(topdir)/gen-id.sh $(VERSION) $(HEXDATE)) |