On 02/22/2016 04:55 AM, Marek Polacek wrote:
In the past few days and weeks we did a mass rebuild of Fedora rawhide packages
in mock with GCC 6 (and corresponding libtool) and for those packages that
failed also rebuilt the same package with gcc-5.3.1-2.fc23.x86_64 to quickly
remove from the list packages that fail for non-GCC related reasons.

There were 17741 packages overall (last year we had 16230 packages).  16281
packages built fine, 883 packages failed to build with both gcc-6 and gcc-5
(ignored for this analysis, unlikely to be GCC 6 related).  This left us with
577 packages that had to be analyzed.  That is a lot -- last year we only had
to examine 236 packages.  So that's why it's taken so long.

As usually, there will be a "porting to" document to ease the transition to
the new GCC.  We already have https://gcc.gnu.org/gcc-6/porting_to.html, even
though this document is still somewhat in flux.

The biggest change hands-down this year is the change of the default standard
for g++ from -std=gnu++98 to -std=gnu++14; this has caused considerable churn,
as you might have noticed on this mailing list.  Unfortunately, many packages
weren't prepared to handle C++11.  Changes in libstdc++ often revealed very
poor programming practices.

Before I describe the results in more detail, I'd like to thank Jon Wakely and
Jakub Jelinek for their indispensable help.

Any mistakes, omissions, or mis-categorizations are solely mine.

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:

3Depict-0.0.18-3.fc24.src.rpm
        C++ language linkage issue in cmath and cstdlib
        http://gcc.gnu.org/PR69386
        fixed upstream and in gcc-6 (not sure which exact release)

I'm still seeing build failures in 3Depict with gcc 6.0.0-0.12.fc24 that seem quite similar (though not exactly the same) to the original PR:

In file included from /usr/include/c++/6.0.0/tr1/random:46:0,
                 from /usr/include/c++/6.0.0/parallel/random_number.h:36,
                 from /usr/include/c++/6.0.0/parallel/partition.h:38,
                 from /usr/include/c++/6.0.0/parallel/quicksort.h:36,
                 from /usr/include/c++/6.0.0/parallel/sort.h:48,
                 from /usr/include/c++/6.0.0/parallel/algo.h:45,
                 from /usr/include/c++/6.0.0/parallel/algorithm:37,
                 from /usr/include/c++/6.0.0/algorithm:65,
                 from ./common/basics.h:65,
                 from ./backend/APT/ionhit.h:22,
                 from ./backend/filter.h:27,
                 from ./backend/plot.h:23,
                 from gui/dialogs/rangeEditDialog.h:22,
                 from gui/dialogs/rangeEditDialog.cpp:19:
/usr/include/c++/6.0.0/tr1/cmath: In function 'float std::tr1::acosh(float)': /usr/include/c++/6.0.0/tr1/cmath:424:18: error: 'float std::tr1::acosh(float)' conflicts with a previous declaration
   acosh(float __x)
                  ^
In file included from /usr/include/c++/6.0.0/math.h:36:0,
                 from /usr/include/wx-3.0/wx/math.h:18,
                 from /usr/include/wx-3.0/wx/gdicmn.h:23,
                 from /usr/include/wx-3.0/wx/event.h:20,
                 from /usr/include/wx-3.0/wx/wx.h:24,
                 from gui/dialogs/rangeEditDialog.h:5,
                 from gui/dialogs/rangeEditDialog.cpp:19:
/usr/include/c++/6.0.0/cmath:1224:3: note: previous declaration 'constexpr float std::acosh(float)'
   acosh(float __x)
   ^~~~~

https://koji.fedoraproject.org/koji/taskinfo?taskID=13097401



--
Orion Poplawski
Technical Manager                     303-415-9701 x222
NWRA/CoRA Division                    FAX: 303-415-9702
3380 Mitchell Lane                  or...@cora.nwra.com
Boulder, CO 80301              http://www.cora.nwra.com
--
devel mailing list
devel@lists.fedoraproject.org
http://lists.fedoraproject.org/admin/lists/devel@lists.fedoraproject.org

Reply via email to