Marek Polacek píše v Út 07. 02. 2017 v 22:32 +0100:
It's been a tradition now that every January we rebuild all the
Fedora packages
with the upcoming GCC, to reveal as many bugs as possible before we
release
the new version. This year is no different.
There were 18811 packages overall (last year we had 17741 packages).
17263 built fine with the new GCC (mostly gcc-7.0.0-0.1.fc26.src.rpm
but I also
used a newer version from rawhide). 1350 failed with both GCC 6 and
GCC 7,
so I ignored these. This left us with ~198 packages that had to be
analyzed,
a number which, fortunately, was smaller than last year, when we'd
had 577 FTBFS to
investigate.
MongoDB is not failing in your rebuild. However latest minor upgrade
(v3.4.2) with gcc 7 is failing.
I've figured out, that is optimization issue (with -O0 it is fine, with
-01 it is failing) and it is ONLY ON ppc64le (other architectures are
fine).
I know which file is cause this issue, but I can't figure out with
which optimization. I get what changes between O0 and O1 in output of
'gcc -O0/1 -Q --help=optimizers' and compiled with -O0 and flags of
individual optimizations (which are added by O1), but failure does not
appear.
What else differs in -O1? How should I debug it?
>
> The Fedora packages I rebuilt were grabbed on Jan 12.
>
> It's all fairly good, and nothing particularly stands out. There is
> the usual
> batch of new warnings (-Wimplicit-fallthrough and -Wformat-truncation
> causing
> the biggest churn), some C++ FE changes (especially the "Fix type-
> dependence
> and the current instantiation" changes made the compiler to reject
> invalid code
> that had previously been accepted, plus invalid conversions with '\0'
> are now
> rejected), some libstdc++ changes (header dependency changes), as
> well as some
> mangling changes.
>
> We found several GCC bugs, most of which have already been
> fixed. Furthermore,
> Fortran ABI has changed in GCC 7. Anyway, there's nothing that
> particularly
> worries me (except perhaps the -fprintf-return-value stuff that might
> still
> cause some wrong codes).
>
> Shortlog appended for the people who want to get an overview of the
> details.
>
> As usual, there will be a "porting to" document to ease the
> transition to the
> new GCC. We already have
https://gcc.gnu.org/gcc-7/porting_to.html,
> even though
> this document is still somewhat in flux.
>
> I'd like to thank Jakub Jelinek and Jonathan Wakely, the guys I roped
> in to help
> me with all this undertaking.
>
> GCC bugs
> ~~~~~~~~
> The following is a list of bugs we've found so far in the compiler
> and the C++
> library during the mass rebuild:
>
> schroot-1.6.5-16.fc24.src.rpm
> ICE in cxx_incomplete_type_diagnostic
>
https://gcc.gnu.org/PR78690
> not fixed yet
>
> python-plyvel-0.9-7.fc26.src.rpm
> error: invalid rhs for gimple memory store
>
https://gcc.gnu.org/PR79232
> fixed in gcc-7.0.1-0.4.fc26
>
> mathicgb-1.0-6.20160202.gitbb268df.fc26.src.rpm
> ICE in tsubst_copy
>
https://gcc.gnu.org/PR79253
> fixed upstream and in gcc-7.0.1-0.5.fc26
>
> cvc4-1.4-11.fc25.src.rpm
> TLS model wrong for static data members
>
https://gcc.gnu.org/PR79288
> fixed in gcc-7.0.1-0.4.fc26
>
> golang-1.7.4-1.fc26.src.rpm
> DWARF info for typeof of C function with no args and no
> prototype
> is empty pointer
>
https://gcc.gnu.org/PR79289
> fixed upstream and in gcc-7.0.1-0.4.fc26
>
> texlive-2016-30.20160520.fc26.src.rpm
> tlog-2-1.fc25.src.rpm
> wrong code at -O2 and -fprintf-return-value
>
https://gcc.gnu.org/PR79327
> fixed upstream and in gcc-7.0.1-0.6.fc26
>
> perl-Prima-1.50-1.fc26.src.rpm
> -fprintf-return-value doesn't handle flexible-like array
> members properly
>
https://gcc.gnu.org/PR79352
> fixed upstream and in gcc-7.0.1-0.6.fc26
>
> clucene09-0.9.21b-16.fc24.src.rpm
> qt5-qttools-5.7.1-4.fc26.src.rpm
> g++ rejects valid code with error: looser throw specifier
>
https://gcc.gnu.org/PR79393 class="Apple-tab-span"
> style="white-space:pre">
>
> Failures due to new warnings and -Werror
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> efivar-30-4.fc26.src.rpm
> a new -Walloc-size-larger-than warning
>
> bind-dyndb-ldap-11.0-1.fc26.src.rpm
> efibootmgr-14-3.fc26.src.rpm
> fwupdate-8-2.fc26.src.rpm
> a new -Wduplicate-decl-specifier warning
>
> mstflint-4.4.0-1.12.gd1edd58.1.fc26.src.rpm
> a new -Wformat-length warning
>
> blobwars-1.19-13.fc24.src.rpm
> czmq-4.0.2-1.fc26.src.rpm
> elfutils-0.168-1.fc26.src.rpm
> fcoe-utils-1.0.30-5.git91c0c8c.fc24.src.rpm
> glib2-2.51.0-2.fc26.src.rpm
> glibc-2.24.90-26.fc26.src.rpm
> ipv6calc-0.99.2-17.fc26.src.rpm
> isomd5sum-1.1.0-4.fc26.src.rpm
> ixpdimm_sw-01.00.00.2144-1.fc26.src.rpm
> libhid-0.2.17-21.fc25.src.rpm
> libpsm2-10.2.2-2.fc25.src.rpm
> libyui-3.2.8-1.fc26.src.rpm
> logrotate-3.11.0-2.fc26.src.rpm
> memcached-1.4.33-1.fc26.src.rpm
> nfs-ganesha-2.4.1-2.fc26.src.rpm
> nodm-0.12-1.fc25.src.rpm
> openvas-libraries-8.0.8-2.fc26.src.rpm
> pacemaker-1.1.16-1.fc26.src.rpm
> sbd-1.2.1-3.fc24.1.src.rpm
> Simple-Fuzzer-0.7.1-1.src.rpm
> usbip-4.5-1.fc25.src.rpm
> varnish-5.0.0-1.fc26.src.rpm
> vsftpd-3.0.3-4.fc26.src.rpm
> xrootd-4.5.0-1.fc26.src.rpm
> a new -Wformat-truncation
>
> ArpON-3.0-2.fc25.src.rpm
> clevis-2-1.fc26.src.rpm
> coreboot-utils-4.5-2.fc26.src.rpm
> crash-7.1.7-1.fc26.src.rpm
> gmqcc-0.3.5-10.fc26.src.rpm
> hidrd-0.2.0-3.20160712git1abf7033.fc25.src.rpm
> libs3-2.0-0.5.20161104gita052a00.fc26.src.rpm
> libvma-8.0.1-1.fc25.src.rpm
> lldpad-1.0.1-4.git036e314.fc24.src.rpm
> luksmeta-3-1.fc26.src.rpm
> mdadm-3.4-3.fc26.src.rpm
> mingw-w64-tools-3.1.999-0.8.trunk.git430863.20140530.fc24.src.rpm
> msgpack-1.4.1-1.fc25.src.rpm
> percona-xtrabackup-2.2.9-4.fc24.src.rpm
> pesign-0.112-5.fc26.src.rpm
> pidgin-sipe-1.21.1-1.fc25.src.rpm
> qpid-cpp-1.35.0-1.fc26.src.rpm
> qpid-qmf-1.35.0-1.fc26.src.rpm
> quassel-irssi-0-2.20161120gitcbd9bd7.fc26.src.rpm
> sway-0.11-4.fc26.src.rpm
> a new -Wimplicit-fallthrough warning
>
> cdrkit-1.1.11-32.fc26.src.rpm
> a new -Wint-in-bool-contex warning
>
> Invalid C++
> ~~~~~~~~~~~~~~~~~~~~~~
> Add64-1.2.2-10.fc24.src.rpm
> berusky2-0.10-11.fc24.src.rpm
> easystroke-0.6.0-15.fc24.src.rpm
> guitarix-0.35.0-3.fc26.src.rpm
> inkscape-0.92.0-11.fc26.src.rpm
> jack-audio-connection-kit-1.9.10-5.fc24.src.rpm
> kate4-4.14.3-16.fc24.src.rpm
> milkytracker-0.90.86-3.fc25.src.rpm
> muse-2.2.1-2.fc24.src.rpm
> rawtherapee-4.2.1234-2.20161105gitb766110.fc26.src.rpm
> svxlink-15.11-1.fc24.src.rpm
> vdr-2.2.0-10.fc25.src.rpm
> error: call of overloaded 'abs(...)' is ambiguous
> All overloads of the abs function are now declared by including
> either
> of <cstdlib> or <cmath>, and the custom overloads conflict with
> one of
> the additional overloads in the standard
> headers. Additionally,
> calling abs with an argument of unsigned type is now ill-formed
> after
> inclusion of any standard abs overload.
>
> capnproto-0.5.3-2.fc25.src.rpm
> error: could not convert template argument 'b' from 'bool' to
> 'capnp::Kind'
> Presumably invalid C++.
>
> atlascpp-0.6.3-6.fc24.src.rpm
> glmark2-2014.03-6.fc25.src.rpm
> ladish-2-13.3.gitfcb16ae.fc24.src.rpm
> libinvm-cim-1.0.0.1043-1.fc26.src.rpm
> libvoikko-3.8-2.fc25.src.rpm
> openoffice.org-diafilter-1.7.5-1.fc24.src.rpm
> pulseview-0.3.0-1.fc24.src.rpm
> error: dynamic exception specifications are deprecated in
> C++11; use 'noexcept' instead
> In C++17, throw(int) is no longer valid.
>
> asgp-1.0.18-6.fc26.src.rpm
> bear-0.7.0-0.11.20161230git781ec80.fc26.src.rpm
> crawl-0.19.1-1.fc26.src.rpm
> libclaw-1.7.4-16.fc26.src.rpm
> plee-the-bear-0.7.0-10.fc26.src.rpm
> steghide-0.5.1-28.fc26.src.rpm
> error: expected primary-expression before ... token
> Invalid C++ code; it needs to be "position.template
> cast_value_type_to".
> See
https://womble.decadent.org.uk/c++/template-faq.html#disamb
> iguation.
>
> normaliz-2.12.2-8.fc24.src.rpm
> error: expression cannot be used as a function
> Invalid C++, Jon opened:
>
https://bugzilla.redhat.com/show_bug.cgi?id=1417678
> class="Apple-tab-span" style="white-space:pre">
>
> apt-cacher-ng-0.9.0-1.fc24.src.rpm
> clementine-1.3.1-4.fc26.src.rpm
> conky-1.10.4-1.fc26.src.rpm
> dwgrep-0.2-4.fc24.src.rpm
> fflas-ffpack-2.2.2-3.fc26.src.rpm
> glogg-1.1.2-1.fc26.src.rpm
> gpgme-1.8.0-7.fc26.src.rpm
> gtengine-3.5-1.fc26.src.rpm
> lldb-3.9.0-3.fc26.src.rpm
> pingus-0.7.6-20.fc24.src.rpm
> plasma-desktop-5.8.5-2.fc26.src.rpm
> worker-3.3.3-6.fc24.src.rpm
> Quoting from porting_to:
> Several C++ Standard Library headers have been changed to no
> longer
> include the <functional> header. As such, C++ programs that
> used components
> defined in <functional> without explicitly including that
> header will no
> longer compile.
>
> Previously components such as std::bind and std::function were
> implicitly
> defined after including unrelated headers such as <memory>,
> <futex>, <mutex>,
> and <regex>. Correct code should #include <functional> to
> define them.
>
> Also see
https://bugzilla.redhat.com/show_bug.cgi?id=1417383
>
> bison-3.0.4-4.fc24.src.rpm
> This package contains code that is trying to add some classes
> to std::,
> that is undefined behavior.
>
> Coin2-2.5.0-28.fc26.src.rpm
> Coin3-3.1.3-18.fc26.src.rpm
> dbus-c++-0.9.0-11.fc24.src.rpm
> festival-1.96-32.fc24.src.rpm
> gambas3-3.9.2-2.fc26.src.rpm
> htdig-3.2.0-0.25.b6.fc24.src.rpm
> kyotocabinet-1.2.76-11.fc26.src.rpm
> mup-6.5-1.fc26.src.rpm
> percolator-3.01-1.fc26.src.rpm
> pki-core-10.3.5-10.fc26.src.rpm
> scim-1.4.17-1.fc25.src.rpm
> scim-bridge-0.4.16-22.fc24.src.rpm
> speed-dreams-2.2.1-2.fc26.src.rpm
> torcs-1.3.7-1.fc25.src.rpm
> error: invalid conversion from 'char' to 'char*'
> s = '\0'
> This code is invalid in C++11 and GCC doesn't compile it
> anymore (pointer
> conversions are only allowed for an integral-literal and not a
> character
> literal). In C++03 and in C the compiler warns (-Wpointer-
> compare).
>
> vegastrike-0.5.1-27.r1.fc24.src.rpm
> error: request for member ... in ...
> Looks like '.' is used instead of '->', so invalid C++.
>
> apvlv-0.1.4-11.fc25.src.rpm
> arm-none-eabi-gcc-cs-6.2.0-1.fc26.src.rpm
> aspell-0.60.6.1-14.fc26.src.rpm
> avr-gcc-6.2.0-1.fc26.src.rpm
> dyninst-9.3.0-1.fc26.src.rpm
> edk2-20161105git3b25ca8-1.fc26.src.rpm
> frysk-0.4-54.fc26.src.rpm
> gearmand-1.1.14-1.fc26.src.rpm
> glog-0.3.3-12.fc25.src.rpm
> gpsim-0.29.0-1.fc24.src.rpm
> hylafax+-5.5.8-1.fc24.src.rpm
> kdelibs-4.14.28-1.fc26.src.rpm
> libmemcached-1.0.18-7.fc24.src.rpm
> libmp4v2-2.1.0-0.6.trunkREV507.fc24.src.rpm
> mingw-gcc-6.3.0-1.fc26.src.rpm
> mozjs17-17.0.0-16.fc26.src.rpm
> mozjs24-24.2.0-11.fc26.src.rpm
> ode-0.14-2.fc24.src.rpm
> oorexx-4.2.0-3.fc26.src.rpm
> primer3-2.3.6-6.fc24.src.rpm
> shigofumi-0.6-4.fc25.src.rpm
> snoopy-2.2.6-3.fc24.src.rpm
> vdr-live-0.3.0-24.20150213git6ea279a.fc26.src.rpm
> xmoto-0.5.11-9.fc24.src.rpm
> error: ISO C++ forbids comparison between pointer and integer
> You can no longer write "ptr == '\0'" as it's invalid C++11.
>
> atanks-6.5-1.fc26.src.rpm
> blitz-0.10-10.fc24.src.rpm
> nodejs-6.9.4-1.fc26.src.rpm
> OpenEXR-2.2.0-6.fc26.src.rpm
> qt5-qtbase-5.7.1-12.fc26.src.rpm
> qt5-qtwebengine-5.7.1-4.fc26.src.rpm
> v8-314-3.14.5.10-3.fc25.src.rpm
> z3-4.5.0-1.fc26.src.rpm
> error: invalid use of incomplete type
> This code is ill-formed and G++ now rejects such code.
>
> k3d-0.8.0.6-2.fc26.src.rpm
> error: no match for 'operator<<' (operand types are
> 'std::ostream
> {aka std::basic_ostream<char>}' and 'const double')
> Missing <ostream>.
>
> codeblocks-16.01-2.fc26.src.rpm
> cyphesis-0.6.2-9.fc24.src.rpm
> there are no arguments to .. that depend on a template
> parameter,
> so a declaration of ... must be available
> This code is ill-formed and G++ now rejects such code.
>
> ETL-0.04.22-1.fc26.src.rpm
> libffado-2.3.0-1.fc26.src.rpm
> meshlab-1.3.2-10.fc25.src.rpm
> sflphone-1.4.1-20.fc26.src.rpm
> error: no matching function for call to ...
> Invalid code.
>
> mongo-cxx-driver-1.1.2-3.fc26.src.rpm
> Unknown failure. Fails in a shim test, so perhaps some
> libstdc++ changes?
>
> gmm-5.0-1.fc24.src.rpm
> Package exceeded -ftemplate-depth limit.
>
> cppcheck-1.75-1.fc26.src.rpm
> pdns-4.0.1-3.fc26.src.rpm
> pdns-recursor-4.0.3-2.fc26.src.rpm
> error: types may not be defined in a for-range-declaration
> Invalid code: "The decl-specifier-seq shall not define a
> class or enumeration."
> (This used to be a warning.)
>
> openigtlink-0-0.2.20151015gitccb2438.fc24.src.rpm
> error: 'void*' is not a pointer-to-object type
> Invalid code.
>
> Other
> ~~~~~
> ruby-2.3.3-61.fc26.src.rpm
> This was a GC bug in Ruby; fixed.
>
https://bugzilla.redhat.com/show_bug.cgi?id=1417590
>
> florist-2011-19.fc24.src.rpm
> matreshka-0.7.0-5.fc24.src.rpm
> Error: no native compiler found for language 'ada', default
> runtime
> This is gcc-gnat related. Didn't investigate further.
>
> cryptlib-3.4.3-8.fc26.src.rpm
> cryptobone-1.1.1-2.fc26.src.rpm
> error: CPU you selected does not support x86-64 instruction set
> -mcpu=pentium in the options list.
>
> diffutils-3.5-1.fc26.src.rpm
> A bug in the package. I opened a BZ with a patch:
>
https://bugzilla.redhat.com/show_bug.cgi?id=1419536
>
> libbson-1.5.1-1.fc26.src.rpm
> -fwrapv helped, so I bet this is a bug in the package. I
> suggest
> to use -fsanitize=undefined to see where the overflow happens.
>
> libosmocore-0.9.0-4.2015110~t916423ef.fc24.src.rpm
> -fgnu89-inline helped. See what I wrote in
>
https://gcc.gnu.org/gcc-5/porting_to.html
>
> ecl-16.1.2-1.fc26.src.rpm
> This failed because there was an insanely huge struct and the
> new
> diagnostics (fix-it hints) was trying to print it all. I
> killed
> the build.
>
> coin-or-Dip-0.91.2-6.fc25.src.rpm
> R-DynDoc-1.52.0-1.fc26.src.rpm
> R-pls-2.4.3-5.fc24.src.rpm
> Missing libgfortran 7.
>
> bastet-0.43.1-11.fc24.src.rpm
> ocaml-cil-1.7.3-27.fc26.src.rpm
> ocp-0.1.22-0.10.git849cc42.fc26.src.rpm
> openms-2.1.0-3.fc26.src.rpm
> openttd-1.6.1-2.fc26.src.rpm
> These are not ready for a new gcc version (gcc -dumpversion
> says '7'
> and not e.g. '6.3.1') and the packages fail to cope with that.
>
> perl-HTTP-Proxy-0.304-3.fc25.src.rpm
> perl-OpenGL-0.6704-5.fc25.src.rpm
> Two Perl failures that I wasn't able to analyze, but since they
> don't use gcc at all, I presume it's not gcc's fault.
>
> vavoom-1.33-19.fc26.src.rpm
> For some unknown reason a piece of a Makefile isn't performed,
> resulting in a failure.
>
> arc-gui-clients-0.4.6-9.fc25.src.rpm
> archimedes-2.0.1-5.fc24.src.rpm
> audacity-2.1.3-0.7.20161109git53a5c93.fc26.src.rpm
> bwm-ng-0.6.1-2.fc24.src.rpm
> ember-0.7.2-15.fc25.src.rpm
> extremetuxracer-0.7.4-1.fc26.src.rpm
> funguloids-1.06-18.fc24.src.rpm
> glite-lbjp-common-gsoap-plugin-3.2.12-10.fc26.src.rpm
> gnokii-0.6.31-14.fc24.src.rpm
> gobby-0.4.13-10.fc24.src.rpm
> linbox-1.4.2-5.fc26.src.rpm
> marsshooter-0.7.6-2.fc26.src.rpm
> mgetty-1.1.37-1.fc26.src.rpm
> mkvtoolnix-9.6.0-1.fc26.src.rpm
> openalchemist-0.4-19.fc24.src.rpm
> powerline-2.5-4.fc26.src.rpm
> sobby-0.4.7-12.fc24.src.rpm
> tunneler-1.1.1-17.fc24.src.rpm
> Undefined references. Some of them might be due to C99/GNU89
> inline
> semantics, but some of them are result of the mangling changes,
> see
> porting_to.html.
>
> pspp-0.10.2-1.fc26.src.rpm
> A bug in the package, see
>
https://bugzilla.redhat.com/show_bug.cgi?id=1419174
>
> Marek
> _______________________________________________
> devel mailing list -- devel(a)lists.fedoraproject.org
> To unsubscribe send an email to devel-leave(a)lists.fedoraproject.org