
Problem summary recap: 1) Setting <runtime-link>static <threading>single causes bjam to mangle the lib name with "-sgd" for the debug build, but it should actually be mangling the name with "-mt-sgd" because there is no single threaded option, so we're really building a multithread lib. 2) Setting <runtime-link>static <threading>single causes bjam to build with /MLd, but that option isn't actually recognised by VC8, so it reverts to the default which appears to be /MT - this is why the auto-link code is trying to link against the "-mt-s" build variant - bjam isn't actually building the variant it thinks it is.
If we're serious about VC8 being a release requirement, then we really should fix the build system to handle it correctly,
Attached is a possible fix for tools/build/v1/boost-base.jam that handles the situation. If anyone with vc8 installed can try it that would be nice. As it will take me a while to clean up my hard drive to make room to install vc8 :-\
Unfortunately I don't see the attachment, I've just been testing the fix below, that fixes issue (2) above but not (1), if yours does both then that would be a lot better obviously :-) Thanks, John Index: vc-8_0-tools.jam =================================================================== RCS file: /cvsroot/boost/boost/tools/build/v1/vc-8_0-tools.jam,v retrieving revision 1.4 diff -r1.4 vc-8_0-tools.jam 31a32,42
# # there is no single threaded runtime in VC-8 anymore, so we redirect requests for # single threaded static builds, to the multithreaded runtime: # flags vc-8_0 CFLAGS <runtime-build>release/<runtime-link>static/<threading>single : /MT ; flags vc-8_0 CFLAGS <runtime-build>debug/<runtime-link>static/<threading>single : /MTd ; # # remove any reference to the single threaded runtime that the base toolset may have added: # CFLAGS = [ difference $(CFLAGS) : /ML ] ; CFLAGS = [ difference $(CFLAGS) : /MLd ] ;