From: Mathieu Desnoyers Date: Mon, 17 Dec 2012 20:36:08 +0000 (-0500) Subject: Fix: don't do macro expansion in tracepoint file name X-Git-Tag: v2.1.0~11 X-Git-Url: https://git.lttng.org./?a=commitdiff_plain;h=41858e2b6e81ee5e02eccdd7467b9239d4cdf726;p=lttng-ust.git Fix: don't do macro expansion in tracepoint file name Change the API in a backward compatible way: previously, probe headers would do e.g. but e.g. "linux" here would be expanded to "1", which is bad. Fix this by allowing those headers to do: instead. We still support the old TRACEPOINT_INCLUDE_FILE for backward compatibility. Reported-by: Sébastien Barthélémy Signed-off-by: Mathieu Desnoyers --- diff --git a/include/lttng/tracepoint-event.h b/include/lttng/tracepoint-event.h index d36a9baf..077eaa0b 100644 --- a/include/lttng/tracepoint-event.h +++ b/include/lttng/tracepoint-event.h @@ -39,16 +39,31 @@ extern "C" { TRACEPOINT_EVENT_INSTANCE(_provider, _name, _name, \ _TP_PARAMS(_args)) -#define TRACEPOINT_INCLUDE __tp_stringify(TRACEPOINT_INCLUDE_FILE) #undef TRACEPOINT_CREATE_PROBES #define TRACEPOINT_HEADER_MULTI_READ + +/* + * LTTng-UST 2.0 expects TRACEPOINT_INCLUDE_FILE, but this approach has + * the unwanted side-effect of expanding any macro name found within + * TRACEPOINT_INCLUDE_FILE. + * + * Starting from LTTng-UST 2.1, we expect the TRACEPOINT_INCLUDE to be + * defined by probes as a string. We still check for + * TRACEPOINT_INCLUDE_FILE for API backward compatibility. + */ +#ifdef TRACEPOINT_INCLUDE_FILE +#define TRACEPOINT_INCLUDE __tp_stringify(TRACEPOINT_INCLUDE_FILE) +#endif + #include TRACEPOINT_INCLUDE #include #undef TRACEPOINT_HEADER_MULTI_READ +#undef TRACEPOINT_INCLUDE_FILE +#undef TRACEPOINT_INCLUDE #define TRACEPOINT_CREATE_PROBES