Subject: Re: [boost] [build] Running b2 with particular toolset invokes other toolsets in user-config.jam
From: Edward Diener (eldiener_at_[hidden])
Date: 2014-08-26 21:14:41
On 8/26/2014 5:43 PM, Steven Watanabe wrote:
> On 08/26/2014 03:23 PM, Edward Diener wrote:
>> I did not mean to imply that it was building with some other toolset but
>> that it is executing some other executables mentioned in my
>> user-config.jam, for what reason I do not understand. I posted the
>> result of:
>> b2 --debug-configuration toolset=gcc-4.8.1
>> on the Boost Build forum after asked to do so but never heard anything
>> further. The output shows that clang is being executed for some reason
>> or other.
> I see. That's the expected behavior. It's
> running clang in order to get the version number
> from the compiler. using clang ... ; is a function
> call which configures the clang toolset and it
> does so immediately.
I think it is wrong to do so immediately. If I am using the clang
toolset I would understand it, but if I am not using the clang toolset I
do not understand what purpose configuring the clang toolset could serve.
I do understand that as far as Boost Build is concerned user-config.jam
is probably just another jamfile, which follows the rules of how jam
files are processed, and that this may make programming Boost Build
easier. But I think an exception should be made for user-config.jam (
and probably site-config.jam also ) in that the end-user may place jam
statements in it which are totally irrelevant for the particular jam
file(s) being invoked and the toolset used, but which will of course be
relevant in another situation. Therefore completely configuring toolsets
which appear in user-config.jam, before the toolsets are specified
anywhere in the jam file(s) being invoked, every time b2 is run against
jam file(s) and a toolset is specified, does not seem the right way of
doing things to me.
Besides the local problem I encountered, described in my OP, which
admittedly is very probably a rare situation, Boost Build is doing all
sorts of extra processing it probably doesn't need to do the majority of
the time when b2 is run, when it auomatically configures every toolset
in user-config.jam which has the 'using toolset ... ' statement.
I will file this as a suggestion on Trac and I hope it will be
considered in Boost Build.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk