Boost logo

Boost :

From: Stefan Seefeld (stefan_at_[hidden])
Date: 2020-06-15 13:46:03

On 2020-06-15 8:46 a.m., Aleksei Nikiforov via Boost wrote:
> Hi.
> I've noticed that some versions ago boost started creating additional
> symlinks when built for linux. In addition to boost_${library}.so ->
> boost_${library}.so.A.B.C symlink, two more symlinks are created:
> boost_${library}.so.A -> boost_${library}.so.A.B.C and
> boost_${library}.so.A.B -> boost_${library}.so.A.B.C.

This is a Linux convention to support multiple co-existing versions,
assuming that the rules for semantic versioning are followed.

Note however that Boost doesn't follow semantic versioning. Its normal
builds add the version numbers to the library names, so conceptually two
versions of the same library are actually considered two distinct
libraries by the linker.

> In binary linux distributions, *.so files and header files are usually
> packed into devel packages, while *.so.* are packed into library
> packages. In case of boost and those symlinks it can lead to an issue.
> For example, during upgrade from boost 1.72.0 to boost 1.73.0, while
> both boost 1.72.0 libraries and 1.73.0 libraries are needed temporarily,
> boost_${library}.so.1 symlinks from both packages may conflict. These
> symlinks with same names point to different libraries. It's not an issue
> for devel packages and *.so symlinks with same names since you don't
> need two devel packages being installed at same time during upgrade.

That would be an issue to be reported to downstream package maintainers
(in Fedora, Debian, or wherever you encounter the problem), as that is
where Boost libraries are built without the version numbers in their
name. This is presumably because the Linux distros' package managers
assure that multiple versions will never be installed side-by-side,
precisely to prevent this kind of issue.


       ...ich hab' noch einen Koffer in Berlin...

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