summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Færøy <ahf@torproject.org>2020-11-09 14:15:07 +0000
committerAlexander Færøy <ahf@torproject.org>2020-11-09 14:15:07 +0000
commitfaa96f9a8eb7e461b8affea04ce3882a2e6e0ddc (patch)
tree6df57ff832b8315faa58a4000a83a5d51d2e5320
parent0702cf10db0ab0824d8d4d5df467fb15fc832f2e (diff)
parent486ddde2c4946d3e7da2c9b217e28c08b36931f5 (diff)
downloadtor-faa96f9a8eb7e461b8affea04ce3882a2e6e0ddc.tar.gz
tor-faa96f9a8eb7e461b8affea04ce3882a2e6e0ddc.zip
Merge remote-tracking branch 'tor-gitlab/mr/193'
-rw-r--r--changes/ticket401744
-rw-r--r--configure.ac24
2 files changed, 23 insertions, 5 deletions
diff --git a/changes/ticket40174 b/changes/ticket40174
new file mode 100644
index 0000000000..869a2756f4
--- /dev/null
+++ b/changes/ticket40174
@@ -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.
diff --git a/configure.ac b/configure.ac
index 77b0e43207..5e16884f74 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 <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.