On Mon, 2011-01-10 at 14:49 +0100, Peter Zijlstra wrote: > After I got everything building on that tree I was working on, the above > was found to compile but not to link, since it makes every: > > #define CREATE_TRACE_POINTS > #include <trace/event/foo.h> > > site also create the trace/event/module.h tracepoints, thus confusing > the linker with tons of duplicate symbols. > > The below patch makes things compile and link: > > --- > include/trace/define_trace.h | 23 +++++++++++++---------- > 1 files changed, 13 insertions(+), 10 deletions(-) > > diff --git a/include/trace/define_trace.h b/include/trace/define_trace.h > index da39b22..9ebd0d3 100644 > --- a/include/trace/define_trace.h > +++ b/include/trace/define_trace.h > @@ -21,16 +21,6 @@ > #undef CREATE_TRACE_POINTS But here we undefine CREATE_TRACE_POINTS, why would this cause a problem in module.h? -- Steve > > #include <linux/stringify.h> > -/* > - * module.h includes tracepoints, and because ftrace.h > - * pulls in module.h: > - * trace/ftrace.h -> linux/ftrace_event.h -> linux/perf_event.h -> > - * linux/ftrace.h -> linux/module.h > - * we must include module.h here before we play with any of > - * the TRACE_EVENT() macros, otherwise the tracepoints included > - * by module.h may break the build. > - */ > -#include <linux/module.h> > > #undef TRACE_EVENT > #define TRACE_EVENT(name, proto, args, tstruct, assign, print) \ > @@ -120,4 +110,17 @@ > /* We may be processing more files */ > #define CREATE_TRACE_POINTS > > +#else /* CREATE_TRACE_POINTS */ > + > +/* > + * module.h includes tracepoints, and because ftrace.h > + * pulls in module.h: > + * trace/ftrace.h -> linux/ftrace_event.h -> linux/perf_event.h -> > + * linux/ftrace.h -> linux/module.h > + * we must include module.h here before we play with any of > + * the TRACE_EVENT() macros, otherwise the tracepoints included > + * by module.h may break the build. > + */ > +#include <linux/module.h> > + > #endif /* CREATE_TRACE_POINTS */ -- To unsubscribe from this list: send the line "unsubscribe linux-tip-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html