[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] xen/x86: unable to build with gcc5



>>> On 13.03.15 at 13:00, <ian.campbell@xxxxxxxxxx> wrote:
> This was originally reported against Xen 4.4 in
> http://bugs.debian.org/778181 but I have reproduced with current staging
> using debug=n. Compiler I used is:
>         $ gcc --version
>         gcc (Debian 5-20150205-1) 5.0.0 20150205 (experimental) [trunk 
> revision 220455]
> 
> Error: size of boot.o:.text is 0x026c
> /build/gcc5/xen.git/xen/Rules.mk:180: recipe for target 'boot.init.o' failed
> 
> $ objdump -t ./xen/arch/x86/efi/boot.o | grep -P '[^t]\.text[^\.]'
> 0000000000000000 l    d  .text        0000000000000000 .text
> 0000000000000000 l     F .text        00000000000000e9 pre_parse.constprop.9
> 00000000000000f0 l     F .text        0000000000000123 get_value.constprop.10
> 0000000000000220 l     F .text        000000000000004c 
> set_color.part.4.constprop.11
> 
> pre_parse, get_value and set_color are all annotated with __init, but I
> guess this is something else. Any idea what to do? Possibly a gcc bug?
> 
> Building with -k -s I also see:
> 
> Error: size of unxz.o:.text is 0x06b
> ->
> 0000000000000000 l    d  .text        0000000000000000 .text
> 0000000000000000 l     F .text        000000000000006b dec_vli.isra.1
> 
> Error: size of dmi_scan.o:.text is 0x018f
> ->
>  grep -P '[^t]\.text\b'
> 0000000000000000 l    d  .text        0000000000000000 .text
> 0000000000000000 l     F .text        000000000000018f 
> _dmi_iterate.constprop.6

For all of the above, at a first glance I'd say compiler bug. But to
be sure, could you send the three .o-s?

> And:
> 
> symbols.c: In function 'symbols_lookup':
> symbols.c:128:359: error: array subscript is above array bounds 
> [-Werror=array-bounds]
> symbols.c:136:176: error: array subscript is above array bounds 
> [-Werror=array-bounds]
> 
> from common/symbols.c. I suppose because of
>         extern const unsigned int symbols_offsets[1]
>         #define symbols_address(n) (SYMBOLS_ORIGIN + symbols_offsets[n])
> 
> I'm not sure why that needs to be a singleton array instead of []?

I don't see a reason other than someone having wanted to be
standard C compliant (which we don't need to be here).

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.