From: Christopher Li <sparse@chrisli.org>
To: linux-kernel <linux-kernel@vger.kernel.org>
Cc: Linux-Sparse <linux-sparse@vger.kernel.org>,
Sam Ravnborg <sam@ravnborg.org>,
Andrew Morton <akpm@linux-foundation.org>,
Josh Triplett <josh@joshtriplett.org>
Subject: [PATCH] sparse: Add CLOG option for saving warning
Date: Mon, 30 Jun 2014 01:57:13 -0700 [thread overview]
Message-ID: <CANeU7Q=a82YmUE49uZ1sOxZn0KGLuktSXuj7YsmUb=wXQEpPXA@mail.gmail.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 569 bytes --]
Currently sparse warning only output to stderr.
In the parallel build process, different source
file output is fixed together. It is hard to keep
track of the warning.
Add the CLOG=<logname> option in command line to
save the sparse warning into individual log file.
Typical usage:
make -j8 C=2 CLOG=<logname>
The log file is saved in the target directory as
.xxx.o.<logname>.sparse
By diffing between different log file, it is much
easier to analyze how the sparse change impact
the whole kernel build.
Signed-off-by: Christopher Li <sparse@chrisli.org>
Chris
[-- Attachment #2: 0001-sparse-Add-CLOG-option-for-saving-warning.patch --]
[-- Type: text/x-patch, Size: 3006 bytes --]
From 3b2ff204cbda684adf9dba2adf568062533ae34d Mon Sep 17 00:00:00 2001
From: Christopher Li <sparse@chrisli.org>
Date: Mon, 30 Jun 2014 01:33:22 -0700
Subject: [PATCH] sparse: Add CLOG option for saving warning
Currently sparse warning only output to stderr.
In the parallel build process, different source
file output is fixed together. It is hard to keep
track of the warning.
Add the CLOG=<logname> option in command line to
save the sparse warning into individual log file.
Typical usage:
make -j8 C=2 CLOG=<logname>
The log file is saved in the target directory as
.xxx.o.<logname>.sparse
By diffing between different log file, it is much
easier to analyze how the sparse change impact
the whole kernel build.
Signed-off-by: Christopher Li <sparse@chrisli.org>
---
Makefile | 13 ++++++++++++-
scripts/Makefile.build | 11 +++++++++--
2 files changed, 21 insertions(+), 3 deletions(-)
diff --git a/Makefile b/Makefile
index b11e2d5..56c3502 100644
--- a/Makefile
+++ b/Makefile
@@ -68,6 +68,16 @@ ifndef KBUILD_CHECKSRC
KBUILD_CHECKSRC = 0
endif
+ifeq ("$(origin CLOG)", "command line")
+ KBUILD_CHECKLOG = $(CLOG)
+endif
+ifndef KBUILD_CHECKLOG
+ KBUILD_CHECKLOG =
+endif
+
+
+
+
# Use make M=dir to specify directory of external module to build
# Old syntax make ... SUBDIRS=$PWD is still supported
# Setting the environment variable KBUILD_EXTMOD take precedence
@@ -287,7 +297,7 @@ ifeq ($(MAKECMDGOALS),)
endif
export KBUILD_MODULES KBUILD_BUILTIN
-export KBUILD_CHECKSRC KBUILD_SRC KBUILD_EXTMOD
+export KBUILD_CHECKSRC KBUILD_CHECKLOG KBUILD_SRC KBUILD_EXTMOD
# Beautify output
# ---------------------------------------------------------------------------
@@ -1370,6 +1380,7 @@ clean: $(clean-dirs)
$(call cmd,rmfiles)
@find $(if $(KBUILD_EXTMOD), $(KBUILD_EXTMOD), .) $(RCS_FIND_IGNORE) \
\( -name '*.[oas]' -o -name '*.ko' -o -name '.*.cmd' \
+ -o -name '.*.sparse' \
-o -name '*.ko.*' \
-o -name '.*.d' -o -name '.*.tmp' -o -name '*.mod.c' \
-o -name '*.symtypes' -o -name 'modules.order' \
diff --git a/scripts/Makefile.build b/scripts/Makefile.build
index bf3e677..45c6004 100644
--- a/scripts/Makefile.build
+++ b/scripts/Makefile.build
@@ -96,14 +96,21 @@ __build: $(if $(KBUILD_BUILTIN),$(builtin-target) $(lib-target) $(extra-y)) \
$(subdir-ym) $(always)
@:
+check_log_file = $(dot-target).$(KBUILD_CHECKLOG).sparse
+
+ifneq ($(KBUILD_CHECKLOG),)
+ check_logging = 2> $(check_log_file)
+endif
+
+cmd_check = $(CHECK) $(CHECKFLAGS) $(c_flags) $< $(check_logging) ;
# Linus' kernel sanity checking tool
ifneq ($(KBUILD_CHECKSRC),0)
ifeq ($(KBUILD_CHECKSRC),2)
quiet_cmd_force_checksrc = CHECK $<
- cmd_force_checksrc = $(CHECK) $(CHECKFLAGS) $(c_flags) $< ;
+ cmd_force_checksrc = $(cmd_check)
else
quiet_cmd_checksrc = CHECK $<
- cmd_checksrc = $(CHECK) $(CHECKFLAGS) $(c_flags) $< ;
+ cmd_checksrc = $(cmd_check)
endif
endif
--
1.9.3
next reply other threads:[~2014-06-30 8:57 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-30 8:57 Christopher Li [this message]
2014-07-04 7:48 ` [PATCH] sparse: Add CLOG option for saving warning Christopher Li
2014-07-04 21:20 ` Josh Triplett
2014-07-07 11:22 ` Sam Ravnborg
2014-07-08 5:49 ` Christopher Li
2014-07-08 7:37 ` Dan Carpenter
2014-07-19 9:02 ` Christopher Li
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CANeU7Q=a82YmUE49uZ1sOxZn0KGLuktSXuj7YsmUb=wXQEpPXA@mail.gmail.com' \
--to=sparse@chrisli.org \
--cc=akpm@linux-foundation.org \
--cc=josh@joshtriplett.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sparse@vger.kernel.org \
--cc=sam@ravnborg.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.