Merge remote-tracking branch 'tor-gitlab/mr/193'

This commit is contained in:
Alexander Færøy 2020-11-09 14:15:07 +00:00
commit faa96f9a8e
2 changed files with 23 additions and 5 deletions

4
changes/ticket40174 Normal file
View File

@ -0,0 +1,4 @@
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.

View File

@ -292,11 +292,25 @@ if test "x$enable_tracing_instrumentation_usdt" = "xyes"; then
AC_CHECK_HEADERS([sys/sdt.h], [], AC_CHECK_HEADERS([sys/sdt.h], [],
[AC_MSG_ERROR([USDT instrumentation requires sys/sdt.h header. [AC_MSG_ERROR([USDT instrumentation requires sys/sdt.h header.
On Debian, apt install systemtap-sdt-dev])], []) On Debian, apt install systemtap-sdt-dev])], [])
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 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 --with-sdt. There is unfortunately no way to check that so we always
dnl build the USDT probes even though LTTng instrumentation was requested. dnl build the USDT probes even though LTTng instrumentation was requested.
AC_DEFINE([USE_TRACING_INSTRUMENTATION_USDT], [1], [Using USDT instrumentation]) AC_DEFINE([USE_TRACING_INSTRUMENTATION_USDT], [1], [Using USDT instrumentation])
have_tracing=1 have_tracing=1
], [
AC_MSG_RESULT([no])
AC_MSG_ERROR([USDT tracing support requires STAP_PROBEV()])
])
fi fi
dnl Tracepoints event to debug logs. dnl Tracepoints event to debug logs.