Boost logo

Boost :

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
> solution.
>
> 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:
        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
   to requirements
- 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?

Thanks,

-- 
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