GCC 5 in Fedora (Red Hat developer blog)
One consequence of this decision will be that Fedora 22 and Fedora 23 will both have GCC 5, but they’ll be fundamentally different. The C++ library (libstdc++.so) will be compatible between F22 and F23 (in fact, it will be almost exactly the same, modulo some extra patches from upstream that might be pulled into the later F23 build). The difference will be all the other DSOs that link to it. That’s important for Fedora developers to note. Specifically, FESCo’s decision means the C++ standard library headers installed by the libstdc++-devel RPM will have a different default value for the _GLIBCXX_USE_CXX11_ABI macro (0 in F22 and 1 in F23) but the libstdc++.so library will be largely the same in F22 and F23, because that library contains all the symbol definitions for both the old ABI and the new ABI, so that the same library works for both cases."
Posted Feb 10, 2015 19:16 UTC (Tue)
by juliank (guest, #45896)
[Link] (37 responses)
Posted Feb 10, 2015 20:12 UTC (Tue)
by JoeBuck (subscriber, #2330)
[Link] (35 responses)
Posted Feb 10, 2015 21:02 UTC (Tue)
by gb (subscriber, #58328)
[Link] (34 responses)
Posted Feb 10, 2015 21:12 UTC (Tue)
by juliank (guest, #45896)
[Link] (12 responses)
Imagine a third-party program P linked to the old libstdc++ using a system library C that is linked against the new libstdc++.
As far as I can tell, that will crash randomly. With two different libstdc++ sonames, such a case could be easily identified.
Posted Feb 10, 2015 21:13 UTC (Tue)
by juliank (guest, #45896)
[Link]
Posted Feb 10, 2015 23:25 UTC (Tue)
by tetromino (guest, #33846)
[Link]
The symbol versioning approach makes random crashes rather unlikely. (AFAICS, they can occur only if something in C's public API takes a pointer/reference to one of the stl structures whose ABI changed, and P uses that feature of C's API.)
The soname versioning approach makes random crashes virtually guaranteed, because ld.so will happily pull in both sonames at runtime, and then everything in P's internals, everyting in C's internals, and worst of all, libstdc++ own internals will all be exposed to incompatible ABIs. However, in this case, the crash's cause will be easier to diagnose for a moderately sophisticated user (as long as P doesn't have a binary plugin infrastructure).
Posted Feb 11, 2015 1:32 UTC (Wed)
by ncm (guest, #165)
[Link]
Posted Feb 11, 2015 8:48 UTC (Wed)
by zenor (guest, #100805)
[Link] (4 responses)
Posted Feb 11, 2015 9:54 UTC (Wed)
by KSteffensen (guest, #68295)
[Link] (3 responses)
Posted Feb 11, 2015 10:38 UTC (Wed)
by zenor (guest, #100805)
[Link]
Posted Feb 11, 2015 12:50 UTC (Wed)
by yoshi314 (guest, #36190)
[Link]
Biggest one i recall was introduction of expat-2, but gcc3-to-4 migration also was fairly major.
If a library updates via soname bump, there are mechanisms in place to keep things working and slowly migrate things over. But in this case, there might be a necessity for either a big rebuild or just reinstallation from a new profile.
Posted Feb 18, 2015 20:17 UTC (Wed)
by Wol (subscriber, #4433)
[Link]
Not if you can avoid it ...
I've just run an "emerge -e mysql" because my email server is busted :-( And it doesn't seem to have fixed the problem :-(
16Gb ram, Athlon X3, and things like gcc, firefox, thunderbird et al all take - literally - hours to recompile. I dread to think how long an "emerge -e world" will take ...
I'm really not looking forward to being forced to bite the bullet and go ahead with that ...
Cheers,
Posted Feb 11, 2015 15:49 UTC (Wed)
by jwakely (subscriber, #60262)
[Link] (3 responses)
Posted Feb 11, 2015 16:01 UTC (Wed)
by juliank (guest, #45896)
[Link]
Posted Feb 11, 2015 21:33 UTC (Wed)
by zenor (guest, #100805)
[Link] (1 responses)
Posted Feb 12, 2015 16:50 UTC (Thu)
by ncm (guest, #165)
[Link]
Posted Feb 10, 2015 21:14 UTC (Tue)
by rleigh (guest, #14622)
[Link] (20 responses)
Not that it's unique to these libraries, but since it has so many users, it causes much more trouble when it comes to doing a wholesale migration to the new ABI. Not that it's impossible; I rememeber doing rebuilds for the "c102" migration in Debian for the previous C++ ABI break. Doing it this way avoids the need for an immediate "flag day", but I think in practice you'll end up needing to do this anyway due to all the dependent libraries needing to switch over to the new std::string etc.
Posted Feb 10, 2015 21:50 UTC (Tue)
by nix (subscriber, #2304)
[Link]
It's tough on people trying to ship binary-only stuff that links against C++ stuff already on the platform -- but there's not much of that bar Qt and boost, and boost is so ABI-unstable that everyone already has to have their own copy anyway. The symbol versions should handle the trivial case of a binary that is just written in C++... but who knows how much pain this will cause :(
Posted Feb 11, 2015 1:41 UTC (Wed)
by ncm (guest, #165)
[Link] (18 responses)
Congratulations to the transition team for doing such a good job easing the transition. It can't have been easy.
Posted Feb 11, 2015 12:14 UTC (Wed)
by gowen (guest, #23914)
[Link] (17 responses)
Fedora 22 only branched from Rawhide a day or two ago, and Fedora 23 will not be released until winter 2015 at the earliest.
Posted Feb 11, 2015 13:30 UTC (Wed)
by mattdm (subscriber, #18)
[Link] (14 responses)
Fall 2015, going by calendar seasons. Even F21 didn't slip all the way into winter.
Posted Feb 11, 2015 13:57 UTC (Wed)
by nye (subscriber, #51576)
[Link] (13 responses)
Um, it was released in December - less than two weeks before midwinter.
(According to Wikipedia anyway)
Posted Feb 11, 2015 14:12 UTC (Wed)
by mattdm (subscriber, #18)
[Link] (12 responses)
Huh; today I learned that this is not standardized internationally. In the US, we consider the winter solstice the official _start_ of Winter.
In any case, and back to the point, F23 is planned for October, and for the same reasons that we decided to not delay F21 for the new GCC ABI, we _don't_ expect to slip until close to winter, however you define it.
Posted Feb 11, 2015 15:11 UTC (Wed)
by riccieri (guest, #94794)
[Link] (11 responses)
That, plus the fact that when you write "winter" I (and half of the planet) need to read "summer", is why people should stop using seasons to communicate scheduling.
Posted Feb 11, 2015 15:42 UTC (Wed)
by mattdm (subscriber, #18)
[Link] (3 responses)
Posted Feb 11, 2015 16:12 UTC (Wed)
by etienne (guest, #25256)
[Link] (1 responses)
No, not "Mother's Day", you should not phone your Mum on the wrong "Mother's Day" - I know that.
Posted Feb 13, 2015 16:04 UTC (Fri)
by Wol (subscriber, #4433)
[Link]
But for us over here it's Mothering Sunday, the fourth Sunday in Lent.
Cheers,
Posted Feb 11, 2015 18:35 UTC (Wed)
by riccieri (guest, #94794)
[Link]
Posted Feb 12, 2015 3:15 UTC (Thu)
by gmatht (guest, #58961)
[Link]
Posted Feb 12, 2015 10:33 UTC (Thu)
by jwakely (subscriber, #60262)
[Link] (3 responses)
Posted Feb 12, 2015 11:18 UTC (Thu)
by jonquark (guest, #45554)
[Link] (2 responses)
Posted Feb 13, 2015 16:09 UTC (Fri)
by Wol (subscriber, #4433)
[Link] (1 responses)
Off-topic - our grand-kids were delighted because we had half an inch of snow on boxing day - which lasted about 24 hours.
Cheers,
Posted Feb 17, 2015 7:47 UTC (Tue)
by tao (subscriber, #17563)
[Link]
SCNR.
Posted Feb 23, 2015 23:54 UTC (Mon)
by Trammael (guest, #101173)
[Link] (1 responses)
Posted Feb 24, 2015 1:32 UTC (Tue)
by mathstuf (subscriber, #69389)
[Link]
Posted Feb 11, 2015 13:37 UTC (Wed)
by ncm (guest, #165)
[Link] (1 responses)
Posted Feb 11, 2015 16:03 UTC (Wed)
by gowen (guest, #23914)
[Link]
Personally, I hope to be able to applaud them in November when their efforts have proved successful, but until then, probably best to reserve judgement.
Posted Feb 11, 2015 15:15 UTC (Wed)
by malor (guest, #2973)
[Link]
Maybe it'll hurt less, maybe it'll hurt more, but it was always going to hurt.
Posted Feb 13, 2015 9:31 UTC (Fri)
by gb (subscriber, #58328)
[Link] (1 responses)
Posted Feb 13, 2015 14:29 UTC (Fri)
by mathstuf (subscriber, #69389)
[Link]
GCC 5 in Fedora (Red Hat developer blog)
GCC 5 in Fedora (Red Hat developer blog)
GCC 5 in Fedora (Red Hat developer blog)
GCC 5 in Fedora (Red Hat developer blog)
GCC 5 in Fedora (Red Hat developer blog)
GCC 5 in Fedora (Red Hat developer blog)
>
> As far as I can tell, that will crash randomly. With two different libstdc++ sonames, such a case could be easily identified.
GCC 5 in Fedora (Red Hat developer blog)
GCC 5 in Fedora (Red Hat developer blog)
to the new ABI, or they must force their users to build everything
from scratch again.
GCC 5 in Fedora (Red Hat developer blog)
GCC 5 in Fedora (Red Hat developer blog)
to recompile anything...
GCC 5 in Fedora (Red Hat developer blog)
GCC 5 in Fedora (Red Hat developer blog)
Wol
GCC 5 in Fedora (Red Hat developer blog)
GCC 5 in Fedora (Red Hat developer blog)
GCC 5 in Fedora (Red Hat developer blog)
and then switch to gcc-5 (that uses the new ABI) and start
building the updates as they come.
I did that and came across many crashes in the first days.
The gdb backtraces contain the hints to what additional packages
need updates (always std::string related in my case).
Crash early, crash often
GCC 5 in Fedora (Red Hat developer blog)
GCC 5 in Fedora (Red Hat developer blog)
GCC 5 in Fedora (Red Hat developer blog)
Call me a traditionalist, but shouldn't we wait until the transition has happened before congratulating people for who smoothly it went?GCC 5 in Fedora (Red Hat developer blog)
GCC 5 in Fedora (Red Hat developer blog)
GCC 5 in Fedora (Red Hat developer blog)
GCC 5 in Fedora (Red Hat developer blog)
GCC 5 in Fedora (Red Hat developer blog)
GCC 5 in Fedora (Red Hat developer blog)
GCC 5 in Fedora (Red Hat developer blog)
GCC 5 in Fedora (Red Hat developer blog)
Wol
GCC 5 in Fedora (Red Hat developer blog)
`when you write "winter" I (and half of the planet) need to read "summer"' ... actually it is worse than that. If you live in the Tropics, you don't even have summer or winter.
Less than half the planet has winter in December.
GCC 5 in Fedora (Red Hat developer blog)
GCC 5 in Fedora (Red Hat developer blog)
GCC 5 in Fedora (Red Hat developer blog)
Wol
GCC 5 in Fedora (Red Hat developer blog)
GCC 5 in Fedora (Red Hat developer blog)
GCC 5 in Fedora (Red Hat developer blog)
GCC 5 in Fedora (Red Hat developer blog)
We know they made a good honest effort, which is definitely is worth applauding in itself. By all means thank them for trying, but we have literally no idea how successful that effort proved to be.GCC 5 in Fedora (Red Hat developer blog)
We know that they did everything that could be done
We know no such thing. They acted on everything they could foresee. Did they foresee everything that could go wrong? We do not yet know.
GCC 5 in Fedora (Red Hat developer blog)
GCC 5 in Fedora (Red Hat developer blog)
GCC 5 in Fedora (Red Hat developer blog)