[oe] "krb" fails to build, suspect GCC bug

Mike Looijmans mike.looijmans at topic.nl
Wed Oct 28 08:23:39 UTC 2015


On 27-10-15 21:25, Martin Jansa wrote:
> On Tue, Oct 27, 2015 at 08:57:42PM +0100, Martin Jansa wrote:
>> On Tue, Oct 27, 2015 at 11:26:32AM -0700, Khem Raj wrote:
>>> On Tue, Oct 27, 2015 at 11:21 AM, Martin Jansa <martin.jansa at gmail.com> wrote:
>>>> On Sat, Sep 05, 2015 at 02:39:14PM +0200, Mike Looijmans wrote:
>>>>> I got this weird build failure from the "krb" package:
>>>>>
>>>>> | make[3]: Entering directory
>>>>> '/TOPDIR/build/tmp/work/mips32el-oe-linux/krb5/1.13.2-r0/krb5-1.13.2/src/lib/krb5/ccache'
>>>>> | mipsel-oe-linux-gcc  -mel -mabi=32 -mhard-float -march=mips32
>>>>> --sysroot=/TOPDIR/build/tmp/sysroots/formuler1 -fPIC -DSHARED
>>>>> -DHAVE_CONFIG_H  -I../../../include -I../../../include -I./ccapi -I. -I.
>>>>>    -DKRB5_DEPRECATED=1 -DKRB5_PRIVATE  -Os -pipe -g
>>>>> -feliminate-unused-debug-types -DDESTRUCTOR_ATTR_WORKS=1
>>>>> -I/TOPDIR/build/tmp/sysroots/formuler1/usr/include/et -Wall -Wcast-align
>>>>> -Wshadow -Wmissing-prototypes -Wno-format-zero-length -Woverflow
>>>>> -Wstrict-overflow -Wmissing-format-attribute -Wmissing-prototypes
>>>>> -Wreturn-type -Wmissing-braces -Wparentheses -Wswitch -Wunused-function
>>>>> -Wunused-label -Wunused-variable -Wunused-value -Wunknown-pragmas
>>>>> -Wsign-compare -Werror=uninitialized -Werror=pointer-arith
>>>>> -Werror=declaration-after-statement
>>>>> -Werror-implicit-function-declaration -pthread -c cc_file.c -o
>>>>> cc_file.so.o && mv -f cc_file.so.o cc_file.so
>>>>> | cc_file.c: In function 'fcc_next_cred':
>>>>> | cc_file.c:368:9: error: 'maxsize' may be used uninitialized in this
>>>>> function [-Werror=maybe-uninitialized]
>>>>> |      ret = load_data(context, id, maxsize, buf);
>>>>> |          ^
>>>>> | cc_file.c:1091:12: note: 'maxsize' was declared here
>>>>> |      size_t maxsize;
>>>>> |             ^
>>>>> | cc1: some warnings being treated as errors
>>>>>
>>>>> Looking at the source, this doesn't make any sense at all. The
>>>>> declaration of the variable isn't even in the same method body. And the
>>>>> line it complains about is about the fifth time it passes that variable
>>>>> to another method.
>>>>>
>>>>> And working around it by initializing maxsize=0 just makes the compiler
>>>>> choke on a similar situation elsewhere:
>>>>> | packet.c:50:67: error: 'id' may be used uninitialized in this function
>>>>>
>>>>>
>>>>> I suspect the problem here is GCC and not the krb code. Anyone seen this?
>>>>
>>>> I've seen it today in my world builds, It seems to fail only when building with -Os.
>>>>
>>>> I've seen similar issue in mdadm, also only with -Os.
>>>>
>>>
>>> is this regression ? or seen for first time?
>>
>> krb5 fails to build like this with -Os at least since dizzy

Since the move to gcc5 this fails. This workaround makes the build pass once more:

https://github.com/OpenPLi/openpli-oe-core/commit/781fea2e5e5e9a18ee905a01b1e2ee80b3aa4721

...
> Quick grep in my last -Os world build shows 2 more recipes with
> similar issue (smbnetfs is failing in krb5 dependency already):
...

I suspect the bug is in GCC, not in the code of these recipes.


Kind regards,

Mike Looijmans
System Expert

TOPIC Embedded Products
Eindhovenseweg 32-C, NL-5683 KH Best
Postbus 440, NL-5680 AK Best
Telefoon: +31 (0) 499 33 69 79
Telefax: +31 (0) 499 33 69 70
E-mail: mike.looijmans at topicproducts.com
Website: www.topicproducts.com

Please consider the environment before printing this e-mail

Visit us at : Aerospace Electrical Systems Expo Europe which will be held from 17.11.2015 till 19.11.2015, Findorffstrasse 101 Bremen, Germany, Hall 5, stand number C65
http://www.aesexpo.eu





More information about the Openembedded-devel mailing list