From: Martin Jansa <martin.jansa@gmail.com>
To: openembedded-devel@lists.openembedded.org
Subject: Re: "krb" fails to build, suspect GCC bug
Date: Tue, 27 Oct 2015 21:25:03 +0100 [thread overview]
Message-ID: <20151027202503.GH2577@jama> (raw)
In-Reply-To: <20151027195742.GG2577@jama>
[-- Attachment #1: Type: text/plain, Size: 4718 bytes --]
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@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
>
> mdadm failure:
> | raid6check.c: In function 'check_stripes':
> | raid6check.c:315:8: error: 'stripe_buf' may be used uninitialized in this function [-Werror=maybe-uninitialized]
> | char *stripe_buf;
> | ^
> | cc1: all warnings being treated as errors
> | make: *** [raid6check.o] Error 1
> | ERROR: oe_runmake failed
>
> is newer (seen only in Jethro builds).
>
> But maybe only because this is built in do_compile_ptest_base and ptest
> support was added in oe-core/jethro, it fails the same with gcc-5.2 and gcc-4.9.
Quick grep in my last -Os world build shows 2 more recipes with
similar issue (smbnetfs is failing in krb5 dependency already):
physfs:
| physfs/2.0.3-r0/physfs-2.0.3/archivers/zip.c: In function 'ZIP_openArchive':
| physfs/2.0.3-r0/physfs-2.0.3/archivers/zip.c:944:19: error: 'data_start' may be used uninitialized in this function [-Werror=maybe-uninitialized]
| entry->offset += ofs_fixup;
| ^
| physfs/2.0.3-r0/physfs-2.0.3/archivers/zip.c:1116:19: note: 'data_start' was declared here
| PHYSFS_uint32 data_start;
| ^
| physfs/2.0.3-r0/physfs-2.0.3/archivers/zip.c: In function 'ZIP_openArchive':
| physfs/2.0.3-r0/physfs-2.0.3/archivers/zip.c:944:19: error: 'data_start' may be used uninitialized in this function [-Werror=maybe-uninitialized]
| entry->offset += ofs_fixup;
| ^
| physfs/2.0.3-r0/physfs-2.0.3/archivers/zip.c:1116:19: note: 'data_start' was declared here
| PHYSFS_uint32 data_start;
| ^
| cc1: all warnings being treated as errors
tvheadend:
| tvheadend/3.3-r0/git/src/serviceprobe.c: In function 'serviceprobe_thread':
| tvheadend/3.3-r0/git/src/serviceprobe.c:168:7: error: 's' may be used uninitialized in this function [-Werror=maybe-uninitialized]
| subscription_unsubscribe(s);
| ^
--
Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 188 bytes --]
next prev parent reply other threads:[~2015-10-27 20:24 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-05 12:39 "krb" fails to build, suspect GCC bug Mike Looijmans
2015-10-27 18:21 ` Martin Jansa
2015-10-27 18:26 ` Khem Raj
2015-10-27 19:57 ` Martin Jansa
2015-10-27 20:25 ` Martin Jansa [this message]
2015-10-28 8:23 ` Mike Looijmans
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20151027202503.GH2577@jama \
--to=martin.jansa@gmail.com \
--cc=openembedded-devel@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.