[test] mingw (3.2.3) failure

Does anybody know what the deal here? Test output: mslater - test - basic_cstring_test / mingw Linker output [2005-05-10 22:57:32 UTC]: "g++" "-Wl,--enable-auto-image-base" -g -Wl,--allow-multiple-definition -mno-cygwin -o "C:\testing\boost\results\bin\boost\libs\test\test\basic_cstring_test.test\mingw\debug\basic_cstring_test.exe" -L"C:/testing/boost/results/bin/boost/libs/test/build/libboost_unit_test_framework.lib/mingw/debug" "C:\testing\boost\results\bin\boost\libs\test\test\basic_cstring_test.test\mingw\debug\basic_cstring_test.obj" "C:\testing\boost\results\bin\boost\libs\test\build\libboost_unit_test_framework.lib\mingw\debug\libboost_unit_test_framework.lib" "C:\testing\boost\results\bin\boost\libs\test\build\libboost_unit_test_framework.lib\mingw\debug\libboost_unit_test_framework.lib" C:\testing\boost\results\bin\boost\libs\test\test\basic_cstring_test.test\mingw\debug\basic_cstring_test.obj(.text$_Z19asignment_test_implIwEvPN5boost4typeIT_EE+0xef): In function `ZSt4setwi': c:/mingw/include/c++/3.2.3/iomanip: undefined reference to `std::char_traits<wchar_t>::compare(wchar_t const*, wchar_t const*, unsigned)' And a lot more like this. Why references to std::char_traits<wchar_t> symbols are undefined? Gennadiy

Gennadiy Rozental wrote:
Does anybody know what the deal here?
Test output: mslater - test - basic_cstring_test / mingw Linker output [2005-05-10 22:57:32 UTC]: "g++" "-Wl,--enable-auto-image-base" -g -Wl,--allow-multiple-definition -mno-cygwin -o "C:\testing\boost\results\bin\boost\libs\test\test\basic_cstring_test.test\mingw\debug\basic_cstring_test.exe" -L"C:/testing/boost/results/bin/boost/libs/test/build/libboost_unit_test_framework.lib/mingw/debug" "C:\testing\boost\results\bin\boost\libs\test\test\basic_cstring_test.test\mingw\debug\basic_cstring_test.obj" "C:\testing\boost\results\bin\boost\libs\test\build\libboost_unit_test_framework.lib\mingw\debug\libboost_unit_test_framework.lib" "C:\testing\boost\results\bin\boost\libs\test\build\libboost_unit_test_framework.lib\mingw\debug\libboost_unit_test_framework.lib"
C:\testing\boost\results\bin\boost\libs\test\test\basic_cstring_test.test\mingw\debug\basic_cstring_test.obj(.text$_Z19asignment_test_implIwEvPN5boost4typeIT_EE+0xef): In function `ZSt4setwi': c:/mingw/include/c++/3.2.3/iomanip: undefined reference to `std::char_traits<wchar_t>::compare(wchar_t const*, wchar_t const*, unsigned)'
And a lot more like this. Why references to std::char_traits<wchar_t> symbols are undefined?
Because MinGW doesn't have wide char support. Well.. it has the type.. but that's about it :-) (this is AFAIK, i.e. last I checked) -- -- Grafik - Don't Assume Anything -- Redshift Software, Inc. - http://redshift-software.com -- rrivera/acm.org - grafik/redshift-software.com -- 102708583/icq - grafikrobot/aim - Grafik/jabber.org

And a lot more like this. Why references to std::char_traits<wchar_t> symbols are undefined?
Because MinGW doesn't have wide char support. Well.. it has the type.. but that's about it :-) (this is AFAIK, i.e. last I checked)
Doesn't standard require wchar_t specialization? Anyway, how could I separate mingw from any other gcc? Gennadiy

On Wed, May 11, 2005 at 01:13:39PM -0400, Gennadiy Rozental wrote:
And a lot more like this. Why references to std::char_traits<wchar_t> symbols are undefined?
Because MinGW doesn't have wide char support. Well.. it has the type.. but that's about it :-) (this is AFAIK, i.e. last I checked)
Doesn't standard require wchar_t specialization?
It also requires "export" :-) If the host OS doesn't provide all the necessary functions such as wcstombs then libstdc++ disables the wchar_t specialisations.
Anyway, how could I separate mingw from any other gcc?
It's not just MinGW, but also FreeBSD 4.x, and others. You can test _GLIBCXX_USE_WCHAR_T to see if the library includes wchar_t specialisations (or _GLIBCPP_USE_WCHAR_T for version 3.3 and lower). Or you could test BOOST_NO_STD_WSTRING, which will be set if the library doesn't support wide chars. jon
participants (3)
-
Gennadiy Rozental
-
Jonathan Wakely
-
Rene Rivera