
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. http://docs.redhat.com/docs/en-US/Red_Hat_Developer_Toolset/1/html/1.0_Relea... Sebastian