|
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,
too.
> 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.
Yours,
Jürgen
-- * Dipl.-Math. Jürgen Hunold ! * voice: ++49 4257 300 ! Fährstraße 1 * fax : ++49 4257 300 ! 31609 Balge/Sebbenhausen * jhunold_at_gmx.eu ! Germany
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk