From 3c0add43b8dfe60cbf667a67e96e403305d7ad1a Mon Sep 17 00:00:00 2001 From: Pavel Hrdina Date: Fri, 24 Jul 2020 16:44:59 +0200 Subject: [PATCH] meson: add dtrace build dependency Signed-off-by: Pavel Hrdina Reviewed-by: Peter Krempa Reviewed-by: Neal Gompa --- configure.ac | 7 ------- m4/virt-dtrace.m4 | 45 --------------------------------------------- meson.build | 8 ++++++++ meson_options.txt | 1 + 4 files changed, 9 insertions(+), 52 deletions(-) delete mode 100644 m4/virt-dtrace.m4 diff --git a/configure.ac b/configure.ac index 141c926a91..935331e580 100644 --- a/configure.ac +++ b/configure.ac @@ -73,10 +73,6 @@ case $host in *-*-mingw* | *-*-msvc* ) with_win=yes ;; esac -if test $with_linux = no; then - with_dtrace=no -fi - AM_CONDITIONAL([WITH_LINUX], [test "$with_linux" = "yes"]) AM_CONDITIONAL([WITH_FREEBSD], [test "$with_freebsd" = "yes"]) AM_CONDITIONAL([WITH_MACOS], [test "$with_macos" = "yes"]) @@ -101,7 +97,6 @@ dnl dnl Miscellaneous checks dnl -LIBVIRT_ARG_DTRACE LIBVIRT_ARG_NUMAD LIBVIRT_ARG_INIT_SCRIPT LIBVIRT_ARG_LOADER_NVRAM @@ -111,7 +106,6 @@ LIBVIRT_ARG_TLS_PRIORITY LIBVIRT_ARG_SYSCTL_CONFIG -LIBVIRT_CHECK_DTRACE LIBVIRT_CHECK_NUMAD LIBVIRT_CHECK_INIT_SCRIPT LIBVIRT_CHECK_LOADER_NVRAM @@ -187,7 +181,6 @@ LIBVIRT_WIN_RESULT_WINDRES AC_MSG_NOTICE([]) AC_MSG_NOTICE([Miscellaneous]) AC_MSG_NOTICE([]) -LIBVIRT_RESULT_DTRACE LIBVIRT_RESULT_NUMAD LIBVIRT_RESULT_INIT_SCRIPT LIBVIRT_RESULT_LOADER_NVRAM diff --git a/m4/virt-dtrace.m4 b/m4/virt-dtrace.m4 deleted file mode 100644 index 3dc20d5343..0000000000 --- a/m4/virt-dtrace.m4 +++ /dev/null @@ -1,45 +0,0 @@ -dnl The DTrace static probes -dnl -dnl Copyright (C) 2016 Red Hat, Inc. -dnl -dnl This library is free software; you can redistribute it and/or -dnl modify it under the terms of the GNU Lesser General Public -dnl License as published by the Free Software Foundation; either -dnl version 2.1 of the License, or (at your option) any later version. -dnl -dnl This library is distributed in the hope that it will be useful, -dnl but WITHOUT ANY WARRANTY; without even the implied warranty of -dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -dnl Lesser General Public License for more details. -dnl -dnl You should have received a copy of the GNU Lesser General Public -dnl License along with this library. If not, see -dnl . -dnl - -AC_DEFUN([LIBVIRT_ARG_DTRACE], [ - LIBVIRT_ARG_WITH([DTRACE], [use dtrace for static probing], [check]) -]) - -AC_DEFUN([LIBVIRT_CHECK_DTRACE], [ - if test "$with_dtrace" != "no" ; then - AC_PATH_PROG([DTRACE], [dtrace], [], [$LIBVIRT_SBIN_PATH]) - if test -z "$DTRACE" ; then - if test "$with_dtrace" = "check"; then - with_dtrace=no - else - AC_MSG_ERROR([You must install the 'dtrace' binary to enable libvirt static probes]) - fi - else - with_dtrace=yes - fi - if test "$with_dtrace" = "yes"; then - AC_DEFINE_UNQUOTED([WITH_DTRACE_PROBES], 1, [whether DTrace static probes are available]) - fi - fi - AM_CONDITIONAL([WITH_DTRACE_PROBES], [test "$with_dtrace" != "no"]) -]) - -AC_DEFUN([LIBVIRT_RESULT_DTRACE], [ - LIBVIRT_RESULT([DTrace], [$with_dtrace]) -]) diff --git a/meson.build b/meson.build index f98d219f18..ffb08d20b9 100644 --- a/meson.build +++ b/meson.build @@ -2085,6 +2085,13 @@ if conf.has('WITH_LIBVIRTD') driver_modules_flags = libvirt_export_dynamic endif +if host_machine.system() == 'linux' + dtrace_prog = find_program('dtrace', required: get_option('dtrace'), dirs: libvirt_sbin_path) + if dtrace_prog.found() + conf.set('WITH_DTRACE_PROBES', 1) + endif +endif + # define top include directory @@ -2208,6 +2215,7 @@ summary(test_summary, section: 'Test suite', bool_yn: true) misc_summary = { 'Use -Werror': cc_flags.contains('-Werror'), 'Warning Flags': supported_cc_flags, + 'DTrace': conf.has('WITH_DTRACE_PROBES'), 'Char device locks': chrdev_lock_files, } summary(misc_summary, section: 'Miscellaneous', bool_yn: true, list_sep: ' ') diff --git a/meson_options.txt b/meson_options.txt index 7eb4890c94..4168eb71a3 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -92,3 +92,4 @@ option('storage_zfs', type: 'feature', value: 'auto', description: 'ZFS backend # build feature options option('chrdev_lock_files', type: 'string', value: '', description: 'location for UUCP style lock files for character devices (leave empty for default paths on some platforms)') +option('dtrace', type: 'feature', value: 'auto', description: 'use dtrace for static probing')