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. 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 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#disambiguation. 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 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@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx