[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] qtest: fix 'expression is always false' build failure in qte
From: |
Jason Andryuk |
Subject: |
Re: [PATCH] qtest: fix 'expression is always false' build failure in qtest_has_accel() |
Date: |
Wed, 27 Oct 2021 10:19:42 -0400 |
On Wed, Oct 27, 2021 at 4:34 AM Michael S. Tsirkin <mst@redhat.com> wrote:
>
> 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 <jandryuk@gmail.com>
> > Signed-off-by: Igor Mammedov <imammedo@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
This allows Debian buster (gcc 8.3.0) to compile.
Thanks,
Jason