Skip to content

Commit

Permalink
[illink] Do not preserve GeneratedEnumAttribute
Browse files Browse the repository at this point in the history
Context: dotnet#5167

The attribute itself doesn't need to be preserved.

I didn't find any usage of the attribute instances during runtime, so
this change removes them during linking.

apk size comparison, BuildReleaseArm64False test:

    > apkdiff -f -e dll$ before.apk after.apk
    Size difference in bytes ([*1] apk1 only, [*2] apk2 only):
      -          39 assemblies/Mono.Android.dll
        +         132 Resource Android.ILLink.ILLink.LinkAttributes.xml
        -             Type Android.Runtime.GeneratedEnumAttribute
    Summary:
      -          39 Assemblies -0.01% (of 749,078)

Note that the attribute instances removal doesn't work yet, we need
net6 illink for that.
  • Loading branch information
radekdoulik committed Dec 28, 2020
1 parent 09baa52 commit a35e9ef
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
<assembly fullname="Mono.Android">
<type fullname="Android.Runtime.AnnotationAttribute" />
<type fullname="Android.Runtime.GeneratedDummyHost" />
<type fullname="Android.Runtime.GeneratedEnumAttribute" />
<type fullname="Android.Runtime.IJavaObject" />
<type fullname="Android.Runtime.InputStreamAdapter" />
<type fullname="Android.Runtime.InputStreamInvoker" />
Expand Down
3 changes: 3 additions & 0 deletions src/Mono.Android/ILLink/ILLink.LinkAttributes.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,8 @@
<type fullname="Android.Runtime.IntDefinitionAttribute">
<attribute internal="RemoveAttributeInstances" />
</type>
<type fullname="Android.Runtime.GeneratedEnumAttribute">
<attribute internal="RemoveAttributeInstances" />
</type>
</assembly>
</linker>

0 comments on commit a35e9ef

Please sign in to comment.