
Gennadiy Rozental wrote:
Ever since I fixed bug with locale/manipulators handling (particularly I added std::locate-support to the list of requirements in Jamfile for Boost.Test libs) all cw-8_3 tests seems to be crashing at runtime. From what I see it's somewhere in iostream implementation. Also I noticed following in build log:
### mwld Linker Warning: # Multiply defined symbol: std::ios_base::ios_base(void) (??0ios_base@std@@IAE@XZ) in # files test_tools.obj (libboost_test_exec_monitor.lib), MSL_All-DLL80_x86_D.dll (MSL_All-DLL_x86_D.lib), keeping definition in MSL_All-DLL80_x86_D.dll
The 8.3 version of CodeWarrior for Windows does not support locales from dynamic libs. The UseDLLPrefix.h header is commonly used to properly set up the import/export flags. This header will also #define _MSL_NO_LOCALE which disables locale support.
When linked against static versions of MSL_All, full locale support is available.
-Howard
From what I see it was linked against static version of library (that what std::locale-support does). Linker produced only warnings. So what should I do to eliminate runtime crash?
If you really must know.. 1. Don't use std::locale-support in the test libs. 2. Remove code that needs std::locale from Boost.Test. I know that second one might seem draconian, but I've been looking at how to fix it at the BBv1 level, and I don't think it's possible. To allow having that std::locale-support requirement on the test libs means changing *every* Jamfile that references the test libs to also have the std::locale-support requirement. Which means that if every test we have uses one of the Boost.Test libraries then *every* test that uses a DLL will break for CodeWarrior. I have a question.. Is std::locale support really required by Boost.Test? -- -- 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