summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--configure.ac16
-rw-r--r--src/guestfs-internal.h4
2 files changed, 15 insertions, 5 deletions
diff --git a/configure.ac b/configure.ac
index 7db6d37a..29f11798 100644
--- a/configure.ac
+++ b/configure.ac
@@ -418,9 +418,19 @@ fi
AC_SUBST([SELINUX_LIB])
dnl Check for systemtap/DTrace userspace probes (optional).
-dnl http://sourceware.org/systemtap/wiki/AddingUserSpaceProbingToApps
-AC_CHECK_HEADERS([sys/sdt.h])
-dnl AC_CHECK_PROG([DTRACE],[dtrace],[dtrace],[no])
+dnl Since the probe points break under clang, allow this to be disabled.
+AC_ARG_ENABLE([probes],
+ AS_HELP_STRING([--disable-probes], [Disable systemtap/DTrace userspace probes]),
+ [],
+ [enable_probes=yes])
+AS_IF([test "x$enable_probes" != "xno"],[
+ dnl http://sourceware.org/systemtap/wiki/AddingUserSpaceProbingToApps
+ AC_CHECK_HEADERS([sys/sdt.h])
+ dnl AC_CHECK_PROG([DTRACE],[dtrace],[dtrace],[no])
+ AS_IF([test "x$ac_cv_header_sys_sdt_h" = "xyes"],[
+ AC_DEFINE([ENABLE_PROBES],[1],[enable systemtap/DTrace userspace probes])
+ ])
+])
dnl Check for cpio which isn't in the default Pardus install amazingly.
AC_CHECK_PROG([CPIO],[cpio],[cpio],[no])
diff --git a/src/guestfs-internal.h b/src/guestfs-internal.h
index 01a7e6c9..4e82966d 100644
--- a/src/guestfs-internal.h
+++ b/src/guestfs-internal.h
@@ -49,7 +49,7 @@
#define _(str) dgettext(PACKAGE, (str))
#define N_(str) dgettext(PACKAGE, (str))
-#ifdef HAVE_SYS_SDT_H
+#if ENABLE_PROBES
#include <sys/sdt.h>
/* NB: The 'name' parameter is a literal identifier, NOT a string! */
#define TRACE0(name) DTRACE_PROBE(guestfs, name)
@@ -61,7 +61,7 @@
DTRACE_PROBE(guestfs, name, (arg1), (arg2), (arg3))
#define TRACE4(name, arg1, arg2, arg3, arg4) \
DTRACE_PROBE(guestfs, name, (arg1), (arg2), (arg3), (arg4))
-#else
+#else /* !ENABLE_PROBES */
#define TRACE0(name)
#define TRACE1(name, arg1)
#define TRACE2(name, arg1, arg2)