
I am currently porting some code to the VC11 compiler beta, and as part of that process I ran the unit tests on the libraries I use and noticed some failures in Boost.Locale under VC11 that are not present under VC10. Ones of the tests (test_winapi_collate) actually crashes (showing the WER dialog etc). Logs for comparison (tests were run on trunk): http://dl.dropbox.com/u/74751/cpp/boost/logs/locale-test-vc10-20120330-2143.... http://dl.dropbox.com/u/74751/cpp/boost/logs/locale-test-vc11-20120330-2143.... Has anyone else observed this or is it a configuration issue on my end?

________________________________ From: Joshua Boyce <raptorfactor@raptorfactor.com> To: boost@lists.boost.org Sent: Friday, March 30, 2012 3:47 PM Subject: [boost] [Locale] VC11 Regressions
I am currently porting some code to the VC11 compiler beta, and as part of that process I ran the unit tests on the libraries I use and noticed some failures in Boost.Locale under VC11 that are not present under VC10.
Ones of the tests (test_winapi_collate) actually crashes (showing the WER dialog etc).
Logs for comparison (tests were run on trunk): http://dl.dropbox.com/u/74751/cpp/boost/logs/locale-test-vc10-20120330-2143.... http://dl.dropbox.com/u/74751/cpp/boost/logs/locale-test-vc11-20120330-2143....
Has anyone else observed this or is it a configuration issue on my end?
- Can you please give me a stack trace on the point it crashes? - Also what version of OS do you run (XP/Vista/7/8)? - Is this 32 or 64 bit build? - Any other tests failing? - Do you compile with ICU if yes what version? Thanks! Artyom Beilis -------------- CppCMS - C++ Web Framework: http://cppcms.com/ CppDB - C++ SQL Connectivity: http://cppcms.com/sql/cppdb/

On Sun, Apr 1, 2012 at 6:58 PM, Artyom Beilis <artyomtnk@yahoo.com> wrote:
- Can you please give me a stack trace on the point it crashes? - Also what version of OS do you run (XP/Vista/7/8)? - Is this 32 or 64 bit build? - Any other tests failing? - Do you compile with ICU if yes what version?
Thanks!
Artyom Beilis -------------- CppCMS - C++ Web Framework: http://cppcms.com/ CppDB - C++ SQL Connectivity: http://cppcms.com/sql/cppdb/
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
1. Stack trace: http://dl.dropbox.com/u/74751/cpp/boost/logs/locale-windbg-vc11-20120402-171... Note that I had to copy across the locale and system DLLs as the binary won't run directly from the test directory without them in the PATH (Boost.Test takes care of this normally, but I just wanted to run it direct from WinDbg). 2. I run Windows 7 x64 (completely up to date with all service packs and updates). 3. I explicitly specified 32-bit this time. 4. Ran the tests again after explicitly setting: "toolset=msvc11.0 address-model=32 runtime-link=shared". Please see the log for failing tests: http://dl.dropbox.com/u/74751/cpp/boost/logs/locale-test-vc11-20120402-1713.... Note that some of the extra compile spew may be omitted because I compiled Boost first, then the tests, so all that was required when running the Locale tests was to compile and link the tests, rather than also compile Locale and System as I did last time. 5. I don't compile with ICU. On Sun, Apr 1, 2012 at 8:44 PM, Artyom Beilis <artyomtnk@yahoo.com> wrote:
Is there any chance that static runtime used instead of dynamic?
Because it seems that there are many failures, looks like the facets are not installed, and this mostly caused by inconsistent dynamic/statlic linking.
The above logs were generated after explicitly specifying 'runtime-link=shared' this time... Also, I have confirmed with dumpbin that both the Boost.Locale DLL and the test are dynamic linking to the CRT. Proof: http://dl.dropbox.com/u/74751/cpp/boost/logs/locale-dll-imports-vc11-2012040... http://dl.dropbox.com/u/74751/cpp/boost/logs/locale-test-imports-vc11-201204... Thanks for looking into this.

Also, I have confirmed with dumpbin that both the Boost.Locale DLL and the test are dynamic linking to the CRT. Proof: http://dl.dropbox.com/u/74751/cpp/boost/logs/locale-dll-imports-vc11-2012040... http://dl.dropbox.com/u/74751/cpp/boost/logs/locale-test-imports-vc11-201204...
Thanks for looking into this.
Can you please send me the same for MSVC10 and MSVC11 so we can compare symbols used in the DLL. (Does this tool know to demangle as well?) Because I can't find the reference to std::collate<char>::id or std::collate<wchar_t>::id. Same for std::num_put<...>::id and std::num_get<...>::id If this symbol is not imported to DLL and program what would happend that they use different instances of the same id and cause crash on attempt to use it. I almost certain that this is MSVC11 issue or some configuration problem. Thanks. Artyom Beilis.

On Mon, Apr 2, 2012 at 7:44 PM, Artyom Beilis <artyomtnk@yahoo.com> wrote:
Also, I have confirmed with dumpbin that both the Boost.Locale DLL and the test are dynamic linking to the CRT. Proof:
http://dl.dropbox.com/u/74751/cpp/boost/logs/locale-dll-imports-vc11-2012040...
http://dl.dropbox.com/u/74751/cpp/boost/logs/locale-test-imports-vc11-201204...
Thanks for looking into this.
Can you please send me the same for MSVC10 and MSVC11 so we can compare symbols used in the DLL.
(Does this tool know to demangle as well?)
Because I can't find the reference to std::collate<char>::id or std::collate<wchar_t>::id.
Same for std::num_put<...>::id and std::num_get<...>::id
If this symbol is not imported to DLL and program what would happend that they use different instances of the same id and cause crash on attempt to use it.
I almost certain that this is MSVC11 issue or some configuration problem.
Thanks.
Hey, unfortunately I'm swamped over the next couple of days, then I'm going on holidays over the easter break. I'll get this information to you some time next week. Thanks again for looking into this.

On Wed, Apr 4, 2012 at 3:41 PM, Joshua Boyce <raptorfactor@raptorfactor.com>wrote:
On Mon, Apr 2, 2012 at 7:44 PM, Artyom Beilis <artyomtnk@yahoo.com> wrote:
Also, I have confirmed with dumpbin that both the Boost.Locale DLL and
the
test are dynamic linking to the CRT. Proof:
http://dl.dropbox.com/u/74751/cpp/boost/logs/locale-dll-imports-vc11-2012040...
http://dl.dropbox.com/u/74751/cpp/boost/logs/locale-test-imports-vc11-201204...
Thanks for looking into this.
Can you please send me the same for MSVC10 and MSVC11 so we can compare symbols used in the DLL.
(Does this tool know to demangle as well?)
Because I can't find the reference to std::collate<char>::id or std::collate<wchar_t>::id.
Same for std::num_put<...>::id and std::num_get<...>::id
If this symbol is not imported to DLL and program what would happend that they use different instances of the same id and cause crash on attempt to use it.
I almost certain that this is MSVC11 issue or some configuration problem.
Thanks.
Hey, unfortunately I'm swamped over the next couple of days, then I'm going on holidays over the easter break. I'll get this information to you some time next week.
Thanks again for looking into this.
Sorry Artyom, I haven't forgotten about this, but I'm swamped at the moment. I'll update here again once I have the information you've requested. Thanks.

Whoo, necrothread. [Artyom Beilis, April 2, 2012]
Because I can't find the reference to std::collate<char>::id or std::collate<wchar_t>::id. Same for std::num_put<...>::id and std::num_get<...>::id If this symbol is not imported to DLL and program what would happend that they use different instances of the same id and cause crash on attempt to use it. I almost certain that this is MSVC11 issue or some configuration problem.
Yep, this was my bug. I've fixed it and the fix will be available in VC11 RTM. Stephan T. Lavavej Visual C++ Libraries Developer

From: Stephan T. Lavavej <stl@exchange.microsoft.com> Whoo, necrothread.
[Artyom Beilis, April 2, 2012]
Because I can't find the reference to std::collate<char>::id or std::collate<wchar_t>::id. Same for std::num_put<...>::id and std::num_get<...>::id If this symbol is not imported to DLL and program what would happend that they use different instances of the same id and cause crash on attempt to use it. I almost certain that this is MSVC11 issue or some configuration problem.
Yep, this was my bug. I've fixed it and the fix will be available in VC11 RTM.
Stephan T. Lavavej Visual C++ Libraries Developer
Thanks! Do boost.locale tests pass now? Artyom Beilis -------------- CppCMS - C++ Web Framework: http://cppcms.com/ CppDB - C++ SQL Connectivity: http://cppcms.com/sql/cppdb/
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost ----- Original Message -----

[STL]
Yep, this was my bug. I've fixed it and the fix will be available in VC11 RTM.
[Artyom Beilis]
Do boost.locale tests pass now?
I'm probably missing something - I built Boost 1.49.0 with VC10 SP1 (as a baseline) and VC11 before the fix, and running b2 in libs\locale\test printed "**passed**" for everything. (Naturally, I totally deleted and re-extracted Boost when switching from 10 to 11, preventing contamination.) STL

On Mon, Jun 18, 2012 at 10:18 PM, Stephan T. Lavavej <stl@exchange.microsoft.com> wrote:
[STL]
Yep, this was my bug. I've fixed it and the fix will be available in VC11 RTM.
[Artyom Beilis]
Do boost.locale tests pass now?
I'm probably missing something - I built Boost 1.49.0 with VC10 SP1 (as a baseline) and VC11 before the fix, and running b2 in libs\locale\test printed "**passed**" for everything. (Naturally, I totally deleted and re-extracted Boost when switching from 10 to 11, preventing contamination.)
Might've been an issue in 1.50 (beta). -- Olaf

On Sat, Jun 16, 2012 at 9:22 AM, Stephan T. Lavavej < stl@exchange.microsoft.com> wrote:
Whoo, necrothread.
[Artyom Beilis, April 2, 2012]
Because I can't find the reference to std::collate<char>::id or std::collate<wchar_t>::id. Same for std::num_put<...>::id and std::num_get<...>::id If this symbol is not imported to DLL and program what would happend that they use different instances of the same id and cause crash on attempt to use it. I almost certain that this is MSVC11 issue or some configuration problem.
Yep, this was my bug. I've fixed it and the fix will be available in VC11 RTM.
Stephan T. Lavavej Visual C++ Libraries Developer
That's great to hear. Thanks for letting us know. Sorry again Artyom for taking so long to get you more information. I tried reinstalling VC10 a week ago and it kept erroring out (I assume because I already have a VC11 build and a couple of lingering old SDKs installed that are conflicting somewhere) so I gave up in frustration and decided to try again once I uninstall the VC11 preview to install the VC11 RC. At least now we can both save ourselves some time. :)

Logs for comparison (tests were run on trunk):
http://dl.dropbox.com/u/74751/cpp/boost/logs/locale-test-vc10-20120330-2143.... http://dl.dropbox.com/u/74751/cpp/boost/logs/locale-test-vc11-20120330-2143....
Has anyone else observed this or is it a configuration issue on my end?
Is there any chance that static runtime used instead of dynamic? Because it seems that there are many failures, looks like the facets are not installed, and this mostly caused by inconsistent dynamic/statlic linking. Artyom Beilis
participants (4)
-
Artyom Beilis
-
Joshua Boyce
-
Olaf van der Spek
-
Stephan T. Lavavej