Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[master] Update dependencies from mono/linker #12889

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions NuGet.config
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,5 @@
<add key="container-tools" value="https://www.myget.org/F/container-tools-for-visual-studio/api/v3/index.json" />
<add key="dotnet-core" value="https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json" />
</packageSources>
<disabledPackageSources />
</configuration>
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