Boost logo

Boost Interest :

Subject: Re: [Boost-cmake] Configuration for sonames for the boost dynamic libraries on Unix
From: Vladimir Prus (vladimir_at_[hidden])
Date: 2009-10-29 15:51:29


Sean Chittenden wrote:

>>> /usr
>>> local
>>> lib
>>> boost-1.40.0
>>> boost-1.41.0
>>> boost -> boost-1.41.0
>>>
>>> Lazy developers will use boost and not boost-1.40.0 and suddenly
>>> things will break in strange, hard to figure out ways.
>>
>> Could you clarify what will break?
>
> The usual suspects for dynamic linker issues.
>
> It's not the end of the world when it happens because it can be easily
> pinned on the user/sysadmin as to why things broke, but this scenario
> strikes me as reasonably common or probable enough:
>
> 1) Install 1.40 with libboost_foo.so
> 2) Install 1.41 with libboost_foo.so
> 3) Remove boost-1.40
> 4) Update library path to include boost-1.41
> 5) Run program linked against 1.40. ldd finds libboost_foo.so.1 in
> boost 1.41 with a different API, or worse, a different ABI.

I don't see how what would happen. ldd will look for libboost_foo.so.1.40.0,
and will not find it. Ah, you imply that the directories above contain
identically named .so files, and those .so have the sane soname. Well,
that's indeed bad idea, regardless of any symlinks.

- Volodya


Boost-cmake list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk