From a1680f03b7d38bf007d29ac23035e5af33736b0e Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Fri, 11 May 2012 13:47:29 +0100 Subject: configure: Allow systemtap/DTrace userspace probes to be disabled. './configure --disable-probes' will disable these probes. Otherwise they are autodetected as before. The produces lots of errors when you try to compile with these probes enabled under clang, so it is necessary to provide a way to disable them for clang users. --- configure.ac | 16 +++++++++++++--- src/guestfs-internal.h | 4 ++-- 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 /* 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) -- cgit