Boost logo

Boost :

Subject: Re: [boost] C++03 and C++11 ABI compatibility for compiled libraries
From: Jürgen Hunold (jhunold_at_[hidden])
Date: 2013-05-13 14:07:59

Hi Andrey,

I jsut focus on the Boost.Build issues.

On Monday, 13. May 2013 16:08:31 Andrey Semashev wrote:
> 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.

Theoretically, yes.

> This would require changes in Boost.Build

This is mostly a gcc (and compatible compiler, aka clang, icc) question.
Technically, you have to provide a Boost.Build feature (e.g. " feature std :
c++98 c++11 ;") to distinguish between the standards. Then you can change
library names in boostcpp.jam easily. The tricky part is to figure out which
gcc enables c++11 support with which switches and hardcode this depending on
the real gcc version into gcc.jam. There are discussion about this on the ML,

> and autolinking support code
Autolinking is a msvc (and compatible, aka intel) solution. (Un-)fortunately,
msvc just enables c++11 features by default without any switches. But as the
msvc runtimes are ABI-incompatible from version to version, this should be a
non-issue for msvc users. mingw is another story, sadly.

>, but I think this would be a better long-term solution.

The long-term solution is to get gcc (or the distros) to switch to c++11 as
default. Your solution is a mid-term solution. But I fear that similar
problems will occur with the next standard version, too.
I am just not sure whether this justifies the work needed here.



* Dipl.-Math. Jürgen Hunold  ! 
* voice: ++49 4257 300       ! Fährstraße 1
* fax  : ++49 4257 300       ! 31609 Balge/Sebbenhausen
*             ! Germany

Boost list run by bdawes at, gregod at, cpdaniel at, john at