Background
dotnet/runtime#107211 proposes moving ILLink custom steps out of the trimmer process to enable ILLink to be published trimmed and AOT compiled, transition from Mono.Cecil to System.Reflection.Metadata, and reduce the ILLink API surface.
This issue tracks the work in dotnet/android to migrate all custom steps registered via _TrimmerCustomSteps.
Before MarkStep
During MarkStep
Remaining legacy LLVM IR type map steps
These steps remain registered via _TrimmerCustomSteps, but do not need to be migrated. They can be removed when the legacy LLVM IR type map is retired:
PreserveSubStepDispatcher / PreserveExportedTypesMarkJavaObjectsPreserveJavaExceptionsPreserveApplicationsPreserveRegistrationsPreserveJavaInterfaces
This step still needs to be supported with the trimmable type map:
After CleanStep
References
Background
dotnet/runtime#107211 proposes moving ILLink custom steps out of the trimmer process to enable ILLink to be published trimmed and AOT compiled, transition from Mono.Cecil to System.Reflection.Metadata, and reduce the ILLink API surface.
This issue tracks the work in dotnet/android to migrate all custom steps registered via
_TrimmerCustomSteps.Before MarkStep
SetupStep- eliminate (pass data via MSBuild properties) [illink] consolidate & remove hardcoded assembly names #9662FixLegacyResourceDesignerStep- Move FixLegacyResourceDesignerStep to post-trim pipeline #11059During MarkStep
Remaining legacy LLVM IR type map steps
These steps remain registered via
_TrimmerCustomSteps, but do not need to be migrated. They can be removed when the legacy LLVM IR type map is retired:PreserveSubStepDispatcher/PreserveExportedTypesMarkJavaObjectsPreserveJavaExceptionsPreserveApplicationsPreserveRegistrationsPreserveJavaInterfacesThis step still needs to be supported with the trimmable type map:
FixAbstractMethodsStep- Move FixAbstractMethodsStep out of ILLink process #11029After CleanStep
AddKeepAlivesStep- move toAssemblyModifierPipeline(MoveAddKeepAlivestrimmer step to post-trimming task #10952)StripEmbeddedLibraries(Move StripEmbeddedLibraries to MSBuild task #10894)RemoveResourceDesignerStep/GetAssembliesStep- (MoveRemoveResourceDesignertrimmer step to post-trim pipeline #10977)GenerateProguardConfiguration(Migrate GenerateProguardConfiguration from ILLink step to MSBuild task #10694)WarnOnPreserveAttribute(Migrate WarnOnPreserveAttribute from ILLink step to MSBuild task #10693)TypeMappingStep- removed with the managed type map implementation (Remove themanagedtypemap implementation #12134)References
src/Microsoft.Android.Sdk.ILLink/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.TypeMap.LlvmIr.targets