diff options
author | Steven Rostedt <srostedt@redhat.com> | 2011-04-12 18:59:10 -0400 |
---|---|---|
committer | Steven Rostedt <rostedt@goodmis.org> | 2011-05-17 10:41:49 -0400 |
commit | a3a8350ab2f588f3a7a08dc86658bf90773f9a52 (patch) | |
tree | 723c1381ccff878bbf2302afbb6b1f84a4b34513 | |
parent | 06fd6f6301cce9af4a03dd9e40bfca167e931ff1 (diff) |
kbuild/recordmcount: Add RECORDMCOUNT_WARN to warn about mcount callers
When mcount is called in a section that ftrace will not modify it into
a nop, we want to warn about this. But not warn about this always. Now
if the user builds the kernel with the option RECORDMCOUNT_WARN=1 then
the build will warn about mcount callers that are ignored and will just
waste execution time.
Acked-by: Michal Marek <mmarek@suse.cz>
Cc: linux-kbuild@vger.kernel.org
Link: http://lkml.kernel.org/r/20110421023738.714956282@goodmis.org
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
-rw-r--r-- | Makefile | 1 | ||||
-rw-r--r-- | scripts/Makefile.build | 5 |
2 files changed, 5 insertions, 1 deletions
@@ -1268,6 +1268,7 @@ help: | |||
1268 | @echo ' make C=1 [targets] Check all c source with $$CHECK (sparse by default)' | 1268 | @echo ' make C=1 [targets] Check all c source with $$CHECK (sparse by default)' |
1269 | @echo ' make C=2 [targets] Force check of all c source with $$CHECK' | 1269 | @echo ' make C=2 [targets] Force check of all c source with $$CHECK' |
1270 | @echo ' make W=1 [targets] Enable extra gcc checks' | 1270 | @echo ' make W=1 [targets] Enable extra gcc checks' |
1271 | @echo ' make RECORDMCOUNT_WARN=1 [targets] Warn about ignored mcount sections' | ||
1271 | @echo '' | 1272 | @echo '' |
1272 | @echo 'Execute "make" or "make all" to build all targets marked with [*] ' | 1273 | @echo 'Execute "make" or "make all" to build all targets marked with [*] ' |
1273 | @echo 'For further info see the ./README file' | 1274 | @echo 'For further info see the ./README file' |
diff --git a/scripts/Makefile.build b/scripts/Makefile.build index 7d3f9036eee2..6165622c3e29 100644 --- a/scripts/Makefile.build +++ b/scripts/Makefile.build | |||
@@ -244,13 +244,16 @@ endif | |||
244 | 244 | ||
245 | ifdef CONFIG_FTRACE_MCOUNT_RECORD | 245 | ifdef CONFIG_FTRACE_MCOUNT_RECORD |
246 | ifdef BUILD_C_RECORDMCOUNT | 246 | ifdef BUILD_C_RECORDMCOUNT |
247 | ifeq ("$(origin RECORDMCOUNT_WARN)", "command line") | ||
248 | RECORDMCOUNT_FLAGS = -w | ||
249 | endif | ||
247 | # Due to recursion, we must skip empty.o. | 250 | # Due to recursion, we must skip empty.o. |
248 | # The empty.o file is created in the make process in order to determine | 251 | # The empty.o file is created in the make process in order to determine |
249 | # the target endianness and word size. It is made before all other C | 252 | # the target endianness and word size. It is made before all other C |
250 | # files, including recordmcount. | 253 | # files, including recordmcount. |
251 | sub_cmd_record_mcount = \ | 254 | sub_cmd_record_mcount = \ |
252 | if [ $(@) != "scripts/mod/empty.o" ]; then \ | 255 | if [ $(@) != "scripts/mod/empty.o" ]; then \ |
253 | $(objtree)/scripts/recordmcount "$(@)"; \ | 256 | $(objtree)/scripts/recordmcount $(RECORDMCOUNT_FLAGS) "$(@)"; \ |
254 | fi; | 257 | fi; |
255 | recordmcount_source := $(srctree)/scripts/recordmcount.c \ | 258 | recordmcount_source := $(srctree)/scripts/recordmcount.c \ |
256 | $(srctree)/scripts/recordmcount.h | 259 | $(srctree)/scripts/recordmcount.h |