qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] target-arm: fix build on fedora
@ 2013-12-23 11:56 Michael S. Tsirkin
  2013-12-23 12:37 ` Peter Maydell
  0 siblings, 1 reply; 11+ messages in thread
From: Michael S. Tsirkin @ 2013-12-23 11:56 UTC (permalink / raw)
  To: qemu-devel
  Cc: Peter Maydell, John Rigby, lersek, Alexander Graf,
	Richard Henderson

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.

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);
-- 
MST

^ permalink raw reply related	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2013-12-23 14:16 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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 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).