Subject: [boost] [context, config] Always setting address-model and architecture (Was: Conflicts when building libraries at root)
From: Vladimir Prus (vladimir_at_[hidden])
Date: 2015-02-18 06:28:48
On 01/05/2015 10:37 PM, Jürgen Hunold wrote:
>> I'm not entirely sure how build changes are supposed to work in git world,
>> am I at liberty to commit build-related patches to any library, provided
>> the maintainer does not respond in reasonable time?
> One of the problems not really solved. I should have posted to the maintenance
> list earlier. And sometimes the fixes are not so easy or you chose the wrong
> Unfortunately, we still have Boost.Context open.
Okay, so the problem we're facing is that building master results in:
error: Tried to build the target twice, with property sets having
error: these incompatible properties:
error: - none
error: - <address-model>32 <architecture>x86
What happens is this:
- Context library is built
- It detects default address model and architecture of the current toolchain, and adds those
- Since there's a global dependency on 'headers' target, this pretty much immediately rebuilds
everything with new address-model and architecture properties.
- We get property set clash
One way to solve this is to restructure Boost.Context setup so that added properties do not
escape. It's doable, but probably will be fragile.
Another way is to take libs/context/config, move it to libs/config, and make sure these properties
are applied globally. That seems preferable. John, any objections?
-- Vladimir Prus CodeSourcery / Mentor Embedded http://vladimirprus.com
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk