CI: Use parallel make.
authorDenis Ovsienko <denis@ovsienko.info>
Tue, 25 Aug 2020 22:53:28 +0000 (23:53 +0100)
committerDenis Ovsienko <denis@ovsienko.info>
Tue, 25 Aug 2020 23:22:49 +0000 (00:22 +0100)
It looks like the parallel make fault I had experienced with tcpslice
earlier accounts to a race condition that is between the top-level
targets, not within one of them. Specifically, in my Linux system
"make -j 4 clean all" often fails with the following:

clang: error: no such file or directory: 'tcpslice.o'
Makefile:125: recipe for target 'tcpslice' failed
make: *** [tcpslice] Error 1

However, "make -j 4 clean; make -j 4 all" always works. This explains why
tcpdump CI never failed because of the race condition despite having
MAKEFLAGS='-j 2' in both Travis and Cirrus -- the scripts run make with
one target at a time. But if run as shown above, tcpdump build will often
fail in a very similar way.

So make tcpslice build parallel and release the shared resource a tiny
bit quicker.

.cirrus.yml
.travis.yml

index 25168521cb1e6c43ef1c9f5ebc1c0a45f6c61299..9bf341fda993143c4599bf8a1ffc4d06acfcaa1a 100644 (file)
@@ -1,8 +1,7 @@
 env:
   CIRRUS_CLONE_DEPTH: 3
   IGNORE_OSVERSION: yes
-  # Parallel make is currently broken in tcpslice.
-  MAKEFLAGS: '-j 1'
+  MAKEFLAGS: '-j 2'
 
 task:
   freebsd_instance:
index 8319b6016df012e5a2ef14f9ed1f729a3eb05906..cf44354ff98f9d44f8b6f347022467311bf1c6f6 100644 (file)
@@ -23,8 +23,7 @@ jobs:
 
 env:
   global:
-    # Parallel make is currently broken in tcpslice.
-    - MAKEFLAGS='-j 1'
+    - MAKEFLAGS='-j 2'
 
 addons:
   apt: