Merge branch 'd16-5' into d16-5-xcode11.3
This commit is contained in:
Коммит
f1f867af03
|
@ -29,3 +29,5 @@ tests/bcl-test/Mac\ OS\ X\ BCL\ \tests*.csproj
|
|||
tests/bcl-test/mscorlib-mac-full.csproj
|
||||
tests/bcl-test/mscorlib-mac-modern.csproj
|
||||
tests/bcl-test/mscorlib.csproj
|
||||
tests/bcl-test/SystemCoreXunit.csproj
|
||||
tests/bcl-test/SystemXunit.csproj
|
||||
|
|
|
@ -69,9 +69,10 @@ include $(TOP)/mk/mono.mk
|
|||
MONO_HASH := $(NEEDED_MONO_VERSION)
|
||||
|
||||
# Minimum Mono version for building XI/XM
|
||||
MIN_MONO_VERSION=6.6.0.117
|
||||
MAX_MONO_VERSION=6.6.99
|
||||
MIN_MONO_URL=https://xamjenkinsartifact.azureedge.net/build-package-osx-mono/2019-08/117/617f399efca133f357cb8207bc7f58b1120f12f1/MonoFramework-MDK-6.6.0.117.macos10.xamarin.universal.pkg
|
||||
|
||||
MIN_MONO_VERSION=6.8.0.0
|
||||
MAX_MONO_VERSION=6.8.99
|
||||
MIN_MONO_URL=https://xamjenkinsartifact.azureedge.net/build-package-osx-mono/2019-10/65/18920a83f423fb864a2263948737681968f5b2c8/MonoFramework-MDK-6.8.0.61.macos10.xamarin.universal.pkg
|
||||
|
||||
# Minimum Mono version for Xamarin.Mac apps using the system mono
|
||||
MIN_XM_MONO_VERSION=6.4.0.94
|
||||
|
|
|
@ -109,6 +109,9 @@ $(SDK_CONFIG):
|
|||
echo "DISABLE_ANDROID=1" > $@
|
||||
echo "DISABLE_DESKTOP=1" >> $@
|
||||
echo "DISABLE_WASM=1" >> $@
|
||||
echo "ENABLE_IOS=1" >> $@
|
||||
echo "ENABLE_MAC=1" >> $@
|
||||
|
||||
|
||||
ifdef DISABLE_BUILDS_MAKEFILE_DEP
|
||||
BUILDS_MAKEFILE_DEP =
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
NEEDED_MONO_VERSION := 3e882ed1a2013f756bdbe104c23e8ff54d5fa49c
|
||||
NEEDED_MONO_BRANCH := 2019-08-xcode11.3
|
||||
NEEDED_MONO_VERSION := 8f396bbb408b5758fccb8602030b9fa5293ce718
|
||||
NEEDED_MONO_BRANCH := 2019-10
|
||||
|
||||
MONO_DIRECTORY := mono
|
||||
MONO_MODULE := https://github.com/mono/mono
|
||||
|
|
|
@ -476,9 +476,7 @@ xamarin_main (int argc, char *argv[], enum XamarinLaunchMode launch_mode)
|
|||
|
||||
mono_domain_set_config (mono_domain_get (), base_dir, config_file_name);
|
||||
|
||||
MONO_ENTER_GC_SAFE;
|
||||
rv = xamarin_extension_main (argc, argv);
|
||||
MONO_EXIT_GC_SAFE;
|
||||
break;
|
||||
case XamarinLaunchModeApp:
|
||||
rv = mono_jit_exec (mono_domain_get (), assembly, managed_argc, managed_argv);
|
||||
|
|
|
@ -80,9 +80,12 @@ namespace CoreServices {
|
|||
return _HTTPVersion1_1.Handle;
|
||||
else if (version.Equals (HttpVersion.Version10))
|
||||
return _HTTPVersion1_0.Handle;
|
||||
else if (version.Major == 2 && version.Minor == 0)
|
||||
return _HTTPVersion2_0.Handle;
|
||||
else
|
||||
else if (version.Major == 2 && version.Minor == 0) {
|
||||
if (_HTTPVersion2_0 != null && _HTTPVersion2_0.Handle != IntPtr.Zero)
|
||||
return _HTTPVersion2_0.Handle;
|
||||
// HTTP 2.0 requires OS X 10.11 or later.
|
||||
return _HTTPVersion1_1.Handle;
|
||||
} else
|
||||
throw new ArgumentException ();
|
||||
}
|
||||
|
||||
|
|
|
@ -831,7 +831,7 @@ namespace Foundation {
|
|||
base.Dispose (disposing);
|
||||
}
|
||||
|
||||
protected internal override Task SerializeToStreamAsync (Stream stream, TransportContext context)
|
||||
protected override Task SerializeToStreamAsync (Stream stream, TransportContext context)
|
||||
{
|
||||
if (contentCopied) {
|
||||
if (!content.CanSeek) {
|
||||
|
|
|
@ -125,7 +125,7 @@ namespace System.Net.Http
|
|||
data_event.Set ();
|
||||
}
|
||||
|
||||
protected internal override async Task SerializeToStreamAsync (Stream stream, TransportContext context)
|
||||
protected override async Task SerializeToStreamAsync (Stream stream, TransportContext context)
|
||||
{
|
||||
while (data_event.WaitOne ()) {
|
||||
data_mutex.WaitOne ();
|
||||
|
|
|
@ -358,7 +358,7 @@ namespace System.Net.Http
|
|||
var key = entry.Key.ToString ();
|
||||
var value = entry.Value == null ? string.Empty : entry.Value.ToString ();
|
||||
HttpHeaders item_headers;
|
||||
if (HttpHeaders.GetKnownHeaderKind (key) == Headers.HttpHeaderKind.Content) {
|
||||
if (HeaderDescriptor.TryGet (key, out var descriptor) && descriptor.HeaderType == HttpHeaderType.Content) {
|
||||
item_headers = response_msg.Content.Headers;
|
||||
} else {
|
||||
item_headers = response_msg.Headers;
|
||||
|
|
|
@ -420,4 +420,13 @@ System.Text.Tests.StringBuilderTests.Append_CharPointer_Null_ThrowsNullReference
|
|||
Platform32:System.Reflection.Tests.RuntimeReflectionExtensionsTests.GetRuntimeMethod
|
||||
Platform32:System.Reflection.Tests.RuntimeReflectionExtensionsTests.GetRuntimeField
|
||||
Platform32:System.Reflection.Tests.RuntimeReflectionExtensionsTests.GetRuntimeEvent
|
||||
Platform32:System.Reflection.Tests.RuntimeReflectionExtensionsTests.GetRuntimeProperty
|
||||
Platform32:System.Reflection.Tests.RuntimeReflectionExtensionsTests.GetRuntimeProperty
|
||||
|
||||
# mono issue: https://github.com/mono/mono/issues/17752
|
||||
# Exception messages: System.OutOfMemoryException : Insufficient memory to continue the execution of the program.
|
||||
Platform32:System.Reflection.Tests.RuntimeReflectionExtensionsTests.GetRuntimeMethod
|
||||
|
||||
# maccore issue: https://github.com/xamarin/maccore/issues/1659
|
||||
# random OOMs
|
||||
Platform32:System.Collections.Tests.HashtableTests.Ctor_Int_Int_GenerateNewPrime
|
||||
Platform32:System.Tests.BitConverterTests.ToString_ByteArrayTooLong_Throws
|
||||
|
|
|
@ -115,4 +115,4 @@ System.Net.Security.Tests.ApmSslStreamSystemDefaultTest.ClientAndServer_OneOrBot
|
|||
System.Net.Security.Tests.ClientDefaultEncryptionTest.ClientDefaultEncryption_ServerRequireEncryption_ConnectWithEncryption
|
||||
System.Net.Security.Tests.ClientDefaultEncryptionTest.ClientDefaultEncryption_ServerAllowNoEncryption_ConnectWithEncryption
|
||||
System.Net.Security.Tests.ServerAllowNoEncryptionTest.ServerAllowNoEncryption_ClientAllowNoEncryption_ConnectWithEncryption
|
||||
KLASS:System.Net.Security.Tests.SslStreamSniTest
|
||||
KLASS:System.Net.Security.Tests.SslStreamSniTest
|
||||
|
|
|
@ -30,7 +30,6 @@ namespace LinkSdk.Net.Http {
|
|||
Assert.That (handler.AutomaticDecompression, Is.EqualTo (DecompressionMethods.None), "AutomaticDecompression");
|
||||
Assert.That (handler.ClientCertificateOptions, Is.EqualTo (ClientCertificateOption.Manual), "ClientCertificateOptions");
|
||||
Assert.That (handler.MaxAutomaticRedirections, Is.EqualTo (50), "MaxAutomaticRedirections");
|
||||
Assert.That (handler.MaxRequestContentBufferSize, Is.EqualTo (Int32.MaxValue), "MaxRequestContentBufferSize");
|
||||
Assert.Null (handler.Proxy, "Proxy");
|
||||
Assert.True (handler.SupportsAutomaticDecompression, "SupportsAutomaticDecompression");
|
||||
Assert.True (handler.SupportsProxy, "SupportsProxy");
|
||||
|
|
|
@ -474,9 +474,9 @@ namespace Xamarin.MMP.Tests
|
|||
References = " <Reference Include=\"System.Net.Http\" />",
|
||||
TestCode = $@"
|
||||
var client = new System.Net.Http.HttpClient ();
|
||||
var field = client.GetType ().BaseType.GetField (""handler"", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
|
||||
var field = client.GetType ().BaseType.GetField (""_handler"", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
|
||||
if (field == null)
|
||||
throw new System.Exception (""Could not find the field 'handler' in HttpClient's base type (which should be 'HttpMessageInvoker')."");
|
||||
throw new System.Exception (""Could not find the field '_handler' in HttpClient's base type (which should be 'HttpMessageInvoker')."");
|
||||
var fieldValue = field.GetValue (client);
|
||||
if (fieldValue == null)
|
||||
throw new System.Exception (""Unexpected null value found in 'HttpMessageInvoker.handler' field."");
|
||||
|
|
|
@ -14,6 +14,8 @@ namespace Xamarin.MMP.Tests
|
|||
|
||||
if (!Directory.Exists (oldXcode))
|
||||
Assert.Ignore ("This test requires Xcode 9.4 (or updated to a newer one that still warns MM0135).");
|
||||
else if (Environment.OSVersion.Version.Major >= 19 /* macOS 10.15+ */)
|
||||
Assert.Ignore ("Xcode 9.4 does not work on Catalina or later."); // This can check can be removed after switching to a newer Xcode than 9.4.
|
||||
|
||||
MMPTests.RunMMPTest (tmpDir => {
|
||||
TI.UnifiedTestConfig test = new TI.UnifiedTestConfig (tmpDir);
|
||||
|
|
|
@ -75,8 +75,8 @@ namespace MonoTouchFixtures.Network {
|
|||
[TestFixtureTearDown]
|
||||
public void Dispose()
|
||||
{
|
||||
report.Dispose ();
|
||||
connection.Dispose ();
|
||||
report?.Dispose ();
|
||||
connection?.Dispose ();
|
||||
}
|
||||
|
||||
[Test]
|
||||
|
|
|
@ -58,9 +58,11 @@ namespace MonoTouchFixtures.Network {
|
|||
[TestFixtureTearDown]
|
||||
public void Dispose()
|
||||
{
|
||||
connection.Dispose ();
|
||||
foreach (var i in interfaces)
|
||||
i.Dispose ();
|
||||
connection?.Dispose ();
|
||||
if (interfaces != null) {
|
||||
foreach (var i in interfaces)
|
||||
i.Dispose ();
|
||||
}
|
||||
}
|
||||
|
||||
[SetUp]
|
||||
|
|
|
@ -66,8 +66,8 @@ namespace MonoTouchFixtures.Network {
|
|||
[TestFixtureTearDown]
|
||||
public void Dispose()
|
||||
{
|
||||
connection.Dispose ();
|
||||
stack.Dispose ();
|
||||
connection?.Dispose ();
|
||||
stack?.Dispose ();
|
||||
}
|
||||
|
||||
[SetUp]
|
||||
|
|
|
@ -56,10 +56,12 @@ namespace MonoTouchFixtures.Network {
|
|||
[TestFixtureTearDown]
|
||||
public void Dispose()
|
||||
{
|
||||
connection.Dispose ();
|
||||
stack.Dispose ();
|
||||
foreach (var o in options)
|
||||
o.Dispose ();
|
||||
connection?.Dispose ();
|
||||
stack?.Dispose ();
|
||||
if (options != null) {
|
||||
foreach (var o in options)
|
||||
o.Dispose ();
|
||||
}
|
||||
}
|
||||
|
||||
[SetUp]
|
||||
|
|
|
@ -14,6 +14,7 @@ using System.IO;
|
|||
|
||||
using NUnit.Framework;
|
||||
using System.Net.Http.Headers;
|
||||
using System.Security.Authentication;
|
||||
using System.Text;
|
||||
using Foundation;
|
||||
#if MONOMAC
|
||||
|
@ -174,24 +175,35 @@ namespace MonoTests.System.Net.Http
|
|||
Assert.Ignore ("Fails on macOS 10.10: https://github.com/xamarin/maccore/issues/1645");
|
||||
#endif
|
||||
|
||||
bool servicePointManagerCbWasExcuted = false;
|
||||
bool validationCbWasExecuted = false;
|
||||
bool customValidationCbWasExecuted = false;
|
||||
bool invalidServicePointManagerCbWasExcuted = false;
|
||||
bool done = false;
|
||||
Exception ex = null;
|
||||
Type expectedExceptionType = null;
|
||||
HttpResponseMessage result = null;
|
||||
|
||||
var handler = GetHandler (handlerType);
|
||||
if (handler is NSUrlSessionHandler ns) {
|
||||
if (handler is HttpClientHandler ch) {
|
||||
expectedExceptionType = typeof (AuthenticationException);
|
||||
ch.ServerCertificateCustomValidationCallback = (sender, certificate, chain, errors) => {
|
||||
validationCbWasExecuted = true;
|
||||
// return false, since we want to test that the exception is raised
|
||||
return false;
|
||||
};
|
||||
ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, errors) => {
|
||||
invalidServicePointManagerCbWasExcuted = true;
|
||||
return false;
|
||||
};
|
||||
} else if (handler is NSUrlSessionHandler ns) {
|
||||
expectedExceptionType = typeof (WebException);
|
||||
ns.TrustOverride += (a,b) => {
|
||||
servicePointManagerCbWasExcuted = true;
|
||||
validationCbWasExecuted = true;
|
||||
// return false, since we want to test that the exception is raised
|
||||
return false;
|
||||
};
|
||||
} else {
|
||||
ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, errors) => {
|
||||
servicePointManagerCbWasExcuted = true;
|
||||
// return false, since we want to test that the exception is raised
|
||||
return false;
|
||||
};
|
||||
Assert.Fail ($"Invalid HttpMessageHandler: '{handler.GetType ()}'.");
|
||||
}
|
||||
|
||||
TestRuntime.RunAsync (DateTime.Now.AddSeconds (30), async () =>
|
||||
|
@ -213,11 +225,14 @@ namespace MonoTests.System.Net.Http
|
|||
if (!done) { // timeouts happen in the bots due to dns issues, connection issues etc.. we do not want to fail
|
||||
Assert.Inconclusive ("Request timedout.");
|
||||
} else {
|
||||
// the ServicePointManager.ServerCertificateValidationCallback will never be executed.
|
||||
Assert.False(invalidServicePointManagerCbWasExcuted);
|
||||
Assert.True(validationCbWasExecuted);
|
||||
// assert the exception type
|
||||
Assert.IsNotNull (ex, (result == null)? "Expected exception is missing and got no result" : $"Expected exception but got {result.Content.ReadAsStringAsync ().Result}");
|
||||
Assert.IsInstanceOfType (typeof (HttpRequestException), ex);
|
||||
Assert.IsNotNull (ex.InnerException);
|
||||
Assert.IsInstanceOfType (typeof (WebException), ex.InnerException);
|
||||
Assert.IsInstanceOfType (expectedExceptionType, ex.InnerException);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -3941,9 +3941,9 @@ public class HandlerTest
|
|||
public void Test ()
|
||||
{{
|
||||
var client = new System.Net.Http.HttpClient ();
|
||||
var field = client.GetType ().BaseType.GetField (""handler"", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
|
||||
var field = client.GetType ().BaseType.GetField (""_handler"", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
|
||||
if (field == null)
|
||||
throw new System.Exception (""Could not find the field 'handler' in HttpClient's base type (which should be 'HttpMessageInvoker')."");
|
||||
throw new System.Exception (""Could not find the field '_handler' in HttpClient's base type (which should be 'HttpMessageInvoker')."");
|
||||
var fieldValue = field.GetValue (client);
|
||||
if (fieldValue == null)
|
||||
throw new System.Exception (""Unexpected null value found in 'HttpMessageInvoker.handler' field."");
|
||||
|
|
|
@ -302,10 +302,23 @@ namespace Xamarin.Linker {
|
|||
"LLVM failed for '<SendFrameFallbackAsync>d__56.MoveNext': non-finally/catch/fault clause.",
|
||||
"LLVM failed for '<ReceiveAsyncPrivate>d__61`2.MoveNext': non-finally/catch/fault clause.",
|
||||
"LLVM failed for '<ReceiveAsyncPrivate>d__61`2.MoveNext': non-finally/catch/fault clause.",
|
||||
"LLVM failed for 'NetworkStream.Read': non-finally/catch/fault clause.",
|
||||
"LLVM failed for 'NetworkStream.Write': non-finally/catch/fault clause.",
|
||||
"LLVM failed for 'NetworkStream.BeginRead': non-finally/catch/fault clause.",
|
||||
"LLVM failed for 'NetworkStream.EndRead': non-finally/catch/fault clause.",
|
||||
"LLVM failed for 'NetworkStream.BeginWrite': non-finally/catch/fault clause.",
|
||||
"LLVM failed for 'NetworkStream.EndWrite': non-finally/catch/fault clause.",
|
||||
"LLVM failed for 'NetworkStream.ReadAsync': non-finally/catch/fault clause.",
|
||||
"LLVM failed for 'NetworkStream.WriteAsync': non-finally/catch/fault clause.",
|
||||
}) },
|
||||
{ "System.Core.dll", new Tuple<int, string[]> (0, new string [] {
|
||||
"LLVM failed for 'EnterTryCatchFinallyInstruction.Run': non-finally/catch/fault clause.",
|
||||
}) },
|
||||
{ "System.Net.Http.dll", new Tuple<int, string[]> (0, new string [] {
|
||||
"LLVM failed for 'HttpContent.CopyToAsync': non-finally/catch/fault clause.",
|
||||
"LLVM failed for 'HttpContent.LoadIntoBufferAsync': non-finally/catch/fault clause.",
|
||||
"LLVM failed for '<CopyToAsyncCore>d__47.MoveNext': non-finally/catch/fault clause.",
|
||||
}) },
|
||||
{ "mscorlib.dll", new Tuple<int, string[]> (0, new string [] {
|
||||
"LLVM failed for 'Console.Write': opcode arglist",
|
||||
"LLVM failed for 'Console.WriteLine': opcode arglist",
|
||||
|
|
|
@ -8,6 +8,8 @@ namespace xharness
|
|||
{
|
||||
public class UnifiedTarget : iOSTarget
|
||||
{
|
||||
// special cases for the BCL applications
|
||||
|
||||
public override string Suffix {
|
||||
get {
|
||||
return MonoNativeInfo != null ? MonoNativeInfo.FlavorSuffix : "-ios";
|
||||
|
@ -67,9 +69,15 @@ namespace xharness
|
|||
|
||||
protected override void CalculateName ()
|
||||
{
|
||||
if (TargetDirectory.Contains ("bcl-test"))
|
||||
Name = (TestProject.Name == "mscorlib")? "mscorlib" : TestProject.Name.Substring (TestProject.Name.IndexOf ("BCL", StringComparison.Ordinal));
|
||||
else
|
||||
if (TargetDirectory.Contains ("bcl-test")) {
|
||||
if (TestProject.Name == "mscorlib")
|
||||
Name = "mscorlib";
|
||||
else {
|
||||
var bclIndex = TestProject.Name.IndexOf ("BCL", StringComparison.Ordinal);
|
||||
// most of the BCL test are grouped, but there are a number that are not, in those cases remove the "{testype} Mono " prefix
|
||||
Name = (bclIndex == -1) ? TestProject.Name.Substring (TestProject.Name.IndexOf ("Mono ", StringComparison.Ordinal) + "Mono ".Length) : TestProject.Name.Substring (bclIndex);
|
||||
}
|
||||
} else
|
||||
base.CalculateName ();
|
||||
if (MonoNativeInfo != null)
|
||||
Name = Name + MonoNativeInfo.FlavorSuffix;
|
||||
|
|
|
@ -127,16 +127,17 @@ namespace BCLTestImporter {
|
|||
|
||||
// BCL tests group 4
|
||||
new BclTestProjectInfo { Name = "SystemNumericsXunit", assemblies = new [] { "monotouch_System.Numerics_xunit-test.dll" }, Group = "BCL tests group 4" },
|
||||
new BclTestProjectInfo { Name = "SystemCoreXunit", assemblies = new [] { "monotouch_System.Core_xunit-test.dll" }, Group = "BCL tests group 4" },
|
||||
new BclTestProjectInfo { Name = "SystemXunit", assemblies = new [] { "monotouch_System_xunit-test.dll" }, ExtraArgs = $"--xml={Path.Combine (Harness.RootDirectory, "bcl-test", "SystemXunitLinker.xml")} --optimize=-custom-attributes-removal", Group = "BCL tests group 4" },
|
||||
new BclTestProjectInfo { Name = "MicrosoftCSharpXunit", assemblies = new [] { "monotouch_Microsoft.CSharp_xunit-test.dll" }, Group = "BCL tests group 4" },
|
||||
|
||||
// BCL tests group 5
|
||||
new BclTestProjectInfo { Name = "mscorlib", assemblies = new [] { "monotouch_corlib_xunit-test.dll" }, Group = "mscorlib" }, // special testcase for the corlib which is later used in xHarness for diff config options
|
||||
new BclTestProjectInfo { Name = "SystemNetHttpUnitTestsXunit", assemblies = new [] { "monotouch_System.Net.Http.UnitTests_xunit-test.dll" }, Group = "BCL tests group 5" },
|
||||
new BclTestProjectInfo { Name = "SystemNetHttpFunctionalTestsXunit", assemblies = new [] { "monotouch_System.Net.Http.FunctionalTests_xunit-test.dll" }, Group = "BCL tests group 5" },
|
||||
|
||||
// Special assemblies that are in a single application due to their size being to large for the iOS 32b.
|
||||
new BclTestProjectInfo { Name = "mscorlib", assemblies = new [] { "monotouch_corlib_xunit-test.dll" }, Group = "mscorlib" }, // special testcase for the corlib which is later used in xHarness for diff config options
|
||||
new BclTestProjectInfo { Name = "SystemCoreXunit", assemblies = new [] { "monotouch_System.Core_xunit-test.dll" }, Group = "SystemCoreXunit" }, // special test case, this dll is to large for the iOS 32b
|
||||
new BclTestProjectInfo { Name = "SystemXunit", assemblies = new [] { "monotouch_System_xunit-test.dll" }, ExtraArgs = $"--xml={Path.Combine (Harness.RootDirectory, "bcl-test", "SystemXunitLinker.xml")} --optimize=-custom-attributes-removal", Group = "SystemXunit" }, // special case due to the need of the extra args
|
||||
|
||||
// BCL tests group 6
|
||||
new BclTestProjectInfo { Name = "SystemNetHttpUnitTestsXunit", assemblies = new [] { "monotouch_System.Net.Http.UnitTests_xunit-test.dll" }, Group = "BCL tests group 6" },
|
||||
new BclTestProjectInfo { Name = "SystemNetHttpFunctionalTestsXunit", assemblies = new [] { "monotouch_System.Net.Http.FunctionalTests_xunit-test.dll" }, Group = "BCL tests group 6" },
|
||||
};
|
||||
|
||||
static readonly List <string> CommonIgnoredAssemblies = new List <string> {
|
||||
|
|
|
@ -49,12 +49,12 @@ namespace Xamarin.Linker {
|
|||
// or they can point to nothing which will break later (e.g. when re-loading for stripping IL)
|
||||
// reference: https://bugzilla.xamarin.com/show_bug.cgi?id=36577
|
||||
if (main.HasExportedTypes)
|
||||
SweepCollectionNonAttributable (main.ExportedTypes);
|
||||
SweepCollectionMetadata (main.ExportedTypes);
|
||||
// only when linking should we remove module references, if we (re)save the assembly then
|
||||
// the entrypoints (for p/invokes) will be required later
|
||||
// reference: https://bugzilla.xamarin.com/show_bug.cgi?id=35372
|
||||
if (main.HasModuleReferences && (CurrentAction == AssemblyAction.Link))
|
||||
SweepCollectionNonAttributable (main.ModuleReferences);
|
||||
SweepCollectionMetadata (main.ModuleReferences);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -166,6 +166,9 @@
|
|||
<Compile Include="..\..\builds\mono-ios-sdk-destdir\ios-sources\external\linker\src\linker\Linker\XApiReader.cs">
|
||||
<Link>Linker\XApiReader.cs</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\..\builds\mono-ios-sdk-destdir\ios-sources\external\linker\src\linker\Linker\OutputException.cs">
|
||||
<Link>Linker\OutputException.cs</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\..\builds\mono-ios-sdk-destdir\ios-sources\external\linker\src\linker\Linker.Steps\BaseStep.cs">
|
||||
<Link>Linker.Steps\BaseStep.cs</Link>
|
||||
</Compile>
|
||||
|
|
|
@ -154,6 +154,9 @@
|
|||
<Compile Include="..\..\builds\mono-ios-sdk-destdir\ios-sources\external\linker\src\linker\Linker\MethodAction.cs">
|
||||
<Link>Linker\MethodAction.cs</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\..\builds\mono-ios-sdk-destdir\ios-sources\external\linker\src\linker\Linker\OutputException.cs">
|
||||
<Link>Linker\OutputException.cs</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\..\builds\mono-ios-sdk-destdir\ios-sources\external\linker\src\linker\Linker.Steps\BaseStep.cs">
|
||||
<Link>Linker.Steps\BaseStep.cs</Link>
|
||||
</Compile>
|
||||
|
|
Загрузка…
Ссылка в новой задаче