Re: [PATCH 2/7] kbuild: Add P= command line flag to run checkpatch

From: Jim Davis
Date: Mon Nov 20 2017 - 19:00:58 EST

On Mon, Nov 20, 2017 at 2:22 PM, Luc Van Oostenryck
<luc.vanoostenryck@xxxxxxxxx> wrote:

> Should it be possible to somehow keep the distinction between
> the flags coming from KBUILD_CFLAGS and the pure CHECKFLAGS?

Well, the practical problem seems to be that $(CHECK) is called in
scripts/ with both $(CHECKFLAGS) and $(c_flags) as
arguments, regardless of what $(CHECK) is. That can be hacked around
with something inelegant like

diff --git a/scripts/ b/scripts/
index bb831d49bcfd..102194f9afb9 100644
--- a/scripts/
+++ b/scripts/
@@ -98,14 +98,20 @@ __build: $(if $(KBUILD_BUILTIN),$(builtin-target)
$(lib-target) $(extra-y)) \
$(subdir-ym) $(always)

-# Linus' kernel sanity checking tool
+# Linus' kernel sanity checking tool, or $CHECK program of choice
+ifneq ($(KBUILD_CHECKSRC),)
+ add_to_checkflags =
+ ifeq ($(CHECK),sparse)
+ add_to_checkflags = $(c_flags)
+ endif
ifneq ($(KBUILD_CHECKSRC),0)
quiet_cmd_force_checksrc = CHECK $<
- cmd_force_checksrc = $(CHECK) $(CHECKFLAGS) $(c_flags) $< ;
+ cmd_force_checksrc = $(CHECK) $(CHECKFLAGS) $(add_to_checkflags) $< ;
quiet_cmd_checksrc = CHECK $<
- cmd_checksrc = $(CHECK) $(CHECKFLAGS) $(c_flags) $< ;
+ cmd_checksrc = $(CHECK) $(CHECKFLAGS) $(add_to_checkflags) $< ;

and then if I run scripts/ as $CHECK and pass --quiet
--file as before it works -- until checkpatch returns with a non-zero
exit code, which causes the Makefile to bail at that point.

So maybe a wrapper script, with an exit 0 fixup to keep on keeping on
in case of checkpatch warnings or errors, would be better after all.