|
Boost : |
From: David Deakins (ddeakins_at_[hidden])
Date: 2006-10-16 16:11:44
I spent some time this morning looking at the regressions that are being
reported for compression tests in the Boost.Iostreams library on MSVC 8.
I came across what I think is an omission in the v2 Jamfiles for
iostreams. At the moment, the bzip2, glib, and zlib tests are failing
with a link error on VC8 saying that the iostreams import library is not
found. As it turns out, no import library is being created because the
library's build Jamfile.v2 does not specify the
BOOST_IOSTREAMS_DYN_LINK=1 define for DLL builds, so the
__declspec(dllexport) tag is not used (and then, of course, VC8 does not
make the empty import library). I think the last lines of the iostreams
build Jamfile.v2 should read:
lib boost_iostreams : $(sources)
:
<link>shared:<define>BOOST_IOSTREAMS_DYN_LINK=1
;
rather than just:
lib boost_iostreams : $(sources)
;
In addition, it appears that something similar should be included for
the 3 compression tests in the test Jamfile.v2 (so that
__declspec(dllimport) gets used). For example the bzip2_test should
probably be something like:
all-tests += [ test-iostreams
bzip2_test.cpp ../build//boost_iostreams
: <link>shared:<define>BOOST_IOSTREAMS_DYN_LINK=1 ] ;
instead of just:
all-tests += [ test-iostreams
bzip2_test.cpp ../build//boost_iostreams ] ;
and a similar change for the gzip_test and zlib_test. With those
adjustments, these tests build and pass on my MSVC8 installation. If
this all looks correct, hopefully someone can apply those changes to the
jamfiles.
Thanks,
-Dave
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk