$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
Subject: [boost] [build] Running b2 with particular toolset invokes other toolsets in user-config.jam
From: Edward Diener (eldiener_at_[hidden])
Date: 2014-08-26 13:40:50
I brought up this issue on the Boost build mailing list and it was 
eventually ignored, so I will bring it up here again.
If I run "b2 toolset=sometoolset" Boost Build ends up invoking other 
toolsets in my user-config.jam along with "sometoolset" to do the build. 
This invoking of other toolsets seems not only a waste of time and 
unnecessary but also wrong in the sense that the invoking of some other 
toolset in user-config.jam may produce an error. I do not understand the 
necessity for invoking other toolsets in user-config.jam when I have 
specified the toolset I want.
The practical situation for me which is causing problems with Boost 
Build behavior, because of the actions described above, is that I have a 
local setup under Windows where I can run many different versions of 
gcc/mingw or gcc/mingw64. In order to do this I using a changing 
symbolic link, on my PATH, to point to any one of many versions of gcc 
in different directories. I have a file running appropriate commands 
that switches between the versions.
I have also built clang on Windows with a particular gcc version and 
therefore any invocation of clang looks for the run-time system of that 
particular version when clang is invoked. So if I "switch" gcc to a 
version which is not the one wih which i built clang, and then invoke 
Boost Build with that gcc toolset, clang also gets invoked as explained 
in the beginning remarks above, and this gives an error from the clang 
invocation. It is true that Boost Build continues, even after the error 
message coming from clang, in executing the appropriate jamfile with the 
particular version of gcc as the toolset. But it is annoying nonetheless 
to see this error for a toolset I am not even invoking.
Cannot something be done in Boost Build so that if I am invoking 
toolset=x there should be no reason to be trying toolset=y unless it is 
actually needed for something when using toolset=x ? As for instance 
when the bjam files specifies some other tool ( doxygen, fop, xsl ) 
which have to be used.