Commit 486ddde2 authored by David Goulet's avatar David Goulet 🎭
Browse files

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's avatarDavid Goulet <dgoulet@torproject.org>
parent 4f5a1166
Pipeline #1577 passed with stage
in 71 minutes and 29 seconds
o Minor bugfixes (configure, build):
- With USDT tracing enabled, if STAP_PROBEV() is missing, don't attempt to
build. Linux supports that macro but not the BSDs. Fixes bug 40174; bugfix
on 0.4.5.1-alpha.
......@@ -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 <sys/sdt.h>
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.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment