summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2019-05-19 16:45:28 +0900
committerLibravatar Junio C Hamano <gitster@pobox.com>2019-05-19 16:45:28 +0900
commit6795fc8afd49ecc0ae57661a8858d6882108cef5 (patch)
tree8cc24b12d6bf4ad58416b78268d084a7d317b6eb /Makefile
parentMerge branch 'ab/perf-installed-fix' (diff)
parentcoccicheck: make batch size of 0 mean "unlimited" (diff)
downloadtgif-6795fc8afd49ecc0ae57661a8858d6882108cef5.tar.xz
Merge branch 'jk/cocci-batch'
Optionally "make coccicheck" can feed multiple source files to spatch, gaining performance while spending more memory. * jk/cocci-batch: coccicheck: make batch size of 0 mean "unlimited" coccicheck: optionally batch spatch invocations
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile19
1 files changed, 12 insertions, 7 deletions
diff --git a/Makefile b/Makefile
index f965509b3c..8a7e235352 100644
--- a/Makefile
+++ b/Makefile
@@ -1171,8 +1171,11 @@ PTHREAD_CFLAGS =
SPARSE_FLAGS ?=
SP_EXTRA_FLAGS =
-# For the 'coccicheck' target
+# For the 'coccicheck' target; setting SPATCH_BATCH_SIZE higher will
+# usually result in less CPU usage at the cost of higher peak memory.
+# Setting it to 0 will feed all files in a single spatch invocation.
SPATCH_FLAGS = --all-includes --patch .
+SPATCH_BATCH_SIZE = 1
include config.mak.uname
-include config.mak.autogen
@@ -2807,12 +2810,14 @@ endif
%.cocci.patch: %.cocci $(COCCI_SOURCES)
@echo ' ' SPATCH $<; \
- ret=0; \
- for f in $(COCCI_SOURCES); do \
- $(SPATCH) --sp-file $< $$f $(SPATCH_FLAGS) || \
- { ret=$$?; break; }; \
- done >$@+ 2>$@.log; \
- if test $$ret != 0; \
+ if test $(SPATCH_BATCH_SIZE) = 0; then \
+ limit=; \
+ else \
+ limit='-n $(SPATCH_BATCH_SIZE)'; \
+ fi; \
+ if ! echo $(COCCI_SOURCES) | xargs $$limit \
+ $(SPATCH) --sp-file $< $(SPATCH_FLAGS) \
+ >$@+ 2>$@.log; \
then \
cat $@.log; \
exit 1; \