Ensure FEATURE_COREFX_GLOBALIZATION is defined for runtime
authorStephen Toub <stoub@microsoft.com>
Tue, 31 Mar 2015 23:11:05 +0000 (19:11 -0400)
committerStephen Toub <stoub@microsoft.com>
Wed, 1 Apr 2015 15:54:14 +0000 (11:54 -0400)
commit15f35c238e01289f6c745934742955ae56f15ec9
tree7b8d2a31870670d1f0d5eb16a3941b0607a7678d
parentf1573b60f02b05d38d5944422259eecc28dc0b2d
Ensure FEATURE_COREFX_GLOBALIZATION is defined for runtime

A bunch of our System.Runtime.Tests.dll, System.Xml.XDocument.Properties.dll,
and other tests were failing with formatting errors.  The runtime tests were
also triggering a runtime assert at shutdown.  It appears that all of these
stem from a mismatch between some data structure layouts in mscorlib and
the runtime, in particular with NumberFormatInfo.

Several fields throughout NumberFormatInfo are included conditionally based
on the  FEATURE_COREFX_GLOBALIZATION flag not being defined.  This flag is
being set for the compilation of mscorlib, but it appears not to be set when
compiling all relevant parts of the runtime, such that the native structure has
extra fields not present in the managed structure.  This is resulting in fields
being misinterpreted by the runtime when using the structure for formatting
(and presumably it's also leading to some potential corruption).

This fix simply adds a define for FEATURE_COREFX_GLOBALIZATION to
the makefile.  The tests that were failing now pass, and the runtime assertion
is no longer firing.
CMakeLists.txt
src/vm/CMakeLists.txt