On Wed, Apr 20, 2022 at 7:54 PM Paolo Bonzini <pbonzini@redhat.com> wrote:
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> ---
> configure | 14 --------------
> meson.build | 7 ++++++-
> meson_options.txt | 2 ++
> scripts/meson-buildoptions.sh | 4 ++++
> 4 files changed, 12 insertions(+), 15 deletions(-)
>
> diff --git a/configure b/configure
> index 75e8b1e7aa..d4d51eff06 100755
> --- a/configure
> +++ b/configure
> @@ -310,7 +310,6 @@ fortify_source="$default_feature"
> gcov="no"
> EXESUF=""
> modules="no"
> -module_upgrades="no"
> prefix="/usr/local"
> qemu_suffix="qemu"
> softmmu="yes"
> @@ -762,10 +761,6 @@ for opt do
> --disable-modules)
> modules="no"
> ;;
> - --disable-module-upgrades) module_upgrades="no"
> - ;;
> - --enable-module-upgrades) module_upgrades="yes"
> - ;;
> --cpu=*)
> ;;
> --target-list=*) target_list="$optarg"
> @@ -1218,7 +1213,6 @@ cat << EOF
> bsd-user all BSD usermode emulation targets
> pie Position Independent Executables
> modules modules support (non-Windows)
> - module-upgrades try to load modules from alternate paths for upgrades
> debug-tcg TCG debugging (default is disabled)
> debug-info debugging information
> lto Enable Link-Time Optimization.
> @@ -1487,11 +1481,6 @@ if test "$modules" = "yes" && test "$mingw32" =
> "yes" ; then
> error_exit "Modules are not available for Windows"
> fi
>
> -# module_upgrades is only reasonable if modules are enabled
> -if test "$modules" = "no" && test "$module_upgrades" = "yes" ; then
> - error_exit "Can't enable module-upgrades as Modules are not enabled"
> -fi
> -
> # Static linking is not possible with plugins, modules or PIE
> if test "$static" = "yes" ; then
> if test "$modules" = "yes" ; then
> @@ -2563,9 +2552,6 @@ if test "$modules" = "yes"; then
> echo "CONFIG_STAMP=_$( (echo $qemu_version; echo $pkgversion; cat $0) |
> $shacmd - | cut -f1 -d\ )" >> $config_host_mak
> echo "CONFIG_MODULES=y" >> $config_host_mak
> fi
> -if test "$module_upgrades" = "yes"; then
> - echo "CONFIG_MODULE_UPGRADES=y" >> $config_host_mak
> -fi
> echo "CONFIG_TLS_PRIORITY=\"$tls_priority\"" >> $config_host_mak
>
> if test "$xen" = "enabled" ; then
> diff --git a/meson.build b/meson.build
> index 84156df809..3c47d82180 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -1548,6 +1548,11 @@ endif
>
> config_host_data.set('HOST_' + host_arch.to_upper(), 1)
>
> +if get_option('module_upgrades') and not enable_modules
> + error('Cannot enable module-upgrades as modules are not enabled')
> +endif
> +config_host_data.set('CONFIG_MODULE_UPGRADES',
> get_option('module_upgrades'))
> +
> config_host_data.set('CONFIG_ATTR', libattr.found())
> config_host_data.set('CONFIG_BDRV_WHITELIST_TOOLS',
> get_option('block_drv_whitelist_in_tools'))
> config_host_data.set('CONFIG_BRLAPI', brlapi.found())
> @@ -3563,7 +3568,7 @@ summary_info += {'block layer': have_block}
> summary_info += {'Install blobs': get_option('install_blobs')}
> summary_info += {'module support':
> config_host.has_key('CONFIG_MODULES')}
> if config_host.has_key('CONFIG_MODULES')
> - summary_info += {'alternative module path':
> config_host.has_key('CONFIG_MODULE_UPGRADES')}
> + summary_info += {'alternative module path':
> get_option('module_upgrades')}
> endif
> summary_info += {'fuzzing support': get_option('fuzzing')}
> if have_system
> diff --git a/meson_options.txt b/meson_options.txt
> index d140c0ef89..cf18663833 100644
> --- a/meson_options.txt
> +++ b/meson_options.txt
> @@ -34,6 +34,8 @@ option('fuzzing', type : 'boolean', value: false,
> description: 'build fuzzing targets')
> option('gettext', type : 'feature', value : 'auto',
> description: 'Localization of the GTK+ user interface')
> +option('module_upgrades', type : 'boolean', value : false,
> + description: 'try to load modules from alternate paths for
> upgrades')
> option('install_blobs', type : 'boolean', value : true,
> description: 'install provided firmware blobs')
> option('sparse', type : 'feature', value : 'auto',
> diff --git a/scripts/meson-buildoptions.sh b/scripts/meson-buildoptions.sh
> index 92be3e6187..a269534394 100644
> --- a/scripts/meson-buildoptions.sh
> +++ b/scripts/meson-buildoptions.sh
> @@ -19,6 +19,8 @@ meson_options_help() {
> printf "%s\n" ' --disable-install-blobs install provided firmware
> blobs'
> printf "%s\n" ' --enable-malloc=CHOICE choose memory allocator to
> use [system] (choices:'
> printf "%s\n" ' jemalloc/system/tcmalloc)'
> + printf "%s\n" ' --enable-module-upgrades try to load modules from
> alternate paths for'
> + printf "%s\n" ' upgrades'
> printf "%s\n" ' --enable-profiler profiler support'
> printf "%s\n" ' --enable-qom-cast-debug cast debugging support'
> printf "%s\n" ' --enable-rng-none dummy RNG, avoid using
> /dev/(u)random and'
> @@ -268,6 +270,8 @@ _meson_option_parse() {
> --disable-malloc-trim) printf "%s" -Dmalloc_trim=disabled ;;
> --enable-membarrier) printf "%s" -Dmembarrier=enabled ;;
> --disable-membarrier) printf "%s" -Dmembarrier=disabled ;;
> + --enable-module-upgrades) printf "%s" -Dmodule_upgrades=true ;;
> + --disable-module-upgrades) printf "%s" -Dmodule_upgrades=false ;;
> --enable-mpath) printf "%s" -Dmpath=enabled ;;
> --disable-mpath) printf "%s" -Dmpath=disabled ;;
> --enable-multiprocess) printf "%s" -Dmultiprocess=enabled ;;
> --
> 2.35.1
>
>
>
>
--
Marc-André Lureau