> __declspec(dllimport) void blah(void);

It seems to work without it, but it is the correct thing to do. Many thanks for the suggestion.

The fix for the link conflict was to add BOOST_ALL_DYN_LINK as below.  I am surprised bjam does not do that on its own. Maybe I am still doing something wrong?

lib mylib : testlib.cpp :
   <library>/boost//iostreams
   <link>shared:<define>BOOST_ALL_DYN_LINK
   <library-path>$(BOOST_LIB)
;

I could not easily find this anywhere, so for the benefit of google: bjam dll iostreams example multiply defined link conflict import library