On 06/15/16 12:08, Mark Cave-Ayland wrote: > On 15/06/16 10:48, Andrew Jones wrote: > >> On Wed, Jun 15, 2016 at 08:14:18AM +0100, Mark Cave-Ayland wrote: >>> Hi Peter, >>> >>> Just to let you know that after pulling git master >>> (49237b856ae58ee7955be0b959c504c51b014f20) I see the following build >>> failure here: >> >> Just pulled and successfully compiled, >> configure --target-list=aarch64-softmmu >> >> And, I'm not sure how it's possible to this warning below. See below >> >>> >>> cc -I/home/build/src/qemu/git/qemu/tcg >>> -I/home/build/src/qemu/git/qemu/tcg/i386 >>> -I/home/build/src/qemu/git/qemu/linux-headers >>> -I/home/build/src/qemu/git/qemu/linux-headers -I. >>> -I/home/build/src/qemu/git/qemu -I/home/build/src/qemu/git/qemu/include >>> -I/home/build/src/qemu/git/qemu/hw/arm -Ihw/arm -I/usr/include/pixman-1 >>> -I/home/build/src/qemu/git/qemu/dtc/libfdt -Werror -m64 -D_GNU_SOURCE >>> -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes >>> -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes >>> -fno-strict-aliasing -fno-common -Wendif-labels -Wmissing-include-dirs >>> -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self >>> -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition >>> -Wtype-limits -fstack-protector-all -I/usr/include/p11-kit-1 >>> -I/usr/include/libpng12 -I../linux-headers -I.. >>> -I/home/build/src/qemu/git/qemu/target-arm -DNEED_CPU_H >>> -I/home/build/src/qemu/git/qemu/include -MMD -MP -MT hw/arm/vexpress.o >>> -MF hw/arm/vexpress.d -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -pthread >>> -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include >>> -g -c -o hw/arm/vexpress.o /home/build/src/qemu/git/qemu/hw/arm/vexpress.c >>> cc -I/home/build/src/qemu/git/qemu/tcg >>> -I/home/build/src/qemu/git/qemu/tcg/i386 >>> -I/home/build/src/qemu/git/qemu/linux-headers >>> -I/home/build/src/qemu/git/qemu/linux-headers -I. >>> -I/home/build/src/qemu/git/qemu -I/home/build/src/qemu/git/qemu/include >>> -I/home/build/src/qemu/git/qemu/hw/arm -Ihw/arm -I/usr/include/pixman-1 >>> -I/home/build/src/qemu/git/qemu/dtc/libfdt -Werror -m64 -D_GNU_SOURCE >>> -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes >>> -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes >>> -fno-strict-aliasing -fno-common -Wendif-labels -Wmissing-include-dirs >>> -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self >>> -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition >>> -Wtype-limits -fstack-protector-all -I/usr/include/p11-kit-1 >>> -I/usr/include/libpng12 -I../linux-headers -I.. >>> -I/home/build/src/qemu/git/qemu/target-arm -DNEED_CPU_H >>> -I/home/build/src/qemu/git/qemu/include -MMD -MP -MT hw/arm/virt.o -MF >>> hw/arm/virt.d -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -pthread >>> -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include >>> -g -c -o hw/arm/virt.o /home/build/src/qemu/git/qemu/hw/arm/virt.c >>> /home/build/src/qemu/git/qemu/hw/arm/virt.c: In function >>> ‘virt_2_6_class_init’: >>> /home/build/src/qemu/git/qemu/hw/arm/virt.c:1509:5: error: array >>> subscript is above array bounds [-Werror=array-bounds] >> >> hw/arm/virt.c:1509 is SET_MACHINE_COMPAT(mc, VIRT_COMPAT_2_6), and >> VIRT_COMPAT_2_6 is HW_COMPAT_2_6 (which is currently nothing). >> >> SET_MACHINE_COMPAT is >> >> #define SET_MACHINE_COMPAT(m, COMPAT) \ >> do { \ >> int i; \ >> static GlobalProperty props[] = { \ >> COMPAT \ >> { /* end of list */ } \ >> }; \ >> if (!m->compat_props) { \ >> m->compat_props = g_array_new(false, false, sizeof(void *)); >> \ >> } \ >> for (i = 0; props[i].driver != NULL; i++) { \ >> GlobalProperty *prop = &props[i]; \ >> g_array_append_val(m->compat_props, prop); \ >> } \ >> } while (0) >> >> >> so props[] is { {} }, which means props[0].driver == NULL. 0 should >> be a valid subscript, and we shouldn't try any others. >> >> Are you using special config options or a special compiler? >> >> Thanks, >> drew > > Hi Andrew, > > Is that from a clean clone of the repository? I wonder if a change to a > generated file isn't being picked up somewhere by "make distclean". My > standard build script is this: > > make distclean > './configure' '--target-list=x86_64-softmmu sparc64-softmmu > sparc-softmmu ppc-softmmu arm-softmmu' '--disable-pie' > > System is standard Debian wheezy on amd64.
According to <https://packages.debian.org/wheezy/gcc>, your gcc is 4.7.2 based (4:4.7.2-1). With a simple google search, I found the following gcc bugs: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=45978 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53198 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56273 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56456 My guess is that Debian has not backported the upstream fix(es) for this gcc bug. In particular, if you look at gcc bug #53198 referenced above, it says: Known to fail: 4.6.0, 4.6.1, 4.6.2, 4.6.3, 4.7.2, 4.7.4 which includes the Wheezy version (4.7.2). Clicking the "Debian Changelog" link on the above p.d.o page, I don't see anything that would indicate that Debian backported the fix. (For reference, I run RHEL-7.2.z, with gcc version 4.8.5-4. According to #56273 above, gcc-4.8.4 is also affected, but 4.8.5 is not (see the Target Milestone field, and the Status field). I built qemu-system-aarch64 from upstream 49237b856ae5 a few hours ago.) I suggest that you open a debian bug; I don't see a report for this issue yet <https://bugs.debian.org/cgi-bin/pkgreport.cgi?pkg=gcc-4.7>. Thanks, Laszlo