On Sat, 20 Jun 2015 23:21:18 +0300 Tal Shorer <[email protected]> wrote:
> Allow a trace events header file to disable compilation of its > trace events by defining the preprocessor macro NOTRACE. > > This could be done, for example, according to a Kconfig option. > > Signed-off-by: Tal Shorer <[email protected]> > --- > include/linux/tracepoint.h | 6 +++--- > include/trace/define_trace.h | 2 +- > 2 files changed, 4 insertions(+), 4 deletions(-) > > diff --git a/include/linux/tracepoint.h b/include/linux/tracepoint.h > index a5f7f3e..c869f84 100644 > --- a/include/linux/tracepoint.h > +++ b/include/linux/tracepoint.h > @@ -111,7 +111,7 @@ extern void syscall_unregfunc(void); > #define TP_ARGS(args...) args > #define TP_CONDITION(args...) args > > -#ifdef CONFIG_TRACEPOINTS > +#if defined(CONFIG_TRACEPOINTS) && !defined(NOTRACE) Instead of the duplicate condition above, it would be better to make a new macro at the top. And we can add a nice comment to it as well. /* * Individual subsystem my have a separate configuration to * enable their tracepoints. By default, this file will create * the tracepoints if CONFIG_TRACEPOINT is defined. If a subsystem * wants to be able to disable its tracepoints from being created * it can define NOTRACE before including the tracepoint headers. */ #if defined(CONFIG_TRACEPOINTS) && !defined(NOTRACE) # define TRACEPOINTS_ENABLED #endif Then switch all the conditions below to: #ifdef TRACEPOINTS_ENABLED -- Steve > > /* > * it_func[0] is never NULL because there is at least one element in the > array > @@ -234,7 +234,7 @@ extern void syscall_unregfunc(void); > #define EXPORT_TRACEPOINT_SYMBOL(name) > \ > EXPORT_SYMBOL(__tracepoint_##name) > > -#else /* !CONFIG_TRACEPOINTS */ > +#else /* !(defined(CONFIG_TRACEPOINTS) && !defined(NOTRACE)) */ > #define __DECLARE_TRACE(name, proto, args, cond, data_proto, data_args) \ > static inline void trace_##name(proto) \ > { } \ > @@ -266,7 +266,7 @@ extern void syscall_unregfunc(void); > #define EXPORT_TRACEPOINT_SYMBOL_GPL(name) > #define EXPORT_TRACEPOINT_SYMBOL(name) > > -#endif /* CONFIG_TRACEPOINTS */ > +#endif /* defined(CONFIG_TRACEPOINTS) && !defined(NOTRACE) */ > > #ifdef CONFIG_TRACING > /** > diff --git a/include/trace/define_trace.h b/include/trace/define_trace.h > index 02e1003..e847fd7 100644 > --- a/include/trace/define_trace.h > +++ b/include/trace/define_trace.h > @@ -86,7 +86,7 @@ > #undef DECLARE_TRACE > #define DECLARE_TRACE(name, proto, args) > > -#ifdef CONFIG_EVENT_TRACING > +#if defined(CONFIG_EVENT_TRACING) && !defined(NOTRACE) > #include <trace/ftrace.h> > #endif > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

