From 486ddde2c4946d3e7da2c9b217e28c08b36931f5 Mon Sep 17 00:00:00 2001 From: David Goulet Date: Tue, 3 Nov 2020 08:59:29 -0500 Subject: configure: Check STAP_PROBEV macro when building with USDT tracing It turns out that STAP_PROBEV() is not available on FreeBSD thus having sdt/sdt.h is not enough. Look for it now at configure time. Closes #40174 Signed-off-by: David Goulet --- configure.ac | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) (limited to 'configure.ac') diff --git a/configure.ac b/configure.ac index 165b337a21..8bb6e6bbde 100644 --- a/configure.ac +++ b/configure.ac @@ -292,11 +292,25 @@ if test "x$enable_tracing_instrumentation_usdt" = "xyes"; then AC_CHECK_HEADERS([sys/sdt.h], [], [AC_MSG_ERROR([USDT instrumentation requires sys/sdt.h header. On Debian, apt install systemtap-sdt-dev])], []) - dnl LTTng generates USDT probes if the UST library was built with - dnl --with-sdt. There is unfortunately no way to check that so we always - dnl build the USDT probes even though LTTng instrumentation was requested. - AC_DEFINE([USE_TRACING_INSTRUMENTATION_USDT], [1], [Using USDT instrumentation]) - have_tracing=1 + AC_MSG_CHECKING([STAP_PROBEV()]) + AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ + #define SDT_USE_VARIADIC + #include + void test(void) + { + STAP_PROBEV(p, n, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12); + } + ]])], [ + AC_MSG_RESULT([yes]) + dnl LTTng generates USDT probes if the UST library was built with + dnl --with-sdt. There is unfortunately no way to check that so we always + dnl build the USDT probes even though LTTng instrumentation was requested. + AC_DEFINE([USE_TRACING_INSTRUMENTATION_USDT], [1], [Using USDT instrumentation]) + have_tracing=1 + ], [ + AC_MSG_RESULT([no]) + AC_MSG_ERROR([USDT tracing support requires STAP_PROBEV()]) + ]) fi dnl Tracepoints event to debug logs. -- cgit v1.2.3-54-g00ecf