Can't build boost 1.48 with STLport 5.2.1

I'm trying to get Boost 1.48 building using STLport 5.2.1. I am on Windows 7 x64. Here is what I've done: 1. Update tools/build/v2/user-config.jam with the following: using msvc : 7.1 ; using stlport : 5.2.1 : C:/Code/third_party_source/STLport-5.2.1/stlport : C:/Code/third_party_source/STLport-5.2.1/lib ; 2. Run the following command through the VS2003 command line tool: bootstrap.bat 3. This sets up the b2 executable and stuff, after that I run: b2 toolset=msvc link=shared threading=multi runtime-link=shared variant=debug stdlib=stlport --layout=tagged stage However, once it comes time to link the first library (boost filesystem), I get a ton of linker errors, mostly LNK2001 relating to unresolved STLport symbols. Here is one of the first ones: path.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall stlpd _std::basic_string<wchar_t,class stlpd_std::char_traits<wchar_t>,class stlpd_std::allocator<wchar_t>
::basic_string<wchar_t,class stlpd_std::char_traits<wchar_t>,class stlpd_std::allocator<wchar_t> > (class stlpd_std::basic_string<wchar_t,class stlpd_std::char_traits<wchar_t>,class stlpd_std::alloca tor<wchar_t> > const &)" (__imp_??0?$basic_string@_WV?$char_traits@ _W@stlpd_std@@V?$allocator@_W@2@@ stlpd_std@@QAE@ABV01@@Z)
Anyone have any idea how I can get this working? --------- Robert Dailey

I've provided a lot of details here, and based on the instructions I've found (none of which are on the official boost website!), this seems to be the correct path and the build system should "just work". Can someone help me figure this out? --------- Robert Dailey On Wed, Feb 8, 2012 at 4:53 PM, Robert Dailey <rcdailey@gmail.com> wrote:
I'm trying to get Boost 1.48 building using STLport 5.2.1. I am on Windows 7 x64.
Here is what I've done:
1. Update tools/build/v2/user-config.jam with the following:
using msvc : 7.1 ; using stlport : 5.2.1 : C:/Code/third_party_source/STLport-5.2.1/stlport : C:/Code/third_party_source/STLport-5.2.1/lib ;
2. Run the following command through the VS2003 command line tool:
bootstrap.bat
3. This sets up the b2 executable and stuff, after that I run:
b2 toolset=msvc link=shared threading=multi runtime-link=shared variant=debug stdlib=stlport --layout=tagged stage
However, once it comes time to link the first library (boost filesystem), I get a ton of linker errors, mostly LNK2001 relating to unresolved STLport symbols. Here is one of the first ones:
path.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall stlpd _std::basic_string<wchar_t,class stlpd_std::char_traits<wchar_t>,class stlpd_std::allocator<wchar_t>
::basic_string<wchar_t,class stlpd_std::char_traits<wchar_t>,class stlpd_std::allocator<wchar_t> > (class stlpd_std::basic_string<wchar_t,class stlpd_std::char_traits<wchar_t>,class stlpd_std::alloca tor<wchar_t> > const &)" (__imp_??0?$basic_string@_WV?$char_traits@ _W@stlpd_std@@V?$allocator@_W@2@@ stlpd_std@@QAE@ABV01@@Z)
Anyone have any idea how I can get this working?
--------- Robert Dailey

On Friday, February 10, 2012 08:54:32 Robert Dailey wrote:
I've provided a lot of details here, and based on the instructions I've found (none of which are on the official boost website!), this seems to be the correct path and the build system should "just work". Can someone help me figure this out?
Just an idea of where the problem might be. STLPort supports two versions of debug builds - a traditional debug build (which should be binary compatible with release builds, IIRC) and a debug build with additional checking, enabled by defining _STLP_DEBUG macro. From your errors it looks like the compiler tries to find the latter one (the one with stlportstld in its name). Maybe you're trying to link with the other version (stlportd) or the compiler simply can't find the correct library.

Thanks for your response Andrey. I have the following libraries in my STLport/lib directory: stlport_static.lib stlportd.5.2.lib stlportd_static.lib stlportstld.5.2.lib stlportstld_static.lib stlport.5.2.lib These are simply the libraries that are generated by following the build instructions for STLport, I didn't rename or move anything. I assumed that Boost should be easily able to make assumptions about where to find things if I don't modify them. Do you see any issues with the libs here? Are there perhaps some options missing from my command line invocation? --------- Robert Dailey On Fri, Feb 10, 2012 at 9:08 AM, Andrey Semashev <andrey.semashev@gmail.com>wrote:
On Friday, February 10, 2012 08:54:32 Robert Dailey wrote:
I've provided a lot of details here, and based on the instructions I've found (none of which are on the official boost website!), this seems to be the correct path and the build system should "just work". Can someone help me figure this out?
Just an idea of where the problem might be. STLPort supports two versions of debug builds - a traditional debug build (which should be binary compatible with release builds, IIRC) and a debug build with additional checking, enabled by defining _STLP_DEBUG macro. From your errors it looks like the compiler tries to find the latter one (the one with stlportstld in its name). Maybe you're trying to link with the other version (stlportd) or the compiler simply can't find the correct library.
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Hi Robert, On Friday, 10. February 2012 17:44:52 Robert Dailey wrote:
Do you see any issues with the libs here?
stlport.5.2.lib stltport.jam (from tools/build/v2/tools) states # Starting with version 5.2.0, the STLport static libraries no longer # include a version number in their name local version.pre.5.2 = [ MATCH "^(5[.][01]+).*" : $(version) ] ; if $(version.pre.5.2) || [ feature.get-values <runtime-link> : $(raw) ] != "static" { name += .$(self.version.5) ; } So I think Boost.Build tries to link against stlport.lib (if there is a bug in the logic above or against stlport.5.2.1.lib
Are there perhaps some options missing from my command line invocation?
Please post your command line invocation. It is hard to see what it is that is missing or wrong without it ;-) Yours, Jürgen -- Dipl.-Math. Jürgen Hunold | IVE mbH Software-Entwickler | Lützerodestraße 10 Tel: +49 511 897668 33 | 30161 Hannover, Germany Fax: +49 511 897668 29 | http://www.ivembh.de juergen.hunold@ivembh.de | | Geschäftsführer: Sitz des Unternehmens: Hannover | Univ.-Prof. Dr.-Ing. Thomas Siefer Amtsgericht Hannover, HRB 56965 | PD Dr.-Ing. Alfons Radtke

Hi Jurgen, Thanks for the feedback. I did post my command line invocation in my initial post, but here it is again for you: b2 toolset=msvc link=shared threading=multi runtime-link=shared variant=debug stdlib=stlport --layout=tagged stage I dont' know why boost would be trying to link it without version numbers in the name, since obviously 5.2.1 is still appending version numbers to the lib files. What should I do? --------- Robert Dailey On Fri, Feb 10, 2012 at 11:29 AM, Jürgen Hunold <juergen.hunold@ivembh.de>wrote:
Hi Robert,
On Friday, 10. February 2012 17:44:52 Robert Dailey wrote:
Do you see any issues with the libs here?
stlport.5.2.lib
stltport.jam (from tools/build/v2/tools) states
# Starting with version 5.2.0, the STLport static libraries no longer # include a version number in their name local version.pre.5.2 = [ MATCH "^(5[.][01]+).*" : $(version) ] ; if $(version.pre.5.2) || [ feature.get-values <runtime-link> : $(raw) ] != "static" { name += .$(self.version.5) ; }
So I think Boost.Build tries to link against stlport.lib (if there is a bug in the logic above or against stlport.5.2.1.lib
Are there perhaps some options missing from my command line invocation?
Please post your command line invocation. It is hard to see what it is that is missing or wrong without it ;-)
Yours,
Jürgen
-- Dipl.-Math. Jürgen Hunold | IVE mbH Software-Entwickler | Lützerodestraße 10 Tel: +49 511 897668 33 | 30161 Hannover, Germany Fax: +49 511 897668 29 | http://www.ivembh.de juergen.hunold@ivembh.de | | Geschäftsführer: Sitz des Unternehmens: Hannover | Univ.-Prof. Dr.-Ing. Thomas Siefer Amtsgericht Hannover, HRB 56965 | PD Dr.-Ing. Alfons Radtke
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

HI Robert. On Friday, 10. February 2012 18:32:26 Robert Dailey wrote:
Thanks for the feedback. I did post my command line invocation in my initial post, but here it is again for you:
b2 toolset=msvc link=shared threading=multi runtime-link=shared variant=debug stdlib=stlport --layout=tagged stage
Ah, my fault. I mean the _generated_ linker command line. In the msvc case also the response file. Those should be spilled out above/or below the linker messages. Yours, Jürgen -- Dipl.-Math. Jürgen Hunold | IVE mbH Software-Entwickler | Lützerodestraße 10 Tel: +49 511 897668 33 | 30161 Hannover, Germany Fax: +49 511 897668 29 | http://www.ivembh.de juergen.hunold@ivembh.de | | Geschäftsführer: Sitz des Unternehmens: Hannover | Univ.-Prof. Dr.-Ing. Thomas Siefer Amtsgericht Hannover, HRB 56965 | PD Dr.-Ing. Alfons Radtke

On Fri, Feb 10, 2012 at 11:44 AM, Jürgen Hunold <juergen.hunold@ivembh.de>wrote:
HI Robert.
On Friday, 10. February 2012 18:32:26 Robert Dailey wrote:
Thanks for the feedback. I did post my command line invocation in my initial post, but here it is again for you:
b2 toolset=msvc link=shared threading=multi runtime-link=shared variant=debug stdlib=stlport --layout=tagged stage
Ah, my fault. I mean the _generated_ linker command line. In the msvc case also the response file. Those should be spilled out above/or below the linker messages.
Ah sorry for the confusion. Here is everything for Boost.Filesystem, which is what is failing: ...patience... ...patience... ...patience... ...patience... ...found 7264 targets... ...updating 462 targets... file bin.v2\libs\filesystem\build\msvc-7.1\debug\stdlib-stlport-5.2.1\threading-multi\boost_filesyst em-mt-gdp.dll.rsp "bin.v2\libs\filesystem\build\msvc-7.1\debug\stdlib-stlport-5.2.1\threading-multi\v2\src\v2_operatio ns.obj" "bin.v2\libs\filesystem\build\msvc-7.1\debug\stdlib-stlport-5.2.1\threading-multi\v2\src\v2_path.obj " "bin.v2\libs\filesystem\build\msvc-7.1\debug\stdlib-stlport-5.2.1\threading-multi\v2\src\v2_portabil ity.obj" "bin.v2\libs\filesystem\build\msvc-7.1\debug\stdlib-stlport-5.2.1\threading-multi\v3\src\operations. obj" "bin.v2\libs\filesystem\build\msvc-7.1\debug\stdlib-stlport-5.2.1\threading-multi\v3\src\path.obj" "bin.v2\libs\filesystem\build\msvc-7.1\debug\stdlib-stlport-5.2.1\threading-multi\v3\src\portability .obj" "bin.v2\libs\filesystem\build\msvc-7.1\debug\stdlib-stlport-5.2.1\threading-multi\v3\src\windows_fil e_codecvt.obj" "bin.v2\libs\filesystem\build\msvc-7.1\debug\stdlib-stlport-5.2.1\threading-multi\v3\src\codecvt_err or_category.obj" "bin.v2\libs\filesystem\build\msvc-7.1\debug\stdlib-stlport-5.2.1\threading-multi\v3\src\path_traits .obj" "bin.v2\libs\filesystem\build\msvc-7.1\debug\stdlib-stlport-5.2.1\threading-multi\v3\src\unique_path .obj" "bin.v2\libs\filesystem\build\msvc-7.1\debug\stdlib-stlport-5.2.1\threading-multi\v3\src\utf8_codecv t_facet.obj" "bin.v2\libs\system\build\msvc-7.1\debug\stdlib-stlport-5.2.1\threading-multi\ boost_system-mt-gdp.li b" "stlportstld.5.2.lib" msvc.link.dll bin.v2\libs\filesystem\build\msvc-7.1\debug\stdlib-stlport-5.2.1\threading-multi\boost _filesystem-mt-gdp.dll call "C:\Program Files (x86)\Microsoft Visual Studio .NET 2003\Vc7\bin\vcvars32.bat" >nul link /NOLOGO /INCREMENTAL:NO /DLL /DEBUG /subsystem:console /out:"bin.v2\libs\filesystem\build\msvc- 7.1\debug\stdlib-stlport-5.2.1\threading-multi\boost_filesystem-mt-gdp.dll" /IMPLIB:"bin.v2\libs\fil esystem\build\msvc-7.1\debug\stdlib-stlport-5.2.1\threading-multi\boost_filesystem-mt-gdp.lib" /LIBP ATH:"C:\Code\third_party_source\STLport-5.2.1\lib" @"bin.v2\libs\filesystem\build\msvc-7.1\debug\s tdlib-stlport-5.2.1\threading-multi\boost_filesystem-mt-gdp.dll.rsp" if %ERRORLEVEL% NEQ 0 EXIT %ERRORLEVEL% msvc.manifest.dll bin.v2\libs\filesystem\build\msvc-7.1\debug\stdlib-stlport-5.2.1\threading-multi\b oost_filesystem-mt-gdp.dll if exist "bin.v2\libs\filesystem\build\msvc-7.1\debug\stdlib-stlport-5.2.1\threading-multi\b oost_filesystem-mt-gdp.dll.manifest" ( call "C:\Program Files (x86)\Microsoft Visual Studio .NET 2003\Vc7\bin\vcvars32.bat" >n ul mt -nologo -manifest "bin.v2\libs\filesystem\build\msvc-7.1\debug\stdlib-stlport-5.2.1\threading-mul ti\boost_filesystem-mt-gdp.dll.manifest" "-outputresource:bin.v2\libs\filesystem\build\msvc-7.1\debu g\stdlib-stlport-5.2.1\threading-multi\boost_filesystem-mt-gdp.dll;2" ) common.copy stage\lib\boost_filesystem-mt-gdp.dll copy /b "bin.v2\libs\filesystem\build\msvc-7.1\debug\stdlib-stlport-5.2.1\threading-multi\boost_ filesystem-mt-gdp.dll" + this-file-does-not-exist-A698EE7806899E69 "stage\lib\boost_filesystem-mt-gd p.dll" common.copy stage\lib\boost_filesystem-mt-gdp.lib copy /b "bin.v2\libs\filesystem\build\msvc-7.1\debug\stdlib-stlport-5.2.1\threading-multi\boost_ filesystem-mt-gdp.lib" + this-file-does-not-exist-A698EE7806899E69 "stage\lib\boost_filesystem-mt-gd p.lib"

Hi Robert, the output shows that Boost.Build is adding On Friday, 10. February 2012 18:54:23 Robert Dailey wrote:
"bin.v2\libs\system\build\msvc-7.1\debug\stdlib-stlport-5.2.1\threading-mult i\ boost_system-mt-gdp.lib"
"stlportstld.5.2.lib"
with /LIBPATH:"C:\Code\third_party_source\STLport-5.2.1\lib" on the final command line. On Friday, 10. February 2012 17:44:52 Robert Dailey wrote:
I have the following libraries in my STLport/lib directory:
stlport_static.lib stlportd.5.2.lib stlportd_static.lib stlportstld.5.2.lib
The library is available. This seems to be a compile/linkflag issue. Boost.Build is doing the right thing. The next step would be to check if you are compiling Boost and STLport with the same compiler options. Use "b2 -n" to just get all generated command lines. There are *lots* of compile flags and #define combinations resulting in incompatible libraries on Windows... Yours, Jürgen -- Dipl.-Math. Jürgen Hunold | IVE mbH Software-Entwickler | Lützerodestraße 10 Tel: +49 511 897668 33 | 30161 Hannover, Germany Fax: +49 511 897668 29 | http://www.ivembh.de juergen.hunold@ivembh.de | | Geschäftsführer: Sitz des Unternehmens: Hannover | Univ.-Prof. Dr.-Ing. Thomas Siefer Amtsgericht Hannover, HRB 56965 | PD Dr.-Ing. Alfons Radtke

On Fri, Feb 10, 2012 at 12:22 PM, Jürgen Hunold <juergen.hunold@ivembh.de>wrote:
Hi Robert,
the output shows that Boost.Build is adding
On Friday, 10. February 2012 18:54:23 Robert Dailey wrote:
"bin.v2\libs\system\build\msvc-7.1\debug\stdlib-stlport-5.2.1\threading-mult
i\ boost_system-mt-gdp.lib"
"stlportstld.5.2.lib"
with /LIBPATH:"C:\Code\third_party_source\STLport-5.2.1\lib"
on the final command line.
On Friday, 10. February 2012 17:44:52 Robert Dailey wrote:
I have the following libraries in my STLport/lib directory:
stlport_static.lib stlportd.5.2.lib stlportd_static.lib stlportstld.5.2.lib
The library is available. This seems to be a compile/linkflag issue. Boost.Build is doing the right thing.
The next step would be to check if you are compiling Boost and STLport with the same compiler options. Use "b2 -n" to just get all generated command lines.
There are *lots* of compile flags and #define combinations resulting in incompatible libraries on Windows...
I'm using the default options in Boost and STLport. Based on that, would you have any idea what I need to change? Here is the STLport config manual, it also shows defaults: http://www.stlport.org/doc/configure.html I'm not at all familiar with any of the options for boost or STLport, I've always just used the default setup because it was simple to get going. If I need to make any changes to the configuration of either, please let me know what you'd like me to try. Below is the top part of the result of b2 -n: ...patience... ...patience... ...patience... ...patience... ...found 6801 targets... ...updating 825 targets... common.mkdir bin.v2\libs\regex\build\msvc-7.1\debug\link-static if not exist "bin.v2\libs\regex\build\msvc-7.1\debug\link-static\\" mkdir "bin.v2\libs\regex \build\msvc-7.1\debug\link-static" common.mkdir bin.v2\libs\regex\build\msvc-7.1\debug\link-static\threading-multi if not exist "bin.v2\libs\regex\build\msvc-7.1\debug\link-static\threading-multi\\" mkdir "b in.v2\libs\regex\build\msvc-7.1\debug\link-static\threading-multi" file bin.v2\libs\regex\build\msvc-7.1\debug\link-static\threading-multi\c_regex_traits.obj.rsp "libs\regex\build\..\src\c_regex_traits.cpp" -Fo"bin.v2\libs\regex\build\msvc-7.1\debug\link-static\threading-multi\c_regex_traits.obj" -TP /Z7 /Od /Ob0 /W4 /GR /MDd /Zc:forScope /Zc:wchar_t /Wp64 /GB /Op /wd4675 /EHs -c -DBOOST_ALL_NO_LIB=1 "-I." compile-c-c++ bin.v2\libs\regex\build\msvc-7.1\debug\link-static\threading-multi\c_regex_traits.obj call "C:\Program Files (x86)\Microsoft Visual Studio .NET 2003\Vc7\bin\vcvars32.bat" >nul cl /Zm800 -nologo @"bin.v2\libs\regex\build\msvc-7.1\debug\link-static\threading-multi\c_regex_trait s.obj.rsp"

On Friday, February 10, 2012 10:44:52 Robert Dailey wrote:
Thanks for your response Andrey.
I have the following libraries in my STLport/lib directory:
stlport_static.lib stlportd.5.2.lib stlportd_static.lib stlportstld.5.2.lib stlportstld_static.lib stlport.5.2.lib
These are simply the libraries that are generated by following the build instructions for STLport, I didn't rename or move anything. I assumed that Boost should be easily able to make assumptions about where to find things if I don't modify them.
Do you see any issues with the libs here? Are there perhaps some options missing from my command line invocation?
Ok, the libraries seem fine, assuming they reside in the directories you specified in the user-config.jam file. Another suggestion. Do the errors only mention wchar_t versions of STL API? In VS2003, by default the compiler used wchar_t typedef instead of making it a distinct type. Boost.Build adds /Zc:wchar_t so that the compiler treats wchar_t as a distinct type. But was this parameter present when you compiled STLPort? You can open STLPort dlls in dependency walker to see whether they export symbols with wchar_t or unsigned short in their signature.

On Fri, Feb 10, 2012 at 11:30 AM, Andrey Semashev <andrey.semashev@gmail.com
wrote:
Thanks for your response Andrey.
I have the following libraries in my STLport/lib directory:
stlport_static.lib stlportd.5.2.lib stlportd_static.lib stlportstld.5.2.lib stlportstld_static.lib stlport.5.2.lib
These are simply the libraries that are generated by following the build instructions for STLport, I didn't rename or move anything. I assumed
Boost should be easily able to make assumptions about where to find
On Friday, February 10, 2012 10:44:52 Robert Dailey wrote: that things
if I don't modify them.
Do you see any issues with the libs here? Are there perhaps some options missing from my command line invocation?
Ok, the libraries seem fine, assuming they reside in the directories you specified in the user-config.jam file.
Another suggestion. Do the errors only mention wchar_t versions of STL API? In VS2003, by default the compiler used wchar_t typedef instead of making it a distinct type. Boost.Build adds /Zc:wchar_t so that the compiler treats wchar_t as a distinct type. But was this parameter present when you compiled STLPort? You can open STLPort dlls in dependency walker to see whether they export symbols with wchar_t or unsigned short in their signature.
I'm not seeing anything in Dependency walker that looks useful. All the functions listed by Dependency Walker look like: ??_F?$time_put@_WV?$ostreambuf_iterator@_WV?$char_traits@_W@stlp_std @@@stlp_std@@@stlp_std@@QAEXXZ No "wchar_t" or "unsigned short".

On Friday, February 10, 2012 11:41:04 Robert Dailey wrote:
On Fri, Feb 10, 2012 at 11:30 AM, Andrey Semashev <andrey.semashev@gmail.com
wrote:
Another suggestion. Do the errors only mention wchar_t versions of STL API? In VS2003, by default the compiler used wchar_t typedef instead of making it a distinct type. Boost.Build adds /Zc:wchar_t so that the compiler treats wchar_t as a distinct type. But was this parameter present when you compiled STLPort? You can open STLPort dlls in dependency walker to see whether they export symbols with wchar_t or unsigned short in their signature.
I'm not seeing anything in Dependency walker that looks useful. All the functions listed by Dependency Walker look like:
??_F?$time_put@_WV?$ostreambuf_iterator@_WV?$char_traits@_W@stlp_std @@@stlp_std@@@stlp_std@@QAEXXZ
No "wchar_t" or "unsigned short".
You can enable symbol demangling in the dependency walker settings, somewhere in its menus. Sorry, I don't have the tool at hand and can't point precisely where this setting is.

On Fri, Feb 10, 2012 at 4:10 PM, Andrey Semashev <andrey.semashev@gmail.com>wrote:
You can enable symbol demangling in the dependency walker settings, somewhere in its menus. Sorry, I don't have the tool at hand and can't point precisely where this setting is.
Thanks I found the setting. Yes I'm seeing wchar_t. Here are a couple of random functions: void stlpd_std::basic_istream<wchar_t,class stlpd_std::char_traits<wchar_t>
::_M_formatted_get(wchar_t &) void stlpd_std::basic_istream<wchar_t,class stlpd_std::char_traits<wchar_t> ::_M_formatted_get(wchar_t *) int stlpd_std::basic_ios<wchar_t,class stlpd_std::char_traits<wchar_t> ::exceptions(void) void * stlpd_std::basic_filebuf<wchar_t,class stlpd_std::char_traits<wchar_t> >::fd(void) wchar_t const * stlpd_std::ctype<wchar_t>::narrow(wchar_t const *,wchar_t const *,char,char *)
Any idea where to go from here? stlportstld.5.2.dll symbols seem to use wchar_t.

On Mon, Feb 13, 2012 at 11:27 AM, Robert Dailey <rcdailey@gmail.com> wrote:
On Fri, Feb 10, 2012 at 4:10 PM, Andrey Semashev < andrey.semashev@gmail.com> wrote:
You can enable symbol demangling in the dependency walker settings, somewhere in its menus. Sorry, I don't have the tool at hand and can't point precisely where this setting is.
Thanks I found the setting. Yes I'm seeing wchar_t. Here are a couple of random functions:
void stlpd_std::basic_istream<wchar_t,class stlpd_std::char_traits<wchar_t> >::_M_formatted_get(wchar_t &) void stlpd_std::basic_istream<wchar_t,class stlpd_std::char_traits<wchar_t> >::_M_formatted_get(wchar_t *) int stlpd_std::basic_ios<wchar_t,class stlpd_std::char_traits<wchar_t>
::exceptions(void) void * stlpd_std::basic_filebuf<wchar_t,class stlpd_std::char_traits<wchar_t> >::fd(void) wchar_t const * stlpd_std::ctype<wchar_t>::narrow(wchar_t const *,wchar_t const *,char,char *)
Any idea where to go from here? stlportstld.5.2.dll symbols seem to use wchar_t.
Any updates?

Hi Robert, On Tuesday, 14. February 2012 17:16:22 Robert Dailey wrote:
On Mon, Feb 13, 2012 at 11:27 AM, Robert Dailey <rcdailey@gmail.com> wrote:
On Fri, Feb 10, 2012 at 4:10 PM, Andrey Semashev <
Thanks I found the setting. Yes I'm seeing wchar_t. Here are a couple of random functions:
void * stlpd_std::basic_filebuf<wchar_t,class stlpd_std::char_traits<wchar_t> >::fd(void) wchar_t const * stlpd_std::ctype<wchar_t>::narrow(wchar_t const *,wchar_t const *,char,char *)
Any idea where to go from here? stlportstld.5.2.dll symbols seem to use wchar_t.
The question might be which incarnation of wchar_t is present in the dll
Any updates?
Boost.Build uses the following settings (from one of your last mails, my answer seems to be lost somehow...)
file bin.v2\libs\regex\build\msvc-7.1\debug\link-static\threading-multi\c_regex_t raits.obj.rsp "libs\regex\build\..\src\c_regex_traits.cpp" -Fo"bin.v2\libs\regex\build\msvc-7.1\debug\link-static\threading-multi\c_re gex_traits.obj" -TP /Z7 /Od /Ob0 /W4 /GR /MDd /Zc:forScope /Zc:wchar_t /Wp64 /GB /Op /wd4675 /EHs -c
-DBOOST_ALL_NO_LIB=1
"-I."
for compiling the Boost libraries. The questions remains: Which flags uses STLport? We have abandoned STLport ages ago (read: last was 4.2 or so), so I'm guessing wild right now. Yours, Jürgen -- * Dipl.-Math. Jürgen Hunold ! * voice: ++49 4257 300 ! Fährstraße 1 * fax : ++49 4257 300 ! 31609 Balge/Sebbenhausen * jhunold@gmx.eu !

On Wed, Feb 15, 2012 at 3:43 AM, Jürgen Hunold <jhunold@gmx.eu> wrote:
Hi Robert,
On Tuesday, 14. February 2012 17:16:22 Robert Dailey wrote:
On Mon, Feb 13, 2012 at 11:27 AM, Robert Dailey <rcdailey@gmail.com> wrote:
On Fri, Feb 10, 2012 at 4:10 PM, Andrey Semashev <
Thanks I found the setting. Yes I'm seeing wchar_t. Here are a couple of random functions:
void * stlpd_std::basic_filebuf<wchar_t,class stlpd_std::char_traits<wchar_t> >::fd(void) wchar_t const * stlpd_std::ctype<wchar_t>::narrow(wchar_t const *,wchar_t const *,char,char *)
Any idea where to go from here? stlportstld.5.2.dll symbols seem to use wchar_t.
The question might be which incarnation of wchar_t is present in the dll
Any updates?
Boost.Build uses the following settings (from one of your last mails, my answer seems to be lost somehow...)
file
bin.v2\libs\regex\build\msvc-7.1\debug\link-static\threading-multi\c_regex_t
raits.obj.rsp "libs\regex\build\..\src\c_regex_traits.cpp"
-Fo"bin.v2\libs\regex\build\msvc-7.1\debug\link-static\threading-multi\c_re
gex_traits.obj" -TP /Z7 /Od /Ob0 /W4 /GR /MDd /Zc:forScope /Zc:wchar_t /Wp64 /GB /Op /wd4675 /EHs -c
-DBOOST_ALL_NO_LIB=1
"-I."
for compiling the Boost libraries.
The questions remains: Which flags uses STLport?
We have abandoned STLport ages ago (read: last was 4.2 or so), so I'm guessing wild right now.
Here is the debug command that STLport make scripts use on VS 2008 for the debug library: cl /nologo /W4 /EHsc /Zm800 /MTd /Zi /DWINVER=0x0501 /GS /DWIN32 /D_WINDOWS /D_DEBUG /D_STLP_DEBUG /I../../stlport /c /Foobj\vc9\static-stlg\allocators.o /Fdobj\vc9\static-stlg\stlportstld_static.pdb ../../src\allocators.cpp Based on this information, can you identify the problem? I see that /Zc:wchar_t is missing, but according to MSDN documentation, this is the default anyway.

Hi Robert, On Wednesday, 15. February 2012 14:47:39 Robert Dailey wrote:
On Wed, Feb 15, 2012 at 3:43 AM, Jürgen Hunold <jhunold@gmx.eu> wrote:
Hi Robert,
Flags used by Boost.Build for building Boost:
/Z7 /Od /Ob0 /W4 /GR /MDd /Zc:forScope /Zc:wchar_t /Wp64 /GB /Op /wd4675 /EHs -c
-DBOOST_ALL_NO_LIB=1
"-I."
for compiling the Boost libraries.
The questions remains: Which flags uses STLport?
Here is the debug command that STLport make scripts use on VS 2008 for the debug library:
cl /nologo /W4 /EHsc /Zm800 /MTd /Zi /DWINVER=0x0501 /GS /DWIN32 /D_WINDOWS /D_DEBUG /D_STLP_DEBUG /I../../stlport /c /Foobj\vc9\static-stlg\allocators.o /Fdobj\vc9\static-stlg\stlportstld_static.pdb ../../src\allocators.cpp
Based on this information, can you identify the problem? I see that /Zc:wchar_t is missing, but according to MSDN documentation, this is the default anyway.
Yes, explicit wchar_t was introduced for older msvc compiler. Obsolete nowadays. My best guess is the /D_STLP_DEBUG define which enables enhanced debugging magic (iterator validation etc.) which might not be binary compatible with Boost. Try to add "define=_STLP_DEBUG" on your commandline an see if this helps. And maybe look up /GR vs. /GS and most probably /MDd vs. /MTd Yours, Jürgen -- * Dipl.-Math. Jürgen Hunold ! * voice: ++49 4257 300 ! Fährstraße 1 * fax : ++49 4257 300 ! 31609 Balge/Sebbenhausen * jhunold@gmx.eu !

On Thu, Feb 16, 2012 at 10:12 AM, Jürgen Hunold <jhunold@gmx.eu> wrote:
Hi Robert,
On Wednesday, 15. February 2012 14:47:39 Robert Dailey wrote:
On Wed, Feb 15, 2012 at 3:43 AM, Jürgen Hunold <jhunold@gmx.eu> wrote:
Hi Robert,
Flags used by Boost.Build for building Boost:
/Z7 /Od /Ob0 /W4 /GR /MDd /Zc:forScope /Zc:wchar_t /Wp64 /GB /Op /wd4675 /EHs -c
-DBOOST_ALL_NO_LIB=1
"-I."
for compiling the Boost libraries.
The questions remains: Which flags uses STLport?
Here is the debug command that STLport make scripts use on VS 2008 for the debug library:
cl /nologo /W4 /EHsc /Zm800 /MTd /Zi /DWINVER=0x0501 /GS /DWIN32 /D_WINDOWS /D_DEBUG /D_STLP_DEBUG /I../../stlport /c /Foobj\vc9\static-stlg\allocators.o /Fdobj\vc9\static-stlg\stlportstld_static.pdb ../../src\allocators.cpp
Based on this information, can you identify the problem? I see that /Zc:wchar_t is missing, but according to MSDN documentation, this is the default anyway.
Yes, explicit wchar_t was introduced for older msvc compiler. Obsolete nowadays.
My best guess is the /D_STLP_DEBUG define which enables enhanced debugging magic (iterator validation etc.) which might not be binary compatible with Boost. Try to add "define=_STLP_DEBUG" on your commandline an see if this helps.
And maybe look up /GR vs. /GS and most probably /MDd vs. /MTd
Defining _STLP_DEBUG did it! it links perfectly now!! yay!!!! Thanks a ton!!

On Tuesday, February 14, 2012 17:16:22 Robert Dailey wrote:
Any idea where to go from here? stlportstld.5.2.dll symbols seem to use wchar_t.
Any updates?
I assume, there are no messages about missing libraries in the compiler output, so my last suggestion is to go digging STLPort code. It is possible that the missing functions are not properly exported from dll. MSVC is surprisingly picky as to where the declspec directive is specified, silently ignoring it if the placement is wrong.
participants (4)
-
Andrey Semashev
-
Jürgen Hunold
-
Jürgen Hunold
-
Robert Dailey