[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] git master build failure
From: |
Mark Cave-Ayland |
Subject: |
Re: [Qemu-devel] git master build failure |
Date: |
Fri, 17 Jun 2016 13:41:36 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Icedove/38.8.0 |
On 15/06/16 13:35, Laszlo Ersek wrote:
> 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>.
Hi Laszlo,
Thank you looking into this. I know that some workarounds have been
applied for similar bugs in Peter's setup, but in general should I
assume that out-of-the-box Debian oldstable is now no longer supported
to build QEMU?
ATB,
Mark.