
Excuse my being a little insistent on this,but I think the problem should be addressed one way or another, as it's causing tons of regressions. I've prepared a patch for tools/build/v1/boost-base.jam (attached). Is it OK to commit?
There is a simpler (temporary) fix, which is to add <define>BOOST_ALL_NO_LIB=1 to those new toolsets. But in principle I agree with your fix (especially if it works!), Rene Rivera is responsible for that code however, and the best person to check with. John.
Original message:
autolink assumes the following toolset tags for libraries generated under the MSVC familiy of compilers:
6.0, 6.5 --> "v6" 7.0 --> "vc7" 7.1 --> "vc71" 8.0 --> "vc80"
Yet tools/build/v1/boost-base.jam does the following:
local include-minor-version = YES ; switch $(toolset) { case borland* : toolset-tag += bcb ; case como* : toolset-tag += como ; case cwpro8* : toolset-tag += cw 8 ; case cwpro9* : toolset-tag += cw 9 ; case cw-* : toolset-tag += cw ; include-minor-version = ; case darwin* : toolset-tag += ; case edg* : toolset-tag += edg ; case gcc* : toolset-tag += gcc ; case intel-linux* : toolset-tag += il ; case intel-win32* : toolset-tag += iw ; case kcc* : toolset-tag += kcc ; case kylix* : toolset-tag += bck ; case metrowerks* : toolset-tag += cw ; case mingw* : toolset-tag += mgw ; case mipspro* : toolset-tag += mp ; case msvc* : toolset-tag += vc 6 ; case sunpro* : toolset-tag += sw ; case tru64cxx* : toolset-tag += tru ; case vacpp* : toolset-tag += xlc ; case vc[678][_]* : { toolset-tag += vc ; toolset-tag += [ MATCH "vc([678])[_]([0123456789]*)" : $(toolset) ] ; } case vc[678]* : { toolset-tag += vc ; toolset-tag += [ MATCH "vc([678])" : $(toolset) ] ; } case * : toolset-tag += [ MATCH "^([^-]*)" : $(toolset) ] ; } if $(include-minor-version) { toolset-tag += [ MATCH "[-]([0123456789]+)[_.]([0123456789]*)" : $(toolset) ] ; } else { toolset-tag += [ MATCH "[-]([0123456789]+)[_.][0123456789]*"
: $(toolset) ] ; }
which does not match autolink expectations for the following toolsets adhering to the new naming conventions:
vc-6_5 --> vc65 (expected vc6) vc-7_0 --> vc70 (expected v7)
I guess it suffices to apply the following postrule in boost-base.jam
switch $(toolset-tag) { case vc6* : toolset-tag = vc6 ; case vc70 : toolset-tag = vc7 ; }
but someone more acquainted with bjam than me might come up with a nicer reformulation.
Currently, this is breaking dozens of tests in the metacomm engine, which recently switched to vc-6_5-stlport and vc-7_0 toolsets.
Do I commit this? Someone can tackle the issue more elegantly? Thank you,
Joaquín M López Muñoz Telefónica, Investigación y Desarrollo
--------------------------------------------------------------------------------
2672a2673,2681
# boost/config/auto_link.hpp expects toolset tags that do not always # match the above algorithm for MSVC 6.x and 7.0. # switch $(toolset-tag) { case vc6* : toolset-tag = vc 6 ; case vc70 : toolset-tag = vc 7 ; }
--------------------------------------------------------------------------------
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost