[endian][build] Boost build broken
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:
K:/boost/tools/build/src/build\virtual-target.jam:1099: in virtual-
target.register-actual-name from module virtual-target
error: Duplicate name of actual target:
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
On 08/26/2014 03:08 PM, Marcel Raad wrote:
K:/boost/tools/build/src/build\virtual-target.jam:1099: in virtual- target.register-actual-name from module virtual-target error: Duplicate name of actual target:
libboost_system-vc140- mt-gd-1_57.lib
Would the below be a better wording for this error? Note that I've used another testcase, since I don't have msvc around. error: Name clash for '<pdist>hello' error: error: Tried to build the target twice, with property sets having error: these incompabile properties: error: error: - <debug-symbols>off <define>NDEBUG <inlining>full <optimization>speed <runtime-debugging>off <variant>release error: - <debug-symbols>on <inlining>off <optimization>off <runtime-debugging>on <variant>debug error: error: Please make sure to have consistent requirements for these error: properties everywhere in your project, especially for install error: targets. - Volodya
On 08/26/2014 04:32 PM, Marcel Raad wrote:
Vladimir Prus
writes: Would the below be a better wording for this error? [...] error: Tried to build the target twice, with property sets having error: these incompabile properties: [...]
That sounds much better. Thanks for the explanation!
Good, I've pushed this change. - Volodya
participants (2)
-
Marcel Raad
-
Vladimir Prus