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.