Skip to content

Commit

Permalink
[master] Update dependencies from mono/linker (#12889)
Browse files Browse the repository at this point in the history
[master] Update dependencies from mono/linker
- Updates:
  - Microsoft.NET.ILLink.Tasks: from 5.0.0-preview.3.20410.2 to 5.0.0-preview.3.20414.2

 - Renumber warnings

To reflect the changes in dotnet/linker#1385

 - Suppress more trim analysis warnings

The following also belong to the trim analysis category:
- IL2050 (dotnet/linker#1430)
- Warnings about invalid attributes
- Warnings about uses of removed attributes

 - Suppress IL2009 on 32-bit

GetStubContextAddr rooted by the corelib XML only exists on 64-bit.
  • Loading branch information
dotnet-maestro[bot] authored Aug 17, 2020
1 parent 1b49255 commit cc3931e
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 30 deletions.
4 changes: 2 additions & 2 deletions eng/Version.Details.xml
Original file line number Diff line number Diff line change
Expand Up @@ -69,9 +69,9 @@
<Uri>https://github.com/microsoft/vstest</Uri>
<Sha>ddb755f58160c0e7fab50964d665be1bf47ff579</Sha>
</Dependency>
<Dependency Name="Microsoft.NET.ILLink.Tasks" Version="5.0.0-preview.3.20410.2">
<Dependency Name="Microsoft.NET.ILLink.Tasks" Version="5.0.0-preview.3.20414.2">
<Uri>https://github.com/mono/linker</Uri>
<Sha>3e97f1b57526be93b1abff97ef112efd2f9b21b5</Sha>
<Sha>d5d4dc7d20d8c2a0389079bd56fb4a0b161cc2e3</Sha>
</Dependency>
<Dependency Name="System.CodeDom" Version="5.0.0-rc.1.20410.10">
<Uri>https://github.com/dotnet/runtime</Uri>
Expand Down
2 changes: 1 addition & 1 deletion eng/Versions.props
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@
</PropertyGroup>
<PropertyGroup>
<!-- Dependencies from https://github.com/mono/linker -->
<MicrosoftNETILLinkTasksPackageVersion>5.0.0-preview.3.20410.2</MicrosoftNETILLinkTasksPackageVersion>
<MicrosoftNETILLinkTasksPackageVersion>5.0.0-preview.3.20414.2</MicrosoftNETILLinkTasksPackageVersion>
</PropertyGroup>
<PropertyGroup>
<!-- Dependencies from https://github.com/dotnet/runtime -->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -153,11 +153,25 @@ Copyright (c) .NET Foundation. All rights reserved.
<TrimMode Condition=" '$(TrimMode)' == '' ">copyused</TrimMode>
</PropertyGroup>

<!-- These warning codes need to be updated https://github.com/mono/linker/pull/1385 is finished. -->
<PropertyGroup Condition=" '$(SuppressTrimAnalysisWarnings)' == 'true' ">
<!-- Trim analysis warnings -->
<NoWarn>$(NoWarn);IL2006</NoWarn> <!-- Unrecognized reflection pattern -->
<NoWarn>$(NoWarn);IL2026</NoWarn> <!-- RequiresUnreferencedCodeAttribute method -->
<!-- RequiresUnreferenceCodeAttribute method called -->
<NoWarn>$(NoWarn);IL2026</NoWarn>
<!-- Invalid use of DynamicallyAccessedMembersAttribute -->
<NoWarn>$(NoWarn);IL2041;IL2042;IL2043;IL2056</NoWarn>
<!-- Reference to removed attribute type -->
<NoWarn>$(NoWarn);IL2045</NoWarn>
<!-- RequiresUnreferencedCodeAttribute mismatch on virtual override -->
<NoWarn>$(NoWarn);IL2046</NoWarn>
<!-- COM marshalling warning -->
<NoWarn>$(NoWarn);IL2050</NoWarn>
<!-- Reflection intrinsics with unknown arguments -->
<NoWarn>$(NoWarn);IL2032;IL2055;IL2057;IL2058;IL2059;IL2060;IL2061</NoWarn>
<!-- Unknown values passed to locations with DynamicallyAccessedMemberTypes -->
<NoWarn>$(NoWarn);IL2062;IL2063;IL2064;IL2065;IL2066</NoWarn>
<!-- Unsatisfied DynamicallyAccessedMembers requirements -->
<NoWarn>$(NoWarn);IL2067;IL2068;IL2069;IL2070;IL2071;IL2072;IL2073;IL2074;IL2075;IL2076;IL2077;IL2078;IL2079;IL2080;IL2081;IL2082;IL2083;IL2084;IL2085;IL2086;IL2087;IL2088;IL2089;IL2090;IL2091</NoWarn>
<!-- DynamicallyAccessedMembersAttribute mismatch on virtual override -->
<NoWarn>$(NoWarn);IL2092;IL2093;IL2094;IL2095</NoWarn>

<!-- Warnings from the framework. Can be removed once https://github.com/dotnet/runtime/issues/40336 is fixed. -->
<!-- Framework embedded XML descriptors reference windows-only members. -->
Expand All @@ -166,7 +180,7 @@ Copyright (c) .NET Foundation. All rights reserved.
<!-- Framework has DynamicDependencyAttributes that reference windows-only members. -->
<NoWarn Condition=" !$(RuntimeIdentifier.StartsWith('win')) ">$(NoWarn);IL2037</NoWarn> <!-- Unresolved member for DynamicDependencyAttribute -->
<!-- Framework embedded XML descriptors reference 32-bit-only members. -->
<NoWarn Condition=" '$(PlatformTarget)' != 'x64' AND '$(PlatformTarget)' != 'arm64'">$(NoWarn);IL2012</NoWarn> <!-- Unresolved field referenced in XML -->
<NoWarn Condition=" '$(PlatformTarget)' != 'x64' AND '$(PlatformTarget)' != 'arm64'">$(NoWarn);IL2009;IL2012</NoWarn> <!-- Unresolved field referenced in XML -->
</PropertyGroup>

<!-- Set a default value for TrimmerRemoveSymbols unless set explicitly. -->
Expand Down
43 changes: 21 additions & 22 deletions src/Tests/Microsoft.NET.Publish.Tests/GivenThatWeWantToRunILLink.cs
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ public void ILLink_links_simple_app_without_analysis_warnings_and_it_runs(string
var publishCommand = new PublishCommand(Log, Path.Combine(testAsset.TestRoot, testProject.Name));
publishCommand.Execute($"/p:RuntimeIdentifier={rid}", "/p:SelfContained=true", "/p:PublishTrimmed=true", $"/p:TrimMode={trimMode}")
.Should().Pass()
.And.NotHaveStdOutContaining("warning IL2006")
.And.NotHaveStdOutContaining("warning IL2075")
.And.NotHaveStdOutContaining("warning IL2026");

var publishDirectory = publishCommand.GetOutputDirectory(targetFramework: targetFramework, runtimeIdentifier: rid);
Expand Down Expand Up @@ -220,12 +220,11 @@ public void ILLink_analysis_warnings_are_disabled_by_default(string targetFramew
publishCommand.Execute($"/p:RuntimeIdentifier={rid}", $"/p:SelfContained=true", "/p:PublishTrimmed=true")
.Should().Pass()
// trim analysis warnings are disabled
.And.NotHaveStdOutContaining("warning IL2006")
.And.NotHaveStdOutContaining("warning IL2075")
.And.NotHaveStdOutContaining("warning IL2026")
// warnings about invalid attributes still show up
.And.HaveStdOutContaining("warning IL2043")
.And.HaveStdOutContaining("warning IL2046")
.And.HaveStdOutContaining("warning IL2047");
.And.NotHaveStdOutContaining("warning IL2043")
.And.NotHaveStdOutContaining("warning IL2046")
.And.NotHaveStdOutContaining("warning IL2093");
}

[RequiresMSBuildVersionTheory("16.8.0")]
Expand All @@ -241,11 +240,11 @@ public void ILLink_accepts_option_to_enable_analysis_warnings(string targetFrame
var publishCommand = new PublishCommand(Log, Path.Combine(testAsset.TestRoot, testProject.Name));
publishCommand.Execute($"/p:RuntimeIdentifier={rid}", $"/p:SelfContained=true", "/p:PublishTrimmed=true", "/p:SuppressTrimAnalysisWarnings=false")
.Should().Pass()
.And.HaveStdOutMatching("warning IL2006.*Program.IL_2006")
.And.HaveStdOutMatching("warning IL2075.*Program.IL_2075")
.And.HaveStdOutMatching("warning IL2026.*Program.IL_2026.*Testing analysis warning IL2026")
.And.HaveStdOutMatching("warning IL2043.*Program.get_IL_2043")
.And.HaveStdOutMatching("warning IL2046.*Program.Derived.IL_2046")
.And.HaveStdOutMatching("warning IL2047.*Program.Derived.IL_2047");
.And.HaveStdOutMatching("warning IL2093.*Program.Derived.IL_2093");
}

[RequiresMSBuildVersionTheory("16.8.0")]
Expand Down Expand Up @@ -654,9 +653,9 @@ public void ILLink_can_treat_warnings_as_errors(string targetFramework)

var publishCommand = new PublishCommand(Log, Path.Combine(testAsset.TestRoot, testProject.Name));
publishCommand.Execute($"/p:RuntimeIdentifier={rid}", $"/p:SelfContained=true", "/p:PublishTrimmed=true", "/p:SuppressTrimAnalysisWarnings=false",
"/p:WarningsAsErrors=IL2006")
"/p:WarningsAsErrors=IL2075")
.Should().Fail()
.And.HaveStdOutContaining("error IL2006")
.And.HaveStdOutContaining("error IL2075")
.And.HaveStdOutContaining("warning IL2026");
}

Expand All @@ -672,10 +671,10 @@ public void ILLink_can_treat_warnings_not_as_errors(string targetFramework)

var publishCommand = new PublishCommand(Log, Path.Combine(testAsset.TestRoot, testProject.Name));
publishCommand.Execute($"/p:RuntimeIdentifier={rid}", $"/p:SelfContained=true", "/p:PublishTrimmed=true", "/p:SuppressTrimAnalysisWarnings=false",
"/p:TreatWarningsAsErrors=true", "/p:WarningsNotAsErrors=IL2006")
"/p:TreatWarningsAsErrors=true", "/p:WarningsNotAsErrors=IL2075")
.Should().Fail()
.And.HaveStdOutContaining("error IL2026")
.And.HaveStdOutContaining("warning IL2006");
.And.HaveStdOutContaining("warning IL2075");
}

[RequiresMSBuildVersionTheory("16.8.0")]
Expand All @@ -690,10 +689,10 @@ public void ILLink_can_ignore_warnings(string targetFramework)

var publishCommand = new PublishCommand(Log, Path.Combine(testAsset.TestRoot, testProject.Name));
publishCommand.Execute($"/p:RuntimeIdentifier={rid}", $"/p:SelfContained=true", "/p:PublishTrimmed=true", "/p:SuppressTrimAnalysisWarnings=false",
"/p:NoWarn=IL2006", "/p:WarnAsError=IL2006")
"/p:NoWarn=IL2075", "/p:WarnAsError=IL2075")
.Should().Pass()
.And.NotHaveStdOutContaining("warning IL2006")
.And.NotHaveStdOutContaining("error IL2006")
.And.NotHaveStdOutContaining("warning IL2075")
.And.NotHaveStdOutContaining("error IL2075")
.And.HaveStdOutContaining("warning IL2026");
}

Expand Down Expand Up @@ -728,7 +727,7 @@ public void ILLink_respects_warning_level_independently(string targetFramework)
publishCommand.Execute($"/p:RuntimeIdentifier={rid}", $"/p:SelfContained=true", "/p:PublishTrimmed=true", "/p:SuppressTrimAnalysisWarnings=false",
"/p:ILLinkWarningLevel=0")
.Should().Pass()
.And.NotHaveStdOutContaining("warning IL2006");
.And.NotHaveStdOutContaining("warning IL2075");
}

[RequiresMSBuildVersionTheory("16.8.0")]
Expand All @@ -745,7 +744,7 @@ public void ILLink_can_treat_warnings_as_errors_independently(string targetFrame
publishCommand.Execute($"/p:RuntimeIdentifier={rid}", $"/p:SelfContained=true", "/p:PublishTrimmed=true", "/p:SuppressTrimAnalysisWarnings=false",
"/p:TreatWarningsAsErrors=true", "/p:ILLinkTreatWarningsAsErrors=false")
.Should().Pass()
.And.HaveStdOutContaining("warning IL2006");
.And.HaveStdOutContaining("warning IL2075");
}

[Theory]
Expand Down Expand Up @@ -1022,17 +1021,17 @@ public class Program
{
public static void Main()
{
IL_2006();
IL_2075();
IL_2026();
_ = IL_2043;
new Derived().IL_2046();
new Derived().IL_2047();
new Derived().IL_2093();
}
[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicFields)]
public static string typeName;
public static void IL_2006()
public static void IL_2075()
{
_ = Type.GetType(typeName).GetMethod(""SomeMethod"");
}
Expand All @@ -1053,15 +1052,15 @@ public class Base
[RequiresUnreferencedCode(""Testing analysis warning IL2046"")]
public virtual void IL_2046() {}
public virtual string IL_2047() => null;
public virtual string IL_2093() => null;
}
public class Derived : Base
{
public override void IL_2046() {}
[return: DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicMethods)]
public override string IL_2047() => null;
public override string IL_2093() => null;
}
}
";
Expand Down

0 comments on commit cc3931e

Please sign in to comment.