Fix: don't do macro expansion in tracepoint file name
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mon, 17 Dec 2012 20:36:08 +0000 (15:36 -0500)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mon, 17 Dec 2012 20:36:08 +0000 (15:36 -0500)
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 <barthelemy@crans.org>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
include/lttng/tracepoint-event.h

index d36a9bafc3b470888b29f7e9010638f893f6f853..077eaa0b46d48fcf1baa0d35f4b188246275fd85 100644 (file)
@@ -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 <lttng/ust-tracepoint-event.h>
 
 #undef TRACEPOINT_HEADER_MULTI_READ
+#undef TRACEPOINT_INCLUDE_FILE
+#undef TRACEPOINT_INCLUDE
 
 #define TRACEPOINT_CREATE_PROBES
 
This page took 0.029353 seconds and 4 git commands to generate.