I've been trying to understand why the debug version of boost was
attempting linkage with the DLL version of stlport (which I didn't
build and I'm not using) and now I see that the runtime-debugging flag
is specifying that the dynamic library must be used. This causes the
static stlport to use the stlpdx cross namespace rather than the stlpd
namespace. It is not obvious to me why debugging should require a
dynamic
library. Under code inspection this looks like a copy-paste oversight.
if [ $(rproperties).get <runtime-debugging> ] = "on"
{
usage-requirements +=
<define>_STLP_DEBUG=1
<define>_STLP_DEBUG_UNINITIALIZED=1 ;
}
if [ $(rproperties).get <runtime-debugging> ] = "on"
{
usage-requirements +=
<define>_STLP_USE_DYNAMIC_LIB=1 ;
}
Why would it be checking for runtime-debugging twice? I think the
second if should check for <runtime-link> which has the possible
values "static" or "dynamic".
This problem looks related to this thread:
http://lists.boost.org/boost-users/2007/09/30905.php,
but I couldn't
find the Boost.Build message that is a follow-up to that one. I haven't
found a posted solution either. Looking at the CVS HEAD revision of
stlport.jam, it hasn't changed since 1_34_1. So if this is a bug, it
has not been
fixed yet.
Thanks,
Eric