[ovs-build] Broken: openvswitch/ovs#158 (master - 538919d)

Travis CI notifications at travis-ci.org
Wed Oct 1 16:13:43 UTC 2014

Build Update for openvswitch/ovs

Build: #158
Status: Broken

Duration: 25 minutes and 19 seconds
Commit: 538919d (master)
Author: Ben Pfaff
Message: configure: Disable strict aliasing.

The C standard allows compilers to do type-based alias analysis, which
means that the compiler is allowed to assume that pointers to objects of
different types are pointers to different objects.  For example, a compiler
may assume that "uint16_t *a" and "uint32_t *b" point to different and
nonoverlapping locations because the pointed-to types are different.  This
can lead to surprising "optimizations" with compilers that by default do
this kind of analysis, which includes GCC and Clang.

The one escape clause that the C standard gives us is that character types
must be assumed to alias any other object.  We've always tried to use this
escape clause to avoid problems with type-based alias analysis in the past.
I think that we should continue to try to do this in the future.  It's hard
to tell what compiler we might want to use in the future, and one never
knows what kind of control that compiler allows over alias analysis.

However, recently I helped another developer debug a nasty and confusing
issue, which turned out to be the result of a surprising compiler
optimization due to alias analysis.  I've seen enough of these that I don't
think it's worthwhile to risk more problems than we have to.  Thus, this
commit turns off type-based alias analysis in GCC and Clang.

Linus Torvalds thinks that type-base alias analysis is not sane, at least
as GCC implements it: https://lkml.org/lkml/2003/2/26/158

The GCC manual says that -Wstrict-aliasing is only effective without
-fno-strict-aliasing, otherwise I'd keep -Wstrict-aliasing also.

Indications are that MSVC doesn't do type-based alias analysis by default.

Signed-off-by: Ben Pfaff <blp at nicira.com>
Acked-by: Jarno Rajahalme <jrajahalme at nicira.com>

View the changeset: https://github.com/openvswitch/ovs/compare/d25e2f572b50...538919d3a672

View the full build log and details: https://travis-ci.org/openvswitch/ovs/builds/36784436


You can configure recipients for build notifications in your .travis.yml file. See http://docs.travis-ci.com/user/notifications

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.openvswitch.org/pipermail/ovs-build/attachments/20141001/c41a0890/attachment-0002.html>

More information about the build mailing list