From: "Michael S. Tsirkin" <mst@redhat.com>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: John Rigby <john.rigby@linaro.org>,
Richard Henderson <rth@twiddle.net>,
Laszlo Ersek <lersek@redhat.com>,
QEMU Developers <qemu-devel@nongnu.org>,
Alexander Graf <agraf@suse.de>
Subject: Re: [Qemu-devel] [PATCH] target-arm: fix build on fedora
Date: Mon, 23 Dec 2013 16:16:28 +0200 [thread overview]
Message-ID: <20131223141628.GD21800@redhat.com> (raw)
In-Reply-To: <CAFEAcA-=9j86Eo8sjtBojuQti=ti9_o5CjZO+QAONye5ZjuXRw@mail.gmail.com>
On Mon, Dec 23, 2013 at 12:37:41PM +0000, Peter Maydell wrote:
> On 23 December 2013 11:56, Michael S. Tsirkin <mst@redhat.com> wrote:
> > commit 5ce4f35781028ce1aee3341e6002f925fdc7aaf3
> > "target-arm: A64: add set_pc cpu method"
> >
> > introduces an array aarch64_cpus which is zero
> > size if this code is built without CONFIG_USER_ONLY.
> > In particular an attempt to iterate over this array produces a warning:
> >
> > CC aarch64-softmmu/target-arm/cpu64.o
> > /scm/qemu/target-arm/cpu64.c: In function ‘aarch64_cpu_register_types’:
> > /scm/qemu/target-arm/cpu64.c:124:5: error: comparison of unsigned
> > expression < 0 is always false [-Werror=type-limits]
> > for (i = 0; i < ARRAY_SIZE(aarch64_cpus); i++) {
> > ^
> > cc1: all warnings being treated as errors
> >
> > This is the result of ARRAY_SIZE being an unsigned type,
> > causing i to be promoted to unsigned int as well.
>
> I guess this is a new gcc warning, since this all builds
> fine for me (gcc 4.6.3).
I see this with gcc 4.8.2 on Fedora 19.
> > As zero size arrays are a gcc extension, it seems
> > cleanest to add a dummy element with NULL name,
> > and test for it during registration.
> >
> > Cc: Alexander Graf <agraf@suse.de>
> > Cc: Peter Maydell <peter.maydell@linaro.org>
> > Cc: Richard Henderson <rth@twiddle.net>
> > Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> > ---
> >
> > I have queued this in my tree since it prevents me from
> > being able to build and test properly.
> > Pls review and ack.
> >
> > target-arm/cpu64.c | 5 +++++
> > 1 file changed, 5 insertions(+)
> >
> > diff --git a/target-arm/cpu64.c b/target-arm/cpu64.c
> > index 04ce879..2efe189 100644
> > --- a/target-arm/cpu64.c
> > +++ b/target-arm/cpu64.c
> > @@ -58,6 +58,7 @@ static const ARMCPUInfo aarch64_cpus[] = {
> > #ifdef CONFIG_USER_ONLY
> > { .name = "any", .initfn = aarch64_any_initfn },
> > #endif
> > + { .name = NULL }
> > };
> >
> > static void aarch64_cpu_initfn(Object *obj)
> > @@ -100,6 +101,10 @@ static void aarch64_cpu_register(const ARMCPUInfo *info)
> > .class_init = info->class_init,
> > };
> >
> > + if (!info->name) {
> > + return;
> > + }
> > +
> > type_info.name = g_strdup_printf("%s-" TYPE_ARM_CPU, info->name);
> > type_register(&type_info);
> > g_free((void *)type_info.name);
>
> At a minimum, if we take this approach we should add TODO comments
> to the effect that the NULL terminator and the if() can be removed
> when the first real AArch64 CPU is added.
>
> I think I'd rather put the if (!info->name) continue into the function
> which is doing the looping over the array.
>
> thanks
> -- PMM
prev parent reply other threads:[~2013-12-23 14:12 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-23 11:56 [Qemu-devel] [PATCH] target-arm: fix build on fedora Michael S. Tsirkin
2013-12-23 12:37 ` Peter Maydell
2013-12-23 12:50 ` Paolo Bonzini
2013-12-23 12:59 ` Peter Maydell
2013-12-23 13:32 ` Stefan Weil
2013-12-23 13:41 ` Peter Maydell
2013-12-23 14:15 ` Michael S. Tsirkin
2013-12-23 14:15 ` Peter Maydell
2013-12-23 13:45 ` Andreas Färber
2013-12-23 13:56 ` Peter Maydell
2013-12-23 14:16 ` Michael S. Tsirkin [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20131223141628.GD21800@redhat.com \
--to=mst@redhat.com \
--cc=agraf@suse.de \
--cc=john.rigby@linaro.org \
--cc=lersek@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).