Merge pull request #1857 from slluis/fix-assembly-resolver
authorAnkit Jain <radical@gmail.com>
Fri, 5 Jun 2015 14:11:54 +0000 (19:41 +0530)
committerAnkit Jain <radical@gmail.com>
Fri, 5 Jun 2015 14:11:54 +0000 (19:41 +0530)
[MSBuild] Fix assembly resolution issue

240 files changed:
configure.ac
external/ikdasm
external/ikvm
external/referencesource
mcs/build/tests.make
mcs/class/Mono.Debugger.Soft/Test/dtest-app.cs
mcs/class/Mono.Debugger.Soft/Test/dtest.cs
mcs/class/Mono.Parallel/Mono.Parallel-net_4_5.csproj
mcs/class/PEAPI/Metadata.cs
mcs/class/PEAPI/PEAPI.cs
mcs/class/System.ComponentModel.DataAnnotations/System.ComponentModel.DataAnnotations-net_4_5.csproj
mcs/class/System.Core/System.IO.MemoryMappedFiles/MemoryMappedViewAccessor.cs
mcs/class/System.Core/System.IO.MemoryMappedFiles/MemoryMappedViewStream.cs
mcs/class/System.Core/Test/System.IO.MemoryMappedFiles/MemoryMappedFileTest.cs
mcs/class/System.Data.DataSetExtensions/System.Data.DataSetExtensions-net_4_5.csproj
mcs/class/System.Data/System.Data-net_4_5.csproj
mcs/class/System.Design/System.Design-net_4_5.csproj
mcs/class/System.Drawing/Test/System.Drawing/TestFont.cs
mcs/class/System.IO.Compression/ZipArchive.cs
mcs/class/System.Net.Http/System.Net.Http-tests-net_4_5.csproj
mcs/class/System.Net.Http/System.Net.Http.Headers/HttpHeaders.cs
mcs/class/System.Net.Http/System.Net.Http.Headers/Parser.cs
mcs/class/System.Net.Http/System.Net.Http_test.dll.sources
mcs/class/System.Net.Http/Test/System.Net.Http.Headers/HttpRequestHeadersTest.cs [new file with mode: 0644]
mcs/class/System.Runtime.Caching/System.Runtime.Caching-net_4_5.csproj
mcs/class/System.Runtime.DurableInstancing/System.Runtime.DurableInstancing-net_4_5.csproj
mcs/class/System.Runtime.Serialization/ReferenceSources/BitFlagsGenerator.cs
mcs/class/System.Runtime.Serialization/ReferenceSources/CodeInterpreter.cs
mcs/class/System.Runtime.Serialization/System.Runtime.Serialization-net_4_5.csproj
mcs/class/System.Runtime.Serialization/System.Runtime.Serialization.dll.sources
mcs/class/System.ServiceModel/System.ServiceModel.Channels/HttpRequestChannel.cs
mcs/class/System.ServiceModel/System.ServiceModel/ClientRuntimeChannel.cs
mcs/class/System.Web.Services/System.Web.Services-net_4_5.csproj
mcs/class/System.Web/System.Web-net_4_5.csproj
mcs/class/System.Web/System.Web-plainweb-net_4_5.csproj
mcs/class/System.Windows.Forms/System.Windows.Forms-net_4_5.csproj
mcs/class/System.Windows.Forms/System.Windows.Forms/DataGridViewTextBoxCell.cs
mcs/class/System.XML/Makefile
mcs/class/System.XML/System.Xml-bare-net_4_5.csproj
mcs/class/System.XML/System.Xml-net_4_5.csproj
mcs/class/System.XML/Test/System.Xml.Serialization/DeserializeTests.cs
mcs/class/System.XML/Test/System.Xml/XmlSecureResolverTests.cs
mcs/class/System.Xml.Linq/System.Xml.Linq-net_4_5.csproj
mcs/class/System/ReferenceSources/HttpSysSettings.cs [new file with mode: 0644]
mcs/class/System/ReferenceSources/Logging.cs
mcs/class/System/ReferenceSources/SettingsSectionInternal.cs
mcs/class/System/System-bare-net_4_5.csproj
mcs/class/System/System-net_4_5.csproj
mcs/class/System/System-secxml-net_4_5.csproj
mcs/class/System/System.IO/KeventWatcher.cs
mcs/class/System/System.Net/HttpListenerRequest.cs
mcs/class/System/System.Net/WebConnection.cs
mcs/class/System/System.dll.sources
mcs/class/System/Test/System.Diagnostics/ProcessTest.cs
mcs/class/System/Test/System.Net.Security/SslStreamTest.cs
mcs/class/System/Test/System.Net/HttpListenerRequestTest.cs
mcs/class/System/mobile_System.dll.sources
mcs/class/corlib/Makefile
mcs/class/corlib/ReferenceSources/ExecutionContext.cs [deleted file]
mcs/class/corlib/ReferenceSources/SecurityContext.cs [new file with mode: 0644]
mcs/class/corlib/System.Globalization/RegionInfo.MonoTouch.cs
mcs/class/corlib/System.IO/UnmanagedMemoryAccessor.cs [deleted file]
mcs/class/corlib/System.Reflection/AssemblyName.cs
mcs/class/corlib/System.Reflection/CustomAttributeData.cs
mcs/class/corlib/System.Reflection/MonoAssembly.cs
mcs/class/corlib/System.Reflection/MonoMethod.cs
mcs/class/corlib/System.Runtime.InteropServices/EXCEPINFO.cs
mcs/class/corlib/System.Runtime.InteropServices/Marshal.cs
mcs/class/corlib/System.Runtime.InteropServices/SafeHandle.cs
mcs/class/corlib/System.Runtime.InteropServices/UCOMIConnectionPoint.cs
mcs/class/corlib/System.Runtime.InteropServices/UCOMIConnectionPointContainer.cs
mcs/class/corlib/System.Runtime.InteropServices/UCOMIEnumConnectionPoints.cs
mcs/class/corlib/System.Runtime.InteropServices/UCOMITypeComp.cs
mcs/class/corlib/System.Runtime.InteropServices/UCOMITypeInfo.cs
mcs/class/corlib/System.Runtime.InteropServices/UCOMITypeLib.cs
mcs/class/corlib/System.Runtime.Remoting.Messaging/AsyncResult.cs
mcs/class/corlib/System.Runtime.Remoting.Messaging/CallContext.cs [deleted file]
mcs/class/corlib/System.Runtime.Remoting.Messaging/LogicalCallContext.cs [deleted file]
mcs/class/corlib/System.Runtime.Remoting.Proxies/RealProxy.cs
mcs/class/corlib/System.Runtime.Remoting/RemotingServices.cs
mcs/class/corlib/System.Security/CodeAccessPermission.cs
mcs/class/corlib/System.Security/PermissionSet.cs
mcs/class/corlib/System.Security/SecurityContext.cs [deleted file]
mcs/class/corlib/System.Security/SecurityContextSource.cs [deleted file]
mcs/class/corlib/System.Security/SecurityFrame.cs
mcs/class/corlib/System.Security/SecurityManager.cs
mcs/class/corlib/System.Security/SecurityManager_mobile.cs
mcs/class/corlib/System.Text/EncodingHelper.cs
mcs/class/corlib/System.Threading/AsyncFlowControl.cs [deleted file]
mcs/class/corlib/System.Threading/CompressedStack.cs
mcs/class/corlib/System.Threading/ContextCallback.cs [deleted file]
mcs/class/corlib/System.Threading/ExecutionContext.cs [deleted file]
mcs/class/corlib/System.Threading/SynchronizationContext.cs [deleted file]
mcs/class/corlib/System.Threading/Thread.cs
mcs/class/corlib/System.Threading/ThreadLocal.cs [deleted file]
mcs/class/corlib/System.Threading/ThreadPool.cs
mcs/class/corlib/System/Console.iOS.cs
mcs/class/corlib/System/Environment.cs
mcs/class/corlib/System/Exception.cs
mcs/class/corlib/System/TimeZoneInfo.Android.cs
mcs/class/corlib/System/TimeZoneInfo.MonoTouch.cs
mcs/class/corlib/System/TimeZoneInfo.cs
mcs/class/corlib/System/ValueType.cs
mcs/class/corlib/Test/System.Reflection/AssemblyNameTest.cs
mcs/class/corlib/Test/System.Reflection/AssemblyTest.cs
mcs/class/corlib/Test/System.Runtime.CompilerServices/TaskAwaiterTest.cs
mcs/class/corlib/Test/System.Runtime.ExceptionServices/ExceptionDispatchInfoTest.cs
mcs/class/corlib/Test/System.Runtime.InteropServices/SafeHandleTest.cs
mcs/class/corlib/Test/System.Security/SecurityContextCas.cs
mcs/class/corlib/Test/System.Security/SecurityContextTest.cs
mcs/class/corlib/Test/System.Threading.Tasks/TaskTest.cs
mcs/class/corlib/Test/System.Threading/CompressedStackCas.cs
mcs/class/corlib/Test/System.Threading/CompressedStackTest.cs
mcs/class/corlib/Test/System.Threading/ThreadLocalTests.cs
mcs/class/corlib/Test/System/TimeZoneInfoTest.cs
mcs/class/corlib/corlib-net_4_5.csproj
mcs/class/corlib/corlib.dll.sources
mcs/class/corlib/monotouch_runtime_corlib.dll.sources [new file with mode: 0644]
mcs/class/dlr/Runtime/Microsoft.Scripting.Core/Compiler/LambdaCompiler.Binary.cs
mcs/errors/cs9030-2.cs [new file with mode: 0644]
mcs/ilasm/codegen/CustomAttr.cs
mcs/ilasm/codegen/ModifiableType.cs
mcs/ilasm/codegen/PeapiTypeRef.cs
mcs/ilasm/parser/ILParser.jay
mcs/ilasm/tests/custom-attrs-01.il [new file with mode: 0644]
mcs/ilasm/tests/test-custom-mod-2.il [new file with mode: 0644]
mcs/mcs/attribute.cs
mcs/mcs/cs-tokenizer.cs
mcs/mcs/delegate.cs
mcs/mcs/ecore.cs
mcs/mcs/expression.cs
mcs/mcs/property.cs
mcs/mcs/statement.cs
mcs/tests/dtest-061.cs [new file with mode: 0644]
mcs/tests/gtest-initialize-14.cs [new file with mode: 0644]
mcs/tests/test-910.cs
mcs/tests/test-924.cs [new file with mode: 0644]
mcs/tests/test-925.cs [new file with mode: 0644]
mcs/tests/test-async-79.cs [new file with mode: 0644]
mcs/tests/test-interpolation-01.cs
mcs/tests/ver-il-net_4_5.xml
mcs/tools/mdbrebase/mdbrebase.cs
mcs/tools/xbuild/Main.cs
mcs/tools/xbuild/Makefile
mcs/tools/xbuild/xbuild.make
mono/arch/arm/Makefile.am
mono/arch/arm/arm-codegen.c [deleted file]
mono/arch/arm/arm-codegen.h
mono/arch/arm/arm-dis.c [deleted file]
mono/arch/arm/arm-dis.h [deleted file]
mono/arch/s390x/s390x-codegen.h
mono/metadata/appdomain.c
mono/metadata/boehm-gc.c
mono/metadata/class-internals.h
mono/metadata/class.c
mono/metadata/debug-helpers.c
mono/metadata/domain-internals.h
mono/metadata/domain.c
mono/metadata/gc-internal.h
mono/metadata/gc-stats.c
mono/metadata/gc.c
mono/metadata/icall-def.h
mono/metadata/marshal.h
mono/metadata/object-internals.h
mono/metadata/object-offsets.h
mono/metadata/object.c
mono/metadata/reflection.c
mono/metadata/remoting.c
mono/metadata/security-manager.c
mono/metadata/security-manager.h
mono/metadata/sgen-mono.c
mono/metadata/threadpool-ms-io.c
mono/metadata/threadpool-ms.c
mono/metadata/threads-types.h
mono/metadata/threads.c
mono/mini/Makefile.am.in
mono/mini/aot-compiler.c
mono/mini/aot-runtime.c
mono/mini/aot-tests.cs
mono/mini/basic-float.cs
mono/mini/cpu-amd64.md
mono/mini/cpu-arm.md
mono/mini/cpu-arm64.md
mono/mini/cpu-ppc64.md
mono/mini/cpu-s390x.md
mono/mini/debugger-agent.c
mono/mini/exceptions-amd64.c
mono/mini/exceptions-arm.c
mono/mini/exceptions-s390x.c
mono/mini/exceptions-x86.c
mono/mini/exceptions.cs
mono/mini/jit-icalls.c
mono/mini/jit-icalls.h
mono/mini/method-to-ir.c
mono/mini/mini-amd64.c
mono/mini/mini-amd64.h
mono/mini/mini-arm.c
mono/mini/mini-arm.h
mono/mini/mini-codegen.c
mono/mini/mini-exceptions.c
mono/mini/mini-generic-sharing.c
mono/mini/mini-ia64.h
mono/mini/mini-llvm.c
mono/mini/mini-mips.h
mono/mini/mini-ppc.h
mono/mini/mini-runtime.c
mono/mini/mini-s390x.c
mono/mini/mini-s390x.h
mono/mini/mini-trampolines.c
mono/mini/mini-unwind.h
mono/mini/mini-x86.c
mono/mini/mini-x86.h
mono/mini/mini.c
mono/mini/mini.h
mono/mini/patch-info.h
mono/mini/seq-points.c
mono/mini/tramp-amd64.c
mono/mini/tramp-arm.c
mono/mini/tramp-mips.c
mono/mini/tramp-ppc.c
mono/mini/tramp-s390x.c
mono/mini/tramp-x86.c
mono/mini/unwind.c
mono/profiler/proflog.c
mono/sgen/sgen-workers.c
mono/tests/Makefile.am
mono/tests/bug-30085.cs [new file with mode: 0644]
mono/utils/Makefile.am
mono/utils/mono-complex.h [new file with mode: 0644]
mono/utils/mono-context.c
mono/utils/mono-context.h
msvc/libmono.vcxproj
msvc/libmonoruntime.vcxproj
msvc/libmonoutils.vcxproj
msvc/mono.def
msvc/mono.props
msvc/monosgen.def
msvc/scripts/net_4_5.sln
msvc/scripts/order.xml
winconfig.h

index a9fa6317873efd5a5cec6368290ae4122644ee91..f02e6526f9e7966753e57442c62e01c3364c3ebe 100644 (file)
@@ -1,7 +1,7 @@
 # Process this file with autoconf to produce a configure script.
 #AC_PREREQ([2.62])
 
-AC_INIT(mono, [4.1.0],
+AC_INIT(mono, [4.3.0],
         [http://bugzilla.xamarin.com/enter_bug.cgi?classification=Mono])
 
 AC_CONFIG_SRCDIR([README.md])
index a3de8ec435d47292363b3012e76e2bc05e412d6d..3bf7a4b54385a2f3765a85c0bae23190169f5c0a 160000 (submodule)
@@ -1 +1 @@
-Subproject commit a3de8ec435d47292363b3012e76e2bc05e412d6d
+Subproject commit 3bf7a4b54385a2f3765a85c0bae23190169f5c0a
index 061a13cc772ef15f4d5528eb84fea4d51d4bda1d..dab43d5cf4bf3b8b9a5b5f8cb175dee38a5fe69f 160000 (submodule)
@@ -1 +1 @@
-Subproject commit 061a13cc772ef15f4d5528eb84fea4d51d4bda1d
+Subproject commit dab43d5cf4bf3b8b9a5b5f8cb175dee38a5fe69f
index c7f241ccafe3d45ac8eb9010a0bca84b3b6a940e..abe1cdfb1f941a03c477546534b33693a2ed1b40 160000 (submodule)
@@ -1 +1 @@
-Subproject commit c7f241ccafe3d45ac8eb9010a0bca84b3b6a940e
+Subproject commit abe1cdfb1f941a03c477546534b33693a2ed1b40
index 66a9e9ca594f7037018747104cb848327534bc39..175b2da5056a9f25fb728d43d642b9c75f87419f 100644 (file)
@@ -85,7 +85,7 @@ endif
 run-test-lib: test-local
        ok=:; \
        PATH="$(TEST_RUNTIME_WRAPPERS_PATH):$(PATH)" MONO_REGISTRY_PATH="$(HOME)/.mono/registry" MONO_TESTS_IN_PROGRESS="yes" $(TEST_RUNTIME) $(RUNTIME_FLAGS) $(TEST_HARNESS) $(test_assemblies) -noshadow $(TEST_HARNESS_FLAGS) $(LOCAL_TEST_HARNESS_FLAGS) $(TEST_HARNESS_EXCLUDES) $(TEST_HARNESS_OUTPUT) -xml=TestResult-$(PROFILE).xml $(FIXTURE_ARG) $(TESTNAME_ARG)|| ok=false; \
-       if [ ! -f "TestResult-$(PROFILE).xml" ]; then echo "<?xml version='1.0' encoding='utf8'?><test-results failures='1' total='1' not-run='0' name='bcl-tests' date='$$(date +%F)' time='$$(date +%T)'><test-suite name='$(strip $(test_assemblies))' success='False' time='0'><results><test-case name='crash' executed='True' success='False' time='0'><failure><message>The test runner didn't produce a test result XML, probably due to a crash of the runtime. Check the log for more details.</message><stack-trace></stack-trace></failure></test-case></results></test-suite></test-results>" > TestResult-$(PROFILE).xml; fi; \
+       if [ ! -f "TestResult-$(PROFILE).xml" ]; then echo "<?xml version='1.0' encoding='utf-8'?><test-results failures='1' total='1' not-run='0' name='bcl-tests' date='$$(date +%F)' time='$$(date +%T)'><test-suite name='$(strip $(test_assemblies))' success='False' time='0'><results><test-case name='crash' executed='True' success='False' time='0'><failure><message>The test runner didn't produce a test result XML, probably due to a crash of the runtime. Check the log for more details.</message><stack-trace></stack-trace></failure></test-case></results></test-suite></test-results>" > TestResult-$(PROFILE).xml; fi; \
        $(TEST_HARNESS_POSTPROC) ; $$ok
 
 ## Instructs compiler to compile to target .net execution, it can be usefull in rare cases when runtime detection is not possible
index cf6598a343403a352a88b9cb3b35513c2bcc2566..dcc840d9886e84e0036186db99d1817271a348ea 100644 (file)
@@ -80,7 +80,7 @@ public class Tests2 {
        }
 }
 
-public struct AStruct {
+public struct AStruct : ITest2 {
        public int i;
        public string s;
        public byte k;
@@ -116,6 +116,14 @@ public struct AStruct {
        public void invoke_mutate () {
                l = 5;
        }
+
+       public int invoke_iface () {
+               return i;
+       }
+
+       public override string ToString () {
+               return i.ToString ();
+       }
 }
 
 public class GClass<T> {
@@ -716,6 +724,7 @@ public class Tests : TestsBase, ITest2
                        astruct = new AStruct ();
                }
                rs = "A";
+               List<int> alist = new List<int> () { 12 };
        }
 
 
index 0076f9f340b531355ce8f3f88f657c67a4c9f896..e51cdc061a0accf8d07308fa4bbf81ffa194a440 100644 (file)
@@ -526,7 +526,11 @@ public class DebuggerTests
                e = step_over ();
                assert_location (e, "ss_nested");
                e = step_into ();
-               assert_location (e, "ss_nested_3");
+               assert_location (e, "ss_nested_1");
+               e = step_into ();
+               assert_location (e, "ss_nested_1");
+               e = step_into ();
+               assert_location (e, "ss_nested");
                req.Disable ();
 
                // Check DebuggerStepThrough support
@@ -1515,8 +1519,8 @@ public class DebuggerTests
                StackFrame frame = e.Thread.GetFrames () [0];
 
                var locals = frame.Method.GetLocals ();
-               Assert.AreEqual (8, locals.Length);
-               for (int i = 0; i < 8; ++i) {
+               Assert.AreEqual (9, locals.Length);
+               for (int i = 0; i < 9; ++i) {
                        if (locals [i].Name == "args") {
                                Assert.IsTrue (locals [i].IsArg);
                                Assert.AreEqual ("String[]", locals [i].Type.Name);
@@ -1540,6 +1544,7 @@ public class DebuggerTests
                                Assert.IsTrue (locals [i].IsArg);
                                Assert.AreEqual ("String", locals [i].Type.Name);
                        } else if (locals [i].Name == "astruct") {
+                       } else if (locals [i].Name == "alist") {
                        } else {
                                Assert.Fail ();
                        }
@@ -1624,6 +1629,8 @@ public class DebuggerTests
                                AssertValue ("AB", vals [i]);
                        if (locals [i].Name == "t")
                                AssertValue ("ABC", vals [i]);
+                       if (locals [i].Name == "alist") {
+                       }
                }
 
                // Argument checking
@@ -2266,6 +2273,17 @@ public class DebuggerTests
                task = s.InvokeMethodAsyncWithResult (e.Thread, m, null);
                out_this = task.Result.OutThis as StructMirror;
                Assert.AreEqual (null, out_this);
+
+               // interface method
+               var cl1 = frame.Method.DeclaringType.Assembly.GetType ("ITest2");
+               m = cl1.GetMethod ("invoke_iface");
+               v = s.InvokeMethod (e.Thread, m, null);
+               AssertValue (42, v);
+
+               // virtual method
+               m = vm.RootDomain.Corlib.GetType ("System.Object").GetMethod ("ToString");
+               v = s.InvokeMethod (e.Thread, m, null, InvokeOptions.Virtual);
+               AssertValue ("42", v);
 #endif
        }
 
index f681f1ce902d768eab5beb5373dfc723b76bf999..af4fe1ca6fd115e8ddf37bb384ee324ae8e2c4b4 100644 (file)
@@ -47,8 +47,8 @@
   <ItemGroup>\r
     <Compile Include="..\..\build\common\Consts.cs" />\r
     <Compile Include="..\..\build\common\Locale.cs" />\r
-    <Compile Include="..\corlib\System.Collections.Concurrent\ConcurrentOrderedList.cs" />\r
     <Compile Include="Assembly\AssemblyInfo.cs" />\r
+    <Compile Include="Mono.Collections.Concurrent\ConcurrentOrderedList.cs" />\r
     <Compile Include="Mono.Collections.Concurrent\ConcurrentSkipList.cs" />\r
     <Compile Include="Mono.Threading.Tasks\CyclicDeque.cs" />\r
     <Compile Include="Mono.Threading.Tasks\IConcurrentDeque.cs" />\r
index 1e08ff38590bddf4950a8e3c9b03d0d8f2586051..c23512476609367cc651d8789d58134e6ca000b3 100644 (file)
@@ -443,6 +443,10 @@ namespace PEAPI {
                        type = constrType;
                        cVal = val;
                        tabIx = MDTable.CustomAttribute;
+
+                       var bac = val as ByteArrConst;
+                       if (bac != null)
+                               byteVal = bac.val;
                }
 
                internal CustomAttribute(MetaDataElement paren, Method constrType,
@@ -2945,7 +2949,7 @@ namespace PEAPI {
        }
 
        public class ByteArrConst : DataConstant {
-               byte[] val;
+               internal byte[] val;
 
                public ByteArrConst(byte[] val) 
                {
@@ -3310,6 +3314,7 @@ namespace PEAPI {
 
                Type type;
                Class cmodType;
+               PrimitiveTypeRef cmodPrimType;
 
                /// <summary>
                /// Create a new custom modifier for a type
@@ -3324,10 +3329,23 @@ namespace PEAPI {
                        this.cmodType = cmodType;
                }
 
+               public CustomModifiedType(Type type, CustomModifier cmod, PrimitiveTypeRef cmodType)
+                       : base((byte)cmod)
+               {
+                       this.type = type;
+                       this.cmodPrimType = cmodType;
+               }
+
                internal sealed override void TypeSig(MemoryStream str) 
                {
                        str.WriteByte(typeIndex);
-                       MetaData.CompressNum(cmodType.TypeDefOrRefToken(),str);
+
+                       if (cmodType != null) {
+                               MetaData.CompressNum(cmodType.TypeDefOrRefToken(),str);
+                       } else {
+                               MetaData.CompressNum(cmodPrimType.TypeDefOrRefToken(),str);
+                       }
+
                        type.TypeSig(str);
                }
 
@@ -4466,6 +4484,26 @@ namespace PEAPI {
 
        }
 
+       public class PrimitiveTypeRef : Type
+       {
+               PrimitiveType type;
+               MetaData metaData;
+
+               internal PrimitiveTypeRef(PrimitiveType type, MetaData md)
+                       : base (0)
+               {
+                       this.type = type;
+                       this.metaData = md;
+               }
+
+               internal uint TypeDefOrRefToken()
+               {
+                       uint cIx = type.GetTypeSpec (metaData).Row;
+                       cIx = (cIx << 2) | 0x2;
+                       return cIx;
+               }
+       }
+
        /**************************************************************************/  
        /// <summary>
        /// Descriptor for an pointer (type * or type &)
index 46672255e04174e3e5d7a4fcaa057c17b3588dcd..ec3cb4107176a74c0065e82b37a7e856322056bf 100644 (file)
@@ -923,6 +923,11 @@ namespace PEAPI {
                        return file;
                }
 
+               public PrimitiveTypeRef AddPrimitiveType (PrimitiveType type)
+               {
+                       return new PrimitiveTypeRef (type, metaData);
+               }
+
                /// <summary>
                /// Add a manifest resource to this PEFile NOT YET IMPLEMENTED
                /// </summary>
@@ -940,6 +945,12 @@ namespace PEAPI {
                        element.HasCustomAttr = true;
                }
 
+               public void AddCustomAttribute (Method meth, Constant constant, MetaDataElement element)
+               {
+                       metaData.AddCustomAttribute (new CustomAttribute (element, meth, constant));
+                       element.HasCustomAttr = true;
+               }
+
                public void AddDeclSecurity (SecurityAction sec_action, byte [] data, MetaDataElement element)
                {
                        metaData.AddDeclSecurity (new DeclSecurity (element, (ushort) sec_action, data));
index c5d5319c612bad357f3c5cf259f6f9ca5ae2bb8d..ff8fad5774869a73051ba517823ed74801324509 100644 (file)
@@ -7,7 +7,7 @@
     <SchemaVersion>2.0</SchemaVersion>\r
     <ProjectGuid>{63EC4158-FFAC-4867-8003-CF6054C8DF0B}</ProjectGuid>\r
     <OutputType>Library</OutputType>\r
-    <NoWarn>1699</NoWarn>\r
+    <NoWarn>1699,414</NoWarn>\r
     <OutputPath>./../../class/lib/net_4_5</OutputPath>\r
     <NoStdLib>True</NoStdLib>\r
     <NoConfig>True</NoConfig>\r
@@ -23,7 +23,7 @@
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">\r
     <DebugSymbols>true</DebugSymbols>\r
     <DebugType>full</DebugType>\r
-    <NoWarn>1699</NoWarn>\r
+    <NoWarn>1699,414</NoWarn>\r
     <Optimize>false</Optimize>\r
     <DefineConstants>DEBUG;TRACE;NET_4_0;NET_4_5;MONO;DISABLE_CAS_USE</DefineConstants>\r
     <ErrorReport>prompt</ErrorReport>\r
@@ -31,7 +31,7 @@
   </PropertyGroup>\r
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">\r
     <DebugType>pdbonly</DebugType>\r
-    <NoWarn>1699</NoWarn>\r
+    <NoWarn>1699,414</NoWarn>\r
     <Optimize>true</Optimize>\r
     <DefineConstants>NET_4_0;NET_4_5;MONO;DISABLE_CAS_USE</DefineConstants>\r
     <ErrorReport>prompt</ErrorReport>\r
@@ -94,8 +94,6 @@
     <Compile Include="..\..\..\external\referencesource\System.ComponentModel.DataAnnotations\DataAnnotations\ValidationResult.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.ComponentModel.DataAnnotations\DataAnnotations\Validator.cs" />\r
     <Compile Include="..\..\build\common\Consts.cs" />\r
-    <Compile Include="..\..\build\common\Locale.cs" />\r
-    <Compile Include="..\..\build\common\MonoTODOAttribute.cs" />\r
     <Compile Include="Assembly\AssemblyInfo.cs" />\r
     <Compile Include="DataAnnotationsResources.cs" />\r  </ItemGroup>\r
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. \r
index 783aa9142fbbc18bd8d8adc57259b592eea12cec..8bb8fc31b4bc02b206608b19910c91832463365c 100644 (file)
@@ -37,12 +37,19 @@ namespace System.IO.MemoryMappedFiles
        public sealed class MemoryMappedViewAccessor : UnmanagedMemoryAccessor, IDisposable {
                IntPtr mmap_handle;
                SafeMemoryMappedViewHandle safe_handle;
+               long pointerOffset;
 
                internal MemoryMappedViewAccessor (IntPtr handle, long offset, long size, MemoryMappedFileAccess access)
                {
+                       pointerOffset = offset;
                        Create (handle, offset, size, access);
                }
 
+               public long PointerOffset
+               {
+                       get { return pointerOffset; }
+               }
+
                static FileAccess ToFileAccess (MemoryMappedFileAccess access)
                {
                        switch (access){
index 58f933ae7921fdaea243b1a09a993d0dde7db64e..6fbaca605f900dd66241e5ed1a6cdbbad3d3f933 100644 (file)
@@ -36,12 +36,19 @@ namespace System.IO.MemoryMappedFiles
        public sealed class MemoryMappedViewStream : UnmanagedMemoryStream {
                IntPtr mmap_handle;
                object monitor;
-               
+               long pointerOffset;
+
                internal MemoryMappedViewStream (IntPtr handle, long offset, long size, MemoryMappedFileAccess access) {
+                       pointerOffset = offset;
                        monitor = new Object ();
                        CreateStream (handle, offset, size, access);
                }
 
+               public long PointerOffset
+               {
+                       get { return pointerOffset; }
+               }
+
                public SafeMemoryMappedViewHandle SafeMemoryMappedViewHandle { 
                        get {
                                throw new NotImplementedException ();
index f64d0c54477b7dd9e8281190050979a0aeb5bdb4..c07666a29c6d97de26b9037c2e5d60e95c43f584 100644 (file)
@@ -214,6 +214,39 @@ namespace MonoTests.System.IO.MemoryMappedFiles {
                        }
                }
 
+               [Test]
+               public unsafe void ViewAccessorReadArrayWithOffset () {
+                       var file = MemoryMappedFile.CreateFromFile (fname, FileMode.Open);
+                       var offset = 3;
+                       var expected = "lo!";
+
+                       using (var v = file.CreateViewAccessor (offset, expected.Length)) {
+                               Assert.AreEqual (offset, v.PointerOffset);
+
+                               var a = new byte [expected.Length];
+                               var n = v.ReadArray (0, a, 0, expected.Length);
+                               Assert.AreEqual (expected.Length, n);
+                               var s = new string (Array.ConvertAll (a, b => (char)b));
+                               Assert.AreEqual (expected, s);
+                       }
+               }
+
+               [Test]
+               public unsafe void ViewStreamReadWithOffset () {
+                       var file = MemoryMappedFile.CreateFromFile (fname, FileMode.Open);
+                       var offset = 3;
+                       var expected = "lo!";
+
+                       using (var v = file.CreateViewStream (offset, expected.Length)) {
+                               Assert.AreEqual (offset, v.PointerOffset);
+
+                               var a = new byte [expected.Length];
+                               var n = v.Read (a, 0, expected.Length);
+                               Assert.AreEqual (expected.Length, n);
+                               var s = new string (Array.ConvertAll (a, b => (char)b));
+                               Assert.AreEqual (expected, s);
+                       }
+               }
 
                [Test]
                public void NamedMappingToInvalidFile ()
index c48be03285eddd35523440230c2910a3edcc2b78..2f317757ba676fdd5d58c741a75d095e1bffd386 100644 (file)
   </PropertyGroup>\r
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />\r
   <ItemGroup>\r
+    <Compile Include="..\..\..\external\referencesource\System.Data.DataSetExtensions\System\Data\DataRowComparer.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data.DataSetExtensions\System\Data\DataRowExtensions.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data.DataSetExtensions\System\Data\DataSetUtil.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data.DataSetExtensions\System\Data\DataTableExtensions.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data.DataSetExtensions\System\Data\EnumerableRowCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data.DataSetExtensions\System\Data\EnumerableRowCollectionExtensions.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data.DataSetExtensions\System\Data\LinqDataView.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data.DataSetExtensions\System\Data\OrderedEnumerableRowCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data.DataSetExtensions\System\Data\SortExpressionBuilder.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data.DataSetExtensions\System\Data\TypedTableBase.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data.DataSetExtensions\System\Data\TypedTableBaseExtensions.cs" />\r
     <Compile Include="..\..\build\common\Consts.cs" />\r
-    <Compile Include="..\..\build\common\Locale.cs" />\r
-    <Compile Include="..\..\build\common\MonoTODOAttribute.cs" />\r
     <Compile Include="Assembly\AssemblyInfo.cs" />\r
-    <Compile Include="System.Data\DataRowComparer.cs" />\r
-    <Compile Include="System.Data\DataRowComparer_1.cs" />\r
-    <Compile Include="System.Data\DataRowExtensions.cs" />\r
-    <Compile Include="System.Data\DataTableExtensions.cs" />\r
-    <Compile Include="System.Data\EnumerableRowCollection.cs" />\r
-    <Compile Include="System.Data\EnumerableRowCollection_1.cs" />\r
-    <Compile Include="System.Data\EnumerableRowCollectionExtensions.cs" />\r
-    <Compile Include="System.Data\OrderedEnumerableRowCollection.cs" />\r
-    <Compile Include="System.Data\RowEnumerableDataReader.cs" />\r
-    <Compile Include="System.Data\TypedTableBase.cs" />\r
-    <Compile Include="System.Data\TypedTableBaseExtensions.cs" />\r  </ItemGroup>\r
+    <Compile Include="ReferenceSources\Strings.cs" />\r  </ItemGroup>\r
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. \r
        Other similar extension points exist, see Microsoft.Common.targets.\r
   <Target Name="BeforeBuild">\r
       <Project>{33BF0182-AC5C-464C-995B-C9CFE74E1A95}</Project>\r
       <Name>corlib-net_4_5</Name>\r
     </ProjectReference>\r
-    <ProjectReference Include="../System.Data/System.Data-net_4_5.csproj">\r
-      <Project>{9A33954F-57A8-4D75-B1D8-0F81808A0DD4}</Project>\r
-      <Name>System.Data-net_4_5</Name>\r
-    </ProjectReference>\r
-    <ProjectReference Include="../System.XML/System.Xml-net_4_5.csproj">\r
-      <Project>{2951DEC2-4393-4A78-83F9-42EB39CB708F}</Project>\r
-      <Name>System.Xml-net_4_5</Name>\r
-    </ProjectReference>\r
-    <ProjectReference Include="../System.Web/System.Web-net_4_5.csproj">\r
-      <Project>{B489C3DE-3ED3-4EDC-B42B-82B38E101857}</Project>\r
-      <Name>System.Web-net_4_5</Name>\r
-    </ProjectReference>\r
     <ProjectReference Include="../System.Core/System.Core-net_4_5.csproj">\r
       <Project>{D92530F4-3F2B-4351-BD21-9D6BEE6D2A4E}</Project>\r
       <Name>System.Core-net_4_5</Name>\r
       <Project>{2951DEC2-4393-4A78-83F9-42EB39CB708F}</Project>\r
       <Name>System.Xml-net_4_5</Name>\r
     </ProjectReference>\r
-    <ProjectReference Include="../System.Web/System.Web-net_4_5.csproj">\r
-      <Project>{B489C3DE-3ED3-4EDC-B42B-82B38E101857}</Project>\r
-      <Name>System.Web-net_4_5</Name>\r
-    </ProjectReference>\r
   </ItemGroup>\r
   <ItemGroup>\r
     <Folder Include="Properties\" />\r
index 9dd5a1f679405ae2f5b4fac22920f9a5789ab453..24eb6c3a9fca2b0758fa2805e275ad556b601097 100644 (file)
@@ -7,7 +7,7 @@
     <SchemaVersion>2.0</SchemaVersion>\r
     <ProjectGuid>{9A33954F-57A8-4D75-B1D8-0F81808A0DD4}</ProjectGuid>\r
     <OutputType>Library</OutputType>\r
-    <NoWarn>1699,649</NoWarn>\r
+    <NoWarn>1699,169,219,414,649</NoWarn>\r
     <OutputPath>./../../class/lib/net_4_5</OutputPath>\r
     <NoStdLib>True</NoStdLib>\r
     <NoConfig>True</NoConfig>\r
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">\r
     <DebugSymbols>true</DebugSymbols>\r
     <DebugType>full</DebugType>\r
-    <NoWarn>1699,649</NoWarn>\r
+    <NoWarn>1699,169,219,414,649</NoWarn>\r
     <Optimize>false</Optimize>\r
-    <DefineConstants>DEBUG;TRACE;NET_4_0;NET_4_5;MONO;DISABLE_CAS_USE</DefineConstants>\r
+    <DefineConstants>DEBUG;TRACE;NET_4_0;NET_4_5;MONO;DISABLE_CAS_USE;PLATFORM_UNIX;USEOFFSET;MONO_PARTIAL_DATA_IMPORT</DefineConstants>\r
     <ErrorReport>prompt</ErrorReport>\r
     <WarningLevel>4</WarningLevel>\r
   </PropertyGroup>\r
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">\r
     <DebugType>pdbonly</DebugType>\r
-    <NoWarn>1699,649</NoWarn>\r
+    <NoWarn>1699,169,219,414,649</NoWarn>\r
     <Optimize>true</Optimize>\r
-    <DefineConstants>NET_4_0;NET_4_5;MONO;DISABLE_CAS_USE</DefineConstants>\r
+    <DefineConstants>NET_4_0;NET_4_5;MONO;DISABLE_CAS_USE;PLATFORM_UNIX;USEOFFSET;MONO_PARTIAL_DATA_IMPORT</DefineConstants>\r
     <ErrorReport>prompt</ErrorReport>\r
     <WarningLevel>4</WarningLevel>\r
   </PropertyGroup>\r
   </PropertyGroup>\r
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />\r
   <ItemGroup>\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\bid\inc\cs\bidPrivateBase.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\Microsoft\SqlServer\Server\SqlTriggerContext.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\Misc\ExternDll.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Data\Misc\HResults.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\Misc\PrivilegedConfigurationManager.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\AcceptRejectRule.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\AggregateType.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\BaseCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\CatalogLocation.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\CodeGen\datacache.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\CodeGen\StrongTypingException.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\ColumnTypeConverter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\CommandBehavior.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\CommandType.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\ActivityCorrelator.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\AdapterSwitches.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\AdapterUtil.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\BigIntegerStorage.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\BooleanStorage.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\ByteStorage.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\CharStorage.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\DataAdapter.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\DataColumnMapping.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\DataColumnMappingCollection.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\DataRecordInternal.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\DataStorage.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\DataTableMapping.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\DataTableMappingCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\DateTimeOffsetStorage.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\DateTimeStorage.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\DBCommand.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\DBCommandBuilder.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\DBConnection.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\DbConnectionOptions.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\DbConnectionPoolKey.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\DBConnectionString.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\DbConnectionStringBuilder.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\DbConnectionStringCommon.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\DbDataAdapter.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\DBDataPermission.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\DBDataPermissionAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\DbDataReader.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\dbdatarecord.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\DbDataSourceEnumerator.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\dbenumerator.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\DbException.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\DBParameter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\DbParameterCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\DbProviderConfigurationHandler.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\DbProviderFactories.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\DbProviderFactoriesConfigurationHandler.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\DbProviderFactory.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\DbProviderSpecificTypePropertyAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\DBSchemaRow.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\DBSchemaTable.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\DbTransaction.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\DecimalStorage.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\DoubleStorage.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\FieldNameLookup.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\GreenMethods.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\Groupbybehavior.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\HandlerBase.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\identifiercase.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\Int16Storage.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\Int32Storage.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\Int64Storage.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\MultipartIdentifier.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\NameValuePair.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\NameValuePermission.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\NativeMethods.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\ObjectStorage.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\RowUpdatedEventArgs.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\RowUpdatingEventArgs.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\SafeNativeMethods.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\SByteStorage.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\SchemaTableColumn.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\SchemaTableOptionalColumn.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\SingleStorage.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\SQLConvert.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\SQLTypes\SQLBinaryStorage.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\SQLTypes\SQlBooleanStorage.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\SQLTypes\SQLBytesStorage.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\SQLTypes\SQLByteStorage.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\SQLTypes\SQLCharsStorage.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\SQLTypes\SQLDateTimeStorage.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\SQLTypes\SQLDecimalStorage.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\SQLTypes\SQLDoubleStorage.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\SQLTypes\SQLGuidStorage.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\SQLTypes\SQLInt16Storage.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\SQLTypes\SQLInt32Storage.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\SQLTypes\SQLInt64Storage.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\SQLTypes\SQLMoneyStorage.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\SQLTypes\SQLSingleStorage.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\SQLTypes\SQLStringStorage.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\SQLTypes\SqlUDTStorage.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\SQLTypes\SqlXmlStorage.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\StringStorage.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\SupportedJoinOperators.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\System.Data_BID.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\TimeSpanStorage.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\UInt16Storage.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\UInt32Storage.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\UInt64Storage.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Common\UnsafeNativeMethods.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\ConflictOptions.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\ConnectionState.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Constraint.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\ConstraintCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\ConstraintConverter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\ConstraintEnumerator.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\DataColumn.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\DataColumnChangeEvent.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\DataColumnChangeEventHandler.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\DataColumnCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\DataColumnPropertyDescriptor.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\DataError.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\DataException.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\DataKey.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\DataRelation.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\DataRelationCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\DataRelationPropertyDescriptor.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\DataRow.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\DataRowAction.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\DataRowChangeEvent.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\DataRowChangeEventHandler.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\DataRowCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\DataRowCreatedEventHandler.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\DataRowState.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\DataRowVersion.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\DataRowView.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\DataSerializationFormat.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\DataSet.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\DataSetDateTime.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\DataSysAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\DataTable.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\DataTableClearEvent.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\DataTableClearEventHandler.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\DataTableCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\DataTableNewRowEvent.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\DataTableNewRowEventHandler.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\DataTablePropertyDescriptor.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\DataTableReader.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\DataTableReaderListener.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\DataTableTypeConverter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\DataView.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\DataViewListener.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\DataViewManager.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\DataViewManagerListItemTypeDescriptor.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\DataViewRowState.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\DataViewSetting.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\DataViewSettingCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\DBConcurrencyException.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\dbtype.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\DefaultValueTypeConverter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\FillErrorEventArgs.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\FillErrorEventHandler.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Filter\AggregateNode.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Filter\BinaryNode.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Filter\ConstNode.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Filter\DataExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Filter\ExpressionNode.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Filter\ExpressionParser.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Filter\FilterException.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Filter\FunctionNode.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Filter\IFilter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Filter\LookupNode.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Filter\NameNode.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Filter\Operators.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Filter\UnaryNode.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Filter\ZeroOpNode.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\ForeignKeyConstraint.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\IColumnMapping.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\IColumnMappingCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\IDataAdapter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\IDataParameter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\IDataParameterCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\IDataReader.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\IDataRecord.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\IDbCommand.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\IDbConnection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\IDbDataAdapter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\IDbDataParameter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\IDbTransaction.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\IsolationLevel.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\ITableMapping.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\ITableMappingCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\LoadOption.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\MappingType.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\MergeFailedEvent.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\MergeFailedEventHandler.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Merger.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\MissingMappingAction.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\MissingSchemaAction.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Odbc\DbDataRecord.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Odbc\Odbc32.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Odbc\OdbcCommand.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Odbc\OdbcCommandBuilder.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Odbc\OdbcConnection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Odbc\OdbcConnectionFactory.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Odbc\OdbcConnectionHandle.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Odbc\OdbcConnectionOpen.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Odbc\OdbcConnectionPoolProviderInfo.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Odbc\OdbcConnectionString.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Odbc\OdbcConnectionStringbuilder.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Odbc\OdbcDataAdapter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Odbc\OdbcDataReader.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Odbc\OdbcEnvironment.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Odbc\OdbcEnvironmentHandle.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Odbc\OdbcError.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Odbc\OdbcErrorCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Odbc\OdbcException.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Odbc\OdbcFactory.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Odbc\OdbcHandle.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Odbc\OdbcInfoMessageEvent.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Odbc\odbcmetadatacollectionnames.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Odbc\odbcmetadatacolumnnames.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Odbc\odbcmetadatafactory.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Odbc\OdbcParameter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Odbc\OdbcParameterCollection.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Odbc\OdbcPermission.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Odbc\OdbcReferenceCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Odbc\OdbcRowUpdatingEvent.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Odbc\OdbcStatementHandle.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Odbc\OdbcTransaction.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Odbc\OdbcType.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Odbc\OdbcUtils.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OleDb\ColumnBinding.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OleDb\DBBindings.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OleDb\DBPropSet.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OleDb\OLEDB_Enum.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OleDb\OLEDB_Util.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OleDb\OleDbCommand.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OleDb\OleDbCommandBuilder.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OleDb\OleDbConnection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OleDb\OleDbConnectionFactory.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OleDb\OleDbConnectionInternal.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OleDb\OleDbConnectionPoolGroupProviderInfo.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OleDb\oledbconnectionstring.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OleDb\OledbConnectionStringbuilder.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OleDb\OleDbDataAdapter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OleDb\OleDbDataReader.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OleDb\OleDbEnumerator.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OleDb\OleDbError.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OleDb\OleDbErrorCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OleDb\OleDbException.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OleDb\OleDbFactory.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OleDb\OleDbHResult.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OleDb\OleDbInfoMessageEvent.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OleDb\OleDbInfoMessageEventHandler.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OleDb\OleDbLiteral.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OleDb\oledbmetadatacollectionnames.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OleDb\oledbmetadatacolumnnames.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OleDb\OleDbMetaDataFactory.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OleDb\OleDbParameter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OleDb\OleDbParameterCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OleDb\OleDbPermission.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OleDb\OleDbPropertySetGuid.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OleDb\OleDbPropertyStatus.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OleDb\OleDbReferenceCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OleDb\OleDbRowUpdatedEvent.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OleDb\OleDbRowUpdatedEventHandler.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OleDb\OleDbRowUpdatingEvent.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OleDb\OleDbRowUpdatingEventHandler.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OleDb\OleDbSchemaGuid.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OleDb\OleDbStruct.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OleDb\OleDbTransaction.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OleDb\OleDbType.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OleDb\OleDbWrapper.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OleDb\PropertyAttributes.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OleDb\PropertyIDSet.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OleDb\PropertyInfoSet.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OleDb\RowBinding.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OleDb\SafeHandles.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\OperationAbortedException.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\ParameterDirection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\PrimaryKeyTypeConverter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\PropertyCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\ProviderBase\DataReaderContainer.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\ProviderBase\DbBuffer.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\ProviderBase\DbConnectionClosed.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\ProviderBase\DbConnectionFactory.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\ProviderBase\DbConnectionInternal.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\ProviderBase\DbConnectionPool.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\ProviderBase\DbConnectionPoolCounters.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\ProviderBase\DbConnectionPoolGroup.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\ProviderBase\DbConnectionPoolGroupProviderInfo.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\ProviderBase\DbConnectionPoolIdentity.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\ProviderBase\DbConnectionPoolOptions.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\ProviderBase\DbConnectionPoolProviderInfo.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\ProviderBase\DbMetaDataCollectionNames.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\ProviderBase\DbMetaDataColumnNames.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\ProviderBase\DbMetaDataFactory.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\ProviderBase\DbReferenceCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\ProviderBase\SchemaMapping.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\ProviderBase\TimeoutTimer.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\ProviderBase\WrappedIUnknown.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Range.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\RbTree.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\RecordManager.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\RecordsAffectedEventArgs.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\RecordsAffectedEventHandler.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\RelatedView.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\RelationshipConverter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Rule.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\SchemaSerializationMode.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\SchemaType.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Select.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Selection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\SimpleType.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Sql\IBinarySerialize.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Sql\invalidudtexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Sql\SqlDataSourceEnumerator.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Sql\SqlFacetAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Sql\SqlFunctionAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Sql\SqlGenericUtil.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Sql\SqlMethodAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Sql\SqlNotificationRequest.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Sql\SqlProcedureAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Sql\SqlTriggerAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Sql\SqlUserDefinedAggregateAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Sql\SqlUserDefinedTypeAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\Sql\TriggerAction.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\SqlClient\ApplicationIntent.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\SqlClient\LocalDBAPI.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\SqlClient\SqlClientPermission.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\SqlClient\SqlConnectionString.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\SqlClient\SqlConnectionStringBuilder.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\SqlClient\SqlError.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\SqlClient\SqlErrorCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\SqlClient\SqlInfoMessageEvent.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\SqlClient\SqlUtil.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\SqlClient\TdsEnums.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\SqlClient\TdsParserStaticMethods.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\SqlDbType.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\SQLTypes\INullable.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\SQLTypes\SQLBinary.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\SQLTypes\SQLBoolean.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\SQLTypes\SQLResource.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\SQLTypes\SQLSingle.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\SQLTypes\SQLString.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\SQLTypes\SqlTypesSchemaImporter.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\SQLTypes\SQLUtility.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\SQLTypes\SqlXml.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\StateChangeEvent.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\StateChangeEventHandler.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\StatementType.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\UniqueConstraint.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\UpdateRowSource.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\updatestatus.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\XDRSchema.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\XmlContent.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\XmlDataLoader.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\XMLDiffLoader.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\XmlKeywords.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\XmlReadMode.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\xmlsaver.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\XMLSchema.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\XmlToDatasetMap.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\Data\XmlWriteMode.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\NewXml\BaseTreeIterator.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\NewXml\DataDocumentXPathNavigator.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\NewXml\DataPointer.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\NewXml\DataSetMappper.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\NewXml\IXmlDataVirtualNode.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\NewXml\RegionIterator.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\NewXml\TreeIterator.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\NewXml\XmlBoundElement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\NewXml\XmlDataDocument.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\NewXml\XmlDataImplementation.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Data\System\NewXml\XPathNodePointer.cs" />\r
     <Compile Include="..\..\build\common\Consts.cs.in" />\r
     <Compile Include="..\..\build\common\Locale.cs" />\r
     <Compile Include="..\..\build\common\MonoTODOAttribute.cs" />\r
     <Compile Include="..\..\build\common\SR.cs" />\r
     <Compile Include="Assembly\AssemblyInfo.cs" />\r
-    <Compile Include="Microsoft.SqlServer.Server\DataAccessKind.cs" />\r
-    <Compile Include="Microsoft.SqlServer.Server\Format.cs" />\r
-    <Compile Include="Microsoft.SqlServer.Server\IBinarySerialize.cs" />\r
-    <Compile Include="Microsoft.SqlServer.Server\InvalidUdtException.cs" />\r
-    <Compile Include="Microsoft.SqlServer.Server\SqlFacetAttribute.cs" />\r
-    <Compile Include="Microsoft.SqlServer.Server\SqlFunctionAttribute.cs" />\r
     <Compile Include="Microsoft.SqlServer.Server\SqlMetaData.cs" />\r
-    <Compile Include="Microsoft.SqlServer.Server\SqlMethodAttribute.cs" />\r
-    <Compile Include="Microsoft.SqlServer.Server\SqlProcedureAttribute.cs" />\r
-    <Compile Include="Microsoft.SqlServer.Server\SqlTriggerAttribute.cs" />\r
-    <Compile Include="Microsoft.SqlServer.Server\SqlTriggerContext.cs" />\r
-    <Compile Include="Microsoft.SqlServer.Server\SqlUserDefinedAggregateAttribute.cs" />\r
-    <Compile Include="Microsoft.SqlServer.Server\SqlUserDefinedTypeAttribute.cs" />\r
-    <Compile Include="Microsoft.SqlServer.Server\SystemDataAccessKind.cs" />\r
-    <Compile Include="Microsoft.SqlServer.Server\TriggerAction.cs" />\r
-    <Compile Include="Mono.Data.SqlExpressions\Aggregation.cs" />\r
-    <Compile Include="Mono.Data.SqlExpressions\ArithmeticExpressions.cs" />\r
-    <Compile Include="Mono.Data.SqlExpressions\BooleanExpressions.cs" />\r
-    <Compile Include="Mono.Data.SqlExpressions\ColumnReference.cs" />\r
-    <Compile Include="Mono.Data.SqlExpressions\Comparison.cs" />\r
-    <Compile Include="Mono.Data.SqlExpressions\Expressions.cs" />\r
-    <Compile Include="Mono.Data.SqlExpressions\Functions.cs" />\r
-    <Compile Include="Mono.Data.SqlExpressions\In.cs" />\r
-    <Compile Include="Mono.Data.SqlExpressions\Like.cs" />\r
-    <Compile Include="Mono.Data.SqlExpressions\Literal.cs" />\r
-    <Compile Include="Mono.Data.SqlExpressions\Numeric.cs" />\r
-    <Compile Include="Mono.Data.SqlExpressions\StringFunctions.cs" />\r
-    <Compile Include="Mono.Data.SqlExpressions\Tokenizer.cs" />\r
-    <Compile Include="ReferenceSources\Bid.cs" />\r
-    <Compile Include="ReferenceSources\BidArgumentTypeAttribute.cs" />\r
-    <Compile Include="ReferenceSources\BidMethodAttribute.cs" />\r
-    <Compile Include="ReferenceSources\DataStorage.cs" />\r
-    <Compile Include="ReferenceSources\InOutOfProcHelper.cs" />\r
-    <Compile Include="ReferenceSources\ODB.cs" />\r
-    <Compile Include="ReferenceSources\OdbcHandle.cs" />\r
+    <Compile Include="ReferenceSources\NativeOledbWrapper.cs" />\r
     <Compile Include="ReferenceSources\Res.cs" />\r
     <Compile Include="ReferenceSources\ResCategoryAttribute.cs" />\r
-    <Compile Include="ReferenceSources\SafeNativeMethods.cs" />\r
+    <Compile Include="ReferenceSources\ResDescriptionAttribute.cs" />\r
+    <Compile Include="ReferenceSources\SqlInternalConnectionTds.cs" />\r
     <Compile Include="ReferenceSources\ThisAssembly.cs" />\r
-    <Compile Include="System.Data.Common\CatalogLocation.cs" />\r
-    <Compile Include="System.Data.Common\ComparerFactory.cs" />\r
-    <Compile Include="System.Data.Common\DataAdapter.cs" />\r
-    <Compile Include="System.Data.Common\DataContainer.cs" />\r
-    <Compile Include="System.Data.Common\DbCommand.cs" />\r
-    <Compile Include="System.Data.Common\DbCommandBuilder.cs" />\r
-    <Compile Include="System.Data.Common\DbConnection.cs" />\r
+    <Compile Include="ReferenceSources\Win32NativeMethods.cs" />\r
     <Compile Include="System.Data.Common\DbConnectionStringBuilderHelper.cs" />\r
-    <Compile Include="System.Data.Common\DbDataAdapter.cs" />\r
-    <Compile Include="System.Data.Common\DbDataReader.cs" />\r
-    <Compile Include="System.Data.Common\DbDataSourceEnumerator.cs" />\r
-    <Compile Include="System.Data.Common\DbException.cs" />\r
-    <Compile Include="System.Data.Common\DbMetaDataCollectionNames.cs" />\r
-    <Compile Include="System.Data.Common\DbMetaDataColumnNames.cs" />\r
-    <Compile Include="System.Data.Common\DbParameter.cs" />\r
-    <Compile Include="System.Data.Common\DbParameterCollection.cs" />\r
-    <Compile Include="System.Data.Common\DbProviderConfigurationHandler.cs" />\r
-    <Compile Include="System.Data.Common\DbProviderFactories.cs" />\r
-    <Compile Include="System.Data.Common\DbProviderFactoriesConfigurationHandler.cs" />\r
-    <Compile Include="System.Data.Common\DbProviderFactory.cs" />\r
-    <Compile Include="System.Data.Common\DbProviderSpecificTypePropertyAttribute.cs" />\r
-    <Compile Include="System.Data.Common\DbTable.cs" />\r
-    <Compile Include="System.Data.Common\DbTransaction.cs" />\r
     <Compile Include="System.Data.Common\DbTypes.cs" />\r
     <Compile Include="System.Data.Common\ExceptionHelper.cs" />\r
-    <Compile Include="System.Data.Common\GroupByBehavior.cs" />\r
-    <Compile Include="System.Data.Common\IdentifierCase.cs" />\r
-    <Compile Include="System.Data.Common\Index.cs" />\r
-    <Compile Include="System.Data.Common\Key.cs" />\r
-    <Compile Include="System.Data.Common\PermissionHelper.cs" />\r
-    <Compile Include="System.Data.Common\RecordCache.cs" />\r
-    <Compile Include="System.Data.Common\RowUpdatedEventArgs.cs" />\r
-    <Compile Include="System.Data.Common\RowUpdatingEventArgs.cs" />\r
-    <Compile Include="System.Data.Common\SchemaTableColumn.cs" />\r
-    <Compile Include="System.Data.Common\SchemaTableOptionalColumn.cs" />\r
-    <Compile Include="System.Data.Common\SupportedJoinOperators.cs" />\r
-    <Compile Include="System.Data.Common\TaskHelper.cs" />\r
-    <Compile Include="System.Data.Odbc\libodbc.cs" />\r
-    <Compile Include="System.Data.Odbc\NativeBuffer.cs" />\r
-    <Compile Include="System.Data.Odbc\OdbcCategoryAttribute.cs" />\r
-    <Compile Include="System.Data.Odbc\OdbcColumn.cs" />\r
-    <Compile Include="System.Data.Odbc\OdbcCommand.cs" />\r
-    <Compile Include="System.Data.Odbc\OdbcCommandBuilder.cs" />\r
-    <Compile Include="System.Data.Odbc\OdbcConnection.cs" />\r
-    <Compile Include="System.Data.Odbc\OdbcDataAdapter.cs" />\r
-    <Compile Include="System.Data.Odbc\OdbcDataReader.cs" />\r
-    <Compile Include="System.Data.Odbc\OdbcDescriptionAttribute.cs" />\r
-    <Compile Include="System.Data.Odbc\OdbcErrorCollection.cs" />\r
-    <Compile Include="System.Data.Odbc\OdbcException.cs" />\r
-    <Compile Include="System.Data.Odbc\OdbcFactory.cs" />\r
-    <Compile Include="System.Data.Odbc\OdbcInfoMessageEventArgs.cs" />\r
-    <Compile Include="System.Data.Odbc\OdbcInfoMessageEventHandler.cs" />\r
-    <Compile Include="System.Data.Odbc\OdbcMetaDataCollectionNames.cs" />\r
-    <Compile Include="System.Data.Odbc\OdbcMetaDataColumnNames.cs" />\r
-    <Compile Include="System.Data.Odbc\OdbcParameter.cs" />\r
-    <Compile Include="System.Data.Odbc\OdbcParameterCollection.cs" />\r
-    <Compile Include="System.Data.Odbc\OdbcParameterConverter.cs" />\r
-    <Compile Include="System.Data.Odbc\OdbcRowUpdatedEventArgs.cs" />\r
-    <Compile Include="System.Data.Odbc\OdbcRowUpdatedEventHandler.cs" />\r
-    <Compile Include="System.Data.Odbc\OdbcRowUpdatingEventArgs.cs" />\r
-    <Compile Include="System.Data.Odbc\OdbcRowUpdatingEventHandler.cs" />\r
-    <Compile Include="System.Data.Odbc\OdbcTransaction.cs" />\r
-    <Compile Include="System.Data.Odbc\OdbcType.cs" />\r
-    <Compile Include="System.Data.Odbc\OdbcTypeConverter.cs" />\r
-    <Compile Include="System.Data.Odbc\OdbcTypeMap.cs" />\r
-    <Compile Include="System.Data.OleDb\libgda.cs" />\r
-    <Compile Include="System.Data.OleDb\OleDbCommand.cs" />\r
-    <Compile Include="System.Data.OleDb\OleDbCommandBuilder.cs" />\r
-    <Compile Include="System.Data.OleDb\OleDbConnection.cs" />\r
-    <Compile Include="System.Data.OleDb\OleDbDataAdapter.cs" />\r
-    <Compile Include="System.Data.OleDb\OleDbDataReader.cs" />\r
-    <Compile Include="System.Data.OleDb\OleDbError.cs" />\r
-    <Compile Include="System.Data.OleDb\OleDbErrorCollection.cs" />\r
-    <Compile Include="System.Data.OleDb\OleDbException.cs" />\r
-    <Compile Include="System.Data.OleDb\OleDbFactory.cs" />\r
-    <Compile Include="System.Data.OleDb\OleDbInfoMessageEventArgs.cs" />\r
-    <Compile Include="System.Data.OleDb\OleDbInfoMessageEventHandler.cs" />\r
-    <Compile Include="System.Data.OleDb\OleDbLiteral.cs" />\r
-    <Compile Include="System.Data.OleDb\OleDbMetaDataCollectionNames.cs" />\r
-    <Compile Include="System.Data.OleDb\OleDbParameter.cs" />\r
-    <Compile Include="System.Data.OleDb\OleDbParameterCollection.cs" />\r
-    <Compile Include="System.Data.OleDb\OleDbParameterConverter.cs" />\r
-    <Compile Include="System.Data.OleDb\OleDbPermission.cs" />\r
-    <Compile Include="System.Data.OleDb\OleDbPermissionAttribute.cs" />\r
-    <Compile Include="System.Data.OleDb\OleDbRowUpdatedEventArgs.cs" />\r
-    <Compile Include="System.Data.OleDb\OleDbRowUpdatedEventHandler.cs" />\r
-    <Compile Include="System.Data.OleDb\OleDbRowUpdatingEventArgs.cs" />\r
-    <Compile Include="System.Data.OleDb\OleDbRowUpdatingEventHandler.cs" />\r
-    <Compile Include="System.Data.OleDb\OleDbSchemaGuid.cs" />\r
-    <Compile Include="System.Data.OleDb\OleDbTransaction.cs" />\r
-    <Compile Include="System.Data.OleDb\OleDbType.cs" />\r
-    <Compile Include="System.Data.Sql\SqlDataSourceEnumerator.cs" />\r
-    <Compile Include="System.Data.Sql\SqlNotificationRequest.cs" />\r
     <Compile Include="System.Data.SqlClient\NetworkLibraryConverter.cs" />\r
     <Compile Include="System.Data.SqlClient\OnChangeEventHandler.cs" />\r
     <Compile Include="System.Data.SqlClient\SortOrder.cs" />\r
     <Compile Include="System.Data.SqlClient\SqlBulkCopyOptions.cs" />\r
     <Compile Include="System.Data.SqlClient\SqlClientFactory.cs" />\r
     <Compile Include="System.Data.SqlClient\SqlClientMetaDataCollectionNames.cs" />\r
-    <Compile Include="System.Data.SqlClient\SqlClientPermission.cs" />\r
-    <Compile Include="System.Data.SqlClient\SqlClientPermissionAttribute.cs" />\r
     <Compile Include="System.Data.SqlClient\SqlCommand.cs" />\r
     <Compile Include="System.Data.SqlClient\SqlCommandBuilder.cs" />\r
     <Compile Include="System.Data.SqlClient\SqlConnection.cs" />\r
-    <Compile Include="System.Data.SqlClient\SqlConnectionStringBuilder.cs" />\r
     <Compile Include="System.Data.SqlClient\SqlCredential.cs" />\r
     <Compile Include="System.Data.SqlClient\SqlDataAdapter.cs" />\r
     <Compile Include="System.Data.SqlClient\SqlDataReader.cs" />\r
     <Compile Include="System.Data.SqlClient\SQLDebugging.cs" />\r
     <Compile Include="System.Data.SqlClient\SqlDecimalExtensions.cs" />\r
     <Compile Include="System.Data.SqlClient\SqlDependency.cs" />\r
-    <Compile Include="System.Data.SqlClient\SqlError.cs" />\r
-    <Compile Include="System.Data.SqlClient\SqlErrorCollection.cs" />\r
     <Compile Include="System.Data.SqlClient\SqlException.cs" />\r
-    <Compile Include="System.Data.SqlClient\SqlInfoMessageEventArgs.cs" />\r
     <Compile Include="System.Data.SqlClient\SqlInfoMessageEventHandler.cs" />\r
     <Compile Include="System.Data.SqlClient\SqlInitialCatalogConverter.cs" />\r
     <Compile Include="System.Data.SqlClient\SqlNotificationEventArgs.cs" />\r
     <Compile Include="System.Data.SqlClient\SqlRowUpdatingEventHandler.cs" />\r
     <Compile Include="System.Data.SqlClient\SqlTransaction.cs" />\r
     <Compile Include="System.Data.SqlClient\SqlXmlTextReader.cs" />\r
-    <Compile Include="System.Data.SqlTypes\SqlXml.cs" />\r
-    <Compile Include="System.Data\AcceptRejectRule.cs" />\r
-    <Compile Include="System.Data\ColumnTypeConverter.cs" />\r
-    <Compile Include="System.Data\CommandBehavior.cs" />\r
-    <Compile Include="System.Data\CommandType.cs" />\r
-    <Compile Include="System.Data\ConflictOption.cs" />\r
-    <Compile Include="System.Data\ConnectionState.cs" />\r
-    <Compile Include="System.Data\Constraint.cs" />\r
-    <Compile Include="System.Data\ConstraintCollection.cs" />\r
-    <Compile Include="System.Data\ConstraintConverter.cs" />\r
-    <Compile Include="System.Data\ConstraintException.cs" />\r
-    <Compile Include="System.Data\CustomDataClassGenerator.cs" />\r
-    <Compile Include="System.Data\DataCategoryAttribute.cs" />\r
-    <Compile Include="System.Data\DataColumn.cs" />\r
-    <Compile Include="System.Data\DataColumnChangeEventArgs.cs" />\r
-    <Compile Include="System.Data\DataColumnChangeEventHandler.cs" />\r
-    <Compile Include="System.Data\DataColumnCollection.cs" />\r
-    <Compile Include="System.Data\DataColumnPropertyDescriptor.cs" />\r
-    <Compile Include="System.Data\DataException.cs" />\r
-    <Compile Include="System.Data\DataRelation.cs" />\r
-    <Compile Include="System.Data\DataRelationCollection.cs" />\r
-    <Compile Include="System.Data\DataRelationPropertyDescriptor.cs" />\r
-    <Compile Include="System.Data\DataRow.cs" />\r
-    <Compile Include="System.Data\DataRowAction.cs" />\r
-    <Compile Include="System.Data\DataRowBuilder.cs" />\r
-    <Compile Include="System.Data\DataRowChangeEventArgs.cs" />\r
-    <Compile Include="System.Data\DataRowChangeEventHandler.cs" />\r
-    <Compile Include="System.Data\DataRowCollection.cs" />\r
-    <Compile Include="System.Data\DataRowState.cs" />\r
-    <Compile Include="System.Data\DataRowVersion.cs" />\r
-    <Compile Include="System.Data\DataRowView.cs" />\r
-    <Compile Include="System.Data\DataSet.cs" />\r
-    <Compile Include="System.Data\DataSetDateTime.cs" />\r
-    <Compile Include="System.Data\DataSysDescriptionAttribute.cs" />\r
-    <Compile Include="System.Data\DataTable.cs" />\r
-    <Compile Include="System.Data\DataTableClearEventArgs.cs" />\r
-    <Compile Include="System.Data\DataTableClearEventHandler.cs" />\r
-    <Compile Include="System.Data\DataTableCollection.cs" />\r
-    <Compile Include="System.Data\DataTableNewRowEventArgs.cs" />\r
-    <Compile Include="System.Data\DataTableNewRowEventHandler.cs" />\r
-    <Compile Include="System.Data\DataTablePropertyDescriptor.cs" />\r
-    <Compile Include="System.Data\DataTableReader.cs" />\r
-    <Compile Include="System.Data\DataTableTypeConverter.cs" />\r
-    <Compile Include="System.Data\DataView.cs" />\r
-    <Compile Include="System.Data\DataViewManager.cs" />\r
-    <Compile Include="System.Data\DataViewManagerListItemTypeDescriptor.cs" />\r
-    <Compile Include="System.Data\DataViewRowState.cs" />\r
-    <Compile Include="System.Data\DataViewSetting.cs" />\r
-    <Compile Include="System.Data\DataViewSettingCollection.cs" />\r
-    <Compile Include="System.Data\DBConcurrencyException.cs" />\r
-    <Compile Include="System.Data\DbType.cs" />\r
-    <Compile Include="System.Data\DefaultValueTypeConverter.cs" />\r
-    <Compile Include="System.Data\DeletedRowInaccessibleException.cs" />\r
-    <Compile Include="System.Data\DuplicateNameException.cs" />\r
-    <Compile Include="System.Data\EvaluateException.cs" />\r
-    <Compile Include="System.Data\FillErrorEventArgs.cs" />\r
-    <Compile Include="System.Data\FillErrorEventHandler.cs" />\r
-    <Compile Include="System.Data\ForeignKeyConstraint.cs" />\r
-    <Compile Include="System.Data\IColumnMapping.cs" />\r
-    <Compile Include="System.Data\IColumnMappingCollection.cs" />\r
-    <Compile Include="System.Data\IDataAdapter.cs" />\r
-    <Compile Include="System.Data\IDataParameter.cs" />\r
-    <Compile Include="System.Data\IDataParameterCollection.cs" />\r
-    <Compile Include="System.Data\IDataReader.cs" />\r
-    <Compile Include="System.Data\IDataRecord.cs" />\r
-    <Compile Include="System.Data\IDbCommand.cs" />\r
-    <Compile Include="System.Data\IDbConnection.cs" />\r
-    <Compile Include="System.Data\IDbDataAdapter.cs" />\r
-    <Compile Include="System.Data\IDbDataParameter.cs" />\r
-    <Compile Include="System.Data\IDbTransaction.cs" />\r
-    <Compile Include="System.Data\InRowChangingEventException.cs" />\r
-    <Compile Include="System.Data\InternalDataCollectionBase.cs" />\r
-    <Compile Include="System.Data\InvalidConstraintException.cs" />\r
-    <Compile Include="System.Data\InvalidExpressionException.cs" />\r
-    <Compile Include="System.Data\ISafeDataRecord.cs" />\r
-    <Compile Include="System.Data\IsolationLevel.cs" />\r
-    <Compile Include="System.Data\ITableMapping.cs" />\r
-    <Compile Include="System.Data\ITableMappingCollection.cs" />\r
-    <Compile Include="System.Data\LoadOption.cs" />\r
-    <Compile Include="System.Data\MappingType.cs" />\r
-    <Compile Include="System.Data\MergeFailedEventArgs.cs" />\r
-    <Compile Include="System.Data\MergeFailedEventHandler.cs" />\r
-    <Compile Include="System.Data\MergeManager.cs" />\r
-    <Compile Include="System.Data\MissingMappingAction.cs" />\r
-    <Compile Include="System.Data\MissingPrimaryKeyException.cs" />\r
-    <Compile Include="System.Data\MissingSchemaAction.cs" />\r
-    <Compile Include="System.Data\Node.cs" />\r
-    <Compile Include="System.Data\NoNullAllowedException.cs" />\r
-    <Compile Include="System.Data\OperationAbortedException.cs" />\r
-    <Compile Include="System.Data\ParameterDirection.cs" />\r
-    <Compile Include="System.Data\PropertyAttributes.cs" />\r
-    <Compile Include="System.Data\PropertyCollection.cs" />\r
-    <Compile Include="System.Data\ReadOnlyException.cs" />\r
-    <Compile Include="System.Data\RelatedDataView.cs" />\r
-    <Compile Include="System.Data\RelationshipConverter.cs" />\r
-    <Compile Include="System.Data\ResDescriptionAttribute.cs" />\r
-    <Compile Include="System.Data\RowNotInTableException.cs" />\r
-    <Compile Include="System.Data\Rule.cs" />\r
-    <Compile Include="System.Data\SchemaSerializationMode.cs" />\r
-    <Compile Include="System.Data\SchemaType.cs" />\r
-    <Compile Include="System.Data\SerializationFormat.cs" />\r
-    <Compile Include="System.Data\SqlDbType.cs" />\r
-    <Compile Include="System.Data\StateChangeEventArgs.cs" />\r
-    <Compile Include="System.Data\StateChangeEventHandler.cs" />\r
-    <Compile Include="System.Data\StatementCompletedEventArgs.cs" />\r
-    <Compile Include="System.Data\StatementCompletedEventHandler.cs" />\r
-    <Compile Include="System.Data\StatementType.cs" />\r
-    <Compile Include="System.Data\StrongTypingException.cs" />\r
-    <Compile Include="System.Data\SyntaxErrorException.cs" />\r
-    <Compile Include="System.Data\TableAdapterSchemaInfo.cs" />\r
-    <Compile Include="System.Data\TypeDataSetGeneratorException.cs" />\r
-    <Compile Include="System.Data\TypedDataSetGenerator.cs" />\r
-    <Compile Include="System.Data\UniqueConstraint.cs" />\r
-    <Compile Include="System.Data\UpdateRowSource.cs" />\r
-    <Compile Include="System.Data\UpdateStatus.cs" />\r
-    <Compile Include="System.Data\VersionNotFoundException.cs" />\r
-    <Compile Include="System.Data\XmlConstants.cs" />\r
-    <Compile Include="System.Data\XmlDataInferenceLoader.cs" />\r
-    <Compile Include="System.Data\XmlDataLoader.cs" />\r
-    <Compile Include="System.Data\XmlDataReader.cs" />\r
-    <Compile Include="System.Data\XmlDiffLoader.cs" />\r
-    <Compile Include="System.Data\XmlHelper.cs" />\r
-    <Compile Include="System.Data\XmlReadMode.cs" />\r
-    <Compile Include="System.Data\XmlSchemaDataImporter.cs" />\r
-    <Compile Include="System.Data\XmlSchemaWriter.cs" />\r
-    <Compile Include="System.Data\XmlTableWriter.cs" />\r
-    <Compile Include="System.Data\XmlWriteMode.cs" />\r
-    <Compile Include="System.Xml\XmlDataDocument.cs" />\r
-    <Compile Include="Mono.Data.SqlExpressions\Parser.cs" />\r  </ItemGroup>\r
+    <Compile Include="gen_OdbcConnection.cs" />\r
+    <Compile Include="gen_OdbcParameter.cs" />\r
+    <Compile Include="gen_OdbcParameterCollection.cs" />\r
+    <Compile Include="gen_OleDbConnection.cs" />\r
+    <Compile Include="gen_OleDbParameter.cs" />\r
+    <Compile Include="gen_OleDbParameterCollection.cs" />\r  </ItemGroup>\r
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. \r
        Other similar extension points exist, see Microsoft.Common.targets.\r
   <Target Name="BeforeBuild">\r
       <Project>{D92530F4-3F2B-4351-BD21-9D6BEE6D2A4E}</Project>\r
       <Name>System.Core-net_4_5</Name>\r
     </ProjectReference>\r
+    <ProjectReference Include="../System.Numerics/System.Numerics-net_4_5.csproj">\r
+      <Project>{14631AC9-FDC6-4561-A04C-6913947C939E}</Project>\r
+      <Name>System.Numerics-net_4_5</Name>\r
+    </ProjectReference>\r
     <ProjectReference Include="../System.EnterpriseServices/System.EnterpriseServices-net_4_5.csproj">\r
       <Project>{773D8BA7-9A88-49AC-81C9-740436270588}</Project>\r
       <Name>System.EnterpriseServices-net_4_5</Name>\r
index 121f05e897f680e1b0a471b85c435c3f4921c813..c27e1583e5ad76f187266febc35f50beda68f2c7 100644 (file)
       <Project>{2951DEC2-4393-4A78-83F9-42EB39CB708F}</Project>\r
       <Name>System.Xml-net_4_5</Name>\r
     </ProjectReference>\r
-    <ProjectReference Include="../System.Web/System.Web-net_4_5.csproj">\r
-      <Project>{B489C3DE-3ED3-4EDC-B42B-82B38E101857}</Project>\r
-      <Name>System.Web-net_4_5</Name>\r
+    <ProjectReference Include="../System.Web/System.Web-plainweb-net_4_5.csproj">\r
+      <Project>{21892B00-1C9F-44F3-AE4C-A6A9A210CEC7}</Project>\r
+      <Name>System.Web-plainweb-net_4_5</Name>\r
     </ProjectReference>\r
     <ProjectReference Include="../System.Windows.Forms/System.Windows.Forms-net_4_5.csproj">\r
       <Project>{B102F27C-1A07-487F-BA5B-D5155D201112}</Project>\r
index 5f854fab2e5da2a584298c6da3f2814e46b3ac70..50c2f83271f8df98cb9d077aee786ff0b4d33ca4 100644 (file)
@@ -582,8 +582,10 @@ namespace MonoTests.System.Drawing{
             Font f1 = new Font("Arial", 8.25F, GraphicsUnit.Point);
             Font f2 = new Font("Courier New", 8.25F, GraphicsUnit.Point);
 
-            Assert.IsFalse(f1.GetHashCode() == f2.GetHashCode(),
-                "Hashcodes should differ if _name member differs");
+                       if (f1.Name != f2.Name) {
+                               Assert.IsFalse(f1.GetHashCode() == f2.GetHashCode(),
+                                                          "Hashcodes should differ if _name member differs");
+                       }
         }
 
         [Test]
index a1647a1256926599fde6202e29964fb8448c9774..feb5e1b705dec780327d9b62586094ac7bfc1faa 100644 (file)
@@ -106,8 +106,8 @@ namespace System.IO.Compression
                                zipFile = mode == ZipArchiveMode.Create ? 
                                        SharpCompress.Archive.Zip.ZipArchive.Create() :
                                        SharpCompress.Archive.Zip.ZipArchive.Open(stream);
-                       } catch (Exception) {
-                               throw new InvalidDataException("The contents of the stream are not in the zip archive format.");
+                       } catch (Exception e) {
+                               throw new InvalidDataException("The contents of the stream are not in the zip archive format.", e);
                        }
 
                        entries = new Dictionary<string, ZipArchiveEntry>();
index 216984339eea0f253b583cc3f3225c5c660cb69a..d18d38752755af4154287335c1dca572fa0d128b 100644 (file)
@@ -51,6 +51,7 @@
     <Compile Include="Test\System.Net.Http.Headers\EntityTagHeaderValueTest.cs" />\r
     <Compile Include="Test\System.Net.Http.Headers\HttpHeadersTest.cs" />\r
     <Compile Include="Test\System.Net.Http.Headers\HttpHeaderValueCollection.cs" />\r
+    <Compile Include="Test\System.Net.Http.Headers\HttpRequestHeadersTest.cs" />\r
     <Compile Include="Test\System.Net.Http.Headers\MediaTypeHeaderValueTest.cs" />\r
     <Compile Include="Test\System.Net.Http.Headers\MediaTypeWithQualityHeaderValueTest.cs" />\r
     <Compile Include="Test\System.Net.Http.Headers\NameValueHeaderValueTest.cs" />\r
index a114aa0ffe096bc8a6bc3bf230d292c74cc33d5c..8fdb011cd51fa6833db66e62c5f45ad0a32afd63 100644 (file)
@@ -109,7 +109,7 @@ namespace System.Net.Http.Headers
                                HeaderInfo.CreateMulti<NameValueWithParametersHeaderValue> ("Expect", NameValueWithParametersHeaderValue.TryParse, HttpHeaderKind.Request),
                                HeaderInfo.CreateSingle<DateTimeOffset> ("Expires", Parser.DateTime.TryParse, HttpHeaderKind.Content),
                                HeaderInfo.CreateSingle<string> ("From", Parser.EmailAddress.TryParse, HttpHeaderKind.Request),
-                               HeaderInfo.CreateSingle<Uri> ("Host", Parser.Uri.TryParse, HttpHeaderKind.Request),
+                               HeaderInfo.CreateSingle<string> ("Host", Parser.Host.TryParse, HttpHeaderKind.Request),
                                HeaderInfo.CreateMulti<EntityTagHeaderValue> ("If-Match", EntityTagHeaderValue.TryParse, HttpHeaderKind.Request),
                                HeaderInfo.CreateSingle<DateTimeOffset> ("If-Modified-Since", Parser.DateTime.TryParse, HttpHeaderKind.Request),
                                HeaderInfo.CreateMulti<EntityTagHeaderValue> ("If-None-Match", EntityTagHeaderValue.TryParse, HttpHeaderKind.Request),
index 45e6ebca6f294cc4f804abf1821cbad24bc6ac05..8489ae9bf724447a9fbb163afe9563ec281b64c2 100644 (file)
@@ -125,6 +125,17 @@ namespace System.Net.Http.Headers
                        }
                }
 
+               public static class Host
+               {
+                       public static bool TryParse (string input, out string result)
+                       {
+                               result = input;
+
+                               System.Uri dummy;
+                               return System.Uri.TryCreate ("http://u@" + input + "/", UriKind.Absolute, out dummy);
+                       }
+               }
+
                public static class Int
                {
                        public static bool TryParse (string input, out int result)
index 29d4d75f5e3dc304b1e9e760d302ddf9830c272e..9aa6dcb02e43db6d6ae467e091f454c8f6021df9 100644 (file)
@@ -17,6 +17,7 @@ System.Net.Http.Headers/ContentRangeHeaderValueTest.cs
 System.Net.Http.Headers/EntityTagHeaderValueTest.cs
 System.Net.Http.Headers/HttpHeadersTest.cs
 System.Net.Http.Headers/HttpHeaderValueCollection.cs
+System.Net.Http.Headers/HttpRequestHeadersTest.cs
 System.Net.Http.Headers/MediaTypeHeaderValueTest.cs
 System.Net.Http.Headers/MediaTypeWithQualityHeaderValueTest.cs
 System.Net.Http.Headers/NameValueHeaderValueTest.cs
diff --git a/mcs/class/System.Net.Http/Test/System.Net.Http.Headers/HttpRequestHeadersTest.cs b/mcs/class/System.Net.Http/Test/System.Net.Http.Headers/HttpRequestHeadersTest.cs
new file mode 100644 (file)
index 0000000..b86a401
--- /dev/null
@@ -0,0 +1,18 @@
+using NUnit.Framework;
+using System.Net.Http;
+
+namespace MonoTests.System.Net.Http.Headers
+{
+       [TestFixture]
+       public class HttpRequestHeadersTest
+       {
+               [Test]
+               public void AccessHostAfterAdding()
+               {
+                       var requestMessage = new HttpRequestMessage ();
+                       requestMessage.Headers.TryAddWithoutValidation ("Host", "MyHost:90");
+
+                       Assert.AreEqual ("MyHost:90", requestMessage.Headers.Host);
+               }
+       }
+}
index 2a75cfc712535d42269a131799967c6233bc1444..8746abfa6c8c0b42eecc8b4b5d67089303c37777 100644 (file)
@@ -7,7 +7,7 @@
     <SchemaVersion>2.0</SchemaVersion>\r
     <ProjectGuid>{CB3E9225-3DFF-4930-BFED-1E8AE5319C32}</ProjectGuid>\r
     <OutputType>Library</OutputType>\r
-    <NoWarn>1699</NoWarn>\r
+    <NoWarn>1699,414</NoWarn>\r
     <OutputPath>./../../class/lib/net_4_5</OutputPath>\r
     <NoStdLib>True</NoStdLib>\r
     <NoConfig>True</NoConfig>\r
@@ -23,7 +23,7 @@
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">\r
     <DebugSymbols>true</DebugSymbols>\r
     <DebugType>full</DebugType>\r
-    <NoWarn>1699</NoWarn>\r
+    <NoWarn>1699,414</NoWarn>\r
     <Optimize>false</Optimize>\r
     <DefineConstants>DEBUG;TRACE;NET_4_0;NET_4_5;MONO;DISABLE_CAS_USE</DefineConstants>\r
     <ErrorReport>prompt</ErrorReport>\r
@@ -31,7 +31,7 @@
   </PropertyGroup>\r
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">\r
     <DebugType>pdbonly</DebugType>\r
-    <NoWarn>1699</NoWarn>\r
+    <NoWarn>1699,414</NoWarn>\r
     <Optimize>true</Optimize>\r
     <DefineConstants>NET_4_0;NET_4_5;MONO;DISABLE_CAS_USE</DefineConstants>\r
     <ErrorReport>prompt</ErrorReport>\r
index 3d8c0fdd69dfa87e7dcf483e2b9507e092c4415a..cbb7b1c2157ebe671f92e7f3824a550a6a2f5fe2 100644 (file)
   </PropertyGroup>\r
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />\r
   <ItemGroup>\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.DurableInstancing\AssemblyInfo.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.DurableInstancing\System\Runtime\DurableInstancing\DisassociateInstanceKeysExtension.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.DurableInstancing\System\Runtime\DurableInstancing\IDurableInstancingOptions.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.DurableInstancing\System\Runtime\DurableInstancing\InstanceCollisionException.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.DurableInstancing\System\Runtime\DurableInstancing\InstanceCompleteException.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.DurableInstancing\System\Runtime\DurableInstancing\InstanceHandle.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.DurableInstancing\System\Runtime\DurableInstancing\InstanceHandleConflictException.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.DurableInstancing\System\Runtime\DurableInstancing\InstanceHandleReference.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.DurableInstancing\System\Runtime\DurableInstancing\InstanceKey.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.DurableInstancing\System\Runtime\DurableInstancing\InstanceKeyCollisionException.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.DurableInstancing\System\Runtime\DurableInstancing\InstanceKeyCompleteException.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.DurableInstancing\System\Runtime\DurableInstancing\InstanceKeyNotReadyException.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.DurableInstancing\System\Runtime\DurableInstancing\InstanceKeyState.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.DurableInstancing\System\Runtime\DurableInstancing\InstanceKeyView.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.DurableInstancing\System\Runtime\DurableInstancing\InstanceLockedException.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.DurableInstancing\System\Runtime\DurableInstancing\InstanceLockLostException.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.DurableInstancing\System\Runtime\DurableInstancing\InstanceLockQueryResult.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.DurableInstancing\System\Runtime\DurableInstancing\InstanceNormalEvent.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.DurableInstancing\System\Runtime\DurableInstancing\InstanceNotReadyException.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.DurableInstancing\System\Runtime\DurableInstancing\InstanceOwner.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.DurableInstancing\System\Runtime\DurableInstancing\InstanceOwnerException.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.DurableInstancing\System\Runtime\DurableInstancing\InstanceOwnerQueryResult.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.DurableInstancing\System\Runtime\DurableInstancing\InstancePersistence.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.DurableInstancing\System\Runtime\DurableInstancing\InstancePersistenceCommand.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.DurableInstancing\System\Runtime\DurableInstancing\InstancePersistenceCommandException.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.DurableInstancing\System\Runtime\DurableInstancing\InstancePersistenceContext.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.DurableInstancing\System\Runtime\DurableInstancing\InstancePersistenceEvent.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.DurableInstancing\System\Runtime\DurableInstancing\InstancePersistenceException.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.DurableInstancing\System\Runtime\DurableInstancing\InstanceState.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.DurableInstancing\System\Runtime\DurableInstancing\InstanceStore.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.DurableInstancing\System\Runtime\DurableInstancing\InstanceStoreQueryResult.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.DurableInstancing\System\Runtime\DurableInstancing\InstanceValue.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.DurableInstancing\System\Runtime\DurableInstancing\InstanceValueConsistency.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.DurableInstancing\System\Runtime\DurableInstancing\InstanceValueOptions.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.DurableInstancing\System\Runtime\DurableInstancing\InstanceView.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.DurableInstancing\System\Runtime\ICancelable.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.DurableInstancing\System\Runtime\IPersistencePipelineModule.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.DurableInstancing\System\Runtime\PersistenceMetadataNamespace.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.DurableInstancing\System\Runtime\PersistencePipeline.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.DurableInstancing\System\Runtime\TransactedAsyncResult.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.DurableInstancing\System\Runtime\TransactionHelper.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.DurableInstancing\System\Runtime\Workflow45Namespace.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.DurableInstancing\System\Runtime\WorkflowNamespace.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.DurableInstancing\System\Runtime\WorkflowServiceNamespace.cs" />\r
     <Compile Include="..\..\build\common\Consts.cs" />\r
     <Compile Include="..\..\build\common\Locale.cs" />\r
     <Compile Include="..\..\build\common\MonoTODOAttribute.cs" />\r
+    <Compile Include="..\..\build\common\SR.cs" />\r
     <Compile Include="Assembly\AssemblyInfo.cs" />\r
-    <Compile Include="System.Runtime.DurableInstancing\AllEnums.cs" />\r
-    <Compile Include="System.Runtime.DurableInstancing\AllExceptions.cs" />\r
-    <Compile Include="System.Runtime.DurableInstancing\InstanceHandle.cs" />\r
-    <Compile Include="System.Runtime.DurableInstancing\InstanceKey.cs" />\r
-    <Compile Include="System.Runtime.DurableInstancing\InstanceKeyView.cs" />\r
-    <Compile Include="System.Runtime.DurableInstancing\InstanceLockQueryResult.cs" />\r
-    <Compile Include="System.Runtime.DurableInstancing\InstanceOwner.cs" />\r
-    <Compile Include="System.Runtime.DurableInstancing\InstanceOwnerQueryResult.cs" />\r
-    <Compile Include="System.Runtime.DurableInstancing\InstancePersistenceCommand.cs" />\r
-    <Compile Include="System.Runtime.DurableInstancing\InstancePersistenceContext.cs" />\r
-    <Compile Include="System.Runtime.DurableInstancing\InstancePersistenceEvent.cs" />\r
-    <Compile Include="System.Runtime.DurableInstancing\InstanceStore.cs" />\r
-    <Compile Include="System.Runtime.DurableInstancing\InstanceStoreQueryResult.cs" />\r
-    <Compile Include="System.Runtime.DurableInstancing\InstanceValue.cs" />\r
-    <Compile Include="System.Runtime.DurableInstancing\InstanceView.cs" />\r  </ItemGroup>\r
+    <Compile Include="SRCore.cs" />\r  </ItemGroup>\r
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. \r
        Other similar extension points exist, see Microsoft.Common.targets.\r
   <Target Name="BeforeBuild">\r
       <Project>{2951DEC2-4393-4A78-83F9-42EB39CB708F}</Project>\r
       <Name>System.Xml-net_4_5</Name>\r
     </ProjectReference>\r
-    <ProjectReference Include="../System.Runtime.Serialization/System.Runtime.Serialization-net_4_5.csproj">\r
-      <Project>{08FF4C26-9C12-433D-AE90-43370046387A}</Project>\r
-      <Name>System.Runtime.Serialization-net_4_5</Name>\r
-    </ProjectReference>\r
     <ProjectReference Include="../System.Core/System.Core-net_4_5.csproj">\r
       <Project>{D92530F4-3F2B-4351-BD21-9D6BEE6D2A4E}</Project>\r
       <Name>System.Core-net_4_5</Name>\r
       <Project>{8328796E-8A15-4972-8F1E-2F15E7D57C42}</Project>\r
       <Name>System.Xml.Linq-net_4_5</Name>\r
     </ProjectReference>\r
+    <ProjectReference Include="../System.Transactions/System.Transactions-net_4_5.csproj">\r
+      <Project>{AF2BBF50-AB57-4CA1-8EF5-2B54C7418434}</Project>\r
+      <Name>System.Transactions-net_4_5</Name>\r
+    </ProjectReference>\r
+    <ProjectReference Include="../System.ServiceModel.Internals/System.ServiceModel.Internals-net_4_5.csproj">\r
+      <Project>{9C41A885-1D86-4508-B6F7-155D4B7BF441}</Project>\r
+      <Name>System.ServiceModel.Internals-net_4_5</Name>\r
+    </ProjectReference>\r
+    <ProjectReference Include="../System.Runtime.Serialization/System.Runtime.Serialization-net_4_5.csproj">\r
+      <Project>{08FF4C26-9C12-433D-AE90-43370046387A}</Project>\r
+      <Name>System.Runtime.Serialization-net_4_5</Name>\r
+    </ProjectReference>\r
   </ItemGroup>\r
   <ItemGroup>\r
     <Folder Include="Properties\" />\r
index 73a2f1e5f50abd44dbb24d9bcb3ba90f231fb423..daafce0113e79bd9e45ed90d142d6619bb3e048d 100644 (file)
@@ -2,7 +2,7 @@ using System;
 
 namespace System.Runtime.Serialization
 {
-       public class BitFlagsGenerator
+       class BitFlagsGenerator
        {
                int bitCount;
                byte [] locals;
index 4de29bbcae33a60533ec958609457dbb722d2704..3e3e0a781431c0c52033aa26bc6509a597209a31 100644 (file)
@@ -3,9 +3,8 @@ using System.Reflection;
 
 namespace System.Runtime.Serialization
 {
-       public class CodeInterpreter
+       static class CodeInterpreter
        {
-
                internal static object ConvertValue(object arg, Type source, Type target)
                {
                        return InternalConvert(arg, source, target, false);
index 5b6d971643c7a74721e491a13cfa25008f6567c1..e6a69cb620a21d04ef62cbdb997f649ab3d66c9e 100644 (file)
@@ -25,7 +25,7 @@
     <DebugType>full</DebugType>\r
     <NoWarn>1699,168,169,219,414</NoWarn>\r
     <Optimize>false</Optimize>\r
-    <DefineConstants>DEBUG;TRACE;NET_4_0;NET_4_5;MONO;DISABLE_CAS_USE;NET_3_0</DefineConstants>\r
+    <DefineConstants>DEBUG;TRACE;NET_4_0;NET_4_5;MONO;DISABLE_CAS_USE;NO_DYNAMIC_CODEGEN;NET_3_0</DefineConstants>\r
     <ErrorReport>prompt</ErrorReport>\r
     <WarningLevel>4</WarningLevel>\r
   </PropertyGroup>\r
@@ -33,7 +33,7 @@
     <DebugType>pdbonly</DebugType>\r
     <NoWarn>1699,168,169,219,414</NoWarn>\r
     <Optimize>true</Optimize>\r
-    <DefineConstants>NET_4_0;NET_4_5;MONO;DISABLE_CAS_USE;NET_3_0</DefineConstants>\r
+    <DefineConstants>NET_4_0;NET_4_5;MONO;DISABLE_CAS_USE;NO_DYNAMIC_CODEGEN;NET_3_0</DefineConstants>\r
     <ErrorReport>prompt</ErrorReport>\r
     <WarningLevel>4</WarningLevel>\r
   </PropertyGroup>\r
   </PropertyGroup>\r
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />\r
   <ItemGroup>\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\AppSettings.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\Attributes.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\ClassDataContract.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\CodeExporter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\CollectionDataContract.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\CollectionDataContractAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\Configuration\ConfigurationStrings.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\Configuration\DataContractSerializerSection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\Configuration\DeclaredTypeElement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\Configuration\DeclaredTypeElementCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\Configuration\DeclaredTypeValidator.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\Configuration\DeclaredTypeValidatorAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\Configuration\NetDataContractSerializerSection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\Configuration\ParameterElement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\Configuration\ParameterElementCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\Configuration\Properties.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\Configuration\SerializationSectionGroup.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\Configuration\TypeElement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\Configuration\TypeElementCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\ContractCodeDomInfo.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\ContractNamespaceAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\DataContract.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\DataContractAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\DataContractResolver.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\DataContractSerializer.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\DataContractSerializerSettings.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\DataContractSet.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\DataMember.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\DataMemberAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\DateTimeFormat.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\DateTimeOffsetAdapter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\Diagnostics\TraceCode.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\Diagnostics\TraceUtility.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\DictionaryGlobals.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\EmitTypeInformation.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\EnumDataContract.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\EnumMemberAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\ExportOptions.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\ExtensionDataObject.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\ExtensionDataReader.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\GenericParameterDataContract.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\Globals.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\HybridObjectCache.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\IDataContractSurrogate.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\IExtensibleDataObject.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\IgnoreDataMemberAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\ImportOptions.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\InvalidDataContractException.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\Json\ByteArrayHelperWithString.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\Json\DataContractJsonSerializer.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\Json\DataContractJsonSerializerSettings.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\Json\IXmlJsonReaderInitializer.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\Json\IXmlJsonWriterInitializer.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\Json\JsonByteArrayDataContract.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\Json\JsonClassDataContract.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\Json\JsonCollectionDataContract.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\Json\JsonDataContract.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\Json\JsonEncodingStreamWrapper.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\Json\JsonEnumDataContract.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\Json\JsonFormatGeneratorStatics.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\Json\JsonFormatReaderGenerator.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\Json\JsonFormatWriterGenerator.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\Json\JsonGlobals.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\Json\JsonNodeType.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\Json\JsonObjectDataContract.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\Json\JsonQNameDataContract.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\Json\JsonReaderDelegator.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\Json\JsonReaderWriterFactory.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\Json\JsonStringDataContract.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\Json\JsonUriDataContract.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\Json\JsonWriterDelegator.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\Json\JsonXmlDataContract.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\Json\XmlJsonReader.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\Json\XmlJsonWriter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\Json\XmlObjectSerializerReadContextComplexJson.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\Json\XmlObjectSerializerWriteContextComplexJson.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\KnownTypeAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\KnownTypeDataContractResolver.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\NetDataContractSerializer.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\ObjectReferenceStack.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\ObjectToIdCache.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\PrimitiveDataContract.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\SchemaExporter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\SchemaHelper.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\SchemaImporter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\ScopedKnownTypes.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\SerializationMode.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\SerializationPermissionNotRequiredAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\SerializationTrace.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\SpecialTypeDataContract.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\SurrogateDataContract.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\TypeInformation.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\XmlDataContract.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\XmlFormatGeneratorStatics.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\XmlFormatReaderGenerator.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\XmlFormatWriterGenerator.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\XmlObjectSerializer.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\XmlObjectSerializerContext.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\XmlObjectSerializerReadContext.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\XmlObjectSerializerReadContextComplex.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\XmlObjectSerializerWriteContext.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\XmlObjectSerializerWriteContextComplex.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\XmlReaderDelegator.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\XmlSerializableReader.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\XmlSerializableServices.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\XmlSerializableWriter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\XmlWriterDelegator.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\XPathQueryGenerator.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\XsdDataContractExporter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Runtime\Serialization\XsdDataContractImporter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Text\Base64Encoding.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Text\BinHexEncoding.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Text\SurrogateChar.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Xml\ArrayHelper.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Xml\EncodingStreamWrapper.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Xml\IFragmentCapableXmlDictionaryWriter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Xml\IStreamProvider.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Xml\IXmlDictionary.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Xml\PrefixHandle.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Xml\StringHandle.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Xml\UniqueID.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Xml\ValueHandle.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Xml\XmlBaseReader.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Xml\XmlBaseWriter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Xml\XmlBinaryNodeType.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Xml\XmlBinaryReader.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Xml\XmlBinaryReaderSession.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Xml\XmlBinaryWriter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Xml\XmlBinaryWriterSession.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Xml\XmlBufferReader.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Xml\XmlC14NWriter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Xml\XmlConverter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Xml\XmlDelegatedReader.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Xml\XmlDelegatedWriter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Xml\XmlDictionary.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Xml\XmlDictionaryReader.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Xml\XmlDictionaryReaderQuotas.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Xml\XmlDictionaryString.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Xml\XmlDictionaryWriter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Xml\XmlMtomReader.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Xml\XmlMtomWriter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Xml\XmlNodeWriter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Xml\XmlNodeWriterWriteBase64TextArgs.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Xml\XmlSigningNodeWriter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Xml\XmlStreamNodeWriter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Xml\XmlUTF8TextReader.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Xml\XmlUTF8TextWriter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\System\Xml\XmlWriteBase64AsyncArgs.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Runtime.Serialization\TD.Designer.cs" />\r
     <Compile Include="..\..\build\common\Consts.cs" />\r
     <Compile Include="..\..\build\common\Locale.cs" />\r
     <Compile Include="..\..\build\common\MonoTODOAttribute.cs" />\r
-    <Compile Include="..\System.ServiceModel.Web\System.Runtime.Serialization.Json\DataContractJsonSerializer.cs" />\r
-    <Compile Include="..\System.ServiceModel.Web\System.Runtime.Serialization.Json\DataContractJsonSerializerSettings.cs" />\r
-    <Compile Include="..\System.ServiceModel.Web\System.Runtime.Serialization.Json\IXmlJsonReaderInitializer.cs" />\r
-    <Compile Include="..\System.ServiceModel.Web\System.Runtime.Serialization.Json\IXmlJsonWriterInitializer.cs" />\r
-    <Compile Include="..\System.ServiceModel.Web\System.Runtime.Serialization.Json\JsonReader.cs" />\r
-    <Compile Include="..\System.ServiceModel.Web\System.Runtime.Serialization.Json\JsonReaderWriterFactory.cs" />\r
-    <Compile Include="..\System.ServiceModel.Web\System.Runtime.Serialization.Json\JsonSerializationReader.cs" />\r
-    <Compile Include="..\System.ServiceModel.Web\System.Runtime.Serialization.Json\JsonSerializationWriter.cs" />\r
-    <Compile Include="..\System.ServiceModel.Web\System.Runtime.Serialization.Json\JsonWriter.cs" />\r
-    <Compile Include="..\System.ServiceModel.Web\System.Runtime.Serialization.Json\TypeMap.cs" />\r
+    <Compile Include="..\..\build\common\SR.cs" />\r
     <Compile Include="Assembly\AssemblyInfo.cs" />\r
-    <Compile Include="System.Runtime.Serialization.Configuration\DataContractSerializerSection.cs" />\r
-    <Compile Include="System.Runtime.Serialization.Configuration\DeclaredTypeElement.cs" />\r
-    <Compile Include="System.Runtime.Serialization.Configuration\DeclaredTypeElementCollection.cs" />\r
-    <Compile Include="System.Runtime.Serialization.Configuration\ParameterElement.cs" />\r
-    <Compile Include="System.Runtime.Serialization.Configuration\ParameterElementCollection.cs" />\r
-    <Compile Include="System.Runtime.Serialization.Configuration\SerializationSectionGroup.cs" />\r
-    <Compile Include="System.Runtime.Serialization.Configuration\TypeElement.cs" />\r
-    <Compile Include="System.Runtime.Serialization.Configuration\TypeElementCollection.cs" />\r
-    <Compile Include="System.Runtime.Serialization\DataContractResolver.cs" />\r
-    <Compile Include="System.Runtime.Serialization\DataContractSerializer.cs" />\r
-    <Compile Include="System.Runtime.Serialization\DataContractSerializerSettings.cs" />\r
-    <Compile Include="System.Runtime.Serialization\DataMemberAttribute.cs" />\r
-    <Compile Include="System.Runtime.Serialization\DateTimeFormat.cs" />\r
-    <Compile Include="System.Runtime.Serialization\EmitTypeInformation.cs" />\r
-    <Compile Include="System.Runtime.Serialization\EnumMemberAttribute.cs" />\r
-    <Compile Include="System.Runtime.Serialization\ExportOptions.cs" />\r
-    <Compile Include="System.Runtime.Serialization\ExtensionDataObject.cs" />\r
-    <Compile Include="System.Runtime.Serialization\IDataContractSurrogate.cs" />\r
-    <Compile Include="System.Runtime.Serialization\IExtensibleDataObject.cs" />\r
-    <Compile Include="System.Runtime.Serialization\IgnoreDataMemberAttribute.cs" />\r
-    <Compile Include="System.Runtime.Serialization\ImportOptions.cs" />\r
-    <Compile Include="System.Runtime.Serialization\InvalidDataContractException.cs" />\r
-    <Compile Include="System.Runtime.Serialization\KnownTypeAttribute.cs" />\r
-    <Compile Include="System.Runtime.Serialization\KnownTypeCollection.cs" />\r
-    <Compile Include="System.Runtime.Serialization\NetDataContractSerializer.cs" />\r
-    <Compile Include="System.Runtime.Serialization\SerializationMap.cs" />\r
-    <Compile Include="System.Runtime.Serialization\SerializationMap.XsdExporter.cs" />\r
-    <Compile Include="System.Runtime.Serialization\XmlFormatterDeserializer.cs" />\r
-    <Compile Include="System.Runtime.Serialization\XmlFormatterSerializer.cs" />\r
-    <Compile Include="System.Runtime.Serialization\XmlObjectSerializer.cs" />\r
-    <Compile Include="System.Runtime.Serialization\XmlSerializableServices.cs" />\r
-    <Compile Include="System.Runtime.Serialization\XsdDataContractExporter.cs" />\r
-    <Compile Include="System.Runtime.Serialization\XsdDataContractImporter.cs" />\r
-    <Compile Include="System.Xml\IFragmentCapableXmlDictionaryWriter.cs" />\r
-    <Compile Include="System.Xml\IStreamProvider.cs" />\r
-    <Compile Include="System.Xml\IXmlBinaryReaderInitializer.cs" />\r
-    <Compile Include="System.Xml\IXmlBinaryWriterInitializer.cs" />\r
-    <Compile Include="System.Xml\IXmlDictionary.cs" />\r
-    <Compile Include="System.Xml\IXmlMtomReaderInitializer.cs" />\r
-    <Compile Include="System.Xml\IXmlMtomWriterInitializer.cs" />\r
-    <Compile Include="System.Xml\IXmlUTF8ReaderInitializer.cs" />\r
-    <Compile Include="System.Xml\IXmlUTF8WriterInitializer.cs" />\r
-    <Compile Include="System.Xml\OnXmlDictionaryReaderClose.cs" />\r
-    <Compile Include="System.Xml\UniqueId.cs" />\r
-    <Compile Include="System.Xml\XmlBinaryDictionaryReader.cs" />\r
-    <Compile Include="System.Xml\XmlBinaryDictionaryWriter.cs" />\r
-    <Compile Include="System.Xml\XmlBinaryDictionaryWriterAutoGen.cs" />\r
-    <Compile Include="System.Xml\XmlBinaryFormat.cs" />\r
-    <Compile Include="System.Xml\XmlBinaryReaderSession.cs" />\r
-    <Compile Include="System.Xml\XmlBinaryWriterSession.cs" />\r
-    <Compile Include="System.Xml\XmlC14NWriter.cs" />\r
-    <Compile Include="System.Xml\XmlCanonicalWriter.cs" />\r
-    <Compile Include="System.Xml\XmlDictionary.cs" />\r
-    <Compile Include="System.Xml\XmlDictionaryReader.cs" />\r
-    <Compile Include="System.Xml\XmlDictionaryReaderAutoGen.cs" />\r
-    <Compile Include="System.Xml\XmlDictionaryReaderQuotas.cs" />\r
-    <Compile Include="System.Xml\XmlDictionaryString.cs" />\r
-    <Compile Include="System.Xml\XmlDictionaryWriter.cs" />\r
-    <Compile Include="System.Xml\XmlDictionaryWriterAutoGen.cs" />\r
-    <Compile Include="System.Xml\XmlMtomDictionaryReader.cs" />\r
-    <Compile Include="System.Xml\XmlMtomDictionaryWriter.cs" />\r
-    <Compile Include="System.Xml\XmlSimpleDictionaryReader.cs" />\r
-    <Compile Include="System.Xml\XmlSimpleDictionaryWriter.cs" />\r  </ItemGroup>\r
+    <Compile Include="ReferenceSources\BitFlagsGenerator.cs" />\r
+    <Compile Include="ReferenceSources\CodeInterpreter.cs" />\r
+    <Compile Include="ReferenceSources\DiagnosticUtility.cs" />\r
+    <Compile Include="ReferenceSources\FxTrace.cs" />\r
+    <Compile Include="ReferenceSources\JsonFormatReaderGenerator_static.cs" />\r
+    <Compile Include="ReferenceSources\JsonFormatWriterGenerator_static.cs" />\r
+    <Compile Include="ReferenceSources\SR.cs" />\r
+    <Compile Include="ReferenceSources\SR_missing.cs" />\r
+    <Compile Include="ReferenceSources\XmlDataContract_static.cs" />\r
+    <Compile Include="ReferenceSources\XmlExceptionHelper.cs" />\r
+    <Compile Include="ReferenceSources\XmlFormatReaderGenerator_static.cs" />\r
+    <Compile Include="ReferenceSources\XmlFormatWriterGenerator_static.cs" />\r  </ItemGroup>\r
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. \r
        Other similar extension points exist, see Microsoft.Common.targets.\r
   <Target Name="BeforeBuild">\r
       <Project>{D92530F4-3F2B-4351-BD21-9D6BEE6D2A4E}</Project>\r
       <Name>System.Core-net_4_5</Name>\r
     </ProjectReference>\r
+    <ProjectReference Include="../System.ServiceModel.Internals/System.ServiceModel.Internals-net_4_5.csproj">\r
+      <Project>{9C41A885-1D86-4508-B6F7-155D4B7BF441}</Project>\r
+      <Name>System.ServiceModel.Internals-net_4_5</Name>\r
+    </ProjectReference>\r
+    <ProjectReference Include="../SMDiagnostics/SMDiagnostics-net_4_5.csproj">\r
+      <Project>{643FEEB8-DDEB-4204-9C95-344BAA753C58}</Project>\r
+      <Name>SMDiagnostics-net_4_5</Name>\r
+    </ProjectReference>\r
     <ProjectReference Include="../System.Data/System.Data-net_4_5.csproj">\r
       <Project>{9A33954F-57A8-4D75-B1D8-0F81808A0DD4}</Project>\r
       <Name>System.Data-net_4_5</Name>\r
   <ItemGroup>\r
     <Folder Include="Properties\" />\r
   </ItemGroup>\r
-  <ItemGroup>\r
-    <EmbeddedResource Include="resources/mstypes.schema">\r
-      <LogicalName>mstypes.schema</LogicalName>\r
-    </EmbeddedResource>\r
-  </ItemGroup>\r
 </Project>\r
 
index c447ff0234c31f26948c037bd358474a33cd96bb..63c072d99e9386e2e103b8fe8650c14f1df12426 100644 (file)
@@ -1,6 +1,4 @@
 ../../build/common/Consts.cs
-../../build/common/Locale.cs
-../../build/common/MonoTODOAttribute.cs
 ../../build/common/SR.cs
 Assembly/AssemblyInfo.cs
 
index 1eed451b7c2208163c5c8e9f5947b2d039a6c98f..19faf78c143de4c491c1896c040b61ef2aca1f40 100644 (file)
@@ -125,9 +125,7 @@ namespace System.ServiceModel.Channels
                                //web_request.UseDefaultCredentials = false;
                        }
 
-#if !NET_2_1 // FIXME: implement this to not depend on Timeout property
                        web_request.Timeout = (int) timeout.TotalMilliseconds;
-#endif
 
                        // There is no SOAP Action/To header when AddressingVersion is None.
                        if (message.Version.Envelope.Equals (EnvelopeVersion.Soap11) ||
@@ -190,6 +188,7 @@ namespace System.ServiceModel.Channels
                                if (hp.SuppressEntityBody)
                                        suppressEntityBody = true;
                        }
+
 #if !NET_2_1
                        if (source.ClientCredentials != null) {
                                var cred = source.ClientCredentials;
@@ -205,9 +204,7 @@ namespace System.ServiceModel.Channels
                                if (buffer.Length > int.MaxValue)
                                        throw new InvalidOperationException ("The argument message is too large.");
 
-#if !NET_2_1
                                web_request.ContentLength = (int) buffer.Length;
-#endif
 
                                web_request.BeginGetRequestStream (delegate (IAsyncResult r) {
                                        try {
@@ -217,9 +214,7 @@ namespace System.ServiceModel.Channels
                                                web_request.BeginGetResponse (GotResponse, result);
                                        } catch (WebException ex) {
                                                switch (ex.Status) {
-#if !NET_2_1
                                                case WebExceptionStatus.NameResolutionFailure:
-#endif
                                                case WebExceptionStatus.ConnectFailure:
                                                        result.Complete (new EndpointNotFoundException (new EndpointNotFoundException ().Message, ex));
                                                        break;
index 2e2b0d60b0860a432a7a5229b0f1e409a0ab9af2..354d4c8b410809c434d8f2f7966383578f56c29d 100644 (file)
@@ -68,7 +68,7 @@ namespace System.ServiceModel.MonoInternal
                IChannel channel;
                IChannelFactory factory;
                TimeSpan? operation_timeout = null;
-
+               ChannelFactory channel_factory;
 
                #region delegates
                readonly ProcessDelegate _processDelegate;
@@ -88,6 +88,7 @@ namespace System.ServiceModel.MonoInternal
                        ChannelFactory channelFactory, EndpointAddress remoteAddress, Uri via)
                        : this (endpoint.CreateClientRuntime (null), endpoint.Contract, channelFactory.DefaultOpenTimeout, channelFactory.DefaultCloseTimeout, null, channelFactory.OpenedChannelFactory, endpoint.Binding.MessageVersion, remoteAddress, via)
                {
+                       channel_factory = channelFactory;
                }
 
                public ClientRuntimeChannel (ClientRuntime runtime, ContractDescription contract, TimeSpan openTimeout, TimeSpan closeTimeout, IChannel contextChannel, IChannelFactory factory, MessageVersion messageVersion, EndpointAddress remoteAddress, Uri via)
@@ -324,15 +325,8 @@ namespace System.ServiceModel.MonoInternal
                }
 
                public TimeSpan OperationTimeout {
-                       get {
-                               if (!this.operation_timeout.HasValue) {
-                                       this.operation_timeout = DefaultCommunicationTimeouts.Instance.ReceiveTimeout;
-                               }
-                               return this.operation_timeout.Value;
-                       }
-                       set {
-                               this.operation_timeout = value;
-                       }
+                       get { return this.operation_timeout ?? (channel_factory != null ? channel_factory.Endpoint.Binding.SendTimeout : DefaultCommunicationTimeouts.Instance.SendTimeout); }
+                       set { this.operation_timeout = value; }
                }
 
                public IOutputSession OutputSession {
index c3cfbbdb37c9c115acc029ee1dd9e305b28528b7..a3bddf14269e6cf67555e121594f930cc9558f6e 100644 (file)
@@ -7,7 +7,7 @@
     <SchemaVersion>2.0</SchemaVersion>\r
     <ProjectGuid>{251DB111-FEE1-4080-8411-0AD1CC9BA94B}</ProjectGuid>\r
     <OutputType>Library</OutputType>\r
-    <NoWarn>1699,649,169</NoWarn>\r
+    <NoWarn>1699,168,169,219,414,612,649</NoWarn>\r
     <OutputPath>./../../class/lib/net_4_5</OutputPath>\r
     <NoStdLib>True</NoStdLib>\r
     <NoConfig>True</NoConfig>\r
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">\r
     <DebugSymbols>true</DebugSymbols>\r
     <DebugType>full</DebugType>\r
-    <NoWarn>1699,649,169</NoWarn>\r
+    <NoWarn>1699,168,169,219,414,612,649</NoWarn>\r
     <Optimize>false</Optimize>\r
-    <DefineConstants>DEBUG;TRACE;NET_4_0;NET_4_5;MONO;DISABLE_CAS_USE</DefineConstants>\r
+    <DefineConstants>DEBUG;TRACE;NET_4_0;NET_4_5;MONO;DISABLE_CAS_USE;MONO_BROKEN_CONFIGURATION_DLL</DefineConstants>\r
     <ErrorReport>prompt</ErrorReport>\r
     <WarningLevel>4</WarningLevel>\r
   </PropertyGroup>\r
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">\r
     <DebugType>pdbonly</DebugType>\r
-    <NoWarn>1699,649,169</NoWarn>\r
+    <NoWarn>1699,168,169,219,414,612,649</NoWarn>\r
     <Optimize>true</Optimize>\r
-    <DefineConstants>NET_4_0;NET_4_5;MONO;DISABLE_CAS_USE</DefineConstants>\r
+    <DefineConstants>NET_4_0;NET_4_5;MONO;DISABLE_CAS_USE;MONO_BROKEN_CONFIGURATION_DLL</DefineConstants>\r
     <ErrorReport>prompt</ErrorReport>\r
     <WarningLevel>4</WarningLevel>\r
   </PropertyGroup>\r
   </PropertyGroup>\r
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />\r
   <ItemGroup>\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\inc\InvariantComparer.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\inc\PrivilegedConfigurationManager.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\ComponentModel\CompModSwitches.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Configuration\DiagnosticsElement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Configuration\PriorityGroup.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Configuration\ProtocolElement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Configuration\ProtocolElementCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Configuration\Protocols.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Configuration\SoapEnvelopeProcessingElement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Configuration\SoapExtensionTypeElement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Configuration\SoapExtensionTypeElementCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Configuration\TypeElement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Configuration\TypeElementCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Configuration\WebServicesSection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Configuration\WsdlHelpGeneratorElement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Configuration\WsiProfilesElement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Configuration\WsiProfilesElementCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Configuration\XmlFormatExtensionAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Configuration\XmlFormatExtensionPointAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Configuration\XmlFormatExtensionPrefixAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Description\HttpFormatExtensions.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Description\HttpGetProtocolImporter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Description\HttpGetProtocolReflector.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Description\HttpPostProtocolImporter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Description\HttpPostProtocolReflector.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Description\HttpProtocolImporter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Description\HttpProtocolReflector.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Description\MimeAnyImporter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Description\MimeFormatExtensions.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Description\MimeFormImporter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Description\MimeFormReflector.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Description\MimeImporter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Description\MimeParameter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Description\MimeParameters.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Description\MimeReflector.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Description\MimeReturn.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Description\MimeTextImporter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Description\MimeXmlImporter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Description\MimeXmlReflector.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Description\ProtocolImporter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Description\ProtocolReflector.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Description\SchemaCompiler.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Description\ServiceDescription.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Description\ServiceDescriptionImporter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Description\ServiceDescriptionReflector.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Description\ServiceDescriptions.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Description\ServiceDescriptionSerializer.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Description\Soap12FormatExtensions.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Description\Soap12ProtocolImporter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Description\Soap12ProtocolReflector.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Description\SoapExtensionImporter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Description\SoapExtensionReflector.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Description\SoapFormatExtensions.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Description\SoapHttpTransportImporter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Description\SoapProtocolImporter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Description\SoapProtocolReflector.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Description\SoapTransportImporter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Description\WebCodeGenerator.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Description\WebReference.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Description\WebReferenceCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Description\WebReferenceOptions.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Description\WebServicesInteroperability.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Diagnostics\TraceUtility.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Discovery\ContractReference.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Discovery\ContractSearchPattern.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Discovery\DiscoveryClientDocuments.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Discovery\DiscoveryClientProtocol.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Discovery\DiscoveryClientReferences.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Discovery\DiscoveryDocument.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Discovery\DiscoveryDocumentLinksPattern.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Discovery\DiscoveryDocumentReference.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Discovery\DiscoveryDocumentSearchPattern.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Discovery\DiscoveryDocumentSerializer.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Discovery\DiscoveryExceptionDictionary.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Discovery\DiscoveryReference.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Discovery\DiscoveryReferences.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Discovery\DiscoveryRequestHandler.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Discovery\DiscoverySearchPattern.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Discovery\DynamicDiscoSearcher.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Discovery\DynamicDiscoveryDocument.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Discovery\DynamicPhysicalDiscoSearcher.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Discovery\DynamicVirtualDiscoSearcher.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Discovery\ExcludePathInfo.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Discovery\InvalidContentTypeException.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Discovery\InvalidDocumentContentsException.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Discovery\LinkGrep.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Discovery\SchemaReference.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Discovery\SoapBinding.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Discovery\XmlSchemaSearchPattern.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Interop\CallId.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Interop\INotifyConnection2.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Interop\INotifySink2.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Interop\INotifySource2.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Interop\NotifyFilter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Interop\UserThread.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\NativeMethods.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\PartialTrustHelpers.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\AnyReturnReader.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\BufferedResponseStream.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\ClientProtocol.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\DiscoveryServerProtocol.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\DocumentationServerProtocol.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\HtmlFormParameterReader.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\HtmlFormParameterWriter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\HttpClientProtocol.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\HttpGetClientProtocol.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\HttpGetServerProtocol.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\HttpMethodAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\HttpPostClientProtocol.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\HttpPostLocalhostServerProtocol.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\HttpPostServerProtocol.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\HttpServerProtocol.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\LogicalMethodInfo.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\MatchAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\MimeFormatter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\MimeParameterReader.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\MimeParameterWriter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\MimeReturnReader.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\MimeReturnWriter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\NopReturnReader.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\PatternMatcher.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\RequestResponse.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\RuntimeUtils.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\Scalars.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\ScatterGatherStream.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\ServerProtocol.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\ServerType.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\Soap11ServerProtocol.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\Soap12ServerProtocol.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\SoapClientMessage.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\SoapClientProtocol.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\SoapDocumentMethodAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\SoapDocumentServiceAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\SoapException.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\SoapExtension.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\SoapExtensionAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\SoapExtensionStream.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\SoapFaultCodes.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\SoapHeader.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\SoapHeaderAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\SoapHeaderDirection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\SoapHeaderException.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\SoapHeaders.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\SoapMessage.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\SoapMessageStage.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\SoapParameterStyle.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\SoapProtocolVersion.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\SoapReflector.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\SoapRpcMethodAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\SoapRpcServiceAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\SoapServerMessage.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\SoapServerMethod.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\SoapServerProtocol.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\SoapServiceRoutingStyle.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\SoapUnknownHeader.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\TextReturnReader.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\UrlEncodedParameterWriter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\UrlParameterReader.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\UrlParameterWriter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\ValueCollectionParameterReader.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\WebServiceHandler.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\WebServiceHandlerFactory.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\XmlReturnReader.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Protocols\XmlReturnWriter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\Soap.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\WebMethodAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\WebService.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\WebServiceAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\WebServiceBindingAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\WebServicesDescriptionAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Web.Services\System\Web\Services\WsiProfiles.cs" />\r
     <Compile Include="..\..\build\common\Consts.cs" />\r
-    <Compile Include="..\..\build\common\Locale.cs" />\r
-    <Compile Include="..\..\build\common\MonoTODOAttribute.cs" />\r
     <Compile Include="Assembly\AssemblyInfo.cs" />\r
-    <Compile Include="System.Web.Services.Configuration\DiagnosticsElement.cs" />\r
-    <Compile Include="System.Web.Services.Configuration\PriorityGroup.cs" />\r
-    <Compile Include="System.Web.Services.Configuration\ProtocolElement.cs" />\r
-    <Compile Include="System.Web.Services.Configuration\ProtocolElementCollection.cs" />\r
-    <Compile Include="System.Web.Services.Configuration\SoapEnvelopeProcessingElement.cs" />\r
-    <Compile Include="System.Web.Services.Configuration\SoapExtensionTypeElement.cs" />\r
-    <Compile Include="System.Web.Services.Configuration\SoapExtensionTypeElementCollection.cs" />\r
-    <Compile Include="System.Web.Services.Configuration\TypeElement.cs" />\r
-    <Compile Include="System.Web.Services.Configuration\TypeElementCollection.cs" />\r
-    <Compile Include="System.Web.Services.Configuration\TypeTypeConverter.cs" />\r
-    <Compile Include="System.Web.Services.Configuration\WebServiceProtocols.cs" />\r
-    <Compile Include="System.Web.Services.Configuration\WebServicesConfigurationSectionHandler.cs" />\r
-    <Compile Include="System.Web.Services.Configuration\WebServicesSection.cs" />\r
-    <Compile Include="System.Web.Services.Configuration\WsdlHelpGeneratorElement.cs" />\r
-    <Compile Include="System.Web.Services.Configuration\WsiProfilesElement.cs" />\r
-    <Compile Include="System.Web.Services.Configuration\WsiProfilesElementCollection.cs" />\r
-    <Compile Include="System.Web.Services.Configuration\XmlFormatExtensionAttribute.cs" />\r
-    <Compile Include="System.Web.Services.Configuration\XmlFormatExtensionPointAttribute.cs" />\r
-    <Compile Include="System.Web.Services.Configuration\XmlFormatExtensionPrefixAttribute.cs" />\r
-    <Compile Include="System.Web.Services.Description\BasicProfileChecker.cs" />\r
-    <Compile Include="System.Web.Services.Description\BasicProfileViolation.cs" />\r
-    <Compile Include="System.Web.Services.Description\BasicProfileViolationCollection.cs" />\r
-    <Compile Include="System.Web.Services.Description\BasicProfileViolationEnumerator.cs" />\r
-    <Compile Include="System.Web.Services.Description\Binding.cs" />\r
-    <Compile Include="System.Web.Services.Description\BindingCollection.cs" />\r
-    <Compile Include="System.Web.Services.Description\ConformanceChecker.cs" />\r
-    <Compile Include="System.Web.Services.Description\DocumentableItem.cs" />\r
-    <Compile Include="System.Web.Services.Description\ExtensionManager.cs" />\r
-    <Compile Include="System.Web.Services.Description\FaultBinding.cs" />\r
-    <Compile Include="System.Web.Services.Description\FaultBindingCollection.cs" />\r
-    <Compile Include="System.Web.Services.Description\HttpAddressBinding.cs" />\r
-    <Compile Include="System.Web.Services.Description\HttpBinding.cs" />\r
-    <Compile Include="System.Web.Services.Description\HttpGetProtocolImporter.cs" />\r
-    <Compile Include="System.Web.Services.Description\HttpGetProtocolReflector.cs" />\r
-    <Compile Include="System.Web.Services.Description\HttpOperationBinding.cs" />\r
-    <Compile Include="System.Web.Services.Description\HttpPostProtocolImporter.cs" />\r
-    <Compile Include="System.Web.Services.Description\HttpPostProtocolReflector.cs" />\r
-    <Compile Include="System.Web.Services.Description\HttpSimpleProtocolImporter.cs" />\r
-    <Compile Include="System.Web.Services.Description\HttpSimpleProtocolReflector.cs" />\r
-    <Compile Include="System.Web.Services.Description\HttpUrlEncodedBinding.cs" />\r
-    <Compile Include="System.Web.Services.Description\HttpUrlReplacementBinding.cs" />\r
-    <Compile Include="System.Web.Services.Description\Import.cs" />\r
-    <Compile Include="System.Web.Services.Description\ImportCollection.cs" />\r
-    <Compile Include="System.Web.Services.Description\InputBinding.cs" />\r
-    <Compile Include="System.Web.Services.Description\Message.cs" />\r
-    <Compile Include="System.Web.Services.Description\MessageBinding.cs" />\r
-    <Compile Include="System.Web.Services.Description\MessageCollection.cs" />\r
-    <Compile Include="System.Web.Services.Description\MessagePart.cs" />\r
-    <Compile Include="System.Web.Services.Description\MessagePartCollection.cs" />\r
-    <Compile Include="System.Web.Services.Description\MimeContentBinding.cs" />\r
-    <Compile Include="System.Web.Services.Description\MimeMultipartRelatedBinding.cs" />\r
-    <Compile Include="System.Web.Services.Description\MimePart.cs" />\r
-    <Compile Include="System.Web.Services.Description\MimePartCollection.cs" />\r
-    <Compile Include="System.Web.Services.Description\MimeTextBinding.cs" />\r
-    <Compile Include="System.Web.Services.Description\MimeTextMatch.cs" />\r
-    <Compile Include="System.Web.Services.Description\MimeTextMatchCollection.cs" />\r
-    <Compile Include="System.Web.Services.Description\MimeXmlBinding.cs" />\r
-    <Compile Include="System.Web.Services.Description\NamedItem.cs" />\r
-    <Compile Include="System.Web.Services.Description\Operation.cs" />\r
-    <Compile Include="System.Web.Services.Description\OperationBinding.cs" />\r
-    <Compile Include="System.Web.Services.Description\OperationBindingCollection.cs" />\r
-    <Compile Include="System.Web.Services.Description\OperationCollection.cs" />\r
-    <Compile Include="System.Web.Services.Description\OperationFault.cs" />\r
-    <Compile Include="System.Web.Services.Description\OperationFaultCollection.cs" />\r
-    <Compile Include="System.Web.Services.Description\OperationFlow.cs" />\r
-    <Compile Include="System.Web.Services.Description\OperationInput.cs" />\r
-    <Compile Include="System.Web.Services.Description\OperationMessage.cs" />\r
-    <Compile Include="System.Web.Services.Description\OperationMessageCollection.cs" />\r
-    <Compile Include="System.Web.Services.Description\OperationOutput.cs" />\r
-    <Compile Include="System.Web.Services.Description\OutputBinding.cs" />\r
-    <Compile Include="System.Web.Services.Description\Port.cs" />\r
-    <Compile Include="System.Web.Services.Description\PortCollection.cs" />\r
-    <Compile Include="System.Web.Services.Description\PortType.cs" />\r
-    <Compile Include="System.Web.Services.Description\PortTypeCollection.cs" />\r
-    <Compile Include="System.Web.Services.Description\ProtocolImporter.cs" />\r
-    <Compile Include="System.Web.Services.Description\ProtocolReflector.cs" />\r
-    <Compile Include="System.Web.Services.Description\Service.cs" />\r
-    <Compile Include="System.Web.Services.Description\ServiceCollection.cs" />\r
-    <Compile Include="System.Web.Services.Description\ServiceDescription.cs" />\r
-    <Compile Include="System.Web.Services.Description\ServiceDescriptionBaseCollection.cs" />\r
-    <Compile Include="System.Web.Services.Description\ServiceDescriptionCollection.cs" />\r
-    <Compile Include="System.Web.Services.Description\ServiceDescriptionFormatExtension.cs" />\r
-    <Compile Include="System.Web.Services.Description\ServiceDescriptionFormatExtensionCollection.cs" />\r
-    <Compile Include="System.Web.Services.Description\ServiceDescriptionImporter.cs" />\r
-    <Compile Include="System.Web.Services.Description\ServiceDescriptionImportStyle.cs" />\r
-    <Compile Include="System.Web.Services.Description\ServiceDescriptionImportWarnings.cs" />\r
-    <Compile Include="System.Web.Services.Description\ServiceDescriptionReflector.cs" />\r
-    <Compile Include="System.Web.Services.Description\ServiceDescriptionSerializerBase.cs" />\r
-    <Compile Include="System.Web.Services.Description\ServiceDescriptionSerializerBase2.cs" />\r
-    <Compile Include="System.Web.Services.Description\Soap12AddressBinding.cs" />\r
-    <Compile Include="System.Web.Services.Description\Soap12Binding.cs" />\r
-    <Compile Include="System.Web.Services.Description\Soap12BodyBinding.cs" />\r
-    <Compile Include="System.Web.Services.Description\Soap12FaultBinding.cs" />\r
-    <Compile Include="System.Web.Services.Description\Soap12HeaderBinding.cs" />\r
-    <Compile Include="System.Web.Services.Description\Soap12OperationBinding.cs" />\r
-    <Compile Include="System.Web.Services.Description\SoapAddressBinding.cs" />\r
-    <Compile Include="System.Web.Services.Description\SoapBinding.cs" />\r
-    <Compile Include="System.Web.Services.Description\SoapBindingStyle.cs" />\r
-    <Compile Include="System.Web.Services.Description\SoapBindingUse.cs" />\r
-    <Compile Include="System.Web.Services.Description\SoapBodyBinding.cs" />\r
-    <Compile Include="System.Web.Services.Description\SoapExtensionImporter.cs" />\r
-    <Compile Include="System.Web.Services.Description\SoapExtensionReflector.cs" />\r
-    <Compile Include="System.Web.Services.Description\SoapFaultBinding.cs" />\r
-    <Compile Include="System.Web.Services.Description\SoapHeaderBinding.cs" />\r
-    <Compile Include="System.Web.Services.Description\SoapHeaderFaultBinding.cs" />\r
-    <Compile Include="System.Web.Services.Description\SoapHttpTransportImporter.cs" />\r
-    <Compile Include="System.Web.Services.Description\SoapOperationBinding.cs" />\r
-    <Compile Include="System.Web.Services.Description\SoapProtocolImporter.cs" />\r
-    <Compile Include="System.Web.Services.Description\SoapProtocolReflector.cs" />\r
-    <Compile Include="System.Web.Services.Description\SoapTransportImporter.cs" />\r
-    <Compile Include="System.Web.Services.Description\Types.cs" />\r
-    <Compile Include="System.Web.Services.Description\WebReference.cs" />\r
-    <Compile Include="System.Web.Services.Description\WebReferenceCollection.cs" />\r
-    <Compile Include="System.Web.Services.Description\WebReferenceOptions.cs" />\r
-    <Compile Include="System.Web.Services.Description\WebReferenceOptionsSerializer.cs" />\r
-    <Compile Include="System.Web.Services.Description\WebServicesInteroperability.cs" />\r
-    <Compile Include="System.Web.Services.Discovery\ContractReference.cs" />\r
-    <Compile Include="System.Web.Services.Discovery\ContractSearchPattern.cs" />\r
-    <Compile Include="System.Web.Services.Discovery\DiscoveryClientDocumentCollection.cs" />\r
-    <Compile Include="System.Web.Services.Discovery\DiscoveryClientProtocol.cs" />\r
-    <Compile Include="System.Web.Services.Discovery\DiscoveryClientReferenceCollection.cs" />\r
-    <Compile Include="System.Web.Services.Discovery\DiscoveryClientResult.cs" />\r
-    <Compile Include="System.Web.Services.Discovery\DiscoveryClientResultCollection.cs" />\r
-    <Compile Include="System.Web.Services.Discovery\DiscoveryDocument.cs" />\r
-    <Compile Include="System.Web.Services.Discovery\DiscoveryDocumentLinksPattern.cs" />\r
-    <Compile Include="System.Web.Services.Discovery\DiscoveryDocumentReference.cs" />\r
-    <Compile Include="System.Web.Services.Discovery\DiscoveryDocumentSearchPattern.cs" />\r
-    <Compile Include="System.Web.Services.Discovery\DiscoveryDocumentSerializer.cs" />\r
-    <Compile Include="System.Web.Services.Discovery\DiscoveryExceptionDictionary.cs" />\r
-    <Compile Include="System.Web.Services.Discovery\DiscoveryReference.cs" />\r
-    <Compile Include="System.Web.Services.Discovery\DiscoveryReferenceCollection.cs" />\r
-    <Compile Include="System.Web.Services.Discovery\DiscoveryRequestHandler.cs" />\r
-    <Compile Include="System.Web.Services.Discovery\DiscoverySearchPattern.cs" />\r
-    <Compile Include="System.Web.Services.Discovery\DynamicDiscoveryDocument.cs" />\r
-    <Compile Include="System.Web.Services.Discovery\ExcludePathInfo.cs" />\r
-    <Compile Include="System.Web.Services.Discovery\SchemaReference.cs" />\r
-    <Compile Include="System.Web.Services.Discovery\SoapBinding.cs" />\r
-    <Compile Include="System.Web.Services.Discovery\XmlSchemaSearchPattern.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\AnyReturnReader.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\Fault.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\Fault12.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\Fault12Serializer.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\HtmlFormParameterReader.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\HtmlFormParameterWriter.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\HttpGetClientProtocol.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\HttpGetTypeStubInfo.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\HttpMethodAttribute.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\HttpPostClientProtocol.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\HttpPostTypeStubInfo.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\HttpSimpleClientProtocol.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\HttpSimpleTypeStubInfo.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\HttpSimpleWebServiceHandler.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\HttpSoapWebServiceHandler.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\HttpWebClientProtocol.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\InvokeCompletedEventArgs.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\InvokeCompletedEventHandler.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\LogicalMethodInfo.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\LogicalMethodTypes.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\MatchAttribute.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\Methods.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\MimeFormatter.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\MimeParameterReader.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\MimeParameterWriter.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\MimeReturnReader.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\MimeReturnWriter.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\NopReturnReader.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\PatternMatcher.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\ServerProtocol.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\ServerProtocolFactory.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\ServerType.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\Soap12FaultCodes.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\SoapClientMessage.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\SoapDocumentationHandler.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\SoapDocumentMethodAttribute.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\SoapDocumentServiceAttribute.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\SoapException.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\SoapExtension.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\SoapExtensionAttribute.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\SoapFaultSubcode.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\SoapHeader.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\SoapHeaderAttribute.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\SoapHeaderCollection.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\SoapHeaderDirection.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\SoapHeaderException.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\SoapHeaderHandling.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\SoapHeaderMapping.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\SoapHttpClientProtocol.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\SoapMessage.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\SoapMessageStage.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\SoapParameterStyle.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\SoapProtocolVersion.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\SoapRpcMethodAttribute.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\SoapRpcServiceAttribute.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\SoapServerMessage.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\SoapServerMethod.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\SoapServerProtocol.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\SoapServerProtocolFactory.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\SoapServerType.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\SoapServiceRoutingStyle.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\SoapUnknownHeader.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\TextReturnReader.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\TypeStubManager.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\UrlEncodedParameterWriter.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\UrlParameterReader.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\UrlParameterWriter.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\ValueCollectionParameterReader.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\WebClientAsyncResult.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\WebClientProtocol.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\WebServiceHandler.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\WebServiceHandlerFactory.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\WebServiceHelper.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\XmlReturnReader.cs" />\r
-    <Compile Include="System.Web.Services.Protocols\XmlReturnWriter.cs" />\r
-    <Compile Include="System.Web.Services\WebMethodAttribute.cs" />\r
-    <Compile Include="System.Web.Services\WebService.cs" />\r
-    <Compile Include="System.Web.Services\WebServiceAttribute.cs" />\r
-    <Compile Include="System.Web.Services\WebServiceBindingAttribute.cs" />\r
-    <Compile Include="System.Web.Services\WebServicesDescriptionAttribute.cs" />\r
-    <Compile Include="System.Web.Services\WsiProfiles.cs" />\r  </ItemGroup>\r
+    <Compile Include="ReferenceSources\Res.cs" />\r  </ItemGroup>\r
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. \r
        Other similar extension points exist, see Microsoft.Common.targets.\r
   <Target Name="BeforeBuild">\r
       <Project>{21892B00-1C9F-44F3-AE4C-A6A9A210CEC7}</Project>\r
       <Name>System.Web-plainweb-net_4_5</Name>\r
     </ProjectReference>\r
-    <ProjectReference Include="../System/System-net_4_5.csproj">\r
-      <Project>{FFAC0B73-D997-493B-9C62-27656CD858BB}</Project>\r
-      <Name>System-net_4_5</Name>\r
+    <ProjectReference Include="../System.DirectoryServices/System.DirectoryServices-net_4_5.csproj">\r
+      <Project>{EC4E43E7-63C0-4D64-8B7A-E00C097872A5}</Project>\r
+      <Name>System.DirectoryServices-net_4_5</Name>\r
     </ProjectReference>\r
-    <ProjectReference Include="../System.EnterpriseServices/System.EnterpriseServices-net_4_5.csproj">\r
-      <Project>{773D8BA7-9A88-49AC-81C9-740436270588}</Project>\r
-      <Name>System.EnterpriseServices-net_4_5</Name>\r
+    <ProjectReference Include="../System.Data/System.Data-net_4_5.csproj">\r
+      <Project>{9A33954F-57A8-4D75-B1D8-0F81808A0DD4}</Project>\r
+      <Name>System.Data-net_4_5</Name>\r
     </ProjectReference>\r
-    <ProjectReference Include="../System.XML/System.Xml-net_4_5.csproj">\r
-      <Project>{2951DEC2-4393-4A78-83F9-42EB39CB708F}</Project>\r
-      <Name>System.Xml-net_4_5</Name>\r
-    </ProjectReference>\r
-    <ProjectReference Include="../System.Web/System.Web-plainweb-net_4_5.csproj">\r
-      <Project>{21892B00-1C9F-44F3-AE4C-A6A9A210CEC7}</Project>\r
-      <Name>System.Web-plainweb-net_4_5</Name>\r
+    <ProjectReference Include="../System.Design/System.Design-net_4_5.csproj">\r
+      <Project>{D4E6A482-761B-4B41-8B63-C930CA84D268}</Project>\r
+      <Name>System.Design-net_4_5</Name>\r
     </ProjectReference>\r
     <ProjectReference Include="../System.Configuration/System.Configuration-net_4_5.csproj">\r
       <Project>{D52A2CEA-245E-4877-950E-3EAC5F541B8E}</Project>\r
index 77e7d12584d1f92dc31694c7b6200f28b3188309..f1b350172c181bfbc5de5bdfac758063ebbd84f5 100644 (file)
@@ -90,6 +90,7 @@
     <Compile Include="..\System.Web.Routing\System.Web.Routing\UrlRoutingHandler.cs" />\r
     <Compile Include="..\System.Web.Routing\System.Web.Routing\UrlRoutingModule.cs" />\r
     <Compile Include="..\System.Web.Routing\System.Web.Routing\VirtualPathData.cs" />\r
+    <Compile Include="..\System.Windows.Forms\System.Resources\AssemblyNamesTypeResolutionService.cs" />\r
     <Compile Include="..\System.Windows.Forms\System.Resources\ByteArrayFromResXHandler.cs" />\r
     <Compile Include="..\System.Windows.Forms\System.Resources\FileRefHandler.cs" />\r
     <Compile Include="..\System.Windows.Forms\System.Resources\InMemoryHandler.cs" />\r
       <Project>{251DB111-FEE1-4080-8411-0AD1CC9BA94B}</Project>\r
       <Name>System.Web.Services-net_4_5</Name>\r
     </ProjectReference>\r
+    <ProjectReference Include="../System.Design/System.Design-net_4_5.csproj">\r
+      <Project>{D4E6A482-761B-4B41-8B63-C930CA84D268}</Project>\r
+      <Name>System.Design-net_4_5</Name>\r
+    </ProjectReference>\r
   </ItemGroup>\r
   <ItemGroup>\r
     <Folder Include="Properties\" />\r
index 61eaf8ba3d1f8909eee13ce463c1e1c0793d552f..fe5bb23c9924ee97d2adc1f1800f43553300d645 100644 (file)
@@ -90,6 +90,7 @@
     <Compile Include="..\System.Web.Routing\System.Web.Routing\UrlRoutingHandler.cs" />\r
     <Compile Include="..\System.Web.Routing\System.Web.Routing\UrlRoutingModule.cs" />\r
     <Compile Include="..\System.Web.Routing\System.Web.Routing\VirtualPathData.cs" />\r
+    <Compile Include="..\System.Windows.Forms\System.Resources\AssemblyNamesTypeResolutionService.cs" />\r
     <Compile Include="..\System.Windows.Forms\System.Resources\ByteArrayFromResXHandler.cs" />\r
     <Compile Include="..\System.Windows.Forms\System.Resources\FileRefHandler.cs" />\r
     <Compile Include="..\System.Windows.Forms\System.Resources\InMemoryHandler.cs" />\r
index 229e63f4593f460bb2aeaf9781228ec2b8c042da..c26d1f958f0fe3bdf8326ebba157a3e68c187cc5 100644 (file)
@@ -49,6 +49,7 @@
     <Compile Include="..\..\build\common\MonoTODOAttribute.cs" />\r
     <Compile Include="Assembly\AssemblyInfo.cs" />\r
     <Compile Include="Assembly\Locale.cs" />\r
+    <Compile Include="System.Resources\AssemblyNamesTypeResolutionService.cs" />\r
     <Compile Include="System.Resources\ByteArrayFromResXHandler.cs" />\r
     <Compile Include="System.Resources\FileRefHandler.cs" />\r
     <Compile Include="System.Resources\InMemoryHandler.cs" />\r
index d5b65806e71678cfc5cb0fc73891c2abce553133..13862bb5d506c0a223f994d882cadfaf16cb1d43 100644 (file)
@@ -90,7 +90,7 @@ namespace System.Windows.Forms {
                                throw new InvalidOperationException("There is no associated DataGridView.");
                        }
 
-                       if (editingControl == null)
+                       if (editingControl == null || editingControl.IsDisposed)
                                CreateEditingControl ();
 
                        DataGridView.EditingControlInternal = editingControl;
index 389e61d8a26d7731b928168a8376bb6e6ada6c5d..1d5298bcd3a26184b2a31c125da98c9c6b790a33 100644 (file)
@@ -20,10 +20,10 @@ RESOURCE_STRINGS = \
 PROFILE_ANY_MOBILE := $(filter monotouch monotouch_runtime monodroid xammac mobile mobile_static, $(PROFILE))
 
 LIB_REFS = System
-LIB_MCS_FLAGS = -r:$(corlib)  -nowarn:219,414,649,1717 -unsafe -d:ASYNC -d:DISABLE_CAS_USE
+LIB_MCS_FLAGS = -r:$(corlib)  -nowarn:219,414,649,1717 -unsafe -d:ASYNC
 
 ifeq (2.1, $(FRAMEWORK_VERSION))
-LIB_MCS_FLAGS += -d:AGCLR -d:NET_2_1_HACK -d:DISABLE_XSLT_COMPILER -d:DISABLE_XSLT_SCRIPT,MONO_HYBRID_SYSTEM_XML
+LIB_MCS_FLAGS += -d:AGCLR -d:NET_2_1_HACK -d:DISABLE_XSLT_COMPILER -d:DISABLE_XSLT_SCRIPT,MONO_HYBRID_SYSTEM_XML -d:DISABLE_CAS_USE
 endif
 TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) -nowarn:0618 -nowarn:219 -nowarn:169 -r:System.Data.dll -r:System.Core.dll
 
index 1d41b556f66c4b2fd5d158ab4fd9d64d26240410..1a53e231ecea8336bbc8480c96d8df3aeeeb7418 100644 (file)
@@ -7,7 +7,7 @@
     <SchemaVersion>2.0</SchemaVersion>\r
     <ProjectGuid>{21FB091E-0F84-479E-AB16-6503D36852F9}</ProjectGuid>\r
     <OutputType>Library</OutputType>\r
-    <NoWarn>1699,219,414,612,642,649</NoWarn>\r
+    <NoWarn>1699,219,414,649,1717</NoWarn>\r
     <OutputPath>./../../class/lib/net_4_5/bare</OutputPath>\r
     <NoStdLib>True</NoStdLib>\r
     <NoConfig>True</NoConfig>\r
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">\r
     <DebugSymbols>true</DebugSymbols>\r
     <DebugType>full</DebugType>\r
-    <NoWarn>1699,219,414,612,642,649</NoWarn>\r
+    <NoWarn>1699,219,414,649,1717</NoWarn>\r
     <Optimize>false</Optimize>\r
-    <DefineConstants>DEBUG;TRACE;NET_4_0;NET_4_5;MONO;DISABLE_CAS_USE;ASYNC;DISABLE_CAS_USE;MONO_HYBRID_SYSTEM_XML</DefineConstants>\r
+    <DefineConstants>DEBUG;TRACE;NET_4_0;NET_4_5;MONO;DISABLE_CAS_USE;ASYNC</DefineConstants>\r
     <ErrorReport>prompt</ErrorReport>\r
     <WarningLevel>4</WarningLevel>\r
   </PropertyGroup>\r
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">\r
     <DebugType>pdbonly</DebugType>\r
-    <NoWarn>1699,219,414,612,642,649</NoWarn>\r
+    <NoWarn>1699,219,414,649,1717</NoWarn>\r
     <Optimize>true</Optimize>\r
-    <DefineConstants>NET_4_0;NET_4_5;MONO;DISABLE_CAS_USE;ASYNC;DISABLE_CAS_USE;MONO_HYBRID_SYSTEM_XML</DefineConstants>\r
+    <DefineConstants>NET_4_0;NET_4_5;MONO;DISABLE_CAS_USE;ASYNC</DefineConstants>\r
     <ErrorReport>prompt</ErrorReport>\r
     <WarningLevel>4</WarningLevel>\r
   </PropertyGroup>\r
@@ -45,7 +45,6 @@
   </PropertyGroup>\r
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />\r
   <ItemGroup>\r
-    <Compile Include="..\..\..\external\referencesource\System.Data.SqlXml\System\Xml\Xsl\Assembly.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Data.SqlXml\System\Xml\Xsl\IlGen\GenerateHelper.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Data.SqlXml\System\Xml\Xsl\IlGen\IteratorDescriptor.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Data.SqlXml\System\Xml\Xsl\IlGen\OptimizerPatterns.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Schema\XsdDateTime.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Schema\XsdDuration.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Schema\XsdValidator.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\_Events.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\Advanced\SchemaImporterExtension.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\AppSettings.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\CodeExporter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\CodeGenerationoptions.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\CodeGenerator.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\CodeIdentifier.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\CodeIdentifiers.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\Compilation.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\Compiler.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\Configuration\ConfigurationStrings.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\Configuration\DateTimeSerializationSection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\Configuration\SchemaImporterExtensionElement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\Configuration\SchemaImporterExtensionElementCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\Configuration\SchemaImporterExtensionsSection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\Configuration\SerializationSectionGroup.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\Configuration\XmlSerializerSection.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\ImportContext.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\indentedWriter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\IXmlSerializable.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\IXmlTextParser.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\Mappings.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\Models.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\NameTable.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\PrimitiveXmlSerializers.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\SchemaImporter.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\SchemaObjectWriter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\SoapAttributeAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\SoapAttributeOverrides.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\SoapAttributes.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\SoapCodeExporter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\SoapElementAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\SoapEnumAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\SoapIgnoreAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\SoapIncludeAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\SoapReflectionImporter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\SoapSchemaExporter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\SoapSchemaImporter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\SoapSchemamember.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\SoapTypeAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\SourceInfo.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\TypeExtensions.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\Types.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlAnyAttributeAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlAnyElementAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlAnyElementAttributes.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlArrayAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlArrayItemAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlArrayItemAttributes.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlAttributeAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlAttributeOverrides.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlAttributes.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlChoiceIdentifierAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlCodeExporter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlCountingReader.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\Xmlcustomformatter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlElementAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlElementAttributes.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlEnumAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlIgnoreAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlIncludeAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlMapping.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlMemberMapping.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlMembersMapping.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlNamespaceDeclarationsAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlReflectionImporter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlReflectionMember.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlRootAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlSchemaExporter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlSchemaImporter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlSchemaProviderAttribute.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlSchemas.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlSerializationGeneratedCode.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlSerializationILGen.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlSerializationReader.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlSerializationReaderILGen.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlSerializationWriter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlSerializationWriterILGen.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlSerializer.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlSerializerAssemblyAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlSerializerFactory.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlSerializerNamespaces.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlSerializerVersionAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlTextAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlTypeAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlTypeMapping.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\ValidateNames.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\XmlCharType.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\XmlComplianceUtil.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Xslt\XslTransform.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Xslt\XsltSettings.cs" />\r
     <Compile Include="..\..\build\common\Consts.cs" />\r
-    <Compile Include="..\..\build\common\Locale.cs" />\r
-    <Compile Include="..\..\build\common\MonoTODOAttribute.cs" />\r
     <Compile Include="..\..\build\common\SR.cs" />\r
     <Compile Include="Assembly\AssemblyInfo.cs" />\r
-    <Compile Include="Dummy.cs" />\r
-    <Compile Include="ReferenceSources\SpecifiedAccessor.cs" />\r
-    <Compile Include="ReferenceSources\ThisAssembly.cs" />\r
-    <Compile Include="ReferenceSources\TypeScope.cs" />\r
-    <Compile Include="ReferenceSources\Wsdl.cs" />\r
-    <Compile Include="System.Xml.Res.cs" />\r
-    <Compile Include="System.Xml.Serialization.Advanced\SchemaImporterExtension.cs" />\r
-    <Compile Include="System.Xml.Serialization.Advanced\SchemaImporterExtensionCollection.cs" />\r
-    <Compile Include="System.Xml.Serialization.Configuration\DateTimeSerializationSection.cs" />\r
-    <Compile Include="System.Xml.Serialization.Configuration\SchemaImporterExtensionElement.cs" />\r
-    <Compile Include="System.Xml.Serialization.Configuration\SchemaImporterExtensionElementCollection.cs" />\r
-    <Compile Include="System.Xml.Serialization.Configuration\SchemaImporterExtensionsSection.cs" />\r
-    <Compile Include="System.Xml.Serialization.Configuration\SerializationSectionGroup.cs" />\r
-    <Compile Include="System.Xml.Serialization.Configuration\XmlSerializerSection.cs" />\r
-    <Compile Include="System.Xml.Serialization\CodeExporter.cs" />\r
-    <Compile Include="System.Xml.Serialization\CodeGenerationOptions.cs" />\r
-    <Compile Include="System.Xml.Serialization\CodeIdentifiers.cs" />\r
-    <Compile Include="System.Xml.Serialization\ImportContext.cs" />\r
-    <Compile Include="System.Xml.Serialization\IXmlSerializable.cs" />\r
-    <Compile Include="System.Xml.Serialization\IXmlTextParser.cs" />\r
-    <Compile Include="System.Xml.Serialization\KeyHelper.cs" />\r
-    <Compile Include="System.Xml.Serialization\MapCodeGenerator.cs" />\r
-    <Compile Include="System.Xml.Serialization\ReflectionHelper.cs" />\r
-    <Compile Include="System.Xml.Serialization\SchemaImporter.cs" />\r
-    <Compile Include="System.Xml.Serialization\SchemaTypes.cs" />\r
-    <Compile Include="System.Xml.Serialization\SerializationCodeGenerator.cs" />\r
-    <Compile Include="System.Xml.Serialization\SerializationCodeGeneratorConfiguration.cs" />\r
-    <Compile Include="System.Xml.Serialization\SerializationSource.cs" />\r
-    <Compile Include="System.Xml.Serialization\SoapAttributeAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\SoapAttributeOverrides.cs" />\r
-    <Compile Include="System.Xml.Serialization\SoapAttributes.cs" />\r
-    <Compile Include="System.Xml.Serialization\SoapCodeExporter.cs" />\r
-    <Compile Include="System.Xml.Serialization\SoapElementAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\SoapEnumAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\SoapIgnoreAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\SoapIncludeAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\SoapReflectionImporter.cs" />\r
-    <Compile Include="System.Xml.Serialization\SoapSchemaExporter.cs" />\r
-    <Compile Include="System.Xml.Serialization\SoapSchemaImporter.cs" />\r
-    <Compile Include="System.Xml.Serialization\SoapSchemaMember.cs" />\r
-    <Compile Include="System.Xml.Serialization\SoapTypeAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\TypeData.cs" />\r
-    <Compile Include="System.Xml.Serialization\TypeMember.cs" />\r
-    <Compile Include="System.Xml.Serialization\TypeTranslator.cs" />\r
-    <Compile Include="System.Xml.Serialization\UnreferencedObjectEventArgs.cs" />\r
-    <Compile Include="System.Xml.Serialization\UnreferencedObjectEventHandler.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlAnyAttributeAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlAnyElementAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlAnyElementAttributes.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlArrayAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlArrayItemAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlArrayItemAttributes.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlAttributeAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlAttributeEventArgs.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlAttributeEventHandler.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlAttributeOverrides.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlAttributes.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlChoiceIdentifierAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlCodeExporter.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlCustomFormatter.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlDeserializationEvents.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlElementAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlElementAttributes.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlElementEventArgs.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlElementEventHandler.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlEnumAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlIgnoreAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlIncludeAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlMapping.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlMappingAccess.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlMemberMapping.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlMembersMapping.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlNamespaceDeclarationsAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlNodeEventArgs.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlNodeEventHandler.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlReflectionImporter.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlReflectionMember.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlRootAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlSchemaExporter.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlSchemaImporter.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlSchemaProviderAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlSerializationCollectionFixupCallback.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlSerializationFixupCallback.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlSerializationGeneratedCode.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlSerializationReadCallback.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlSerializationReader.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlSerializationReaderInterpreter.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlSerializationWriteCallback.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlSerializationWriter.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlSerializationWriterInterpreter.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlSerializer.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlSerializerAssemblyAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlSerializerFactory.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlSerializerImplementation.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlSerializerVersionAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlTextAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlTypeAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlTypeMapElementInfo.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlTypeMapMember.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlTypeMapMemberAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlTypeMapMemberElement.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlTypeMapMemberNamespaces.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlTypeMapping.cs" />\r
-    <Compile Include="System.Xml.Utils.Res.cs" />\r  </ItemGroup>\r
+    <Compile Include="ReferenceSources\Res.cs" />\r
+    <Compile Include="ReferenceSources\ThisAssembly.cs" />\r  </ItemGroup>\r
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. \r
        Other similar extension points exist, see Microsoft.Common.targets.\r
   <Target Name="BeforeBuild">\r
index 3e6947e092ade86b1bfc42cbf7cb8cee9c1f76db..15f19ab307c8a71d52935d28c1e18aa9730f81a1 100644 (file)
@@ -7,7 +7,7 @@
     <SchemaVersion>2.0</SchemaVersion>\r
     <ProjectGuid>{2951DEC2-4393-4A78-83F9-42EB39CB708F}</ProjectGuid>\r
     <OutputType>Library</OutputType>\r
-    <NoWarn>1699,219,414,612,642,649</NoWarn>\r
+    <NoWarn>1699,219,414,649,1717</NoWarn>\r
     <OutputPath>./../../class/lib/net_4_5</OutputPath>\r
     <NoStdLib>True</NoStdLib>\r
     <NoConfig>True</NoConfig>\r
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">\r
     <DebugSymbols>true</DebugSymbols>\r
     <DebugType>full</DebugType>\r
-    <NoWarn>1699,219,414,612,642,649</NoWarn>\r
+    <NoWarn>1699,219,414,649,1717</NoWarn>\r
     <Optimize>false</Optimize>\r
-    <DefineConstants>DEBUG;TRACE;NET_4_0;NET_4_5;MONO;DISABLE_CAS_USE;ASYNC;DISABLE_CAS_USE;MONO_HYBRID_SYSTEM_XML;CONFIGURATION_DEP</DefineConstants>\r
+    <DefineConstants>DEBUG;TRACE;NET_4_0;NET_4_5;MONO;DISABLE_CAS_USE;ASYNC;CONFIGURATION_DEP</DefineConstants>\r
     <ErrorReport>prompt</ErrorReport>\r
     <WarningLevel>4</WarningLevel>\r
   </PropertyGroup>\r
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">\r
     <DebugType>pdbonly</DebugType>\r
-    <NoWarn>1699,219,414,612,642,649</NoWarn>\r
+    <NoWarn>1699,219,414,649,1717</NoWarn>\r
     <Optimize>true</Optimize>\r
-    <DefineConstants>NET_4_0;NET_4_5;MONO;DISABLE_CAS_USE;ASYNC;DISABLE_CAS_USE;MONO_HYBRID_SYSTEM_XML;CONFIGURATION_DEP</DefineConstants>\r
+    <DefineConstants>NET_4_0;NET_4_5;MONO;DISABLE_CAS_USE;ASYNC;CONFIGURATION_DEP</DefineConstants>\r
     <ErrorReport>prompt</ErrorReport>\r
     <WarningLevel>4</WarningLevel>\r
   </PropertyGroup>\r
@@ -45,7 +45,6 @@
   </PropertyGroup>\r
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />\r
   <ItemGroup>\r
-    <Compile Include="..\..\..\external\referencesource\System.Data.SqlXml\System\Xml\Xsl\Assembly.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Data.SqlXml\System\Xml\Xsl\IlGen\GenerateHelper.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Data.SqlXml\System\Xml\Xsl\IlGen\IteratorDescriptor.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Data.SqlXml\System\Xml\Xsl\IlGen\OptimizerPatterns.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Schema\XsdDateTime.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Schema\XsdDuration.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Schema\XsdValidator.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\_Events.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\Advanced\SchemaImporterExtension.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\AppSettings.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\CodeExporter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\CodeGenerationoptions.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\CodeGenerator.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\CodeIdentifier.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\CodeIdentifiers.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\Compilation.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\Compiler.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\Configuration\ConfigurationStrings.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\Configuration\DateTimeSerializationSection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\Configuration\SchemaImporterExtensionElement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\Configuration\SchemaImporterExtensionElementCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\Configuration\SchemaImporterExtensionsSection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\Configuration\SerializationSectionGroup.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\Configuration\XmlSerializerSection.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\ImportContext.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\indentedWriter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\IXmlSerializable.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\IXmlTextParser.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\Mappings.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\Models.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\NameTable.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\PrimitiveXmlSerializers.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\SchemaImporter.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\SchemaObjectWriter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\SoapAttributeAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\SoapAttributeOverrides.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\SoapAttributes.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\SoapCodeExporter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\SoapElementAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\SoapEnumAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\SoapIgnoreAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\SoapIncludeAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\SoapReflectionImporter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\SoapSchemaExporter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\SoapSchemaImporter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\SoapSchemamember.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\SoapTypeAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\SourceInfo.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\TypeExtensions.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\Types.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlAnyAttributeAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlAnyElementAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlAnyElementAttributes.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlArrayAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlArrayItemAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlArrayItemAttributes.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlAttributeAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlAttributeOverrides.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlAttributes.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlChoiceIdentifierAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlCodeExporter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlCountingReader.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\Xmlcustomformatter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlElementAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlElementAttributes.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlEnumAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlIgnoreAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlIncludeAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlMapping.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlMemberMapping.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlMembersMapping.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlNamespaceDeclarationsAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlReflectionImporter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlReflectionMember.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlRootAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlSchemaExporter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlSchemaImporter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlSchemaProviderAttribute.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlSchemas.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlSerializationGeneratedCode.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlSerializationILGen.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlSerializationReader.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlSerializationReaderILGen.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlSerializationWriter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlSerializationWriterILGen.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlSerializer.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlSerializerAssemblyAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlSerializerFactory.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlSerializerNamespaces.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlSerializerVersionAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlTextAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlTypeAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Serialization\XmlTypeMapping.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\ValidateNames.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\XmlCharType.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\XmlComplianceUtil.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Xslt\XslTransform.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System.Xml\System\Xml\Xslt\XsltSettings.cs" />\r
     <Compile Include="..\..\build\common\Consts.cs" />\r
-    <Compile Include="..\..\build\common\Locale.cs" />\r
-    <Compile Include="..\..\build\common\MonoTODOAttribute.cs" />\r
     <Compile Include="..\..\build\common\SR.cs" />\r
     <Compile Include="Assembly\AssemblyInfo.cs" />\r
-    <Compile Include="Dummy.cs" />\r
-    <Compile Include="ReferenceSources\SpecifiedAccessor.cs" />\r
-    <Compile Include="ReferenceSources\ThisAssembly.cs" />\r
-    <Compile Include="ReferenceSources\TypeScope.cs" />\r
-    <Compile Include="ReferenceSources\Wsdl.cs" />\r
-    <Compile Include="System.Xml.Res.cs" />\r
-    <Compile Include="System.Xml.Serialization.Advanced\SchemaImporterExtension.cs" />\r
-    <Compile Include="System.Xml.Serialization.Advanced\SchemaImporterExtensionCollection.cs" />\r
-    <Compile Include="System.Xml.Serialization.Configuration\DateTimeSerializationSection.cs" />\r
-    <Compile Include="System.Xml.Serialization.Configuration\SchemaImporterExtensionElement.cs" />\r
-    <Compile Include="System.Xml.Serialization.Configuration\SchemaImporterExtensionElementCollection.cs" />\r
-    <Compile Include="System.Xml.Serialization.Configuration\SchemaImporterExtensionsSection.cs" />\r
-    <Compile Include="System.Xml.Serialization.Configuration\SerializationSectionGroup.cs" />\r
-    <Compile Include="System.Xml.Serialization.Configuration\XmlSerializerSection.cs" />\r
-    <Compile Include="System.Xml.Serialization\CodeExporter.cs" />\r
-    <Compile Include="System.Xml.Serialization\CodeGenerationOptions.cs" />\r
-    <Compile Include="System.Xml.Serialization\CodeIdentifiers.cs" />\r
-    <Compile Include="System.Xml.Serialization\ImportContext.cs" />\r
-    <Compile Include="System.Xml.Serialization\IXmlSerializable.cs" />\r
-    <Compile Include="System.Xml.Serialization\IXmlTextParser.cs" />\r
-    <Compile Include="System.Xml.Serialization\KeyHelper.cs" />\r
-    <Compile Include="System.Xml.Serialization\MapCodeGenerator.cs" />\r
-    <Compile Include="System.Xml.Serialization\ReflectionHelper.cs" />\r
-    <Compile Include="System.Xml.Serialization\SchemaImporter.cs" />\r
-    <Compile Include="System.Xml.Serialization\SchemaTypes.cs" />\r
-    <Compile Include="System.Xml.Serialization\SerializationCodeGenerator.cs" />\r
-    <Compile Include="System.Xml.Serialization\SerializationCodeGeneratorConfiguration.cs" />\r
-    <Compile Include="System.Xml.Serialization\SerializationSource.cs" />\r
-    <Compile Include="System.Xml.Serialization\SoapAttributeAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\SoapAttributeOverrides.cs" />\r
-    <Compile Include="System.Xml.Serialization\SoapAttributes.cs" />\r
-    <Compile Include="System.Xml.Serialization\SoapCodeExporter.cs" />\r
-    <Compile Include="System.Xml.Serialization\SoapElementAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\SoapEnumAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\SoapIgnoreAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\SoapIncludeAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\SoapReflectionImporter.cs" />\r
-    <Compile Include="System.Xml.Serialization\SoapSchemaExporter.cs" />\r
-    <Compile Include="System.Xml.Serialization\SoapSchemaImporter.cs" />\r
-    <Compile Include="System.Xml.Serialization\SoapSchemaMember.cs" />\r
-    <Compile Include="System.Xml.Serialization\SoapTypeAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\TypeData.cs" />\r
-    <Compile Include="System.Xml.Serialization\TypeMember.cs" />\r
-    <Compile Include="System.Xml.Serialization\TypeTranslator.cs" />\r
-    <Compile Include="System.Xml.Serialization\UnreferencedObjectEventArgs.cs" />\r
-    <Compile Include="System.Xml.Serialization\UnreferencedObjectEventHandler.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlAnyAttributeAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlAnyElementAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlAnyElementAttributes.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlArrayAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlArrayItemAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlArrayItemAttributes.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlAttributeAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlAttributeEventArgs.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlAttributeEventHandler.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlAttributeOverrides.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlAttributes.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlChoiceIdentifierAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlCodeExporter.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlCustomFormatter.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlDeserializationEvents.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlElementAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlElementAttributes.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlElementEventArgs.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlElementEventHandler.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlEnumAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlIgnoreAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlIncludeAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlMapping.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlMappingAccess.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlMemberMapping.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlMembersMapping.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlNamespaceDeclarationsAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlNodeEventArgs.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlNodeEventHandler.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlReflectionImporter.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlReflectionMember.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlRootAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlSchemaExporter.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlSchemaImporter.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlSchemaProviderAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlSerializationCollectionFixupCallback.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlSerializationFixupCallback.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlSerializationGeneratedCode.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlSerializationReadCallback.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlSerializationReader.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlSerializationReaderInterpreter.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlSerializationWriteCallback.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlSerializationWriter.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlSerializationWriterInterpreter.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlSerializer.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlSerializerAssemblyAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlSerializerFactory.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlSerializerImplementation.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlSerializerVersionAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlTextAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlTypeAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlTypeMapElementInfo.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlTypeMapMember.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlTypeMapMemberAttribute.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlTypeMapMemberElement.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlTypeMapMemberNamespaces.cs" />\r
-    <Compile Include="System.Xml.Serialization\XmlTypeMapping.cs" />\r
-    <Compile Include="System.Xml.Utils.Res.cs" />\r  </ItemGroup>\r
+    <Compile Include="ReferenceSources\Res.cs" />\r
+    <Compile Include="ReferenceSources\ThisAssembly.cs" />\r  </ItemGroup>\r
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. \r
        Other similar extension points exist, see Microsoft.Common.targets.\r
   <Target Name="BeforeBuild">\r
index 49a813e34bf49b5714465d0b7767a57f2a69575a..ec13691da1c6f391354da03759db0b487818446c 100644 (file)
@@ -163,6 +163,7 @@ namespace MonoTests.System.XmlSerialization
                }
 
                [Test]
+               [Category ("MobileNotWorking")]
                [ExpectedException (typeof (InvalidOperationException))]
                public void DeserializeArrayReferences ()
                {
index 485064360bc7c16c827fbfee0c91d9744e9dc1a2..7969f402f8f14a42963882a9c5d0e8db5ae657ca 100644 (file)
@@ -51,10 +51,18 @@ namespace MonoTests.System.Xml
                public void CreateEvidenceForUrl_Basic ()
                {
                        Evidence e = XmlSecureResolver.CreateEvidenceForUrl (null);
+#if DISABLE_CAS_USE
+                       Assert.IsNull (e);
+#else
                        Assert.AreEqual (0, e.Count, "null");
+#endif
 
                        e = XmlSecureResolver.CreateEvidenceForUrl (String.Empty);
+#if DISABLE_CAS_USE
+                       Assert.IsNull (e);
+#else
                        Assert.AreEqual (0, e.Count, "String.Empty");
+#endif
                }
 
                [Test]
index d58ff4e87e0516abddcda6beb2c113a88228a346..9a5bd93fa45ebd9d269debb27cc9252fb8aff0fb 100644 (file)
@@ -7,7 +7,7 @@
     <SchemaVersion>2.0</SchemaVersion>\r
     <ProjectGuid>{8328796E-8A15-4972-8F1E-2F15E7D57C42}</ProjectGuid>\r
     <OutputType>Library</OutputType>\r
-    <NoWarn>1699,1720</NoWarn>\r
+    <NoWarn>1699</NoWarn>\r
     <OutputPath>./../../class/lib/net_4_5</OutputPath>\r
     <NoStdLib>True</NoStdLib>\r
     <NoConfig>True</NoConfig>\r
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">\r
     <DebugSymbols>true</DebugSymbols>\r
     <DebugType>full</DebugType>\r
-    <NoWarn>1699,1720</NoWarn>\r
+    <NoWarn>1699</NoWarn>\r
     <Optimize>false</Optimize>\r
-    <DefineConstants>DEBUG;TRACE;NET_4_0;NET_4_5;MONO;DISABLE_CAS_USE;NET_3_5</DefineConstants>\r
+    <DefineConstants>DEBUG;TRACE;NET_4_0;NET_4_5;MONO;DISABLE_CAS_USE</DefineConstants>\r
     <ErrorReport>prompt</ErrorReport>\r
     <WarningLevel>4</WarningLevel>\r
   </PropertyGroup>\r
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">\r
     <DebugType>pdbonly</DebugType>\r
-    <NoWarn>1699,1720</NoWarn>\r
+    <NoWarn>1699</NoWarn>\r
     <Optimize>true</Optimize>\r
-    <DefineConstants>NET_4_0;NET_4_5;MONO;DISABLE_CAS_USE;NET_3_5</DefineConstants>\r
+    <DefineConstants>NET_4_0;NET_4_5;MONO;DISABLE_CAS_USE</DefineConstants>\r
     <ErrorReport>prompt</ErrorReport>\r
     <WarningLevel>4</WarningLevel>\r
   </PropertyGroup>\r
diff --git a/mcs/class/System/ReferenceSources/HttpSysSettings.cs b/mcs/class/System/ReferenceSources/HttpSysSettings.cs
new file mode 100644 (file)
index 0000000..9bfbfa1
--- /dev/null
@@ -0,0 +1,8 @@
+namespace System.Net
+{
+       static class HttpSysSettings
+       {
+               public const bool EnableNonUtf8 = true;
+               public const bool FavorUtf8 = true;
+       }
+}
index 0f45678bdb9a30f383d9cbf64e7b33722f3f0a0f..71c1c5a9abbeaa624d38075de3dd569d16f4e01c 100644 (file)
@@ -14,6 +14,12 @@ namespace System.Net {
                        }
                }
 
+               internal static TraceSource HttpListener {
+                       get {
+                               return null;
+                       }
+               }
+
                [Conditional ("TRACE")]
                internal static void Enter(TraceSource traceSource, object obj, string method, object paramObject) {
                }
@@ -21,6 +27,9 @@ namespace System.Net {
                [Conditional ("TRACE")]
                internal static void Exit(TraceSource traceSource, object obj, string method, object retObject) {
                }
+
+               internal static void PrintWarning(TraceSource traceSource, object obj, string method, string msg) {
+               }
        }
 
 #if MOBILE
index ed2f51360702d52859d0f900fd8f65237d68d035..595c569e6c4a39edb008bec8bff173773ddda1ff 100644 (file)
@@ -9,7 +9,11 @@ namespace System.Net.Configuration {
                        }
                }
 
+#if !MOBILE
                internal UnicodeEncodingConformance WebUtilityUnicodeEncodingConformance = UnicodeEncodingConformance.Auto;
                internal UnicodeDecodingConformance WebUtilityUnicodeDecodingConformance = UnicodeDecodingConformance.Auto;
+#endif
+
+               internal bool HttpListenerUnescapeRequestUrl = true;
        }
-}
\ No newline at end of file
+}
index 55c3ed4f979397dab409492be8ec5cda44496a36..5d82088e5309b94a3b8b47475bdf458950a47608 100644 (file)
   </PropertyGroup>\r
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />\r
   <ItemGroup>\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeArgumentReferenceExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeArrayCreateExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeArrayIndexerExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeAssignStatement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeAttachEventStatement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeAttributeArgument.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeAttributeArgumentCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeAttributeDeclaration.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeAttributeDeclarationCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeBaseReferenceExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeBinaryOperatorExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeBinaryOperatorType.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeCastExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeCatchClause.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeCatchClauseCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeChecksumPragma.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeComment.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeCommentStatement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeCommentStatementCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeCompileUnit.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeConditionStatement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeConstructor.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeDefaultValueExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeDelegateCreateExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeDelegateInvokeExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeDirectionExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeDirective.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeDirectiveCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeEntryPointMethod.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeEventReferenceExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeExpressionCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeExpressionStatement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeFieldReferenceExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeGotoStatement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeIndexerExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeIterationStatement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeLabeledStatement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeLinePragma.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeMemberEvent.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeMemberField.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeMemberMethod.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeMemberProperty.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeMethodInvokeExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\codemethodreferenceexpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeMethodReturnStatement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeNamespace.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeNamespaceCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeNamespaceImport.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeNamespaceImportCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeObject.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeObjectCreateExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeParameterDeclarationExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeParameterDeclarationExpressionCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodePrimitiveExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodePropertyReferenceExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodePropertySetValueReferenceExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeRegionDirective.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeRegionMode.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeRemoveEventStatement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeSnippetCompileUnit.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeSnippetExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeSnippetStatement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeSnippetTypeMember.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeStatement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeStatementCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeThisReferenceExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeThrowExceptionStatement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeTryCatchFinallyStatement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeTypeConstructor.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeTypeDeclaration.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeTypeDeclarationCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeTypeDelegate.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeTypeMember.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeTypeMemberCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeTypeOfExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeTypeParameter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeTypeParameterCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeTypeReference.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeTypeReferenceCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeTypeReferenceExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeVariableDeclarationStatement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeVariableReferenceExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\compiler\CodeGenerator.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\compiler\CodeGeneratorOptions.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\compiler\CodeValidator.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\compiler\CompilerError.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\compiler\CompilerErrorCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\compiler\CompilerParameters.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\compiler\GeneratedCodeAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\compiler\GeneratorSupport.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\compiler\ICodeCompiler.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\compiler\ICodeGenerator.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\compiler\ICodeParser.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\compiler\IndentTextWriter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\compiler\LanguageOptions.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\FieldDirection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\MemberAttributes.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System\compmod\system\collections\generic\bithelper.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System\compmod\system\collections\generic\debugview.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System\compmod\system\collections\generic\iset.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System\net\System\Net\cookiecollection.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System\net\System\Net\cookiecontainer.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System\net\System\Net\cookieexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\net\System\Net\HttpListenerRequestUriBuilder.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System\net\System\Net\Internal.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\net\System\Net\Sockets\SocketOptionName.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System\net\System\Net\UnicodeDecodingConformance.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System\net\System\Net\UnicodeEncodingConformance.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System\net\System\Net\webclient.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System\services\timers\system\timers\TimersDescriptionAttribute.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System\sys\system\collections\concurrent\BlockingCollection.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System\sys\system\collections\concurrent\ConcurrentBag.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\sys\system\runtime\versioning\FrameworkName.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System\sys\system\threading\Barrier.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System\sys\system\windows\markup\ValueSerializerAttribute.cs" />\r
     <Compile Include="..\..\build\common\SR.cs" />\r
     <Compile Include="System.CodeDom.Compiler\CodeCompiler.cs" />\r
     <Compile Include="System.CodeDom.Compiler\CodeDomConfigurationHandler.cs" />\r
     <Compile Include="System.CodeDom.Compiler\CodeDomProvider.cs" />\r
-    <Compile Include="System.CodeDom.Compiler\CodeGenerator.cs" />\r
-    <Compile Include="System.CodeDom.Compiler\CodeGeneratorOptions.cs" />\r
     <Compile Include="System.CodeDom.Compiler\CodeParser.cs" />\r
     <Compile Include="System.CodeDom.Compiler\Compiler.cs" />\r
     <Compile Include="System.CodeDom.Compiler\CompilerCollection.cs" />\r
-    <Compile Include="System.CodeDom.Compiler\CompilerError.cs" />\r
-    <Compile Include="System.CodeDom.Compiler\CompilerErrorCollection.cs" />\r
     <Compile Include="System.CodeDom.Compiler\CompilerInfo.cs" />\r
-    <Compile Include="System.CodeDom.Compiler\CompilerParameters.cs" />\r
     <Compile Include="System.CodeDom.Compiler\CompilerProviderOption.cs" />\r
     <Compile Include="System.CodeDom.Compiler\CompilerProviderOptionsCollection.cs" />\r
     <Compile Include="System.CodeDom.Compiler\CompilerResults.cs" />\r
     <Compile Include="System.CodeDom.Compiler\Executor.cs" />\r
-    <Compile Include="System.CodeDom.Compiler\GeneratedCodeAttribute.cs" />\r
-    <Compile Include="System.CodeDom.Compiler\GeneratorSupport.cs" />\r
-    <Compile Include="System.CodeDom.Compiler\ICodeCompiler.cs" />\r
-    <Compile Include="System.CodeDom.Compiler\ICodeGenerator.cs" />\r
-    <Compile Include="System.CodeDom.Compiler\ICodeParser.cs" />\r
-    <Compile Include="System.CodeDom.Compiler\IndentedTextWriter.cs" />\r
-    <Compile Include="System.CodeDom.Compiler\LanguageOptions.cs" />\r
     <Compile Include="System.CodeDom.Compiler\TempFileCollection.cs" />\r
-    <Compile Include="System.CodeDom\CodeArgumentReferenceExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeArrayCreateExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeArrayIndexerExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeAssignStatement.cs" />\r
-    <Compile Include="System.CodeDom\CodeAttachEventStatement.cs" />\r
-    <Compile Include="System.CodeDom\CodeAttributeArgument.cs" />\r
-    <Compile Include="System.CodeDom\CodeAttributeArgumentCollection.cs" />\r
-    <Compile Include="System.CodeDom\CodeAttributeDeclaration.cs" />\r
-    <Compile Include="System.CodeDom\CodeAttributeDeclarationCollection.cs" />\r
-    <Compile Include="System.CodeDom\CodeBaseReferenceExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeBinaryOperatorExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeBinaryOperatorType.cs" />\r
-    <Compile Include="System.CodeDom\CodeCastExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeCatchClause.cs" />\r
-    <Compile Include="System.CodeDom\CodeCatchClauseCollection.cs" />\r
-    <Compile Include="System.CodeDom\CodeChecksumPragma.cs" />\r
-    <Compile Include="System.CodeDom\CodeComment.cs" />\r
-    <Compile Include="System.CodeDom\CodeCommentStatement.cs" />\r
-    <Compile Include="System.CodeDom\CodeCommentStatementCollection.cs" />\r
-    <Compile Include="System.CodeDom\CodeCompileUnit.cs" />\r
-    <Compile Include="System.CodeDom\CodeConditionStatement.cs" />\r
-    <Compile Include="System.CodeDom\CodeConstructor.cs" />\r
-    <Compile Include="System.CodeDom\CodeDefaultValueExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeDelegateCreateExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeDelegateInvokeExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeDirectionExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeDirective.cs" />\r
-    <Compile Include="System.CodeDom\CodeDirectiveCollection.cs" />\r
-    <Compile Include="System.CodeDom\CodeEntryPointMethod.cs" />\r
-    <Compile Include="System.CodeDom\CodeEventReferenceExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeExpressionCollection.cs" />\r
-    <Compile Include="System.CodeDom\CodeExpressionStatement.cs" />\r
-    <Compile Include="System.CodeDom\CodeFieldReferenceExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeGotoStatement.cs" />\r
-    <Compile Include="System.CodeDom\CodeIndexerExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeIterationStatement.cs" />\r
-    <Compile Include="System.CodeDom\CodeLabeledStatement.cs" />\r
-    <Compile Include="System.CodeDom\CodeLinePragma.cs" />\r
-    <Compile Include="System.CodeDom\CodeMemberEvent.cs" />\r
-    <Compile Include="System.CodeDom\CodeMemberField.cs" />\r
-    <Compile Include="System.CodeDom\CodeMemberMethod.cs" />\r
-    <Compile Include="System.CodeDom\CodeMemberProperty.cs" />\r
-    <Compile Include="System.CodeDom\CodeMethodInvokeExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeMethodReferenceExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeMethodReturnStatement.cs" />\r
-    <Compile Include="System.CodeDom\CodeNamespace.cs" />\r
-    <Compile Include="System.CodeDom\CodeNamespaceCollection.cs" />\r
-    <Compile Include="System.CodeDom\CodeNamespaceImport.cs" />\r
-    <Compile Include="System.CodeDom\CodeNamespaceImportCollection.cs" />\r
-    <Compile Include="System.CodeDom\CodeObject.cs" />\r
-    <Compile Include="System.CodeDom\CodeObjectCreateExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeParameterDeclarationExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeParameterDeclarationExpressionCollection.cs" />\r
-    <Compile Include="System.CodeDom\CodePrimitiveExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodePropertyReferenceExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodePropertySetValueReferenceExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeRegionDirective.cs" />\r
-    <Compile Include="System.CodeDom\CodeRegionMode.cs" />\r
-    <Compile Include="System.CodeDom\CodeRemoveEventStatement.cs" />\r
-    <Compile Include="System.CodeDom\CodeSnippetCompileUnit.cs" />\r
-    <Compile Include="System.CodeDom\CodeSnippetExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeSnippetStatement.cs" />\r
-    <Compile Include="System.CodeDom\CodeSnippetTypeMember.cs" />\r
-    <Compile Include="System.CodeDom\CodeStatement.cs" />\r
-    <Compile Include="System.CodeDom\CodeStatementCollection.cs" />\r
-    <Compile Include="System.CodeDom\CodeThisReferenceExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeThrowExceptionStatement.cs" />\r
-    <Compile Include="System.CodeDom\CodeTryCatchFinallyStatement.cs" />\r
-    <Compile Include="System.CodeDom\CodeTypeConstructor.cs" />\r
-    <Compile Include="System.CodeDom\CodeTypeDeclaration.cs" />\r
-    <Compile Include="System.CodeDom\CodeTypeDeclarationCollection.cs" />\r
-    <Compile Include="System.CodeDom\CodeTypeDelegate.cs" />\r
-    <Compile Include="System.CodeDom\CodeTypeMember.cs" />\r
-    <Compile Include="System.CodeDom\CodeTypeMemberCollection.cs" />\r
-    <Compile Include="System.CodeDom\CodeTypeOfExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeTypeParameter.cs" />\r
-    <Compile Include="System.CodeDom\CodeTypeParameterCollection.cs" />\r
-    <Compile Include="System.CodeDom\CodeTypeReference.cs" />\r
-    <Compile Include="System.CodeDom\CodeTypeReferenceCollection.cs" />\r
-    <Compile Include="System.CodeDom\CodeTypeReferenceExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeTypeReferenceOptions.cs" />\r
-    <Compile Include="System.CodeDom\CodeVariableDeclarationStatement.cs" />\r
-    <Compile Include="System.CodeDom\CodeVariableReferenceExpression.cs" />\r
-    <Compile Include="System.CodeDom\FieldDirection.cs" />\r
-    <Compile Include="System.CodeDom\ICodeDomVisitor.cs" />\r
-    <Compile Include="System.CodeDom\MemberAttributes.cs" />\r
     <Compile Include="System.Configuration\ApplicationScopedSettingAttribute.cs" />\r
     <Compile Include="System.Configuration\ApplicationSettingsBase.cs" />\r
     <Compile Include="System.Configuration\ApplicationSettingsGroup.cs" />\r
     <Compile Include="System.Net.Sockets\SelectMode.cs" />\r
     <Compile Include="System.Net.Sockets\SendPacketsElement.cs" />\r
     <Compile Include="System.Net.Sockets\Socket.cs" />\r
-    <Compile Include="System.Net.Sockets\Socket_2_1.cs" />\r
+    <Compile Include="System.Net.Sockets\SocketAsyncCallback.cs" />\r
     <Compile Include="System.Net.Sockets\SocketAsyncEventArgs.cs" />\r
     <Compile Include="System.Net.Sockets\SocketAsyncOperation.cs" />\r
+    <Compile Include="System.Net.Sockets\SocketAsyncResult.cs" />\r
+    <Compile Include="System.Net.Sockets\SocketAsyncWorker.cs" />\r
     <Compile Include="System.Net.Sockets\SocketError.cs" />\r
     <Compile Include="System.Net.Sockets\SocketException.cs" />\r
     <Compile Include="System.Net.Sockets\SocketFlags.cs" />\r
     <Compile Include="System.Net.Sockets\SocketInformation.cs" />\r
     <Compile Include="System.Net.Sockets\SocketInformationOptions.cs" />\r
+    <Compile Include="System.Net.Sockets\SocketOperation.cs" />\r
     <Compile Include="System.Net.Sockets\SocketOptionLevel.cs" />\r
-    <Compile Include="System.Net.Sockets\SocketOptionName.cs" />\r
     <Compile Include="System.Net.Sockets\SocketShutdown.cs" />\r
     <Compile Include="System.Net.Sockets\SocketType.cs" />\r
     <Compile Include="System.Net.Sockets\TcpClient.cs" />\r
     <Compile Include="System.Runtime.InteropServices\DefaultParameterValueAttribute.cs" />\r
     <Compile Include="System.Runtime.InteropServices\HandleCollector.cs" />\r
     <Compile Include="System.Runtime.InteropServices\StandardOleMarshalObject.cs" />\r
-    <Compile Include="System.Runtime.Versioning\FrameworkName.cs" />\r
     <Compile Include="System.Security.AccessControl\SemaphoreAccessRule.cs" />\r
     <Compile Include="System.Security.AccessControl\SemaphoreAuditRule.cs" />\r
     <Compile Include="System.Security.AccessControl\SemaphoreRights.cs" />\r
     <Compile Include="System.Security.Permissions\StorePermissionAttribute.cs" />\r
     <Compile Include="System.Security.Permissions\StorePermissionFlags.cs" />\r
     <Compile Include="System.Threading\Semaphore.cs" />\r
-    <Compile Include="System.Threading\SemaphoreFullException.cs" />\r
     <Compile Include="System.Threading\ThreadExceptionEventArgs.cs" />\r
     <Compile Include="System.Threading\ThreadExceptionEventHandler.cs" />\r
     <Compile Include="System.Timers\ElapsedEventArgs.cs" />\r
index 98c2374b4b859a76c04bac20d87be40fff0dd67d..10451c474152c1db2e91542b434eb0fb8bcea71f 100644 (file)
   </PropertyGroup>\r
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />\r
   <ItemGroup>\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeArgumentReferenceExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeArrayCreateExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeArrayIndexerExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeAssignStatement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeAttachEventStatement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeAttributeArgument.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeAttributeArgumentCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeAttributeDeclaration.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeAttributeDeclarationCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeBaseReferenceExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeBinaryOperatorExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeBinaryOperatorType.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeCastExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeCatchClause.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeCatchClauseCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeChecksumPragma.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeComment.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeCommentStatement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeCommentStatementCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeCompileUnit.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeConditionStatement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeConstructor.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeDefaultValueExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeDelegateCreateExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeDelegateInvokeExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeDirectionExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeDirective.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeDirectiveCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeEntryPointMethod.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeEventReferenceExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeExpressionCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeExpressionStatement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeFieldReferenceExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeGotoStatement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeIndexerExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeIterationStatement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeLabeledStatement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeLinePragma.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeMemberEvent.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeMemberField.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeMemberMethod.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeMemberProperty.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeMethodInvokeExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\codemethodreferenceexpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeMethodReturnStatement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeNamespace.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeNamespaceCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeNamespaceImport.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeNamespaceImportCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeObject.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeObjectCreateExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeParameterDeclarationExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeParameterDeclarationExpressionCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodePrimitiveExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodePropertyReferenceExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodePropertySetValueReferenceExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeRegionDirective.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeRegionMode.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeRemoveEventStatement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeSnippetCompileUnit.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeSnippetExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeSnippetStatement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeSnippetTypeMember.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeStatement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeStatementCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeThisReferenceExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeThrowExceptionStatement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeTryCatchFinallyStatement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeTypeConstructor.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeTypeDeclaration.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeTypeDeclarationCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeTypeDelegate.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeTypeMember.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeTypeMemberCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeTypeOfExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeTypeParameter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeTypeParameterCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeTypeReference.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeTypeReferenceCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeTypeReferenceExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeVariableDeclarationStatement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeVariableReferenceExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\compiler\CodeGenerator.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\compiler\CodeGeneratorOptions.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\compiler\CodeValidator.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\compiler\CompilerError.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\compiler\CompilerErrorCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\compiler\CompilerParameters.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\compiler\GeneratedCodeAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\compiler\GeneratorSupport.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\compiler\ICodeCompiler.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\compiler\ICodeGenerator.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\compiler\ICodeParser.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\compiler\IndentTextWriter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\compiler\LanguageOptions.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\FieldDirection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\MemberAttributes.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System\compmod\system\collections\generic\bithelper.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System\compmod\system\collections\generic\debugview.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System\compmod\system\collections\generic\iset.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System\net\System\Net\cookiecollection.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System\net\System\Net\cookiecontainer.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System\net\System\Net\cookieexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\net\System\Net\HttpListenerRequestUriBuilder.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System\net\System\Net\Internal.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\net\System\Net\Sockets\SocketOptionName.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System\net\System\Net\UnicodeDecodingConformance.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System\net\System\Net\UnicodeEncodingConformance.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System\net\System\Net\webclient.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System\services\timers\system\timers\TimersDescriptionAttribute.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System\sys\system\collections\concurrent\BlockingCollection.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System\sys\system\collections\concurrent\ConcurrentBag.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\sys\system\runtime\versioning\FrameworkName.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System\sys\system\threading\Barrier.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System\sys\system\windows\markup\ValueSerializerAttribute.cs" />\r
     <Compile Include="..\..\build\common\SR.cs" />\r
     <Compile Include="System.CodeDom.Compiler\CodeCompiler.cs" />\r
     <Compile Include="System.CodeDom.Compiler\CodeDomConfigurationHandler.cs" />\r
     <Compile Include="System.CodeDom.Compiler\CodeDomProvider.cs" />\r
-    <Compile Include="System.CodeDom.Compiler\CodeGenerator.cs" />\r
-    <Compile Include="System.CodeDom.Compiler\CodeGeneratorOptions.cs" />\r
     <Compile Include="System.CodeDom.Compiler\CodeParser.cs" />\r
     <Compile Include="System.CodeDom.Compiler\Compiler.cs" />\r
     <Compile Include="System.CodeDom.Compiler\CompilerCollection.cs" />\r
-    <Compile Include="System.CodeDom.Compiler\CompilerError.cs" />\r
-    <Compile Include="System.CodeDom.Compiler\CompilerErrorCollection.cs" />\r
     <Compile Include="System.CodeDom.Compiler\CompilerInfo.cs" />\r
-    <Compile Include="System.CodeDom.Compiler\CompilerParameters.cs" />\r
     <Compile Include="System.CodeDom.Compiler\CompilerProviderOption.cs" />\r
     <Compile Include="System.CodeDom.Compiler\CompilerProviderOptionsCollection.cs" />\r
     <Compile Include="System.CodeDom.Compiler\CompilerResults.cs" />\r
     <Compile Include="System.CodeDom.Compiler\Executor.cs" />\r
-    <Compile Include="System.CodeDom.Compiler\GeneratedCodeAttribute.cs" />\r
-    <Compile Include="System.CodeDom.Compiler\GeneratorSupport.cs" />\r
-    <Compile Include="System.CodeDom.Compiler\ICodeCompiler.cs" />\r
-    <Compile Include="System.CodeDom.Compiler\ICodeGenerator.cs" />\r
-    <Compile Include="System.CodeDom.Compiler\ICodeParser.cs" />\r
-    <Compile Include="System.CodeDom.Compiler\IndentedTextWriter.cs" />\r
-    <Compile Include="System.CodeDom.Compiler\LanguageOptions.cs" />\r
     <Compile Include="System.CodeDom.Compiler\TempFileCollection.cs" />\r
-    <Compile Include="System.CodeDom\CodeArgumentReferenceExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeArrayCreateExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeArrayIndexerExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeAssignStatement.cs" />\r
-    <Compile Include="System.CodeDom\CodeAttachEventStatement.cs" />\r
-    <Compile Include="System.CodeDom\CodeAttributeArgument.cs" />\r
-    <Compile Include="System.CodeDom\CodeAttributeArgumentCollection.cs" />\r
-    <Compile Include="System.CodeDom\CodeAttributeDeclaration.cs" />\r
-    <Compile Include="System.CodeDom\CodeAttributeDeclarationCollection.cs" />\r
-    <Compile Include="System.CodeDom\CodeBaseReferenceExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeBinaryOperatorExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeBinaryOperatorType.cs" />\r
-    <Compile Include="System.CodeDom\CodeCastExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeCatchClause.cs" />\r
-    <Compile Include="System.CodeDom\CodeCatchClauseCollection.cs" />\r
-    <Compile Include="System.CodeDom\CodeChecksumPragma.cs" />\r
-    <Compile Include="System.CodeDom\CodeComment.cs" />\r
-    <Compile Include="System.CodeDom\CodeCommentStatement.cs" />\r
-    <Compile Include="System.CodeDom\CodeCommentStatementCollection.cs" />\r
-    <Compile Include="System.CodeDom\CodeCompileUnit.cs" />\r
-    <Compile Include="System.CodeDom\CodeConditionStatement.cs" />\r
-    <Compile Include="System.CodeDom\CodeConstructor.cs" />\r
-    <Compile Include="System.CodeDom\CodeDefaultValueExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeDelegateCreateExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeDelegateInvokeExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeDirectionExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeDirective.cs" />\r
-    <Compile Include="System.CodeDom\CodeDirectiveCollection.cs" />\r
-    <Compile Include="System.CodeDom\CodeEntryPointMethod.cs" />\r
-    <Compile Include="System.CodeDom\CodeEventReferenceExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeExpressionCollection.cs" />\r
-    <Compile Include="System.CodeDom\CodeExpressionStatement.cs" />\r
-    <Compile Include="System.CodeDom\CodeFieldReferenceExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeGotoStatement.cs" />\r
-    <Compile Include="System.CodeDom\CodeIndexerExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeIterationStatement.cs" />\r
-    <Compile Include="System.CodeDom\CodeLabeledStatement.cs" />\r
-    <Compile Include="System.CodeDom\CodeLinePragma.cs" />\r
-    <Compile Include="System.CodeDom\CodeMemberEvent.cs" />\r
-    <Compile Include="System.CodeDom\CodeMemberField.cs" />\r
-    <Compile Include="System.CodeDom\CodeMemberMethod.cs" />\r
-    <Compile Include="System.CodeDom\CodeMemberProperty.cs" />\r
-    <Compile Include="System.CodeDom\CodeMethodInvokeExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeMethodReferenceExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeMethodReturnStatement.cs" />\r
-    <Compile Include="System.CodeDom\CodeNamespace.cs" />\r
-    <Compile Include="System.CodeDom\CodeNamespaceCollection.cs" />\r
-    <Compile Include="System.CodeDom\CodeNamespaceImport.cs" />\r
-    <Compile Include="System.CodeDom\CodeNamespaceImportCollection.cs" />\r
-    <Compile Include="System.CodeDom\CodeObject.cs" />\r
-    <Compile Include="System.CodeDom\CodeObjectCreateExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeParameterDeclarationExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeParameterDeclarationExpressionCollection.cs" />\r
-    <Compile Include="System.CodeDom\CodePrimitiveExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodePropertyReferenceExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodePropertySetValueReferenceExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeRegionDirective.cs" />\r
-    <Compile Include="System.CodeDom\CodeRegionMode.cs" />\r
-    <Compile Include="System.CodeDom\CodeRemoveEventStatement.cs" />\r
-    <Compile Include="System.CodeDom\CodeSnippetCompileUnit.cs" />\r
-    <Compile Include="System.CodeDom\CodeSnippetExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeSnippetStatement.cs" />\r
-    <Compile Include="System.CodeDom\CodeSnippetTypeMember.cs" />\r
-    <Compile Include="System.CodeDom\CodeStatement.cs" />\r
-    <Compile Include="System.CodeDom\CodeStatementCollection.cs" />\r
-    <Compile Include="System.CodeDom\CodeThisReferenceExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeThrowExceptionStatement.cs" />\r
-    <Compile Include="System.CodeDom\CodeTryCatchFinallyStatement.cs" />\r
-    <Compile Include="System.CodeDom\CodeTypeConstructor.cs" />\r
-    <Compile Include="System.CodeDom\CodeTypeDeclaration.cs" />\r
-    <Compile Include="System.CodeDom\CodeTypeDeclarationCollection.cs" />\r
-    <Compile Include="System.CodeDom\CodeTypeDelegate.cs" />\r
-    <Compile Include="System.CodeDom\CodeTypeMember.cs" />\r
-    <Compile Include="System.CodeDom\CodeTypeMemberCollection.cs" />\r
-    <Compile Include="System.CodeDom\CodeTypeOfExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeTypeParameter.cs" />\r
-    <Compile Include="System.CodeDom\CodeTypeParameterCollection.cs" />\r
-    <Compile Include="System.CodeDom\CodeTypeReference.cs" />\r
-    <Compile Include="System.CodeDom\CodeTypeReferenceCollection.cs" />\r
-    <Compile Include="System.CodeDom\CodeTypeReferenceExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeTypeReferenceOptions.cs" />\r
-    <Compile Include="System.CodeDom\CodeVariableDeclarationStatement.cs" />\r
-    <Compile Include="System.CodeDom\CodeVariableReferenceExpression.cs" />\r
-    <Compile Include="System.CodeDom\FieldDirection.cs" />\r
-    <Compile Include="System.CodeDom\ICodeDomVisitor.cs" />\r
-    <Compile Include="System.CodeDom\MemberAttributes.cs" />\r
     <Compile Include="System.Configuration\ApplicationScopedSettingAttribute.cs" />\r
     <Compile Include="System.Configuration\ApplicationSettingsBase.cs" />\r
     <Compile Include="System.Configuration\ApplicationSettingsGroup.cs" />\r
     <Compile Include="System.Net.Sockets\SelectMode.cs" />\r
     <Compile Include="System.Net.Sockets\SendPacketsElement.cs" />\r
     <Compile Include="System.Net.Sockets\Socket.cs" />\r
-    <Compile Include="System.Net.Sockets\Socket_2_1.cs" />\r
+    <Compile Include="System.Net.Sockets\SocketAsyncCallback.cs" />\r
     <Compile Include="System.Net.Sockets\SocketAsyncEventArgs.cs" />\r
     <Compile Include="System.Net.Sockets\SocketAsyncOperation.cs" />\r
+    <Compile Include="System.Net.Sockets\SocketAsyncResult.cs" />\r
+    <Compile Include="System.Net.Sockets\SocketAsyncWorker.cs" />\r
     <Compile Include="System.Net.Sockets\SocketError.cs" />\r
     <Compile Include="System.Net.Sockets\SocketException.cs" />\r
     <Compile Include="System.Net.Sockets\SocketFlags.cs" />\r
     <Compile Include="System.Net.Sockets\SocketInformation.cs" />\r
     <Compile Include="System.Net.Sockets\SocketInformationOptions.cs" />\r
+    <Compile Include="System.Net.Sockets\SocketOperation.cs" />\r
     <Compile Include="System.Net.Sockets\SocketOptionLevel.cs" />\r
-    <Compile Include="System.Net.Sockets\SocketOptionName.cs" />\r
     <Compile Include="System.Net.Sockets\SocketShutdown.cs" />\r
     <Compile Include="System.Net.Sockets\SocketType.cs" />\r
     <Compile Include="System.Net.Sockets\TcpClient.cs" />\r
     <Compile Include="System.Runtime.InteropServices\DefaultParameterValueAttribute.cs" />\r
     <Compile Include="System.Runtime.InteropServices\HandleCollector.cs" />\r
     <Compile Include="System.Runtime.InteropServices\StandardOleMarshalObject.cs" />\r
-    <Compile Include="System.Runtime.Versioning\FrameworkName.cs" />\r
     <Compile Include="System.Security.AccessControl\SemaphoreAccessRule.cs" />\r
     <Compile Include="System.Security.AccessControl\SemaphoreAuditRule.cs" />\r
     <Compile Include="System.Security.AccessControl\SemaphoreRights.cs" />\r
     <Compile Include="System.Security.Permissions\StorePermissionAttribute.cs" />\r
     <Compile Include="System.Security.Permissions\StorePermissionFlags.cs" />\r
     <Compile Include="System.Threading\Semaphore.cs" />\r
-    <Compile Include="System.Threading\SemaphoreFullException.cs" />\r
     <Compile Include="System.Threading\ThreadExceptionEventArgs.cs" />\r
     <Compile Include="System.Threading\ThreadExceptionEventHandler.cs" />\r
     <Compile Include="System.Timers\ElapsedEventArgs.cs" />\r
index 25cb910f60da01247e9871fdf4ebe9e344495380..d4c8d3e15237ea4b7d2103ad5b1f738b59c7e77c 100644 (file)
   </PropertyGroup>\r
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />\r
   <ItemGroup>\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeArgumentReferenceExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeArrayCreateExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeArrayIndexerExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeAssignStatement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeAttachEventStatement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeAttributeArgument.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeAttributeArgumentCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeAttributeDeclaration.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeAttributeDeclarationCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeBaseReferenceExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeBinaryOperatorExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeBinaryOperatorType.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeCastExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeCatchClause.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeCatchClauseCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeChecksumPragma.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeComment.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeCommentStatement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeCommentStatementCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeCompileUnit.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeConditionStatement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeConstructor.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeDefaultValueExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeDelegateCreateExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeDelegateInvokeExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeDirectionExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeDirective.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeDirectiveCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeEntryPointMethod.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeEventReferenceExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeExpressionCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeExpressionStatement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeFieldReferenceExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeGotoStatement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeIndexerExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeIterationStatement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeLabeledStatement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeLinePragma.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeMemberEvent.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeMemberField.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeMemberMethod.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeMemberProperty.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeMethodInvokeExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\codemethodreferenceexpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeMethodReturnStatement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeNamespace.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeNamespaceCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeNamespaceImport.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeNamespaceImportCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeObject.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeObjectCreateExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeParameterDeclarationExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeParameterDeclarationExpressionCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodePrimitiveExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodePropertyReferenceExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodePropertySetValueReferenceExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeRegionDirective.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeRegionMode.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeRemoveEventStatement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeSnippetCompileUnit.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeSnippetExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeSnippetStatement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeSnippetTypeMember.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeStatement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeStatementCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeThisReferenceExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeThrowExceptionStatement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeTryCatchFinallyStatement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeTypeConstructor.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeTypeDeclaration.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeTypeDeclarationCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeTypeDelegate.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeTypeMember.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeTypeMemberCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeTypeOfExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeTypeParameter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeTypeParameterCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeTypeReference.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeTypeReferenceCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeTypeReferenceExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeVariableDeclarationStatement.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\CodeVariableReferenceExpression.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\compiler\CodeGenerator.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\compiler\CodeGeneratorOptions.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\compiler\CodeValidator.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\compiler\CompilerError.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\compiler\CompilerErrorCollection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\compiler\CompilerParameters.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\compiler\GeneratedCodeAttribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\compiler\GeneratorSupport.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\compiler\ICodeCompiler.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\compiler\ICodeGenerator.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\compiler\ICodeParser.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\compiler\IndentTextWriter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\compiler\LanguageOptions.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\FieldDirection.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\compmod\system\codedom\MemberAttributes.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System\compmod\system\collections\generic\bithelper.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System\compmod\system\collections\generic\debugview.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System\compmod\system\collections\generic\iset.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System\net\System\Net\cookiecollection.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System\net\System\Net\cookiecontainer.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System\net\System\Net\cookieexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\net\System\Net\HttpListenerRequestUriBuilder.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System\net\System\Net\Internal.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\net\System\Net\Sockets\SocketOptionName.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System\net\System\Net\UnicodeDecodingConformance.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System\net\System\Net\UnicodeEncodingConformance.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System\net\System\Net\webclient.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System\services\timers\system\timers\TimersDescriptionAttribute.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System\sys\system\collections\concurrent\BlockingCollection.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System\sys\system\collections\concurrent\ConcurrentBag.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\System\sys\system\runtime\versioning\FrameworkName.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System\sys\system\threading\Barrier.cs" />\r
     <Compile Include="..\..\..\external\referencesource\System\sys\system\windows\markup\ValueSerializerAttribute.cs" />\r
     <Compile Include="..\..\build\common\SR.cs" />\r
     <Compile Include="System.CodeDom.Compiler\CodeCompiler.cs" />\r
     <Compile Include="System.CodeDom.Compiler\CodeDomConfigurationHandler.cs" />\r
     <Compile Include="System.CodeDom.Compiler\CodeDomProvider.cs" />\r
-    <Compile Include="System.CodeDom.Compiler\CodeGenerator.cs" />\r
-    <Compile Include="System.CodeDom.Compiler\CodeGeneratorOptions.cs" />\r
     <Compile Include="System.CodeDom.Compiler\CodeParser.cs" />\r
     <Compile Include="System.CodeDom.Compiler\Compiler.cs" />\r
     <Compile Include="System.CodeDom.Compiler\CompilerCollection.cs" />\r
-    <Compile Include="System.CodeDom.Compiler\CompilerError.cs" />\r
-    <Compile Include="System.CodeDom.Compiler\CompilerErrorCollection.cs" />\r
     <Compile Include="System.CodeDom.Compiler\CompilerInfo.cs" />\r
-    <Compile Include="System.CodeDom.Compiler\CompilerParameters.cs" />\r
     <Compile Include="System.CodeDom.Compiler\CompilerProviderOption.cs" />\r
     <Compile Include="System.CodeDom.Compiler\CompilerProviderOptionsCollection.cs" />\r
     <Compile Include="System.CodeDom.Compiler\CompilerResults.cs" />\r
     <Compile Include="System.CodeDom.Compiler\Executor.cs" />\r
-    <Compile Include="System.CodeDom.Compiler\GeneratedCodeAttribute.cs" />\r
-    <Compile Include="System.CodeDom.Compiler\GeneratorSupport.cs" />\r
-    <Compile Include="System.CodeDom.Compiler\ICodeCompiler.cs" />\r
-    <Compile Include="System.CodeDom.Compiler\ICodeGenerator.cs" />\r
-    <Compile Include="System.CodeDom.Compiler\ICodeParser.cs" />\r
-    <Compile Include="System.CodeDom.Compiler\IndentedTextWriter.cs" />\r
-    <Compile Include="System.CodeDom.Compiler\LanguageOptions.cs" />\r
     <Compile Include="System.CodeDom.Compiler\TempFileCollection.cs" />\r
-    <Compile Include="System.CodeDom\CodeArgumentReferenceExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeArrayCreateExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeArrayIndexerExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeAssignStatement.cs" />\r
-    <Compile Include="System.CodeDom\CodeAttachEventStatement.cs" />\r
-    <Compile Include="System.CodeDom\CodeAttributeArgument.cs" />\r
-    <Compile Include="System.CodeDom\CodeAttributeArgumentCollection.cs" />\r
-    <Compile Include="System.CodeDom\CodeAttributeDeclaration.cs" />\r
-    <Compile Include="System.CodeDom\CodeAttributeDeclarationCollection.cs" />\r
-    <Compile Include="System.CodeDom\CodeBaseReferenceExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeBinaryOperatorExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeBinaryOperatorType.cs" />\r
-    <Compile Include="System.CodeDom\CodeCastExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeCatchClause.cs" />\r
-    <Compile Include="System.CodeDom\CodeCatchClauseCollection.cs" />\r
-    <Compile Include="System.CodeDom\CodeChecksumPragma.cs" />\r
-    <Compile Include="System.CodeDom\CodeComment.cs" />\r
-    <Compile Include="System.CodeDom\CodeCommentStatement.cs" />\r
-    <Compile Include="System.CodeDom\CodeCommentStatementCollection.cs" />\r
-    <Compile Include="System.CodeDom\CodeCompileUnit.cs" />\r
-    <Compile Include="System.CodeDom\CodeConditionStatement.cs" />\r
-    <Compile Include="System.CodeDom\CodeConstructor.cs" />\r
-    <Compile Include="System.CodeDom\CodeDefaultValueExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeDelegateCreateExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeDelegateInvokeExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeDirectionExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeDirective.cs" />\r
-    <Compile Include="System.CodeDom\CodeDirectiveCollection.cs" />\r
-    <Compile Include="System.CodeDom\CodeEntryPointMethod.cs" />\r
-    <Compile Include="System.CodeDom\CodeEventReferenceExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeExpressionCollection.cs" />\r
-    <Compile Include="System.CodeDom\CodeExpressionStatement.cs" />\r
-    <Compile Include="System.CodeDom\CodeFieldReferenceExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeGotoStatement.cs" />\r
-    <Compile Include="System.CodeDom\CodeIndexerExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeIterationStatement.cs" />\r
-    <Compile Include="System.CodeDom\CodeLabeledStatement.cs" />\r
-    <Compile Include="System.CodeDom\CodeLinePragma.cs" />\r
-    <Compile Include="System.CodeDom\CodeMemberEvent.cs" />\r
-    <Compile Include="System.CodeDom\CodeMemberField.cs" />\r
-    <Compile Include="System.CodeDom\CodeMemberMethod.cs" />\r
-    <Compile Include="System.CodeDom\CodeMemberProperty.cs" />\r
-    <Compile Include="System.CodeDom\CodeMethodInvokeExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeMethodReferenceExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeMethodReturnStatement.cs" />\r
-    <Compile Include="System.CodeDom\CodeNamespace.cs" />\r
-    <Compile Include="System.CodeDom\CodeNamespaceCollection.cs" />\r
-    <Compile Include="System.CodeDom\CodeNamespaceImport.cs" />\r
-    <Compile Include="System.CodeDom\CodeNamespaceImportCollection.cs" />\r
-    <Compile Include="System.CodeDom\CodeObject.cs" />\r
-    <Compile Include="System.CodeDom\CodeObjectCreateExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeParameterDeclarationExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeParameterDeclarationExpressionCollection.cs" />\r
-    <Compile Include="System.CodeDom\CodePrimitiveExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodePropertyReferenceExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodePropertySetValueReferenceExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeRegionDirective.cs" />\r
-    <Compile Include="System.CodeDom\CodeRegionMode.cs" />\r
-    <Compile Include="System.CodeDom\CodeRemoveEventStatement.cs" />\r
-    <Compile Include="System.CodeDom\CodeSnippetCompileUnit.cs" />\r
-    <Compile Include="System.CodeDom\CodeSnippetExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeSnippetStatement.cs" />\r
-    <Compile Include="System.CodeDom\CodeSnippetTypeMember.cs" />\r
-    <Compile Include="System.CodeDom\CodeStatement.cs" />\r
-    <Compile Include="System.CodeDom\CodeStatementCollection.cs" />\r
-    <Compile Include="System.CodeDom\CodeThisReferenceExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeThrowExceptionStatement.cs" />\r
-    <Compile Include="System.CodeDom\CodeTryCatchFinallyStatement.cs" />\r
-    <Compile Include="System.CodeDom\CodeTypeConstructor.cs" />\r
-    <Compile Include="System.CodeDom\CodeTypeDeclaration.cs" />\r
-    <Compile Include="System.CodeDom\CodeTypeDeclarationCollection.cs" />\r
-    <Compile Include="System.CodeDom\CodeTypeDelegate.cs" />\r
-    <Compile Include="System.CodeDom\CodeTypeMember.cs" />\r
-    <Compile Include="System.CodeDom\CodeTypeMemberCollection.cs" />\r
-    <Compile Include="System.CodeDom\CodeTypeOfExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeTypeParameter.cs" />\r
-    <Compile Include="System.CodeDom\CodeTypeParameterCollection.cs" />\r
-    <Compile Include="System.CodeDom\CodeTypeReference.cs" />\r
-    <Compile Include="System.CodeDom\CodeTypeReferenceCollection.cs" />\r
-    <Compile Include="System.CodeDom\CodeTypeReferenceExpression.cs" />\r
-    <Compile Include="System.CodeDom\CodeTypeReferenceOptions.cs" />\r
-    <Compile Include="System.CodeDom\CodeVariableDeclarationStatement.cs" />\r
-    <Compile Include="System.CodeDom\CodeVariableReferenceExpression.cs" />\r
-    <Compile Include="System.CodeDom\FieldDirection.cs" />\r
-    <Compile Include="System.CodeDom\ICodeDomVisitor.cs" />\r
-    <Compile Include="System.CodeDom\MemberAttributes.cs" />\r
     <Compile Include="System.Configuration\ApplicationScopedSettingAttribute.cs" />\r
     <Compile Include="System.Configuration\ApplicationSettingsBase.cs" />\r
     <Compile Include="System.Configuration\ApplicationSettingsGroup.cs" />\r
     <Compile Include="System.Net.Sockets\SelectMode.cs" />\r
     <Compile Include="System.Net.Sockets\SendPacketsElement.cs" />\r
     <Compile Include="System.Net.Sockets\Socket.cs" />\r
-    <Compile Include="System.Net.Sockets\Socket_2_1.cs" />\r
+    <Compile Include="System.Net.Sockets\SocketAsyncCallback.cs" />\r
     <Compile Include="System.Net.Sockets\SocketAsyncEventArgs.cs" />\r
     <Compile Include="System.Net.Sockets\SocketAsyncOperation.cs" />\r
+    <Compile Include="System.Net.Sockets\SocketAsyncResult.cs" />\r
+    <Compile Include="System.Net.Sockets\SocketAsyncWorker.cs" />\r
     <Compile Include="System.Net.Sockets\SocketError.cs" />\r
     <Compile Include="System.Net.Sockets\SocketException.cs" />\r
     <Compile Include="System.Net.Sockets\SocketFlags.cs" />\r
     <Compile Include="System.Net.Sockets\SocketInformation.cs" />\r
     <Compile Include="System.Net.Sockets\SocketInformationOptions.cs" />\r
+    <Compile Include="System.Net.Sockets\SocketOperation.cs" />\r
     <Compile Include="System.Net.Sockets\SocketOptionLevel.cs" />\r
-    <Compile Include="System.Net.Sockets\SocketOptionName.cs" />\r
     <Compile Include="System.Net.Sockets\SocketShutdown.cs" />\r
     <Compile Include="System.Net.Sockets\SocketType.cs" />\r
     <Compile Include="System.Net.Sockets\TcpClient.cs" />\r
     <Compile Include="System.Runtime.InteropServices\DefaultParameterValueAttribute.cs" />\r
     <Compile Include="System.Runtime.InteropServices\HandleCollector.cs" />\r
     <Compile Include="System.Runtime.InteropServices\StandardOleMarshalObject.cs" />\r
-    <Compile Include="System.Runtime.Versioning\FrameworkName.cs" />\r
     <Compile Include="System.Security.AccessControl\SemaphoreAccessRule.cs" />\r
     <Compile Include="System.Security.AccessControl\SemaphoreAuditRule.cs" />\r
     <Compile Include="System.Security.AccessControl\SemaphoreRights.cs" />\r
     <Compile Include="System.Security.Permissions\StorePermissionAttribute.cs" />\r
     <Compile Include="System.Security.Permissions\StorePermissionFlags.cs" />\r
     <Compile Include="System.Threading\Semaphore.cs" />\r
-    <Compile Include="System.Threading\SemaphoreFullException.cs" />\r
     <Compile Include="System.Threading\ThreadExceptionEventArgs.cs" />\r
     <Compile Include="System.Threading\ThreadExceptionEventHandler.cs" />\r
     <Compile Include="System.Timers\ElapsedEventArgs.cs" />\r
index 2eb2cd34a53cbf4051c279acc2696a3e4d740f45..27f61b35d0ea775478f504f0b288e67620fa7559 100644 (file)
@@ -274,7 +274,6 @@ namespace System.IO {
                                        started = false;
                                        inDispatch = false;
                                        fsw.EnableRaisingEvents = false;
-                                       throw exc;
                                }
                                if (exc != null)
                                        fsw.DispatchErrorEvents (new ErrorEventArgs (exc));
@@ -373,6 +372,11 @@ namespace System.IO {
 
                                for (var i = 0; i < numEvents; i++) {
                                        var kevt = eventBuffer [i];
+
+                                       if (!fdsDict.ContainsKey ((int)kevt.ident))
+                                               // The event is for a file that was removed
+                                               continue;
+
                                        var pathData = fdsDict [(int)kevt.ident];
 
                                        if ((kevt.flags & EventFlags.Error) == EventFlags.Error) {
@@ -382,6 +386,10 @@ namespace System.IO {
                                        }
                                                
                                        if ((kevt.fflags & FilterFlags.VNodeDelete) == FilterFlags.VNodeDelete || (kevt.fflags & FilterFlags.VNodeRevoke) == FilterFlags.VNodeRevoke) {
+                                               if (pathData.Path == fullPathNoLastSlash)
+                                                       // The root path is deleted; exit silently
+                                                       return;
+                                                               
                                                removeQueue.Add (pathData);
                                                continue;
                                        }
index 6dc9a2ffe7149a38bc91652b3f142280f0fd474f..ded0634a3f3e73b610603d3de5a58931286d1616 100644 (file)
@@ -188,6 +188,11 @@ namespace System.Net {
 
                        CreateQueryString (url.Query);
 
+                       // Use reference source HttpListenerRequestUriBuilder to process url.
+                       // Fixes #29927
+                       url = HttpListenerRequestUriBuilder.GetRequestUri (raw_url, url.Scheme,
+                                                               url.Authority, url.LocalPath, url.Query);
+
                        if (version >= HttpVersion.Version11) {
                                string t_encoding = Headers ["Transfer-Encoding"];
                                is_chunked = (t_encoding != null && String.Compare (t_encoding, "chunked", StringComparison.OrdinalIgnoreCase) == 0);
index d54c0cab147987855ac99612381a977419da400a..52a88f7e2df45aff89a7cd1a20255e52c1a44ca8 100644 (file)
@@ -106,7 +106,7 @@ namespace System.Net
 
 #if MONOTOUCH
                [System.Runtime.InteropServices.DllImport ("__Internal")]
-               static extern void monotouch_start_wwan (string uri);
+               static extern void xamarin_start_wwan (string uri);
 #endif
 
                internal ChunkStream ChunkStream {
@@ -171,7 +171,7 @@ namespace System.Net
 
                                if (hostEntry == null) {
 #if MONOTOUCH
-                                       monotouch_start_wwan (sPoint.Address.ToString ());
+                                       xamarin_start_wwan (sPoint.Address.ToString ());
                                        hostEntry = sPoint.HostEntry;
                                        if (hostEntry == null) {
 #endif
index 2fa6a86c47156de30a9e63d6f166635aad87ce13..046d0a475446c9ce9dab0ddcbefde09b9e3727a8 100644 (file)
@@ -616,6 +616,7 @@ System.Windows.Input/ICommand.cs
 ReferenceSources/AssertWrapper.cs
 ReferenceSources/BinaryCompatibility.cs
 ReferenceSources/ConfigurationManagerInternalFactory.cs
+ReferenceSources/HttpSysSettings.cs
 ReferenceSources/Logging.cs
 ReferenceSources/NativeMethods.cs
 ReferenceSources/SettingsSectionInternal.cs
@@ -999,6 +1000,7 @@ ReferenceSources/Win32Exception.cs
 ../../../external/referencesource/System/net/System/Net/cookiecollection.cs
 ../../../external/referencesource/System/net/System/Net/cookiecontainer.cs
 ../../../external/referencesource/System/net/System/Net/cookieexception.cs
+../../../external/referencesource/System/net/System/Net/HttpListenerRequestUriBuilder.cs
 ../../../external/referencesource/System/net/System/Net/Internal.cs
 ../../../external/referencesource/System/net/System/Net/UnicodeDecodingConformance.cs
 ../../../external/referencesource/System/net/System/Net/UnicodeEncodingConformance.cs
@@ -1121,4 +1123,3 @@ ReferenceSources/Win32Exception.cs
 ../../../external/referencesource/System/compmod/system/codedom/compiler/ICodeParser.cs
 ../../../external/referencesource/System/compmod/system/codedom/compiler/IndentTextWriter.cs
 ../../../external/referencesource/System/compmod/system/codedom/compiler/LanguageOptions.cs
-
index b286100b932504342602c79ed75073df342023dc..f7d6843d2b5dbecd5f4cfba9c6ea3b54f98fd88a 100644 (file)
@@ -53,6 +53,7 @@ namespace MonoTests.System.Diagnostics
                }
 
                [Test] // Covers #26363
+               [NUnit.Framework.Category ("MobileNotWorking")]
                public void GetProcesses_StartTime ()
                {
                        foreach (var p in Process.GetProcesses ()) {
@@ -842,23 +843,6 @@ namespace MonoTests.System.Diagnostics
                        return RunningOnUnix ? new ProcessStartInfo ("/bin/ls", "/") : new ProcessStartInfo ("help", "");
                }
 
-               [Test] // Covers #26362
-               public void TestExitedEvent ()
-               {
-                       var falseExitedEvents = 0;
-                       var cp = Process.GetCurrentProcess ();
-                       foreach (var p in Process.GetProcesses ()) {
-                               if (p.Id != cp.Id && !p.HasExited) {
-                                       p.EnableRaisingEvents = true;
-                                       p.Exited += (s, e) => {
-                                               if (!p.HasExited)
-                                                       falseExitedEvents++;
-                                       };
-                               }
-                       }
-                       Assert.AreEqual (0, falseExitedEvents);
-               }
-               
                [Test]
                public void ProcessName_NotStarted ()
                {
index 39849d5bef9bc9c8db77d9fd0bf1a61c23ae4aa9..3f3cf1a5ddbae5c2480959728273167dc5c85f25 100644 (file)
@@ -74,9 +74,9 @@ public class SslStreamTest {
                state.ServerIOException = !server;
                try {
                        Thread serverThread = new Thread (() => StartServerAndAuthenticate (state));
-                       serverThread.Start (null);
+                       serverThread.Start ();
                        Thread clientThread = new Thread (() => StartClientAndAuthenticate (state, endPoint));
-                       clientThread.Start (null);
+                       clientThread.Start ();
                        Assert.AreEqual (server, state.ServerAuthenticated.WaitOne (TimeSpan.FromSeconds (2)), 
                                "server not authenticated");
                        Assert.AreEqual (client, state.ClientAuthenticated.WaitOne (TimeSpan.FromSeconds (2)), 
index 4d8564237d6a79574756ea4454e763c8b6262e4b..bc2bb3fa23d743ae75a104d6813567b2b4c8fbdb 100644 (file)
@@ -184,5 +184,31 @@ namespace MonoTests.System.Net
                        Assert.AreEqual ("/RequestUriDecodeTest/?a=b&c=d%26e", request.Url.PathAndQuery);
                        listener.Close ();
                }
+
+               [Test] // #29927
+               public void HttpRequestUriUnescape ()
+               {
+                       var prefix = "http://localhost:12345/";
+                       var key = "Product/1";
+
+                       var expectedUrl = prefix + key + "/";
+                       var rawUrl = prefix + Uri.EscapeDataString (key) + "/";
+
+                       HttpListener listener = new HttpListener ();
+                       listener.Prefixes.Add (prefix);
+                       listener.Start ();
+
+                       var contextTask = listener.GetContextAsync ();
+
+                       var request = (HttpWebRequest) WebRequest.Create (rawUrl);
+                       request.GetResponseAsync ();
+
+                       if(!contextTask.Wait (1000))
+                               Assert.Fail ("Timeout");
+
+                       Assert.AreEqual (expectedUrl, contextTask.Result.Request.Url.AbsoluteUri);
+
+                       listener.Close ();
+               }
        }
 }
index 879d6456085f75c713d06b9b9595f58c35d8bea9..c4e3e4a1ad424e6daf365c25f68b717b0b17af3a 100644 (file)
@@ -350,8 +350,10 @@ System.Runtime.InteropServices/HandleCollector.cs
 System.Windows.Input/ICommand.cs
 
 ReferenceSources/AssertWrapper.cs
+ReferenceSources/HttpSysSettings.cs
 ReferenceSources/Logging.cs
 ReferenceSources/NativeMethods.cs
+ReferenceSources/SettingsSectionInternal.cs
 ReferenceSources/SR.cs
 ReferenceSources/SRCategoryAttribute.cs
 ReferenceSources/SystemNetworkCredential.cs
@@ -717,6 +719,7 @@ ReferenceSources/Win32Exception.cs
 ../../../external/referencesource/System/net/System/Net/cookiecollection.cs
 ../../../external/referencesource/System/net/System/Net/cookiecontainer.cs
 ../../../external/referencesource/System/net/System/Net/cookieexception.cs
+../../../external/referencesource/System/net/System/Net/HttpListenerRequestUriBuilder.cs
 ../../../external/referencesource/System/net/System/Net/Internal.cs
 ../../../external/referencesource/System/net/System/Net/webclient.cs
 ../../../external/referencesource/System/net/System/Net/WebPermission.cs
index 436bc353b5cc8ae1e2a666cbe3afba2a43f44152..40586b76082002f02d8b54952681a89c926b30ae 100644 (file)
@@ -6,13 +6,12 @@ export __SECURITY_BOOTSTRAP_DB=$(topdir)/class/corlib
 LIBRARY = corlib.dll
 LIBRARY_NAME = mscorlib.dll
 
-REFERENCE_SOURCES_FLAGS = -d:FEATURE_PAL,PFX_LEGACY_3_5 -d:MONO -d:MONO_HYBRID_ENCODING_SUPPORT,PLATFORM_UNIX
 LIB_MCS_FLAGS = $(REFERENCE_SOURCES_FLAGS) $(RESOURCE_FILES:%=-resource:%)
 
 #LIBRARY_USE_INTERMEDIATE_FILE = yes
 
 ifeq (2, $(FRAMEWORK_VERSION_MAJOR))
-LIB_MCS_FLAGS += --runtime:v2
+LIB_MCS_FLAGS += --runtime:v4
 else
 ifeq (4, $(FRAMEWORK_VERSION_MAJOR))
 LIB_MCS_FLAGS += --runtime:v4
@@ -36,12 +35,12 @@ RESOURCE_FILES = \
        resources/collation.cjkKO.bin \
        resources/collation.cjkKOlv2.bin
 
-REFERENCE_SOURCES_FLAGS = -d:FEATURE_PAL,GENERICS_WORK,FEATURE_LIST_PREDICATES,FEATURE_SERIALIZATION,FEATURE_ASCII,FEATURE_LATIN1,FEATURE_UTF7,FEATURE_UTF32,MONO_HYBRID_ENCODING_SUPPORT,FEATURE_ASYNC_IO,NEW_EXPERIMENTAL_ASYNC_IO,FEATURE_UTF32,FEATURE_EXCEPTIONDISPATCHINFO,FEATURE_CORRUPTING_EXCEPTIONS,FEATURE_EXCEPTION_NOTIFICATIONS,FEATURE_STRONGNAME_MIGRATION,FEATURE_USE_LCID,FEATURE_FUSION,FEATURE_CRYPTO,FEATURE_X509_SECURESTRINGS
+REFERENCE_SOURCES_FLAGS = -d:FEATURE_PAL,GENERICS_WORK,FEATURE_LIST_PREDICATES,FEATURE_SERIALIZATION,FEATURE_ASCII,FEATURE_LATIN1,FEATURE_UTF7,FEATURE_UTF32,MONO_HYBRID_ENCODING_SUPPORT,FEATURE_ASYNC_IO,NEW_EXPERIMENTAL_ASYNC_IO,FEATURE_UTF32,FEATURE_EXCEPTIONDISPATCHINFO,FEATURE_CORRUPTING_EXCEPTIONS,FEATURE_EXCEPTION_NOTIFICATIONS,FEATURE_STRONGNAME_MIGRATION,FEATURE_USE_LCID,FEATURE_FUSION,FEATURE_CRYPTO,FEATURE_X509_SECURESTRINGS,FEATURE_SYNCHRONIZATIONCONTEXT,FEATURE_SYNCHRONIZATIONCONTEXT_WAIT
 
 MOBILE_STATIC := $(filter mobile_static monotouch monotouch_runtime, $(PROFILE))
 
 ifndef MOBILE_STATIC
-REFERENCE_SOURCES_FLAGS += -d:FEATURE_REMOTING,MONO_COM,FEATURE_COMINTEROP
+REFERENCE_SOURCES_FLAGS += -d:FEATURE_REMOTING,MONO_COM,FEATURE_COMINTEROP,FEATURE_ROLE_BASED_SECURITY
 endif
 
 LOCAL_MCS_FLAGS = -unsafe -nostdlib -nowarn:612,618 -d:INSIDE_CORLIB,MONO_CULTURE_DATA -d:LIBC $(REFERENCE_SOURCES_FLAGS)
@@ -175,9 +174,9 @@ EXTRA_DISTFILES += \
 
 TMP_FILE1=tzi1.tmp
 TMP_FILE2=tzi2.tmp
-       
+
+# Remove some code that is protected so we don't have to include all the corlib files.
 tzi.exe:System/AndroidPlatform.cs $(wildcard System/TimeZone*.cs) ../../build/common/Consts.cs ../../build/common/Locale.cs ../Mono.Options/Mono.Options/Options.cs
-       # Remove some code that is protected so we don't have to include all the corlib files.
        trap "rm -f $(TMP_FILE1) $(TMP_FILE2)" EXIT INT QUIT TERM && \
        sed 's/Environment\.GetResourceString/string.Format/g' ../../../external/referencesource/mscorlib/system/timezoneinfo.cs > $(TMP_FILE1) && \
        sed 's/StringBuilder\.DefaultCapacity/100/g' ../../../external/referencesource/mscorlib/system/text/stringbuildercache.cs > $(TMP_FILE2) && \
diff --git a/mcs/class/corlib/ReferenceSources/ExecutionContext.cs b/mcs/class/corlib/ReferenceSources/ExecutionContext.cs
deleted file mode 100644 (file)
index ec9230f..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-
-using System.Security;
-
-namespace System.Threading
-{
-       partial class ExecutionContext
-       {
-               internal static ExecutionContext Capture (ref StackCrawlMark stackMark, CaptureOptions options)
-               {
-                       return Capture ((options & CaptureOptions.IgnoreSyncCtx) == 0, false);
-               }
-
-               internal static ExecutionContext FastCapture()
-               {
-                       return Capture ();
-               }
-
-               [Flags]
-               internal enum CaptureOptions
-               {
-                       None = 0x00,
-
-                       IgnoreSyncCtx = 0x01,       //Don't flow SynchronizationContext
-
-                       OptimizeDefaultCase = 0x02, //Faster in the typical case, but can't show the result to users
-                                                   // because they could modify the shared default EC.
-                                                   // Use this only if you won't be exposing the captured EC to users.
-               }
-
-               private static readonly ExecutionContext s_dummyDefaultEC = new ExecutionContext();
-               static internal ExecutionContext PreAllocatedDefault
-               {
-                       [SecuritySafeCritical]
-                       get {
-                               return s_dummyDefaultEC;
-                       }
-               }
-
-               internal bool IsPreAllocatedDefault
-               {
-                       get
-                       {
-                               return this == s_dummyDefaultEC;
-                       }
-               }
-       }
-}
\ No newline at end of file
diff --git a/mcs/class/corlib/ReferenceSources/SecurityContext.cs b/mcs/class/corlib/ReferenceSources/SecurityContext.cs
new file mode 100644 (file)
index 0000000..c25a90a
--- /dev/null
@@ -0,0 +1,94 @@
+//
+// SecurityContext.cs: This is CAS disabled SecurityContext version
+//                     it does nothing but has same public API
+//
+// Authors:
+//     Marek Safar  <marek.safar@gmail.com>
+//
+// Copyright (C) 2015 Xamarin Inc (http://www.xamarin.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if !FEATURE_COMPRESSEDSTACK
+
+using System.Runtime.InteropServices;
+using System.Security.Permissions;
+using System.Security.Principal;
+using System.Threading;
+
+namespace System.Security {
+
+       public sealed class SecurityContext : IDisposable
+       {
+               private SecurityContext ()
+               {
+               }
+
+               public SecurityContext CreateCopy ()
+               {
+                       return this;
+               }
+
+               static public SecurityContext Capture ()
+               {
+                       return new SecurityContext ();
+               }
+               
+               public void Dispose ()
+               {
+               }
+
+               static public bool IsFlowSuppressed ()
+               {
+                       return false;
+               } 
+
+               static public bool IsWindowsIdentityFlowSuppressed ()
+               {
+                       return false;
+               }
+
+               static public void RestoreFlow ()
+               {
+               }
+
+               // if you got the context then you can use it
+               [SecurityPermission (SecurityAction.Assert, ControlPrincipal = true)]
+               [SecurityPermission (SecurityAction.LinkDemand, Infrastructure = true)]
+               static public void Run (SecurityContext securityContext, ContextCallback callback, object state)
+               {
+                       callback (state);
+               }
+
+               [SecurityPermission (SecurityAction.LinkDemand, Infrastructure = true)]
+               static public AsyncFlowControl SuppressFlow ()
+               {
+                       throw new NotSupportedException ();
+               }
+
+               static public AsyncFlowControl SuppressFlowWindowsIdentity ()
+               {
+                       throw new NotSupportedException ();
+               }
+       }
+}
+
+#endif
\ No newline at end of file
index 435035b39735789b3865aa51e4586c8eaf300203..22ef188f52c7b05bfcfed090eba6d95828ef1d6f 100644 (file)
@@ -42,11 +42,11 @@ namespace System.Globalization {
        public partial class RegionInfo {
 
                [DllImport ("__Internal")]
-               extern static string monotouch_get_locale_country_code ();
+               extern static string xamarin_get_locale_country_code ();
 
                static RegionInfo CreateFromNSLocale ()
                {
-                       return new RegionInfo (monotouch_get_locale_country_code ());
+                       return new RegionInfo (xamarin_get_locale_country_code ());
                }
        }
 }
diff --git a/mcs/class/corlib/System.IO/UnmanagedMemoryAccessor.cs b/mcs/class/corlib/System.IO/UnmanagedMemoryAccessor.cs
deleted file mode 100644 (file)
index feb7b4a..0000000
+++ /dev/null
@@ -1,477 +0,0 @@
-//
-// System.IO.UnmanagedMemoryAccessor.cs
-//
-// Author:
-//  Zoltan Varga (vargaz@gmail.com)
-//  Marek Safar (marek.safar@gmail.com)
-//
-// Copyright (C) 2009 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-
-using System;
-using System.Runtime.InteropServices;
-using System.Security.Permissions;
-
-namespace System.IO
-{
-       [MonoTODO ("Offset is ignored")]
-       public class UnmanagedMemoryAccessor : IDisposable {
-               SafeBuffer buffer;
-#pragma warning disable 414
-               long offset;
-#pragma warning restore
-               long capacity;
-               bool canwrite, canread;
-
-               protected UnmanagedMemoryAccessor ()
-               {
-               }
-
-               public UnmanagedMemoryAccessor (SafeBuffer buffer, long offset, long capacity)
-               {
-                       Initialize (buffer, offset, capacity, FileAccess.ReadWrite);
-               }
-
-               public UnmanagedMemoryAccessor (SafeBuffer buffer, long offset, long capacity, FileAccess access)
-               {
-                       Initialize (buffer, offset, capacity, access);
-               }
-
-               [SecurityPermissionAttribute(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
-               protected void Initialize(SafeBuffer buffer, long offset, long capacity, FileAccess access)
-               {
-                       if (buffer == null)
-                               throw new ArgumentNullException ("buffer");
-                       if (offset < 0)
-                               throw new ArgumentOutOfRangeException ("offset");
-                       if (capacity < 0)
-                               throw new ArgumentOutOfRangeException ("capacity");
-
-                       if (access == FileAccess.Read || access == FileAccess.ReadWrite)
-                               canread = true;
-                       if (access == FileAccess.Write || access == FileAccess.ReadWrite)
-                               canwrite = true;
-
-                       if (this.buffer != null)
-                               Dispose (true);
-                                        
-                       this.buffer = buffer;
-                       this.offset = offset;
-                       this.capacity = capacity;
-               }
-               
-               public void Dispose ()
-               {
-                       Dispose (true);
-                       GC.SuppressFinalize (this);
-               }
-
-               protected virtual void Dispose (bool disposing)
-               {
-                       if (buffer != null){
-                               if (disposing){
-                                       buffer.Dispose ();
-                               }
-                       }
-                       buffer = null;
-               }
-
-               public byte ReadByte (long position) 
-               {
-                       if (!canread)
-                               throw new NotSupportedException ();
-                       if (buffer == null)
-                               throw new ObjectDisposedException ("buffer");
-                       if (position < 0)
-                               throw new ArgumentOutOfRangeException ();
-                       
-                       return buffer.Read<byte> ((ulong) position);
-               }
-
-               public bool ReadBoolean (long position) 
-               {
-                       if (!canread)
-                               throw new NotSupportedException ();
-                       if (buffer == null)
-                               throw new ObjectDisposedException ("buffer");
-                       if (position < 0)
-                               throw new ArgumentOutOfRangeException ();
-                       
-                       return buffer.Read<bool> ((ulong) position);
-               }
-
-               public char ReadChar (long position) 
-               {
-                       if (!canread)
-                               throw new NotSupportedException ();
-                       if (buffer == null)
-                               throw new ObjectDisposedException ("buffer");
-                       if (position < 0)
-                               throw new ArgumentOutOfRangeException ();
-                       
-                       return buffer.Read<char> ((ulong) position);
-               }
-               
-               public decimal ReadDecimal (long position) 
-               {
-                       if (!canread)
-                               throw new NotSupportedException ();
-                       if (buffer == null)
-                               throw new ObjectDisposedException ("buffer");
-                       if (position < 0)
-                               throw new ArgumentOutOfRangeException ();
-                       
-                       return buffer.Read<decimal> ((ulong) position);
-               }
-               
-               public double ReadDouble (long position) 
-               {
-                       if (!canread)
-                               throw new NotSupportedException ();
-                       if (buffer == null)
-                               throw new ObjectDisposedException ("buffer");
-                       if (position < 0)
-                               throw new ArgumentOutOfRangeException ();
-                       
-                       return buffer.Read<double> ((ulong) position);
-               }
-
-               public short ReadInt16 (long position) 
-               {
-                       if (!canread)
-                               throw new NotSupportedException ();
-                       if (buffer == null)
-                               throw new ObjectDisposedException ("buffer");
-                       if (position < 0)
-                               throw new ArgumentOutOfRangeException ();
-                       
-                       return buffer.Read<short> ((ulong) position);
-               }
-               
-               public int ReadInt32 (long position) 
-               {
-                       if (!canread)
-                               throw new NotSupportedException ();
-                       if (buffer == null)
-                               throw new ObjectDisposedException ("buffer");
-                       if (position < 0)
-                               throw new ArgumentOutOfRangeException ();
-                       
-                       return buffer.Read<int> ((ulong) position);
-               }
-               
-               public long ReadInt64 (long position) 
-               {
-                       if (!canread)
-                               throw new NotSupportedException ();
-                       if (buffer == null)
-                               throw new ObjectDisposedException ("buffer");
-                       if (position < 0)
-                               throw new ArgumentOutOfRangeException ();
-                       
-                       return buffer.Read<long> ((ulong) position);
-               }
-               
-               [CLSCompliant (false)]
-               public sbyte ReadSByte (long position) 
-               {
-                       if (!canread)
-                               throw new NotSupportedException ();
-                       if (buffer == null)
-                               throw new ObjectDisposedException ("buffer");
-                       if (position < 0)
-                               throw new ArgumentOutOfRangeException ();
-                       
-                       return buffer.Read<sbyte> ((ulong) position);
-               }
-               
-               public float ReadSingle (long position) 
-               {
-                       if (!canread)
-                               throw new NotSupportedException ();
-                       if (buffer == null)
-                               throw new ObjectDisposedException ("buffer");
-                       if (position < 0)
-                               throw new ArgumentOutOfRangeException ();
-                       
-                       return buffer.Read<float> ((ulong) position);
-               }
-               
-               [CLSCompliant (false)]
-               public ushort ReadUInt16 (long position) 
-               {
-                       if (!canread)
-                               throw new NotSupportedException ();
-                       if (buffer == null)
-                               throw new ObjectDisposedException ("buffer");
-                       if (position < 0)
-                               throw new ArgumentOutOfRangeException ();
-                       
-                       return buffer.Read<ushort> ((ulong) position);
-               }
-
-               [CLSCompliant (false)]
-               public uint ReadUInt32 (long position) 
-               {
-                       if (!canread)
-                               throw new NotSupportedException ();
-                       if (buffer == null)
-                               throw new ObjectDisposedException ("buffer");
-                       if (position < 0)
-                               throw new ArgumentOutOfRangeException ();
-                       
-                       return buffer.Read<uint> ((ulong) position);
-               }
-
-               [CLSCompliant (false)]
-               public ulong ReadUInt64 (long position) 
-               {
-                       if (!canread)
-                               throw new NotSupportedException ();
-                       if (buffer == null)
-                               throw new ObjectDisposedException ("buffer");
-                       if (position < 0)
-                               throw new ArgumentOutOfRangeException ();
-                       
-                       return buffer.Read<ulong> ((ulong) position);
-               }
-
-               public void Read<T> (long position, out T structure) where T : struct
-               {
-                       if (!canread)
-                               throw new NotSupportedException ();
-                       if (buffer == null)
-                               throw new ObjectDisposedException ("buffer");
-                       if (position < 0)
-                               throw new ArgumentOutOfRangeException ();
-                       
-                       structure = buffer.Read<T> ((ulong) position);
-               }
-
-               public int ReadArray<T> (long position, T [] array, int offset, int count) where T : struct
-               {
-                       if (position < 0)
-                               throw new ArgumentOutOfRangeException ();
-                       
-                       long left = capacity - position;
-                       var slots = Math.Min (count, (int)(left / Marshal.SizeOf (typeof (T))));
-
-                       buffer.ReadArray ((ulong) position, array, offset, slots);
-                       return slots;
-               }
-               
-               public void Write (long position, bool value) 
-               {
-                       if (!canwrite)
-                               throw new NotSupportedException ();
-                       if (buffer == null)
-                               throw new ObjectDisposedException ("buffer");
-                       if (position < 0)
-                               throw new ArgumentOutOfRangeException ();
-                       
-                       buffer.Write ((ulong)position, value);
-               }
-
-               public void Write (long position, byte value) 
-               {
-                       if (!canwrite)
-                               throw new NotSupportedException ();
-                       if (buffer == null)
-                               throw new ObjectDisposedException ("buffer");
-                       if (position < 0)
-                               throw new ArgumentOutOfRangeException ();
-                       
-                       buffer.Write ((ulong)position, value);
-               }
-
-               public void Write (long position, char value) 
-               {
-                       if (!canwrite)
-                               throw new NotSupportedException ();
-                       if (buffer == null)
-                               throw new ObjectDisposedException ("buffer");
-                       if (position < 0)
-                               throw new ArgumentOutOfRangeException ();
-                       
-                       buffer.Write ((ulong)position, value);
-               }
-
-               public void Write (long position, decimal value) 
-               {
-                       if (!canwrite)
-                               throw new NotSupportedException ();
-                       if (buffer == null)
-                               throw new ObjectDisposedException ("buffer");
-                       if (position < 0)
-                               throw new ArgumentOutOfRangeException ();
-                       
-                       buffer.Write ((ulong)position, value);
-               }
-               
-               public void Write (long position, double value) 
-               {
-                       if (!canwrite)
-                               throw new NotSupportedException ();
-                       if (buffer == null)
-                               throw new ObjectDisposedException ("buffer");
-                       if (position < 0)
-                               throw new ArgumentOutOfRangeException ();
-                       
-                       buffer.Write ((ulong)position, value);
-               }
-
-               public void Write (long position, short value) 
-               {
-                       if (!canwrite)
-                               throw new NotSupportedException ();
-                       if (buffer == null)
-                               throw new ObjectDisposedException ("buffer");
-                       if (position < 0)
-                               throw new ArgumentOutOfRangeException ();
-                       
-                       buffer.Write ((ulong)position, value);
-               }
-
-               public void Write (long position, int value) 
-               {
-                       if (!canwrite)
-                               throw new NotSupportedException ();
-                       if (buffer == null)
-                               throw new ObjectDisposedException ("buffer");
-                       if (position < 0)
-                               throw new ArgumentOutOfRangeException ();
-                       
-                       buffer.Write ((ulong)position, value);
-               }
-
-               public void Write (long position, long value) 
-               {
-                       if (!canwrite)
-                               throw new NotSupportedException ();
-                       if (buffer == null)
-                               throw new ObjectDisposedException ("buffer");
-                       if (position < 0)
-                               throw new ArgumentOutOfRangeException ();
-                       
-                       buffer.Write ((ulong)position, value);
-               }
-
-               [CLSCompliant (false)]
-               public void Write (long position, sbyte value) 
-               {
-                       if (!canwrite)
-                               throw new NotSupportedException ();
-                       if (buffer == null)
-                               throw new ObjectDisposedException ("buffer");
-                       if (position < 0)
-                               throw new ArgumentOutOfRangeException ();
-                       
-                       buffer.Write ((ulong)position, value);
-               }
-
-               public void Write (long position, float value) 
-               {
-                       if (!canwrite)
-                               throw new NotSupportedException ();
-                       if (buffer == null)
-                               throw new ObjectDisposedException ("buffer");
-                       if (position < 0)
-                               throw new ArgumentOutOfRangeException ();
-                       
-                       buffer.Write ((ulong)position, value);
-               }
-
-               [CLSCompliant (false)]
-               public void Write (long position, ushort value) 
-               {
-                       if (!canwrite)
-                               throw new NotSupportedException ();
-                       if (buffer == null)
-                               throw new ObjectDisposedException ("buffer");
-                       if (position < 0)
-                               throw new ArgumentOutOfRangeException ();
-                       
-                       buffer.Write ((ulong)position, value);
-               }
-
-               [CLSCompliant (false)]
-               public void Write (long position, uint value) 
-               {
-                       if (!canwrite)
-                               throw new NotSupportedException ();
-                       if (buffer == null)
-                               throw new ObjectDisposedException ("buffer");
-                       if (position < 0)
-                               throw new ArgumentOutOfRangeException ();
-                       
-                       buffer.Write ((ulong)position, value);
-               }
-
-               [CLSCompliant (false)]
-               public void Write (long position, ulong value) 
-               {
-                       if (!canwrite)
-                               throw new NotSupportedException ();
-                       if (buffer == null)
-                               throw new ObjectDisposedException ("buffer");
-                       if (position < 0)
-                               throw new ArgumentOutOfRangeException ();
-                       
-                       buffer.Write ((ulong)position, value);
-               }
-
-               public void Write<T> (long position, ref T structure) where T : struct
-               {
-                       if (!canwrite)
-                               throw new NotSupportedException ();
-                       if (buffer == null)
-                               throw new ObjectDisposedException ("buffer");
-                       if (position < 0)
-                               throw new ArgumentOutOfRangeException ();
-                       
-                       buffer.Write<T> ((ulong)position, structure);
-               }
-
-               public void WriteArray<T> (long position, T [] array, int offset, int count) where T : struct 
-               {
-                       buffer.WriteArray ((ulong)position, array, offset, count);
-               }
-       
-               public bool CanRead {
-                       get { return canread; }
-               }
-
-               public bool CanWrite {
-                       get { return canwrite; }
-               }
-
-               public long Capacity {
-                       get { return capacity; }
-               }
-               
-               protected bool IsOpen {
-                       get { return buffer != null; }
-               }
-       }
-}
-
index 2712e90ce09741e0985f5fd930ada8d60c151362..9da34563f241ccf3e575df1e5acc425dfae28f90 100644 (file)
@@ -431,11 +431,7 @@ namespace System.Reflection {
 
                public string CultureName {
                        get {
-                               if (cultureinfo == null)
-                                       return null;
-                               if (cultureinfo.LCID == CultureInfo.InvariantCulture.LCID)
-                                       return "neutral";
-                               return cultureinfo.Name;
+                               return (cultureinfo == null)? null : cultureinfo.Name;
                        }
                }
 
index 035c08b02aace9c8f2454174f9b73fa81e952754..d884714401b27c3fcad2e58eacdde330a594f1aa 100644 (file)
@@ -137,6 +137,8 @@ namespace System.Reflection {
 
                public override string ToString ()
                {
+                       ResolveArguments ();
+
                        StringBuilder sb = new StringBuilder ();
 
                        sb.Append ("[" + ctorInfo.DeclaringType.FullName + "(");
index 96ded2372d338f791db6fd2e2c1f4571d4ca4422..34051bd8368e1e1cebe60a5e72d0aa6ad65a4a76 100644 (file)
@@ -139,14 +139,16 @@ namespace System.Reflection {
 
                internal static RuntimeAssembly LoadWithPartialNameInternal (String partialName, Evidence securityEvidence, ref StackCrawlMark stackMark)
                {
-                       AssemblyName an = new AssemblyName(partialName);
-                       return LoadWithPartialNameInternal (an, securityEvidence, ref stackMark);
+                       // Mono runtime does not support StackCrawlMark
+                       //FIXME stackMark should probably change method behavior in some cases.
+                       return (RuntimeAssembly) Assembly.LoadWithPartialName (partialName, securityEvidence);
                }
 
                internal static RuntimeAssembly LoadWithPartialNameInternal (AssemblyName an, Evidence securityEvidence, ref StackCrawlMark stackMark)
                {
-                       throw new NotImplementedException ("LoadWithPartialNameInternal");
+                       return LoadWithPartialNameInternal (an.ToString (), securityEvidence, ref stackMark);
                }
+
        }
 
        [ComVisible (true)]
index 491e2cbf33e1726fd2a7b8084908b6f89d40d320..f9a931f1135d39d71828ea7573124ee49683542e 100644 (file)
@@ -282,15 +282,6 @@ namespace System.Reflection {
                        ParameterInfo[] pinfo = GetParametersInternal ();
                        ConvertValues (binder, parameters, pinfo, culture, invokeAttr);
 
-#if !NET_2_1
-                       if (SecurityManager.SecurityEnabled) {
-                               // sadly Attributes doesn't tell us which kind of security action this is so
-                               // we must do it the hard way - and it also means that we can skip calling
-                               // Attribute (which is another an icall)
-                               SecurityManager.ReflectedLinkDemandInvoke (this);
-                       }
-#endif
-
                        if (ContainsGenericParameters)
                                throw new InvalidOperationException ("Late bound operations cannot be performed on types or methods for which ContainsGenericParameters is true.");
 
@@ -634,15 +625,6 @@ namespace System.Reflection {
 
                        MonoMethod.ConvertValues (binder, parameters, pinfo, culture, invokeAttr);
 
-#if !NET_2_1
-                       if (SecurityManager.SecurityEnabled) {
-                               // sadly Attributes doesn't tell us which kind of security action this is so
-                               // we must do it the hard way - and it also means that we can skip calling
-                               // Attribute (which is another an icall)
-                               SecurityManager.ReflectedLinkDemandInvoke (this);
-                       }
-#endif
-
                        if (obj == null && DeclaringType.ContainsGenericParameters)
                                throw new MemberAccessException ("Cannot create an instance of " + DeclaringType + " because Type.ContainsGenericParameters is true.");
 
index c9ce2f0949f58cead92740654fb9180cc6593e16..0e61c36b7fd57029c7db92ec042e5a68b6a15426 100644 (file)
@@ -30,7 +30,7 @@
 
 using System;
 
-#if !MOBILE
+#if !FULL_AOT_RUNTIME
 namespace System.Runtime.InteropServices
 {
        [Obsolete]
index 1b650da569d25bda48ab02c01ab63dadb89c4d9e..8bed0815d260a9d15a98da78b35cdbbe2a62f6ba 100644 (file)
@@ -578,7 +578,7 @@ namespace System.Runtime.InteropServices
                        throw new NotImplementedException ();                   
                }
 
-#if !MOBILE
+#if !FULL_AOT_RUNTIME
                [Obsolete]
                [MonoTODO]
                public static string GetTypeInfoName (UCOMITypeInfo pTI)
@@ -979,6 +979,21 @@ namespace System.Runtime.InteropServices
                        return SizeOf (structure.GetType ());
                }
 
+               internal static uint SizeOfType (Type type)
+               {
+                       return (uint) SizeOf (type);
+               }
+
+               internal static uint AlignedSizeOf<T> () where T : struct
+               {
+                       uint size = SizeOfType (typeof (T));
+                       if (size == 1 || size == 2)
+                               return size;
+                       if (IntPtr.Size == 8 && size == 4)
+                               return size;
+                       return (size + 3) & (~((uint)3));
+               }
+
                [MethodImplAttribute(MethodImplOptions.InternalCall)]
                public extern static IntPtr StringToBSTR (string s);
 
index c706ceed6184073e2a374ed306b1eaf70d0d5c16..5a8f5ce05fda7356dc79ee4831ea5847e6069329 100644 (file)
@@ -61,50 +61,8 @@ using System.Threading;
 namespace System.Runtime.InteropServices
 {
        [StructLayout (LayoutKind.Sequential)]
-       public abstract class SafeHandle : CriticalFinalizerObject, IDisposable
+       public abstract partial class SafeHandle
        {
-               /* Warning: the offset of handle is mapped inside the runtime
-                * if you move this, you must updated the runtime definition of
-                * MonoSafeHandle */
-               protected IntPtr handle;
-
-               /*
-                * To prevent handle recycling security attacks we must enforce the
-                * following invariant: we cannot successfully AddRef a handle on which
-                * we've committed to the process of releasing.
-                *
-                * We ensure this by never AddRef'ing a handle that is marked closed and
-                * never marking a handle as closed while the ref count is non-zero. For
-                * this to be thread safe we must perform inspection/updates of the two
-                * values as a single atomic operation. We achieve this by storing them both
-                * in a single aligned DWORD and modifying the entire state via interlocked
-                * compare exchange operations.
-                *
-                * Additionally we have to deal with the problem of the Dispose operation.
-                * We must assume that this operation is directly exposed to untrusted
-                * callers and that malicious callers will try and use what is basically a
-                * Release call to decrement the ref count to zero and free the handle while
-                * it's still in use (the other way a handle recycling attack can be
-                * mounted). We combat this by allowing only one Dispose to operate against
-                * a given safe handle (which balances the creation operation given that
-                * Dispose suppresses finalization). We record the fact that a Dispose has
-                * been requested in the same state field as the ref count and closed state.
-                *
-                * So the state field ends up looking like this:
-                *
-                *  31                                                        2  1   0
-                * +-----------------------------------------------------------+---+---+
-                * |                           Ref count                       | D | C |
-                * +-----------------------------------------------------------+---+---+
-                *
-                * Where D = 1 means a Dispose has been performed and C = 1 means the
-                * underlying handle has (or will be shortly) released.
-                */
-               int state;
-
-               bool owns_handle;
-               bool fully_initialized;
-
                const int RefCount_Mask = 0x7ffffffc;
                const int RefCount_One = 0x4;
 
@@ -113,49 +71,6 @@ namespace System.Runtime.InteropServices
                        Disposed = 0x00000002,
                }
 
-#if NET_2_1
-               protected SafeHandle ()
-               {
-                       throw new NotImplementedException ();
-               }
-#endif
-
-               [ReliabilityContract (Consistency.WillNotCorruptState, Cer.MayFail)]
-               protected SafeHandle (IntPtr invalidHandleValue, bool ownsHandle)
-               {
-                       handle = invalidHandleValue;
-                       state = RefCount_One;
-                       owns_handle = ownsHandle;
-
-                       if (!owns_handle)
-                               GC.SuppressFinalize (this);
-
-                       fully_initialized = true;
-               }
-
-               ~SafeHandle ()
-               {
-                       Dispose (false);
-               }
-
-               public bool IsClosed {
-                       [ReliabilityContract (Consistency.WillNotCorruptState, Cer.Success)]
-                       get {
-                               return (state & (int) State.Closed) != 0;
-                       }
-               }
-
-               public abstract bool IsInvalid {
-                       [ReliabilityContract (Consistency.WillNotCorruptState, Cer.Success)]
-                       get;
-               }
-
-               [ReliabilityContract (Consistency.WillNotCorruptState, Cer.Success)]
-               protected void SetHandle (IntPtr handle)
-               {
-                       this.handle = handle;
-               }
-
                /*
                 * This should only be called for cases when you know for a fact that
                 * your handle is invalid and you want to record that information.
@@ -168,35 +83,13 @@ namespace System.Runtime.InteropServices
                        int old_state, new_state;
 
                        do {
-                               old_state = state;
+                               old_state = _state;
                                new_state = old_state | (int) State.Closed;
-                       } while (Interlocked.CompareExchange (ref state, new_state, old_state) != old_state);
+                       } while (Interlocked.CompareExchange (ref _state, new_state, old_state) != old_state);
 
                        GC.SuppressFinalize (this);
                }
 
-               /*
-                * This method is necessary for getting an IntPtr out of a SafeHandle.
-                * Used to tell whether a call to create the handle succeeded by comparing
-                * the handle against a known invalid value, and for backwards
-                * compatibility to support the handle properties returning IntPtrs on
-                * many of our Framework classes.
-                * Note that this method is dangerous for two reasons:
-                *  1) If the handle has been marked invalid with SetHandleasInvalid,
-                *     DangerousGetHandle will still return the original handle value.
-                *  2) The handle returned may be recycled at any point. At best this means
-                *     the handle might stop working suddenly. At worst, if the handle or
-                *     the resource the handle represents is exposed to untrusted code in
-                *     any way, this can lead to a handle recycling security attack (i.e. an
-                *     untrusted caller can query data on the handle you've just returned
-                *     and get back information for an entirely unrelated resource).
-                */
-               [ReliabilityContract (Consistency.WillNotCorruptState, Cer.Success)]
-               public IntPtr DangerousGetHandle ()
-               {
-                       return handle;
-               }
-
                /*
                 * Add a reason why this handle should not be relinquished (i.e. have
                 * ReleaseHandle called on it). This method has dangerous in the name since
@@ -215,19 +108,19 @@ namespace System.Runtime.InteropServices
                [ReliabilityContract (Consistency.WillNotCorruptState, Cer.MayFail)]
                public void DangerousAddRef (ref bool success)
                {
-                       if (!fully_initialized)
+                       if (!_fullyInitialized)
                                throw new InvalidOperationException ();
 
                        int old_state, new_state;
 
                        do {
-                               old_state = state;
+                               old_state = _state;
 
                                if ((old_state & (int) State.Closed) != 0)
                                        throw new ObjectDisposedException ("handle");
 
                                new_state = old_state + RefCount_One;
-                       } while (Interlocked.CompareExchange (ref state, new_state, old_state) != old_state);
+                       } while (Interlocked.CompareExchange (ref _state, new_state, old_state) != old_state);
 
                        success = true;
                }
@@ -249,30 +142,17 @@ namespace System.Runtime.InteropServices
                        DangerousReleaseInternal (false);
                }
 
-               [ReliabilityContract (Consistency.WillNotCorruptState, Cer.Success)]
-               public void Close ()
+               void InternalDispose ()
                {
-                       Dispose (true);
-               }
-
-               [ReliabilityContract (Consistency.WillNotCorruptState, Cer.Success)]
-               public void Dispose ()
-               {
-                       Dispose (true);
-                       GC.SuppressFinalize (this);
+                       if (!_fullyInitialized)
+                               throw new InvalidOperationException ();
+                       DisposeInternal ();
                }
 
-               [ReliabilityContract (Consistency.WillNotCorruptState, Cer.Success)]
-               protected virtual void Dispose (bool disposing)
+               void InternalFinalize ()
                {
-                       if (disposing) {
-                               if (!fully_initialized)
-                                       throw new InvalidOperationException ();
+                       if (_fullyInitialized)
                                DisposeInternal ();
-                       } else {
-                               if (fully_initialized)
-                                       DisposeInternal ();
-                       }
                }
 
                void DisposeInternal ()
@@ -283,7 +163,7 @@ namespace System.Runtime.InteropServices
 
                void DangerousReleaseInternal (bool dispose)
                {
-                       if (!fully_initialized)
+                       if (!_fullyInitialized)
                                throw new InvalidOperationException ();
 
                        int old_state, new_state;
@@ -294,7 +174,7 @@ namespace System.Runtime.InteropServices
                        bool perform_release = false;
 
                        do {
-                               old_state = state;
+                               old_state = _state;
 
                                /* If this is a Dispose operation we have additional requirements (to
                                 * ensure that Dispose happens at most once as the comments in AddRef
@@ -315,7 +195,7 @@ namespace System.Runtime.InteropServices
                                perform_release =
                                        (old_state & RefCount_Mask) == RefCount_One
                                         && (old_state & (int) State.Closed) == 0
-                                        && owns_handle;
+                                        && _ownsHandle;
 
                                if (perform_release && IsInvalid)
                                        perform_release = false;
@@ -329,7 +209,7 @@ namespace System.Runtime.InteropServices
                                        (old_state - RefCount_One)
                                         | ((old_state & RefCount_Mask) == RefCount_One ? (int) State.Closed : 0)
                                         | (dispose ? (int) State.Disposed : 0);
-                       } while (Interlocked.CompareExchange (ref state, new_state, old_state) != old_state);
+                       } while (Interlocked.CompareExchange (ref _state, new_state, old_state) != old_state);
 
                        if (perform_release)
                                ReleaseHandle ();
index 0e4a5d4592f0e15ffc21580de6833c0ca67b0620..cd0e84f3fc81d116272581d4771f4e5d0532543b 100644 (file)
@@ -26,7 +26,7 @@
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
-#if !MOBILE
+#if !FULL_AOT_RUNTIME
 namespace System.Runtime.InteropServices
 {
        [Obsolete]
index d652123058a73830f002b67d6e42898e9ba47b90..8011610ab7bcf250fc236fa0a56ef2ab359d0523 100644 (file)
@@ -26,7 +26,7 @@
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
-#if !MOBILE
+#if !FULL_AOT_RUNTIME
 namespace System.Runtime.InteropServices
 {
        [Obsolete]
index 02f4a456d4b1d1eeedb8954afc4aadc3c435e04a..bb669b78e0d47ed47cdcf9dcd2befe3b6f13b757 100644 (file)
@@ -26,7 +26,7 @@
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
-#if !MOBILE
+#if !FULL_AOT_RUNTIME
 namespace System.Runtime.InteropServices
 {
        [Obsolete]
index eb10fe08716812160c5daa133f4c5ce826f0c96a..12af145c4cd4ae22756c4f5cbc5eb7823fdc91d3 100644 (file)
@@ -28,7 +28,7 @@
 //
 // (C) 2002 Ximian, Inc.
 
-#if !MOBILE
+#if !FULL_AOT_RUNTIME
 namespace System.Runtime.InteropServices
 {
        [Obsolete]
index 5d374f12ea93616af855dcbcadf642eccbf05b90..a8b4a1600b6429d838223683ed21783147f38dd3 100644 (file)
@@ -28,7 +28,7 @@
 //
 // (C) 2002 Ximian, Inc.
 
-#if !MOBILE
+#if !FULL_AOT_RUNTIME
 namespace System.Runtime.InteropServices
 {
        [Obsolete]
index 46137121a6db1be7833f29f802bb59fbe4d425a3..2b9c1ccdc0da9ae69006d80cf71dc6e0b45217ec 100644 (file)
@@ -28,7 +28,7 @@
 //
 // (C) 2002 Ximian, Inc.
 
-#if !MOBILE
+#if !FULL_AOT_RUNTIME
 namespace System.Runtime.InteropServices
 {
        [Obsolete]
index 5ff6d62f134fb610f783082e9ec0ab9407b899c5..ff43f8dc0d0301c6df76aaf30b3e6e175dcdb352 100644 (file)
@@ -62,6 +62,7 @@ public class AsyncResult : IAsyncResult, IMessageSink, IThreadPoolWorkItem {
        IMessageCtrl message_ctrl;
 #pragma warning restore
        IMessage reply_message;
+       WaitCallback orig_cb;
        
        internal AsyncResult ()
        {
@@ -69,10 +70,28 @@ public class AsyncResult : IAsyncResult, IMessageSink, IThreadPoolWorkItem {
 
        internal AsyncResult (WaitCallback cb, object state, bool capture_context)
        {
+               orig_cb = cb;
+               if (capture_context) {
+                       var stackMark = default (StackCrawlMark);
+                       current = ExecutionContext.Capture (
+                               ref stackMark,
+                               ExecutionContext.CaptureOptions.IgnoreSyncCtx | ExecutionContext.CaptureOptions.OptimizeDefaultCase);
+                       cb = delegate {
+                               ExecutionContext.Run(current, ccb, this, true);
+                       };
+               }
+
                async_state = state;
                async_delegate = cb;
-               if (capture_context)
-                       current = ExecutionContext.Capture ();
+       }
+
+       static internal ContextCallback ccb = new ContextCallback(WaitCallback_Context);
+
+       static private void WaitCallback_Context(Object state)
+       {
+               AsyncResult obj = (AsyncResult)state;
+               WaitCallback wc = obj.orig_cb as WaitCallback;
+               wc(obj.async_state);
        }
 
        public virtual object AsyncState
diff --git a/mcs/class/corlib/System.Runtime.Remoting.Messaging/CallContext.cs b/mcs/class/corlib/System.Runtime.Remoting.Messaging/CallContext.cs
deleted file mode 100644 (file)
index a4f55e5..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-// 
-// System.Runtime.Remoting.Messaging.CallContext.cs
-//
-// Authors: Jaime Anguiano Olarra (jaime@gnome.org)
-//         Lluis Sanchez Gual (lluis@ximian.com)
-//          Marek Safar (marek.safar@gmail.com)
-//
-// (c) 2002, Jaime Anguiano Olarra
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-// Copyright (C) 2014 Xamarin Inc (http://www.xamarin.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Threading;
-using System.Collections;
-using System.Collections.Generic;
-
-namespace System.Runtime.Remoting.Messaging 
-{      
-       [Serializable]
-       [System.Runtime.InteropServices.ComVisible (true)]
-       public sealed class CallContext 
-       {
-               [ThreadStatic] static Header [] Headers;
-               [ThreadStatic] static object hostContext;
-               
-               private CallContext ()
-               {
-               }
-
-               public static object HostContext {
-                       get { return hostContext; }
-                       set { hostContext = value; }
-               }
-
-               public static void FreeNamedDataSlot (string name)
-               {
-                       ExecutionContext.FreeNamedDataSlot (name);
-               }
-
-               public static object GetData (string name) 
-               {
-                       var value = LogicalGetData (name);
-                       if (value == null)
-                               Datastore.TryGetValue (name, out value);
-
-                       return value;
-               }
-               
-               public static void SetData (string name, object data) 
-               {
-                       if (data is ILogicalThreadAffinative) {
-                               LogicalSetData (name, data);
-                       } else {
-                               var ec = ExecutionContext.GetCurrentWritable ();
-                               ec.LogicalCallContext.FreeNamedDataSlot (name);
-                               ec.DataStore [name] = data;
-                       }
-               }
-               
-               public static object LogicalGetData (string name) 
-               {
-                       return LogicalContext.GetData (name);
-               }
-
-               public static void LogicalSetData (string name, object data) 
-               {
-                       var ec = ExecutionContext.GetCurrentWritable ();
-                       ec.DataStore.Remove (name);
-                       ec.LogicalCallContext.SetData (name, data);
-               }
-
-               public static Header[] GetHeaders () 
-               {
-                       return Headers;
-               }
-               
-               public static void SetHeaders (Header[] headers) 
-               {
-                       Headers = headers;
-               }
-
-               internal static object SetCurrentCallContext (LogicalCallContext ctx)
-               {
-                       object oldData = new object[] { Datastore, LogicalContext.Datastore };
-
-                       Hashtable logicalDatastore;
-                       if (ctx != null && ctx.HasInfo)
-                               logicalDatastore = (Hashtable) ctx.Datastore.Clone ();
-                       else
-                               logicalDatastore = null;
-                               
-                       LogicalContext.Datastore = logicalDatastore;
-                       return oldData;
-               }
-
-               internal static void UpdateCurrentLogicalCallContext (LogicalCallContext ctx)
-               {
-                       Hashtable data = ctx.Datastore;
-                       if (data == null)
-                               return;
-
-                       foreach (DictionaryEntry entry in data)
-                               LogicalSetData ((string)entry.Key, entry.Value);
-               }
-               
-               internal static void RestoreCallContext (object oldContext)
-               {
-                       object[] contextArray = (object[])oldContext;
-                       ExecutionContext.DataStore = (Dictionary<string, object>)contextArray [0];
-                       LogicalContext.Datastore = (Hashtable)contextArray [1];
-               }
-
-               static Dictionary<string, object> Datastore {
-                       get {
-                               return ExecutionContext.DataStore;
-                       }
-               }
-
-               static LogicalCallContext LogicalContext {
-                       get {
-                               return ExecutionContext.LogicalCallContext;
-                       }
-               }
-
-               static ExecutionContext ExecutionContext {
-                       get {
-                               return ExecutionContext.Current;
-                       }
-               }
-       }
-
-       [System.Runtime.InteropServices.ComVisible (true)]
-       public interface ILogicalThreadAffinative
-       {
-       }
-}
diff --git a/mcs/class/corlib/System.Runtime.Remoting.Messaging/LogicalCallContext.cs b/mcs/class/corlib/System.Runtime.Remoting.Messaging/LogicalCallContext.cs
deleted file mode 100644 (file)
index ab4edfc..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-//
-// System.Runtime.Remoting.Messaging.LogicalCallContext.cs
-//
-// Authors:
-//   Dan Lewis (dihlewis@yahoo.co.uk)
-//   Lluis Sanchez Gual (lluis@ximian.com)
-//   Marek Safar (marek.safar@gmail.com)
-//
-// 2002 (C) Copyright. Ximian, Inc.
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-// Copyright (C) 2014 Xamarin Inc (http://www.xamarin.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System.Collections;
-using System.Runtime.Serialization;
-
-namespace System.Runtime.Remoting.Messaging 
-{
-       [Serializable]
-       [System.Runtime.InteropServices.ComVisible (true)]
-       public sealed class LogicalCallContext : ISerializable, ICloneable
-       {
-               Hashtable _data;
-               CallContextRemotingData _remotingData = new CallContextRemotingData();
-               
-               internal LogicalCallContext ()
-               {
-               }
-
-               internal LogicalCallContext (SerializationInfo info, StreamingContext context)
-               {
-                       foreach (SerializationEntry entry in info)
-                       {
-                               if (entry.Name == "__RemotingData")
-                                       _remotingData = (CallContextRemotingData) entry.Value;
-                               else
-                                       SetData (entry.Name, entry.Value);
-                       }
-               }
-
-               public bool HasInfo {
-                       get {
-                               return _data != null && _data.Count > 0;
-                       }
-               }
-
-               public void FreeNamedDataSlot (string name)
-               {
-                       if (_data != null)
-                               _data.Remove (name);
-               }
-
-               public object GetData (string name)
-               {
-                       return _data != null ? _data [name] : null;
-               }
-
-               public void GetObjectData (SerializationInfo info, StreamingContext context)
-               {
-                       info.AddValue ("__RemotingData", _remotingData);
-                       if (_data != null)
-                       {
-                               foreach (DictionaryEntry de in _data)
-                                       info.AddValue ((string)de.Key, de.Value);
-                       }
-               }
-
-               public void SetData (string name, object data)
-               {
-                       if (_data == null) 
-                               _data = new Hashtable ();
-                       _data [name] = data;
-               }
-
-               public object Clone ()
-               {
-                       LogicalCallContext nc = new LogicalCallContext ();
-                       nc._remotingData = (CallContextRemotingData) _remotingData.Clone ();
-                       if (_data != null)
-                               nc._data = (Hashtable) _data.Clone ();
-
-                       return nc;
-               }
-
-               internal Hashtable Datastore {
-                       get { return _data; }
-                       set { _data = value; }
-               }
-
-               internal CallContextRemotingData RemotingData {
-                       get {
-                               return _remotingData;
-                       }
-               }
-       }
-
-       [Serializable]
-       internal class CallContextRemotingData : ICloneable
-       {
-               string _logicalCallID;
-
-               public string LogicalCallID
-               {
-                       get { return _logicalCallID; }
-                       set { _logicalCallID = value; }
-               }
-
-               public object Clone ()
-               {
-                       CallContextRemotingData data = new CallContextRemotingData ();
-                       data._logicalCallID = _logicalCallID;
-                       return data;
-               }
-}
-}
-
index a87cf9517bd20e8b515a3c890667ad7b28cc4f7f..de4b921cff8671dd29568107d49ca017960ae6a6 100644 (file)
@@ -163,7 +163,7 @@ namespace System.Runtime.Remoting.Proxies
                                                      out object [] out_args)
                {
                        MonoMethodMessage mMsg = (MonoMethodMessage) msg;
-                       mMsg.LogicalCallContext = ExecutionContext.CreateLogicalCallContext (true);
+                       mMsg.LogicalCallContext = Thread.CurrentThread.GetMutableExecutionContext().LogicalCallContext;
                        CallType call_type = mMsg.CallType;
                        bool is_remproxy = (rp is RemotingProxy);
 
@@ -218,8 +218,9 @@ namespace System.Runtime.Remoting.Proxies
                                }
                        }
                        
-                       if (res_msg.LogicalCallContext != null && res_msg.LogicalCallContext.HasInfo)
-                               CallContext.UpdateCurrentLogicalCallContext (res_msg.LogicalCallContext);
+                       if (res_msg.LogicalCallContext != null && res_msg.LogicalCallContext.HasInfo) {
+                               Thread.CurrentThread.GetMutableExecutionContext().LogicalCallContext.Merge (res_msg.LogicalCallContext);
+                       }
 
                        exc = res_msg.Exception;
 
index 63e9bb12ce41a9c2b3302ec01667c76d10e83ebe..c0015138cd35639c9a79dda46921f71ca1806a19 100644 (file)
@@ -142,7 +142,7 @@ namespace System.Runtime.Remoting
                                method = gmd.MakeGenericMethod (genericArguments);
                        }
 
-                       object oldContext = CallContext.SetCurrentCallContext (reqMsg.LogicalCallContext);
+                       var oldContext = CallContext.SetLogicalCallContext (reqMsg.LogicalCallContext);
                        
                        try 
                        {
@@ -168,14 +168,15 @@ namespace System.Runtime.Remoting
                                                returnArgs [n++] = null; 
                                }
                                
-                               result = new ReturnMessage (rval, returnArgs, n, ExecutionContext.CreateLogicalCallContext (true), reqMsg);
+                               var latestCallContext = Thread.CurrentThread.GetMutableExecutionContext().LogicalCallContext;
+                               result = new ReturnMessage (rval, returnArgs, n, latestCallContext, reqMsg);
                        } 
                        catch (Exception e) 
                        {
                                result = new ReturnMessage (e, reqMsg);
                        }
                        
-                       CallContext.RestoreCallContext (oldContext);
+                       CallContext.SetLogicalCallContext (oldContext);
                        return result;
                }
 
@@ -769,11 +770,11 @@ namespace System.Runtime.Remoting
                [SecurityPermission (SecurityAction.Assert, SerializationFormatter = true)] // FIXME: to be reviewed
                internal static byte[] SerializeCallData (object obj)
                {
-                       LogicalCallContext ctx = ExecutionContext.CreateLogicalCallContext (false);
-                       if (ctx != null) {
+                       var ctx = Thread.CurrentThread.GetExecutionContextReader().LogicalCallContext;
+                       if (!ctx.IsNull) {
                                CACD cad = new CACD ();
                                cad.d = obj;
-                               cad.c = ctx;
+                               cad.c = ctx.Clone ();
                                obj = cad;
                        }
                        
@@ -795,7 +796,10 @@ namespace System.Runtime.Remoting
                        if (obj is CACD) {
                                CACD cad = (CACD) obj;
                                obj = cad.d;
-                               CallContext.UpdateCurrentLogicalCallContext ((LogicalCallContext) cad.c);
+
+                               var lcc = (LogicalCallContext) cad.c;
+                               if (lcc.HasInfo)
+                                       Thread.CurrentThread.GetMutableExecutionContext().LogicalCallContext.Merge (lcc);
                        }
                        return obj;
                }
index d6fb5d8d9dea5089c6aab58f49b23a4e0336bf21..15fbb4ad39029df6e511b002241ab9ebc47a0124 100644 (file)
@@ -58,50 +58,6 @@ namespace System.Security {
                        new PermissionSet (this).Assert ();
                }
 
-               internal bool CheckAssert (CodeAccessPermission asserted)
-               {
-                       if (asserted == null)
-                               return false;
-                       if (asserted.GetType () != this.GetType ())
-                               return false;
-                       return IsSubsetOf (asserted);
-               }
-
-               internal bool CheckDemand (CodeAccessPermission target)
-               {
-                       if (target == null)
-                               return false;
-                       if (target.GetType () != this.GetType ())
-                               return false;
-                       return IsSubsetOf (target);
-               }
-
-               internal bool CheckDeny (CodeAccessPermission denied)
-               {
-                       if (denied == null)
-                               return true;
-                       Type t = denied.GetType ();
-                       if (t != this.GetType ())
-                               return true;
-                       IPermission inter = Intersect (denied);
-                       if (inter == null)
-                               return true;
-                       // sadly that's not enough :( at this stage we must also check
-                       // if an empty (PermissionState.None) is a subset of the denied
-                       // (which is like a empty intersection looks like for flag based
-                       // permissions, e.g. AspNetHostingPermission).
-                       return denied.IsSubsetOf (PermissionBuilder.Create (t));
-               }
-
-               internal bool CheckPermitOnly (CodeAccessPermission target)
-               {
-                       if (target == null)
-                               return false;
-                       if (target.GetType () != this.GetType ())
-                               return false;
-                       return IsSubsetOf (target);
-               }
-
                public abstract IPermission Copy ();
 
                public void Demand ()
@@ -169,28 +125,7 @@ namespace System.Security {
                {
                        if (!SecurityManager.SecurityEnabled)
                                return;
-
-                       SecurityFrame sf = new SecurityFrame (1);
-                       bool revert = false;
-                       if ((sf.Assert != null) && !sf.Assert.DeclarativeSecurity) {
-                               revert = true;
-                               throw new NotSupportedException ("Currently only declarative Assert are supported.");
-                       }
-                       if ((sf.Deny != null) && !sf.Deny.DeclarativeSecurity) {
-                               revert = true;
-                               throw new NotSupportedException ("Currently only declarative Deny are supported.");
-                       }
-                       if ((sf.PermitOnly != null) && !sf.PermitOnly.DeclarativeSecurity) {
-                               revert = true;
-                               throw new NotSupportedException ("Currently only declarative PermitOnly are supported.");
-                       }
-
-                       if (!revert) {
-                               string msg = Locale.GetText ("No stack modifiers are present on the current stack frame.");
-                               // FIXME: we don't (yet) support imperative stack modifiers
-                               msg += Environment.NewLine + "Currently only declarative stack modifiers are supported.";
-                               throw new ExecutionEngineException (msg);
-                       }
+                       throw new NotImplementedException ();
                }
 
                [MonoTODO ("CAS support is experimental (and unsupported). Imperative mode is not implemented.")]
@@ -198,14 +133,7 @@ namespace System.Security {
                {
                        if (!SecurityManager.SecurityEnabled)
                                return;
-
-                       SecurityFrame sf = new SecurityFrame (1);
-                       if ((sf.Assert != null) && !sf.Assert.DeclarativeSecurity) {
-                               throw new NotSupportedException ("Currently only declarative Assert are supported.");
-                       } else {
-                               // we can't revert declarative security (or an empty frame) imperatively
-                               ThrowExecutionEngineException (SecurityAction.Assert);
-                       }
+                       throw new NotImplementedException ();
                }
 
                [MonoTODO ("CAS support is experimental (and unsupported). Imperative mode is not implemented.")]
@@ -213,14 +141,7 @@ namespace System.Security {
                {
                        if (!SecurityManager.SecurityEnabled)
                                return;
-
-                       SecurityFrame sf = new SecurityFrame (1);
-                       if ((sf.Deny != null) && !sf.Deny.DeclarativeSecurity) {
-                               throw new NotSupportedException ("Currently only declarative Deny are supported.");
-                       } else {
-                               // we can't revert declarative security (or an empty frame) imperatively
-                               ThrowExecutionEngineException (SecurityAction.Deny);
-                       }
+                       throw new NotImplementedException ();
                }
 
                [MonoTODO ("CAS support is experimental (and unsupported). Imperative mode is not implemented.")]
@@ -228,14 +149,7 @@ namespace System.Security {
                {
                        if (!SecurityManager.SecurityEnabled)
                                return;
-
-                       SecurityFrame sf = new SecurityFrame (1);
-                       if ((sf.PermitOnly != null) && sf.PermitOnly.DeclarativeSecurity) {
-                               throw new NotSupportedException ("Currently only declarative PermitOnly are supported.");
-                       } else {
-                               // we can't revert declarative security (or an empty frame) imperatively
-                               ThrowExecutionEngineException (SecurityAction.PermitOnly);
-                       }
+                       throw new NotImplementedException ();
                }
 
                // Internal helpers methods
@@ -313,80 +227,11 @@ namespace System.Security {
                        return (String.Compare (value, Boolean.TrueString, true, CultureInfo.InvariantCulture) == 0);
                }
 
-               internal bool ProcessFrame (SecurityFrame frame)
-               { 
-                       // 1. CheckPermitOnly
-                       if (frame.PermitOnly != null) {
-                               // the demanded permission must be in one of the permitted...
-                               bool permit = frame.PermitOnly.IsUnrestricted ();
-                               if (!permit) {
-                                       // check individual permissions
-                                       foreach (IPermission p in frame.PermitOnly) {
-                                               if (CheckPermitOnly (p as CodeAccessPermission)) {
-                                                       permit = true;
-                                                       break;
-                                               }
-                                       }
-                               }
-                               if (!permit) {
-                                       // ...or else we throw
-                                       ThrowSecurityException (this, "PermitOnly", frame, SecurityAction.Demand, null);
-                               }
-                       }
-
-                       // 2. CheckDeny
-                       if (frame.Deny != null) {
-                               // special case where everything is denied (i.e. no child to be processed)
-                               if (frame.Deny.IsUnrestricted ())
-                                       ThrowSecurityException (this, "Deny", frame, SecurityAction.Demand, null);
-                               foreach (IPermission p in frame.Deny) {
-                                       if (!CheckDeny (p as CodeAccessPermission))
-                                               ThrowSecurityException (this, "Deny", frame, SecurityAction.Demand, p);
-                               }
-                       }
-
-                       // 3. CheckAssert
-                       if (frame.Assert != null) {
-                               if (frame.Assert.IsUnrestricted ())
-                                       return true; // remove permission and continue stack walk
-                               foreach (IPermission p in frame.Assert) {
-                                       if (CheckAssert (p as CodeAccessPermission)) {
-                                               return true; // remove permission and continue stack walk
-                                       }
-                               }
-                       }
-
-                       // continue the stack walk
-                       return false; 
-               }
-
                internal static void ThrowInvalidPermission (IPermission target, Type expected) 
                {
                        string msg = Locale.GetText ("Invalid permission type '{0}', expected type '{1}'.");
                        msg = String.Format (msg, target.GetType (), expected);
                        throw new ArgumentException (msg, "target");
                }
-
-               internal static void ThrowExecutionEngineException (SecurityAction stackmod)
-               {
-                       string msg = Locale.GetText ("No {0} modifier is present on the current stack frame.");
-                       // FIXME: we don't (yet) support imperative stack modifiers
-                       msg += Environment.NewLine + "Currently only declarative stack modifiers are supported.";
-                       throw new ExecutionEngineException (String.Format (msg, stackmod));
-               }
-
-               internal static void ThrowSecurityException (object demanded, string message, SecurityFrame frame,
-                       SecurityAction action, IPermission failed)
-               {
-#if NET_2_1
-                       throw new SecurityException (message);
-#else
-                       Assembly a = frame.Assembly;
-                       throw new SecurityException (Locale.GetText (message), 
-                               a.UnprotectedGetName (), a.GrantedPermissionSet, 
-                               a.DeniedPermissionSet, frame.Method, action, demanded, 
-                               failed, a.UnprotectedGetEvidence ());
-#endif
-               }
        }
 }
index 2a9b3e40c444df354ced988184df249f27ce822a..54cc0c1b3607e186cd7fa80511c13b32f6fb082f 100644 (file)
@@ -234,34 +234,6 @@ namespace System.Security {
                                // special case when directly called from CodeAccessPermission.Demand
                                _ignored = new bool [list.Count];
                        }
-
-                       ArrayList frames = SecurityFrame.GetStack (skip);
-                       if ((frames != null) && (frames.Count > 0)) {
-                               SecurityFrame first = ((SecurityFrame) frames [0]);
-                               current = first.Assembly;
-                               domain = first.Domain;
-                               // skip ourself, Demand and other security runtime methods
-                               foreach (SecurityFrame sf in frames) {
-                                       if (ProcessFrame (sf, ref current, ref domain)) {
-                                               if (AllIgnored ())
-                                                       return; // reached Assert
-                                       }
-                               }
-                               SecurityFrame last = ((SecurityFrame) frames [frames.Count - 1]);
-                               CheckAssembly (current, last);
-                               CheckAppDomain (domain, last);
-                       }
-
-                       // Is there a CompressedStack to handle ?
-                       CompressedStack stack = Thread.CurrentThread.GetCompressedStack ();
-                       if ((stack != null) && !stack.IsEmpty ()) {
-                               foreach (SecurityFrame frame in stack.List) {
-                                       if (ProcessFrame (frame, ref current, ref domain)) {
-                                               if (AllIgnored ())
-                                                       return; // reached Assert
-                                       }
-                               }
-                       }
                }
 
                [MonoTODO ("CAS support is experimental (and unsupported). Imperative mode is not implemented.")]
@@ -681,65 +653,6 @@ namespace System.Security {
                        return true;
                }
 
-               internal bool ProcessFrame (SecurityFrame frame, ref Assembly current, ref AppDomain domain)
-               {
-                       if (IsUnrestricted ()) {
-                               // we request unrestricted
-                               if (frame.Deny != null) {
-                                       // but have restrictions (some denied permissions)
-                                       CodeAccessPermission.ThrowSecurityException (this, "Deny", frame, SecurityAction.Demand, null);
-                               } else if ((frame.PermitOnly != null) && !frame.PermitOnly.IsUnrestricted ()) {
-                                       // but have restrictions (only some permitted permissions)
-                                       CodeAccessPermission.ThrowSecurityException (this, "PermitOnly", frame, SecurityAction.Demand, null);
-                               }
-                       }
-
-                       // skip next steps if no Assert, Deny or PermitOnly are present
-                       if (frame.HasStackModifiers) {
-                               for (int i = 0; i < list.Count; i++) {
-                                       CodeAccessPermission cap = (CodeAccessPermission) list [i];
-                                       if (cap.ProcessFrame (frame)) {
-                                               _ignored [i] = true; // asserted
-                                               if (AllIgnored ())
-                                                       return true; // no more, abort stack walk!
-                                       }
-                               }
-                       }
-
-                       // however the "final" grant set is resolved by assembly, so
-                       // there's no need to check it every time (just when we're 
-                       // changing assemblies between frames).
-                       if (frame.Assembly != current) {
-                               CheckAssembly (current, frame);
-                               current = frame.Assembly;
-                       }
-
-                       if (frame.Domain != domain) {
-                               CheckAppDomain (domain, frame);
-                               domain = frame.Domain;
-                       }
-
-                       return false;
-               }
-
-               internal void CheckAssembly (Assembly a, SecurityFrame frame)
-               {
-                       IPermission p = SecurityManager.CheckPermissionSet (a, this, false);
-                       if (p != null) {
-                               CodeAccessPermission.ThrowSecurityException (this, "Demand failed assembly permissions checks.",
-                                       frame, SecurityAction.Demand, p);
-                       }
-               }
-
-               internal void CheckAppDomain (AppDomain domain, SecurityFrame frame)
-               {
-                       IPermission p = SecurityManager.CheckPermissionSet (domain, this);
-                       if (p != null) {
-                               CodeAccessPermission.ThrowSecurityException (this, "Demand failed appdomain permissions checks.",
-                                       frame, SecurityAction.Demand, p);
-                       }
-               }
-
                // 2.0 metadata format
 
                internal static PermissionSet CreateFromBinaryFormat (byte[] data)
diff --git a/mcs/class/corlib/System.Security/SecurityContext.cs b/mcs/class/corlib/System.Security/SecurityContext.cs
deleted file mode 100644 (file)
index 7d3f942..0000000
+++ /dev/null
@@ -1,209 +0,0 @@
-//
-// System.Security.SecurityContext class
-//
-// Author:
-//     Sebastien Pouliot  <sebastien@ximian.com>
-//
-// Copyright (C) 2004-2005 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System.Runtime.InteropServices;
-using System.Security.Permissions;
-using System.Security.Principal;
-using System.Threading;
-
-namespace System.Security {
-
-       public sealed class SecurityContext
-               : IDisposable
-       {
-               private bool _capture;
-               private IntPtr _winid;
-
-#if !MOBILE    
-               private CompressedStack _stack;
-#endif
-               private bool _suppressFlowWindowsIdentity;
-               private bool _suppressFlow;
-
-               internal SecurityContext ()
-               {
-               }
-
-               // copy constructor
-               internal SecurityContext (SecurityContext sc)
-               {
-                       _capture = true;
-#if !MOBILE
-                       _winid = sc._winid;
-                       if (sc._stack != null)
-                               _stack = sc._stack.CreateCopy ();
-#endif
-               }
-
-               public SecurityContext CreateCopy ()
-               {
-                       if (!_capture)
-                               throw new InvalidOperationException ();
-
-                       return new SecurityContext (this);
-               }
-
-               // static methods
-
-               static public SecurityContext Capture ()
-               {
-#if !MOBILE                    
-                       SecurityContext sc = Thread.CurrentThread.ExecutionContext.SecurityContext;
-                       if (sc.FlowSuppressed)
-                               return null;
-#endif
-
-                       SecurityContext capture = new SecurityContext ();
-                       capture._capture = true;
-#if !MOBILE
-                       capture._winid = WindowsIdentity.GetCurrentToken ();
-                       capture._stack = CompressedStack.Capture ();
-#endif
-                       return capture;
-               }
-               
-               public void Dispose ()
-               {
-               }
-
-               // internal stuff
-
-               internal bool FlowSuppressed {
-                       get { return _suppressFlow; }
-                       set { _suppressFlow = value; }
-               }
-
-               internal bool WindowsIdentityFlowSuppressed {
-                       get { return _suppressFlowWindowsIdentity; }
-                       set { _suppressFlowWindowsIdentity = value; }
-               }
-
-#if !MOBILE    
-               internal CompressedStack CompressedStack {
-                       get { return _stack; }
-                       set { _stack = value; }
-               }
-#endif
-
-               internal IntPtr IdentityToken {
-                       get { return _winid; }
-                       set { _winid = value; }
-               }
-
-               // Suppressing the SecurityContext flow wasn't required before 2.0
-
-               static public bool IsFlowSuppressed ()
-               {
-#if MOBILE
-                       return false;
-#else
-                       return Thread.CurrentThread.ExecutionContext.SecurityContext.FlowSuppressed;
-#endif
-               } 
-
-               static public bool IsWindowsIdentityFlowSuppressed ()
-               {
-#if MOBILE
-                       return false;
-#else
-                       return Thread.CurrentThread.ExecutionContext.SecurityContext.WindowsIdentityFlowSuppressed;
-#endif
-               }
-
-               static public void RestoreFlow ()
-               {
-#if !MOBILE
-                       SecurityContext sc = Thread.CurrentThread.ExecutionContext.SecurityContext;
-                       // if nothing is suppressed then throw
-                       if (!sc.FlowSuppressed && !sc.WindowsIdentityFlowSuppressed)
-                               throw new InvalidOperationException ();
-
-                       sc.FlowSuppressed = false;
-                       sc.WindowsIdentityFlowSuppressed = false;
-#endif
-               }
-
-               // if you got the context then you can use it
-               [SecurityPermission (SecurityAction.Assert, ControlPrincipal = true)]
-               [SecurityPermission (SecurityAction.LinkDemand, Infrastructure = true)]
-               static public void Run (SecurityContext securityContext, ContextCallback callback, object state)
-               {
-                       if (securityContext == null) {
-                               throw new InvalidOperationException (Locale.GetText (
-                                       "Null SecurityContext"));
-                       }
-#if MOBILE
-                       callback (state);
-#else
-                       SecurityContext sc = Thread.CurrentThread.ExecutionContext.SecurityContext;
-                       IPrincipal original = Thread.CurrentPrincipal;
-                       try {
-                               if (sc.IdentityToken != IntPtr.Zero) {
-                                       Thread.CurrentPrincipal = new WindowsPrincipal (new WindowsIdentity (sc.IdentityToken));
-                               }
-
-                               // FIXME: is the security manager isn't active then we may not have
-                               // a compressed stack (bug #78652)
-                               if (securityContext.CompressedStack != null)
-                                       CompressedStack.Run (securityContext.CompressedStack, callback, state);
-                               else
-                                       callback (state);
-                       }
-                       finally {
-                               if ((original != null) && (sc.IdentityToken != IntPtr.Zero))
-                                       Thread.CurrentPrincipal = original;
-                       }
-#endif
-               }
-
-               [SecurityPermission (SecurityAction.LinkDemand, Infrastructure = true)]
-               static public AsyncFlowControl SuppressFlow ()
-               {
-#if MOBILE
-                       throw new NotSupportedException ();
-#else                  
-                       Thread t = Thread.CurrentThread;
-                       // suppress both flows
-                       t.ExecutionContext.SecurityContext.FlowSuppressed = true;
-                       t.ExecutionContext.SecurityContext.WindowsIdentityFlowSuppressed = true;
-                       return new AsyncFlowControl (t, AsyncFlowControlType.Security);
-#endif
-               }
-
-               static public AsyncFlowControl SuppressFlowWindowsIdentity ()
-               {
-#if MOBILE
-                       throw new NotSupportedException ();
-#else                  
-                       Thread t = Thread.CurrentThread;
-                       t.ExecutionContext.SecurityContext.WindowsIdentityFlowSuppressed = true;
-                       return new AsyncFlowControl (t, AsyncFlowControlType.Security);
-#endif
-               }
-       }
-}
diff --git a/mcs/class/corlib/System.Security/SecurityContextSource.cs b/mcs/class/corlib/System.Security/SecurityContextSource.cs
deleted file mode 100644 (file)
index b3cc24b..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-//
-// System.Security.SecurityContextSource
-//
-// Author:
-//     Jb Evain  <jbevain@novell.com>
-//
-// Copyright (C) 2010 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-
-namespace System.Security {
-
-       public enum SecurityContextSource {
-               CurrentAppDomain,
-               CurrentAssembly,
-       }
-}
-
index e7535bd89cd05a9ba450ea1ddca19ffdfde284aa..d2fedeb286bef7d1ac26e33f221f68ce88ff8ad0 100644 (file)
@@ -41,91 +41,4 @@ namespace System.Security {
                public int size;
                public int index;
        }
-
-       internal struct SecurityFrame {
-
-               private AppDomain _domain;
-               private MethodInfo _method;
-               private PermissionSet _assert;
-               private PermissionSet _deny;
-               private PermissionSet _permitonly;
-
-               internal SecurityFrame (int skip)
-               {
-                       _domain = null;
-                       _method = null;
-                       _assert = null;
-                       _deny = null;
-                       _permitonly = null;
-
-                       throw new NotImplementedException ();
-               }
-
-               public Assembly Assembly {
-                       get { return _method.ReflectedType.Assembly; }
-               }
-
-               public AppDomain Domain {
-                       get { return _domain; }
-               }
-
-               public MethodInfo Method {
-                       get { return _method; }
-               }
-
-               public PermissionSet Assert {
-                       get { return _assert; }
-               }
-
-               public PermissionSet Deny {
-                       get { return _deny; }
-               }
-
-               public PermissionSet PermitOnly {
-                       get { return _permitonly; }
-               }
-
-               public bool HasStackModifiers {
-                       get { return ((_assert != null) || (_deny != null) || (_permitonly != null)); }
-               }
-
-               public bool Equals (SecurityFrame sf)
-               {
-                       if (!Object.ReferenceEquals (_domain, sf.Domain))
-                               return false;
-                       if (Assembly.ToString () != sf.Assembly.ToString ())
-                               return false;
-                       if (Method.ToString () != sf.Method.ToString ())
-                               return false;
-
-                       if ((_assert != null) && !_assert.Equals (sf.Assert))
-                               return false;
-                       if ((_deny != null) && !_deny.Equals (sf.Deny))
-                               return false;
-                       if ((_permitonly != null) && !_permitonly.Equals (sf.PermitOnly))
-                               return false;
-
-                       return true;
-               }
-
-               public override string ToString ()
-               {
-                       StringBuilder sb = new StringBuilder ();
-                       sb.AppendFormat ("Frame: {0}{1}", _method, Environment.NewLine);
-                       sb.AppendFormat ("\tAppDomain: {0}{1}", Domain, Environment.NewLine);
-                       sb.AppendFormat ("\tAssembly: {0}{1}", Assembly, Environment.NewLine);
-                       if (_assert != null)
-                               sb.AppendFormat ("\tAssert: {0}{1}", _assert, Environment.NewLine);
-                       if (_deny != null)
-                               sb.AppendFormat ("\tDeny: {0}{1}", _deny, Environment.NewLine);
-                       if (_permitonly != null)
-                               sb.AppendFormat ("\tPermitOnly: {0}{1}", _permitonly, Environment.NewLine);
-                       return sb.ToString ();
-               }
-
-               static public ArrayList GetStack (int skipFrames)
-               {
-                       return new ArrayList ();
-               }
-       }
 }
index d8a3e72dafb9de280de4972010ea09a2b4b11544..376e69998c984c4b1a6e297a1c70596066fd9d9c 100644 (file)
@@ -71,13 +71,12 @@ namespace System.Security {
                // properties
 
                [Obsolete]
-               extern public static bool CheckExecutionRights {
-                       [MethodImplAttribute (MethodImplOptions.InternalCall)]
-                       get;
-
-                       [MethodImplAttribute (MethodImplOptions.InternalCall)]
-                       [SecurityPermission (SecurityAction.Demand, ControlPolicy = true)]
-                       set;
+               public static bool CheckExecutionRights {
+                       get {
+                               return false;
+                       }
+                       set {
+                       }
                }
 
                [Obsolete ("The security manager cannot be turned off on MS runtime")]
@@ -154,68 +153,6 @@ namespace System.Security {
                        return true;
                }
 
-               internal static IPermission CheckPermissionSet (Assembly a, PermissionSet ps, bool noncas)
-               {
-                       if (ps.IsEmpty ())
-                               return null;
-
-                       foreach (IPermission p in ps) {
-                               // note: this may contains non CAS permissions
-                               if ((!noncas) && (p is CodeAccessPermission)) {
-                                       if (!IsGranted (a, p))
-                                               return p;
-                               } else {
-                                       // but non-CAS will throw on failure...
-                                       try {
-                                               p.Demand ();
-                                       }
-                                       catch (SecurityException) {
-                                               // ... so we catch
-                                               return p;
-                                       }
-                               }
-                       }
-                       return null;
-               }
-
-               internal static IPermission CheckPermissionSet (AppDomain ad, PermissionSet ps)
-               {
-                       if ((ps == null) || ps.IsEmpty ())
-                               return null;
-
-                       PermissionSet granted = ad.GrantedPermissionSet;
-                       if (granted == null)
-                               return null;
-                       if (granted.IsUnrestricted ())
-                               return null;
-                       if (ps.IsUnrestricted ())
-                               return new SecurityPermission (SecurityPermissionFlag.NoFlags);
-
-                       foreach (IPermission p in ps) {
-                               if (p is CodeAccessPermission) {
-                                       CodeAccessPermission grant = (CodeAccessPermission) granted.GetPermission (p.GetType ());
-                                       if (grant == null) {
-                                               if (!granted.IsUnrestricted () || !(p is IUnrestrictedPermission)) {
-                                                       if (!p.IsSubsetOf (null))
-                                                               return p;
-                                               }
-                                       } else if (!p.IsSubsetOf (grant)) {
-                                               return p;
-                                       }
-                               } else {
-                                       // but non-CAS will throw on failure...
-                                       try {
-                                               p.Demand ();
-                                       }
-                                       catch (SecurityException) {
-                                               // ... so we catch
-                                               return p;
-                                       }
-                               }
-                       }
-                       return null;
-               }
-
                [Obsolete]
                [SecurityPermission (SecurityAction.Demand, ControlPolicy = true)]
                public static PolicyLevel LoadPolicyLevelFromFile (string path, PolicyLevelType type)
@@ -529,179 +466,6 @@ namespace System.Security {
                        }
                }
 
-               //  security check when using reflection
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)]
-               private static unsafe extern bool GetLinkDemandSecurity (MethodBase method, RuntimeDeclSecurityActions *cdecl, RuntimeDeclSecurityActions *mdecl);
-
-               // When using reflection LinkDemand are promoted to full Demand (i.e. stack walk)
-               internal unsafe static void ReflectedLinkDemandInvoke (MethodBase mb)
-               {
-                       RuntimeDeclSecurityActions klass;
-                       RuntimeDeclSecurityActions method;
-
-                       if (!GetLinkDemandSecurity (mb, &klass, &method))
-                               return;
-
-                       PermissionSet ps = null;
-
-                       if (klass.cas.size > 0) {
-                               ps = Decode (klass.cas.blob, klass.cas.size);
-                       }
-                       if (klass.noncas.size > 0) {
-                               PermissionSet p = Decode (klass.noncas.blob, klass.noncas.size);
-                               ps = (ps == null) ? p : ps.Union (p);
-                       }
-
-                       if (method.cas.size > 0) {
-                               PermissionSet p = Decode (method.cas.blob, method.cas.size);
-                               ps = (ps == null) ? p : ps.Union (p);
-                       }
-                       if (method.noncas.size > 0) {
-                               PermissionSet p = Decode (method.noncas.blob, method.noncas.size);
-                               ps = (ps == null) ? p : ps.Union (p);
-                       }
-
-                       // in this case we union-ed the permission sets because we want to do 
-                       // a single stack walk (not up to 4).
-                       if (ps != null)
-                               ps.Demand ();
-               }
-
-               internal unsafe static bool ReflectedLinkDemandQuery (MethodBase mb)
-               {
-                       RuntimeDeclSecurityActions klass;
-                       RuntimeDeclSecurityActions method;
-
-                       if (!GetLinkDemandSecurity (mb, &klass, &method))
-                               return true;
-
-                       return LinkDemand (mb.ReflectedType.Assembly, &klass, &method);
-               }
-
-               private unsafe static bool LinkDemand (Assembly a, RuntimeDeclSecurityActions *klass, RuntimeDeclSecurityActions *method)
-               {
-                       try {
-                               PermissionSet ps = null;
-                               bool result = true;
-                               if (klass->cas.size > 0) {
-                                       ps = Decode (klass->cas.blob, klass->cas.size);
-                                       result = (SecurityManager.CheckPermissionSet (a, ps, false) == null);
-                               }
-                               if (result && (klass->noncas.size > 0)) {
-                                       ps = Decode (klass->noncas.blob, klass->noncas.size);
-                                       result = (SecurityManager.CheckPermissionSet (a, ps, true) == null);
-                               }
-
-                               if (result && (method->cas.size > 0)) {
-                                       ps = Decode (method->cas.blob, method->cas.size);
-                                       result = (SecurityManager.CheckPermissionSet (a, ps, false) == null);
-                               }
-                               if (result && (method->noncas.size > 0)) {
-                                       ps = Decode (method->noncas.blob, method->noncas.size);
-                                       result = (SecurityManager.CheckPermissionSet (a, ps, true) == null);
-                               }
-                               return result;
-                       }
-                       catch (SecurityException) {
-                               return false;
-                       }
-               }
-
-#pragma warning disable 169
-               private static bool LinkDemandFullTrust (Assembly a)
-               {
-                       // FullTrust is immutable (and means Unrestricted) 
-                       // so we can skip the subset operations and jump to IsUnrestricted.
-                       PermissionSet granted = a.GrantedPermissionSet;
-                       if ((granted != null) && !granted.IsUnrestricted ())
-                               return false;
-
-                       PermissionSet denied = a.DeniedPermissionSet;
-                       if ((denied != null) && !denied.IsEmpty ())
-                               return false;
-
-                       return true;
-               }
-
-               private static bool LinkDemandUnmanaged (Assembly a)
-               {
-                       // note: we know that UnmanagedCode (SecurityPermission) implements IUnrestrictedPermission
-                       return IsGranted (a, UnmanagedCode);
-               }
-
-               // we try to provide as much details as possible to help debugging
-               private static void LinkDemandSecurityException (int securityViolation, IntPtr methodHandle)
-               {
-                       RuntimeMethodHandle runtimeHandle = new RuntimeMethodHandle (methodHandle);
-                       MethodInfo method = (MethodInfo)(MethodBase.GetMethodFromHandle (runtimeHandle));
-                       Assembly a = method.DeclaringType.Assembly;
-
-                       string message = null;
-                       AssemblyName an = null;
-                       PermissionSet granted = null;
-                       PermissionSet refused = null;
-                       object demanded = null;
-                       IPermission failed = null;
-
-                       if (a != null) {
-                               an = a.UnprotectedGetName ();
-                               granted = a.GrantedPermissionSet;
-                               refused = a.DeniedPermissionSet;
-                       }
-
-                       switch (securityViolation) {
-                       case 1: // MONO_JIT_LINKDEMAND_PERMISSION
-                               message = Locale.GetText ("Permissions refused to call this method.");
-                               break;
-                       case 2: // MONO_JIT_LINKDEMAND_APTC
-                               message = Locale.GetText ("Partially trusted callers aren't allowed to call into this assembly.");
-                               demanded = (object) DefaultPolicies.FullTrust; // immutable
-                               break;
-                       case 4: // MONO_JIT_LINKDEMAND_ECMA
-                               message = Locale.GetText ("Calling internal calls is restricted to ECMA signed assemblies.");
-                               break;
-                       case 8: // MONO_JIT_LINKDEMAND_PINVOKE
-                               message = Locale.GetText ("Calling unmanaged code isn't allowed from this assembly.");
-                               demanded = (object) _unmanagedCode;
-                               failed = _unmanagedCode;
-                               break;
-                       default:
-                               message = Locale.GetText ("JIT time LinkDemand failed.");
-                               break;
-                       }
-
-                       throw new SecurityException (message, an, granted, refused, method, SecurityAction.LinkDemand, demanded, failed, null);
-               }
-
-               private static void InheritanceDemandSecurityException (int securityViolation, Assembly a, Type t, MethodInfo method)
-               {
-                       string message = null;
-                       AssemblyName an = null;
-                       PermissionSet granted = null;
-                       PermissionSet refused = null;
-
-                       if (a != null) {
-                               an = a.UnprotectedGetName ();
-                               granted = a.GrantedPermissionSet;
-                               refused = a.DeniedPermissionSet;
-                       }
-
-                       switch (securityViolation) {
-                       case 1: // MONO_METADATA_INHERITANCEDEMAND_CLASS
-                               message = String.Format (Locale.GetText ("Class inheritance refused for {0}."), t);
-                               break;
-                       case 2: // MONO_METADATA_INHERITANCEDEMAND_CLASS
-                               message = Locale.GetText ("Method override refused.");
-                               break;
-                       default:
-                               message = Locale.GetText ("Load time InheritDemand failed.");
-                               break;
-                       }
-
-                       throw new SecurityException (message, an, granted, refused, method, SecurityAction.InheritanceDemand, null, null, null);
-               }
-
                // called by the runtime when CoreCLR is enabled
 
                private static void ThrowException (Exception ex)
@@ -709,58 +473,6 @@ namespace System.Security {
                        throw ex;
                }
 
-               // internal - get called by the class loader
-
-               // Called when
-               // - class inheritance
-               // - method overrides
-               private unsafe static bool InheritanceDemand (AppDomain ad, Assembly a, RuntimeDeclSecurityActions *actions)
-               {
-                       try {
-                               PermissionSet ps = null;
-                               bool result = true;
-                               if (actions->cas.size > 0) {
-                                       ps = Decode (actions->cas.blob, actions->cas.size);
-                                       result = (SecurityManager.CheckPermissionSet (a, ps, false) == null);
-                                       if (result) {
-                                               // also check appdomain
-                                               result = (SecurityManager.CheckPermissionSet (ad, ps) == null);
-                                       }
-                               }
-                               if (actions->noncas.size > 0) {
-                                       ps = Decode (actions->noncas.blob, actions->noncas.size);
-                                       result = (SecurityManager.CheckPermissionSet (a, ps, true) == null);
-                                       if (result) {
-                                               // also check appdomain
-                                               result = (SecurityManager.CheckPermissionSet (ad, ps) == null);
-                                       }
-                               }
-                               return result;
-                       }
-                       catch (SecurityException) {
-                               return false;
-                       }
-               }
-
-               // internal - get called at JIT time
-
-               private static void DemandUnmanaged ()
-               {
-                       UnmanagedCode.Demand ();
-               }
-
-               // internal - get called by JIT generated code
-
-               private static void InternalDemand (IntPtr permissions, int length)
-               {
-                       PermissionSet ps = Decode (permissions, length);
-                       ps.Demand ();
-               }
-
-               private static void InternalDemandChoice (IntPtr permissions, int length)
-               {
-                       throw new SecurityException ("SecurityAction.DemandChoice was removed from 2.0");
-               }
 #pragma warning restore 169
 
                public static PermissionSet GetStandardSandbox (Evidence evidence)
index a9f6b3f20437cc382bb89b04842324d6df3461aa..07e78fdb27eb426dc600d9c6c4d84b0158092ab5 100644 (file)
@@ -197,16 +197,6 @@ namespace System.Security {
                        throw new NotSupportedException ();
                }
 
-               internal static void ReflectedLinkDemandInvoke (MethodBase mb)
-               {
-                       throw new NotSupportedException ();
-               }
-
-               internal static bool ReflectedLinkDemandQuery (MethodBase mb)
-               {
-                       throw new NotSupportedException ();
-               }
-
                public static PermissionSet GetStandardSandbox (Evidence evidence)
                {
                        if (evidence == null)
index f077e44e254a78f4f836c0b1d5f68e64d5f0bc14..c30ceff5b92d1f16becd68bed83a26d3befeab99 100644 (file)
@@ -7,7 +7,7 @@ using System.Security;
 namespace System.Text
 {
 
-internal static class EncodingHelper
+internal static partial class EncodingHelper
 {
        //
        // Only internal, to be used by the class libraries: Unmarked and non-input-validating
@@ -71,6 +71,7 @@ internal static class EncodingHelper
        [MethodImpl (MethodImplOptions.InternalCall)]
        extern internal static string InternalCodePage (ref int code_page);
 
+#if !MONOTOUCH
        internal static Encoding GetDefaultEncoding ()
        {
                Encoding enc = null;
@@ -105,6 +106,7 @@ internal static class EncodingHelper
                                                }
                return enc;
        }
+#endif
 
        // Loaded copy of the "I18N" assembly.  We need to move
        // this into a class in "System.Private" eventually.
diff --git a/mcs/class/corlib/System.Threading/AsyncFlowControl.cs b/mcs/class/corlib/System.Threading/AsyncFlowControl.cs
deleted file mode 100644 (file)
index 43aee69..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-//
-// System.Threading.AsyncFlowControl.cs
-//
-// Author:
-//     Sebastien Pouliot  <sebastien@ximian.com>
-//
-// Copyright (C) 2004-2005 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System.Globalization;
-using System.Runtime.InteropServices;
-using System.Security;
-
-namespace System.Threading {
-
-       internal enum AsyncFlowControlType {
-               None,
-               Execution,
-               Security
-       }
-
-       public struct AsyncFlowControl : IDisposable {
-               private Thread _t;
-               private AsyncFlowControlType _type;
-
-               internal AsyncFlowControl (Thread t, AsyncFlowControlType type)
-               {
-                       _t = t;
-                       _type = type;
-               }
-
-               public void Undo ()
-               {
-                       if (_t == null) {
-                               throw new InvalidOperationException (Locale.GetText (
-                                       "Can only be called once."));
-                       }
-                       switch (_type) {
-                       case AsyncFlowControlType.Execution:
-                               ExecutionContext.RestoreFlow ();
-                               break;
-                       case AsyncFlowControlType.Security:
-                               SecurityContext.RestoreFlow ();
-                               break;
-                       }
-                       _t = null;
-               }
-
-               public void Dispose ()
-               {
-                       if (_t != null) {
-                               Undo ();
-                               _t = null;
-                               _type = AsyncFlowControlType.None;
-                       }
-               }
-
-               public override int GetHashCode ()
-               {
-                       return(base.GetHashCode ());
-               }
-               
-               public override bool Equals (object obj)
-               {
-                       if (!(obj is AsyncFlowControl)) {
-                               return(false);
-                       }
-                       
-                       return(obj.Equals (this));
-               }
-               
-               public bool Equals (AsyncFlowControl obj)
-               {
-                       if (this._t == obj._t &&
-                           this._type == obj._type) {
-                               return(true);
-                       } else {
-                               return(false);
-                       }
-               }
-
-               public static bool operator == (AsyncFlowControl a, AsyncFlowControl b)
-               {
-                       return a.Equals (b);
-               }
-
-               public static bool operator != (AsyncFlowControl a, AsyncFlowControl b)
-               {
-                       return !a.Equals (b);
-               }
-       }
-}
index 8125f0b57723c5dd504b7b759465074ef8bef4d8..454cb7c4a2c7a0cc6575ba9c6ac9f67fd1fece47 100644 (file)
@@ -61,11 +61,11 @@ namespace System.Threading {
 
                public static CompressedStack Capture ()
                {
-#if MOBILE
+#if !FEATURE_COMPRESSEDSTACK
                        throw new NotSupportedException ();
 #else
                        CompressedStack cs = new CompressedStack (0);
-                       cs._list = SecurityFrame.GetStack (1);
+                       cs._list = new ArrayList ();
 
                        // include any current CompressedStack inside the new Capture
                        CompressedStack currentCs = Thread.CurrentThread.ExecutionContext.SecurityContext.CompressedStack;
@@ -83,7 +83,7 @@ namespace System.Threading {
                [SecurityCritical]
                static public CompressedStack GetCompressedStack ()
                {
-#if MOBILE
+#if !FEATURE_COMPRESSEDSTACK
                        throw new NotSupportedException ();
 #else
                        // Note: CompressedStack.GetCompressedStack doesn't return null
@@ -116,7 +116,7 @@ namespace System.Threading {
                [SecurityCritical]
                static public void Run (CompressedStack compressedStack, ContextCallback callback, object state)
                {
-#if MOBILE
+#if !FEATURE_COMPRESSEDSTACK
                        throw new NotSupportedException ();
 #else  
                        if (compressedStack == null)
@@ -146,12 +146,6 @@ namespace System.Threading {
                        if (_list.Count != cs._list.Count)
                                return false;
 
-                       for (int i=0; i < _list.Count; i++) {
-                               SecurityFrame sf1 = (SecurityFrame) _list [i];
-                               SecurityFrame sf2 = (SecurityFrame) cs._list [i];
-                               if (!sf1.Equals (sf2))
-                                       return false;
-                       }
                        return true;
                }
 
diff --git a/mcs/class/corlib/System.Threading/ContextCallback.cs b/mcs/class/corlib/System.Threading/ContextCallback.cs
deleted file mode 100644 (file)
index 661baa4..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-//
-// System.Threading.ContextCallback delegate
-//
-// Author:
-//     Sebastien Pouliot  <sebastien@ximian.com>
-//
-// Copyright (C) 2004-2005 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System.Runtime.InteropServices;
-
-namespace System.Threading {
-
-       [ComVisible (true)]
-       public delegate void ContextCallback (object state);
-
-}
diff --git a/mcs/class/corlib/System.Threading/ExecutionContext.cs b/mcs/class/corlib/System.Threading/ExecutionContext.cs
deleted file mode 100644 (file)
index 0396aad..0000000
+++ /dev/null
@@ -1,298 +0,0 @@
-// 
-// System.Threading.ExecutionContext.cs
-//
-// Authors:
-//     Lluis Sanchez (lluis@novell.com)
-//     Sebastien Pouliot  <sebastien@ximian.com>
-//  Marek Safar (marek.safar@gmail.com)
-//
-// Copyright (C) 2004-2005 Novell, Inc (http://www.novell.com)
-// Copyright (C) 2014 Xamarin Inc (http://www.xamarin.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System.Runtime.InteropServices;
-using System.Runtime.Serialization;
-using System.Security;
-using System.Security.Permissions;
-using System.Runtime.Remoting.Messaging;
-using System.Collections;
-using System.Collections.Generic;
-
-namespace System.Threading {
-       [Serializable]
-       public sealed partial class ExecutionContext : ISerializable
-           , IDisposable
-       {
-               internal struct Switcher
-               {
-                       readonly ExecutionContext ec;
-                       readonly LogicalCallContext _lcc;
-                       readonly bool _suppressFlow;
-                       readonly bool _capture;
-                       readonly Dictionary<string, object> local_data;
-                       readonly bool copy_on_write;
-
-                       public Switcher (ExecutionContext ec)
-                       {
-                               this.ec = ec;
-                               this._lcc = ec._lcc;
-                               this._suppressFlow = ec._suppressFlow;
-                               this._capture = ec._capture;
-                               this.local_data = ec.local_data;
-                               this.copy_on_write = ec.CopyOnWrite;
-                       }
-
-                       public bool IsEmpty {
-                               get {
-                                       return ec == null;
-                               }
-                       }
-
-                       public void Restore (ExecutionContext ec)
-                       {
-                               ec._lcc = this._lcc;
-                               ec._suppressFlow = this._suppressFlow;
-                               ec._capture = this._capture;
-                               ec.local_data = this.local_data;
-                               ec.CopyOnWrite = this.copy_on_write;
-                       }
-               }
-
-#if !MOBILE
-               private SecurityContext _sc;
-#endif
-               private LogicalCallContext _lcc;
-               private bool _suppressFlow;
-               private bool _capture;
-               Dictionary<string, object> local_data;
-
-               internal ExecutionContext ()
-               {
-               }
-
-               private ExecutionContext (ExecutionContext ec)
-               {
-                       CloneData (ec);
-
-                       _suppressFlow = ec._suppressFlow;
-                       _capture = true;
-               }
-
-               void CloneData (ExecutionContext ec)
-               {
-#if !MOBILE
-                       if (ec._sc != null)
-                               _sc = new SecurityContext (ec._sc);
-#endif
-                       if (ec._lcc != null)
-                               _lcc = (LogicalCallContext) ec._lcc.Clone ();
-               }
-               
-               [MonoTODO]
-               internal ExecutionContext (SerializationInfo info, StreamingContext context)
-               {
-                       throw new NotImplementedException ();
-               }
-
-               public static ExecutionContext Capture ()
-               {
-                       return Capture (true, false);
-               }
-               
-               internal static ExecutionContext Capture (bool captureSyncContext, bool nullOnEmpty)
-               {
-                       var thread = Thread.CurrentThread;
-                       if (nullOnEmpty && !thread.HasExecutionContext)
-                               return null;
-
-                       var ec = thread.ExecutionContext;
-                       if (ec.FlowSuppressed)
-                               return null;
-
-                       if (nullOnEmpty
-#if !MOBILE
-                        && ec._sc == null
-#endif
-                               && (ec._lcc == null || !ec._lcc.HasInfo))
-                               return null;
-
-                       ExecutionContext capture = new ExecutionContext (ec);
-#if !MOBILE
-                       if (SecurityManager.SecurityEnabled)
-                               capture.SecurityContext = SecurityContext.Capture ();
-#endif
-                       return capture;
-               }
-               
-               public ExecutionContext CreateCopy ()
-               {
-                       if (!_capture)
-                               throw new InvalidOperationException ();
-
-                       return new ExecutionContext (this);
-               }
-               
-               public void Dispose ()
-               {
-#if !MOBILE
-                       if (_sc != null)
-                               _sc.Dispose ();
-#endif
-               }
-
-               [MonoTODO]
-               [ReflectionPermission (SecurityAction.Demand, MemberAccess = true)]
-               public void GetObjectData (SerializationInfo info, StreamingContext context)
-               {
-                       if (info == null)
-                               throw new ArgumentNullException ("info");
-                       throw new NotImplementedException ();
-               }
-               
-               // internal stuff
-
-               internal LogicalCallContext LogicalCallContext {
-                       get {
-                               if (_lcc == null)
-                                       _lcc = new LogicalCallContext ();
-                               return _lcc;
-                       }
-                       set {
-                               _lcc = value;
-                       }
-               }
-
-               internal Dictionary<string, object> DataStore {
-                       get {
-                               if (local_data == null)
-                                       local_data = new Dictionary<string, object> ();
-                               return local_data;
-                       }
-                       set {
-                               local_data = value;
-                       }
-               }
-
-#if !MOBILE
-               internal SecurityContext SecurityContext {
-                       get {
-                               if (_sc == null)
-                                       _sc = new SecurityContext ();
-                               return _sc;
-                       }
-                       set { _sc = value; }
-               }
-#endif
-
-               internal bool FlowSuppressed {
-                       get { return _suppressFlow; }
-                       set { _suppressFlow = value; }
-               }
-
-               internal bool CopyOnWrite { get; set; }
-
-               public static bool IsFlowSuppressed ()
-               {
-                       return Current.FlowSuppressed;
-               }
-
-               public static void RestoreFlow ()
-               {
-                       ExecutionContext ec = Current;
-                       if (!ec.FlowSuppressed)
-                               throw new InvalidOperationException ();
-
-                       ec.FlowSuppressed = false;
-               }
-               
-               internal static void Run(ExecutionContext executionContext, ContextCallback callback, Object state, bool preserveSyncCtx)
-               {
-                       Run (executionContext, callback, state);
-               }
-
-               [SecurityPermission (SecurityAction.LinkDemand, Infrastructure = true)]
-               public static void Run (ExecutionContext executionContext, ContextCallback callback, object state)
-               {
-                       if (executionContext == null) {
-                               throw new InvalidOperationException (Locale.GetText (
-                                       "Null ExecutionContext"));
-                       }
-
-                       var prev = Current;
-                       try {
-                               Thread.CurrentThread.ExecutionContext = executionContext;
-                               callback (state);
-                       } finally {
-                               Thread.CurrentThread.ExecutionContext = prev;
-                       }
-               }
-
-               public static AsyncFlowControl SuppressFlow ()
-               {
-                       Thread t = Thread.CurrentThread;
-                       t.ExecutionContext.FlowSuppressed = true;
-                       return new AsyncFlowControl (t, AsyncFlowControlType.Execution);
-               }
-
-               internal static LogicalCallContext CreateLogicalCallContext (bool createEmpty)
-               {
-                       var lcc = Current._lcc;
-                       LogicalCallContext ctx = null;
-
-                       if (lcc != null && lcc.HasInfo) {
-                               ctx = new LogicalCallContext ();
-                               foreach (DictionaryEntry entry in lcc.Datastore) {
-                                       ctx.SetData ((string)entry.Key, entry.Value);
-                               }
-                       } else if (createEmpty)
-                               ctx = new LogicalCallContext ();
-
-                       return ctx;
-               }
-
-               internal void FreeNamedDataSlot (string name)
-               {
-                       if (_lcc != null)
-                               _lcc.FreeNamedDataSlot (name);
-
-                       if (local_data != null)
-                               local_data.Remove (name);
-               }
-
-               internal static ExecutionContext Current {
-                       get {
-                               return Thread.CurrentThread.ExecutionContext;
-                       }
-               }
-
-               internal static ExecutionContext GetCurrentWritable ()
-               {
-                       var current = Thread.CurrentThread.ExecutionContext;
-                       if (current.CopyOnWrite) {
-                               current.CopyOnWrite = false;
-                               current.CloneData (current);
-                       }
-
-                       return current;
-               }
-       }
-}
diff --git a/mcs/class/corlib/System.Threading/SynchronizationContext.cs b/mcs/class/corlib/System.Threading/SynchronizationContext.cs
deleted file mode 100644 (file)
index 68d414d..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
-// 
-// System.Threading.SynchronizationContext.cs
-//
-// Author:
-//   Lluis Sanchez (lluis@novell.com)
-//
-// Copyright (C) 2004-2005 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System.Runtime.ConstrainedExecution;
-using System.Runtime.InteropServices;
-
-namespace System.Threading 
-{
-       public class SynchronizationContext
-       {
-               bool notification_required;
-
-               [ThreadStatic]
-               static SynchronizationContext currentContext;
-               
-               public SynchronizationContext ()
-               {
-               }
-
-               internal SynchronizationContext (SynchronizationContext context)
-               {
-                       currentContext = context;
-               }
-               
-               public static SynchronizationContext Current {
-                       get {
-#if MONODROID
-                               if (currentContext == null)
-                                       currentContext = AndroidPlatform.GetDefaultSyncContext ();
-#endif
-                               return currentContext;
-                       }
-               }
-
-               // extracted from ../../../../external/referencesource/mscorlib/system/threading/synchronizationcontext.cs
-               // Get the last SynchronizationContext that was set explicitly (not flowed via ExecutionContext.Capture/Run)            
-               internal static SynchronizationContext CurrentNoFlow
-               {
-                       get
-                       {
-                               // FIXME get context not flowed
-                               return Current;
-                       }
-               }
-
-               public virtual SynchronizationContext CreateCopy ()
-               {
-                       return new SynchronizationContext (this);
-               }
-
-               public bool IsWaitNotificationRequired ()
-               {
-                       return notification_required;
-               }
-
-               public virtual void OperationCompleted ()
-               {
-               }
-
-               public virtual void OperationStarted ()
-               {
-               }
-               
-               public virtual void Post (SendOrPostCallback d, object state)
-               {
-                       ThreadPool.QueueUserWorkItem (new WaitCallback (d), state);
-               }
-               
-               public virtual void Send (SendOrPostCallback d, object state)
-               {
-                       d (state);
-               }
-               
-               public static void SetSynchronizationContext (SynchronizationContext syncContext)
-               {
-                       currentContext = syncContext;
-               }
-
-#if NET_2_1
-               [Obsolete]
-               public static void SetThreadStaticContext (SynchronizationContext syncContext)
-               {
-                       currentContext = syncContext;
-               }
-#endif
-
-               protected void SetWaitNotificationRequired ()
-               {
-                       notification_required = true;
-               }
-
-               [CLSCompliant (false)]
-               [PrePrepareMethod ()]
-               public virtual int Wait (IntPtr[] waitHandles, bool waitAll, int millisecondsTimeout)
-               {
-                       return WaitHelper (waitHandles, waitAll, millisecondsTimeout);
-               }
-
-               [MonoTODO]
-               [CLSCompliant (false)]
-               [ReliabilityContract (Consistency.WillNotCorruptState, Cer.MayFail)]
-               [PrePrepareMethod ()]
-               protected static int WaitHelper (IntPtr[] waitHandles, bool waitAll, int millisecondsTimeout)
-               {
-                       throw new NotImplementedException ();
-               }
-       }
-}
index ce0ba639bed32190560034bac6d79b15e9c14255..0fa44e1eede7b09cc81520e8778473cefdb88552 100644 (file)
@@ -116,7 +116,6 @@ namespace System.Threading {
                #region Sync with metadata/object-internals.h
                private InternalThread internal_thread;
                object m_ThreadStartArg;
-               private ExecutionContext ec_to_set;
                #endregion
 #pragma warning restore 414
 
@@ -127,26 +126,21 @@ namespace System.Threading {
                CultureInfo current_culture;
                CultureInfo current_ui_culture;
 
-               // the name of local_slots, current_thread and _ec is
+               // the name of current_thread is
                // important because they are used by the runtime.
-               [ThreadStatic]
-               static object[] local_slots;
 
                [ThreadStatic]
                static Thread current_thread;
 
-               /* The actual ExecutionContext of the thread.  It's
-                  ThreadStatic so that it's not shared between
-                  AppDomains. */
-               [ThreadStatic]
-               static ExecutionContext _ec;
-
                static internal CultureInfo default_culture;
                static internal CultureInfo default_ui_culture;
 
                // can be both a ThreadStart and a ParameterizedThreadStart
                private MulticastDelegate m_Delegate;
-               //private string thread_name=null;
+
+               private ExecutionContext m_ExecutionContext;    // this call context follows the logical thread
+
+               private bool m_ExecutionContextBelongsToOuterScope;
 
                [MethodImplAttribute(MethodImplOptions.InternalCall)]
                private extern void ConstructInternalThread ();
@@ -295,12 +289,6 @@ namespace System.Threading {
                [MethodImplAttribute(MethodImplOptions.InternalCall)]
                private extern static InternalThread CurrentInternalThread_internal();
 
-               [MethodImplAttribute(MethodImplOptions.InternalCall)]
-               internal extern static uint AllocTlsData (Type type);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)]
-               internal extern static void DestroyTlsData (uint offset);
-
                public static Thread CurrentThread {
                        [ReliabilityContract (Consistency.WillNotCorruptState, Cer.MayFail)]
                        get {
@@ -323,52 +311,10 @@ namespace System.Threading {
                [MethodImplAttribute(MethodImplOptions.InternalCall)]
                public extern static int GetDomainID();
 
-               [MethodImplAttribute(MethodImplOptions.InternalCall)]
-               private extern static void ResetAbort_internal();
-
-               [SecurityPermission (SecurityAction.Demand, ControlThread=true)]
-               public static void ResetAbort ()
-               {
-                       ResetAbort_internal ();
-               }
-
-               [HostProtectionAttribute (SecurityAction.LinkDemand, Synchronization = true, ExternalThreading = true)]
-               [MethodImplAttribute(MethodImplOptions.InternalCall)]
-               [ReliabilityContract (Consistency.WillNotCorruptState, Cer.Success)]
-               public extern static bool Yield ();
-
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)]
-               private extern static void Sleep_internal(int ms);
-
-               public static void Sleep (int millisecondsTimeout)
-               {
-                       if (millisecondsTimeout < Timeout.Infinite)
-                               throw new ArgumentOutOfRangeException ("millisecondsTimeout", "Negative timeout");
-
-                       Sleep_internal (millisecondsTimeout);
-               }
-
-               public static void Sleep (TimeSpan timeout)
-               {
-                       long ms = (long) timeout.TotalMilliseconds;
-                       if (ms < Timeout.Infinite || ms > Int32.MaxValue)
-                               throw new ArgumentOutOfRangeException ("timeout", "timeout out of range");
-
-                       Sleep_internal ((int) ms);
-               }
-
                // Returns the system thread handle
                [MethodImplAttribute(MethodImplOptions.InternalCall)]
                private extern IntPtr Thread_internal (MulticastDelegate start);
 
-               public Thread(ThreadStart start) {
-                       if(start==null) {
-                               throw new ArgumentNullException("Null ThreadStart");
-                       }
-                       m_Delegate=start;
-               }
-
                private Thread (InternalThread it) {
                        internal_thread = it;
                }
@@ -509,17 +455,6 @@ namespace System.Threading {
                        }
                }
 
-               public ThreadPriority Priority {
-                       get {
-                               return (ThreadPriority)GetPriority (Internal);
-                       }
-                       
-                       set {
-                               // FIXME: This doesn't do anything yet
-                               SetPriority (Internal, (int)value);
-                       }
-               }
-
                public ThreadState ThreadState {
                        get {
                                return GetState (Internal);
@@ -529,12 +464,6 @@ namespace System.Threading {
                [MethodImplAttribute(MethodImplOptions.InternalCall)]
                private extern static void Abort_internal (InternalThread thread, object stateInfo);
 
-               [MethodImplAttribute(MethodImplOptions.InternalCall)]
-               private extern static int GetPriority (InternalThread thread);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)]
-               private extern static void SetPriority (InternalThread thread, int priority);
-
                [SecurityPermission (SecurityAction.Demand, ControlThread=true)]
                public void Abort () 
                {
@@ -556,53 +485,8 @@ namespace System.Threading {
                        }
                }
 
-               [MethodImplAttribute (MethodImplOptions.InternalCall)]
-               private extern static void Interrupt_internal (InternalThread thread);
-               
-               [SecurityPermission (SecurityAction.Demand, ControlThread=true)]
-               public void Interrupt ()
-               {
-                       Interrupt_internal (Internal);
-               }
-
-               // The current thread joins with 'this'. Set ms to 0 to block
-               // until this actually exits.
-               [MethodImplAttribute(MethodImplOptions.InternalCall)]
-               private extern static bool Join_internal(InternalThread thread, int ms, IntPtr handle);
-               
-               public void Join()
-               {
-                       Join_internal(Internal, Timeout.Infinite, Internal.system_thread_handle);
-               }
-
-               public bool Join(int millisecondsTimeout)
+               void ClearAbortReason ()
                {
-                       if (millisecondsTimeout < Timeout.Infinite)
-                               throw new ArgumentOutOfRangeException ("millisecondsTimeout", "Timeout less than zero");
-
-                       return Join_internal (Internal, millisecondsTimeout, Internal.system_thread_handle);
-               }
-
-               public bool Join(TimeSpan timeout)
-               {
-                       long ms = (long) timeout.TotalMilliseconds;
-                       if (ms < Timeout.Infinite || ms > Int32.MaxValue)
-                               throw new ArgumentOutOfRangeException ("timeout", "timeout out of range");
-
-                       return Join_internal (Internal, (int) ms, Internal.system_thread_handle);
-               }
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)]
-               public extern static void MemoryBarrier ();
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)]
-               private extern void Resume_internal();
-
-               [Obsolete ("")]
-               [SecurityPermission (SecurityAction.Demand, ControlThread=true)]
-               public void Resume () 
-               {
-                       Resume_internal ();
                }
 
                [MethodImplAttribute (MethodImplOptions.InternalCall)]
@@ -620,35 +504,17 @@ namespace System.Threading {
                        }
                }
 
-               private void StartInternal ()
+               void StartInternal (IPrincipal principal, ref StackCrawlMark stackMark)
                {
-                       current_thread = this;
-
-                       if (m_Delegate is ThreadStart) {
-                               ((ThreadStart) m_Delegate) ();
-                       } else {
-                               ((ParameterizedThreadStart) m_Delegate) (m_ThreadStartArg);
-                       }
-               }
-
-               public void Start() {
-                       // propagate informations from the original thread to the new thread
-                       ec_to_set = ExecutionContext.Capture (false, true);
+#if FEATURE_ROLE_BASED_SECURITY
                        Internal._serialized_principal = CurrentThread.Internal._serialized_principal;
+#endif
 
                        // Thread_internal creates and starts the new thread, 
-                       if (Thread_internal((ThreadStart) StartInternal) == (IntPtr) 0)
+                       if (Thread_internal(m_Delegate) == IntPtr.Zero)
                                throw new SystemException ("Thread creation failed.");
-               }
 
-               [MethodImplAttribute(MethodImplOptions.InternalCall)]
-               private extern static void Suspend_internal(InternalThread thread);
-
-               [Obsolete ("")]
-               [SecurityPermission (SecurityAction.Demand, ControlThread=true)]
-               public void Suspend ()
-               {
-                       Suspend_internal (Internal);
+                       m_ThreadStartArg = null;
                }
 
                [MethodImplAttribute (MethodImplOptions.InternalCall)]
@@ -753,6 +619,9 @@ namespace System.Threading {
 
                static int GetProcessDefaultStackSize (int maxStackSize)
                {
+                       if (maxStackSize == 0)
+                               return 0;
+
                        if (maxStackSize < 131072) // make sure stack is at least 128k big
                                return 131072;
 
@@ -771,44 +640,6 @@ namespace System.Threading {
                        Internal.stack_size = maxStackSize;
                }
 
-               public ExecutionContext ExecutionContext {
-                       [ReliabilityContract (Consistency.WillNotCorruptState, Cer.MayFail)]
-                       get {
-                               if (_ec == null)
-                                       _ec = new ExecutionContext ();
-                               return _ec;
-                       }
-                       internal set {
-                               _ec = value;
-                       }
-               }
-
-               internal bool HasExecutionContext {
-                       get {
-                               return _ec != null;
-                       }
-               }
-
-               internal void BranchExecutionContext (out ExecutionContext.Switcher switcher)
-               {
-                       if (_ec == null) {
-                               switcher =  new ExecutionContext.Switcher ();
-                       } else {
-                               switcher = new ExecutionContext.Switcher (_ec);
-                               _ec.CopyOnWrite = true;
-                       }
-               }
-
-               internal void RestoreExecutionContext (ref ExecutionContext.Switcher switcher)
-               {
-                       if (switcher.IsEmpty) {
-                               _ec = null;
-                               return;
-                       }
-
-                       switcher.Restore (_ec);
-               }
-
                public int ManagedThreadId {
                        [ReliabilityContractAttribute (Consistency.WillNotCorruptState, Cer.Success)]
                        get {
@@ -871,12 +702,6 @@ namespace System.Threading {
                        return ManagedThreadId;
                }
 
-               public void Start (object parameter)
-               {
-                       m_ThreadStartArg = parameter;
-                       Start ();
-               }
-
                internal CultureInfo GetCurrentUICultureNoAppX ()
                {
                        return CultureInfo.CurrentUICulture;
diff --git a/mcs/class/corlib/System.Threading/ThreadLocal.cs b/mcs/class/corlib/System.Threading/ThreadLocal.cs
deleted file mode 100644 (file)
index 4e5fece..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-// 
-// ThreadLocal.cs
-//  
-// Author:
-//       Jérémie "Garuma" Laval <jeremie.laval@gmail.com>
-//       Rewritten by Paolo Molaro (lupus@ximian.com)
-// 
-// Copyright (c) 2009 Jérémie "Garuma" Laval
-// 
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-// 
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-// THE SOFTWARE.
-
-using System;
-using System.Collections.Generic;
-using System.Runtime.Serialization;
-using System.Runtime.InteropServices;
-using System.Security.Permissions;
-
-namespace System.Threading
-{
-       [System.Diagnostics.DebuggerDisplay ("IsValueCreated={IsValueCreated}, Value={ValueForDebugDisplay}")]
-       public class ThreadLocal<T> : IDisposable
-       {
-               struct TlsDatum {
-                       internal sbyte state; /* 0 uninitialized, < 0 initializing, > 0 inited */
-                       internal Exception cachedException; /* this is per-thread */
-                       internal T data;
-               }
-
-               Func<T> valueFactory;
-               /* The tlsdata field is handled magically by the JIT
-                * It must be a struct and it is always accessed by ldflda: the JIT, instead of
-                * computing the address inside the instance, will return the address of the variable
-                * for the current thread (based on tls_offset). This magic wouldn't be needed if C#
-                * let us declare an icall with a TlsDatum& return type...
-                * For this same reason, we must check tls_offset for != 0 to make sure it's valid before accessing tlsdata
-                * The address of the tls var is cached per method at the first IL ldflda instruction, so care must be taken
-                * not to cause it to be conditionally executed.
-                */
-               uint tls_offset;
-               TlsDatum tlsdata;
-               
-               public ThreadLocal ()
-               {
-                       tls_offset = Thread.AllocTlsData (typeof (TlsDatum));
-               }
-
-               public ThreadLocal (Func<T> valueFactory) : this ()
-               {
-                       if (valueFactory == null)
-                               throw new ArgumentNullException ("valueFactory");
-                       this.valueFactory = valueFactory;
-               }
-
-               public ThreadLocal (bool trackAllValues) : this () {
-                       if (trackAllValues)
-                               throw new NotImplementedException ();
-               }
-
-               public ThreadLocal (Func<T> valueFactory, bool trackAllValues) : this (valueFactory) {
-                       if (trackAllValues)
-                               throw new NotImplementedException ();
-               }
-
-               public void Dispose ()
-               {
-                       Dispose (true);
-               }
-               
-               protected virtual void Dispose (bool disposing)
-               {
-                       if (tls_offset != 0) {
-                               uint o = tls_offset;
-                               tls_offset = 0;
-                               if (disposing)
-                                       valueFactory = null;
-                               Thread.DestroyTlsData (o);
-                               GC.SuppressFinalize (this);
-                       }
-               }
-
-               ~ThreadLocal ()
-               {
-                       Dispose (false);
-               }
-               
-               public bool IsValueCreated {
-                       get {
-                               if (tls_offset == 0)
-                                       throw new ObjectDisposedException ("ThreadLocal object");
-                               /* ALERT! magic tlsdata JIT access redirects to TLS value instead of instance field */
-                               return tlsdata.state > 0;
-                       }
-               }
-
-               T GetSlowPath () {
-                       /* ALERT! magic tlsdata JIT access redirects to TLS value instead of instance field */
-                       if (tlsdata.cachedException != null)
-                               throw tlsdata.cachedException;
-                       if (tlsdata.state < 0)
-                               throw new InvalidOperationException ("The initialization function attempted to reference Value recursively");
-                       tlsdata.state = -1;
-                       if (valueFactory != null) {
-                               try {
-                                       tlsdata.data = valueFactory ();
-                               } catch (Exception ex) {
-                                       tlsdata.cachedException = ex;
-                                       throw ex;
-                               }
-                       } else {
-                               tlsdata.data = default (T);
-                       }
-                       tlsdata.state = 1;
-                       return tlsdata.data;
-               }
-
-               [System.Diagnostics.DebuggerBrowsableAttribute (System.Diagnostics.DebuggerBrowsableState.Never)]
-               public T Value {
-                       get {
-                               if (tls_offset == 0)
-                                       throw new ObjectDisposedException ("ThreadLocal object");
-                               /* ALERT! magic tlsdata JIT access redirects to TLS value instead of instance field */
-                               if (tlsdata.state > 0)
-                                       return tlsdata.data;
-                               return GetSlowPath ();
-                       }
-                       set {
-                               if (tls_offset == 0)
-                                       throw new ObjectDisposedException ("ThreadLocal object");
-                               /* ALERT! magic tlsdata JIT access redirects to TLS value instead of instance field */
-                               tlsdata.state = 1;
-                               tlsdata.data = value;
-                       }
-               }
-
-               public IList<T> Values {
-                       get {
-                               if (tls_offset == 0)
-                                       throw new ObjectDisposedException ("ThreadLocal object");
-                               throw new NotImplementedException ();
-                       }
-               }
-
-               public override string ToString ()
-               {
-                       return Value.ToString ();
-               }
-               
-       }
-}
index 1c794d395cc6be76e39f51a239716280d6946e8b..eb01abfcd275fa8b5d092827877c8798e93f41c1 100644 (file)
@@ -142,7 +142,7 @@ namespace System.Threading {
                                        if (ar == null)
                                                return false;
                                } else {
-                                       AsyncResult ares = new AsyncResult (callBack, state, true);
+                                       AsyncResult ares = new AsyncResult (callBack, state, !ExecutionContext.IsFlowSuppressed());
                                        pool_queue (ares);
                                }
                                return true;
index 61534deffa557da57cfe4801c919097c63e0871a..00ebfb3e84fb4508cdcbe2c342278abc883c82b6 100644 (file)
@@ -20,7 +20,7 @@ namespace System {
 
                class NSLogWriter : TextWriter {
                        [DllImport ("__Internal", CharSet=CharSet.Unicode)]
-                       extern static void monotouch_log (string s);
+                       extern static void xamarin_log (string s);
 
                        [DllImport ("/usr/lib/libSystem.dylib")]
                        extern static /* ssize_t */ IntPtr write (int fd, byte [] buffer, /* size_t */ IntPtr n);
@@ -48,7 +48,7 @@ namespace System {
                        {
                                string s = sb.ToString ();
                                try {
-                                       monotouch_log (s);
+                                       xamarin_log (s);
                                }
                                catch (Exception) {
                                        try {
index 087b3258da75058c2da52ccb6e8a18b124fce398..97642c44dedef3edaa2397b3eec0dc2c07315703 100644 (file)
@@ -57,7 +57,7 @@ namespace System {
                 * of icalls, do not require an increment.
                 */
 #pragma warning disable 169
-               private const int mono_corlib_version = 132;
+               private const int mono_corlib_version = 134;
 #pragma warning restore 169
 
                [ComVisible (true)]
index e9adda3a1be581bcbf5693cc2e50fe8c448e53b8..7670ce338e693a9c88343b870db8fb51d178ac95 100644 (file)
@@ -67,7 +67,7 @@ namespace System
                internal int hresult = -2146233088;
                string source;
                IDictionary _data;
-               StackTrace[] captured_traces;
+               internal StackTrace[] captured_traces;
                IntPtr[] native_trace_ips;
                #endregion
 #pragma warning restore 169, 649
index 830b0f8cf5eb3fadeaf0747f2d716d8c530ea94e..8c661389b351873fafe0da6464dda2077e69bc94 100644 (file)
@@ -253,6 +253,28 @@ namespace System {
 
        partial class TimeZoneInfo {
 
+               static TimeZoneInfo CreateLocal ()
+               {
+                       return AndroidTimeZones.Local;
+               }
+
+               static TimeZoneInfo FindSystemTimeZoneByIdCore (string id)
+               {
+                       var timeZoneInfo = AndroidTimeZones.GetTimeZone (id, id);
+                       if (timeZoneInfo == null)
+                               throw new TimeZoneNotFoundException ();
+                       return timeZoneInfo;
+               }
+
+               static void GetSystemTimeZones (List<TimeZoneInfo> systemTimeZones)
+               {
+                       foreach (string id in AndroidTimeZones.GetAvailableIds ()) {
+                               var tz = AndroidTimeZones.GetTimeZone (id, id);
+                               if (tz != null)
+                                       systemTimeZones.Add (tz);
+                       }
+               }
+
                /*
                 * Android < v4.3 Timezone support infrastructure.
                 *
index fef235786947d13e8cc9c9eb1f2e127afd05b53e..3db0c0ab646d33141b3a373c49c7f557b43817d7 100644 (file)
@@ -32,7 +32,7 @@
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
-#if MONOTOUCH
+#if MONOTOUCH || XAMMAC
 
 using System;
 using System.Collections.Generic;
@@ -43,14 +43,39 @@ using System.Runtime.InteropServices;
 namespace System {
 
        public partial class TimeZoneInfo {
+
+               static TimeZoneInfo CreateLocal ()
+               {
+                       using (Stream stream = GetMonoTouchData (null)) {
+                               return BuildFromStream ("Local", stream);
+                       }
+               }
+
+               static TimeZoneInfo FindSystemTimeZoneByIdCore (string id)
+               {
+                       using (Stream stream = GetMonoTouchData (id)) {
+                               return BuildFromStream (id, stream);
+                       }
+               }
+
+               static void GetSystemTimeZones (List<TimeZoneInfo> systemTimeZones)
+               {
+                       foreach (string name in GetMonoTouchNames ()) {
+                               using (Stream stream = GetMonoTouchData (name, false)) {
+                                       if (stream == null)
+                                               continue;
+                                       systemTimeZones.Add (BuildFromStream (name, stream));
+                               }
+                       }
+               }
                
                [DllImport ("__Internal")]
-               extern static IntPtr monotouch_timezone_get_names (ref int count);
+               extern static IntPtr xamarin_timezone_get_names (ref int count);
 
                static ReadOnlyCollection<string> GetMonoTouchNames ()
                {
                        int count = 0;
-                       IntPtr array = monotouch_timezone_get_names (ref count);
+                       IntPtr array = xamarin_timezone_get_names (ref count);
                        string [] names = new string [count];
                        for (int i = 0, offset = 0; i < count; i++, offset += IntPtr.Size) {
                                IntPtr p = Marshal.ReadIntPtr (array, offset);
@@ -62,12 +87,12 @@ namespace System {
                }
 
                [DllImport ("__Internal")]
-               extern static IntPtr monotouch_timezone_get_data (string name, ref int size);
+               extern static IntPtr xamarin_timezone_get_data (string name, ref int size);
 
                static Stream GetMonoTouchData (string name, bool throw_on_error = true)
                {
                        int size = 0;
-                       IntPtr data = monotouch_timezone_get_data (name, ref size);
+                       IntPtr data = xamarin_timezone_get_data (name, ref size);
                        if (size <= 0) {
                                if (throw_on_error)
                                        throw new TimeZoneNotFoundException (name);
index 707d2ad16bc99d455b123a1a1efb005ed55762ab..717bfa77c76f088a90578bb57be795b567fda494 100644 (file)
@@ -35,11 +35,7 @@ using System.Collections.ObjectModel;
 using System.Runtime.Serialization;
 using System.Text;
 using System.Globalization;
-
-#if LIBC || MONODROID
 using System.IO;
-using Mono;
-#endif
 
 using Microsoft.Win32;
 
@@ -93,16 +89,10 @@ namespace System
                */
                private List<KeyValuePair<DateTime, TimeType>> transitions;
 
+#if !MOBILE || MOBILE_STATIC
                static TimeZoneInfo CreateLocal ()
                {
-#if MONODROID
-                       return AndroidTimeZones.Local;
-#elif MONOTOUCH
-                       using (Stream stream = GetMonoTouchData (null)) {
-                               return BuildFromStream ("Local", stream);
-                       }
-#else
-#if !NET_2_1
+#if !MOBILE_STATIC
                        if (IsWindows && LocalZoneKey != null) {
                                string name = (string)LocalZoneKey.GetValue ("TimeZoneKeyName");
                                if (name == null)
@@ -133,9 +123,55 @@ namespace System
                                        return null;
                                }
                        }
+               }
+
+               static TimeZoneInfo FindSystemTimeZoneByIdCore (string id)
+               {
+#if LIBC
+                       string filepath = Path.Combine (TimeZoneDirectory, id);
+                       return FindSystemTimeZoneByFileName (id, filepath);
+#else
+                       throw new NotImplementedException ();
 #endif
                }
 
+               static void GetSystemTimeZones (List<TimeZoneInfo> systemTimeZones)
+               {
+#if !MOBILE_STATIC
+                       if (TimeZoneKey != null) {
+                               foreach (string id in TimeZoneKey.GetSubKeyNames ()) {
+                                       try {
+                                               systemTimeZones.Add (FindSystemTimeZoneById (id));
+                                       } catch {}
+                               }
+
+                               return;
+                       }
+#endif
+
+#if LIBC
+                       string[] continents = new string [] {"Africa", "America", "Antarctica", "Arctic", "Asia", "Atlantic", "Brazil", "Canada", "Chile", "Europe", "Indian", "Mexico", "Mideast", "Pacific", "US"};
+                       foreach (string continent in continents) {
+                               try {
+                                       foreach (string zonepath in Directory.GetFiles (Path.Combine (TimeZoneDirectory, continent))) {
+                                               try {
+                                                       string id = String.Format ("{0}/{1}", continent, Path.GetFileName (zonepath));
+                                                       systemTimeZones.Add (FindSystemTimeZoneById (id));
+                                               } catch (ArgumentNullException) {
+                                               } catch (TimeZoneNotFoundException) {
+                                               } catch (InvalidTimeZoneException) {
+                                               } catch (Exception) {
+                                                       throw;
+                                               }
+                                       }
+                               } catch {}
+                       }
+#else
+                       throw new NotImplementedException ("This method is not implemented for this platform");
+#endif
+               }
+#endif
+
                string standardDisplayName;
                public string StandardName {
                        get { return standardDisplayName; }
@@ -170,7 +206,7 @@ namespace System
 #endif
                private AdjustmentRule [] adjustmentRules;
 
-#if !NET_2_1
+#if !NET_2_1 || MOBILE_STATIC
                /// <summary>
                /// Determine whether windows of not (taken Stephane Delcroix's code)
                /// </summary>
@@ -197,6 +233,7 @@ namespace System
                        return str.Substring (Istart, Iend-Istart+1);
                }
                
+#if !MOBILE_STATIC
                static RegistryKey timeZoneKey;
                static RegistryKey TimeZoneKey {
                        get {
@@ -224,6 +261,7 @@ namespace System
                                        "SYSTEM\\CurrentControlSet\\Control\\TimeZoneInformation", false);
                        }
                }
+#endif
 #endif
 
                private static bool TryAddTicks (DateTime date, long ticks, out DateTime result, DateTimeKind kind = DateTimeKind.Unspecified)
@@ -436,21 +474,8 @@ namespace System
                        // Local requires special logic that already exists in the Local property (bug #326)
                        if (id == "Local")
                                return Local;
-#if MONOTOUCH
-                       using (Stream stream = GetMonoTouchData (id)) {
-                               return BuildFromStream (id, stream);
-                       }
-#elif MONODROID
-                       var timeZoneInfo = AndroidTimeZones.GetTimeZone (id, id);
-                       if (timeZoneInfo == null)
-                               throw new TimeZoneNotFoundException ();
-                       return timeZoneInfo;
-#elif LIBC
-                       string filepath = Path.Combine (TimeZoneDirectory, id);
-                       return FindSystemTimeZoneByFileName (id, filepath);
-#else
-                       throw new NotImplementedException ();
-#endif
+
+                       return FindSystemTimeZoneByIdCore (id);
                }
 
 #if LIBC
@@ -464,24 +489,6 @@ namespace System
                        }
                }
 #endif
-#if LIBC || MONOTOUCH
-               const int BUFFER_SIZE = 16384; //Big enough for any tz file (on Oct 2008, all tz files are under 10k)
-               
-               private static TimeZoneInfo BuildFromStream (string id, Stream stream) 
-               {
-                       byte [] buffer = new byte [BUFFER_SIZE];
-                       int length = stream.Read (buffer, 0, BUFFER_SIZE);
-                       
-                       if (!ValidTZFile (buffer, length))
-                               throw new InvalidTimeZoneException ("TZ file too big for the buffer");
-
-                       try {
-                               return ParseTZBuffer (id, buffer, length);
-                       } catch (Exception e) {
-                               throw new InvalidTimeZoneException (e.Message);
-                       }
-               }
-#endif
 
 #if !NET_2_1
                private static TimeZoneInfo FromRegistryKey (string id, RegistryKey key)
@@ -638,61 +645,17 @@ namespace System
                        info.AddValue ("SupportsDaylightSavingTime", SupportsDaylightSavingTime);
                }
 
-               //FIXME: change this to a generic Dictionary and allow caching for FindSystemTimeZoneById
-               private static List<TimeZoneInfo> systemTimeZones;
+               static ReadOnlyCollection<TimeZoneInfo> systemTimeZones;
+
                public static ReadOnlyCollection<TimeZoneInfo> GetSystemTimeZones ()
                {
                        if (systemTimeZones == null) {
-                               systemTimeZones = new List<TimeZoneInfo> ();
-#if !NET_2_1
-                               if (TimeZoneKey != null) {
-                                       foreach (string id in TimeZoneKey.GetSubKeyNames ()) {
-                                               try {
-                                                       systemTimeZones.Add (FindSystemTimeZoneById (id));
-                                               } catch {}
-                                       }
-
-                                       return new ReadOnlyCollection<TimeZoneInfo> (systemTimeZones);
-                               }
-#endif
-#if MONODROID
-                       foreach (string id in AndroidTimeZones.GetAvailableIds ()) {
-                               var tz = AndroidTimeZones.GetTimeZone (id, id);
-                               if (tz != null)
-                                       systemTimeZones.Add (tz);
+                               var tz = new List<TimeZoneInfo> ();
+                               GetSystemTimeZones (tz);
+                               Interlocked.CompareExchange (ref systemTimeZones, new ReadOnlyCollection<TimeZoneInfo> (tz), null);
                        }
-#elif MONOTOUCH
-                               if (systemTimeZones.Count == 0) {
-                                       foreach (string name in GetMonoTouchNames ()) {
-                                               using (Stream stream = GetMonoTouchData (name, false)) {
-                                                       if (stream == null)
-                                                               continue;
-                                                       systemTimeZones.Add (BuildFromStream (name, stream));
-                                               }
-                                       }
-                               }
-#elif LIBC
-                               string[] continents = new string [] {"Africa", "America", "Antarctica", "Arctic", "Asia", "Atlantic", "Brazil", "Canada", "Chile", "Europe", "Indian", "Mexico", "Mideast", "Pacific", "US"};
-                               foreach (string continent in continents) {
-                                       try {
-                                               foreach (string zonepath in Directory.GetFiles (Path.Combine (TimeZoneDirectory, continent))) {
-                                                       try {
-                                                               string id = String.Format ("{0}/{1}", continent, Path.GetFileName (zonepath));
-                                                               systemTimeZones.Add (FindSystemTimeZoneById (id));
-                                                       } catch (ArgumentNullException) {
-                                                       } catch (TimeZoneNotFoundException) {
-                                                       } catch (InvalidTimeZoneException) {
-                                                       } catch (Exception) {
-                                                               throw;
-                                                       }
-                                               }
-                                       } catch {}
-                               }
-#else
-                               throw new NotImplementedException ("This method is not implemented for this platform");
-#endif
-                       }
-                       return new ReadOnlyCollection<TimeZoneInfo> (systemTimeZones);
+
+                       return systemTimeZones;
                }
 
                public TimeSpan GetUtcOffset (DateTime dateTime)
@@ -892,24 +855,17 @@ namespace System
                                        DateTime ttime = pair.Key;
                                        TimeType ttype = pair.Value;
 
+                                       if (ttime.Year > year)
+                                               continue;
+                                       if (ttime.Year < year)
+                                               break;
+
                                        if (ttype.IsDst) {
                                                // DaylightTime.Delta is relative to the current BaseUtcOffset.
-                                               var d =  new TimeSpan (0, 0, ttype.Offset) - BaseUtcOffset;
-                                               // Handle DST gradients
-                                               if (start != DateTime.MinValue && delta != d)
-                                                       end = start;
-
+                                               delta =  new TimeSpan (0, 0, ttype.Offset) - BaseUtcOffset;
                                                start = ttime;
-                                               delta = d;
-
-                                               if (ttime.Year <= year)
-                                                       break;
                                        } else {
-                                               if (ttime.Year < year)
-                                                       break;
-
                                                end = ttime;
-                                               start = DateTime.MinValue;
                                        }
                                }
 
@@ -918,22 +874,26 @@ namespace System
                                        start += BaseUtcOffset;
 
                                // DaylightTime.End is relative to the DST time.
-                               if (end != DateTime.MaxValue)
+                               if (end != DateTime.MinValue)
                                        end += BaseUtcOffset + delta;
                        } else {
-                               AdjustmentRule rule = null;
-                               foreach (var r in GetAdjustmentRules ()) {
-                                       if (r.DateEnd.Year < year)
+                               AdjustmentRule first = null, last = null;
+
+                               foreach (var rule in GetAdjustmentRules ()) {
+                                       if (rule.DateStart.Year != year && rule.DateEnd.Year != year)
                                                continue;
-                                       if (r.DateStart.Year > year)
-                                               break;
-                                       rule = r;
-                               }
-                               if (rule != null) {
-                                       start = TransitionPoint (rule.DaylightTransitionStart, year);
-                                       end = TransitionPoint (rule.DaylightTransitionEnd, year);
-                                       delta = rule.DaylightDelta;
+                                       if (rule.DateStart.Year == year)
+                                               first = rule;
+                                       if (rule.DateEnd.Year == year)
+                                               last = rule;
                                }
+
+                               if (first == null || last == null)
+                                       return new DaylightTime (new DateTime (), new DateTime (), new TimeSpan ());
+
+                               start = TransitionPoint (first.DaylightTransitionStart, year);
+                               end = TransitionPoint (last.DaylightTransitionEnd, year);
+                               delta = first.DaylightDelta;
                        }
 
                        if (start == DateTime.MinValue || end == DateTime.MinValue)
@@ -1176,7 +1136,24 @@ namespace System
                        return adjustmentRules;
                }
 
-#if LIBC || MONODROID
+#if LIBC || MONOTOUCH
+               const int BUFFER_SIZE = 16384; //Big enough for any tz file (on Oct 2008, all tz files are under 10k)
+               
+               private static TimeZoneInfo BuildFromStream (string id, Stream stream)
+               {
+                       byte [] buffer = new byte [BUFFER_SIZE];
+                       int length = stream.Read (buffer, 0, BUFFER_SIZE);
+                       
+                       if (!ValidTZFile (buffer, length))
+                               throw new InvalidTimeZoneException ("TZ file too big for the buffer");
+
+                       try {
+                               return ParseTZBuffer (id, buffer, length);
+                       } catch (Exception e) {
+                               throw new InvalidTimeZoneException (e.Message);
+                       }
+               }
+
                private static bool ValidTZFile (byte [] buffer, int length)
                {
                        StringBuilder magic = new StringBuilder ();
index 52bea0dcaf7c88aa46ab03f86bea90d1d739b9db..2956ffb317c034e67c8d92aec692adaedf53afd2 100644 (file)
@@ -51,6 +51,15 @@ namespace System
        [ComVisible (true)]
        public abstract class ValueType
        {
+               /*
+                * Caution: Fields added to ValueType can mess with sub class layouts.
+                * Causing bugs that appear completely unrelated as #30060
+                */
+               private static class Internal
+               {
+                       public static int hash_code_of_ptr_seed = 0;
+               }
+
                protected ValueType ()
                {
                }
@@ -123,20 +132,18 @@ namespace System
                        return result;
                }
 
-               static int hash_code_of_ptr_seed = 0;
-
                internal static int GetHashCodeOfPtr (IntPtr ptr)
                {
                        int hash_code = (int) ptr;
-                       int seed = hash_code_of_ptr_seed;
+                       int seed = Internal.hash_code_of_ptr_seed;
 
                        if (seed == 0) {
                                /* We use the first non-0 pointer as the seed, all hashcodes will be
                                 * based off that. This is to make sure that we only reveal relative
                                 * memory addresses and never absolute ones. */
                                seed = hash_code;
-                               Interlocked.CompareExchange (ref hash_code_of_ptr_seed, seed, 0);
-                               seed = hash_code_of_ptr_seed;
+                               Interlocked.CompareExchange (ref Internal.hash_code_of_ptr_seed, seed, 0);
+                               seed = Internal.hash_code_of_ptr_seed;
                        }
 
                        return hash_code - seed;
index 28b2a8b36ef936c10a9dd981f79cc55c2e2a0398..abf316c1a6995dbd92b0219082c3f4df0db4fff9 100644 (file)
@@ -1845,6 +1845,15 @@ public class AssemblyNameTest {
                Assert.IsTrue (AssemblyName.ReferenceMatchesDefinition (an3, an4));
                Assert.IsFalse (AssemblyName.ReferenceMatchesDefinition (an5, an6));
        }
+
+       [Test]
+       public void CultureNameInvariant ()
+       {
+               var an = new AssemblyName ("TestDll");
+               an.CultureInfo = new CultureInfo (CultureInfo.InvariantCulture.LCID);
+
+               Assert.AreEqual ("", an.CultureName);
+       }
 }
 
 }
index b7227d972c3c0f20fa68c9f187f3403720fa144a..6e957ec7b7d255a992bb063c99556fe116e1584e 100644 (file)
@@ -195,11 +195,7 @@ namespace MonoTests.System.Reflection
 
                        Assert.IsTrue (corlib_test.GetReferencedAssemblies ().Length > 0, "GetReferencedAssemblies");
                        Assert.AreEqual (0, corlib_test.HostContext, "HostContext");
-#if NET_4_0 && !MOBILE
                        Assert.AreEqual ("v4.0.30319", corlib_test.ImageRuntimeVersion, "ImageRuntimeVersion");
-#else
-                       Assert.AreEqual ("v2.0.50727", corlib_test.ImageRuntimeVersion, "ImageRuntimeVersion");
-#endif
 
                        Assert.IsNotNull (corlib_test.ManifestModule, "ManifestModule");
                        Assert.IsFalse (corlib_test.ReflectionOnly, "ReflectionOnly");
index 1bc9d38414758f89d626e21e369236701da04839..69ba983eeac6b1c932881f239525872efeef3cec 100644 (file)
@@ -35,6 +35,7 @@ using NUnit.Framework;
 using System.Runtime.CompilerServices;
 using System.Collections.Generic;
 using System.Collections;
+using System.Collections.Concurrent;
 
 namespace MonoTests.System.Runtime.CompilerServices
 {
@@ -106,6 +107,43 @@ namespace MonoTests.System.Runtime.CompilerServices
                        }
                }
 
+               class NestedSynchronizationContext : SynchronizationContext
+               {
+                       Thread thread;
+                       readonly ConcurrentQueue<Tuple<SendOrPostCallback, object, ExecutionContext>> workQueue = new ConcurrentQueue<Tuple<SendOrPostCallback, object, ExecutionContext>> ();
+                       readonly AutoResetEvent workReady = new AutoResetEvent (false);
+
+                       public NestedSynchronizationContext ()
+                       {
+                               thread = new Thread (WorkerThreadProc) { IsBackground = true };
+                               thread.Start ();
+                       }
+
+                       public override void Post (SendOrPostCallback d, object state)
+                       {
+                               var context = ExecutionContext.Capture ();
+                               workQueue.Enqueue (Tuple.Create (d, state, context));
+                               workReady.Set ();
+                       }
+
+                       void WorkerThreadProc ()
+                       {
+                               if (!workReady.WaitOne (10000))
+                                       return;
+
+                               Tuple<SendOrPostCallback, object, ExecutionContext> work;
+
+                               while (workQueue.TryDequeue (out work)) {
+                                       ExecutionContext.Run (work.Item3, _ => {
+                                               var oldSyncContext = SynchronizationContext.Current;
+                                               SynchronizationContext.SetSynchronizationContext (this);
+                                               work.Item1 (_);
+                                               SynchronizationContext.SetSynchronizationContext (oldSyncContext);
+                                       }, work.Item2); 
+                               }
+                       }
+               }
+
                string progress;
                SynchronizationContext sc;
                ManualResetEvent mre;
@@ -325,6 +363,33 @@ namespace MonoTests.System.Runtime.CompilerServices
 
                        SynchronizationContext.SetSynchronizationContext (null);
                }
+
+               [Test]
+               public void NestedLeakingSynchronizationContext ()
+               {
+                       var sc = SynchronizationContext.Current;
+                       if (sc == null)
+                               Assert.IsTrue (NestedLeakingSynchronizationContext_MainAsync (sc).Wait (5000), "#1");
+                       else
+                               Assert.Ignore ("NestedSynchronizationContext may never complete on custom context");
+               }
+
+               static async Task NestedLeakingSynchronizationContext_MainAsync (SynchronizationContext sc)
+               {
+                       Assert.AreSame (sc, SynchronizationContext.Current, "#1");
+                       await NestedLeakingSynchronizationContext_DoWorkAsync ();
+                       Assert.AreSame (sc, SynchronizationContext.Current, "#2");
+               }
+
+               static async Task NestedLeakingSynchronizationContext_DoWorkAsync ()
+               {
+                       var sc = new NestedSynchronizationContext ();
+                       SynchronizationContext.SetSynchronizationContext (sc);
+
+                       Assert.AreSame (sc, SynchronizationContext.Current);
+                       await Task.Yield ();
+                       Assert.AreSame (sc, SynchronizationContext.Current);
+               }
        }
 }
 
index fb7d0e57f7c3d3a3801b30f20fe4df8787cf1ada..bef832b90c424aabe9d76f11943edbe7947d6671 100644 (file)
@@ -123,6 +123,34 @@ namespace MonoTests.System.Runtime.ExceptionServices
                                Assert.IsTrue (split [1].Contains ("---"), "#2");
                        }
                }
+
+               [Test]
+               public void ThrowMultipleCaptures ()
+               {
+                       Exception e;
+                       try {
+                               throw new Exception ("test");
+                       } catch (Exception e2) {
+                               e = e2;
+                       }
+
+                       var edi = ExceptionDispatchInfo.Capture (e);
+
+                       try {
+                               edi.Throw ();
+                       } catch (Exception e3) {
+                               edi = ExceptionDispatchInfo.Capture (e3);
+                       }
+
+                       try {
+                               edi.Throw ();
+                       } catch (Exception ex) {
+                               var split = ex.StackTrace.Split (new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);
+                               Assert.AreEqual (7, split.Length, "#1");
+                               Assert.IsTrue (split [1].Contains ("---"), "#2");
+                               Assert.IsTrue (split [4].Contains ("---"), "#3");
+                       }
+               }               
        }
 }
 
index da5c093e24b778a265325f16b15b4878dd39ff54..4a26c93036ca41281d61e92d0af5a1dafa73235c 100644 (file)
@@ -51,15 +51,28 @@ namespace MonoTests.System.Runtime.InteropServices
                                base.Dispose (manual);
                        }
                }
-               
+
+               [Test]
+               public void SimpleDispose ()
+               {
+                       FakeSafeHandle sf = new FakeSafeHandle ();
+                       sf.Dispose ();
+               }
+
                [Test]
-               [ExpectedException (typeof (ObjectDisposedException))]
                public void BadDispose1 ()
                {
                        FakeSafeHandle sf = new FakeSafeHandle ();
 
                        sf.DangerousRelease ();
-                       sf.DangerousRelease ();
+
+                       try {
+                               sf.DangerousRelease ();
+                               Assert.Fail ("#1");
+                       } catch (ObjectDisposedException) {
+                       }
+
+                       GC.SuppressFinalize (sf);
                }
 
                [Test]
@@ -130,6 +143,8 @@ namespace MonoTests.System.Runtime.InteropServices
                        Assert.IsTrue (sf.IsClosed, "closed");
                        //Handle value is not changed, so the value itself is still valid (not 0 or -1)
                        Assert.IsFalse (sf.IsInvalid, "invalid");
+
+                       GC.SuppressFinalize (sf);
                }
 
                [Test]
index 4fe8d93f01836c24708f1f4b579c146ef568a8f3..45498d9b5b92d89f6f9d2e2a2a1dae058b3cc36b 100644 (file)
@@ -25,7 +25,7 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
-
+#if FEATURE_COMPRESSEDSTACK
 
 using System;
 using System.Security;
@@ -168,3 +168,4 @@ namespace MonoCasTests.System.Security {
        }
 }
 
+#endif
\ No newline at end of file
index adc665963292d0ece2bfe6b1c6d2174fe45c6add..6f7ead637327f1cdab2d40796f79a13d013f43f4 100644 (file)
@@ -26,7 +26,7 @@
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
-#if !MOBILE
+#if FEATURE_COMPRESSEDSTACK
 
 using System;
 using System.Security;
index 50181cd90a87064f23b7be16d61457e796bd7337..d3ce52f88e831094a37d9307ead9bbe2f0f56625 100644 (file)
@@ -1889,7 +1889,7 @@ namespace MonoTests.System.Threading.Tasks
                        bool? is_bg = null;
                        var t = new Task (() => { is_tp = Thread.CurrentThread.IsThreadPoolThread; is_bg = Thread.CurrentThread.IsBackground; });
                        t.Start ();
-                       t.Wait ();
+                       Assert.IsTrue (t.Wait (5000), "#0");
                        Assert.IsTrue ((bool)is_tp, "#1");
                        Assert.IsTrue ((bool)is_bg, "#2");
 
@@ -1897,7 +1897,7 @@ namespace MonoTests.System.Threading.Tasks
                        is_bg = null;
                        t = new Task (() => { is_tp = Thread.CurrentThread.IsThreadPoolThread; is_bg = Thread.CurrentThread.IsBackground; }, TaskCreationOptions.LongRunning);
                        t.Start ();
-                       t.Wait ();
+                       Assert.IsTrue (t.Wait (5000), "#10");
                        Assert.IsFalse ((bool) is_tp, "#11");
                        Assert.IsTrue ((bool) is_bg, "#12");
                }
index 4833b16e097c1643e3c59340cc5d3d123ca55b42..29c85726309ca2f77d54784c6cc902e20b03bcba 100644 (file)
@@ -29,6 +29,8 @@
 // Note: the class existed in 1.1 but the only thing we know about it is that
 // it has a finalizer ;-)
 
+#if FEATURE_COMPRESSEDSTACK
+
 using System;
 using System.Security;
 using System.Security.Permissions;
@@ -105,3 +107,4 @@ namespace MonoCasTests.System.Threading {
        }
 }
 
+#endif
\ No newline at end of file
index 0b88c3f585e5d6f0b3946300431059ca67a375a1..4b5058b063e1cffb4de1ce5db048ba90b153c303 100644 (file)
@@ -26,7 +26,7 @@
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
-#if !MOBILE
+#if FEATURE_COMPRESSEDSTACK
 
 using System;
 using System.Runtime.Serialization;
index 37683efb91e7a1d0c95291687fd4b7a1cbedf628..d892c5719176c332d1f8e9d05ba2a411924f0d40 100644 (file)
@@ -96,16 +96,19 @@ namespace MonoTests.System.Threading
 
                        Assert.IsNotNull (exception, "#4");
                        Assert.That (exception, Is.TypeOf (typeof (ApplicationException)), "#5");
-                       Assert.AreEqual (1, callTime, "#6");
+                       Assert.AreEqual (2, callTime, "#6");
                }
 
-               [Test, ExpectedException (typeof (InvalidOperationException))]
                [Category ("NotDotNet")] // nunit results in stack overflow
                public void MultipleReferenceToValueTest ()
                {
-                       threadLocal = new ThreadLocal<int> (() => threadLocal.Value + 1);
+                       try {
+                               threadLocal = new ThreadLocal<int> (() => threadLocal.Value + 1);
+                               var v = threadLocal.Value;
 
-                       var value = threadLocal.Value;
+                               Assert.Fail ("#1");
+                       } catch (InvalidOperationException e) {
+                       }
                }
 
                [Test]
@@ -174,6 +177,42 @@ namespace MonoTests.System.Threading
                        Assert.AreEqual (42, threadLocal.Value, "#4");
                        Assert.AreEqual (1, nTimes, "#5");
                }
+
+               class SetMreOnFinalize
+               {
+                       ManualResetEventSlim m_mres;
+
+                       public SetMreOnFinalize (ManualResetEventSlim mres)
+                       {
+                               m_mres = mres;
+                       }
+
+                       ~SetMreOnFinalize()
+                       {
+                               m_mres.Set();
+                       }
+               }
+
+               [Test]
+               public void DisposeOnThreadExit ()
+               {
+                       var threadLocal = new ThreadLocal<SetMreOnFinalize>();
+                       var mres = new ManualResetEventSlim(false);
+                       var thread = new Thread (() => { threadLocal.Value = new SetMreOnFinalize (mres); });
+
+                       thread.Start ();
+                       thread.Join ();
+
+                       SpinWait.SpinUntil (() => {
+                               GC.Collect();
+                               GC.WaitForPendingFinalizers();
+                               GC.Collect();
+                               return mres.IsSet;
+                       }, 500);
+
+                       if (!mres.IsSet)
+                               Assert.Fail ();
+               }
        }
 }
 #endif
index bdce606080e01e90ef49fed05f36b5dfffc472b1..42f0a3ec4521dfa6e5bb9a21c5d330e17c4f1d3e 100644 (file)
@@ -30,6 +30,8 @@ using System;
 using System.IO;
 using System.Runtime.Serialization.Formatters.Binary;
 using System.Collections;
+using System.Reflection;
+using System.Globalization;
 
 using NUnit.Framework;
 namespace MonoTests.System
@@ -664,6 +666,12 @@ namespace MonoTests.System
                [TestFixture]
                public class GetSystemTimeZonesTests
                {
+                       [Test]
+                       public void Identity ()
+                       {
+                               Assert.AreSame (TimeZoneInfo.GetSystemTimeZones (), TimeZoneInfo.GetSystemTimeZones ());
+                       }
+
                        [Test]
                        public void NotEmpty ()
                        {
@@ -1026,5 +1034,34 @@ namespace MonoTests.System
                                Assert.AreEqual(baseUtcOffset, cairo.GetUtcOffset (d.Add (new TimeSpan(0,0,0, 1))));
                        }
                }
+
+               [TestFixture]
+               public class GetDaylightChanges
+               {
+                       MethodInfo getChanges;
+
+                       [SetUp]
+                       public void Setup ()
+                       {
+                               var flags = BindingFlags.Instance | BindingFlags.NonPublic;
+                               getChanges = typeof (TimeZoneInfo).GetMethod ("GetDaylightChanges", flags);
+                       }
+
+                       [Test]
+                       public void TestSydneyDaylightChanges ()
+                       {
+                               TimeZoneInfo tz;
+                               if (Environment.OSVersion.Platform == PlatformID.Unix)
+                                       tz = TimeZoneInfo.FindSystemTimeZoneById ("Australia/Sydney");
+                               else
+                                       tz = TimeZoneInfo.FindSystemTimeZoneById ("W. Australia Standard Time");
+
+                               var changes = (DaylightTime) getChanges.Invoke (tz, new object [] {2014});
+
+                               Assert.AreEqual (new TimeSpan (1, 0, 0), changes.Delta);
+                               Assert.AreEqual (new DateTime (2014, 10, 5, 2, 0, 0), changes.Start);
+                               Assert.AreEqual (new DateTime (2014, 4, 6, 3, 0, 0), changes.End);
+                       }
+               }
        }
 }
index 5495a03b80e08b9799c4fe67e34199efc7c61454..ad5d95213b513210f387c63513c24b8ca086c627 100644 (file)
@@ -25,7 +25,7 @@
     <DebugType>full</DebugType>\r
     <NoWarn>612,618,1699</NoWarn>\r
     <Optimize>false</Optimize>\r
-    <DefineConstants>DEBUG;TRACE;INSIDE_CORLIB;MONO_CULTURE_DATA;LIBC;FEATURE_PAL;GENERICS_WORK;FEATURE_LIST_PREDICATES;FEATURE_SERIALIZATION;FEATURE_ASCII;FEATURE_LATIN1;FEATURE_UTF7;FEATURE_UTF32;MONO_HYBRID_ENCODING_SUPPORT;FEATURE_ASYNC_IO;NEW_EXPERIMENTAL_ASYNC_IO;FEATURE_UTF32;FEATURE_REMOTING;MONO_COM;NET_4_0;NET_4_5;MONO;DISABLE_CAS_USE;FEATURE_PAL;GENERICS_WORK;FEATURE_LIST_PREDICATES;FEATURE_SERIALIZATION;FEATURE_ASCII;FEATURE_LATIN1;FEATURE_UTF7;FEATURE_UTF32;MONO_HYBRID_ENCODING_SUPPORT;FEATURE_ASYNC_IO;NEW_EXPERIMENTAL_ASYNC_IO;FEATURE_UTF32;FEATURE_REMOTING;MONO_COM</DefineConstants>\r
+    <DefineConstants>DEBUG;TRACE;INSIDE_CORLIB;MONO_CULTURE_DATA;LIBC;FEATURE_PAL;GENERICS_WORK;FEATURE_LIST_PREDICATES;FEATURE_SERIALIZATION;FEATURE_ASCII;FEATURE_LATIN1;FEATURE_UTF7;FEATURE_UTF32;MONO_HYBRID_ENCODING_SUPPORT;FEATURE_ASYNC_IO;NEW_EXPERIMENTAL_ASYNC_IO;FEATURE_UTF32;FEATURE_EXCEPTIONDISPATCHINFO;FEATURE_CORRUPTING_EXCEPTIONS;FEATURE_EXCEPTION_NOTIFICATIONS;FEATURE_STRONGNAME_MIGRATION;FEATURE_USE_LCID;FEATURE_FUSION;FEATURE_CRYPTO;FEATURE_X509_SECURESTRINGS;FEATURE_SYNCHRONIZATIONCONTEXT;FEATURE_SYNCHRONIZATIONCONTEXT_WAIT;FEATURE_REMOTING;MONO_COM;FEATURE_COMINTEROP;NET_4_0;NET_4_5;MONO;DISABLE_CAS_USE;FEATURE_PAL;GENERICS_WORK;FEATURE_LIST_PREDICATES;FEATURE_SERIALIZATION;FEATURE_ASCII;FEATURE_LATIN1;FEATURE_UTF7;FEATURE_UTF32;MONO_HYBRID_ENCODING_SUPPORT;FEATURE_ASYNC_IO;NEW_EXPERIMENTAL_ASYNC_IO;FEATURE_UTF32;FEATURE_EXCEPTIONDISPATCHINFO;FEATURE_CORRUPTING_EXCEPTIONS;FEATURE_EXCEPTION_NOTIFICATIONS;FEATURE_STRONGNAME_MIGRATION;FEATURE_USE_LCID;FEATURE_FUSION;FEATURE_CRYPTO;FEATURE_X509_SECURESTRINGS;FEATURE_SYNCHRONIZATIONCONTEXT;FEATURE_SYNCHRONIZATIONCONTEXT_WAIT;FEATURE_REMOTING;MONO_COM;FEATURE_COMINTEROP</DefineConstants>\r
     <ErrorReport>prompt</ErrorReport>\r
     <WarningLevel>4</WarningLevel>\r
   </PropertyGroup>\r
@@ -33,7 +33,7 @@
     <DebugType>pdbonly</DebugType>\r
     <NoWarn>612,618,1699</NoWarn>\r
     <Optimize>true</Optimize>\r
-    <DefineConstants>INSIDE_CORLIB;MONO_CULTURE_DATA;LIBC;FEATURE_PAL;GENERICS_WORK;FEATURE_LIST_PREDICATES;FEATURE_SERIALIZATION;FEATURE_ASCII;FEATURE_LATIN1;FEATURE_UTF7;FEATURE_UTF32;MONO_HYBRID_ENCODING_SUPPORT;FEATURE_ASYNC_IO;NEW_EXPERIMENTAL_ASYNC_IO;FEATURE_UTF32;FEATURE_REMOTING;MONO_COM;NET_4_0;NET_4_5;MONO;DISABLE_CAS_USE;FEATURE_PAL;GENERICS_WORK;FEATURE_LIST_PREDICATES;FEATURE_SERIALIZATION;FEATURE_ASCII;FEATURE_LATIN1;FEATURE_UTF7;FEATURE_UTF32;MONO_HYBRID_ENCODING_SUPPORT;FEATURE_ASYNC_IO;NEW_EXPERIMENTAL_ASYNC_IO;FEATURE_UTF32;FEATURE_REMOTING;MONO_COM</DefineConstants>\r
+    <DefineConstants>INSIDE_CORLIB;MONO_CULTURE_DATA;LIBC;FEATURE_PAL;GENERICS_WORK;FEATURE_LIST_PREDICATES;FEATURE_SERIALIZATION;FEATURE_ASCII;FEATURE_LATIN1;FEATURE_UTF7;FEATURE_UTF32;MONO_HYBRID_ENCODING_SUPPORT;FEATURE_ASYNC_IO;NEW_EXPERIMENTAL_ASYNC_IO;FEATURE_UTF32;FEATURE_EXCEPTIONDISPATCHINFO;FEATURE_CORRUPTING_EXCEPTIONS;FEATURE_EXCEPTION_NOTIFICATIONS;FEATURE_STRONGNAME_MIGRATION;FEATURE_USE_LCID;FEATURE_FUSION;FEATURE_CRYPTO;FEATURE_X509_SECURESTRINGS;FEATURE_SYNCHRONIZATIONCONTEXT;FEATURE_SYNCHRONIZATIONCONTEXT_WAIT;FEATURE_REMOTING;MONO_COM;FEATURE_COMINTEROP;NET_4_0;NET_4_5;MONO;DISABLE_CAS_USE;FEATURE_PAL;GENERICS_WORK;FEATURE_LIST_PREDICATES;FEATURE_SERIALIZATION;FEATURE_ASCII;FEATURE_LATIN1;FEATURE_UTF7;FEATURE_UTF32;MONO_HYBRID_ENCODING_SUPPORT;FEATURE_ASYNC_IO;NEW_EXPERIMENTAL_ASYNC_IO;FEATURE_UTF32;FEATURE_EXCEPTIONDISPATCHINFO;FEATURE_CORRUPTING_EXCEPTIONS;FEATURE_EXCEPTION_NOTIFICATIONS;FEATURE_STRONGNAME_MIGRATION;FEATURE_USE_LCID;FEATURE_FUSION;FEATURE_CRYPTO;FEATURE_X509_SECURESTRINGS;FEATURE_SYNCHRONIZATIONCONTEXT;FEATURE_SYNCHRONIZATIONCONTEXT_WAIT;FEATURE_REMOTING;MONO_COM;FEATURE_COMINTEROP</DefineConstants>\r
     <ErrorReport>prompt</ErrorReport>\r
     <WarningLevel>4</WarningLevel>\r
   </PropertyGroup>\r
   </PropertyGroup>\r
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />\r
   <ItemGroup>\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\\system\runtime\reliability\criticalfinalizerobject.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\\system\runtime\reliability\prepreparemethodattribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\\system\runtime\reliability\reliabilitycontractattribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\microsoft\win32\safehandles\safefilehandle.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\microsoft\win32\safehandles\saferegistryhandle.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\microsoft\win32\safehandles\safewaithandle.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\microsoft\win32\safehandles\win32safehandles.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\__filters.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\__hresults.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\_localdatastore.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\_localdatastoremgr.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\accessviolationexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\action.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\activator.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\AggregateException.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\appdomainattributes.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\appdomainunloadedexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\applicationexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\applicationid.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\argumentexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\argumentnullexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\argumentoutofrangeexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\arithmeticexception.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\arraysegment.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\arraytypemismatchexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\asynccallback.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\attribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\attributetargets.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\attributeusageattribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\badimageformatexception.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\bitconverter.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\boolean.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\buffer.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\byte.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\cannotunloadappdomainexception.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\char.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\charenumerator.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\clscompliantattribute.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\collections\arraylist.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\collections\bitarray.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\collections\caseinsensitivecomparer.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\collections\dictionarybase.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\collections\dictionaryentry.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\collections\emptyreadonlydictionaryinternal.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\collections\generic\comparer.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\collections\generic\debugview.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\collections\generic\dictionary.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\collections\generic\equalitycomparer.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\collections\generic\icollection.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\collections\generic\icomparer.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\collections\generic\idictionary.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\collections\sortedlist.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\collections\stack.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\collections\structuralcomparisons.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\consolecanceleventargs.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\consolecolor.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\consolekey.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\consolekeyinfo.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\consolemodifiers.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\consolespecialkey.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\contextboundobject.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\contextmarshalexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\contextstaticattribute.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\convert.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\datamisalignedexception.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\datetime.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\datetimekind.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\datetimeoffset.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\diagnostics\assert.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\diagnostics\assertfilter.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\diagnostics\assertfilters.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\diagnostics\codeanalysis\suppressmessageattribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\diagnostics\conditionalattribute.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\diagnostics\contracts\contracts.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\diagnostics\contracts\contractsbcl.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\diagnostics\debuggerattributes.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\dividebyzeroexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\dllnotfoundexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\double.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\duplicatewaitobjectexception.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\empty.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\entrypointnotfoundexception.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\enum.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\eventargs.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\eventhandler.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\executionengineexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\fieldaccessexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\flagsattribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\formatexception.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\globalization\bidicategory.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\globalization\calendar.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\globalization\calendaralgorithmtype.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\globalization\calendardata.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\globalization\calendarweekrule.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\globalization\charunicodeinfo.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\globalization\chineselunisolarcalendar.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\globalization\compareinfo.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\globalization\culturenotfoundexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\globalization\culturetypes.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\globalization\datetimeformat.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\globalization\datetimeformatinfo.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\globalization\datetimeformatinfoscanner.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\globalization\datetimeparse.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\globalization\datetimestyles.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\globalization\daylighttime.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\globalization\digitshapes.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\globalization\eastasianlunisolarcalendar.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\globalization\globalizationassembly.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\globalization\gregoriancalendar.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\globalization\gregoriancalendarhelper.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\globalization\gregoriancalendartypes.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\globalization\hebrewcalendar.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\globalization\hebrewnumber.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\globalization\hijricalendar.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\globalization\juliancalendar.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\globalization\koreancalendar.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\globalization\koreanlunisolarcalendar.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\globalization\numberformatinfo.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\globalization\numberstyles.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\globalization\Persiancalendar.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\globalization\sortversion.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\globalization\stringinfo.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\globalization\taiwancalendar.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\globalization\taiwanlunisolarcalendar.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\globalization\textelementenumerator.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\globalization\textinfo.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\globalization\thaibuddhistcalendar.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\globalization\timespanformat.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\globalization\timespanparse.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\globalization\umalquracalendar.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\globalization\unicodecategory.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\guid.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\iappdomain.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\iappdomainsetup.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\iasyncresult.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\icloneable.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\icomparable.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\iconvertible.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\icustomformatter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\idisposable.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\iequatable.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\iformatprovider.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\iformattable.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\indexoutofrangeexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\insufficientexecutionstackexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\insufficientmemoryexception.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\int16.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\int32.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\int64.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\invalidcastexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\invalidoperationexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\invalidprogramexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\invalidtimezoneexception.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\io\__error.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\io\__hresults.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\io\binaryreader.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\io\binarywriter.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\io\bufferedstream.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\io\directorynotfoundexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\io\drivenotfoundexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\io\endofstreamexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\io\fileloadexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\io\filenotfoundexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\io\ioexception.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\io\memorystream.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\io\pathtoolongexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\io\pinnedbuffermemorystream.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\io\stream.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\io\streamreader.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\io\streamwriter.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\io\textreader.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\io\textwriter.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\io\unmanagedmemorystream.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\io\unmanagedmemorystreamwrapper.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\iobservable.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\iobserver.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\iprogress.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\iserviceobjectprovider.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\Lazy.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\memberaccessexception.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\methodaccessexception.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\missingfieldexception.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\missingmemberexception.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\missingmethodexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\multicastnotsupportedexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\nonserializedattribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\notfinitenumberexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\notimplementedexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\notsupportedexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\nullreferenceexception.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\number.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\objectdisposedexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\obsoleteattribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\operationcanceledexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\outofmemoryexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\overflowexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\paramarrayattribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\platformnotsupportedexception.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\progress.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\random.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\rankexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\reflection\ambiguousmatchexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\reflection\assemblyattributes.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\reflection\assemblynameflags.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\reflection\assemblynameproxy.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\reflection\binder.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\reflection\bindingflags.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\reflection\callingconventions.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\reflection\CustomAttributeExtensions.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\reflection\defaultmemberattribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\reflection\eventattributes.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\reflection\fieldattributes.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\reflection\genericparameterattributes.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\reflection\icustomattributeprovider.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\reflection\interfacemapping.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\reflection\introspectionextensions.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\reflection\invalidfiltercriteriaexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\reflection\ireflect.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\reflection\ireflectabletype.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\reflection\manifestresourceinfo.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\reflection\mdimport.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\reflection\memberfilter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\reflection\memberinfo.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\reflection\memberinfoserializationholder.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\reflection\membertypes.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\reflection\methodattributes.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\reflection\methodbase.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\reflection\methodimplattributes.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\reflection\missing.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\reflection\obfuscateassemblyattribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\reflection\obfuscationattribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\reflection\parameterattributes.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\reflection\parametermodifier.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\reflection\pointer.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\reflection\propertyattributes.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\reflection\reflectioncontext.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\reflection\resourceattributes.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\reflection\RuntimeReflectionExtensions.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\reflection\typeattributes.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\reflection\typedelegator.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\reflection\typefilter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\reflection\typeinfo.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\resid.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\resources\__fastresourcecomparer.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\resources\__hresults.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\resources\filebasedresourcegroveler.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\resources\iresourcegroveler.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\resources\iresourcereader.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\resources\iresourcewriter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\resources\looselylinkedresourcereference.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\resources\manifestbasedresourcegroveler.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\resources\missingmanifestresourceexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\resources\missingsatelliteassemblyexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\resources\neutralresourceslanguageattribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\resources\resourcefallbackmanager.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\resources\resourcemanager.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\resources\resourcereader.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\resources\resourceset.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\resources\resourcetypecode.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\resources\resourcewriter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\resources\runtimeresourceset.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\resources\satellitecontractversionattribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\resources\ultimateresourcefallbacklocation.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\rttype.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\runtime\compilerservices\accessedthroughpropertyattribute.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\runtime\compilerservices\assemblyattributesgohere.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\runtime\compilerservices\TypeForwardedToAttribute.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\runtime\compilerservices\unsafevaluetypeattribute.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\runtime\compilerservices\YieldAwaitable.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\runtime\exceptionservices\corruptingexceptioncommon.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\runtime\exceptionservices\exceptionnotification.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\runtime\exceptionservices\exceptionservicescommon.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\runtime\interopservices\attributes.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\runtime\interopservices\ComTypes\ibindctx.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\runtime\interopservices\ComTypes\iconnectionpoint.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\runtime\interopservices\ComTypes\iconnectionpointcontainer.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\runtime\interopservices\ComTypes\ienumconnectionpoints.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\runtime\interopservices\ComTypes\ienumconnections.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\runtime\interopservices\ComTypes\ienumerable.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\runtime\interopservices\ComTypes\ienumerator.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\runtime\interopservices\ComTypes\ienummoniker.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\runtime\interopservices\ComTypes\ienumstring.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\runtime\interopservices\ComTypes\ienumvariant.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\runtime\interopservices\ComTypes\iexpando.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\runtime\interopservices\ComTypes\imoniker.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\runtime\interopservices\ComTypes\ipersistfile.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\runtime\interopservices\ComTypes\ireflect.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\runtime\interopservices\ComTypes\irunningobjecttable.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\runtime\interopservices\ComTypes\istream.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\runtime\interopservices\ComTypes\itypecomp.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\runtime\interopservices\ComTypes\itypeinfo.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\runtime\interopservices\ComTypes\itypeinfo2.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\runtime\interopservices\ComTypes\itypelib.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\runtime\interopservices\ComTypes\itypelib2.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\runtime\interopservices\expando\iexpando.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\runtime\interopservices\safehandle.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\runtime\interopservices\ucomienumconnections.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\runtime\NgenServicingAttributes.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\runtime\remoting\callcontext.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\runtime\serialization\deserializationeventhandler.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\runtime\serialization\formatter.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\runtime\serialization\formatterconverter.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\runtime\serialization\surrogateselector.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\runtime\serialization\valuetypefixupinfo.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\runtime\versioning\binarycompatibility.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\runtime\versioning\componentguaranteesattribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\runtime\versioning\multitargetinghelpers.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\runtime\versioning\resourceattributes.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\runtime\versioning\targetframeworkattribute.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\runtime\versioning\targetframeworkid.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\sbyte.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\attributes.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\claims\Claim.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\claims\ClaimsIdentity.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\claims\ClaimsPrincipal.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\claims\ClaimTypes.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\claims\ClaimValueTypes.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\claims\RoleClaimProvider.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\aes.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\asymmetricalgorithm.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\asymmetrickeyexchangedeformatter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\asymmetrickeyexchangeformatter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\asymmetricsignaturedeformatter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\asymmetricsignatureformatter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\base64transforms.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\crypto.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\cryptoapitransform.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\cryptostream.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\derivebytes.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\des.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\descryptoserviceprovider.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\dsa.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\dsasignaturedeformatter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\dsasignatureformatter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\hashalgorithm.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\hmac.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\hmacmd5.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\hmacripemd160.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\hmacsha1.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\hmacsha256.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\hmacsha384.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\hmacsha512.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\icryptotransform.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\keyedhashalgorithm.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\mactripledes.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\maskgenerationmethod.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\md5.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\passwordderivebytes.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\pkcs1maskgenerationmethod.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\randomnumbergenerator.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\rc2.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\rc2cryptoserviceprovider.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\rfc2898derivebytes.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\rijndael.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\rijndaelmanaged.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\rijndaelmanagedtransform.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\ripemd160.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\ripemd160managed.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\rsa.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\rsaoaepkeyexchangedeformatter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\rsaoaepkeyexchangeformatter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\rsapkcs1keyexchangedeformatter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\rsapkcs1keyexchangeformatter.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\sha1.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\sha1managed.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\sha256.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\sha256managed.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\sha384.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\sha384managed.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\sha512.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\sha512managed.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\signaturedescription.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\symmetricalgorithm.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\tripledes.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\tripledescryptoserviceprovider.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\utils.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\cryptography\x509certificates\x509utils.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\principal\genericidentity.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\securitycontext.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\securitydocument.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\util\hex.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\util\parser.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\security\util\tokenizer.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\serializableattribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\single.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\stackoverflowexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\string.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\stringcomparer.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\stringfreezingattribute.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\systemexception.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\text\asciiencoding.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\text\codepageencoding.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\text\decoder.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\text\encoding.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\text\encodinginfo.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\text\mlangcodepageencoding.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\text\stringbuilder.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\text\stringbuildercache.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\text\surrogateencoder.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\text\unicodeencoding.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\text\utf32encoding.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\text\utf7encoding.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\text\utf8encoding.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\threadattributes.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\threading\abandonedmutexexception.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\threading\apartmentstate.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\threading\autoresetevent.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\threading\CancellationTokenSource.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\threading\CountdownEvent.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\threading\eventresetmode.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\threading\executioncontext.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\threading\LazyInitializer.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\threading\lockrecursionexception.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\threading\manualresetevent.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\threading\ManualResetEventSlim.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\threading\parameterizedthreadstart.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\threading\semaphorefullexception.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\threading\SemaphoreSlim.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\threading\sendorpostcallback.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\threading\SpinLock.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\threading\SpinWait.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\threading\synchronizationcontext.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\threading\synchronizationlockexception.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\threading\Tasks\BeginEndAwaitableAdapter.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\threading\Tasks\ConcurrentExclusiveSchedulerPair.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\threading\Tasks\TaskSchedulerException.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\threading\Tasks\TaskToApm.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\threading\Tasks\ThreadPoolTaskScheduler.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\threading\thread.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\threading\threadabortexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\threading\threadinterruptedexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\threading\ThreadLocal.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\threading\threadpool.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\threading\threadpriority.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\threading\threadstart.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\threading\threadstartexception.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\threading\threadstateexception.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\threading\timeout.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\threading\waithandlecannotbeopenedexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\threadstaticattribute.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\throwhelper.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\timeoutexception.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\timespan.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\timezoneinfo.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\timezonenotfoundexception.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\tuple.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\type.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\typeaccessexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\typedreference.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\typeinitializationexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\typeloadexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\typeunloadedexception.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\uint16.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\uint32.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\uint64.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\unauthorizedaccessexception.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\unhandledexceptioneventargs.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\unhandledexceptioneventhandler.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\unityserializationholder.cs" />\r
+    <Compile Include="..\..\..\external\referencesource\mscorlib\system\unsafecharbuffer.cs" />\r
     <Compile Include="..\..\..\external\referencesource\mscorlib\system\version.cs" />\r
     <Compile Include="..\..\build\common\Consts.cs" />\r
     <Compile Include="..\..\build\common\Locale.cs" />\r
     <Compile Include="..\Mono.Security\Mono.Security\BitConverterLE.cs" />\r
     <Compile Include="..\Mono.Security\Mono.Security\PKCS7.cs" />\r
     <Compile Include="..\Mono.Security\Mono.Security\StrongName.cs" />\r
-    <Compile Include="..\System\System.Threading\SemaphoreFullException.cs" />\r
     <Compile Include="Assembly\AssemblyInfo.cs" />\r
-    <Compile Include="Microsoft.Win32.SafeHandles\CriticalHandleMinusOneIsInvalid.cs" />\r
-    <Compile Include="Microsoft.Win32.SafeHandles\CriticalHandleZeroOrMinusOneIsInvalid.cs" />\r
-    <Compile Include="Microsoft.Win32.SafeHandles\SafeFileHandle.cs" />\r
-    <Compile Include="Microsoft.Win32.SafeHandles\SafeHandleMinusOneIsInvalid.cs" />\r
-    <Compile Include="Microsoft.Win32.SafeHandles\SafeHandleZeroOrMinusOneIsInvalid.cs" />\r
-    <Compile Include="Microsoft.Win32.SafeHandles\SafeRegistryHandle.cs" />\r
-    <Compile Include="Microsoft.Win32.SafeHandles\SafeWaitHandle.cs" />\r
     <Compile Include="Microsoft.Win32\IRegistryApi.cs" />\r
     <Compile Include="Microsoft.Win32\Registry.cs" />\r
     <Compile Include="Microsoft.Win32\RegistryHive.cs" />\r
     <Compile Include="ReferenceSources\AppDomain.cs" />\r
     <Compile Include="ReferenceSources\Array.cs" />\r
     <Compile Include="ReferenceSources\BCLDebug.cs" />\r
+    <Compile Include="ReferenceSources\Buffer.cs" />\r
     <Compile Include="ReferenceSources\CalendarData.cs" />\r
     <Compile Include="ReferenceSources\CLRConfig.cs" />\r
+    <Compile Include="ReferenceSources\CompareInfo.cs" />\r
     <Compile Include="ReferenceSources\CompatibilitySwitches.cs" />\r
     <Compile Include="ReferenceSources\CultureData.cs" />\r
     <Compile Include="ReferenceSources\DefaultBinder.cs" />\r
     <Compile Include="ReferenceSources\EncodingDataItem.cs" />\r
     <Compile Include="ReferenceSources\EncodingTable.cs" />\r
     <Compile Include="ReferenceSources\Environment.cs" />\r
-    <Compile Include="ReferenceSources\ExecutionContext.cs" />\r
     <Compile Include="ReferenceSources\HashHelpers.cs" />\r
     <Compile Include="ReferenceSources\JitHelpers.cs" />\r
-    <Compile Include="ReferenceSources\MessageDictionary.cs" />\r
+    <Compile Include="ReferenceSources\MethodBase.cs" />\r
     <Compile Include="ReferenceSources\ParseNumbers.cs" />\r
     <Compile Include="ReferenceSources\RemotingFieldCachedData.cs" />\r
+    <Compile Include="ReferenceSources\RuntimeHandles.cs" />\r
     <Compile Include="ReferenceSources\RuntimeType.cs" />\r
-    <Compile Include="ReferenceSources\TimeZoneInfoOptions.cs" />\r
+    <Compile Include="ReferenceSources\SecurityContext.cs" />\r
+    <Compile Include="ReferenceSources\SharedStatics.cs" />\r
+    <Compile Include="ReferenceSources\String.cs" />\r
+    <Compile Include="ReferenceSources\TextInfo.cs" />\r
     <Compile Include="ReferenceSources\Type.cs" />\r
+    <Compile Include="ReferenceSources\TypeBuilderInstantiation.cs" />\r
     <Compile Include="ReferenceSources\TypeNameParser.cs" />\r
-    <Compile Include="System.Collections.Concurrent\ConcurrentOrderedList.cs" />\r
-    <Compile Include="System.Collections.Generic\Comparer.cs" />\r
-    <Compile Include="System.Collections.Generic\EqualityComparer.cs" />\r
-    <Compile Include="System.Collections\HashPrimeNumbers.cs" />\r
+    <Compile Include="ReferenceSources\win32native.cs" />\r
     <Compile Include="System.Configuration.Assemblies\AssemblyHash.cs" />\r
     <Compile Include="System.Configuration.Assemblies\AssemblyHashAlgorithm.cs" />\r
     <Compile Include="System.Configuration.Assemblies\AssemblyVersionCompatibility.cs" />\r
     <Compile Include="System.Configuration.Assemblies\ProcessorID.cs" />\r
     <Compile Include="System.Deployment.Internal\InternalActivationContextHelper.cs" />\r
     <Compile Include="System.Deployment.Internal\InternalApplicationIdentityHelper.cs" />\r
-    <Compile Include="System.Diagnostics.CodeAnalysis\SuppressMessageAttribute.cs" />\r
     <Compile Include="System.Diagnostics.SymbolStore\ISymbolBinder.cs" />\r
     <Compile Include="System.Diagnostics.SymbolStore\ISymbolBinder1.cs" />\r
     <Compile Include="System.Diagnostics.SymbolStore\ISymbolDocument.cs" />\r
     <Compile Include="System.Diagnostics.Tracing\EventSource.cs" />\r
     <Compile Include="System.Diagnostics.Tracing\EventSourceAttribute.cs" />\r
     <Compile Include="System.Diagnostics.Tracing\NonEventAttribute.cs" />\r
-    <Compile Include="System.Diagnostics\ConditionalAttribute.cs" />\r
-    <Compile Include="System.Diagnostics\DebuggableAttribute.cs" />\r
     <Compile Include="System.Diagnostics\Debugger.cs" />\r
-    <Compile Include="System.Diagnostics\DebuggerBrowsableAttribute.cs" />\r
-    <Compile Include="System.Diagnostics\DebuggerBrowsableState.cs" />\r
-    <Compile Include="System.Diagnostics\DebuggerDisplayAttribute.cs" />\r
-    <Compile Include="System.Diagnostics\DebuggerHiddenAttribute.cs" />\r
-    <Compile Include="System.Diagnostics\DebuggerNonUserCodeAttribute.cs" />\r
-    <Compile Include="System.Diagnostics\DebuggerStepperBoundaryAttribute.cs" />\r
-    <Compile Include="System.Diagnostics\DebuggerStepThroughAttribute.cs" />\r
-    <Compile Include="System.Diagnostics\DebuggerTypeProxyAttribute.cs" />\r
-    <Compile Include="System.Diagnostics\DebuggerVisualizerAttribute.cs" />\r
     <Compile Include="System.Diagnostics\StackFrame.cs" />\r
     <Compile Include="System.Diagnostics\StackTrace.cs" />\r
-    <Compile Include="System.Globalization\CalendarAlgorithmType.cs" />\r
-    <Compile Include="System.Globalization\CalendarWeekRule.cs" />\r
-    <Compile Include="System.Globalization\CompareInfo.cs" />\r
-    <Compile Include="System.Globalization\CompareOptions.cs" />\r
     <Compile Include="System.Globalization\CultureInfo.cs" />\r
-    <Compile Include="System.Globalization\CultureNotFoundException.cs" />\r
-    <Compile Include="System.Globalization\CultureTypes.cs" />\r
-    <Compile Include="System.Globalization\DateTimeFormatInfo.cs" />\r
-    <Compile Include="System.Globalization\DateTimeStyles.cs" />\r
-    <Compile Include="System.Globalization\DigitShapes.cs" />\r
-    <Compile Include="System.Globalization\GregorianCalendarTypes.cs" />\r
     <Compile Include="System.Globalization\IdnMapping.cs" />\r
-    <Compile Include="System.Globalization\NumberFormatInfo.cs" />\r
-    <Compile Include="System.Globalization\NumberStyles.cs" />\r
     <Compile Include="System.Globalization\RegionInfo.cs" />\r
     <Compile Include="System.Globalization\RegionInfo.MonoTouch.cs" />\r
-    <Compile Include="System.Globalization\SortVersion.cs" />\r
-    <Compile Include="System.Globalization\StringInfo.cs" />\r
-    <Compile Include="System.Globalization\TextElementEnumerator.cs" />\r
-    <Compile Include="System.Globalization\TextInfo.cs" />\r
-    <Compile Include="System.Globalization\UnicodeCategory.cs" />\r
     <Compile Include="System.IO.IsolatedStorage\INormalizeForIsolatedStorage.cs" />\r
     <Compile Include="System.IO.IsolatedStorage\IsolatedStorage.cs" />\r
     <Compile Include="System.IO.IsolatedStorage\IsolatedStorageException.cs" />\r
     <Compile Include="System.IO.IsolatedStorage\IsolatedStorageSecurityState.cs" />\r
     <Compile Include="System.IO\Directory.cs" />\r
     <Compile Include="System.IO\DirectoryInfo.cs" />\r
-    <Compile Include="System.IO\DirectoryNotFoundException.cs" />\r
     <Compile Include="System.IO\DriveInfo.cs" />\r
-    <Compile Include="System.IO\DriveNotFoundException.cs" />\r
     <Compile Include="System.IO\DriveType.cs" />\r
-    <Compile Include="System.IO\EndOfStreamException.cs" />\r
     <Compile Include="System.IO\File.cs" />\r
     <Compile Include="System.IO\FileAccess.cs" />\r
     <Compile Include="System.IO\FileAttributes.cs" />\r
     <Compile Include="System.IO\FileInfo.cs" />\r
-    <Compile Include="System.IO\FileLoadException.cs" />\r
     <Compile Include="System.IO\FileMode.cs" />\r
-    <Compile Include="System.IO\FileNotFoundException.cs" />\r
     <Compile Include="System.IO\FileOptions.cs" />\r
     <Compile Include="System.IO\FileShare.cs" />\r
     <Compile Include="System.IO\FileStream.cs" />\r
     <Compile Include="System.IO\FileStreamAsyncResult.cs" />\r
     <Compile Include="System.IO\FileSystemInfo.cs" />\r
     <Compile Include="System.IO\HGlobalUnmanagedMemoryStream.cs" />\r
-    <Compile Include="System.IO\IOException.cs" />\r
     <Compile Include="System.IO\LogcatTextWriter.cs" />\r
     <Compile Include="System.IO\MonoFileType.cs" />\r
     <Compile Include="System.IO\MonoIO.cs" />\r
     <Compile Include="System.IO\MonoIOError.cs" />\r
     <Compile Include="System.IO\MonoIOStat.cs" />\r
     <Compile Include="System.IO\Path.cs" />\r
-    <Compile Include="System.IO\PathTooLongException.cs" />\r
     <Compile Include="System.IO\SearchOption.cs" />\r
     <Compile Include="System.IO\SearchPattern.cs" />\r
     <Compile Include="System.IO\SeekOrigin.cs" />\r
     <Compile Include="System.Reflection.Emit\TypeBuilder.cs" />\r
     <Compile Include="System.Reflection.Emit\TypeToken.cs" />\r
     <Compile Include="System.Reflection.Emit\UnmanagedMarshal.cs" />\r
-    <Compile Include="System.Reflection\AmbiguousMatchException.cs" />\r
     <Compile Include="System.Reflection\Assembly.cs" />\r
-    <Compile Include="System.Reflection\AssemblyAlgorithmIdAttribute.cs" />\r
-    <Compile Include="System.Reflection\AssemblyCompanyAttribute.cs" />\r
-    <Compile Include="System.Reflection\AssemblyConfigurationAttribute.cs" />\r
-    <Compile Include="System.Reflection\AssemblyContentType.cs" />\r
-    <Compile Include="System.Reflection\AssemblyCopyrightAttribute.cs" />\r
-    <Compile Include="System.Reflection\AssemblyCultureAttribute.cs" />\r
-    <Compile Include="System.Reflection\AssemblyDefaultAliasAttribute.cs" />\r
-    <Compile Include="System.Reflection\AssemblyDelaySignAttribute.cs" />\r
-    <Compile Include="System.Reflection\AssemblyDescriptionAttribute.cs" />\r
-    <Compile Include="System.Reflection\AssemblyFileVersionAttribute.cs" />\r
-    <Compile Include="System.Reflection\AssemblyFlagsAttribute.cs" />\r
-    <Compile Include="System.Reflection\AssemblyInformationalVersionAttribute.cs" />\r
-    <Compile Include="System.Reflection\AssemblyKeyFileAttribute.cs" />\r
-    <Compile Include="System.Reflection\AssemblyKeyNameAttribute.cs" />\r
-    <Compile Include="System.Reflection\AssemblyMetadataAttribute.cs" />\r
     <Compile Include="System.Reflection\AssemblyName.cs" />\r
-    <Compile Include="System.Reflection\AssemblyNameFlags.cs" />\r
-    <Compile Include="System.Reflection\AssemblyNameProxy.cs" />\r
-    <Compile Include="System.Reflection\AssemblyProductAttribute.cs" />\r
-    <Compile Include="System.Reflection\AssemblySignatureKeyAttribute.cs" />\r
-    <Compile Include="System.Reflection\AssemblyTitleAttribute.cs" />\r
-    <Compile Include="System.Reflection\AssemblyTradeMarkAttribute.cs" />\r
-    <Compile Include="System.Reflection\AssemblyVersionAttribute.cs" />\r
-    <Compile Include="System.Reflection\BindingFlags.cs" />\r
-    <Compile Include="System.Reflection\CallingConventions.cs" />\r
     <Compile Include="System.Reflection\ConstructorInfo.cs" />\r
     <Compile Include="System.Reflection\CustomAttributeData.cs" />\r
-    <Compile Include="System.Reflection\CustomAttributeExtensions.cs" />\r
     <Compile Include="System.Reflection\CustomAttributeFormatException.cs" />\r
     <Compile Include="System.Reflection\CustomAttributeNamedArgument.cs" />\r
     <Compile Include="System.Reflection\CustomAttributeTypedArgument.cs" />\r
-    <Compile Include="System.Reflection\DefaultMemberAttribute.cs" />\r
-    <Compile Include="System.Reflection\EventAttributes.cs" />\r
     <Compile Include="System.Reflection\EventInfo.cs" />\r
     <Compile Include="System.Reflection\ExceptionHandlingClause.cs" />\r
     <Compile Include="System.Reflection\ExceptionHandlingClauseOptions.cs" />\r
-    <Compile Include="System.Reflection\FieldAttributes.cs" />\r
     <Compile Include="System.Reflection\FieldInfo.cs" />\r
-    <Compile Include="System.Reflection\GenericParameterAttributes.cs" />\r
-    <Compile Include="System.Reflection\ICustomAttributeProvider.cs" />\r
     <Compile Include="System.Reflection\ImageFileMachine.cs" />\r
-    <Compile Include="System.Reflection\InterfaceMapping.cs" />\r
-    <Compile Include="System.Reflection\IntrospectionExtensions.cs" />\r
-    <Compile Include="System.Reflection\InvalidFilterCriteriaException.cs" />\r
-    <Compile Include="System.Reflection\IReflect.cs" />\r
-    <Compile Include="System.Reflection\IReflectableType.cs" />\r
     <Compile Include="System.Reflection\LocalVariableInfo.cs" />\r
-    <Compile Include="System.Reflection\ManifestResourceInfo.cs" />\r
-    <Compile Include="System.Reflection\MemberFilter.cs" />\r
-    <Compile Include="System.Reflection\MemberInfo.cs" />\r
-    <Compile Include="System.Reflection\MemberInfoSerializationHolder.cs" />\r
-    <Compile Include="System.Reflection\MemberTypes.cs" />\r
-    <Compile Include="System.Reflection\MethodAttributes.cs" />\r
-    <Compile Include="System.Reflection\MethodBase.cs" />\r
     <Compile Include="System.Reflection\MethodBody.cs" />\r
-    <Compile Include="System.Reflection\MethodImplAttributes.cs" />\r
     <Compile Include="System.Reflection\MethodInfo.cs" />\r
-    <Compile Include="System.Reflection\Missing.cs" />\r
     <Compile Include="System.Reflection\Module.cs" />\r
     <Compile Include="System.Reflection\ModuleResolveEventHandler.cs" />\r
     <Compile Include="System.Reflection\MonoAssembly.cs" />\r
     <Compile Include="System.Reflection\MonoModule.cs" />\r
     <Compile Include="System.Reflection\MonoParameterInfo.cs" />\r
     <Compile Include="System.Reflection\MonoProperty.cs" />\r
-    <Compile Include="System.Reflection\ObfuscateAssemblyAttribute.cs" />\r
-    <Compile Include="System.Reflection\ObfuscationAttribute.cs" />\r
-    <Compile Include="System.Reflection\ParameterAttributes.cs" />\r
     <Compile Include="System.Reflection\ParameterInfo.cs" />\r
-    <Compile Include="System.Reflection\ParameterModifier.cs" />\r
-    <Compile Include="System.Reflection\Pointer.cs" />\r
     <Compile Include="System.Reflection\PortableExecutableKinds.cs" />\r
-    <Compile Include="System.Reflection\ProcessorArchitecture.cs" />\r
-    <Compile Include="System.Reflection\PropertyAttributes.cs" />\r
     <Compile Include="System.Reflection\PropertyInfo.cs" />\r
-    <Compile Include="System.Reflection\ReflectionContext.cs" />\r
     <Compile Include="System.Reflection\ReflectionTypeLoadException.cs" />\r
-    <Compile Include="System.Reflection\ResourceAttributes.cs" />\r
-    <Compile Include="System.Reflection\ResourceLocation.cs" />\r
-    <Compile Include="System.Reflection\RuntimeReflectionExtensions.cs" />\r
     <Compile Include="System.Reflection\StrongNameKeyPair.cs" />\r
     <Compile Include="System.Reflection\TargetException.cs" />\r
     <Compile Include="System.Reflection\TargetInvocationException.cs" />\r
     <Compile Include="System.Reflection\TargetParameterCountException.cs" />\r
-    <Compile Include="System.Reflection\TypeAttributes.cs" />\r
-    <Compile Include="System.Reflection\TypeFilter.cs" />\r
-    <Compile Include="System.Reflection\TypeInfo.cs" />\r
-    <Compile Include="System.Resources\IResourceReader.cs" />\r
-    <Compile Include="System.Resources\IResourceWriter.cs" />\r
-    <Compile Include="System.Resources\MissingManifestResourceException.cs" />\r
-    <Compile Include="System.Resources\MissingSatelliteAssemblyException.cs" />\r
-    <Compile Include="System.Resources\NeutralResourcesLanguageAttribute.cs" />\r
-    <Compile Include="System.Resources\ResourceManager.cs" />\r
-    <Compile Include="System.Resources\ResourceReader.cs" />\r
-    <Compile Include="System.Resources\ResourceSet.cs" />\r
-    <Compile Include="System.Resources\ResourceWriter.cs" />\r
-    <Compile Include="System.Resources\RuntimeResourceSet.cs" />\r
-    <Compile Include="System.Resources\SatelliteContractVersionAttribute.cs" />\r
-    <Compile Include="System.Resources\UltimateResourceFallbackLocation.cs" />\r
     <Compile Include="System.Resources\Win32Resources.cs" />\r
     <Compile Include="System.Runtime.CompilerServices\ConditionalWeakTable.cs" />\r
     <Compile Include="System.Runtime.CompilerServices\RuntimeHelpers.cs" />\r
-    <Compile Include="System.Runtime.ConstrainedExecution\CER.cs" />\r
-    <Compile Include="System.Runtime.ConstrainedExecution\Consistency.cs" />\r
-    <Compile Include="System.Runtime.ConstrainedExecution\CriticialFinalizerObject.cs" />\r
-    <Compile Include="System.Runtime.ConstrainedExecution\PrePrepareMethodAttribute.cs" />\r
-    <Compile Include="System.Runtime.ConstrainedExecution\ReliabilityContractAttribute.cs" />\r
-    <Compile Include="System.Runtime.ExceptionServices\ExceptionDispatchInfo.cs" />\r
-    <Compile Include="System.Runtime.ExceptionServices\FirstChanceExceptionEventArgs.cs" />\r
-    <Compile Include="System.Runtime.ExceptionServices\HandleProcessCorruptedStateExceptionsAttribute.cs" />\r
     <Compile Include="System.Runtime.Hosting\ActivationArguments.cs" />\r
     <Compile Include="System.Runtime.Hosting\ApplicationActivator.cs" />\r
-    <Compile Include="System.Runtime.InteropServices.ComTypes\BIND_OPTS.cs" />\r
-    <Compile Include="System.Runtime.InteropServices.ComTypes\BINDPTR.cs" />\r
-    <Compile Include="System.Runtime.InteropServices.ComTypes\CALLCONV.cs" />\r
-    <Compile Include="System.Runtime.InteropServices.ComTypes\CONNECTDATA.cs" />\r
-    <Compile Include="System.Runtime.InteropServices.ComTypes\DESCKIND.cs" />\r
-    <Compile Include="System.Runtime.InteropServices.ComTypes\DISPPARAMS.cs" />\r
-    <Compile Include="System.Runtime.InteropServices.ComTypes\ELEMDESC.cs" />\r
-    <Compile Include="System.Runtime.InteropServices.ComTypes\EXCEPINFO.cs" />\r
-    <Compile Include="System.Runtime.InteropServices.ComTypes\FILETIME.cs" />\r
-    <Compile Include="System.Runtime.InteropServices.ComTypes\FUNCDESC.cs" />\r
-    <Compile Include="System.Runtime.InteropServices.ComTypes\FUNCFLAGS.cs" />\r
-    <Compile Include="System.Runtime.InteropServices.ComTypes\FUNCKIND.cs" />\r
-    <Compile Include="System.Runtime.InteropServices.ComTypes\IBindCtx.cs" />\r
-    <Compile Include="System.Runtime.InteropServices.ComTypes\IConnectionPoint.cs" />\r
-    <Compile Include="System.Runtime.InteropServices.ComTypes\IConnectionPointContainer.cs" />\r
-    <Compile Include="System.Runtime.InteropServices.ComTypes\IDLDESC.cs" />\r
-    <Compile Include="System.Runtime.InteropServices.ComTypes\IDLFLAG.cs" />\r
-    <Compile Include="System.Runtime.InteropServices.ComTypes\IEnumConnectionPoints.cs" />\r
-    <Compile Include="System.Runtime.InteropServices.ComTypes\IEnumConnections.cs" />\r
-    <Compile Include="System.Runtime.InteropServices.ComTypes\IEnumMoniker.cs" />\r
-    <Compile Include="System.Runtime.InteropServices.ComTypes\IEnumString.cs" />\r
-    <Compile Include="System.Runtime.InteropServices.ComTypes\IEnumVARIANT.cs" />\r
-    <Compile Include="System.Runtime.InteropServices.ComTypes\IMoniker.cs" />\r
-    <Compile Include="System.Runtime.InteropServices.ComTypes\IMPLTYPEFLAGS.cs" />\r
-    <Compile Include="System.Runtime.InteropServices.ComTypes\INVOKEKIND.cs" />\r
-    <Compile Include="System.Runtime.InteropServices.ComTypes\IPersistFile.cs" />\r
-    <Compile Include="System.Runtime.InteropServices.ComTypes\IRunningObjectTable.cs" />\r
-    <Compile Include="System.Runtime.InteropServices.ComTypes\IStream.cs" />\r
-    <Compile Include="System.Runtime.InteropServices.ComTypes\ITypeComp.cs" />\r
-    <Compile Include="System.Runtime.InteropServices.ComTypes\ITypeInfo.cs" />\r
-    <Compile Include="System.Runtime.InteropServices.ComTypes\ITypeInfo2.cs" />\r
-    <Compile Include="System.Runtime.InteropServices.ComTypes\ITypeLib.cs" />\r
-    <Compile Include="System.Runtime.InteropServices.ComTypes\ITypeLib2.cs" />\r
-    <Compile Include="System.Runtime.InteropServices.ComTypes\LIBFLAGS.cs" />\r
-    <Compile Include="System.Runtime.InteropServices.ComTypes\PARAMDESC.cs" />\r
-    <Compile Include="System.Runtime.InteropServices.ComTypes\PARAMFLAG.cs" />\r
-    <Compile Include="System.Runtime.InteropServices.ComTypes\STATSTG.cs" />\r
-    <Compile Include="System.Runtime.InteropServices.ComTypes\SYSKIND.cs" />\r
-    <Compile Include="System.Runtime.InteropServices.ComTypes\TYPEATTR.cs" />\r
-    <Compile Include="System.Runtime.InteropServices.ComTypes\TYPEDESC.cs" />\r
-    <Compile Include="System.Runtime.InteropServices.ComTypes\TYPEFLAGS.cs" />\r
-    <Compile Include="System.Runtime.InteropServices.ComTypes\TYPEKIND.cs" />\r
-    <Compile Include="System.Runtime.InteropServices.ComTypes\TYPELIBATTR.cs" />\r
-    <Compile Include="System.Runtime.InteropServices.ComTypes\VARDESC.cs" />\r
-    <Compile Include="System.Runtime.InteropServices.ComTypes\VARFLAGS.cs" />\r
-    <Compile Include="System.Runtime.InteropServices.ComTypes\VARKIND.cs" />\r
-    <Compile Include="System.Runtime.InteropServices.Expando\IExpando.cs" />\r
     <Compile Include="System.Runtime.InteropServices.WindowsRuntime\DefaultInterfaceAttribute.cs" />\r
     <Compile Include="System.Runtime.InteropServices.WindowsRuntime\DesignerNamespaceResolveEventArgs.cs" />\r
     <Compile Include="System.Runtime.InteropServices.WindowsRuntime\EventRegistrationToken.cs" />\r
     <Compile Include="System.Runtime.InteropServices\_Thread.cs" />\r
     <Compile Include="System.Runtime.InteropServices\_Type.cs" />\r
     <Compile Include="System.Runtime.InteropServices\_TypeBuilder.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\AllowReversePInvokeCallsAttribute.cs" />\r
     <Compile Include="System.Runtime.InteropServices\ArrayWithOffset.cs" />\r
     <Compile Include="System.Runtime.InteropServices\AssemblyRegistrationFlags.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\AutomationProxyAttribute.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\BestFitMappingAttribute.cs" />\r
     <Compile Include="System.Runtime.InteropServices\BIND_OPTS.cs" />\r
     <Compile Include="System.Runtime.InteropServices\BINDPTR.cs" />\r
     <Compile Include="System.Runtime.InteropServices\BStrWrapper.cs" />\r
     <Compile Include="System.Runtime.InteropServices\CALLCONV.cs" />\r
     <Compile Include="System.Runtime.InteropServices\CallingConvention.cs" />\r
     <Compile Include="System.Runtime.InteropServices\CharSet.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\ClassInterfaceAttribute.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\ClassInterfaceType.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\CoClassAttribute.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\ComAliasNameAttribute.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\ComCompatibleVersionAttribute.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\ComConversionLossAttribute.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\ComDefaultInterfaceAttribute.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\ComEventInterfaceAttribute.cs" />\r
     <Compile Include="System.Runtime.InteropServices\COMException.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\ComImportAttribute.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\ComInterfaceType.cs" />\r
     <Compile Include="System.Runtime.InteropServices\ComMemberType.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\ComRegisterFunctionAttribute.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\ComSourceInterfacesAttribute.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\ComUnregisterFunctionAttribute.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\ComVisible.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\CONNECTDATA.cs" />\r
     <Compile Include="System.Runtime.InteropServices\CriticalHandle.cs" />\r
     <Compile Include="System.Runtime.InteropServices\CurrencyWrapper.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\DefaultCharSetAttribute.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\DefaultDllImportSearchPathsAttribute.cs" />\r
     <Compile Include="System.Runtime.InteropServices\DESCKIND.cs" />\r
     <Compile Include="System.Runtime.InteropServices\DispatchWrapper.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\DispIdAttribute.cs" />\r
     <Compile Include="System.Runtime.InteropServices\DISPPARAMS.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\DllImportAttribute.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\DllImportSearchPath.cs" />\r
     <Compile Include="System.Runtime.InteropServices\ELEMDESC.cs" />\r
     <Compile Include="System.Runtime.InteropServices\ErrorWrapper.cs" />\r
     <Compile Include="System.Runtime.InteropServices\EXCEPINFO.cs" />\r
     <Compile Include="System.Runtime.InteropServices\ExporterEventKind.cs" />\r
     <Compile Include="System.Runtime.InteropServices\ExtensibleClassFactory.cs" />\r
     <Compile Include="System.Runtime.InteropServices\ExternalException.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\FieldOffsetAttribute.cs" />\r
     <Compile Include="System.Runtime.InteropServices\FILETIME.cs" />\r
     <Compile Include="System.Runtime.InteropServices\FUNCDESC.cs" />\r
     <Compile Include="System.Runtime.InteropServices\FUNCFLAGS.cs" />\r
     <Compile Include="System.Runtime.InteropServices\FUNCKIND.cs" />\r
     <Compile Include="System.Runtime.InteropServices\GCHandle.cs" />\r
     <Compile Include="System.Runtime.InteropServices\GCHandleType.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\GuidAttribute.cs" />\r
     <Compile Include="System.Runtime.InteropServices\HandleRef.cs" />\r
     <Compile Include="System.Runtime.InteropServices\ICustomAdapter.cs" />\r
     <Compile Include="System.Runtime.InteropServices\ICustomFactory.cs" />\r
     <Compile Include="System.Runtime.InteropServices\ICustomMarshaler.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\IDispatchImplAttribute.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\IDispatchImplType.cs" />\r
     <Compile Include="System.Runtime.InteropServices\IDLDESC.cs" />\r
     <Compile Include="System.Runtime.InteropServices\IDLFLAG.cs" />\r
     <Compile Include="System.Runtime.InteropServices\IErrorInfo.cs" />\r
     <Compile Include="System.Runtime.InteropServices\IMPLTYPEFLAGS.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\ImportedFromTypeLibAttribute.cs" />\r
     <Compile Include="System.Runtime.InteropServices\ImporterEventKind.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\InAttribute.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\InterfaceTypeAttribute.cs" />\r
     <Compile Include="System.Runtime.InteropServices\InvalidComObjectException.cs" />\r
     <Compile Include="System.Runtime.InteropServices\InvalidOleVariantTypeException.cs" />\r
     <Compile Include="System.Runtime.InteropServices\INVOKEKIND.cs" />\r
     <Compile Include="System.Runtime.InteropServices\ITypeLibExporterNotifySink.cs" />\r
     <Compile Include="System.Runtime.InteropServices\ITypeLibImporterNotifySink.cs" />\r
     <Compile Include="System.Runtime.InteropServices\LayoutKind.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\LCIDConversionAttribute.cs" />\r
     <Compile Include="System.Runtime.InteropServices\LIBFLAGS.cs" />\r
     <Compile Include="System.Runtime.InteropServices\ManagedErrorInfo.cs" />\r
     <Compile Include="System.Runtime.InteropServices\Marshal.cs" />\r
     <Compile Include="System.Runtime.InteropServices\MarshalAsAttribute.cs" />\r
     <Compile Include="System.Runtime.InteropServices\MarshalDirectiveException.cs" />\r
     <Compile Include="System.Runtime.InteropServices\ObjectCreationDelegate.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\OptionalAttribute.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\OutAttribute.cs" />\r
     <Compile Include="System.Runtime.InteropServices\PARAMDESC.cs" />\r
     <Compile Include="System.Runtime.InteropServices\PARAMFLAG.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\PreserveSigAttribute.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\PrimaryInteropAssemblyAttribute.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\ProgIdAttribute.cs" />\r
     <Compile Include="System.Runtime.InteropServices\RegistrationClassContext.cs" />\r
     <Compile Include="System.Runtime.InteropServices\RegistrationConnectionType.cs" />\r
     <Compile Include="System.Runtime.InteropServices\RegistrationServices.cs" />\r
     <Compile Include="System.Runtime.InteropServices\SafeBuffer.cs" />\r
     <Compile Include="System.Runtime.InteropServices\SafeHandle.cs" />\r
     <Compile Include="System.Runtime.InteropServices\SEHException.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\SetWin32ContextInIDispatchAttribute.cs" />\r
     <Compile Include="System.Runtime.InteropServices\STATSTG.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\StructLayoutAttribute.cs" />\r
     <Compile Include="System.Runtime.InteropServices\SYSKIND.cs" />\r
     <Compile Include="System.Runtime.InteropServices\TYPEATTR.cs" />\r
     <Compile Include="System.Runtime.InteropServices\TYPEDESC.cs" />\r
     <Compile Include="System.Runtime.InteropServices\TYPEFLAGS.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\TypeIdentifierAttribute.cs" />\r
     <Compile Include="System.Runtime.InteropServices\TYPEKIND.cs" />\r
     <Compile Include="System.Runtime.InteropServices\TYPELIBATTR.cs" />\r
     <Compile Include="System.Runtime.InteropServices\TypeLibConverter.cs" />\r
     <Compile Include="System.Runtime.InteropServices\TypeLibExporterFlags.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\TypeLibFuncAttribute.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\TypeLibFuncFlags.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\TypeLibImportClassAttribute.cs" />\r
     <Compile Include="System.Runtime.InteropServices\TypeLibImporterFlags.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\TypeLibTypeAttribute.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\TypeLibTypeFlags.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\TypeLibVarAttribute.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\TypeLibVarFlags.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\TypeLibVersionAttribute.cs" />\r
     <Compile Include="System.Runtime.InteropServices\UCOMIBindCtx.cs" />\r
     <Compile Include="System.Runtime.InteropServices\UCOMIConnectionPoint.cs" />\r
     <Compile Include="System.Runtime.InteropServices\UCOMIConnectionPointContainer.cs" />\r
     <Compile Include="System.Runtime.InteropServices\UCOMIEnumConnectionPoints.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\UCOMIEnumConnections.cs" />\r
     <Compile Include="System.Runtime.InteropServices\UCOMIEnumMoniker.cs" />\r
     <Compile Include="System.Runtime.InteropServices\UCOMIEnumString.cs" />\r
     <Compile Include="System.Runtime.InteropServices\UCOMIEnumVARIANT.cs" />\r
     <Compile Include="System.Runtime.InteropServices\UCOMITypeInfo.cs" />\r
     <Compile Include="System.Runtime.InteropServices\UCOMITypeLib.cs" />\r
     <Compile Include="System.Runtime.InteropServices\UnknownWrapper.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\UnmanagedFunctionPointerAttribute.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\UnmanagedType.cs" />\r
     <Compile Include="System.Runtime.InteropServices\VARDESC.cs" />\r
-    <Compile Include="System.Runtime.InteropServices\VarEnum.cs" />\r
     <Compile Include="System.Runtime.InteropServices\VARFLAGS.cs" />\r
     <Compile Include="System.Runtime.InteropServices\VariantWrapper.cs" />\r
     <Compile Include="System.Runtime.Remoting.Activation\ActivationServices.cs" />\r
     <Compile Include="System.Runtime.Remoting.Messaging\ArgInfo.cs" />\r
     <Compile Include="System.Runtime.Remoting.Messaging\AsyncResult.cs" />\r
     <Compile Include="System.Runtime.Remoting.Messaging\CADMessages.cs" />\r
-    <Compile Include="System.Runtime.Remoting.Messaging\CallContext.cs" />\r
     <Compile Include="System.Runtime.Remoting.Messaging\ClientContextTerminatorSink.cs" />\r
     <Compile Include="System.Runtime.Remoting.Messaging\ConstructionCall.cs" />\r
     <Compile Include="System.Runtime.Remoting.Messaging\ConstructionCallDictionary.cs" />\r
     <Compile Include="System.Runtime.Remoting.Messaging\InternalMessageWrapper.cs" />\r
     <Compile Include="System.Runtime.Remoting.Messaging\IRemotingFormatter.cs" />\r
     <Compile Include="System.Runtime.Remoting.Messaging\ISerializationRootObject.cs" />\r
-    <Compile Include="System.Runtime.Remoting.Messaging\LogicalCallContext.cs" />\r
     <Compile Include="System.Runtime.Remoting.Messaging\MessageSurrogateFilter.cs" />\r
     <Compile Include="System.Runtime.Remoting.Messaging\MethodCall.cs" />\r
     <Compile Include="System.Runtime.Remoting.Messaging\MethodCallDictionary.cs" />\r
     <Compile Include="System.Runtime.Remoting\WellKnownObjectMode.cs" />\r
     <Compile Include="System.Runtime.Remoting\WellKnownServiceTypeEntry.cs" />\r
     <Compile Include="System.Runtime.Versioning\CompatibilitySwitch.cs" />\r
-    <Compile Include="System.Runtime.Versioning\ComponentGuaranteesAttribute.cs" />\r
-    <Compile Include="System.Runtime.Versioning\ComponentGuaranteesOptions.cs" />\r
-    <Compile Include="System.Runtime.Versioning\ResourceConsumptionAttribute.cs" />\r
-    <Compile Include="System.Runtime.Versioning\ResourceExposureAttribute.cs" />\r
-    <Compile Include="System.Runtime.Versioning\ResourceScope.cs" />\r
-    <Compile Include="System.Runtime.Versioning\TargetFrameworkAttribute.cs" />\r
-    <Compile Include="System.Runtime.Versioning\VersioningHelper.cs" />\r
-    <Compile Include="System.Runtime\AssemblyTargetedPatchBandAttribute.cs" />\r
     <Compile Include="System.Runtime\GCLargeObjectHeapCompactionMode.cs" />\r
     <Compile Include="System.Runtime\GCLatencyMode.cs" />\r
     <Compile Include="System.Runtime\GCSettings.cs" />\r
     <Compile Include="System.Runtime\MemoryFailPoint.cs" />\r
-    <Compile Include="System.Runtime\TargetedPatchingOptOutAttribute.cs" />\r
     <Compile Include="System.Security.AccessControl\AccessControlActions.cs" />\r
     <Compile Include="System.Security.AccessControl\AccessControlModification.cs" />\r
     <Compile Include="System.Security.AccessControl\AccessControlSections.cs" />\r
     <Compile Include="System.Security.AccessControl\SddlAccessRight.cs" />\r
     <Compile Include="System.Security.AccessControl\SecurityInfos.cs" />\r
     <Compile Include="System.Security.AccessControl\SystemAcl.cs" />\r
-    <Compile Include="System.Security.Claims\Claim.cs" />\r
-    <Compile Include="System.Security.Claims\ClaimsIdentity.cs" />\r
-    <Compile Include="System.Security.Claims\ClaimsPrincipal.cs" />\r
-    <Compile Include="System.Security.Claims\ClaimTypes.cs" />\r
-    <Compile Include="System.Security.Claims\ClaimValueTypes.cs" />\r
     <Compile Include="System.Security.Cryptography.X509Certificates\X509Certificate.cs" />\r
     <Compile Include="System.Security.Cryptography.X509Certificates\X509Certificate20.cs" />\r
     <Compile Include="System.Security.Cryptography.X509Certificates\X509ContentType.cs" />\r
     <Compile Include="System.Security.Cryptography.X509Certificates\X509KeyStorageFlags.cs" />\r
-    <Compile Include="System.Security.Cryptography\Aes.cs" />\r
-    <Compile Include="System.Security.Cryptography\AsymmetricAlgorithm.cs" />\r
-    <Compile Include="System.Security.Cryptography\AsymmetricKeyExchangeDeformatter.cs" />\r
-    <Compile Include="System.Security.Cryptography\AsymmetricKeyExchangeFormatter.cs" />\r
-    <Compile Include="System.Security.Cryptography\AsymmetricSignatureDeformatter.cs" />\r
-    <Compile Include="System.Security.Cryptography\AsymmetricSignatureFormatter.cs" />\r
-    <Compile Include="System.Security.Cryptography\Base64Constants.cs" />\r
-    <Compile Include="System.Security.Cryptography\CipherMode.cs" />\r
     <Compile Include="System.Security.Cryptography\CryptoAPITransform.cs" />\r
     <Compile Include="System.Security.Cryptography\CryptoConfig.cs" />\r
     <Compile Include="System.Security.Cryptography\CryptoConfig.fullaot.cs" />\r
     <Compile Include="System.Security.Cryptography\CryptoConfig_2_1.cs" />\r
-    <Compile Include="System.Security.Cryptography\CryptographicException.cs" />\r
-    <Compile Include="System.Security.Cryptography\CryptographicUnexpectedOperationExcpetion.cs" />\r
-    <Compile Include="System.Security.Cryptography\CryptoStream.cs" />\r
-    <Compile Include="System.Security.Cryptography\CryptoStreamMode.cs" />\r
     <Compile Include="System.Security.Cryptography\CspKeyContainerInfo.cs" />\r
-    <Compile Include="System.Security.Cryptography\CspParameters.cs" />\r
-    <Compile Include="System.Security.Cryptography\CspProviderFlags.cs" />\r
-    <Compile Include="System.Security.Cryptography\DeriveBytes.cs" />\r
-    <Compile Include="System.Security.Cryptography\DES.cs" />\r
     <Compile Include="System.Security.Cryptography\DESCryptoServiceProvider.cs" />\r
-    <Compile Include="System.Security.Cryptography\DSA.cs" />\r
     <Compile Include="System.Security.Cryptography\DSACryptoServiceProvider.cs" />\r
-    <Compile Include="System.Security.Cryptography\DSAParameters.cs" />\r
-    <Compile Include="System.Security.Cryptography\DSASignatureDeformatter.cs" />\r
-    <Compile Include="System.Security.Cryptography\DSASignatureFormatter.cs" />\r
-    <Compile Include="System.Security.Cryptography\FromBase64Transform.cs" />\r
-    <Compile Include="System.Security.Cryptography\HashAlgorithm.cs" />\r
-    <Compile Include="System.Security.Cryptography\HMAC.cs" />\r
-    <Compile Include="System.Security.Cryptography\HMACMD5.cs" />\r
-    <Compile Include="System.Security.Cryptography\HMACRIPEMD160.cs" />\r
-    <Compile Include="System.Security.Cryptography\HMACSHA1.cs" />\r
-    <Compile Include="System.Security.Cryptography\HMACSHA256.cs" />\r
-    <Compile Include="System.Security.Cryptography\HMACSHA384.cs" />\r
-    <Compile Include="System.Security.Cryptography\HMACSHA512.cs" />\r
-    <Compile Include="System.Security.Cryptography\ICryptoTransform.cs" />\r
     <Compile Include="System.Security.Cryptography\ICspAsymmetricAlgorithm.cs" />\r
-    <Compile Include="System.Security.Cryptography\KeyedHashAlgorithm.cs" />\r
     <Compile Include="System.Security.Cryptography\KeyNumber.cs" />\r
-    <Compile Include="System.Security.Cryptography\KeySizes.cs" />\r
-    <Compile Include="System.Security.Cryptography\MACTripleDES.cs" />\r
-    <Compile Include="System.Security.Cryptography\MaskGenerationMethod.cs" />\r
-    <Compile Include="System.Security.Cryptography\MD5.cs" />\r
     <Compile Include="System.Security.Cryptography\MD5CryptoServiceProvider.cs" />\r
-    <Compile Include="System.Security.Cryptography\PaddingMode.cs" />\r
-    <Compile Include="System.Security.Cryptography\PasswordDeriveBytes.cs" />\r
-    <Compile Include="System.Security.Cryptography\PKCS1MaskGenerationMethod.cs" />\r
-    <Compile Include="System.Security.Cryptography\RandomNumberGenerator.cs" />\r
-    <Compile Include="System.Security.Cryptography\RC2.cs" />\r
     <Compile Include="System.Security.Cryptography\RC2CryptoServiceProvider.cs" />\r
-    <Compile Include="System.Security.Cryptography\Rfc2898DeriveBytes.cs" />\r
-    <Compile Include="System.Security.Cryptography\Rijndael.cs" />\r
-    <Compile Include="System.Security.Cryptography\RijndaelManaged.cs" />\r
-    <Compile Include="System.Security.Cryptography\RijndaelManagedTransform.cs" />\r
-    <Compile Include="System.Security.Cryptography\RIPEMD160.cs" />\r
-    <Compile Include="System.Security.Cryptography\RIPEMD160Managed.cs" />\r
     <Compile Include="System.Security.Cryptography\RNGCryptoServiceProvider.cs" />\r
-    <Compile Include="System.Security.Cryptography\RSA.cs" />\r
     <Compile Include="System.Security.Cryptography\RSACryptoServiceProvider.cs" />\r
-    <Compile Include="System.Security.Cryptography\RSAOAEPKeyExchangeDeformatter.cs" />\r
-    <Compile Include="System.Security.Cryptography\RSAOAEPKeyExchangeFormatter.cs" />\r
-    <Compile Include="System.Security.Cryptography\RSAParameters.cs" />\r
-    <Compile Include="System.Security.Cryptography\RSAPKCS1KeyExchangeDeformatter.cs" />\r
-    <Compile Include="System.Security.Cryptography\RSAPKCS1KeyExchangeFormatter.cs" />\r
     <Compile Include="System.Security.Cryptography\RSAPKCS1SignatureDeformatter.cs" />\r
     <Compile Include="System.Security.Cryptography\RSAPKCS1SignatureFormatter.cs" />\r
-    <Compile Include="System.Security.Cryptography\SHA1.cs" />\r
     <Compile Include="System.Security.Cryptography\SHA1CryptoServiceProvider.cs" />\r
-    <Compile Include="System.Security.Cryptography\SHA1Managed.cs" />\r
-    <Compile Include="System.Security.Cryptography\SHA256.cs" />\r
-    <Compile Include="System.Security.Cryptography\SHA256Managed.cs" />\r
-    <Compile Include="System.Security.Cryptography\SHA384.cs" />\r
-    <Compile Include="System.Security.Cryptography\SHA384Managed.cs" />\r
-    <Compile Include="System.Security.Cryptography\SHA512.cs" />\r
-    <Compile Include="System.Security.Cryptography\SHA512Managed.cs" />\r
-    <Compile Include="System.Security.Cryptography\SHAConstants.cs" />\r
-    <Compile Include="System.Security.Cryptography\SignatureDescription.cs" />\r
-    <Compile Include="System.Security.Cryptography\SymmetricAlgorithm.cs" />\r
-    <Compile Include="System.Security.Cryptography\ToBase64Transform.cs" />\r
-    <Compile Include="System.Security.Cryptography\TripleDES.cs" />\r
     <Compile Include="System.Security.Cryptography\TripleDESCryptoServiceProvider.cs" />\r
     <Compile Include="System.Security.Permissions\CodeAccessSecurityAttribute.cs" />\r
     <Compile Include="System.Security.Permissions\EnvironmentPermission.cs" />\r
     <Compile Include="System.Security.Policy\UrlMembershipCondition.cs" />\r
     <Compile Include="System.Security.Policy\Zone.cs" />\r
     <Compile Include="System.Security.Policy\ZoneMembershipCondition.cs" />\r
-    <Compile Include="System.Security.Principal\GenericIdentity.cs" />\r
     <Compile Include="System.Security.Principal\GenericPrincipal.cs" />\r
     <Compile Include="System.Security.Principal\IdentityNotMappedException.cs" />\r
     <Compile Include="System.Security.Principal\IdentityReference.cs" />\r
     <Compile Include="System.Security.Principal\WindowsIdentity.cs" />\r
     <Compile Include="System.Security.Principal\WindowsImpersonationContext.cs" />\r
     <Compile Include="System.Security.Principal\WindowsPrincipal.cs" />\r
-    <Compile Include="System.Security\AllowPartiallyTrustedCallersAttribute.cs" />\r
     <Compile Include="System.Security\CodeAccessPermission.cs" />\r
     <Compile Include="System.Security\HostProtectionException.cs" />\r
     <Compile Include="System.Security\HostSecurityManager.cs" />\r
     <Compile Include="System.Security\PermissionSet.cs" />\r
     <Compile Include="System.Security\PolicyLevelType.cs" />\r
     <Compile Include="System.Security\SecureString.cs" />\r
-    <Compile Include="System.Security\SecurityContext.cs" />\r
-    <Compile Include="System.Security\SecurityContextSource.cs" />\r
-    <Compile Include="System.Security\SecurityCriticalAttribute.cs" />\r
-    <Compile Include="System.Security\SecurityCriticalScope.cs" />\r
     <Compile Include="System.Security\SecurityElement.cs" />\r
     <Compile Include="System.Security\SecurityException.cs" />\r
     <Compile Include="System.Security\SecurityFrame.cs" />\r
     <Compile Include="System.Security\SecurityManager.cs" />\r
     <Compile Include="System.Security\SecurityManager_mobile.cs" />\r
-    <Compile Include="System.Security\SecurityRulesAttribute.cs" />\r
-    <Compile Include="System.Security\SecurityRuleSet.cs" />\r
-    <Compile Include="System.Security\SecuritySafeCriticalAttribute.cs" />\r
     <Compile Include="System.Security\SecurityState.cs" />\r
-    <Compile Include="System.Security\SecurityTransparentAttribute.cs" />\r
-    <Compile Include="System.Security\SecurityTreatAsSafeAttribute.cs" />\r
     <Compile Include="System.Security\SecurityZone.cs" />\r
-    <Compile Include="System.Security\SuppressUnmanagedCodeSecurityAttribute.cs" />\r
-    <Compile Include="System.Security\UnverifiableCodeAttribute.cs" />\r
     <Compile Include="System.Security\VerificationException.cs" />\r
     <Compile Include="System.Security\XmlSyntaxException.cs" />\r
     <Compile Include="System.Text\EncodingHelper.cs" />\r
     <Compile Include="System.Text\Latin1Encoding.cs" />\r
     <Compile Include="System.Text\NormalizationForm.cs" />\r
-    <Compile Include="System.Text\StringBuilder.cs" />\r
     <Compile Include="System.Threading.Tasks\DecoupledTask.cs" />\r
-    <Compile Include="System.Threading.Tasks\TaskConstants.cs" />\r
-    <Compile Include="System.Threading.Tasks\TaskConstants_T.cs" />\r
-    <Compile Include="System.Threading\AsyncFlowControl.cs" />\r
     <Compile Include="System.Threading\CompressedStack.cs" />\r
-    <Compile Include="System.Threading\ContextCallback.cs" />\r
     <Compile Include="System.Threading\EventWaitHandle.cs" />\r
-    <Compile Include="System.Threading\ExecutionContext.cs" />\r
     <Compile Include="System.Threading\HostExecutionContext.cs" />\r
     <Compile Include="System.Threading\HostExecutionContextManager.cs" />\r
     <Compile Include="System.Threading\Interlocked.cs" />\r
-    <Compile Include="System.Threading\IOCompletionCallback.cs" />\r
     <Compile Include="System.Threading\LockCookie.cs" />\r
     <Compile Include="System.Threading\LockQueue.cs" />\r
-    <Compile Include="System.Threading\LockRecursionException.cs" />\r
     <Compile Include="System.Threading\Monitor.cs" />\r
     <Compile Include="System.Threading\Mutex.cs" />\r
-    <Compile Include="System.Threading\NamedDataSlot.cs" />\r
     <Compile Include="System.Threading\NativeEventCalls.cs" />\r
     <Compile Include="System.Threading\NativeOverlapped.cs" />\r
     <Compile Include="System.Threading\Overlapped.cs" />\r
     <Compile Include="System.Threading\ReaderWriterLock.cs" />\r
     <Compile Include="System.Threading\RegisteredWaitHandle.cs" />\r
-    <Compile Include="System.Threading\SynchronizationContext.cs" />\r
     <Compile Include="System.Threading\Thread.cs" />\r
-    <Compile Include="System.Threading\ThreadAbortException.cs" />\r
-    <Compile Include="System.Threading\ThreadInterruptedException.cs" />\r
-    <Compile Include="System.Threading\ThreadLocal.cs" />\r
     <Compile Include="System.Threading\ThreadPool.cs" />\r
     <Compile Include="System.Threading\Timer.cs" />\r
     <Compile Include="System.Threading\TimerCallback.cs" />\r
     <Compile Include="System.Threading\Volatile.cs" />\r
-    <Compile Include="System.Threading\WaitCallback.cs" />\r
     <Compile Include="System.Threading\WaitHandle.cs" />\r
-    <Compile Include="System.Threading\WaitOrTimerCallback.cs" />\r
     <Compile Include="System\__ComObject.cs" />\r
-    <Compile Include="System\_AppDomain.cs" />\r
-    <Compile Include="System\AccessViolationException.cs" />\r
-    <Compile Include="System\Action.cs" />\r
     <Compile Include="System\ActivationContext.cs" />\r
     <Compile Include="System\AndroidPlatform.cs" />\r
     <Compile Include="System\AppDomain.cs" />\r
     <Compile Include="System\AppDomainInitializer.cs" />\r
     <Compile Include="System\AppDomainManager.cs" />\r
     <Compile Include="System\AppDomainSetup.cs" />\r
-    <Compile Include="System\AppDomainUnloadedException.cs" />\r
-    <Compile Include="System\ApplicationException.cs" />\r
-    <Compile Include="System\ApplicationId.cs" />\r
     <Compile Include="System\ApplicationIdentity.cs" />\r
     <Compile Include="System\ArgIterator.cs" />\r
-    <Compile Include="System\ArgumentException.cs" />\r
-    <Compile Include="System\ArgumentNullException.cs" />\r
-    <Compile Include="System\ArgumentOutOfRangeException.cs" />\r
-    <Compile Include="System\ArithmeticException.cs" />\r
     <Compile Include="System\Array.cs" />\r
-    <Compile Include="System\ArrayTypeMismatchException.cs" />\r
     <Compile Include="System\AssemblyLoadEventArgs.cs" />\r
     <Compile Include="System\AssemblyLoadEventHandler.cs" />\r
-    <Compile Include="System\AsyncCallback.cs" />\r
-    <Compile Include="System\AttributeTargets.cs" />\r
-    <Compile Include="System\BadImageFormatException.cs" />\r
-    <Compile Include="System\Buffer.cs" />\r
-    <Compile Include="System\CannotUnloadAppDomainException.cs" />\r
-    <Compile Include="System\CharEnumerator.cs" />\r
-    <Compile Include="System\CLSCompliantAttribute.cs" />\r
-    <Compile Include="System\Comparison.cs" />\r
     <Compile Include="System\Console.cs" />\r
     <Compile Include="System\Console.iOS.cs" />\r
-    <Compile Include="System\ConsoleCancelEventArgs.cs" />\r
-    <Compile Include="System\ConsoleCancelEventHandler.cs" />\r
-    <Compile Include="System\ConsoleColor.cs" />\r
     <Compile Include="System\ConsoleDriver.cs" />\r
-    <Compile Include="System\ConsoleKey.cs" />\r
-    <Compile Include="System\ConsoleKeyInfo.cs" />\r
-    <Compile Include="System\ConsoleModifiers.cs" />\r
-    <Compile Include="System\ConsoleSpecialKey.cs" />\r
-    <Compile Include="System\ContextBoundObject.cs" />\r
-    <Compile Include="System\ContextMarshalException.cs" />\r
-    <Compile Include="System\ContextStaticAttribute.cs" />\r
     <Compile Include="System\ControlCharacters.cs" />\r
-    <Compile Include="System\Converter.cs" />\r
     <Compile Include="System\CrossAppDomainDelegate.cs" />\r
     <Compile Include="System\CStreamReader.cs" />\r
     <Compile Include="System\CStreamWriter.cs" />\r
-    <Compile Include="System\DataMisalignedException.cs" />\r
     <Compile Include="System\Delegate.cs" />\r
     <Compile Include="System\DelegateSerializationHolder.cs" />\r
-    <Compile Include="System\DivideByZeroException.cs" />\r
-    <Compile Include="System\DllNotFoundException.cs" />\r
     <Compile Include="System\DomainManagerInitializationFlags.cs" />\r
-    <Compile Include="System\Double.cs" />\r
-    <Compile Include="System\DuplicateWaitObjectException.cs" />\r
     <Compile Include="System\EmptyArray.cs" />\r
-    <Compile Include="System\EntryPointNotFoundException.cs" />\r
     <Compile Include="System\Environment.cs" />\r
     <Compile Include="System\EnvironmentVariableTarget.cs" />\r
-    <Compile Include="System\EventArgs.cs" />\r
-    <Compile Include="System\EventHandler.cs" />\r
     <Compile Include="System\Exception.cs" />\r
-    <Compile Include="System\ExecutionEngineException.cs" />\r
-    <Compile Include="System\FieldAccessException.cs" />\r
-    <Compile Include="System\FlagsAttribute.cs" />\r
-    <Compile Include="System\FormatException.cs" />\r
-    <Compile Include="System\Funcs.cs" />\r
     <Compile Include="System\GC.cs" />\r
     <Compile Include="System\GCCollectionMode.cs" />\r
     <Compile Include="System\GCNotificationStatus.cs" />\r
     <Compile Include="System\Guid.cs" />\r
     <Compile Include="System\Guid.MonoTouch.cs" />\r
-    <Compile Include="System\IAppDomainSetup.cs" />\r
-    <Compile Include="System\IAsyncResult.cs" />\r
-    <Compile Include="System\ICloneable.cs" />\r
-    <Compile Include="System\IComparable.cs" />\r
     <Compile Include="System\IConsoleDriver.cs" />\r
-    <Compile Include="System\IConvertible.cs" />\r
-    <Compile Include="System\ICustomFormatter.cs" />\r
-    <Compile Include="System\IDisposable.cs" />\r
-    <Compile Include="System\IEquatable.cs" />\r
-    <Compile Include="System\IFormatProvider.cs" />\r
-    <Compile Include="System\IFormattable.cs" />\r
-    <Compile Include="System\IndexOutOfRangeException.cs" />\r
-    <Compile Include="System\InsufficientExecutionStackException.cs" />\r
-    <Compile Include="System\InsufficientMemoryException.cs" />\r
     <Compile Include="System\IntPtr.cs" />\r
-    <Compile Include="System\InvalidCastException.cs" />\r
-    <Compile Include="System\InvalidOperationException.cs" />\r
-    <Compile Include="System\InvalidProgramException.cs" />\r
-    <Compile Include="System\InvalidTimeZoneException.cs" />\r
-    <Compile Include="System\IObservable.cs" />\r
-    <Compile Include="System\IObserver.cs" />\r
-    <Compile Include="System\IProgress.cs" />\r
-    <Compile Include="System\IServiceProvider.cs" />\r
     <Compile Include="System\KnownTerminals.cs" />\r
-    <Compile Include="System\LoaderOptimization.cs" />\r
-    <Compile Include="System\LoaderOptimizationAttribute.cs" />\r
-    <Compile Include="System\LocalDataStoreSlot.cs" />\r
     <Compile Include="System\MarshalByRefObject.cs" />\r
     <Compile Include="System\Math.cs" />\r
     <Compile Include="System\ModuleHandle.cs" />\r
     <Compile Include="System\MonoListItem.cs" />\r
     <Compile Include="System\MonoTouchAOTHelper.cs" />\r
     <Compile Include="System\MonoType.cs" />\r
-    <Compile Include="System\MTAThreadAttribute.cs" />\r
     <Compile Include="System\MulticastDelegate.cs" />\r
-    <Compile Include="System\MulticastNotSupportedException.cs" />\r
-    <Compile Include="System\NonSerializedAttribute.cs" />\r
-    <Compile Include="System\NotFiniteNumberException.cs" />\r
-    <Compile Include="System\NotImplementedException.cs" />\r
-    <Compile Include="System\NotSupportedException.cs" />\r
     <Compile Include="System\Nullable.cs" />\r
     <Compile Include="System\NullConsoleDriver.cs" />\r
-    <Compile Include="System\NullReferenceException.cs" />\r
     <Compile Include="System\NumberFormatter.cs" />\r
     <Compile Include="System\Object.cs" />\r
-    <Compile Include="System\ObjectDisposedException.cs" />\r
-    <Compile Include="System\ObsoleteAttribute.cs" />\r
     <Compile Include="System\OperatingSystem.cs" />\r
-    <Compile Include="System\OperationCanceledException.cs" />\r
-    <Compile Include="System\OutOfMemoryException.cs" />\r
-    <Compile Include="System\OverflowException.cs" />\r
-    <Compile Include="System\ParamArrayAttribute.cs" />\r
     <Compile Include="System\PlatformID.cs" />\r
-    <Compile Include="System\PlatformNotSupportedException.cs" />\r
-    <Compile Include="System\Predicate.cs" />\r
-    <Compile Include="System\RankException.cs" />\r
     <Compile Include="System\ResolveEventArgs.cs" />\r
     <Compile Include="System\ResolveEventHandler.cs" />\r
     <Compile Include="System\RuntimeArgumentHandle.cs" />\r
     <Compile Include="System\RuntimeFieldHandle.cs" />\r
     <Compile Include="System\RuntimeMethodHandle.cs" />\r
     <Compile Include="System\RuntimeTypeHandle.cs" />\r
-    <Compile Include="System\SerializableAttribute.cs" />\r
-    <Compile Include="System\Single.cs" />\r
-    <Compile Include="System\StackOverflowException.cs" />\r
-    <Compile Include="System\STAThreadAttribute.cs" />\r
-    <Compile Include="System\String.cs" />\r
     <Compile Include="System\StringComparison.cs" />\r
-    <Compile Include="System\StringSplitOptions.cs" />\r
-    <Compile Include="System\SystemException.cs" />\r
     <Compile Include="System\TermInfoBooleans.cs" />\r
     <Compile Include="System\TermInfoDriver.cs" />\r
     <Compile Include="System\TermInfoNumbers.cs" />\r
     <Compile Include="System\TermInfoReader.cs" />\r
     <Compile Include="System\TermInfoStrings.cs" />\r
-    <Compile Include="System\ThreadStaticAttribute.cs" />\r
-    <Compile Include="System\TimeoutException.cs" />\r
     <Compile Include="System\TimeZone.cs" />\r
-    <Compile Include="System\TimeZoneInfo.AdjustmentRule.cs" />\r
     <Compile Include="System\TimeZoneInfo.Android.cs" />\r
     <Compile Include="System\TimeZoneInfo.cs" />\r
     <Compile Include="System\TimeZoneInfo.MonoTouch.cs" />\r
     <Compile Include="System\TimeZoneInfo.Serialization.cs" />\r
-    <Compile Include="System\TimeZoneInfo.TransitionTime.cs" />\r
-    <Compile Include="System\TimeZoneNotFoundException.cs" />\r
-    <Compile Include="System\TypeAccessException.cs" />\r
     <Compile Include="System\TypeCode.cs" />\r
-    <Compile Include="System\TypedReference.cs" />\r
-    <Compile Include="System\TypeInitializationException.cs" />\r
-    <Compile Include="System\TypeLoadException.cs" />\r
     <Compile Include="System\TypeSpec.cs" />\r
-    <Compile Include="System\TypeUnloadedException.cs" />\r
     <Compile Include="System\UIntPtr.cs" />\r
-    <Compile Include="System\UnauthorizedAccessException.cs" />\r
-    <Compile Include="System\UnhandledExceptionEventArgs.cs" />\r
-    <Compile Include="System\UnhandledExceptionEventHandler.cs" />\r
     <Compile Include="System\ValueType.cs" />\r
     <Compile Include="System\Variant.cs" />\r
     <Compile Include="System\Void.cs" />\r
index 5c70282854bef6cfccca5dd868a442536f15cdd2..1b02a58884552a064a351aa33d386fc1fc65b195 100644 (file)
@@ -214,7 +214,6 @@ System.IO/SearchPattern.cs
 System.IO/SeekOrigin.cs
 System.IO/UnexceptionalStreamReader.cs
 System.IO/UnexceptionalStreamWriter.cs
-System.IO/UnmanagedMemoryAccessor.cs
 System.IO.IsolatedStorage/INormalizeForIsolatedStorage.cs
 System.IO.IsolatedStorage/IsolatedStorage.cs
 System.IO.IsolatedStorage/IsolatedStorageException.cs
@@ -541,7 +540,6 @@ System.Runtime.Remoting.Lifetime/LeaseState.cs
 System.Runtime.Remoting.Lifetime/LifetimeServices.cs
 System.Runtime.Remoting.Messaging/ArgInfo.cs
 System.Runtime.Remoting.Messaging/AsyncResult.cs
-System.Runtime.Remoting.Messaging/CallContext.cs
 System.Runtime.Remoting.Messaging/ClientContextTerminatorSink.cs
 System.Runtime.Remoting.Messaging/ConstructionCall.cs
 System.Runtime.Remoting.Messaging/ConstructionCallDictionary.cs
@@ -560,7 +558,6 @@ System.Runtime.Remoting.Messaging/IMethodReturnMessage.cs
 System.Runtime.Remoting.Messaging/IRemotingFormatter.cs
 System.Runtime.Remoting.Messaging/InternalMessageWrapper.cs
 System.Runtime.Remoting.Messaging/ISerializationRootObject.cs
-System.Runtime.Remoting.Messaging/LogicalCallContext.cs
 System.Runtime.Remoting.Messaging/MessageSurrogateFilter.cs
 System.Runtime.Remoting.Messaging/MethodCall.cs
 System.Runtime.Remoting.Messaging/MethodCallMessageWrapper.cs
@@ -639,8 +636,6 @@ System.Security/PermissionBuilder.cs
 System.Security/PermissionSet.cs
 System.Security/PolicyLevelType.cs
 System.Security/SecureString.cs
-System.Security/SecurityContext.cs
-System.Security/SecurityContextSource.cs
 System.Security/SecurityElement.cs
 System.Security/SecurityFrame.cs
 System.Security/SecurityException.cs
@@ -864,11 +859,8 @@ System.Security.Principal/WindowsPrincipal.cs
 System.Text/EncodingHelper.cs
 System.Text/NormalizationForm.cs
 System.Text/Latin1Encoding.cs
-System.Threading/AsyncFlowControl.cs
 System.Threading/CompressedStack.cs
-System.Threading/ContextCallback.cs
 System.Threading/EventWaitHandle.cs
-System.Threading/ExecutionContext.cs
 System.Threading/HostExecutionContext.cs
 System.Threading/HostExecutionContextManager.cs
 System.Threading/Interlocked.cs
@@ -881,7 +873,6 @@ System.Threading/NativeOverlapped.cs
 System.Threading/Overlapped.cs
 System.Threading/ReaderWriterLock.cs
 System.Threading/RegisteredWaitHandle.cs
-System.Threading/SynchronizationContext.cs
 System.Threading/Thread.cs
 System.Threading/ThreadPool.cs
 System.Threading/Timer.cs
@@ -891,7 +882,6 @@ System.Threading/WaitHandle.cs
 
 System.Threading.Tasks/DecoupledTask.cs
 ../Mono.Parallel/Mono.Threading/AtomicBoolean.cs
-System.Threading/ThreadLocal.cs
 
 ReferenceSources/__ConsoleStream.cs
 ReferenceSources/Array.cs
@@ -901,7 +891,6 @@ ReferenceSources/CompatibilitySwitches.cs
 ReferenceSources/CultureData.cs
 ReferenceSources/DefaultBinder.cs
 ReferenceSources/Environment.cs
-ReferenceSources/ExecutionContext.cs
 ReferenceSources/HashHelpers.cs
 ReferenceSources/ParseNumbers.cs
 ReferenceSources/AppDomain.cs
@@ -920,6 +909,7 @@ ReferenceSources/Buffer.cs
 ReferenceSources/TextInfo.cs
 ReferenceSources/win32native.cs
 ReferenceSources/SharedStatics.cs
+ReferenceSources/SecurityContext.cs
 
 ../../../external/referencesource/mscorlib/system/__filters.cs
 ../../../external/referencesource/mscorlib/system/__hresults.cs
@@ -1006,6 +996,7 @@ ReferenceSources/SharedStatics.cs
 ../../../external/referencesource/mscorlib/system/int64.cs
 ../../../external/referencesource/mscorlib/system/iobservable.cs
 ../../../external/referencesource/mscorlib/system/iobserver.cs
+../../../external/referencesource/mscorlib/system/io/unmanagedmemoryaccessor.cs
 ../../../external/referencesource/mscorlib/system/iprogress.cs
 ../../../external/referencesource/mscorlib/system/iserviceobjectprovider.cs
 ../../../external/referencesource/mscorlib/system/invalidtimezoneexception.cs
@@ -1277,6 +1268,7 @@ ReferenceSources/SharedStatics.cs
 ../../../external/referencesource/mscorlib/system/runtime/exceptionservices/exceptionservicescommon.cs
 
 ../../../external/referencesource/mscorlib/system/runtime/interopservices/attributes.cs
+../../../external/referencesource/mscorlib/system/runtime/interopservices/safehandle.cs
 ../../../external/referencesource/mscorlib/system/runtime/interopservices/ucomienumconnections.cs
 
 ../../../external/referencesource/mscorlib/system/runtime/interopservices/ComTypes/ibindctx.cs
@@ -1366,6 +1358,7 @@ ReferenceSources/SharedStatics.cs
 ../../../external/referencesource/mscorlib/system/runtime/compilerservices/YieldAwaitable.cs
 
 ../../../external/referencesource/mscorlib/system/security/attributes.cs
+../../../external/referencesource/mscorlib/system/security/securitycontext.cs
 ../../../external/referencesource/mscorlib/system/security/securitydocument.cs
 
 ../../../external/referencesource/mscorlib/system/security/claims/Claim.cs
@@ -1468,6 +1461,8 @@ ReferenceSources/SharedStatics.cs
 ../../../external/referencesource/mscorlib/system/text/stringbuilder.cs
 ../../../external/referencesource/mscorlib/system/text/stringbuildercache.cs
 
+../../../external/referencesource/mscorlib/system/runtime/remoting/callcontext.cs
+
 ../../../external/referencesource/mscorlib/system/runtime/serialization/deserializationeventhandler.cs
 ../../../external/referencesource/mscorlib/system/runtime/serialization/formatter.cs
 ../../../external/referencesource/mscorlib/system/runtime/serialization/formatterconverter.cs
@@ -1529,6 +1524,7 @@ ReferenceSources/SharedStatics.cs
 ../../../external/referencesource/mscorlib/system/threading/CancellationTokenSource.cs
 ../../../external/referencesource/mscorlib/system/threading/CountdownEvent.cs
 ../../../external/referencesource/mscorlib/system/threading/eventresetmode.cs
+../../../external/referencesource/mscorlib/system/threading/executioncontext.cs
 ../../../external/referencesource/mscorlib/system/threading/LazyInitializer.cs
 ../../../external/referencesource/mscorlib/system/threading/lockrecursionexception.cs
 ../../../external/referencesource/mscorlib/system/threading/manualresetevent.cs
@@ -1539,10 +1535,12 @@ ReferenceSources/SharedStatics.cs
 ../../../external/referencesource/mscorlib/system/threading/sendorpostcallback.cs
 ../../../external/referencesource/mscorlib/system/threading/SpinLock.cs
 ../../../external/referencesource/mscorlib/system/threading/SpinWait.cs
+../../../external/referencesource/mscorlib/system/threading/synchronizationcontext.cs
 ../../../external/referencesource/mscorlib/system/threading/synchronizationlockexception.cs
 ../../../external/referencesource/mscorlib/system/threading/thread.cs
 ../../../external/referencesource/mscorlib/system/threading/threadabortexception.cs
 ../../../external/referencesource/mscorlib/system/threading/threadinterruptedexception.cs
+../../../external/referencesource/mscorlib/system/threading/ThreadLocal.cs
 ../../../external/referencesource/mscorlib/system/threading/threadpriority.cs
 ../../../external/referencesource/mscorlib/system/threading/threadstart.cs
 ../../../external/referencesource/mscorlib/system/threading/threadstartexception.cs
diff --git a/mcs/class/corlib/monotouch_runtime_corlib.dll.sources b/mcs/class/corlib/monotouch_runtime_corlib.dll.sources
new file mode 100644 (file)
index 0000000..9e173da
--- /dev/null
@@ -0,0 +1 @@
+#include corlib.dll.sources
\ No newline at end of file
index a089b81222dbe6bee0fc3f37fafe6c16f0ef4b0f..3c9ec62326ebec9c3bac530b44415aacaa4a0e2c 100644 (file)
@@ -275,6 +275,12 @@ namespace System.Linq.Expressions.Compiler {
                     if (rightType != typeof(int)) {
                         throw ContractUtils.Unreachable;
                     }
+                    // Note: If this code is made to handle unsigned
+                    // rightType types, emit the following when rightType:
+                    // is unsigned
+                    //_ilg.EmitInt(0x3f);
+                    _ilg.EmitInt(0x1f);
+                    _ilg.Emit(OpCodes.And);
                     _ilg.Emit(OpCodes.Shl);
                     break;
                 case ExpressionType.RightShift:
diff --git a/mcs/errors/cs9030-2.cs b/mcs/errors/cs9030-2.cs
new file mode 100644 (file)
index 0000000..c7d6fcc
--- /dev/null
@@ -0,0 +1,17 @@
+// CS9030: The left-hand side of an assignment cannot contain a null propagating operator
+// Line: 15
+
+public class Test1
+{
+       public class Test2
+       {
+               public System.EventHandler<System.EventArgs> E;
+       }
+
+       public Test2 test2 = new Test2 ();
+
+       static void Main ()
+       {
+               new Test1 ()?.test2.E += null;
+       }
+}
index 964a2ff6b630a51f6e9d2a7ec0f04f7758d3377f..f6b17700acaa9307169843bbf1978424899a935c 100644 (file)
@@ -20,18 +20,17 @@ namespace Mono.ILASM {
         public class CustomAttr {
 
                 private BaseMethodRef method_ref;
-                private byte[] data;
-
-                public CustomAttr (BaseMethodRef method_ref, byte[] data)
+                PEAPI.Constant constant;
+                public CustomAttr (BaseMethodRef method_ref, PEAPI.Constant constant)
                 {
-                        this.method_ref = method_ref;
-                        this.data = data;
+                    this.method_ref = method_ref;
+                    this.constant = constant;
                 }
 
                 public void AddTo (CodeGen code_gen, PEAPI.MetaDataElement elem)
                 {
                         method_ref.Resolve (code_gen);
-                        code_gen.PEFile.AddCustomAttribute (method_ref.PeapiMethod, data, elem);
+                        code_gen.PEFile.AddCustomAttribute (method_ref.PeapiMethod, constant, elem);
                 }
 
                 public bool IsSuppressUnmanaged (CodeGen codegen)
index 6506aa2eac3b990e56ea9c8672971d7363490d0d..24bd9391579938637d8c20e6f9c14205f7cbc577 100644 (file)
@@ -104,7 +104,7 @@ namespace Mono.ILASM {
                 }
 
                 public void MakeCustomModified (CodeGen code_gen, PEAPI.CustomModifier modifier,
-                                BaseClassRef klass)
+                                BaseTypeRef klass)
                 {
                         use_type_spec = true;
                         conversion_list.Add (ConversionMethod.MakeCustomModified);
@@ -143,7 +143,7 @@ namespace Mono.ILASM {
                                         break;
                                 case ConversionMethod.MakeCustomModified:
                                         peapi_type.MakeCustomModified (code_gen, (PEAPI.CustomModifier) conversion_list[++i],
-                                                (BaseClassRef) conversion_list[++i]);
+                                                (BaseTypeRef) conversion_list[++i]);
                                         break;
                                 }
 
index 704ba2df08699924cbae80fbe0e3d0a1a93ed0fd..21fbd8ee575d780b483bf38d34a0bc318ab43d99 100644 (file)
@@ -196,7 +196,7 @@ namespace Mono.ILASM {
                 }
 
                 public void MakeCustomModified (CodeGen code_gen, PEAPI.CustomModifier modifier,
-                                BaseClassRef klass)
+                                BaseTypeRef klass)
                 {
                        PEAPI.Type type;
 
@@ -205,14 +205,25 @@ namespace Mono.ILASM {
                         Pair p = new Pair (peapi_type, modifier.ToString ());
                         type = type_table [p] as PEAPI.Type;
                         if (type == null) {
-                                klass.Resolve (code_gen);
-                                type = new PEAPI.CustomModifiedType (peapi_type,
-                                        modifier, klass.PeapiClass);
+                                type = GetType (code_gen, modifier, klass);
                                 type_table [p] = type;
                         }
                         peapi_type = type;
                 }
 
+                PEAPI.Type GetType (CodeGen code_gen, PEAPI.CustomModifier modifier, BaseTypeRef klass)
+                {
+                        klass.Resolve (code_gen);
+                        var bcr = klass as BaseClassRef;
+                        if (bcr != null)
+                                return new PEAPI.CustomModifiedType (peapi_type, modifier, bcr.PeapiClass);
+
+                        var pt = klass as PrimitiveTypeRef;
+                                return new PEAPI.CustomModifiedType (peapi_type, modifier, code_gen.PEFile.AddPrimitiveType ((PEAPI.PrimitiveType) pt.PeapiType));
+
+                        throw new NotSupportedException (klass.GetType ().ToString ());
+                }
+
                 public void MakePinned ()
                 {
                         use_type_spec = true;
index 2a6561756ff339d7201714af7cf18c9985fb6dee..4cd03495ef3ac0cb64037589e9e15f420d11fc92 100644 (file)
@@ -981,18 +981,18 @@ type                      : generic_class_ref
                                 base_type.MakePinned ();\r
                                 $$ = base_type;\r
                           }\r
-                       | type K_MODREQ OPEN_PARENS class_ref CLOSE_PARENS\r
+                       | type K_MODREQ OPEN_PARENS custom_modifier_type CLOSE_PARENS\r
                           {\r
                                 BaseTypeRef base_type = GetTypeRef ((BaseTypeRef) $1);\r
-                                BaseClassRef class_ref = (BaseClassRef) $4;\r
+                                BaseTypeRef class_ref = (BaseTypeRef) $4;\r
                                 base_type.MakeCustomModified (codegen,\r
                                         CustomModifier.modreq, class_ref);\r
                                 $$ = base_type;\r
                           }\r
-                       | type K_MODOPT OPEN_PARENS class_ref CLOSE_PARENS\r
+                       | type K_MODOPT OPEN_PARENS custom_modifier_type CLOSE_PARENS\r
                           {\r
                                 BaseTypeRef base_type = GetTypeRef ((BaseTypeRef) $1);\r
-                                BaseClassRef class_ref = (BaseClassRef) $4;\r
+                                BaseTypeRef class_ref = (BaseTypeRef) $4;\r
                                 base_type.MakeCustomModified (codegen,\r
                                         CustomModifier.modopt, class_ref);\r
                                 $$ = base_type;\r
@@ -1485,6 +1485,11 @@ variant_type             : /* EMPTY */
                        | K_CLSID\r
                        ;\r
 \r
+custom_modifier_type\r
+                       : primitive_type\r
+                       | class_ref\r
+                       ;\r
+\r
 field_decl             : D_FIELD repeat_opt field_attr type id at_opt init_opt\r
                           {\r
                                 FieldDef field_def = new FieldDef((FieldAttr) $3, \r
@@ -1652,11 +1657,14 @@ field_init_primitive    : K_FLOAT32 OPEN_PARENS float64 CLOSE_PARENS
                           }\r
                        ;\r
 \r
-field_init             : field_init_primitive\r
+field_init_full : field_init_primitive\r
                        | K_BYTEARRAY bytes_list\r
                           {\r
                                 $$ = new ByteArrConst ((byte[]) $2);\r
                           }\r
+                       ;\r
+\r
+field_init : field_init_full\r
                        | comp_qstring\r
                           {\r
                                 // ******** THIS IS NOT IN THE DOCUMENTATION ******** //\r
@@ -1668,6 +1676,13 @@ field_init               : field_init_primitive
                           }\r
                        ;\r
 \r
+member_init : field_init_full\r
+                       | K_STRING OPEN_PARENS SQSTRING CLOSE_PARENS\r
+                         {\r
+                               $$ = new StringConst ((string) $3);\r
+                         }\r
+                       ;\r
+\r
 data_decl              : data_head data_body\r
                           {\r
                                 DataDef datadef = (DataDef) $1;\r
@@ -2781,13 +2796,15 @@ customattr_decl         : D_CUSTOM custom_type
                        | D_CUSTOM custom_type ASSIGN comp_qstring\r
                        | D_CUSTOM custom_type ASSIGN bytes_list\r
                           {\r
-                                $$ = new CustomAttr ((BaseMethodRef) $2,\r
-                                        (byte[]) $4);\r
+                                $$ = new CustomAttr ((BaseMethodRef) $2, new ByteArrConst ((byte[]) $4));\r
                           }\r
+            | D_CUSTOM custom_type ASSIGN OPEN_BRACE member_init CLOSE_BRACE\r
+              {\r
+               $$ = new CustomAttr ((BaseMethodRef) $2, null);\r
+              }\r
                        | D_CUSTOM OPEN_PARENS owner_type CLOSE_PARENS custom_type\r
                        | D_CUSTOM OPEN_PARENS owner_type CLOSE_PARENS custom_type ASSIGN comp_qstring\r
-                       | D_CUSTOM OPEN_PARENS owner_type CLOSE_PARENS custom_type ASSIGN\r
-                         bytes_list\r
+                       | D_CUSTOM OPEN_PARENS owner_type CLOSE_PARENS custom_type ASSIGN bytes_list\r
                        ;\r
                        \r
 custom_type            : call_conv type type_spec DOUBLE_COLON method_name OPEN_PARENS type_list CLOSE_PARENS\r
@@ -2892,18 +2909,10 @@ permission_member       : prop_or_field primitive_type perm_mbr_nameval_pair
                          }\r
                        ;\r
 \r
-perm_mbr_nameval_pair  : SQSTRING ASSIGN field_init_primitive\r
+perm_mbr_nameval_pair  : SQSTRING ASSIGN member_init\r
                          {\r
                                $$ = new NameValuePair ((string) $1, (PEAPI.Constant) $3);\r
                          }\r
-                       | SQSTRING ASSIGN K_BYTEARRAY bytes_list\r
-                          {\r
-                                $$ = new NameValuePair ((string) $1, new ByteArrConst ((byte[]) $4));\r
-                          }\r
-                       | SQSTRING ASSIGN K_STRING OPEN_PARENS SQSTRING CLOSE_PARENS\r
-                         {\r
-                               $$ = new NameValuePair ((string) $1, new StringConst ((string) $5));\r
-                         }\r
                        ;\r
 \r
 prop_or_field          : K_PROPERTY\r
diff --git a/mcs/ilasm/tests/custom-attrs-01.il b/mcs/ilasm/tests/custom-attrs-01.il
new file mode 100644 (file)
index 0000000..74ef429
--- /dev/null
@@ -0,0 +1,27 @@
+.assembly extern mscorlib
+{
+}
+
+.assembly 'custom-attrs-01'
+{
+}
+
+.class interface public abstract auto ansi I1
+{
+  .custom instance void [mscorlib]System.Reflection.DefaultMemberAttribute::.ctor(string)
+           = {bytearray(55 05)}
+  .method public hidebysig newslot specialname abstract virtual 
+          instance int32  get_A(int32 x) cil managed
+  {
+  }
+}
+
+.class interface public abstract auto ansi I2
+{
+  .custom instance void [mscorlib]System.Reflection.DefaultMemberAttribute::.ctor(string)
+           = {string('B')}
+  .method public hidebysig newslot specialname abstract virtual 
+          instance int32  get_B(int32 x) cil managed
+  {
+  }
+}
diff --git a/mcs/ilasm/tests/test-custom-mod-2.il b/mcs/ilasm/tests/test-custom-mod-2.il
new file mode 100644 (file)
index 0000000..06f6bec
--- /dev/null
@@ -0,0 +1,46 @@
+.assembly extern mscorlib
+{
+}
+
+.assembly 'test-custom-mod-2'
+{
+}
+
+.class interface public abstract auto ansi I
+{
+  .custom instance void [mscorlib]System.Reflection.DefaultMemberAttribute::.ctor(string)
+           = {string('Item')}
+  .method public hidebysig newslot specialname abstract virtual instance char
+          get_P() cil managed
+  {
+  }
+
+  .method public hidebysig newslot specialname abstract virtual instance void 
+          set_P(char 'value') cil managed
+  {
+  }
+
+  .method public hidebysig newslot specialname abstract virtual instance int32
+          get_Item(bool x) cil managed
+  {
+  }
+
+  .method public hidebysig newslot specialname abstract virtual instance void 
+          set_Item(bool x,
+                   int32 'value') cil managed
+  {
+  }
+
+  .property instance char  modopt(int8) P()
+  {
+    .get instance char I::get_P()
+    .set instance void I::set_P(char)
+  }
+
+  .property instance int32 modopt(int8) Item(bool  modopt(int16))
+  {
+    .get instance int32 I::get_Item(bool)
+    .set instance void I::set_Item(bool,
+                                      int32)
+  }
+}
\ No newline at end of file
index 4ab296b200a9004592a9be019373c594fcad5815..6c210605966226bef9e6ac57517ac6178f40b2ed 100644 (file)
@@ -1999,8 +1999,8 @@ namespace Mono.CSharp {
 
                        int[] bits = decimal.GetBits (value);
                        AttributeEncoder encoder = new AttributeEncoder ();
-                       encoder.Encode ((byte) (bits[3] >> 16));
-                       encoder.Encode ((byte) (bits[3] >> 31));
+                       encoder.Encode ((byte) ((bits[3] & 0xFF0000) >> 16)); // Scale
+                       encoder.Encode ((byte) ((bits[3] >> 31) << 7)); // Sign encoded as 0x80 for negative, 0x0 for possitive
                        encoder.Encode ((uint) bits[2]);
                        encoder.Encode ((uint) bits[1]);
                        encoder.Encode ((uint) bits[0]);
index 6468174759852e68236fc1de98f0fdf52e6e7bc2..3641c6460a69a768b9c0e848471fb757ba395e4a 100644 (file)
@@ -3368,12 +3368,8 @@ namespace Mono.CSharp
                                        return Token.OPEN_BRACE;
                                case '}':
                                        if (parsing_string_interpolation > 0) {
-                                               if (peek_char () != '}') {
-                                                       --parsing_string_interpolation;
-                                                       return TokenizeInterpolatedString ();
-                                               }
-
-                                               continue;
+                                               --parsing_string_interpolation;
+                                               return TokenizeInterpolatedString ();
                                        }
 
                                        val = ltb.Create (current_source, ref_line, col);
index 2073041afa252248e1f856efef43e9b91afaa1d4..56fb8d6d43cf8f7f936f162408d63f139d06c034 100644 (file)
 using System;
 
 #if STATIC
+using SecurityType = System.Collections.Generic.List<IKVM.Reflection.Emit.CustomAttributeBuilder>;
 using IKVM.Reflection;
 using IKVM.Reflection.Emit;
 #else
+using SecurityType = System.Collections.Generic.Dictionary<System.Security.Permissions.SecurityAction, System.Security.PermissionSet>;
 using System.Reflection;
 using System.Reflection.Emit;
 #endif
@@ -45,6 +47,8 @@ namespace Mono.CSharp {
                Expression instance_expr;
                ReturnParameter return_attributes;
 
+               SecurityType declarative_security;
+
                const Modifiers MethodModifiers = Modifiers.PUBLIC | Modifiers.VIRTUAL;
 
                const Modifiers AllowedModifiers =
@@ -104,6 +108,11 @@ namespace Mono.CSharp {
                                return;
                        }
 
+                       if (a.IsValidSecurityAttribute ()) {
+                               a.ExtractSecurityPermissionSet (ctor, ref declarative_security);
+                               return;
+                       }
+
                        base.ApplyAttributeBuilder (a, ctor, cdata, pa);
                }
 
@@ -308,6 +317,16 @@ namespace Mono.CSharp {
                {
                        base.Emit ();
 
+                       if (declarative_security != null) {
+                               foreach (var de in declarative_security) {
+#if STATIC
+                                       TypeBuilder.__AddDeclarativeSecurity (de);
+#else
+                                       TypeBuilder.AddDeclarativeSecurity (de.Key, de.Value);
+#endif
+                               }
+                       }
+
                        if (ReturnType.Type != null) {
                                if (ReturnType.Type.BuiltinType == BuiltinTypeSpec.Type.Dynamic) {
                                        return_attributes = new ReturnParameter (this, InvokeBuilder.MethodBuilder, Location);
index f1723d2352a868dbdc1e6f016fa884b9516d67c7..74501e89b1503db64ab68fca1a7a884ba1632867 100644 (file)
@@ -6385,7 +6385,7 @@ namespace Mono.CSharp {
 
                public override Expression DoResolveLValue (ResolveContext ec, Expression right_side)
                {
-                       if (ConditionalAccess)
+                       if (HasConditionalAccess ())
                                Error_NullPropagatingLValue (ec);
 
                        if (spec is FixedFieldSpec) {
@@ -7144,7 +7144,7 @@ namespace Mono.CSharp {
 
                public override Expression DoResolveLValue (ResolveContext rc, Expression right_side)
                {
-                       if (ConditionalAccess)
+                       if (HasConditionalAccess ())
                                Error_NullPropagatingLValue (rc);
 
                        if (right_side == EmptyExpression.OutAccess) {
@@ -7390,7 +7390,7 @@ namespace Mono.CSharp {
                                return null;
                        }
 
-                       if (ConditionalAccess)
+                       if (HasConditionalAccess ())
                                Error_NullPropagatingLValue (ec);
 
                        op = CandidateToBaseOverride (ec, op);
index 40eb0068b2db9dfdf56910b7d64900fa828a6aff..5f6c0633727978265700c2e19e9e9df2f82b839e 100644 (file)
@@ -1937,7 +1937,7 @@ namespace Mono.CSharp
                                                // Turn is check into simple null check for implicitly convertible reference types
                                                //
                                                return ReducedExpression.Create (
-                                                       new Binary (Binary.Operator.Inequality, expr, new NullLiteral (loc)).Resolve (ec),
+                                                       new Binary (Binary.Operator.Inequality, expr, new NullLiteral (loc), Binary.State.UserOperatorsExcluded).Resolve (ec),
                                                        this).Resolve (ec);
                                        }
 
@@ -3162,14 +3162,15 @@ namespace Mono.CSharp
                        RelationalMask  = 1 << 13,
 
                        DecomposedMask  = 1 << 19,
-                       NullableMask    = 1 << 20,
+                       NullableMask    = 1 << 20
                }
 
                [Flags]
-               enum State : byte
+               public enum State : byte
                {
                        None = 0,
                        Compound = 1 << 1,
+                       UserOperatorsExcluded = 1 << 2
                }
 
                readonly Operator oper;
@@ -3178,10 +3179,14 @@ namespace Mono.CSharp
                ConvCast.Mode enum_conversion;
 
                public Binary (Operator oper, Expression left, Expression right, bool isCompound)
+                       : this (oper, left, right, State.Compound)
+               {
+               }
+
+               public Binary (Operator oper, Expression left, Expression right, State state)
                        : this (oper, left, right)
                {
-                       if (isCompound)
-                               state |= State.Compound;
+                       this.state = state;
                }
 
                public Binary (Operator oper, Expression left, Expression right)
@@ -3668,10 +3673,11 @@ namespace Mono.CSharp
                                        return ResolveOperatorPointer (rc, l, r);
 
                                // User operators
-                               expr = ResolveUserOperator (rc, left, right);
-                               if (expr != null)
-                                       return expr;
-
+                               if ((state & State.UserOperatorsExcluded) == 0) {
+                                       expr = ResolveUserOperator (rc, left, right);
+                                       if (expr != null)
+                                               return expr;
+                               }
 
                                bool lenum = l.IsEnum;
                                bool renum = r.IsEnum;
@@ -10368,7 +10374,7 @@ namespace Mono.CSharp
 
                public override Expression DoResolveLValue (ResolveContext ec, Expression right_side)
                {
-                       if (ConditionalAccess)
+                       if (HasConditionalAccess ())
                                Error_NullPropagatingLValue (ec);
 
                        return DoResolve (ec);
@@ -12092,58 +12098,78 @@ namespace Mono.CSharp
 
                public override bool Emit (EmitContext ec, IMemoryLocation target)
                {
+                       //
+                       // Expression is initialized into temporary target then moved
+                       // to real one for atomicity
+                       //
+                       IMemoryLocation temp_target = target;
+
+                       LocalTemporary temp = null;
+                       bool by_ref = false;
+                       if (!initializers.IsEmpty) {
+                               temp_target = target as LocalTemporary;
+                               if (temp_target == null)
+                                       temp_target = target as StackFieldExpr;
+
+                               if (temp_target == null) {
+                                       var vr = target as VariableReference;
+                                       if (vr != null && vr.IsRef) {
+                                               vr.EmitLoad (ec);
+                                               by_ref = true;
+                                       }
+                               }
+
+                               if (temp_target == null)
+                                       temp_target = temp = new LocalTemporary (type);
+                       }
+
                        bool left_on_stack;
                        if (dynamic != null) {
                                dynamic.Emit (ec);
                                left_on_stack = true;
                        } else {
-                               left_on_stack = base.Emit (ec, target);
+                               left_on_stack = base.Emit (ec, temp_target);
                        }
 
                        if (initializers.IsEmpty)
                                return left_on_stack;
 
-                       LocalTemporary temp = null;
-
-                       instance = target as LocalTemporary;
-                       if (instance == null)
-                               instance = target as StackFieldExpr;
-
-                       if (instance == null) {
-                               if (!left_on_stack) {
-                                       VariableReference vr = target as VariableReference;
-
-                                       // FIXME: This still does not work correctly for pre-set variables
-                                       if (vr != null && vr.IsRef)
-                                               target.AddressOf (ec, AddressOp.Load);
+                       StackFieldExpr sf = null;
 
-                                       ((Expression) target).Emit (ec);
-                                       left_on_stack = true;
+                       // Move a new instance (reference-type) to local temporary variable
+                       if (left_on_stack) {
+                               if (by_ref) {
+                                       temp_target = temp = new LocalTemporary (type);
                                }
 
+                               if (temp != null)
+                                       temp.Store (ec);
+
                                if (ec.HasSet (BuilderContext.Options.AsyncBody) && initializers.ContainsEmitWithAwait ()) {
-                                       instance = new EmptyAwaitExpression (Type).EmitToField (ec) as IMemoryLocation;
-                               } else {
-                                       temp = new LocalTemporary (type);
-                                       instance = temp;
+                                       if (temp == null)
+                                               throw new NotImplementedException ();
+
+                                       sf = ec.GetTemporaryField (type);
+                                       sf.EmitAssign (ec, temp, false, false);
+                                       temp_target = sf;
+                                       temp.Release (ec);
+                                       left_on_stack = false;
                                }
                        }
 
-                       if (left_on_stack && temp != null)
-                               temp.Store (ec);
+                       instance = temp_target;
 
                        initializers.Emit (ec);
 
-                       if (left_on_stack) {
-                               if (temp != null) {
-                                       temp.Emit (ec);
-                                       temp.Release (ec);
-                               } else {
-                                       ((Expression) instance).Emit (ec);
-                               }
-                       }
+                       ((Expression)temp_target).Emit (ec);
+
+                       if (temp != null)
+                               temp.Release (ec);
 
-                       return left_on_stack;
+                       if (sf != null)
+                               sf.IsAvailableForReuse = true;
+
+                       return true;
                }
 
                protected override IMemoryLocation EmitAddressOf (EmitContext ec, AddressOp Mode)
index 7d95e44efdb433bcd01ea8229d9b719af3b86099..4b7b21e4887bfb9c5627b494cfbb489e03dededd 100644 (file)
@@ -246,7 +246,7 @@ namespace Mono.CSharp
                        protected override void ApplyToExtraTarget (Attribute a, MethodSpec ctor, byte[] cdata, PredefinedAttributes pa)
                        {
                                if (a.Target == AttributeTargets.Parameter) {
-                                       parameters[0].ApplyAttributeBuilder (a, ctor, cdata, pa);
+                                       parameters[parameters.Count - 1].ApplyAttributeBuilder (a, ctor, cdata, pa);
                                        return;
                                }
 
index 9aae43597609c4c2a99b1d7639266a6823bccd86..babeb86a0c8b1f8e5e050a31c4a8e9dd5ad5ae97 100644 (file)
@@ -5862,6 +5862,11 @@ namespace Mono.CSharp {
                        this.loc = loc;
                }
 
+               protected virtual void EmitBeginException (EmitContext ec)
+               {
+                       ec.BeginExceptionBlock ();
+               }
+
                protected virtual void EmitTryBodyPrepare (EmitContext ec)
                {
                        StateMachineInitializer state_machine = null;
@@ -5872,7 +5877,7 @@ namespace Mono.CSharp {
                                ec.Emit (OpCodes.Stloc, state_machine.CurrentPC);
                        }
 
-                       ec.BeginExceptionBlock ();
+                       EmitBeginException (ec);
 
                        if (resume_points != null) {
                                ec.MarkLabel (resume_point);
@@ -6845,6 +6850,14 @@ namespace Mono.CSharp {
                        return ok;
                }
 
+               protected override void EmitBeginException (EmitContext ec)
+               {
+                       if (fini.HasAwait && stmt is TryCatch)
+                               ec.BeginExceptionBlock ();
+
+                       base.EmitBeginException (ec);
+               }
+
                protected override void EmitTryBody (EmitContext ec)
                {
                        if (fini.HasAwait) {
@@ -6853,6 +6866,10 @@ namespace Mono.CSharp {
 
                                ec.TryFinallyUnwind.Add (this);
                                stmt.Emit (ec);
+
+                               if (stmt is TryCatch)
+                                       ec.EndExceptionBlock ();
+
                                ec.TryFinallyUnwind.Remove (this);
 
                                if (start_fin_label != null)
diff --git a/mcs/tests/dtest-061.cs b/mcs/tests/dtest-061.cs
new file mode 100644 (file)
index 0000000..de16049
--- /dev/null
@@ -0,0 +1,63 @@
+using System;
+
+namespace Test
+{
+       public class Program
+       {
+               static int[] testValues = {0, -1, 200, -200, 32, -32, 64, -128, 333, 5};
+
+               dynamic dynBase;
+               dynamic dynAmt;
+
+               int? optBase;
+               int? optAmt;
+
+               int normBase;
+               int normAmt;
+
+               dynamic uDynBase;
+
+               public static void Main ()
+               {
+                       var tester = new Program ();
+
+                       foreach (int baseVal in testValues)
+                               foreach (int amt in testValues)
+                                       tester.ShiftTest (baseVal, amt);
+               }
+
+               public static void AreEqual<A, B> (A a, B b)
+               {
+                       if (!a.Equals (b))
+                               throw new Exception (
+                                       String.Format (
+                                               "Shift Equality Assertion Failed: Had {0} and expected {1}", a, b));
+               }
+
+               public void ShiftTest (int shiftBase, int shiftAmt)
+               {
+                       optBase = dynBase = normBase = shiftBase;
+                       optAmt = dynAmt = normAmt = shiftAmt;
+                       int immediate = shiftBase << shiftAmt;
+
+                       AreEqual<int?, int?> (dynBase << dynAmt, immediate);
+                       AreEqual<int?, int?> (dynBase << optAmt, immediate);
+                       AreEqual<int?, int?> (dynBase << normAmt, immediate);
+
+                       AreEqual<int?, int?> (optBase << dynAmt, immediate);
+                       AreEqual<int?, int?> (optBase << optAmt, immediate);
+                       AreEqual<int?, int?> (optBase << normAmt, immediate);
+
+                       AreEqual<int?, int?> (normBase << dynAmt, immediate);
+                       AreEqual<int?, int?> (normBase << optAmt, immediate);
+                       AreEqual<int?, int?> (normBase << normAmt, immediate);
+
+                       uint uShiftBase = (uint)shiftBase;
+                       uDynBase = uShiftBase;
+
+                       AreEqual<uint?, uint?> (uShiftBase << dynAmt, uDynBase << dynAmt);
+                       AreEqual<uint?, uint?> (uShiftBase << optAmt, uDynBase << optAmt);
+                       AreEqual<uint?, uint?> (uShiftBase << normAmt, uDynBase << normAmt);
+               }
+       }
+}
diff --git a/mcs/tests/gtest-initialize-14.cs b/mcs/tests/gtest-initialize-14.cs
new file mode 100644 (file)
index 0000000..1365493
--- /dev/null
@@ -0,0 +1,36 @@
+using System;
+
+struct S
+{
+       public int X, Y;
+}
+
+class X
+{
+       public static int Main ()
+       {
+               var rect = new S {
+                       X = 1,
+                       Y = 2,
+               };
+
+               if (rect.X != 1)
+                       return 1;
+
+               if (rect.Y != 2)
+                       return 2;
+
+               rect = new S {
+                       X = rect.X,
+                       Y = rect.Y,
+               };
+
+               if (rect.X != 1)
+                       return 3;
+
+               if (rect.Y != 2)
+                       return 4;
+
+               return 0;
+       }
+}
\ No newline at end of file
index 0cbdf42476262ee74db841ba87e8b812dfcb324e..6503f64e039412317e0144956ed4ebff08ca3efe 100644 (file)
@@ -1,6 +1,9 @@
 using System.Security;
 using System.Security.Permissions;
 
+[HostProtection]
+delegate void D ();
+
 [HostProtection]
 class X
 {
diff --git a/mcs/tests/test-924.cs b/mcs/tests/test-924.cs
new file mode 100644 (file)
index 0000000..07d7783
--- /dev/null
@@ -0,0 +1,30 @@
+using System;
+
+class MainClass
+{
+       public static int Main ()
+       {
+               DataFrame df1 = new DataFrame ();
+               DataFrame df2 = new DataFrame ();
+
+               if (df1 != null) 
+               {
+                       return 1;
+               }
+
+               return 0;
+       }
+
+       public class DataFrame
+       {
+               public static bool operator ==(DataFrame df1, DataFrame df2)
+               {
+                       return df1 is DataFrame;
+               }
+
+               public static bool operator !=(DataFrame df1, DataFrame df2)
+               {
+                       return !(df1 == df2);
+               }
+       }
+}
diff --git a/mcs/tests/test-925.cs b/mcs/tests/test-925.cs
new file mode 100644 (file)
index 0000000..5e9ecec
--- /dev/null
@@ -0,0 +1,43 @@
+using System;
+using System.Linq;
+using System.Reflection;
+
+class Program
+{
+       public static int Main ()
+       {
+               var setter = typeof (MyClass).GetMember("set_Item")[0] as MethodInfo;
+               var sp = setter.GetParameters ();
+               var first = sp [0].GetCustomAttributes ();
+               var value = sp [2].GetCustomAttributes ();
+
+               if (first.Count () != 0)
+                       return 1;
+
+               if (value.Count () != 1)
+                       return 2;
+                       
+               return 0;
+       }
+}
+
+[AttributeUsage(AttributeTargets.All)]
+public class MyAttribute2Attribute : Attribute
+{
+}
+
+public class MyClass
+{
+       public string this[int index1, int index2]
+       {
+               get
+               {
+                       return "";
+               }
+
+               [param: MyAttribute2]
+               set
+               {
+               }
+       }
+}
\ No newline at end of file
diff --git a/mcs/tests/test-async-79.cs b/mcs/tests/test-async-79.cs
new file mode 100644 (file)
index 0000000..cd4dcb7
--- /dev/null
@@ -0,0 +1,40 @@
+using System;
+using System.Threading.Tasks;
+
+class Test
+{
+       public int in_catch, in_finally;
+
+       async Task ExecuteCore ()
+       {
+               try {
+                       await Task.Run (() => { 
+                               throw new ApplicationException ();
+                       });
+               } catch (Exception ex) {
+                       ++in_catch;
+                       throw;
+               } finally {
+                       ++in_finally;
+                       await Task.Yield ();
+               }
+       }
+
+       public static int Main ()
+       {
+               var t = new Test ();
+               try {
+                       t.ExecuteCore ().Wait ();
+                       return 3;
+               } catch (AggregateException) {                  
+               }
+
+               if (t.in_catch != 1)
+                       return 1;
+
+               if (t.in_finally != 1)
+                       return 2;
+
+               return 0;
+       }
+}
\ No newline at end of file
index a83422bc38120c5841d7954e78c023a12c1c8e74..6d31f3c67581353130b0f9afbcd5a6c34781bcb9 100644 (file)
@@ -60,6 +60,10 @@ public class Test
                if (s != "b = 3")
                        return 13;
 
+               s = $"{{fo!o = {res}}}";
+               if (s != "{fo!o = 5}")
+                       return 14;
+
                Console.WriteLine ("ok");
                return 0;
        }
index e605915ad3c3453c6d00250d02c7320e8d3b0230..b306de4869ad986ab7ed4a5324e0f4f171b289a2 100644 (file)
         <size>57</size>
       </method>
       <method name="Void Foo(Point ByRef)" attrs="145">
-        <size>39</size>
+        <size>33</size>
       </method>
       <method name="Void .ctor()" attrs="6278">
         <size>7</size>
         <size>42</size>
       </method>
       <method name="Void Main()" attrs="150">
-        <size>68</size>
+        <size>66</size>
       </method>
       <method name="Void &lt;Main&gt;m__0()" attrs="145">
         <size>2</size>
       </method>
     </type>
   </test>
+  <test name="gtest-initialize-14.cs">
+    <type name="X">
+      <method name="Int32 Main()" attrs="150">
+        <size>154</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
   <test name="gtest-iter-01.cs">
     <type name="C">
       <method name="Void Main()" attrs="150">
         <size>7</size>
       </method>
     </type>
+    <type name="D">
+      <method name="Void Invoke()" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+        <size>0</size>
+      </method>
+      <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+        <size>0</size>
+      </method>
+    </type>
   </test>
   <test name="test-911.cs">
     <type name="N">
       </method>
     </type>
   </test>
+  <test name="test-924.cs">
+    <type name="MainClass">
+      <method name="Int32 Main()" attrs="150">
+        <size>42</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MainClass+DataFrame">
+      <method name="Boolean op_Equality(DataFrame, DataFrame)" attrs="2198">
+        <size>16</size>
+      </method>
+      <method name="Boolean op_Inequality(DataFrame, DataFrame)" attrs="2198">
+        <size>19</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
+  <test name="test-925.cs">
+    <type name="Program">
+      <method name="Int32 Main()" attrs="150">
+        <size>104</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MyAttribute2Attribute">
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="MyClass">
+      <method name="System.String get_Item(Int32, Int32)" attrs="2182">
+        <size>14</size>
+      </method>
+      <method name="Void set_Item(Int32, Int32, System.String)" attrs="2182">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
   <test name="test-93.cs">
     <type name="N1.C">
       <method name="Void .ctor()" attrs="6278">
     </type>
     <type name="Tester+&lt;NewInitTest_1&gt;c__async34">
       <method name="Void MoveNext()" attrs="486">
-        <size>1026</size>
+        <size>1030</size>
       </method>
       <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
         <size>13</size>
     </type>
     <type name="Tester+&lt;NewInitTestGen&gt;c__async0`1[T]">
       <method name="Void MoveNext()" attrs="486">
-        <size>305</size>
+        <size>308</size>
       </method>
       <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
         <size>13</size>
       </method>
     </type>
   </test>
+  <test name="test-async-79.cs">
+    <type name="Test">
+      <method name="System.Threading.Tasks.Task ExecuteCore()" attrs="129">
+        <size>41</size>
+      </method>
+      <method name="Int32 Main()" attrs="150">
+        <size>81</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Test+&lt;ExecuteCore&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>380</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+      <method name="System.Threading.Tasks.Task &lt;&gt;m__0()" attrs="145">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
   <test name="test-cls-00.cs">
     <type name="CLSCLass_6">
       <method name="Void add_Disposed(Delegate)" attrs="2182">
   <test name="test-interpolation-01.cs">
     <type name="Test">
       <method name="Int32 Main()" attrs="150">
-        <size>540</size>
+        <size>581</size>
       </method>
       <method name="Void .ctor()" attrs="6278">
         <size>7</size>
index a4213811dba78f329bc1cedb4571a3f5a181a23a..9e18649dbe56a35e48040647efaad97eabdc299d 100644 (file)
@@ -11,130 +11,133 @@ using Mono.Options;
 namespace Mono.MdbRebase
 {
 
-class Settings
-{
-       public string OutputDirectory { get; set; }
-       public string InputPattern { get; set; }
-       public string OutputPattern { get; set; }
-       public bool InputPatternIsRegex { get; set; }
-       public bool FileNamesOnly { get; set; }
-       public bool Verbose { get; set; }
-
-       Regex inputPatternRegex;
-
-       public bool Validate ()
+       class Settings
        {
-               return InputPattern != null && OutputPattern != null;
-       }
-
-       public string Replace (string input)
-       {
-               if (InputPatternIsRegex) {
-                       if (inputPatternRegex == null)
-                               inputPatternRegex = new Regex (InputPattern);
-                       return inputPatternRegex.Replace (input, OutputPattern);
-               } else {
-                       if (input.StartsWith (InputPattern))
-                               return OutputPattern + input.Substring (InputPattern.Length);
+               public string OutputDirectory { get; set; }
+               public string InputPattern { get; set; }
+               public string OutputPattern { get; set; }
+               public bool InputPatternIsRegex { get; set; }
+               public bool FileNamesOnly { get; set; }
+               public bool Verbose { get; set; }
+               public bool Quiet { get; set; }
+
+               Regex inputPatternRegex;
+
+               public bool Validate ()
+               {
+                       return InputPattern != null && OutputPattern != null;
                }
 
-               return input;
+               public string Replace (string input)
+               {
+                       if (InputPatternIsRegex) {
+                               if (inputPatternRegex == null)
+                                       inputPatternRegex = new Regex (InputPattern);
+                               return inputPatternRegex.Replace (input, OutputPattern);
+                       } else {
+                               if (input.StartsWith (InputPattern))
+                                       return OutputPattern + input.Substring (InputPattern.Length);
+                       }
+
+                       return input;
+               }
        }
-}
-
-class MdbRebase
-{
-       Settings settings;
 
-       public MdbRebase (Settings settings)
+       class MdbRebase
        {
-               this.settings = settings;
-       }
+               Settings settings;
 
-       public void RewriteMdbFile (string inputFile)
-       {
-               Console.WriteLine ("Processing {0}", inputFile);
-               var input = MonoSymbolFile.ReadSymbolFile (inputFile);
+               public MdbRebase (Settings settings)
+               {
+                       this.settings = settings;
+               }
 
-               var output = new MonoSymbolFile ();
+               public void RewriteMdbFile (string inputFile)
+               {
+                       if (!settings.Quiet)
+                               Console.WriteLine ("Processing {0}", inputFile);
+                       var input = MonoSymbolFile.ReadSymbolFile (inputFile);
 
-               foreach (var s in input.Sources) {
-                       var newFileName = settings.FileNamesOnly
-                               ? Path.Combine (Path.GetDirectoryName (s.FileName), settings.Replace (Path.GetFileName (s.FileName)))
-                               : settings.Replace (s.FileName);
+                       var output = new MonoSymbolFile ();
 
-                       if (settings.Verbose)
-                               Console.WriteLine ("{0} -> {1}", s.FileName, newFileName);
+                       foreach (var s in input.Sources) {
+                               var newFileName = settings.FileNamesOnly
+                                       ? Path.Combine (Path.GetDirectoryName (s.FileName), settings.Replace (Path.GetFileName (s.FileName)))
+                                       : settings.Replace (s.FileName);
 
-                       s.FileName = newFileName;
-                       output.AddSource (s);
-               }
+                               if (settings.Verbose)
+                                       Console.WriteLine ("{0} -> {1}", s.FileName, newFileName);
 
-               foreach (var cu in input.CompileUnits) {
-                       cu.ReadAll ();
-                       output.AddCompileUnit (cu);
-               }
-       
-               foreach (var m in input.Methods) {
-                       m.ReadAll ();
-                       output.AddMethod (m);
-               }
+                               s.FileName = newFileName;
+                               output.AddSource (s);
+                       }
 
+                       foreach (var cu in input.CompileUnits) {
+                               cu.ReadAll ();
+                               output.AddCompileUnit (cu);
+                       }
+               
+                       foreach (var m in input.Methods) {
+                               m.ReadAll ();
+                               output.AddMethod (m);
+                       }
 
-               var mdbName = new FileInfo (inputFile).Name;
-               var tmpMdb = Path.Combine (Path.GetTempPath (), mdbName);
-               var finalMdb = inputFile;
-               if (settings.OutputDirectory != null)
-                       finalMdb = Path.Combine (settings.OutputDirectory, mdbName);
 
-               using (var stream = new FileStream (tmpMdb, FileMode.Create)) {
-                       output.CreateSymbolFile (input.Guid, stream);
-               }
-               input.Dispose ();
+                       var mdbName = new FileInfo (inputFile).Name;
+                       var tmpMdb = Path.GetTempFileName ();
+                       var finalMdb = inputFile;
+                       if (settings.OutputDirectory != null)
+                               finalMdb = Path.Combine (settings.OutputDirectory, mdbName);
+
+                       using (var stream = new FileStream (tmpMdb, FileMode.Create)) {
+                               output.CreateSymbolFile (input.Guid, stream);
+                       }
+                       input.Dispose ();
 
-               File.Delete (finalMdb);
-               File.Move (tmpMdb, finalMdb);
+                       File.Delete (finalMdb);
+                       File.Move (tmpMdb, finalMdb);
+               }
        }
-}
 
-class Driver {
-       static void Usage (OptionSet options)
-       {
-               Console.WriteLine (@"Usage: mdbrebase [options] <ASSEMBLY_TO_FIX>");
-               if (options != null) {
+       class Driver {
+               static void Usage (OptionSet options)
+               {
+                       Console.WriteLine (@"Usage: mdbrebase [options] <ASSEMBLY_TO_FIX>");
+                       if (options != null) {
+                               Console.WriteLine ();
+                               Console.WriteLine ("Available options:");
+                               options.WriteOptionDescriptions (Console.Out);
+                       }
                        Console.WriteLine ();
-                       Console.WriteLine ("Available options:");
-                       options.WriteOptionDescriptions (Console.Out);
+                       
+                       Environment.Exit (-1);
                }
-               Console.WriteLine ();
-               
-               Environment.Exit (-1);
-       }
 
-       static int Main (string[] args) {
-               var s = new Settings ();
-               bool showHelp = false;
+               static int Main (string[] args) {
+                       var s = new Settings ();
+                       bool showHelp = false;
 
-               var p = new OptionSet () {
-                       { "d=|output=",  "Output directory to the mdb file, replace existing one if ommited", v => s.OutputDirectory = v },
-                       { "v|verbose", "Be verbose with output (show individual path rewrites)", v => s.Verbose = true },
-                       { "f|filenames", "Only operate on file names, not full absolute paths", v => s.FileNamesOnly = true },
-                       { "r|regex", "Input pattern is a regular expression", v => s.InputPatternIsRegex = true },
-                       { "i=|input-pattern=", "Input pattern to replace (must not be a prefix to output-pattern)(required)", v => s.InputPattern = v },
-                       { "o=|output-pattern=", "Output pattern to replace (required)", v => s.OutputPattern = v },
-                       { "h|?|help", v => showHelp = true },
-               };
+                       var p = new OptionSet () {
+                               { "d=|output=",  "Output directory to the mdb file, replace existing one if ommited", v => s.OutputDirectory = v },
+                               { "v|verbose", "Be verbose with output (show individual path rewrites)", v => s.Verbose = true },
+                               { "f|filenames", "Only operate on file names, not full absolute paths", v => s.FileNamesOnly = true },
+                               { "r|regex", "Input pattern is a regular expression", v => s.InputPatternIsRegex = true },
+                               { "i=|input-pattern=", "Input pattern to replace (must not be a prefix to output-pattern)(required)", v => s.InputPattern = v },
+                               { "o=|output-pattern=", "Output pattern to replace (required)", v => s.OutputPattern = v },
+                               { "q|quiet", "Be quiet with output (not show anything but errors)", v => s.Quiet = true },
+                               { "h|?|help", v => showHelp = true },
+                       };
 
-               List <string> extra = p.Parse (args);
+                       List <string> extra = p.Parse (args);
 
-               if (showHelp || extra.Count < 1 || !s.Validate ())
-                       Usage (p);
+                       if (showHelp || extra.Count < 1 || !s.Validate ())
+                               Usage (p);
 
-               var m = new MdbRebase (s);
-               foreach (var a in extra)
-                       m.RewriteMdbFile (a);
-               return 0;
+                       var m = new MdbRebase (s);
+                       foreach (var a in extra)
+                               m.RewriteMdbFile (a);
+                       return 0;
 
+               }
        }
 }
-}
index 70a0b7375766f046dd295b047366de8a8c530c0a..8c246124da17708e12ae971ef3e010476f104a92 100644 (file)
@@ -50,8 +50,10 @@ namespace Mono.XBuild.CommandLine {
                Engine          engine;
                Project         project;
                ConsoleReportPrinter printer;
-
                
+               // this does nothing but adds strong reference to Microsoft.Build.Tasks*.dll that we need to load consistently.
+               Microsoft.Build.Tasks.Copy dummy;
+
                public static void Main (string[] args)
                {
                        MainClass mc = new MainClass ();
index 67b0d2f8832ef1883406862a15a7f8eea8f5f537..628d85c1a598b9606c3d3594e5e76d67f007fa84 100644 (file)
@@ -5,7 +5,7 @@ NO_TESTS = yes
 
 include xbuild.make
 
-LOCAL_MCS_FLAGS = -r:$(XBUILD_FRAMEWORK) -r:$(XBUILD_UTILITIES) -r:$(XBUILD_ENGINE)
+LOCAL_MCS_FLAGS = -r:$(XBUILD_FRAMEWORK) -r:$(XBUILD_UTILITIES) -r:$(XBUILD_ENGINE) -r:$(XBUILD_MSTASKS)
 PROGRAM = xbuild.exe
 
 include ../../build/executable.make
index e17dcb2b4538128157ad40dc3a9b8b4edd19ccbe..7247c7f8b0d1b04d7f52adefd0962d68fff07bc1 100644 (file)
@@ -10,6 +10,10 @@ XBUILD_FRAMEWORK := $(topdir)/class/lib/$(PROFILE)/Microsoft.Build.Framework.dll
 XBUILD_ENGINE := $(topdir)/class/lib/$(PROFILE)/Microsoft.Build.Engine.dll
 XBUILD_UTILITIES := $(topdir)/class/lib/$(PROFILE)/Microsoft.Build.Utilities$(NAME_SUFFIX).dll
 XBUILD_TASKS := $(topdir)/class/lib/$(PROFILE)/Mono.XBuild.Tasks.dll
+XBUILD_MSTASKS := $(topdir)/class/lib/$(PROFILE)/Microsoft.Build.Tasks$(NAME_SUFFIX).dll
+ifeq (14.0, $(XBUILD_VERSION))
+XBUILD_MSTASKS := $(topdir)/class/lib/$(PROFILE)/Microsoft.Build.Tasks.Core.dll
+endif
 
 XBUILD_ASSEMBLY_VERSION = $(XBUILD_VERSION).0.0
 
index 593574c6b9cdd9216c8c3253c76334118d8dc795..8d2f52782003ea31467289c88cec4ca111c2f4aa 100644 (file)
@@ -1,17 +1,8 @@
 
 AM_CPPFLAGS = $(GLIB_CFLAGS) -I$(top_srcdir)
 
-noinst_LTLIBRARIES = libmonoarch-arm.la
-
 BUILT_SOURCES = arm_dpimacros.h arm_vfpmacros.h
 
-
-libmonoarch_arm_la_SOURCES = $(BUILT_SOURCES) \
-       arm-codegen.c \
-       arm-codegen.h \
-       arm-dis.c \
-       arm-dis.h
-
 arm_dpimacros.h: dpiops.sh mov_macros.th dpi_macros.th cmp_macros.th
        (cd $(srcdir); bash ./dpiops.sh) > $@t
        mv $@t $@
@@ -22,6 +13,6 @@ arm_vfpmacros.h: vfpops.sh vfpm_macros.th vfp_macros.th
 
 CLEANFILES = $(BUILT_SOURCES)
 
-EXTRA_DIST = dpiops.sh mov_macros.th dpi_macros.th cmp_macros.th \
+EXTRA_DIST = arm-codegen.h dpiops.sh mov_macros.th dpi_macros.th cmp_macros.th \
        vfpm_macros.th vfp_macros.th arm-vfp-codegen.h vfpops.sh
 
diff --git a/mono/arch/arm/arm-codegen.c b/mono/arch/arm/arm-codegen.c
deleted file mode 100644 (file)
index 9914ace..0000000
+++ /dev/null
@@ -1,193 +0,0 @@
-/*
- * arm-codegen.c
- * Copyright (c) 2002 Sergey Chaban <serge@wildwestsoftware.com>
- */
-
-#include "arm-codegen.h"
-
-
-arminstr_t* arm_emit_std_prologue(arminstr_t* p, unsigned int local_size) {
-       ARM_MOV_REG_REG(p, ARMREG_IP, ARMREG_SP);
-
-       /* save args */
-       ARM_PUSH(p,   (1 << ARMREG_A1)
-                   | (1 << ARMREG_A2)
-                   | (1 << ARMREG_A3)
-                   | (1 << ARMREG_A4));
-
-       ARM_PUSH(p, (1U << ARMREG_IP) | (1U << ARMREG_LR));
-
-       if (local_size != 0) {
-               if ((local_size & (~0xFF)) == 0) {
-                       ARM_SUB_REG_IMM8(p, ARMREG_SP, ARMREG_SP, local_size);
-               } else {
-                       /* TODO: optimize */
-                       p = arm_mov_reg_imm32(p, ARMREG_IP, local_size);
-                       ARM_SUB_REG_REG(p, ARMREG_SP, ARMREG_SP, ARMREG_IP);
-                       ARM_ADD_REG_IMM8(p, ARMREG_IP, ARMREG_IP, sizeof(armword_t));
-                       ARM_LDR_REG_REG(p, ARMREG_IP, ARMREG_SP, ARMREG_IP);
-               }
-       }
-
-       return p;
-}
-
-arminstr_t* arm_emit_std_epilogue(arminstr_t* p, unsigned int local_size, int pop_regs) {
-       if (local_size != 0) {
-               if ((local_size & (~0xFF)) == 0) {
-                       ARM_ADD_REG_IMM8(p, ARMREG_SP, ARMREG_SP, local_size);
-               } else {
-                       /* TODO: optimize */
-                       p = arm_mov_reg_imm32(p, ARMREG_IP, local_size);
-                       ARM_ADD_REG_REG(p, ARMREG_SP, ARMREG_SP, ARMREG_IP);
-               }
-       }
-
-       ARM_POP_NWB(p, (1 << ARMREG_SP) | (1 << ARMREG_PC) | (pop_regs & 0x3FF));
-
-       return p;
-}
-
-
-/* do not push A1-A4 */
-arminstr_t* arm_emit_lean_prologue(arminstr_t* p, unsigned int local_size, int push_regs) {
-       ARM_MOV_REG_REG(p, ARMREG_IP, ARMREG_SP);
-       /* push_regs upto R10 will be saved */
-       ARM_PUSH(p, (1U << ARMREG_IP) | (1U << ARMREG_LR) | (push_regs & 0x3FF));
-
-       if (local_size != 0) {
-               if ((local_size & (~0xFF)) == 0) {
-                       ARM_SUB_REG_IMM8(p, ARMREG_SP, ARMREG_SP, local_size);
-               } else {
-                       /* TODO: optimize */
-                       p = arm_mov_reg_imm32(p, ARMREG_IP, local_size);
-                       ARM_SUB_REG_REG(p, ARMREG_SP, ARMREG_SP, ARMREG_IP);
-                       /* restore IP from stack */
-                       ARM_ADD_REG_IMM8(p, ARMREG_IP, ARMREG_IP, sizeof(armword_t));
-                       ARM_LDR_REG_REG(p, ARMREG_IP, ARMREG_SP, ARMREG_IP);
-               }
-       }
-
-       return p;
-}
-
-/* Bit scan forward. */
-int arm_bsf(armword_t val) {
-       int i;
-       armword_t mask;
-
-       if (val == 0) return 0;
-       for (i=1, mask=1; (i <= 8 * sizeof(armword_t)) && ((val & mask) == 0); ++i, mask<<=1);
-
-       return i;
-}
-
-
-int arm_is_power_of_2(armword_t val) {
-       return ((val & (val-1)) == 0);
-}
-
-
-/*
- * returns:
- *   1 - unable to represent
- *   positive even number - MOV-representable
- *   negative even number - MVN-representable
- */
-int calc_arm_mov_const_shift(armword_t val) {
-       armword_t mask;
-       int res = 1, shift;
-
-       for (shift=0; shift < 32; shift+=2) {
-               mask = ARM_SCALE(0xFF, shift);
-               if ((val & (~mask)) == 0) {
-                       res = shift;
-                       break;
-               }
-               if (((~val) & (~mask)) == 0) {
-                       res = -shift - 2;
-                       break;
-               }
-       }
-
-       return res;
-}
-
-
-int is_arm_const(armword_t val) {
-       int res;
-       res = arm_is_power_of_2(val);
-       if (!res) {
-               res = calc_arm_mov_const_shift(val);
-               res = !(res < 0 || res == 1);
-       }
-       return res;
-}
-
-
-int arm_const_steps(armword_t val) {
-       int shift, steps = 0;
-
-       while (val != 0) {
-               shift = (arm_bsf(val) - 1) & (~1);
-               val &= ~(0xFF << shift);
-               ++steps;
-       }
-       return steps;
-}
-
-
-/*
- * ARM cannot load arbitrary 32-bit constants directly into registers;
- * widely used work-around for this is to store constants into a
- * PC-addressable pool and use LDR instruction with PC-relative address
- * to load constant into register. Easiest way to implement this is to
- * embed constant inside a function with unconditional branch around it.
- * The above method is not used at the moment.
- * This routine always emits sequence of instructions to generate
- * requested constant. In the worst case it takes 4 instructions to
- * synthesize a constant - 1 MOV and 3 subsequent ORRs.
- */
-arminstr_t* arm_mov_reg_imm32_cond(arminstr_t* p, int reg, armword_t imm32, int cond) {
-       int mov_op;
-       int step_op;
-       int snip;
-       int shift = calc_arm_mov_const_shift(imm32);
-
-       if ((shift & 0x80000001) != 1) {
-               if (shift >= 0) {
-                       ARM_MOV_REG_IMM_COND(p, reg, imm32 >> ((32 - shift) & 31), shift, cond);
-               } else {
-                       ARM_MVN_REG_IMM_COND(p, reg, (imm32 ^ (~0)) >> ((32 + 2 + shift) & 31), (-shift - 2), cond);
-               }
-       } else {
-               mov_op = ARMOP_MOV;
-               step_op = ARMOP_ORR;
-
-               if (arm_const_steps(imm32) > arm_const_steps(~imm32)) {
-                       mov_op = ARMOP_MVN;
-                       step_op = ARMOP_SUB;
-                       imm32 = ~imm32;
-               }
-
-               shift = (arm_bsf(imm32) - 1) & (~1);
-               snip = imm32 & (0xFF << shift);
-               ARM_EMIT(p, ARM_DEF_DPI_IMM_COND((unsigned)snip >> shift, (32 - shift) >> 1, reg, 0, 0, mov_op, cond));
-
-               while ((imm32 ^= snip) != 0) {
-                       shift = (arm_bsf(imm32) - 1) & (~1);
-                       snip = imm32 & (0xFF << shift);
-                       ARM_EMIT(p, ARM_DEF_DPI_IMM_COND((unsigned)snip >> shift, (32 - shift) >> 1, reg, reg, 0, step_op, cond));
-               }
-       }
-
-       return p;
-}
-
-
-arminstr_t* arm_mov_reg_imm32(arminstr_t* p, int reg, armword_t imm32) {
-       return arm_mov_reg_imm32_cond(p, reg, imm32, ARMCOND_AL);
-}
-
-
-
index d4d7f7c481399cfc1358dfff4454147095a898e8..5ba36bbfaa8bafd5bb394a58b06437e2ea307cf4 100644 (file)
@@ -16,19 +16,6 @@ extern "C" {
 typedef unsigned int arminstr_t;
 typedef unsigned int armword_t;
 
-/* Helper functions */
-arminstr_t* arm_emit_std_prologue(arminstr_t* p, unsigned int local_size);
-arminstr_t* arm_emit_std_epilogue(arminstr_t* p, unsigned int local_size, int pop_regs);
-arminstr_t* arm_emit_lean_prologue(arminstr_t* p, unsigned int local_size, int push_regs);
-int arm_is_power_of_2(armword_t val);
-int calc_arm_mov_const_shift(armword_t val);
-int is_arm_const(armword_t val);
-int arm_bsf(armword_t val);
-arminstr_t* arm_mov_reg_imm32_cond(arminstr_t* p, int reg, armword_t imm32, int cond);
-arminstr_t* arm_mov_reg_imm32(arminstr_t* p, int reg, armword_t imm32);
-
-
-
 #if defined(_MSC_VER) || defined(__CC_NORCROFT)
        void __inline _arm_emit(arminstr_t** p, arminstr_t i) {**p = i; (*p)++;}
 #      define ARM_EMIT(p, i) _arm_emit((arminstr_t**)&p, (arminstr_t)(i))
diff --git a/mono/arch/arm/arm-dis.c b/mono/arch/arm/arm-dis.c
deleted file mode 100644 (file)
index 5074f26..0000000
+++ /dev/null
@@ -1,509 +0,0 @@
-/*
- * Copyright (c) 2002 Sergey Chaban <serge@wildwestsoftware.com>
- */
-
-
-#include <stdarg.h>
-
-#include "arm-dis.h"
-#include "arm-codegen.h"
-
-
-static ARMDis* gdisasm = NULL;
-
-static int use_reg_alias = 1;
-
-const static char* cond[] = {
-       "eq", "ne", "cs", "cc", "mi", "pl", "vs", "vc",
-       "hi", "ls", "ge", "lt", "gt", "le", "", "nv"
-};
-
-const static char* ops[] = {
-       "and", "eor", "sub", "rsb", "add", "adc", "sbc", "rsc",
-       "tst", "teq", "cmp", "cmn", "orr", "mov", "bic", "mvn"
-};
-
-const static char* shift_types[] = {"lsl", "lsr", "asr", "ror"};
-
-const static char* mul_ops[] = {
-       "mul", "mla", "?", "?", "umull", "umlal", "smull", "smlal"
-};
-
-const static char* reg_alias[] = {
-       "a1", "a2", "a3", "a4",
-       "r4", "r5", "r6", "r7", "r8", "r9", "r10",
-       "fp", "ip", "sp", "lr", "pc"
-};
-
-const static char* msr_fld[] = {"f", "c", "x", "?", "s"};
-
-
-/* private functions prototypes (to keep compiler happy) */
-void chk_out(ARMDis* dis);
-void dump_reg(ARMDis* dis, int reg);
-void dump_creg(ARMDis* dis, int creg);
-void dump_reglist(ARMDis* dis, int reg_list);
-void init_gdisasm(void);
-
-void dump_br(ARMDis* dis, ARMInstr i);
-void dump_cdp(ARMDis* dis, ARMInstr i);
-void dump_cdt(ARMDis* dis, ARMInstr i);
-void dump_crt(ARMDis* dis, ARMInstr i);
-void dump_dpi(ARMDis* dis, ARMInstr i);
-void dump_hxfer(ARMDis* dis, ARMInstr i);
-void dump_mrs(ARMDis* dis, ARMInstr i);
-void dump_mrt(ARMDis* dis, ARMInstr i);
-void dump_msr(ARMDis* dis, ARMInstr i);
-void dump_mul(ARMDis* dis, ARMInstr i);
-void dump_swi(ARMDis* dis, ARMInstr i);
-void dump_swp(ARMDis* dis, ARMInstr i);
-void dump_wxfer(ARMDis* dis, ARMInstr i);
-void dump_clz(ARMDis* dis, ARMInstr i);
-
-
-/*
-void out(ARMDis* dis, const char* format, ...) {
-       va_list arglist;
-       va_start(arglist, format);
-       fprintf(dis->dis_out, format, arglist);
-       va_end(arglist);
-}
-*/
-
-
-void chk_out(ARMDis* dis) {
-       if (dis != NULL && dis->dis_out == NULL) dis->dis_out = stdout;
-}
-
-
-void armdis_set_output(ARMDis* dis, FILE* f) {
-       if (dis != NULL) {
-               dis->dis_out = f;
-               chk_out(dis);
-       }
-}
-
-FILE* armdis_get_output(ARMDis* dis) {
-       return (dis != NULL ? dis->dis_out : NULL);
-}
-
-
-
-
-void dump_reg(ARMDis* dis, int reg) {
-       reg &= 0xF;
-       if (!use_reg_alias || (reg > 3 && reg < 11)) {
-               fprintf(dis->dis_out, "r%d", reg);
-       } else {
-               fprintf(dis->dis_out, "%s", reg_alias[reg]);
-       }
-}
-
-void dump_creg(ARMDis* dis, int creg) {
-       if (dis != NULL) {
-               creg &= 0xF;
-               fprintf(dis->dis_out, "c%d", creg);
-       }
-}
-
-void dump_reglist(ARMDis* dis, int reg_list) {
-       int i = 0, j, n = 0;
-       int m1 = 1, m2, rn;
-       while (i < 16) {
-               if ((reg_list & m1) != 0) {
-                       if (n != 0) fprintf(dis->dis_out, ", ");
-                       n++;
-                       dump_reg(dis, i);
-                       for (j = i+1, rn = 0, m2 = m1<<1; j < 16; ++j, m2<<=1) {
-                               if ((reg_list & m2) != 0) ++rn;
-                               else break;
-                       }
-                       i+=rn;
-                       if (rn > 1) {
-                               fprintf(dis->dis_out, "-");
-                               dump_reg(dis, i);
-                       } else if (rn == 1) {
-                               fprintf(dis->dis_out, ", ");
-                               dump_reg(dis, i);
-                       }
-                       m1<<=(rn+1);
-                       i++;
-               } else {
-                       ++i;
-                       m1<<=1;
-               }
-       }
-}
-
-
-void dump_br(ARMDis* dis, ARMInstr i) {
-       fprintf(dis->dis_out, "b%s%s\t%x\t; %p -> %#x",
-           (i.br.link == 1) ? "l" : "",
-           cond[i.br.cond], i.br.offset, dis->pi, (int)dis->pi + 4*2 + ((int)(i.br.offset << 8) >> 6));
-}
-
-
-void dump_dpi(ARMDis* dis, ARMInstr i) {
-       fprintf(dis->dis_out, "%s%s", ops[i.dpi.all.opcode], cond[i.dpi.all.cond]);
-
-       if ((i.dpi.all.opcode < ARMOP_TST || i.dpi.all.opcode > ARMOP_CMN) && (i.dpi.all.s != 0)) {
-               fprintf(dis->dis_out, "s");
-       }
-
-       fprintf(dis->dis_out, "\t");
-
-       if ((i.dpi.all.opcode < ARMOP_TST) || (i.dpi.all.opcode > ARMOP_CMN)) {
-               /* for comparison operations Rd is ignored */
-               dump_reg(dis, i.dpi.all.rd);
-               fprintf(dis->dis_out, ", ");
-       }
-
-       if ((i.dpi.all.opcode != ARMOP_MOV) && (i.dpi.all.opcode != ARMOP_MVN)) {
-               /* for MOV/MVN Rn is ignored */
-               dump_reg(dis, i.dpi.all.rn);
-               fprintf(dis->dis_out, ", ");
-       }
-
-       if (i.dpi.all.type == 1) {
-               /* immediate */
-               if (i.dpi.op2_imm.rot != 0) {
-                       fprintf(dis->dis_out, "#%d, %d\t; 0x%x", i.dpi.op2_imm.imm, i.dpi.op2_imm.rot << 1,
-                               ARM_SCALE(i.dpi.op2_imm.imm, (i.dpi.op2_imm.rot << 1)) );
-               } else {
-                       fprintf(dis->dis_out, "#%d\t; 0x%x", i.dpi.op2_imm.imm, i.dpi.op2_imm.imm);
-               }
-       } else {
-               /* reg-reg */
-               if (i.dpi.op2_reg.tag == 0) {
-                       /* op2 is reg shift by imm */
-                       dump_reg(dis, i.dpi.op2_reg_imm.r2.rm);
-                       if (i.dpi.op2_reg_imm.imm.shift != 0) {
-                               fprintf(dis->dis_out, " %s #%d", shift_types[i.dpi.op2_reg_imm.r2.type], i.dpi.op2_reg_imm.imm.shift);
-                       }
-               } else {
-                       /* op2 is reg shift by reg */
-                       dump_reg(dis, i.dpi.op2_reg_reg.r2.rm);
-                       fprintf(dis->dis_out, " %s ", shift_types[i.dpi.op2_reg_reg.r2.type]);
-                       dump_reg(dis, i.dpi.op2_reg_reg.reg.rs);
-               }
-
-       }
-}
-
-void dump_wxfer(ARMDis* dis, ARMInstr i) {
-       fprintf(dis->dis_out, "%s%s%s%s\t",
-               (i.wxfer.all.ls == 0) ? "str" : "ldr",
-               cond[i.generic.cond],
-               (i.wxfer.all.b == 0) ? "" : "b",
-               (i.wxfer.all.ls != 0 && i.wxfer.all.wb != 0) ? "t" : "");
-       dump_reg(dis, i.wxfer.all.rd);
-       fprintf(dis->dis_out, ", [");
-       dump_reg(dis, i.wxfer.all.rn);
-       fprintf(dis->dis_out, "%s, ", (i.wxfer.all.p == 0) ? "]" : "");
-
-       if (i.wxfer.all.type == 0) { /* imm */
-               fprintf(dis->dis_out, "#%s%d", (i.wxfer.all.u == 0) ? "-" : "", i.wxfer.all.op2_imm);
-       } else {
-               dump_reg(dis, i.wxfer.op2_reg_imm.r2.rm);
-               if (i.wxfer.op2_reg_imm.imm.shift != 0) {
-                       fprintf(dis->dis_out, " %s #%d", shift_types[i.wxfer.op2_reg_imm.r2.type], i.wxfer.op2_reg_imm.imm.shift);
-               }
-       }
-
-       if (i.wxfer.all.p != 0) {
-               /* close pre-index instr, also check for write-back */
-               fprintf(dis->dis_out, "]%s", (i.wxfer.all.wb != 0) ? "!" : "");
-       }
-}
-
-void dump_hxfer(ARMDis* dis, ARMInstr i) {
-       fprintf(dis->dis_out, "%s%s%s%s\t",
-               (i.hxfer.ls == 0) ? "str" : "ldr",
-               cond[i.generic.cond],
-               (i.hxfer.s != 0) ? "s" : "",
-               (i.hxfer.h != 0) ? "h" : "b");
-       dump_reg(dis, i.hxfer.rd);
-       fprintf(dis->dis_out, ", [");
-       dump_reg(dis, i.hxfer.rn);
-       fprintf(dis->dis_out, "%s, ", (i.hxfer.p == 0) ? "]" : "");
-
-       if (i.hxfer.type != 0) { /* imm */
-               fprintf(dis->dis_out, "#%s%d", (i.hxfer.u == 0) ? "-" : "", (i.hxfer.imm_hi << 4) | i.hxfer.rm);
-       } else {
-               dump_reg(dis, i.hxfer.rm);
-       }
-
-       if (i.hxfer.p != 0) {
-               /* close pre-index instr, also check for write-back */
-               fprintf(dis->dis_out, "]%s", (i.hxfer.wb != 0) ? "!" : "");
-       }
-}
-
-
-void dump_mrt(ARMDis* dis, ARMInstr i) {
-       fprintf(dis->dis_out, "%s%s%s%s\t", (i.mrt.ls == 0) ? "stm" : "ldm", cond[i.mrt.cond],
-               (i.mrt.u == 0) ? "d" : "i", (i.mrt.p == 0) ? "a" : "b");
-       dump_reg(dis, i.mrt.rn);
-       fprintf(dis->dis_out, "%s, {", (i.mrt.wb != 0) ? "!" : "");
-       dump_reglist(dis, i.mrt.reg_list);
-       fprintf(dis->dis_out, "}");
-}
-
-
-void dump_swp(ARMDis* dis, ARMInstr i) {
-       fprintf(dis->dis_out, "swp%s%s ", cond[i.swp.cond], (i.swp.b != 0) ? "b" : "");
-       dump_reg(dis, i.swp.rd);
-       fprintf(dis->dis_out, ", ");
-       dump_reg(dis, i.swp.rm);
-       fprintf(dis->dis_out, ", [");
-       dump_reg(dis, i.swp.rn);
-       fprintf(dis->dis_out, "]");
-}
-
-
-void dump_mul(ARMDis* dis, ARMInstr i) {
-       fprintf(dis->dis_out, "%s%s%s\t", mul_ops[i.mul.opcode], cond[i.mul.cond], (i.mul.s != 0) ? "s" : "");
-       switch (i.mul.opcode) {
-       case ARMOP_MUL:
-               dump_reg(dis, i.mul.rd);
-               fprintf(dis->dis_out, ", ");
-               dump_reg(dis, i.mul.rm);
-               fprintf(dis->dis_out, ", ");
-               dump_reg(dis, i.mul.rs);
-               break;
-       case ARMOP_MLA:
-               dump_reg(dis, i.mul.rd);
-               fprintf(dis->dis_out, ", ");
-               dump_reg(dis, i.mul.rm);
-               fprintf(dis->dis_out, ", ");
-               dump_reg(dis, i.mul.rs);
-               fprintf(dis->dis_out, ", ");
-               dump_reg(dis, i.mul.rn);
-               break;
-       case ARMOP_UMULL:
-       case ARMOP_UMLAL:
-       case ARMOP_SMULL:
-       case ARMOP_SMLAL:
-               dump_reg(dis, i.mul.rd);
-               fprintf(dis->dis_out, ", ");
-               dump_reg(dis, i.mul.rn);
-               fprintf(dis->dis_out, ", ");
-               dump_reg(dis, i.mul.rm);
-               fprintf(dis->dis_out, ", ");
-               dump_reg(dis, i.mul.rs);
-               break;
-       default:
-               fprintf(dis->dis_out, "DCD 0x%x\t; <unknown>", i.raw);
-               break;
-       }
-}
-
-
-void dump_cdp(ARMDis* dis, ARMInstr i) {
-       fprintf(dis->dis_out, "cdp%s\tp%d, %d, ", cond[i.generic.cond], i.cdp.cpn, i.cdp.op);
-       dump_creg(dis, i.cdp.crd);
-       fprintf(dis->dis_out, ", ");
-       dump_creg(dis, i.cdp.crn);
-       fprintf(dis->dis_out, ", ");
-       dump_creg(dis, i.cdp.crm);
-
-       if (i.cdp.op2 != 0) {
-               fprintf(dis->dis_out, ", %d", i.cdp.op2);
-       }
-}
-
-
-void dump_cdt(ARMDis* dis, ARMInstr i) {
-       fprintf(dis->dis_out, "%s%s%s\tp%d, ", (i.cdt.ls == 0) ? "stc" : "ldc",
-               cond[i.generic.cond], (i.cdt.n != 0) ? "l" : "", i.cdt.cpn);
-       dump_creg(dis, i.cdt.crd);
-       fprintf(dis->dis_out, ", ");
-       dump_reg(dis, i.cdt.rn);
-
-       if (i.cdt.p == 0) {
-               fprintf(dis->dis_out, "]");
-       }
-
-       if (i.cdt.offs != 0) {
-               fprintf(dis->dis_out, ", #%d", i.cdt.offs);
-       }
-
-       if (i.cdt.p != 0) {
-               fprintf(dis->dis_out, "]%s", (i.cdt.wb != 0) ? "!" : "");
-       }
-}
-
-
-void dump_crt(ARMDis* dis, ARMInstr i) {
-       fprintf(dis->dis_out, "%s%s\tp%d, %d, ", (i.crt.ls == 0) ? "mrc" : "mcr",
-               cond[i.generic.cond], i.crt.cpn, i.crt.op1);
-       dump_reg(dis, i.crt.rd);
-       fprintf(dis->dis_out, ", ");
-       dump_creg(dis, i.crt.crn);
-       fprintf(dis->dis_out, ", ");
-       dump_creg(dis, i.crt.crm);
-
-       if (i.crt.op2 != 0) {
-               fprintf(dis->dis_out, ", %d", i.crt.op2);
-       }
-}
-
-
-void dump_msr(ARMDis* dis, ARMInstr i) {
-       fprintf(dis->dis_out, "msr%s\t%spsr_, ", cond[i.generic.cond],
-               (i.msr.all.sel == 0) ? "s" : "c");
-       if (i.msr.all.type == 0) {
-               /* reg */
-               fprintf(dis->dis_out, "%s, ", msr_fld[i.msr.all.fld]);
-               dump_reg(dis, i.msr.all.rm);
-       } else {
-               /* imm */
-               fprintf(dis->dis_out, "f, #%d", i.msr.op2_imm.imm << i.msr.op2_imm.rot);
-       }
-}
-
-
-void dump_mrs(ARMDis* dis, ARMInstr i) {
-       fprintf(dis->dis_out, "mrs%s\t", cond[i.generic.cond]);
-       dump_reg(dis, i.mrs.rd);
-       fprintf(dis->dis_out, ", %spsr", (i.mrs.sel == 0) ? "s" : "c");
-}
-
-
-void dump_swi(ARMDis* dis, ARMInstr i) {
-       fprintf(dis->dis_out, "swi%s\t%d", cond[i.generic.cond], i.swi.num);
-}
-
-
-void dump_clz(ARMDis* dis, ARMInstr i) {
-       fprintf(dis->dis_out, "clz\t");
-       dump_reg(dis, i.clz.rd);
-       fprintf(dis->dis_out, ", ");
-       dump_reg(dis, i.clz.rm);
-       fprintf(dis->dis_out, "\n");
-}
-
-
-
-void armdis_decode(ARMDis* dis, void* p, int size) {
-       int i;
-       arminstr_t* pi = (arminstr_t*)p;
-       ARMInstr instr;
-
-       if (dis == NULL) return;
-
-       chk_out(dis);
-
-       size/=sizeof(arminstr_t);
-
-       for (i=0; i<size; ++i) {
-               fprintf(dis->dis_out, "%p:\t%08x\t", pi, *pi);
-               dis->pi = pi;
-               instr.raw = *pi++;
-
-               if ((instr.raw & ARM_BR_MASK) == ARM_BR_TAG) {
-                       dump_br(dis, instr);
-               } else if ((instr.raw & ARM_SWP_MASK) == ARM_SWP_TAG) {
-                       dump_swp(dis, instr);
-               } else if ((instr.raw & ARM_MUL_MASK) == ARM_MUL_TAG) {
-                       dump_mul(dis, instr);
-               } else if ((instr.raw & ARM_CLZ_MASK) == ARM_CLZ_TAG) {
-                       dump_clz(dis, instr);
-               } else if ((instr.raw & ARM_WXFER_MASK) == ARM_WXFER_TAG) {
-                       dump_wxfer(dis, instr);
-               } else if ((instr.raw & ARM_HXFER_MASK) == ARM_HXFER_TAG) {
-                       dump_hxfer(dis, instr);
-               } else if ((instr.raw & ARM_DPI_MASK) == ARM_DPI_TAG) {
-                       dump_dpi(dis, instr);
-               } else if ((instr.raw & ARM_MRT_MASK) == ARM_MRT_TAG) {
-                       dump_mrt(dis, instr);
-               } else if ((instr.raw & ARM_CDP_MASK) == ARM_CDP_TAG) {
-                       dump_cdp(dis, instr);
-               } else if ((instr.raw & ARM_CDT_MASK) == ARM_CDT_TAG) {
-                       dump_cdt(dis, instr);
-               } else if ((instr.raw & ARM_CRT_MASK) == ARM_CRT_TAG) {
-                       dump_crt(dis, instr);
-               } else if ((instr.raw & ARM_MSR_MASK) == ARM_MSR_TAG) {
-                       dump_msr(dis, instr);
-               } else if ((instr.raw & ARM_MRS_MASK) == ARM_MRS_TAG) {
-                       dump_mrs(dis, instr);
-               } else if ((instr.raw & ARM_SWI_MASK) == ARM_SWI_TAG) {
-                       dump_swi(dis, instr);
-               } else {
-                       fprintf(dis->dis_out, "DCD 0x%x\t; <unknown>", instr.raw);
-               }
-
-               fprintf(dis->dis_out, "\n");
-       }
-}
-
-
-void armdis_open(ARMDis* dis, const char* dump_name) {
-       if (dis != NULL && dump_name != NULL) {
-               armdis_set_output(dis, fopen(dump_name, "w"));
-       }
-}
-
-
-void armdis_close(ARMDis* dis) {
-       if (dis->dis_out != NULL && dis->dis_out != stdout && dis->dis_out != stderr) {
-               fclose(dis->dis_out);
-               dis->dis_out = NULL;
-       }
-}
-
-
-void armdis_dump(ARMDis* dis, const char* dump_name, void* p, int size) {
-       armdis_open(dis, dump_name);
-       armdis_decode(dis, p, size);
-       armdis_close(dis);
-}
-
-
-void armdis_init(ARMDis* dis) {
-       if (dis != NULL) {
-               /* set to stdout */
-               armdis_set_output(dis, NULL);
-       }
-}
-
-
-
-
-void init_gdisasm() {
-       if (gdisasm == NULL) {
-               gdisasm = (ARMDis*)malloc(sizeof(ARMDis));
-               armdis_init(gdisasm);
-       }
-}
-
-void _armdis_set_output(FILE* f) {
-       init_gdisasm();
-       armdis_set_output(gdisasm, f);
-}
-
-FILE* _armdis_get_output() {
-       init_gdisasm();
-       return armdis_get_output(gdisasm);
-}
-
-void _armdis_decode(void* p, int size) {
-       init_gdisasm();
-       armdis_decode(gdisasm, p, size);
-}
-
-void _armdis_open(const char* dump_name) {
-       init_gdisasm();
-       armdis_open(gdisasm, dump_name);
-}
-
-void _armdis_close() {
-       init_gdisasm();
-       armdis_close(gdisasm);
-}
-
-void _armdis_dump(const char* dump_name, void* p, int size) {
-       init_gdisasm();
-       armdis_dump(gdisasm, dump_name, p, size);
-}
-
diff --git a/mono/arch/arm/arm-dis.h b/mono/arch/arm/arm-dis.h
deleted file mode 100644 (file)
index 8019499..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (c) 2002 Sergey Chaban <serge@wildwestsoftware.com>
- */
-
-#ifndef ARM_DIS
-#define ARM_DIS
-
-#include <stdlib.h>
-#include <stdio.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct _ARMDis {
-       FILE* dis_out;
-       void* pi;
-} ARMDis;
-
-
-void _armdis_set_output(FILE* f);
-FILE* _armdis_get_output(void);
-void _armdis_decode(void* p, int size);
-void _armdis_open(const char* dump_name);
-void _armdis_close(void);
-void _armdis_dump(const char* dump_name, void* p, int size);
-
-
-void armdis_init(ARMDis* dis);
-void armdis_set_output(ARMDis* dis, FILE* f);
-FILE* armdis_get_output(ARMDis* dis);
-void armdis_decode(ARMDis* dis, void* p, int size);
-void armdis_open(ARMDis* dis, const char* dump_name);
-void armdis_close(ARMDis* dis);
-void armdis_dump(ARMDis* dis, const char* dump_name, void* p, int size);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* ARM_DIS */
index cd3df077ff64502059fea31dc138f0528c5b03c4..05e83101039c2aef3d8c99a8bf48206ddf948650 100644 (file)
@@ -1002,6 +1002,7 @@ typedef struct {
 #define s390_tmhl(c, r, m)             S390_RI(c, 0xa72, r, m)
 #define s390_tmlh(c, r, m)             S390_RI(c, 0xa70, r, m)
 #define s390_tmll(c, r, m)             S390_RI(c, 0xa71, r, m)
+#define s390_tm(c, b, d, v)            S390_SI(c, 0x91, b, d, v)
 #define s390_x(c, r, x, b, d)          S390_RX(c, 0x57, r, x, b, d)
 #define s390_xihf(c, r, v)             S390_RIL_1(c, 0xc06, r, v)
 #define s390_xilf(c, r, v)             S390_RIL_1(c, 0xc07, r, v)
index 013c6caa596307b9aac11fc8c9c03d979ab80401..b3742cb943fceff38b5601b7ae8662ff2c7f2c63 100644 (file)
@@ -78,7 +78,7 @@
  * Changes which are already detected at runtime, like the addition
  * of icalls, do not require an increment.
  */
-#define MONO_CORLIB_VERSION 132
+#define MONO_CORLIB_VERSION 134
 
 typedef struct
 {
index 385dc6a8186c536f6503c1d3532d422d0cd351a8..12c0a762b9099ed31eb9e3d93e848ad3a648e017 100644 (file)
@@ -1062,6 +1062,8 @@ mono_gc_get_managed_allocator (MonoClass *klass, gboolean for_box, gboolean know
                return NULL;
        if (klass->byval_arg.type == MONO_TYPE_STRING) {
                atype = ATYPE_STRING;
+       } else if (!known_instance_size) {
+               return NULL;
        } else if (!klass->has_references) {
                if (for_box)
                        atype = ATYPE_FREEPTR_FOR_BOX;
index a36cad20fa98334b213c70499ed605e4fb6327b2..441b0a4271ce2118e96a4cb63c8139a775ab2343 100644 (file)
@@ -1285,6 +1285,9 @@ mono_type_get_name_full (MonoType *type, MonoTypeNameFormat format);
 char*
 mono_type_get_full_name (MonoClass *klass);
 
+char *
+mono_method_get_name_full (MonoMethod *method, gboolean signature, MonoTypeNameFormat format);
+
 MonoArrayType *mono_dup_array_type (MonoImage *image, MonoArrayType *a);
 MonoMethodSignature *mono_metadata_signature_deep_dup (MonoImage *image, MonoMethodSignature *sig);
 
index 9c350c0e2a548105372091feccabbedb59f590da..ca7567985ff3193344445353b7920d60b46a516c 100644 (file)
@@ -1597,7 +1597,7 @@ mono_class_setup_fields (MonoClass *class)
                return;
        }
 
-       if (layout == TYPE_ATTRIBUTE_AUTO_LAYOUT)
+       if (layout == TYPE_ATTRIBUTE_AUTO_LAYOUT && !(mono_is_corlib_image (class->image) && !strcmp (class->name_space, "System") && !strcmp (class->name, "ValueType")))
                blittable = FALSE;
 
        /* Prevent infinite loops if the class references itself */
@@ -1772,6 +1772,20 @@ mono_type_get_basic_type_from_generic (MonoType *type)
        return type;
 }
 
+static gboolean
+type_has_references (MonoClass *klass, MonoType *ftype)
+{
+       if (MONO_TYPE_IS_REFERENCE (ftype) || IS_GC_REFERENCE (klass, ftype) || ((MONO_TYPE_ISSTRUCT (ftype) && mono_class_has_references (mono_class_from_mono_type (ftype)))))
+               return TRUE;
+       if (!ftype->byref && (ftype->type == MONO_TYPE_VAR || ftype->type == MONO_TYPE_MVAR)) {
+               MonoGenericParam *gparam = ftype->data.generic_param;
+
+               if (gparam->gshared_constraint)
+                       return mono_class_has_references (mono_class_from_mono_type (gparam->gshared_constraint));
+       }
+       return FALSE;
+}
+
 /*
  * mono_class_layout_fields:
  * @class: a class
@@ -1832,7 +1846,7 @@ mono_class_layout_fields (MonoClass *class)
                if (!(field->type->attrs & FIELD_ATTRIBUTE_STATIC)) {
                        ftype = mono_type_get_underlying_type (field->type);
                        ftype = mono_type_get_basic_type_from_generic (ftype);
-                       if (MONO_TYPE_IS_REFERENCE (ftype) || IS_GC_REFERENCE (ftype) || ((MONO_TYPE_ISSTRUCT (ftype) && mono_class_has_references (mono_class_from_mono_type (ftype)))))
+                       if (type_has_references (class, ftype))
                                class->has_references = TRUE;
                }
        }
@@ -1845,7 +1859,7 @@ mono_class_layout_fields (MonoClass *class)
                if (field->type->attrs & FIELD_ATTRIBUTE_STATIC) {
                        ftype = mono_type_get_underlying_type (field->type);
                        ftype = mono_type_get_basic_type_from_generic (ftype);
-                       if (MONO_TYPE_IS_REFERENCE (ftype) || IS_GC_REFERENCE (ftype) || ((MONO_TYPE_ISSTRUCT (ftype) && mono_class_has_references (mono_class_from_mono_type (ftype)))))
+                       if (type_has_references (class, ftype))
                                class->has_static_refs = TRUE;
                }
        }
@@ -1857,7 +1871,7 @@ mono_class_layout_fields (MonoClass *class)
 
                ftype = mono_type_get_underlying_type (field->type);
                ftype = mono_type_get_basic_type_from_generic (ftype);
-               if (MONO_TYPE_IS_REFERENCE (ftype) || IS_GC_REFERENCE (ftype) || ((MONO_TYPE_ISSTRUCT (ftype) && mono_class_has_references (mono_class_from_mono_type (ftype))))) {
+               if (type_has_references (class, ftype)) {
                        if (field->type->attrs & FIELD_ATTRIBUTE_STATIC)
                                class->has_static_refs = TRUE;
                        else
@@ -1908,7 +1922,7 @@ mono_class_layout_fields (MonoClass *class)
                                ftype = mono_type_get_underlying_type (field->type);
                                ftype = mono_type_get_basic_type_from_generic (ftype);
                                if (gc_aware_layout) {
-                                       if (MONO_TYPE_IS_REFERENCE (ftype) || IS_GC_REFERENCE (ftype) || ((MONO_TYPE_ISSTRUCT (ftype) && mono_class_has_references (mono_class_from_mono_type (ftype))))) {
+                                       if (type_has_references (class, ftype)) {
                                                if (pass == 1)
                                                        continue;
                                        } else {
@@ -1930,7 +1944,7 @@ mono_class_layout_fields (MonoClass *class)
                                /* if the field has managed references, we need to force-align it
                                 * see bug #77788
                                 */
-                               if (MONO_TYPE_IS_REFERENCE (ftype) || IS_GC_REFERENCE (ftype) || ((MONO_TYPE_ISSTRUCT (ftype) && mono_class_has_references (mono_class_from_mono_type (ftype)))))
+                               if (type_has_references (class, ftype))
                                        align = MAX (align, sizeof (gpointer));
 
                                class->min_align = MAX (align, class->min_align);
@@ -1985,7 +1999,7 @@ mono_class_layout_fields (MonoClass *class)
                        field->offset += sizeof (MonoObject);
                        ftype = mono_type_get_underlying_type (field->type);
                        ftype = mono_type_get_basic_type_from_generic (ftype);
-                       if (MONO_TYPE_IS_REFERENCE (ftype) || ((MONO_TYPE_ISSTRUCT (ftype) && mono_class_has_references (mono_class_from_mono_type (ftype))))) {
+                       if (type_has_references (class, ftype)) {
                                if (field->offset % sizeof (gpointer)) {
                                        mono_class_set_failure (class, MONO_EXCEPTION_TYPE_LOAD, NULL);
                                }
@@ -4814,6 +4828,11 @@ mono_method_get_vtable_slot (MonoMethod *method)
                        MonoClass *gklass;
                        int i;
 
+                       if (!method->klass->generic_class) {
+                               g_assert (method->is_inflated);
+                               return mono_method_get_vtable_slot (((MonoMethodInflated*)method)->declaring);
+                       }
+
                        /* This can happen for abstract methods of generic instances due to the shortcut code in mono_class_setup_vtable_general (). */
                        g_assert (method->klass->generic_class);
                        gklass = method->klass->generic_class->container_class;
index 0a34822260d09e773e8b67a05e17705e4ea9e5fc..0b35809e33260ef612d2c6b96a7b3a062080470c 100644 (file)
@@ -748,18 +748,24 @@ mono_field_full_name (MonoClassField *field)
 }
 
 char *
-mono_method_full_name (MonoMethod *method, gboolean signature)
+mono_method_get_name_full (MonoMethod *method, gboolean signature, MonoTypeNameFormat format)
 {
        char *res;
        char wrapper [64];
-       char *klass_desc = mono_type_full_name (&method->klass->byval_arg);
+       char *klass_desc = mono_type_get_name_full (&method->klass->byval_arg, format);
        char *inst_desc = NULL;
 
        if (method->is_inflated && ((MonoMethodInflated*)method)->context.method_inst) {
                GString *str = g_string_new ("");
-               g_string_append (str, "<");
+               if (format == MONO_TYPE_NAME_FORMAT_IL)
+                       g_string_append (str, "<");
+               else
+                       g_string_append (str, "[");
                ginst_get_desc (str, ((MonoMethodInflated*)method)->context.method_inst);
-               g_string_append (str, ">");
+               if (format == MONO_TYPE_NAME_FORMAT_IL)
+                       g_string_append_c (str, '>');
+               else
+                       g_string_append_c (str, ']');
 
                inst_desc = str->str;
                g_string_free (str, FALSE);
@@ -767,9 +773,15 @@ mono_method_full_name (MonoMethod *method, gboolean signature)
                MonoGenericContainer *container = mono_method_get_generic_container (method);
 
                GString *str = g_string_new ("");
-               g_string_append (str, "<");
+               if (format == MONO_TYPE_NAME_FORMAT_IL)
+                       g_string_append (str, "<");
+               else
+                       g_string_append (str, "[");
                ginst_get_desc (str, container->context.method_inst);
-               g_string_append (str, ">");
+               if (format == MONO_TYPE_NAME_FORMAT_IL)
+                       g_string_append_c (str, '>');
+               else
+                       g_string_append_c (str, ']');
 
                inst_desc = str->str;
                g_string_free (str, FALSE);
@@ -801,6 +813,12 @@ mono_method_full_name (MonoMethod *method, gboolean signature)
        return res;
 }
 
+char *
+mono_method_full_name (MonoMethod *method, gboolean signature)
+{
+       return mono_method_get_name_full (method, signature, MONO_TYPE_NAME_FORMAT_IL);
+}
+
 static const char*
 print_name_space (MonoClass *klass)
 {
index 3dd10f1738bcca34f37709d2331372134adfe6ad..db0421ec9ffbab9d2b9a6f2ba9d502672a06268b 100644 (file)
@@ -284,13 +284,6 @@ typedef struct _MonoThunkFreeList {
 
 typedef struct _MonoJitCodeHash MonoJitCodeHash;
 
-typedef struct _MonoTlsDataRecord MonoTlsDataRecord;
-struct _MonoTlsDataRecord {
-       MonoTlsDataRecord *next;
-       guint32 tls_offset;
-       guint32 size;
-};
-
 struct _MonoDomain {
        /*
         * This lock must never be taken before the loader lock,
@@ -368,7 +361,6 @@ struct _MonoDomain {
        MonoMethod         *private_invoke_method;
        /* Used to store offsets of thread and context static fields */
        GHashTable         *special_static_fields;
-       MonoTlsDataRecord  *tlsrec_list;
        /* 
         * This must be a GHashTable, since these objects can't be finalized
         * if the hashtable contains a GC visible reference to them.
index f022b5764970c4a0210ad8b9d8aac7447d93c91a..cea93e2c28be941244ceeb1987be3cd5afbec682 100755 (executable)
@@ -1122,11 +1122,6 @@ mono_domain_free (MonoDomain *domain, gboolean force)
        mono_g_hash_table_destroy (domain->env);
        domain->env = NULL;
 
-       if (domain->tlsrec_list) {
-               mono_thread_destroy_domain_tls (domain);
-               domain->tlsrec_list = NULL;
-       }
-
        mono_reflection_cleanup_domain (domain);
 
        /* This must be done before type_hash is freed */
index 8bd130a6359680fc7dffed134dc42e3c6d59b88b..a0890de0715645c15ff7c798fc4cddbb201820cc 100644 (file)
@@ -62,7 +62,7 @@
 } while (0)
 
 /* useful until we keep track of gc-references in corlib etc. */
-#define IS_GC_REFERENCE(t) (mono_gc_is_moving () ? FALSE : ((t)->type == MONO_TYPE_U && class->image == mono_defaults.corlib))
+#define IS_GC_REFERENCE(class,t) (mono_gc_is_moving () ? FALSE : ((t)->type == MONO_TYPE_U && (class)->image == mono_defaults.corlib))
 
 void   mono_object_register_finalizer               (MonoObject  *obj);
 void   ves_icall_System_GC_InternalCollect          (int          generation);
index 20e7cae5831d5dc404c7516f55be8cc992fd07fb..4bcdfd55e0dce63229d6c0eadef5285cdf7962f2 100644 (file)
@@ -23,4 +23,8 @@
  * Due to a bug in the linker on Darwin we need to initialize this struct, or there will be
  * "undefined symbol" errors.
  */
+#if defined(__APPLE__)
 GCStats gc_stats = {};
+#else
+GCStats gc_stats;
+#endif
\ No newline at end of file
index b35f2f38466496b452da7848824bdf0dcb05eb92..efd062d4405b07439cce8e2a175bcf36ed5f3c5a 100644 (file)
@@ -64,13 +64,8 @@ static GSList *domains_to_finalize= NULL;
 static MonoMList *threads_to_finalize = NULL;
 
 static gboolean finalizer_thread_exited;
-static int num_to_finalize;
-
-/* These use finalizer_mutex */
-/* Used to wait for finalizer_thread_exited to become TRUE */
+/* Uses finalizer_mutex */
 static mono_cond_t exited_cond;
-/* Used to wait for num_to_finalize to become > 0 */
-static mono_cond_t finalizer_cond;
 
 static MonoInternalThread *gc_thread;
 
@@ -502,8 +497,6 @@ ves_icall_System_GC_WaitForPendingFinalizers (void)
        if (gc_thread == NULL)
                return;
 
-       /* Can't use cond vars here, since they don't contain the wapi interrupt logic */
-
        ResetEvent (pending_done_event);
        mono_gc_finalize_notify ();
        /* g_print ("Waiting for pending finalizers....\n"); */
@@ -991,6 +984,10 @@ mono_gc_GCHandle_CheckCurrentDomain (guint32 gchandle)
        return mono_gchandle_is_in_domain (gchandle, mono_domain_get ());
 }
 
+#ifdef MONO_HAS_SEMAPHORES
+static MonoSemType finalizer_sem;
+#endif
+static HANDLE finalizer_event;
 static volatile gboolean finished=FALSE;
 
 void
@@ -1003,10 +1000,11 @@ mono_gc_finalize_notify (void)
        if (mono_gc_is_null ())
                return;
 
-       mono_mutex_lock (&finalizer_mutex);
-       num_to_finalize ++;
-       mono_cond_signal (&finalizer_cond);
-       mono_mutex_unlock (&finalizer_mutex);
+#ifdef MONO_HAS_SEMAPHORES
+       MONO_SEM_POST (&finalizer_sem);
+#else
+       SetEvent (finalizer_event);
+#endif
 }
 
 #ifdef HAVE_BOEHM_GC
@@ -1082,29 +1080,28 @@ finalize_domain_objects (DomainFinalizationReq *req)
 static guint32
 finalizer_thread (gpointer unused)
 {
+       gboolean wait = TRUE;
+
        while (!finished) {
-               /*
-                * Wait to be notified that there's at least one
+               /* Wait to be notified that there's at least one
                 * finaliser to run
                 */
-               g_assert (mono_domain_get () == mono_get_root_domain ());
 
-               gboolean has_work = FALSE;
-               while (TRUE) {
-                       mono_gc_set_skip_thread (TRUE);
-                       MONO_PREPARE_BLOCKING;
-                       mono_mutex_lock (&finalizer_mutex);
-                       if (!num_to_finalize)
-                               mono_cond_wait (&finalizer_cond, &finalizer_mutex);
-                       else
-                               has_work = TRUE;
-                       mono_mutex_unlock (&finalizer_mutex);
-                       MONO_FINISH_BLOCKING;
-                       mono_gc_set_skip_thread (FALSE);
+               g_assert (mono_domain_get () == mono_get_root_domain ());
+               mono_gc_set_skip_thread (TRUE);
+               MONO_PREPARE_BLOCKING
 
-                       if (has_work || finished)
-                               break;
+               if (wait) {
+               /* An alertable wait is required so this thread can be suspended on windows */
+#ifdef MONO_HAS_SEMAPHORES
+                       MONO_SEM_WAIT_ALERTABLE (&finalizer_sem, TRUE);
+#else
+                       WaitForSingleObjectEx (finalizer_event, INFINITE, TRUE);
+#endif
                }
+               wait = TRUE;
+               MONO_FINISH_BLOCKING
+               mono_gc_set_skip_thread (FALSE);
 
                mono_threads_perform_thread_dump ();
 
@@ -1134,12 +1131,16 @@ finalizer_thread (gpointer unused)
 
                reference_queue_proccess_all ();
 
+#ifdef MONO_HAS_SEMAPHORES
                /* Avoid posting the pending done event until there are pending finalizers */
-               mono_mutex_lock (&finalizer_mutex);
-               num_to_finalize --;
-               if (num_to_finalize == 0)
+               if (MONO_SEM_TIMEDWAIT (&finalizer_sem, 0) == 0)
+                       /* Don't wait again at the start of the loop */
+                       wait = FALSE;
+               else
+                       SetEvent (pending_done_event);
+#else
                        SetEvent (pending_done_event);
-               mono_mutex_unlock (&finalizer_mutex);
+#endif
        }
 
        mono_finalizer_lock ();
@@ -1184,11 +1185,15 @@ mono_gc_init (void)
                gc_disabled = TRUE;
                return;
        }
-
-       mono_cond_init (&finalizer_cond, 0);
+       
+       finalizer_event = CreateEvent (NULL, FALSE, FALSE, NULL);
+       g_assert (finalizer_event);
        pending_done_event = CreateEvent (NULL, TRUE, FALSE, NULL);
        g_assert (pending_done_event);
        mono_cond_init (&exited_cond, 0);
+#ifdef MONO_HAS_SEMAPHORES
+       MONO_SEM_INIT (&finalizer_sem, 0);
+#endif
 
 #ifndef LAZY_GC_THREAD_CREATION
        mono_gc_init_finalizer_thread ();
index 93c3bb54dbd6b7d9470de5f4c0ffce4bda608dbf..37b71880d80936898afedcf3efff4441d9ee61ad 100644 (file)
@@ -812,12 +812,9 @@ ICALL(SECSTRING_2, "EncryptInternal", ves_icall_System_Security_SecureString_Enc
 #endif /* !DISABLE_POLICY_EVIDENCE */
 
 ICALL_TYPE(SECMAN, "System.Security.SecurityManager", SECMAN_1)
-ICALL(SECMAN_1, "GetLinkDemandSecurity", ves_icall_System_Security_SecurityManager_GetLinkDemandSecurity)
-ICALL(SECMAN_2, "get_CheckExecutionRights", ves_icall_System_Security_SecurityManager_get_CheckExecutionRights)
-ICALL(SECMAN_3, "get_RequiresElevatedPermissions", mono_security_core_clr_require_elevated_permissions)
-ICALL(SECMAN_4, "get_SecurityEnabled", ves_icall_System_Security_SecurityManager_get_SecurityEnabled)
-ICALL(SECMAN_5, "set_CheckExecutionRights", ves_icall_System_Security_SecurityManager_set_CheckExecutionRights)
-ICALL(SECMAN_6, "set_SecurityEnabled", ves_icall_System_Security_SecurityManager_set_SecurityEnabled)
+ICALL(SECMAN_1, "get_RequiresElevatedPermissions", mono_security_core_clr_require_elevated_permissions)
+ICALL(SECMAN_2, "get_SecurityEnabled", ves_icall_System_Security_SecurityManager_get_SecurityEnabled)
+ICALL(SECMAN_3, "set_SecurityEnabled", ves_icall_System_Security_SecurityManager_set_SecurityEnabled)
 
 ICALL_TYPE(STRING, "System.String", STRING_1)
 ICALL(STRING_1, ".ctor(char*)", ves_icall_System_String_ctor_RedirectToCreateString)
@@ -910,29 +907,27 @@ ICALL(SEMA_3, "ReleaseSemaphore_internal(intptr,int,bool&)", ves_icall_System_Th
 
 ICALL_TYPE(THREAD, "System.Threading.Thread", THREAD_1)
 ICALL(THREAD_1, "Abort_internal(System.Threading.InternalThread,object)", ves_icall_System_Threading_Thread_Abort)
-ICALL(THREAD_1aa, "AllocTlsData", mono_thread_alloc_tls)
 ICALL(THREAD_1a, "ByteArrayToCurrentDomain(byte[])", ves_icall_System_Threading_Thread_ByteArrayToCurrentDomain)
 ICALL(THREAD_1b, "ByteArrayToRootDomain(byte[])", ves_icall_System_Threading_Thread_ByteArrayToRootDomain)
 ICALL(THREAD_2, "ClrState(System.Threading.InternalThread,System.Threading.ThreadState)", ves_icall_System_Threading_Thread_ClrState)
 ICALL(THREAD_2a, "ConstructInternalThread", ves_icall_System_Threading_Thread_ConstructInternalThread)
 ICALL(THREAD_3, "CurrentInternalThread_internal", mono_thread_internal_current)
-ICALL(THREAD_3a, "DestroyTlsData", mono_thread_destroy_tls)
 ICALL(THREAD_55, "GetAbortExceptionState", ves_icall_System_Threading_Thread_GetAbortExceptionState)
 ICALL(THREAD_7, "GetDomainID", ves_icall_System_Threading_Thread_GetDomainID)
 ICALL(THREAD_8, "GetName_internal(System.Threading.InternalThread)", ves_icall_System_Threading_Thread_GetName_internal)
-ICALL(THREAD_57, "GetPriority(System.Threading.InternalThread)", ves_icall_System_Threading_Thread_GetPriority)
+ICALL(THREAD_57, "GetPriorityNative", ves_icall_System_Threading_Thread_GetPriority)
 ICALL(THREAD_11, "GetState(System.Threading.InternalThread)", ves_icall_System_Threading_Thread_GetState)
-ICALL(THREAD_53, "Interrupt_internal(System.Threading.InternalThread)", ves_icall_System_Threading_Thread_Interrupt_internal)
-ICALL(THREAD_12, "Join_internal(System.Threading.InternalThread,int,intptr)", ves_icall_System_Threading_Thread_Join_internal)
+ICALL(THREAD_53, "InterruptInternal", ves_icall_System_Threading_Thread_Interrupt_internal)
+ICALL(THREAD_12, "JoinInternal", ves_icall_System_Threading_Thread_Join_internal)
 ICALL(THREAD_13, "MemoryBarrier", ves_icall_System_Threading_Thread_MemoryBarrier)
-ICALL(THREAD_14, "ResetAbort_internal()", ves_icall_System_Threading_Thread_ResetAbort)
-ICALL(THREAD_15, "Resume_internal()", ves_icall_System_Threading_Thread_Resume)
+ICALL(THREAD_14, "ResetAbortNative", ves_icall_System_Threading_Thread_ResetAbort)
+ICALL(THREAD_15, "ResumeInternal", ves_icall_System_Threading_Thread_Resume)
 ICALL(THREAD_18, "SetName_internal(System.Threading.InternalThread,string)", ves_icall_System_Threading_Thread_SetName_internal)
-ICALL(THREAD_58, "SetPriority(System.Threading.InternalThread,int)", ves_icall_System_Threading_Thread_SetPriority)
+ICALL(THREAD_58, "SetPriorityNative", ves_icall_System_Threading_Thread_SetPriority)
 ICALL(THREAD_21, "SetState(System.Threading.InternalThread,System.Threading.ThreadState)", ves_icall_System_Threading_Thread_SetState)
-ICALL(THREAD_22, "Sleep_internal", ves_icall_System_Threading_Thread_Sleep_internal)
+ICALL(THREAD_22, "SleepInternal", ves_icall_System_Threading_Thread_Sleep_internal)
 ICALL(THREAD_54, "SpinWait_nop", ves_icall_System_Threading_Thread_SpinWait_nop)
-ICALL(THREAD_23, "Suspend_internal(System.Threading.InternalThread)", ves_icall_System_Threading_Thread_Suspend)
+ICALL(THREAD_23, "SuspendInternal", ves_icall_System_Threading_Thread_Suspend)
 ICALL(THREAD_56, "SystemMaxStackStize", mono_threads_get_max_stack_size)
 ICALL(THREAD_25, "Thread_internal", ves_icall_System_Threading_Thread_Thread_internal)
 ICALL(THREAD_26, "VolatileRead(byte&)", ves_icall_System_Threading_Thread_VolatileRead1)
@@ -961,7 +956,7 @@ ICALL(THREAD_48, "VolatileWrite(uint&,uint)", ves_icall_System_Threading_Thread_
 ICALL(THREAD_49, "VolatileWrite(uint16&,uint16)", ves_icall_System_Threading_Thread_VolatileWrite2)
 ICALL(THREAD_50, "VolatileWrite(uintptr&,uintptr)", ves_icall_System_Threading_Thread_VolatileWriteIntPtr)
 ICALL(THREAD_51, "VolatileWrite(ulong&,ulong)", ves_icall_System_Threading_Thread_VolatileWrite8)
-ICALL(THREAD_9, "Yield", ves_icall_System_Threading_Thread_Yield)
+ICALL(THREAD_9, "YieldInternal", ves_icall_System_Threading_Thread_Yield)
 ICALL(THREAD_52, "current_lcid()", ves_icall_System_Threading_Thread_current_lcid)
 
 ICALL_TYPE(THREADP, "System.Threading.ThreadPool", THREADP_1)
index d2417e862953874d768d7bbb9973c3a0f9c5871d..38a7a5c20e2862a83ab8a3abebe8519749735060 100644 (file)
@@ -560,7 +560,7 @@ MONO_API void
 mono_win32_compat_ZeroMemory (gpointer dest, gsize length);
 
 void
-mono_marshal_find_nonzero_bit_offset (guint8 *buf, int len, int *byte_offset, guint8 *bitmask);
+mono_marshal_find_nonzero_bit_offset (guint8 *buf, int len, int *byte_offset, guint8 *bitmask) MONO_LLVM_INTERNAL;
 
 MonoMethodSignature*
 mono_signature_no_pinvoke (MonoMethod *method);
index 05c563bad344be1e286755c3c185f5af1f9513a3..15482c9771dfa19b8570bcbf8fa8bacf15c5c015 100644 (file)
@@ -431,7 +431,6 @@ struct _MonoThread {
        MonoObject obj;
        struct _MonoInternalThread *internal_thread;
        MonoObject *start_obj;
-       MonoObject *ec_to_set;
 };
 
 typedef struct {
index 7fe3700dde8b80806df68786cd998b9e4f386808..cc42ab867a124b20915b2bd4ad431e0571da77a6 100644 (file)
@@ -167,23 +167,8 @@ DECL_OFFSET(MonoLMF, esi)
 DECL_OFFSET(MonoLMF, ebp)
 DECL_OFFSET(MonoLMF, eip)
 #elif defined(TARGET_AMD64)
-DECL_OFFSET(MonoContext, rax)
-DECL_OFFSET(MonoContext, rcx)
-DECL_OFFSET(MonoContext, rdx)
-DECL_OFFSET(MonoContext, rbx)
-DECL_OFFSET(MonoContext, rbp)
-DECL_OFFSET(MonoContext, rsi)
-DECL_OFFSET(MonoContext, rdi)
-DECL_OFFSET(MonoContext, rsp)
-DECL_OFFSET(MonoContext, r8)
-DECL_OFFSET(MonoContext, r9)
-DECL_OFFSET(MonoContext, r10)
-DECL_OFFSET(MonoContext, r11)
-DECL_OFFSET(MonoContext, r12)
-DECL_OFFSET(MonoContext, r13)
-DECL_OFFSET(MonoContext, r14)
-DECL_OFFSET(MonoContext, r15)
-DECL_OFFSET(MonoContext, rip)
+DECL_OFFSET(MonoContext, gregs)
+DECL_OFFSET(MonoContext, fregs)
 
 #ifdef TARGET_WIN32
 DECL_OFFSET(MonoLMF, lmf_addr)
@@ -195,7 +180,7 @@ DECL_OFFSET(MonoLMF, rip)
 
 DECL_OFFSET(DynCallArgs, res)
 
-DECL_OFFSET(MonoLMFTramp, regs)
+DECL_OFFSET(MonoLMFTramp, ctx)
 DECL_OFFSET(MonoLMFTramp, lmf_addr)
 #elif defined(TARGET_ARM)
 DECL_OFFSET(MonoLMF, sp)
index 5aea823b48b27b068991d15c1b7b1200b2cf0d83..b326bd84233b7374aa73b2c3a541a1c591465439 100644 (file)
@@ -5803,14 +5803,6 @@ mono_async_result_invoke (MonoAsyncResult *ares, MonoObject **exc)
 
        thread = mono_thread_internal_current ();
 
-       if (!ares->execution_context) {
-               ares->original_context = NULL;
-       } else {
-               /* use captured ExecutionContext (if available) */
-               MONO_OBJECT_SETREF (ares, original_context, mono_thread_get_execution_context ());
-               mono_thread_set_execution_context (ares->execution_context);
-       }
-
        ac = (MonoAsyncCall*) ares->object_data;
        if (!ac) {
                thread->async_invoke_method = ((MonoDelegate*) ares->async_delegate)->method;
@@ -5844,12 +5836,6 @@ mono_async_result_invoke (MonoAsyncResult *ares, MonoObject **exc)
                }
        }
 
-       /* restore original thread execution context if flow isn't suppressed, i.e. non null */
-       if (ares->original_context) {
-               mono_thread_set_execution_context (ares->original_context);
-               ares->original_context = NULL;
-       }
-
        return res;
 }
 
index d085e1c008e29a830f876bc7655a531ae86e8695..16b0752e186959cb79a05982a54298602b7db16f 100644 (file)
@@ -220,6 +220,38 @@ mono_reflection_init (void)
 {
 }
 
+static inline void
+dynamic_image_lock (MonoDynamicImage *image)
+{
+       mono_image_lock ((MonoImage*)image);
+}
+
+static inline void
+dynamic_image_unlock (MonoDynamicImage *image)
+{
+       mono_image_unlock ((MonoImage*)image);
+}
+
+static void
+register_dyn_token (MonoDynamicImage *assembly, guint32 token, MonoObject *obj)
+{
+       dynamic_image_lock (assembly);
+       mono_g_hash_table_insert (assembly->tokens, GUINT_TO_POINTER (token), obj);
+       dynamic_image_unlock (assembly);
+}
+
+static MonoObject*
+lookup_dyn_token (MonoDynamicImage *assembly, guint32 token)
+{
+       MonoObject *obj;
+
+       dynamic_image_lock (assembly);
+       obj = mono_g_hash_table_lookup (assembly->tokens, GUINT_TO_POINTER (token));
+       dynamic_image_unlock (assembly);
+
+       return obj;
+}
+
 static void
 sigbuffer_init (SigBuffer *buf, int size)
 {
@@ -2382,7 +2414,7 @@ mono_image_typedef_or_ref_full (MonoDynamicImage *assembly, MonoType *type, gboo
                        (type->type != MONO_TYPE_MVAR)) {
                MonoReflectionTypeBuilder *tb = mono_class_get_ref_info (klass);
                token = MONO_TYPEDEFORREF_TYPEDEF | (tb->table_idx << MONO_TYPEDEFORREF_BITS);
-               mono_g_hash_table_insert (assembly->tokens, GUINT_TO_POINTER (token), mono_class_get_ref_info (klass));
+               register_dyn_token (assembly, token, mono_class_get_ref_info (klass));
                return token;
        }
 
@@ -2405,7 +2437,7 @@ mono_image_typedef_or_ref_full (MonoDynamicImage *assembly, MonoType *type, gboo
        token = MONO_TYPEDEFORREF_TYPEREF | (table->next_idx << MONO_TYPEDEFORREF_BITS); /* typeref */
        g_hash_table_insert (assembly->typeref, type, GUINT_TO_POINTER(token));
        table->next_idx ++;
-       mono_g_hash_table_insert (assembly->tokens, GUINT_TO_POINTER (token), mono_class_get_ref_info (klass));
+       register_dyn_token (assembly, token, mono_class_get_ref_info (klass));
        return token;
 }
 
@@ -4788,7 +4820,7 @@ mono_image_insert_string (MonoReflectionModuleBuilder *module, MonoString *str)
                idx = assembly->us.index ++;
        }
 
-       mono_g_hash_table_insert (assembly->tokens, GUINT_TO_POINTER (MONO_TOKEN_STRING | idx), str);
+       register_dyn_token (assembly, MONO_TOKEN_STRING | idx, (MonoObject*)str);
 
        return MONO_TOKEN_STRING | idx;
 }
@@ -4888,7 +4920,7 @@ mono_image_create_method_token (MonoDynamicImage *assembly, MonoObject *obj, Mon
        }
 
        g_hash_table_insert (assembly->vararg_aux_hash, GUINT_TO_POINTER (token), sig);
-       mono_g_hash_table_insert (assembly->tokens, GUINT_TO_POINTER (token), obj);
+       register_dyn_token (assembly, token, obj);
        return token;
 }
 
@@ -5059,13 +5091,17 @@ mono_image_create_token (MonoDynamicImage *assembly, MonoObject *obj,
 void
 mono_image_register_token (MonoDynamicImage *assembly, guint32 token, MonoObject *obj)
 {
-       MonoObject *prev = mono_g_hash_table_lookup (assembly->tokens, GUINT_TO_POINTER (token));
+       MonoObject *prev;
+
+       dynamic_image_lock (assembly);
+       prev = mono_g_hash_table_lookup (assembly->tokens, GUINT_TO_POINTER (token));
        if (prev) {
                /* There could be multiple MethodInfo objects with the same token */
                //g_assert (prev == obj);
        } else {
                mono_g_hash_table_insert (assembly->tokens, GUINT_TO_POINTER (token), obj);
        }
+       dynamic_image_unlock (assembly);
 }
 
 static MonoDynamicImage*
@@ -7484,6 +7520,9 @@ mono_reflection_get_type_internal (MonoImage *rootimage, MonoImage* image, MonoT
        if (!image)
                image = mono_defaults.corlib;
 
+       if (!rootimage)
+               rootimage = mono_defaults.corlib;
+
        if (ignorecase) {
                MonoError error;
                klass = mono_class_from_name_case_checked (image, info->name_space, info->name, &error);
@@ -10025,8 +10064,7 @@ mono_reflection_setup_internal_class (MonoReflectionTypeBuilder *tb)
                g_assert (mono_class_get_ref_info (klass) == tb);
        }
 
-       mono_g_hash_table_insert (tb->module->dynamic_image->tokens,
-               GUINT_TO_POINTER (MONO_TOKEN_TYPE_DEF | tb->table_idx), tb);
+       register_dyn_token (tb->module->dynamic_image, MONO_TOKEN_TYPE_DEF | tb->table_idx, (MonoObject*)tb);
 
        if (parent != NULL) {
                mono_class_setup_parent (klass, parent);
@@ -11825,7 +11863,7 @@ mono_reflection_create_dynamic_method (MonoReflectionDynamicMethod *mb)
 gboolean
 mono_reflection_is_valid_dynamic_token (MonoDynamicImage *image, guint32 token)
 {
-       return mono_g_hash_table_lookup (image->tokens, GUINT_TO_POINTER (token)) != NULL;
+       return lookup_dyn_token (image, token) != NULL;
 }
 
 MonoMethodSignature *
@@ -11862,9 +11900,7 @@ mono_reflection_lookup_dynamic_token (MonoImage *image, guint32 token, gboolean
        MonoObject *obj;
        MonoClass *klass;
 
-       mono_loader_lock ();
-       obj = mono_g_hash_table_lookup (assembly->tokens, GUINT_TO_POINTER (token));
-       mono_loader_unlock ();
+       obj = lookup_dyn_token (assembly, token);
        if (!obj) {
                if (valid_token)
                        g_error ("Could not find required dynamic token 0x%08x", token);
index c35a3406b899dd2b63143cec3009cb841a295a20..ef08c679bad43cd3d2daceaf305249ec73d8d82e 100644 (file)
@@ -69,8 +69,10 @@ static mono_mutex_t remoting_mutex;
 static gboolean remoting_mutex_inited;
 
 static MonoClass *byte_array_class;
+#ifndef DISABLE_JIT
 static MonoMethod *method_rs_serialize, *method_rs_deserialize, *method_exc_fixexc, *method_rs_appdomain_target;
 static MonoMethod *method_set_call_context, *method_needs_context_sink, *method_rs_serialize_exc;
+#endif
 
 static void
 register_icall (gpointer func, const char *name, const char *sigstr, gboolean save)
@@ -147,24 +149,33 @@ mono_remoting_marshal_init (void)
        if (module_initialized)
                return;
 
+       byte_array_class = mono_array_class_get (mono_defaults.byte_class, 1);
+
+#ifndef DISABLE_JIT
        klass = mono_class_from_name (mono_defaults.corlib, "System.Runtime.Remoting", "RemotingServices");
        method_rs_serialize = mono_class_get_method_from_name (klass, "SerializeCallData", -1);
+       g_assert (method_rs_serialize);
        method_rs_deserialize = mono_class_get_method_from_name (klass, "DeserializeCallData", -1);
+       g_assert (method_rs_deserialize);
        method_rs_serialize_exc = mono_class_get_method_from_name (klass, "SerializeExceptionData", -1);
+       g_assert (method_rs_serialize_exc);
        
        klass = mono_defaults.real_proxy_class;
        method_rs_appdomain_target = mono_class_get_method_from_name (klass, "GetAppDomainTarget", -1);
+       g_assert (method_rs_appdomain_target);
        
        klass = mono_defaults.exception_class;
        method_exc_fixexc = mono_class_get_method_from_name (klass, "FixRemotingException", -1);
-       
-       byte_array_class = mono_array_class_get (mono_defaults.byte_class, 1);
-       
+       g_assert (method_exc_fixexc);
+
        klass = mono_class_from_name (mono_defaults.corlib, "System.Runtime.Remoting.Messaging", "CallContext");
        method_set_call_context = mono_class_get_method_from_name (klass, "SetCurrentCallContext", -1);
-       
+       g_assert (method_set_call_context);
+
        klass = mono_class_from_name (mono_defaults.corlib, "System.Runtime.Remoting.Contexts", "Context");
        method_needs_context_sink = mono_class_get_method_from_name (klass, "get_NeedsContextSink", -1);
+       g_assert (method_needs_context_sink);
+#endif 
 
        mono_loader_lock ();
 
index abdeb14cb746a51173b1b3b9f9f5c58803d6d762..967cf6fd32068ad7a4b1b90c645deb811cb8a049 100644 (file)
@@ -119,20 +119,3 @@ void
 ves_icall_System_Security_SecurityManager_set_SecurityEnabled (MonoBoolean value)
 {
 }
-
-MonoBoolean
-ves_icall_System_Security_SecurityManager_get_CheckExecutionRights (void)
-{
-       return FALSE;
-}
-
-void
-ves_icall_System_Security_SecurityManager_set_CheckExecutionRights (MonoBoolean value)
-{
-}
-
-MonoBoolean
-ves_icall_System_Security_SecurityManager_GetLinkDemandSecurity (MonoReflectionMethod *m, MonoDeclSecurityActions *kactions, MonoDeclSecurityActions *mactions)
-{
-       return FALSE;
-}
index f08924f647b05ac2b751ec0a546d86cf1e960069..98fbbfd652169b5931dfcab650b008671f5c00f2 100644 (file)
@@ -61,9 +61,6 @@ MonoSecurityMode mono_security_get_mode (void);
 /* internal calls */
 MonoBoolean ves_icall_System_Security_SecurityManager_get_SecurityEnabled (void);
 void ves_icall_System_Security_SecurityManager_set_SecurityEnabled (MonoBoolean value);
-MonoBoolean ves_icall_System_Security_SecurityManager_get_CheckExecutionRights (void);
-void ves_icall_System_Security_SecurityManager_set_CheckExecutionRights (MonoBoolean value);
-MonoBoolean ves_icall_System_Security_SecurityManager_GetLinkDemandSecurity (MonoReflectionMethod *m, MonoDeclSecurityActions *kactions, MonoDeclSecurityActions *mactions);
 
 #ifndef DISABLE_SECURITY
 #define mono_security_core_clr_enabled() (mono_security_get_mode () == MONO_SECURITY_MODE_CORE_CLR)
index a387a6869739141a867f7dfca0a527dde754a53e..9050c3b1d2f9d45bfaa907bc35d4c83330e5dc5d 100644 (file)
@@ -1060,6 +1060,7 @@ create_allocator (int atype, gboolean slowpath)
        int tlab_next_addr_var, new_next_var;
        const char *name = NULL;
        AllocatorWrapperInfo *info;
+       int num_params, i;
 
        if (!registered) {
                mono_register_jit_icall (mono_gc_alloc_obj, "mono_gc_alloc_obj", mono_create_icall_signature ("object ptr int"), FALSE);
@@ -1080,15 +1081,20 @@ create_allocator (int atype, gboolean slowpath)
                g_assert_not_reached ();
        }
 
-       csig = mono_metadata_signature_alloc (mono_defaults.corlib, 2);
+       if (atype == ATYPE_NORMAL)
+               num_params = 1;
+       else
+               num_params = 2;
+
+       csig = mono_metadata_signature_alloc (mono_defaults.corlib, num_params);
        if (atype == ATYPE_STRING) {
                csig->ret = &mono_defaults.string_class->byval_arg;
                csig->params [0] = &mono_defaults.int_class->byval_arg;
                csig->params [1] = &mono_defaults.int32_class->byval_arg;
        } else {
                csig->ret = &mono_defaults.object_class->byval_arg;
-               csig->params [0] = &mono_defaults.int_class->byval_arg;
-               csig->params [1] = &mono_defaults.int_class->byval_arg;
+               for (i = 0; i < num_params; i++)
+                       csig->params [i] = &mono_defaults.int_class->byval_arg;
        }
 
        mb = mono_mb_new (mono_defaults.object_class, name, MONO_WRAPPER_ALLOC);
@@ -1416,7 +1422,7 @@ mono_gc_get_managed_allocator (MonoClass *klass, gboolean for_box, gboolean know
                return NULL;
        if (known_instance_size && ALIGN_TO (klass->instance_size, SGEN_ALLOC_ALIGN) >= SGEN_MAX_SMALL_OBJ_SIZE)
                return NULL;
-       if (klass->has_finalize || mono_class_is_marshalbyref (klass) || (mono_profiler_get_events () & MONO_PROFILE_ALLOCATIONS))
+       if (mono_class_has_finalizer (klass) || mono_class_is_marshalbyref (klass) || (mono_profiler_get_events () & MONO_PROFILE_ALLOCATIONS))
                return NULL;
        if (klass->rank)
                return NULL;
index be74d429ab22aed4ff525790a22f084a8e9ed0f4..29e86a0debc2c0f45dd556d2d129e730ad40d7e9 100644 (file)
@@ -398,7 +398,7 @@ ensure_cleanedup (void)
 
        selector_thread_wakeup ();
        while (io_thread_status != STATUS_CLEANED_UP)
-               usleep (1000);
+               g_usleep (1000);
 
        MONO_GC_UNREGISTER_ROOT (threadpool_io->states);
        mono_g_hash_table_destroy (threadpool_io->states);
index 593cc7eae3ae2a08f3e1c7a7f2b94edff8aef216..6d8850767ce61548bf9d693dcfb151362080d784 100644 (file)
 // Ported from C++ to C and adjusted to Mono runtime
 
 #include <stdlib.h>
+#define _USE_MATH_DEFINES // needed by MSVC to define math constants
 #include <math.h>
 #include <config.h>
 #include <glib.h>
 
-#if !defined (HAVE_COMPLEX_H)
-#include <../../support/libm/complex.h>
-#else
-#include <complex.h>
-#endif
-
 #include <mono/metadata/class-internals.h>
 #include <mono/metadata/exception.h>
 #include <mono/metadata/gc-internal.h>
@@ -40,6 +35,7 @@
 #include <mono/metadata/threadpool-internals.h>
 #include <mono/utils/atomic.h>
 #include <mono/utils/mono-compiler.h>
+#include <mono/utils/mono-complex.h>
 #include <mono/utils/mono-proclib.h>
 #include <mono/utils/mono-threads.h>
 #include <mono/utils/mono-time.h>
@@ -183,14 +179,15 @@ static ThreadPool* threadpool;
                g_assert (counter._.active >= 0); \
        } while (0)
 
-#define COUNTER_READ() ((ThreadPoolCounter) InterlockedRead64 (&threadpool->counters.as_gint64))
+#define COUNTER_READ() (InterlockedRead64 (&threadpool->counters.as_gint64))
 
 #define COUNTER_ATOMIC(var,block) \
        do { \
                ThreadPoolCounter __old; \
                do { \
                        g_assert (threadpool); \
-                       (var) = __old = COUNTER_READ (); \
+                       __old.as_gint64 = COUNTER_READ (); \
+                       (var) = __old; \
                        { block; } \
                        COUNTER_CHECK (var); \
                } while (InterlockedCompareExchange64 (&threadpool->counters.as_gint64, (var).as_gint64, __old.as_gint64) != __old.as_gint64); \
@@ -201,7 +198,8 @@ static ThreadPool* threadpool;
                ThreadPoolCounter __old; \
                do { \
                        g_assert (threadpool); \
-                       (var) = __old = COUNTER_READ (); \
+                       __old.as_gint64 = COUNTER_READ (); \
+                       (var) = __old; \
                        (res) = FALSE; \
                        { block; } \
                        COUNTER_CHECK (var); \
@@ -345,7 +343,7 @@ ensure_cleanedup (void)
        g_assert (mono_runtime_is_shutting_down ());
 
        while (monitor_status != MONITOR_STATUS_NOT_RUNNING)
-               usleep (1000);
+               g_usleep (1000);
 
        mono_mutex_lock (&threadpool->active_threads_lock);
 
@@ -783,7 +781,8 @@ monitor_sufficient_delay_since_last_dequeue (void)
        if (threadpool->cpu_usage < CPU_USAGE_LOW) {
                threshold = MONITOR_INTERVAL;
        } else {
-               ThreadPoolCounter counter = COUNTER_READ ();
+               ThreadPoolCounter counter;
+               counter.as_gint64 = COUNTER_READ();
                threshold = counter._.max_working * MONITOR_INTERVAL * 2;
        }
 
@@ -922,7 +921,7 @@ hill_climbing_force_change (gint16 new_thread_count, ThreadPoolHeuristicStateTra
        }
 }
 
-static double complex
+static double_complex
 hill_climbing_get_wave_component (gdouble *samples, guint sample_count, gdouble period)
 {
        ThreadPoolHillClimbing *hc;
@@ -947,7 +946,7 @@ hill_climbing_get_wave_component (gdouble *samples, guint sample_count, gdouble
                q1 = q0;
        }
 
-       return ((q1 - q2 * cosine) + (q2 * sine) * I) / ((gdouble) sample_count);
+       return mono_double_complex_scalar_div (mono_double_complex_make (q1 - q2 * cosine, (q2 * sine)), ((gdouble)sample_count));
 }
 
 static gint16
@@ -964,9 +963,9 @@ hill_climbing_update (gint16 current_thread_count, guint32 sample_duration, gint
        gint sample_count;
        gint new_thread_wave_magnitude;
        gint new_thread_count;
-       double complex thread_wave_component;
-       double complex throughput_wave_component;
-       double complex ratio;
+       double_complex thread_wave_component;
+       double_complex throughput_wave_component;
+       double_complex ratio;
 
        g_assert (threadpool);
        g_assert (adjustment_interval);
@@ -1026,10 +1025,10 @@ hill_climbing_update (gint16 current_thread_count, guint32 sample_duration, gint
        hc->total_samples ++;
 
        /* Set up defaults for our metrics. */
-       thread_wave_component = 0;
-       throughput_wave_component = 0;
+       thread_wave_component = mono_double_complex_make(0, 0);
+       throughput_wave_component = mono_double_complex_make(0, 0);
        throughput_error_estimate = 0;
-       ratio = 0;
+       ratio = mono_double_complex_make(0, 0);
        confidence = 0;
 
        transition = TRANSITION_WARMUP;
@@ -1067,17 +1066,17 @@ hill_climbing_update (gint16 current_thread_count, guint32 sample_duration, gint
                        /* Get the the three different frequency components of the throughput (scaled by average
                         * throughput). Our "error" estimate (the amount of noise that might be present in the
                         * frequency band we're really interested in) is the average of the adjacent bands. */
-                       throughput_wave_component = hill_climbing_get_wave_component (hc->samples, sample_count, hc->wave_period) / average_throughput;
-                       throughput_error_estimate = cabs (hill_climbing_get_wave_component (hc->samples, sample_count, adjacent_period_1) / average_throughput);
+                       throughput_wave_component = mono_double_complex_scalar_div (hill_climbing_get_wave_component (hc->samples, sample_count, hc->wave_period), average_throughput);
+                       throughput_error_estimate = cabs (mono_double_complex_scalar_div (hill_climbing_get_wave_component (hc->samples, sample_count, adjacent_period_1), average_throughput));
 
                        if (adjacent_period_2 <= sample_count) {
-                               throughput_error_estimate = MAX (throughput_error_estimate, cabs (hill_climbing_get_wave_component (
-                                       hc->samples, sample_count, adjacent_period_2) / average_throughput));
+                               throughput_error_estimate = MAX (throughput_error_estimate, cabs (mono_double_complex_scalar_div (hill_climbing_get_wave_component (
+                                       hc->samples, sample_count, adjacent_period_2), average_throughput)));
                        }
 
                        /* Do the same for the thread counts, so we have something to compare to. We don't
                         * measure thread count noise, because there is none; these are exact measurements. */
-                       thread_wave_component = hill_climbing_get_wave_component (hc->thread_counts, sample_count, hc->wave_period) / average_thread_count;
+                       thread_wave_component = mono_double_complex_scalar_div (hill_climbing_get_wave_component (hc->thread_counts, sample_count, hc->wave_period), average_thread_count);
 
                        /* Update our moving average of the throughput noise. We'll use this
                         * later as feedback to determine the new size of the thread wave. */
@@ -1091,10 +1090,10 @@ hill_climbing_update (gint16 current_thread_count, guint32 sample_duration, gint
                        if (cabs (thread_wave_component) > 0) {
                                /* Adjust the throughput wave so it's centered around the target wave,
                                 * and then calculate the adjusted throughput/thread ratio. */
-                               ratio = (throughput_wave_component - (hc->target_throughput_ratio * thread_wave_component)) / thread_wave_component;
+                               ratio = mono_double_complex_div (mono_double_complex_sub (throughput_wave_component, mono_double_complex_scalar_mul(thread_wave_component, hc->target_throughput_ratio)), thread_wave_component);
                                transition = TRANSITION_CLIMBING_MOVE;
                        } else {
-                               ratio = 0;
+                               ratio = mono_double_complex_make (0, 0);
                                transition = TRANSITION_STABILIZING;
                        }
 
@@ -1175,7 +1174,8 @@ heuristic_should_adjust (void)
        g_assert (threadpool);
 
        if (threadpool->heuristic_last_dequeue > threadpool->heuristic_last_adjustment + threadpool->heuristic_adjustment_interval) {
-               ThreadPoolCounter counter = COUNTER_READ ();
+               ThreadPoolCounter counter;
+               counter.as_gint64 = COUNTER_READ();
                if (counter._.working <= counter._.max_working)
                        return TRUE;
        }
@@ -1197,7 +1197,7 @@ heuristic_adjust (void)
                        ThreadPoolCounter counter;
                        gint16 new_thread_count;
 
-                       counter = COUNTER_READ ();
+                       counter.as_gint64 = COUNTER_READ ();
                        new_thread_count = hill_climbing_update (counter._.max_working, sample_duration, completions, &threadpool->heuristic_adjustment_interval);
 
                        COUNTER_ATOMIC (counter, { counter._.max_working = new_thread_count; });
@@ -1467,7 +1467,7 @@ ves_icall_System_Threading_Microsoft_ThreadPool_NotifyWorkItemComplete (void)
        if (heuristic_should_adjust ())
                heuristic_adjust ();
 
-       counter = COUNTER_READ ();
+       counter.as_gint64 = COUNTER_READ ();
        return counter._.working <= counter._.max_working;
 }
 
index a901e2b41bbf89749c54d9e91b411e152c6b4a69..ac0f482767db24ad6a820d8e69716f021c97be1e 100644 (file)
@@ -72,13 +72,13 @@ void ves_icall_System_Threading_Thread_ConstructInternalThread (MonoThread *this
 HANDLE ves_icall_System_Threading_Thread_Thread_internal(MonoThread *this_obj, MonoObject *start);
 void ves_icall_System_Threading_InternalThread_Thread_free_internal(MonoInternalThread *this_obj, HANDLE thread);
 void ves_icall_System_Threading_Thread_Sleep_internal(gint32 ms);
-gboolean ves_icall_System_Threading_Thread_Join_internal(MonoInternalThread *this_obj, int ms, HANDLE thread);
+gboolean ves_icall_System_Threading_Thread_Join_internal(MonoThread *this, int ms);
 gint32 ves_icall_System_Threading_Thread_GetDomainID (void);
 gboolean ves_icall_System_Threading_Thread_Yield (void);
 MonoString* ves_icall_System_Threading_Thread_GetName_internal (MonoInternalThread *this_obj);
 void ves_icall_System_Threading_Thread_SetName_internal (MonoInternalThread *this_obj, MonoString *name);
-int ves_icall_System_Threading_Thread_GetPriority (MonoInternalThread *thread);
-void ves_icall_System_Threading_Thread_SetPriority (MonoInternalThread *thread, int priority);
+int ves_icall_System_Threading_Thread_GetPriority (MonoThread *this);
+void ves_icall_System_Threading_Thread_SetPriority (MonoThread *this, int priority);
 MonoObject* ves_icall_System_Threading_Thread_GetCachedCurrentCulture (MonoInternalThread *this_obj);
 void ves_icall_System_Threading_Thread_SetCachedCurrentCulture (MonoThread *this_obj, MonoObject *culture);
 MonoObject* ves_icall_System_Threading_Thread_GetCachedCurrentUICulture (MonoInternalThread *this_obj);
@@ -136,9 +136,9 @@ gint32 ves_icall_System_Threading_Interlocked_Decrement_Int(gint32 *location);
 gint64 ves_icall_System_Threading_Interlocked_Decrement_Long(gint64 * location);
 
 void ves_icall_System_Threading_Thread_Abort (MonoInternalThread *thread, MonoObject *state);
-void ves_icall_System_Threading_Thread_ResetAbort (void);
+void ves_icall_System_Threading_Thread_ResetAbort (MonoThread *this);
 MonoObject* ves_icall_System_Threading_Thread_GetAbortExceptionState (MonoThread *thread);
-void ves_icall_System_Threading_Thread_Suspend (MonoInternalThread *thread);
+void ves_icall_System_Threading_Thread_Suspend (MonoThread *this);
 void ves_icall_System_Threading_Thread_Resume (MonoThread *thread);
 void ves_icall_System_Threading_Thread_ClrState (MonoInternalThread *thread, guint32 state);
 void ves_icall_System_Threading_Thread_SetState (MonoInternalThread *thread, guint32 state);
@@ -181,7 +181,7 @@ void ves_icall_System_Threading_Volatile_WriteDouble (void *ptr, double);
 void ves_icall_System_Threading_Volatile_Write_T (void *ptr, MonoObject *value);
 
 void ves_icall_System_Threading_Thread_MemoryBarrier (void);
-void ves_icall_System_Threading_Thread_Interrupt_internal (MonoInternalThread *this_obj);
+void ves_icall_System_Threading_Thread_Interrupt_internal (MonoThread *this);
 void ves_icall_System_Threading_Thread_SpinWait_nop (void);
 
 void ves_icall_System_Runtime_Remoting_Contexts_Context_RegisterContext (MonoAppContext *ctx);
@@ -195,9 +195,6 @@ gboolean mono_thread_internal_has_appdomain_ref (MonoInternalThread *thread, Mon
 void mono_thread_internal_reset_abort (MonoInternalThread *thread);
 
 void mono_alloc_special_static_data_free (GHashTable *special_static_fields);
-uint32_t mono_thread_alloc_tls   (MonoReflectionType *type);
-void     mono_thread_destroy_tls (uint32_t tls_offset);
-void     mono_thread_destroy_domain_tls (MonoDomain *domain);
 void mono_thread_current_check_pending_interrupt (void);
 
 void mono_thread_set_state (MonoInternalThread *thread, MonoThreadState state);
@@ -219,9 +216,6 @@ void mono_thread_set_name_internal (MonoInternalThread *this_obj, MonoString *na
 
 void mono_threads_install_notify_pending_exc (MonoThreadNotifyPendingExcFunc func);
 
-MonoObject* mono_thread_get_execution_context (void);
-void mono_thread_set_execution_context (MonoObject *ec);
-
 void mono_runtime_set_has_tls_get (gboolean val);
 gboolean mono_runtime_has_tls_get (void);
 
index 2c272ce15acd1109837732cab9f7b7de07eb2ae3..5479f53c9ffbd61115a48e46204943fb2e84f71e 100644 (file)
@@ -702,9 +702,6 @@ static guint32 WINAPI start_wrapper_internal(void *data)
        mono_g_hash_table_remove (thread_start_args, start_info->obj);
        mono_threads_unlock ();
 
-       mono_thread_set_execution_context (start_info->obj->ec_to_set);
-       start_info->obj->ec_to_set = NULL;
-
        g_free (start_info);
        THREAD_DEBUG (g_message ("%s: start_wrapper for %"G_GSIZE_FORMAT, __func__,
                                                         internal->tid));
@@ -1323,13 +1320,13 @@ ves_icall_System_Threading_Thread_SetName_internal (MonoInternalThread *this_obj
 }
 
 int
-ves_icall_System_Threading_Thread_GetPriority (MonoInternalThread *thread)
+ves_icall_System_Threading_Thread_GetPriority (MonoThread *this)
 {
        return ThreadPriority_Lowest;
 }
 
 void
-ves_icall_System_Threading_Thread_SetPriority (MonoInternalThread *thread, int priority)
+ves_icall_System_Threading_Thread_SetPriority (MonoThread *this, int priority)
 {
 }
 
@@ -1389,24 +1386,25 @@ mono_thread_internal_current (void)
 }
 
 gboolean
-ves_icall_System_Threading_Thread_Join_internal(MonoInternalThread *this,
-                                                                                               int ms, HANDLE thread)
+ves_icall_System_Threading_Thread_Join_internal(MonoThread *this, int ms)
 {
+       MonoInternalThread *this_obj = this->internal_thread;
+       HANDLE thread = this_obj->handle;
        MonoInternalThread *cur_thread = mono_thread_internal_current ();
        gboolean ret;
 
        mono_thread_current_check_pending_interrupt ();
 
-       LOCK_THREAD (this);
+       LOCK_THREAD (this_obj);
        
-       if ((this->state & ThreadState_Unstarted) != 0) {
-               UNLOCK_THREAD (this);
+       if ((this_obj->state & ThreadState_Unstarted) != 0) {
+               UNLOCK_THREAD (this_obj);
                
                mono_set_pending_exception (mono_get_exception_thread_state ("Thread has not been started."));
                return FALSE;
        }
 
-       UNLOCK_THREAD (this);
+       UNLOCK_THREAD (this_obj);
 
        if(ms== -1) {
                ms=INFINITE;
@@ -2025,22 +2023,23 @@ ves_icall_System_Threading_Thread_GetState (MonoInternalThread* this)
        return state;
 }
 
-void ves_icall_System_Threading_Thread_Interrupt_internal (MonoInternalThread *this)
+void ves_icall_System_Threading_Thread_Interrupt_internal (MonoThread *this)
 {
        MonoInternalThread *current;
        gboolean throw;
+       MonoInternalThread *this_obj = this->internal_thread;
 
-       LOCK_THREAD (this);
+       LOCK_THREAD (this_obj);
 
        current = mono_thread_internal_current ();
 
-       this->thread_interrupt_requested = TRUE;        
-       throw = current != this && (this->state & ThreadState_WaitSleepJoin);   
+       this_obj->thread_interrupt_requested = TRUE;
+       throw = current != this_obj && (this_obj->state & ThreadState_WaitSleepJoin);
 
-       UNLOCK_THREAD (this);
+       UNLOCK_THREAD (this_obj);
        
        if (throw) {
-               abort_thread_internal (this, TRUE, FALSE);
+               abort_thread_internal (this_obj, TRUE, FALSE);
        }
 }
 
@@ -2106,7 +2105,7 @@ ves_icall_System_Threading_Thread_Abort (MonoInternalThread *thread, MonoObject
 }
 
 void
-ves_icall_System_Threading_Thread_ResetAbort (void)
+ves_icall_System_Threading_Thread_ResetAbort (MonoThread *this)
 {
        MonoInternalThread *thread = mono_thread_internal_current ();
        gboolean was_aborting;
@@ -2210,9 +2209,9 @@ mono_thread_suspend (MonoInternalThread *thread)
 }
 
 void
-ves_icall_System_Threading_Thread_Suspend (MonoInternalThread *thread)
+ves_icall_System_Threading_Thread_Suspend (MonoThread *this)
 {
-       if (!mono_thread_suspend (thread)) {
+       if (!mono_thread_suspend (this->internal_thread)) {
                mono_set_pending_exception (mono_get_exception_thread_state ("Thread has not been started, or is dead."));
                return;
        }
@@ -3987,144 +3986,6 @@ mono_special_static_data_free_slot (guint32 offset, guint32 size)
        mono_threads_unlock ();
 }
 
-/*
- * allocates room in the thread local area for storing an instance of the struct type
- * the allocation is kept track of in domain->tlsrec_list.
- */
-uint32_t
-mono_thread_alloc_tls (MonoReflectionType *type)
-{
-       MonoDomain *domain = mono_domain_get ();
-       MonoClass *klass;
-       MonoTlsDataRecord *tlsrec;
-       int max_set = 0;
-       gsize *bitmap;
-       gsize default_bitmap [4] = {0};
-       uint32_t tls_offset;
-       guint32 size;
-       gint32 align;
-
-       klass = mono_class_from_mono_type (type->type);
-       /* TlsDatum is a struct, so we subtract the object header size offset */
-       bitmap = mono_class_compute_bitmap (klass, default_bitmap, sizeof (default_bitmap) * 8, - (int)(sizeof (MonoObject) / sizeof (gpointer)), &max_set, FALSE);
-       size = mono_type_size (type->type, &align);
-       tls_offset = mono_alloc_special_static_data (SPECIAL_STATIC_THREAD, size, align, (uintptr_t*)bitmap, max_set + 1);
-       if (bitmap != default_bitmap)
-               g_free (bitmap);
-       tlsrec = g_new0 (MonoTlsDataRecord, 1);
-       tlsrec->tls_offset = tls_offset;
-       tlsrec->size = size;
-       mono_domain_lock (domain);
-       tlsrec->next = domain->tlsrec_list;
-       domain->tlsrec_list = tlsrec;
-       mono_domain_unlock (domain);
-       return tls_offset;
-}
-
-static void
-destroy_tls (MonoDomain *domain, uint32_t tls_offset)
-{
-       MonoTlsDataRecord *prev = NULL;
-       MonoTlsDataRecord *cur;
-       guint32 size = 0;
-
-       mono_domain_lock (domain);
-       cur = domain->tlsrec_list;
-       while (cur) {
-               if (cur->tls_offset == tls_offset) {
-                       if (prev)
-                               prev->next = cur->next;
-                       else
-                               domain->tlsrec_list = cur->next;
-                       size = cur->size;
-                       g_free (cur);
-                       break;
-               }
-               prev = cur;
-               cur = cur->next;
-       }
-       mono_domain_unlock (domain);
-       if (size)
-               mono_special_static_data_free_slot (tls_offset, size);
-}
-
-void
-mono_thread_destroy_tls (uint32_t tls_offset)
-{
-       destroy_tls (mono_domain_get (), tls_offset);
-}
-
-/*
- * This is just to ensure cleanup: the finalizers should have taken care, so this is not perf-critical.
- */
-void
-mono_thread_destroy_domain_tls (MonoDomain *domain)
-{
-       while (domain->tlsrec_list)
-               destroy_tls (domain, domain->tlsrec_list->tls_offset);
-}
-
-typedef struct {
-       /* local tls data to get locals_slot from a thread */
-       guint32 offset;
-       /* index in the locals_slot array */
-       int slot;
-} LocalSlotID;
-
-/*
- * LOCKING: requires that threads_mutex is held
- */
-static void
-clear_thread_local_slot (gpointer key, gpointer value, gpointer user_data)
-{
-       MonoInternalThread *thread = (MonoInternalThread *) value;
-       LocalSlotID *sid = user_data;
-
-       int idx = ACCESS_SPECIAL_STATIC_OFFSET (sid->offset, index);
-       int off = ACCESS_SPECIAL_STATIC_OFFSET (sid->offset, offset);
-
-       if (!thread->static_data || !thread->static_data [idx])
-               return;
-
-       MonoArray *slots_array = *(MonoArray **)(((char *) thread->static_data [idx]) + off);
-
-       if (!slots_array || sid->slot >= mono_array_length (slots_array))
-               return;
-
-       mono_array_set (slots_array, MonoObject *, sid->slot, NULL);
-}
-
-/*
- * LOCKING: requires that threads_mutex is held
- */
-static void
-clear_context_local_slot (gpointer key, gpointer value, gpointer user_data)
-{
-       uint32_t gch = GPOINTER_TO_UINT (key);
-       MonoAppContext *ctx = (MonoAppContext *) mono_gchandle_get_target (gch);
-
-       if (!ctx) {
-               g_hash_table_remove (contexts, key);
-               mono_gchandle_free (gch);
-               return;
-       }
-
-       LocalSlotID *sid = user_data;
-
-       int idx = ACCESS_SPECIAL_STATIC_OFFSET (sid->offset, index);
-       int off = ACCESS_SPECIAL_STATIC_OFFSET (sid->offset, offset);
-
-       if (!ctx->static_data || !ctx->static_data [idx])
-               return;
-
-       MonoArray *slots_array = *(MonoArray **) (((char *) ctx->static_data [idx]) + off);
-
-       if (!slots_array || sid->slot >= mono_array_length (slots_array))
-               return;
-
-       mono_array_set (slots_array, MonoObject *, sid->slot, NULL);
-}
-
 #ifdef HOST_WIN32
 static void CALLBACK dummy_apc (ULONG_PTR param)
 {
@@ -4467,43 +4328,6 @@ mono_thread_test_state (MonoInternalThread *thread, MonoThreadState test)
        return ret;
 }
 
-//static MonoClassField *execution_context_field;
-
-static MonoObject**
-get_execution_context_addr (void)
-{
-       MonoDomain *domain = mono_domain_get ();
-       guint32 offset = domain->execution_context_field_offset;
-
-       if (!offset) {
-               MonoClassField *field = mono_class_get_field_from_name (mono_defaults.thread_class, "_ec");
-               g_assert (field);
-
-               g_assert (mono_class_try_get_vtable (domain, mono_defaults.appdomain_class));
-
-               mono_domain_lock (domain);
-               offset = GPOINTER_TO_UINT (g_hash_table_lookup (domain->special_static_fields, field));
-               mono_domain_unlock (domain);
-               g_assert (offset);
-
-               domain->execution_context_field_offset = offset;
-       }
-
-       return (MonoObject**) mono_get_special_static_data (offset);
-}
-
-MonoObject*
-mono_thread_get_execution_context (void)
-{
-       return *get_execution_context_addr ();
-}
-
-void
-mono_thread_set_execution_context (MonoObject *ec)
-{
-       *get_execution_context_addr () = ec;
-}
-
 static gboolean has_tls_get = FALSE;
 
 void
index 3d36929dc802e9115f54d1138449cc793b37bb25..64d6543aca9adc31201430081967578eddec89c7 100755 (executable)
@@ -752,7 +752,7 @@ version.h: Makefile
        if test -d $(top_srcdir)/.git; then \
                (cd $(top_srcdir); \
                        LANG=C; export LANG; \
-                       branch=`git branch | grep '^\*' | cut -d ' ' -f 2`; \
+                       branch=`git branch | grep '^\*' | sed 's/(detached from .*/explicit/' | cut -d ' ' -f 2`; \
                        version=`git log --no-color --first-parent -n1 --pretty=format:%h`; \
                        echo "#define FULL_VERSION \"$$branch/$$version\""; \
                ); \
index 8424beb14c1274697ee70ef85e44adac15e7f5a9..933ecfaf395cab7cbbaeced533c87631f4669cc7 100644 (file)
@@ -130,6 +130,7 @@ typedef struct MonoAotOptions {
        gboolean autoreg;
        char *mtriple;
        char *llvm_path;
+       char *temp_path;
        char *instances_logfile_path;
        char *logfile;
        gboolean dump_json;
@@ -3066,7 +3067,6 @@ is_plt_patch (MonoJumpInfo *patch_info)
        case MONO_PATCH_INFO_ICALL_ADDR:
        case MONO_PATCH_INFO_CLASS_INIT:
        case MONO_PATCH_INFO_RGCTX_FETCH:
-       case MONO_PATCH_INFO_GENERIC_CLASS_INIT:
        case MONO_PATCH_INFO_MONITOR_ENTER:
        case MONO_PATCH_INFO_MONITOR_ENTER_V4:
        case MONO_PATCH_INFO_MONITOR_EXIT:
@@ -5266,7 +5266,6 @@ encode_patch (MonoAotCompile *acfg, MonoJumpInfo *patch_info, guint8 *buf, guint
                encode_patch (acfg, entry->data, p, &p);
                break;
        }
-       case MONO_PATCH_INFO_GENERIC_CLASS_INIT:
        case MONO_PATCH_INFO_MONITOR_ENTER:
        case MONO_PATCH_INFO_MONITOR_ENTER_V4:
        case MONO_PATCH_INFO_MONITOR_EXIT:
@@ -5882,9 +5881,6 @@ get_plt_entry_debug_sym (MonoAotCompile *acfg, MonoJumpInfo *ji, GHashTable *cac
        case MONO_PATCH_INFO_JIT_ICALL_ADDR:
                debug_sym = g_strdup_printf ("%s_jit_icall_native_%s", prefix, ji->data.name);
                break;
-       case MONO_PATCH_INFO_GENERIC_CLASS_INIT:
-               debug_sym = g_strdup_printf ("%s_generic_class_init", prefix);
-               break;
        default:
                break;
        }
@@ -6192,11 +6188,6 @@ emit_trampolines (MonoAotCompile *acfg)
                emit_trampoline (acfg, acfg->got_offset, info);
 #endif
 
-#ifndef MONO_ARCH_HAVE_OP_GENERIC_CLASS_INIT
-               mono_arch_create_generic_class_init_trampoline (&info, TRUE);
-               emit_trampoline (acfg, acfg->got_offset, info);
-#endif
-
                /* Emit the exception related code pieces */
                mono_arch_get_restore_context (&info, TRUE);
                emit_trampoline (acfg, acfg->got_offset, info);
@@ -6465,6 +6456,21 @@ add_readonly_value (MonoAotOptions *opts, const char *val)
        readonly_values = rdv;
 }
 
+static gchar *
+clean_path (gchar * path)
+{
+       if (!path)
+               return NULL;
+
+       if (g_str_has_suffix (path, G_DIR_SEPARATOR_S))
+               return path;
+
+       gchar *clean = g_strconcat (path, G_DIR_SEPARATOR_S, NULL);
+       g_free (path);
+
+       return clean;
+}
+
 static void
 mono_aot_parse_options (const char *aot_options, MonoAotOptions *opts)
 {
@@ -6478,6 +6484,8 @@ mono_aot_parse_options (const char *aot_options, MonoAotOptions *opts)
                        opts->outfile = g_strdup (arg + strlen ("outfile="));
                } else if (str_begins_with (arg, "llvm-outfile=")) {
                        opts->llvm_outfile = g_strdup (arg + strlen ("llvm-outfile="));
+               } else if (str_begins_with (arg, "temp-path=")) {
+                       opts->temp_path = clean_path (g_strdup (arg + strlen ("temp-path=")));
                } else if (str_begins_with (arg, "save-temps")) {
                        opts->save_temps = TRUE;
                } else if (str_begins_with (arg, "keep-temps")) {
@@ -6551,12 +6559,7 @@ mono_aot_parse_options (const char *aot_options, MonoAotOptions *opts)
                } else if (str_begins_with (arg, "mtriple=")) {
                        opts->mtriple = g_strdup (arg + strlen ("mtriple="));
                } else if (str_begins_with (arg, "llvm-path=")) {
-                       opts->llvm_path = g_strdup (arg + strlen ("llvm-path="));
-                       if (!g_str_has_suffix (opts->llvm_path, G_DIR_SEPARATOR_S)) {
-                               gchar *old = opts->llvm_path;
-                               opts->llvm_path = g_strconcat (opts->llvm_path, G_DIR_SEPARATOR_S, NULL);
-                               g_free (old);
-                       }
+                       opts->llvm_path = clean_path (g_strdup (arg + strlen ("llvm-path=")));
                } else if (!strcmp (arg, "llvm")) {
                        opts->llvm = TRUE;
                } else if (str_begins_with (arg, "readonly-value=")) {
@@ -6572,6 +6575,8 @@ mono_aot_parse_options (const char *aot_options, MonoAotOptions *opts)
                        printf ("Supported options for --aot:\n");
                        printf ("    outfile=\n");
                        printf ("    llvm-outfile=\n");
+                       printf ("    llvm-path=\n");
+                       printf ("    temp-path=\n");
                        printf ("    save-temps\n");
                        printf ("    keep-temps\n");
                        printf ("    write-symbols\n");
@@ -8505,11 +8510,6 @@ emit_file_info (MonoAotCompile *acfg)
                emit_pointer (acfg, NULL);
                emit_pointer (acfg, NULL);
        }
-       if (acfg->thumb_mixed) {
-               emit_pointer (acfg, "thumb_end");
-       } else {
-               emit_pointer (acfg, NULL);
-       }
        if (acfg->aot_opts.static_link) {
                emit_pointer (acfg, "globals");
        } else {
@@ -8958,7 +8958,7 @@ compile_asm (MonoAotCompile *acfg)
         * gas generates 'mapping symbols' each time code and data is mixed, which 
         * happens a lot in emit_and_reloc_code (), so we need to get rid of them.
         */
-       command = g_strdup_printf ("%sstrip --strip-symbol=\\$a --strip-symbol=\\$d %s", tool_prefix, tmp_outfile_name);
+       command = g_strdup_printf ("\"%sstrip\" --strip-symbol=\\$a --strip-symbol=\\$d %s", tool_prefix, tmp_outfile_name);
        aot_printf (acfg, "Stripping the binary: %s\n", command);
        if (execute_system (command) != 0) {
                g_free (tmp_outfile_name);
@@ -9346,8 +9346,14 @@ mono_compile_assembly (MonoAssembly *ass, guint32 opts, const char *aot_options)
                 * Emit all LLVM code into a separate assembly/object file and link with it
                 * normally.
                 */
-               if (!acfg->aot_opts.asm_only)
+               if (!acfg->aot_opts.asm_only) {
                        acfg->llvm_owriter = TRUE;
+               } else if (acfg->aot_opts.llvm_outfile) {
+                       int len = strlen (acfg->aot_opts.llvm_outfile);
+
+                       if (len >= 2 && acfg->aot_opts.llvm_outfile [len - 2] == '.' && acfg->aot_opts.llvm_outfile [len - 1] == 'o')
+                               acfg->llvm_owriter = TRUE;
+               }
        }
 
        if (mono_aot_mode_is_full (&acfg->aot_opts))
@@ -9377,6 +9383,9 @@ mono_compile_assembly (MonoAssembly *ass, guint32 opts, const char *aot_options)
 
        arch_init (acfg);
 
+       if (acfg->llvm && acfg->thumb_mixed)
+               acfg->flags |= MONO_AOT_FILE_FLAG_LLVM_THUMB;
+
        acfg->assembly_name_sym = g_strdup (acfg->image->assembly->aname.name);
        /* Get rid of characters which cannot occur in symbols */
        for (p = acfg->assembly_name_sym; *p; ++p) {
@@ -9474,6 +9483,10 @@ mono_compile_assembly (MonoAssembly *ass, guint32 opts, const char *aot_options)
                        }
                        g_assert (acfg->aot_opts.llvm_outfile);
                        acfg->llvm_sfile = g_strdup (acfg->aot_opts.llvm_outfile);
+                       if (acfg->llvm_owriter)
+                               acfg->llvm_ofile = g_strdup (acfg->aot_opts.llvm_outfile);
+                       else
+                               acfg->llvm_sfile = g_strdup (acfg->aot_opts.llvm_outfile);
                } else {
                        acfg->tmpbasename = g_strdup_printf ("%s", "temp");
                        acfg->tmpfname = g_strdup_printf ("%s.s", acfg->tmpbasename);
@@ -9566,21 +9579,6 @@ mono_compile_assembly (MonoAssembly *ass, guint32 opts, const char *aot_options)
        if (acfg->dwarf)
                mono_dwarf_writer_emit_base_info (acfg->dwarf, g_path_get_basename (acfg->image->name), mono_unwind_get_cie_program ());
 
-       if (acfg->thumb_mixed) {
-               char symbol [256];
-               /*
-                * This global symbol marks the end of THUMB code, and the beginning of ARM
-                * code generated by our JIT.
-                */
-               sprintf (symbol, "thumb_end");
-               emit_section_change (acfg, ".text", 0);
-               emit_alignment_code (acfg, 8);
-               emit_label (acfg, symbol);
-               emit_zero_bytes (acfg, 16);
-
-               fprintf (acfg->fp, ".arm\n");
-       }
-
        emit_code (acfg);
 
        emit_info (acfg);
index e81f68c349ef6d6d2aad6915076a6c7183b7c62d..fceb9fb9184ceb3e6ec28f73d00d18c90dd60532 100644 (file)
@@ -123,7 +123,6 @@ typedef struct MonoAotModule {
        guint32 *unbox_trampolines_end;
        guint32 *unbox_trampoline_addresses;
        guint8 *unwind_info;
-       guint8 *thumb_end;
 
        /* Points to the mono EH data created by LLVM */
        guint8 *mono_eh_frame;
@@ -1960,7 +1959,6 @@ load_aot_module (MonoAssembly *assembly, gpointer user_data)
        amodule->trampolines [MONO_AOT_TRAMP_STATIC_RGCTX] = info->static_rgctx_trampolines;
        amodule->trampolines [MONO_AOT_TRAMP_IMT_THUNK] = info->imt_thunks;
        amodule->trampolines [MONO_AOT_TRAMP_GSHAREDVT_ARG] = info->gsharedvt_arg_trampolines;
-       amodule->thumb_end = info->thumb_end;
 
        /* Compute code_offsets from the method addresses */
        amodule->code_offsets = g_malloc0 (amodule->info.nmethods * sizeof (gint32));
@@ -2407,6 +2405,15 @@ compute_llvm_code_range (MonoAotModule *amodule, guint8 **code_start, guint8 **c
        }
 }
 
+static gboolean
+is_thumb_code (MonoAotModule *amodule, guint8 *code)
+{
+       if ((amodule->info.flags & MONO_AOT_FILE_FLAG_LLVM_THUMB) && (guint8*)code >= amodule->llvm_code_start && (guint8*)code < amodule->llvm_code_end)
+               return TRUE;
+       else
+               return FALSE;
+}
+
 /*
  * decode_mono_eh_frame:
  *
@@ -2491,7 +2498,7 @@ decode_llvm_mono_eh_frame (MonoAotModule *amodule, MonoDomain *domain,
 
        g_assert (code >= code_start && code < code_end);
 
-       if (amodule->thumb_end && (guint8*)code_start < amodule->thumb_end)
+       if (is_thumb_code (amodule, code_start))
                /* Clear thumb flag */
                code_start = (guint8*)(((mgreg_t)code_start) & ~1);
 
@@ -2557,9 +2564,12 @@ decode_llvm_mono_eh_frame (MonoAotModule *amodule, MonoDomain *domain,
                jei->handler_start = ei [i].handler_start;
                jei->clause_index = clause_index;
 
-               /* Make sure we transition to thumb when a handler starts */
-               if (amodule->thumb_end && (guint8*)jei->handler_start < amodule->thumb_end)
+               if (is_thumb_code (amodule, jei->try_start)) {
+                       jei->try_start = (void*)((mgreg_t)jei->try_start & ~1);
+                       jei->try_end = (void*)((mgreg_t)jei->try_end & ~1);
+                       /* Make sure we transition to thumb when a handler starts */
                        jei->handler_start = (void*)((mgreg_t)jei->handler_start + 1);
+               }
        }
 
        /* See exception_cb () in mini-llvm.c as to why this is needed */
@@ -3340,7 +3350,6 @@ decode_patch (MonoAotModule *aot_module, MonoMemPool *mp, MonoJumpInfo *ji, guin
                ji->data.offset = decode_value (p, &p);
                break;
        case MONO_PATCH_INFO_INTERRUPTION_REQUEST_FLAG:
-       case MONO_PATCH_INFO_GENERIC_CLASS_INIT:
        case MONO_PATCH_INFO_MONITOR_ENTER:
        case MONO_PATCH_INFO_MONITOR_ENTER_V4:
        case MONO_PATCH_INFO_MONITOR_EXIT:
@@ -4345,10 +4354,8 @@ mono_aot_get_plt_entry (guint8 *code)
                return NULL;
 
 #ifdef TARGET_ARM
-       if (amodule->thumb_end) {
-               if (code >= amodule->llvm_code_start && code < amodule->llvm_code_end)
-                       return mono_arm_get_thumb_plt_entry (code);
-       }
+       if (is_thumb_code (amodule, code))
+               return mono_arm_get_thumb_plt_entry (code);
 #endif
 
 #ifdef MONO_ARCH_AOT_SUPPORTED
@@ -4911,7 +4918,11 @@ mono_aot_get_unbox_trampoline (MonoMethod *method)
 
        if (method->is_inflated && !mono_method_is_generic_sharable_full (method, FALSE, FALSE, FALSE)) {
                method_index = find_aot_method (method, &amodule);
-               if (method_index == 0xffffff && mono_method_is_generic_sharable_full (method, FALSE, FALSE, TRUE)) {
+               if (method_index == 0xffffff && mono_method_is_generic_sharable_full (method, FALSE, TRUE, FALSE)) {
+                       MonoMethod *shared = mini_get_shared_method_full (method, FALSE, FALSE);
+                       method_index = find_aot_method (shared, &amodule);
+               }
+               if (method_index == 0xffffff && mono_method_is_generic_sharable_full (method, FALSE, TRUE, TRUE)) {
                        MonoMethod *shared = mini_get_shared_method_full (method, TRUE, TRUE);
                        method_index = find_aot_method (shared, &amodule);
                }
index 52690465de5789802b05407a586267b29e0016b5..7324fe21f370de11f66557651213a618dbf2ff89 100644 (file)
@@ -3,6 +3,7 @@ using System.Text;
 using System.Reflection;
 using System.Runtime.InteropServices;
 using System.Runtime.CompilerServices;
+using System.Collections.Generic;
 
 /*
  * Regression tests for the AOT/FULL-AOT code.
@@ -199,4 +200,44 @@ class Tests
                return 0;
        }
 
+       static int test_0_partial_sharing_regress_30204 () {
+               var t = typeof (System.Collections.Generic.Comparer<System.Collections.Generic.KeyValuePair<string, string>>);
+               var d = new SortedDictionary<string, string> ();
+               d.Add ("key1", "banana");
+               return d ["key1"] == "banana" ? 0 : 1;
+       }
+
+       class NullableMethods {
+               [MethodImplAttribute (MethodImplOptions.NoInlining)]
+               public static bool GetHasValue<T>(Nullable<T> value) where T : struct {
+                       return value.HasValue;
+               }
+
+               [MethodImplAttribute (MethodImplOptions.NoInlining)]
+               public static T GetValue<T>(Nullable<T> value) where T : struct {
+                       return value.Value;
+               }
+       }
+
+       [Category ("DYNCALL")]
+       public static int test_0_dyncall_nullable () {
+               int? v;
+
+               v = 42;
+               NullableMethods.GetHasValue (v);
+               bool b = (bool)typeof (NullableMethods).GetMethod ("GetHasValue").MakeGenericMethod (new Type [] { typeof (int) }).Invoke (null, new object [] { v });
+               if (!b)
+                       return 1;
+               v = null;
+               b = (bool)typeof (NullableMethods).GetMethod ("GetHasValue").MakeGenericMethod (new Type [] { typeof (int) }).Invoke (null, new object [] { v });
+               if (b)
+                       return 2;
+
+               v = 42;
+               NullableMethods.GetValue (v);
+               var res = (int)typeof (NullableMethods).GetMethod ("GetValue").MakeGenericMethod (new Type [] { typeof (int) }).Invoke (null, new object [] { v });
+               if (res != 42)
+                       return 3;
+               return 0;
+       }
 }
index ed62046b8a2cabdcab252e5020577d69e96e69cd..a5ccf787e73886fa0747e3d6feb2b0811bfc1e52 100644 (file)
@@ -704,6 +704,12 @@ class Tests
                return (int)(f1 / f2);
        }
 
+       public static int test_1_frem_r4 () {
+               float f1 = 7.0f;
+               float f2 = 2.0f;
+               return (int)(f1 % f2);
+       }
+
        public static int test_0_fcmp_eq_r4 () {
                float f1 = 1.0f;
                float f2 = 1.0f;
index a272a7e88e66badecc755e895df67c6131eb52bd..64d6862d5fca94de5cc8af9f6c88663a9c7f2a9a 100755 (executable)
@@ -797,4 +797,4 @@ gc_liveness_use: len:0
 gc_spill_slot_liveness_def: len:0
 gc_param_slot_liveness_def: len:0
 
-generic_class_init: src1:A len:32
+generic_class_init: src1:A len:32 clob:c
index 4e8edbc8d3e0cd421c415601a46e2fb4f04c7d04..caf10c5552f22b803c64f5bc7df56b7ae61e8a0a 100644 (file)
@@ -15,7 +15,7 @@
 #
 # register may have the following values:
 #      i  integer register
-#      a  r3 register (output from calls)
+#      a  r0 register (first argument/result reg)
 #      b  base register (used in address references)
 #      f  floating point register
 #      g  floating point register returned in r0:r1 for soft-float mode
@@ -398,3 +398,5 @@ atomic_store_i4: dest:b src1:i len:28
 atomic_store_u4: dest:b src1:i len:28
 atomic_store_r4: dest:b src1:f len:80
 atomic_store_r8: dest:b src1:f len:32
+
+generic_class_init: src1:a len:44 clob:c
index 940d5a57ea6edf0fb58136fff385de25072d5985..d9c2a5f2751408528f0551ced8def387fd9aa798 100644 (file)
@@ -478,3 +478,5 @@ atomic_store_i8: dest:b src1:i len:12
 atomic_store_u8: dest:b src1:i len:12
 atomic_store_r4: dest:b src1:f len:24
 atomic_store_r8: dest:b src1:f len:20
+
+generic_class_init: src1:a len:44 clob:c
index dc6ac728ab435698dd1566cfae5513e96c9f5a36..e0789c2845bb58f1185b4efb8e4350330dd654c9 100644 (file)
@@ -45,6 +45,7 @@
 #
 # See the code in mini-x86.c for more details on how the specifiers are used.
 #
+tailcall: len:120 clob:c
 memory_barrier: len:4
 nop: len:4
 relaxed_nop: len:4
index 091c6b1103d159be11814fea62bd843d204f8caa..df26513baca8cee748bbd0457069ef811f3a5716 100644 (file)
@@ -389,3 +389,5 @@ gc_liveness_def: len:0
 gc_liveness_use: len:0
 gc_spill_slot_liveness_def: len:0
 gc_param_slot_liveness_def: len:0
+
+generic_class_init: src1:A len:32
index 187d89a1c4e50bc150c81000767a358de2ea46bf..dcecc4dfb05f191a8cd5d187d3d271ff44410c8f 100644 (file)
@@ -6535,12 +6535,21 @@ do_invoke_method (DebuggerTlsData *tls, Buffer *buf, InvokeData *invoke, guint8
                        return ERR_INVALID_ARGUMENT;
                }
                m = mono_object_get_virtual_method (this, m);
+               /* Transform this to the format the rest of the code expects it to be */
+               if (m->klass->valuetype) {
+                       this_buf = g_alloca (mono_class_instance_size (m->klass));
+                       memcpy (this_buf, mono_object_unbox (this), mono_class_instance_size (m->klass));
+               }
        } else if ((m->flags & METHOD_ATTRIBUTE_VIRTUAL) && !m->klass->valuetype && invoke->flags & INVOKE_FLAG_VIRTUAL) {
                if (!this) {
                        DEBUG_PRINTF (1, "[%p] Error: invoke with INVOKE_FLAG_VIRTUAL flag set without this argument.\n", (gpointer)GetCurrentThreadId ());
                        return ERR_INVALID_ARGUMENT;
                }
                m = mono_object_get_virtual_method (this, m);
+               if (m->klass->valuetype) {
+                       this_buf = g_alloca (mono_class_instance_size (m->klass));
+                       memcpy (this_buf, mono_object_unbox (this), mono_class_instance_size (m->klass));
+               }
        }
 
        DEBUG_PRINTF (1, "[%p] Invoking method '%s' on receiver '%s'.\n", (gpointer)GetCurrentThreadId (), mono_method_full_name (m, TRUE), this ? this->vtable->klass->name : "<null>");
@@ -8958,12 +8967,24 @@ frame_commands (int command, guint8 *p, guint8 *end, Buffer *buf)
                        if (pos < 0) {
                                pos = - pos - 1;
 
+                               DEBUG_PRINTF (4, "[dbg]   send arg %d.\n", pos);
+
                                g_assert (pos >= 0 && pos < jit->num_params);
 
                                add_var (buf, jit, sig->params [pos], &jit->params [pos], &frame->ctx, frame->domain, FALSE);
                        } else {
+                               MonoDebugLocalsInfo *locals;
+
+                               locals = mono_debug_lookup_locals (frame->method);
+                               if (locals) {
+                                       g_assert (pos < locals->num_locals);
+                                       pos = locals->locals [pos].index;
+                                       mono_debug_free_locals (locals);
+                               }
                                g_assert (pos >= 0 && pos < jit->num_locals);
 
+                               DEBUG_PRINTF (4, "[dbg]   send local %d.\n", pos);
+
                                add_var (buf, jit, header->locals [pos], &jit->locals [pos], &frame->ctx, frame->domain, FALSE);
                        }
                }
@@ -9007,6 +9028,14 @@ frame_commands (int command, guint8 *p, guint8 *end, Buffer *buf)
                                t = sig->params [pos];
                                var = &jit->params [pos];
                        } else {
+                               MonoDebugLocalsInfo *locals;
+
+                               locals = mono_debug_lookup_locals (frame->method);
+                               if (locals) {
+                                       g_assert (pos < locals->num_locals);
+                                       pos = locals->locals [pos].index;
+                                       mono_debug_free_locals (locals);
+                               }
                                g_assert (pos >= 0 && pos < jit->num_locals);
 
                                t = header->locals [pos];
index 72342361fdc87d69d95007e294f5ac0953335534..e93b9942285c8440a1de49f4b8a40e0137e2a661 100644 (file)
@@ -163,6 +163,7 @@ mono_arch_get_restore_context (MonoTrampInfo **info, gboolean aot)
        guint8 *code;
        MonoJumpInfo *ji = NULL;
        GSList *unwind_ops = NULL;
+       int i, gregs_offset;
 
        /* restore_contect (MonoContext *ctx) */
 
@@ -171,22 +172,15 @@ mono_arch_get_restore_context (MonoTrampInfo **info, gboolean aot)
        amd64_mov_reg_reg (code, AMD64_R11, AMD64_ARG_REG1, 8);
 
        /* Restore all registers except %rip and %r11 */
-       amd64_mov_reg_membase (code, AMD64_RAX, AMD64_R11,  MONO_STRUCT_OFFSET (MonoContext, rax), 8);
-       amd64_mov_reg_membase (code, AMD64_RCX, AMD64_R11,  MONO_STRUCT_OFFSET (MonoContext, rcx), 8);
-       amd64_mov_reg_membase (code, AMD64_RDX, AMD64_R11,  MONO_STRUCT_OFFSET (MonoContext, rdx), 8);
-       amd64_mov_reg_membase (code, AMD64_RBX, AMD64_R11,  MONO_STRUCT_OFFSET (MonoContext, rbx), 8);
-       amd64_mov_reg_membase (code, AMD64_RBP, AMD64_R11,  MONO_STRUCT_OFFSET (MonoContext, rbp), 8);
-       amd64_mov_reg_membase (code, AMD64_RSI, AMD64_R11,  MONO_STRUCT_OFFSET (MonoContext, rsi), 8);
-       amd64_mov_reg_membase (code, AMD64_RDI, AMD64_R11,  MONO_STRUCT_OFFSET (MonoContext, rdi), 8);
-       //amd64_mov_reg_membase (code, AMD64_R8, AMD64_R11,  MONO_STRUCT_OFFSET (MonoContext, r8), 8);
-       //amd64_mov_reg_membase (code, AMD64_R9, AMD64_R11,  MONO_STRUCT_OFFSET (MonoContext, r9), 8);
-       //amd64_mov_reg_membase (code, AMD64_R10, AMD64_R11,  MONO_STRUCT_OFFSET (MonoContext, r10), 8);
-       amd64_mov_reg_membase (code, AMD64_R12, AMD64_R11,  MONO_STRUCT_OFFSET (MonoContext, r12), 8);
-       amd64_mov_reg_membase (code, AMD64_R13, AMD64_R11,  MONO_STRUCT_OFFSET (MonoContext, r13), 8);
-       amd64_mov_reg_membase (code, AMD64_R14, AMD64_R11,  MONO_STRUCT_OFFSET (MonoContext, r14), 8);
-#if !defined(__native_client_codegen__)
-       amd64_mov_reg_membase (code, AMD64_R15, AMD64_R11,  MONO_STRUCT_OFFSET (MonoContext, r15), 8);
+       gregs_offset = MONO_STRUCT_OFFSET (MonoContext, gregs);
+       for (i = 0; i < AMD64_NREG; ++i) {
+#if defined(__native_client_codegen__)
+               if (i == AMD64_R15)
+                       continue;
 #endif
+               if (i != AMD64_RIP && i != AMD64_RSP && i != AMD64_R8 && i != AMD64_R9 && i != AMD64_R10 && i != AMD64_R11)
+                       amd64_mov_reg_membase (code, i, AMD64_R11, gregs_offset + (i * 8), 8);
+       }
 
        /*
         * The context resides on the stack, in the stack frame of the
@@ -196,14 +190,14 @@ mono_arch_get_restore_context (MonoTrampInfo **info, gboolean aot)
         * size.  Hence the stack pointer can be restored only after
         * we have finished loading everything from the context.
         */
-       amd64_mov_reg_membase (code, AMD64_R8, AMD64_R11,  MONO_STRUCT_OFFSET (MonoContext, rsp), 8);
-       amd64_mov_reg_membase (code, AMD64_R11, AMD64_R11,  MONO_STRUCT_OFFSET (MonoContext, rip), 8);
+       amd64_mov_reg_membase (code, AMD64_R8, AMD64_R11,  gregs_offset + (AMD64_RSP * 8), 8);
+       amd64_mov_reg_membase (code, AMD64_R11, AMD64_R11,  gregs_offset + (AMD64_RIP * 8), 8);
        amd64_mov_reg_reg (code, AMD64_RSP, AMD64_R8, 8);
 
        /* jump to the saved IP */
        amd64_jump_reg (code, AMD64_R11);
 
-       nacl_global_codeman_validate(&start, 256, &code);
+       nacl_global_codeman_validate (&start, 256, &code);
 
        mono_arch_flush_icache (start, code - start);
        mono_profiler_code_buffer_new (start, code - start, MONO_PROFILER_CODE_BUFFER_EXCEPTION_HANDLING, NULL);
@@ -225,7 +219,7 @@ gpointer
 mono_arch_get_call_filter (MonoTrampInfo **info, gboolean aot)
 {
        guint8 *start;
-       int i;
+       int i, gregs_offset;
        guint8 *code;
        guint32 pos;
        MonoJumpInfo *ji = NULL;
@@ -257,22 +251,21 @@ mono_arch_get_call_filter (MonoTrampInfo **info, gboolean aot)
        if (! (pos & 8))
                amd64_alu_reg_imm (code, X86_SUB, AMD64_RSP, 8);
 
+       gregs_offset = MONO_STRUCT_OFFSET (MonoContext, gregs);
+
        /* set new EBP */
-       amd64_mov_reg_membase (code, AMD64_RBP, AMD64_ARG_REG1, MONO_STRUCT_OFFSET (MonoContext, rbp), 8);
+       amd64_mov_reg_membase (code, AMD64_RBP, AMD64_ARG_REG1, gregs_offset + (AMD64_RBP * 8), 8);
        /* load callee saved regs */
-       amd64_mov_reg_membase (code, AMD64_RBX, AMD64_ARG_REG1, MONO_STRUCT_OFFSET (MonoContext, rbx), 8);
-       amd64_mov_reg_membase (code, AMD64_R12, AMD64_ARG_REG1, MONO_STRUCT_OFFSET (MonoContext, r12), 8);
-       amd64_mov_reg_membase (code, AMD64_R13, AMD64_ARG_REG1, MONO_STRUCT_OFFSET (MonoContext, r13), 8);
-       amd64_mov_reg_membase (code, AMD64_R14, AMD64_ARG_REG1, MONO_STRUCT_OFFSET (MonoContext, r14), 8);
-#if !defined(__native_client_codegen__)
-       amd64_mov_reg_membase (code, AMD64_R15, AMD64_ARG_REG1, MONO_STRUCT_OFFSET (MonoContext, r15), 8);
-#endif
-#ifdef TARGET_WIN32
-       amd64_mov_reg_membase (code, AMD64_RDI, AMD64_ARG_REG1,  MONO_STRUCT_OFFSET (MonoContext, rdi), 8);
-       amd64_mov_reg_membase (code, AMD64_RSI, AMD64_ARG_REG1,  MONO_STRUCT_OFFSET (MonoContext, rsi), 8);
+       for (i = 0; i < AMD64_NREG; ++i) {
+#if defined(__native_client_codegen__)
+               if (i == AMD64_R15)
+                       continue;
 #endif
+               if (AMD64_IS_CALLEE_SAVED_REG (i) && i != AMD64_RBP)
+                       amd64_mov_reg_membase (code, AMD64_RBX, AMD64_ARG_REG1, gregs_offset + (i * 8), 8);
+       }
        /* load exc register */
-       amd64_mov_reg_membase (code, AMD64_RAX, AMD64_ARG_REG1,  MONO_STRUCT_OFFSET (MonoContext, rax), 8);
+       amd64_mov_reg_membase (code, AMD64_RAX, AMD64_ARG_REG1,  gregs_offset + (AMD64_RAX * 8), 8);
 
        /* call the handler */
        amd64_call_reg (code, AMD64_ARG_REG2);
@@ -311,24 +304,12 @@ mono_arch_get_call_filter (MonoTrampInfo **info, gboolean aot)
 void
 mono_amd64_throw_exception (guint64 dummy1, guint64 dummy2, guint64 dummy3, guint64 dummy4,
                                                        guint64 dummy5, guint64 dummy6,
-                                                       mgreg_t *regs, mgreg_t rip,
-                                                       MonoObject *exc, gboolean rethrow)
+                                                       MonoContext *mctx, MonoObject *exc, gboolean rethrow)
 {
        MonoContext ctx;
 
-       ctx.rsp = regs [AMD64_RSP];
-       ctx.rip = rip;
-       ctx.rbx = regs [AMD64_RBX];
-       ctx.rbp = regs [AMD64_RBP];
-       ctx.r12 = regs [AMD64_R12];
-       ctx.r13 = regs [AMD64_R13];
-       ctx.r14 = regs [AMD64_R14];
-       ctx.r15 = regs [AMD64_R15];
-       ctx.rdi = regs [AMD64_RDI];
-       ctx.rsi = regs [AMD64_RSI];
-       ctx.rax = regs [AMD64_RAX];
-       ctx.rcx = regs [AMD64_RCX];
-       ctx.rdx = regs [AMD64_RDX];
+       /* mctx is on the caller's stack */
+       memcpy (&ctx, mctx, sizeof (MonoContext));
 
        if (mono_object_isinst (exc, mono_defaults.exception_class)) {
                MonoException *mono_ex = (MonoException*)exc;
@@ -339,7 +320,7 @@ mono_amd64_throw_exception (guint64 dummy1, guint64 dummy2, guint64 dummy3, guin
        }
 
        /* adjust eip so that it point into the call instruction */
-       ctx.rip -= 1;
+       ctx.gregs [AMD64_RIP] --;
 
        mono_handle_exception (&ctx, exc);
        mono_restore_context (&ctx);
@@ -349,44 +330,31 @@ mono_amd64_throw_exception (guint64 dummy1, guint64 dummy2, guint64 dummy3, guin
 void
 mono_amd64_throw_corlib_exception (guint64 dummy1, guint64 dummy2, guint64 dummy3, guint64 dummy4,
                                                                   guint64 dummy5, guint64 dummy6,
-                                                                  mgreg_t *regs, mgreg_t rip,
-                                                                  guint32 ex_token_index, gint64 pc_offset)
+                                                                  MonoContext *mctx, guint32 ex_token_index, gint64 pc_offset)
 {
        guint32 ex_token = MONO_TOKEN_TYPE_DEF | ex_token_index;
        MonoException *ex;
 
        ex = mono_exception_from_token (mono_defaults.exception_class->image, ex_token);
 
-       rip -= pc_offset;
+       mctx->gregs [AMD64_RIP] -= pc_offset;
 
        /* Negate the ip adjustment done in mono_amd64_throw_exception () */
-       rip += 1;
+       mctx->gregs [AMD64_RIP] += 1;
 
-       mono_amd64_throw_exception (dummy1, dummy2, dummy3, dummy4, dummy5, dummy6, regs, rip, (MonoObject*)ex, FALSE);
+       mono_amd64_throw_exception (dummy1, dummy2, dummy3, dummy4, dummy5, dummy6, mctx, (MonoObject*)ex, FALSE);
 }
 
 static void
 mono_amd64_resume_unwind (guint64 dummy1, guint64 dummy2, guint64 dummy3, guint64 dummy4,
                                                  guint64 dummy5, guint64 dummy6,
-                                                 mgreg_t *regs, mgreg_t rip,
-                                                 guint32 dummy7, gint64 dummy8)
+                                                 MonoContext *mctx, guint32 dummy7, gint64 dummy8)
 {
        /* Only the register parameters are valid */
        MonoContext ctx;
 
-       ctx.rsp = regs [AMD64_RSP];
-       ctx.rip = rip;
-       ctx.rbx = regs [AMD64_RBX];
-       ctx.rbp = regs [AMD64_RBP];
-       ctx.r12 = regs [AMD64_R12];
-       ctx.r13 = regs [AMD64_R13];
-       ctx.r14 = regs [AMD64_R14];
-       ctx.r15 = regs [AMD64_R15];
-       ctx.rdi = regs [AMD64_RDI];
-       ctx.rsi = regs [AMD64_RSI];
-       ctx.rax = regs [AMD64_RAX];
-       ctx.rcx = regs [AMD64_RCX];
-       ctx.rdx = regs [AMD64_RDX];
+       /* mctx is on the caller's stack */
+       memcpy (&ctx, mctx, sizeof (MonoContext));
 
        mono_resume_unwind (&ctx);
 }
@@ -404,7 +372,7 @@ get_throw_trampoline (MonoTrampInfo **info, gboolean rethrow, gboolean corlib, g
        guint8 *code;
        MonoJumpInfo *ji = NULL;
        GSList *unwind_ops = NULL;
-       int i, stack_size, arg_offsets [16], regs_offset, dummy_stack_space;
+       int i, stack_size, arg_offsets [16], ctx_offset, regs_offset, dummy_stack_space;
        const guint kMaxCodeSize = NACL_SIZE (256, 512);
 
 #ifdef TARGET_WIN32
@@ -416,7 +384,7 @@ get_throw_trampoline (MonoTrampInfo **info, gboolean rethrow, gboolean corlib, g
        start = code = mono_global_codeman_reserve (kMaxCodeSize);
 
        /* The stack is unaligned on entry */
-       stack_size = 192 + 8 + dummy_stack_space;
+       stack_size = ALIGN_TO (sizeof (MonoContext) + 64 + dummy_stack_space, MONO_ARCH_FRAME_ALIGNMENT) + 8;
 
        code = start;
 
@@ -436,8 +404,8 @@ get_throw_trampoline (MonoTrampInfo **info, gboolean rethrow, gboolean corlib, g
        arg_offsets [0] = dummy_stack_space + 0;
        arg_offsets [1] = dummy_stack_space + sizeof(mgreg_t);
        arg_offsets [2] = dummy_stack_space + sizeof(mgreg_t) * 2;
-       arg_offsets [3] = dummy_stack_space + sizeof(mgreg_t) * 3;
-       regs_offset = dummy_stack_space + sizeof(mgreg_t) * 4;
+       ctx_offset = dummy_stack_space + sizeof(mgreg_t) * 4;
+       regs_offset = ctx_offset + MONO_STRUCT_OFFSET (MonoContext, gregs);
 
        /* Save registers */
        for (i = 0; i < AMD64_NREG; ++i)
@@ -446,34 +414,34 @@ get_throw_trampoline (MonoTrampInfo **info, gboolean rethrow, gboolean corlib, g
        /* Save RSP */
        amd64_lea_membase (code, AMD64_RAX, AMD64_RSP, stack_size + sizeof(mgreg_t));
        amd64_mov_membase_reg (code, AMD64_RSP, regs_offset + (AMD64_RSP * sizeof(mgreg_t)), X86_EAX, sizeof(mgreg_t));
-       /* Set arg1 == regs */
-       amd64_lea_membase (code, AMD64_RAX, AMD64_RSP, regs_offset);
-       amd64_mov_membase_reg (code, AMD64_RSP, arg_offsets [0], AMD64_RAX, sizeof(mgreg_t));
-       /* Set arg2 == eip */
+       /* Save IP */
        if (llvm_abs)
                amd64_alu_reg_reg (code, X86_XOR, AMD64_RAX, AMD64_RAX);
        else
                amd64_mov_reg_membase (code, AMD64_RAX, AMD64_RSP, stack_size, sizeof(mgreg_t));
-       amd64_mov_membase_reg (code, AMD64_RSP, arg_offsets [1], AMD64_RAX, sizeof(mgreg_t));
-       /* Set arg3 == exc/ex_token_index */
+       amd64_mov_membase_reg (code, AMD64_RSP, regs_offset + (AMD64_RIP * sizeof(mgreg_t)), AMD64_RAX, sizeof(mgreg_t));
+       /* Set arg1 == ctx */
+       amd64_lea_membase (code, AMD64_RAX, AMD64_RSP, ctx_offset);
+       amd64_mov_membase_reg (code, AMD64_RSP, arg_offsets [0], AMD64_RAX, sizeof(mgreg_t));
+       /* Set arg2 == exc/ex_token_index */
        if (resume_unwind)
-               amd64_mov_membase_imm (code, AMD64_RSP, arg_offsets [2], 0, sizeof(mgreg_t));
+               amd64_mov_membase_imm (code, AMD64_RSP, arg_offsets [1], 0, sizeof(mgreg_t));
        else
-               amd64_mov_membase_reg (code, AMD64_RSP, arg_offsets [2], AMD64_ARG_REG1, sizeof(mgreg_t));
-       /* Set arg4 == rethrow/pc offset */
+               amd64_mov_membase_reg (code, AMD64_RSP, arg_offsets [1], AMD64_ARG_REG1, sizeof(mgreg_t));
+       /* Set arg3 == rethrow/pc offset */
        if (resume_unwind) {
-               amd64_mov_membase_imm (code, AMD64_RSP, arg_offsets [3], 0, sizeof(mgreg_t));
+               amd64_mov_membase_imm (code, AMD64_RSP, arg_offsets [2], 0, sizeof(mgreg_t));
        } else if (corlib) {
-               amd64_mov_membase_reg (code, AMD64_RSP, arg_offsets [3], AMD64_ARG_REG2, sizeof(mgreg_t));
+               amd64_mov_membase_reg (code, AMD64_RSP, arg_offsets [2], AMD64_ARG_REG2, sizeof(mgreg_t));
                if (llvm_abs)
                        /* 
                         * The caller is LLVM code which passes the absolute address not a pc offset,
                         * so compensate by passing 0 as 'rip' and passing the negated abs address as
                         * the pc offset.
                         */
-                       amd64_neg_membase (code, AMD64_RSP, arg_offsets [3]);
+                       amd64_neg_membase (code, AMD64_RSP, arg_offsets [2]);
        } else {
-               amd64_mov_membase_imm (code, AMD64_RSP, arg_offsets [3], rethrow, sizeof(mgreg_t));
+               amd64_mov_membase_imm (code, AMD64_RSP, arg_offsets [2], rethrow, sizeof(mgreg_t));
        }
 
        if (aot) {
@@ -550,6 +518,7 @@ mono_arch_find_jit_info (MonoDomain *domain, MonoJitTlsData *jit_tls,
                                                         StackFrameInfo *frame)
 {
        gpointer ip = MONO_CONTEXT_GET_IP (ctx);
+       int i;
 
        memset (frame, 0, sizeof (StackFrameInfo));
        frame->ji = ji;
@@ -578,44 +547,22 @@ mono_arch_find_jit_info (MonoDomain *domain, MonoJitTlsData *jit_tls,
                if (ji->has_arch_eh_info)
                        epilog = (guint8*)ji->code_start + ji->code_size - mono_jinfo_get_epilog_size (ji);
  
-               regs [AMD64_RAX] = new_ctx->rax;
-               regs [AMD64_RBX] = new_ctx->rbx;
-               regs [AMD64_RCX] = new_ctx->rcx;
-               regs [AMD64_RDX] = new_ctx->rdx;
-               regs [AMD64_RBP] = new_ctx->rbp;
-               regs [AMD64_RSP] = new_ctx->rsp;
-               regs [AMD64_RSI] = new_ctx->rsi;
-               regs [AMD64_RDI] = new_ctx->rdi;
-               regs [AMD64_RIP] = new_ctx->rip;
-               regs [AMD64_R12] = new_ctx->r12;
-               regs [AMD64_R13] = new_ctx->r13;
-               regs [AMD64_R14] = new_ctx->r14;
-               regs [AMD64_R15] = new_ctx->r15;
+               for (i = 0; i < AMD64_NREG; ++i)
+                       regs [i] = new_ctx->gregs [i];
 
                mono_unwind_frame (unwind_info, unwind_info_len, ji->code_start, 
                                                   (guint8*)ji->code_start + ji->code_size,
                                                   ip, epilog ? &epilog : NULL, regs, MONO_MAX_IREGS + 1,
                                                   save_locations, MONO_MAX_IREGS, &cfa);
 
-               new_ctx->rax = regs [AMD64_RAX];
-               new_ctx->rbx = regs [AMD64_RBX];
-               new_ctx->rcx = regs [AMD64_RCX];
-               new_ctx->rdx = regs [AMD64_RDX];
-               new_ctx->rbp = regs [AMD64_RBP];
-               new_ctx->rsp = regs [AMD64_RSP];
-               new_ctx->rsi = regs [AMD64_RSI];
-               new_ctx->rdi = regs [AMD64_RDI];
-               new_ctx->rip = regs [AMD64_RIP];
-               new_ctx->r12 = regs [AMD64_R12];
-               new_ctx->r13 = regs [AMD64_R13];
-               new_ctx->r14 = regs [AMD64_R14];
-               new_ctx->r15 = regs [AMD64_R15];
+               for (i = 0; i < AMD64_NREG; ++i)
+                       new_ctx->gregs [i] = regs [i];
  
                /* The CFA becomes the new SP value */
-               new_ctx->rsp = (mgreg_t)cfa;
+               new_ctx->gregs [AMD64_RSP] = (mgreg_t)cfa;
 
                /* Adjust IP */
-               new_ctx->rip --;
+               new_ctx->gregs [AMD64_RIP] --;
 
                return TRUE;
        } else if (*lmf) {
@@ -639,7 +586,11 @@ mono_arch_find_jit_info (MonoDomain *domain, MonoJitTlsData *jit_tls,
                        return TRUE;
                }
 
-               if (((guint64)(*lmf)->previous_lmf) & 1) {
+               if (((guint64)(*lmf)->previous_lmf) & 4) {
+                       MonoLMFTramp *ext = (MonoLMFTramp*)(*lmf);
+
+                       rip = (guint64)MONO_CONTEXT_GET_IP (ext->ctx);
+               } else if (((guint64)(*lmf)->previous_lmf) & 1) {
                        /* This LMF has the rip field set */
                        rip = (*lmf)->rip;
                } else if ((*lmf)->rsp == 0) {
@@ -663,43 +614,31 @@ mono_arch_find_jit_info (MonoDomain *domain, MonoJitTlsData *jit_tls,
                if (!ji)
                        return FALSE;
 
-               /* Adjust IP */
-               rip --;
-
                frame->ji = ji;
                frame->type = FRAME_TYPE_MANAGED_TO_NATIVE;
 
-               new_ctx->rip = rip;
-               new_ctx->rbp = (*lmf)->rbp;
-               new_ctx->rsp = (*lmf)->rsp;
-
                if (((guint64)(*lmf)->previous_lmf) & 4) {
                        MonoLMFTramp *ext = (MonoLMFTramp*)(*lmf);
 
                        /* Trampoline frame */
-                       new_ctx->rbx = ext->regs [AMD64_RBX];
-                       new_ctx->r12 = ext->regs [AMD64_R12];
-                       new_ctx->r13 = ext->regs [AMD64_R13];
-                       new_ctx->r14 = ext->regs [AMD64_R14];
-                       new_ctx->r15 = ext->regs [AMD64_R15];
-#ifdef TARGET_WIN32
-                       new_ctx->rdi = ext->regs [AMD64_RDI];
-                       new_ctx->rsi = ext->regs [AMD64_RSI];
-#endif
+                       for (i = 0; i < AMD64_NREG; ++i)
+                               new_ctx->gregs [i] = ext->ctx->gregs [i];
+                       /* Adjust IP */
+                       new_ctx->gregs [AMD64_RIP] --;
                } else {
                        /*
                         * The registers saved in the LMF will be restored using the normal unwind info,
                         * when the wrapper frame is processed.
                         */
-                       new_ctx->rbx = 0;
-                       new_ctx->r12 = 0;
-                       new_ctx->r13 = 0;
-                       new_ctx->r14 = 0;
-                       new_ctx->r15 = 0;
-#ifdef TARGET_WIN32
-                       new_ctx->rdi = 0;
-                       new_ctx->rsi = 0;
-#endif
+                       /* Adjust IP */
+                       rip --;
+                       new_ctx->gregs [AMD64_RIP] = rip;
+                       new_ctx->gregs [AMD64_RSP] = (*lmf)->rsp;
+                       new_ctx->gregs [AMD64_RBP] = (*lmf)->rbp;
+                       for (i = 0; i < AMD64_NREG; ++i) {
+                               if (AMD64_IS_CALLEE_SAVED_REG (i) && i != AMD64_RBP)
+                                       new_ctx->gregs [i] = 0;
+                       }
                }
 
                *lmf = (gpointer)(((guint64)(*lmf)->previous_lmf) & ~7);
@@ -731,9 +670,9 @@ handle_signal_exception (gpointer obj)
 void
 mono_arch_setup_async_callback (MonoContext *ctx, void (*async_cb)(void *fun), gpointer user_data)
 {
-       guint64 sp = ctx->rsp;
+       guint64 sp = ctx->gregs [AMD64_RSP];
 
-       ctx->rdi = (guint64)user_data;
+       ctx->gregs [AMD64_RDI] = (guint64)user_data;
 
        /* Allocate a stack frame below the red zone */
        sp -= 128;
@@ -742,10 +681,10 @@ mono_arch_setup_async_callback (MonoContext *ctx, void (*async_cb)(void *fun), g
                sp -= 8;
 #ifdef __linux__
        /* Preserve the call chain to prevent crashes in the libgcc unwinder (#15969) */
-       *(guint64*)sp = ctx->rip;
+       *(guint64*)sp = ctx->gregs [AMD64_RIP];
 #endif
-       ctx->rsp = sp;
-       ctx->rip = (guint64)async_cb;
+       ctx->gregs [AMD64_RSP] = sp;
+       ctx->gregs [AMD64_RIP] = (guint64)async_cb;
 }
 
 /**
@@ -799,7 +738,7 @@ mono_arch_ip_from_context (void *sigctx)
        return ((CONTEXT*)sigctx)->Rip;
 #else
        MonoContext *ctx = sigctx;
-       return (gpointer)ctx->rip;
+       return (gpointer)ctx->gregs [AMD64_RIP];
 #endif 
 }
 
@@ -821,12 +760,12 @@ static void
 prepare_for_guard_pages (MonoContext *mctx)
 {
        gpointer *sp;
-       sp = (gpointer)(mctx->rsp);
+       sp = (gpointer)(mctx->gregs [AMD64_RSP]);
        sp -= 1;
        /* the return addr */
-       sp [0] = (gpointer)(mctx->rip);
-       mctx->rip = (guint64)restore_soft_guard_pages;
-       mctx->rsp = (guint64)sp;
+       sp [0] = (gpointer)(mctx->gregs [AMD64_RIP]);
+       mctx->gregs [AMD64_RIP] = (guint64)restore_soft_guard_pages;
+       mctx->gregs [AMD64_RSP] = (guint64)sp;
 }
 
 static void
@@ -1039,7 +978,7 @@ mono_arch_notify_pending_exc (MonoThreadInfo *info)
                /* Initial LMF */
                return;
 
-       if ((guint64)lmf->previous_lmf & 1)
+       if ((guint64)lmf->previous_lmf & 5)
                /* Already hijacked or trampoline LMF entry */
                return;
 
index 7f57eea44ecc7b2d2e469e996297d4aa32e9f87f..091122262bb7cadcb4d300cda30b5e1915a09fa2 100644 (file)
@@ -403,7 +403,7 @@ mono_arch_find_jit_info (MonoDomain *domain, MonoJitTlsData *jit_tls,
 
        if (ji != NULL) {
                int i;
-               gssize regs [MONO_MAX_IREGS + 1 + 8];
+               mono_unwind_reg_t regs [MONO_MAX_IREGS + 1 + 8];
                guint8 *cfa;
                guint32 unwind_info_len;
                guint8 *unwind_info;
@@ -422,7 +422,7 @@ mono_arch_find_jit_info (MonoDomain *domain, MonoJitTlsData *jit_tls,
 #ifdef TARGET_IOS
                /* On IOS, d8..d15 are callee saved. They are mapped to 8..15 in unwind.c */
                for (i = 0; i < 8; ++i)
-                       regs [MONO_MAX_IREGS + i] = new_ctx->fregs [8 + i];
+                       regs [MONO_MAX_IREGS + i] = *(guint64*)&(new_ctx->fregs [8 + i]);
 #endif
 
                mono_unwind_frame (unwind_info, unwind_info_len, ji->code_start, 
@@ -436,7 +436,7 @@ mono_arch_find_jit_info (MonoDomain *domain, MonoJitTlsData *jit_tls,
                new_ctx->regs [ARMREG_SP] = (gsize)cfa;
 #ifdef TARGET_IOS
                for (i = 0; i < 8; ++i)
-                       new_ctx->fregs [8 + i] = regs [MONO_MAX_IREGS + i];
+                       new_ctx->fregs [8 + i] = *(double*)&(regs [MONO_MAX_IREGS + i]);
 #endif
 
                /* Clear thumb bit */
index f5689e9624b96ef22cc277e7849a921caf01ede3..85961685e67989e0f5847739f921aba419bb8f2a 100644 (file)
 /*                   P r o t o t y p e s                            */
 /*------------------------------------------------------------------*/
 
-gboolean mono_arch_handle_exception (void     *ctx,
-                                    gpointer obj);
+static void throw_exception (MonoObject *, unsigned long, unsigned long, 
+                gulong *, gdouble *, gint32 *, guint, gboolean);
+static gpointer mono_arch_get_throw_exception_generic (int, MonoTrampInfo **, 
+                               int, gboolean, gboolean);
+static void handle_signal_exception (gpointer);
 
 /*========================= End of Prototypes ======================*/
 
@@ -462,7 +465,6 @@ mono_arch_find_jit_info (MonoDomain *domain, MonoJitTlsData *jit_tls,
                         StackFrameInfo *frame)
 {
        gpointer ip = (gpointer) MONO_CONTEXT_GET_IP (ctx);
-       MonoS390StackFrame *sframe;
 
        memset (frame, 0, sizeof (StackFrameInfo));
        frame->ji = ji;
@@ -519,6 +521,29 @@ mono_arch_find_jit_info (MonoDomain *domain, MonoJitTlsData *jit_tls,
 
 /*========================= End of Function ========================*/
 
+/*------------------------------------------------------------------*/
+/*                                                                  */
+/* Name                - handle_signal_exception                           */
+/*                                                                  */
+/* Function    - Handle an exception raised by the JIT code.       */
+/*                                                                  */
+/* Parameters   - obj       - The exception object                  */
+/*                                                                  */
+/*------------------------------------------------------------------*/
+
+static void
+handle_signal_exception (gpointer obj)
+{
+       MonoJitTlsData *jit_tls = mono_native_tls_get_value (mono_jit_tls_id);
+       MonoContext ctx;
+
+       memcpy (&ctx, &jit_tls->ex_ctx, sizeof (MonoContext));
+       mono_handle_exception (&ctx, obj);
+       mono_restore_context (&ctx);
+}
+
+/*========================= End of Function ========================*/
+
 /*------------------------------------------------------------------*/
 /*                                                                  */
 /* Name                - mono_arch_handle_exception                        */
@@ -531,9 +556,52 @@ mono_arch_find_jit_info (MonoDomain *domain, MonoJitTlsData *jit_tls,
 /*------------------------------------------------------------------*/
 
 gboolean
-mono_arch_handle_exception (void *uc, gpointer obj)
+mono_arch_handle_exception (void *sigctx, gpointer obj)
+{
+       MonoContext mctx;
+
+       /*
+        * Handling the exception in the signal handler is problematic, since the original
+        * signal is disabled, and we could run arbitrary code though the debugger. So
+        * resume into the normal stack and do most work there if possible.
+        */
+       MonoJitTlsData *jit_tls = mono_native_tls_get_value (mono_jit_tls_id);
+
+       /* Pass the ctx parameter in TLS */
+       mono_sigctx_to_monoctx (sigctx, &jit_tls->ex_ctx);
+
+       mctx = jit_tls->ex_ctx;
+       mono_arch_setup_async_callback (&mctx, handle_signal_exception, obj);
+       mono_monoctx_to_sigctx (&mctx, sigctx);
+
+       return TRUE;
+}
+
+/*========================= End of Function ========================*/
+
+/*------------------------------------------------------------------*/
+/*                                                                  */
+/* Name                - mono_arch_setup_async_callback                    */
+/*                                                                  */
+/* Function    - Establish the async callback.                     */
+/*                                                                  */
+/* Parameters   - ctx       - Context                               */
+/*                async_cb  - Callback routine address              */
+/*                user_data - Data to be passed to callback         */
+/*                                                                  */
+/*------------------------------------------------------------------*/
+
+void
+mono_arch_setup_async_callback (MonoContext *ctx, void (*async_cb)(void *fun), gpointer user_data)
 {
-       return mono_handle_exception (uc, obj);
+       uintptr_t sp = (uintptr_t) MONO_CONTEXT_GET_SP(ctx);
+
+       ctx->uc_mcontext.gregs[2] = (unsigned long) user_data;
+
+       sp -= S390_MINIMAL_STACK_SIZE;
+       *(unsigned long *)sp = MONO_CONTEXT_GET_SP(ctx);
+       MONO_CONTEXT_SET_BP(ctx, sp);
+       MONO_CONTEXT_SET_IP(ctx, (unsigned long) async_cb);
 }
 
 /*========================= End of Function ========================*/
index d7d4f72d299091b426195e49712a4002b98c0eda..b9534ae395bc7604c1b9182bb0a32075e2915a6a 100644 (file)
@@ -745,7 +745,7 @@ mono_arch_exceptions_init (void)
        tramp = get_throw_trampoline ("llvm_throw_exception_trampoline", FALSE, TRUE, FALSE, FALSE, FALSE, NULL, FALSE);
        mono_register_jit_icall (tramp, "llvm_throw_exception_trampoline", NULL, TRUE);
 
-       tramp = get_throw_trampoline ("llvm_rethrow_exception_trampoline", FALSE, TRUE, FALSE, FALSE, FALSE, NULL, FALSE);
+       tramp = get_throw_trampoline ("llvm_rethrow_exception_trampoline", TRUE, TRUE, FALSE, FALSE, FALSE, NULL, FALSE);
        mono_register_jit_icall (tramp, "llvm_rethrow_exception_trampoline", NULL, TRUE);
 
        tramp = get_throw_trampoline ("llvm_throw_corlib_exception_trampoline", FALSE, TRUE, TRUE, FALSE, FALSE, NULL, FALSE);
index e06be608cf5366c5d5b5a710a7c4c45e042c9098..131a9c63a5ce1b69d7cfe3ffb0f9450325c9817a 100644 (file)
@@ -2795,6 +2795,27 @@ class Tests
                }
                return 1;
        }
+
+       static bool finally_called = false;
+
+       static void regress_30472 (int a, int b) {
+                       checked {
+                               try {
+                                       int sum = a + b;
+                               } finally {
+                                       finally_called = true;
+                               }
+            }
+               }
+
+       public static int test_0_regress_30472 () {
+               finally_called = false;
+               try {
+                   regress_30472 (Int32.MaxValue - 1, 2);
+               } catch (Exception ex) {
+               }
+               return finally_called ? 0 : 1;
+       }
 }
 
 #if !MOBILE
index 6437da54c2a290274262250d14f5c60eb9a44458..1e94b262df7a9a40b61b8501e7aed244a1bc40b2 100644 (file)
@@ -1279,3 +1279,9 @@ mono_gsharedvt_value_copy (gpointer dest, gpointer src, MonoClass *klass)
        else
         mono_gc_wbarrier_generic_store (dest, *(MonoObject**)src);
 }
+
+void
+mono_generic_class_init (MonoVTable *vtable)
+{
+       mono_runtime_class_init (vtable);
+}
index 3f629dc7f6f2a06d4b0179309c2bac7cf185072d..9ec1a4f60e709b203d5d1d8665f93483161afc86 100644 (file)
@@ -181,6 +181,9 @@ mono_object_isinst_with_cache (MonoObject *obj, MonoClass *klass, gpointer *cach
 MonoObject*
 mono_object_castclass_with_cache (MonoObject *obj, MonoClass *klass, gpointer *cache);
 
+void
+mono_generic_class_init (MonoVTable *vtable);
+
 MonoObject*
 mono_gsharedvt_constrained_call (gpointer mp, MonoMethod *cmethod, MonoClass *klass, gboolean deref_arg, gpointer *args);
 
index 32dd3fed2c4af486756becf47d53bec5a238e216..d27e1fda45c473ac244f5078f8090db9d79f94dc 100644 (file)
@@ -149,8 +149,6 @@ static int inline_method (MonoCompile *cfg, MonoMethod *cmethod, MonoMethodSigna
 /* helper methods signatures */
 static MonoMethodSignature *helper_sig_class_init_trampoline;
 static MonoMethodSignature *helper_sig_domain_get;
-static MonoMethodSignature *helper_sig_generic_class_init_trampoline;
-static MonoMethodSignature *helper_sig_generic_class_init_trampoline_llvm;
 static MonoMethodSignature *helper_sig_rgctx_lazy_fetch_trampoline;
 static MonoMethodSignature *helper_sig_monitor_enter_exit_trampoline;
 static MonoMethodSignature *helper_sig_monitor_enter_exit_trampoline_llvm;
@@ -359,8 +357,6 @@ mono_create_helper_signatures (void)
 {
        helper_sig_domain_get = mono_create_icall_signature ("ptr");
        helper_sig_class_init_trampoline = mono_create_icall_signature ("void");
-       helper_sig_generic_class_init_trampoline = mono_create_icall_signature ("void");
-       helper_sig_generic_class_init_trampoline_llvm = mono_create_icall_signature ("void ptr");
        helper_sig_rgctx_lazy_fetch_trampoline = mono_create_icall_signature ("ptr ptr");
        helper_sig_monitor_enter_exit_trampoline = mono_create_icall_signature ("void");
        helper_sig_monitor_enter_exit_trampoline_llvm = mono_create_icall_signature ("void object");
@@ -2809,7 +2805,7 @@ mono_emit_method_call_full (MonoCompile *cfg, MonoMethod *method, MonoMethodSign
 
                this_reg = this->dreg;
 
-               if (ARCH_HAVE_DELEGATE_TRAMPOLINES && (method->klass->parent == mono_defaults.multicastdelegate_class) && !strcmp (method->name, "Invoke")) {
+               if ((method->klass->parent == mono_defaults.multicastdelegate_class) && !strcmp (method->name, "Invoke")) {
                        MonoInst *dummy_use;
 
                        MONO_EMIT_NULL_CHECK (cfg, this_reg);
@@ -3623,10 +3619,13 @@ emit_get_gsharedvt_info_klass (MonoCompile *cfg, MonoClass *klass, MonoRgctxInfo
  * On return the caller must check @klass for load errors.
  */
 static void
-emit_generic_class_init (MonoCompile *cfg, MonoClass *klass)
+emit_generic_class_init (MonoCompile *cfg, MonoClass *klass, MonoBasicBlock **out_bblock)
 {
        MonoInst *vtable_arg;
        int context_used;
+       gboolean use_op_generic_class_init = FALSE;
+
+       *out_bblock = cfg->cbb;
 
        context_used = mini_class_check_context_used (cfg, klass);
 
@@ -3642,29 +3641,59 @@ emit_generic_class_init (MonoCompile *cfg, MonoClass *klass)
        }
 
 #ifdef MONO_ARCH_HAVE_OP_GENERIC_CLASS_INIT
-       MonoInst *ins;
+       if (!COMPILE_LLVM (cfg))
+               use_op_generic_class_init = TRUE;
+#endif
 
-       /*
-        * Using an opcode instead of emitting IR here allows the hiding of the call inside the opcode,
-        * so this doesn't have to clobber any regs.
-        */
-       /*
-        * For LLVM, this requires that the code in the generic trampoline obtain the vtable argument according to
-        * the normal calling convention of the platform.
-        */
-       MONO_INST_NEW (cfg, ins, OP_GENERIC_CLASS_INIT);
-       ins->sreg1 = vtable_arg->dreg;
-       MONO_ADD_INS (cfg->cbb, ins);
-#else
-       MonoCallInst *call;
+       if (use_op_generic_class_init) {
+               MonoInst *ins;
 
-       if (COMPILE_LLVM (cfg))
-               call = (MonoCallInst*)mono_emit_abs_call (cfg, MONO_PATCH_INFO_GENERIC_CLASS_INIT, NULL, helper_sig_generic_class_init_trampoline_llvm, &vtable_arg);
-       else
-               call = (MonoCallInst*)mono_emit_abs_call (cfg, MONO_PATCH_INFO_GENERIC_CLASS_INIT, NULL, helper_sig_generic_class_init_trampoline, &vtable_arg);
-       mono_call_inst_add_outarg_reg (cfg, call, vtable_arg->dreg, MONO_ARCH_VTABLE_REG, FALSE);
-       cfg->uses_vtable_reg = TRUE;
-#endif
+               /*
+                * Using an opcode instead of emitting IR here allows the hiding of the call inside the opcode,
+                * so this doesn't have to clobber any regs and it doesn't break basic blocks.
+                */
+               MONO_INST_NEW (cfg, ins, OP_GENERIC_CLASS_INIT);
+               ins->sreg1 = vtable_arg->dreg;
+               MONO_ADD_INS (cfg->cbb, ins);
+       } else {
+               static int byte_offset = -1;
+               static guint8 bitmask;
+               int bits_reg, inited_reg;
+               MonoBasicBlock *inited_bb;
+               MonoInst *args [16];
+
+               if (byte_offset < 0)
+                       mono_marshal_find_bitfield_offset (MonoVTable, initialized, &byte_offset, &bitmask);
+
+               bits_reg = alloc_ireg (cfg);
+               inited_reg = alloc_ireg (cfg);
+
+               MONO_EMIT_NEW_LOAD_MEMBASE_OP (cfg, OP_LOADU1_MEMBASE, bits_reg, vtable_arg->dreg, byte_offset);
+               MONO_EMIT_NEW_BIALU_IMM (cfg, OP_IAND_IMM, inited_reg, bits_reg, bitmask);
+
+               NEW_BBLOCK (cfg, inited_bb);
+
+               MONO_EMIT_NEW_BIALU_IMM (cfg, OP_COMPARE_IMM, -1, inited_reg, 0);
+               MONO_EMIT_NEW_BRANCH_BLOCK (cfg, OP_IBNE_UN, inited_bb);
+
+               args [0] = vtable_arg;
+               mono_emit_jit_icall (cfg, mono_generic_class_init, args);
+
+               MONO_START_BB (cfg, inited_bb);
+               *out_bblock = inited_bb;
+       }
+}
+
+
+static void
+emit_class_init (MonoCompile *cfg, MonoClass *klass, MonoBasicBlock **out_bblock)
+{
+       /* This could be used as a fallback if needed */
+       //emit_generic_class_init (cfg, klass, out_bblock);
+
+       *out_bblock = cfg->cbb;
+
+       mono_emit_abs_call (cfg, MONO_PATCH_INFO_CLASS_INIT, klass, helper_sig_class_init_trampoline, NULL);
 }
 
 static void
@@ -3998,6 +4027,8 @@ handle_alloc (MonoCompile *cfg, MonoClass *klass, gboolean for_box, int context_
                if (managed_alloc && !(cfg->opt & MONO_OPT_SHARED)) {
                        if (known_instance_size) {
                                int size = mono_class_instance_size (klass);
+                               if (size < sizeof (MonoObject))
+                                       g_error ("Invalid size %d for class %s", size, mono_type_get_full_name (klass));
 
                                EMIT_NEW_ICONST (cfg, iargs [1], mono_gc_get_aligned_size_for_allocator (size));
                        }
@@ -4034,6 +4065,8 @@ handle_alloc (MonoCompile *cfg, MonoClass *klass, gboolean for_box, int context_
 
                if (managed_alloc) {
                        int size = mono_class_instance_size (klass);
+                       if (size < sizeof (MonoObject))
+                               g_error ("Invalid size %d for class %s", size, mono_type_get_full_name (klass));
 
                        EMIT_NEW_VTABLECONST (cfg, iargs [0], vtable);
                        EMIT_NEW_ICONST (cfg, iargs [1], mono_gc_get_aligned_size_for_allocator (size));
@@ -7502,20 +7535,6 @@ is_supported_tail_call (MonoCompile *cfg, MonoMethod *method, MonoMethod *cmetho
        return supported_tail_call;
 }
 
-/* the JIT intercepts ldflda instructions to the tlsdata field in ThreadLocal<T> and redirects
- * it to the thread local value based on the tls_offset field. Every other kind of access to
- * the field causes an assert.
- */
-static gboolean
-is_magic_tls_access (MonoClassField *field)
-{
-       if (strcmp (field->name, "tlsdata"))
-               return FALSE;
-       if (strcmp (field->parent->name, "ThreadLocal`1"))
-               return FALSE;
-       return field->parent->image == mono_defaults.corlib;
-}
-
 /* emits the code needed to access a managed tls var (like ThreadStatic)
  * with the value of the tls offset in offset_reg. thread_ins represents the MonoInternalThread
  * pointer for the current thread.
@@ -7544,41 +7563,6 @@ emit_managed_static_data_access (MonoCompile *cfg, MonoInst *thread_ins, int off
        return addr;
 }
 
-/*
- * redirect access to the tlsdata field to the tls var given by the tls_offset field.
- * this address is cached per-method in cached_tls_addr.
- */
-static MonoInst*
-create_magic_tls_access (MonoCompile *cfg, MonoClassField *tls_field, MonoInst **cached_tls_addr, MonoInst *thread_local)
-{
-       MonoInst *load, *addr, *temp, *store, *thread_ins;
-       MonoClassField *offset_field;
-
-       if (*cached_tls_addr) {
-               EMIT_NEW_TEMPLOAD (cfg, addr, (*cached_tls_addr)->inst_c0);
-               return addr;
-       }
-       thread_ins = mono_get_thread_intrinsic (cfg);
-       offset_field = mono_class_get_field_from_name (tls_field->parent, "tls_offset");
-
-       EMIT_NEW_LOAD_MEMBASE_TYPE (cfg, load, offset_field->type, thread_local->dreg, offset_field->offset);
-       if (thread_ins) {
-               MONO_ADD_INS (cfg->cbb, thread_ins);
-       } else {
-               MonoMethod *thread_method;
-               thread_method = mono_class_get_method_from_name (mono_get_thread_class(), "CurrentInternalThread_internal", 0);
-               thread_ins = mono_emit_method_call (cfg, thread_method, NULL, NULL);
-       }
-       addr = emit_managed_static_data_access (cfg, thread_ins, load->dreg);
-       addr->klass = mono_class_from_mono_type (tls_field->type);
-       addr->type = STACK_MP;
-       *cached_tls_addr = temp = mono_compile_create_var (cfg, type_from_stack_type (addr), OP_LOCAL);
-       EMIT_NEW_TEMPSTORE (cfg, store, temp->inst_c0, addr);
-
-       EMIT_NEW_TEMPLOAD (cfg, addr, temp->inst_c0);
-       return addr;
-}
-
 /*
  * handle_ctor_call:
  *
@@ -7698,7 +7682,6 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
        int context_used;
        gboolean init_locals, seq_points, skip_dead_blocks;
        gboolean sym_seq_points = FALSE;
-       MonoInst *cached_tls_addr = NULL;
        MonoDebugMethodInfo *minfo;
        MonoBitSet *seq_point_locs = NULL;
        MonoBitSet *seq_point_set_locs = NULL;
@@ -8207,12 +8190,13 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                         * Backward branches are handled at the end of method-to-ir ().
                         */
                        gboolean intr_loc = ip == header->code || (!cfg->cbb->last_ins && cfg->header->num_clauses);
+                       gboolean sym_seq_point = sym_seq_points && mono_bitset_test_fast (seq_point_locs, ip - header->code);
 
                        /* Avoid sequence points on empty IL like .volatile */
                        // FIXME: Enable this
                        //if (!(cfg->cbb->last_ins && cfg->cbb->last_ins->opcode == OP_SEQ_POINT)) {
                        NEW_SEQ_POINT (cfg, ins, ip - header->code, intr_loc);
-                       if (sp != stack_start)
+                       if ((sp != stack_start) && !sym_seq_point)
                                ins->flags |= MONO_INST_NONEMPTY_STACK;
                        MONO_ADD_INS (cfg->cbb, ins);
 
@@ -8980,10 +8964,8 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                        if (check_call_signature (cfg, fsig, sp))
                                UNVERIFIED;
 
-#ifdef MONO_ARCH_HAVE_CREATE_DELEGATE_TRAMPOLINE
                        if ((cmethod->klass->parent == mono_defaults.multicastdelegate_class) && !strcmp (cmethod->name, "Invoke"))
                                delegate_invoke = TRUE;
-#endif
 
                        if ((cfg->opt & MONO_OPT_INTRINS) && (ins = mini_emit_inst_for_sharable_method (cfg, cmethod, fsig, sp))) {
                                bblock = cfg->cbb;
@@ -9000,7 +8982,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                         * might not get called after the call was patched.
                         */
                        if (cfg->generic_sharing_context && cmethod->klass != method->klass && cmethod->klass->generic_class && mono_method_is_generic_sharable (cmethod, TRUE) && mono_class_needs_cctor_run (cmethod->klass, method)) {
-                               emit_generic_class_init (cfg, cmethod->klass);
+                               emit_generic_class_init (cfg, cmethod->klass, &bblock);
                                CHECK_TYPELOAD (cmethod->klass);
                        }
 
@@ -10306,7 +10288,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                ensure_method_is_allowed_to_call_method (cfg, method, cmethod, bblock, ip);
 
                        if (cfg->generic_sharing_context && cmethod && cmethod->klass != method->klass && cmethod->klass->generic_class && mono_method_is_generic_sharable (cmethod, TRUE) && mono_class_needs_cctor_run (cmethod->klass, method)) {
-                               emit_generic_class_init (cfg, cmethod->klass);
+                               emit_generic_class_init (cfg, cmethod->klass, &bblock);
                                CHECK_TYPELOAD (cmethod->klass);
                        }
 
@@ -10420,7 +10402,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                         * As a workaround, we call class cctors before allocating objects.
                                         */
                                        if (mini_field_access_needs_cctor_run (cfg, method, cmethod->klass, vtable) && !(g_slist_find (class_inits, cmethod->klass))) {
-                                               mono_emit_abs_call (cfg, MONO_PATCH_INFO_CLASS_INIT, cmethod->klass, helper_sig_class_init_trampoline, NULL);
+                                               emit_class_init (cfg, cmethod->klass, &bblock);
                                                if (cfg->verbose_level > 2)
                                                        printf ("class %s.%s needs init call for ctor\n", cmethod->klass->name_space, cmethod->klass->name);
                                                class_inits = g_slist_prepend (class_inits, cmethod->klass);
@@ -10801,9 +10783,6 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                FIELD_ACCESS_FAILURE (method, field);
                        mono_class_init (klass);
 
-                       if (is_instance && *ip != CEE_LDFLDA && is_magic_tls_access (field))
-                               UNVERIFIED;
-
                        /* if the class is Critical then transparent code cannot access it's fields */
                        if (!is_instance && mono_security_core_clr_enabled ())
                                ensure_method_is_allowed_to_access_field (cfg, method, field, bblock, ip);
@@ -10954,30 +10933,24 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                }
 
                                if (op == CEE_LDFLDA) {
-                                       if (is_magic_tls_access (field)) {
-                                               GSHAREDVT_FAILURE (*ip);
-                                               ins = sp [0];
-                                               *sp++ = create_magic_tls_access (cfg, field, &cached_tls_addr, ins);
-                                       } else {
-                                               if (sp [0]->type == STACK_OBJ) {
-                                                       MONO_EMIT_NEW_BIALU_IMM (cfg, OP_COMPARE_IMM, -1, sp [0]->dreg, 0);
-                                                       MONO_EMIT_NEW_COND_EXC (cfg, EQ, "NullReferenceException");
-                                               }
+                                       if (sp [0]->type == STACK_OBJ) {
+                                               MONO_EMIT_NEW_BIALU_IMM (cfg, OP_COMPARE_IMM, -1, sp [0]->dreg, 0);
+                                               MONO_EMIT_NEW_COND_EXC (cfg, EQ, "NullReferenceException");
+                                       }
 
-                                               dreg = alloc_ireg_mp (cfg);
+                                       dreg = alloc_ireg_mp (cfg);
 
-                                               if (mini_is_gsharedvt_klass (cfg, klass)) {
-                                                       MonoInst *offset_ins;
+                                       if (mini_is_gsharedvt_klass (cfg, klass)) {
+                                               MonoInst *offset_ins;
 
-                                                       offset_ins = emit_get_gsharedvt_info (cfg, field, MONO_RGCTX_INFO_FIELD_OFFSET);
-                                                       EMIT_NEW_BIALU (cfg, ins, OP_PADD, dreg, sp [0]->dreg, offset_ins->dreg);
-                                               } else {
-                                                       EMIT_NEW_BIALU_IMM (cfg, ins, OP_PADD_IMM, dreg, sp [0]->dreg, foffset);
-                                               }
-                                               ins->klass = mono_class_from_mono_type (field->type);
-                                               ins->type = STACK_MP;
-                                               *sp++ = ins;
+                                               offset_ins = emit_get_gsharedvt_info (cfg, field, MONO_RGCTX_INFO_FIELD_OFFSET);
+                                               EMIT_NEW_BIALU (cfg, ins, OP_PADD, dreg, sp [0]->dreg, offset_ins->dreg);
+                                       } else {
+                                               EMIT_NEW_BIALU_IMM (cfg, ins, OP_PADD_IMM, dreg, sp [0]->dreg, foffset);
                                        }
+                                       ins->klass = mono_class_from_mono_type (field->type);
+                                       ins->type = STACK_MP;
+                                       *sp++ = ins;
                                } else {
                                        MonoInst *load;
 
@@ -11100,7 +11073,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                */
 
                                if (mono_class_needs_cctor_run (klass, method))
-                                       emit_generic_class_init (cfg, klass);
+                                       emit_generic_class_init (cfg, klass, &bblock);
 
                                /*
                                 * The pointer we're computing here is
@@ -11139,7 +11112,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                if (!addr) {
                                        if (mini_field_access_needs_cctor_run (cfg, method, klass, vtable)) {
                                                if (!(g_slist_find (class_inits, klass))) {
-                                                       mono_emit_abs_call (cfg, MONO_PATCH_INFO_CLASS_INIT, klass, helper_sig_class_init_trampoline, NULL);
+                                                       emit_class_init (cfg, klass, &bblock);
                                                        if (cfg->verbose_level > 2)
                                                                printf ("class %s.%s needs init call for %s\n", klass->name_space, klass->name, mono_field_get_name (field));
                                                        class_inits = g_slist_prepend (class_inits, klass);
@@ -12461,7 +12434,6 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                                        }
                                                }
 
-#if defined(MONO_ARCH_HAVE_CREATE_DELEGATE_TRAMPOLINE)
                                                /* FIXME: SGEN support */
                                                if (invoke_context_used == 0) {
                                                        ip += 6;
@@ -12477,7 +12449,6 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                                        }
                                                        ip -= 6;
                                                }
-#endif
                                        }
                                }
 
@@ -12527,7 +12498,6 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                                if (mono_security_core_clr_enabled ())
                                                        ensure_method_is_allowed_to_call_method (cfg, method, ctor_method, bblock, ip);
 
-#if defined(MONO_ARCH_HAVE_CREATE_DELEGATE_TRAMPOLINE)
                                                /* FIXME: SGEN support */
                                                if (invoke_context_used == 0) {
                                                        ip += 6;
@@ -12543,7 +12513,6 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                                        }
                                                        ip -= 6;
                                                }
-#endif
                                        }
                                }
 
index 6b4949170d60e39e13c618a5499ebc2e60bbccf7..c1332ec3bc0272180edf7a4c8934975d356fcc98 100644 (file)
@@ -7682,7 +7682,7 @@ mono_arch_is_int_overflow (void *sigctx, void *info)
 
        mono_sigctx_to_monoctx (sigctx, &ctx);
 
-       rip = (guint8*)ctx.rip;
+       rip = (guint8*)ctx.gregs [AMD64_RIP];
 
        if (IS_REX (rip [0])) {
                reg = amd64_rex_b (rip [0]);
@@ -7695,47 +7695,7 @@ mono_arch_is_int_overflow (void *sigctx, void *info)
                /* idiv REG */
                reg += x86_modrm_rm (rip [1]);
 
-               switch (reg) {
-               case AMD64_RAX:
-                       value = ctx.rax;
-                       break;
-               case AMD64_RBX:
-                       value = ctx.rbx;
-                       break;
-               case AMD64_RCX:
-                       value = ctx.rcx;
-                       break;
-               case AMD64_RDX:
-                       value = ctx.rdx;
-                       break;
-               case AMD64_RBP:
-                       value = ctx.rbp;
-                       break;
-               case AMD64_RSP:
-                       value = ctx.rsp;
-                       break;
-               case AMD64_RSI:
-                       value = ctx.rsi;
-                       break;
-               case AMD64_RDI:
-                       value = ctx.rdi;
-                       break;
-               case AMD64_R12:
-                       value = ctx.r12;
-                       break;
-               case AMD64_R13:
-                       value = ctx.r13;
-                       break;
-               case AMD64_R14:
-                       value = ctx.r14;
-                       break;
-               case AMD64_R15:
-                       value = ctx.r15;
-                       break;
-               default:
-                       g_assert_not_reached ();
-                       reg = -1;
-               }                       
+               value = ctx.gregs [reg];
 
                if (value == -1)
                        return TRUE;
@@ -8312,44 +8272,16 @@ mono_arch_print_tree (MonoInst *tree, int arity)
        return 0;
 }
 
-#define _CTX_REG(ctx,fld,i) ((&ctx->fld)[i])
-
 mgreg_t
 mono_arch_context_get_int_reg (MonoContext *ctx, int reg)
 {
-       switch (reg) {
-       case AMD64_RCX: return ctx->rcx;
-       case AMD64_RDX: return ctx->rdx;
-       case AMD64_RBX: return ctx->rbx;
-       case AMD64_RBP: return ctx->rbp;
-       case AMD64_RSP: return ctx->rsp;
-       default:
-               return _CTX_REG (ctx, rax, reg);
-       }
+       return ctx->gregs [reg];
 }
 
 void
 mono_arch_context_set_int_reg (MonoContext *ctx, int reg, mgreg_t val)
 {
-       switch (reg) {
-       case AMD64_RCX:
-               ctx->rcx = val;
-               break;
-       case AMD64_RDX: 
-               ctx->rdx = val;
-               break;
-       case AMD64_RBX:
-               ctx->rbx = val;
-               break;
-       case AMD64_RBP:
-               ctx->rbp = val;
-               break;
-       case AMD64_RSP:
-               ctx->rsp = val;
-               break;
-       default:
-               _CTX_REG (ctx, rax, reg) = val;
-       }
+       ctx->gregs [reg] = val;
 }
 
 gpointer
index bd2885424b8a338861f2619dcd785aa37de39600..3588a31e86aa050f20605ebecc15ac256d689b62 100644 (file)
@@ -171,7 +171,8 @@ struct MonoLMF {
         * the caller ip is saved.
         * If the second lowest bit is set, then this is a MonoLMFExt structure, and
         * the other fields are not valid.
-        * If the third lowest bit is set, then this is a MonoLMFTramp structure.
+        * If the third lowest bit is set, then this is a MonoLMFTramp structure, and
+        * the 'rbp' field is not valid.
         */
        gpointer    previous_lmf;
 #if defined(__default_codegen__) || defined(HOST_WIN32)
@@ -188,7 +189,7 @@ struct MonoLMF {
 /* LMF structure used by the JIT trampolines */
 typedef struct {
        struct MonoLMF lmf;
-       guint64 *regs;
+       MonoContext *ctx;
        gpointer lmf_addr;
 } MonoLMFTramp;
 
@@ -231,8 +232,8 @@ typedef struct {
        guint8 *ret;
 } DynCallArgs;
 
-#define MONO_CONTEXT_SET_LLVM_EXC_REG(ctx, exc) do { (ctx)->rax = (gsize)exc; } while (0)
-#define MONO_CONTEXT_SET_LLVM_EH_SELECTOR_REG(ctx, sel) do { (ctx)->rdx = (gsize)(sel); } while (0)
+#define MONO_CONTEXT_SET_LLVM_EXC_REG(ctx, exc) do { (ctx)->gregs [AMD64_RAX] = (gsize)exc; } while (0)
+#define MONO_CONTEXT_SET_LLVM_EH_SELECTOR_REG(ctx, sel) do { (ctx)->gregs [AMD64_RDX] = (gsize)(sel); } while (0)
 
 #define MONO_ARCH_INIT_TOP_LMF_ENTRY(lmf)
 
@@ -307,7 +308,6 @@ typedef struct {
 
 #define MONO_ARCH_ENABLE_MONO_LMF_VAR 1
 #define MONO_ARCH_HAVE_INVALIDATE_METHOD 1
-#define MONO_ARCH_HAVE_CREATE_DELEGATE_TRAMPOLINE 1
 #define MONO_ARCH_HAVE_FULL_AOT_TRAMPOLINES 1
 #define MONO_ARCH_HAVE_TLS_GET (mono_amd64_have_tls_get ())
 #define MONO_ARCH_IMT_REG AMD64_R10
@@ -380,14 +380,12 @@ mono_amd64_patch (unsigned char* code, gpointer target);
 void
 mono_amd64_throw_exception (guint64 dummy1, guint64 dummy2, guint64 dummy3, guint64 dummy4,
                                                        guint64 dummy5, guint64 dummy6,
-                                                       mgreg_t *regs, mgreg_t rip,
-                                                       MonoObject *exc, gboolean rethrow);
+                                                       MonoContext *mctx, MonoObject *exc, gboolean rethrow);
 
 void
 mono_amd64_throw_corlib_exception (guint64 dummy1, guint64 dummy2, guint64 dummy3, guint64 dummy4,
                                                                   guint64 dummy5, guint64 dummy6,
-                                                                  mgreg_t *regs, mgreg_t rip,
-                                                                  guint32 ex_token_index, gint64 pc_offset);
+                                                                  MonoContext *mctx, guint32 ex_token_index, gint64 pc_offset);
 
 guint64
 mono_amd64_get_original_ip (void);
index 527adfac7a4d8ce144c4f6f2efc5ca9a18f34abf..0bdec210868ae04a6913482a461efc4b5ddaa302 100644 (file)
@@ -1386,6 +1386,11 @@ get_call_info (MonoGenericSharingContext *gsctx, MonoMemPool *mp, MonoMethodSign
        case MONO_TYPE_R8:
                cinfo->ret.storage = RegTypeFP;
 
+               if (t->type == MONO_TYPE_R4)
+                       cinfo->ret.size = 4;
+               else
+                       cinfo->ret.size = 8;
+
                if (IS_HARD_FLOAT) {
                        cinfo->ret.reg = ARM_VFP_F0;
                } else {
@@ -2858,7 +2863,23 @@ mono_arch_start_dyn_call (MonoDynCallInfo *info, gpointer **args, guint8 *ret, g
                                p->regs [slot] = (mgreg_t)*arg;
                                break;
                        } else {
-                               /* Fall though */
+                               if (t->type == MONO_TYPE_GENERICINST && mono_class_is_nullable (mono_class_from_mono_type (t))) {
+                                       MonoClass *klass = mono_class_from_mono_type (t);
+                                       guint8 *nullable_buf;
+                                       int size;
+
+                                       size = mono_class_value_size (klass, NULL);
+                                       nullable_buf = g_alloca (size);
+                                       g_assert (nullable_buf);
+
+                                       /* The argument pointed to by arg is either a boxed vtype or null */
+                                       mono_nullable_init (nullable_buf, (MonoObject*)arg, klass);
+
+                                       arg = (gpointer*)nullable_buf;
+                                       /* Fall though */
+                               } else {
+                                       /* Fall though */
+                               }
                        }
                case MONO_TYPE_VALUETYPE:
                        g_assert (ainfo->storage == RegTypeStructByVal);
@@ -5002,6 +5023,35 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
                        code = emit_move_return_value (cfg, ins, code);
                        break;
                }
+               case OP_GENERIC_CLASS_INIT: {
+                       static int byte_offset = -1;
+                       static guint8 bitmask;
+                       guint32 imm8;
+                       guint8 *jump;
+
+                       if (byte_offset < 0)
+                               mono_marshal_find_bitfield_offset (MonoVTable, initialized, &byte_offset, &bitmask);
+
+                       g_assert (arm_is_imm8 (byte_offset));
+                       ARM_LDRSB_IMM (code, ARMREG_IP, ins->sreg1, byte_offset);
+                       imm8 = mono_arm_is_rotated_imm8 (bitmask, &rot_amount);
+                       g_assert (imm8 >= 0);
+                       ARM_AND_REG_IMM (code, ARMREG_IP, ARMREG_IP, imm8, rot_amount);
+                       ARM_CMP_REG_IMM (code, ARMREG_IP, 0, 0);
+                       jump = code;
+                       ARM_B_COND (code, ARMCOND_NE, 0);
+
+                       /* Uninitialized case */
+                       g_assert (ins->sreg1 == ARMREG_R0);
+
+                       mono_add_patch_info (cfg, code - cfg->native_code, MONO_PATCH_INFO_INTERNAL_METHOD,
+                                                                (gpointer)"specific_trampoline_generic_class_init");
+                       code = emit_call_seq (cfg, code);
+
+                       /* Initialized case */
+                       arm_patch (jump, code);
+                       break;
+               }
                case OP_LOCALLOC: {
                        /* round the size to 8 bytes */
                        ARM_ADD_REG_IMM8 (code, ins->dreg, ins->sreg1, 7);
index 0757138a56354cc706a41530700a891eab4589c7..eb53c982951c4f75829d3451396b38abdbaa2b7c 100644 (file)
  * reproduceable results for benchmarks */
 #define MONO_ARCH_CODE_ALIGNMENT 32
 
+/* This needs to hold both a 32 bit int and a 64 bit double */
+#define mono_unwind_reg_t guint64
+
 /* Argument marshallings for calls between gsharedvt and normal code */
 typedef enum {
        GSHAREDVT_ARG_NONE = 0,
@@ -257,7 +260,6 @@ typedef struct MonoCompileArch {
 
 #define MONO_ARCH_NEED_DIV_CHECK 1
 
-#define MONO_ARCH_HAVE_CREATE_DELEGATE_TRAMPOLINE
 #define MONO_ARCH_HAVE_GENERALIZED_IMT_THUNK 1
 
 #define MONO_ARCH_HAVE_FULL_AOT_TRAMPOLINES 1
@@ -291,6 +293,7 @@ typedef struct MonoCompileArch {
 #define MONO_ARCH_HAVE_DUMMY_INIT 1
 #define MONO_ARCH_HAVE_SDB_TRAMPOLINES 1
 #define MONO_ARCH_HAVE_PATCH_CODE_NEW 1
+#define MONO_ARCH_HAVE_OP_GENERIC_CLASS_INIT 1
 
 #if defined(__native_client__)
 #undef MONO_ARCH_SOFT_DEBUG_SUPPORTED
index e1914885b60d9622b911459bfb7dba53d8284e75..4fde10b791fabbd369962c611d37f097cb6000d4 100644 (file)
@@ -702,7 +702,7 @@ mono_print_ins_index (int i, MonoInst *ins)
                break;
        case OP_IL_SEQ_POINT:
        case OP_SEQ_POINT:
-               printf (" il: %x", (int)ins->inst_imm);
+               printf (" il: 0x%x%s", (int)ins->inst_imm, ins->flags & MONO_INST_NONEMPTY_STACK ? ", nonempty-stack" : "");
                break;
        default:
                break;
index fef21b9958159dd295540dd98047413905cc09f8..bc7d73d855363553958f1def7046ba0be999a304 100644 (file)
@@ -694,7 +694,7 @@ ves_icall_get_trace (MonoException *exc, gint32 skip, MonoBoolean need_file_info
                        char *s;
 
                        sf->method = NULL;
-                       s = mono_method_full_name (method, TRUE);
+                       s = mono_method_get_name_full (method, TRUE, MONO_TYPE_NAME_FORMAT_REFLECTION);
                        MONO_OBJECT_SETREF (sf, internal_method_name, mono_string_new (domain, s));
                        g_free (s);
                }
@@ -2529,6 +2529,10 @@ mono_thread_state_init_from_sigctx (MonoThreadUnwindState *ctx, void *sigctx)
        ctx->unwind_data [MONO_UNWIND_DATA_DOMAIN] = mono_domain_get ();
        ctx->unwind_data [MONO_UNWIND_DATA_LMF] = mono_get_lmf ();
        ctx->unwind_data [MONO_UNWIND_DATA_JIT_TLS] = thread->jit_data;
+
+       if (!ctx->unwind_data [MONO_UNWIND_DATA_DOMAIN] || !ctx->unwind_data [MONO_UNWIND_DATA_LMF])
+               return FALSE;
+
        ctx->valid = TRUE;
        return TRUE;
 #else
index c78f94f3a808aacabfe6a876c50faa9a3f724221..fd7e005a82e5c6937678b93c3fc485c830fd061e 100644 (file)
@@ -2247,6 +2247,11 @@ mono_method_is_generic_sharable_full (MonoMethod *method, gboolean allow_type_va
        if (!mono_method_is_generic_impl (method))
                return FALSE;
 
+       /*
+       if (!mono_debug_count ())
+               allow_partial = FALSE;
+       */
+
        if (!partial_sharing_supported ())
                allow_partial = FALSE;
 
index 928ccfbb5358ca1b265007fe5cd023ceb8545645..bcb30ead561a6eca9a86a91aacca174989697d5c 100644 (file)
@@ -108,7 +108,6 @@ unw_dyn_region_info_t* mono_ia64_create_unwind_region (Ia64CodegenState *code);
 #define MONO_ARCH_HAVE_IS_INT_OVERFLOW 1
 
 #define MONO_ARCH_HAVE_INVALIDATE_METHOD 1
-#define MONO_ARCH_HAVE_CREATE_DELEGATE_TRAMPOLINE 1
 #define MONO_ARCH_HAVE_SAVE_UNWIND_INFO 1
 #define MONO_ARCH_HAVE_GENERALIZED_IMT_THUNK 1
 
index a5784392cfb3e15dd1584daf103d7d059aabe9ed..2667eac00f99831b2a9a363474ad847c405da794 100644 (file)
@@ -2312,7 +2312,7 @@ process_call (EmitContext *ctx, MonoBasicBlock *bb, LLVMBuilderRef *builder_ref,
                                                 */
 #ifndef TARGET_AMD64
                                                if (abs_ji->type == MONO_PATCH_INFO_MONITOR_ENTER || abs_ji->type == MONO_PATCH_INFO_MONITOR_ENTER_V4 ||
-                                                               abs_ji->type == MONO_PATCH_INFO_MONITOR_EXIT || abs_ji->type == MONO_PATCH_INFO_GENERIC_CLASS_INIT)
+                                                               abs_ji->type == MONO_PATCH_INFO_MONITOR_EXIT)
                                                        LLVM_FAILURE (ctx, "trampoline with own cconv");
 #endif
                                                target = mono_resolve_patch_target (cfg->method, cfg->domain, NULL, abs_ji, FALSE);
@@ -2709,7 +2709,7 @@ process_bb (EmitContext *ctx, MonoBasicBlock *bb)
                emit_dbg_loc (ctx, builder, ins->cil_code);
 
                nins ++;
-               if (nins > 5000 && builder == starting_builder) {
+               if (nins > 3000 && builder == starting_builder) {
                        /* some steps in llc are non-linear in the size of basic blocks, see #5714 */
                        LLVM_FAILURE (ctx, "basic block too long");
                }
@@ -3680,54 +3680,6 @@ process_bb (EmitContext *ctx, MonoBasicBlock *bb)
                        CHECK_FAILURE (ctx);
                        break;
                }
-               case OP_GENERIC_CLASS_INIT: {
-                       static int byte_offset = -1;
-                       static guint8 bitmask;
-                       LLVMValueRef flags_load, cmp;
-                       MonoMethodSignature *sig;
-                       const char *icall_name;
-                       LLVMValueRef callee;
-                       LLVMBasicBlockRef init_bb, noinit_bb;
-
-                       if (byte_offset < 0)
-                               mono_marshal_find_bitfield_offset (MonoVTable, initialized, &byte_offset, &bitmask);
-
-                       flags_load = emit_load (ctx, bb, &builder, 1, convert (ctx, lhs, LLVMPointerType (LLVMInt8Type(), 0)), "", FALSE);
-                       set_metadata_flag (flags_load, "mono.nofail.load");
-                       cmp = LLVMBuildICmp (builder, LLVMIntEQ, LLVMBuildAnd (builder, flags_load, LLVMConstInt (LLVMInt8Type (), bitmask, 0), ""), LLVMConstInt (LLVMInt1Type (), 1, FALSE), "");
-
-                       callee = ctx->lmodule->generic_class_init_tramp;
-                       if (!callee) {
-                               icall_name = "specific_trampoline_generic_class_init";
-                               sig = mono_metadata_signature_alloc (mono_get_corlib (), 1);
-                               sig->ret = &mono_get_void_class ()->byval_arg;
-                               sig->params [0] = &mono_get_int64_class ()->byval_arg;
-                               if (cfg->compile_aot) {
-                                       callee = get_plt_entry (ctx, sig_to_llvm_sig (ctx, sig), MONO_PATCH_INFO_INTERNAL_METHOD, icall_name);
-                               } else {
-                                       callee = LLVMAddFunction (module, icall_name, sig_to_llvm_sig (ctx, sig));
-                                       LLVMAddGlobalMapping (ctx->lmodule->ee, callee, resolve_patch (cfg, MONO_PATCH_INFO_INTERNAL_METHOD, icall_name));
-                               }
-                               mono_memory_barrier ();
-                               ctx->lmodule->generic_class_init_tramp = callee;
-                       }
-
-                       init_bb = gen_bb (ctx, "INIT_BB");
-                       noinit_bb = gen_bb (ctx, "NOINIT_BB");
-
-                       LLVMBuildCondBr (ctx->builder, cmp, noinit_bb, init_bb);
-
-                       builder = create_builder (ctx);
-                       ctx->builder = builder;
-                       LLVMPositionBuilderAtEnd (builder, init_bb);
-                       emit_call (ctx, bb, &builder, callee, &lhs, 1);
-                       LLVMBuildBr (builder, noinit_bb);
-
-                       builder = create_builder (ctx);
-                       ctx->builder = builder;
-                       LLVMPositionBuilderAtEnd (builder, noinit_bb);
-                       break;
-               }
                case OP_AOTCONST: {
                        guint32 got_offset;
                        LLVMValueRef indexes [2];
@@ -5285,6 +5237,7 @@ mono_llvm_emit_method (MonoCompile *cfg)
 
                //LLVMVerifyFunction(method, 0);
        } else {
+               //LLVMVerifyFunction(method, 0);
                mono_llvm_optimize_method (ctx->lmodule->mono_ee, method);
 
                if (cfg->verbose_level > 1)
index 1dff79050641082d2b0d88274cdf2492f997431a..73d0ad3272062fad992e68c42e33ca075b703a07 100644 (file)
@@ -267,7 +267,6 @@ typedef struct MonoCompileArch {
 #define MONO_ARCH_HAVE_GENERALIZED_IMT_THUNK 1
 #define MONO_ARCH_SOFT_DEBUG_SUPPORTED 1
 #define MONO_ARCH_HAVE_SIGCTX_TO_MONOCTX 1
-#define MONO_ARCH_HAVE_CREATE_DELEGATE_TRAMPOLINE 1
 #define MONO_ARCH_HAVE_SETUP_RESUME_FROM_SIGNAL_HANDLER_CTX 1
 #define MONO_ARCH_GSHARED_SUPPORTED 1
 
index 93bd63e5b027e2beef68eacd28e2ecd378dadff0..dc83f788509399e4f201a71dc391d4aa4f971c59 100644 (file)
@@ -166,7 +166,6 @@ typedef struct MonoCompileArch {
 #define MONO_ARCH_SIGNAL_STACK_SIZE (12 * 1024)
 #endif /* HAVE_WORKING_SIGALTSTACK */
 
-#define MONO_ARCH_HAVE_CREATE_DELEGATE_TRAMPOLINE
 #define MONO_ARCH_IMT_REG ppc_r11
 
 #define MONO_ARCH_VTABLE_REG   ppc_r11
index 40ceb79cfd1b8c78c7d7321e62540069441dcd1d..615d56bcc33a2fcb356c4fa794a6c23eb4d27966 100644 (file)
@@ -1174,12 +1174,10 @@ mono_patch_info_hash (gconstpointer data)
        case MONO_PATCH_INFO_IID:
        case MONO_PATCH_INFO_ADJUSTED_IID:
        case MONO_PATCH_INFO_CLASS_INIT:
-       case MONO_PATCH_INFO_GENERIC_CLASS_INIT:
        case MONO_PATCH_INFO_METHODCONST:
        case MONO_PATCH_INFO_METHOD:
        case MONO_PATCH_INFO_METHOD_JUMP:
        case MONO_PATCH_INFO_IMAGE:
-       case MONO_PATCH_INFO_JIT_ICALL_ADDR:
        case MONO_PATCH_INFO_ICALL_ADDR:
        case MONO_PATCH_INFO_FIELD:
        case MONO_PATCH_INFO_SFLDA:
@@ -1225,6 +1223,8 @@ mono_patch_info_hash (gconstpointer data)
 
                return (ji->type << 8) | (gssize)info->klass | (gssize)info->method;
        }
+       case MONO_PATCH_INFO_JIT_ICALL_ADDR:
+               return (ji->type << 8) | g_str_hash (ji->data.target);
        default:
                printf ("info type: %d\n", ji->type);
                mono_print_ji (ji); printf ("\n");
@@ -1284,6 +1284,10 @@ mono_patch_info_equal (gconstpointer ka, gconstpointer kb)
                return ji1->data.index == ji2->data.index;
        case MONO_PATCH_INFO_VIRT_METHOD:
                return ji1->data.virt_method->klass == ji2->data.virt_method->klass && ji1->data.virt_method->method == ji2->data.virt_method->method;
+       case MONO_PATCH_INFO_JIT_ICALL_ADDR:
+               if (ji1->data.target == ji2->data.target)
+                       return 1;
+               return strcmp (ji1->data.target, ji2->data.target) == 0 ? 1 : 0;
        default:
                if (ji1->data.target != ji2->data.target)
                        return 0;
@@ -1647,9 +1651,6 @@ mono_resolve_patch_target (MonoMethod *method, MonoDomain *domain, guint8 *code,
                target = mono_create_rgctx_lazy_fetch_trampoline (slot);
                break;
        }
-       case MONO_PATCH_INFO_GENERIC_CLASS_INIT:
-               target = mono_create_generic_class_init_trampoline ();
-               break;
        case MONO_PATCH_INFO_MONITOR_ENTER:
                target = mono_create_monitor_enter_trampoline ();
                break;
@@ -2267,7 +2268,7 @@ mono_jit_runtime_invoke (MonoMethod *method, void *obj, void **params, MonoObjec
                        for (i = 0; i < sig->param_count; ++i) {
                                MonoType *t = sig->params [i];
 
-                               if (t->type == MONO_TYPE_GENERICINST && mono_class_is_nullable (mono_class_from_mono_type (t)))
+                               if (t->byref && t->type == MONO_TYPE_GENERICINST && mono_class_is_nullable (mono_class_from_mono_type (t)))
                                        supported = FALSE;
                        }
 
@@ -3315,6 +3316,7 @@ register_icalls (void)
 #ifdef MONO_ARCH_EMULATE_FREM
 #if defined(__default_codegen__)
        register_opcode_emulation (OP_FREM, "__emul_frem", "double double double", fmod, "fmod", FALSE);
+       register_opcode_emulation (OP_RREM, "__emul_rrem", "float float float", fmodf, "fmodf", FALSE);
 #elif defined(__native_client_codegen__)
        register_opcode_emulation (OP_FREM, "__emul_frem", "double double double", mono_fmod, "mono_fmod", FALSE);
 #endif
@@ -3414,6 +3416,7 @@ register_icalls (void)
 
        register_icall (mono_object_castclass_with_cache, "mono_object_castclass_with_cache", "object object ptr ptr", FALSE);
        register_icall (mono_object_isinst_with_cache, "mono_object_isinst_with_cache", "object object ptr ptr", FALSE);
+       register_icall (mono_generic_class_init, "mono_generic_class_init", "void ptr", FALSE);
 
        register_icall (mono_debugger_agent_user_break, "mono_debugger_agent_user_break", "void", FALSE);
        register_dyn_icall (mono_create_specific_trampoline (NULL, MONO_TRAMPOLINE_GENERIC_CLASS_INIT, mono_get_root_domain (), NULL),
index 0df2e1a0b3619672b1a9df62d3dbf7ee563e6113..7e2b103cf4cdce859a8f291a04efef10a5924e81 100644 (file)
@@ -267,6 +267,7 @@ if (ins->inst_target_bb->native_offset) {                                   \
 #include <mono/utils/mono-math.h>
 #include <mono/utils/mono-mmap.h>
 #include <mono/utils/mono-hwcap-s390x.h>
+#include <mono/utils/mono-threads.h>
 
 #include "mini-s390x.h"
 #include "cpu-s390x.h"
@@ -4119,7 +4120,29 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
 
                        break;
                }
-       
+               case OP_GENERIC_CLASS_INIT: {
+                       static int byte_offset = -1;
+                       static guint8 bitmask;
+                       guint16 *jump;
+
+                       g_assert (ins->sreg1 == S390_FIRST_ARG_REG);
+
+                       if (byte_offset < 0)
+                               mono_marshal_find_bitfield_offset (MonoVTable, initialized, &byte_offset, &bitmask);
+
+                       s390_tm (code, ins->sreg1, byte_offset, bitmask);
+                       s390_jo (code, 0); CODEPTR(code, jump);
+
+                       mono_add_patch_info (cfg, code-cfg->native_code, MONO_PATCH_INFO_JIT_ICALL_ADDR,
+                                               "specific_trampoline_generic_class_init");
+                       S390_CALL_TEMPLATE(code, s390_r14);
+
+                       PTRSLOT (code, jump);
+
+                       ins->flags |= MONO_INST_GC_CALLSITE;
+                       ins->backend.pc_offset = code - cfg->native_code;
+                       break;
+               }
                case OP_BR: 
                        EMIT_UNCOND_BRANCH(ins);
                        break;
@@ -4592,6 +4615,19 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
                case OP_MEMORY_BARRIER:
                        s390_mem (code);
                        break;
+#if USE_COOP_GC
+               case OP_GC_SAFE_POINT: {
+                       guint8 *br;
+
+                       s390_chi (code, ins->sreg1, 1); 
+                       s390_je  (code, 0); CODEPTR(code, br);
+                       mono_add_patch_info (cfg, code- cfg->native_code, MONO_PATCH_INFO_ABS,
+                                            mono_threads_state_poll);
+                       S390_CALL_TEMPLATE (code, s390_r14);
+                       PTRSLOT (code, br);
+                       break;
+               }
+#endif
                case OP_GC_LIVENESS_DEF:
                case OP_GC_LIVENESS_USE:
                case OP_GC_PARAM_SLOT_LIVENESS_DEF:
@@ -4670,7 +4706,6 @@ mono_arch_patch_code (MonoCompile *cfg, MonoMethod *method, MonoDomain *domain,
                        case MONO_PATCH_INFO_INTERNAL_METHOD:
                        case MONO_PATCH_INFO_JIT_ICALL_ADDR:
                        case MONO_PATCH_INFO_CLASS_INIT:
-                       case MONO_PATCH_INFO_GENERIC_CLASS_INIT:
                        case MONO_PATCH_INFO_RGCTX_FETCH:
                        case MONO_PATCH_INFO_MONITOR_ENTER:
                        case MONO_PATCH_INFO_MONITOR_ENTER_V4:
@@ -5565,9 +5600,7 @@ mono_arch_context_set_int_reg (MonoContext *ctx, int reg, mgreg_t val)
 gpointer
 mono_arch_get_this_arg_from_call (mgreg_t *regs, guint8 *code)
 {
-       MonoLMF *lmf = (MonoLMF *) ((gchar *) regs - sizeof(MonoLMF));
-
-       return (gpointer) lmf->gregs [s390_r2];
+       return (gpointer) regs [s390_r2];
 }
 
 /*========================= End of Function ========================*/
@@ -5951,9 +5984,7 @@ mono_arch_build_imt_thunk (MonoVTable *vtable, MonoDomain *domain,
 MonoMethod*
 mono_arch_find_imt_method (mgreg_t *regs, guint8 *code)
 {
-       MonoLMF *lmf = (MonoLMF *) ((gchar *) regs - sizeof(MonoLMF));
-
-       return ((MonoMethod *) lmf->gregs [MONO_ARCH_IMT_REG]);
+       return ((MonoMethod *) regs [MONO_ARCH_IMT_REG]);
 }
 
 /*========================= End of Function ========================*/
index 46bc61036fccc200a12ca6628bccc4b74f45dd5e..740ae80e1e35b25acd425a024e54e1ff0dca1199 100644 (file)
@@ -47,11 +47,10 @@ typedef struct
 #define MONO_ARCH_NEED_DIV_CHECK                       1
 #define MONO_ARCH_SIGNAL_STACK_SIZE                    256*1024
 #define MONO_ARCH_HAVE_DECOMPOSE_OPTS                  1
-#define MONO_ARCH_HAVE_CREATE_DELEGATE_TRAMPOLINE      1
 #define MONO_ARCH_HAVE_TLS_GET                         1
 #define MONO_ARCH_ENABLE_MONO_LMF_VAR                  1
 #define MONO_ARCH_IMT_REG                              s390_r9
-#define MONO_ARCH_VTABLE_REG                           MONO_ARCH_IMT_REG
+#define MONO_ARCH_VTABLE_REG                           S390_FIRST_ARG_REG
 #define MONO_ARCH_RGCTX_REG                            MONO_ARCH_IMT_REG
 #define MONO_ARCH_HAVE_SIGCTX_TO_MONOCTX               1
 #define MONO_ARCH_SOFT_DEBUG_SUPPORTED                 1
@@ -62,6 +61,8 @@ typedef struct
 #define MONO_ARCH_MONITOR_ENTER_ADJUSTMENT             1
 #define MONO_ARCH_HAVE_HANDLER_BLOCK_GUARD             1
 #define MONO_ARCH_HAVE_INVALIDATE_METHOD               1
+#define MONO_ARCH_HAVE_OP_GENERIC_CLASS_INIT           1
+#define MONO_ARCH_HAVE_SETUP_ASYNC_CALLBACK            1
 #define MONO_ARCH_MONITOR_OBJECT_REG                   s390_r2
 #define MONO_ARCH_LOCK_TAKEN_REG                       s390_r1
 
@@ -98,7 +99,8 @@ typedef struct
 #define MONO_ARCH_FPSTACK_SIZE 0
 
 #define MONO_ARCH_INST_FIXED_REG(desc) ((desc == 'o') ? s390_r2 :              \
-                                       ((desc == 'g') ? s390_f0 : - 1))
+                                       ((desc == 'g') ? s390_f0 :              \
+                                       ((desc == 'A') ? S390_FIRST_ARG_REG : -1)))
 
 #define MONO_ARCH_INST_IS_FLOAT(desc)  ((desc == 'f') || (desc == 'g'))
 
index 773a9a84c9f38ece73a7e4c2efd59ec953616698..085f56141f9063ad49d1b5f9acdf379efc724511 100644 (file)
@@ -985,8 +985,6 @@ mono_monitor_exit_trampoline (mgreg_t *regs, guint8 *code, MonoObject *obj, guin
        mono_monitor_exit (obj);
 }
 
-#ifdef MONO_ARCH_HAVE_CREATE_DELEGATE_TRAMPOLINE
-
 /*
  * Precompute data to speed up mono_delegate_trampoline ().
  * METHOD might be NULL.
@@ -1193,8 +1191,6 @@ mono_delegate_trampoline (mgreg_t *regs, guint8 *code, gpointer *arg, guint8* tr
        return code;
 }
 
-#endif
-
 #ifdef MONO_ARCH_HAVE_HANDLER_BLOCK_GUARD
 static gpointer
 mono_handler_block_guard_trampoline (mgreg_t *regs, guint8 *code, gpointer *tramp_info, guint8* tramp)
@@ -1276,10 +1272,8 @@ mono_get_trampoline_func (MonoTrampolineType tramp_type)
        case MONO_TRAMPOLINE_AOT_PLT:
                return mono_aot_plt_trampoline;
 #endif
-#ifdef MONO_ARCH_HAVE_CREATE_DELEGATE_TRAMPOLINE
        case MONO_TRAMPOLINE_DELEGATE:
                return mono_delegate_trampoline;
-#endif
        case MONO_TRAMPOLINE_RESTORE_STACK_PROT:
                return mono_altstack_restore_prot;
 #ifndef DISABLE_REMOTING
@@ -1333,9 +1327,7 @@ mono_trampolines_init (void)
        mono_trampoline_code [MONO_TRAMPOLINE_AOT] = create_trampoline_code (MONO_TRAMPOLINE_AOT);
        mono_trampoline_code [MONO_TRAMPOLINE_AOT_PLT] = create_trampoline_code (MONO_TRAMPOLINE_AOT_PLT);
 #endif
-#ifdef MONO_ARCH_HAVE_CREATE_DELEGATE_TRAMPOLINE
        mono_trampoline_code [MONO_TRAMPOLINE_DELEGATE] = create_trampoline_code (MONO_TRAMPOLINE_DELEGATE);
-#endif
        mono_trampoline_code [MONO_TRAMPOLINE_RESTORE_STACK_PROT] = create_trampoline_code (MONO_TRAMPOLINE_RESTORE_STACK_PROT);
 #ifndef DISABLE_REMOTING
        mono_trampoline_code [MONO_TRAMPOLINE_GENERIC_VIRTUAL_REMOTING] = create_trampoline_code (MONO_TRAMPOLINE_GENERIC_VIRTUAL_REMOTING);
@@ -1421,35 +1413,6 @@ mono_create_class_init_trampoline (MonoVTable *vtable)
        return ptr;
 }
 
-gpointer
-mono_create_generic_class_init_trampoline (void)
-{
-#ifndef MONO_ARCH_HAVE_OP_GENERIC_CLASS_INIT
-       static gpointer code;
-       MonoTrampInfo *info;
-
-       mono_trampolines_lock ();
-
-       if (!code) {
-               if (mono_aot_only)
-                       /* get_named_code () might return an ftnptr, but our caller expects a direct pointer */
-                       code = mono_get_addr_from_ftnptr (mono_aot_get_trampoline ("generic_class_init_trampoline"));
-               else {
-                       code = mono_arch_create_generic_class_init_trampoline (&info, FALSE);
-                       mono_tramp_info_register (info);
-               }
-       }
-
-       mono_trampolines_unlock ();
-
-       return code;
-#else
-       /* Not used */
-       g_assert_not_reached ();
-       return NULL;
-#endif
-}
-
 gpointer
 mono_create_jump_trampoline (MonoDomain *domain, MonoMethod *method, gboolean add_sync_wrapper)
 {
@@ -1561,7 +1524,6 @@ mono_create_jit_trampoline_from_token (MonoImage *image, guint32 token)
 MonoDelegateTrampInfo*
 mono_create_delegate_trampoline_info (MonoDomain *domain, MonoClass *klass, MonoMethod *method)
 {
-#ifdef MONO_ARCH_HAVE_CREATE_DELEGATE_TRAMPOLINE
        MonoDelegateTrampInfo *tramp_info;
        MonoClassMethodPair pair, *dpair;
        guint32 code_size = 0;
@@ -1588,32 +1550,21 @@ mono_create_delegate_trampoline_info (MonoDomain *domain, MonoClass *klass, Mono
        mono_domain_unlock (domain);
 
        return tramp_info;
-#else
-       return NULL;
-#endif
 }
 
 gpointer
 mono_create_delegate_trampoline (MonoDomain *domain, MonoClass *klass)
 {
-#ifdef MONO_ARCH_HAVE_CREATE_DELEGATE_TRAMPOLINE
        return mono_create_delegate_trampoline_info (domain, klass, NULL)->invoke_impl;
-#else
-       return NULL;
-#endif
 }
 
 gpointer
 mono_create_delegate_virtual_trampoline (MonoDomain *domain, MonoClass *klass, MonoMethod *method)
 {
-#ifdef MONO_ARCH_HAVE_CREATE_DELEGATE_TRAMPOLINE
        MonoMethod *invoke = mono_get_delegate_invoke (klass);
        g_assert (invoke);
 
        return mono_get_delegate_virtual_invoke_impl (mono_method_signature (invoke), method);
-#else
-       return NULL;
-#endif
 }
 
 gpointer
index 5cb56383b22f01204cb196a468f784e2835d5129..657cc7708733634fb42208d8378dda25d6af5e53 100644 (file)
 
 #include "mini.h"
 
+/* This is the same as mgreg_t, except on 32 bit bit platforms with callee saved fp regs */
+#ifndef mono_unwind_reg_t
+#define mono_unwind_reg_t mgreg_t
+#endif
+
 /*
  * This is a platform-independent interface for unwinding through stack frames 
  * based on the Dwarf unwinding interface.
@@ -145,7 +150,7 @@ mono_unwind_ops_encode (GSList *unwind_ops, guint32 *out_len);
 void
 mono_unwind_frame (guint8 *unwind_info, guint32 unwind_info_len, 
                                   guint8 *start_ip, guint8 *end_ip, guint8 *ip, guint8 **mark_locations,
-                                  mgreg_t *regs, int nregs,
+                                  mono_unwind_reg_t *regs, int nregs,
                                   mgreg_t **save_locations, int save_locations_len,
                                   guint8 **out_cfa);
 
index 9941b2387548d4d937b4be19597edfa4d0cb5471..53e5d6fbbd100281e84f66b44ab3ee564b0ac1b2 100644 (file)
@@ -5110,7 +5110,6 @@ mono_arch_patch_code_new (MonoCompile *cfg, MonoDomain *domain, guint8 *code, Mo
        case MONO_PATCH_INFO_BB:
        case MONO_PATCH_INFO_LABEL:
        case MONO_PATCH_INFO_RGCTX_FETCH:
-       case MONO_PATCH_INFO_GENERIC_CLASS_INIT:
        case MONO_PATCH_INFO_MONITOR_ENTER:
        case MONO_PATCH_INFO_MONITOR_ENTER_V4:
        case MONO_PATCH_INFO_MONITOR_EXIT:
index 084bb22a56297aa8e2914e48121a076129fed4a9..35522459d0f64feaa59f1a335af7bc39d72e3e8e 100644 (file)
@@ -206,7 +206,6 @@ typedef struct {
 /* X86 uses jit_tls->lmf (See emit_push_lmf ()) */
 #define MONO_ARCH_ENABLE_MONO_LMF_VAR 1
 #endif
-#define MONO_ARCH_HAVE_CREATE_DELEGATE_TRAMPOLINE 1
 #define MONO_ARCH_HAVE_TLS_GET (mono_x86_have_tls_get ())
 #define MONO_ARCH_IMT_REG X86_EDX
 #define MONO_ARCH_VTABLE_REG X86_EDX
index cba4f465528dae5c2d75e4ec7b60c7da16c2b197..8889c976a06c693f1ce35b774a83ad18b65a3992 100644 (file)
@@ -4005,12 +4005,7 @@ mono_jit_compile_method_inner (MonoMethod *method, MonoDomain *target_domain, in
                                 */
                                return mono_get_addr_from_ftnptr ((gpointer)mono_icall_get_wrapper_full (mi, TRUE));
                        } else if (*name == 'I' && (strcmp (name, "Invoke") == 0)) {
-#ifdef MONO_ARCH_HAVE_CREATE_DELEGATE_TRAMPOLINE
                                return mono_create_delegate_trampoline (target_domain, method->klass);
-#else
-                               nm = mono_marshal_get_delegate_invoke (method, NULL);
-                               return mono_get_addr_from_ftnptr (mono_compile_method (nm));
-#endif
                        } else if (*name == 'B' && (strcmp (name, "BeginInvoke") == 0)) {
                                nm = mono_marshal_get_delegate_begin_invoke (method);
                                return mono_get_addr_from_ftnptr (mono_compile_method (nm));
index 40e4dd14e3ba56051d7f2365a9216cebb94c06fa..a7b0533d7f6a0bec10e923a3e38f10f902dc729a 100644 (file)
 #endif
 
 /* Version number of the AOT file format */
-#define MONO_AOT_FILE_VERSION 115
+#define MONO_AOT_FILE_VERSION 117
 
 //TODO: This is x86/amd64 specific.
 #define mono_simd_shuffle_mask(a,b,c,d) ((a) | ((b) << 2) | ((c) << 4) | ((d) << 6))
@@ -174,6 +174,7 @@ typedef enum {
        MONO_AOT_FILE_FLAG_WITH_LLVM = 1,
        MONO_AOT_FILE_FLAG_FULL_AOT = 2,
        MONO_AOT_FILE_FLAG_DEBUG = 4,
+       MONO_AOT_FILE_FLAG_LLVM_THUMB = 8,
 } MonoAotFileFlags;
 
 /* This structure is stored in the AOT file */
@@ -226,10 +227,6 @@ typedef struct MonoAotFileInfo
        gpointer static_rgctx_trampolines;
        gpointer imt_thunks;
        gpointer gsharedvt_arg_trampolines;
-       /*
-        * The end of LLVM generated thumb code, or NULL.
-        */
-       gpointer thumb_end;
        /* In static mode, points to a table of global symbols for trampolines etc */
        gpointer globals;
        /* Points to a string containing the assembly name*/
@@ -2360,7 +2357,6 @@ gpointer          mono_create_jump_trampoline (MonoDomain *domain,
                                                                                           MonoMethod *method, 
                                                                                           gboolean add_sync_wrapper);
 gpointer          mono_create_class_init_trampoline (MonoVTable *vtable);
-gpointer          mono_create_generic_class_init_trampoline (void);
 gpointer          mono_create_jit_trampoline (MonoMethod *method);
 gpointer          mono_create_jit_trampoline_from_token (MonoImage *image, guint32 token);
 gpointer          mono_create_jit_trampoline_in_domain (MonoDomain *domain, MonoMethod *method) MONO_LLVM_INTERNAL;
@@ -2468,7 +2464,6 @@ void      mono_arch_exceptions_init             (void);
 guchar*   mono_arch_create_generic_trampoline   (MonoTrampolineType tramp_type, MonoTrampInfo **info, gboolean aot);
 gpointer  mono_arch_create_rgctx_lazy_fetch_trampoline (guint32 slot, MonoTrampInfo **info, gboolean aot);
 gpointer  mono_arch_create_general_rgctx_lazy_fetch_trampoline (MonoTrampInfo **info, gboolean aot);
-gpointer  mono_arch_create_generic_class_init_trampoline (MonoTrampInfo **info, gboolean aot);
 gpointer  mono_arch_get_nullified_class_init_trampoline (MonoTrampInfo **info);
 guint8*   mono_arch_create_sdb_trampoline (gboolean single_step, MonoTrampInfo **info, gboolean aot);
 gpointer  mono_arch_create_monitor_enter_trampoline (MonoTrampInfo **info, gboolean is_v4, gboolean aot);
@@ -2959,12 +2954,6 @@ void MONO_SIG_HANDLER_SIGNATURE (mono_sigsegv_signal_handler);
 void MONO_SIG_HANDLER_SIGNATURE (mono_sigint_signal_handler) ;
 gboolean MONO_SIG_HANDLER_SIGNATURE (mono_chain_signal);
 
-#ifdef MONO_ARCH_HAVE_CREATE_DELEGATE_TRAMPOLINE
-#define ARCH_HAVE_DELEGATE_TRAMPOLINES 1
-#else
-#define ARCH_HAVE_DELEGATE_TRAMPOLINES 0
-#endif
-
 #ifdef MONO_ARCH_HAVE_OP_TAIL_CALL
 #define ARCH_HAVE_OP_TAIL_CALL 1
 #else
index 4f31fd5bd360616ae6b7a38ef7aa2767fd9e0baf..165984f23a4c153f8e4217a4facf0b6ea1051558 100644 (file)
@@ -36,7 +36,6 @@ PATCH_INFO(JIT_ICALL_ADDR, "jit_icall_addr")
 PATCH_INFO(INTERRUPTION_REQUEST_FLAG, "interruption_request_flag")
 PATCH_INFO(METHOD_RGCTX, "method_rgctx")
 PATCH_INFO(RGCTX_FETCH, "rgctx_fetch")
-PATCH_INFO(GENERIC_CLASS_INIT, "generic_class_init")
 PATCH_INFO(MONITOR_ENTER, "monitor_enter")
 PATCH_INFO(MONITOR_ENTER_V4, "monitor_enter_v4")
 PATCH_INFO(MONITOR_EXIT, "monitor_exit")
index b2b511f0cb49347eefabf908987a7539aceaecc8..e48696334c00629dda6476ec595866a5d32ef35e 100644 (file)
@@ -98,7 +98,8 @@ mono_save_seq_point_info (MonoCompile *cfg)
                                last = ins;
                        }
 
-                       if (bb->last_ins && bb->last_ins->opcode == OP_ENDFINALLY && bb->seq_points) {
+                       /* The second case handles endfinally opcodes which are in a separate bb by themselves */
+                       if ((bb->last_ins && bb->last_ins->opcode == OP_ENDFINALLY && bb->seq_points) || (bb->out_count == 1 && bb->out_bb [0]->code && bb->out_bb [0]->code->opcode == OP_ENDFINALLY)) {
                                MonoBasicBlock *bb2;
                                MonoInst *endfinally_seq_point = NULL;
 
index 74613b3620d8948d44c178b02440b45346594c15..4be828414da66c2fdd47259d72db0fc4ae9060ee 100644 (file)
@@ -401,7 +401,7 @@ mono_arch_create_generic_trampoline (MonoTrampolineType tramp_type, MonoTrampInf
 {
        char *tramp_name;
        guint8 *buf, *code, *tramp, *br [2], *r11_save_code, *after_r11_save_code;
-       int i, lmf_offset, offset, res_offset, arg_offset, rax_offset, tramp_offset, saved_regs_offset;
+       int i, lmf_offset, offset, res_offset, arg_offset, rax_offset, tramp_offset, ctx_offset, saved_regs_offset;
        int saved_fpregs_offset, rbp_offset, framesize, orig_rsp_to_rbp_offset, cfa_offset;
        gboolean has_caller;
        GSList *unwind_ops = NULL;
@@ -419,13 +419,36 @@ mono_arch_create_generic_trampoline (MonoTrampolineType tramp_type, MonoTrampInf
 
        code = buf = mono_global_codeman_reserve (kMaxCodeSize);
 
-       framesize = kMaxCodeSize + sizeof (MonoLMFTramp);
-       framesize = (framesize + (MONO_ARCH_FRAME_ALIGNMENT - 1)) & ~ (MONO_ARCH_FRAME_ALIGNMENT - 1);
+       /* Compute stack frame size and offsets */
+       offset = 0;
+       rbp_offset = -offset;
+
+       offset += sizeof(mgreg_t);
+       rax_offset = -offset;
+
+       offset += sizeof(mgreg_t);
+       tramp_offset = -offset;
+
+       offset += sizeof(gpointer);
+       arg_offset = -offset;
+
+       offset += sizeof(mgreg_t);
+       res_offset = -offset;
+
+       offset += sizeof (MonoContext);
+       ctx_offset = -offset;
+       saved_regs_offset = ctx_offset + MONO_STRUCT_OFFSET (MonoContext, gregs);
+       saved_fpregs_offset = ctx_offset + MONO_STRUCT_OFFSET (MonoContext, fregs);
+
+       offset += sizeof (MonoLMFTramp);
+       lmf_offset = -offset;
+
+       framesize = ALIGN_TO (offset, MONO_ARCH_FRAME_ALIGNMENT);
 
        orig_rsp_to_rbp_offset = 0;
        r11_save_code = code;
-       /* Reserve 5 bytes for the mov_membase_reg to save R11 */
-       code += 5;
+       /* Reserve space for the mov_membase_reg to save R11 */
+       code += 8;
        after_r11_save_code = code;
 
        // CFA = sp + 16 (the trampoline address is on the stack)
@@ -454,18 +477,6 @@ mono_arch_create_generic_trampoline (MonoTrampolineType tramp_type, MonoTrampInf
        mono_add_unwind_op_def_cfa_reg (unwind_ops, code, buf, AMD64_RBP);
        amd64_alu_reg_imm (code, X86_SUB, AMD64_RSP, framesize);
 
-       offset = 0;
-       rbp_offset = - offset;
-
-       offset += sizeof(mgreg_t);
-       rax_offset = - offset;
-
-       offset += sizeof(mgreg_t);
-       tramp_offset = - offset;
-
-       offset += sizeof(gpointer);
-       arg_offset = - offset;
-
        /* Compute the trampoline address from the return address */
        if (aot) {
 #if defined(__default_codegen__)
@@ -480,18 +491,22 @@ mono_arch_create_generic_trampoline (MonoTrampolineType tramp_type, MonoTrampInf
        }
        amd64_mov_membase_reg (code, AMD64_RBP, tramp_offset, AMD64_R11, sizeof(gpointer));
 
-       offset += sizeof(mgreg_t);
-       res_offset = - offset;
-
        /* Save all registers */
-
-       offset += AMD64_NREG * sizeof(mgreg_t);
-       saved_regs_offset = - offset;
        for (i = 0; i < AMD64_NREG; ++i) {
                if (i == AMD64_RBP) {
                        /* RAX is already saved */
                        amd64_mov_reg_membase (code, AMD64_RAX, AMD64_RBP, rbp_offset, sizeof(mgreg_t));
                        amd64_mov_membase_reg (code, AMD64_RBP, saved_regs_offset + (i * sizeof(mgreg_t)), AMD64_RAX, sizeof(mgreg_t));
+               } else if (i == AMD64_RIP) {
+                       if (has_caller)
+                               amd64_mov_reg_membase (code, AMD64_R11, AMD64_RBP, 8, sizeof(gpointer));
+                       else
+                               amd64_mov_reg_imm (code, AMD64_R11, 0);
+                       amd64_mov_membase_reg (code, AMD64_RBP, saved_regs_offset + (i * sizeof(mgreg_t)), AMD64_R11, sizeof(mgreg_t));
+               } else if (i == AMD64_RSP) {
+                       amd64_mov_reg_reg (code, AMD64_R11, AMD64_RSP, sizeof(mgreg_t));
+                       amd64_alu_reg_imm (code, X86_ADD, AMD64_R11, framesize + 16);
+                       amd64_mov_membase_reg (code, AMD64_RBP, saved_regs_offset + (i * sizeof(mgreg_t)), AMD64_R11, sizeof(mgreg_t));
                } else if (i != AMD64_R11) {
                        amd64_mov_membase_reg (code, AMD64_RBP, saved_regs_offset + (i * sizeof(mgreg_t)), i, sizeof(mgreg_t));
                } else {
@@ -502,8 +517,6 @@ mono_arch_create_generic_trampoline (MonoTrampolineType tramp_type, MonoTrampInf
                        g_assert (r11_save_code == after_r11_save_code);
                }
        }
-       offset += 8 * sizeof(mgreg_t);
-       saved_fpregs_offset = - offset;
        for (i = 0; i < 8; ++i)
                amd64_movsd_membase_reg (code, AMD64_RBP, saved_fpregs_offset + (i * sizeof(mgreg_t)), i);
 
@@ -581,25 +594,19 @@ mono_arch_create_generic_trampoline (MonoTrampolineType tramp_type, MonoTrampInf
 
        /* Save LMF begin */
 
-       offset += sizeof (MonoLMFTramp);
-       lmf_offset = - offset;
-
        /* Save ip */
        if (has_caller)
                amd64_mov_reg_membase (code, AMD64_R11, AMD64_RBP, 8, sizeof(gpointer));
        else
                amd64_mov_reg_imm (code, AMD64_R11, 0);
        amd64_mov_membase_reg (code, AMD64_RBP, lmf_offset + MONO_STRUCT_OFFSET (MonoLMF, rip), AMD64_R11, sizeof(mgreg_t));
-       /* Save fp */
-       amd64_mov_reg_membase (code, AMD64_R11, AMD64_RSP, framesize, sizeof(mgreg_t));
-       amd64_mov_membase_reg (code, AMD64_RBP, lmf_offset + MONO_STRUCT_OFFSET (MonoLMF, rbp), AMD64_R11, sizeof(mgreg_t));
        /* Save sp */
        amd64_mov_reg_reg (code, AMD64_R11, AMD64_RSP, sizeof(mgreg_t));
        amd64_alu_reg_imm (code, X86_ADD, AMD64_R11, framesize + 16);
        amd64_mov_membase_reg (code, AMD64_RBP, lmf_offset + MONO_STRUCT_OFFSET (MonoLMF, rsp), AMD64_R11, sizeof(mgreg_t));
-       /* Save pointer to registers */
-       amd64_lea_membase (code, AMD64_R11, AMD64_RBP, saved_regs_offset);
-       amd64_mov_membase_reg (code, AMD64_RBP, lmf_offset + MONO_STRUCT_OFFSET (MonoLMFTramp, regs), AMD64_R11, sizeof(mgreg_t));
+       /* Save pointer to context */
+       amd64_lea_membase (code, AMD64_R11, AMD64_RBP, ctx_offset);
+       amd64_mov_membase_reg (code, AMD64_RBP, lmf_offset + MONO_STRUCT_OFFSET (MonoLMFTramp, ctx), AMD64_R11, sizeof(mgreg_t));
 
        if (aot) {
                code = mono_arch_emit_load_aotconst (buf, code, &ji, MONO_PATCH_INFO_JIT_ICALL_ADDR, "mono_get_lmf_addr");
@@ -678,7 +685,6 @@ mono_arch_create_generic_trampoline (MonoTrampolineType tramp_type, MonoTrampInf
        for (i = 0; i < AMD64_NREG; ++i)
                if (AMD64_IS_ARGUMENT_REG (i) || i == AMD64_R10 || i == AMD64_RAX)
                        amd64_mov_reg_membase (code, i, AMD64_RBP, saved_regs_offset + (i * sizeof(mgreg_t)), sizeof(mgreg_t));
-
        for (i = 0; i < 8; ++i)
                amd64_movsd_reg_membase (code, i, AMD64_RBP, saved_fpregs_offset + (i * sizeof(mgreg_t)));
 
@@ -899,14 +905,6 @@ mono_arch_create_rgctx_lazy_fetch_trampoline (guint32 slot, MonoTrampInfo **info
        return buf;
 }
 
-gpointer
-mono_arch_create_generic_class_init_trampoline (MonoTrampInfo **info, gboolean aot)
-{
-       /* Not used on amd64 */
-       g_assert_not_reached ();
-       return NULL;
-}
-
 #ifdef MONO_ARCH_MONITOR_OBJECT_REG
 
 gpointer
@@ -1325,7 +1323,7 @@ guint8*
 mono_arch_create_sdb_trampoline (gboolean single_step, MonoTrampInfo **info, gboolean aot)
 {
        int tramp_size = 256;
-       int framesize, ctx_offset, cfa_offset;
+       int i, framesize, ctx_offset, cfa_offset, gregs_offset;
        guint8 *code, *buf;
        GSList *unwind_ops = NULL;
        MonoJumpInfo *ji = NULL;
@@ -1351,29 +1349,19 @@ mono_arch_create_sdb_trampoline (gboolean single_step, MonoTrampInfo **info, gbo
        amd64_alu_reg_imm (code, X86_SUB, AMD64_RSP, framesize);
 
        ctx_offset = 0;
+       gregs_offset = ctx_offset + MONO_STRUCT_OFFSET (MonoContext, gregs);
 
        /* Initialize a MonoContext structure on the stack */
-       amd64_mov_membase_reg (code, AMD64_RSP, ctx_offset + MONO_STRUCT_OFFSET (MonoContext, rax), AMD64_RAX, sizeof (mgreg_t));
-       amd64_mov_membase_reg (code, AMD64_RSP, ctx_offset + MONO_STRUCT_OFFSET (MonoContext, rbx), AMD64_RBX, sizeof (mgreg_t));
-       amd64_mov_membase_reg (code, AMD64_RSP, ctx_offset + MONO_STRUCT_OFFSET (MonoContext, rcx), AMD64_RCX, sizeof (mgreg_t));
-       amd64_mov_membase_reg (code, AMD64_RSP, ctx_offset + MONO_STRUCT_OFFSET (MonoContext, rdx), AMD64_RDX, sizeof (mgreg_t));
-       amd64_mov_membase_reg (code, AMD64_RSP, ctx_offset + MONO_STRUCT_OFFSET (MonoContext, rsi), AMD64_RSI, sizeof (mgreg_t));
-       amd64_mov_membase_reg (code, AMD64_RSP, ctx_offset + MONO_STRUCT_OFFSET (MonoContext, rdi), AMD64_RDI, sizeof (mgreg_t));
-       amd64_mov_membase_reg (code, AMD64_RSP, ctx_offset + MONO_STRUCT_OFFSET (MonoContext, r8), AMD64_R8, sizeof (mgreg_t));
-       amd64_mov_membase_reg (code, AMD64_RSP, ctx_offset + MONO_STRUCT_OFFSET (MonoContext, r9), AMD64_R9, sizeof (mgreg_t));
-       amd64_mov_membase_reg (code, AMD64_RSP, ctx_offset + MONO_STRUCT_OFFSET (MonoContext, r10), AMD64_R10, sizeof (mgreg_t));
-       amd64_mov_membase_reg (code, AMD64_RSP, ctx_offset + MONO_STRUCT_OFFSET (MonoContext, r11), AMD64_R11, sizeof (mgreg_t));
-       amd64_mov_membase_reg (code, AMD64_RSP, ctx_offset + MONO_STRUCT_OFFSET (MonoContext, r12), AMD64_R12, sizeof (mgreg_t));
-       amd64_mov_membase_reg (code, AMD64_RSP, ctx_offset + MONO_STRUCT_OFFSET (MonoContext, r13), AMD64_R13, sizeof (mgreg_t));
-       amd64_mov_membase_reg (code, AMD64_RSP, ctx_offset + MONO_STRUCT_OFFSET (MonoContext, r14), AMD64_R14, sizeof (mgreg_t));
-       amd64_mov_membase_reg (code, AMD64_RSP, ctx_offset + MONO_STRUCT_OFFSET (MonoContext, r15), AMD64_R15, sizeof (mgreg_t));
-
+       for (i = 0; i < AMD64_NREG; ++i) {
+               if (i != AMD64_RIP && i != AMD64_RSP && i != AMD64_RBP)
+                       amd64_mov_membase_reg (code, AMD64_RSP, gregs_offset + (i * sizeof (mgreg_t)), i, sizeof (mgreg_t));
+       }
        amd64_mov_reg_membase (code, AMD64_R11, AMD64_RBP, 0, sizeof (mgreg_t));
-       amd64_mov_membase_reg (code, AMD64_RSP, ctx_offset + MONO_STRUCT_OFFSET (MonoContext, rbp), AMD64_R11, sizeof (mgreg_t));
+       amd64_mov_membase_reg (code, AMD64_RSP, gregs_offset + (AMD64_RBP * sizeof (mgreg_t)), AMD64_R11, sizeof (mgreg_t));
        amd64_lea_membase (code, AMD64_R11, AMD64_RBP, 2 * sizeof (mgreg_t));
-       amd64_mov_membase_reg (code, AMD64_RSP, ctx_offset + MONO_STRUCT_OFFSET (MonoContext, rsp), AMD64_R11, sizeof (mgreg_t));
+       amd64_mov_membase_reg (code, AMD64_RSP, gregs_offset + (AMD64_RSP * sizeof (mgreg_t)), AMD64_R11, sizeof (mgreg_t));
        amd64_mov_reg_membase (code, AMD64_R11, AMD64_RBP, sizeof (mgreg_t), sizeof (mgreg_t));
-       amd64_mov_membase_reg (code, AMD64_RSP, ctx_offset + MONO_STRUCT_OFFSET (MonoContext, rip), AMD64_R11, sizeof (mgreg_t));
+       amd64_mov_membase_reg (code, AMD64_RSP, gregs_offset + (AMD64_RIP * sizeof (mgreg_t)), AMD64_R11, sizeof (mgreg_t));
 
        /* Call the single step/breakpoint function in sdb */
        amd64_lea_membase (code, AMD64_ARG_REG1, AMD64_RSP, ctx_offset);
@@ -1392,24 +1380,13 @@ mono_arch_create_sdb_trampoline (gboolean single_step, MonoTrampInfo **info, gbo
        }
 
        /* Restore registers from ctx */
-       amd64_mov_reg_membase (code, AMD64_RAX, AMD64_RSP, ctx_offset + MONO_STRUCT_OFFSET (MonoContext, rax), sizeof (mgreg_t));
-       amd64_mov_reg_membase (code, AMD64_RBX, AMD64_RSP, ctx_offset + MONO_STRUCT_OFFSET (MonoContext, rbx), sizeof (mgreg_t));
-       amd64_mov_reg_membase (code, AMD64_RCX, AMD64_RSP, ctx_offset + MONO_STRUCT_OFFSET (MonoContext, rcx), sizeof (mgreg_t));
-       amd64_mov_reg_membase (code, AMD64_RDX, AMD64_RSP, ctx_offset + MONO_STRUCT_OFFSET (MonoContext, rdx), sizeof (mgreg_t));
-       amd64_mov_reg_membase (code, AMD64_RSI, AMD64_RSP, ctx_offset + MONO_STRUCT_OFFSET (MonoContext, rsi), sizeof (mgreg_t));
-       amd64_mov_reg_membase (code, AMD64_RDI, AMD64_RSP, ctx_offset + MONO_STRUCT_OFFSET (MonoContext, rdi), sizeof (mgreg_t));
-       amd64_mov_reg_membase (code, AMD64_R8, AMD64_RSP, ctx_offset + MONO_STRUCT_OFFSET (MonoContext, r8), sizeof (mgreg_t));
-       amd64_mov_reg_membase (code, AMD64_R9, AMD64_RSP, ctx_offset + MONO_STRUCT_OFFSET (MonoContext, r9), sizeof (mgreg_t));
-       amd64_mov_reg_membase (code, AMD64_R10, AMD64_RSP, ctx_offset + MONO_STRUCT_OFFSET (MonoContext, r10), sizeof (mgreg_t));
-       amd64_mov_reg_membase (code, AMD64_R11, AMD64_RSP, ctx_offset + MONO_STRUCT_OFFSET (MonoContext, r11), sizeof (mgreg_t));
-       amd64_mov_reg_membase (code, AMD64_R12, AMD64_RSP, ctx_offset + MONO_STRUCT_OFFSET (MonoContext, r12), sizeof (mgreg_t));
-       amd64_mov_reg_membase (code, AMD64_R13, AMD64_RSP, ctx_offset + MONO_STRUCT_OFFSET (MonoContext, r13), sizeof (mgreg_t));
-       amd64_mov_reg_membase (code, AMD64_R14, AMD64_RSP, ctx_offset + MONO_STRUCT_OFFSET (MonoContext, r14), sizeof (mgreg_t));
-       amd64_mov_reg_membase (code, AMD64_R15, AMD64_RSP, ctx_offset + MONO_STRUCT_OFFSET (MonoContext, r15), sizeof (mgreg_t));
-
-       amd64_mov_reg_membase (code, AMD64_R11, AMD64_RSP, ctx_offset + MONO_STRUCT_OFFSET (MonoContext, rbp), sizeof (mgreg_t));
+       for (i = 0; i < AMD64_NREG; ++i) {
+               if (i != AMD64_RIP && i != AMD64_RSP && i != AMD64_RBP)
+                       amd64_mov_reg_membase (code, AMD64_RSP, i, gregs_offset + (i * sizeof (mgreg_t)), sizeof (mgreg_t));
+       }
+       amd64_mov_reg_membase (code, AMD64_R11, AMD64_RSP, gregs_offset + (AMD64_RBP * sizeof (mgreg_t)), sizeof (mgreg_t));
        amd64_mov_membase_reg (code, AMD64_RBP, 0, AMD64_R11, sizeof (mgreg_t));
-       amd64_mov_reg_membase (code, AMD64_R11, AMD64_RSP, ctx_offset + MONO_STRUCT_OFFSET (MonoContext, rip), sizeof (mgreg_t));
+       amd64_mov_reg_membase (code, AMD64_R11, AMD64_RSP, gregs_offset + (AMD64_RIP * sizeof (mgreg_t)), sizeof (mgreg_t));
        amd64_mov_membase_reg (code, AMD64_RBP, sizeof (mgreg_t), AMD64_R11, sizeof (mgreg_t));
 
        amd64_leave (code);
index 5122c94f326b2712a00c6d7f95b630d76ee4372f..e6b2732d5f38c413430214dfdbffdca285e451d8 100644 (file)
@@ -248,11 +248,10 @@ mono_arch_create_generic_trampoline (MonoTrampolineType tramp_type, MonoTrampInf
                        ARM_LDR_REG_REG (code, ARMREG_V2, ARMREG_V2, ARMREG_LR);
                }
        } else {
-               if (tramp_type != MONO_TRAMPOLINE_GENERIC_CLASS_INIT) {
+               if (tramp_type != MONO_TRAMPOLINE_GENERIC_CLASS_INIT)
                        ARM_LDR_IMM (code, ARMREG_V2, ARMREG_LR, 0);
-               }
                else
-                       ARM_MOV_REG_REG (code, ARMREG_V2, MONO_ARCH_VTABLE_REG);
+                       ARM_LDR_IMM (code, ARMREG_V2, ARMREG_SP, 0);
        }
        ARM_LDR_IMM (code, ARMREG_V3, ARMREG_SP, lr_offset);
 
@@ -439,7 +438,7 @@ mono_arch_create_generic_trampoline (MonoTrampolineType tramp_type, MonoTrampInf
        if (tramp_type == MONO_TRAMPOLINE_RGCTX_LAZY_FETCH)
                ARM_MOV_REG_REG (code, ARMREG_R0, ARMREG_IP);
        ARM_ADD_REG_IMM8 (code, ARMREG_SP, ARMREG_SP, regsave_size);
-       if ((tramp_type == MONO_TRAMPOLINE_CLASS_INIT) || (tramp_type == MONO_TRAMPOLINE_GENERIC_CLASS_INIT) || (tramp_type == MONO_TRAMPOLINE_RGCTX_LAZY_FETCH))
+       if (MONO_TRAMPOLINE_TYPE_MUST_RETURN (tramp_type))
                code = emit_bx (code, ARMREG_LR);
        else
                code = emit_bx (code, ARMREG_IP);
@@ -829,80 +828,6 @@ mono_arch_create_general_rgctx_lazy_fetch_trampoline (MonoTrampInfo **info, gboo
        return buf;
 }
 
-#define arm_is_imm8(v) ((v) > -256 && (v) < 256)
-
-gpointer
-mono_arch_create_generic_class_init_trampoline (MonoTrampInfo **info, gboolean aot)
-{
-       guint8 *tramp;
-       guint8 *code, *buf;
-       static int byte_offset = -1;
-       static guint8 bitmask;
-       guint8 *jump;
-       int tramp_size;
-       guint32 code_len, imm8;
-       gint rot_amount;
-       GSList *unwind_ops = NULL;
-       MonoJumpInfo *ji = NULL;
-
-       tramp_size = 64;
-
-       code = buf = mono_global_codeman_reserve (tramp_size);
-
-       if (byte_offset < 0)
-               mono_marshal_find_bitfield_offset (MonoVTable, initialized, &byte_offset, &bitmask);
-
-       g_assert (arm_is_imm8 (byte_offset));
-       ARM_LDRSB_IMM (code, ARMREG_IP, MONO_ARCH_VTABLE_REG, byte_offset);
-       imm8 = mono_arm_is_rotated_imm8 (bitmask, &rot_amount);
-       g_assert (imm8 >= 0);
-       ARM_AND_REG_IMM (code, ARMREG_IP, ARMREG_IP, imm8, rot_amount);
-       ARM_CMP_REG_IMM (code, ARMREG_IP, 0, 0);
-       jump = code;
-       ARM_B_COND (code, ARMCOND_EQ, 0);
-
-       /* Initialized case */
-       ARM_MOV_REG_REG (code, ARMREG_PC, ARMREG_LR);   
-
-       /* Uninitialized case */
-       arm_patch (jump, code);
-
-       if (aot) {
-               ji = mono_patch_info_list_prepend (ji, code - buf, MONO_PATCH_INFO_JIT_ICALL_ADDR, "specific_trampoline_generic_class_init");
-               ARM_LDR_IMM (code, ARMREG_R1, ARMREG_PC, 0);
-               ARM_B (code, 0);
-               *(gpointer*)code = NULL;
-               code += 4;
-               ARM_LDR_REG_REG (code, ARMREG_PC, ARMREG_PC, ARMREG_R1);
-       } else {
-#ifdef USE_JUMP_TABLES
-               gpointer *jte = mono_jumptable_add_entry ();
-#endif
-               tramp = mono_arch_create_specific_trampoline (NULL, MONO_TRAMPOLINE_GENERIC_CLASS_INIT, mono_get_root_domain (), &code_len);
-
-               /* Jump to the actual trampoline */
-#ifdef USE_JUMP_TABLES
-               code = mono_arm_load_jumptable_entry (code, jte, ARMREG_R1);
-               jte [0] = tramp;
-               code = emit_bx (code, ARMREG_R1);
-#else
-               ARM_LDR_IMM (code, ARMREG_R1, ARMREG_PC, 0); /* temp reg */
-               code = emit_bx (code, ARMREG_R1);
-               *(gpointer*)code = tramp;
-               code += 4;
-#endif
-       }
-
-       mono_arch_flush_icache (buf, code - buf);
-       mono_profiler_code_buffer_new (buf, code - buf, MONO_PROFILER_CODE_BUFFER_HELPER, NULL);
-
-       g_assert (code - buf <= tramp_size);
-
-       *info = mono_tramp_info_create ("generic_class_init_trampoline", buf, code - buf, ji, unwind_ops);
-
-       return buf;
-}
-
 static gpointer
 handler_block_trampoline_helper (gpointer *ptr)
 {
@@ -1072,13 +997,6 @@ mono_arch_create_rgctx_lazy_fetch_trampoline (guint32 slot, MonoTrampInfo **info
        return NULL;
 }
 
-gpointer
-mono_arch_create_generic_class_init_trampoline (MonoTrampInfo **info, gboolean aot)
-{
-       g_assert_not_reached ();
-       return NULL;
-}
-
 gpointer
 mono_arch_get_nullified_class_init_trampoline (MonoTrampInfo **info)
 {
index fd8d426af74a028c4cea9449b695545a0603f173..a8dbfd8fa5427027f497a16fd38f5947e4421315 100644 (file)
@@ -479,59 +479,3 @@ mono_arch_create_rgctx_lazy_fetch_trampoline (guint32 slot, MonoTrampInfo **info
 
        return buf;
 }
-
-gpointer
-mono_arch_create_generic_class_init_trampoline (MonoTrampInfo **info, gboolean aot)
-{
-       guint8 *tramp;
-       guint8 *code, *buf;
-       static int byte_offset = -1;
-       static guint8 bitmask;
-       guint8 *jump;
-       int tramp_size;
-       guint32 code_len;
-       GSList *unwind_ops = NULL;
-       MonoJumpInfo *ji = NULL;
-
-       tramp_size = 64;
-
-       code = buf = mono_global_codeman_reserve (tramp_size);
-
-       if (byte_offset < 0)
-               mono_marshal_find_bitfield_offset (MonoVTable, initialized, &byte_offset, &bitmask);
-
-       /* if (!(vtable->initialized)) */
-       mips_lbu (code, mips_at, MONO_ARCH_VTABLE_REG, byte_offset);
-       g_assert (!(bitmask & 0xffff0000));
-       mips_andi (code, mips_at, mips_at, bitmask);
-       jump = code;
-       mips_beq (code, mips_at, mips_zero, 0);
-       mips_nop (code);
-       /* Initialized case */
-       mips_jr (code, mips_ra);
-       mips_nop (code);
-
-       /* Uninitialized case */
-       mips_patch ((guint32*)jump, (guint32)code);
-
-       if (aot) {
-               ji = mono_patch_info_list_prepend (ji, code - buf, MONO_PATCH_INFO_JIT_ICALL_ADDR, "specific_trampoline_generic_class_init");
-               mips_load (code, mips_at, 0);
-               mips_jr (code, mips_at);
-               mips_nop (code);
-       } else {
-               tramp = mono_arch_create_specific_trampoline (NULL, MONO_TRAMPOLINE_GENERIC_CLASS_INIT, mono_get_root_domain (), &code_len);
-               mips_load (code, mips_at, tramp);
-               mips_jr (code, mips_at);
-               mips_nop (code);
-       }
-
-       mono_arch_flush_icache (buf, code - buf);
-
-       g_assert (code - buf <= tramp_size);
-
-       if (info)
-               *info = mono_tramp_info_create ("generic_class_init_trampoline", buf, code - buf, ji, unwind_ops);
-
-       return buf;
-}
index 9d465f35139e4b02ae49d4bafba33a3375dae482..0628be3772e7b198e58c8dc60955cd7f04f03fa3 100644 (file)
@@ -612,61 +612,6 @@ mono_arch_create_rgctx_lazy_fetch_trampoline (guint32 slot, MonoTrampInfo **info
        return buf;
 }
 
-gpointer
-mono_arch_create_generic_class_init_trampoline (MonoTrampInfo **info, gboolean aot)
-{
-       guint8 *tramp;
-       guint8 *code, *buf;
-       static int byte_offset = -1;
-       static guint8 bitmask;
-       guint8 *jump;
-       int tramp_size;
-       GSList *unwind_ops = NULL;
-       MonoJumpInfo *ji = NULL;
-
-       tramp_size = MONO_PPC_32_64_CASE (32, 44);
-       if (aot)
-               tramp_size += 32;
-
-       code = buf = mono_global_codeman_reserve (tramp_size);
-
-       if (byte_offset < 0)
-               mono_marshal_find_bitfield_offset (MonoVTable, initialized, &byte_offset, &bitmask);
-
-       ppc_lbz (code, ppc_r4, byte_offset, MONO_ARCH_VTABLE_REG);
-       ppc_andid (code, ppc_r4, ppc_r4, bitmask);
-       jump = code;
-       ppc_bc (code, PPC_BR_TRUE, PPC_BR_EQ, 0);
-
-       ppc_blr (code);
-
-       ppc_patch (jump, code);
-
-       if (aot) {
-               code = mono_arch_emit_load_aotconst (buf, code, &ji, MONO_PATCH_INFO_JIT_ICALL_ADDR, "specific_trampoline_generic_class_init");
-               /* Branch to the trampoline */
-#ifdef PPC_USES_FUNCTION_DESCRIPTOR
-               ppc_ldptr (code, ppc_r12, 0, ppc_r12);
-#endif
-               ppc_mtctr (code, ppc_r12);
-               ppc_bcctr (code, PPC_BR_ALWAYS, 0);
-       } else {
-               tramp = mono_arch_create_specific_trampoline (NULL, MONO_TRAMPOLINE_GENERIC_CLASS_INIT,
-                       mono_get_root_domain (), NULL);
-
-               /* jump to the actual trampoline */
-               code = emit_trampoline_jump (code, tramp);
-       }
-
-       mono_arch_flush_icache (buf, code - buf);
-
-       g_assert (code - buf <= tramp_size);
-
-       *info = mono_tramp_info_create ("generic_class_init_trampoline", buf, code - buf, ji, unwind_ops);
-
-       return buf;
-}
-
 gpointer
 mono_arch_get_nullified_class_init_trampoline (MonoTrampInfo **info)
 {
index 2b6854849f0dda4d929bcfa4636c251c0f900f92..98dbc887fd71199ca4f4627e8e60b7a802429c3a 100644 (file)
 /*                 D e f i n e s                                    */
 /*------------------------------------------------------------------*/
 
-#define GR_SAVE_SIZE           4*sizeof(long)
-#define FP_SAVE_SIZE           16*sizeof(double)
-#define METHOD_SAVE_OFFSET     S390_MINIMAL_STACK_SIZE
-#define CREATE_GR_OFFSET       METHOD_SAVE_OFFSET+8
-#define CREATE_FP_OFFSET       CREATE_GR_OFFSET+GR_SAVE_SIZE
-#define CREATE_LMF_OFFSET      CREATE_FP_OFFSET+FP_SAVE_SIZE
-#define CREATE_STACK_SIZE      (CREATE_LMF_OFFSET+2*sizeof(long)+sizeof(MonoLMF))
-#define GENERIC_REG_OFFSET     CREATE_STACK_SIZE + \
-                               S390_REG_SAVE_OFFSET + \
-                               3*sizeof(long)
+#define LMFReg s390_r13
 
-/*------------------------------------------------------------------*/
-/* Method-specific trampoline code fragment sizes                  */
-/*------------------------------------------------------------------*/
+/*
+ * Method-specific trampoline code fragment sizes                  
+ */
 #define SPECIFIC_TRAMPOLINE_SIZE       96
 
 /*========================= End of Defines =========================*/
 /*                 T y p e d e f s                                  */
 /*------------------------------------------------------------------*/
 
+typedef struct {
+       guint8  stk[S390_MINIMAL_STACK_SIZE];   /* Standard s390x stack */
+       struct MonoLMF  LMF;                    /* LMF                  */
+} trampStack_t;
+
 /*========================= End of Typedefs ========================*/
 
 /*------------------------------------------------------------------*/
@@ -226,7 +222,7 @@ mono_arch_create_generic_trampoline (MonoTrampolineType tramp_type, MonoTrampInf
 {
        char *tramp_name;
        guint8 *buf, *tramp, *code;
-       int i, offset, lmfOffset, has_caller;
+       int i, offset, has_caller;
        GSList *unwind_ops = NULL;
        MonoJumpInfo *ji = NULL;
 
@@ -250,16 +246,29 @@ mono_arch_create_generic_trampoline (MonoTrampolineType tramp_type, MonoTrampInf
                
        s390_stmg (buf, s390_r6, s390_r15, STK_BASE, S390_REG_SAVE_OFFSET);
        s390_lgr  (buf, s390_r11, s390_r15);
-       s390_aghi (buf, STK_BASE, -CREATE_STACK_SIZE);
+       s390_aghi (buf, STK_BASE, -sizeof(trampStack_t));
        s390_stg  (buf, s390_r11, 0, STK_BASE, 0);
-       s390_stg  (buf, s390_r1, 0, STK_BASE, METHOD_SAVE_OFFSET);
-       s390_stmg (buf, s390_r2, s390_r5, STK_BASE, CREATE_GR_OFFSET);
 
-       /* Save the FP registers */
-       offset = CREATE_FP_OFFSET;
+       /*---------------------------------------------------------------*/
+       /* we build the MonoLMF structure on the stack - see mini-s390.h */
+       /* Keep in sync with the code in mono_arch_emit_prolog           */
+       /*---------------------------------------------------------------*/
+                                                                                       
+       s390_lgr   (buf, LMFReg, STK_BASE);
+       s390_aghi  (buf, LMFReg, G_STRUCT_OFFSET(trampStack_t, LMF));
+                                                                                       
+       /*---------------------------------------------------------------*/     
+       /* Save general and floating point registers in LMF              */     
+       /*---------------------------------------------------------------*/     
+       s390_stmg (buf, s390_r0, s390_r1, LMFReg, G_STRUCT_OFFSET(MonoLMF, gregs[0]));
+       s390_stmg (buf, s390_r2, s390_r5, LMFReg, G_STRUCT_OFFSET(MonoLMF, gregs[2]));
+       s390_mvc  (buf, 10*sizeof(gulong), LMFReg, G_STRUCT_OFFSET(MonoLMF, gregs[6]),
+                  s390_r11, S390_REG_SAVE_OFFSET);
+
+       offset = G_STRUCT_OFFSET(MonoLMF, fregs[0]);
        for (i = s390_f0; i <= s390_f15; ++i) {
-               s390_std  (buf, i, 0, STK_BASE, offset);
-               offset += 8;
+               s390_std  (buf, i, 0, LMFReg, offset);
+               offset += sizeof(gdouble);
        }
 
        /*----------------------------------------------------------
@@ -271,20 +280,11 @@ mono_arch_create_generic_trampoline (MonoTrampolineType tramp_type, MonoTrampInf
                                
        S390_SET  (buf, s390_r1, mono_get_lmf_addr);
        s390_basr (buf, s390_r14, s390_r1);
-
-       /*---------------------------------------------------------------*/
-       /* we build the MonoLMF structure on the stack - see mini-s390.h */
-       /* Keep in sync with the code in mono_arch_emit_prolog           */
-       /*---------------------------------------------------------------*/
-       lmfOffset = CREATE_STACK_SIZE - sizeof(MonoLMF);
-                                                                                       
-       s390_lgr   (buf, s390_r13, STK_BASE);
-       s390_aghi  (buf, s390_r13, lmfOffset);  
                                                                                        
        /*---------------------------------------------------------------*/     
        /* Set lmf.lmf_addr = jit_tls->lmf                               */     
        /*---------------------------------------------------------------*/     
-       s390_stg   (buf, s390_r2, 0, s390_r13,                          
+       s390_stg   (buf, s390_r2, 0, LMFReg,                            
                            G_STRUCT_OFFSET(MonoLMF, lmf_addr));                        
                                                                                        
        /*---------------------------------------------------------------*/     
@@ -295,26 +295,25 @@ mono_arch_create_generic_trampoline (MonoTrampolineType tramp_type, MonoTrampInf
        /*---------------------------------------------------------------*/     
        /* Set our lmf as the current lmf                                */     
        /*---------------------------------------------------------------*/     
-       s390_stg   (buf, s390_r13, 0, s390_r2, 0);                              
+       s390_stg   (buf, LMFReg, 0, s390_r2, 0);                                
                                                                                        
        /*---------------------------------------------------------------*/     
        /* Have our lmf.previous_lmf point to the last lmf               */     
        /*---------------------------------------------------------------*/     
-       s390_stg   (buf, s390_r0, 0, s390_r13,                          
+       s390_stg   (buf, s390_r0, 0, LMFReg,                            
                            G_STRUCT_OFFSET(MonoLMF, previous_lmf));                    
                                                                                        
        /*---------------------------------------------------------------*/     
        /* save method info                                              */     
        /*---------------------------------------------------------------*/     
-       s390_lg    (buf, s390_r1, 0, STK_BASE, METHOD_SAVE_OFFSET);
-       s390_stg   (buf, s390_r1, 0, s390_r13,                          
-                           G_STRUCT_OFFSET(MonoLMF, method));                          
+       s390_lg    (buf, s390_r1, 0, LMFReg, G_STRUCT_OFFSET(MonoLMF, gregs[1]));
+       s390_stg   (buf, s390_r1, 0, LMFReg, G_STRUCT_OFFSET(MonoLMF, method));                         
                                                                        
        /*---------------------------------------------------------------*/     
        /* save the current SP                                           */     
        /*---------------------------------------------------------------*/     
        s390_lg    (buf, s390_r1, 0, STK_BASE, 0);
-       s390_stg   (buf, s390_r1, 0, s390_r13, G_STRUCT_OFFSET(MonoLMF, ebp));  
+       s390_stg   (buf, s390_r1, 0, LMFReg, G_STRUCT_OFFSET(MonoLMF, ebp));    
                                                                        
        /*---------------------------------------------------------------*/     
        /* save the current IP                                           */     
@@ -324,28 +323,16 @@ mono_arch_create_generic_trampoline (MonoTrampolineType tramp_type, MonoTrampInf
        } else {
                s390_lghi  (buf, s390_r1, 0);
        }
-       s390_stg   (buf, s390_r1, 0, s390_r13, G_STRUCT_OFFSET(MonoLMF, eip));  
+       s390_stg   (buf, s390_r1, 0, LMFReg, G_STRUCT_OFFSET(MonoLMF, eip));    
                                                                                        
-       /*---------------------------------------------------------------*/     
-       /* Save general and floating point registers                     */     
-       /*---------------------------------------------------------------*/     
-       s390_mvc   (buf, 4*sizeof(gulong), s390_r13, G_STRUCT_OFFSET(MonoLMF, gregs[2]), 
-                   STK_BASE, CREATE_GR_OFFSET);
-       s390_mvc   (buf, 10*sizeof(gulong), s390_r13, G_STRUCT_OFFSET(MonoLMF, gregs[6]), 
-                   s390_r11, S390_REG_SAVE_OFFSET);
-
-       /* Simply copy fpregs already saved above                        */
-       s390_mvc   (buf, 16*sizeof(double), s390_r13, G_STRUCT_OFFSET(MonoLMF, fregs[0]),
-                   STK_BASE, CREATE_FP_OFFSET);
-
        /*---------------------------------------------------------------*/
        /* STEP 2: call the C trampoline function                        */
        /*---------------------------------------------------------------*/
                                
        /* Set arguments */
 
-       /* Arg 1: mgreg_t *regs. We pass sp instead */
-       s390_la  (buf, s390_r2, 0, STK_BASE, CREATE_STACK_SIZE);
+       /* Arg 1: mgreg_t *regs */
+       s390_la  (buf, s390_r2, 0, LMFReg, G_STRUCT_OFFSET(MonoLMF, gregs[0]));
                
        /* Arg 2: code (next address to the instruction that called us) */
        if (has_caller) {
@@ -356,9 +343,10 @@ mono_arch_create_generic_trampoline (MonoTrampolineType tramp_type, MonoTrampInf
 
        /* Arg 3: Trampoline argument */
        if (tramp_type == MONO_TRAMPOLINE_GENERIC_CLASS_INIT)
-               s390_lg (buf, s390_r4, 0, STK_BASE, GENERIC_REG_OFFSET);
+               s390_lg (buf, s390_r4, 0, LMFReg,
+                        G_STRUCT_OFFSET(MonoLMF, gregs[MONO_ARCH_VTABLE_REG]));
        else
-               s390_lg (buf, s390_r4, 0, STK_BASE, METHOD_SAVE_OFFSET);
+               s390_lg (buf, s390_r4, 0, LMFReg, G_STRUCT_OFFSET(MonoLMF, gregs[1]));
 
        /* Arg 4: trampoline address. */
        S390_SET (buf, s390_r5, buf);
@@ -375,25 +363,25 @@ mono_arch_create_generic_trampoline (MonoTrampolineType tramp_type, MonoTrampInf
        /*----------------------------------------------------------
          STEP 3: Restore the LMF
          ----------------------------------------------------------*/
-       restoreLMF(buf, STK_BASE, CREATE_STACK_SIZE);
+       restoreLMF(buf, STK_BASE, sizeof(trampStack_t));
        
        /*----------------------------------------------------------
          STEP 4: call the compiled method
          ----------------------------------------------------------*/
                
-       /* Restore registers */
-
-       s390_lmg  (buf, s390_r2, s390_r5, STK_BASE, CREATE_GR_OFFSET);
+       /* Restore parameter registers */
+       s390_lmg (buf, s390_r2, s390_r5, LMFReg, G_STRUCT_OFFSET(MonoLMF, gregs[2]));
                
        /* Restore the FP registers */
-       offset = CREATE_FP_OFFSET;
+       offset = G_STRUCT_OFFSET(MonoLMF, fregs[0]);
        for (i = s390_f0; i <= s390_f15; ++i) {
-               s390_ld  (buf, i, 0, STK_BASE, offset);
-               offset += 8;
+               s390_ld  (buf, i, 0, LMFReg, offset);
+               offset += sizeof(gdouble);
        }
 
        /* Restore stack pointer and jump to the code -
-          R14 contains the return address to our caller */
+        * R14 contains the return address to our caller 
+        */
        s390_lgr  (buf, STK_BASE, s390_r11);
        s390_lmg  (buf, s390_r6, s390_r14, STK_BASE, S390_REG_SAVE_OFFSET);
 
@@ -475,6 +463,12 @@ mono_arch_create_specific_trampoline (gpointer arg1, MonoTrampolineType tramp_ty
        case MONO_TRAMPOLINE_MONITOR_EXIT:
                s390_lgr (buf, s390_r1, s390_r2);
                break;
+       /*
+        * Generic class trampoline arg is in r2
+        */
+       case MONO_TRAMPOLINE_GENERIC_CLASS_INIT:
+               s390_lgr (buf, s390_r1, s390_r2);
+               break;
        default :
                S390_SET  (buf, s390_r1, arg1);
        }
@@ -723,57 +717,6 @@ mono_arch_create_handler_block_trampoline (MonoTrampInfo **info, gboolean aot)
 
 /*========================= End of Function ========================*/
 
-/*------------------------------------------------------------------*/
-/*                                                                  */
-/* Name                - mono_arch_create_generic_class_init_trampoline    */
-/*                                                                  */
-/* Function    -                                                   */
-/*                                                                  */
-/*------------------------------------------------------------------*/
-
-gpointer
-mono_arch_create_generic_class_init_trampoline (MonoTrampInfo **info, gboolean aot)
-{
-       guint8 *tramp;
-       guint8 *code, *buf;
-       static int byte_offset = -1;
-       static guint8 bitmask;
-       gint32 displace;
-       int tramp_size;
-       GSList *unwind_ops = NULL;
-       MonoJumpInfo *ji = NULL;
-
-       tramp_size = 48;
-
-       code = buf = mono_global_codeman_reserve (tramp_size);
-
-       unwind_ops = mono_arch_get_cie_program ();
-
-       if (byte_offset < 0)
-               mono_marshal_find_bitfield_offset (MonoVTable, initialized, &byte_offset, &bitmask);
-
-       s390_llgc(code, s390_r0, 0, MONO_ARCH_VTABLE_REG, byte_offset);
-       s390_nill(code, s390_r0, bitmask);
-       s390_bnzr(code, s390_r14);
-
-       tramp = mono_arch_create_specific_trampoline (NULL, MONO_TRAMPOLINE_GENERIC_CLASS_INIT,
-               mono_get_root_domain (), NULL);
-
-       /* jump to the actual trampoline */
-       displace = (tramp - code) / 2;
-       s390_jg (code, displace);
-
-       mono_arch_flush_icache (buf, code - buf);
-
-       g_assert (code - buf <= tramp_size);
-
-       *info = mono_tramp_info_create ("generic_class_init_trampoline", buf, code - buf, ji, unwind_ops);
-
-       return(buf);
-}
-
-/*========================= End of Function ========================*/
-
 #ifdef MONO_ARCH_MONITOR_OBJECT_REG
 /*------------------------------------------------------------------*/
 /*                                                                  */
index 4724abf8097e9c8ad11f6eae8dfbc6d05158e0b2..38705c1eb06c91f6dacf6146b21e85c8fab180c9 100644 (file)
@@ -692,63 +692,6 @@ mono_arch_create_general_rgctx_lazy_fetch_trampoline (MonoTrampInfo **info, gboo
        return buf;
 }
 
-gpointer
-mono_arch_create_generic_class_init_trampoline (MonoTrampInfo **info, gboolean aot)
-{
-       guint8 *tramp;
-       guint8 *code, *buf;
-       static int byte_offset = -1;
-       static guint8 bitmask;
-       guint8 *jump;
-       int tramp_size;
-       GSList *unwind_ops = NULL;
-       MonoJumpInfo *ji = NULL;
-
-       tramp_size = 64;
-
-       code = buf = mono_global_codeman_reserve (tramp_size);
-
-       unwind_ops = mono_arch_get_cie_program ();
-
-       if (byte_offset < 0)
-               mono_marshal_find_bitfield_offset (MonoVTable, initialized, &byte_offset, &bitmask);
-
-       x86_test_membase_imm (code, MONO_ARCH_VTABLE_REG, byte_offset, bitmask);
-       jump = code;
-       x86_branch8 (code, X86_CC_Z, -1, 1);
-
-       x86_ret (code);
-
-       x86_patch (jump, code);
-
-       /* Push the vtable so the stack is the same as in a specific trampoline */
-       x86_push_reg (code, MONO_ARCH_VTABLE_REG);
-
-       if (aot) {
-               code = mono_arch_emit_load_aotconst (buf, code, &ji, MONO_PATCH_INFO_JIT_ICALL_ADDR, "generic_trampoline_generic_class_init");
-               x86_jump_reg (code, X86_EAX);
-       } else {
-               tramp = mono_get_trampoline_code (MONO_TRAMPOLINE_GENERIC_CLASS_INIT);
-
-               /* jump to the actual trampoline */
-               x86_jump_code (code, tramp);
-       }
-
-       mono_arch_flush_icache (code, code - buf);
-
-       g_assert (code - buf <= tramp_size);
-#ifdef __native_client_codegen__
-       g_assert (code - buf <= kNaClAlignment);
-#endif
-
-       nacl_global_codeman_validate (&buf, tramp_size, &code);
-       mono_profiler_code_buffer_new (buf, code - buf, MONO_PROFILER_CODE_BUFFER_HELPER, NULL);
-
-       *info = mono_tramp_info_create ("generic_class_init_trampoline", buf, code - buf, ji, unwind_ops);
-
-       return buf;
-}
-
 #ifdef MONO_ARCH_MONITOR_OBJECT_REG
 /*
  * The code produced by this trampoline is equivalent to this:
index 17bf3ad8962d35d90c07c8602049fe59a2b73a9b..52b292ef0808a7d2b96920791df7d7584af5f6f7 100644 (file)
@@ -51,11 +51,12 @@ static int map_hw_reg_to_dwarf_reg [] = { 0, 2, 1, 3, 7, 6, 4, 5, 8, 9, 10, 11,
 #define DWARF_PC_REG (mono_hw_reg_to_dwarf_reg (AMD64_RIP))
 #elif defined(TARGET_ARM)
 // http://infocenter.arm.com/help/topic/com.arm.doc.ihi0040a/IHI0040A_aadwarf.pdf
-/* Assign d8..d15 to hregs 16..24 */
+/* Assign d8..d15 to hregs 16..24 (dwarf regs 264..271) */
 static int map_hw_reg_to_dwarf_reg [] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 264, 265, 266, 267, 268, 269, 270, 271 };
 #define NUM_REGS 272
 #define DWARF_DATA_ALIGN (-4)
 #define DWARF_PC_REG (mono_hw_reg_to_dwarf_reg (ARMREG_LR))
+#define IS_DOUBLE_REG(dwarf_reg) (((dwarf_reg) >= 264) && ((dwarf_reg) <= 271))
 #elif defined(TARGET_ARM64)
 #define NUM_REGS 96
 #define DWARF_DATA_ALIGN (-8)
@@ -109,6 +110,10 @@ static int map_hw_reg_to_dwarf_reg [16];
 #define DWARF_PC_REG -1
 #endif
 
+#ifndef IS_DOUBLE_REG
+#define IS_DOUBLE_REG(dwarf_reg) 0
+#endif
+
 static gboolean dwarf_reg_to_hw_reg_inited;
 
 static int map_dwarf_reg_to_hw_reg [NUM_REGS];
@@ -480,7 +485,7 @@ typedef struct {
 void
 mono_unwind_frame (guint8 *unwind_info, guint32 unwind_info_len, 
                                   guint8 *start_ip, guint8 *end_ip, guint8 *ip, guint8 **mark_locations,
-                                  mgreg_t *regs, int nregs,
+                                  mono_unwind_reg_t *regs, int nregs,
                                   mgreg_t **save_locations, int save_locations_len,
                                   guint8 **out_cfa)
 {
@@ -602,7 +607,10 @@ mono_unwind_frame (guint8 *unwind_info, guint32 unwind_info_len,
                if (reg_saved [i] && locations [i].loc_type == LOC_OFFSET) {
                        int hreg = mono_dwarf_reg_to_hw_reg (i);
                        g_assert (hreg < nregs);
-                       regs [hreg] = *(mgreg_t*)(cfa_val + locations [i].offset);
+                       if (IS_DOUBLE_REG (i))
+                               regs [hreg] = *(guint64*)(cfa_val + locations [i].offset);
+                       else
+                               regs [hreg] = *(mgreg_t*)(cfa_val + locations [i].offset);
                        if (save_locations && hreg < save_locations_len)
                                save_locations [hreg] = (mgreg_t*)(cfa_val + locations [i].offset);
                }
index cf4d3ed68a14968df17b6d990a4c905c9395b2fb..1d3d6651ed7fd4706745b682d2914d0edb1798cb 100644 (file)
@@ -3209,13 +3209,16 @@ log_shutdown (MonoProfiler *prof)
                fclose (prof->file);
 
        destroy_hashtable (prof->method_table, &prof->method_table_mutex);
-       destroy_hashtable (coverage_methods, &coverage_methods_mutex);
-       destroy_hashtable (coverage_assemblies, &coverage_assemblies_mutex);
-       destroy_hashtable (coverage_classes, &coverage_classes_mutex);
-       destroy_hashtable (filtered_classes, &filtered_classes_mutex);
-       destroy_hashtable (entered_methods, &entered_methods_mutex);
-       destroy_hashtable (image_to_methods, &image_to_methods_mutex);
-       destroy_hashtable (suppressed_assemblies, &suppressed_assemblies_mutex);
+
+       if (coverage_initialized) {
+               destroy_hashtable (coverage_methods, &coverage_methods_mutex);
+               destroy_hashtable (coverage_assemblies, &coverage_assemblies_mutex);
+               destroy_hashtable (coverage_classes, &coverage_classes_mutex);
+               destroy_hashtable (filtered_classes, &filtered_classes_mutex);
+               destroy_hashtable (entered_methods, &entered_methods_mutex);
+               destroy_hashtable (image_to_methods, &image_to_methods_mutex);
+               destroy_hashtable (suppressed_assemblies, &suppressed_assemblies_mutex);
+       }
 
        free (prof);
 }
index e7a003bcad1b523b8f9bd06f8b46b144b55bde3f..613f332cca4398e68c9b3b45b7ae5a4c8da8f14f 100644 (file)
@@ -314,7 +314,7 @@ void
 sgen_workers_init (int num_workers)
 {
        int i;
-       void *workers_data_ptrs [num_workers];
+       void **workers_data_ptrs = alloca(num_workers * sizeof(void *));
 
        if (!sgen_get_major_collector ()->is_concurrent) {
                sgen_thread_pool_init (num_workers, thread_pool_init_func, NULL, NULL, NULL);
@@ -331,7 +331,7 @@ sgen_workers_init (int num_workers)
        init_distribute_gray_queue ();
 
        for (i = 0; i < workers_num; ++i)
-               workers_data_ptrs [i] = &workers_data [i];
+               workers_data_ptrs [i] = (void *) &workers_data [i];
 
        sgen_thread_pool_init (num_workers, thread_pool_init_func, marker_idle_func, continue_idle_func, workers_data_ptrs);
 
index 7d2e1acde3927d18df8577cd5817208a22cd9e02..60fd4038041bcc555156f6faeedf141e47438ec5 100644 (file)
@@ -411,6 +411,7 @@ BASE_TEST_CS_SRC=           \
        thread_static_gc_layout.cs \
        sleep.cs \
        bug-27147.cs    \
+       bug-30085.cs    \
        bug-17537.cs
 
 TEST_CS_SRC_DIST=      \
diff --git a/mono/tests/bug-30085.cs b/mono/tests/bug-30085.cs
new file mode 100644 (file)
index 0000000..80c985b
--- /dev/null
@@ -0,0 +1,35 @@
+using System;
+
+class Program
+{
+
+       static void MissingImage ()
+       {
+               Type good = System.Type.GetType("System.Nullable`1[[System.Int32, mscorlib]]");
+               Type bad = System.Type.GetType("System.Nullable`1[[System.Int32, mscorlibBAD]]");
+
+               if (good.Assembly.FullName.Split (',') [0] != "mscorlib")
+                       throw new Exception ("Wrong assembly name");
+
+               if (bad != null)
+                       throw new Exception ("Should not have loaded type");
+       }
+
+       static void ProbeCorlib ()
+       {
+               Type good = System.Type.GetType("System.Nullable`1[[System.Int32, mscorlib]]"); 
+               Type bad = System.Type.GetType("System.Nullable`1[[System.IO.Pipes.PipeOptions, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]");
+
+               if (good.Assembly.FullName.Split (',') [0] != "mscorlib")
+                       throw new Exception ("Wrong assembly name");
+
+               if (good == null || bad == null)
+                       throw new Exception ("Missing image did not probe corlib");
+       }
+
+       static void Main()
+       {
+               MissingImage ();
+               ProbeCorlib ();
+       }
+}
index 2bed3edf40373dc20fcd235d8f7e1c1580b58333..32cc0e515a146d7d594b3b6f21963df47944bd3b 100644 (file)
@@ -21,6 +21,7 @@ monoutils_sources = \
        dlmalloc.c              \
        mono-counters.c         \
        mono-compiler.h         \
+       mono-complex.h          \
        mono-dl.c               \
        mono-dl-windows.c       \
        mono-dl-darwin.c        \
diff --git a/mono/utils/mono-complex.h b/mono/utils/mono-complex.h
new file mode 100644 (file)
index 0000000..798fddb
--- /dev/null
@@ -0,0 +1,95 @@
+/*
+* mono-complex.h: C99 Complex math cross-platform support code
+*
+* Author:
+*      Joao Matos (joao.matos@xamarin.com)
+*
+* Copyright 2015 Xamarin, Inc (http://www.xamarin.com)
+*/
+
+#include <config.h>
+#include <glib.h>
+
+#if !defined (HAVE_COMPLEX_H)
+#include <../../support/libm/complex.h>
+#else
+#include <complex.h>
+#endif
+
+#define _USE_MATH_DEFINES // needed by MSVC to define math constants
+#include <math.h>
+
+#ifdef _MSC_VER
+
+#define double_complex _C_double_complex
+
+static inline
+double_complex mono_double_complex_make(gdouble re, gdouble im)
+{
+       return _Cbuild (re, im);
+}
+
+static inline
+double_complex mono_double_complex_scalar_div(double_complex c, gdouble s)
+{
+       return mono_double_complex_make(creal(c) / s, cimag(c) / s);
+}
+
+static inline
+double_complex mono_double_complex_scalar_mul(double_complex c, gdouble s)
+{
+       return mono_double_complex_make(creal(c) * s, cimag(c) * s);
+}
+
+static inline
+double_complex mono_double_complex_div(double_complex left, double_complex right)
+{
+       double denom = creal(right) * creal(right) + cimag(right) * cimag(right);
+
+       return mono_double_complex_make(
+               (creal(left) * creal(right) + cimag(left) * cimag(right)) / denom,
+               (-creal(left) * cimag(right) + cimag(left) * creal(right)) / denom);
+}
+
+static inline
+double_complex mono_double_complex_sub(double_complex left, double_complex right)
+{
+       return mono_double_complex_make(creal(left) - creal(right), cimag(left)
+               - cimag(right));
+}
+
+#else
+
+#define double_complex double complex
+
+static inline
+double_complex mono_double_complex_make(gdouble re, gdouble im)
+{
+       return re + im * I;
+}
+
+static inline
+double_complex mono_double_complex_scalar_div(double_complex c, gdouble s)
+{
+       return c / s;
+}
+
+static inline
+double_complex mono_double_complex_scalar_mul(double_complex c, gdouble s)
+{
+       return c * s;
+}
+
+static inline
+double_complex mono_double_complex_div(double_complex left, double_complex right)
+{
+       return left / right;
+}
+
+static inline
+double_complex mono_double_complex_sub(double_complex left, double_complex right)
+{
+       return left - right;
+}
+
+#endif
index 0db9dce4154d6304e28c357952c3c7838f918575..a05c7bab76d9e0d1701bd879e4abf7f2311f1a55 100644 (file)
@@ -146,63 +146,63 @@ mono_sigctx_to_monoctx (void *sigctx, MonoContext *mctx)
 #if defined(MONO_SIGNAL_USE_SIGACTION)
        ucontext_t *ctx = (ucontext_t*)sigctx;
 
-       mctx->rax = UCONTEXT_REG_RAX (ctx);
-       mctx->rbx = UCONTEXT_REG_RBX (ctx);
-       mctx->rcx = UCONTEXT_REG_RCX (ctx);
-       mctx->rdx = UCONTEXT_REG_RDX (ctx);
-       mctx->rbp = UCONTEXT_REG_RBP (ctx);
-       mctx->rsp = UCONTEXT_REG_RSP (ctx);
-       mctx->rsi = UCONTEXT_REG_RSI (ctx);
-       mctx->rdi = UCONTEXT_REG_RDI (ctx);
-       mctx->r8 = UCONTEXT_REG_R8 (ctx);
-       mctx->r9 = UCONTEXT_REG_R9 (ctx);
-       mctx->r10 = UCONTEXT_REG_R10 (ctx);
-       mctx->r11 = UCONTEXT_REG_R11 (ctx);
-       mctx->r12 = UCONTEXT_REG_R12 (ctx);
-       mctx->r13 = UCONTEXT_REG_R13 (ctx);
-       mctx->r14 = UCONTEXT_REG_R14 (ctx);
-       mctx->r15 = UCONTEXT_REG_R15 (ctx);
-       mctx->rip = UCONTEXT_REG_RIP (ctx);
+       mctx->gregs [AMD64_RAX] = UCONTEXT_REG_RAX (ctx);
+       mctx->gregs [AMD64_RBX] = UCONTEXT_REG_RBX (ctx);
+       mctx->gregs [AMD64_RCX] = UCONTEXT_REG_RCX (ctx);
+       mctx->gregs [AMD64_RDX] = UCONTEXT_REG_RDX (ctx);
+       mctx->gregs [AMD64_RBP] = UCONTEXT_REG_RBP (ctx);
+       mctx->gregs [AMD64_RSP] = UCONTEXT_REG_RSP (ctx);
+       mctx->gregs [AMD64_RSI] = UCONTEXT_REG_RSI (ctx);
+       mctx->gregs [AMD64_RDI] = UCONTEXT_REG_RDI (ctx);
+       mctx->gregs [AMD64_R8] = UCONTEXT_REG_R8 (ctx);
+       mctx->gregs [AMD64_R9] = UCONTEXT_REG_R9 (ctx);
+       mctx->gregs [AMD64_R10] = UCONTEXT_REG_R10 (ctx);
+       mctx->gregs [AMD64_R11] = UCONTEXT_REG_R11 (ctx);
+       mctx->gregs [AMD64_R12] = UCONTEXT_REG_R12 (ctx);
+       mctx->gregs [AMD64_R13] = UCONTEXT_REG_R13 (ctx);
+       mctx->gregs [AMD64_R14] = UCONTEXT_REG_R14 (ctx);
+       mctx->gregs [AMD64_R15] = UCONTEXT_REG_R15 (ctx);
+       mctx->gregs [AMD64_RIP] = UCONTEXT_REG_RIP (ctx);
 #elif defined(HOST_WIN32)
        CONTEXT *context = (CONTEXT*)sigctx;
 
-       mctx->rip = context->Rip;
-       mctx->rax = context->Rax;
-       mctx->rcx = context->Rcx;
-       mctx->rdx = context->Rdx;
-       mctx->rbx = context->Rbx;
-       mctx->rsp = context->Rsp;
-       mctx->rbp = context->Rbp;
-       mctx->rsi = context->Rsi;
-       mctx->rdi = context->Rdi;
-       mctx->r8 = context->R8;
-       mctx->r9 = context->R9;
-       mctx->r10 = context->R10;
-       mctx->r11 = context->R11;
-       mctx->r12 = context->R12;
-       mctx->r13 = context->R13;
-       mctx->r14 = context->R14;
-       mctx->r15 = context->R15;
+       mctx->gregs [AMD64_RIP] = context->Rip;
+       mctx->gregs [AMD64_RAX] = context->Rax;
+       mctx->gregs [AMD64_RCX] = context->Rcx;
+       mctx->gregs [AMD64_RDX] = context->Rdx;
+       mctx->gregs [AMD64_RBX] = context->Rbx;
+       mctx->gregs [AMD64_RSP] = context->Rsp;
+       mctx->gregs [AMD64_RBP] = context->Rbp;
+       mctx->gregs [AMD64_RSI] = context->Rsi;
+       mctx->gregs [AMD64_RDI] = context->Rdi;
+       mctx->gregs [AMD64_R8] = context->R8;
+       mctx->gregs [AMD64_R9] = context->R9;
+       mctx->gregs [AMD64_R10] = context->R10;
+       mctx->gregs [AMD64_R11] = context->R11;
+       mctx->gregs [AMD64_R12] = context->R12;
+       mctx->gregs [AMD64_R13] = context->R13;
+       mctx->gregs [AMD64_R14] = context->R14;
+       mctx->gregs [AMD64_R15] = context->R15;
 #else
        MonoContext *ctx = (MonoContext *)sigctx;
 
-       mctx->rax = ctx->rax;
-       mctx->rbx = ctx->rbx;
-       mctx->rcx = ctx->rcx;
-       mctx->rdx = ctx->rdx;
-       mctx->rbp = ctx->rbp;
-       mctx->rsp = ctx->rsp;
-       mctx->rsi = ctx->rsi;
-       mctx->rdi = ctx->rdi;
-       mctx->r8 = ctx->r8;
-       mctx->r9 = ctx->r9;
-       mctx->r10 = ctx->r10;
-       mctx->r11 = ctx->r11;
-       mctx->r12 = ctx->r12;
-       mctx->r13 = ctx->r13;
-       mctx->r14 = ctx->r14;
-       mctx->r15 = ctx->r15;
-       mctx->rip = ctx->rip;
+       mctx->gregs [AMD64_RAX] = ctx->gregs [AMD64_RAX];
+       mctx->gregs [AMD64_RBX] = ctx->gregs [AMD64_RBX];
+       mctx->gregs [AMD64_RCX] = ctx->gregs [AMD64_RCX];
+       mctx->gregs [AMD64_RDX] = ctx->gregs [AMD64_RDX];
+       mctx->gregs [AMD64_RBP] = ctx->gregs [AMD64_RBP];
+       mctx->gregs [AMD64_RSP] = ctx->gregs [AMD64_RSP];
+       mctx->gregs [AMD64_RSI] = ctx->gregs [AMD64_RSI];
+       mctx->gregs [AMD64_RDI] = ctx->gregs [AMD64_RDI];
+       mctx->gregs [AMD64_R8] = ctx->gregs [AMD64_R8];
+       mctx->gregs [AMD64_R9] = ctx->gregs [AMD64_R9];
+       mctx->gregs [AMD64_R10] = ctx->gregs [AMD64_R10];
+       mctx->gregs [AMD64_R11] = ctx->gregs [AMD64_R11];
+       mctx->gregs [AMD64_R12] = ctx->gregs [AMD64_R12];
+       mctx->gregs [AMD64_R13] = ctx->gregs [AMD64_R13];
+       mctx->gregs [AMD64_R14] = ctx->gregs [AMD64_R14];
+       mctx->gregs [AMD64_R15] = ctx->gregs [AMD64_R15];
+       mctx->gregs [AMD64_RIP] = ctx->gregs [AMD64_RIP];
 #endif
 }
 
@@ -216,63 +216,63 @@ mono_monoctx_to_sigctx (MonoContext *mctx, void *sigctx)
 #if defined(MONO_SIGNAL_USE_SIGACTION)
        ucontext_t *ctx = (ucontext_t*)sigctx;
 
-       UCONTEXT_REG_RAX (ctx) = mctx->rax;
-       UCONTEXT_REG_RBX (ctx) = mctx->rbx;
-       UCONTEXT_REG_RCX (ctx) = mctx->rcx;
-       UCONTEXT_REG_RDX (ctx) = mctx->rdx;
-       UCONTEXT_REG_RBP (ctx) = mctx->rbp;
-       UCONTEXT_REG_RSP (ctx) = mctx->rsp;
-       UCONTEXT_REG_RSI (ctx) = mctx->rsi;
-       UCONTEXT_REG_RDI (ctx) = mctx->rdi;
-       UCONTEXT_REG_R8 (ctx) = mctx->r8;
-       UCONTEXT_REG_R9 (ctx) = mctx->r9;
-       UCONTEXT_REG_R10 (ctx) = mctx->r10;
-       UCONTEXT_REG_R11 (ctx) = mctx->r11;
-       UCONTEXT_REG_R12 (ctx) = mctx->r12;
-       UCONTEXT_REG_R13 (ctx) = mctx->r13;
-       UCONTEXT_REG_R14 (ctx) = mctx->r14;
-       UCONTEXT_REG_R15 (ctx) = mctx->r15;
-       UCONTEXT_REG_RIP (ctx) = mctx->rip;
+       UCONTEXT_REG_RAX (ctx) = mctx->gregs [AMD64_RAX];
+       UCONTEXT_REG_RBX (ctx) = mctx->gregs [AMD64_RBX];
+       UCONTEXT_REG_RCX (ctx) = mctx->gregs [AMD64_RCX];
+       UCONTEXT_REG_RDX (ctx) = mctx->gregs [AMD64_RDX];
+       UCONTEXT_REG_RBP (ctx) = mctx->gregs [AMD64_RBP];
+       UCONTEXT_REG_RSP (ctx) = mctx->gregs [AMD64_RSP];
+       UCONTEXT_REG_RSI (ctx) = mctx->gregs [AMD64_RSI];
+       UCONTEXT_REG_RDI (ctx) = mctx->gregs [AMD64_RDI];
+       UCONTEXT_REG_R8 (ctx) = mctx->gregs [AMD64_R8];
+       UCONTEXT_REG_R9 (ctx) = mctx->gregs [AMD64_R9];
+       UCONTEXT_REG_R10 (ctx) = mctx->gregs [AMD64_R10];
+       UCONTEXT_REG_R11 (ctx) = mctx->gregs [AMD64_R11];
+       UCONTEXT_REG_R12 (ctx) = mctx->gregs [AMD64_R12];
+       UCONTEXT_REG_R13 (ctx) = mctx->gregs [AMD64_R13];
+       UCONTEXT_REG_R14 (ctx) = mctx->gregs [AMD64_R14];
+       UCONTEXT_REG_R15 (ctx) = mctx->gregs [AMD64_R15];
+       UCONTEXT_REG_RIP (ctx) = mctx->gregs [AMD64_RIP];
 #elif defined(HOST_WIN32)
        CONTEXT *context = (CONTEXT*)sigctx;
 
-       context->Rip = mctx->rip;
-       context->Rax = mctx->rax;
-       context->Rcx = mctx->rcx;
-       context->Rdx = mctx->rdx;
-       context->Rbx = mctx->rbx;
-       context->Rsp = mctx->rsp;
-       context->Rbp = mctx->rbp;
-       context->Rsi = mctx->rsi;
-       context->Rdi = mctx->rdi;
-       context->R8 = mctx->r8;
-       context->R9 = mctx->r9;
-       context->R10 = mctx->r10;
-       context->R11 = mctx->r11;
-       context->R12 = mctx->r12;
-       context->R13 = mctx->r13;
-       context->R14 = mctx->r14;
-       context->R15 = mctx->r15;
+       context->Rip = mctx->gregs [AMD64_RIP];
+       context->Rax = mctx->gregs [AMD64_RAX];
+       context->Rcx = mctx->gregs [AMD64_RCX];
+       context->Rdx = mctx->gregs [AMD64_RDX];
+       context->Rbx = mctx->gregs [AMD64_RBX];
+       context->Rsp = mctx->gregs [AMD64_RSP];
+       context->Rbp = mctx->gregs [AMD64_RBP];
+       context->Rsi = mctx->gregs [AMD64_RSI];
+       context->Rdi = mctx->gregs [AMD64_RDI];
+       context->R8 = mctx->gregs [AMD64_R8];
+       context->R9 = mctx->gregs [AMD64_R9];
+       context->R10 = mctx->gregs [AMD64_R10];
+       context->R11 = mctx->gregs [AMD64_R11];
+       context->R12 = mctx->gregs [AMD64_R12];
+       context->R13 = mctx->gregs [AMD64_R13];
+       context->R14 = mctx->gregs [AMD64_R14];
+       context->R15 = mctx->gregs [AMD64_R15];
 #else
        MonoContext *ctx = (MonoContext *)sigctx;
 
-       ctx->rax = mctx->rax;
-       ctx->rbx = mctx->rbx;
-       ctx->rcx = mctx->rcx;
-       ctx->rdx = mctx->rdx;
-       ctx->rbp = mctx->rbp;
-       ctx->rsp = mctx->rsp;
-       ctx->rsi = mctx->rsi;
-       ctx->rdi = mctx->rdi;
-       ctx->r8 = mctx->r8;
-       ctx->r9 = mctx->r9;
-       ctx->r10 = mctx->r10;
-       ctx->r11 = mctx->r11;
-       ctx->r12 = mctx->r12;
-       ctx->r13 = mctx->r13;
-       ctx->r14 = mctx->r14;
-       ctx->r15 = mctx->r15;
-       ctx->rip = mctx->rip;
+       ctx->gregs [AMD64_RAX] = mctx->gregs [AMD64_RAX];
+       ctx->gregs [AMD64_RBX] = mctx->gregs [AMD64_RBX];
+       ctx->gregs [AMD64_RCX] = mctx->gregs [AMD64_RCX];
+       ctx->gregs [AMD64_RDX] = mctx->gregs [AMD64_RDX];
+       ctx->gregs [AMD64_RBP] = mctx->gregs [AMD64_RBP];
+       ctx->gregs [AMD64_RSP] = mctx->gregs [AMD64_RSP];
+       ctx->gregs [AMD64_RSI] = mctx->gregs [AMD64_RSI];
+       ctx->gregs [AMD64_RDI] = mctx->gregs [AMD64_RDI];
+       ctx->gregs [AMD64_R8] = mctx->gregs [AMD64_R8];
+       ctx->gregs [AMD64_R9] = mctx->gregs [AMD64_R9];
+       ctx->gregs [AMD64_R10] = mctx->gregs [AMD64_R10];
+       ctx->gregs [AMD64_R11] = mctx->gregs [AMD64_R11];
+       ctx->gregs [AMD64_R12] = mctx->gregs [AMD64_R12];
+       ctx->gregs [AMD64_R13] = mctx->gregs [AMD64_R13];
+       ctx->gregs [AMD64_R14] = mctx->gregs [AMD64_R14];
+       ctx->gregs [AMD64_R15] = mctx->gregs [AMD64_R15];
+       ctx->gregs [AMD64_RIP] = mctx->gregs [AMD64_RIP];
 #endif
 }
 
index 8117a92e6fc9baffe7456faf614c34271d0b3ba3..1ea32db6bd3913821d81a3b608a8a561f9a1969f 100644 (file)
@@ -147,6 +147,7 @@ typedef struct {
 
 #elif (defined(__x86_64__) && !defined(MONO_CROSS_COMPILE)) || (defined(TARGET_AMD64)) /* defined(__i386__) */
 
+#include <mono/arch/amd64/amd64-codegen.h>
 
 #if !defined( HOST_WIN32 ) && !defined(__native_client__) && !defined(__native_client_codegen__)
 
@@ -157,32 +158,17 @@ typedef struct {
 #endif
 
 typedef struct {
-       mgreg_t rax;
-       mgreg_t rbx;
-       mgreg_t rcx;
-       mgreg_t rdx;
-       mgreg_t rbp;
-       mgreg_t rsp;
-    mgreg_t rsi;
-       mgreg_t rdi;
-       mgreg_t r8;
-       mgreg_t r9;
-       mgreg_t r10;
-       mgreg_t r11;
-       mgreg_t r12;
-       mgreg_t r13;
-       mgreg_t r14;
-       mgreg_t r15;
-       mgreg_t rip;
+       mgreg_t gregs [AMD64_NREG];
+       double fregs [AMD64_XMM_NREG];
 } MonoContext;
 
-#define MONO_CONTEXT_SET_IP(ctx,ip) do { (ctx)->rip = (mgreg_t)(ip); } while (0); 
-#define MONO_CONTEXT_SET_BP(ctx,bp) do { (ctx)->rbp = (mgreg_t)(bp); } while (0); 
-#define MONO_CONTEXT_SET_SP(ctx,esp) do { (ctx)->rsp = (mgreg_t)(esp); } while (0); 
+#define MONO_CONTEXT_SET_IP(ctx,ip) do { (ctx)->gregs [AMD64_RIP] = (mgreg_t)(ip); } while (0);
+#define MONO_CONTEXT_SET_BP(ctx,bp) do { (ctx)->gregs [AMD64_RBP] = (mgreg_t)(bp); } while (0);
+#define MONO_CONTEXT_SET_SP(ctx,esp) do { (ctx)->gregs [AMD64_RSP] = (mgreg_t)(esp); } while (0);
 
-#define MONO_CONTEXT_GET_IP(ctx) ((gpointer)((ctx)->rip))
-#define MONO_CONTEXT_GET_BP(ctx) ((gpointer)((ctx)->rbp))
-#define MONO_CONTEXT_GET_SP(ctx) ((gpointer)((ctx)->rsp))
+#define MONO_CONTEXT_GET_IP(ctx) ((gpointer)((ctx)->gregs [AMD64_RIP]))
+#define MONO_CONTEXT_GET_BP(ctx) ((gpointer)((ctx)->gregs [AMD64_RBP]))
+#define MONO_CONTEXT_GET_SP(ctx) ((gpointer)((ctx)->gregs [AMD64_RSP]))
 
 #if defined (HOST_WIN32) && !defined(__GNUC__)
 /* msvc doesn't support inline assembly, so have to use a separate .asm file */
index e602b28bca6498aff066fdd8e4a513026f4cf5b9..925a6158311bc2b4253c34945cc98c3a90759464 100644 (file)
@@ -56,6 +56,7 @@
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_SGen|Win32'">true</ExcludedFromBuild>\r
     </ClCompile>\r
+    <ClCompile Include="..\mono\mini\mini-runtime.c" />\r
     <ClCompile Include="..\mono\mini\mini-windows.c" />\r
     <ClCompile Include="..\mono\mini\mini-x86.c">\r
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>\r
     <ClInclude Include="..\mono\mini\mini-arch.h" />\r
     <ClCompile Include="..\mono\mini\dominators.c" />\r
     <ClCompile Include="..\mono\mini\cfold.c" />\r
-    <ClCompile Include="..\mono\mini\regalloc.c" />\r
     <ClInclude Include="..\mono\mini\regalloc.h" />\r
     <ClCompile Include="..\mono\mini\helpers.c" />\r
     <ClCompile Include="..\mono\mini\liveness.c" />\r
     <ClCompile Include="..\mono\mini\ssa.c" />\r
     <ClCompile Include="..\mono\mini\abcremoval.c" />\r
     <ClInclude Include="..\mono\mini\abcremoval.h" />\r
-    <ClCompile Include="..\mono\mini\ssapre.c" />\r
-    <ClInclude Include="..\mono\mini\ssapre.h" />\r
     <ClCompile Include="..\mono\mini\local-propagation.c" />\r
     <ClCompile Include="..\mono\mini\driver.c" />\r
     <ClCompile Include="..\mono\mini\debug-mini.c" />\r
     <ClCompile Include="..\mono\mini\mini-codegen.c" />\r
     <ClCompile Include="..\mono\mini\mini-exceptions.c" />\r
     <ClCompile Include="..\mono\mini\mini-trampolines.c  " />\r
-    <ClCompile Include="..\mono\mini\declsec.c" />\r
-    <ClInclude Include="..\mono\mini\declsec.h" />\r
     <ClCompile Include="..\mono\mini\tramp-amd64.c">\r
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug_SGen|Win32'">true</ExcludedFromBuild>\r
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>\r
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_SGen|x64'">true</ExcludedFromBuild>\r
     </ClCompile>\r
-    <ClCompile Include="..\mono\mini\wapihandles.c" />\r
     <ClCompile Include="..\mono\mini\branch-opts.c" />\r
     <ClCompile Include="..\mono\mini\mini-generic-sharing.c" />\r
-    <ClCompile Include="..\mono\mini\regalloc2.c" />\r
     <ClInclude Include="..\mono\mini\simd-methods.h" />\r
     <ClCompile Include="..\mono\mini\tasklets.c" />\r
     <ClInclude Include="..\mono\mini\tasklets.h" />\r
index 5643e9344471623a80f96341911133e6b91221cb..84ed279abfc550bf76a7a46a09958757ed9d2074 100644 (file)
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>\r
+<?xml version="1.0" encoding="utf-8"?>\r
 <Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
   <ItemGroup Label="ProjectConfigurations">\r
     <ProjectConfiguration Include="Debug_SGen|Win32">\r
@@ -45,6 +45,7 @@
     <ClCompile Include="..\mono\metadata\console-win32.c" />\r
     <ClCompile Include="..\mono\metadata\coree.c" />\r
     <ClCompile Include="..\mono\metadata\debug-helpers.c" />\r
+    <ClCompile Include="..\mono\metadata\debug-mono-ppdb.c" />\r
     <ClCompile Include="..\mono\metadata\debug-mono-symfile.c" />\r
     <ClCompile Include="..\mono\metadata\decimal-ms.c" />\r
     <ClCompile Include="..\mono\metadata\domain.c" />\r
@@ -53,6 +54,7 @@
     <ClCompile Include="..\mono\metadata\file-io.c" />\r
     <ClCompile Include="..\mono\metadata\file-mmap-windows.c" />\r
     <ClCompile Include="..\mono\metadata\filewatcher.c" />\r
+    <ClCompile Include="..\mono\metadata\gc-stats.c" />\r
     <ClCompile Include="..\mono\metadata\gc.c" />\r
     <ClCompile Include="..\mono\metadata\icall.c" />\r
     <ClCompile Include="..\mono\metadata\image.c" />\r
@@ -78,6 +80,7 @@
     <ClCompile Include="..\mono\metadata\mono-wsq.c" />\r
     <ClCompile Include="..\mono\metadata\nacl-stub.c" />\r
     <ClCompile Include="..\mono\metadata\null-gc.c" />\r
+    <ClCompile Include="..\mono\metadata\number-ms.c" />\r
     <ClCompile Include="..\mono\metadata\object.c" />\r
     <ClCompile Include="..\mono\metadata\opcodes.c" />\r
     <ClCompile Include="..\mono\metadata\process.c" />\r
     <ClCompile Include="..\mono\metadata\security-core-clr.c" />\r
     <ClCompile Include="..\mono\metadata\security-manager.c" />\r
     <ClCompile Include="..\mono\metadata\mono-security.c" />\r
+    <ClCompile Include="..\mono\metadata\seq-points-data.c" />\r
+    <ClCompile Include="..\mono\metadata\sgen-mono.c" />\r
+    <ClCompile Include="..\mono\metadata\threadpool-ms-io.c" />\r
+    <ClCompile Include="..\mono\metadata\threadpool-ms.c" />\r
     <ClCompile Include="..\mono\sgen\sgen-alloc.c" />\r
     <ClCompile Include="..\mono\metadata\sgen-bridge.c" />\r
     <ClCompile Include="..\mono\sgen\sgen-cardtable.c" />\r
     <ClCompile Include="..\mono\sgen\sgen-split-nursery.c" />\r
     <ClCompile Include="..\mono\metadata\sgen-tarjan-bridge.c" />\r
     <ClCompile Include="..\mono\metadata\sgen-toggleref.c" />\r
+    <ClCompile Include="..\mono\sgen\sgen-thread-pool.c" />\r
     <ClCompile Include="..\mono\sgen\sgen-workers.c" />\r
     <ClCompile Include="..\mono\sgen\sgen-fin-weak-hash.c" />\r
     <ClCompile Include="..\mono\metadata\sgen-stw.c" />\r
     <ClInclude Include="..\mono\metadata\culture-info-tables.h" />\r
     <ClInclude Include="..\mono\metadata\culture-info.h" />\r
     <ClInclude Include="..\mono\metadata\debug-helpers.h" />\r
+    <ClInclude Include="..\mono\metadata\debug-mono-ppdb.h" />\r
     <ClInclude Include="..\mono\metadata\debug-mono-symfile.h" />\r
     <ClInclude Include="..\mono\metadata\decimal.h" />\r
     <ClInclude Include="..\mono\metadata\domain-internals.h" />\r
     <ClInclude Include="..\mono\metadata\file-io.h" />\r
     <ClInclude Include="..\mono\metadata\filewatcher.h" />\r
     <ClInclude Include="..\mono\metadata\gc-internal.h" />\r
+    <ClInclude Include="..\mono\metadata\number-ms.h" />\r
+    <ClInclude Include="..\mono\metadata\seq-points-data.h" />\r
+    <ClInclude Include="..\mono\metadata\threadpool-ms-io.h" />\r
+    <ClInclude Include="..\mono\metadata\threadpool-ms.h" />\r
     <ClInclude Include="..\mono\sgen\gc-internal-agnostic.h" />\r
     <ClInclude Include="..\mono\metadata\icall-def.h" />\r
     <ClInclude Include="..\mono\metadata\image.h" />\r
     <ClInclude Include="..\mono\sgen\sgen-qsort.h" />\r
     <ClInclude Include="..\mono\sgen\sgen-scan-object.h" />\r
     <ClInclude Include="..\mono\metadata\sgen-toggleref.h" />\r
+    <ClInclude Include="..\mono\sgen\sgen-thread-pool.h" />\r
     <ClInclude Include="..\mono\sgen\sgen-workers.h" />\r
     <ClInclude Include="..\mono\metadata\socket-io.h" />\r
     <ClInclude Include="..\mono\metadata\string-icalls.h" />\r
index dee2de94794651ce5188c5375cf96c6559377f4d..52e3dc4bc47fa8e341b87e8c279c8dfa56b647af 100644 (file)
@@ -47,6 +47,8 @@
     <ClCompile Include="..\mono\utils\mono-mmap.c" />\r
     <ClCompile Include="..\mono\utils\mono-mutex.c" />\r
     <ClCompile Include="..\mono\utils\mono-networkinterfaces.c" />\r
+    <ClCompile Include="..\mono\utils\mono-rand.c" />\r
+    <ClCompile Include="..\mono\utils\mono-threads-state-machine.c" />\r
     <ClCompile Include="..\mono\utils\networking.c" />\r
     <ClCompile Include="..\mono\utils\networking-posix.c" />\r
     <ClCompile Include="..\mono\utils\networking-missing.c" />\r
@@ -69,7 +71,6 @@
     <ClCompile Include="..\mono\utils\mono-value-hash.c" />\r
     <ClCompile Include="..\mono\utils\monobitset.c" />\r
     <ClCompile Include="..\mono\utils\strenc.c" />\r
-    <ClCompile Include="..\mono\utils\strtod.c" />\r
     <ClCompile Include="..\mono\utils\atomic.c" />\r
     <ClCompile Include="..\mono\utils\mono-hwcap.c" />\r
     <ClCompile Include="..\mono\utils\mono-hwcap-x86.c" />\r
@@ -95,6 +96,7 @@
     <ClInclude Include="..\mono\utils\memcheck.h" />\r
     <ClInclude Include="..\mono\utils\mono-codeman.h" />\r
     <ClInclude Include="..\mono\utils\mono-compiler.h" />\r
+    <ClInclude Include="..\mono\utils\mono-complex.h" />\r
     <ClInclude Include="..\mono\utils\mono-conc-hashtable.h" />\r
     <ClInclude Include="..\mono\utils\mono-context.h" />\r
     <ClInclude Include="..\mono\utils\mono-counters.h" />\r
     <ClInclude Include="..\mono\utils\mono-proclib.h" />\r
     <ClInclude Include="..\mono\utils\mono-property-hash.h" />\r
     <ClInclude Include="..\mono\utils\mono-publib.h" />\r
+    <ClInclude Include="..\mono\utils\mono-rand.h" />\r
     <ClInclude Include="..\mono\utils\mono-semaphore.h" />\r
     <ClInclude Include="..\mono\utils\mono-sigcontext.h" />\r
     <ClInclude Include="..\mono\utils\mono-stack-unwinding.h" />\r
     <ClInclude Include="..\mono\utils\mono-value-hash.h" />\r
     <ClInclude Include="..\mono\utils\monobitset.h" />\r
     <ClInclude Include="..\mono\utils\strenc.h" />\r
-    <ClInclude Include="..\mono\utils\strtod.h" />\r
     <ClInclude Include="..\mono\utils\valgrind.h" />\r
     <ClInclude Include="..\mono\utils\atomic.h" />\r
     <ClInclude Include="..\mono\utils\mono-hwcap.h" />\r
index 768932cc0ca1e9f01fe069696ecd83e6fe242b84..d98ead82b479a38b8a48d2d14c84825fb4a28c8e 100644 (file)
@@ -212,10 +212,7 @@ mono_debug_open_mono_symbols
 mono_debug_print_stack_frame
 mono_debug_print_vars
 mono_debug_remove_method
-mono_debug_symfile_free_locals
 mono_debug_symfile_free_location
-mono_debug_symfile_get_line_numbers
-mono_debug_symfile_get_line_numbers_full
 mono_debug_symfile_is_loaded
 mono_debug_symfile_lookup_locals
 mono_debug_symfile_lookup_location
index f1d9b277fc67966a32d4c0f18a8df1f5095451d9..23f0ec49c4655646527a7753ec7930e516244356 100644 (file)
@@ -9,6 +9,8 @@
   </PropertyGroup>
   <ItemDefinitionGroup>
     <ClCompile>
+      <DllExportPreprocessorDefinitions>MONO_DLL_EXPORT</DllExportPreprocessorDefinitions>
+      <DllImportPreprocessorDefinitions>MONO_DLL_IMPORT</DllImportPreprocessorDefinitions>
       <PreprocessorDefinitions>__default_codegen__;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;HAVE_CONFIG_H;GC_NOT_DLL;WIN32_THREADS;WINVER=0x0600;_WIN32_WINNT=0x0600;_WIN32_IE=0x0501;_UNICODE;UNICODE;WIN32_THREADS;FD_SETSIZE=1024;$(PreprocessorDefinitions);_WINSOCKAPI_</PreprocessorDefinitions>
          <DisableSpecificWarnings>4273;4005</DisableSpecificWarnings>
     </ClCompile>
index 59a81adb2b2ac7f665254937978febc1706c4870..eb44f062a3faea6fb3254903257c48c375eedffc 100644 (file)
@@ -212,10 +212,7 @@ mono_debug_open_mono_symbols
 mono_debug_print_stack_frame
 mono_debug_print_vars
 mono_debug_remove_method
-mono_debug_symfile_free_locals
 mono_debug_symfile_free_location
-mono_debug_symfile_get_line_numbers
-mono_debug_symfile_get_line_numbers_full
 mono_debug_symfile_is_loaded
 mono_debug_symfile_lookup_locals
 mono_debug_symfile_lookup_location
index 451c86afa9985a2d62c3b74b4b977e1921fe92ee..8541f77735aae175d7606135ea66c57f17b07ad6 100644 (file)
@@ -37,6 +37,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.EnterpriseServices-n
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mono.Data.Tds-net_4_5", "..\..\mcs\class/Mono.Data.Tds\Mono.Data.Tds-net_4_5.csproj", "{CB7949AC-5FA7-4FAB-893A-8FAF436BF514}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Numerics-net_4_5", "..\..\mcs\class/System.Numerics\System.Numerics-net_4_5.csproj", "{14631AC9-FDC6-4561-A04C-6913947C939E}"
+EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Data-net_4_5", "..\..\mcs\class/System.Data\System.Data-net_4_5.csproj", "{9A33954F-57A8-4D75-B1D8-0F81808A0DD4}"
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.ComponentModel.DataAnnotations-net_4_5", "..\..\mcs\class/System.ComponentModel.DataAnnotations\System.ComponentModel.DataAnnotations-net_4_5.csproj", "{63EC4158-FFAC-4867-8003-CF6054C8DF0B}"
@@ -53,12 +55,18 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mono.Data.Sqlite-net_4_5",
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Web.ApplicationServices-net_4_5", "..\..\mcs\class/System.Web.ApplicationServices\System.Web.ApplicationServices-net_4_5.csproj", "{B4E6806D-1B38-4CEE-8ADB-2D0A4D1AF25F}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Novell.Directory.Ldap-net_4_5", "..\..\mcs\class/Novell.Directory.Ldap\Novell.Directory.Ldap-net_4_5.csproj", "{E6070FFA-2CBA-4C24-99C1-63A4F5052821}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.DirectoryServices-net_4_5", "..\..\mcs\class/System.DirectoryServices\System.DirectoryServices-net_4_5.csproj", "{EC4E43E7-63C0-4D64-8B7A-E00C097872A5}"
+EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Web-net_4_5", "..\..\mcs\class/System.Web\System.Web-net_4_5.csproj", "{B489C3DE-3ED3-4EDC-B42B-82B38E101857}"
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Web.Services-net_4_5", "..\..\mcs\class/System.Web.Services\System.Web.Services-net_4_5.csproj", "{251DB111-FEE1-4080-8411-0AD1CC9BA94B}"
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Web-plainweb-net_4_5", "..\..\mcs\class/System.Web\System.Web-plainweb-net_4_5.csproj", "{21892B00-1C9F-44F3-AE4C-A6A9A210CEC7}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Design-net_4_5", "..\..\mcs\class/System.Design\System.Design-net_4_5.csproj", "{D4E6A482-761B-4B41-8B63-C930CA84D268}"
+EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Runtime.Remoting-net_4_5", "..\..\mcs\class/System.Runtime.Remoting\System.Runtime.Remoting-net_4_5.csproj", "{AD033C6B-F765-4B4D-B8D0-7C81C4194DAB}"
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Configuration.Install-net_4_5", "..\..\mcs\class/System.Configuration.Install\System.Configuration.Install-net_4_5.csproj", "{E6E1740E-37DD-487C-8947-F1C0612D4738}"
@@ -79,8 +87,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.ServiceProcess-net_4
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Drawing.Design-net_4_5", "..\..\mcs\class/System.Drawing.Design\System.Drawing.Design-net_4_5.csproj", "{DAEBD561-068A-4730-9F8C-98EC20DDEE78}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Design-net_4_5", "..\..\mcs\class/System.Design\System.Design-net_4_5.csproj", "{D4E6A482-761B-4B41-8B63-C930CA84D268}"
-EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpZipLib-net_4_5", "..\..\mcs\class/ICSharpCode.SharpZipLib\ICSharpCode.SharpZipLib-net_4_5.csproj", "{0B587DBA-BA92-4B92-821A-AA200C612A7E}"
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IBM.Data.DB2-net_4_5", "..\..\mcs\class/IBM.Data.DB2\IBM.Data.DB2-net_4_5.csproj", "{7A0D9630-19F1-4AC0-951C-D0F1EA609049}"
@@ -89,6 +95,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CustomMarshalers-net_4_5",
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SystemWebTestShim-net_4_5", "..\..\mcs\class/SystemWebTestShim\SystemWebTestShim-net_4_5.csproj", "{337A92C8-EB50-43A9-9435-CB268AC147DC}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.ServiceModel.Internals-net_4_5", "..\..\mcs\class/System.ServiceModel.Internals\System.ServiceModel.Internals-net_4_5.csproj", "{9C41A885-1D86-4508-B6F7-155D4B7BF441}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SMDiagnostics-net_4_5", "..\..\mcs\class/SMDiagnostics\SMDiagnostics-net_4_5.csproj", "{643FEEB8-DDEB-4204-9C95-344BAA753C58}"
+EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Runtime.Serialization-net_4_5", "..\..\mcs\class/System.Runtime.Serialization\System.Runtime.Serialization-net_4_5.csproj", "{08FF4C26-9C12-433D-AE90-43370046387A}"
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Xml.Linq-net_4_5", "..\..\mcs\class/System.Xml.Linq\System.Xml.Linq-net_4_5.csproj", "{8328796E-8A15-4972-8F1E-2F15E7D57C42}"
@@ -99,6 +109,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Web.Abstractions-net
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Web.Routing-net_4_5", "..\..\mcs\class/System.Web.Routing\System.Web.Routing-net_4_5.csproj", "{A28F2A14-901C-452C-82B6-75ECE5C7E714}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Runtime.DurableInstancing-net_4_5", "..\..\mcs\class/System.Runtime.DurableInstancing\System.Runtime.DurableInstancing-net_4_5.csproj", "{04DAD425-06C0-481B-9787-D2D4BFF196F5}"
+EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.IdentityModel-net_4_5", "..\..\mcs\class/System.IdentityModel\System.IdentityModel-net_4_5.csproj", "{F056C062-E467-4989-9366-440E8CD23C0C}"
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.IdentityModel.Selectors-net_4_5", "..\..\mcs\class/System.IdentityModel.Selectors\System.IdentityModel.Selectors-net_4_5.csproj", "{AB4F77BB-4340-4A79-9B66-EF5B4221E1F2}"
@@ -133,8 +145,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.ServiceModel.Discove
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Runtime.Caching-net_4_5", "..\..\mcs\class/System.Runtime.Caching\System.Runtime.Caching-net_4_5.csproj", "{CB3E9225-3DFF-4930-BFED-1E8AE5319C32}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Runtime.DurableInstancing-net_4_5", "..\..\mcs\class/System.Runtime.DurableInstancing\System.Runtime.DurableInstancing-net_4_5.csproj", "{04DAD425-06C0-481B-9787-D2D4BFF196F5}"
-EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Web.Infrastructure-net_4_5", "..\..\mcs\class/Microsoft.Web.Infrastructure\Microsoft.Web.Infrastructure-net_4_5.csproj", "{50DC9191-2D18-4EDB-A929-4ECAB7981A1C}"
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.ServiceModel.Web-net_4_5", "..\..\mcs\class/System.ServiceModel.Web\System.ServiceModel.Web-net_4_5.csproj", "{BD4DF654-42EE-40E8-A3F4-8A80959E7879}"
@@ -267,12 +277,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Windows-net_4_5", ".
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Xml.Serialization-net_4_5", "..\..\mcs\class/System.Xml.Serialization\System.Xml.Serialization-net_4_5.csproj", "{8888F00F-4ADC-4C1E-B542-7A8FA406CD98}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Numerics-net_4_5", "..\..\mcs\class/System.Numerics\System.Numerics-net_4_5.csproj", "{14631AC9-FDC6-4561-A04C-6913947C939E}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Novell.Directory.Ldap-net_4_5", "..\..\mcs\class/Novell.Directory.Ldap\Novell.Directory.Ldap-net_4_5.csproj", "{E6070FFA-2CBA-4C24-99C1-63A4F5052821}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.DirectoryServices-net_4_5", "..\..\mcs\class/System.DirectoryServices\System.DirectoryServices-net_4_5.csproj", "{EC4E43E7-63C0-4D64-8B7A-E00C097872A5}"
-EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.DirectoryServices.Protocols-net_4_5", "..\..\mcs\class/System.DirectoryServices.Protocols\System.DirectoryServices.Protocols-net_4_5.csproj", "{34031168-8F0D-431D-A1DE-044B3D89C7A2}"
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.VisualC-net_4_5", "..\..\mcs\class/Microsoft.VisualC\Microsoft.VisualC-net_4_5.csproj", "{D2B40179-234C-4709-82A2-AE91FA7AD106}"
@@ -457,6 +461,10 @@ Global
                {CB7949AC-5FA7-4FAB-893A-8FAF436BF514}.Debug|Any CPU.Build.0 = Debug|Any CPU
                {CB7949AC-5FA7-4FAB-893A-8FAF436BF514}.Release|Any CPU.ActiveCfg = Release|Any CPU
                {CB7949AC-5FA7-4FAB-893A-8FAF436BF514}.Release|Any CPU.Build.0 = Release|Any CPU
+               {14631AC9-FDC6-4561-A04C-6913947C939E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+               {14631AC9-FDC6-4561-A04C-6913947C939E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {14631AC9-FDC6-4561-A04C-6913947C939E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+               {14631AC9-FDC6-4561-A04C-6913947C939E}.Release|Any CPU.Build.0 = Release|Any CPU
                {9A33954F-57A8-4D75-B1D8-0F81808A0DD4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
                {9A33954F-57A8-4D75-B1D8-0F81808A0DD4}.Debug|Any CPU.Build.0 = Debug|Any CPU
                {9A33954F-57A8-4D75-B1D8-0F81808A0DD4}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -489,6 +497,14 @@ Global
                {B4E6806D-1B38-4CEE-8ADB-2D0A4D1AF25F}.Debug|Any CPU.Build.0 = Debug|Any CPU
                {B4E6806D-1B38-4CEE-8ADB-2D0A4D1AF25F}.Release|Any CPU.ActiveCfg = Release|Any CPU
                {B4E6806D-1B38-4CEE-8ADB-2D0A4D1AF25F}.Release|Any CPU.Build.0 = Release|Any CPU
+               {E6070FFA-2CBA-4C24-99C1-63A4F5052821}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+               {E6070FFA-2CBA-4C24-99C1-63A4F5052821}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {E6070FFA-2CBA-4C24-99C1-63A4F5052821}.Release|Any CPU.ActiveCfg = Release|Any CPU
+               {E6070FFA-2CBA-4C24-99C1-63A4F5052821}.Release|Any CPU.Build.0 = Release|Any CPU
+               {EC4E43E7-63C0-4D64-8B7A-E00C097872A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+               {EC4E43E7-63C0-4D64-8B7A-E00C097872A5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {EC4E43E7-63C0-4D64-8B7A-E00C097872A5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+               {EC4E43E7-63C0-4D64-8B7A-E00C097872A5}.Release|Any CPU.Build.0 = Release|Any CPU
                {B489C3DE-3ED3-4EDC-B42B-82B38E101857}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
                {B489C3DE-3ED3-4EDC-B42B-82B38E101857}.Debug|Any CPU.Build.0 = Debug|Any CPU
                {B489C3DE-3ED3-4EDC-B42B-82B38E101857}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -501,6 +517,10 @@ Global
                {21892B00-1C9F-44F3-AE4C-A6A9A210CEC7}.Debug|Any CPU.Build.0 = Debug|Any CPU
                {21892B00-1C9F-44F3-AE4C-A6A9A210CEC7}.Release|Any CPU.ActiveCfg = Release|Any CPU
                {21892B00-1C9F-44F3-AE4C-A6A9A210CEC7}.Release|Any CPU.Build.0 = Release|Any CPU
+               {D4E6A482-761B-4B41-8B63-C930CA84D268}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+               {D4E6A482-761B-4B41-8B63-C930CA84D268}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {D4E6A482-761B-4B41-8B63-C930CA84D268}.Release|Any CPU.ActiveCfg = Release|Any CPU
+               {D4E6A482-761B-4B41-8B63-C930CA84D268}.Release|Any CPU.Build.0 = Release|Any CPU
                {AD033C6B-F765-4B4D-B8D0-7C81C4194DAB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
                {AD033C6B-F765-4B4D-B8D0-7C81C4194DAB}.Debug|Any CPU.Build.0 = Debug|Any CPU
                {AD033C6B-F765-4B4D-B8D0-7C81C4194DAB}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -541,10 +561,6 @@ Global
                {DAEBD561-068A-4730-9F8C-98EC20DDEE78}.Debug|Any CPU.Build.0 = Debug|Any CPU
                {DAEBD561-068A-4730-9F8C-98EC20DDEE78}.Release|Any CPU.ActiveCfg = Release|Any CPU
                {DAEBD561-068A-4730-9F8C-98EC20DDEE78}.Release|Any CPU.Build.0 = Release|Any CPU
-               {D4E6A482-761B-4B41-8B63-C930CA84D268}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-               {D4E6A482-761B-4B41-8B63-C930CA84D268}.Debug|Any CPU.Build.0 = Debug|Any CPU
-               {D4E6A482-761B-4B41-8B63-C930CA84D268}.Release|Any CPU.ActiveCfg = Release|Any CPU
-               {D4E6A482-761B-4B41-8B63-C930CA84D268}.Release|Any CPU.Build.0 = Release|Any CPU
                {0B587DBA-BA92-4B92-821A-AA200C612A7E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
                {0B587DBA-BA92-4B92-821A-AA200C612A7E}.Debug|Any CPU.Build.0 = Debug|Any CPU
                {0B587DBA-BA92-4B92-821A-AA200C612A7E}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -561,6 +577,14 @@ Global
                {337A92C8-EB50-43A9-9435-CB268AC147DC}.Debug|Any CPU.Build.0 = Debug|Any CPU
                {337A92C8-EB50-43A9-9435-CB268AC147DC}.Release|Any CPU.ActiveCfg = Release|Any CPU
                {337A92C8-EB50-43A9-9435-CB268AC147DC}.Release|Any CPU.Build.0 = Release|Any CPU
+               {9C41A885-1D86-4508-B6F7-155D4B7BF441}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+               {9C41A885-1D86-4508-B6F7-155D4B7BF441}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {9C41A885-1D86-4508-B6F7-155D4B7BF441}.Release|Any CPU.ActiveCfg = Release|Any CPU
+               {9C41A885-1D86-4508-B6F7-155D4B7BF441}.Release|Any CPU.Build.0 = Release|Any CPU
+               {643FEEB8-DDEB-4204-9C95-344BAA753C58}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+               {643FEEB8-DDEB-4204-9C95-344BAA753C58}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {643FEEB8-DDEB-4204-9C95-344BAA753C58}.Release|Any CPU.ActiveCfg = Release|Any CPU
+               {643FEEB8-DDEB-4204-9C95-344BAA753C58}.Release|Any CPU.Build.0 = Release|Any CPU
                {08FF4C26-9C12-433D-AE90-43370046387A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
                {08FF4C26-9C12-433D-AE90-43370046387A}.Debug|Any CPU.Build.0 = Debug|Any CPU
                {08FF4C26-9C12-433D-AE90-43370046387A}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -581,6 +605,10 @@ Global
                {A28F2A14-901C-452C-82B6-75ECE5C7E714}.Debug|Any CPU.Build.0 = Debug|Any CPU
                {A28F2A14-901C-452C-82B6-75ECE5C7E714}.Release|Any CPU.ActiveCfg = Release|Any CPU
                {A28F2A14-901C-452C-82B6-75ECE5C7E714}.Release|Any CPU.Build.0 = Release|Any CPU
+               {04DAD425-06C0-481B-9787-D2D4BFF196F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+               {04DAD425-06C0-481B-9787-D2D4BFF196F5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {04DAD425-06C0-481B-9787-D2D4BFF196F5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+               {04DAD425-06C0-481B-9787-D2D4BFF196F5}.Release|Any CPU.Build.0 = Release|Any CPU
                {F056C062-E467-4989-9366-440E8CD23C0C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
                {F056C062-E467-4989-9366-440E8CD23C0C}.Debug|Any CPU.Build.0 = Debug|Any CPU
                {F056C062-E467-4989-9366-440E8CD23C0C}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -649,10 +677,6 @@ Global
                {CB3E9225-3DFF-4930-BFED-1E8AE5319C32}.Debug|Any CPU.Build.0 = Debug|Any CPU
                {CB3E9225-3DFF-4930-BFED-1E8AE5319C32}.Release|Any CPU.ActiveCfg = Release|Any CPU
                {CB3E9225-3DFF-4930-BFED-1E8AE5319C32}.Release|Any CPU.Build.0 = Release|Any CPU
-               {04DAD425-06C0-481B-9787-D2D4BFF196F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-               {04DAD425-06C0-481B-9787-D2D4BFF196F5}.Debug|Any CPU.Build.0 = Debug|Any CPU
-               {04DAD425-06C0-481B-9787-D2D4BFF196F5}.Release|Any CPU.ActiveCfg = Release|Any CPU
-               {04DAD425-06C0-481B-9787-D2D4BFF196F5}.Release|Any CPU.Build.0 = Release|Any CPU
                {50DC9191-2D18-4EDB-A929-4ECAB7981A1C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
                {50DC9191-2D18-4EDB-A929-4ECAB7981A1C}.Debug|Any CPU.Build.0 = Debug|Any CPU
                {50DC9191-2D18-4EDB-A929-4ECAB7981A1C}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -917,18 +941,6 @@ Global
                {8888F00F-4ADC-4C1E-B542-7A8FA406CD98}.Debug|Any CPU.Build.0 = Debug|Any CPU
                {8888F00F-4ADC-4C1E-B542-7A8FA406CD98}.Release|Any CPU.ActiveCfg = Release|Any CPU
                {8888F00F-4ADC-4C1E-B542-7A8FA406CD98}.Release|Any CPU.Build.0 = Release|Any CPU
-               {14631AC9-FDC6-4561-A04C-6913947C939E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-               {14631AC9-FDC6-4561-A04C-6913947C939E}.Debug|Any CPU.Build.0 = Debug|Any CPU
-               {14631AC9-FDC6-4561-A04C-6913947C939E}.Release|Any CPU.ActiveCfg = Release|Any CPU
-               {14631AC9-FDC6-4561-A04C-6913947C939E}.Release|Any CPU.Build.0 = Release|Any CPU
-               {E6070FFA-2CBA-4C24-99C1-63A4F5052821}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-               {E6070FFA-2CBA-4C24-99C1-63A4F5052821}.Debug|Any CPU.Build.0 = Debug|Any CPU
-               {E6070FFA-2CBA-4C24-99C1-63A4F5052821}.Release|Any CPU.ActiveCfg = Release|Any CPU
-               {E6070FFA-2CBA-4C24-99C1-63A4F5052821}.Release|Any CPU.Build.0 = Release|Any CPU
-               {EC4E43E7-63C0-4D64-8B7A-E00C097872A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-               {EC4E43E7-63C0-4D64-8B7A-E00C097872A5}.Debug|Any CPU.Build.0 = Debug|Any CPU
-               {EC4E43E7-63C0-4D64-8B7A-E00C097872A5}.Release|Any CPU.ActiveCfg = Release|Any CPU
-               {EC4E43E7-63C0-4D64-8B7A-E00C097872A5}.Release|Any CPU.Build.0 = Release|Any CPU
                {34031168-8F0D-431D-A1DE-044B3D89C7A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
                {34031168-8F0D-431D-A1DE-044B3D89C7A2}.Debug|Any CPU.Build.0 = Debug|Any CPU
                {34031168-8F0D-431D-A1DE-044B3D89C7A2}.Release|Any CPU.ActiveCfg = Release|Any CPU
index e48e0fedb7eb5cdf1aff55399dbd41ac0c0116e0..1f002a420686e30d559cd7231cb6ae5336289c50 100644 (file)
@@ -12,7 +12,7 @@
     </project>
     <project dir="class/corlib" library="corlib-basic">
       <boot>true</boot>
-      <flags>/codepage:65001 -unsafe -nostdlib -nowarn:612,618 -d:INSIDE_CORLIB,MONO_CULTURE_DATA -d:LIBC -d:FEATURE_PAL,GENERICS_WORK,FEATURE_LIST_PREDICATES,FEATURE_SERIALIZATION,FEATURE_ASCII,FEATURE_LATIN1,FEATURE_UTF7,FEATURE_UTF32,MONO_HYBRID_ENCODING_SUPPORT,FEATURE_ASYNC_IO,NEW_EXPERIMENTAL_ASYNC_IO,FEATURE_UTF32 -d:FEATURE_REMOTING,MONO_COM -d:NET_4_0 -d:NET_4_5 -d:MONO -d:BOOTSTRAP_BASIC -nowarn:1699 -d:DISABLE_CAS_USE -lib:./../../class/lib/basic -optimize /noconfig -d:FEATURE_PAL,GENERICS_WORK,FEATURE_LIST_PREDICATES,FEATURE_SERIALIZATION,FEATURE_ASCII,FEATURE_LATIN1,FEATURE_UTF7,FEATURE_UTF32,MONO_HYBRID_ENCODING_SUPPORT,FEATURE_ASYNC_IO,NEW_EXPERIMENTAL_ASYNC_IO,FEATURE_UTF32 -d:FEATURE_REMOTING,MONO_COM -resource:resources/charinfo.nlp -resource:resources/collation.core.bin -resource:resources/collation.tailoring.bin -resource:resources/collation.cjkCHS.bin -resource:resources/collation.cjkCHT.bin -resource:resources/collation.cjkJA.bin -resource:resources/collation.cjkKO.bin -resource:resources/collation.cjkKOlv2.bin --runtime:v4</flags>
+      <flags>/codepage:65001 -unsafe -nostdlib -nowarn:612,618 -d:INSIDE_CORLIB,MONO_CULTURE_DATA -d:LIBC -d:FEATURE_PAL,GENERICS_WORK,FEATURE_LIST_PREDICATES,FEATURE_SERIALIZATION,FEATURE_ASCII,FEATURE_LATIN1,FEATURE_UTF7,FEATURE_UTF32,MONO_HYBRID_ENCODING_SUPPORT,FEATURE_ASYNC_IO,NEW_EXPERIMENTAL_ASYNC_IO,FEATURE_UTF32,FEATURE_EXCEPTIONDISPATCHINFO,FEATURE_CORRUPTING_EXCEPTIONS,FEATURE_EXCEPTION_NOTIFICATIONS,FEATURE_STRONGNAME_MIGRATION,FEATURE_USE_LCID,FEATURE_FUSION,FEATURE_CRYPTO,FEATURE_X509_SECURESTRINGS,FEATURE_SYNCHRONIZATIONCONTEXT,FEATURE_SYNCHRONIZATIONCONTEXT_WAIT -d:FEATURE_REMOTING,MONO_COM,FEATURE_COMINTEROP -d:NET_4_0 -d:NET_4_5 -d:MONO -d:BOOTSTRAP_BASIC -nowarn:1699 -d:DISABLE_CAS_USE -lib:./../../class/lib/basic -optimize /noconfig -d:FEATURE_PAL,GENERICS_WORK,FEATURE_LIST_PREDICATES,FEATURE_SERIALIZATION,FEATURE_ASCII,FEATURE_LATIN1,FEATURE_UTF7,FEATURE_UTF32,MONO_HYBRID_ENCODING_SUPPORT,FEATURE_ASYNC_IO,NEW_EXPERIMENTAL_ASYNC_IO,FEATURE_UTF32,FEATURE_EXCEPTIONDISPATCHINFO,FEATURE_CORRUPTING_EXCEPTIONS,FEATURE_EXCEPTION_NOTIFICATIONS,FEATURE_STRONGNAME_MIGRATION,FEATURE_USE_LCID,FEATURE_FUSION,FEATURE_CRYPTO,FEATURE_X509_SECURESTRINGS,FEATURE_SYNCHRONIZATIONCONTEXT,FEATURE_SYNCHRONIZATIONCONTEXT_WAIT -d:FEATURE_REMOTING,MONO_COM,FEATURE_COMINTEROP -resource:resources/charinfo.nlp -resource:resources/collation.core.bin -resource:resources/collation.tailoring.bin -resource:resources/collation.cjkCHS.bin -resource:resources/collation.cjkCHT.bin -resource:resources/collation.cjkJA.bin -resource:resources/collation.cjkKO.bin -resource:resources/collation.cjkKOlv2.bin --runtime:v4</flags>
       <output>mscorlib.dll</output>
       <built_sources></built_sources>
       <library_output>./../../class/lib/basic/mscorlib.dll</library_output>
@@ -32,7 +32,7 @@
     </project>
     <project dir="class/System.XML" library="System.Xml-basic">
       <boot>true</boot>
-      <flags>/codepage:65001 -lib:./../../class/lib/basic/bare -d:NET_4_0 -d:NET_4_5 -d:MONO -d:BOOTSTRAP_BASIC -nowarn:1699 -d:DISABLE_CAS_USE -lib:./../../class/lib/basic -optimize /noconfig -r:mscorlib.dll -nowarn:219,414,0612,0642,649 -unsafe -d:ASYNC -d:DISABLE_CAS_USE -d:MONO_HYBRID_SYSTEM_XML -r:System.Configuration.dll -d:CONFIGURATION_DEP -r:System</flags>
+      <flags>/codepage:65001 -lib:./../../class/lib/basic/bare -d:NET_4_0 -d:NET_4_5 -d:MONO -d:BOOTSTRAP_BASIC -nowarn:1699 -d:DISABLE_CAS_USE -lib:./../../class/lib/basic -optimize /noconfig -r:mscorlib.dll -nowarn:219,414,649,1717 -unsafe -d:ASYNC -r:System.Configuration.dll -d:CONFIGURATION_DEP -r:System</flags>
       <output>System.Xml.dll</output>
       <built_sources></built_sources>
       <library_output>./../../class/lib/basic/System.Xml.dll</library_output>
@@ -72,7 +72,7 @@
     </project>
     <project dir="class/corlib" library="corlib-build">
       <boot>true</boot>
-      <flags>/codepage:65001 -unsafe -nostdlib -nowarn:612,618 -d:INSIDE_CORLIB,MONO_CULTURE_DATA -d:LIBC -d:FEATURE_PAL,GENERICS_WORK,FEATURE_LIST_PREDICATES,FEATURE_SERIALIZATION,FEATURE_ASCII,FEATURE_LATIN1,FEATURE_UTF7,FEATURE_UTF32,MONO_HYBRID_ENCODING_SUPPORT,FEATURE_ASYNC_IO,NEW_EXPERIMENTAL_ASYNC_IO,FEATURE_UTF32 -d:FEATURE_REMOTING,MONO_COM -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/build -optimize /noconfig -d:FEATURE_PAL,GENERICS_WORK,FEATURE_LIST_PREDICATES,FEATURE_SERIALIZATION,FEATURE_ASCII,FEATURE_LATIN1,FEATURE_UTF7,FEATURE_UTF32,MONO_HYBRID_ENCODING_SUPPORT,FEATURE_ASYNC_IO,NEW_EXPERIMENTAL_ASYNC_IO,FEATURE_UTF32 -d:FEATURE_REMOTING,MONO_COM -resource:resources/charinfo.nlp -resource:resources/collation.core.bin -resource:resources/collation.tailoring.bin -resource:resources/collation.cjkCHS.bin -resource:resources/collation.cjkCHT.bin -resource:resources/collation.cjkJA.bin -resource:resources/collation.cjkKO.bin -resource:resources/collation.cjkKOlv2.bin --runtime:v4</flags>
+      <flags>/codepage:65001 -unsafe -nostdlib -nowarn:612,618 -d:INSIDE_CORLIB,MONO_CULTURE_DATA -d:LIBC -d:FEATURE_PAL,GENERICS_WORK,FEATURE_LIST_PREDICATES,FEATURE_SERIALIZATION,FEATURE_ASCII,FEATURE_LATIN1,FEATURE_UTF7,FEATURE_UTF32,MONO_HYBRID_ENCODING_SUPPORT,FEATURE_ASYNC_IO,NEW_EXPERIMENTAL_ASYNC_IO,FEATURE_UTF32,FEATURE_EXCEPTIONDISPATCHINFO,FEATURE_CORRUPTING_EXCEPTIONS,FEATURE_EXCEPTION_NOTIFICATIONS,FEATURE_STRONGNAME_MIGRATION,FEATURE_USE_LCID,FEATURE_FUSION,FEATURE_CRYPTO,FEATURE_X509_SECURESTRINGS,FEATURE_SYNCHRONIZATIONCONTEXT,FEATURE_SYNCHRONIZATIONCONTEXT_WAIT -d:FEATURE_REMOTING,MONO_COM,FEATURE_COMINTEROP -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/build -optimize /noconfig -d:FEATURE_PAL,GENERICS_WORK,FEATURE_LIST_PREDICATES,FEATURE_SERIALIZATION,FEATURE_ASCII,FEATURE_LATIN1,FEATURE_UTF7,FEATURE_UTF32,MONO_HYBRID_ENCODING_SUPPORT,FEATURE_ASYNC_IO,NEW_EXPERIMENTAL_ASYNC_IO,FEATURE_UTF32,FEATURE_EXCEPTIONDISPATCHINFO,FEATURE_CORRUPTING_EXCEPTIONS,FEATURE_EXCEPTION_NOTIFICATIONS,FEATURE_STRONGNAME_MIGRATION,FEATURE_USE_LCID,FEATURE_FUSION,FEATURE_CRYPTO,FEATURE_X509_SECURESTRINGS,FEATURE_SYNCHRONIZATIONCONTEXT,FEATURE_SYNCHRONIZATIONCONTEXT_WAIT -d:FEATURE_REMOTING,MONO_COM,FEATURE_COMINTEROP -resource:resources/charinfo.nlp -resource:resources/collation.core.bin -resource:resources/collation.tailoring.bin -resource:resources/collation.cjkCHS.bin -resource:resources/collation.cjkCHT.bin -resource:resources/collation.cjkJA.bin -resource:resources/collation.cjkKO.bin -resource:resources/collation.cjkKOlv2.bin --runtime:v4</flags>
       <output>mscorlib.dll</output>
       <built_sources></built_sources>
       <library_output>./../../class/lib/build/mscorlib.dll</library_output>
     </project>
     <project dir="class/System.XML" library="System.Xml-build">
       <boot>false</boot>
-      <flags>/codepage:65001 -lib:./../../class/lib/build/bare -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/build -r:mscorlib.dll -optimize /noconfig -r:mscorlib.dll -nowarn:219,414,0612,0642,649 -unsafe -d:ASYNC -d:DISABLE_CAS_USE -d:MONO_HYBRID_SYSTEM_XML -r:System.Configuration.dll -d:CONFIGURATION_DEP -r:System</flags>
+      <flags>/codepage:65001 -lib:./../../class/lib/build/bare -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/build -r:mscorlib.dll -optimize /noconfig -r:mscorlib.dll -nowarn:219,414,649,1717 -unsafe -d:ASYNC -r:System.Configuration.dll -d:CONFIGURATION_DEP -r:System</flags>
       <output>System.Xml.dll</output>
       <built_sources></built_sources>
       <library_output>./../../class/lib/build/System.Xml.dll</library_output>
     </project>
     <project dir="class/System.XML" library="System.Xml-bare-build">
       <boot>false</boot>
-      <flags>/codepage:65001 -lib:./../../class/lib/build/bare -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/build -r:mscorlib.dll -optimize /noconfig -r:mscorlib.dll -nowarn:219,414,0612,0642,649 -unsafe -d:ASYNC -d:DISABLE_CAS_USE -d:MONO_HYBRID_SYSTEM_XML -r:System</flags>
+      <flags>/codepage:65001 -lib:./../../class/lib/build/bare -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/build -r:mscorlib.dll -optimize /noconfig -r:mscorlib.dll -nowarn:219,414,649,1717 -unsafe -d:ASYNC -r:System</flags>
       <output>System.Xml.dll</output>
       <built_sources></built_sources>
       <library_output>./../../class/lib/build/bare/System.Xml.dll</library_output>
     </project>
     <project dir="class/corlib" library="corlib-net_4_5">
       <boot>true</boot>
-      <flags>/codepage:65001 -unsafe -nostdlib -nowarn:612,618 -d:INSIDE_CORLIB,MONO_CULTURE_DATA -d:LIBC -d:FEATURE_PAL,GENERICS_WORK,FEATURE_LIST_PREDICATES,FEATURE_SERIALIZATION,FEATURE_ASCII,FEATURE_LATIN1,FEATURE_UTF7,FEATURE_UTF32,MONO_HYBRID_ENCODING_SUPPORT,FEATURE_ASYNC_IO,NEW_EXPERIMENTAL_ASYNC_IO,FEATURE_UTF32 -d:FEATURE_REMOTING,MONO_COM -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -debug -optimize /noconfig -d:FEATURE_PAL,GENERICS_WORK,FEATURE_LIST_PREDICATES,FEATURE_SERIALIZATION,FEATURE_ASCII,FEATURE_LATIN1,FEATURE_UTF7,FEATURE_UTF32,MONO_HYBRID_ENCODING_SUPPORT,FEATURE_ASYNC_IO,NEW_EXPERIMENTAL_ASYNC_IO,FEATURE_UTF32 -d:FEATURE_REMOTING,MONO_COM -resource:resources/charinfo.nlp -resource:resources/collation.core.bin -resource:resources/collation.tailoring.bin -resource:resources/collation.cjkCHS.bin -resource:resources/collation.cjkCHT.bin -resource:resources/collation.cjkJA.bin -resource:resources/collation.cjkKO.bin -resource:resources/collation.cjkKOlv2.bin --runtime:v4</flags>
+      <flags>/codepage:65001 -unsafe -nostdlib -nowarn:612,618 -d:INSIDE_CORLIB,MONO_CULTURE_DATA -d:LIBC -d:FEATURE_PAL,GENERICS_WORK,FEATURE_LIST_PREDICATES,FEATURE_SERIALIZATION,FEATURE_ASCII,FEATURE_LATIN1,FEATURE_UTF7,FEATURE_UTF32,MONO_HYBRID_ENCODING_SUPPORT,FEATURE_ASYNC_IO,NEW_EXPERIMENTAL_ASYNC_IO,FEATURE_UTF32,FEATURE_EXCEPTIONDISPATCHINFO,FEATURE_CORRUPTING_EXCEPTIONS,FEATURE_EXCEPTION_NOTIFICATIONS,FEATURE_STRONGNAME_MIGRATION,FEATURE_USE_LCID,FEATURE_FUSION,FEATURE_CRYPTO,FEATURE_X509_SECURESTRINGS,FEATURE_SYNCHRONIZATIONCONTEXT,FEATURE_SYNCHRONIZATIONCONTEXT_WAIT -d:FEATURE_REMOTING,MONO_COM,FEATURE_COMINTEROP -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -debug -optimize /noconfig -d:FEATURE_PAL,GENERICS_WORK,FEATURE_LIST_PREDICATES,FEATURE_SERIALIZATION,FEATURE_ASCII,FEATURE_LATIN1,FEATURE_UTF7,FEATURE_UTF32,MONO_HYBRID_ENCODING_SUPPORT,FEATURE_ASYNC_IO,NEW_EXPERIMENTAL_ASYNC_IO,FEATURE_UTF32,FEATURE_EXCEPTIONDISPATCHINFO,FEATURE_CORRUPTING_EXCEPTIONS,FEATURE_EXCEPTION_NOTIFICATIONS,FEATURE_STRONGNAME_MIGRATION,FEATURE_USE_LCID,FEATURE_FUSION,FEATURE_CRYPTO,FEATURE_X509_SECURESTRINGS,FEATURE_SYNCHRONIZATIONCONTEXT,FEATURE_SYNCHRONIZATIONCONTEXT_WAIT -d:FEATURE_REMOTING,MONO_COM,FEATURE_COMINTEROP -resource:resources/charinfo.nlp -resource:resources/collation.core.bin -resource:resources/collation.tailoring.bin -resource:resources/collation.cjkCHS.bin -resource:resources/collation.cjkCHT.bin -resource:resources/collation.cjkJA.bin -resource:resources/collation.cjkKO.bin -resource:resources/collation.cjkKOlv2.bin --runtime:v4</flags>
       <output>mscorlib.dll</output>
       <built_sources></built_sources>
       <library_output>./../../class/lib/net_4_5/mscorlib.dll</library_output>
     </project>
     <project dir="class/corlib" library="corlib-tests-net_4_5">
       <boot>false</boot>
-      <flags>/codepage:65001 -unsafe -nostdlib -nowarn:612,618 -d:INSIDE_CORLIB,MONO_CULTURE_DATA -d:LIBC -d:FEATURE_PAL,GENERICS_WORK,FEATURE_LIST_PREDICATES,FEATURE_SERIALIZATION,FEATURE_ASCII,FEATURE_LATIN1,FEATURE_UTF7,FEATURE_UTF32,MONO_HYBRID_ENCODING_SUPPORT,FEATURE_ASYNC_IO,NEW_EXPERIMENTAL_ASYNC_IO,FEATURE_UTF32 -d:FEATURE_REMOTING,MONO_COM -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -debug -optimize -r:./../../class/lib/net_4_5/mscorlib.dll -debug -nowarn:168,219,618,672 -unsafe -r:Mono.Posix.dll -r:System.Core.dll -define:MONO_DATACONVERTER_STATIC_METHODS -resource:Test/resources/Resources.resources</flags>
+      <flags>/codepage:65001 -unsafe -nostdlib -nowarn:612,618 -d:INSIDE_CORLIB,MONO_CULTURE_DATA -d:LIBC -d:FEATURE_PAL,GENERICS_WORK,FEATURE_LIST_PREDICATES,FEATURE_SERIALIZATION,FEATURE_ASCII,FEATURE_LATIN1,FEATURE_UTF7,FEATURE_UTF32,MONO_HYBRID_ENCODING_SUPPORT,FEATURE_ASYNC_IO,NEW_EXPERIMENTAL_ASYNC_IO,FEATURE_UTF32,FEATURE_EXCEPTIONDISPATCHINFO,FEATURE_CORRUPTING_EXCEPTIONS,FEATURE_EXCEPTION_NOTIFICATIONS,FEATURE_STRONGNAME_MIGRATION,FEATURE_USE_LCID,FEATURE_FUSION,FEATURE_CRYPTO,FEATURE_X509_SECURESTRINGS,FEATURE_SYNCHRONIZATIONCONTEXT,FEATURE_SYNCHRONIZATIONCONTEXT_WAIT -d:FEATURE_REMOTING,MONO_COM,FEATURE_COMINTEROP -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -debug -optimize -r:./../../class/lib/net_4_5/mscorlib.dll -debug -nowarn:168,219,618,672 -unsafe -r:Mono.Posix.dll -r:System.Core.dll -define:MONO_DATACONVERTER_STATIC_METHODS -resource:Test/resources/Resources.resources</flags>
       <output>corlib_test_net_4_5.dll</output>
       <built_sources></built_sources>
       <library_output>corlib_test_net_4_5.dll</library_output>
     </project>
     <project dir="class/System.XML" library="System.Xml-net_4_5">
       <boot>false</boot>
-      <flags>/codepage:65001 -lib:./../../class/lib/net_4_5/bare -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize /noconfig -r:mscorlib.dll -nowarn:219,414,0612,0642,649 -unsafe -d:ASYNC -d:DISABLE_CAS_USE -d:MONO_HYBRID_SYSTEM_XML -r:System.Configuration.dll -d:CONFIGURATION_DEP -r:System</flags>
+      <flags>/codepage:65001 -lib:./../../class/lib/net_4_5/bare -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize /noconfig -r:mscorlib.dll -nowarn:219,414,649,1717 -unsafe -d:ASYNC -r:System.Configuration.dll -d:CONFIGURATION_DEP -r:System</flags>
       <output>System.Xml.dll</output>
       <built_sources></built_sources>
       <library_output>./../../class/lib/net_4_5/System.Xml.dll</library_output>
     </project>
     <project dir="class/System.XML" library="System.Xml-tests-net_4_5">
       <boot>false</boot>
-      <flags>/codepage:65001 -lib:./../../class/lib/net_4_5/bare -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_5/bare/System.Xml.dll -r:mscorlib.dll -nowarn:219,414,0612,0642,649 -unsafe -d:ASYNC -d:DISABLE_CAS_USE -d:MONO_HYBRID_SYSTEM_XML -r:System -nowarn:0618 -nowarn:219 -nowarn:169 -r:System.Data.dll -r:System.Core.dll</flags>
+      <flags>/codepage:65001 -lib:./../../class/lib/net_4_5/bare -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_5/bare/System.Xml.dll -r:mscorlib.dll -nowarn:219,414,649,1717 -unsafe -d:ASYNC -r:System -nowarn:0618 -nowarn:219 -nowarn:169 -r:System.Data.dll -r:System.Core.dll</flags>
       <output>System.Xml_test_net_4_5.dll</output>
       <built_sources></built_sources>
       <library_output>System.Xml_test_net_4_5.dll</library_output>
     </project>
     <project dir="class/System.XML" library="System.Xml-bare-net_4_5">
       <boot>false</boot>
-      <flags>/codepage:65001 -lib:./../../class/lib/net_4_5/bare -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize /noconfig -r:mscorlib.dll -nowarn:219,414,0612,0642,649 -unsafe -d:ASYNC -d:DISABLE_CAS_USE -d:MONO_HYBRID_SYSTEM_XML -r:System</flags>
+      <flags>/codepage:65001 -lib:./../../class/lib/net_4_5/bare -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize /noconfig -r:mscorlib.dll -nowarn:219,414,649,1717 -unsafe -d:ASYNC -r:System</flags>
       <output>System.Xml.dll</output>
       <built_sources></built_sources>
       <library_output>./../../class/lib/net_4_5/bare/System.Xml.dll</library_output>
     </project>
     <project dir="class/System.XML" library="System.Xml-tests-net_4_5">
       <boot>false</boot>
-      <flags>/codepage:65001 -lib:./../../class/lib/net_4_5/bare -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_5/bare/System.Xml.dll -r:mscorlib.dll -nowarn:219,414,0612,0642,649 -unsafe -d:ASYNC -d:DISABLE_CAS_USE -d:MONO_HYBRID_SYSTEM_XML -r:System -nowarn:0618 -nowarn:219 -nowarn:169 -r:System.Data.dll -r:System.Core.dll</flags>
+      <flags>/codepage:65001 -lib:./../../class/lib/net_4_5/bare -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_5/bare/System.Xml.dll -r:mscorlib.dll -nowarn:219,414,649,1717 -unsafe -d:ASYNC -r:System -nowarn:0618 -nowarn:219 -nowarn:169 -r:System.Data.dll -r:System.Core.dll</flags>
       <output>System.Xml_test_net_4_5.dll</output>
       <built_sources></built_sources>
       <library_output>System.Xml_test_net_4_5.dll</library_output>
       <profile>net_4_5</profile>
       <response>./../../build/deps/Mono.Data.Tds_test_net_4_5.dll.response</response>
     </project>
+    <project dir="class/System.Numerics" library="System.Numerics-net_4_5">
+      <boot>false</boot>
+      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize /noconfig /unsafe -d:MONO -r:System</flags>
+      <output>System.Numerics.dll</output>
+      <built_sources></built_sources>
+      <library_output>./../../class/lib/net_4_5/System.Numerics.dll</library_output>
+      <fx_version>4.5</fx_version>
+      <profile>net_4_5</profile>
+      <response>System.Numerics.dll.sources</response>
+    </project>
+    <project dir="class/System.Numerics" library="System.Numerics-tests-net_4_5">
+      <boot>false</boot>
+      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_5/System.Numerics.dll /unsafe -d:MONO -r:System</flags>
+      <output>System.Numerics_test_net_4_5.dll</output>
+      <built_sources></built_sources>
+      <library_output>System.Numerics_test_net_4_5.dll</library_output>
+      <fx_version>4.5</fx_version>
+      <profile>net_4_5</profile>
+      <response>./../../build/deps/System.Numerics_test_net_4_5.dll.response</response>
+    </project>
     <project dir="class/System.Data" library="System.Data-net_4_5">
       <boot>false</boot>
-      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize /noconfig -nowarn:649 -unsafe -r:System -r:System.Xml -r:System.Core -r:System.EnterpriseServices -r:Mono.Data.Tds -r:System.Configuration -r:System.Transactions</flags>
+      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize /noconfig -nowarn:169,219,414,649 -d:PLATFORM_UNIX -d:USEOFFSET -d:MONO_PARTIAL_DATA_IMPORT -unsafe -r:System -r:System.Xml -r:System.Core -r:System.Numerics -r:System.EnterpriseServices -r:Mono.Data.Tds -r:System.Configuration -r:System.Transactions</flags>
       <output>System.Data.dll</output>
-      <built_sources>Mono.Data.SqlExpressions/Parser.cs</built_sources>
+      <built_sources>gen_OdbcConnection.cs gen_OleDbConnection.cs gen_OdbcParameter.cs gen_OleDbParameter.cs gen_OdbcParameterCollection.cs gen_OleDbParameterCollection.cs</built_sources>
       <library_output>./../../class/lib/net_4_5/System.Data.dll</library_output>
       <fx_version>4.5</fx_version>
       <profile>net_4_5</profile>
-      <response>System.Data.dll.sources</response>
+      <response>./../../build/deps/net_4_5_System.Data.dll.sources</response>
     </project>
     <project dir="class/System.Data" library="System.Data-tests-net_4_5">
       <boot>false</boot>
-      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_5/System.Data.dll -nowarn:649 -unsafe -r:System -r:System.Xml -r:System.Core -r:System.EnterpriseServices -r:Mono.Data.Tds -r:System.Configuration -r:System.Transactions -r:System.Core.dll -r:Mono.Data.Sqlite.dll -nowarn:618,169,612,219,168</flags>
+      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_5/System.Data.dll -nowarn:169,219,414,649 -d:PLATFORM_UNIX -d:USEOFFSET -d:MONO_PARTIAL_DATA_IMPORT -unsafe -r:System -r:System.Xml -r:System.Core -r:System.Numerics -r:System.EnterpriseServices -r:Mono.Data.Tds -r:System.Configuration -r:System.Transactions -r:System.Core.dll -r:Mono.Data.Sqlite.dll -nowarn:618,169,612,219,168</flags>
       <output>System.Data_test_net_4_5.dll</output>
-      <built_sources>Mono.Data.SqlExpressions/Parser.cs</built_sources>
+      <built_sources>gen_OdbcConnection.cs gen_OleDbConnection.cs gen_OdbcParameter.cs gen_OleDbParameter.cs gen_OdbcParameterCollection.cs gen_OleDbParameterCollection.cs</built_sources>
       <library_output>System.Data_test_net_4_5.dll</library_output>
       <fx_version>4.5</fx_version>
       <profile>net_4_5</profile>
     </project>
     <project dir="class/System.ComponentModel.DataAnnotations" library="System.ComponentModel.DataAnnotations-net_4_5">
       <boot>false</boot>
-      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize /noconfig -r:System -r:System.Core -r:System.Data -r:System.Xml</flags>
+      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize /noconfig -nowarn:414 -r:System -r:System.Core -r:System.Data -r:System.Xml</flags>
       <output>System.ComponentModel.DataAnnotations.dll</output>
       <built_sources></built_sources>
       <library_output>./../../class/lib/net_4_5/System.ComponentModel.DataAnnotations.dll</library_output>
     </project>
     <project dir="class/System.ComponentModel.DataAnnotations" library="System.ComponentModel.DataAnnotations-tests-net_4_5">
       <boot>false</boot>
-      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_5/System.ComponentModel.DataAnnotations.dll -r:System -r:System.Core -r:System.Data -r:System.Xml</flags>
+      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_5/System.ComponentModel.DataAnnotations.dll -nowarn:414 -r:System -r:System.Core -r:System.Data -r:System.Xml</flags>
       <output>System.ComponentModel.DataAnnotations_test_net_4_5.dll</output>
       <built_sources></built_sources>
       <library_output>System.ComponentModel.DataAnnotations_test_net_4_5.dll</library_output>
     </project>
     <project dir="class/System.Runtime.Serialization.Formatters.Soap" library="System.Runtime.Serialization.Formatters.Soap-tests-net_4_5">
       <boot>false</boot>
-      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_5/System.Runtime.Serialization.Formatters.Soap.dll /r:mscorlib.dll -r:System.Xml -nowarn:0618 -nowarn:219 -nowarn:169</flags>
+      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_5/System.Runtime.Serialization.Formatters.Soap.dll /r:mscorlib.dll -r:System.Xml -r:System.dll -nowarn:0618 -nowarn:219 -nowarn:169</flags>
       <output>System.Runtime.Serialization.Formatters.Soap_test_net_4_5.dll</output>
       <built_sources></built_sources>
       <library_output>System.Runtime.Serialization.Formatters.Soap_test_net_4_5.dll</library_output>
       <profile>net_4_5</profile>
       <response>./../../build/deps/net_4_5_System.Web.ApplicationServices.dll.sources</response>
     </project>
+    <project dir="class/Novell.Directory.Ldap" library="Novell.Directory.Ldap-net_4_5">
+      <boot>false</boot>
+      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize /noconfig -warn:1 -nowarn:612 -r:mscorlib.dll -r:System.dll -r:Mono.Security.dll /res:Novell.Directory.Ldap.Utilclass/ResultCodeMessages.resources -r:System -r:Mono.Security</flags>
+      <output>Novell.Directory.Ldap.dll</output>
+      <built_sources></built_sources>
+      <library_output>./../../class/lib/net_4_5/Novell.Directory.Ldap.dll</library_output>
+      <fx_version>4.5</fx_version>
+      <profile>net_4_5</profile>
+      <response>Novell.Directory.Ldap.dll.sources</response>
+    </project>
+    <project dir="class/Novell.Directory.Ldap" library="Novell.Directory.Ldap-tests-net_4_5">
+      <boot>false</boot>
+      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_5/Novell.Directory.Ldap.dll</flags>
+      <output>Novell.Directory.Ldap_test_net_4_5.dll</output>
+      <built_sources></built_sources>
+      <library_output>Novell.Directory.Ldap_test_net_4_5.dll</library_output>
+      <fx_version>4.5</fx_version>
+      <profile>net_4_5</profile>
+      <response>./../../build/deps/Novell.Directory.Ldap_test_net_4_5.dll.response</response>
+    </project>
+    <project dir="class/System.DirectoryServices" library="System.DirectoryServices-net_4_5">
+      <boot>false</boot>
+      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize /noconfig /r:mscorlib.dll -r:System -r:Novell.Directory.Ldap</flags>
+      <output>System.DirectoryServices.dll</output>
+      <built_sources></built_sources>
+      <library_output>./../../class/lib/net_4_5/System.DirectoryServices.dll</library_output>
+      <fx_version>4.5</fx_version>
+      <profile>net_4_5</profile>
+      <response>System.DirectoryServices.dll.sources</response>
+    </project>
+    <project dir="class/System.DirectoryServices" library="System.DirectoryServices-tests-net_4_5">
+      <boot>false</boot>
+      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_5/System.DirectoryServices.dll /r:mscorlib.dll -r:System -r:Novell.Directory.Ldap -nowarn:0618 -nowarn:219 -nowarn:169</flags>
+      <output>System.DirectoryServices_test_net_4_5.dll</output>
+      <built_sources></built_sources>
+      <library_output>System.DirectoryServices_test_net_4_5.dll</library_output>
+      <fx_version>4.5</fx_version>
+      <profile>net_4_5</profile>
+      <response>./../../build/deps/System.DirectoryServices_test_net_4_5.dll.response</response>
+    </project>
     <project dir="class/System.Web" library="System.Web-net_4_5">
       <boot>false</boot>
-      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize /noconfig -unsafe -nowarn:612,618 -r:mscorlib.dll -d:INSIDE_SYSTEM_WEB -nowarn:618 -r:System.Configuration.dll -r:Mono.Data.Sqlite.dll -r:System.Web.ApplicationServices.dll /resource:resources/TranslationResources.resources /resource:resources/WebUIValidation.js /resource:resources/folder.gif /resource:resources/file.gif /resource:resources/computer.gif /resource:resources/arrow_minus.gif /resource:resources/arrow_noexpand.gif /resource:resources/arrow_plus.gif /resource:resources/arrow_up.gif /resource:resources/arrow_down.gif /resource:resources/box_full.gif /resource:resources/box_empty.gif /resource:resources/box_minus.gif /resource:resources/box_noexpand.gif /resource:resources/box_plus.gif /resource:resources/contact.gif /resource:resources/dot_empty.gif /resource:resources/dot_full.gif /resource:resources/dots.gif /resource:resources/inbox.gif /resource:resources/star_empty.gif /resource:resources/star_full.gif /resource:resources/warning.gif /resource:resources/TreeView_noexpand.gif /resource:resources/TreeView_dash.gif /resource:resources/TreeView_dashminus.gif /resource:resources/TreeView_dashplus.gif /resource:resources/TreeView_i.gif /resource:resources/TreeView_l.gif /resource:resources/TreeView_lminus.gif /resource:resources/TreeView_lplus.gif /resource:resources/TreeView_minus.gif /resource:resources/TreeView_plus.gif /resource:resources/TreeView_r.gif /resource:resources/TreeView_rminus.gif /resource:resources/TreeView_rplus.gif /resource:resources/TreeView_t.gif /resource:resources/TreeView_tminus.gif /resource:resources/TreeView_tplus.gif /resource:resources/transparent.gif /resource:resources/webform.js /resource:resources/WebUIValidation_2.0.js /resource:resources/ErrorTemplateCommon_Top.html /resource:resources/DefaultErrorTemplate_CustomErrorDefault.html /resource:resources/ErrorTemplateCommon_Bottom.html /resource:resources/DefaultErrorTemplate_StandardPage.html /resource:resources/HtmlizedExceptionPage_Top.html /resource:resources/HtmlizedExceptionPage_FileLongSource.html /resource:resources/HtmlizedExceptionPage_FileShortSource.html /resource:resources/HtmlizedExceptionPage_CompilerOutput.html /resource:System.Web.UI.WebControls/GridView.js /resource:System.Web.UI.WebControls/DetailsView.js /resource:System.Web.UI.WebControls/TreeView.js /resource:System.Web.UI.WebControls/Menu.js /resource:System.Web.UI.WebControls/MenuModern.js -define:WEBSERVICES_DEP -r:System -r:System.Core -r:System.Drawing -r:System.Data -r:System.Xml -r:System.EnterpriseServices -r:System.Runtime.Serialization.Formatters.Soap -r:System.ComponentModel.DataAnnotations -r:System.Web.Services</flags>
+      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize /noconfig -unsafe -nowarn:612,618 -r:mscorlib.dll -d:INSIDE_SYSTEM_WEB -nowarn:618 -r:System.Configuration.dll -r:Mono.Data.Sqlite.dll -r:System.Web.ApplicationServices.dll /resource:resources/TranslationResources.resources /resource:resources/WebUIValidation.js /resource:resources/folder.gif /resource:resources/file.gif /resource:resources/computer.gif /resource:resources/arrow_minus.gif /resource:resources/arrow_noexpand.gif /resource:resources/arrow_plus.gif /resource:resources/arrow_up.gif /resource:resources/arrow_down.gif /resource:resources/box_full.gif /resource:resources/box_empty.gif /resource:resources/box_minus.gif /resource:resources/box_noexpand.gif /resource:resources/box_plus.gif /resource:resources/contact.gif /resource:resources/dot_empty.gif /resource:resources/dot_full.gif /resource:resources/dots.gif /resource:resources/inbox.gif /resource:resources/star_empty.gif /resource:resources/star_full.gif /resource:resources/warning.gif /resource:resources/TreeView_noexpand.gif /resource:resources/TreeView_dash.gif /resource:resources/TreeView_dashminus.gif /resource:resources/TreeView_dashplus.gif /resource:resources/TreeView_i.gif /resource:resources/TreeView_l.gif /resource:resources/TreeView_lminus.gif /resource:resources/TreeView_lplus.gif /resource:resources/TreeView_minus.gif /resource:resources/TreeView_plus.gif /resource:resources/TreeView_r.gif /resource:resources/TreeView_rminus.gif /resource:resources/TreeView_rplus.gif /resource:resources/TreeView_t.gif /resource:resources/TreeView_tminus.gif /resource:resources/TreeView_tplus.gif /resource:resources/transparent.gif /resource:resources/webform.js /resource:resources/WebUIValidation_2.0.js /resource:resources/ErrorTemplateCommon_Top.html /resource:resources/DefaultErrorTemplate_CustomErrorDefault.html /resource:resources/ErrorTemplateCommon_Bottom.html /resource:resources/DefaultErrorTemplate_StandardPage.html /resource:resources/HtmlizedExceptionPage_Top.html /resource:resources/HtmlizedExceptionPage_FileLongSource.html /resource:resources/HtmlizedExceptionPage_FileShortSource.html /resource:resources/HtmlizedExceptionPage_CompilerOutput.html /resource:System.Web.UI.WebControls/GridView.js /resource:System.Web.UI.WebControls/DetailsView.js /resource:System.Web.UI.WebControls/TreeView.js /resource:System.Web.UI.WebControls/Menu.js /resource:System.Web.UI.WebControls/MenuModern.js -define:WEBSERVICES_DEP -lib:./../../class/lib/net_4_5/plaindesign -r:System -r:System.Core -r:System.Drawing -r:System.Data -r:System.Xml -r:System.EnterpriseServices -r:System.Runtime.Serialization.Formatters.Soap -r:System.ComponentModel.DataAnnotations -r:System.Web.Services -r:System.Design</flags>
       <output>System.Web.dll</output>
       <built_sources>System.Web/UplevelHelper.cs</built_sources>
       <library_output>./../../class/lib/net_4_5/System.Web.dll</library_output>
     </project>
     <project dir="class/System.Web.Services" library="System.Web.Services-net_4_5">
       <boot>false</boot>
-      <flags>/codepage:65001 -lib:./../../class/lib/net_4_5/plainweb -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize /noconfig -nowarn:649 -nowarn:169 -r:mscorlib.dll -r:System.dll -r:System.EnterpriseServices.dll -r:System.Xml.dll -r:System.Web.dll -resource:System.Web.Services.Description/wsdl-1.1.xsd,wsdl-1.1.xsd -resource:System.Web.Services.Description/wsdl-1.1-soap.xsd,wsdl-1.1-soap.xsd -resource:System.Web.Services.Description/web-reference.xsd,web-reference.xsd -r:System -r:System.EnterpriseServices -r:System.Xml -r:System.Web -r:System.Configuration</flags>
+      <flags>/codepage:65001 -lib:./../../class/lib/net_4_5/plaindesign -lib:./../../class/lib/net_4_5/plainweb -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize /noconfig -nowarn:168,169,219,414,612,649 -d:MONO_BROKEN_CONFIGURATION_DLL -resource:System.Web.Services.Description/wsdl-1.1.xsd,wsdl-1.1.xsd -resource:System.Web.Services.Description/wsdl-1.1-soap.xsd,wsdl-1.1-soap.xsd -resource:System.Web.Services.Description/web-reference.xsd,web-reference.xsd -r:System -r:System.EnterpriseServices -r:System.Xml -r:System.Web -r:System.DirectoryServices -r:System.Data -r:System.Design -r:System.Configuration</flags>
       <output>System.Web.Services.dll</output>
       <built_sources></built_sources>
       <library_output>./../../class/lib/net_4_5/System.Web.Services.dll</library_output>
     </project>
     <project dir="class/System.Web.Services" library="System.Web.Services-tests-net_4_5">
       <boot>false</boot>
-      <flags>/codepage:65001 -lib:./../../class/lib/net_4_5/plainweb -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_5/System.Web.Services.dll -nowarn:649 -nowarn:169 -r:mscorlib.dll -r:System.dll -r:System.EnterpriseServices.dll -r:System.Xml.dll -r:System.Web.dll -resource:System.Web.Services.Description/wsdl-1.1.xsd,wsdl-1.1.xsd -resource:System.Web.Services.Description/wsdl-1.1-soap.xsd,wsdl-1.1-soap.xsd -resource:System.Web.Services.Description/web-reference.xsd,web-reference.xsd -r:System -r:System.EnterpriseServices -r:System.Xml -r:System.Web -r:System.Configuration -nowarn:618</flags>
+      <flags>/codepage:65001 -lib:./../../class/lib/net_4_5/plaindesign -lib:./../../class/lib/net_4_5/plainweb -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_5/System.Web.Services.dll -nowarn:168,169,219,414,612,649 -d:MONO_BROKEN_CONFIGURATION_DLL -resource:System.Web.Services.Description/wsdl-1.1.xsd,wsdl-1.1.xsd -resource:System.Web.Services.Description/wsdl-1.1-soap.xsd,wsdl-1.1-soap.xsd -resource:System.Web.Services.Description/web-reference.xsd,web-reference.xsd -r:System -r:System.EnterpriseServices -r:System.Xml -r:System.Web -r:System.DirectoryServices -r:System.Data -r:System.Design -r:System.Configuration -nowarn:618</flags>
       <output>System.Web.Services_test_net_4_5.dll</output>
       <built_sources></built_sources>
       <library_output>System.Web.Services_test_net_4_5.dll</library_output>
       <profile>net_4_5</profile>
       <response>./../../build/deps/System.Web.Services_test_net_4_5.dll.response</response>
     </project>
+    <project dir="class/System.Design" library="System.Design-net_4_5">
+      <boot>false</boot>
+      <flags>/codepage:65001 -lib:./../../class/lib/net_4_5/plainweb -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize /noconfig -r:mscorlib.dll -r:System -r:System.Xml -r:System.Web -r:System.Windows.Forms -r:System.Drawing -r:Accessibility -r:System.Data -r:System.Configuration</flags>
+      <output>System.Design.dll</output>
+      <built_sources></built_sources>
+      <library_output>./../../class/lib/net_4_5/System.Design.dll</library_output>
+      <fx_version>4.5</fx_version>
+      <profile>net_4_5</profile>
+      <response>System.Design.dll.sources</response>
+    </project>
+    <project dir="class/System.Design" library="System.Design-tests-net_4_5">
+      <boot>false</boot>
+      <flags>/codepage:65001 -lib:./../../class/lib/net_4_5/plainweb -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_5/System.Design.dll /r:System.dll -r:System.Drawing.dll -r:System.Windows.Forms</flags>
+      <output>System.Design_test_net_4_5.dll</output>
+      <built_sources></built_sources>
+      <library_output>System.Design_test_net_4_5.dll</library_output>
+      <fx_version>4.5</fx_version>
+      <profile>net_4_5</profile>
+      <response>./../../build/deps/System.Design_test_net_4_5.dll.response</response>
+    </project>
     <project dir="class/System.Runtime.Remoting" library="System.Runtime.Remoting-net_4_5">
       <boot>false</boot>
       <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize /noconfig /r:mscorlib.dll -r:System -r:System.Web -r:System.Xml -r:System.Runtime.Serialization.Formatters.Soap</flags>
       <profile>net_4_5</profile>
       <response>System.Drawing.Design.dll.sources</response>
     </project>
-    <project dir="class/System.Design" library="System.Design-net_4_5">
-      <boot>false</boot>
-      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize /noconfig -r:mscorlib.dll -r:System -r:System.Xml -r:System.Web -r:System.Windows.Forms -r:System.Drawing -r:Accessibility -r:System.Data -r:System.Configuration</flags>
-      <output>System.Design.dll</output>
-      <built_sources></built_sources>
-      <library_output>./../../class/lib/net_4_5/System.Design.dll</library_output>
-      <fx_version>4.5</fx_version>
-      <profile>net_4_5</profile>
-      <response>System.Design.dll.sources</response>
-    </project>
-    <project dir="class/System.Design" library="System.Design-tests-net_4_5">
-      <boot>false</boot>
-      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_5/System.Design.dll /r:System.dll -r:System.Drawing.dll -r:System.Windows.Forms</flags>
-      <output>System.Design_test_net_4_5.dll</output>
-      <built_sources></built_sources>
-      <library_output>System.Design_test_net_4_5.dll</library_output>
-      <fx_version>4.5</fx_version>
-      <profile>net_4_5</profile>
-      <response>./../../build/deps/System.Design_test_net_4_5.dll.response</response>
-    </project>
     <project dir="class/ICSharpCode.SharpZipLib" library="ICSharpCode.SharpZipLib-net_4_5">
       <boot>false</boot>
       <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize /noconfig /r:mscorlib.dll -warn:1 -r:System -r:System.Xml</flags>
       <profile>net_4_5</profile>
       <response>SystemWebTestShim.dll.sources</response>
     </project>
+    <project dir="class/System.ServiceModel.Internals" library="System.ServiceModel.Internals-net_4_5">
+      <boot>false</boot>
+      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize /noconfig /unsafe -r:System -r:System.Core -r:System.Xml -r:System.Configuration</flags>
+      <output>System.ServiceModel.Internals.dll</output>
+      <built_sources></built_sources>
+      <library_output>./../../class/lib/net_4_5/System.ServiceModel.Internals.dll</library_output>
+      <fx_version>4.5</fx_version>
+      <profile>net_4_5</profile>
+      <response>System.ServiceModel.Internals.dll.sources</response>
+    </project>
+    <project dir="class/SMDiagnostics" library="SMDiagnostics-net_4_5">
+      <boot>false</boot>
+      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize /noconfig -r:System -r:System.Core -r:System.Xml -r:System.ServiceModel.Internals -r:System.Configuration</flags>
+      <output>SMDiagnostics.dll</output>
+      <built_sources></built_sources>
+      <library_output>./../../class/lib/net_4_5/SMDiagnostics.dll</library_output>
+      <fx_version>4.5</fx_version>
+      <profile>net_4_5</profile>
+      <response>SMDiagnostics.dll.sources</response>
+    </project>
     <project dir="class/System.Runtime.Serialization" library="System.Runtime.Serialization-net_4_5">
       <boot>false</boot>
-      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize /noconfig -unsafe /nowarn:168,169,219,414 /resource:resources/mstypes.schema /d:NET_3_0 -r:System -r:System.Xml -r:System.Core -r:System.Data -r:System.Configuration</flags>
+      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize /noconfig -unsafe -d:NO_DYNAMIC_CODEGEN /nowarn:168,169,219,414 /d:NET_3_0 -r:System -r:System.Xml -r:System.Core -r:System.ServiceModel.Internals -r:SMDiagnostics -r:System.Data -r:System.Configuration</flags>
       <output>System.Runtime.Serialization.dll</output>
       <built_sources></built_sources>
       <library_output>./../../class/lib/net_4_5/System.Runtime.Serialization.dll</library_output>
     </project>
     <project dir="class/System.Runtime.Serialization" library="System.Runtime.Serialization-tests-net_4_5">
       <boot>false</boot>
-      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_5/System.Runtime.Serialization.dll -unsafe /nowarn:168,169,219,414 /resource:resources/mstypes.schema /d:NET_3_0 -r:System -r:System.Xml -r:System.Core -r:System.Data -r:System.Configuration /r:System.ServiceModel.dll /r:System.Web.Services.dll /resource:Test/Resources/WSDL/collections.wsdl /resource:Test/Resources/WSDL/custom-collections.wsdl</flags>
+      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_5/System.Runtime.Serialization.dll -unsafe -d:NO_DYNAMIC_CODEGEN /nowarn:168,169,219,414 /d:NET_3_0 -r:System -r:System.Xml -r:System.Core -r:System.ServiceModel.Internals -r:SMDiagnostics -r:System.Data -r:System.Configuration /r:System.ServiceModel.dll /r:System.Web.Services.dll /resource:Test/Resources/WSDL/collections.wsdl /resource:Test/Resources/WSDL/custom-collections.wsdl</flags>
       <output>System.Runtime.Serialization_test_net_4_5.dll</output>
       <built_sources></built_sources>
       <library_output>System.Runtime.Serialization_test_net_4_5.dll</library_output>
     </project>
     <project dir="class/System.Xml.Linq" library="System.Xml.Linq-net_4_5">
       <boot>false</boot>
-      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize /noconfig -d:NET_3_5 -nowarn:1720 -r:System -r:System.Core -r:System.Xml -r:System.Runtime.Serialization</flags>
+      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize /noconfig -r:System -r:System.Core -r:System.Xml -r:System.Runtime.Serialization</flags>
       <output>System.Xml.Linq.dll</output>
       <built_sources></built_sources>
       <library_output>./../../class/lib/net_4_5/System.Xml.Linq.dll</library_output>
     </project>
     <project dir="class/System.Xml.Linq" library="System.Xml.Linq-tests-net_4_5">
       <boot>false</boot>
-      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_5/System.Xml.Linq.dll -d:NET_3_5 -nowarn:1720 -r:System -r:System.Core -r:System.Xml -r:System.Runtime.Serialization</flags>
+      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_5/System.Xml.Linq.dll -r:System -r:System.Core -r:System.Xml -r:System.Runtime.Serialization</flags>
       <output>System.Xml.Linq_test_net_4_5.dll</output>
       <built_sources></built_sources>
       <library_output>System.Xml.Linq_test_net_4_5.dll</library_output>
       <profile>net_4_5</profile>
       <response>./../../build/deps/System.Web.Routing_test_net_4_5.dll.response</response>
     </project>
+    <project dir="class/System.Runtime.DurableInstancing" library="System.Runtime.DurableInstancing-net_4_5">
+      <boot>false</boot>
+      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize /noconfig -r:System -r:System.Xml -r:System.Core -r:System.Xml.Linq -r:System.Transactions -r:System.ServiceModel.Internals -r:System.Runtime.Serialization</flags>
+      <output>System.Runtime.DurableInstancing.dll</output>
+      <built_sources></built_sources>
+      <library_output>./../../class/lib/net_4_5/System.Runtime.DurableInstancing.dll</library_output>
+      <fx_version>4.5</fx_version>
+      <profile>net_4_5</profile>
+      <response>System.Runtime.DurableInstancing.dll.sources</response>
+    </project>
+    <project dir="class/System.Runtime.DurableInstancing" library="System.Runtime.DurableInstancing-tests-net_4_5">
+      <boot>false</boot>
+      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_5/System.Runtime.DurableInstancing.dll -r:System -r:System.Xml -r:System.Core -r:System.Xml.Linq -r:System.Transactions -r:System.ServiceModel.Internals -r:System.Runtime.Serialization</flags>
+      <output>System.Runtime.DurableInstancing_test_net_4_5.dll</output>
+      <built_sources></built_sources>
+      <library_output>System.Runtime.DurableInstancing_test_net_4_5.dll</library_output>
+      <fx_version>4.5</fx_version>
+      <profile>net_4_5</profile>
+      <response>./../../build/deps/System.Runtime.DurableInstancing_test_net_4_5.dll.response</response>
+    </project>
     <project dir="class/System.IdentityModel" library="System.IdentityModel-net_4_5">
       <boot>false</boot>
       <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize /noconfig /d:NET_3_0 -r:System.Web.ApplicationServices.dll -r:System -r:System.Xml -r:System.Security -r:System.Web -r:System.Configuration -r:Mono.Security -r:System.Runtime.Serialization</flags>
     </project>
     <project dir="class/System.Runtime.Caching" library="System.Runtime.Caching-net_4_5">
       <boot>false</boot>
-      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize /noconfig -r:System -r:System.Data -r:System.Configuration -r:System.Core</flags>
+      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize /noconfig -nowarn:414 -r:System -r:System.Data -r:System.Configuration -r:System.Core</flags>
       <output>System.Runtime.Caching.dll</output>
       <built_sources></built_sources>
       <library_output>./../../class/lib/net_4_5/System.Runtime.Caching.dll</library_output>
     </project>
     <project dir="class/System.Runtime.Caching" library="System.Runtime.Caching-tests-net_4_5">
       <boot>false</boot>
-      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_5/System.Runtime.Caching.dll -r:System -r:System.Data -r:System.Configuration -r:System.Core</flags>
+      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_5/System.Runtime.Caching.dll -nowarn:414 -r:System -r:System.Data -r:System.Configuration -r:System.Core</flags>
       <output>System.Runtime.Caching_test_net_4_5.dll</output>
       <built_sources></built_sources>
       <library_output>System.Runtime.Caching_test_net_4_5.dll</library_output>
       <profile>net_4_5</profile>
       <response>./../../build/deps/System.Runtime.Caching_test_net_4_5.dll.response</response>
     </project>
-    <project dir="class/System.Runtime.DurableInstancing" library="System.Runtime.DurableInstancing-net_4_5">
-      <boot>false</boot>
-      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize /noconfig -r:System -r:System.Xml -r:System.Runtime.Serialization -r:System.Core -r:System.Xml.Linq</flags>
-      <output>System.Runtime.DurableInstancing.dll</output>
-      <built_sources></built_sources>
-      <library_output>./../../class/lib/net_4_5/System.Runtime.DurableInstancing.dll</library_output>
-      <fx_version>4.5</fx_version>
-      <profile>net_4_5</profile>
-      <response>System.Runtime.DurableInstancing.dll.sources</response>
-    </project>
-    <project dir="class/System.Runtime.DurableInstancing" library="System.Runtime.DurableInstancing-tests-net_4_5">
-      <boot>false</boot>
-      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_5/System.Runtime.DurableInstancing.dll -r:System -r:System.Xml -r:System.Runtime.Serialization -r:System.Core -r:System.Xml.Linq</flags>
-      <output>System.Runtime.DurableInstancing_test_net_4_5.dll</output>
-      <built_sources></built_sources>
-      <library_output>System.Runtime.DurableInstancing_test_net_4_5.dll</library_output>
-      <fx_version>4.5</fx_version>
-      <profile>net_4_5</profile>
-      <response>./../../build/deps/System.Runtime.DurableInstancing_test_net_4_5.dll.response</response>
-    </project>
     <project dir="class/Microsoft.Web.Infrastructure" library="Microsoft.Web.Infrastructure-net_4_5">
       <boot>false</boot>
       <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize /noconfig -r:System -r:System.Configuration -r:System.Web</flags>
     </project>
     <project dir="class/System.Data.DataSetExtensions" library="System.Data.DataSetExtensions-net_4_5">
       <boot>false</boot>
-      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize /noconfig -r:mscorlib.dll -r:System.Data.dll -r:System.Xml.dll -r:System.Web.dll -r:System.Core -r:System -r:System.Data -r:System.Xml -r:System.Web</flags>
+      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize /noconfig -r:System.Core -r:System -r:System.Data -r:System.Xml</flags>
       <output>System.Data.DataSetExtensions.dll</output>
       <built_sources></built_sources>
       <library_output>./../../class/lib/net_4_5/System.Data.DataSetExtensions.dll</library_output>
     </project>
     <project dir="class/System.Data.DataSetExtensions" library="System.Data.DataSetExtensions-tests-net_4_5">
       <boot>false</boot>
-      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_5/System.Data.DataSetExtensions.dll -r:mscorlib.dll -r:System.Data.dll -r:System.Xml.dll -r:System.Web.dll -r:System.Core -r:System -r:System.Data -r:System.Xml -r:System.Web -doc:System.Data.DataSetExtensions_test_net_4_5.xml -nowarn:219 -nowarn:169</flags>
+      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_5/System.Data.DataSetExtensions.dll -r:System.Core -r:System -r:System.Data -r:System.Xml -doc:System.Data.DataSetExtensions_test_net_4_5.xml -nowarn:219 -nowarn:169</flags>
       <output>System.Data.DataSetExtensions_test_net_4_5.dll</output>
       <built_sources></built_sources>
       <library_output>System.Data.DataSetExtensions_test_net_4_5.dll</library_output>
       <profile>net_4_5</profile>
       <response>System.Xml.Serialization.dll.sources</response>
     </project>
-    <project dir="class/System.Numerics" library="System.Numerics-net_4_5">
-      <boot>false</boot>
-      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize /noconfig /unsafe -d:MONO -r:System</flags>
-      <output>System.Numerics.dll</output>
-      <built_sources></built_sources>
-      <library_output>./../../class/lib/net_4_5/System.Numerics.dll</library_output>
-      <fx_version>4.5</fx_version>
-      <profile>net_4_5</profile>
-      <response>System.Numerics.dll.sources</response>
-    </project>
-    <project dir="class/System.Numerics" library="System.Numerics-tests-net_4_5">
-      <boot>false</boot>
-      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_5/System.Numerics.dll /unsafe -d:MONO -r:System</flags>
-      <output>System.Numerics_test_net_4_5.dll</output>
-      <built_sources></built_sources>
-      <library_output>System.Numerics_test_net_4_5.dll</library_output>
-      <fx_version>4.5</fx_version>
-      <profile>net_4_5</profile>
-      <response>./../../build/deps/System.Numerics_test_net_4_5.dll.response</response>
-    </project>
-    <project dir="class/Novell.Directory.Ldap" library="Novell.Directory.Ldap-net_4_5">
-      <boot>false</boot>
-      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize /noconfig -warn:1 -nowarn:612 -r:mscorlib.dll -r:System.dll -r:Mono.Security.dll /res:Novell.Directory.Ldap.Utilclass/ResultCodeMessages.resources -r:System -r:Mono.Security</flags>
-      <output>Novell.Directory.Ldap.dll</output>
-      <built_sources></built_sources>
-      <library_output>./../../class/lib/net_4_5/Novell.Directory.Ldap.dll</library_output>
-      <fx_version>4.5</fx_version>
-      <profile>net_4_5</profile>
-      <response>Novell.Directory.Ldap.dll.sources</response>
-    </project>
-    <project dir="class/Novell.Directory.Ldap" library="Novell.Directory.Ldap-tests-net_4_5">
-      <boot>false</boot>
-      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_5/Novell.Directory.Ldap.dll</flags>
-      <output>Novell.Directory.Ldap_test_net_4_5.dll</output>
-      <built_sources></built_sources>
-      <library_output>Novell.Directory.Ldap_test_net_4_5.dll</library_output>
-      <fx_version>4.5</fx_version>
-      <profile>net_4_5</profile>
-      <response>./../../build/deps/Novell.Directory.Ldap_test_net_4_5.dll.response</response>
-    </project>
-    <project dir="class/System.DirectoryServices" library="System.DirectoryServices-net_4_5">
-      <boot>false</boot>
-      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize /noconfig /r:mscorlib.dll -r:System -r:Novell.Directory.Ldap</flags>
-      <output>System.DirectoryServices.dll</output>
-      <built_sources></built_sources>
-      <library_output>./../../class/lib/net_4_5/System.DirectoryServices.dll</library_output>
-      <fx_version>4.5</fx_version>
-      <profile>net_4_5</profile>
-      <response>System.DirectoryServices.dll.sources</response>
-    </project>
-    <project dir="class/System.DirectoryServices" library="System.DirectoryServices-tests-net_4_5">
-      <boot>false</boot>
-      <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_5/System.DirectoryServices.dll /r:mscorlib.dll -r:System -r:Novell.Directory.Ldap -nowarn:0618 -nowarn:219 -nowarn:169</flags>
-      <output>System.DirectoryServices_test_net_4_5.dll</output>
-      <built_sources></built_sources>
-      <library_output>System.DirectoryServices_test_net_4_5.dll</library_output>
-      <fx_version>4.5</fx_version>
-      <profile>net_4_5</profile>
-      <response>./../../build/deps/System.DirectoryServices_test_net_4_5.dll.response</response>
-    </project>
     <project dir="class/System.DirectoryServices.Protocols" library="System.DirectoryServices.Protocols-net_4_5">
       <boot>false</boot>
       <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:./../../class/lib/net_4_5 -r:mscorlib.dll -debug -optimize /noconfig -r:System -r:System.DirectoryServices -r:System.Xml</flags>
index a47c844104d85cbdc2afbc4a495ca18a7a6aac9c..cbb134e68bbf453f9512c3056e6c78a864490c88 100644 (file)
@@ -94,6 +94,9 @@
 /* Define to 1 if you have the <checklist.h> header file. */
 /* #undef HAVE_CHECKLIST_H */
 
+/* Define to 1 if you have the <complex.h> header file. */
+#define HAVE_COMPLEX_H 1
+
 /* Have /dev/random */
 #define HAVE_CRYPT_RNG 1