Commit 54a9c8c
authored
Bump to jbevain/cecil@8c123e1 (#9078)
Context: #9043
Changes: jbevain/cecil@0.11.4...0.11.5
* jbevain/cecil@8c123e1: Bump to 0.11.5
* jbevain/cecil@870ce3e: Fix RVA field alignment (jbevain/cecil#888)
* jbevain/cecil@4ad9c0f: Fix that method resolution would consider all function-pointers to be the same (jbevain/cecil#885)
* jbevain/cecil@cc48622: Fix a StackOverflowException reading windows runtime assemblies. (jbevain/cecil#879)
* jbevain/cecil@341fb14: Treat instance and static methods as different methods during resolution (jbevain/cecil#882)
* jbevain/cecil@e052ab5: Address issue #873 (jbevain/cecil#874)
* jbevain/cecil@92f32da: Add `MethodImplAttributes.AggressiveOptimization` (jbevain/cecil#855)
* jbevain/cecil@c4cfe16: Fix a race condition between certain Has properties and their collection property. (jbevain/cecil#843)
* jbevain/cecil@65a2912: Add more style configuration (jbevain/cecil#854)
* jbevain/cecil@9eb00e4: ILProcessor should also update custom debug info (jbevain/cecil#867)
* jbevain/cecil@7d36386: Fix corrupted debug header directory entry when writing multiple such entries. (jbevain/cecil#869)
* jbevain/cecil@6f94613: InvariantCulture for operand to string conversion in Instruction.ToString() (jbevain/cecil#870)
* jbevain/cecil@42b9ef1: Add support for generic attributes (jbevain/cecil#871)
* jbevain/cecil@49b1c52: Add `Unmanaged` calling convention (jbevain/cecil#852)
* jbevain/cecil@2c68927: Fix mixed module ReadSymbols() (jbevain/cecil#851)
* jbevain/cecil@f7b64f7: Fix custom attribute with enum on generic type (jbevain/cecil#827)
* jbevain/cecil@79b43e8: Fix deterministic MVID and add PdbChecksum (jbevain/cecil#810)
* jbevain/cecil@8b593d5: Harden debug scope update logic (jbevain/cecil#824)
* jbevain/cecil@a56b5bd: FieldRVA alignment (jbevain/cecil#817)
* jbevain/cecil@75372c7: Switch to netcoreapp3.1 for tests (jbevain/cecil#823)
* jbevain/cecil@5f69faa: Add support for generating the method and generic method comment signature with nested types (jbevain/cecil#801)
* jbevain/cecil@a0a6ce4: Addressing issue #781 (jbevain/cecil#782)
* jbevain/cecil@2f1077d: Update the version of Microsoft.NETFramework.ReferenceAssemblies.net40 (jbevain/cecil#787)
* jbevain/cecil@ede17f9: Fix handling of empty string constants (jbevain/cecil#776)
#9043 stops building API-34 and makes API-35 stable,
and in attempting to do so encounters this error when running
all of the in-tree Windows smoke tests on CI:
D:\a\_work\1\s\bin\Release\dotnet\packs\Microsoft.Android.Sdk.Windows\35.0.0-ci.pr.gh9043.6\tools\Xamarin.Android.Bindings.JavaDependencyVerification.targets(22,5):
error MSB4062: The "Xamarin.Android.Tasks.GetMicrosoftNuGetPackagesMap" task could not be loaded from the assembly
D:\a\_work\1\s\bin\Release\dotnet\packs\Microsoft.Android.Sdk.Windows\35.0.0-ci.pr.gh9043.6\tools\Xamarin.Android.Build.Tasks.dll.
Could not load file or assembly 'Mono.Cecil, Version=0.11.4.0, Culture=neutral, PublicKeyToken=50cebf1cceb9d05e'.
The system cannot find the file specified.
Confirm that the <UsingTask> declaration is correct, that the assembly and all its dependencies are available,
and that the task contains a public class that implements Microsoft.Build.Framework.ITask.
[D:\a\_work\1\a\TestRelease\07-02_16.40.15\temp\DotNetBuildandroid-armFalseFalseFalse\UnnamedProject.csproj]
This appears to be caused by the fact that previously we:
1. Build `Microsoft.Android.Sdk.ILLink.csproj`, which pulls in
[Microsoft.NET.ILLink/9.0.0-preview.6.24319.11][0], which pulls
in [Microsoft.DotNet.Cecil/0.11.4-alpha.24313.1][1], which
contains `Mono.Cecil.dll` versioned as 0.11.5.0.
(Yes, it's "odd" that `Microsoft.DotNet.Cecil/0.11.4*` would
contain a Cecil versioned as 0.11.5, but that's what it has!)
2. Build the rest of dotnet/android with the
[Mono.Cecil/0.11.4][2] package.
3. The Mono.Cecil/0.11.4 package "wins" and ends up in the output
directory and the sdk pack.
So long as the `ILLink*`-related assemblies don't use any
Mono.Cecil/0.11.5 APIs, this works, however it is risky because we
don't know exactly what API `ILLink*` uses.
#9043 appears to change the build order such that
Mono.Cecil/0.11.5 now "wins" and is in the output directory.
This causes the above MSB4062 assembly load error.
We could try to fix the ordering and make Mono.Cecil/0.11.4 "win",
but this leaves us vulnerable to missing some API that `ILLink*`
needs. As such, it's better that we update the rest of dotnet/android
to use the `0.11.5` version of `Mono.Cecil`.
This update breaks the `LinkerTests.FixAbstractMethodsStep_Explicit()`
unit test. Specifically, this logic now returns `null` instead of
being able to be resolved:
new MethodReference (iface_method.Name, void_type, iface)
.Resolve ();
It feels like this makes sense: a method name and return type doesn't
seem like it would be enough to resolve, as parameters are not
considered.
The fix is simply to use the existing `MethodDefinition` as the
`MethodReference`, there is no reason to create a new one.
This change fixes the test.
[0]: https://dev.azure.com/dnceng/public/_artifacts/feed/dotnet9-transport/NuGet/Microsoft.NET.ILLink/overview/9.0.0-preview.7.24328.10
[1]: https://dev.azure.com/dnceng/public/_artifacts/feed/dotnet9-transport/NuGet/Microsoft.DotNet.Cecil/overview/0.11.4-alpha.24313.1
[2]: https://www.nuget.org/packages/Mono.Cecil/0.11.41 parent 77f5fdd commit 54a9c8c
File tree
2 files changed
+2
-2
lines changed- src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/Tasks
2 files changed
+2
-2
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
43 | 43 | | |
44 | 44 | | |
45 | 45 | | |
46 | | - | |
| 46 | + | |
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
131 | 131 | | |
132 | 132 | | |
133 | 133 | | |
134 | | - | |
| 134 | + | |
135 | 135 | | |
136 | 136 | | |
137 | 137 | | |
| |||
0 commit comments