Boost logo

Boost Testing :

From: David Abrahams (dave_at_[hidden])
Date: 2007-01-08 18:12:12

Vladimir Prus <ghost_at_[hidden]> writes:

> David Abrahams wrote:
>> David Abrahams <dave_at_[hidden]> writes:
>>> Vladimir Prus <ghost_at_[hidden]> writes:
>>>>> I'm aware of this issue; I plan to look at it this weekend.
>>>> Not quite on weekend, but I think this problem is fixed. There was a
>>>> code that was disabling shared lib/static runtime combo. I've modified
>>>> that code to not apply to CW.
>>>> This means that if somebody just builds (not tests) Boost with CW, he'll
>>>> get shared lib/static runtime combos too, which might be a feature or a
>>>> bug depending from your point of view.
>>> I don't understand why that option should only be available for CW. A
>>> need to control exactly what is linked statically and what is linked
>>> dynamically can come up with any compiler.
>> Any comments, Volodya?
> On gcc, that option (shared library, static runtime) is just not available.
> On Windows compilers, that combination (I'm told) is rather risky.

Sometimes. In the case of, say, dynamically-loaded plugins, doing the
opposite can be riskier. In that case, you want absolute control over
the runtime code your shared library uses. This can become especially
important when mixing C++ compilers on a platform with a common C ABI.

> Therefore, that combination is suppressed on all toolset, except for
> CW.

I don't think that sort of "save the user from himself by disallowing
the combination" approach is appropriate for the build tool. The only
reason you enabled it for CW is that it just so happens some of our
tests can't run without it. Don't you think that if Boost ran into
that situation with CW some other user is likely to run into it with
another compiler?

> The mechanism used to suppress is implements in such a way so that
> you cannot request such combination even by hand. This is
> solvable. But I don't quite fancy tweaking build system at this
> point in release cycle. One mistake and every testers faces huge
> rebuild.

Understandable; you should make the change on the main trunk, not the
release branch.

Dave Abrahams
Boost Consulting

Boost-testing list run by mbergal at