Wave library fails to compile with VC7.1 - Buffer overrun in cl.exe

It seems like this was fixed by turning off the rtti for VC7.1 and I verified that both V1 and V2 jamfiles have the workaround line in them (not sure which one is getting used as I'm not passing any parameters for that) C:\work\boost_1_33_1>..\boost-jam-3.1.11-1-ntx86\bjam.exe "-sTOOLS=vc-7_1-stlport" "-sSTLPORT_PATH=.." "-sBUILD=<native-wchar_t>on" ****************************************************** Building Boost.Iostreams with bzip2 support disabled. To enable bzip2, consult the Boost.Iostreams documentation ****************************************************** ****************************************************** Building Boost.Iostreams with zlib and gzip support disabled. To enable zlib and gzip, consult the Boost.Iostreams documentation ****************************************************** Building Boost.Regex with the optional Unicode/ICU support disabled. Please refer to the Boost.Regex documentation for more information (and if you don't know what ICU is then you probably don't need it). ...found 11410 targets... ...updating 3 targets... vc-C++ bin\boost\libs\wave\build\libboost_wave.lib\vc-7_1-stlport\debug\native- wchar_t-on\threading-multi\instantiate_cpp_grammar.obj instantiate_cpp_grammar.cpp "cl" /Zm800 -nologo /EHsc -c -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 /Zc:wchar_t -I"bin\boost\libs\wave\build" -I"C:\work\boost_1_33_1" -I"..\STLport-4.6.2\stlport" -I"C:\work\boost_1_33_1" -Fo"bin\boost\libs\wave\build\libboost_wave.lib\vc-7_1-stlport\debug\nat ive-wchar_t-on\threading-multi\instantiate_cpp_grammar.obj" -Tp"C:\work\boost_1_33_1libs\wave\build\../src/instantiate_cpp_grammar.c pp" ...failed vc-C++ bin\boost\libs\wave\build\libboost_wave.lib\vc-7_1-stlport\debug\native- wchar_t-on\threading-multi\instantiate_cpp_grammar.obj... ...skipped <@boost!libs!wave!build\libboost_wave.lib\vc-7_1-stlport\debug\native-wc har_t-on\threading-multi>libboost_wave-vc71-mt-gdp-1_33_1.CMD for lack of <@boost!libs!wave!build\libboost_wave.lib\vc-7_1-stlport\debug\native-wc har_t-on\threading-multi>instantiate_cpp_grammar.obj... ...skipped <@boost!libs!wave!build\libboost_wave.lib\vc-7_1-stlport\debug\native-wc har_t-on\threading-multi>libboost_wave-vc71-mt-gdp-1_33_1.lib for lack of <@boost!libs!wave!build\libboost_wave.lib\vc-7_1-stlport\debug\native-wc har_t-on\threading-multi>instantiate_cpp_grammar.obj... ...failed updating 1 target... ...skipped 2 targets... I still get the buffer overrun in cl.exe. -D --- Didier 'Dids' Malenfant President Ready At Dawn Studios LLC www.readyatdawn.com <http://www.readyatdawn.com/>

Didier Malenfant wrote:
It seems like this was fixed by turning off the rtti for VC7.1 and I verified that both V1 and V2 jamfiles have the workaround line in them (not sure which one is getting used as I'm not passing any parameters for that)
V1 is used by default.
C:\work\boost_1_33_1>..\boost-jam-3.1.11-1-ntx86\bjam.exe "-sTOOLS=vc-7_1-stlport" "-sSTLPORT_PATH=.." "-sBUILD=<native-wchar_t>on" ****************************************************** Building Boost.Iostreams with bzip2 support disabled. To enable bzip2, consult the Boost.Iostreams documentation ****************************************************** ****************************************************** Building Boost.Iostreams with zlib and gzip support disabled. To enable zlib and gzip, consult the Boost.Iostreams documentation ****************************************************** Building Boost.Regex with the optional Unicode/ICU support disabled. Please refer to the Boost.Regex documentation for more information (and if you don't know what ICU is then you probably don't need it). ...found 11410 targets... ...updating 3 targets... vc-C++ bin\boost\libs\wave\build\libboost_wave.lib\vc-7_1-stlport\debug\ vc-C++ native-wchar_t-on\threading-multi\instantiate_cpp_grammar.obj instantiate_cpp_grammar.cpp
"cl" /Zm800 -nologo /EHsc -c -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 /Zc:wchar_t -I"bin\boost\libs\wave\build" -I"C:\work\boost_1_33_1" -I"..\STLport-4.6.2\stlport" -I"C:\work\boost_1_33_1" -Fo"bin\boost\libs\wave\build\libboost_wave.lib\vc-7_1-stlport \debug\native-wchar_t-on\threading-multi\instantiate_cpp_gramm ar.obj" -Tp"C:\work\boost_1_33_1libs\wave\build\../src/instantiate_cpp _grammar.cpp"
/GR means rtti is on. [snip]
I still get the buffer overrun in cl.exe.
That is because of the /GR. Perhaps it gets automatically added for the stlport toolchain? Regards Hartmut

Managed to get it to compile by forcing rtti off for the whole boost compilation (i.e. adding <rtti>off to BUILD) It would seem then that <vc-7_1><*><rtti>off in the wave JamFile doesn't work and is ignored in my case. -D "Hartmut Kaiser" <hartmut.kaiser@gmail.com> wrote in message news:001901c5ed6f$8a3e0400$0500a8c0@slartibartfast...
Didier Malenfant wrote:
It seems like this was fixed by turning off the rtti for VC7.1 and I verified that both V1 and V2 jamfiles have the workaround line in them (not sure which one is getting used as I'm not passing any parameters for that)
V1 is used by default.
C:\work\boost_1_33_1>..\boost-jam-3.1.11-1-ntx86\bjam.exe "-sTOOLS=vc-7_1-stlport" "-sSTLPORT_PATH=.." "-sBUILD=<native-wchar_t>on" ****************************************************** Building Boost.Iostreams with bzip2 support disabled. To enable bzip2, consult the Boost.Iostreams documentation ****************************************************** ****************************************************** Building Boost.Iostreams with zlib and gzip support disabled. To enable zlib and gzip, consult the Boost.Iostreams documentation ****************************************************** Building Boost.Regex with the optional Unicode/ICU support disabled. Please refer to the Boost.Regex documentation for more information (and if you don't know what ICU is then you probably don't need it). ...found 11410 targets... ...updating 3 targets... vc-C++ bin\boost\libs\wave\build\libboost_wave.lib\vc-7_1-stlport\debug\ vc-C++ native-wchar_t-on\threading-multi\instantiate_cpp_grammar.obj instantiate_cpp_grammar.cpp
"cl" /Zm800 -nologo /EHsc -c -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 /Zc:wchar_t -I"bin\boost\libs\wave\build" -I"C:\work\boost_1_33_1" -I"..\STLport-4.6.2\stlport" -I"C:\work\boost_1_33_1" -Fo"bin\boost\libs\wave\build\libboost_wave.lib\vc-7_1-stlport \debug\native-wchar_t-on\threading-multi\instantiate_cpp_gramm ar.obj" -Tp"C:\work\boost_1_33_1libs\wave\build\../src/instantiate_cpp _grammar.cpp"
/GR means rtti is on.
[snip]
I still get the buffer overrun in cl.exe.
That is because of the /GR. Perhaps it gets automatically added for the stlport toolchain?
Regards Hartmut

Didier Malenfant wrote:
Managed to get it to compile by forcing rtti off for the whole boost compilation (i.e. adding <rtti>off to BUILD)
It would seem then that <vc-7_1><*><rtti>off in the wave JamFile doesn't work and is ignored in my case.
The <vc-7_1><*><rtti>off directive isn't sufficient in your case because you're using the vc-7_1-stlport toolchain. For this reason I recently added a <vc-7_1-stlport><*><rtti>off to all of the Wave Jamfiles which should fix your problem. IIRC this fix will be in the 1.33.1 release as well. Regards Hartmut
participants (2)
-
Didier Malenfant
-
Hartmut Kaiser