[Boost-bugs] [Boost C++ Libraries] #2906: boost 1.33.1: build of boost::program_options failed with msvc7.1 and stlport5.0

Subject: [Boost-bugs] [Boost C++ Libraries] #2906: boost 1.33.1: build of boost::program_options failed with msvc7.1 and stlport5.0
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2009-04-03 07:25:21


#2906: boost 1.33.1: build of boost::program_options failed with msvc7.1 and
stlport5.0
----------------------------------------------------------+-----------------
 Reporter: nikolay_at_[hidden] | Owner: vladimir_prus
     Type: Bugs | Status: new
Milestone: Boost 1.39.0 | Component: program_options
  Version: Boost 1.38.0 | Severity: Problem
 Keywords: program_options dynamic stlport5 build error |
----------------------------------------------------------+-----------------
 Some time ago I used msvc 7.1 + stlport 4.6.2 + boost 1.33.1. Everything
 worked fine. Now I need a STLPort 5.0. I have installed Stlport 5.0 and
 built them. Afterwards I have rebuilt the boost with STLport 5.0 using
 following commands:
 set STLPORT_PATH="some_real_patch_to_stl"
 set STLPORT_VERSION=5.0
 bjam -a "-sTOOLS=vc-7_1-stlport" "-sBUILD=debug release" stage

 After the build I have noticed that boost::program_options failed to build
 for dynamic target.
 I have tried to rebuilt dynamic configuration with following command:
 bjam "-sTOOLS=vc-7_1-stlport" "-sBUILD=debug release <runtime-
 link>dynamic" stage

 In the output following error message has been printed:
 //////////////////////////////////////////
 D:\TMP\SDK\boost_1_33_1\boost\program_options\variables_map.hpp(142) : s
 ee reference to class template instantiation 'stlpd_std::map<_Key,_Tp>'
 being co
 mpiled
         with
         [
             _Key=stlpd_std::string,
             _Tp=boost::program_options::variable_value
         ]

     "cl" /Zm800 -nologo /EHsc -c -DBOOST_ALL_DYN_LINK=1 -D_STLP_DEBUG=1
 -D_STLP_DEBUG_UNINITIALIZED=1 -D_STLP_USE_DYNAMIC_LIB=1 /Z7 /Od /Ob0 /EHsc
 /GR /MDd /Op /wd4675 /Zc:forScope -I"bin\boost\libs\program_options\build"
 -I"D:\TMP\SDK\boo
 st_1_33_1" -I"D:/TMP/SDK/\STLport-5.0\stlport" -I"D:\TMP\SDK\boost_1_33_1"
 -Fo"
 bin\boost\libs\program_options\build\boost_program_options.dll\vc-7_1-stlport\debug
 \threading-multi\variables_map.obj"
 -Tp"D:\TMP\SDK\boost_1_33_1\libs\program_options\build\../src/variables_map.cpp"
 <SKIPPED>
 vc-C++
 bin\boost\libs\program_options\build\boost_program_options.dll\vc-7_1-stlport\release
 \threading-multi\variables_map.obj
 variables_map.cpp
 D:/TMP\SDK\\STLport-5.0\stlport\stl\_tree.h(594) : error C2664: 'bool
 stlp_std::less<_Tp>::operator ()(const _Tp &,const _Tp &) const' : cannot
 convert parameter 2 from 'stlp_std::map<_Key,_Tp>::value_type' to 'const
 stlp_std::string &'
         with
         [
             _Tp=stlp_std::string
         ]
         and
         [
             _Key=stlp_std::string,
             _Tp=boost::program_options::variable_value
         ]
         Reason: cannot convert from 'stlp_std::map<_Key,_Tp>::value_type'
 to 'co
 nst stlp_std::string'
         with
         [
             _Key=stlp_std::string,
             _Tp=boost::program_options::variable_value
         ]
         No constructor could take the source type, or constructor overload
 resolution was ambiguous
 <SKIPPED>

 //////////End of output

 The dir tree now looks like:
  Directory of
 D:\TMP\SDK\boost_1_33_1\bin\boost\libs\program_options\build\boost_program_options.dll\vc-7_1-stlport\release
 \threading-multi

 30.03.2009 15:25 <DIR> .
 30.03.2009 15:25 <DIR> ..
 03.04.2009 01:26 404 113 cmdline.obj
 03.04.2009 01:26 196 909 config_file.obj
 03.04.2009 01:26 54 873 convert.obj
 03.04.2009 01:26 402 844 options_description.obj
 03.04.2009 01:26 488 046 parsers.obj
 03.04.2009 01:26 54 994 positional_options.obj
 03.04.2009 01:26 11 774 utf8_codecvt_facet.obj
 03.04.2009 01:26 237 871 value_semantic.obj
 03.04.2009 01:26 282 664 winmain.obj
                9 File(s) 2 134 088 bytes
                2 Dir(s) 102 982 483 968 bytes free

 Please note that the same code has been succesfully compiled for static
 target:
  Directory of
 D:\TMP\SDK\boost_1_33_1\bin\boost\libs\program_options\build\libbo
 ost_program_options.lib\vc-7_1-stlport\release\threading-multi

 03.04.2009 02:46 <DIR> .
 03.04.2009 02:46 <DIR> ..
 03.04.2009 01:25 288 214 cmdline.obj
 03.04.2009 01:25 150 139 config_file.obj
 03.04.2009 01:25 51 023 convert.obj
 03.04.2009 02:46 1 251 libboost_program_options-
 vc71-mt-p-1_33_1.CMD
 03.04.2009 02:46 2 293 986 libboost_program_options-
 vc71-mt-p-1_33_1.lib
 03.04.2009 01:25 258 530 options_description.obj
 03.04.2009 01:25 329 811 parsers.obj
 03.04.2009 01:25 44 159 positional_options.obj
 03.04.2009 01:25 4 836 utf8_codecvt_facet.obj
 03.04.2009 01:25 181 627 value_semantic.obj
 03.04.2009 02:46 145 073 variables_map.obj
 03.04.2009 01:25 84 840 winmain.obj
               12 File(s) 3 833 489 bytes
                2 Dir(s) 102 982 483 968 bytes free

 I have tried to update the boost::program_options library from trunk of
 Boost SVN but the problem is still here. So I assume this issue is not
 fixed yet. I would very appreciate if there is solution for this issue or
 may be some workaround.

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/2906>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:49:59 UTC