Boost logo

Boost :

Subject: Re: [boost] [endian][build] Boost build broken
From: Vladimir Prus (ghost_at_[hidden])
Date: 2014-08-26 07:52:17


On 08/26/2014 03:08 PM, Marcel Raad wrote:
> Hi,
>
> as mentioned on the Boost user mailing list a week ago
> (http://thread.gmane.org/gmane.comp.lib.boost.user/82429), I cannot build
> Boost from develop anymore.
>
> I just noticed that I can still build individual libraries, only the
> combination of Boost.System + Boost.Endian (and thus building all of Boost
> by just running "b2") is broken. "b2 --without-endian" works, "b2 --without-
> system" doesn't.
>
> Does anyone have any idea what the problem could be? The output of "b2
> --with-system --with-endian" is:

...

> error: Duplicate name of actual target: <pstage\lib>libboost_system-vc140-
> mt-gd-1_57.lib
> error: added properties: <asynch-exceptions>off <warnings>on
> error: removed properties: <asynch-exceptions>on <warnings>all

Marcel,

the problem is that this build tries to create stage\libboost_system_vc140-mt-gt-1_57.lib
twice, with two different values of the asynch-exceptions property. Naturally,
it's not possible, and this properly is deemed important enough to trigger an error.

The system library is just a library.
The endian library has 'exe' targets in its Jamfile (I don't know why) and these
exec targets depend on timer, and that depends on chrono, and that depends on system.
Also, endian's library Jamfile has this:

       <toolset>msvc:<asynch-exceptions>on

while system's library Jamfile does not have this. This, together, creates the error.

I have no idea what asynch exceptions are, but I see no reason why endian library would
build test programs as part of regular build, and therefore the easiest solution is to
move these targets into test Jamfile.

Beman?

- Volodya


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