On Mon, 2016-02-29 at 15:41 +0100, Martin Kletzander wrote:
On Wed, Feb 24, 2016 at 02:29:58PM -0700, Eric Blake wrote:
>
> gcc 6.0 added an annoying warning:
>
> fdstream.c: In function 'virFDStreamWrite':
> fdstream.c:390:29: error: logical 'or' of equal expressions
[-Werror=logical-op]
> if (errno == EAGAIN || errno == EWOULDBLOCK) {
> ^~
> fdstream.c: In function 'virFDStreamRead':
> fdstream.c:440:29: error: logical 'or' of equal expressions
[-Werror=logical-op]
> if (errno == EAGAIN || errno == EWOULDBLOCK) {
> ^~
>
> This makes it impossible to build out-of-the-box on rawhide,
> and we aren't guaranteed that the gcc bug will be fixed in a
> timely manner:
>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69602
>
> So work around it by further complicating the logic to thwart the
> compiler.
>
> Signed-off-by: Eric Blake <eblake(a)redhat.com>
> ---
>
> This is a build-breaker fix for rawhide; but I'll wait for a day
> for any reasons why I should not push it during freeze.
>
It looks like you're still talking this over and thinking about
approaches. But could we push the fix for the time being so that the
release is nicely buildable and then work on making it nicer later? I'd
vote ACK for that.
Update: the libvirt-fedora-rawhide build host on CentOS CI
has been updated and it's now running gcc 6.0. The immediate
result is that build jobs have started to fail (see [1] for
an example).
Looking at the gcc bug, it doesn't look like there's been
much movement in that area, so I think we should take some
action on our side...
Eric, you mentioned proposing a v2 that would use #pragma
instead of uglifying the current checks. Do you still
intend to work on such alternative approach?
Failing that, I'm personally okay with pushing this.
Cheers.
[1]
https://ci.centos.org/view/libvirt-project/job/libvirt-daemon-build/1131/
--
Andrea Bolognani
Software Engineer - Virtualization Team