Re: Using C++11



On 06/29/2015 02:54 PM, Murray Cumming wrote:
On Mon, 2015-06-29 at 14:53 +0200, Murray Cumming wrote:
On Mon, 2015-06-29 at 14:43 +0200, Kalev Lember wrote:
On 06/29/2015 02:27 PM, Murray Cumming wrote:
On Mon, 2015-06-29 at 12:03 +0200, Kalev Lember wrote:
All of Fedora 23 (scheduled for release this October / November) is
built with the new C++11 ABI.

Interesting. Thanks. Is there some official Fedora page about that? 

http://developerblog.redhat.com/2015/02/10/gcc-5-in-fedora/ has all the
details - this is probably the most up to date page we have right now.

The short summary is that both Fedora 22 and Fedora 23 ship GCC 5 as the
system compiler, but with different defaults: in Fedora 22 all the
packages are built with the older C++ ABI, whereas all of Fedora 23 is
built with the new C++11 ABI.

This means that any apps must be rebuilt in Fedora 23, right? For
instance, if someone has an app that they have packaged themselves under
Fedora 21, they can expect that app to not run under Fedora 23 unless
they rebuild it? So it's an ABI break.
(Assuming that the app uses a C++ library such as boost or gtkmm.)


Yes, that's right.

It's probably not strictly true for _all_ applications because libstdc++
itself supports both the older and newer ABI, so apps that only use the
standard library should continue working fine:
https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html

Any other libraries, such as gtkmm that include std::list or std::string
in their public interface have changed ABI in Fedora 23 though, and apps
that use these libraries would have to be rebuilt.

Everything in the standard Fedora repositories has already been rebuilt
for Fedora 23, so the ABI change should be mostly transparent to users -
with the exception of 3rd party applications that would have to be
rebuilt as well.

-- 
Kalev




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]