
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?