On 10/26/23 12:30, Zhenzhong Duan wrote:
> This adds "--enable-iommufd/--disable-iommufd" to enable or disable
> iommufd support, enabled by default.
It should be disabled by default for PPC.
Thanks,
C.
>
> Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
> Signed-off-by: Cédric Le Goater <clg@redhat.com>
> ---
> meson.build | 6 ++++++
> meson_options.txt | 2 ++
> scripts/meson-buildoptions.sh | 3 +++
> 3 files changed, 11 insertions(+)
>
> diff --git a/meson.build b/meson.build
> index 4961c82a6b..a8b0edf7b1 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -560,6 +560,10 @@ have_tpm = get_option('tpm') \
> .require(targetos != 'windows', error_message: 'TPM emulation only available on POSIX systems') \
> .allowed()
>
> +have_iommufd = get_option('iommufd') \
> + .require(targetos == 'linux', error_message: 'iommufd is supported only on Linux') \
> + .allowed()
> +
> # vhost
> have_vhost_user = get_option('vhost_user') \
> .disable_auto_if(targetos != 'linux') \
> @@ -2133,6 +2137,7 @@ if get_option('tcg').allowed()
> endif
> config_host_data.set('CONFIG_TPM', have_tpm)
> config_host_data.set('CONFIG_TSAN', get_option('tsan'))
> +config_host_data.set('CONFIG_IOMMUFD', have_iommufd)
> config_host_data.set('CONFIG_USB_LIBUSB', libusb.found())
> config_host_data.set('CONFIG_VDE', vde.found())
> config_host_data.set('CONFIG_VHOST_NET', have_vhost_net)
> @@ -4074,6 +4079,7 @@ summary_info += {'vhost-user-crypto support': have_vhost_user_crypto}
> summary_info += {'vhost-user-blk server support': have_vhost_user_blk_server}
> summary_info += {'vhost-vdpa support': have_vhost_vdpa}
> summary_info += {'build guest agent': have_ga}
> +summary_info += {'iommufd support': have_iommufd}
> summary(summary_info, bool_yn: true, section: 'Configurable features')
>
> # Compilation information
> diff --git a/meson_options.txt b/meson_options.txt
> index 3c7398f3c6..91bb958cae 100644
> --- a/meson_options.txt
> +++ b/meson_options.txt
> @@ -109,6 +109,8 @@ option('dbus_display', type: 'feature', value: 'auto',
> description: '-display dbus support')
> option('tpm', type : 'feature', value : 'auto',
> description: 'TPM support')
> +option('iommufd', type : 'feature', value : 'auto',
> + description: 'iommufd support')
>
> # Do not enable it by default even for Mingw32, because it doesn't
> # work on Wine.
> diff --git a/scripts/meson-buildoptions.sh b/scripts/meson-buildoptions.sh
> index 7ca4b77eae..1effc46f7d 100644
> --- a/scripts/meson-buildoptions.sh
> +++ b/scripts/meson-buildoptions.sh
> @@ -125,6 +125,7 @@ meson_options_help() {
> printf "%s\n" ' guest-agent-msi Build MSI package for the QEMU Guest Agent'
> printf "%s\n" ' hvf HVF acceleration support'
> printf "%s\n" ' iconv Font glyph conversion support'
> + printf "%s\n" ' iommufd iommufd support'
> printf "%s\n" ' jack JACK sound support'
> printf "%s\n" ' keyring Linux keyring support'
> printf "%s\n" ' kvm KVM acceleration support'
> @@ -342,6 +343,8 @@ _meson_option_parse() {
> --enable-install-blobs) printf "%s" -Dinstall_blobs=true ;;
> --disable-install-blobs) printf "%s" -Dinstall_blobs=false ;;
> --interp-prefix=*) quote_sh "-Dinterp_prefix=$2" ;;
> + --enable-iommufd) printf "%s" -Diommufd=enabled ;;
> + --disable-iommufd) printf "%s" -Diommufd=disabled ;;
> --enable-jack) printf "%s" -Djack=enabled ;;
> --disable-jack) printf "%s" -Djack=disabled ;;
> --enable-keyring) printf "%s" -Dkeyring=enabled ;;