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