On Wed, Oct 27, 2021 at 03:45:42AM -0400, Igor Mammedov wrote: > If KVM is disabled or not present, qtest library build > may fail with: > libqtest.c: In function 'qtest_has_accel': > comparison of unsigned expression < 0 is always false > [-Werror=type-limits] > for (i = 0; i < ARRAY_SIZE(targets); i++) { > > due to empty 'targets' array. > Fix it by compiling KVM related part only if > CONFIG_KVM_TARGETS is set. > > Fixes: e741aff0f43343 ("tests: qtest: add qtest_has_accel() to check if > tested binary supports accelerator") > Reported-by: Jason Andryuk <jandr...@gmail.com> > Signed-off-by: Igor Mammedov <imamm...@redhat.com>
> --- > tests/qtest/libqtest.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/tests/qtest/libqtest.c b/tests/qtest/libqtest.c > index 25aeea385b..9833e16f84 100644 > --- a/tests/qtest/libqtest.c > +++ b/tests/qtest/libqtest.c > @@ -931,6 +931,7 @@ bool qtest_has_accel(const char *accel_name) > return false; > #endif > } else if (g_str_equal(accel_name, "kvm")) { > +#if defined(CONFIG_KVM_TARGETS) Ugh. const char *targets[] = { CONFIG_KVM_TARGETS }; are you use CONFIG_KVM_TARGETS is not defined? Looks like it's defined, just empty. which is not standard C BTW. How about we just add an empty string in meson? diff --git a/meson.build b/meson.build index 2c5b53cbe2..ff85e9c2af 100644 --- a/meson.build +++ b/meson.build @@ -75,7 +75,7 @@ else kvm_targets = [] endif -kvm_targets_c = '' +kvm_targets_c = '""' if not get_option('kvm').disabled() and targetos == 'linux' kvm_targets_c = '"' + '" ,"'.join(kvm_targets) + '"' endif > int i; > const char *arch = qtest_get_arch(); > const char *targets[] = { CONFIG_KVM_TARGETS }; > @@ -942,6 +943,9 @@ bool qtest_has_accel(const char *accel_name) > } > } > } > +#else > + return false; > +#endif > } else { > /* not implemented */ > g_assert_not_reached(); > -- > 2.27.0