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 orion@xxxxxxxxxxxxx
Boulder, CO 80301 http://www.cora.nwra.com
--
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxxx
http://lists.fedoraproject.org/admin/lists/devel@xxxxxxxxxxxxxxxxxxxxxxx