Boost: why "--layout==tagged"?

Ryan Schmidt ryandesign at macports.org
Sat Feb 2 02:30:02 UTC 2019



On Feb 1, 2019, at 20:09, Zero King wrote:

> On Fri, Feb 01, 2019 at 06:11:16PM -0600, Ryan Schmidt wrote:
> 
>> On Feb 1, 2019, at 15:30, Michael Dickens wrote:
>> 
>>> OK yes we -offer- multiple versions, but only one version can be installed at a time right now.
>> 
>> No, if you install boost without the no_single variant, you will get both the single-threaded and the multithreaded versions. If you install without the no_static variant, you will get both the static and the dynamic libraries. So if you install without both variants, you'll get all four.
>> 
>> 
>>> I firmly believe that the vast vast majority of folks pick their Boost variant and stick with it through the lifetime of that Boost version if not the whole MacPorts install. The number of folks who actively switch between Boost variants is IMHO very very small.
>> 
>> Oh I'm sure most users install the port with the default variants, which is to say that they only have the dynamic multithreaded version. If we're sure nobody needs the other versions we can do what you suggest. But I'm not sure of that; I have no data. And what you're proposing to do involves work, including removing the suffix from all the ports that are hardcoding it.
> 
> There are guides on GitHub asking the user to install boost with
> -no_static. Search results here: https://github.com/search?q=port+install+boost+-no_static&type=Code

That's a good idea, thanks.


> For example:
> 
> https://github.com/VowpalWabbit/vowpal_wabbit#manual-install-of-vowpal-wabbit

Says to disable no_static but doesn't explain why and also says to override configure.cxx_stdlib and configure.cxx which is terrible advice.


> https://github.com/rime/squirrel/blob/master/INSTALL.md

Says to disable no_static but doesn't explain why.


> and https://github.com/kbase/data_api:
> 
>> E.g. the boost library needs to be installed as -no_static, because the
>> default +no_static install conflicts with thrift and possibly other
>> packages.

no_static doesn't exactly "conflict" with thrift; rather, the thrift source code is hardcoded to use the single-threaded static boost library. The MacPorts thrift port patches the source to use the multi-threaded dynamic boost library instead. Ideally we might have sent that patch to the developers but either we didn't do that or they didn't want it.



More information about the macports-dev mailing list