From: Randy Dunlap <randy.dunlap@oracle.com>
To: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>, Steven Rostedt <rostedt@goodmis.org>,
linux-kernel@vger.kernel.org, zippel@linux-m68k.org,
linux-kbuild@vger.kernel.org
Subject: Re: [PATCH] tracing/markers: make markers select tracepoints
Date: Fri, 20 Feb 2009 08:59:14 -0800 [thread overview]
Message-ID: <499EE162.4050008@oracle.com> (raw)
In-Reply-To: <499edf47.1818d00a.060b.2b8d@mx.google.com>
Frederic Weisbecker wrote:
> Sometimes it happens that KConfig dependencies are not handled
> like in the following scenario:
>
> - config A
> bool
>
> - config B
> bool
> depends on A
>
> -config C
> bool
> select B
>
> If one selects C, then it will select B without checking its dependency to A, if A
> hasn't been selected elsewhere, it will result in a build crash.
as documented in Documentation/kbuild/kconfig-language.txt (and yes, it is
considered to be a shortcoming/problem by most people AFAIK):
Note:
select should be used with care. select will force
a symbol to a value without visiting the dependencies.
By abusing select you are able to select a symbol FOO even
if FOO depends on BAR that is not set.
In general use select only for non-visible symbols
(no prompts anywhere) and for symbols with no dependencies.
That will limit the usefulness but on the other hand avoid
the illegal configurations all over.
kconfig should one day warn about such things.
> This is what happens on the following build error:
>
> kernel/built-in.o: In function `marker_update_probe_range':
> (.text+0x52f64): undefined reference to `tracepoint_probe_register_noupdate'
> kernel/built-in.o: In function `marker_update_probe_range':
> (.text+0x52f74): undefined reference to `tracepoint_probe_unregister_noupdate'
> kernel/built-in.o: In function `marker_update_probe_range':
> (.text+0x52fb9): undefined reference to `tracepoint_probe_unregister_noupdate'
> kernel/built-in.o: In function `marker_update_probes':
> marker.c:(.text+0x530ba): undefined reference to `tracepoint_probe_update_all'
>
> CONFIG_KVM_TRACE will select CONFIG_MARKER, but the latter depends on CONFIG_TRACEPOINTS
> which will not be selected.
>
> A temporary fix is to make CONFIG_MARKER select CONFIG_TRACEPOINTS, though it doesn't
> fix the source KConfig dependency handling problem.
>
> Reported-by: Ingo Molnar <mingo@elte.hu>
> Cc: Roman Zippel <zippel@linux-m68k.org>
> Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
> ---
> init/Kconfig | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/init/Kconfig b/init/Kconfig
> index b6400a5..a93f957 100644
> --- a/init/Kconfig
> +++ b/init/Kconfig
> @@ -975,7 +975,7 @@ config TRACEPOINTS
>
> config MARKERS
> bool "Activate markers"
> - depends on TRACEPOINTS
> + select TRACEPOINTS
> help
> Place an empty function call at each marker site. Can be
> dynamically changed for a probe function.
but using "select" instead of "depends on" just causes the kind of problem
that you described, whereas using "depends on" does follow dependency
chains.
--
~Randy
next prev parent reply other threads:[~2009-02-20 16:58 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-02-20 16:34 [PATCH] tracing/markers: make markers select tracepoints Frederic Weisbecker
2009-02-20 16:59 ` Randy Dunlap [this message]
2009-02-20 17:20 ` Frederic Weisbecker
2009-02-20 17:22 ` Ingo Molnar
2009-02-20 17:29 ` Randy Dunlap
2009-02-20 17:31 ` Frederic Weisbecker
2009-02-20 17:48 ` Ingo Molnar
2009-02-20 18:56 ` Jason Baron
2009-02-21 3:15 ` Frederic Weisbecker
2009-02-21 22:04 ` Frank Ch. Eigler
2009-02-22 17:13 ` Ingo Molnar
2009-02-22 17:38 ` Frank Ch. Eigler
2009-02-23 10:13 ` Avi Kivity
2009-02-22 3:23 ` KOSAKI Motohiro
2009-02-22 11:37 ` Peter Zijlstra
2009-02-22 16:04 ` Mathieu Desnoyers
2009-02-22 19:17 ` Ingo Molnar
2009-02-23 2:47 ` Mathieu Desnoyers
2009-02-23 8:52 ` Ingo Molnar
2009-02-22 11:43 ` Peter Zijlstra
2009-02-22 12:08 ` Frank Ch. Eigler
2009-02-22 12:14 ` Peter Zijlstra
2009-02-22 12:24 ` Frank Ch. Eigler
2009-02-23 11:11 ` Peter Zijlstra
2009-02-23 15:44 ` Frank Ch. Eigler
2009-02-23 16:22 ` Peter Zijlstra
2009-02-23 17:10 ` Frank Ch. Eigler
2009-02-23 17:23 ` Ingo Molnar
2009-02-24 13:01 ` Frank Ch. Eigler
2009-02-23 17:31 ` Steven Rostedt
2009-02-23 18:32 ` Theodore Tso
2009-02-23 22:16 ` Peter Zijlstra
2009-02-23 22:41 ` Theodore Tso
2009-02-24 8:55 ` Peter Zijlstra
2009-02-23 0:23 ` Steven Rostedt
2009-02-21 5:24 ` [PATCH][RFC] check for select dependency errors on config load Steven Rostedt
2009-02-21 5:58 ` Andrew Morton
2009-02-21 6:08 ` Andrew Morton
2009-02-21 6:20 ` Randy Dunlap
2009-02-21 20:07 ` Steven Rostedt
2009-02-21 20:46 ` [PATCH v2] kconfig: " Steven Rostedt
2009-02-21 20:48 ` Steven Rostedt
2009-02-21 21:51 ` Sam Ravnborg
2009-02-21 21:53 ` Steven Rostedt
2009-02-22 16:23 ` [PATCH][RFC] " Ingo Molnar
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=499EE162.4050008@oracle.com \
--to=randy.dunlap@oracle.com \
--cc=fweisbec@gmail.com \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=rostedt@goodmis.org \
--cc=zippel@linux-m68k.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).