|
Boost : |
Subject: Re: [boost] C++03 and C++11 ABI compatibility for compiled libraries
From: Michael Marcin (mike.marcin_at_[hidden])
Date: 2013-05-13 11:29:47
On 5/13/2013 10:09 AM, Mathias Gaunard wrote:
> On 13/05/13 14:08, Andrey Semashev wrote:
>
>> I would like to hear opinions on the possible course of action to tackle
>> this problem. Currently, I see 2 choices:
>>
>> 1. Avoid using C++11 features in binary interfaces. This may also mean
>> avoiding STL types in binary interfaces, if they differ between C++03 and
>> C++11 (I didn't verify that). This is my suggested hotfix solution for
>> Boost.Filesystem [1] and the approach I took in Boost.Log. Obviously,
>> this
>> cripples code and error prone, but it keeps a single binary that can be
>> used from any flavor of C++ on the user's side.
>> 2. Compile different versions of Boost libraries, for each supported C++
>> version. The C++ version should be encoded into the library file
>> names, so
>> that different versions can coexist. This would require changes in
>> Boost.Build and autolinking support code, but I think this would be a
>> better long-term solution.
>>
>> Opinions?
>>
>> [1] https://svn.boost.org/trac/boost/ticket/6779
>
> I prefer [1].
>
Does boost ever claim support for abi compatibility with different
compiler settings? I thought not.
If there needs to be a change beyond users just building the version
they actually need, I would prefer 2.
Binding Boost to C++03 seems counter to Boost's stated goals.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk