[PATCH 01/10] ARM: kprobes: Add config option for selecting the ARM kprobes tests
Nicolas Pitre
nico at fluxnic.net
Wed Aug 31 18:47:09 EDT 2011
On Tue, 30 Aug 2011, Tixy wrote:
> On Mon, 2011-08-29 at 14:44 -0400, Nicolas Pitre wrote:
> > On Mon, 29 Aug 2011, Tixy wrote:
> >
> > > From: Jon Medhurst <tixy at yxit.co.uk>
> > >
> > > Signed-off-by: Jon Medhurst <tixy at yxit.co.uk>
> > > ---
> > > arch/arm/Kconfig.debug | 10 ++++++++++
> > > 1 files changed, 10 insertions(+), 0 deletions(-)
> > >
> > > diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
> > > index 81cbe40..8f95417 100644
> > > --- a/arch/arm/Kconfig.debug
> > > +++ b/arch/arm/Kconfig.debug
> > > @@ -129,4 +129,14 @@ config DEBUG_S3C_UART
> > > The uncompressor code port configuration is now handled
> > > by CONFIG_S3C_LOWLEVEL_UART_PORT.
> > >
> > > +config ARM_KPROBES_TESTS
> > > + bool
> > > +
> > > +config ARM_KPROBES_TEST_MODULE
> > > + tristate "Kprobes test module"
> > > + depends on KPROBES && MODULES
> > > + select ARM_KPROBES_TESTS
> > > + help
> > > + "Perform tests of kprobes API and instruction set simulation"
> > > +
> >
> > Why do you need two config symbols here? Isn't ARM_KPROBES_TEST_MODULE
> > redundant?
>
> When ARM_KPROBES_TEST_MODULE is configured for a stand-alone module,
> rather than built-in, then
>
> #ifdef CONFIG_ARM_KPROBES_TEST_MODULE
>
> is false.
OK... It seems that, when you have a tristate config symbol FOOBAR, if
CONFIG_FOOBAR=y then the CONFIG_FOOBAR preprocessor symbol is defined.
If you have CONFIG_FOOBAR=m then the CONFIG_FOOBAR_MODULE preprocessor
symbol is defined.
In your example above you would end up with
CONFIG_ARM_KPROBES_TEST_MODULE_MODULE being defined.
> I found other examples where people seemed to have gotten around this
> by selecting a second config symbol and copied that. E.g.
> FTRACE_STARTUP_TEST selects FTRACE_SELFTEST which is then used in
> #ifdef statements.
>
> Is there a better way? If not, I should explain this anyway in the
> changelog.
What I'd suggest is that you have:
config ARM_KPROBES_TEST
tristate ...
And then you may use this in the code:
#ifdef CONFIG_ARM_KPROBES_TEST_MODULE
EXPORT_SYMBOL_GPL(...);
#endif
so those symbols are only exported when necessary.
Nicolas
More information about the linux-arm-kernel
mailing list