Hacker News new | past | comments | ask | show | jobs | submit login
GCC 5 in Fedora (redhat.com)
59 points by CUViper on Feb 10, 2015 | hide | past | favorite | 16 comments



This gives me a strange impression of deja vu ... oh right, RedHat Linux and the not-quite-standard gcc 2.96 version and the solution of having a separate "kgcc" program that you could use to compile the programs that the default gcc broke. I feel slightly old now.

The article does seem to imply that they want to ship the new gcc but keep using the old ABI for a while to keep things compatible. Did I read that right?


Both ABIs are shipped in libstdc++, but all other libraries are build with the old ABIs.

You can manually use the libstdc++ with the new ABI, but any of your dependencies that use the problematic ABI must then be rebuild (and will be in F23).


Anyone know about LLVM and their plans? The reason I ask is that I'm starting to do some Rust code and one of the nice features is that they use C++ name mangling. I'm guessing I shouldn't assume that there will be interoperation with installed C++ libraries in the short-mid term :-(.


LLVM does not need to worry about compatibility here because its libc++ is relatively new and was designed with C++11 requirements in mind, whereas GNU libstdc++ is >20 years old and could not possibly have anticipated these new requirements.

OTOH on Linux you're most likely using clang together with libstdc++, and whether that would use old or new ABI would depend on whether the magic macro is defined in libstdc++ or by g++.

The article says "the C++ standard library headers installed by the libstdc++-devel RPM will have a different default value for the _GLIBCXX_USE_CXX11_ABI macro" so that sounds like clang should do the same thing as g++ here.


Note that even though Rust does name mangling, it does not necessarily mangle names exactly as C++ does (and different C++ compilers on different platforms may already differ on how they perform mangling, it's not standardized).


Is any other distro moving to GCC5 so quickly? (Arch users?)


One of fedora's key values is to be leading the way on stuff like this, so it's not surprising that other major distros aren't quite caught up just yet[0] (although I think for this particular one, debian won't be far behind).

That said, I do wonder if this change is going to break more things for end users than they really bargained for. It reminds me a little of the Pulseaudio introduction - where in the haste to ship the new shiny ASAP, they ended up shipping a distro where a huge percentage of users never really got properly working sound. In this case, I'm worried that they underestimate the amount of stuff that users depend on but aren't included in the distro, and that many of these will break. Thinking of stuff like dropbox, the nvidia drivers, skype, etc.

I'm not certain that in retrospect this will be shown to be one of FESCo's better rulings, and that they would have done better to give companies like nvidia, microsoft and dropbox more time to adapt. But time will tell.

0: https://fedoraproject.org/wiki/Foundations


https://packages.debian.org/experimental/gcc-5

Debian has gcc-5 in experimental. A fact I'm taking advantage of because I want to get Docker working on my sparc server but gccgo is broken on 4.9.

It was fixed a few months ago in the gcc repository but the bleeding edge gcc repo has a broken libsanitizer on sparc. David Miller made some patches but gcc won't accept them(has to go through upstream) and upstream(llvm) have been ignoring them.

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59758

So I'll have to disable asan or convince llvm to accept davm's patches and then wait for gcc to merge from upstream.


I think the parent's comment was about using GCC5 to compile all the distro's packages, not just providing GCC5 for its users. The Fedora article is unclear about what they mean, but the consequences they refer to imply using GCC5 to compile their packages.

As far as I know, while your link shows that Debian is getting ready to provide it to its users, they haven't yet formed plans to use it to compile their packages.


Still no GCC5 in Gentoo [0], but I imagine they will have it soon after its final release.

[0] http://packages.gentoo.org/package/sys-devel/gcc


Will Gentoo users require a massive recompile due to the ABI change?


Probably. See here [0] for more info. And Gentoo has some nice tools to help figure out what needs to be re-compiled.

Usually, my laptop can recompile @world (aka everything) overnight, so it's not too much of an issue.

[0] https://wiki.gentoo.org/wiki/Upgrading_GCC#ABI_Changes


Not yet - gcc (GCC) 4.9.2 20150204 (prerelease) But the article reasoning of having to stick it out for a long time doesn't apply anyway when you have a rolling release.


Is it stable enough already?


So they want to ship a compiler if they can't even build their distribution with it? Seriously?

Had to check the date, we are not yet in April.


They're shipping gcc 5, but configures it to use a C++ ABI compatible with older gcc versions, for reasons that does not have anything to do with "they can't even build their distribution with it".




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: