aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-extended/ltp/ltp/0002-Makefile-Avoid-wildcard-determinism-issues.patch
blob: 4859c3eaeda627dbf1ce4c1d0d894e8a28de44d7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
From 4030e28f2c2296ba138cb5e2495202f8aec7ba32 Mon Sep 17 00:00:00 2001
From: Richard Purdie <richard.purdie@linuxfoundation.org>
Date: Tue, 9 Mar 2021 15:21:36 +0000
Subject: [PATCH 2/3] Makefile: Avoid wildcard determinism issues

wildcard used in Makefiles preserves the order of the files on disk
which leads to differences in the order the binaries are linked.

This patch tweaks the usage of wildcard to also have a sort, making
the binaries reproducible. A previous patch massively improved
the situation but wider testing showed that these other changes can
have an effect on some binaries, this patch avoids those issues as
exposed by our wider testing.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Upstream-Status: Submitted [http://lists.linux.it/pipermail/ltp/2021-March/021388.html]

---
 include/mk/env_post.mk                                     | 2 +-
 include/mk/module.mk                                       | 2 +-
 runtest/Makefile                                           | 2 +-
 scenario_groups/Makefile                                   | 2 +-
 testcases/commands/ldd/datafiles/Makefile                  | 2 +-
 testcases/kernel/hotplug/memory_hotplug/Makefile           | 3 ++-
 testcases/kernel/io/disktest/Makefile                      | 2 +-
 testcases/kernel/io/disktest/Makefile.linux                | 4 ++--
 testcases/kernel/sched/hyperthreading/ht_affinity/Makefile | 2 +-
 testcases/kernel/sched/hyperthreading/ht_enabled/Makefile  | 2 +-
 testcases/kernel/sched/sched_stress/Makefile               | 2 +-
 testcases/kernel/syscalls/lchown/Makefile                  | 2 +-
 testcases/kernel/syscalls/migrate_pages/Makefile           | 2 +-
 testcases/kernel/syscalls/move_pages/Makefile              | 2 +-
 testcases/kernel/syscalls/utils/compat_16.mk               | 2 +-
 testcases/kernel/syscalls/utils/newer_64.mk                | 2 +-
 testcases/misc/math/float/Makefile                         | 2 +-
 testcases/network/nfs/nfs_stress/nfs05_make_tree.c         | 4 ++--
 testcases/network/nfsv4/locks/Makefile                     | 2 +-
 utils/sctp/func_tests/Makefile                             | 2 +-
 20 files changed, 23 insertions(+), 22 deletions(-)

diff --git a/include/mk/env_post.mk b/include/mk/env_post.mk
index d52ad9f0b..1d22f9c53 100644
--- a/include/mk/env_post.mk
+++ b/include/mk/env_post.mk
@@ -47,7 +47,7 @@ LDFLAGS				+= -L$(top_builddir)/lib/android_libpthread
 LDFLAGS				+= -L$(top_builddir)/lib/android_librt
 endif
 
-MAKE_TARGETS			?= $(notdir $(patsubst %.c,%,$(wildcard $(abs_srcdir)/*.c)))
+MAKE_TARGETS			?= $(notdir $(patsubst %.c,%,$(sort $(wildcard $(abs_srcdir)/*.c))))
 MAKE_TARGETS			:= $(filter-out $(FILTER_OUT_MAKE_TARGETS),$(MAKE_TARGETS))
 
 # with only *.dwo, .[0-9]+.dwo can not be cleaned
diff --git a/include/mk/module.mk b/include/mk/module.mk
index 95fb8336a..6c8814b96 100644
--- a/include/mk/module.mk
+++ b/include/mk/module.mk
@@ -42,7 +42,7 @@ endif
 
 ifneq ($(filter install clean,$(MAKECMDGOALS)),)
 MAKE_TARGETS := $(filter-out %.ko, $(MAKE_TARGETS))
-MAKE_TARGETS += $(wildcard *.ko)
+MAKE_TARGETS += $(sort $(wildcard *.ko))
 endif
 
 CLEAN_TARGETS += .dep_modules *.mod built-in.a
diff --git a/runtest/Makefile b/runtest/Makefile
index b7caaee06..6a1565b6a 100644
--- a/runtest/Makefile
+++ b/runtest/Makefile
@@ -36,7 +36,7 @@ ifneq ($(WITH_POWER_MANAGEMENT_TESTSUITE),yes)
 UNWANTED_FILES		+= power_management_tests
 endif
 
-INSTALL_TARGETS		:= $(filter-out $(UNWANTED_FILES),$(notdir $(patsubst $(abs_srcdir)/%,%,$(wildcard $(abs_srcdir)/*))))
+INSTALL_TARGETS		:= $(filter-out $(UNWANTED_FILES),$(notdir $(patsubst $(abs_srcdir)/%,%,$(sort $(wildcard $(abs_srcdir)/*)))))
 
 MAKE_TARGETS		:=
 
diff --git a/scenario_groups/Makefile b/scenario_groups/Makefile
index 2978675d9..fcbc92708 100644
--- a/scenario_groups/Makefile
+++ b/scenario_groups/Makefile
@@ -31,7 +31,7 @@ UNWANTED_FILES		:= Makefile
 
 INSTALL_MODE		:= 00644
 
-INSTALL_TARGETS		:= $(filter-out $(UNWANTED_FILES),$(notdir $(patsubst $(abs_srcdir)/%,%,$(wildcard $(abs_srcdir)/*))))
+INSTALL_TARGETS		:= $(filter-out $(UNWANTED_FILES),$(notdir $(patsubst $(abs_srcdir)/%,%,$(sort $(wildcard $(abs_srcdir)/*)))))
 
 MAKE_TARGETS		:=
 
diff --git a/testcases/commands/ldd/datafiles/Makefile b/testcases/commands/ldd/datafiles/Makefile
index d8bcf5c06..01c352052 100644
--- a/testcases/commands/ldd/datafiles/Makefile
+++ b/testcases/commands/ldd/datafiles/Makefile
@@ -21,7 +21,7 @@ CPPFLAGS		+= -fpic
 
 INSTALL_TARGETS		:= ldd*.so lddfile.out
 
-LDD_C_FILES		:= $(wildcard $(abs_srcdir)/lddfile*.c)
+LDD_C_FILES		:= $(sort $(wildcard $(abs_srcdir)/lddfile*.c))
 LDD_SO_FILES		:= $(patsubst $(abs_srcdir)/%.c,%.obj.so,$(LDD_C_FILES))
 MAKE_TARGETS		:= lddfile.out
 CLEAN_TARGETS		+= *.obj $(LDD_SO_FILES)
diff --git a/testcases/kernel/hotplug/memory_hotplug/Makefile b/testcases/kernel/hotplug/memory_hotplug/Makefile
index d1ba65e65..38a77a2ba 100644
--- a/testcases/kernel/hotplug/memory_hotplug/Makefile
+++ b/testcases/kernel/hotplug/memory_hotplug/Makefile
@@ -31,6 +31,7 @@ LDLIBS		:= $(filter-out -lltp,$(LDLIBS))
 
 MAKE_TARGETS	:= memtoy
 
-memtoy: $(patsubst $(abs_srcdir)/%.c,%.o,$(wildcard $(abs_srcdir)/*.c))
+memtoy: $(patsubst $(abs_srcdir)/%.c,%.o,$(sort $(wildcard $(abs_srcdir)/*.c)))
+
 
 include $(top_srcdir)/include/mk/generic_leaf_target.mk
diff --git a/testcases/kernel/io/disktest/Makefile b/testcases/kernel/io/disktest/Makefile
index d10d98434..3a3a9cbf0 100644
--- a/testcases/kernel/io/disktest/Makefile
+++ b/testcases/kernel/io/disktest/Makefile
@@ -209,7 +209,7 @@ LDLIBS		+= -lpthread
 
 MAKE_TARGETS	:= disktest
 
-OBJS		:= $(patsubst $(abs_srcdir)/%.c,%.o,$(wildcard $(abs_srcdir)/*.c))
+OBJS		:= $(patsubst $(abs_srcdir)/%.c,%.o,$(sort $(wildcard $(abs_srcdir)/*.c)))
 
 disktest-$(VER):
 	mkdir -p "$@"
diff --git a/testcases/kernel/io/disktest/Makefile.linux b/testcases/kernel/io/disktest/Makefile.linux
index ea45b5a57..0f3aab622 100644
--- a/testcases/kernel/io/disktest/Makefile.linux
+++ b/testcases/kernel/io/disktest/Makefile.linux
@@ -167,8 +167,8 @@ mandir=/usr/share/man
 
 VER=`grep VER_STR main.h | awk -F\" '{print $$2}'`
 GBLHDRS=main.h globals.h defs.h
-ALLHDRS=$(wildcard *.h)
-SRCS=$(wildcard *.c)
+ALLHDRS=$(sort $(wildcard *.h))
+SRCS=$(sort $(wildcard *.c))
 OBJS=$(SRCS:.c=.o)
 
 CFLAGS += -g -Wall -O -D"LINUX" -D"_THREAD_SAFE" -D"_GNU_SOURCE" -D"_LARGE_FILES" -D"_LARGEFILE64_SOURCE" -D"_FILE_OFFSET_BITS=64" $(RPM_OPT_FLAGS)
diff --git a/testcases/kernel/sched/hyperthreading/ht_affinity/Makefile b/testcases/kernel/sched/hyperthreading/ht_affinity/Makefile
index 10fec96dc..6b64bd261 100644
--- a/testcases/kernel/sched/hyperthreading/ht_affinity/Makefile
+++ b/testcases/kernel/sched/hyperthreading/ht_affinity/Makefile
@@ -28,6 +28,6 @@ INSTALL_TARGETS		:= smt_smp_affinity.sh
 
 MAKE_TARGETS		:= ht_affinity
 
-$(MAKE_TARGETS): $(patsubst $(abs_srcdir)/%.c,%.o,$(wildcard $(abs_srcdir)/*.c))
+$(MAKE_TARGETS): $(patsubst $(abs_srcdir)/%.c,%.o,$(sort $(wildcard $(abs_srcdir)/*.c)))
 
 include $(top_srcdir)/include/mk/generic_leaf_target.mk
diff --git a/testcases/kernel/sched/hyperthreading/ht_enabled/Makefile b/testcases/kernel/sched/hyperthreading/ht_enabled/Makefile
index 9c1e139d6..585ff1383 100644
--- a/testcases/kernel/sched/hyperthreading/ht_enabled/Makefile
+++ b/testcases/kernel/sched/hyperthreading/ht_enabled/Makefile
@@ -28,6 +28,6 @@ INSTALL_TARGETS		:= smt_smp_enabled.sh
 
 MAKE_TARGETS		:= ht_enabled
 
-$(MAKE_TARGETS): $(patsubst $(abs_srcdir)/%.c,%.o,$(wildcard $(abs_srcdir)/*.c))
+$(MAKE_TARGETS): $(patsubst $(abs_srcdir)/%.c,%.o,$(sort $(wildcard $(abs_srcdir)/*.c)))
 
 include $(top_srcdir)/include/mk/generic_leaf_target.mk
diff --git a/testcases/kernel/sched/sched_stress/Makefile b/testcases/kernel/sched/sched_stress/Makefile
index b76126c73..4dbbf3477 100644
--- a/testcases/kernel/sched/sched_stress/Makefile
+++ b/testcases/kernel/sched/sched_stress/Makefile
@@ -10,7 +10,7 @@ INSTALL_TARGETS		:= sched_stress.sh
 
 LDLIBS			+= -lpthread
 
-MAKE_TARGETS		:= $(filter-out sched,$(patsubst $(abs_srcdir)/%.c,%,$(wildcard $(abs_srcdir)/*.c)))
+MAKE_TARGETS		:= $(filter-out sched,$(patsubst $(abs_srcdir)/%.c,%,$(sort $(wildcard $(abs_srcdir)/*.c))))
 
 RM			+= -r
 
diff --git a/testcases/kernel/syscalls/lchown/Makefile b/testcases/kernel/syscalls/lchown/Makefile
index 13d39cb81..305fee281 100644
--- a/testcases/kernel/syscalls/lchown/Makefile
+++ b/testcases/kernel/syscalls/lchown/Makefile
@@ -5,7 +5,7 @@ top_srcdir		?= ../../../..
 
 include $(top_srcdir)/include/mk/testcases.mk
 
-SRCS			:= $(wildcard $(abs_srcdir)/lchown*.c)
+SRCS			:= $(sort $(wildcard $(abs_srcdir)/lchown*.c))
 
 include $(abs_srcdir)/../utils/compat_16.mk
 
diff --git a/testcases/kernel/syscalls/migrate_pages/Makefile b/testcases/kernel/syscalls/migrate_pages/Makefile
index 46912b025..9cf3ce526 100644
--- a/testcases/kernel/syscalls/migrate_pages/Makefile
+++ b/testcases/kernel/syscalls/migrate_pages/Makefile
@@ -5,7 +5,7 @@ top_srcdir		?= ../../../..
 
 include $(top_srcdir)/include/mk/testcases.mk
 
-MAKE_TARGETS		:= $(patsubst $(abs_srcdir)/%.c,%,$(wildcard $(abs_srcdir)/*[0-9].c))
+MAKE_TARGETS		:= $(patsubst $(abs_srcdir)/%.c,%,$(sort $(wildcard $(abs_srcdir)/*[0-9].c)))
 $(MAKE_TARGETS): %: migrate_pages_common.o
 
 CPPFLAGS		+= -I$(abs_srcdir)/../utils/
diff --git a/testcases/kernel/syscalls/move_pages/Makefile b/testcases/kernel/syscalls/move_pages/Makefile
index cd7ff6349..4b22160ed 100644
--- a/testcases/kernel/syscalls/move_pages/Makefile
+++ b/testcases/kernel/syscalls/move_pages/Makefile
@@ -7,7 +7,7 @@ include $(top_srcdir)/include/mk/testcases.mk
 
 CPPFLAGS		+= -I$(abs_srcdir)/../utils
 
-MAKE_TARGETS		:= $(patsubst $(abs_srcdir)/%.c,%,$(wildcard $(abs_srcdir)/*[0-9].c))
+MAKE_TARGETS		:= $(patsubst $(abs_srcdir)/%.c,%,$(sort $(wildcard $(abs_srcdir)/*[0-9].c)))
 
 $(MAKE_TARGETS): %: move_pages_support.o
 
diff --git a/testcases/kernel/syscalls/utils/compat_16.mk b/testcases/kernel/syscalls/utils/compat_16.mk
index a0ff8f558..e81a00c40 100644
--- a/testcases/kernel/syscalls/utils/compat_16.mk
+++ b/testcases/kernel/syscalls/utils/compat_16.mk
@@ -50,7 +50,7 @@
 
 CPPFLAGS		+= -I$(abs_srcdir) -I$(abs_srcdir)/../utils
 
-SRCS			?= $(wildcard $(abs_srcdir)/*.c)
+SRCS			?= $(sort $(wildcard $(abs_srcdir)/*.c))
 
 MAKE_TARGETS		:= $(notdir $(patsubst %.c,%,$(SRCS)))
 MAKE_TARGETS_OBJS_WO_COMPAT_16	:= $(addsuffix .o,$(MAKE_TARGETS))
diff --git a/testcases/kernel/syscalls/utils/newer_64.mk b/testcases/kernel/syscalls/utils/newer_64.mk
index 8cd7e03c8..5e798057a 100644
--- a/testcases/kernel/syscalls/utils/newer_64.mk
+++ b/testcases/kernel/syscalls/utils/newer_64.mk
@@ -25,7 +25,7 @@
 
 CPPFLAGS		+= -I$(abs_srcdir) -I$(abs_srcdir)/../utils
 
-SRCS			?= $(wildcard $(abs_srcdir)/*.c)
+SRCS			?= $(sort $(wildcard $(abs_srcdir)/*.c))
 
 MAKE_TARGETS		:= $(notdir $(patsubst %.c,%,$(SRCS)))
 
diff --git a/testcases/misc/math/float/Makefile b/testcases/misc/math/float/Makefile
index 79dda35d6..5f4cb0f6c 100644
--- a/testcases/misc/math/float/Makefile
+++ b/testcases/misc/math/float/Makefile
@@ -27,6 +27,6 @@ include $(top_srcdir)/include/mk/testcases.mk
 LDLIBS		+= -lpthread -lm
 
 # main.c doesn't compile...
-MAKE_TARGETS	:= $(patsubst $(abs_srcdir)/%.c,%,$(wildcard $(abs_srcdir)/float*.c))
+MAKE_TARGETS	:= $(patsubst $(abs_srcdir)/%.c,%,$(sort $(wildcard $(abs_srcdir)/float*.c)))
 
 include $(top_srcdir)/include/mk/generic_trunk_target.mk
diff --git a/testcases/network/nfs/nfs_stress/nfs05_make_tree.c b/testcases/network/nfs/nfs_stress/nfs05_make_tree.c
index 12c86799d..23c520d9d 100644
--- a/testcases/network/nfs/nfs_stress/nfs05_make_tree.c
+++ b/testcases/network/nfs/nfs_stress/nfs05_make_tree.c
@@ -104,7 +104,7 @@ static void *thread_fn(LTP_ATTRIBUTE_UNUSED void *args)
 				"\treturn 0;\n}\n";
 
 	const char make_buf_n[] = "CFLAGS := -O -w -g\n"
-				  "SRCS=$(wildcard *.c)\n"
+				  "SRCS=$(sort $(wildcard *.c))\n"
 				  "TARGETS=$(SRCS:.c=)\n"
 				  "all: $(TARGETS)\n"
 				  "$(TARGETS): %: %.c\n"
@@ -114,7 +114,7 @@ static void *thread_fn(LTP_ATTRIBUTE_UNUSED void *args)
 
 	const char make_buf[] = "CFLAGS := -O -w -g\n"
 				"SUBDIR = dir\n"
-				"SRCS=$(wildcard *.c)\n"
+				"SRCS=$(sort $(wildcard *.c))\n"
 				"TARGETS=$(SRCS:.c=)\n"
 				"all: $(SUBDIR) $(TARGETS)\n"
 				"$(TARGETS): %: %.c\n"
diff --git a/testcases/network/nfsv4/locks/Makefile b/testcases/network/nfsv4/locks/Makefile
index 5812dea3a..05941c892 100644
--- a/testcases/network/nfsv4/locks/Makefile
+++ b/testcases/network/nfsv4/locks/Makefile
@@ -28,6 +28,6 @@ MAKE_TARGETS		:= locktests
 
 LDLIBS			+= -lpthread
 
-$(MAKE_TARGETS): $(patsubst $(abs_srcdir)/%.c,%.o,$(wildcard $(abs_srcdir)/*.c))
+$(MAKE_TARGETS): $(patsubst $(abs_srcdir)/%.c,%.o,$(sort $(wildcard $(abs_srcdir)/*.c)))
 
 include $(top_srcdir)/include/mk/generic_leaf_target.mk
diff --git a/utils/sctp/func_tests/Makefile b/utils/sctp/func_tests/Makefile
index d296c652a..a17107853 100644
--- a/utils/sctp/func_tests/Makefile
+++ b/utils/sctp/func_tests/Makefile
@@ -30,7 +30,7 @@ LDFLAGS		+= $(addprefix -L$(abs_builddir)/../,lib testlib)
 
 LDLIBS		+= -lsctputil -lsctp -lpthread
 
-V4_TARGETS	:= $(patsubst $(abs_srcdir)/%.c,%,$(wildcard $(abs_srcdir)/*.c))
+V4_TARGETS	:= $(patsubst $(abs_srcdir)/%.c,%,$(sort $(wildcard $(abs_srcdir)/*.c)))
 
 V6_TARGETS	:= test_basic_v6 test_fragments_v6 test_getname_v6 \
 		   test_inaddr_any_v6 test_peeloff_v6 \
-- 
2.27.0