[lttng-dev] [PATCH lttng-tools] fix: check for dtrace and sdt.h before enabling SDT uprobe tests
Jérémie Galarneau
jeremie.galarneau at efficios.com
Mon Nov 4 22:30:21 EST 2019
Merged in master and stable-2.11.
Thanks!
Jérémie
On Thu, Oct 31, 2019 at 04:12:46PM -0400, Michael Jeanson wrote:
> Add a configure switch '--enable-sdt-uprobe / --disable-sdt-uprobe', the
> default behavior of enabling the test if the requirements are found is
> kept but it's now possible to explicitly disable it.
>
> Also add the detection of the dtrace binary and its override trough the
> DTRACE environment variable.
>
> Signed-off-by: Michael Jeanson <mjeanson at efficios.com>
> ---
> configure.ac | 37 +++++++++++++++++--
> tests/utils/testapp/Makefile.am | 4 +-
> .../userspace-probe-sdt-binary/Makefile.am | 8 +++-
> 3 files changed, 42 insertions(+), 7 deletions(-)
>
> diff --git a/configure.ac b/configure.ac
> index 8c0683fe2..ab0a15b2d 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -25,9 +25,6 @@ AC_PROG_CXX
> RW_PROG_CXX_WORKS
> AM_CONDITIONAL([CXX_WORKS], [test "x$rw_cv_prog_cxx_works" = "xyes"])
>
> -LTTNG_CHECK_SDT_WORKS
> -AM_CONDITIONAL([SDT_WORKS], [test "x$lttng_cv_sdt_works" = "xyes"])
> -
> # Checks for programs.
> AC_PROG_GREP
> AC_PROG_MAKE_SET
> @@ -815,6 +812,36 @@ AC_SUBST([RUN_PYTHON_AGENT_TEST])
> AC_SUBST([PYTHON2_AGENT])
> AC_SUBST([PYTHON3_AGENT])
>
> +AC_ARG_ENABLE([test-sdt-uprobe],
> + [AS_HELP_STRING([--enable-test-sdt-uprobe], [enable the LTTng UST SDT uprobe tests [default=autodetect]])],
> + [test_sdt_uprobe="$enableval"],
> + [test_sdt_uprobe=autodetect]
> +)
> +
> +AS_IF([test "$test_sdt_uprobe" != "no"], [
> + LTTNG_CHECK_SDT_WORKS
> + AC_PATH_PROG([DTRACE], [dtrace])
> +])
> +
> +AS_IF([test "$test_sdt_uprobe" = "yes"], [
> + AS_IF([test "$lttng_cv_sdt_works" = "no"], [
> + AC_MSG_ERROR([Cannot find 'sys/sdt.h'.])
> + ])
> + AS_IF([test "x$DTRACE" = "x"], [
> + AC_MSG_ERROR([Cannot find SystemTap dtrace. You can set the DTRACE variable to override automatic detection.])
> + ])
> +])
> +
> +AS_IF([test "$test_sdt_uprobe" = "autodetect"], [
> + AS_IF([test "$lttng_cv_sdt_works" = "yes"], [
> + AS_IF([test "x$DTRACE" != "x"], [
> + test_sdt_uprobe=yes
> + ])
> + ])
> +])
> +
> +AM_CONDITIONAL([TEST_SDT_UPROBE], [test "$test_sdt_uprobe" = "yes"])
> +
> # Arguments for binaries build exclusion
> AC_ARG_ENABLE([bin-lttng], AS_HELP_STRING([--disable-bin-lttng],[Disable the build of lttng binaries]))
> AC_ARG_ENABLE([bin-lttng-consumerd], AS_HELP_STRING([--disable-bin-lttng-consumerd],
> @@ -1243,6 +1270,10 @@ PPRINT_PROP_BOOL([LTTng-UST Python2 agent tests], $value)
> test ! -z "$PYTHON3_AGENT" && value=1 || value=0
> PPRINT_PROP_BOOL([LTTng-UST Python3 agent tests], $value)
>
> +# LTTng UST Java agent Log4j tests enabled/disabled
> +test "x$test_sdt_uprobe" = "xyes" && value=1 || value=0
> +PPRINT_PROP_BOOL([LTTng-UST SDT uprobe tests], $value)
> +
> #Python binding enabled/disabled
> test "x$enable_python_binding" = xyes && value=1 || value=0
> AS_ECHO
> diff --git a/tests/utils/testapp/Makefile.am b/tests/utils/testapp/Makefile.am
> index 2a4cf5c7b..e2ad1f235 100644
> --- a/tests/utils/testapp/Makefile.am
> +++ b/tests/utils/testapp/Makefile.am
> @@ -12,9 +12,9 @@ if CXX_WORKS
> SUBDIRS += userspace-probe-elf-cxx-binary
> endif # CXX_WORKS
>
> -if SDT_WORKS
> +if TEST_SDT_UPROBE
> SUBDIRS += userspace-probe-sdt-binary
> -endif # SDT_WORKS
> +endif # TEST_SDT_UPROBE
>
> if HAVE_MODULES_USERSPACE_CALLSTACK_CONTEXT
> SUBDIRS += gen-syscall-events-callstack
> diff --git a/tests/utils/testapp/userspace-probe-sdt-binary/Makefile.am b/tests/utils/testapp/userspace-probe-sdt-binary/Makefile.am
> index d79ce0ea3..591f4aa6c 100644
> --- a/tests/utils/testapp/userspace-probe-sdt-binary/Makefile.am
> +++ b/tests/utils/testapp/userspace-probe-sdt-binary/Makefile.am
> @@ -26,10 +26,14 @@ libzzz_la_CFLAGS = -I$(abs_builddir)
> libzzz_la_LDFLAGS = -module -shared -avoid-version -rpath $(abs_builddir)/.libs/
> nodist_libzzz_la_SOURCES = $(abs_builddir)/foobar_provider.h
>
> +dtrace_verbose = $(dtrace_verbose_ at AM_V@)
> +dtrace_verbose_ = $(dtrace_verbose_ at AM_DEFAULT_V@)
> +dtrace_verbose_0 = @echo " DTRACE " $@;
> +
> foobar_provider.h: foobar_provider.d
> - dtrace -s $< -o $@ -h
> + $(dtrace_verbose)$(DTRACE) -s $< -o $@ -h
>
> foobar_provider.o: foobar_provider.d
> - dtrace -s $< -o $@ -G
> + $(dtrace_verbose)$(DTRACE) -s $< -o $@ -G
>
> CLEANFILES = foobar_provider.h
> --
> 2.17.1
>
More information about the lttng-dev
mailing list