[config] auto-link tests

John, are your V2-based auto-link tests in CVS yet? I'm not sure it would be good to add them to regression tests at this moment, but I'd rather have them in CVS just in case. Thanks, Volodya

Vladimir Prus wrote:
John, are your V2-based auto-link tests in CVS yet? I'm not sure it would be good to add them to regression tests at this moment, but I'd rather have them in CVS just in case.
Looks like I dropped that particular ball around here somewhere.... I've committed what I have to cvs HEAD, but note that: All the targets will compile only with Borland. With msvc (especially V8) there are some "impossible" targets that will fail, I haven't tried it lately though: I was waiting to see how bbv2 would handle impossible-compiler-variants. Has there been any progress on this? On non-windows platforms we probably shouldn't be bothering building any of these targets? Hmmm, just been running the tests, and there are some strange things going on. I have some targets that specify impossible variants for msvc (but not for Borland), for example: run ../main.cpp link_test : : : <define>BOOST_DYN_LINK=1 <link>shared <runtime-link>shared <threading>single release : link_test_dll_dyn_single_release ; But the <threading>single seems to just get ignored, and it builds the <threading>multi variant instead. Is this expected? On the other hand, this target: run ../main.cpp link_test : : : <link>static <runtime-link>static <threading>single debug : link_test_static_single_debug ; which is valid for msvc-7.1 but not msvc-8.0 builds for the former, but not the latter? Thanks, John.

John Maddock wrote:
Vladimir Prus wrote:
John, are your V2-based auto-link tests in CVS yet? I'm not sure it would be good to add them to regression tests at this moment, but I'd rather have them in CVS just in case.
Looks like I dropped that particular ball around here somewhere....
I've committed what I have to cvs HEAD, but note that:
All the targets will compile only with Borland.
With msvc (especially V8) there are some "impossible" targets that will fail, I haven't tried it lately though: I was waiting to see how bbv2 would handle impossible-compiler-variants. Has there been any progress on this?
On non-windows platforms we probably shouldn't be bothering building any of these targets?
Hmmm, just been running the tests, and there are some strange things going on.
I have some targets that specify impossible variants for msvc (but not for Borland), for example:
run ../main.cpp link_test : : : <define>BOOST_DYN_LINK=1 <link>shared <runtime-link>shared <threading>single release : link_test_dll_dyn_single_release ;
But the <threading>single seems to just get ignored, and it builds the <threading>multi variant instead. Is this expected?
Yes, with msvc, if you try shared runtime, you get MT build, no matter what. I believe this corresponds to what V1 does.
On the other hand, this target:
run ../main.cpp link_test : : : <link>static <runtime-link>static <threading>single debug : link_test_static_single_debug ;
which is valid for msvc-7.1 but not msvc-8.0 builds for the former, but not the latter?
What do you mean by "no the latter"? Is it skipped, or built in MT mode or what? I don't think there's no code to do anything when static runtime is used. What should happen in this case? - Volodya

Vladimir Prus wrote:
which is valid for msvc-7.1 but not msvc-8.0 builds for the former, but not the latter?
What do you mean by "no the latter"? Is it skipped, or built in MT mode or what? I don't think there's no code to do anything when static runtime is used. What should happen in this case?
I don't know what should happen frankly. It tries to build it but fails: msvc.link ..\..\..\..\..\bin.v2\libs\config\test\link\test\link_test_static_sing le_debug.test\msvc-8.0\debug\link-static\runtime-link-static\link_test_static_si ngle_debug.exe LINK : fatal error LNK1104: cannot open file 'liblink_test-vc80-mt-sgd-1_35.lib' What's happening is that bjam is building lib's that are name-mangled for a single threaded build, but single threaded builds aren't supported by VC8 at all, so the auto-linking code goes off in search of the MT lib. John.

John Maddock wrote:
Vladimir Prus wrote:
which is valid for msvc-7.1 but not msvc-8.0 builds for the former, but not the latter?
What do you mean by "no the latter"? Is it skipped, or built in MT mode or what? I don't think there's no code to do anything when static runtime is used. What should happen in this case?
I don't know what should happen frankly.
It tries to build it but fails:
msvc.link ..\..\..\..\..\bin.v2\libs\config\test\link\test\link_test_static_sing
le_debug.test\msvc-8.0\debug\link-static\runtime-link-static\link_test_static_si
ngle_debug.exe LINK : fatal error LNK1104: cannot open file 'liblink_test-vc80-mt-sgd-1_35.lib'
What's happening is that bjam is building lib's that are name-mangled for a single threaded build, but single threaded builds aren't supported by VC8 at all, so the auto-linking code goes off in search of the MT lib.
I can modify things so that on 8.0, you'll always get MT build. - Volodya
participants (2)
-
John Maddock
-
Vladimir Prus