blob: e5413bf38951fff907d12f371c5a8e58a25200db [file] [log] [blame]
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001From 7fb1192f112c1920bfd39f4185f34e9afff3cff2 Mon Sep 17 00:00:00 2001
2From: Ross Burton <ross.burton@intel.com>
3Date: Sat, 5 Mar 2016 00:12:02 +0000
4Subject: [PATCH 24/28] Fix the parallel races in the Makefiles.
5
6This patch was taken from the Gentoo packaging:
7https://gitweb.gentoo.org/repo/gentoo.git/plain/dev-libs/openssl/files/openssl-1.0.2g-parallel-build.patch
8
9Upstream-Status: Pending
10Signed-off-by: Ross Burton <ross.burton@intel.com>
11
12Refreshed for 1.0.2i
13Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
14
15---
16 Makefile.org | 14 +-
17 Makefile.org.orig | 10 +-
18 Makefile.shared | 2 +
19 Makefile.shared.orig | 655 ++++++++++++++++++++++++++++++++++++++++++++++++++
20 crypto/Makefile | 10 +-
21 engines/Makefile | 6 +-
22 engines/Makefile.orig | 338 ++++++++++++++++++++++++++
23 test/Makefile | 92 +++----
24 test/Makefile.orig | 88 ++++---
25 9 files changed, 1108 insertions(+), 107 deletions(-)
26 create mode 100644 Makefile.shared.orig
27 create mode 100644 engines/Makefile.orig
28
29diff --git a/Makefile.org b/Makefile.org
30index 8e7936c..ed98d2a 100644
31--- a/Makefile.org
32+++ b/Makefile.org
33@@ -283,17 +283,17 @@ build_libcrypto: build_crypto build_engines libcrypto.pc
34 build_libssl: build_ssl libssl.pc
35
36 build_crypto:
37- @dir=crypto; target=all; $(BUILD_ONE_CMD)
38+ +@dir=crypto; target=all; $(BUILD_ONE_CMD)
39 build_ssl: build_crypto
40- @dir=ssl; target=all; $(BUILD_ONE_CMD)
41+ +@dir=ssl; target=all; $(BUILD_ONE_CMD)
42 build_engines: build_crypto
43- @dir=engines; target=all; $(BUILD_ONE_CMD)
44+ +@dir=engines; target=all; $(BUILD_ONE_CMD)
45 build_apps: build_libs
46- @dir=apps; target=all; $(BUILD_ONE_CMD)
47+ +@dir=apps; target=all; $(BUILD_ONE_CMD)
48 build_tests: build_libs
49- @dir=test; target=all; $(BUILD_ONE_CMD)
50+ +@dir=test; target=all; $(BUILD_ONE_CMD)
51 build_tools: build_libs
52- @dir=tools; target=all; $(BUILD_ONE_CMD)
53+ +@dir=tools; target=all; $(BUILD_ONE_CMD)
54
55 all_testapps: build_libs build_testapps
56 build_testapps:
57@@ -565,7 +565,7 @@ install_sw:
58 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
59 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
60 done;
61- @set -e; target=install; $(RECURSIVE_BUILD_CMD)
62+ +@set -e; target=install; $(RECURSIVE_BUILD_CMD)
63 @set -e; liblist="$(LIBS)"; for i in $$liblist ;\
64 do \
65 if [ -f "$$i" ]; then \
66diff --git a/Makefile.shared b/Makefile.shared
67index f6f92e7..8164186 100644
68--- a/Makefile.shared
69+++ b/Makefile.shared
70@@ -105,6 +105,7 @@ LINK_SO= \
71 SHAREDFLAGS="$(OE_LDFLAGS) $${SHAREDFLAGS:-$(CFLAGS) $(SHARED_LDFLAGS)}"; \
72 LIBPATH=`for x in $$LIBDEPS; do echo $$x; done | sed -e 's/^ *-L//;t' -e d | uniq`; \
73 LIBPATH=`echo $$LIBPATH | sed -e 's/ /:/g'`; \
74+ [ -e $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX ] && exit 0; \
75 LD_LIBRARY_PATH=$$LIBPATH:$$LD_LIBRARY_PATH \
76 $${SHAREDCMD} $${SHAREDFLAGS} \
77 -o $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX \
78@@ -122,6 +123,7 @@ SYMLINK_SO= \
79 done; \
80 fi; \
81 if [ -n "$$SHLIB_SOVER" ]; then \
82+ [ -e "$$SHLIB$$SHLIB_SUFFIX" ] || \
83 ( $(SET_X); rm -f $$SHLIB$$SHLIB_SUFFIX; \
84 ln -s $$prev $$SHLIB$$SHLIB_SUFFIX ); \
85 fi; \
86diff --git a/crypto/Makefile b/crypto/Makefile
87index 17a87f8..29c2dcf 100644
88--- a/crypto/Makefile
89+++ b/crypto/Makefile
90@@ -85,11 +85,11 @@ testapps:
91 @if [ -z "$(THIS)" ]; then $(MAKE) -f $(TOP)/Makefile reflect THIS=$@; fi
92
93 subdirs:
94- @target=all; $(RECURSIVE_MAKE)
95+ +@target=all; $(RECURSIVE_MAKE)
96
97 files:
98 $(PERL) $(TOP)/util/files.pl "CPUID_OBJ=$(CPUID_OBJ)" Makefile >> $(TOP)/MINFO
99- @target=files; $(RECURSIVE_MAKE)
100+ +@target=files; $(RECURSIVE_MAKE)
101
102 links:
103 @$(PERL) $(TOP)/util/mklink.pl ../include/openssl $(EXHEADER)
104@@ -100,7 +100,7 @@ links:
105 # lib: $(LIB): are splitted to avoid end-less loop
106 lib: $(LIB)
107 @touch lib
108-$(LIB): $(LIBOBJ)
109+$(LIB): $(LIBOBJ) | subdirs
110 $(AR) $(LIB) $(LIBOBJ)
111 test -z "$(FIPSLIBDIR)" || $(AR) $(LIB) $(FIPSLIBDIR)fipscanister.o
112 $(RANLIB) $(LIB) || echo Never mind.
113@@ -111,7 +111,7 @@ shared: buildinf.h lib subdirs
114 fi
115
116 libs:
117- @target=lib; $(RECURSIVE_MAKE)
118+ +@target=lib; $(RECURSIVE_MAKE)
119
120 install:
121 @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
122@@ -120,7 +120,7 @@ install:
123 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
124 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
125 done;
126- @target=install; $(RECURSIVE_MAKE)
127+ +@target=install; $(RECURSIVE_MAKE)
128
129 lint:
130 @target=lint; $(RECURSIVE_MAKE)
131diff --git a/engines/Makefile b/engines/Makefile
132index fe8e9ca..a43d21b 100644
133--- a/engines/Makefile
134+++ b/engines/Makefile
135@@ -72,7 +72,7 @@ top:
136
137 all: lib subdirs
138
139-lib: $(LIBOBJ)
140+lib: $(LIBOBJ) | subdirs
141 @if [ -n "$(SHARED_LIBS)" ]; then \
142 set -e; \
143 for l in $(LIBNAMES); do \
144@@ -89,7 +89,7 @@ lib: $(LIBOBJ)
145
146 subdirs:
147 echo $(EDIRS)
148- @target=all; $(RECURSIVE_MAKE)
149+ +@target=all; $(RECURSIVE_MAKE)
150
151 files:
152 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
153@@ -128,7 +128,7 @@ install:
154 mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/ssl/engines/$$pfx$$l$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/ssl/engines/$$pfx$$l$$sfx ); \
155 done; \
156 fi
157- @target=install; $(RECURSIVE_MAKE)
158+ +@target=install; $(RECURSIVE_MAKE)
159
160 tags:
161 ctags $(SRC)
162diff --git a/test/Makefile b/test/Makefile
163index 40abd60..78d3788 100644
164--- a/test/Makefile
165+++ b/test/Makefile
166@@ -145,7 +145,7 @@ install:
167 tags:
168 ctags $(SRC)
169
170-tests: exe apps $(TESTS)
171+tests: exe $(TESTS)
172
173 apps:
174 @(cd ..; $(MAKE) DIRS=apps all)
175@@ -444,139 +444,139 @@ BUILD_CMD_STATIC=shlib_target=; \
176 link_app.$${shlib_target}
177
178 $(RSATEST)$(EXE_EXT): $(RSATEST).o $(DLIBCRYPTO)
179- @target=$(RSATEST); $(BUILD_CMD)
180+ +@target=$(RSATEST); $(BUILD_CMD)
181
182 $(BNTEST)$(EXE_EXT): $(BNTEST).o $(DLIBCRYPTO)
183- @target=$(BNTEST); $(BUILD_CMD)
184+ +@target=$(BNTEST); $(BUILD_CMD)
185
186 $(ECTEST)$(EXE_EXT): $(ECTEST).o $(DLIBCRYPTO)
187- @target=$(ECTEST); $(BUILD_CMD)
188+ +@target=$(ECTEST); $(BUILD_CMD)
189
190 $(EXPTEST)$(EXE_EXT): $(EXPTEST).o $(DLIBCRYPTO)
191- @target=$(EXPTEST); $(BUILD_CMD)
192+ +@target=$(EXPTEST); $(BUILD_CMD)
193
194 $(IDEATEST)$(EXE_EXT): $(IDEATEST).o $(DLIBCRYPTO)
195- @target=$(IDEATEST); $(BUILD_CMD)
196+ +@target=$(IDEATEST); $(BUILD_CMD)
197
198 $(MD2TEST)$(EXE_EXT): $(MD2TEST).o $(DLIBCRYPTO)
199- @target=$(MD2TEST); $(BUILD_CMD)
200+ +@target=$(MD2TEST); $(BUILD_CMD)
201
202 $(SHATEST)$(EXE_EXT): $(SHATEST).o $(DLIBCRYPTO)
203- @target=$(SHATEST); $(BUILD_CMD)
204+ +@target=$(SHATEST); $(BUILD_CMD)
205
206 $(SHA1TEST)$(EXE_EXT): $(SHA1TEST).o $(DLIBCRYPTO)
207- @target=$(SHA1TEST); $(BUILD_CMD)
208+ +@target=$(SHA1TEST); $(BUILD_CMD)
209
210 $(SHA256TEST)$(EXE_EXT): $(SHA256TEST).o $(DLIBCRYPTO)
211- @target=$(SHA256TEST); $(BUILD_CMD)
212+ +@target=$(SHA256TEST); $(BUILD_CMD)
213
214 $(SHA512TEST)$(EXE_EXT): $(SHA512TEST).o $(DLIBCRYPTO)
215- @target=$(SHA512TEST); $(BUILD_CMD)
216+ +@target=$(SHA512TEST); $(BUILD_CMD)
217
218 $(RMDTEST)$(EXE_EXT): $(RMDTEST).o $(DLIBCRYPTO)
219- @target=$(RMDTEST); $(BUILD_CMD)
220+ +@target=$(RMDTEST); $(BUILD_CMD)
221
222 $(MDC2TEST)$(EXE_EXT): $(MDC2TEST).o $(DLIBCRYPTO)
223- @target=$(MDC2TEST); $(BUILD_CMD)
224+ +@target=$(MDC2TEST); $(BUILD_CMD)
225
226 $(MD4TEST)$(EXE_EXT): $(MD4TEST).o $(DLIBCRYPTO)
227- @target=$(MD4TEST); $(BUILD_CMD)
228+ +@target=$(MD4TEST); $(BUILD_CMD)
229
230 $(MD5TEST)$(EXE_EXT): $(MD5TEST).o $(DLIBCRYPTO)
231- @target=$(MD5TEST); $(BUILD_CMD)
232+ +@target=$(MD5TEST); $(BUILD_CMD)
233
234 $(HMACTEST)$(EXE_EXT): $(HMACTEST).o $(DLIBCRYPTO)
235- @target=$(HMACTEST); $(BUILD_CMD)
236+ +@target=$(HMACTEST); $(BUILD_CMD)
237
238 $(WPTEST)$(EXE_EXT): $(WPTEST).o $(DLIBCRYPTO)
239- @target=$(WPTEST); $(BUILD_CMD)
240+ +@target=$(WPTEST); $(BUILD_CMD)
241
242 $(RC2TEST)$(EXE_EXT): $(RC2TEST).o $(DLIBCRYPTO)
243- @target=$(RC2TEST); $(BUILD_CMD)
244+ +@target=$(RC2TEST); $(BUILD_CMD)
245
246 $(BFTEST)$(EXE_EXT): $(BFTEST).o $(DLIBCRYPTO)
247- @target=$(BFTEST); $(BUILD_CMD)
248+ +@target=$(BFTEST); $(BUILD_CMD)
249
250 $(CASTTEST)$(EXE_EXT): $(CASTTEST).o $(DLIBCRYPTO)
251- @target=$(CASTTEST); $(BUILD_CMD)
252+ +@target=$(CASTTEST); $(BUILD_CMD)
253
254 $(RC4TEST)$(EXE_EXT): $(RC4TEST).o $(DLIBCRYPTO)
255- @target=$(RC4TEST); $(BUILD_CMD)
256+ +@target=$(RC4TEST); $(BUILD_CMD)
257
258 $(RC5TEST)$(EXE_EXT): $(RC5TEST).o $(DLIBCRYPTO)
259- @target=$(RC5TEST); $(BUILD_CMD)
260+ +@target=$(RC5TEST); $(BUILD_CMD)
261
262 $(DESTEST)$(EXE_EXT): $(DESTEST).o $(DLIBCRYPTO)
263- @target=$(DESTEST); $(BUILD_CMD)
264+ +@target=$(DESTEST); $(BUILD_CMD)
265
266 $(RANDTEST)$(EXE_EXT): $(RANDTEST).o $(DLIBCRYPTO)
267- @target=$(RANDTEST); $(BUILD_CMD)
268+ +@target=$(RANDTEST); $(BUILD_CMD)
269
270 $(DHTEST)$(EXE_EXT): $(DHTEST).o $(DLIBCRYPTO)
271- @target=$(DHTEST); $(BUILD_CMD)
272+ +@target=$(DHTEST); $(BUILD_CMD)
273
274 $(DSATEST)$(EXE_EXT): $(DSATEST).o $(DLIBCRYPTO)
275- @target=$(DSATEST); $(BUILD_CMD)
276+ +@target=$(DSATEST); $(BUILD_CMD)
277
278 $(METHTEST)$(EXE_EXT): $(METHTEST).o $(DLIBCRYPTO)
279- @target=$(METHTEST); $(BUILD_CMD)
280+ +@target=$(METHTEST); $(BUILD_CMD)
281
282 $(SSLTEST)$(EXE_EXT): $(SSLTEST).o $(DLIBSSL) $(DLIBCRYPTO)
283- @target=$(SSLTEST); $(FIPS_BUILD_CMD)
284+ +@target=$(SSLTEST); $(FIPS_BUILD_CMD)
285
286 $(ENGINETEST)$(EXE_EXT): $(ENGINETEST).o $(DLIBCRYPTO)
287- @target=$(ENGINETEST); $(BUILD_CMD)
288+ +@target=$(ENGINETEST); $(BUILD_CMD)
289
290 $(EVPTEST)$(EXE_EXT): $(EVPTEST).o $(DLIBCRYPTO)
291- @target=$(EVPTEST); $(BUILD_CMD)
292+ +@target=$(EVPTEST); $(BUILD_CMD)
293
294 $(EVPEXTRATEST)$(EXE_EXT): $(EVPEXTRATEST).o $(DLIBCRYPTO)
295- @target=$(EVPEXTRATEST); $(BUILD_CMD)
296+ +@target=$(EVPEXTRATEST); $(BUILD_CMD)
297
298 $(ECDSATEST)$(EXE_EXT): $(ECDSATEST).o $(DLIBCRYPTO)
299- @target=$(ECDSATEST); $(BUILD_CMD)
300+ +@target=$(ECDSATEST); $(BUILD_CMD)
301
302 $(ECDHTEST)$(EXE_EXT): $(ECDHTEST).o $(DLIBCRYPTO)
303- @target=$(ECDHTEST); $(BUILD_CMD)
304+ +@target=$(ECDHTEST); $(BUILD_CMD)
305
306 $(IGETEST)$(EXE_EXT): $(IGETEST).o $(DLIBCRYPTO)
307- @target=$(IGETEST); $(BUILD_CMD)
308+ +@target=$(IGETEST); $(BUILD_CMD)
309
310 $(JPAKETEST)$(EXE_EXT): $(JPAKETEST).o $(DLIBCRYPTO)
311- @target=$(JPAKETEST); $(BUILD_CMD)
312+ +@target=$(JPAKETEST); $(BUILD_CMD)
313
314 $(ASN1TEST)$(EXE_EXT): $(ASN1TEST).o $(DLIBCRYPTO)
315- @target=$(ASN1TEST); $(BUILD_CMD)
316+ +@target=$(ASN1TEST); $(BUILD_CMD)
317
318 $(SRPTEST)$(EXE_EXT): $(SRPTEST).o $(DLIBCRYPTO)
319- @target=$(SRPTEST); $(BUILD_CMD)
320+ +@target=$(SRPTEST); $(BUILD_CMD)
321
322 $(V3NAMETEST)$(EXE_EXT): $(V3NAMETEST).o $(DLIBCRYPTO)
323- @target=$(V3NAMETEST); $(BUILD_CMD)
324+ +@target=$(V3NAMETEST); $(BUILD_CMD)
325
326 $(HEARTBEATTEST)$(EXE_EXT): $(HEARTBEATTEST).o $(DLIBCRYPTO)
327- @target=$(HEARTBEATTEST); $(BUILD_CMD_STATIC)
328+ +@target=$(HEARTBEATTEST); $(BUILD_CMD_STATIC)
329
330 $(CONSTTIMETEST)$(EXE_EXT): $(CONSTTIMETEST).o
331- @target=$(CONSTTIMETEST) $(BUILD_CMD)
332+ +@target=$(CONSTTIMETEST) $(BUILD_CMD)
333
334 $(VERIFYEXTRATEST)$(EXE_EXT): $(VERIFYEXTRATEST).o
335- @target=$(VERIFYEXTRATEST) $(BUILD_CMD)
336+ +@target=$(VERIFYEXTRATEST) $(BUILD_CMD)
337
338 $(CLIENTHELLOTEST)$(EXE_EXT): $(CLIENTHELLOTEST).o
339- @target=$(CLIENTHELLOTEST) $(BUILD_CMD)
340+ +@target=$(CLIENTHELLOTEST) $(BUILD_CMD)
341
342 $(BADDTLSTEST)$(EXE_EXT): $(BADDTLSTEST).o
343- @target=$(BADDTLSTEST) $(BUILD_CMD)
344+ +@target=$(BADDTLSTEST) $(BUILD_CMD)
345
346 $(FATALERRTEST)$(EXE_EXT): $(FATALERRTEST).o ssltestlib.o $(DLIBSSL) $(DLIBCRYPTO)
347 @target=$(FATALERRTEST); exobj=ssltestlib.o; $(BUILD_CMD)
348
349 $(SSLV2CONFTEST)$(EXE_EXT): $(SSLV2CONFTEST).o
350- @target=$(SSLV2CONFTEST) $(BUILD_CMD)
351+ +@target=$(SSLV2CONFTEST) $(BUILD_CMD)
352
353 $(DTLSTEST)$(EXE_EXT): $(DTLSTEST).o ssltestlib.o $(DLIBSSL) $(DLIBCRYPTO)
354- @target=$(DTLSTEST); exobj=ssltestlib.o; $(BUILD_CMD)
355+ +@target=$(DTLSTEST); exobj=ssltestlib.o; $(BUILD_CMD)
356
357 #$(AESTEST).o: $(AESTEST).c
358 # $(CC) -c $(CFLAGS) -DINTERMEDIATE_VALUE_KAT -DTRACE_KAT_MCT $(AESTEST).c
359@@ -589,7 +589,7 @@ $(DTLSTEST)$(EXE_EXT): $(DTLSTEST).o ssltestlib.o $(DLIBSSL) $(DLIBCRYPTO)
360 # fi
361
362 dummytest$(EXE_EXT): dummytest.o $(DLIBCRYPTO)
363- @target=dummytest; $(BUILD_CMD)
364+ +@target=dummytest; $(BUILD_CMD)
365
366 # DO NOT DELETE THIS LINE -- make depend depends on it.
367
368--
3692.15.1
370