Subject: Re: [boost] [filesystem] 1.49 linking with c++0x
From: Sebastian Redl (sebastian.redl_at_[hidden])
Date: 2012-07-12 07:55:14
On 12.07.2012 12:01, Andrey Semashev wrote:
> On Thursday 12 July 2012 10:21:12 Sebastian Redl wrote:
>> You cannot safely mix and match C++03 and C++11 code with GCC no
>> matter what libraries you use. The standard library itself breaks
>> binary compatibility between the two versions. Boost builds on the
>> standard library. So no change in Filesystem is going to rescue
>> binary compatibility for you.
> But you can build and link both C++03 and C++11 programs against libstdc++,
> can't you? So it must either contain both ABIs or have some compatibility
> layer. Why is it not possible to use both ABIs then?
Just did a bit of searching and found that the GCC developers actually
delayed the ABI split so far, so it was actually possible to have
compatible 03 and 11 versions, except that a breakage now slipped into
4.7 (apparently earlier than indented). The reason why you can still use
the same libstdc++ is that the breakage is in std::list, and there is no
precompiled std::list code in the dynamic library.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk