
From: boost-bounces@lists.boost.org [mailto:boost-bounces@lists.boost.org] On Behalf Of David Abrahams Sent: Monday, September 15, 2008 1:49 PM
on Sun Sep 14 2008, Stefan Seefeld <seefeld-AT-sympatico.ca> wrote:
I figure the main reason people are urged to use multiple boost versions side-by-side is because of API incompatibilities between them.
More like ABI incompatibility. Our APIs have been relatively stable, IMO, but if you have precompiled binaries from one vendor that uses 1.34 and from another that uses 1.35, what choice do you have?
We have a somewhat unique twist on this. We dynamically-link our application against several Boost shared libraries, but we also have a facility for our customers to build plug-ins which can be loaded into our application. The plug-ins take the form of shared libraries. Some customers have run into difficulty using Boost within the plug-ins they build due to version conflicts between the version our application is using and the version the customer is using. This isn't strictly an ABI issue-- Boost classes never cross the boundary of plug-ins. But it has some of the same issues, since loading two different shared libraries which define the same symbols creates a real mess. Putting Boost into a versioned namespace and using namespace aliasing at build time could allow multiple versions to co-exist within a single process. Admittedly our use-case is on the fringe. -Chris