Boost logo

Boost-Build :

Subject: Re: [Boost-build] [1.47.0] [exception] Build failure..
From: Emil Dotchevski (emildotchevski_at_[hidden])
Date: 2011-06-21 20:20:05

On Tue, Jun 21, 2011 at 3:41 PM, Rene Rivera <grafikrobot_at_[hidden]> wrote:
> On 6/21/2011 5:28 PM, KTC wrote:
>> On 21/06/2011 20:47, Jürgen Hunold wrote:
>>>> bjam --without-python --stagedir=x86 --build-type=complete -j2 stage
>>>> Both result in: "...failed updating 2 targets..."
>>>> See<> for failure.
>>> Boost.Exceptions is a library on Win32. It builds
>>> "libs/exception/src/clone_current_exception_msvc.cpp"
>>> which states at the top:
>>> #if defined(_MSC_VER)&& defined(_M_IX86)&& !defined(_M_X64)
>>> so this is for x86 only. On x64, no code gets compiled.
>>> The msvc linker then "helpfully" silently omits the creation of an
>>> empty dll
>>> and the corresponding copy step(s) fail(s).
>>> The correct fix would be to build this file only on for
>>> the<address-model>32
>>> case but I don't know if this can be specified with the current
>>> Boost.Build.
> It can be done, but might take a conditional rule to do the correct
> exclusion.
>> There's the problem that this is also occurring when building for x86
>> while on a x64 system.

Just to clarify, this is the non-intrusive exception_ptr support which
is only available specifically for _MSC_VER==1310, 1400 and 1500, and
even then only if the user #defines
does #define.)

If both conditions are met, then clone_current_exception_msvc.cpp must
be linked in the program, but otherwise it needs not (and should not)
be compiled or linked; that is, normally Boost Exception is a
header-only library.

I would appreciate if someone helps me configure the build/test
scripts to accomplish this behavior.

Emil Dotchevski
Reverge Studios, Inc.

Boost-Build list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at