Boost logo

Boost :

Subject: Re: [boost] Library names in system layout on linux
From: Vladimir Prus (vladimir_at_[hidden])
Date: 2008-11-08 12:56:31


Andrey Semashev wrote:

> Vladimir Prus wrote:
>
>>>>> How will you name the single threaded version?
>>>> The same -- like it is done on Linux.
>>> I'm not quite happy with this. I assume, other libraries don't have the
>>> configuration flexibility which boost has, therefore reduced mangling is
>>> sufficient for them. With boost it can lead to subtle problems when an
>>> application begins using the wrong library. This small suffix doesn't
>>> complicate the name too much, so I'd like it to be there. As an
>>> alternative, we could drop 'mt', but introduce 'st' in single-threaded
>>> builds.
>>
>> Recall, we're talking about --layout=system, which is explicitly meant for
>> system integrators. So it's not a "small suffix", it is "incompatible with
>> system naming of libraries".
>
> Is it? AFAIK, there are no specific requirements on the library name
> itself (by which I mean everything between 'lib' and '.so' or '.a'). It
> can be 'boost_filesystem' or 'boost_filesystem_mt' - I don't see much
> difference for packaging purpose.
>
>> There is zillion ways to compile any library,
>> so this matter is not specific to boost.
>
>> It is known that compiled versions of some Boost libraries have different ABI
>> in ST and MT mode. But then, Boost is not one library of such kind.
>
> But why introduce the danger of misuse, especially when there is no such
> problem now?

The problem now is that names used by boost libraries don't follow system conventions,
so a random user, to build against Boost, should use:

        -lboost_filesystem-<bunch-on-random-tags>

It is a big problem in practice. The only wya to fix that is to:

        - make --layout=system produce undecorated name
        - Tell all packagers they should use this option.

- Volodya


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk